{"version":3,"sources":["webpack:///./src/components/helexium/DropFileBasic.vue?8dd1","webpack:///./src/views/Helexium/SuperAdmin/ReadXlsFile.vue","webpack:///./node_modules/read-excel-file/modules/xml/xmlBrowser.js","webpack:///./node_modules/fflate/esm/browser.js","webpack:///./node_modules/read-excel-file/modules/read/unpackXlsxFileBrowser.js","webpack:///./node_modules/read-excel-file/modules/xml/dom.js","webpack:///./node_modules/read-excel-file/modules/xml/xlsx.js","webpack:///./node_modules/read-excel-file/modules/read/parseProperties.js","webpack:///./node_modules/read-excel-file/modules/read/parseFilePaths.js","webpack:///./node_modules/read-excel-file/modules/read/parseStyles.js","webpack:///./node_modules/read-excel-file/modules/read/parseSharedStrings.js","webpack:///./node_modules/read-excel-file/modules/read/parseDate.js","webpack:///./node_modules/read-excel-file/modules/read/isDateTimestamp.js","webpack:///./node_modules/read-excel-file/modules/read/parseCellValue.js","webpack:///./node_modules/read-excel-file/modules/read/coordinates.js","webpack:///./node_modules/read-excel-file/modules/read/parseCell.js","webpack:///./node_modules/read-excel-file/modules/read/parseCells.js","webpack:///./node_modules/read-excel-file/modules/read/parseDimensions.js","webpack:///./node_modules/read-excel-file/modules/read/parseSheet.js","webpack:///./node_modules/read-excel-file/modules/read/dropEmptyRows.js","webpack:///./node_modules/read-excel-file/modules/read/dropEmptyColumns.js","webpack:///./node_modules/read-excel-file/modules/read/getData.js","webpack:///./node_modules/read-excel-file/modules/read/readXlsx.js","webpack:///./node_modules/read-excel-file/modules/types/InvalidError.js","webpack:///./node_modules/read-excel-file/modules/types/Number.js","webpack:///./node_modules/read-excel-file/modules/types/String.js","webpack:///./node_modules/read-excel-file/modules/types/Boolean.js","webpack:///./node_modules/read-excel-file/modules/types/Date.js","webpack:///./node_modules/read-excel-file/modules/read/schema/convertToJson.js","webpack:///./node_modules/read-excel-file/modules/read/schema/convertMapToSchema.js","webpack:///./node_modules/read-excel-file/modules/read/readXlsxFileContents.js","webpack:///./node_modules/read-excel-file/modules/read/readXlsxFileBrowser.js","webpack:///src/views/Helexium/SuperAdmin/ReadXlsFile.vue","webpack:///./src/views/Helexium/SuperAdmin/ReadXlsFile.vue?5252","webpack:///./src/views/Helexium/SuperAdmin/ReadXlsFile.vue?3e61","webpack:///./src/components/helexium/DropFileBasic.vue","webpack:///src/components/helexium/DropFileBasic.vue","webpack:///./src/components/helexium/DropFileBasic.vue?175e","webpack:///./src/components/helexium/DropFileBasic.vue?f61a"],"names":["render","_vm","this","_c","_self","staticClass","staticStyle","on","$event","preventDefault","analisisXls","attrs","loader","handleFileData","_v","listaEmpresas","scopedSlots","_u","key","fn","proxy","model","value","empresaSel","callback","$$v","expression","staticRenderFns","createDocument","content","DOMParser","parseFromString","trim","u8","Uint8Array","u16","Uint16Array","u32","Uint32Array","fleb","fdeb","clim","freb","eb","start","b","i","r","j","_a","fl","revfl","_b","fd","rev","x","hMap","cd","mb","s","length","l","co","le","rvb","sv","r_1","v","m","flt","fdt","flrm","fdrm","max","a","bits","d","p","o","bits16","shft","slc","e","n","BYTES_PER_ELEMENT","set","subarray","ec","err","ind","msg","nt","Error","code","captureStackTrace","inflt","dat","buf","st","sl","f","noBuf","noSt","cbuf","bl","nbuf","Math","final","pos","bt","lm","dm","lbt","dbt","tbts","type","t","hLit","hcLen","tl","ldt","clt","clb","clbmsk","clm","c","lt","dt","lms","dms","lpos","sym","add","dsym","end","et","b2","b4","b8","inflateSync","data","out","td","TextDecoder","decode","stream","dutf8","String","fromCharCode","strFromU8","latin1","apply","ext","slzh","zh","z","fnl","es","bs","z64e","sc","su","off","queueMicrotask","setTimeout","unzipSync","opts","files","ze","fltr","filter","c_2","no","name","size","originalSize","compression","unpackXlsxFile","input","File","Blob","arrayBuffer","then","unpackXlsxArrayBuffer","archive","contents","Promise","resolve","getContents","unzippedFiles","_i","_Object$keys","Object","keys","findChild","node","tagName","childNodes","childNode","nodeType","getTagName","findChildren","results","push","forEach","func","NAMESPACE_REG_EXP","element","replace","getOuterXml","textContent","xml","attributes","getCells","document","worksheet","documentElement","sheetData","cells","row","cell","getCellValue","getCellInlineStringValue","firstChild","getDimensions","dimensions","getAttribute","getBaseStyles","styleSheet","cellStyleXfs","getCellStyles","cellXfs","getNumberFormats","numFmts","getSharedStrings","sst","string","getWorkbookProperties","workbook","getRelationships","relationships","getSheets","sheets","parseProperties","book","properties","workbookProperties","epoch1904","addSheetInfo","sheet","id","relationId","parseFilePaths","filePaths","sharedStrings","undefined","styles","addFilePathInfo","relationship","filePath","fileType","getFilePath","path","slice","ownKeys","object","enumerableOnly","getOwnPropertySymbols","symbols","getOwnPropertyDescriptor","enumerable","_objectSpread","target","arguments","source","_defineProperty","getOwnPropertyDescriptors","defineProperties","defineProperty","obj","configurable","writable","parseStyles","doc","baseStyles","map","parseCellStyle","numberFormats","parseNumberFormatStyle","reduce","formats","format","getCellStyle","xf","hasAttribute","xfId","numFmt","template","style","numberFormatId","numberFormat","parseSharedStrings","parseExcelDate","excelSerialDate","options","daysBeforeUnixEpoch","hour","Date","round","_createForOfIteratorHelperLoose","allowArrayLike","it","Symbol","iterator","call","next","bind","Array","isArray","_unsupportedIterableToArray","done","TypeError","minLen","_arrayLikeToArray","prototype","toString","constructor","from","test","arr","len","arr2","isDateTimestamp","styleId","concat","BUILT_IN_DATE_NUMBER_FORMAT_IDS","indexOf","Number","dateFormat","smartDateParser","isDateTemplate","DATE_FORMAT_WEIRD_PREFIX","DATE_FORMAT_WEIRD_POSTFIX","toLowerCase","_step","tokens","split","_iterator","token","DATE_TEMPLATE_TOKENS","parseCellValue","_ref","getInlineStringValue","getInlineStringXml","getStyleId","values","parseString","sharedStringIndex","isNaN","decodeError","parsedDate","valueOf","isDateTimestampNumber","parseNumberDefault","parseNumber","errorCode","stringifiedNumber","parsedNumber","LETTERS","calculateDimensions","comparator","allRows","sort","allCols","column","minRow","maxRow","minCol","maxCol","columnLettersToNumber","columnLetters","parseCellCoordinates","coords","parseInt","parseCell","valueElement","parseCells","_slicedToArray","_arrayWithHoles","_iterableToArrayLimit","_nonIterableRest","_s","_e","_arr","_n","_d","parseDimensions","_ref2","parseSheet","dropEmptyRows","rowMap","_ref$accessor","accessor","_","onlyTrimAtTheEnd","empty","splice","dropEmptyColumns","getData","_dimensions","rightBottom","colsCount","rowsCount","rowIndex","columnIndex","_i2","transformData","readXlsx","getXmlFileContent","sheetId","getSheetId","createSheetNotFoundError","_sheet","_sheet2","sheetsList","join","_typeof","_defineProperties","props","descriptor","_createClass","Constructor","protoProps","staticProps","_classCallCheck","instance","_inherits","subClass","superClass","create","_setPrototypeOf","_createSuper","Derived","hasNativeReflectConstruct","_isNativeReflectConstruct","result","Super","_getPrototypeOf","NewTarget","Reflect","construct","_possibleConstructorReturn","self","_assertThisInitialized","ReferenceError","_wrapNativeSuper","Class","_cache","Map","_isNativeFunction","has","get","Wrapper","_construct","Parent","args","Function","sham","Proxy","Boolean","setPrototypeOf","__proto__","getPrototypeOf","InvalidError","_Error","_super","reason","_this","NumberType","stringifiedValue","isFinite","StringType","BooleanType","DateType","date","DEFAULT_OPTIONS","isColumnOriented","_options","ignoreEmptyRows","validateSchema","schema","transpose","columns","errors","read","error","rows","isEmptyObject","createError","errorMessage","pendingRequiredChecks","_loop","schemaEntry","isNestedSchema","rawValue","notEmpty","array","parseArray","_value","parseValue","required","includeNullValues","prop","_pendingRequiredCheck","parse","parseCustomValue","parseValueOfType","oneOf","validate","message","getBlock","endCharacter","startIndex","substring","_character","block","blocks","index","_getBlock","_getBlock2","_i3","_Object$keys2","entry","convertMapToSchema","_excluded","_objectWithoutProperties","excluded","_objectWithoutPropertiesLoose","sourceSymbolKeys","propertyIsEnumerable","sourceKeys","readXlsxFileContents","entries","convertToJson","readXlsxFile","file","components","DropFileBasic","usuario","titulos","JSON","localStorage","getItem","getEmpresas","methods","Swal","fire","icon","title","text","confirmButtonText","$isLoading","cargoId","perfilCargoId","perfilCargo","Id","Codigo","Version","CargoId","Clasificacion","Critico","Objetivo","Observaciones","Implementacion","FechaActualizacion","Cargo","ResponsableInmediato","ProcesoId","Nivel","Formacion","Experiencia","Funciones","FuncionesyResponsabilidades","contador","funcionesyRespInit","funcionesyRespFin","observacionesIni","observacionesFin","funactual","resactual","objetivoText","objetivosIni","codigoIni","versionIni","ImplementaciónIni","clasificacionIni","funcionId","EducacionTexto","EspecialidadETexto","educacionIni","Educacion","PerfilCargoId","TituloId","Especialidad","Titulo","FormacionIni","Indispensable","Deseable","Descripcion","IndispensableIni","ExperienciaIni","MesesExperiencia","Homologacion","CargoCritico","HomologacionIni","CargoCriticoIni","item","includes","$moment","tz","mesesDataSplit","funcion","responsabilidad","Tipo","Nombre","res0","$store","dispatch","res","status","EducacionObj","getTitulos","titulo","find","nombre","FuncionObj","ExperienciaObj","funcionActual","tipoCompetenciaRes","descripcion","itf","buscaCompe","competenciaId","dataCompetencia","TipoCompetenciaId","EmpresaId","Estado","dataFunRes","FuncionId","CompetenciaId","showToast","$toast","success","position","timeout","closeOnClick","pauseOnFocusLoss","pauseOnHover","draggable","draggablePercent","showCloseButtonOnHover","hideProgressBar","closeButton","rtl","warning","component","onUpload","_t","ref","handleFileChange","class","isFile","fileBackground","triggerFileInput","handleDrop","handleMouseOver","handleMouseLeave","imageUrl","isHovered","directives","rawName","modifiers","restaurar","fileTypes","default","typeFile","computed","backgroundStyle","backgroundImage","backgroundSize","backgroundPosition","backgroundRepeat","extensionOfFileTypes","elment","lastIndexOf","$emit","$refs","fileInput","click","event","selectedFile","validateAndProcessFile","dataTransfer","startsWith","URL","createObjectURL"],"mappings":"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","file":"js/chunk-e5d66bb8.e2f4e550.js","sourcesContent":["export * from \"-!../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--7-oneOf-1-0!../../../node_modules/@vue/cli-service/node_modules/css-loader/dist/cjs.js??ref--7-oneOf-1-1!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/postcss-loader/src/index.js??ref--7-oneOf-1-2!../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./DropFileBasic.vue?vue&type=style&index=0&id=f19e0bfe&prod&scoped=true&lang=css\"","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('card',{staticClass:\"custom-container\"},[_c('div',{staticClass:\"row p-4\"},[_c('div',{staticClass:\"col-12 col-lg-6 mx-auto\"},[_c('form',{staticClass:\"d-flex flex-column align-items-center\",staticStyle:{\"gap\":\"1rem\"},on:{\"submit\":function($event){$event.preventDefault();return _vm.analisisXls()}}},[_c('DropFileBasic',{attrs:{\"loader\":_vm.loader,\"fileTypes\":[\n 'application/vnd.openxmlformats-officedocument.spreadsheetml.sheet',\n ]},on:{\"handleFileData\":_vm.handleFileData}}),_c('div',{staticClass:\"w-100\"},[_c('label',{staticClass:\"form-label\",attrs:{\"for\":\"empresa\"}},[_vm._v(\"Seleccionar empresa\")]),_c('b-form-select',{attrs:{\"id\":\"empresa\",\"required\":\"\",\"value-field\":\"id\",\"text-field\":\"nombre\",\"options\":_vm.listaEmpresas},scopedSlots:_vm._u([{key:\"first\",fn:function(){return [_c('b-form-select-option',{attrs:{\"value\":null,\"disabled\":\"\"}},[_vm._v(\" -- Selecciona una opcion -- \")])]},proxy:true}]),model:{value:(_vm.empresaSel),callback:function ($$v) {_vm.empresaSel=$$v},expression:\"empresaSel\"}})],1),_c('vs-button',[_vm._v(\" Cargar perfil de cargo \")])],1)])])])\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","export default {\n createDocument: function createDocument(content) {\n // if (!content) {\n // \tthrow new Error('No *.xml content')\n // }\n // A weird bug: it won't parse XML unless it's trimmed.\n // https://github.com/catamphetamine/read-excel-file/issues/21\n return new DOMParser().parseFromString(content.trim(), 'text/xml');\n }\n};\n//# sourceMappingURL=xmlBrowser.js.map","// DEFLATE is a complex format; to read this code, you should probably check the RFC first:\n// https://tools.ietf.org/html/rfc1951\n// You may also wish to take a look at the guide I made about this program:\n// https://gist.github.com/101arrowz/253f31eb5abc3d9275ab943003ffecad\n// Some of the following code is similar to that of UZIP.js:\n// https://github.com/photopea/UZIP.js\n// However, the vast majority of the codebase has diverged from UZIP.js to increase performance and reduce bundle size.\n// Sometimes 0 will appear where -1 would be more appropriate. This is because using a uint\n// is better for memory in most engines (I *think*).\nvar ch2 = {};\nvar wk = (function (c, id, msg, transfer, cb) {\n var w = new Worker(ch2[id] || (ch2[id] = URL.createObjectURL(new Blob([\n c + ';addEventListener(\"error\",function(e){e=e.error;postMessage({$e$:[e.message,e.code,e.stack]})})'\n ], { type: 'text/javascript' }))));\n w.onmessage = function (e) {\n var d = e.data, ed = d.$e$;\n if (ed) {\n var err = new Error(ed[0]);\n err['code'] = ed[1];\n err.stack = ed[2];\n cb(err, null);\n }\n else\n cb(null, d);\n };\n w.postMessage(msg, transfer);\n return w;\n});\n\n// aliases for shorter compressed code (most minifers don't do this)\nvar u8 = Uint8Array, u16 = Uint16Array, u32 = Uint32Array;\n// fixed length extra bits\nvar fleb = new u8([0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 2, 2, 2, 2, 3, 3, 3, 3, 4, 4, 4, 4, 5, 5, 5, 5, 0, /* unused */ 0, 0, /* impossible */ 0]);\n// fixed distance extra bits\n// see fleb note\nvar fdeb = new u8([0, 0, 0, 0, 1, 1, 2, 2, 3, 3, 4, 4, 5, 5, 6, 6, 7, 7, 8, 8, 9, 9, 10, 10, 11, 11, 12, 12, 13, 13, /* unused */ 0, 0]);\n// code length index map\nvar clim = new u8([16, 17, 18, 0, 8, 7, 9, 6, 10, 5, 11, 4, 12, 3, 13, 2, 14, 1, 15]);\n// get base, reverse index map from extra bits\nvar freb = function (eb, start) {\n var b = new u16(31);\n for (var i = 0; i < 31; ++i) {\n b[i] = start += 1 << eb[i - 1];\n }\n // numbers here are at max 18 bits\n var r = new u32(b[30]);\n for (var i = 1; i < 30; ++i) {\n for (var j = b[i]; j < b[i + 1]; ++j) {\n r[j] = ((j - b[i]) << 5) | i;\n }\n }\n return [b, r];\n};\nvar _a = freb(fleb, 2), fl = _a[0], revfl = _a[1];\n// we can ignore the fact that the other numbers are wrong; they never happen anyway\nfl[28] = 258, revfl[258] = 28;\nvar _b = freb(fdeb, 0), fd = _b[0], revfd = _b[1];\n// map of value to reverse (assuming 16 bits)\nvar rev = new u16(32768);\nfor (var i = 0; i < 32768; ++i) {\n // reverse table algorithm from SO\n var x = ((i & 0xAAAA) >>> 1) | ((i & 0x5555) << 1);\n x = ((x & 0xCCCC) >>> 2) | ((x & 0x3333) << 2);\n x = ((x & 0xF0F0) >>> 4) | ((x & 0x0F0F) << 4);\n rev[i] = (((x & 0xFF00) >>> 8) | ((x & 0x00FF) << 8)) >>> 1;\n}\n// create huffman tree from u8 \"map\": index -> code length for code index\n// mb (max bits) must be at most 15\n// TODO: optimize/split up?\nvar hMap = (function (cd, mb, r) {\n var s = cd.length;\n // index\n var i = 0;\n // u16 \"map\": index -> # of codes with bit length = index\n var l = new u16(mb);\n // length of cd must be 288 (total # of codes)\n for (; i < s; ++i) {\n if (cd[i])\n ++l[cd[i] - 1];\n }\n // u16 \"map\": index -> minimum code for bit length = index\n var le = new u16(mb);\n for (i = 0; i < mb; ++i) {\n le[i] = (le[i - 1] + l[i - 1]) << 1;\n }\n var co;\n if (r) {\n // u16 \"map\": index -> number of actual bits, symbol for code\n co = new u16(1 << mb);\n // bits to remove for reverser\n var rvb = 15 - mb;\n for (i = 0; i < s; ++i) {\n // ignore 0 lengths\n if (cd[i]) {\n // num encoding both symbol and bits read\n var sv = (i << 4) | cd[i];\n // free bits\n var r_1 = mb - cd[i];\n // start value\n var v = le[cd[i] - 1]++ << r_1;\n // m is end value\n for (var m = v | ((1 << r_1) - 1); v <= m; ++v) {\n // every 16 bit value starting with the code yields the same result\n co[rev[v] >>> rvb] = sv;\n }\n }\n }\n }\n else {\n co = new u16(s);\n for (i = 0; i < s; ++i) {\n if (cd[i]) {\n co[i] = rev[le[cd[i] - 1]++] >>> (15 - cd[i]);\n }\n }\n }\n return co;\n});\n// fixed length tree\nvar flt = new u8(288);\nfor (var i = 0; i < 144; ++i)\n flt[i] = 8;\nfor (var i = 144; i < 256; ++i)\n flt[i] = 9;\nfor (var i = 256; i < 280; ++i)\n flt[i] = 7;\nfor (var i = 280; i < 288; ++i)\n flt[i] = 8;\n// fixed distance tree\nvar fdt = new u8(32);\nfor (var i = 0; i < 32; ++i)\n fdt[i] = 5;\n// fixed length map\nvar flm = /*#__PURE__*/ hMap(flt, 9, 0), flrm = /*#__PURE__*/ hMap(flt, 9, 1);\n// fixed distance map\nvar fdm = /*#__PURE__*/ hMap(fdt, 5, 0), fdrm = /*#__PURE__*/ hMap(fdt, 5, 1);\n// find max of array\nvar max = function (a) {\n var m = a[0];\n for (var i = 1; i < a.length; ++i) {\n if (a[i] > m)\n m = a[i];\n }\n return m;\n};\n// read d, starting at bit p and mask with m\nvar bits = function (d, p, m) {\n var o = (p / 8) | 0;\n return ((d[o] | (d[o + 1] << 8)) >> (p & 7)) & m;\n};\n// read d, starting at bit p continuing for at least 16 bits\nvar bits16 = function (d, p) {\n var o = (p / 8) | 0;\n return ((d[o] | (d[o + 1] << 8) | (d[o + 2] << 16)) >> (p & 7));\n};\n// get end of byte\nvar shft = function (p) { return ((p + 7) / 8) | 0; };\n// typed array slice - allows garbage collector to free original reference,\n// while being more compatible than .slice\nvar slc = function (v, s, e) {\n if (s == null || s < 0)\n s = 0;\n if (e == null || e > v.length)\n e = v.length;\n // can't use .constructor in case user-supplied\n var n = new (v.BYTES_PER_ELEMENT == 2 ? u16 : v.BYTES_PER_ELEMENT == 4 ? u32 : u8)(e - s);\n n.set(v.subarray(s, e));\n return n;\n};\n/**\n * Codes for errors generated within this library\n */\nexport var FlateErrorCode = {\n UnexpectedEOF: 0,\n InvalidBlockType: 1,\n InvalidLengthLiteral: 2,\n InvalidDistance: 3,\n StreamFinished: 4,\n NoStreamHandler: 5,\n InvalidHeader: 6,\n NoCallback: 7,\n InvalidUTF8: 8,\n ExtraFieldTooLong: 9,\n InvalidDate: 10,\n FilenameTooLong: 11,\n StreamFinishing: 12,\n InvalidZipData: 13,\n UnknownCompressionMethod: 14\n};\n// error codes\nvar ec = [\n 'unexpected EOF',\n 'invalid block type',\n 'invalid length/literal',\n 'invalid distance',\n 'stream finished',\n 'no stream handler',\n ,\n 'no callback',\n 'invalid UTF-8 data',\n 'extra field too long',\n 'date not in range 1980-2099',\n 'filename too long',\n 'stream finishing',\n 'invalid zip data'\n // determined by unknown compression method\n];\n;\nvar err = function (ind, msg, nt) {\n var e = new Error(msg || ec[ind]);\n e.code = ind;\n if (Error.captureStackTrace)\n Error.captureStackTrace(e, err);\n if (!nt)\n throw e;\n return e;\n};\n// expands raw DEFLATE data\nvar inflt = function (dat, buf, st) {\n // source length\n var sl = dat.length;\n if (!sl || (st && st.f && !st.l))\n return buf || new u8(0);\n // have to estimate size\n var noBuf = !buf || st;\n // no state\n var noSt = !st || st.i;\n if (!st)\n st = {};\n // Assumes roughly 33% compression ratio average\n if (!buf)\n buf = new u8(sl * 3);\n // ensure buffer can fit at least l elements\n var cbuf = function (l) {\n var bl = buf.length;\n // need to increase size to fit\n if (l > bl) {\n // Double or set to necessary, whichever is greater\n var nbuf = new u8(Math.max(bl * 2, l));\n nbuf.set(buf);\n buf = nbuf;\n }\n };\n // last chunk bitpos bytes\n var final = st.f || 0, pos = st.p || 0, bt = st.b || 0, lm = st.l, dm = st.d, lbt = st.m, dbt = st.n;\n // total bits\n var tbts = sl * 8;\n do {\n if (!lm) {\n // BFINAL - this is only 1 when last chunk is next\n final = bits(dat, pos, 1);\n // type: 0 = no compression, 1 = fixed huffman, 2 = dynamic huffman\n var type = bits(dat, pos + 1, 3);\n pos += 3;\n if (!type) {\n // go to end of byte boundary\n var s = shft(pos) + 4, l = dat[s - 4] | (dat[s - 3] << 8), t = s + l;\n if (t > sl) {\n if (noSt)\n err(0);\n break;\n }\n // ensure size\n if (noBuf)\n cbuf(bt + l);\n // Copy over uncompressed data\n buf.set(dat.subarray(s, t), bt);\n // Get new bitpos, update byte count\n st.b = bt += l, st.p = pos = t * 8, st.f = final;\n continue;\n }\n else if (type == 1)\n lm = flrm, dm = fdrm, lbt = 9, dbt = 5;\n else if (type == 2) {\n // literal lengths\n var hLit = bits(dat, pos, 31) + 257, hcLen = bits(dat, pos + 10, 15) + 4;\n var tl = hLit + bits(dat, pos + 5, 31) + 1;\n pos += 14;\n // length+distance tree\n var ldt = new u8(tl);\n // code length tree\n var clt = new u8(19);\n for (var i = 0; i < hcLen; ++i) {\n // use index map to get real code\n clt[clim[i]] = bits(dat, pos + i * 3, 7);\n }\n pos += hcLen * 3;\n // code lengths bits\n var clb = max(clt), clbmsk = (1 << clb) - 1;\n // code lengths map\n var clm = hMap(clt, clb, 1);\n for (var i = 0; i < tl;) {\n var r = clm[bits(dat, pos, clbmsk)];\n // bits read\n pos += r & 15;\n // symbol\n var s = r >>> 4;\n // code length to copy\n if (s < 16) {\n ldt[i++] = s;\n }\n else {\n // copy count\n var c = 0, n = 0;\n if (s == 16)\n n = 3 + bits(dat, pos, 3), pos += 2, c = ldt[i - 1];\n else if (s == 17)\n n = 3 + bits(dat, pos, 7), pos += 3;\n else if (s == 18)\n n = 11 + bits(dat, pos, 127), pos += 7;\n while (n--)\n ldt[i++] = c;\n }\n }\n // length tree distance tree\n var lt = ldt.subarray(0, hLit), dt = ldt.subarray(hLit);\n // max length bits\n lbt = max(lt);\n // max dist bits\n dbt = max(dt);\n lm = hMap(lt, lbt, 1);\n dm = hMap(dt, dbt, 1);\n }\n else\n err(1);\n if (pos > tbts) {\n if (noSt)\n err(0);\n break;\n }\n }\n // Make sure the buffer can hold this + the largest possible addition\n // Maximum chunk size (practically, theoretically infinite) is 2^17;\n if (noBuf)\n cbuf(bt + 131072);\n var lms = (1 << lbt) - 1, dms = (1 << dbt) - 1;\n var lpos = pos;\n for (;; lpos = pos) {\n // bits read, code\n var c = lm[bits16(dat, pos) & lms], sym = c >>> 4;\n pos += c & 15;\n if (pos > tbts) {\n if (noSt)\n err(0);\n break;\n }\n if (!c)\n err(2);\n if (sym < 256)\n buf[bt++] = sym;\n else if (sym == 256) {\n lpos = pos, lm = null;\n break;\n }\n else {\n var add = sym - 254;\n // no extra bits needed if less\n if (sym > 264) {\n // index\n var i = sym - 257, b = fleb[i];\n add = bits(dat, pos, (1 << b) - 1) + fl[i];\n pos += b;\n }\n // dist\n var d = dm[bits16(dat, pos) & dms], dsym = d >>> 4;\n if (!d)\n err(3);\n pos += d & 15;\n var dt = fd[dsym];\n if (dsym > 3) {\n var b = fdeb[dsym];\n dt += bits16(dat, pos) & ((1 << b) - 1), pos += b;\n }\n if (pos > tbts) {\n if (noSt)\n err(0);\n break;\n }\n if (noBuf)\n cbuf(bt + 131072);\n var end = bt + add;\n for (; bt < end; bt += 4) {\n buf[bt] = buf[bt - dt];\n buf[bt + 1] = buf[bt + 1 - dt];\n buf[bt + 2] = buf[bt + 2 - dt];\n buf[bt + 3] = buf[bt + 3 - dt];\n }\n bt = end;\n }\n }\n st.l = lm, st.p = lpos, st.b = bt, st.f = final;\n if (lm)\n final = 1, st.m = lbt, st.d = dm, st.n = dbt;\n } while (!final);\n return bt == buf.length ? buf : slc(buf, 0, bt);\n};\n// starting at p, write the minimum number of bits that can hold v to d\nvar wbits = function (d, p, v) {\n v <<= p & 7;\n var o = (p / 8) | 0;\n d[o] |= v;\n d[o + 1] |= v >>> 8;\n};\n// starting at p, write the minimum number of bits (>8) that can hold v to d\nvar wbits16 = function (d, p, v) {\n v <<= p & 7;\n var o = (p / 8) | 0;\n d[o] |= v;\n d[o + 1] |= v >>> 8;\n d[o + 2] |= v >>> 16;\n};\n// creates code lengths from a frequency table\nvar hTree = function (d, mb) {\n // Need extra info to make a tree\n var t = [];\n for (var i = 0; i < d.length; ++i) {\n if (d[i])\n t.push({ s: i, f: d[i] });\n }\n var s = t.length;\n var t2 = t.slice();\n if (!s)\n return [et, 0];\n if (s == 1) {\n var v = new u8(t[0].s + 1);\n v[t[0].s] = 1;\n return [v, 1];\n }\n t.sort(function (a, b) { return a.f - b.f; });\n // after i2 reaches last ind, will be stopped\n // freq must be greater than largest possible number of symbols\n t.push({ s: -1, f: 25001 });\n var l = t[0], r = t[1], i0 = 0, i1 = 1, i2 = 2;\n t[0] = { s: -1, f: l.f + r.f, l: l, r: r };\n // efficient algorithm from UZIP.js\n // i0 is lookbehind, i2 is lookahead - after processing two low-freq\n // symbols that combined have high freq, will start processing i2 (high-freq,\n // non-composite) symbols instead\n // see https://reddit.com/r/photopea/comments/ikekht/uzipjs_questions/\n while (i1 != s - 1) {\n l = t[t[i0].f < t[i2].f ? i0++ : i2++];\n r = t[i0 != i1 && t[i0].f < t[i2].f ? i0++ : i2++];\n t[i1++] = { s: -1, f: l.f + r.f, l: l, r: r };\n }\n var maxSym = t2[0].s;\n for (var i = 1; i < s; ++i) {\n if (t2[i].s > maxSym)\n maxSym = t2[i].s;\n }\n // code lengths\n var tr = new u16(maxSym + 1);\n // max bits in tree\n var mbt = ln(t[i1 - 1], tr, 0);\n if (mbt > mb) {\n // more algorithms from UZIP.js\n // TODO: find out how this code works (debt)\n // ind debt\n var i = 0, dt = 0;\n // left cost\n var lft = mbt - mb, cst = 1 << lft;\n t2.sort(function (a, b) { return tr[b.s] - tr[a.s] || a.f - b.f; });\n for (; i < s; ++i) {\n var i2_1 = t2[i].s;\n if (tr[i2_1] > mb) {\n dt += cst - (1 << (mbt - tr[i2_1]));\n tr[i2_1] = mb;\n }\n else\n break;\n }\n dt >>>= lft;\n while (dt > 0) {\n var i2_2 = t2[i].s;\n if (tr[i2_2] < mb)\n dt -= 1 << (mb - tr[i2_2]++ - 1);\n else\n ++i;\n }\n for (; i >= 0 && dt; --i) {\n var i2_3 = t2[i].s;\n if (tr[i2_3] == mb) {\n --tr[i2_3];\n ++dt;\n }\n }\n mbt = mb;\n }\n return [new u8(tr), mbt];\n};\n// get the max length and assign length codes\nvar ln = function (n, l, d) {\n return n.s == -1\n ? Math.max(ln(n.l, l, d + 1), ln(n.r, l, d + 1))\n : (l[n.s] = d);\n};\n// length codes generation\nvar lc = function (c) {\n var s = c.length;\n // Note that the semicolon was intentional\n while (s && !c[--s])\n ;\n var cl = new u16(++s);\n // ind num streak\n var cli = 0, cln = c[0], cls = 1;\n var w = function (v) { cl[cli++] = v; };\n for (var i = 1; i <= s; ++i) {\n if (c[i] == cln && i != s)\n ++cls;\n else {\n if (!cln && cls > 2) {\n for (; cls > 138; cls -= 138)\n w(32754);\n if (cls > 2) {\n w(cls > 10 ? ((cls - 11) << 5) | 28690 : ((cls - 3) << 5) | 12305);\n cls = 0;\n }\n }\n else if (cls > 3) {\n w(cln), --cls;\n for (; cls > 6; cls -= 6)\n w(8304);\n if (cls > 2)\n w(((cls - 3) << 5) | 8208), cls = 0;\n }\n while (cls--)\n w(cln);\n cls = 1;\n cln = c[i];\n }\n }\n return [cl.subarray(0, cli), s];\n};\n// calculate the length of output from tree, code lengths\nvar clen = function (cf, cl) {\n var l = 0;\n for (var i = 0; i < cl.length; ++i)\n l += cf[i] * cl[i];\n return l;\n};\n// writes a fixed block\n// returns the new bit pos\nvar wfblk = function (out, pos, dat) {\n // no need to write 00 as type: TypedArray defaults to 0\n var s = dat.length;\n var o = shft(pos + 2);\n out[o] = s & 255;\n out[o + 1] = s >>> 8;\n out[o + 2] = out[o] ^ 255;\n out[o + 3] = out[o + 1] ^ 255;\n for (var i = 0; i < s; ++i)\n out[o + i + 4] = dat[i];\n return (o + 4 + s) * 8;\n};\n// writes a block\nvar wblk = function (dat, out, final, syms, lf, df, eb, li, bs, bl, p) {\n wbits(out, p++, final);\n ++lf[256];\n var _a = hTree(lf, 15), dlt = _a[0], mlb = _a[1];\n var _b = hTree(df, 15), ddt = _b[0], mdb = _b[1];\n var _c = lc(dlt), lclt = _c[0], nlc = _c[1];\n var _d = lc(ddt), lcdt = _d[0], ndc = _d[1];\n var lcfreq = new u16(19);\n for (var i = 0; i < lclt.length; ++i)\n lcfreq[lclt[i] & 31]++;\n for (var i = 0; i < lcdt.length; ++i)\n lcfreq[lcdt[i] & 31]++;\n var _e = hTree(lcfreq, 7), lct = _e[0], mlcb = _e[1];\n var nlcc = 19;\n for (; nlcc > 4 && !lct[clim[nlcc - 1]]; --nlcc)\n ;\n var flen = (bl + 5) << 3;\n var ftlen = clen(lf, flt) + clen(df, fdt) + eb;\n var dtlen = clen(lf, dlt) + clen(df, ddt) + eb + 14 + 3 * nlcc + clen(lcfreq, lct) + (2 * lcfreq[16] + 3 * lcfreq[17] + 7 * lcfreq[18]);\n if (flen <= ftlen && flen <= dtlen)\n return wfblk(out, p, dat.subarray(bs, bs + bl));\n var lm, ll, dm, dl;\n wbits(out, p, 1 + (dtlen < ftlen)), p += 2;\n if (dtlen < ftlen) {\n lm = hMap(dlt, mlb, 0), ll = dlt, dm = hMap(ddt, mdb, 0), dl = ddt;\n var llm = hMap(lct, mlcb, 0);\n wbits(out, p, nlc - 257);\n wbits(out, p + 5, ndc - 1);\n wbits(out, p + 10, nlcc - 4);\n p += 14;\n for (var i = 0; i < nlcc; ++i)\n wbits(out, p + 3 * i, lct[clim[i]]);\n p += 3 * nlcc;\n var lcts = [lclt, lcdt];\n for (var it = 0; it < 2; ++it) {\n var clct = lcts[it];\n for (var i = 0; i < clct.length; ++i) {\n var len = clct[i] & 31;\n wbits(out, p, llm[len]), p += lct[len];\n if (len > 15)\n wbits(out, p, (clct[i] >>> 5) & 127), p += clct[i] >>> 12;\n }\n }\n }\n else {\n lm = flm, ll = flt, dm = fdm, dl = fdt;\n }\n for (var i = 0; i < li; ++i) {\n if (syms[i] > 255) {\n var len = (syms[i] >>> 18) & 31;\n wbits16(out, p, lm[len + 257]), p += ll[len + 257];\n if (len > 7)\n wbits(out, p, (syms[i] >>> 23) & 31), p += fleb[len];\n var dst = syms[i] & 31;\n wbits16(out, p, dm[dst]), p += dl[dst];\n if (dst > 3)\n wbits16(out, p, (syms[i] >>> 5) & 8191), p += fdeb[dst];\n }\n else {\n wbits16(out, p, lm[syms[i]]), p += ll[syms[i]];\n }\n }\n wbits16(out, p, lm[256]);\n return p + ll[256];\n};\n// deflate options (nice << 13) | chain\nvar deo = /*#__PURE__*/ new u32([65540, 131080, 131088, 131104, 262176, 1048704, 1048832, 2114560, 2117632]);\n// empty\nvar et = /*#__PURE__*/ new u8(0);\n// compresses data into a raw DEFLATE buffer\nvar dflt = function (dat, lvl, plvl, pre, post, lst) {\n var s = dat.length;\n var o = new u8(pre + s + 5 * (1 + Math.ceil(s / 7000)) + post);\n // writing to this writes to the output buffer\n var w = o.subarray(pre, o.length - post);\n var pos = 0;\n if (!lvl || s < 8) {\n for (var i = 0; i <= s; i += 65535) {\n // end\n var e = i + 65535;\n if (e >= s) {\n // write final block\n w[pos >> 3] = lst;\n }\n pos = wfblk(w, pos + 1, dat.subarray(i, e));\n }\n }\n else {\n var opt = deo[lvl - 1];\n var n = opt >>> 13, c = opt & 8191;\n var msk_1 = (1 << plvl) - 1;\n // prev 2-byte val map curr 2-byte val map\n var prev = new u16(32768), head = new u16(msk_1 + 1);\n var bs1_1 = Math.ceil(plvl / 3), bs2_1 = 2 * bs1_1;\n var hsh = function (i) { return (dat[i] ^ (dat[i + 1] << bs1_1) ^ (dat[i + 2] << bs2_1)) & msk_1; };\n // 24576 is an arbitrary number of maximum symbols per block\n // 424 buffer for last block\n var syms = new u32(25000);\n // length/literal freq distance freq\n var lf = new u16(288), df = new u16(32);\n // l/lcnt exbits index l/lind waitdx bitpos\n var lc_1 = 0, eb = 0, i = 0, li = 0, wi = 0, bs = 0;\n for (; i < s; ++i) {\n // hash value\n // deopt when i > s - 3 - at end, deopt acceptable\n var hv = hsh(i);\n // index mod 32768 previous index mod\n var imod = i & 32767, pimod = head[hv];\n prev[imod] = pimod;\n head[hv] = imod;\n // We always should modify head and prev, but only add symbols if\n // this data is not yet processed (\"wait\" for wait index)\n if (wi <= i) {\n // bytes remaining\n var rem = s - i;\n if ((lc_1 > 7000 || li > 24576) && rem > 423) {\n pos = wblk(dat, w, 0, syms, lf, df, eb, li, bs, i - bs, pos);\n li = lc_1 = eb = 0, bs = i;\n for (var j = 0; j < 286; ++j)\n lf[j] = 0;\n for (var j = 0; j < 30; ++j)\n df[j] = 0;\n }\n // len dist chain\n var l = 2, d = 0, ch_1 = c, dif = (imod - pimod) & 32767;\n if (rem > 2 && hv == hsh(i - dif)) {\n var maxn = Math.min(n, rem) - 1;\n var maxd = Math.min(32767, i);\n // max possible length\n // not capped at dif because decompressors implement \"rolling\" index population\n var ml = Math.min(258, rem);\n while (dif <= maxd && --ch_1 && imod != pimod) {\n if (dat[i + l] == dat[i + l - dif]) {\n var nl = 0;\n for (; nl < ml && dat[i + nl] == dat[i + nl - dif]; ++nl)\n ;\n if (nl > l) {\n l = nl, d = dif;\n // break out early when we reach \"nice\" (we are satisfied enough)\n if (nl > maxn)\n break;\n // now, find the rarest 2-byte sequence within this\n // length of literals and search for that instead.\n // Much faster than just using the start\n var mmd = Math.min(dif, nl - 2);\n var md = 0;\n for (var j = 0; j < mmd; ++j) {\n var ti = (i - dif + j + 32768) & 32767;\n var pti = prev[ti];\n var cd = (ti - pti + 32768) & 32767;\n if (cd > md)\n md = cd, pimod = ti;\n }\n }\n }\n // check the previous match\n imod = pimod, pimod = prev[imod];\n dif += (imod - pimod + 32768) & 32767;\n }\n }\n // d will be nonzero only when a match was found\n if (d) {\n // store both dist and len data in one Uint32\n // Make sure this is recognized as a len/dist with 28th bit (2^28)\n syms[li++] = 268435456 | (revfl[l] << 18) | revfd[d];\n var lin = revfl[l] & 31, din = revfd[d] & 31;\n eb += fleb[lin] + fdeb[din];\n ++lf[257 + lin];\n ++df[din];\n wi = i + l;\n ++lc_1;\n }\n else {\n syms[li++] = dat[i];\n ++lf[dat[i]];\n }\n }\n }\n pos = wblk(dat, w, lst, syms, lf, df, eb, li, bs, i - bs, pos);\n // this is the easiest way to avoid needing to maintain state\n if (!lst && pos & 7)\n pos = wfblk(w, pos + 1, et);\n }\n return slc(o, 0, pre + shft(pos) + post);\n};\n// CRC32 table\nvar crct = /*#__PURE__*/ (function () {\n var t = new Int32Array(256);\n for (var i = 0; i < 256; ++i) {\n var c = i, k = 9;\n while (--k)\n c = ((c & 1) && -306674912) ^ (c >>> 1);\n t[i] = c;\n }\n return t;\n})();\n// CRC32\nvar crc = function () {\n var c = -1;\n return {\n p: function (d) {\n // closures have awful performance\n var cr = c;\n for (var i = 0; i < d.length; ++i)\n cr = crct[(cr & 255) ^ d[i]] ^ (cr >>> 8);\n c = cr;\n },\n d: function () { return ~c; }\n };\n};\n// Alder32\nvar adler = function () {\n var a = 1, b = 0;\n return {\n p: function (d) {\n // closures have awful performance\n var n = a, m = b;\n var l = d.length | 0;\n for (var i = 0; i != l;) {\n var e = Math.min(i + 2655, l);\n for (; i < e; ++i)\n m += n += d[i];\n n = (n & 65535) + 15 * (n >> 16), m = (m & 65535) + 15 * (m >> 16);\n }\n a = n, b = m;\n },\n d: function () {\n a %= 65521, b %= 65521;\n return (a & 255) << 24 | (a >>> 8) << 16 | (b & 255) << 8 | (b >>> 8);\n }\n };\n};\n;\n// deflate with opts\nvar dopt = function (dat, opt, pre, post, st) {\n return dflt(dat, opt.level == null ? 6 : opt.level, opt.mem == null ? Math.ceil(Math.max(8, Math.min(13, Math.log(dat.length))) * 1.5) : (12 + opt.mem), pre, post, !st);\n};\n// Walmart object spread\nvar mrg = function (a, b) {\n var o = {};\n for (var k in a)\n o[k] = a[k];\n for (var k in b)\n o[k] = b[k];\n return o;\n};\n// worker clone\n// This is possibly the craziest part of the entire codebase, despite how simple it may seem.\n// The only parameter to this function is a closure that returns an array of variables outside of the function scope.\n// We're going to try to figure out the variable names used in the closure as strings because that is crucial for workerization.\n// We will return an object mapping of true variable name to value (basically, the current scope as a JS object).\n// The reason we can't just use the original variable names is minifiers mangling the toplevel scope.\n// This took me three weeks to figure out how to do.\nvar wcln = function (fn, fnStr, td) {\n var dt = fn();\n var st = fn.toString();\n var ks = st.slice(st.indexOf('[') + 1, st.lastIndexOf(']')).replace(/\\s+/g, '').split(',');\n for (var i = 0; i < dt.length; ++i) {\n var v = dt[i], k = ks[i];\n if (typeof v == 'function') {\n fnStr += ';' + k + '=';\n var st_1 = v.toString();\n if (v.prototype) {\n // for global objects\n if (st_1.indexOf('[native code]') != -1) {\n var spInd = st_1.indexOf(' ', 8) + 1;\n fnStr += st_1.slice(spInd, st_1.indexOf('(', spInd));\n }\n else {\n fnStr += st_1;\n for (var t in v.prototype)\n fnStr += ';' + k + '.prototype.' + t + '=' + v.prototype[t].toString();\n }\n }\n else\n fnStr += st_1;\n }\n else\n td[k] = v;\n }\n return [fnStr, td];\n};\nvar ch = [];\n// clone bufs\nvar cbfs = function (v) {\n var tl = [];\n for (var k in v) {\n if (v[k].buffer) {\n tl.push((v[k] = new v[k].constructor(v[k])).buffer);\n }\n }\n return tl;\n};\n// use a worker to execute code\nvar wrkr = function (fns, init, id, cb) {\n var _a;\n if (!ch[id]) {\n var fnStr = '', td_1 = {}, m = fns.length - 1;\n for (var i = 0; i < m; ++i)\n _a = wcln(fns[i], fnStr, td_1), fnStr = _a[0], td_1 = _a[1];\n ch[id] = wcln(fns[m], fnStr, td_1);\n }\n var td = mrg({}, ch[id][1]);\n return wk(ch[id][0] + ';onmessage=function(e){for(var k in e.data)self[k]=e.data[k];onmessage=' + init.toString() + '}', id, td, cbfs(td), cb);\n};\n// base async inflate fn\nvar bInflt = function () { return [u8, u16, u32, fleb, fdeb, clim, fl, fd, flrm, fdrm, rev, ec, hMap, max, bits, bits16, shft, slc, err, inflt, inflateSync, pbf, gu8]; };\nvar bDflt = function () { return [u8, u16, u32, fleb, fdeb, clim, revfl, revfd, flm, flt, fdm, fdt, rev, deo, et, hMap, wbits, wbits16, hTree, ln, lc, clen, wfblk, wblk, shft, slc, dflt, dopt, deflateSync, pbf]; };\n// gzip extra\nvar gze = function () { return [gzh, gzhl, wbytes, crc, crct]; };\n// gunzip extra\nvar guze = function () { return [gzs, gzl]; };\n// zlib extra\nvar zle = function () { return [zlh, wbytes, adler]; };\n// unzlib extra\nvar zule = function () { return [zlv]; };\n// post buf\nvar pbf = function (msg) { return postMessage(msg, [msg.buffer]); };\n// get u8\nvar gu8 = function (o) { return o && o.size && new u8(o.size); };\n// async helper\nvar cbify = function (dat, opts, fns, init, id, cb) {\n var w = wrkr(fns, init, id, function (err, dat) {\n w.terminate();\n cb(err, dat);\n });\n w.postMessage([dat, opts], opts.consume ? [dat.buffer] : []);\n return function () { w.terminate(); };\n};\n// auto stream\nvar astrm = function (strm) {\n strm.ondata = function (dat, final) { return postMessage([dat, final], [dat.buffer]); };\n return function (ev) { return strm.push(ev.data[0], ev.data[1]); };\n};\n// async stream attach\nvar astrmify = function (fns, strm, opts, init, id) {\n var t;\n var w = wrkr(fns, init, id, function (err, dat) {\n if (err)\n w.terminate(), strm.ondata.call(strm, err);\n else {\n if (dat[1])\n w.terminate();\n strm.ondata.call(strm, err, dat[0], dat[1]);\n }\n });\n w.postMessage(opts);\n strm.push = function (d, f) {\n if (!strm.ondata)\n err(5);\n if (t)\n strm.ondata(err(4, 0, 1), null, !!f);\n w.postMessage([d, t = f], [d.buffer]);\n };\n strm.terminate = function () { w.terminate(); };\n};\n// read 2 bytes\nvar b2 = function (d, b) { return d[b] | (d[b + 1] << 8); };\n// read 4 bytes\nvar b4 = function (d, b) { return (d[b] | (d[b + 1] << 8) | (d[b + 2] << 16) | (d[b + 3] << 24)) >>> 0; };\nvar b8 = function (d, b) { return b4(d, b) + (b4(d, b + 4) * 4294967296); };\n// write bytes\nvar wbytes = function (d, b, v) {\n for (; v; ++b)\n d[b] = v, v >>>= 8;\n};\n// gzip header\nvar gzh = function (c, o) {\n var fn = o.filename;\n c[0] = 31, c[1] = 139, c[2] = 8, c[8] = o.level < 2 ? 4 : o.level == 9 ? 2 : 0, c[9] = 3; // assume Unix\n if (o.mtime != 0)\n wbytes(c, 4, Math.floor(new Date(o.mtime || Date.now()) / 1000));\n if (fn) {\n c[3] = 8;\n for (var i = 0; i <= fn.length; ++i)\n c[i + 10] = fn.charCodeAt(i);\n }\n};\n// gzip footer: -8 to -4 = CRC, -4 to -0 is length\n// gzip start\nvar gzs = function (d) {\n if (d[0] != 31 || d[1] != 139 || d[2] != 8)\n err(6, 'invalid gzip data');\n var flg = d[3];\n var st = 10;\n if (flg & 4)\n st += d[10] | (d[11] << 8) + 2;\n for (var zs = (flg >> 3 & 1) + (flg >> 4 & 1); zs > 0; zs -= !d[st++])\n ;\n return st + (flg & 2);\n};\n// gzip length\nvar gzl = function (d) {\n var l = d.length;\n return ((d[l - 4] | d[l - 3] << 8 | d[l - 2] << 16) | (d[l - 1] << 24)) >>> 0;\n};\n// gzip header length\nvar gzhl = function (o) { return 10 + ((o.filename && (o.filename.length + 1)) || 0); };\n// zlib header\nvar zlh = function (c, o) {\n var lv = o.level, fl = lv == 0 ? 0 : lv < 6 ? 1 : lv == 9 ? 3 : 2;\n c[0] = 120, c[1] = (fl << 6) | (fl ? (32 - 2 * fl) : 1);\n};\n// zlib valid\nvar zlv = function (d) {\n if ((d[0] & 15) != 8 || (d[0] >>> 4) > 7 || ((d[0] << 8 | d[1]) % 31))\n err(6, 'invalid zlib data');\n if (d[1] & 32)\n err(6, 'invalid zlib data: preset dictionaries not supported');\n};\nfunction AsyncCmpStrm(opts, cb) {\n if (!cb && typeof opts == 'function')\n cb = opts, opts = {};\n this.ondata = cb;\n return opts;\n}\n// zlib footer: -4 to -0 is Adler32\n/**\n * Streaming DEFLATE compression\n */\nvar Deflate = /*#__PURE__*/ (function () {\n function Deflate(opts, cb) {\n if (!cb && typeof opts == 'function')\n cb = opts, opts = {};\n this.ondata = cb;\n this.o = opts || {};\n }\n Deflate.prototype.p = function (c, f) {\n this.ondata(dopt(c, this.o, 0, 0, !f), f);\n };\n /**\n * Pushes a chunk to be deflated\n * @param chunk The chunk to push\n * @param final Whether this is the last chunk\n */\n Deflate.prototype.push = function (chunk, final) {\n if (!this.ondata)\n err(5);\n if (this.d)\n err(4);\n this.d = final;\n this.p(chunk, final || false);\n };\n return Deflate;\n}());\nexport { Deflate };\n/**\n * Asynchronous streaming DEFLATE compression\n */\nvar AsyncDeflate = /*#__PURE__*/ (function () {\n function AsyncDeflate(opts, cb) {\n astrmify([\n bDflt,\n function () { return [astrm, Deflate]; }\n ], this, AsyncCmpStrm.call(this, opts, cb), function (ev) {\n var strm = new Deflate(ev.data);\n onmessage = astrm(strm);\n }, 6);\n }\n return AsyncDeflate;\n}());\nexport { AsyncDeflate };\nexport function deflate(data, opts, cb) {\n if (!cb)\n cb = opts, opts = {};\n if (typeof cb != 'function')\n err(7);\n return cbify(data, opts, [\n bDflt,\n ], function (ev) { return pbf(deflateSync(ev.data[0], ev.data[1])); }, 0, cb);\n}\n/**\n * Compresses data with DEFLATE without any wrapper\n * @param data The data to compress\n * @param opts The compression options\n * @returns The deflated version of the data\n */\nexport function deflateSync(data, opts) {\n return dopt(data, opts || {}, 0, 0);\n}\n/**\n * Streaming DEFLATE decompression\n */\nvar Inflate = /*#__PURE__*/ (function () {\n /**\n * Creates an inflation stream\n * @param cb The callback to call whenever data is inflated\n */\n function Inflate(cb) {\n this.s = {};\n this.p = new u8(0);\n this.ondata = cb;\n }\n Inflate.prototype.e = function (c) {\n if (!this.ondata)\n err(5);\n if (this.d)\n err(4);\n var l = this.p.length;\n var n = new u8(l + c.length);\n n.set(this.p), n.set(c, l), this.p = n;\n };\n Inflate.prototype.c = function (final) {\n this.d = this.s.i = final || false;\n var bts = this.s.b;\n var dt = inflt(this.p, this.o, this.s);\n this.ondata(slc(dt, bts, this.s.b), this.d);\n this.o = slc(dt, this.s.b - 32768), this.s.b = this.o.length;\n this.p = slc(this.p, (this.s.p / 8) | 0), this.s.p &= 7;\n };\n /**\n * Pushes a chunk to be inflated\n * @param chunk The chunk to push\n * @param final Whether this is the final chunk\n */\n Inflate.prototype.push = function (chunk, final) {\n this.e(chunk), this.c(final);\n };\n return Inflate;\n}());\nexport { Inflate };\n/**\n * Asynchronous streaming DEFLATE decompression\n */\nvar AsyncInflate = /*#__PURE__*/ (function () {\n /**\n * Creates an asynchronous inflation stream\n * @param cb The callback to call whenever data is deflated\n */\n function AsyncInflate(cb) {\n this.ondata = cb;\n astrmify([\n bInflt,\n function () { return [astrm, Inflate]; }\n ], this, 0, function () {\n var strm = new Inflate();\n onmessage = astrm(strm);\n }, 7);\n }\n return AsyncInflate;\n}());\nexport { AsyncInflate };\nexport function inflate(data, opts, cb) {\n if (!cb)\n cb = opts, opts = {};\n if (typeof cb != 'function')\n err(7);\n return cbify(data, opts, [\n bInflt\n ], function (ev) { return pbf(inflateSync(ev.data[0], gu8(ev.data[1]))); }, 1, cb);\n}\n/**\n * Expands DEFLATE data with no wrapper\n * @param data The data to decompress\n * @param out Where to write the data. Saves memory if you know the decompressed size and provide an output buffer of that length.\n * @returns The decompressed version of the data\n */\nexport function inflateSync(data, out) {\n return inflt(data, out);\n}\n// before you yell at me for not just using extends, my reason is that TS inheritance is hard to workerize.\n/**\n * Streaming GZIP compression\n */\nvar Gzip = /*#__PURE__*/ (function () {\n function Gzip(opts, cb) {\n this.c = crc();\n this.l = 0;\n this.v = 1;\n Deflate.call(this, opts, cb);\n }\n /**\n * Pushes a chunk to be GZIPped\n * @param chunk The chunk to push\n * @param final Whether this is the last chunk\n */\n Gzip.prototype.push = function (chunk, final) {\n Deflate.prototype.push.call(this, chunk, final);\n };\n Gzip.prototype.p = function (c, f) {\n this.c.p(c);\n this.l += c.length;\n var raw = dopt(c, this.o, this.v && gzhl(this.o), f && 8, !f);\n if (this.v)\n gzh(raw, this.o), this.v = 0;\n if (f)\n wbytes(raw, raw.length - 8, this.c.d()), wbytes(raw, raw.length - 4, this.l);\n this.ondata(raw, f);\n };\n return Gzip;\n}());\nexport { Gzip };\n/**\n * Asynchronous streaming GZIP compression\n */\nvar AsyncGzip = /*#__PURE__*/ (function () {\n function AsyncGzip(opts, cb) {\n astrmify([\n bDflt,\n gze,\n function () { return [astrm, Deflate, Gzip]; }\n ], this, AsyncCmpStrm.call(this, opts, cb), function (ev) {\n var strm = new Gzip(ev.data);\n onmessage = astrm(strm);\n }, 8);\n }\n return AsyncGzip;\n}());\nexport { AsyncGzip };\nexport function gzip(data, opts, cb) {\n if (!cb)\n cb = opts, opts = {};\n if (typeof cb != 'function')\n err(7);\n return cbify(data, opts, [\n bDflt,\n gze,\n function () { return [gzipSync]; }\n ], function (ev) { return pbf(gzipSync(ev.data[0], ev.data[1])); }, 2, cb);\n}\n/**\n * Compresses data with GZIP\n * @param data The data to compress\n * @param opts The compression options\n * @returns The gzipped version of the data\n */\nexport function gzipSync(data, opts) {\n if (!opts)\n opts = {};\n var c = crc(), l = data.length;\n c.p(data);\n var d = dopt(data, opts, gzhl(opts), 8), s = d.length;\n return gzh(d, opts), wbytes(d, s - 8, c.d()), wbytes(d, s - 4, l), d;\n}\n/**\n * Streaming GZIP decompression\n */\nvar Gunzip = /*#__PURE__*/ (function () {\n /**\n * Creates a GUNZIP stream\n * @param cb The callback to call whenever data is inflated\n */\n function Gunzip(cb) {\n this.v = 1;\n Inflate.call(this, cb);\n }\n /**\n * Pushes a chunk to be GUNZIPped\n * @param chunk The chunk to push\n * @param final Whether this is the last chunk\n */\n Gunzip.prototype.push = function (chunk, final) {\n Inflate.prototype.e.call(this, chunk);\n if (this.v) {\n var s = this.p.length > 3 ? gzs(this.p) : 4;\n if (s >= this.p.length && !final)\n return;\n this.p = this.p.subarray(s), this.v = 0;\n }\n if (final) {\n if (this.p.length < 8)\n err(6, 'invalid gzip data');\n this.p = this.p.subarray(0, -8);\n }\n // necessary to prevent TS from using the closure value\n // This allows for workerization to function correctly\n Inflate.prototype.c.call(this, final);\n };\n return Gunzip;\n}());\nexport { Gunzip };\n/**\n * Asynchronous streaming GZIP decompression\n */\nvar AsyncGunzip = /*#__PURE__*/ (function () {\n /**\n * Creates an asynchronous GUNZIP stream\n * @param cb The callback to call whenever data is deflated\n */\n function AsyncGunzip(cb) {\n this.ondata = cb;\n astrmify([\n bInflt,\n guze,\n function () { return [astrm, Inflate, Gunzip]; }\n ], this, 0, function () {\n var strm = new Gunzip();\n onmessage = astrm(strm);\n }, 9);\n }\n return AsyncGunzip;\n}());\nexport { AsyncGunzip };\nexport function gunzip(data, opts, cb) {\n if (!cb)\n cb = opts, opts = {};\n if (typeof cb != 'function')\n err(7);\n return cbify(data, opts, [\n bInflt,\n guze,\n function () { return [gunzipSync]; }\n ], function (ev) { return pbf(gunzipSync(ev.data[0])); }, 3, cb);\n}\n/**\n * Expands GZIP data\n * @param data The data to decompress\n * @param out Where to write the data. GZIP already encodes the output size, so providing this doesn't save memory.\n * @returns The decompressed version of the data\n */\nexport function gunzipSync(data, out) {\n return inflt(data.subarray(gzs(data), -8), out || new u8(gzl(data)));\n}\n/**\n * Streaming Zlib compression\n */\nvar Zlib = /*#__PURE__*/ (function () {\n function Zlib(opts, cb) {\n this.c = adler();\n this.v = 1;\n Deflate.call(this, opts, cb);\n }\n /**\n * Pushes a chunk to be zlibbed\n * @param chunk The chunk to push\n * @param final Whether this is the last chunk\n */\n Zlib.prototype.push = function (chunk, final) {\n Deflate.prototype.push.call(this, chunk, final);\n };\n Zlib.prototype.p = function (c, f) {\n this.c.p(c);\n var raw = dopt(c, this.o, this.v && 2, f && 4, !f);\n if (this.v)\n zlh(raw, this.o), this.v = 0;\n if (f)\n wbytes(raw, raw.length - 4, this.c.d());\n this.ondata(raw, f);\n };\n return Zlib;\n}());\nexport { Zlib };\n/**\n * Asynchronous streaming Zlib compression\n */\nvar AsyncZlib = /*#__PURE__*/ (function () {\n function AsyncZlib(opts, cb) {\n astrmify([\n bDflt,\n zle,\n function () { return [astrm, Deflate, Zlib]; }\n ], this, AsyncCmpStrm.call(this, opts, cb), function (ev) {\n var strm = new Zlib(ev.data);\n onmessage = astrm(strm);\n }, 10);\n }\n return AsyncZlib;\n}());\nexport { AsyncZlib };\nexport function zlib(data, opts, cb) {\n if (!cb)\n cb = opts, opts = {};\n if (typeof cb != 'function')\n err(7);\n return cbify(data, opts, [\n bDflt,\n zle,\n function () { return [zlibSync]; }\n ], function (ev) { return pbf(zlibSync(ev.data[0], ev.data[1])); }, 4, cb);\n}\n/**\n * Compress data with Zlib\n * @param data The data to compress\n * @param opts The compression options\n * @returns The zlib-compressed version of the data\n */\nexport function zlibSync(data, opts) {\n if (!opts)\n opts = {};\n var a = adler();\n a.p(data);\n var d = dopt(data, opts, 2, 4);\n return zlh(d, opts), wbytes(d, d.length - 4, a.d()), d;\n}\n/**\n * Streaming Zlib decompression\n */\nvar Unzlib = /*#__PURE__*/ (function () {\n /**\n * Creates a Zlib decompression stream\n * @param cb The callback to call whenever data is inflated\n */\n function Unzlib(cb) {\n this.v = 1;\n Inflate.call(this, cb);\n }\n /**\n * Pushes a chunk to be unzlibbed\n * @param chunk The chunk to push\n * @param final Whether this is the last chunk\n */\n Unzlib.prototype.push = function (chunk, final) {\n Inflate.prototype.e.call(this, chunk);\n if (this.v) {\n if (this.p.length < 2 && !final)\n return;\n this.p = this.p.subarray(2), this.v = 0;\n }\n if (final) {\n if (this.p.length < 4)\n err(6, 'invalid zlib data');\n this.p = this.p.subarray(0, -4);\n }\n // necessary to prevent TS from using the closure value\n // This allows for workerization to function correctly\n Inflate.prototype.c.call(this, final);\n };\n return Unzlib;\n}());\nexport { Unzlib };\n/**\n * Asynchronous streaming Zlib decompression\n */\nvar AsyncUnzlib = /*#__PURE__*/ (function () {\n /**\n * Creates an asynchronous Zlib decompression stream\n * @param cb The callback to call whenever data is deflated\n */\n function AsyncUnzlib(cb) {\n this.ondata = cb;\n astrmify([\n bInflt,\n zule,\n function () { return [astrm, Inflate, Unzlib]; }\n ], this, 0, function () {\n var strm = new Unzlib();\n onmessage = astrm(strm);\n }, 11);\n }\n return AsyncUnzlib;\n}());\nexport { AsyncUnzlib };\nexport function unzlib(data, opts, cb) {\n if (!cb)\n cb = opts, opts = {};\n if (typeof cb != 'function')\n err(7);\n return cbify(data, opts, [\n bInflt,\n zule,\n function () { return [unzlibSync]; }\n ], function (ev) { return pbf(unzlibSync(ev.data[0], gu8(ev.data[1]))); }, 5, cb);\n}\n/**\n * Expands Zlib data\n * @param data The data to decompress\n * @param out Where to write the data. Saves memory if you know the decompressed size and provide an output buffer of that length.\n * @returns The decompressed version of the data\n */\nexport function unzlibSync(data, out) {\n return inflt((zlv(data), data.subarray(2, -4)), out);\n}\n// Default algorithm for compression (used because having a known output size allows faster decompression)\nexport { gzip as compress, AsyncGzip as AsyncCompress };\n// Default algorithm for compression (used because having a known output size allows faster decompression)\nexport { gzipSync as compressSync, Gzip as Compress };\n/**\n * Streaming GZIP, Zlib, or raw DEFLATE decompression\n */\nvar Decompress = /*#__PURE__*/ (function () {\n /**\n * Creates a decompression stream\n * @param cb The callback to call whenever data is decompressed\n */\n function Decompress(cb) {\n this.G = Gunzip;\n this.I = Inflate;\n this.Z = Unzlib;\n this.ondata = cb;\n }\n /**\n * Pushes a chunk to be decompressed\n * @param chunk The chunk to push\n * @param final Whether this is the last chunk\n */\n Decompress.prototype.push = function (chunk, final) {\n if (!this.ondata)\n err(5);\n if (!this.s) {\n if (this.p && this.p.length) {\n var n = new u8(this.p.length + chunk.length);\n n.set(this.p), n.set(chunk, this.p.length);\n }\n else\n this.p = chunk;\n if (this.p.length > 2) {\n var _this_1 = this;\n var cb = function () { _this_1.ondata.apply(_this_1, arguments); };\n this.s = (this.p[0] == 31 && this.p[1] == 139 && this.p[2] == 8)\n ? new this.G(cb)\n : ((this.p[0] & 15) != 8 || (this.p[0] >> 4) > 7 || ((this.p[0] << 8 | this.p[1]) % 31))\n ? new this.I(cb)\n : new this.Z(cb);\n this.s.push(this.p, final);\n this.p = null;\n }\n }\n else\n this.s.push(chunk, final);\n };\n return Decompress;\n}());\nexport { Decompress };\n/**\n * Asynchronous streaming GZIP, Zlib, or raw DEFLATE decompression\n */\nvar AsyncDecompress = /*#__PURE__*/ (function () {\n /**\n * Creates an asynchronous decompression stream\n * @param cb The callback to call whenever data is decompressed\n */\n function AsyncDecompress(cb) {\n this.G = AsyncGunzip;\n this.I = AsyncInflate;\n this.Z = AsyncUnzlib;\n this.ondata = cb;\n }\n /**\n * Pushes a chunk to be decompressed\n * @param chunk The chunk to push\n * @param final Whether this is the last chunk\n */\n AsyncDecompress.prototype.push = function (chunk, final) {\n Decompress.prototype.push.call(this, chunk, final);\n };\n return AsyncDecompress;\n}());\nexport { AsyncDecompress };\nexport function decompress(data, opts, cb) {\n if (!cb)\n cb = opts, opts = {};\n if (typeof cb != 'function')\n err(7);\n return (data[0] == 31 && data[1] == 139 && data[2] == 8)\n ? gunzip(data, opts, cb)\n : ((data[0] & 15) != 8 || (data[0] >> 4) > 7 || ((data[0] << 8 | data[1]) % 31))\n ? inflate(data, opts, cb)\n : unzlib(data, opts, cb);\n}\n/**\n * Expands compressed GZIP, Zlib, or raw DEFLATE data, automatically detecting the format\n * @param data The data to decompress\n * @param out Where to write the data. Saves memory if you know the decompressed size and provide an output buffer of that length.\n * @returns The decompressed version of the data\n */\nexport function decompressSync(data, out) {\n return (data[0] == 31 && data[1] == 139 && data[2] == 8)\n ? gunzipSync(data, out)\n : ((data[0] & 15) != 8 || (data[0] >> 4) > 7 || ((data[0] << 8 | data[1]) % 31))\n ? inflateSync(data, out)\n : unzlibSync(data, out);\n}\n// flatten a directory structure\nvar fltn = function (d, p, t, o) {\n for (var k in d) {\n var val = d[k], n = p + k, op = o;\n if (Array.isArray(val))\n op = mrg(o, val[1]), val = val[0];\n if (val instanceof u8)\n t[n] = [val, op];\n else {\n t[n += '/'] = [new u8(0), op];\n fltn(val, n, t, o);\n }\n }\n};\n// text encoder\nvar te = typeof TextEncoder != 'undefined' && /*#__PURE__*/ new TextEncoder();\n// text decoder\nvar td = typeof TextDecoder != 'undefined' && /*#__PURE__*/ new TextDecoder();\n// text decoder stream\nvar tds = 0;\ntry {\n td.decode(et, { stream: true });\n tds = 1;\n}\ncatch (e) { }\n// decode UTF8\nvar dutf8 = function (d) {\n for (var r = '', i = 0;;) {\n var c = d[i++];\n var eb = (c > 127) + (c > 223) + (c > 239);\n if (i + eb > d.length)\n return [r, slc(d, i - 1)];\n if (!eb)\n r += String.fromCharCode(c);\n else if (eb == 3) {\n c = ((c & 15) << 18 | (d[i++] & 63) << 12 | (d[i++] & 63) << 6 | (d[i++] & 63)) - 65536,\n r += String.fromCharCode(55296 | (c >> 10), 56320 | (c & 1023));\n }\n else if (eb & 1)\n r += String.fromCharCode((c & 31) << 6 | (d[i++] & 63));\n else\n r += String.fromCharCode((c & 15) << 12 | (d[i++] & 63) << 6 | (d[i++] & 63));\n }\n};\n/**\n * Streaming UTF-8 decoding\n */\nvar DecodeUTF8 = /*#__PURE__*/ (function () {\n /**\n * Creates a UTF-8 decoding stream\n * @param cb The callback to call whenever data is decoded\n */\n function DecodeUTF8(cb) {\n this.ondata = cb;\n if (tds)\n this.t = new TextDecoder();\n else\n this.p = et;\n }\n /**\n * Pushes a chunk to be decoded from UTF-8 binary\n * @param chunk The chunk to push\n * @param final Whether this is the last chunk\n */\n DecodeUTF8.prototype.push = function (chunk, final) {\n if (!this.ondata)\n err(5);\n final = !!final;\n if (this.t) {\n this.ondata(this.t.decode(chunk, { stream: true }), final);\n if (final) {\n if (this.t.decode().length)\n err(8);\n this.t = null;\n }\n return;\n }\n if (!this.p)\n err(4);\n var dat = new u8(this.p.length + chunk.length);\n dat.set(this.p);\n dat.set(chunk, this.p.length);\n var _a = dutf8(dat), ch = _a[0], np = _a[1];\n if (final) {\n if (np.length)\n err(8);\n this.p = null;\n }\n else\n this.p = np;\n this.ondata(ch, final);\n };\n return DecodeUTF8;\n}());\nexport { DecodeUTF8 };\n/**\n * Streaming UTF-8 encoding\n */\nvar EncodeUTF8 = /*#__PURE__*/ (function () {\n /**\n * Creates a UTF-8 decoding stream\n * @param cb The callback to call whenever data is encoded\n */\n function EncodeUTF8(cb) {\n this.ondata = cb;\n }\n /**\n * Pushes a chunk to be encoded to UTF-8\n * @param chunk The string data to push\n * @param final Whether this is the last chunk\n */\n EncodeUTF8.prototype.push = function (chunk, final) {\n if (!this.ondata)\n err(5);\n if (this.d)\n err(4);\n this.ondata(strToU8(chunk), this.d = final || false);\n };\n return EncodeUTF8;\n}());\nexport { EncodeUTF8 };\n/**\n * Converts a string into a Uint8Array for use with compression/decompression methods\n * @param str The string to encode\n * @param latin1 Whether or not to interpret the data as Latin-1. This should\n * not need to be true unless decoding a binary string.\n * @returns The string encoded in UTF-8/Latin-1 binary\n */\nexport function strToU8(str, latin1) {\n if (latin1) {\n var ar_1 = new u8(str.length);\n for (var i = 0; i < str.length; ++i)\n ar_1[i] = str.charCodeAt(i);\n return ar_1;\n }\n if (te)\n return te.encode(str);\n var l = str.length;\n var ar = new u8(str.length + (str.length >> 1));\n var ai = 0;\n var w = function (v) { ar[ai++] = v; };\n for (var i = 0; i < l; ++i) {\n if (ai + 5 > ar.length) {\n var n = new u8(ai + 8 + ((l - i) << 1));\n n.set(ar);\n ar = n;\n }\n var c = str.charCodeAt(i);\n if (c < 128 || latin1)\n w(c);\n else if (c < 2048)\n w(192 | (c >> 6)), w(128 | (c & 63));\n else if (c > 55295 && c < 57344)\n c = 65536 + (c & 1023 << 10) | (str.charCodeAt(++i) & 1023),\n w(240 | (c >> 18)), w(128 | ((c >> 12) & 63)), w(128 | ((c >> 6) & 63)), w(128 | (c & 63));\n else\n w(224 | (c >> 12)), w(128 | ((c >> 6) & 63)), w(128 | (c & 63));\n }\n return slc(ar, 0, ai);\n}\n/**\n * Converts a Uint8Array to a string\n * @param dat The data to decode to string\n * @param latin1 Whether or not to interpret the data as Latin-1. This should\n * not need to be true unless encoding to binary string.\n * @returns The original UTF-8/Latin-1 string\n */\nexport function strFromU8(dat, latin1) {\n if (latin1) {\n var r = '';\n for (var i = 0; i < dat.length; i += 16384)\n r += String.fromCharCode.apply(null, dat.subarray(i, i + 16384));\n return r;\n }\n else if (td)\n return td.decode(dat);\n else {\n var _a = dutf8(dat), out = _a[0], ext = _a[1];\n if (ext.length)\n err(8);\n return out;\n }\n}\n;\n// deflate bit flag\nvar dbf = function (l) { return l == 1 ? 3 : l < 6 ? 2 : l == 9 ? 1 : 0; };\n// skip local zip header\nvar slzh = function (d, b) { return b + 30 + b2(d, b + 26) + b2(d, b + 28); };\n// read zip header\nvar zh = function (d, b, z) {\n var fnl = b2(d, b + 28), fn = strFromU8(d.subarray(b + 46, b + 46 + fnl), !(b2(d, b + 8) & 2048)), es = b + 46 + fnl, bs = b4(d, b + 20);\n var _a = z && bs == 4294967295 ? z64e(d, es) : [bs, b4(d, b + 24), b4(d, b + 42)], sc = _a[0], su = _a[1], off = _a[2];\n return [b2(d, b + 10), sc, su, fn, es + b2(d, b + 30) + b2(d, b + 32), off];\n};\n// read zip64 extra field\nvar z64e = function (d, b) {\n for (; b2(d, b) != 1; b += 4 + b2(d, b + 2))\n ;\n return [b8(d, b + 12), b8(d, b + 4), b8(d, b + 20)];\n};\n// extra field length\nvar exfl = function (ex) {\n var le = 0;\n if (ex) {\n for (var k in ex) {\n var l = ex[k].length;\n if (l > 65535)\n err(9);\n le += l + 4;\n }\n }\n return le;\n};\n// write zip header\nvar wzh = function (d, b, f, fn, u, c, ce, co) {\n var fl = fn.length, ex = f.extra, col = co && co.length;\n var exl = exfl(ex);\n wbytes(d, b, ce != null ? 0x2014B50 : 0x4034B50), b += 4;\n if (ce != null)\n d[b++] = 20, d[b++] = f.os;\n d[b] = 20, b += 2; // spec compliance? what's that?\n d[b++] = (f.flag << 1) | (c < 0 && 8), d[b++] = u && 8;\n d[b++] = f.compression & 255, d[b++] = f.compression >> 8;\n var dt = new Date(f.mtime == null ? Date.now() : f.mtime), y = dt.getFullYear() - 1980;\n if (y < 0 || y > 119)\n err(10);\n wbytes(d, b, (y << 25) | ((dt.getMonth() + 1) << 21) | (dt.getDate() << 16) | (dt.getHours() << 11) | (dt.getMinutes() << 5) | (dt.getSeconds() >>> 1)), b += 4;\n if (c != -1) {\n wbytes(d, b, f.crc);\n wbytes(d, b + 4, c < 0 ? -c - 2 : c);\n wbytes(d, b + 8, f.size);\n }\n wbytes(d, b + 12, fl);\n wbytes(d, b + 14, exl), b += 16;\n if (ce != null) {\n wbytes(d, b, col);\n wbytes(d, b + 6, f.attrs);\n wbytes(d, b + 10, ce), b += 14;\n }\n d.set(fn, b);\n b += fl;\n if (exl) {\n for (var k in ex) {\n var exf = ex[k], l = exf.length;\n wbytes(d, b, +k);\n wbytes(d, b + 2, l);\n d.set(exf, b + 4), b += 4 + l;\n }\n }\n if (col)\n d.set(co, b), b += col;\n return b;\n};\n// write zip footer (end of central directory)\nvar wzf = function (o, b, c, d, e) {\n wbytes(o, b, 0x6054B50); // skip disk\n wbytes(o, b + 8, c);\n wbytes(o, b + 10, c);\n wbytes(o, b + 12, d);\n wbytes(o, b + 16, e);\n};\n/**\n * A pass-through stream to keep data uncompressed in a ZIP archive.\n */\nvar ZipPassThrough = /*#__PURE__*/ (function () {\n /**\n * Creates a pass-through stream that can be added to ZIP archives\n * @param filename The filename to associate with this data stream\n */\n function ZipPassThrough(filename) {\n this.filename = filename;\n this.c = crc();\n this.size = 0;\n this.compression = 0;\n }\n /**\n * Processes a chunk and pushes to the output stream. You can override this\n * method in a subclass for custom behavior, but by default this passes\n * the data through. You must call this.ondata(err, chunk, final) at some\n * point in this method.\n * @param chunk The chunk to process\n * @param final Whether this is the last chunk\n */\n ZipPassThrough.prototype.process = function (chunk, final) {\n this.ondata(null, chunk, final);\n };\n /**\n * Pushes a chunk to be added. If you are subclassing this with a custom\n * compression algorithm, note that you must push data from the source\n * file only, pre-compression.\n * @param chunk The chunk to push\n * @param final Whether this is the last chunk\n */\n ZipPassThrough.prototype.push = function (chunk, final) {\n if (!this.ondata)\n err(5);\n this.c.p(chunk);\n this.size += chunk.length;\n if (final)\n this.crc = this.c.d();\n this.process(chunk, final || false);\n };\n return ZipPassThrough;\n}());\nexport { ZipPassThrough };\n// I don't extend because TypeScript extension adds 1kB of runtime bloat\n/**\n * Streaming DEFLATE compression for ZIP archives. Prefer using AsyncZipDeflate\n * for better performance\n */\nvar ZipDeflate = /*#__PURE__*/ (function () {\n /**\n * Creates a DEFLATE stream that can be added to ZIP archives\n * @param filename The filename to associate with this data stream\n * @param opts The compression options\n */\n function ZipDeflate(filename, opts) {\n var _this_1 = this;\n if (!opts)\n opts = {};\n ZipPassThrough.call(this, filename);\n this.d = new Deflate(opts, function (dat, final) {\n _this_1.ondata(null, dat, final);\n });\n this.compression = 8;\n this.flag = dbf(opts.level);\n }\n ZipDeflate.prototype.process = function (chunk, final) {\n try {\n this.d.push(chunk, final);\n }\n catch (e) {\n this.ondata(e, null, final);\n }\n };\n /**\n * Pushes a chunk to be deflated\n * @param chunk The chunk to push\n * @param final Whether this is the last chunk\n */\n ZipDeflate.prototype.push = function (chunk, final) {\n ZipPassThrough.prototype.push.call(this, chunk, final);\n };\n return ZipDeflate;\n}());\nexport { ZipDeflate };\n/**\n * Asynchronous streaming DEFLATE compression for ZIP archives\n */\nvar AsyncZipDeflate = /*#__PURE__*/ (function () {\n /**\n * Creates a DEFLATE stream that can be added to ZIP archives\n * @param filename The filename to associate with this data stream\n * @param opts The compression options\n */\n function AsyncZipDeflate(filename, opts) {\n var _this_1 = this;\n if (!opts)\n opts = {};\n ZipPassThrough.call(this, filename);\n this.d = new AsyncDeflate(opts, function (err, dat, final) {\n _this_1.ondata(err, dat, final);\n });\n this.compression = 8;\n this.flag = dbf(opts.level);\n this.terminate = this.d.terminate;\n }\n AsyncZipDeflate.prototype.process = function (chunk, final) {\n this.d.push(chunk, final);\n };\n /**\n * Pushes a chunk to be deflated\n * @param chunk The chunk to push\n * @param final Whether this is the last chunk\n */\n AsyncZipDeflate.prototype.push = function (chunk, final) {\n ZipPassThrough.prototype.push.call(this, chunk, final);\n };\n return AsyncZipDeflate;\n}());\nexport { AsyncZipDeflate };\n// TODO: Better tree shaking\n/**\n * A zippable archive to which files can incrementally be added\n */\nvar Zip = /*#__PURE__*/ (function () {\n /**\n * Creates an empty ZIP archive to which files can be added\n * @param cb The callback to call whenever data for the generated ZIP archive\n * is available\n */\n function Zip(cb) {\n this.ondata = cb;\n this.u = [];\n this.d = 1;\n }\n /**\n * Adds a file to the ZIP archive\n * @param file The file stream to add\n */\n Zip.prototype.add = function (file) {\n var _this_1 = this;\n if (!this.ondata)\n err(5);\n // finishing or finished\n if (this.d & 2)\n this.ondata(err(4 + (this.d & 1) * 8, 0, 1), null, false);\n else {\n var f = strToU8(file.filename), fl_1 = f.length;\n var com = file.comment, o = com && strToU8(com);\n var u = fl_1 != file.filename.length || (o && (com.length != o.length));\n var hl_1 = fl_1 + exfl(file.extra) + 30;\n if (fl_1 > 65535)\n this.ondata(err(11, 0, 1), null, false);\n var header = new u8(hl_1);\n wzh(header, 0, file, f, u, -1);\n var chks_1 = [header];\n var pAll_1 = function () {\n for (var _i = 0, chks_2 = chks_1; _i < chks_2.length; _i++) {\n var chk = chks_2[_i];\n _this_1.ondata(null, chk, false);\n }\n chks_1 = [];\n };\n var tr_1 = this.d;\n this.d = 0;\n var ind_1 = this.u.length;\n var uf_1 = mrg(file, {\n f: f,\n u: u,\n o: o,\n t: function () {\n if (file.terminate)\n file.terminate();\n },\n r: function () {\n pAll_1();\n if (tr_1) {\n var nxt = _this_1.u[ind_1 + 1];\n if (nxt)\n nxt.r();\n else\n _this_1.d = 1;\n }\n tr_1 = 1;\n }\n });\n var cl_1 = 0;\n file.ondata = function (err, dat, final) {\n if (err) {\n _this_1.ondata(err, dat, final);\n _this_1.terminate();\n }\n else {\n cl_1 += dat.length;\n chks_1.push(dat);\n if (final) {\n var dd = new u8(16);\n wbytes(dd, 0, 0x8074B50);\n wbytes(dd, 4, file.crc);\n wbytes(dd, 8, cl_1);\n wbytes(dd, 12, file.size);\n chks_1.push(dd);\n uf_1.c = cl_1, uf_1.b = hl_1 + cl_1 + 16, uf_1.crc = file.crc, uf_1.size = file.size;\n if (tr_1)\n uf_1.r();\n tr_1 = 1;\n }\n else if (tr_1)\n pAll_1();\n }\n };\n this.u.push(uf_1);\n }\n };\n /**\n * Ends the process of adding files and prepares to emit the final chunks.\n * This *must* be called after adding all desired files for the resulting\n * ZIP file to work properly.\n */\n Zip.prototype.end = function () {\n var _this_1 = this;\n if (this.d & 2) {\n this.ondata(err(4 + (this.d & 1) * 8, 0, 1), null, true);\n return;\n }\n if (this.d)\n this.e();\n else\n this.u.push({\n r: function () {\n if (!(_this_1.d & 1))\n return;\n _this_1.u.splice(-1, 1);\n _this_1.e();\n },\n t: function () { }\n });\n this.d = 3;\n };\n Zip.prototype.e = function () {\n var bt = 0, l = 0, tl = 0;\n for (var _i = 0, _a = this.u; _i < _a.length; _i++) {\n var f = _a[_i];\n tl += 46 + f.f.length + exfl(f.extra) + (f.o ? f.o.length : 0);\n }\n var out = new u8(tl + 22);\n for (var _b = 0, _c = this.u; _b < _c.length; _b++) {\n var f = _c[_b];\n wzh(out, bt, f, f.f, f.u, -f.c - 2, l, f.o);\n bt += 46 + f.f.length + exfl(f.extra) + (f.o ? f.o.length : 0), l += f.b;\n }\n wzf(out, bt, this.u.length, tl, l);\n this.ondata(null, out, true);\n this.d = 2;\n };\n /**\n * A method to terminate any internal workers used by the stream. Subsequent\n * calls to add() will fail.\n */\n Zip.prototype.terminate = function () {\n for (var _i = 0, _a = this.u; _i < _a.length; _i++) {\n var f = _a[_i];\n f.t();\n }\n this.d = 2;\n };\n return Zip;\n}());\nexport { Zip };\nexport function zip(data, opts, cb) {\n if (!cb)\n cb = opts, opts = {};\n if (typeof cb != 'function')\n err(7);\n var r = {};\n fltn(data, '', r, opts);\n var k = Object.keys(r);\n var lft = k.length, o = 0, tot = 0;\n var slft = lft, files = new Array(lft);\n var term = [];\n var tAll = function () {\n for (var i = 0; i < term.length; ++i)\n term[i]();\n };\n var cbd = function (a, b) {\n mt(function () { cb(a, b); });\n };\n mt(function () { cbd = cb; });\n var cbf = function () {\n var out = new u8(tot + 22), oe = o, cdl = tot - o;\n tot = 0;\n for (var i = 0; i < slft; ++i) {\n var f = files[i];\n try {\n var l = f.c.length;\n wzh(out, tot, f, f.f, f.u, l);\n var badd = 30 + f.f.length + exfl(f.extra);\n var loc = tot + badd;\n out.set(f.c, loc);\n wzh(out, o, f, f.f, f.u, l, tot, f.m), o += 16 + badd + (f.m ? f.m.length : 0), tot = loc + l;\n }\n catch (e) {\n return cbd(e, null);\n }\n }\n wzf(out, o, files.length, cdl, oe);\n cbd(null, out);\n };\n if (!lft)\n cbf();\n var _loop_1 = function (i) {\n var fn = k[i];\n var _a = r[fn], file = _a[0], p = _a[1];\n var c = crc(), size = file.length;\n c.p(file);\n var f = strToU8(fn), s = f.length;\n var com = p.comment, m = com && strToU8(com), ms = m && m.length;\n var exl = exfl(p.extra);\n var compression = p.level == 0 ? 0 : 8;\n var cbl = function (e, d) {\n if (e) {\n tAll();\n cbd(e, null);\n }\n else {\n var l = d.length;\n files[i] = mrg(p, {\n size: size,\n crc: c.d(),\n c: d,\n f: f,\n m: m,\n u: s != fn.length || (m && (com.length != ms)),\n compression: compression\n });\n o += 30 + s + exl + l;\n tot += 76 + 2 * (s + exl) + (ms || 0) + l;\n if (!--lft)\n cbf();\n }\n };\n if (s > 65535)\n cbl(err(11, 0, 1), null);\n if (!compression)\n cbl(null, file);\n else if (size < 160000) {\n try {\n cbl(null, deflateSync(file, p));\n }\n catch (e) {\n cbl(e, null);\n }\n }\n else\n term.push(deflate(file, p, cbl));\n };\n // Cannot use lft because it can decrease\n for (var i = 0; i < slft; ++i) {\n _loop_1(i);\n }\n return tAll;\n}\n/**\n * Synchronously creates a ZIP file. Prefer using `zip` for better performance\n * with more than one file.\n * @param data The directory structure for the ZIP archive\n * @param opts The main options, merged with per-file options\n * @returns The generated ZIP archive\n */\nexport function zipSync(data, opts) {\n if (!opts)\n opts = {};\n var r = {};\n var files = [];\n fltn(data, '', r, opts);\n var o = 0;\n var tot = 0;\n for (var fn in r) {\n var _a = r[fn], file = _a[0], p = _a[1];\n var compression = p.level == 0 ? 0 : 8;\n var f = strToU8(fn), s = f.length;\n var com = p.comment, m = com && strToU8(com), ms = m && m.length;\n var exl = exfl(p.extra);\n if (s > 65535)\n err(11);\n var d = compression ? deflateSync(file, p) : file, l = d.length;\n var c = crc();\n c.p(file);\n files.push(mrg(p, {\n size: file.length,\n crc: c.d(),\n c: d,\n f: f,\n m: m,\n u: s != fn.length || (m && (com.length != ms)),\n o: o,\n compression: compression\n }));\n o += 30 + s + exl + l;\n tot += 76 + 2 * (s + exl) + (ms || 0) + l;\n }\n var out = new u8(tot + 22), oe = o, cdl = tot - o;\n for (var i = 0; i < files.length; ++i) {\n var f = files[i];\n wzh(out, f.o, f, f.f, f.u, f.c.length);\n var badd = 30 + f.f.length + exfl(f.extra);\n out.set(f.c, f.o + badd);\n wzh(out, o, f, f.f, f.u, f.c.length, f.o, f.m), o += 16 + badd + (f.m ? f.m.length : 0);\n }\n wzf(out, o, files.length, cdl, oe);\n return out;\n}\n/**\n * Streaming pass-through decompression for ZIP archives\n */\nvar UnzipPassThrough = /*#__PURE__*/ (function () {\n function UnzipPassThrough() {\n }\n UnzipPassThrough.prototype.push = function (data, final) {\n this.ondata(null, data, final);\n };\n UnzipPassThrough.compression = 0;\n return UnzipPassThrough;\n}());\nexport { UnzipPassThrough };\n/**\n * Streaming DEFLATE decompression for ZIP archives. Prefer AsyncZipInflate for\n * better performance.\n */\nvar UnzipInflate = /*#__PURE__*/ (function () {\n /**\n * Creates a DEFLATE decompression that can be used in ZIP archives\n */\n function UnzipInflate() {\n var _this_1 = this;\n this.i = new Inflate(function (dat, final) {\n _this_1.ondata(null, dat, final);\n });\n }\n UnzipInflate.prototype.push = function (data, final) {\n try {\n this.i.push(data, final);\n }\n catch (e) {\n this.ondata(e, null, final);\n }\n };\n UnzipInflate.compression = 8;\n return UnzipInflate;\n}());\nexport { UnzipInflate };\n/**\n * Asynchronous streaming DEFLATE decompression for ZIP archives\n */\nvar AsyncUnzipInflate = /*#__PURE__*/ (function () {\n /**\n * Creates a DEFLATE decompression that can be used in ZIP archives\n */\n function AsyncUnzipInflate(_, sz) {\n var _this_1 = this;\n if (sz < 320000) {\n this.i = new Inflate(function (dat, final) {\n _this_1.ondata(null, dat, final);\n });\n }\n else {\n this.i = new AsyncInflate(function (err, dat, final) {\n _this_1.ondata(err, dat, final);\n });\n this.terminate = this.i.terminate;\n }\n }\n AsyncUnzipInflate.prototype.push = function (data, final) {\n if (this.i.terminate)\n data = slc(data, 0);\n this.i.push(data, final);\n };\n AsyncUnzipInflate.compression = 8;\n return AsyncUnzipInflate;\n}());\nexport { AsyncUnzipInflate };\n/**\n * A ZIP archive decompression stream that emits files as they are discovered\n */\nvar Unzip = /*#__PURE__*/ (function () {\n /**\n * Creates a ZIP decompression stream\n * @param cb The callback to call whenever a file in the ZIP archive is found\n */\n function Unzip(cb) {\n this.onfile = cb;\n this.k = [];\n this.o = {\n 0: UnzipPassThrough\n };\n this.p = et;\n }\n /**\n * Pushes a chunk to be unzipped\n * @param chunk The chunk to push\n * @param final Whether this is the last chunk\n */\n Unzip.prototype.push = function (chunk, final) {\n var _this_1 = this;\n if (!this.onfile)\n err(5);\n if (!this.p)\n err(4);\n if (this.c > 0) {\n var len = Math.min(this.c, chunk.length);\n var toAdd = chunk.subarray(0, len);\n this.c -= len;\n if (this.d)\n this.d.push(toAdd, !this.c);\n else\n this.k[0].push(toAdd);\n chunk = chunk.subarray(len);\n if (chunk.length)\n return this.push(chunk, final);\n }\n else {\n var f = 0, i = 0, is = void 0, buf = void 0;\n if (!this.p.length)\n buf = chunk;\n else if (!chunk.length)\n buf = this.p;\n else {\n buf = new u8(this.p.length + chunk.length);\n buf.set(this.p), buf.set(chunk, this.p.length);\n }\n var l = buf.length, oc = this.c, add = oc && this.d;\n var _loop_2 = function () {\n var _a;\n var sig = b4(buf, i);\n if (sig == 0x4034B50) {\n f = 1, is = i;\n this_1.d = null;\n this_1.c = 0;\n var bf = b2(buf, i + 6), cmp_1 = b2(buf, i + 8), u = bf & 2048, dd = bf & 8, fnl = b2(buf, i + 26), es = b2(buf, i + 28);\n if (l > i + 30 + fnl + es) {\n var chks_3 = [];\n this_1.k.unshift(chks_3);\n f = 2;\n var sc_1 = b4(buf, i + 18), su_1 = b4(buf, i + 22);\n var fn_1 = strFromU8(buf.subarray(i + 30, i += 30 + fnl), !u);\n if (sc_1 == 4294967295) {\n _a = dd ? [-2] : z64e(buf, i), sc_1 = _a[0], su_1 = _a[1];\n }\n else if (dd)\n sc_1 = -1;\n i += es;\n this_1.c = sc_1;\n var d_1;\n var file_1 = {\n name: fn_1,\n compression: cmp_1,\n start: function () {\n if (!file_1.ondata)\n err(5);\n if (!sc_1)\n file_1.ondata(null, et, true);\n else {\n var ctr = _this_1.o[cmp_1];\n if (!ctr)\n file_1.ondata(err(14, 'unknown compression type ' + cmp_1, 1), null, false);\n d_1 = sc_1 < 0 ? new ctr(fn_1) : new ctr(fn_1, sc_1, su_1);\n d_1.ondata = function (err, dat, final) { file_1.ondata(err, dat, final); };\n for (var _i = 0, chks_4 = chks_3; _i < chks_4.length; _i++) {\n var dat = chks_4[_i];\n d_1.push(dat, false);\n }\n if (_this_1.k[0] == chks_3 && _this_1.c)\n _this_1.d = d_1;\n else\n d_1.push(et, true);\n }\n },\n terminate: function () {\n if (d_1 && d_1.terminate)\n d_1.terminate();\n }\n };\n if (sc_1 >= 0)\n file_1.size = sc_1, file_1.originalSize = su_1;\n this_1.onfile(file_1);\n }\n return \"break\";\n }\n else if (oc) {\n if (sig == 0x8074B50) {\n is = i += 12 + (oc == -2 && 8), f = 3, this_1.c = 0;\n return \"break\";\n }\n else if (sig == 0x2014B50) {\n is = i -= 4, f = 3, this_1.c = 0;\n return \"break\";\n }\n }\n };\n var this_1 = this;\n for (; i < l - 4; ++i) {\n var state_1 = _loop_2();\n if (state_1 === \"break\")\n break;\n }\n this.p = et;\n if (oc < 0) {\n var dat = f ? buf.subarray(0, is - 12 - (oc == -2 && 8) - (b4(buf, is - 16) == 0x8074B50 && 4)) : buf.subarray(0, i);\n if (add)\n add.push(dat, !!f);\n else\n this.k[+(f == 2)].push(dat);\n }\n if (f & 2)\n return this.push(buf.subarray(i), final);\n this.p = buf.subarray(i);\n }\n if (final) {\n if (this.c)\n err(13);\n this.p = null;\n }\n };\n /**\n * Registers a decoder with the stream, allowing for files compressed with\n * the compression type provided to be expanded correctly\n * @param decoder The decoder constructor\n */\n Unzip.prototype.register = function (decoder) {\n this.o[decoder.compression] = decoder;\n };\n return Unzip;\n}());\nexport { Unzip };\nvar mt = typeof queueMicrotask == 'function' ? queueMicrotask : typeof setTimeout == 'function' ? setTimeout : function (fn) { fn(); };\nexport function unzip(data, opts, cb) {\n if (!cb)\n cb = opts, opts = {};\n if (typeof cb != 'function')\n err(7);\n var term = [];\n var tAll = function () {\n for (var i = 0; i < term.length; ++i)\n term[i]();\n };\n var files = {};\n var cbd = function (a, b) {\n mt(function () { cb(a, b); });\n };\n mt(function () { cbd = cb; });\n var e = data.length - 22;\n for (; b4(data, e) != 0x6054B50; --e) {\n if (!e || data.length - e > 65558) {\n cbd(err(13, 0, 1), null);\n return tAll;\n }\n }\n ;\n var lft = b2(data, e + 8);\n if (lft) {\n var c = lft;\n var o = b4(data, e + 16);\n var z = o == 4294967295 || c == 65535;\n if (z) {\n var ze = b4(data, e - 12);\n z = b4(data, ze) == 0x6064B50;\n if (z) {\n c = lft = b4(data, ze + 32);\n o = b4(data, ze + 48);\n }\n }\n var fltr = opts && opts.filter;\n var _loop_3 = function (i) {\n var _a = zh(data, o, z), c_1 = _a[0], sc = _a[1], su = _a[2], fn = _a[3], no = _a[4], off = _a[5], b = slzh(data, off);\n o = no;\n var cbl = function (e, d) {\n if (e) {\n tAll();\n cbd(e, null);\n }\n else {\n if (d)\n files[fn] = d;\n if (!--lft)\n cbd(null, files);\n }\n };\n if (!fltr || fltr({\n name: fn,\n size: sc,\n originalSize: su,\n compression: c_1\n })) {\n if (!c_1)\n cbl(null, slc(data, b, b + sc));\n else if (c_1 == 8) {\n var infl = data.subarray(b, b + sc);\n if (sc < 320000) {\n try {\n cbl(null, inflateSync(infl, new u8(su)));\n }\n catch (e) {\n cbl(e, null);\n }\n }\n else\n term.push(inflate(infl, { size: su }, cbl));\n }\n else\n cbl(err(14, 'unknown compression type ' + c_1, 1), null);\n }\n else\n cbl(null, null);\n };\n for (var i = 0; i < c; ++i) {\n _loop_3(i);\n }\n }\n else\n cbd(null, {});\n return tAll;\n}\n/**\n * Synchronously decompresses a ZIP archive. Prefer using `unzip` for better\n * performance with more than one file.\n * @param data The raw compressed ZIP file\n * @param opts The ZIP extraction options\n * @returns The decompressed files\n */\nexport function unzipSync(data, opts) {\n var files = {};\n var e = data.length - 22;\n for (; b4(data, e) != 0x6054B50; --e) {\n if (!e || data.length - e > 65558)\n err(13);\n }\n ;\n var c = b2(data, e + 8);\n if (!c)\n return {};\n var o = b4(data, e + 16);\n var z = o == 4294967295 || c == 65535;\n if (z) {\n var ze = b4(data, e - 12);\n z = b4(data, ze) == 0x6064B50;\n if (z) {\n c = b4(data, ze + 32);\n o = b4(data, ze + 48);\n }\n }\n var fltr = opts && opts.filter;\n for (var i = 0; i < c; ++i) {\n var _a = zh(data, o, z), c_2 = _a[0], sc = _a[1], su = _a[2], fn = _a[3], no = _a[4], off = _a[5], b = slzh(data, off);\n o = no;\n if (!fltr || fltr({\n name: fn,\n size: sc,\n originalSize: su,\n compression: c_2\n })) {\n if (!c_2)\n files[fn] = slc(data, b, b + sc);\n else if (c_2 == 8)\n files[fn] = inflateSync(data.subarray(b, b + sc), new u8(su));\n else\n err(14, 'unknown compression type ' + c_2);\n }\n }\n return files;\n}\n","import { unzipSync, strFromU8 } from 'fflate';\n/**\r\n * Reads XLSX file in a browser.\r\n * @param {(File|Blob|ArrayBuffer)} input - A `File` or an `ArrayBuffer`.\r\n * @return {Promise} Resolves to an object holding XLSX file entries.\r\n */\n\nexport default function unpackXlsxFile(input) {\n if (input instanceof File) {\n return input.arrayBuffer().then(unpackXlsxArrayBuffer);\n }\n\n if (input instanceof Blob) {\n return input.arrayBuffer().then(unpackXlsxArrayBuffer);\n }\n\n return unpackXlsxArrayBuffer(input);\n}\n/**\r\n * Reads XLSX file in a browser from an `ArrayBuffer`.\r\n * @param {ArrayBuffer} input\r\n * @return {Promise} Resolves to an object holding XLSX file entries.\r\n */\n\nfunction unpackXlsxArrayBuffer(arrayBuffer) {\n var archive = new Uint8Array(arrayBuffer);\n var contents = unzipSync(archive);\n return Promise.resolve(getContents(contents)); // return new Promise((resolve, reject) => {\n // \tunzip(archive, (error, contents) => {\n // \t\tif (error) {\n // \t\t\treturn reject(error)\n // \t\t}\n // \t\treturn resolve(getContents(contents))\n // \t})\n // })\n}\n\nfunction getContents(contents) {\n var unzippedFiles = [];\n\n for (var _i = 0, _Object$keys = Object.keys(contents); _i < _Object$keys.length; _i++) {\n var key = _Object$keys[_i];\n unzippedFiles[key] = strFromU8(contents[key]);\n }\n\n return unzippedFiles;\n}\n//# sourceMappingURL=unpackXlsxFileBrowser.js.map","export function findChild(node, tagName) {\n var i = 0;\n\n while (i < node.childNodes.length) {\n var childNode = node.childNodes[i]; // `nodeType: 1` means \"Element\".\n // https://www.w3schools.com/xml/prop_element_nodetype.asp\n\n if (childNode.nodeType === 1 && getTagName(childNode) === tagName) {\n return childNode;\n }\n\n i++;\n }\n}\nexport function findChildren(node, tagName) {\n var results = [];\n var i = 0;\n\n while (i < node.childNodes.length) {\n var childNode = node.childNodes[i]; // `nodeType: 1` means \"Element\".\n // https://www.w3schools.com/xml/prop_element_nodetype.asp\n\n if (childNode.nodeType === 1 && getTagName(childNode) === tagName) {\n results.push(childNode);\n }\n\n i++;\n }\n\n return results;\n}\nexport function forEach(node, tagName, func) {\n // if (typeof tagName === 'function') {\n // \tfunc = tagName\n // \ttagName = undefined\n // }\n var i = 0;\n\n while (i < node.childNodes.length) {\n var childNode = node.childNodes[i];\n\n if (tagName) {\n // `nodeType: 1` means \"Element\".\n // https://www.w3schools.com/xml/prop_element_nodetype.asp\n if (childNode.nodeType === 1 && getTagName(childNode) === tagName) {\n func(childNode, i);\n }\n } else {\n func(childNode, i);\n }\n\n i++;\n }\n}\nexport function map(node, tagName, func) {\n var results = [];\n forEach(node, tagName, function (node, i) {\n results.push(func(node, i));\n });\n return results;\n}\nvar NAMESPACE_REG_EXP = /.+\\:/;\nexport function getTagName(element) {\n // For some weird reason, if an element is declared as,\n // for example, ``, then its `.tagName` will be\n // \"x:sheets\" instead of just \"sheets\".\n // https://gitlab.com/catamphetamine/read-excel-file/-/issues/25\n // Its not clear how to tell it to ignore any namespaces\n // when getting `.tagName`, so just replacing anything\n // before a colon, if any.\n return element.tagName.replace(NAMESPACE_REG_EXP, '');\n} // This function is only used for occasional debug messages.\n\nexport function getOuterXml(node) {\n // `nodeType: 1` means \"Element\".\n // https://www.w3schools.com/xml/prop_element_nodetype.asp\n if (node.nodeType !== 1) {\n return node.textContent;\n }\n\n var xml = '<' + getTagName(node);\n var j = 0;\n\n while (j < node.attributes.length) {\n xml += ' ' + node.attributes[j].name + '=' + '\"' + node.attributes[j].value + '\"';\n j++;\n }\n\n xml += '>';\n var i = 0;\n\n while (i < node.childNodes.length) {\n xml += getOuterXml(node.childNodes[i]);\n i++;\n }\n\n xml += '' + getTagName(node) + '>';\n return xml;\n}\n//# sourceMappingURL=dom.js.map","import { findChild, findChildren, forEach, map, getTagName } from './dom.js'; // Returns an array of cells,\n// each element being an XML DOM element representing a cell.\n\nexport function getCells(document) {\n var worksheet = document.documentElement;\n var sheetData = findChild(worksheet, 'sheetData');\n var cells = [];\n forEach(sheetData, 'row', function (row) {\n forEach(row, 'c', function (cell) {\n cells.push(cell);\n });\n });\n return cells;\n}\nexport function getMergedCells(document) {\n var worksheet = document.documentElement;\n var mergedCells = findChild(worksheet, 'mergeCells');\n var mergedCellsInfo = [];\n\n if (mergedCells) {\n forEach(mergedCells, 'mergeCell', function (mergedCell) {\n mergedCellsInfo.push(mergedCell.getAttribute('ref'));\n });\n }\n\n return mergedCellsInfo;\n}\nexport function getCellValue(document, node) {\n return findChild(node, 'v');\n}\nexport function getCellInlineStringValue(document, node) {\n if (node.firstChild && getTagName(node.firstChild) === 'is' && node.firstChild.firstChild && getTagName(node.firstChild.firstChild) === 't') {\n return node.firstChild.firstChild.textContent;\n }\n}\nexport function getDimensions(document) {\n var worksheet = document.documentElement;\n var dimensions = findChild(worksheet, 'dimension');\n\n if (dimensions) {\n return dimensions.getAttribute('ref');\n }\n}\nexport function getBaseStyles(document) {\n var styleSheet = document.documentElement;\n var cellStyleXfs = findChild(styleSheet, 'cellStyleXfs');\n\n if (cellStyleXfs) {\n return findChildren(cellStyleXfs, 'xf');\n }\n\n return [];\n}\nexport function getCellStyles(document) {\n var styleSheet = document.documentElement;\n var cellXfs = findChild(styleSheet, 'cellXfs');\n\n if (!cellXfs) {\n return [];\n }\n\n return findChildren(cellXfs, 'xf');\n}\nexport function getNumberFormats(document) {\n var styleSheet = document.documentElement;\n var numberFormats = [];\n var numFmts = findChild(styleSheet, 'numFmts');\n\n if (numFmts) {\n return findChildren(numFmts, 'numFmt');\n }\n\n return [];\n}\nexport function getSharedStrings(document) {\n // An `` element can contain a `` (simplest case) or a set of `` (\"rich formatting\") elements having ``.\n // https://docs.microsoft.com/en-us/dotnet/api/documentformat.openxml.spreadsheet.sharedstringitem?redirectedfrom=MSDN&view=openxml-2.8.1\n // http://www.datypic.com/sc/ooxml/e-ssml_si-1.html\n var sst = document.documentElement;\n return map(sst, 'si', function (string) {\n var t = findChild(string, 't');\n\n if (t) {\n return t.textContent;\n }\n\n var value = '';\n forEach(string, 'r', function (r) {\n value += findChild(r, 't').textContent;\n });\n return value;\n });\n}\nexport function getWorkbookProperties(document) {\n var workbook = document.documentElement;\n return findChild(workbook, 'workbookPr');\n}\nexport function getRelationships(document) {\n var relationships = document.documentElement;\n return findChildren(relationships, 'Relationship');\n}\nexport function getSheets(document) {\n var workbook = document.documentElement;\n var sheets = findChild(workbook, 'sheets');\n return findChildren(sheets, 'sheet');\n}\n//# sourceMappingURL=xlsx.js.map","import { getWorkbookProperties, getSheets } from '../xml/xlsx.js'; // I guess `xl/workbook.xml` file should always be present inside the *.xlsx archive.\n\nexport default function parseProperties(content, xml) {\n var book = xml.createDocument(content);\n var properties = {}; // Read `` element to detect whether dates are 1900-based or 1904-based.\n // https://support.microsoft.com/en-gb/help/214330/differences-between-the-1900-and-the-1904-date-system-in-excel\n // http://webapp.docx4java.org/OnlineDemo/ecma376/SpreadsheetML/workbookPr.html\n\n var workbookProperties = getWorkbookProperties(book);\n\n if (workbookProperties && workbookProperties.getAttribute('date1904') === '1') {\n properties.epoch1904 = true;\n } // Get sheets info (indexes, names, if they're available).\n // Example:\n // \n // \n // \n // http://www.datypic.com/sc/ooxml/e-ssml_sheet-1.html\n\n\n properties.sheets = [];\n\n var addSheetInfo = function addSheetInfo(sheet) {\n if (sheet.getAttribute('name')) {\n properties.sheets.push({\n id: sheet.getAttribute('sheetId'),\n name: sheet.getAttribute('name'),\n relationId: sheet.getAttribute('r:id')\n });\n }\n };\n\n getSheets(book).forEach(addSheetInfo);\n return properties;\n}\n//# sourceMappingURL=parseProperties.js.map","import { getRelationships } from '../xml/xlsx.js';\n/**\r\n * Returns sheet file paths.\r\n * Seems that the correct place to look for the `sheetId` -> `filename` mapping\r\n * is `xl/_rels/workbook.xml.rels` file.\r\n * https://github.com/tidyverse/readxl/issues/104\r\n * @param {string} content — `xl/_rels/workbook.xml.rels` file contents.\r\n * @param {object} xml\r\n * @return {object}\r\n */\n\nexport default function parseFilePaths(content, xml) {\n // Example:\n // \n // ...\n // \n // \n var document = xml.createDocument(content);\n var filePaths = {\n sheets: {},\n sharedStrings: undefined,\n styles: undefined\n };\n\n var addFilePathInfo = function addFilePathInfo(relationship) {\n var filePath = relationship.getAttribute('Target');\n var fileType = relationship.getAttribute('Type');\n\n switch (fileType) {\n case 'http://schemas.openxmlformats.org/officeDocument/2006/relationships/styles':\n filePaths.styles = getFilePath(filePath);\n break;\n\n case 'http://schemas.openxmlformats.org/officeDocument/2006/relationships/sharedStrings':\n filePaths.sharedStrings = getFilePath(filePath);\n break;\n\n case 'http://schemas.openxmlformats.org/officeDocument/2006/relationships/worksheet':\n filePaths.sheets[relationship.getAttribute('Id')] = getFilePath(filePath);\n break;\n }\n };\n\n getRelationships(document).forEach(addFilePathInfo); // Seems like \"sharedStrings.xml\" is not required to exist.\n // For example, when the spreadsheet doesn't contain any strings.\n // https://github.com/catamphetamine/read-excel-file/issues/85\n // if (!filePaths.sharedStrings) {\n // throw new Error('\"sharedStrings.xml\" file not found in the *.xlsx file')\n // }\n\n return filePaths;\n}\n\nfunction getFilePath(path) {\n // Normally, `path` is a relative path inside the ZIP archive,\n // like \"worksheets/sheet1.xml\", or \"sharedStrings.xml\", or \"styles.xml\".\n // There has been one weird case when file path was an absolute path,\n // like \"/xl/worksheets/sheet1.xml\" (specifically for sheets):\n // https://github.com/catamphetamine/read-excel-file/pull/95\n // Other libraries (like `xlsx`) and software (like Google Docs)\n // seem to support such absolute file paths, so this library does too.\n if (path[0] === '/') {\n return path.slice('/'.length);\n } // // Seems like a path could also be a URL.\n // // http://officeopenxml.com/anatomyofOOXML-xlsx.php\n // if (/^[a-z]+\\:\\/\\//.test(path)) {\n // return path\n // }\n\n\n return 'xl/' + path;\n}\n//# sourceMappingURL=parseFilePaths.js.map","function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nimport { getBaseStyles, getCellStyles, getNumberFormats } from '../xml/xlsx.js'; // http://officeopenxml.com/SSstyles.php\n// Returns an array of cell styles.\n// A cell style index is its ID.\n\nexport default function parseStyles(content, xml) {\n if (!content) {\n return {};\n } // https://social.msdn.microsoft.com/Forums/sqlserver/en-US/708978af-b598-45c4-a598-d3518a5a09f0/howwhen-is-cellstylexfs-vs-cellxfs-applied-to-a-cell?forum=os_binaryfile\n // https://www.office-forums.com/threads/cellxfs-cellstylexfs.2163519/\n\n\n var doc = xml.createDocument(content);\n var baseStyles = getBaseStyles(doc).map(parseCellStyle);\n var numberFormats = getNumberFormats(doc).map(parseNumberFormatStyle).reduce(function (formats, format) {\n // Format ID is a numeric index.\n // There're some standard \"built-in\" formats (in Excel) up to about `100`.\n formats[format.id] = format;\n return formats;\n }, []);\n\n var getCellStyle = function getCellStyle(xf) {\n if (xf.hasAttribute('xfId')) {\n return _objectSpread(_objectSpread({}, baseStyles[xf.xfId]), parseCellStyle(xf, numberFormats));\n }\n\n return parseCellStyle(xf, numberFormats);\n };\n\n return getCellStyles(doc).map(getCellStyle);\n}\n\nfunction parseNumberFormatStyle(numFmt) {\n return {\n id: numFmt.getAttribute('numFmtId'),\n template: numFmt.getAttribute('formatCode')\n };\n} // http://www.datypic.com/sc/ooxml/e-ssml_xf-2.html\n\n\nfunction parseCellStyle(xf, numFmts) {\n var style = {};\n\n if (xf.hasAttribute('numFmtId')) {\n var numberFormatId = xf.getAttribute('numFmtId'); // Built-in number formats don't have a `` element in `styles.xml`.\n // https://hexdocs.pm/xlsxir/number_styles.html\n\n if (numFmts[numberFormatId]) {\n style.numberFormat = numFmts[numberFormatId];\n } else {\n style.numberFormat = {\n id: numberFormatId\n };\n }\n }\n\n return style;\n}\n//# sourceMappingURL=parseStyles.js.map","import { getSharedStrings } from '../xml/xlsx.js';\nexport default function parseSharedStrings(content, xml) {\n if (!content) {\n return [];\n }\n\n return getSharedStrings(xml.createDocument(content));\n}\n//# sourceMappingURL=parseSharedStrings.js.map","// Parses an Excel Date (\"serial\") into a corresponding javascript Date in UTC+0 timezone.\n// (with time equal to 00:00)\n//\n// https://www.pcworld.com/article/3063622/software/mastering-excel-date-time-serial-numbers-networkdays-datevalue-and-more.html\n// \"If you need to calculate dates in your spreadsheets,\n// Excel uses its own unique system, which it calls Serial Numbers\".\n//\nexport default function parseExcelDate(excelSerialDate, options) {\n // https://support.microsoft.com/en-gb/help/214330/differences-between-the-1900-and-the-1904-date-system-in-excel\n if (options && options.epoch1904) {\n excelSerialDate += 1462;\n } // \"Excel serial date\" is just\n // the count of days since `01/01/1900`\n // (seems that it may be even fractional).\n //\n // The count of days elapsed\n // since `01/01/1900` (Excel epoch)\n // till `01/01/1970` (Unix epoch).\n // Accounts for leap years\n // (19 of them, yielding 19 extra days).\n\n\n var daysBeforeUnixEpoch = 70 * 365 + 19; // An hour, approximately, because a minute\n // may be longer than 60 seconds, due to \"leap seconds\".\n //\n // Still, Javascript `Date` (and UNIX time in general) intentionally\n // drops the concept of \"leap seconds\" in order to make things simpler.\n // So it's fine.\n // https://stackoverflow.com/questions/53019726/where-are-the-leap-seconds-in-javascript\n //\n // \"The JavaScript Date object specifically adheres to the concept of Unix Time\n // (albeit with higher precision). This is part of the POSIX specification,\n // and thus is sometimes called \"POSIX Time\". It does not count leap seconds,\n // but rather assumes every day had exactly 86,400 seconds. You can read about\n // this in section 20.3.1.1 of the current ECMAScript specification, which states:\n //\n // \"Time is measured in ECMAScript in milliseconds since 01 January, 1970 UTC.\n // In time values leap seconds are ignored. It is assumed that there are exactly\n // 86,400,000 milliseconds per day.\"\n //\n // The fact is, that the unpredictable nature of leap seconds makes them very\n // difficult to work with in APIs. One can't generally pass timestamps around\n // that need leap seconds tables to be interpreted correctly, and expect that\n // one system will interpret them the same as another. For example, while your\n // example timestamp 1483228826 is 2017-01-01T00:00:00Z on your system,\n // it would be interpreted as 2017-01-01T00:00:26Z on POSIX based systems,\n // or systems without leap second tables. So they aren't portable.\n // Even on systems that have full updated tables, there's no telling what those\n // tables will contain in the future (beyond the 6-month IERS announcement period),\n // so I can't produce a future timestamp without risk that it may eventually change.\n //\n // To be clear - to support leap seconds in a programming language, the implementation\n // must go out of its way to do so, and must make tradeoffs that are not always acceptable.\n // Though there are exceptions, the general position is to not support them - not because\n // of any subversion or active countermeasures, but because supporting them properly is much,\n // much harder.\"\n //\n // https://en.wikipedia.org/wiki/Unix_time#Leap_seconds\n // https://en.wikipedia.org/wiki/Leap_year\n // https://en.wikipedia.org/wiki/Leap_second\n //\n\n var hour = 60 * 60 * 1000;\n return new Date(Math.round((excelSerialDate - daysBeforeUnixEpoch) * 24 * hour));\n}\n//# sourceMappingURL=parseDate.js.map","function _createForOfIteratorHelperLoose(o, allowArrayLike) { var it = typeof Symbol !== \"undefined\" && o[Symbol.iterator] || o[\"@@iterator\"]; if (it) return (it = it.call(o)).next.bind(it); if (Array.isArray(o) || (it = _unsupportedIterableToArray(o)) || allowArrayLike && o && typeof o.length === \"number\") { if (it) o = it; var i = 0; return function () { if (i >= o.length) return { done: true }; return { done: false, value: o[i++] }; }; } throw new TypeError(\"Invalid attempt to iterate non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); }\n\nfunction _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === \"string\") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === \"Object\" && o.constructor) n = o.constructor.name; if (n === \"Map\" || n === \"Set\") return Array.from(o); if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }\n\nfunction _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; }\n\n// XLSX does have \"d\" type for dates, but it's not commonly used.\n// Instead, it prefers using \"n\" type for storing dates as timestamps.\n//\n// Whether a numeric value is a number or a date timestamp, it sometimes could be\n// detected by looking at the value \"format\" and seeing if it's a date-specific one.\n// https://github.com/catamphetamine/read-excel-file/issues/3#issuecomment-395770777\n//\n// The list of generic numeric value \"formats\":\n// https://xlsxwriter.readthedocs.io/format.html#format-set-num-format\n//\nexport default function isDateTimestamp(styleId, styles, options) {\n if (styleId) {\n var style = styles[styleId];\n\n if (!style) {\n throw new Error(\"Cell style not found: \".concat(styleId));\n }\n\n if (!style.numberFormat) {\n return false;\n }\n\n if ( // Whether it's a \"number format\" that's conventionally used for storing date timestamps.\n BUILT_IN_DATE_NUMBER_FORMAT_IDS.indexOf(Number(style.numberFormat.id)) >= 0 || // Whether it's a \"number format\" that uses a \"formatting template\"\n // that the developer is certain is a date formatting template.\n options.dateFormat && style.numberFormat.template === options.dateFormat || // Whether the \"smart formatting template\" feature is not disabled\n // and it has detected that it's a date formatting template by looking at it.\n options.smartDateParser !== false && style.numberFormat.template && isDateTemplate(style.numberFormat.template)) {\n return true;\n }\n }\n} // https://hexdocs.pm/xlsxir/number_styles.html\n\nvar BUILT_IN_DATE_NUMBER_FORMAT_IDS = [14, 15, 16, 17, 18, 19, 20, 21, 22, 27, 30, 36, 45, 46, 47, 50, 57]; // On some date formats, there's an \"[$-414]\" prefix.\n// I don't have any idea what that is.\n//\n// https://stackoverflow.com/questions/4730152/what-indicates-an-office-open-xml-cell-contains-a-date-time-value\n//\n// Examples:\n//\n// * 27 (built-in format) \"[$-404]e/m/d\"\n// * 164 (custom format) \"[$-414]mmmm\\ yyyy;@\"\n//\n\nvar DATE_FORMAT_WEIRD_PREFIX = /^\\[\\$-414\\]/; // On some date formats, there's an \";@\" postfix.\n// I don't have any idea what that is.\n// Examples:\n//\n// * 164 (custom format) \"m/d/yyyy;@\"\n// * 164 (custom format) \"[$-414]mmmm\\ yyyy;@\"\n//\n\nvar DATE_FORMAT_WEIRD_POSTFIX = /;@$/;\n\nfunction isDateTemplate(template) {\n // Date format tokens could be in upper case or in lower case.\n // There seems to be no single standard.\n // So lowercase the template first.\n template = template.toLowerCase(); // On some date formats, there's an \"[$-414]\" prefix.\n // I don't have any idea what that is. Trim it.\n\n template = template.replace(DATE_FORMAT_WEIRD_PREFIX, ''); // On some date formats, there's an \";@\" postfix.\n // I don't have any idea what that is. Trim it.\n\n template = template.replace(DATE_FORMAT_WEIRD_POSTFIX, '');\n var tokens = template.split(/\\W+/);\n\n for (var _iterator = _createForOfIteratorHelperLoose(tokens), _step; !(_step = _iterator()).done;) {\n var token = _step.value;\n\n if (DATE_TEMPLATE_TOKENS.indexOf(token) < 0) {\n return false;\n }\n }\n\n return true;\n} // These tokens could be in upper case or in lower case.\n// There seems to be no single standard, so using lower case.\n\n\nvar DATE_TEMPLATE_TOKENS = [// Seconds (min two digits). Example: \"05\".\n'ss', // Minutes (min two digits). Example: \"05\". Could also be \"Months\". Weird.\n'mm', // Hours. Example: \"1\".\n'h', // Hours (min two digits). Example: \"01\".\n'hh', // \"AM\" part of \"AM/PM\". Lowercased just in case.\n'am', // \"PM\" part of \"AM/PM\". Lowercased just in case.\n'pm', // Day. Example: \"1\"\n'd', // Day (min two digits). Example: \"01\"\n'dd', // Month (numeric). Example: \"1\".\n'm', // Month (numeric, min two digits). Example: \"01\". Could also be \"Minutes\". Weird.\n'mm', // Month (shortened month name). Example: \"Jan\".\n'mmm', // Month (full month name). Example: \"January\".\n'mmmm', // Two-digit year. Example: \"20\".\n'yy', // Full year. Example: \"2020\".\n'yyyy', // I don't have any idea what \"e\" means.\n// It's used in \"built-in\" XLSX formats:\n// * 27 '[$-404]e/m/d';\n// * 36 '[$-404]e/m/d';\n// * 50 '[$-404]e/m/d';\n// * 57 '[$-404]e/m/d';\n'e'];\n//# sourceMappingURL=isDateTimestamp.js.map","import parseDate from './parseDate.js';\nimport isDateTimestamp from './isDateTimestamp.js'; // Parses a string `value` of a cell.\n\nexport default function parseCellValue(value, type, _ref) {\n var getInlineStringValue = _ref.getInlineStringValue,\n getInlineStringXml = _ref.getInlineStringXml,\n getStyleId = _ref.getStyleId,\n styles = _ref.styles,\n values = _ref.values,\n properties = _ref.properties,\n options = _ref.options;\n\n if (!type) {\n // Default cell type is \"n\" (numeric).\n // http://www.datypic.com/sc/ooxml/t-ssml_CT_Cell.html\n type = 'n';\n } // Available Excel cell types:\n // https://github.com/SheetJS/sheetjs/blob/19620da30be2a7d7b9801938a0b9b1fd3c4c4b00/docbits/52_datatype.md\n //\n // Some other document (seems to be old):\n // http://webapp.docx4java.org/OnlineDemo/ecma376/SpreadsheetML/ST_CellType.html\n //\n\n\n switch (type) {\n // XLSX tends to store all strings as \"shared\" (indexed) ones\n // using \"s\" cell type (for saving on strage space).\n // \"str\" cell type is then generally only used for storing\n // formula-pre-calculated cell values.\n case 'str':\n value = parseString(value, options);\n break;\n // Sometimes, XLSX stores strings as \"inline\" strings rather than \"shared\" (indexed) ones.\n // Perhaps the specification doesn't force it to use one or another.\n // Example: `Test 123`.\n\n case 'inlineStr':\n value = getInlineStringValue();\n\n if (value === undefined) {\n throw new Error(\"Unsupported \\\"inline string\\\" cell value structure: \".concat(getInlineStringXml()));\n }\n\n value = parseString(value, options);\n break;\n // XLSX tends to store string values as \"shared\" (indexed) ones.\n // \"Shared\" strings is a way for an Excel editor to reduce\n // the file size by storing \"commonly used\" strings in a dictionary\n // and then referring to such strings by their index in that dictionary.\n // Example: `0`.\n\n case 's':\n // If a cell has no value then there's no `` element for it.\n // If a `` element exists then it's not empty.\n // The ``alue is a key in the \"shared strings\" dictionary of the\n // XLSX file, so look it up in the `values` dictionary by the numeric key.\n var sharedStringIndex = Number(value);\n\n if (isNaN(sharedStringIndex)) {\n throw new Error(\"Invalid \\\"shared\\\" string index: \".concat(value));\n }\n\n if (sharedStringIndex >= values.length) {\n throw new Error(\"An out-of-bounds \\\"shared\\\" string index: \".concat(value));\n }\n\n value = values[sharedStringIndex];\n value = parseString(value, options);\n break;\n // Boolean (TRUE/FALSE) values are stored as either \"1\" or \"0\"\n // in cells of type \"b\".\n\n case 'b':\n if (value === '1') {\n value = true;\n } else if (value === '0') {\n value = false;\n } else {\n throw new Error(\"Unsupported \\\"boolean\\\" cell value: \".concat(value));\n }\n\n break;\n // XLSX specification seems to support cells of type \"z\":\n // blank \"stub\" cells that should be ignored by data processing utilities.\n\n case 'z':\n value = undefined;\n break;\n // XLSX specification also defines cells of type \"e\" containing a numeric \"error\" code.\n // It's not clear what that means though.\n // They also wrote: \"and `w` property stores its common name\".\n // It's unclear what they meant by that.\n\n case 'e':\n value = decodeError(value);\n break;\n // XLSX supports date cells of type \"d\", though seems like it (almost?) never\n // uses it for storing dates, preferring \"n\" numeric timestamp cells instead.\n // The value of a \"d\" cell is supposedly a string in \"ISO 8601\" format.\n // I haven't seen an XLSX file having such cells.\n // Example: `2021-06-10T00:47:45.700Z`.\n\n case 'd':\n if (value === undefined) {\n break;\n }\n\n var parsedDate = new Date(value);\n\n if (isNaN(parsedDate.valueOf())) {\n throw new Error(\"Unsupported \\\"date\\\" cell value: \".concat(value));\n }\n\n value = parsedDate;\n break;\n // Numeric cells have type \"n\".\n\n case 'n':\n if (value === undefined) {\n break;\n }\n\n var isDateTimestampNumber = isDateTimestamp(getStyleId(), styles, options); // XLSX does have \"d\" type for dates, but it's not commonly used.\n // Instead, it prefers using \"n\" type for storing dates as timestamps.\n\n if (isDateTimestampNumber) {\n // Parse the number from string.\n value = parseNumberDefault(value); // Parse the number as a date timestamp.\n\n value = parseDate(value, properties);\n } else {\n // Parse the number from string.\n // Supports custom parsing function to work around javascript number encoding precision issues.\n // https://gitlab.com/catamphetamine/read-excel-file/-/issues/85\n value = (options.parseNumber || parseNumberDefault)(value);\n }\n\n break;\n\n default:\n throw new TypeError(\"Cell type not supported: \".concat(type));\n } // Convert empty values to `null`.\n\n\n if (value === undefined) {\n value = null;\n }\n\n return value;\n} // Decodes numeric error code to a string code.\n// https://github.com/SheetJS/sheetjs/blob/19620da30be2a7d7b9801938a0b9b1fd3c4c4b00/docbits/52_datatype.md\n\nfunction decodeError(errorCode) {\n // While the error values are determined by the application,\n // the following are some example error values that could be used:\n switch (errorCode) {\n case 0x00:\n return '#NULL!';\n\n case 0x07:\n return '#DIV/0!';\n\n case 0x0F:\n return '#VALUE!';\n\n case 0x17:\n return '#REF!';\n\n case 0x1D:\n return '#NAME?';\n\n case 0x24:\n return '#NUM!';\n\n case 0x2A:\n return '#N/A';\n\n case 0x2B:\n return '#GETTING_DATA';\n\n default:\n // Such error code doesn't exist. I made it up.\n return \"#ERROR_\".concat(errorCode);\n }\n}\n\nfunction parseString(value, options) {\n // In some weird cases, a developer might want to disable\n // the automatic trimming of all strings.\n // For example, leading spaces might express a tree-like hierarchy.\n // https://github.com/catamphetamine/read-excel-file/pull/106#issuecomment-1136062917\n if (options.trim !== false) {\n value = value.trim();\n }\n\n if (value === '') {\n value = undefined;\n }\n\n return value;\n} // Parses a number from string.\n// Throws an error if the number couldn't be parsed.\n// When parsing floating-point number, is affected by\n// the javascript number encoding precision issues:\n// https://www.youtube.com/watch?v=2gIxbTn7GSc\n// https://www.avioconsulting.com/blog/overcoming-javascript-numeric-precision-issues\n\n\nfunction parseNumberDefault(stringifiedNumber) {\n var parsedNumber = Number(stringifiedNumber);\n\n if (isNaN(parsedNumber)) {\n throw new Error(\"Invalid \\\"numeric\\\" cell value: \".concat(stringifiedNumber));\n }\n\n return parsedNumber;\n}\n//# sourceMappingURL=parseCellValue.js.map","// Maps \"A1\"-like coordinates to `{ row, column }` numeric coordinates.\nvar LETTERS = [\"\", \"A\", \"B\", \"C\", \"D\", \"E\", \"F\", \"G\", \"H\", \"I\", \"J\", \"K\", \"L\", \"M\", \"N\", \"O\", \"P\", \"Q\", \"R\", \"S\", \"T\", \"U\", \"V\", \"W\", \"X\", \"Y\", \"Z\"];\nexport function calculateDimensions(cells) {\n var comparator = function comparator(a, b) {\n return a - b;\n };\n\n var allRows = cells.map(function (cell) {\n return cell.row;\n }).sort(comparator);\n var allCols = cells.map(function (cell) {\n return cell.column;\n }).sort(comparator);\n var minRow = allRows[0];\n var maxRow = allRows[allRows.length - 1];\n var minCol = allCols[0];\n var maxCol = allCols[allCols.length - 1];\n return [{\n row: minRow,\n column: minCol\n }, {\n row: maxRow,\n column: maxCol\n }];\n} // Converts a letter coordinate to a digit coordinate.\n// Examples: \"A\" -> 1, \"B\" -> 2, \"Z\" -> 26, \"AA\" -> 27, etc.\n\nfunction columnLettersToNumber(columnLetters) {\n // `for ... of ...` would require Babel polyfill for iterating a string.\n var n = 0;\n var i = 0;\n\n while (i < columnLetters.length) {\n n *= 26;\n n += LETTERS.indexOf(columnLetters[i]);\n i++;\n }\n\n return n;\n}\n\nexport function parseCellCoordinates(coords) {\n // Coordinate examples: \"AA2091\", \"R988\", \"B1\".\n coords = coords.split(/(\\d+)/);\n return [// Row.\n parseInt(coords[1]), // Column.\n columnLettersToNumber(coords[0].trim())];\n}\n//# sourceMappingURL=coordinates.js.map","import parseCellValue from './parseCellValue.js';\nimport { parseCellCoordinates } from './coordinates.js';\nimport { getCellValue, getCellInlineStringValue } from '../xml/xlsx.js';\nimport { getOuterXml } from '../xml/dom.js'; // Example of a ``ell element:\n//\n// \n// string — formula.\n// string — formula pre-computed value.\n// \n// string — an `inlineStr` string (rather than a \"common string\" from a dictionary).\n// \n// \n// ...\n// \n// string\n// \n// \n// string\n// \n// \n// \n// \n// \n// \n// \n// \n// \n//\n\nexport default function parseCell(node, sheet, xml, values, styles, properties, options) {\n var coords = parseCellCoordinates(node.getAttribute('r'));\n var valueElement = getCellValue(sheet, node); // For `xpath`, `value` can be `undefined` while for native `DOMParser` it's `null`.\n // So using `value && ...` instead of `if (value !== undefined) { ... }` here\n // for uniform compatibility with both `xpath` and native `DOMParser`.\n\n var value = valueElement && valueElement.textContent;\n var type;\n\n if (node.hasAttribute('t')) {\n type = node.getAttribute('t');\n }\n\n return {\n row: coords[0],\n column: coords[1],\n value: parseCellValue(value, type, {\n getInlineStringValue: function getInlineStringValue() {\n return getCellInlineStringValue(sheet, node);\n },\n getInlineStringXml: function getInlineStringXml() {\n return getOuterXml(node);\n },\n getStyleId: function getStyleId() {\n return node.getAttribute('s');\n },\n styles: styles,\n values: values,\n properties: properties,\n options: options\n })\n };\n}\n//# sourceMappingURL=parseCell.js.map","import parseCell from './parseCell.js';\nimport { getCells, getMergedCells } from '../xml/xlsx.js';\nexport default function parseCells(sheet, xml, values, styles, properties, options) {\n var cells = getCells(sheet);\n\n if (cells.length === 0) {\n return [];\n } // const mergedCells = getMergedCells(sheet)\n // for (const mergedCell of mergedCells) {\n // const [from, to] = mergedCell.split(':').map(parseCellCoordinates)\n // console.log('Merged Cell.', 'From:', from, 'To:', to)\n // }\n\n\n return cells.map(function (node) {\n return parseCell(node, sheet, xml, values, styles, properties, options);\n });\n}\n//# sourceMappingURL=parseCells.js.map","function _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest(); }\n\nfunction _nonIterableRest() { throw new TypeError(\"Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); }\n\nfunction _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === \"string\") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === \"Object\" && o.constructor) n = o.constructor.name; if (n === \"Map\" || n === \"Set\") return Array.from(o); if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }\n\nfunction _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; }\n\nfunction _iterableToArrayLimit(arr, i) { var _i = arr == null ? null : typeof Symbol !== \"undefined\" && arr[Symbol.iterator] || arr[\"@@iterator\"]; if (_i == null) return; var _arr = []; var _n = true; var _d = false; var _s, _e; try { for (_i = _i.call(arr); !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i[\"return\"] != null) _i[\"return\"](); } finally { if (_d) throw _e; } } return _arr; }\n\nfunction _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }\n\nimport { parseCellCoordinates } from './coordinates.js';\nimport { getDimensions } from '../xml/xlsx.js'; // `dimensions` defines the spreadsheet area containing all non-empty cells.\n// https://docs.microsoft.com/en-us/dotnet/api/documentformat.openxml.spreadsheet.sheetdimension?view=openxml-2.8.1\n\nexport default function parseDimensions(sheet) {\n var dimensions = getDimensions(sheet);\n\n if (dimensions) {\n dimensions = dimensions.split(':').map(parseCellCoordinates).map(function (_ref) {\n var _ref2 = _slicedToArray(_ref, 2),\n row = _ref2[0],\n column = _ref2[1];\n\n return {\n row: row,\n column: column\n };\n }); // Sometimes there can be just a single cell as a spreadsheet's \"dimensions\".\n // For example, the default \"dimensions\" in Apache POI library is \"A1\",\n // meaning that only the first cell in the spreadsheet is used.\n //\n // A quote from Apache POI library:\n // \"Single cell ranges are formatted like single cell references (e.g. 'A1' instead of 'A1:A1').\"\n //\n\n if (dimensions.length === 1) {\n dimensions = [dimensions[0], dimensions[0]];\n }\n\n return dimensions;\n }\n}\n//# sourceMappingURL=parseDimensions.js.map","import parseCells from './parseCells.js';\nimport parseDimensions from './parseDimensions.js';\nimport { calculateDimensions } from './coordinates.js';\nexport default function parseSheet(content, xml, values, styles, properties, options) {\n var sheet = xml.createDocument(content);\n var cells = parseCells(sheet, xml, values, styles, properties, options); // `dimensions` defines the spreadsheet area containing all non-empty cells.\n // https://docs.microsoft.com/en-us/dotnet/api/documentformat.openxml.spreadsheet.sheetdimension?view=openxml-2.8.1\n\n var dimensions = parseDimensions(sheet) || calculateDimensions(cells);\n return {\n cells: cells,\n dimensions: dimensions\n };\n}\n//# sourceMappingURL=parseSheet.js.map","function _createForOfIteratorHelperLoose(o, allowArrayLike) { var it = typeof Symbol !== \"undefined\" && o[Symbol.iterator] || o[\"@@iterator\"]; if (it) return (it = it.call(o)).next.bind(it); if (Array.isArray(o) || (it = _unsupportedIterableToArray(o)) || allowArrayLike && o && typeof o.length === \"number\") { if (it) o = it; var i = 0; return function () { if (i >= o.length) return { done: true }; return { done: false, value: o[i++] }; }; } throw new TypeError(\"Invalid attempt to iterate non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); }\n\nfunction _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === \"string\") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === \"Object\" && o.constructor) n = o.constructor.name; if (n === \"Map\" || n === \"Set\") return Array.from(o); if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }\n\nfunction _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; }\n\nexport default function dropEmptyRows(data) {\n var _ref = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {},\n rowMap = _ref.rowMap,\n _ref$accessor = _ref.accessor,\n accessor = _ref$accessor === void 0 ? function (_) {\n return _;\n } : _ref$accessor,\n onlyTrimAtTheEnd = _ref.onlyTrimAtTheEnd;\n\n // Drop empty rows.\n var i = data.length - 1;\n\n while (i >= 0) {\n // Check if the row is empty.\n var empty = true;\n\n for (var _iterator = _createForOfIteratorHelperLoose(data[i]), _step; !(_step = _iterator()).done;) {\n var cell = _step.value;\n\n if (accessor(cell) !== null) {\n empty = false;\n break;\n }\n } // Remove the empty row.\n\n\n if (empty) {\n data.splice(i, 1);\n\n if (rowMap) {\n rowMap.splice(i, 1);\n }\n } else if (onlyTrimAtTheEnd) {\n break;\n }\n\n i--;\n }\n\n return data;\n}\n//# sourceMappingURL=dropEmptyRows.js.map","function _createForOfIteratorHelperLoose(o, allowArrayLike) { var it = typeof Symbol !== \"undefined\" && o[Symbol.iterator] || o[\"@@iterator\"]; if (it) return (it = it.call(o)).next.bind(it); if (Array.isArray(o) || (it = _unsupportedIterableToArray(o)) || allowArrayLike && o && typeof o.length === \"number\") { if (it) o = it; var i = 0; return function () { if (i >= o.length) return { done: true }; return { done: false, value: o[i++] }; }; } throw new TypeError(\"Invalid attempt to iterate non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); }\n\nfunction _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === \"string\") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === \"Object\" && o.constructor) n = o.constructor.name; if (n === \"Map\" || n === \"Set\") return Array.from(o); if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }\n\nfunction _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; }\n\nexport default function dropEmptyColumns(data) {\n var _ref = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {},\n _ref$accessor = _ref.accessor,\n accessor = _ref$accessor === void 0 ? function (_) {\n return _;\n } : _ref$accessor,\n onlyTrimAtTheEnd = _ref.onlyTrimAtTheEnd;\n\n var i = data[0].length - 1;\n\n while (i >= 0) {\n var empty = true;\n\n for (var _iterator = _createForOfIteratorHelperLoose(data), _step; !(_step = _iterator()).done;) {\n var row = _step.value;\n\n if (accessor(row[i]) !== null) {\n empty = false;\n break;\n }\n }\n\n if (empty) {\n var j = 0;\n\n while (j < data.length) {\n data[j].splice(i, 1);\n j++;\n }\n } else if (onlyTrimAtTheEnd) {\n break;\n }\n\n i--;\n }\n\n return data;\n}\n//# sourceMappingURL=dropEmptyColumns.js.map","function _createForOfIteratorHelperLoose(o, allowArrayLike) { var it = typeof Symbol !== \"undefined\" && o[Symbol.iterator] || o[\"@@iterator\"]; if (it) return (it = it.call(o)).next.bind(it); if (Array.isArray(o) || (it = _unsupportedIterableToArray(o)) || allowArrayLike && o && typeof o.length === \"number\") { if (it) o = it; var i = 0; return function () { if (i >= o.length) return { done: true }; return { done: false, value: o[i++] }; }; } throw new TypeError(\"Invalid attempt to iterate non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); }\n\nfunction _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest(); }\n\nfunction _nonIterableRest() { throw new TypeError(\"Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); }\n\nfunction _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === \"string\") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === \"Object\" && o.constructor) n = o.constructor.name; if (n === \"Map\" || n === \"Set\") return Array.from(o); if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }\n\nfunction _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; }\n\nfunction _iterableToArrayLimit(arr, i) { var _i = arr == null ? null : typeof Symbol !== \"undefined\" && arr[Symbol.iterator] || arr[\"@@iterator\"]; if (_i == null) return; var _arr = []; var _n = true; var _d = false; var _s, _e; try { for (_i = _i.call(arr); !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i[\"return\"] != null) _i[\"return\"](); } finally { if (_d) throw _e; } } return _arr; }\n\nfunction _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }\n\nimport dropEmptyRows from './dropEmptyRows.js';\nimport dropEmptyColumns from './dropEmptyColumns.js';\nexport default function getData(sheet, options) {\n var dimensions = sheet.dimensions,\n cells = sheet.cells; // If the sheet is empty.\n\n if (cells.length === 0) {\n return [];\n }\n\n var _dimensions = _slicedToArray(dimensions, 2),\n leftTop = _dimensions[0],\n rightBottom = _dimensions[1]; // Don't discard empty rows or columns at the start.\n // https://github.com/catamphetamine/read-excel-file/issues/102\n // const colsCount = (rightBottom.column - leftTop.column) + 1\n // const rowsCount = (rightBottom.row - leftTop.row) + 1\n\n\n var colsCount = rightBottom.column;\n var rowsCount = rightBottom.row; // Initialize spreadsheet data structure.\n\n var data = new Array(rowsCount);\n var i = 0;\n\n while (i < rowsCount) {\n data[i] = new Array(colsCount);\n var j = 0;\n\n while (j < colsCount) {\n data[i][j] = null;\n j++;\n }\n\n i++;\n } // Fill in spreadsheet `data`.\n // (this code implies that `cells` aren't necessarily sorted by row and column:\n // maybe that's not correct, this piece code was initially copy-pasted\n // from some other library that used `XPath`)\n\n\n for (var _iterator = _createForOfIteratorHelperLoose(cells), _step; !(_step = _iterator()).done;) {\n var cell = _step.value;\n // Don't discard empty rows or columns at the start.\n // https://github.com/catamphetamine/read-excel-file/issues/102\n // const rowIndex = cell.row - leftTop.row\n // const columnIndex = cell.column - leftTop.column\n var rowIndex = cell.row - 1;\n var columnIndex = cell.column - 1; // Ignore the data in the cell if it's outside of the spreadsheet's \"dimensions\".\n\n if (columnIndex < colsCount && rowIndex < rowsCount) {\n data[rowIndex][columnIndex] = cell.value;\n }\n } // Fill in the row map.\n\n\n var rowMap = options.rowMap;\n\n if (rowMap) {\n var _i2 = 0;\n\n while (_i2 < data.length) {\n rowMap[_i2] = _i2;\n _i2++;\n }\n } // Drop empty columns or rows.\n\n\n data = dropEmptyRows(dropEmptyColumns(data, {\n onlyTrimAtTheEnd: true\n }), {\n onlyTrimAtTheEnd: true,\n rowMap: rowMap\n }); // Optionally transform data before applying `schema`.\n\n if (options.transformData) {\n data = options.transformData(data); // data = options.transformData(data, {\n // dropEmptyRowsAndColumns(data) {\n // return dropEmptyRows(dropEmptyColumns(data), { rowMap })\n // }\n // })\n }\n\n return data;\n}\n//# sourceMappingURL=getData.js.map","function _createForOfIteratorHelperLoose(o, allowArrayLike) { var it = typeof Symbol !== \"undefined\" && o[Symbol.iterator] || o[\"@@iterator\"]; if (it) return (it = it.call(o)).next.bind(it); if (Array.isArray(o) || (it = _unsupportedIterableToArray(o)) || allowArrayLike && o && typeof o.length === \"number\") { if (it) o = it; var i = 0; return function () { if (i >= o.length) return { done: true }; return { done: false, value: o[i++] }; }; } throw new TypeError(\"Invalid attempt to iterate non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); }\n\nfunction _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === \"string\") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === \"Object\" && o.constructor) n = o.constructor.name; if (n === \"Map\" || n === \"Set\") return Array.from(o); if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }\n\nfunction _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; }\n\nfunction ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nimport parseProperties from './parseProperties.js';\nimport parseFilePaths from './parseFilePaths.js';\nimport parseStyles from './parseStyles.js';\nimport parseSharedStrings from './parseSharedStrings.js';\nimport parseSheet from './parseSheet.js';\nimport getData from './getData.js'; // For an introduction in reading `*.xlsx` files see \"The minimum viable XLSX reader\":\n// https://www.brendanlong.com/the-minimum-viable-xlsx-reader.html\n\n/**\r\n * Reads an (unzipped) XLSX file structure into a 2D array of cells.\r\n * @param {object} contents - A list of XML files inside XLSX file (which is a zipped directory).\r\n * @param {number?} options.sheet - Workbook sheet id (`1` by default).\r\n * @param {string?} options.dateFormat - Date format, e.g. \"mm/dd/yyyy\". Values having this format template set will be parsed as dates.\r\n * @param {object} contents - A list of XML files inside XLSX file (which is a zipped directory).\r\n * @return {object} An object of shape `{ data, cells, properties }`. `data: string[][]` is an array of rows, each row being an array of cell values. `cells: string[][]` is an array of rows, each row being an array of cells. `properties: object` is the spreadsheet properties (e.g. whether date epoch is 1904 instead of 1900).\r\n */\n\nexport default function readXlsx(contents, xml) {\n var options = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};\n\n if (!options.sheet) {\n options = _objectSpread({\n sheet: 1\n }, options);\n }\n\n var getXmlFileContent = function getXmlFileContent(filePath) {\n if (!contents[filePath]) {\n throw new Error(\"\\\"\".concat(filePath, \"\\\" file not found inside the *.xlsx file zip archive\"));\n }\n\n return contents[filePath];\n }; // Some Excel editors don't want to use standard naming scheme for sheet files.\n // https://github.com/tidyverse/readxl/issues/104\n\n\n var filePaths = parseFilePaths(getXmlFileContent('xl/_rels/workbook.xml.rels'), xml); // Default file path for \"shared strings\": \"xl/sharedStrings.xml\".\n\n var values = filePaths.sharedStrings ? parseSharedStrings(getXmlFileContent(filePaths.sharedStrings), xml) : []; // Default file path for \"styles\": \"xl/styles.xml\".\n\n var styles = filePaths.styles ? parseStyles(getXmlFileContent(filePaths.styles), xml) : {};\n var properties = parseProperties(getXmlFileContent('xl/workbook.xml'), xml); // A feature for getting the list of sheets in an Excel file.\n // https://github.com/catamphetamine/read-excel-file/issues/14\n\n if (options.getSheets) {\n return properties.sheets.map(function (_ref) {\n var name = _ref.name;\n return {\n name: name\n };\n });\n } // Find the sheet by name, or take the first one.\n\n\n var sheetId = getSheetId(options.sheet, properties.sheets); // If the sheet wasn't found then throw an error.\n // Example: \"xl/worksheets/sheet1.xml\".\n\n if (!sheetId || !filePaths.sheets[sheetId]) {\n throw createSheetNotFoundError(options.sheet, properties.sheets);\n } // Parse sheet data.\n\n\n var sheet = parseSheet(getXmlFileContent(filePaths.sheets[sheetId]), xml, values, styles, properties, options); // Get spreadsheet data.\n\n var data = getData(sheet, options); // Can return properties, if required.\n\n if (options.properties) {\n return {\n data: data,\n properties: properties\n };\n } // Return spreadsheet data.\n\n\n return data;\n}\n\nfunction getSheetId(sheet, sheets) {\n if (typeof sheet === 'number') {\n var _sheet = sheets[sheet - 1];\n return _sheet && _sheet.relationId;\n }\n\n for (var _iterator = _createForOfIteratorHelperLoose(sheets), _step; !(_step = _iterator()).done;) {\n var _sheet2 = _step.value;\n\n if (_sheet2.name === sheet) {\n return _sheet2.relationId;\n }\n }\n}\n\nfunction createSheetNotFoundError(sheet, sheets) {\n var sheetsList = sheets && sheets.map(function (sheet, i) {\n return \"\\\"\".concat(sheet.name, \"\\\" (#\").concat(i + 1, \")\");\n }).join(', ');\n return new Error(\"Sheet \".concat(typeof sheet === 'number' ? '#' + sheet : '\"' + sheet + '\"', \" not found in the *.xlsx file.\").concat(sheets ? ' Available sheets: ' + sheetsList + '.' : ''));\n}\n//# sourceMappingURL=readXlsx.js.map","function _typeof(obj) { \"@babel/helpers - typeof\"; return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (obj) { return typeof obj; } : function (obj) { return obj && \"function\" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }, _typeof(obj); }\n\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }\n\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); Object.defineProperty(Constructor, \"prototype\", { writable: false }); return Constructor; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function\"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); Object.defineProperty(subClass, \"prototype\", { writable: false }); if (superClass) _setPrototypeOf(subClass, superClass); }\n\nfunction _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }\n\nfunction _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) { return call; } else if (call !== void 0) { throw new TypeError(\"Derived constructors may only return object or undefined\"); } return _assertThisInitialized(self); }\n\nfunction _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return self; }\n\nfunction _wrapNativeSuper(Class) { var _cache = typeof Map === \"function\" ? new Map() : undefined; _wrapNativeSuper = function _wrapNativeSuper(Class) { if (Class === null || !_isNativeFunction(Class)) return Class; if (typeof Class !== \"function\") { throw new TypeError(\"Super expression must either be null or a function\"); } if (typeof _cache !== \"undefined\") { if (_cache.has(Class)) return _cache.get(Class); _cache.set(Class, Wrapper); } function Wrapper() { return _construct(Class, arguments, _getPrototypeOf(this).constructor); } Wrapper.prototype = Object.create(Class.prototype, { constructor: { value: Wrapper, enumerable: false, writable: true, configurable: true } }); return _setPrototypeOf(Wrapper, Class); }; return _wrapNativeSuper(Class); }\n\nfunction _construct(Parent, args, Class) { if (_isNativeReflectConstruct()) { _construct = Reflect.construct; } else { _construct = function _construct(Parent, args, Class) { var a = [null]; a.push.apply(a, args); var Constructor = Function.bind.apply(Parent, a); var instance = new Constructor(); if (Class) _setPrototypeOf(instance, Class.prototype); return instance; }; } return _construct.apply(null, arguments); }\n\nfunction _isNativeReflectConstruct() { if (typeof Reflect === \"undefined\" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === \"function\") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }\n\nfunction _isNativeFunction(fn) { return Function.toString.call(fn).indexOf(\"[native code]\") !== -1; }\n\nfunction _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }\n\nfunction _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }\n\nvar InvalidError = /*#__PURE__*/function (_Error) {\n _inherits(InvalidError, _Error);\n\n var _super = _createSuper(InvalidError);\n\n function InvalidError(reason) {\n var _this;\n\n _classCallCheck(this, InvalidError);\n\n _this = _super.call(this, 'invalid');\n _this.reason = reason;\n return _this;\n }\n\n return _createClass(InvalidError);\n}( /*#__PURE__*/_wrapNativeSuper(Error));\n\nexport { InvalidError as default };\n//# sourceMappingURL=InvalidError.js.map","import InvalidError from './InvalidError.js';\nexport default function NumberType(value) {\n // An XLSX file editing software might not always correctly\n // detect numeric values in string-type cells. Users won't bother\n // manually selecting a cell type, so the editing software has to guess\n // based on the user's input. One can assume that such auto-detection\n // might not always work.\n //\n // So, if a cell is supposed to be a numeric one, convert a string value to a number.\n //\n if (typeof value === 'string') {\n var stringifiedValue = value;\n value = Number(value);\n\n if (String(value) !== stringifiedValue) {\n throw new InvalidError('not_a_number');\n }\n }\n\n if (typeof value !== 'number') {\n throw new InvalidError('not_a_number');\n }\n\n if (isNaN(value)) {\n throw new InvalidError('invalid_number');\n } // At this point, `value` can only be a number.\n //\n // The global `isFinite()` function filters out:\n // * NaN\n // * -Infinity\n // * Infinity\n //\n // All other values pass (including non-numbers).\n //\n\n\n if (!isFinite(value)) {\n throw new InvalidError('out_of_bounds');\n }\n\n return value;\n}\n//# sourceMappingURL=Number.js.map","import InvalidError from './InvalidError.js';\nexport default function StringType(value) {\n if (typeof value === 'string') {\n return value;\n } // Excel tends to perform a forced automatic convertion of string-type values\n // to number-type ones when the user has input them. Otherwise, users wouldn't\n // be able to perform formula calculations on those cell values because users\n // won't bother manually choosing a \"numeric\" cell type for each cell, and\n // even if they did, choosing a \"numeric\" cell type every time wouldn't be an\n // acceptable \"user experience\".\n //\n // So, if a cell value is supposed to be a string and Excel has automatically\n // converted it to a number, perform a backwards conversion.\n //\n\n\n if (typeof value === 'number') {\n if (isNaN(value)) {\n throw new InvalidError('invalid_number');\n } // The global `isFinite()` function filters out:\n // * NaN\n // * -Infinity\n // * Infinity\n //\n // All other values pass (including non-numbers).\n //\n\n\n if (!isFinite(value)) {\n throw new InvalidError('out_of_bounds');\n }\n\n return String(value);\n }\n\n throw new InvalidError('not_a_string');\n}\n//# sourceMappingURL=String.js.map","import InvalidError from './InvalidError.js';\nexport default function BooleanType(value) {\n if (typeof value === 'boolean') {\n return value;\n }\n\n throw new InvalidError('not_a_boolean');\n}\n//# sourceMappingURL=Boolean.js.map","import parseDate from '../read/parseDate.js';\nimport InvalidError from './InvalidError.js';\nexport default function DateType(value, _ref) {\n var properties = _ref.properties;\n\n // XLSX has no specific format for dates.\n // Sometimes a date can be heuristically detected.\n // https://github.com/catamphetamine/read-excel-file/issues/3#issuecomment-395770777\n if (value instanceof Date) {\n if (isNaN(value.valueOf())) {\n throw new InvalidError('out_of_bounds');\n }\n\n return value;\n }\n\n if (typeof value === 'number') {\n if (isNaN(value)) {\n throw new InvalidError('invalid_number');\n }\n\n if (!isFinite(value)) {\n throw new InvalidError('out_of_bounds');\n }\n\n var date = parseDate(value, properties);\n\n if (isNaN(date.valueOf())) {\n throw new InvalidError('out_of_bounds');\n }\n\n return date;\n }\n\n throw new InvalidError('not_a_date');\n}\n//# sourceMappingURL=Date.js.map","function _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest(); }\n\nfunction _nonIterableRest() { throw new TypeError(\"Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); }\n\nfunction _iterableToArrayLimit(arr, i) { var _i = arr == null ? null : typeof Symbol !== \"undefined\" && arr[Symbol.iterator] || arr[\"@@iterator\"]; if (_i == null) return; var _arr = []; var _n = true; var _d = false; var _s, _e; try { for (_i = _i.call(arr); !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i[\"return\"] != null) _i[\"return\"](); } finally { if (_d) throw _e; } } return _arr; }\n\nfunction _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }\n\nfunction _typeof(obj) { \"@babel/helpers - typeof\"; return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (obj) { return typeof obj; } : function (obj) { return obj && \"function\" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }, _typeof(obj); }\n\nfunction _createForOfIteratorHelperLoose(o, allowArrayLike) { var it = typeof Symbol !== \"undefined\" && o[Symbol.iterator] || o[\"@@iterator\"]; if (it) return (it = it.call(o)).next.bind(it); if (Array.isArray(o) || (it = _unsupportedIterableToArray(o)) || allowArrayLike && o && typeof o.length === \"number\") { if (it) o = it; var i = 0; return function () { if (i >= o.length) return { done: true }; return { done: false, value: o[i++] }; }; } throw new TypeError(\"Invalid attempt to iterate non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); }\n\nfunction _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === \"string\") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === \"Object\" && o.constructor) n = o.constructor.name; if (n === \"Map\" || n === \"Set\") return Array.from(o); if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }\n\nfunction _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; }\n\nfunction ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nimport NumberType from '../../types/Number.js';\nimport StringType from '../../types/String.js';\nimport BooleanType from '../../types/Boolean.js';\nimport DateType from '../../types/Date.js';\nvar DEFAULT_OPTIONS = {\n isColumnOriented: false\n};\n/**\r\n * Convert 2D array to nested objects.\r\n * If row oriented data, row 0 is dotted key names.\r\n * Column oriented data is transposed.\r\n * @param {any[][]} data - An array of rows, each row being an array of cells.\r\n * @param {object} schema\r\n * @return {object[]}\r\n */\n\nexport default function (data, schema, options) {\n if (options) {\n options = _objectSpread(_objectSpread({}, DEFAULT_OPTIONS), options);\n } else {\n options = DEFAULT_OPTIONS;\n }\n\n var _options = options,\n isColumnOriented = _options.isColumnOriented,\n rowMap = _options.rowMap,\n ignoreEmptyRows = _options.ignoreEmptyRows;\n validateSchema(schema);\n\n if (isColumnOriented) {\n data = transpose(data);\n }\n\n var columns = data[0];\n var results = [];\n var errors = [];\n\n for (var i = 1; i < data.length; i++) {\n var result = read(schema, data[i], i, columns, errors, options);\n\n if (result !== null || ignoreEmptyRows === false) {\n results.push(result);\n }\n } // Correct error rows.\n\n\n if (rowMap) {\n for (var _iterator = _createForOfIteratorHelperLoose(errors), _step; !(_step = _iterator()).done;) {\n var error = _step.value;\n // Convert the `row` index in `data` to the\n // actual `row` index in the spreadsheet.\n // `- 1` converts row number to row index.\n // `+ 1` converts row index to row number.\n error.row = rowMap[error.row - 1] + 1;\n }\n }\n\n return {\n rows: results,\n errors: errors\n };\n}\n\nfunction read(schema, row, rowIndex, columns, errors, options) {\n var object = {};\n var isEmptyObject = true;\n\n var createError = function createError(_ref) {\n var column = _ref.column,\n value = _ref.value,\n errorMessage = _ref.error,\n reason = _ref.reason;\n var error = {\n error: errorMessage,\n row: rowIndex + 1,\n column: column,\n value: value\n };\n\n if (reason) {\n error.reason = reason;\n }\n\n if (schema[column].type) {\n error.type = schema[column].type;\n }\n\n return error;\n };\n\n var pendingRequiredChecks = [];\n\n var _loop = function _loop() {\n var key = _Object$keys[_i];\n var schemaEntry = schema[key];\n var isNestedSchema = _typeof(schemaEntry.type) === 'object' && !Array.isArray(schemaEntry.type);\n var rawValue = row[columns.indexOf(key)];\n\n if (rawValue === undefined) {\n rawValue = null;\n }\n\n var value = void 0;\n var error = void 0;\n var reason = void 0;\n\n if (isNestedSchema) {\n value = read(schemaEntry.type, row, rowIndex, columns, errors, options);\n } else {\n if (rawValue === null) {\n value = null;\n } else if (Array.isArray(schemaEntry.type)) {\n var notEmpty = false;\n var array = parseArray(rawValue).map(function (_value) {\n var result = parseValue(_value, schemaEntry, options);\n\n if (result.error) {\n value = _value;\n error = result.error;\n reason = result.reason;\n }\n\n if (result.value !== null) {\n notEmpty = true;\n }\n\n return result.value;\n });\n\n if (!error) {\n value = notEmpty ? array : null;\n }\n } else {\n var result = parseValue(rawValue, schemaEntry, options);\n error = result.error;\n reason = result.reason;\n value = error ? rawValue : result.value;\n }\n }\n\n if (!error && value === null) {\n if (typeof schemaEntry.required === 'function') {\n pendingRequiredChecks.push({\n column: key\n });\n } else if (schemaEntry.required === true) {\n error = 'required';\n }\n }\n\n if (error) {\n errors.push(createError({\n column: key,\n value: value,\n error: error,\n reason: reason\n }));\n } else {\n if (isEmptyObject && value !== null) {\n isEmptyObject = false;\n }\n\n if (value !== null || options.includeNullValues) {\n object[schemaEntry.prop] = value;\n }\n }\n };\n\n for (var _i = 0, _Object$keys = Object.keys(schema); _i < _Object$keys.length; _i++) {\n _loop();\n }\n\n if (isEmptyObject) {\n return null;\n }\n\n for (var _i2 = 0, _pendingRequiredCheck = pendingRequiredChecks; _i2 < _pendingRequiredCheck.length; _i2++) {\n var column = _pendingRequiredCheck[_i2].column;\n var required = schema[column].required(object);\n\n if (required) {\n errors.push(createError({\n column: column,\n value: null,\n error: 'required'\n }));\n }\n }\n\n return object;\n}\n/**\r\n * Converts textual value to a javascript typed value.\r\n * @param {any} value\r\n * @param {object} schemaEntry\r\n * @return {{ value: any, error: string }}\r\n */\n\n\nexport function parseValue(value, schemaEntry, options) {\n if (value === null) {\n return {\n value: null\n };\n }\n\n var result;\n\n if (schemaEntry.parse) {\n result = parseCustomValue(value, schemaEntry.parse);\n } else if (schemaEntry.type) {\n result = parseValueOfType(value, // Supports parsing array types.\n // See `parseArray()` function for more details.\n // Example `type`: String[]\n // Input: 'Barack Obama, \"String, with, colons\", Donald Trump'\n // Output: ['Barack Obama', 'String, with, colons', 'Donald Trump']\n Array.isArray(schemaEntry.type) ? schemaEntry.type[0] : schemaEntry.type, options);\n } else {\n result = {\n value: value\n }; // throw new Error('Invalid schema entry: no .type and no .parse():\\n\\n' + JSON.stringify(schemaEntry, null, 2))\n } // If errored then return the error.\n\n\n if (result.error) {\n return result;\n }\n\n if (result.value !== null) {\n if (schemaEntry.oneOf && schemaEntry.oneOf.indexOf(result.value) < 0) {\n return {\n error: 'invalid',\n reason: 'unknown'\n };\n }\n\n if (schemaEntry.validate) {\n try {\n schemaEntry.validate(result.value);\n } catch (error) {\n return {\n error: error.message\n };\n }\n }\n }\n\n return result;\n}\n/**\r\n * Converts textual value to a custom value using supplied `.parse()`.\r\n * @param {any} value\r\n * @param {function} parse\r\n * @return {{ value: any, error: string }}\r\n */\n\nfunction parseCustomValue(value, parse) {\n try {\n value = parse(value);\n\n if (value === undefined) {\n return {\n value: null\n };\n }\n\n return {\n value: value\n };\n } catch (error) {\n var result = {\n error: error.message\n };\n\n if (error.reason) {\n result.reason = error.reason;\n }\n\n return result;\n }\n}\n/**\r\n * Converts textual value to a javascript typed value.\r\n * @param {any} value\r\n * @param {} type\r\n * @return {{ value: (string|number|Date|boolean), error: string, reason?: string }}\r\n */\n\n\nfunction parseValueOfType(value, type, options) {\n switch (type) {\n case String:\n return parseCustomValue(value, StringType);\n\n case Number:\n return parseCustomValue(value, NumberType);\n\n case Date:\n return parseCustomValue(value, function (value) {\n return DateType(value, {\n properties: options.properties\n });\n });\n\n case Boolean:\n return parseCustomValue(value, BooleanType);\n\n default:\n if (typeof type === 'function') {\n return parseCustomValue(value, type);\n }\n\n throw new Error(\"Unsupported schema type: \".concat(type && type.name || type));\n }\n}\n\nexport function getBlock(string, endCharacter, startIndex) {\n var i = 0;\n var substring = '';\n var character;\n\n while (startIndex + i < string.length) {\n var _character = string[startIndex + i];\n\n if (_character === endCharacter) {\n return [substring, i];\n } else if (_character === '\"') {\n var block = getBlock(string, '\"', startIndex + i + 1);\n substring += block[0];\n i += '\"'.length + block[1] + '\"'.length;\n } else {\n substring += _character;\n i++;\n }\n }\n\n return [substring, i];\n}\n/**\r\n * Parses a string of comma-separated substrings into an array of substrings.\r\n * (the `export` is just for tests)\r\n * @param {string} string — A string of comma-separated substrings.\r\n * @return {string[]} An array of substrings.\r\n */\n\nexport function parseArray(string) {\n var blocks = [];\n var index = 0;\n\n while (index < string.length) {\n var _getBlock = getBlock(string, ',', index),\n _getBlock2 = _slicedToArray(_getBlock, 2),\n substring = _getBlock2[0],\n length = _getBlock2[1];\n\n index += length + ','.length;\n blocks.push(substring.trim());\n }\n\n return blocks;\n} // Transpose a 2D array.\n// https://stackoverflow.com/questions/17428587/transposing-a-2d-array-in-javascript\n\nvar transpose = function transpose(array) {\n return array[0].map(function (_, i) {\n return array.map(function (row) {\n return row[i];\n });\n });\n};\n\nfunction validateSchema(schema) {\n for (var _i3 = 0, _Object$keys2 = Object.keys(schema); _i3 < _Object$keys2.length; _i3++) {\n var key = _Object$keys2[_i3];\n var entry = schema[key];\n\n if (!entry.prop) {\n throw new Error(\"\\\"prop\\\" not defined for schema entry \\\"\".concat(key, \"\\\".\"));\n }\n }\n}\n//# sourceMappingURL=convertToJson.js.map","function _typeof(obj) { \"@babel/helpers - typeof\"; return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (obj) { return typeof obj; } : function (obj) { return obj && \"function\" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }, _typeof(obj); }\n\nexport default function convertMapToSchema(map) {\n var schema = {};\n\n for (var _i = 0, _Object$keys = Object.keys(map); _i < _Object$keys.length; _i++) {\n var key = _Object$keys[_i];\n var prop = map[key];\n var type = void 0;\n\n if (_typeof(prop) === 'object') {\n prop = Object.keys(map[key])[0];\n type = convertMapToSchema(map[key][prop]);\n }\n\n schema[key] = {\n prop: prop\n };\n\n if (type) {\n schema[key].type = type;\n }\n }\n\n return schema;\n}\n//# sourceMappingURL=convertMapToSchema.js.map","var _excluded = [\"schema\", \"map\"];\n\nfunction ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nimport readXlsx from './readXlsx.js';\nimport convertToJson from './schema/convertToJson.js';\nimport convertMapToSchema from './schema/convertMapToSchema.js';\nexport default function readXlsxFileContents(entries, xml, _ref) {\n var schema = _ref.schema,\n map = _ref.map,\n options = _objectWithoutProperties(_ref, _excluded);\n\n if (!schema && map) {\n schema = convertMapToSchema(map);\n }\n\n var result = readXlsx(entries, xml, _objectSpread(_objectSpread({}, options), {}, {\n properties: schema || options.properties\n }));\n\n if (schema) {\n return convertToJson(result.data, schema, _objectSpread(_objectSpread({}, options), {}, {\n properties: result.properties\n }));\n }\n\n return result;\n}\n//# sourceMappingURL=readXlsxFileContents.js.map","import xml from '../xml/xmlBrowser.js';\nimport unpackXlsxFile from './unpackXlsxFileBrowser.js';\nimport readXlsxFileContents from './readXlsxFileContents.js';\n/**\r\n * Reads XLSX file into a 2D array of cells in a browser.\r\n * @param {file} file - A file being uploaded in the browser.\r\n * @param {object?} options\r\n * @param {(number|string)?} options.sheet - Excel document sheet to read. Defaults to `1`. Will only read this sheet and skip others.\r\n * @return {Promise} Resolves to a 2D array of cells: an array of rows, each row being an array of cells.\r\n */\n\nexport default function readXlsxFile(file) {\n var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n return unpackXlsxFile(file).then(function (entries) {\n return readXlsxFileContents(entries, xml, options);\n });\n}\n//# sourceMappingURL=readXlsxFileBrowser.js.map","\r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n\r\n\r\n\r\n","import mod from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/@vue/cli-plugin-babel/node_modules/babel-loader/lib/index.js!../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ReadXlsFile.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/@vue/cli-plugin-babel/node_modules/babel-loader/lib/index.js!../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ReadXlsFile.vue?vue&type=script&lang=js\"","import { render, staticRenderFns } from \"./ReadXlsFile.vue?vue&type=template&id=5f38e340\"\nimport script from \"./ReadXlsFile.vue?vue&type=script&lang=js\"\nexport * from \"./ReadXlsFile.vue?vue&type=script&lang=js\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('form',{on:{\"submit\":function($event){$event.preventDefault();return _vm.onUpload.apply(null, arguments)}}},[_vm._t(\"header\"),_c('input',{ref:\"fileInput\",staticStyle:{\"display\":\"none\"},attrs:{\"type\":\"file\"},on:{\"change\":_vm.handleFileChange}}),_c('div',{staticClass:\"dropzone\",class:{ 'is-file': _vm.isFile },style:(_vm.fileBackground),on:{\"click\":_vm.triggerFileInput,\"drop\":function($event){$event.preventDefault();return _vm.handleDrop.apply(null, arguments)},\"dragover\":function($event){$event.preventDefault();},\"dragenter\":function($event){$event.preventDefault();},\"mouseover\":_vm.handleMouseOver,\"mouseleave\":_vm.handleMouseLeave}},[(_vm.loader)?_c('div',{staticClass:\"loader\"}):_vm._e(),(_vm.imageUrl)?_c('div',{staticClass:\"overlay\"}):_vm._e(),(!_vm.file)?_c('div',{staticClass:\"d-flex flex-column align-items-center\"},[_c('i',{class:[\n 'fas fa-cloud-arrow-up text-white-50',\n _vm.isHovered && 'fa-beat',\n ],staticStyle:{\"font-size\":\"2rem\"}}),_c('br'),_vm._v(\" Haz clic o arrastra un archivo aquí. \")]):_c('div',{staticClass:\"d-flex flex-column align-items-center\",staticStyle:{\"z-index\":\"3\"}},[_c('i',{class:`fas fa-file-circle-check ${_vm.loader && 'fa-bounce'}`,staticStyle:{\"font-size\":\"2rem\"}}),_c('br'),_c('span',[_vm._v(\" El documento \\\" \"),_c('span',{staticClass:\"text-primary font-weight-bold\"},[_vm._v(_vm._s(_vm.name))]),_vm._v(\" \\\" ha sido cargado \")])])]),(_vm.file)?_c('b-button',{directives:[{name:\"b-tooltip\",rawName:\"v-b-tooltip.hover\",modifiers:{\"hover\":true}}],staticClass:\"cancel-button\",attrs:{\"title\":\"Cancelar\",\"disabled\":_vm.loader},on:{\"click\":function($event){$event.preventDefault();return _vm.restaurar.apply(null, arguments)}}},[_c('i',{staticClass:\"fas fa-xmark-circle\"})]):_vm._e()],2)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\r\n\r\n\r\n \r\n\r\n\r\n\r\n","import mod from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/@vue/cli-plugin-babel/node_modules/babel-loader/lib/index.js!../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./DropFileBasic.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/@vue/cli-plugin-babel/node_modules/babel-loader/lib/index.js!../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./DropFileBasic.vue?vue&type=script&lang=js\"","import { render, staticRenderFns } from \"./DropFileBasic.vue?vue&type=template&id=f19e0bfe&scoped=true\"\nimport script from \"./DropFileBasic.vue?vue&type=script&lang=js\"\nexport * from \"./DropFileBasic.vue?vue&type=script&lang=js\"\nimport style0 from \"./DropFileBasic.vue?vue&type=style&index=0&id=f19e0bfe&prod&scoped=true&lang=css\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"f19e0bfe\",\n null\n \n)\n\nexport default component.exports"],"sourceRoot":""}