{"version":3,"sources":["webpack:///./node_modules/core-js/internals/engine-ff-version.js","webpack:///./src/assets/Icons/add.svg","webpack:///./node_modules/core-js/modules/es.string.includes.js","webpack:///./src/assets/Icons/edit.svg","webpack:///./node_modules/core-js/internals/is-regexp.js","webpack:///./node_modules/core-js/modules/es.array.sort.js","webpack:///./node_modules/core-js/internals/engine-webkit-version.js","webpack:///./node_modules/core-js/internals/not-a-regexp.js","webpack:///./src/utilities/MediaList.js","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/assets/Icons/delete.svg","webpack:///./node_modules/core-js/internals/correct-is-regexp-logic.js","webpack:///./src/services/Dropdowns.js","webpack:///./node_modules/core-js/internals/engine-is-ie-or-edge.js","webpack:///./src/assets/Icons/closeicon.svg"],"names":["userAgent","firefox","match","module","exports","$","uncurryThis","notARegExp","requireObjectCoercible","toString","correctIsRegExpLogic","stringIndexOf","indexOf","target","proto","forced","includes","searchString","this","arguments","length","undefined","isObject","classof","wellKnownSymbol","MATCH","it","isRegExp","aCallable","toObject","lengthOfArrayLike","deletePropertyOrThrow","fails","internalSort","arrayMethodIsStrict","FF","IE_OR_EDGE","V8","WEBKIT","test","nativeSort","sort","push","FAILS_ON_UNDEFINED","FAILS_ON_NULL","STRICT_METHOD","STABLE_SORT","code","chr","value","index","result","String","fromCharCode","k","v","a","b","charAt","FORCED","getSortCompare","comparefn","x","y","array","itemsLength","items","arrayLength","webkit","$TypeError","TypeError","NETMedia","label","MediaType","Code","Selected","NETMediaForVendor","SPOTMedia","PRINTMedia","PRINTCategoryMedia","DIGITALMedia","AllDigitalMedia","concat","map","d","join","NETWithoutDigital","filter","media","PRINTWithoutDigital","SPOTWithoutDigital","NETDigital","PRINTDigital","SPOTDigital","createDocument","content","DOMParser","parseFromString","trim","u8","Uint8Array","u16","Uint16Array","u32","Uint32Array","fleb","fdeb","clim","freb","eb","start","i","r","j","_a","fl","revfl","_b","fd","rev","hMap","cd","mb","s","l","co","le","rvb","sv","r_1","m","flt","fdt","flrm","fdrm","max","bits","p","o","bits16","shft","slc","e","n","BYTES_PER_ELEMENT","set","subarray","ec","err","ind","msg","nt","Error","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","strFromU8","latin1","apply","ext","slzh","zh","z","fnl","fn","es","bs","z64e","sc","su","off","queueMicrotask","setTimeout","unzipSync","opts","files","ze","fltr","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","key","findChild","node","tagName","childNodes","childNode","nodeType","getTagName","findChildren","results","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","styles","addFilePathInfo","relationship","filePath","fileType","getFilePath","path","slice","ownKeys","object","enumerableOnly","getOwnPropertySymbols","symbols","getOwnPropertyDescriptor","enumerable","_objectSpread","source","_defineProperty","getOwnPropertyDescriptors","defineProperties","defineProperty","obj","configurable","writable","parseStyles","doc","baseStyles","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","Symbol","iterator","call","next","bind","Array","isArray","_unsupportedIterableToArray","done","minLen","_arrayLikeToArray","prototype","constructor","from","arr","len","arr2","isDateTimestamp","styleId","BUILT_IN_DATE_NUMBER_FORMAT_IDS","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","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","_typeof","_defineProperties","props","descriptor","_createClass","Constructor","protoProps","staticProps","_classCallCheck","instance","_inherits","subClass","superClass","create","_setPrototypeOf","_createSuper","Derived","hasNativeReflectConstruct","_isNativeReflectConstruct","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","parseArray","_value","parseValue","required","includeNullValues","prop","_pendingRequiredCheck","parse","parseCustomValue","parseValueOfType","oneOf","validate","message","getBlock","endCharacter","startIndex","substring","_character","block","blocks","_getBlock","_getBlock2","_i3","_Object$keys2","entry","convertMapToSchema","_excluded","_objectWithoutProperties","excluded","_objectWithoutPropertiesLoose","sourceSymbolKeys","propertyIsEnumerable","sourceKeys","readXlsxFileContents","entries","convertToJson","readXlsxFile","file","METHOD_NAME","regexp","error1","error2","endpoint","param","getBPMUsers","formType","api","removeDiretory","guid","RemoveTempDirectory","UpdateICRequestGUID","requestId","getEntityRecords","getOriginalEntityRecords","getAgencyDropdownValues","getAgencyRecords","getAllAgencyDropdownValues","getAllAgencyRecords","getCheckHfmCodeExist","GetCheckHFMCodeExists","getCurrencyDropdownValues","getCurrencyList","getPaymentDropdownValues","getPaymentTerms","getOfficeDropdownValues","getOfficeLocations","getHFMMasterClientCodeDropdownValues","getHFMMasterClientCode","getmediaTypeDropdownValues","getMediaTypeList","getCountryDropdownValues","getCountryList","getAgencyNetworkRegions","getAgencyNetworkRegion","getWeatherForeCast","UA"],"mappings":"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","file":"js/chunk-2a3f338e.4aa294b7.js","sourcesContent":["'use strict';\nvar userAgent = require('../internals/engine-user-agent');\n\nvar firefox = userAgent.match(/firefox\\/(\\d+)/i);\n\nmodule.exports = !!firefox && +firefox[1];\n","module.exports = __webpack_public_path__ + \"img/add.ee8f7198.svg\";","'use strict';\nvar $ = require('../internals/export');\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar notARegExp = require('../internals/not-a-regexp');\nvar requireObjectCoercible = require('../internals/require-object-coercible');\nvar toString = require('../internals/to-string');\nvar correctIsRegExpLogic = require('../internals/correct-is-regexp-logic');\n\nvar stringIndexOf = uncurryThis(''.indexOf);\n\n// `String.prototype.includes` method\n// https://tc39.es/ecma262/#sec-string.prototype.includes\n$({ target: 'String', proto: true, forced: !correctIsRegExpLogic('includes') }, {\n includes: function includes(searchString /* , position = 0 */) {\n return !!~stringIndexOf(\n toString(requireObjectCoercible(this)),\n toString(notARegExp(searchString)),\n arguments.length > 1 ? arguments[1] : undefined\n );\n }\n});\n","module.exports = __webpack_public_path__ + \"img/edit.d7ce3858.svg\";","'use strict';\nvar isObject = require('../internals/is-object');\nvar classof = require('../internals/classof-raw');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\n\nvar MATCH = wellKnownSymbol('match');\n\n// `IsRegExp` abstract operation\n// https://tc39.es/ecma262/#sec-isregexp\nmodule.exports = function (it) {\n var isRegExp;\n return isObject(it) && ((isRegExp = it[MATCH]) !== undefined ? !!isRegExp : classof(it) === 'RegExp');\n};\n","'use strict';\nvar $ = require('../internals/export');\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar aCallable = require('../internals/a-callable');\nvar toObject = require('../internals/to-object');\nvar lengthOfArrayLike = require('../internals/length-of-array-like');\nvar deletePropertyOrThrow = require('../internals/delete-property-or-throw');\nvar toString = require('../internals/to-string');\nvar fails = require('../internals/fails');\nvar internalSort = require('../internals/array-sort');\nvar arrayMethodIsStrict = require('../internals/array-method-is-strict');\nvar FF = require('../internals/engine-ff-version');\nvar IE_OR_EDGE = require('../internals/engine-is-ie-or-edge');\nvar V8 = require('../internals/engine-v8-version');\nvar WEBKIT = require('../internals/engine-webkit-version');\n\nvar test = [];\nvar nativeSort = uncurryThis(test.sort);\nvar push = uncurryThis(test.push);\n\n// IE8-\nvar FAILS_ON_UNDEFINED = fails(function () {\n test.sort(undefined);\n});\n// V8 bug\nvar FAILS_ON_NULL = fails(function () {\n test.sort(null);\n});\n// Old WebKit\nvar STRICT_METHOD = arrayMethodIsStrict('sort');\n\nvar STABLE_SORT = !fails(function () {\n // feature detection can be too slow, so check engines versions\n if (V8) return V8 < 70;\n if (FF && FF > 3) return;\n if (IE_OR_EDGE) return true;\n if (WEBKIT) return WEBKIT < 603;\n\n var result = '';\n var code, chr, value, index;\n\n // generate an array with more 512 elements (Chakra and old V8 fails only in this case)\n for (code = 65; code < 76; code++) {\n chr = String.fromCharCode(code);\n\n switch (code) {\n case 66: case 69: case 70: case 72: value = 3; break;\n case 68: case 71: value = 4; break;\n default: value = 2;\n }\n\n for (index = 0; index < 47; index++) {\n test.push({ k: chr + index, v: value });\n }\n }\n\n test.sort(function (a, b) { return b.v - a.v; });\n\n for (index = 0; index < test.length; index++) {\n chr = test[index].k.charAt(0);\n if (result.charAt(result.length - 1) !== chr) result += chr;\n }\n\n return result !== 'DGBEFHACIJK';\n});\n\nvar FORCED = FAILS_ON_UNDEFINED || !FAILS_ON_NULL || !STRICT_METHOD || !STABLE_SORT;\n\nvar getSortCompare = function (comparefn) {\n return function (x, y) {\n if (y === undefined) return -1;\n if (x === undefined) return 1;\n if (comparefn !== undefined) return +comparefn(x, y) || 0;\n return toString(x) > toString(y) ? 1 : -1;\n };\n};\n\n// `Array.prototype.sort` method\n// https://tc39.es/ecma262/#sec-array.prototype.sort\n$({ target: 'Array', proto: true, forced: FORCED }, {\n sort: function sort(comparefn) {\n if (comparefn !== undefined) aCallable(comparefn);\n\n var array = toObject(this);\n\n if (STABLE_SORT) return comparefn === undefined ? nativeSort(array) : nativeSort(array, comparefn);\n\n var items = [];\n var arrayLength = lengthOfArrayLike(array);\n var itemsLength, index;\n\n for (index = 0; index < arrayLength; index++) {\n if (index in array) push(items, array[index]);\n }\n\n internalSort(items, getSortCompare(comparefn));\n\n itemsLength = lengthOfArrayLike(items);\n index = 0;\n\n while (index < itemsLength) array[index] = items[index++];\n while (index < arrayLength) deletePropertyOrThrow(array, index++);\n\n return array;\n }\n});\n","'use strict';\nvar userAgent = require('../internals/engine-user-agent');\n\nvar webkit = userAgent.match(/AppleWebKit\\/(\\d+)\\./);\n\nmodule.exports = !!webkit && +webkit[1];\n","'use strict';\nvar isRegExp = require('../internals/is-regexp');\n\nvar $TypeError = TypeError;\n\nmodule.exports = function (it) {\n if (isRegExp(it)) {\n throw new $TypeError(\"The method doesn't accept regular expressions\");\n } return it;\n};\n","const NETMedia = [\r\n { value: \"Cable\", label: \"Cable\", MediaType: \"Cable\", Code: \"CA\", Selected: false },\r\n { value: \"National\", label: \"National\", MediaType: \"National\", Code: \"NA\", Selected: false },\r\n { value: \"Syndication\", label: \"Syndication\", MediaType: \"Syndication\", Code: \"SD\", Selected: false },\r\n]\r\nconst NETMediaForVendor = [\r\n { value: \"Cable FEPS treaming\", label: \"Cable FEP Streaming\", MediaType: \"Cable FEP Streaming\", Code: \"CA\", Selected: false },\r\n { value: \"Cable VOD\", label: \"Cable VOD\", MediaType: \"Cable VOD\", Code: \"NA\", Selected: false },\r\n { value: \"Network Streaming\", label: \"Network Streaming\", MediaType: \"Network Streaming\", Code: \"SD\", Selected: false },\r\n]\r\n\r\nconst SPOTMedia = [\r\n { value: \"TV\", label: \"TV\", MediaType: \"TV\", Code: \"CA\", Selected: false },\r\n { value: \"Radio\", label: \"Radio\", MediaType: \"Radio\", Code: \"CA\", Selected: false },\r\n { value: \"Network Radio\", label: \"Network Radio\", MediaType: \"Network Radio\", Code: \"CA\", Selected: false },\r\n]\r\n\r\nconst PRINTMedia = [\r\n { value: \"Magazine\", label: \"Magazine\", MediaType: \"Magazine\", Code: \"MG\", Selected: false },\r\n { value: \"Interactive\", label: \"Interactive\", MediaType: \"Interactive\", Code: \"IA\", Selected: false },\r\n { value: \"Newspaper\", label: \"Newspaper\", MediaType: \"Newspaper\", Code: \"NP\", Selected: false },\r\n { value: \"Outdoor\", label: \"Outdoor\", MediaType: \"Outdoor\", Code: \"OD\", Selected: false },\r\n { value: \"Trade\", label: \"Trade\", MediaType: \"Trade\", Code: \"TR\", Selected: false },\r\n { value: \"Search\", label: \"Search\", MediaType: \"Search\", Code: \"SR\", Selected: false },\r\n { value: \"Social\", label: \"Social\", MediaType: \"Social\", Code: \"SC\", Selected: false },\r\n { value: \"Video\", label: \"Video\", MediaType: \"Video\", Code: \"VD\", Selected: false },\r\n { value: \"Bundled\", label: \"Bundled\", MediaType: \"Bundled\", Code: \"BN\", Selected: false },\r\n { value: \"Unbundled\", label: \"Unbundled\", MediaType: \"Unbundled\", Code: \"UB\", Selected: false },\r\n { value: \"Digital Audio\", label: \"Digital Audio\", MediaType: \"Digital Audio\", Code: \"DA\", Selected: false },\r\n]\r\nconst PRINTCategoryMedia = [\r\n { value: \"Magazine\", label: \"Magazine\", MediaType: \"Magazine\", Code: \"MG\", Selected: false },\r\n { value: \"Newspaper\", label: \"Newspaper\", MediaType: \"Newspaper\", Code: \"NP\", Selected: false },\r\n { value: \"Outdoor\", label: \"Outdoor\", MediaType: \"Outdoor\", Code: \"OD\", Selected: false },\r\n { value: \"Trade\", label: \"Trade\", MediaType: \"Trade\", Code: \"TR\", Selected: false },\r\n]\r\n\r\nconst DIGITALMedia = [\r\n { value: \"Search\", label: \"Search\", MediaType: \"Search\", Code: \"SR\", Selected: false },\r\n { value: \"Interactive\", label: \"Interactive\", MediaType: \"Interactive\", Code: \"IA\", Selected: false },\r\n { value: \"Social\", label: \"Social\", MediaType: \"Social\", Code: \"SC\", Selected: false },\r\n { value: \"Video\", label: \"Video\", MediaType: \"Video\", Code: \"VD\", Selected: false },\r\n { value: \"Bundled\", label: \"TVBundled\", MediaType: \"Bundled\", Code: \"BN\", Selected: false },\r\n { value: \"Unbundled\", label: \"Unbundled\", MediaType: \"Unbundled\", Code: \"UB\", Selected: false },\r\n { value: \"Digital Audio\", label: \"Digital Audio\", MediaType: \"Digital Audio\", Code: \"DA\", Selected: false },\r\n]\r\n\r\nconst PRINTWithDigitalCategoryMedia = [\r\n { value: \"Magazine\", label: \"Magazine\", MediaType: \"Magazine\", Code: \"MG\", Selected: false },\r\n { value: \"Newspaper\", label: \"Newspaper\", MediaType: \"Newspaper\", Code: \"NP\", Selected: false },\r\n { value: \"Outdoor\", label: \"Outdoor\", MediaType: \"Outdoor\", Code: \"OD\", Selected: false },\r\n { value: \"Trade\", label: \"Trade\", MediaType: \"Trade\", Code: \"TR\", Selected: false },\r\n { value: \"Digital\", label: `Digital(${DIGITALMedia.map(d => d.value).join(\",\")})`, MediaType: \"Digital\", Code: \"DG\", Selected: false },\r\n]\r\n\r\nconst AllDigitalMedia = [\"Search\", \"Interactive\", \"Social\", \"Video\", \"Bundled\", \"Unbundled\", \"Digital Audio\"];\r\n\r\nconst NETWithoutDigital = NETMedia.concat(NETMediaForVendor).filter(media => {\r\n return !AllDigitalMedia.includes(media.value);\r\n});\r\nconst PRINTWithoutDigital = PRINTMedia.filter(media => {\r\n return !AllDigitalMedia.includes(media.value);\r\n});\r\nconst SPOTWithoutDigital = SPOTMedia.filter(media => {\r\n return !AllDigitalMedia.includes(media.value);\r\n});\r\n\r\nconst NETDigital = NETMedia.concat(NETMediaForVendor).filter(media => {\r\n return AllDigitalMedia.includes(media.value);\r\n});\r\nconst PRINTDigital = PRINTMedia.filter(media => {\r\n return AllDigitalMedia.includes(media.value);\r\n});\r\nconst SPOTDigital = SPOTMedia.filter(media => {\r\n return AllDigitalMedia.includes(media.value);\r\n});\r\n\r\nexport {\r\n NETMedia, PRINTMedia, SPOTMedia, DIGITALMedia,\r\n PRINTCategoryMedia, PRINTWithDigitalCategoryMedia, AllDigitalMedia\r\n , NETWithoutDigital, PRINTWithoutDigital, SPOTWithoutDigital\r\n ,NETDigital,PRINTDigital,SPOTDigital\r\n};","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 += '';\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","module.exports = __webpack_public_path__ + \"img/delete.7f9ec20b.svg\";","'use strict';\nvar wellKnownSymbol = require('../internals/well-known-symbol');\n\nvar MATCH = wellKnownSymbol('match');\n\nmodule.exports = function (METHOD_NAME) {\n var regexp = /./;\n try {\n '/./'[METHOD_NAME](regexp);\n } catch (error1) {\n try {\n regexp[MATCH] = false;\n return '/./'[METHOD_NAME](regexp);\n } catch (error2) { /* empty */ }\n } return false;\n};\n","import api from \"../api/dropdowns\";\r\n\r\nconst options = {\r\n endpoint: \"api/admin\",\r\n data: {},\r\n param:{}\r\n};\r\n\r\nexport default {\r\n getBPMUsers(name,formType) {\r\n return api.getBPMUsers(options, name,formType);\r\n },\r\n\r\n removeDiretory(guid){ \r\n return api.RemoveTempDirectory(options,guid);\r\n },\r\n\r\n UpdateICRequestGUID(requestId,guid)\r\n { \r\n return api.UpdateICRequestGUID(options,requestId,guid);\r\n },\r\n\r\n getEntityRecords(name) {\r\n return api.getEntityRecords(options, name);\r\n },\r\n \r\n getOriginalEntityRecords(name) {\r\n return api.getOriginalEntityRecords(options, name);\r\n },\r\n \r\n getAgencyDropdownValues(name) { \r\n return api.getAgencyRecords(options,name);\r\n },\r\n getAllAgencyDropdownValues(name) { \r\n return api.getAllAgencyRecords(options,name);\r\n },\r\n\r\n getCheckHfmCodeExist(name){ \r\n return api.GetCheckHFMCodeExists(options,name);\r\n },\r\n\r\n getCurrencyDropdownValues() {\r\n return api.getCurrencyList(options, \"\");\r\n },\r\n\r\n getPaymentDropdownValues() {\r\n return api.getPaymentTerms(options, \"\");\r\n },\r\n\r\n getOfficeDropdownValues() {\r\n return api.getOfficeLocations(options, \"\");\r\n },\r\n\r\n getHFMMasterClientCodeDropdownValues(){\r\n return api.getHFMMasterClientCode(options,\"\");\r\n },\r\n\r\n getmediaTypeDropdownValues() {\r\n return api.getMediaTypeList(options, \"\");\r\n },\r\n\r\n getCountryDropdownValues() {\r\n return api.getCountryList(options, \"\");\r\n },\r\n\r\n getAgencyNetworkRegions(name){\r\n return api.getAgencyNetworkRegion(options,name); \r\n },\r\n \r\n getWeatherForeCast(){\r\n return api.getWeatherForeCast();\r\n }\r\n};\r\n","'use strict';\nvar UA = require('../internals/engine-user-agent');\n\nmodule.exports = /MSIE|Trident/.test(UA);\n","module.exports = __webpack_public_path__ + \"img/closeicon.4cf41cda.svg\";"],"sourceRoot":""}