@gen-epix/ui-client-casedb 4.0.1 → 4.1.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/_chunks/AddCasesToEventDialog.js.map +1 -1
- package/dist/_chunks/CaseDbDownloadUtil.js +1 -1
- package/dist/_chunks/CaseDbDownloadUtil.js.map +1 -1
- package/dist/_chunks/CaseInfoDialog.js +4 -4
- package/dist/_chunks/CaseInfoDialog.js.map +1 -1
- package/dist/_chunks/CaseSetInfoDialog.js +4 -4
- package/dist/_chunks/CaseSetInfoDialog.js.map +1 -1
- package/dist/_chunks/CasesAlreadyInCaseSetWarning.js.map +1 -1
- package/dist/_chunks/Dashboard.js +3 -2
- package/dist/_chunks/Dashboard.js.map +1 -1
- package/dist/_chunks/FindSimilarCasesDialog.js +6 -6
- package/dist/_chunks/FindSimilarCasesDialog.js.map +1 -1
- package/dist/_chunks/HomePageTrends.js.map +1 -1
- package/dist/_chunks/LineListWidget.js +46 -45
- package/dist/_chunks/LineListWidget.js.map +1 -1
- package/dist/_chunks/Upload.js +308 -304
- package/dist/_chunks/Upload.js.map +1 -1
- package/dist/_chunks/UploadUtil.js +44 -40
- package/dist/_chunks/UploadUtil.js.map +1 -1
- package/dist/_chunks/dashboardStore.js.map +1 -1
- package/dist/classes/services/EventBusService/EventBusService.d.ts +9 -2
- package/dist/classes/services/EventBusService/index.js.map +1 -1
- package/dist/components/ui/MapWidget/index.js.map +1 -1
- package/dist/components/ui/RemoveCasesFromEventDialog/index.js.map +1 -1
- package/dist/components/ui/SequenceDownloadDialog/index.js +53 -40
- package/dist/components/ui/SequenceDownloadDialog/index.js.map +1 -1
- package/dist/components/ui/TreeWidget/index.js +8 -2
- package/dist/components/ui/TreeWidget/index.js.map +1 -1
- package/dist/locale/en.json +0 -11
- package/dist/locale/nl.json +0 -11
- package/dist/models/config.d.ts +2 -0
- package/dist/utils/UploadUtil/UploadUtil.d.ts +1 -0
- package/package.json +23 -23
- package/dist/components/ui/FileSelector/FileSelector.d.ts +0 -7
- package/dist/components/ui/FileSelector/index.d.ts +0 -1
- package/dist/components/ui/FileSelector/index.js +0 -206
- package/dist/components/ui/FileSelector/index.js.map +0 -1
- package/dist/utils/FileUtil/FileUtil.d.ts +0 -5
- package/dist/utils/FileUtil/index.d.ts +0 -1
- package/dist/utils/FileUtil/index.js +0 -15
- package/dist/utils/FileUtil/index.js.map +0 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"CaseDbDownloadUtil.js","names":["_createForOfIteratorHelperLoose","_unsupportedIterableToArray","_arrayLikeToArray","_createForOfIteratorHelperLoose","_unsupportedIterableToArray","_arrayLikeToArray","_createForOfIteratorHelperLoose","_unsupportedIterableToArray","_arrayLikeToArray","_slicedToArray","_arrayWithHoles","_iterableToArrayLimit","_unsupportedIterableToArray","_nonIterableRest","_arrayLikeToArray","_typeof","ownKeys","_objectSpread","_defineProperty","_toPropertyKey","_toPrimitive","_createForOfIteratorHelperLoose","_unsupportedIterableToArray","_arrayLikeToArray","_unsupportedIterableToArray","_arrayLikeToArray","_createForOfIteratorHelperLoose","_unsupportedIterableToArray","_arrayLikeToArray","_typeof","ownKeys","_objectSpread","_defineProperty","_toPropertyKey","_toPrimitive","_createForOfIteratorHelperLoose","_unsupportedIterableToArray","_arrayLikeToArray","_createForOfIteratorHelperLoose","_unsupportedIterableToArray","_arrayLikeToArray","_createForOfIteratorHelperLoose","_unsupportedIterableToArray","_arrayLikeToArray","ORDER_OF_SIBLINGS","_createForOfIteratorHelperLoose","_unsupportedIterableToArray","_arrayLikeToArray","_typeof","_createForOfIteratorHelperLoose","_unsupportedIterableToArray","_arrayLikeToArray","ownKeys","_objectSpread","_defineProperty","_toPropertyKey","_toPrimitive","conditionalFormatting","images","stickyRowsOrColumns","_createForOfIteratorHelperLoose","_unsupportedIterableToArray","_arrayLikeToArray","_createForOfIteratorHelperLoose","_unsupportedIterableToArray","_arrayLikeToArray","_typeof","ownKeys","_objectSpread","_defineProperty","_toPropertyKey","_toPrimitive","_createForOfIteratorHelperLoose","_unsupportedIterableToArray","_arrayLikeToArray","generateDrawingReferenceXml"],"sources":["../../../../node_modules/.pnpm/write-excel-file@4.1.1/node_modules/write-excel-file/modules/zip/zipToArrayBuffer.js","../../../../node_modules/.pnpm/write-excel-file@4.1.1/node_modules/write-excel-file/modules/export/convertFilesContentToUint8Arrays.js","../../../../node_modules/.pnpm/write-excel-file@4.1.1/node_modules/write-excel-file/modules/xlsx/helpers/features/getAdditionalContent.js","../../../../node_modules/.pnpm/write-excel-file@4.1.1/node_modules/write-excel-file/modules/xlsx/helpers/features/transformContent.js","../../../../node_modules/.pnpm/write-excel-file@4.1.1/node_modules/write-excel-file/modules/xml/escapeXmlSpecialCharacters.js","../../../../node_modules/.pnpm/write-excel-file@4.1.1/node_modules/write-excel-file/modules/xml/removeInvalidXmlCharacters.js","../../../../node_modules/.pnpm/write-excel-file@4.1.1/node_modules/write-excel-file/modules/xml/sanitizeAttributeValue.js","../../../../node_modules/.pnpm/write-excel-file@4.1.1/node_modules/write-excel-file/modules/xml/sanitizeAttributeName.js","../../../../node_modules/.pnpm/write-excel-file@4.1.1/node_modules/write-excel-file/modules/xml/getAttributesString.js","../../../../node_modules/.pnpm/write-excel-file@4.1.1/node_modules/write-excel-file/modules/xml/getOpeningTagMarkup.js","../../../../node_modules/.pnpm/write-excel-file@4.1.1/node_modules/write-excel-file/modules/xml/getClosingTagMarkup.js","../../../../node_modules/.pnpm/write-excel-file@4.1.1/node_modules/write-excel-file/modules/xml/getSelfClosingTagMarkup.js","../../../../node_modules/.pnpm/write-excel-file@4.1.1/node_modules/write-excel-file/modules/xlsx/helpers/features/getElementXml.js","../../../../node_modules/.pnpm/write-excel-file@4.1.1/node_modules/write-excel-file/modules/xlsx/files/workbook.xml.js","../../../../node_modules/.pnpm/write-excel-file@4.1.1/node_modules/write-excel-file/modules/xlsx/files/workbook.xml.rels.js","../../../../node_modules/.pnpm/write-excel-file@4.1.1/node_modules/write-excel-file/modules/xlsx/files/rels.js","../../../../node_modules/.pnpm/write-excel-file@4.1.1/node_modules/write-excel-file/modules/xlsx/files/[Content_Types].xml.js","../../../../node_modules/.pnpm/write-excel-file@4.1.1/node_modules/write-excel-file/modules/xlsx/files/drawing.xml.js","../../../../node_modules/.pnpm/write-excel-file@4.1.1/node_modules/write-excel-file/modules/xlsx/files/drawing.xml.rels.js","../../../../node_modules/.pnpm/write-excel-file@4.1.1/node_modules/write-excel-file/modules/xlsx/files/sheet.xml/sheetViews.js","../../../../node_modules/.pnpm/write-excel-file@4.1.1/node_modules/write-excel-file/modules/xlsx/files/sheet.xml/column.js","../../../../node_modules/.pnpm/write-excel-file@4.1.1/node_modules/write-excel-file/modules/xlsx/files/sheet.xml/columns.js","../../../../node_modules/.pnpm/write-excel-file@4.1.1/node_modules/write-excel-file/modules/xml/sanitizeTextContent.js","../../../../node_modules/.pnpm/write-excel-file@4.1.1/node_modules/write-excel-file/modules/xlsx/helpers/getCellAddress.js","../../../../node_modules/.pnpm/write-excel-file@4.1.1/node_modules/write-excel-file/modules/xlsx/helpers/convertDateToSerialNumber.js","../../../../node_modules/.pnpm/write-excel-file@4.1.1/node_modules/write-excel-file/modules/xlsx/files/sheet.xml/cell.js","../../../../node_modules/.pnpm/write-excel-file@4.1.1/node_modules/write-excel-file/modules/xlsx/helpers/hasAlignment.js","../../../../node_modules/.pnpm/write-excel-file@4.1.1/node_modules/write-excel-file/modules/xlsx/helpers/hasBorder.js","../../../../node_modules/.pnpm/write-excel-file@4.1.1/node_modules/write-excel-file/modules/xlsx/helpers/hasFill.js","../../../../node_modules/.pnpm/write-excel-file@4.1.1/node_modules/write-excel-file/modules/xlsx/helpers/hasFont.js","../../../../node_modules/.pnpm/write-excel-file@4.1.1/node_modules/write-excel-file/modules/xlsx/files/sheet.xml/helpers/getCellStyleProperties.js","../../../../node_modules/.pnpm/write-excel-file@4.1.1/node_modules/write-excel-file/modules/xlsx/helpers/isObject.js","../../../../node_modules/.pnpm/write-excel-file@4.1.1/node_modules/write-excel-file/modules/xlsx/helpers/isCellObject.js","../../../../node_modules/.pnpm/write-excel-file@4.1.1/node_modules/write-excel-file/modules/xlsx/files/sheet.xml/row.js","../../../../node_modules/.pnpm/write-excel-file@4.1.1/node_modules/write-excel-file/modules/xlsx/files/sheet.xml/sheetData.js","../../../../node_modules/.pnpm/write-excel-file@4.1.1/node_modules/write-excel-file/modules/xlsx/files/sheet.xml/processMergedCells.js","../../../../node_modules/.pnpm/write-excel-file@4.1.1/node_modules/write-excel-file/modules/xlsx/files/sheet.xml/mergedCellsDescription.js","../../../../node_modules/.pnpm/write-excel-file@4.1.1/node_modules/write-excel-file/modules/xlsx/files/sheet.xml/pageMargins.js","../../../../node_modules/.pnpm/write-excel-file@4.1.1/node_modules/write-excel-file/modules/xlsx/files/sheet.xml/pageSetup.js","../../../../node_modules/.pnpm/write-excel-file@4.1.1/node_modules/write-excel-file/modules/xlsx/files/sheet.xml/drawingReference.js","../../../../node_modules/.pnpm/write-excel-file@4.1.1/node_modules/write-excel-file/modules/xlsx/files/sheet.xml/sheet.xml.js","../../../../node_modules/.pnpm/write-excel-file@4.1.1/node_modules/write-excel-file/modules/xlsx/files/sheet.xml.rels.js","../../../../node_modules/.pnpm/write-excel-file@4.1.1/node_modules/write-excel-file/modules/xlsx/files/sharedStrings.xml.js","../../../../node_modules/.pnpm/write-excel-file@4.1.1/node_modules/write-excel-file/modules/xlsx/helpers/getXlsxColorForHexColor.js","../../../../node_modules/.pnpm/write-excel-file@4.1.1/node_modules/write-excel-file/modules/xlsx/helpers/getFillXml.js","../../../../node_modules/.pnpm/write-excel-file@4.1.1/node_modules/write-excel-file/modules/xlsx/helpers/getBorderXml.js","../../../../node_modules/.pnpm/write-excel-file@4.1.1/node_modules/write-excel-file/modules/xlsx/helpers/getFontXml.js","../../../../node_modules/.pnpm/write-excel-file@4.1.1/node_modules/write-excel-file/modules/xlsx/helpers/getAlignmentXml.js","../../../../node_modules/.pnpm/write-excel-file@4.1.1/node_modules/write-excel-file/modules/xlsx/initializeStyles.js","../../../../node_modules/.pnpm/write-excel-file@4.1.1/node_modules/write-excel-file/modules/xlsx/files/styles.xml.js","../../../../node_modules/.pnpm/write-excel-file@4.1.1/node_modules/write-excel-file/modules/xml/findElementsNonRecursive_.js","../../../../node_modules/.pnpm/write-excel-file@4.1.1/node_modules/write-excel-file/modules/xml/findElement.js","../../../../node_modules/.pnpm/write-excel-file@4.1.1/node_modules/write-excel-file/modules/xml/setMarkupInsideElement.js","../../../../node_modules/.pnpm/write-excel-file@4.1.1/node_modules/write-excel-file/modules/xml/appendMarkupInsideElement.js","../../../../node_modules/.pnpm/write-excel-file@4.1.1/node_modules/write-excel-file/modules/xml/getMarkupInsideElement.js","../../../../node_modules/.pnpm/write-excel-file@4.1.1/node_modules/write-excel-file/modules/xml/applyEnclosingElementOffset.js","../../../../node_modules/.pnpm/write-excel-file@4.1.1/node_modules/write-excel-file/modules/xml/getChildElements.js","../../../../node_modules/.pnpm/write-excel-file@4.1.1/node_modules/write-excel-file/modules/xml/prependMarkupInsideElement.js","../../../../node_modules/.pnpm/write-excel-file@4.1.1/node_modules/write-excel-file/modules/xml/insertElementMarkupAccordingToOrderOfSiblings.js","../../../../node_modules/.pnpm/write-excel-file@4.1.1/node_modules/write-excel-file/modules/xlsx/helpers/orderOfSiblings.js","../../../../node_modules/.pnpm/write-excel-file@4.1.1/node_modules/write-excel-file/modules/xlsx/helpers/getOrderOfSiblings.js","../../../../node_modules/.pnpm/write-excel-file@4.1.1/node_modules/write-excel-file/modules/xlsx/features/conditionalFormatting.js","../../../../node_modules/.pnpm/write-excel-file@4.1.1/node_modules/write-excel-file/modules/xlsx/helpers/getFileExtensionForContentType.js","../../../../node_modules/.pnpm/write-excel-file@4.1.1/node_modules/write-excel-file/modules/xlsx/features/images.js","../../../../node_modules/.pnpm/write-excel-file@4.1.1/node_modules/write-excel-file/modules/xml/replaceElement.js","../../../../node_modules/.pnpm/write-excel-file@4.1.1/node_modules/write-excel-file/modules/xml/findElementInsideElement.js","../../../../node_modules/.pnpm/write-excel-file@4.1.1/node_modules/write-excel-file/modules/xlsx/features/stickyRowsOrColumns.js","../../../../node_modules/.pnpm/write-excel-file@4.1.1/node_modules/write-excel-file/modules/xlsx/getFeatures.js","../../../../node_modules/.pnpm/write-excel-file@4.1.1/node_modules/write-excel-file/modules/xlsx/validateSheetData.js","../../../../node_modules/.pnpm/write-excel-file@4.1.1/node_modules/write-excel-file/modules/xlsx/initializeSharedStrings.js","../../../../node_modules/.pnpm/write-excel-file@4.1.1/node_modules/write-excel-file/modules/xlsx/validateSheetName.js","../../../../node_modules/.pnpm/write-excel-file@4.1.1/node_modules/write-excel-file/modules/xlsx/initializeSheets.js","../../../../node_modules/.pnpm/write-excel-file@4.1.1/node_modules/write-excel-file/modules/getSheetData/getSheetData.js","../../../../node_modules/.pnpm/write-excel-file@4.1.1/node_modules/write-excel-file/modules/xlsx/helpers/features/getWrittenFiles.js","../../../../node_modules/.pnpm/write-excel-file@4.1.1/node_modules/write-excel-file/modules/xlsx/generateXlsxFileContents.js","../../../../node_modules/.pnpm/write-excel-file@4.1.1/node_modules/write-excel-file/modules/export/writeXlsxFileUniversal.js","../../../../node_modules/.pnpm/write-excel-file@4.1.1/node_modules/write-excel-file/modules/export/convertFileContentToUint8ArrayBrowser.js","../../../../node_modules/.pnpm/write-excel-file@4.1.1/node_modules/write-excel-file/modules/export/downloadBlob.js","../../../../node_modules/.pnpm/write-excel-file@4.1.1/node_modules/write-excel-file/modules/export/writeXlsxFileBrowser.js","../../src/utils/CaseDbDownloadUtil/CaseDbDownloadUtil.ts"],"sourcesContent":["// `fflate` readme is too complicated:\n// https://github.com/101arrowz/fflate/issues/251\n// I just used whatever approach seemed to work.\n//\n// It was a choice between \"syncrhonous\" (blocking) unzip via `zipSync()`\n// and \"asynchronous\" (non-blocking) unzip via `zip()`.\n//\n// In the readme they say that using \"asynchronous\" API will cause the compression or decompression\n// run in a separate thread by using Web (or Node) Workers, so it won't block the main thread.\n// Yet, they also say that there is an initial overhead to using workers of about 50ms for each\n// asynchronous function. For small (under about 50kB) payloads, they say that the \"asynchronous\" API\n// will be much slower compared to the \"synchronous\" one. However, when compressing larger files\n// or multiple files at once, the \"synchronous\" API causes the main thread to hang for too long,\n// and the \"asynchronous\" API is an order of magnitude better.\n//\nimport { zip } from 'fflate';\n\n/**\r\n * Creates a `*.zip` file from a map of files.\r\n * @param {Record<string,Uint8Array>} files\r\n * @return {Promise<ArrayBuffer>} Promise of `*.zip` file data.\r\n */\nexport default function zipToArrayBuffer(files) {\n return zipAsync(files).then(function (uint8Array) {\n return uint8Array.buffer;\n });\n}\nfunction zipAsync(files) {\n return new Promise(function (resolve, reject) {\n // `zip()` will resort to \"synchronous\" compression in an edge case:\n // * When an individual file size is less than `160KB`.\n zip(files, function (error, archive) {\n if (error) {\n reject(error);\n } else {\n resolve(archive);\n }\n });\n });\n}\n//# sourceMappingURL=zipToArrayBuffer.js.map","import { strToU8 } from 'fflate';\n\n/**\r\n * Converts `files` values to `Uint8Array`s.\r\n * @param {Record<string,any>} files\r\n * @param {function} convertFileContentToUint8Array\r\n * @returns {Promise<Record<string,Uint8Array>>}\r\n */\nexport default function convertFilesContentToUint8Arrays(files, convertFileContentToUint8Array) {\n var convertedFiles = {};\n return Promise.all(Object.keys(files).map(function (key) {\n if (files[key] instanceof Uint8Array) {\n convertedFiles[key] = files[key];\n } else if (typeof files[key] === 'string') {\n convertedFiles[key] = convertStringToUint8Array(files[key]);\n } else {\n return convertFileContentToUint8Array(files[key]).then(function (uint8Array) {\n convertedFiles[key] = uint8Array;\n });\n }\n })).then(function () {\n return convertedFiles;\n });\n}\nfunction convertStringToUint8Array(string) {\n return strToU8(string);\n}\n//# sourceMappingURL=convertFilesContentToUint8Arrays.js.map","function _createForOfIteratorHelperLoose(r, e) { var t = \"undefined\" != typeof Symbol && r[Symbol.iterator] || r[\"@@iterator\"]; if (t) return (t = t.call(r)).next.bind(t); if (Array.isArray(r) || (t = _unsupportedIterableToArray(r)) || e && r && \"number\" == typeof r.length) { t && (r = t); var o = 0; return function () { return o >= r.length ? { done: !0 } : { done: !1, value: r[o++] }; }; } throw new TypeError(\"Invalid attempt to iterate non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); }\nfunction _unsupportedIterableToArray(r, a) { if (r) { if (\"string\" == typeof r) return _arrayLikeToArray(r, a); var t = {}.toString.call(r).slice(8, -1); return \"Object\" === t && r.constructor && (t = r.constructor.name), \"Map\" === t || \"Set\" === t ? Array.from(r) : \"Arguments\" === t || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t) ? _arrayLikeToArray(r, a) : void 0; } }\nfunction _arrayLikeToArray(r, a) { (null == a || a > r.length) && (a = r.length); for (var e = 0, n = Array(a); e < a; e++) n[e] = r[e]; return n; }\n// Returns the content that should be inserted by `features` when performing a `transformName` transform.\nexport default function getAdditionalContent(fileName, features, sheetOptions, properties) {\n var content = '';\n for (var _iterator = _createForOfIteratorHelperLoose(features), _step; !(_step = _iterator()).done;) {\n var feature = _step.value;\n var transform = feature.files && feature.files.transform && feature.files.transform[fileName];\n if (transform && transform.insert) {\n var insertedContent = transform.insert(sheetOptions, properties);\n if (insertedContent) {\n content += insertedContent;\n }\n }\n }\n return content;\n}\n//# sourceMappingURL=getAdditionalContent.js.map","function _createForOfIteratorHelperLoose(r, e) { var t = \"undefined\" != typeof Symbol && r[Symbol.iterator] || r[\"@@iterator\"]; if (t) return (t = t.call(r)).next.bind(t); if (Array.isArray(r) || (t = _unsupportedIterableToArray(r)) || e && r && \"number\" == typeof r.length) { t && (r = t); var o = 0; return function () { return o >= r.length ? { done: !0 } : { done: !1, value: r[o++] }; }; } throw new TypeError(\"Invalid attempt to iterate non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); }\nfunction _unsupportedIterableToArray(r, a) { if (r) { if (\"string\" == typeof r) return _arrayLikeToArray(r, a); var t = {}.toString.call(r).slice(8, -1); return \"Object\" === t && r.constructor && (t = r.constructor.name), \"Map\" === t || \"Set\" === t ? Array.from(r) : \"Arguments\" === t || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t) ? _arrayLikeToArray(r, a) : void 0; } }\nfunction _arrayLikeToArray(r, a) { (null == a || a > r.length) && (a = r.length); for (var e = 0, n = Array(a); e < a; e++) n[e] = r[e]; return n; }\n// Transforms the content by `features` when performing a `transformName` transform.\nexport default function transformContent(content, fileName, features, sheetOptions, properties) {\n for (var _iterator = _createForOfIteratorHelperLoose(features), _step; !(_step = _iterator()).done;) {\n var feature = _step.value;\n var transform = feature.files && feature.files.transform && feature.files.transform[fileName];\n if (transform && transform.transform) {\n content = transform.transform(content, sheetOptions, properties);\n }\n }\n return content;\n}\n//# sourceMappingURL=transformContent.js.map","/**\r\n * Escapes a string for including it in XML markup: replaces \">\" with \">\", etc.\r\n * https://en.wikipedia.org/wiki/Character_encodings_in_HTML#HTML_character_references\r\n * @param {string} string\r\n * @param {boolean} options.isAttributeValue — Pass `true` if an XML attribute value is being escaped. Pass `false` otherwise.\r\n * @return {string}\r\n */\nexport default function escapeXmlSpecialCharacters(string, _ref) {\n var isAttributeValue = _ref.isAttributeValue;\n // By default, \"&\", \"<\" and \">\" characters should be escaped:\n //\n // The ampersand character (&) and the left angle bracket (<) must not appear\n // in their literal form, except when used as markup delimiters, or within a comment,\n // a processing instruction, or a CDATA section. If they are needed elsewhere,\n // they must be escaped using either numeric character references or the strings\n // \" & \" and \" < \" respectively. The right angle bracket (>) may be represented\n // using the string \" > \", and must, for compatibility, be escaped using either\n // \" > \" or a character reference when it appears in the string \" ]]> \" in content,\n // when that string is not marking the end of a CDATA section.\n //\n string = replaceAll(string, '&', '&');\n string = replaceAll(string, '>', '>');\n string = replaceAll(string, '<', '<');\n\n // Additionally, in attribute values, single and double quotes might be required\n // to be escaped depending on what character is used for delimiting those attribute values.\n if (isAttributeValue) {\n string = replaceAll(string, '\\'', ''');\n string = replaceAll(string, '\"', '"');\n }\n return string;\n}\nfunction replaceAll(string, replacedSubstring, replacementSubstring) {\n if (string.replaceAll) {\n return string.replaceAll(replacedSubstring, replacementSubstring);\n }\n // There's no need to escape RegExp special characters in `replacedSubstring`\n // because this function is not exported and is only called internally\n // with a known subset of possible `replacedSubstring`s which are known\n // to not contain any RegExp special characters.\n return string.replace(new RegExp(replacedSubstring, 'g'), replacementSubstring);\n}\n\n// // Escapes any regular-expression-specific special characters.\n// function escapeRegExpSpecialCharacters(string) {\n// \tconst specialCharactersRegExp = new RegExp('[.*+?|()\\\\[\\\\]{}\\\\\\\\]', 'g')\n// \treturn string.replace(specialCharactersRegExp, '\\\\$&')\n// }\n//# sourceMappingURL=escapeXmlSpecialCharacters.js.map","var INVALID_CHARACTERS = /((?:[\\0-\\x08\\x0B\\f\\x0E-\\x1F\\uFFFD\\uFFFE\\uFFFF]|[\\uD800-\\uDBFF](?![\\uDC00-\\uDFFF])|(?:[^\\uD800-\\uDBFF]|^)[\\uDC00-\\uDFFF]))/g;\nvar DISCOURAGED_CHARACTERS = new RegExp(\"([\\\\x7F-\\\\x84]|[\\\\x86-\\\\x9F]|[\\\\uFDD0-\\\\uFDEF]|(?:\\\\uD83F[\\\\uDFFE\\\\uDFFF])|(?:\\\\uD87F[\\\\uDFFE\\\\uDFFF])|(?:\\\\uD8BF[\\\\uDFFE\\\\uDFFF])|(?:\\\\uD8FF[\\\\uDFFE\\\\uDFFF])|(?:\\\\uD93F[\\\\uDFFE\\\\uDFFF])|(?:\\\\uD97F[\\\\uDFFE\\\\uDFFF])|(?:\\\\uD9BF[\\\\uDFFE\\\\uDFFF])|(?:\\\\uD9FF[\\\\uDFFE\\\\uDFFF])|(?:\\\\uDA3F[\\\\uDFFE\\\\uDFFF])|(?:\\\\uDA7F[\\\\uDFFE\\\\uDFFF])|(?:\\\\uDABF[\\\\uDFFE\\\\uDFFF])|(?:\\\\uDAFF[\\\\uDFFE\\\\uDFFF])|(?:\\\\uDB3F[\\\\uDFFE\\\\uDFFF])|(?:\\\\uDB7F[\\\\uDFFE\\\\uDFFF])|(?:\\\\uDBBF[\\\\uDFFE\\\\uDFFF])|(?:\\\\uDBFF[\\\\uDFFE\\\\uDFFF])(?:[\\\\0-\\\\t\\\\x0B\\\\f\\\\x0E-\\\\u2027\\\\u202A-\\\\uD7FF\\\\uE000-\\\\uFFFF]|[\\\\uD800-\\\\uDBFF][\\\\uDC00-\\\\uDFFF]|[\\\\uD800-\\\\uDBFF](?![\\\\uDC00-\\\\uDFFF])|(?:[^\\\\uD800-\\\\uDBFF]|^)[\\\\uDC00-\\\\uDFFF]))\", 'g');\n\n/**\r\n * Removes \"invalid\" or \"discouraged\" XML characters from a string.\r\n * \"Invalid\" characters are \"C0 control characters\" or \"surrogate blocks\" (\"non-characters\" and \"surrogate pairs\").\r\n * \"Discouraged\" characters are the ones that're officially discouraged from use in XML documents by the XML specification.\r\n * @param {string} string - a string containing potentially invalid XML characters (non-UTF8 characters, STX, EOX etc)\r\n * @return {string} a sanitized string stripped of invalid (and by default also discouraged) XML characters\r\n */\nexport default function removeInvalidXmlCharacters(string) {\n // Remove everything forbidden by XML 1.0 specification,\n // plus the unicode replacement character U+FFFD.\n string = string.replace(INVALID_CHARACTERS, '');\n\n // Remove everything discouraged by XML 1.0 specification.\n // I.e. strictly speaking, these characters are still valid\n // but also officially discouraged from use in XML documents.\n string = string.replace(DISCOURAGED_CHARACTERS, '');\n return string;\n}\n//# sourceMappingURL=removeInvalidXmlCharacters.js.map","import escapeXmlSpecialCharacters from './escapeXmlSpecialCharacters.js';\nimport removeInvalidXmlCharacters from './removeInvalidXmlCharacters.js';\n\n/**\r\n * Removes invalid characters and escapes \"speciaL\" characters in an XML attribute's value.\r\n * @param {string} attributeValue\r\n * @returns {string}\r\n */\nexport default function sanitizeAttributeValue(attributeValue) {\n if (typeof attributeValue !== 'string') {\n throw new TypeError('Argument must be a string');\n }\n // Remove characters that're invalid in XML.\n attributeValue = removeInvalidXmlCharacters(attributeValue);\n // Escape \"special\" characters.\n return escapeXmlSpecialCharacters(attributeValue, {\n isAttributeValue: true\n });\n}\n//# sourceMappingURL=sanitizeAttributeValue.js.map","import removeInvalidXmlCharacters from './removeInvalidXmlCharacters.js';\n\n/**\r\n * Removes invalid characters and escapes \"speciaL\" characters in an XML attribute's name.\r\n * @param {string} attributeName\r\n * @returns {string}\r\n */\nexport default function sanitizeAttributeName(attributeName) {\n if (typeof attributeName !== 'string') {\n throw new TypeError('Argument must be a string');\n }\n // Remove characters that're invalid in XML.\n attributeName = removeInvalidXmlCharacters(attributeName);\n // Remove characters that're invalid in an XML attribute name.\n return attributeName.replace(/[^a-zA-Z_0-9-.:]/g, '').replace(/^[^a-zA-Z_]+/, '');\n}\n//# sourceMappingURL=sanitizeAttributeName.js.map","import sanitizeAttributeName from './sanitizeAttributeName.js';\nimport sanitizeAttributeValue from './sanitizeAttributeValue.js';\n\n/**\r\n * Converts an object with XML attribute values to a string.\r\n * Examples:\r\n * { a: 'b', c: 'd' } → ' a=\"b\" c=\"d\"'\r\n * {} → ''\r\n * @param {object} attributes\r\n * @returns {string}\r\n */\nexport default function getAttributesString(attributes) {\n return Object.keys(attributes).map(function (name) {\n return \"\".concat(sanitizeAttributeName(name), \"=\\\"\").concat(sanitizeAttributeValue(String(attributes[name])), \"\\\"\");\n }).reduce(function (combined, part) {\n return combined + ' ' + part;\n }, '');\n}\n//# sourceMappingURL=getAttributesString.js.map","import getAttributesString from './getAttributesString.js';\n\n/**\r\n * Returns XML for an \"opening tag\" with a given `tagName` and optional `attributes`.\r\n * @param {string} tagName\r\n * @param {object} [attributes]\r\n * @returns {string}\r\n */\nexport default function getOpeningTagMarkup(tagName, attributes) {\n return '<' + tagName + (attributes ? getAttributesString(attributes) : '') + '>';\n}\n//# sourceMappingURL=getOpeningTagMarkup.js.map","/**\r\n * Returns XML for a \"closing tag\" with a given `tagName`.\r\n * @param {string} tagName\r\n * @returns {string}\r\n */\nexport default function getClosingTagMarkup(tagName) {\n return '</' + tagName + '>';\n}\n//# sourceMappingURL=getClosingTagMarkup.js.map","import getOpeningTagMarkup from './getOpeningTagMarkup.js';\n\n/**\r\n * Returns XML for an element with a given `tagName`, optional `attributes` and no child elements.\r\n * @param {string} tagName\r\n * @param {object} [attributes]\r\n * @returns {string}\r\n */\nexport default function getSelfClosingTagMarkup(tagName, attributes) {\n return getOpeningTagMarkup(tagName, attributes).slice(0, -1) + '/>';\n}\n//# sourceMappingURL=getSelfClosingTagMarkup.js.map","function _createForOfIteratorHelperLoose(r, e) { var t = \"undefined\" != typeof Symbol && r[Symbol.iterator] || r[\"@@iterator\"]; if (t) return (t = t.call(r)).next.bind(t); if (Array.isArray(r) || (t = _unsupportedIterableToArray(r)) || e && r && \"number\" == typeof r.length) { t && (r = t); var o = 0; return function () { return o >= r.length ? { done: !0 } : { done: !1, value: r[o++] }; }; } throw new TypeError(\"Invalid attempt to iterate non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); }\nfunction _unsupportedIterableToArray(r, a) { if (r) { if (\"string\" == typeof r) return _arrayLikeToArray(r, a); var t = {}.toString.call(r).slice(8, -1); return \"Object\" === t && r.constructor && (t = r.constructor.name), \"Map\" === t || \"Set\" === t ? Array.from(r) : \"Arguments\" === t || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t) ? _arrayLikeToArray(r, a) : void 0; } }\nfunction _arrayLikeToArray(r, a) { (null == a || a > r.length) && (a = r.length); for (var e = 0, n = Array(a); e < a; e++) n[e] = r[e]; return n; }\nimport getOpeningTagMarkup from '../../../xml/getOpeningTagMarkup.js';\nimport getClosingTagMarkup from '../../../xml/getClosingTagMarkup.js';\nimport getSelfClosingTagMarkup from '../../../xml/getSelfClosingTagMarkup.js';\nexport default function getElementXml(fileName, tagName, attributes,\n// Could be `undefined` or `null`\ninnerXml,\n// Could be `undefined` or `null`\nindex,\n// Could be `undefined`\nproperties, sheetOptionsOrSheetsOptions, features) {\n for (var _iterator = _createForOfIteratorHelperLoose(features), _step; !(_step = _iterator()).done;) {\n var feature = _step.value;\n var transform = feature.files && feature.files.transform && feature.files.transform[fileName];\n if (transform && transform.transformElementAttributes) {\n attributes = transform.transformElementAttributes(tagName, attributes || NO_ATTRIBUTES, index, sheetOptionsOrSheetsOptions, properties);\n }\n }\n if (innerXml) {\n return getOpeningTagMarkup(tagName, attributes) + innerXml + getClosingTagMarkup(tagName);\n } else {\n return getSelfClosingTagMarkup(tagName, attributes);\n }\n}\nvar NO_ATTRIBUTES = {};\n//# sourceMappingURL=getElementXml.js.map","import getAdditionalContent from '../helpers/features/getAdditionalContent.js';\nimport transformContent from '../helpers/features/transformContent.js';\nimport sanitizeAttributeValue from '../../xml/sanitizeAttributeValue.js';\nimport getElementXml from '../helpers/features/getElementXml.js';\nexport default function generateWorkbookXml(_ref) {\n var sheetIdsAndNames = _ref.sheetIdsAndNames,\n features = _ref.features,\n sheetsOptions = _ref.sheetsOptions;\n /**\r\n * Creates XML tag markup.\r\n * @param {string} tagName\r\n * @param {object} attributes\r\n * @param {string} [innerXml]\r\n * @param {number} [index]\r\n * @returns {string}\r\n */\n var tag = function tag(tagName, attributes, innerXml, index) {\n return getElementXml('xl/workbook.xml', tagName, attributes, innerXml, index, EMPTY_OBJECT, sheetsOptions, features);\n };\n var xml = '<?xml version=\"1.0\" encoding=\"UTF-8\" standalone=\"yes\"?>' + '<workbook xmlns=\"http://schemas.openxmlformats.org/spreadsheetml/2006/main\" xmlns:r=\"http://schemas.openxmlformats.org/officeDocument/2006/relationships\" xmlns:mx=\"http://schemas.microsoft.com/office/mac/excel/2008/main\" xmlns:mc=\"http://schemas.openxmlformats.org/markup-compatibility/2006\" xmlns:mv=\"urn:schemas-microsoft-com:mac:vml\" xmlns:x14=\"http://schemas.microsoft.com/office/spreadsheetml/2009/9/main\" xmlns:x14ac=\"http://schemas.microsoft.com/office/spreadsheetml/2009/9/ac\" xmlns:xm=\"http://schemas.microsoft.com/office/excel/2006/main\">' +\n // The order of elements is dictated by the XLSX spec.\n //\n // <workbookPr/>\n tag('workbookPr') +\n // <bookViews/>\n tag('bookViews', null, tag('workbookView', null, null, 0)) +\n // <sheets/>\n tag('sheets', null, sheetIdsAndNames.map(function (_ref2, i) {\n var sheetId = _ref2.sheetId,\n sheetName = _ref2.sheetName;\n return tag('sheet', {\n 'r:id': \"rId\".concat(sheetId),\n sheetId: sheetId,\n name: sheetName\n }, null, i);\n }).join('')) +\n // <definedNames/>\n tag('definedNames') +\n // <calcPr/>\n tag('calcPr') +\n // Apply any plugins that insert additional content to this XML.\n getAdditionalContent('xl/workbook.xml', features, sheetsOptions) + '</workbook>';\n\n // Apply any plugins that transform this XML.\n xml = transformContent(xml, 'xl/workbook.xml', features, sheetsOptions);\n return xml;\n}\nvar EMPTY_OBJECT = {};\n//# sourceMappingURL=workbook.xml.js.map","import getAdditionalContent from '../helpers/features/getAdditionalContent.js';\nimport transformContent from '../helpers/features/transformContent.js';\nexport default function generateWorkbookXmlRels(_ref) {\n var sheetIds = _ref.sheetIds,\n features = _ref.features,\n sheetsOptions = _ref.sheetsOptions;\n var xml = '<?xml version=\"1.0\" ?>' + '<Relationships xmlns=\"http://schemas.openxmlformats.org/package/2006/relationships\">' + sheetIds.map(function (id) {\n return \"<Relationship Id=\\\"rId\".concat(id, \"\\\" Type=\\\"http://schemas.openxmlformats.org/officeDocument/2006/relationships/worksheet\\\" Target=\\\"worksheets/sheet\").concat(id, \".xml\\\"/>\");\n }).join('') + \"<Relationship Id=\\\"rId\".concat(sheetIds.length + 1, \"\\\" Type=\\\"http://schemas.openxmlformats.org/officeDocument/2006/relationships/sharedStrings\\\" Target=\\\"sharedStrings.xml\\\"/>\") + \"<Relationship Id=\\\"rId\".concat(sheetIds.length + 2, \"\\\" Type=\\\"http://schemas.openxmlformats.org/officeDocument/2006/relationships/styles\\\" Target=\\\"styles.xml\\\"/>\") +\n // Apply any plugins that insert additional content to this XML.\n getAdditionalContent('xl/_rels/workbook.xml.rels', features, sheetsOptions) + '</Relationships>';\n\n // Apply any plugins that transform this XML.\n xml = transformContent(xml, 'xl/_rels/workbook.xml.rels', features, sheetsOptions);\n return xml;\n}\n//# sourceMappingURL=workbook.xml.rels.js.map","import getAdditionalContent from '../helpers/features/getAdditionalContent.js';\nimport transformContent from '../helpers/features/transformContent.js';\nexport default function generateRelsXml(_ref) {\n var features = _ref.features,\n sheetsOptions = _ref.sheetsOptions;\n var xml = '<?xml version=\"1.0\" encoding=\"UTF-8\" standalone=\"yes\"?>' + '<Relationships xmlns=\"http://schemas.openxmlformats.org/package/2006/relationships\">' + '<Relationship Id=\"rId-workbook-1\" Type=\"http://schemas.openxmlformats.org/officeDocument/2006/relationships/officeDocument\" Target=\"xl/workbook.xml\"/>' +\n // Apply any plugins that insert additional content to this XML.\n getAdditionalContent('_rels/.rels', features, sheetsOptions) + '</Relationships>';\n\n // Apply any plugins that transform this XML.\n xml = transformContent(xml, '_rels/.rels', features, sheetsOptions);\n return xml;\n}\n//# sourceMappingURL=rels.js.map","import getAdditionalContent from '../helpers/features/getAdditionalContent.js';\nimport transformContent from '../helpers/features/transformContent.js';\nexport default function generateContentTypesXml(_ref) {\n var sheetIds = _ref.sheetIds,\n features = _ref.features,\n sheetsOptions = _ref.sheetsOptions;\n var xml = '<?xml version=\"1.0\" encoding=\"UTF-8\" standalone=\"yes\"?>' + '<Types xmlns=\"http://schemas.openxmlformats.org/package/2006/content-types\">' + '<Default ContentType=\"application/xml\" Extension=\"xml\"/>' + '<Default ContentType=\"application/vnd.openxmlformats-package.relationships+xml\" Extension=\"rels\"/>' + '<Override ContentType=\"application/vnd.openxmlformats-officedocument.spreadsheetml.sheet.main+xml\" PartName=\"/xl/workbook.xml\"/>' + '<Override ContentType=\"application/vnd.openxmlformats-officedocument.spreadsheetml.sharedStrings+xml\" PartName=\"/xl/sharedStrings.xml\"/>' + '<Override ContentType=\"application/vnd.openxmlformats-officedocument.spreadsheetml.styles+xml\" PartName=\"/xl/styles.xml\"/>' + sheetIds.map(function (sheetId) {\n return \"<Override ContentType=\\\"application/vnd.openxmlformats-officedocument.spreadsheetml.worksheet+xml\\\" PartName=\\\"/xl/worksheets/sheet\".concat(sheetId, \".xml\\\"/>\");\n }).join('') + sheetIds.map(function (sheetId) {\n return getDrawingContentTypeXml(sheetId);\n }).join('') +\n // Apply any plugins that insert additional content to this XML.\n getAdditionalContent('[Content_Types].xml', features, sheetsOptions) + '</Types>';\n\n // Apply any plugins that transform this XML.\n xml = transformContent(xml, '[Content_Types].xml', features, sheetsOptions);\n return xml;\n}\nexport function getDrawingContentTypeXml(sheetId) {\n return \"<Override ContentType=\\\"application/vnd.openxmlformats-officedocument.drawing+xml\\\" PartName=\\\"/xl/drawings/drawing\".concat(sheetId, \".xml\\\"/>\");\n}\n//# sourceMappingURL=[Content_Types].xml.js.map","import getAdditionalContent from '../helpers/features/getAdditionalContent.js';\nimport transformContent from '../helpers/features/transformContent.js';\n\n// https://gitlab.com/catamphetamine/write-excel-file/-/blob/main/docs/IMAGES.md\nexport default function generateDrawingXml(_ref) {\n var sheetIndex = _ref.sheetIndex,\n sheetId = _ref.sheetId,\n sheetOptions = _ref.sheetOptions,\n features = _ref.features;\n var xml = DRAWING_XML_START +\n // Apply any plugins that insert additional content to this XML.\n getAdditionalContent('xl/drawings/drawing{id}.xml', features, sheetOptions, {\n sheetIndex: sheetIndex,\n sheetId: sheetId\n }) + DRAWING_XML_END;\n\n // Apply any plugins that transform this XML.\n xml = transformContent(xml, 'xl/drawings/drawing{id}.xml', features, sheetOptions, {\n sheetIndex: sheetIndex,\n sheetId: sheetId\n });\n return xml;\n}\nexport var DRAWING_XML_START = '<?xml version=\"1.0\" encoding=\"UTF-8\" standalone=\"yes\"?>' + '<xdr:wsDr xmlns:xdr=\"http://schemas.openxmlformats.org/drawingml/2006/spreadsheetDrawing\" xmlns:a=\"http://schemas.openxmlformats.org/drawingml/2006/main\">';\nexport var DRAWING_XML_END = '</xdr:wsDr>';\n//# sourceMappingURL=drawing.xml.js.map","import getAdditionalContent from '../helpers/features/getAdditionalContent.js';\nimport transformContent from '../helpers/features/transformContent.js';\nexport default function generateDrawingXmlRels(_ref) {\n var sheetIndex = _ref.sheetIndex,\n sheetId = _ref.sheetId,\n sheetOptions = _ref.sheetOptions,\n features = _ref.features;\n var xml = '<?xml version=\"1.0\" encoding=\"UTF-8\" standalone=\"yes\"?>' + '<Relationships xmlns=\"http://schemas.openxmlformats.org/package/2006/relationships\">' +\n // Apply any plugins that insert additional content to this XML.\n getAdditionalContent('xl/drawings/_rels/drawing{id}.xml.rels', features, sheetOptions, {\n sheetIndex: sheetIndex,\n sheetId: sheetId\n }) + '</Relationships>';\n\n // Apply any plugins that transform this XML.\n xml = transformContent(xml, 'xl/drawings/_rels/drawing{id}.xml.rels', features, sheetOptions, {\n sheetIndex: sheetIndex,\n sheetId: sheetId\n });\n return xml;\n}\n//# sourceMappingURL=drawing.xml.rels.js.map","import getSelfClosingTagMarkup from '../../../xml/getSelfClosingTagMarkup.js';\nexport default function generateSheetViews(tag, viewProperties, sheetIndex) {\n if (!hasView(viewProperties)) {\n return '';\n }\n var showGridLines = viewProperties.showGridLines,\n rightToLeft = viewProperties.rightToLeft,\n zoomScale = viewProperties.zoomScale;\n var sheetViewAttributes = {\n tabSelected: sheetIndex === 0 ? 1 : 0,\n // The first sheet is selected by default.\n workbookViewId: 0\n };\n if (showGridLines === false) {\n sheetViewAttributes.showGridLines = false;\n }\n if (rightToLeft) {\n sheetViewAttributes.rightToLeft = 1;\n }\n if (typeof zoomScale === 'number') {\n // Convert the scale number to a percentage.\n //\n // Excel 2007 doesn't like fractional `zoomScale` percentage values.\n // To work around that, it rounds the resulting percentage value.\n //\n sheetViewAttributes.zoomScale = Math.round(zoomScale * 100);\n }\n var sheetViewXml = tag('sheetView', sheetViewAttributes, null, 0);\n return tag('sheetViews', null, sheetViewXml);\n}\nfunction hasView(_ref) {\n var showGridLines = _ref.showGridLines,\n rightToLeft = _ref.rightToLeft,\n zoomScale = _ref.zoomScale;\n return showGridLines === false || rightToLeft || typeof zoomScale === 'number';\n}\n//# sourceMappingURL=sheetViews.js.map","// import floatToInteger from './helpers/floatToInteger.js'\n\nexport default function generateColumnDescription(tag, column, index) {\n // Guards against a developer forgetting to put some columns\n // in the `columns` list.\n // For example, a developer may pass `data` with `7` columns\n // but only specify `6` of them in the `columns` list.\n // Hence, it handles missing column description here.\n if (!column) {\n return '';\n }\n\n // Get the column width (in characters).\n var width = column.width;\n\n // If no width specified (0 width is not allowed as well), then\n // leave the definition empty and the width will be applied automatically.\n if (!width) {\n return '';\n }\n\n // To ensure the column number starts as in Excel.\n var columnNumber = index + 1;\n\n // `column` format is described here:\n // https://msdn.microsoft.com/en-us/library/office/documentformat.openxml.spreadsheet.column.aspx\n //\n // `customWidth=\"1\"` is required in order for `width=\"...\"` to be applied.\n // Otherwise, Microsoft Office 2007 Excel wouldn't apply the custom column `width`.\n //\n var attributes = {\n min: columnNumber,\n max: columnNumber,\n width: width,\n customWidth: 1\n };\n return tag('col', attributes, null, index);\n}\n\n// /**\n// * Converts column width in pixels to column width in characters.\n// * Column width is measured as the number of characters of the maximum digit width\n// * of the numbers 0, 1, 2, …, 9 as rendered in the normal style's font.\n// * There are 4 pixels of margin padding (two on each side), plus 1 pixel padding\n// * for the gridlines.\n// * @param {number} widthInPixels — Target column width in pixels.\n// * @return {number}\n// */\n// function getColumnWidthInCharacters(columnWidthInPixels) {\n// // Using the Calibri font as an example,\n// // the maximum width of a digit character\n// // when using font size \"11 pt\" is equal to 7 pixels (at 96 dpi).\n// // TODO make it configurable?\n// const maximumDigitWidth = 7 // in pixels\n//\n// // To translate from pixels to character width, use this calculation:\n// // =Truncate(({pixels}-5)/{Maximum Digit Width} * 100+0.5)/100\n// const characterWidth = floatToInteger((((columnWidthInPixels - 5) / maximumDigitWidth) * 100) + 0.5) / 100\n//\n// // To translate from character width to real width, use this calculation:\n// // =Truncate([{Number of Characters} * {Maximum Digit Width} + {5 pixel padding}]/{Maximum Digit Width}*256)/256\n// return floatToInteger((((characterWidth * maximumDigitWidth) + 5) / maximumDigitWidth) * 256) / 256\n// }\n//# sourceMappingURL=column.js.map","import generateColumnDescription from './column.js';\nexport default function generateColumnsDescription(tag, columns) {\n // If column options are specified.\n if (columns) {\n // `cols` format is described here:\n // https://msdn.microsoft.com/en-us/library/office/documentformat.openxml.spreadsheet.columns.aspx\n var columnsXml = columns.map(function (column, index) {\n return generateColumnDescription(tag, column, index);\n }).join('');\n\n // If any column has any custom properties, create a `<cols/>` element.\n // An empty `<cols></cols>` element would produce an error in some versions of Excel.\n // https://gitlab.com/catamphetamine/write-excel-file/-/issues/6\n if (columnsXml) {\n return tag('cols', null, columnsXml);\n }\n }\n\n // Return an empty string rather than an empty `<cols></cols>` element.\n // An empty `<cols></cols>` element would produce an error in some versions of Excel.\n // https://gitlab.com/catamphetamine/write-excel-file/-/issues/6\n return '';\n}\n//# sourceMappingURL=columns.js.map","import escapeXmlSpecialCharacters from './escapeXmlSpecialCharacters.js';\nimport removeInvalidXmlCharacters from './removeInvalidXmlCharacters.js';\n\n/**\r\n * Removes invalid characters and escapes \"speciaL\" characters in an XML element's text content.\r\n * @param {string} textContent\r\n * @returns {string}\r\n */\nexport default function sanitizeTextContent(textContent) {\n if (typeof textContent !== 'string') {\n throw new TypeError('Argument must be a string');\n }\n // Remove characters that're invalid in XML.\n textContent = removeInvalidXmlCharacters(textContent);\n // Escape \"special\" characters.\n return escapeXmlSpecialCharacters(textContent, {\n isAttributeValue: false\n });\n}\n//# sourceMappingURL=sanitizeTextContent.js.map","/**\r\n * Gets spreadsheet cell string coordinate from row index and column index.\r\n * @param {number} rowIndex\r\n * @param {number} columnIndex\r\n * @returns {string}\r\n */\nexport default function getCellAddress(rowIndex, columnIndex) {\n return \"\".concat(getColumnLetter(columnIndex)).concat(rowIndex + 1);\n}\n\n// `26` letters in the alphabet: from \"A\" to \"Z\".\nvar LETTERS_COUNT = 26;\nfunction getColumnLetter(columnIndex) {\n if (typeof columnIndex !== 'number') {\n return '';\n }\n var prefix = Math.floor(columnIndex / LETTERS_COUNT);\n // Letter character codes start at `97`.\n var letter = String.fromCharCode(97 + columnIndex % LETTERS_COUNT).toUpperCase();\n if (prefix === 0) {\n return letter;\n }\n return getColumnLetter(prefix - 1) + letter;\n}\n//# sourceMappingURL=getCellAddress.js.map","// \"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).\nvar daysBeforeUnixEpoch = 70 * 365 + 19;\n\n// An hour, approximately, because a minute\n// may be longer than 60 seconds, see \"leap seconds\".\nvar hour = 60 * 60 * 1000;\nvar day = 24 * hour;\n\n/**\r\n * Converts a `Date` into an XLSX \"serial\" number.\r\n * @param {Date} date\r\n * @returns {number}\r\n */\nexport default function convertDateToSerialNumber(date) {\n return date.getTime() / day + daysBeforeUnixEpoch;\n}\n//# sourceMappingURL=convertDateToSerialNumber.js.map","function _slicedToArray(r, e) { return _arrayWithHoles(r) || _iterableToArrayLimit(r, e) || _unsupportedIterableToArray(r, e) || _nonIterableRest(); }\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.\"); }\nfunction _unsupportedIterableToArray(r, a) { if (r) { if (\"string\" == typeof r) return _arrayLikeToArray(r, a); var t = {}.toString.call(r).slice(8, -1); return \"Object\" === t && r.constructor && (t = r.constructor.name), \"Map\" === t || \"Set\" === t ? Array.from(r) : \"Arguments\" === t || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t) ? _arrayLikeToArray(r, a) : void 0; } }\nfunction _arrayLikeToArray(r, a) { (null == a || a > r.length) && (a = r.length); for (var e = 0, n = Array(a); e < a; e++) n[e] = r[e]; return n; }\nfunction _iterableToArrayLimit(r, l) { var t = null == r ? null : \"undefined\" != typeof Symbol && r[Symbol.iterator] || r[\"@@iterator\"]; if (null != t) { var e, n, i, u, a = [], f = !0, o = !1; try { if (i = (t = t.call(r)).next, 0 === l) { if (Object(t) !== t) return; f = !1; } else for (; !(f = (e = i.call(t)).done) && (a.push(e.value), a.length !== l); f = !0); } catch (r) { o = !0, n = r; } finally { try { if (!f && null != t[\"return\"] && (u = t[\"return\"](), Object(u) !== u)) return; } finally { if (o) throw n; } } return a; } }\nfunction _arrayWithHoles(r) { if (Array.isArray(r)) return r; }\nimport sanitizeTextContent from '../../../xml/sanitizeTextContent.js';\nimport getCellAddress from '../../helpers/getCellAddress.js';\nimport convertDateToSerialNumber from '../../helpers/convertDateToSerialNumber.js';\nexport default function generateCell(tag, _ref, index, rowIndex) {\n var value = _ref.value,\n type = _ref.type,\n cellStyleId = _ref.cellStyleId,\n findOrCreateSharedString = _ref.findOrCreateSharedString;\n // Empty cells could be skipped completely,\n // if they don't have a style applied to them,\n // like border or background color.\n if (value === null) {\n if (cellStyleId === undefined) {\n return '';\n }\n }\n var cellAttributes = {\n r: getCellAddress(rowIndex, index)\n };\n\n // Available formatting style IDs (built-in in Excel):\n // https://xlsxwriter.readthedocs.io/format.html#format-set-num-format\n // `2` — 0.00\n // `3` — #,##0\n if (cellStyleId !== undefined) {\n // From the attribute s=\"12\" we know that the cell's formatting is stored at the 13th (zero-based index) <xf> within the <cellXfs>\n cellAttributes.s = String(cellStyleId);\n }\n if (value === null) {\n return tag('c', cellAttributes, null, index);\n }\n\n // Validate date format.\n if (type === Date && cellStyleId === undefined) {\n throw new Error(\"No `format` was specified for a `Date` value in a cell in row \".concat(rowIndex + 1, \" column \").concat(index + 1, \". Either specify a `format` for this cell or specify a default global one by passing `dateFormat` option to `writeXlsxFile()` function\"));\n }\n var valueTextContent = getValueTextContent(type, value, findOrCreateSharedString);\n var typeAttribute = getTypeAttribute(type);\n\n // The default value for `t` is `\"n\"` (a number or a date).\n if (typeAttribute) {\n cellAttributes.t = typeAttribute;\n }\n var _getOpeningAndClosing = getOpeningAndClosingTags(type),\n _getOpeningAndClosing2 = _slicedToArray(_getOpeningAndClosing, 2),\n valueOpeningTags = _getOpeningAndClosing2[0],\n valueClosingTags = _getOpeningAndClosing2[1];\n var cellXml = valueOpeningTags + valueTextContent + valueClosingTags;\n return tag('c', cellAttributes, cellXml, index);\n}\nfunction getTypeAttribute(type) {\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 switch (type) {\n case String:\n return 's';\n // I don't know why did I comment out the use of \"inlineStr\" XLSX type.\n // Perhaps there were some issues with it. Or perhaps there weren't and everyone else just uses \"s\".\n // // \"inlineStr\" type is used instead of \"s\" to avoid creating a \"shared strings\" index.\n // return 'inlineStr'\n\n case Number:\n // `n` is the default cell type (if no `t` has been specified).\n // return 'n'\n return;\n case Date:\n // `n` is the default cell type (if no `t` has been specified).\n // return 'n'\n return;\n case Boolean:\n return 'b';\n case 'Formula':\n return;\n default:\n throw new Error(\"Unknown type: \".concat(type && type.name || type));\n }\n}\nfunction getValueTextContent(type, value, findOrCreateSharedString) {\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 switch (type) {\n case String:\n if (typeof value !== 'string') {\n throw new Error(\"Invalid cell value: \".concat(value, \". Expected a string\"));\n }\n return findOrCreateSharedString(value);\n case Number:\n if (typeof value !== 'number') {\n throw new Error(\"Invalid cell value: \".concat(value, \". Expected a number\"));\n }\n return String(value);\n case Date:\n if (!(value instanceof Date)) {\n throw new Error(\"Invalid cell value: \".concat(value, \". Expected a Date\"));\n }\n // \"d\" type doesn't seem to work.\n // return value.toISOString()\n return String(convertDateToSerialNumber(value));\n case Boolean:\n if (typeof value !== 'boolean') {\n throw new Error(\"Invalid cell value: \".concat(value, \". Expected a boolean\"));\n }\n return value ? '1' : '0';\n case 'Formula':\n if (typeof value !== 'string') {\n throw new Error(\"Invalid cell value: \".concat(value, \". Expected a string\"));\n }\n return sanitizeTextContent(value);\n default:\n throw new Error(\"Unknown type: \".concat(type && type.name || type));\n }\n}\nvar TAG_BRACKET_LEFT_REGEXP = /</g;\nfunction getOpeningAndClosingTags(type) {\n var openingTags = getOpeningTags(type);\n var closingTags = openingTags.replace(TAG_BRACKET_LEFT_REGEXP, '</');\n return [openingTags, closingTags];\n}\nfunction getOpeningTags(type) {\n switch (type) {\n // case 'inlineStr':\n // return '<is><t>'\n case 'Formula':\n return '<f>';\n default:\n return '<v>';\n }\n}\n//# sourceMappingURL=cell.js.map","export default function hasAlignment(_ref) {\n var align = _ref.align,\n alignVertical = _ref.alignVertical,\n textRotation = _ref.textRotation,\n indent = _ref.indent,\n wrap = _ref.wrap;\n return Boolean(align || alignVertical || typeof textRotation === 'number' || indent || wrap);\n}\n//# sourceMappingURL=hasAlignment.js.map","export default function hasBorder(_ref) {\n var borderColor = _ref.borderColor,\n borderStyle = _ref.borderStyle,\n leftBorderColor = _ref.leftBorderColor,\n leftBorderStyle = _ref.leftBorderStyle,\n rightBorderColor = _ref.rightBorderColor,\n rightBorderStyle = _ref.rightBorderStyle,\n topBorderColor = _ref.topBorderColor,\n topBorderStyle = _ref.topBorderStyle,\n bottomBorderColor = _ref.bottomBorderColor,\n bottomBorderStyle = _ref.bottomBorderStyle;\n return Boolean(borderColor || borderStyle || leftBorderColor || leftBorderStyle || rightBorderColor || rightBorderStyle || topBorderColor || topBorderStyle || bottomBorderColor || bottomBorderStyle);\n}\n//# sourceMappingURL=hasBorder.js.map","export default function hasFill(_ref) {\n var backgroundColor = _ref.backgroundColor,\n fillPatternStyle = _ref.fillPatternStyle,\n fillPatternColor = _ref.fillPatternColor;\n return Boolean(backgroundColor || fillPatternStyle && fillPatternColor);\n}\n//# sourceMappingURL=hasFill.js.map","export default function hasFont(_ref) {\n var fontFamily = _ref.fontFamily,\n fontSize = _ref.fontSize,\n fontWeight = _ref.fontWeight,\n fontStyle = _ref.fontStyle,\n textDecoration = _ref.textDecoration,\n textColor = _ref.textColor;\n return Boolean(fontFamily || typeof fontSize === 'number' || fontWeight || fontStyle || textDecoration && Object.keys(textDecoration).length > 0 || textColor);\n}\n//# sourceMappingURL=hasFont.js.map","import hasAlignment from '../../../helpers/hasAlignment.js';\nimport hasBorder from '../../../helpers/hasBorder.js';\nimport hasFill from '../../../helpers/hasFill.js';\nimport hasFont from '../../../helpers/hasFont.js';\nexport default function getCellStyleProperties(cell, features) {\n var align = cell.align,\n alignVertical = cell.alignVertical,\n textRotation = cell.textRotation,\n indent = cell.indent,\n wrap = cell.wrap,\n fontFamily = cell.fontFamily,\n fontSize = cell.fontSize,\n fontWeight = cell.fontWeight,\n fontStyle = cell.fontStyle,\n textDecoration = cell.textDecoration,\n textColor = cell.textColor,\n backgroundColor = cell.backgroundColor,\n fillPatternStyle = cell.fillPatternStyle,\n fillPatternColor = cell.fillPatternColor,\n borderColor = cell.borderColor,\n borderStyle = cell.borderStyle,\n leftBorderColor = cell.leftBorderColor,\n leftBorderStyle = cell.leftBorderStyle,\n rightBorderColor = cell.rightBorderColor,\n rightBorderStyle = cell.rightBorderStyle,\n topBorderColor = cell.topBorderColor,\n topBorderStyle = cell.topBorderStyle,\n bottomBorderColor = cell.bottomBorderColor,\n bottomBorderStyle = cell.bottomBorderStyle;\n if (hasAlignment({\n align: align,\n alignVertical: alignVertical,\n textRotation: textRotation,\n indent: indent,\n wrap: wrap\n }) || hasFont({\n fontFamily: fontFamily,\n fontSize: fontSize,\n fontWeight: fontWeight,\n fontStyle: fontStyle,\n textDecoration: textDecoration,\n textColor: textColor\n }) || hasFill({\n backgroundColor: backgroundColor,\n fillPatternStyle: fillPatternStyle,\n fillPatternColor: fillPatternColor\n }) || hasBorder({\n borderColor: borderColor,\n borderStyle: borderStyle,\n leftBorderColor: leftBorderColor,\n leftBorderStyle: leftBorderStyle,\n rightBorderColor: rightBorderColor,\n rightBorderStyle: rightBorderStyle,\n topBorderColor: topBorderColor,\n topBorderStyle: topBorderStyle,\n bottomBorderColor: bottomBorderColor,\n bottomBorderStyle: bottomBorderStyle\n })) {\n return omitUndefinedProperties({\n // alignment\n align: align,\n alignVertical: alignVertical,\n textRotation: textRotation,\n indent: indent,\n wrap: wrap,\n // font\n fontFamily: fontFamily,\n fontSize: fontSize,\n fontWeight: fontWeight,\n fontStyle: fontStyle,\n textDecoration: textDecoration,\n textColor: textColor,\n // fill\n backgroundColor: backgroundColor,\n fillPatternStyle: fillPatternStyle,\n fillPatternColor: fillPatternColor,\n // border\n borderColor: borderColor,\n borderStyle: borderStyle,\n leftBorderColor: leftBorderColor,\n leftBorderStyle: leftBorderStyle,\n rightBorderColor: rightBorderColor,\n rightBorderStyle: rightBorderStyle,\n topBorderColor: topBorderColor,\n topBorderStyle: topBorderStyle,\n bottomBorderColor: bottomBorderColor,\n bottomBorderStyle: bottomBorderStyle\n });\n }\n}\nfunction omitUndefinedProperties(object) {\n var filteredObject = {};\n for (var key in object) {\n if (object[key] !== undefined) {\n filteredObject[key] = object[key];\n }\n }\n return filteredObject;\n}\n//# sourceMappingURL=getCellStyleProperties.js.map","var objectConstructor = {}.constructor;\nexport default function isObject(object) {\n return object !== undefined && object !== null && object.constructor === objectConstructor;\n}\n//# sourceMappingURL=isObject.js.map","import isObject from './isObject.js';\n\n/**\r\n * Tells if a cell in sheet data is a simple value like `1` or \"abc\"\r\n * or if it's a fully-specified object like `{ value: \"abc\", type: String, ... }`.\r\n * https://gitlab.com/catamphetamine/write-excel-file/-/issues/107\r\n * @returns {boolean}\r\n */\nexport default function isCellObject(cell) {\n // (cell: Cell): value is CellObject {\n return isObject(cell);\n}\n//# sourceMappingURL=isCellObject.js.map","function _typeof(o) { \"@babel/helpers - typeof\"; return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && \"function\" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? \"symbol\" : typeof o; }, _typeof(o); }\nfunction ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }\nfunction _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }\nfunction _defineProperty(e, r, t) { return (r = _toPropertyKey(r)) in e ? Object.defineProperty(e, r, { value: t, enumerable: !0, configurable: !0, writable: !0 }) : e[r] = t, e; }\nfunction _toPropertyKey(t) { var i = _toPrimitive(t, \"string\"); return \"symbol\" == _typeof(i) ? i : i + \"\"; }\nfunction _toPrimitive(t, r) { if (\"object\" != _typeof(t) || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || \"default\"); if (\"object\" != _typeof(i)) return i; throw new TypeError(\"@@toPrimitive must return a primitive value.\"); } return (\"string\" === r ? String : Number)(t); }\nfunction _createForOfIteratorHelperLoose(r, e) { var t = \"undefined\" != typeof Symbol && r[Symbol.iterator] || r[\"@@iterator\"]; if (t) return (t = t.call(r)).next.bind(t); if (Array.isArray(r) || (t = _unsupportedIterableToArray(r)) || e && r && \"number\" == typeof r.length) { t && (r = t); var o = 0; return function () { return o >= r.length ? { done: !0 } : { done: !1, value: r[o++] }; }; } throw new TypeError(\"Invalid attempt to iterate non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); }\nfunction _unsupportedIterableToArray(r, a) { if (r) { if (\"string\" == typeof r) return _arrayLikeToArray(r, a); var t = {}.toString.call(r).slice(8, -1); return \"Object\" === t && r.constructor && (t = r.constructor.name), \"Map\" === t || \"Set\" === t ? Array.from(r) : \"Arguments\" === t || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t) ? _arrayLikeToArray(r, a) : void 0; } }\nfunction _arrayLikeToArray(r, a) { (null == a || a > r.length) && (a = r.length); for (var e = 0, n = Array(a); e < a; e++) n[e] = r[e]; return n; }\nimport generateCell from './cell.js';\nimport getCellStyleProperties from './helpers/getCellStyleProperties.js';\nimport isCellObject from '../../helpers/isCellObject.js';\nexport default function generateRow(tag, row, index, parameters) {\n // Calculate row height.\n var rowHeight;\n for (var _iterator = _createForOfIteratorHelperLoose(row), _step; !(_step = _iterator()).done;) {\n var cell = _step.value;\n if (isCellObject(cell)) {\n if (cell.height) {\n if (rowHeight === undefined || rowHeight < cell.height) {\n rowHeight = cell.height;\n }\n }\n }\n }\n\n // Generate `<r/>` element inner XML.\n var rowIndex = index;\n var rowCellsXml = row.map(function (cell, index) {\n return getCellXml(tag, cell, index, rowIndex, parameters);\n }).join('');\n var rowAttributes = {\n r: index + 1\n };\n if (rowHeight) {\n rowAttributes.ht = rowHeight;\n rowAttributes.customHeight = 1;\n }\n return tag('row', rowAttributes, rowCellsXml, index);\n}\nfunction getCellXml(tag, cell, index, rowIndex, _ref) {\n var findOrCreateCellStyle = _ref.findOrCreateCellStyle,\n findOrCreateSharedString = _ref.findOrCreateSharedString,\n hasDefaultFont = _ref.hasDefaultFont,\n dateFormat = _ref.dateFormat,\n features = _ref.features;\n if (cell === undefined || cell === null) {\n return '';\n }\n var cellObject = isCellObject(cell) ? cell : {\n value: cell\n };\n var cellStyleProperties = getCellStyleProperties(cellObject, features);\n var type = cellObject.type,\n value = cellObject.value,\n format = cellObject.format;\n if (isEmpty(value)) {\n value = null;\n } else {\n // Get cell value type.\n if (type === undefined) {\n type = detectValueType(value);\n if (type === undefined) {\n // The default cell value type is `String`.\n type = String;\n value = String(value);\n }\n }\n }\n\n // Validate `format` property.\n if (format) {\n if (type !== Date && type !== Number && type !== String && type !== 'Formula') {\n throw new Error(\"`format` \\\"\".concat(format, \"\\\" was specified on a cell of type `\").concat(type, \"`. `format` could only be specified on a cell of type `Date`, `Number`, `String` or `\\\"Formula\\\"`.\"));\n }\n if (type === String && format !== '@') {\n throw new Error(\"`format` \\\"\".concat(format, \"\\\" was specified on a cell of type `String`. The only supported `format` for a cell of type `String` is \\\"@\\\".\"));\n }\n } else {\n if (type === Date) {\n format = dateFormat;\n }\n }\n var hasFormat = Boolean(format);\n var hasCellStyle = Boolean(cellStyleProperties);\n var cellStyleId;\n if (hasDefaultFont || hasFormat || hasCellStyle) {\n cellStyleId = findOrCreateCellStyle(_objectSpread({\n format: format\n }, cellStyleProperties));\n }\n return generateCell(tag, {\n value: value,\n type: type,\n cellStyleId: cellStyleId,\n findOrCreateSharedString: findOrCreateSharedString\n }, index, rowIndex);\n}\nfunction isEmpty(value) {\n return value === undefined || value === null || value === '';\n}\nfunction detectValueType(value) {\n switch (_typeof(value)) {\n case 'string':\n return String;\n case 'number':\n return Number;\n case 'boolean':\n return Boolean;\n default:\n if (value instanceof Date) {\n return Date;\n }\n }\n}\n//# sourceMappingURL=row.js.map","import generateRow from './row.js';\nexport default function generateSheetData(tag, sheetData, parameters) {\n var sheetDataXml = sheetData.map(function (row, index) {\n return generateRow(tag, row, index, parameters);\n }).join('');\n return tag('sheetData', null, sheetDataXml);\n}\n//# sourceMappingURL=sheetData.js.map","import getCellStyleProperties from './helpers/getCellStyleProperties.js';\n\n// Supports \"merging cells\" across columns and rows.\n// https://rdrr.io/cran/openxlsx/man/mergeCells.html\n//\n// Returned result example for merged cells range \"A2:C3\":\n// { mergedCells: [ [0, 1], [2, 2] ] }\n//\n// Data example:\n//\n// rows:\n// [\n// [...],\n// [\n// { type: String, value: 'abc', columnSpan: 3, rowSpan: 2 },\n// { ... },\n// { ... }\n// ],\n// [...]\n// ]\n\nexport default function processMergedCells(sheetData, features) {\n var mergedCells = [];\n var _cloneSheetData = function cloneSheetData() {\n // The code will apply the style from the originating \"merged\" cells\n // to their adjacent `null` cells, so clone `sheetData` to prevent mutating it.\n sheetData = sheetData.slice();\n // Also clone each row of `sheetData`.\n var i = 0;\n while (i < sheetData.length) {\n sheetData[i] = sheetData[i].slice();\n i++;\n }\n // `sheetData` has been cloned. No need to clone it again.\n _cloneSheetData = function cloneSheetData() {\n return sheetData;\n };\n // Return the cloned `sheetData`.\n return sheetData;\n };\n var rowIndex = 0;\n while (rowIndex < sheetData.length) {\n var row = sheetData[rowIndex];\n var columnIndex = 0;\n while (columnIndex < row.length) {\n var cell = row[columnIndex];\n if (cell) {\n var _cell$rowSpan = cell.rowSpan,\n rowSpan = _cell$rowSpan === void 0 ? 1 : _cell$rowSpan;\n\n // `cell.span` property was renamed to `cell.columnSpan`.\n var columnSpan = typeof cell.span === 'number' ? cell.span : cell.columnSpan;\n if (typeof columnSpan !== 'number') {\n columnSpan = 1;\n }\n if (columnSpan > 1 || rowSpan > 1) {\n // Validate that `columnSpan`-ning or `rowSpan`-ning cells only overlap\n // `null` or `undefined` ones. Especially that `columnSpan`-ning or `rowSpan`-ning cells\n // don't overlap other `columnSpan`-ning or `rowSpan`-ning cells.\n processSpanningCells(sheetData, rowIndex, columnIndex, columnSpan, rowSpan, _cloneSheetData, features);\n\n // Add \"merged cells\" entry:\n // `[ [fromRowIndex, fromColumnIndex], [toRowIndex, toColumnIndex] ]`.\n mergedCells.push([[rowIndex, columnIndex], [rowIndex + (rowSpan ? rowSpan - 1 : 0), columnIndex + (columnSpan ? columnSpan - 1 : 0)]]);\n }\n }\n columnIndex++;\n }\n rowIndex++;\n }\n return {\n sheetData: sheetData,\n mergedCells: mergedCells\n };\n}\n\n// Validate that a `columnSpan`-ning / `rowSpan`-ning cell doesn't overlap\n// with other cells, especially `columnSpan`-ning / `rowSpan`-ning ones,\n// because those ones would make MS Office 2007 Excel say:\n// \"Excel found unreadable content in 'file.xlsx'.\n// Do you want to recover the contents of this workbook?\n// If you trust the source of this workbook, click Yes\".\nfunction processSpanningCells(sheetData, rowIndex, columnIndex, columnSpan, rowSpan, cloneSheetData, features) {\n var cellStyleProperties = getCellStyleProperties(sheetData[rowIndex][columnIndex], features);\n if (cellStyleProperties) {\n sheetData = cloneSheetData();\n }\n var i = rowIndex;\n while (i <= rowIndex + (rowSpan - 1)) {\n var j = columnIndex;\n while (j <= columnIndex + (columnSpan - 1)) {\n var cell = sheetData[i][j];\n if (i > rowIndex || j > columnIndex) {\n // Validate that all hidden cells are `null` or `undefined`.\n if (cell !== null && cell !== undefined) {\n throw new Error(\"[write-excel-file] When using `columnSpan` or `rowSpan` parameters, all hidden overlapped cells should be represented by `null`s or `undefined`s. Cell at row \".concat(rowIndex + 1, \" and column \").concat(columnIndex + 1, \" is configured with `columnSpan` \").concat(columnSpan, \" and `rowSpan` \").concat(rowSpan, \". Cell at row \").concat(i + 1, \" and column \").concat(j + 1, \" is neither `null` nor `undefined`: \").concat(JSON.stringify(cell)));\n }\n // Apply the style from the original cell to this `null` cell.\n // https://gitlab.com/catamphetamine/write-excel-file/-/issues/43\n if (cellStyleProperties) {\n sheetData[i][j] = cellStyleProperties;\n }\n }\n j++;\n }\n i++;\n }\n}\n//# sourceMappingURL=processMergedCells.js.map","function _slicedToArray(r, e) { return _arrayWithHoles(r) || _iterableToArrayLimit(r, e) || _unsupportedIterableToArray(r, e) || _nonIterableRest(); }\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.\"); }\nfunction _unsupportedIterableToArray(r, a) { if (r) { if (\"string\" == typeof r) return _arrayLikeToArray(r, a); var t = {}.toString.call(r).slice(8, -1); return \"Object\" === t && r.constructor && (t = r.constructor.name), \"Map\" === t || \"Set\" === t ? Array.from(r) : \"Arguments\" === t || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t) ? _arrayLikeToArray(r, a) : void 0; } }\nfunction _arrayLikeToArray(r, a) { (null == a || a > r.length) && (a = r.length); for (var e = 0, n = Array(a); e < a; e++) n[e] = r[e]; return n; }\nfunction _iterableToArrayLimit(r, l) { var t = null == r ? null : \"undefined\" != typeof Symbol && r[Symbol.iterator] || r[\"@@iterator\"]; if (null != t) { var e, n, i, u, a = [], f = !0, o = !1; try { if (i = (t = t.call(r)).next, 0 === l) { if (Object(t) !== t) return; f = !1; } else for (; !(f = (e = i.call(t)).done) && (a.push(e.value), a.length !== l); f = !0); } catch (r) { o = !0, n = r; } finally { try { if (!f && null != t[\"return\"] && (u = t[\"return\"](), Object(u) !== u)) return; } finally { if (o) throw n; } } return a; } }\nfunction _arrayWithHoles(r) { if (Array.isArray(r)) return r; }\nimport getCellAddress from '../../helpers/getCellAddress.js';\n\n// Supports \"merging cells\" across columns and rows.\n// https://rdrr.io/cran/openxlsx/man/mergeCells.html\n//\n// Returned XML example for merged cells range \"A2:C3\":\n// `<sheetData>...</sheetData><mergeCells count=\"1\"><mergeCell ref=\"A2:C3\"/></mergeCells>`\n//\n// Data example:\n//\n// rows:\n// [\n// [...],\n// [\n// { type: String, value: 'abc', columnSpan: 3, rowSpan: 2 },\n// { ... },\n// { ... }\n// ],\n// [...]\n// ]\n\nexport default function generateMergedCellsDescription(tag, mergedCells) {\n if (mergedCells.length === 0) {\n return '';\n }\n var mergeCellsXml = mergedCells.map(function (_ref, index) {\n var _ref2 = _slicedToArray(_ref, 2),\n from = _ref2[0],\n to = _ref2[1];\n var ref = getCellAddress(from[0], from[1]) + ':' + getCellAddress(to[0], to[1]);\n return tag('mergeCell', {\n ref: ref\n }, null, index);\n }).join('');\n return tag('mergeCells', {\n count: mergedCells.length\n }, mergeCellsXml);\n}\n//# sourceMappingURL=mergedCellsDescription.js.map","import sanitizeAttributeValue from '../../../xml/sanitizeAttributeValue.js';\nexport default function generatePageMargins(tag, _ref) {\n var orientation = _ref.orientation;\n // Margins are required when setting custom orientation,\n // otherwise they'd be `0`.\n // https://gitlab.com/catamphetamine/write-excel-file/-/issues/7#note_782347297\n if (orientation) {\n // Page margins (when printing).\n // https://github.com/randym/axlsx/blob/master/lib/axlsx/workbook/worksheet/page_margins.rb\n\n var marginLeft = 0.7; // The left margin in inches.\n var marginRight = 0.7; // The right margin in inches.\n var marginTop = 0.75; // The top margin in inches.\n var marginBottom = 0.75; // The bottom margin in inches.\n var header = 0.3; // The header margin in inches.\n var footer = 0.3; // The footer margin in inches.\n\n return tag('pageMargins', {\n left: marginLeft,\n right: marginRight,\n top: marginTop,\n bottom: marginBottom,\n header: header,\n footer: footer\n });\n }\n return '';\n}\n//# sourceMappingURL=pageMargins.js.map","import sanitizeAttributeValue from '../../../xml/sanitizeAttributeValue.js';\nexport default function generatePageSetup(tag, _ref) {\n var orientation = _ref.orientation;\n // Allows setting \"landscape\" orientation.\n // https://gitlab.com/catamphetamine/write-excel-file/-/issues/7\n if (orientation) {\n // Paper size (when printing).\n // https://github.com/randym/axlsx/blob/master/lib/axlsx/workbook/worksheet/page_setup.rb\n //\n // `paperSize` `9` means \"A4 paper (210 mm by 297 mm)\".\n //\n var paperSize = 9;\n\n // Page orientation (when printing).\n //\n // `orientation` can be:\n // * `landscape`\n // * `portrait`\n // https://docs.microsoft.com/en-us/office/vba/api/excel.pagesetup.orientation\n\n return tag('pageSetup', {\n paperSize: paperSize,\n orientation: sanitizeAttributeValue(orientation)\n });\n }\n return '';\n}\n//# sourceMappingURL=pageSetup.js.map","export default function generateDrawingReference(tag) {\n // Each sheet has at most one \"drawing\", so the drawing ID is always `1`.\n // Here it always creates a drawing, even if it's going to be empty.\n // Such behavior is more convenient for \"features\" (plugins)\n // that might rely on a drawing to already exist.\n // For example, images \"feature\" uses this drawing.\n return tag('drawing', {\n 'r:id': 'rId-drawing-1'\n });\n}\nexport var UNUSED_DRAWING_REFERENCE_XML = '<drawing r:id=\"rId-drawing-1\"/>';\n//# sourceMappingURL=drawingReference.js.map","import generateSheetViews from './sheetViews.js';\nimport generateColumnsDescription from './columns.js';\nimport generateSheetData from './sheetData.js';\nimport processMergedCells from './processMergedCells.js';\nimport generateMergedCellsDescription from './mergedCellsDescription.js';\nimport generatePageMargins from './pageMargins.js';\nimport generatePageSetup from './pageSetup.js';\nimport generateDrawingReference from './drawingReference.js';\nimport getAdditionalContent from '../../helpers/features/getAdditionalContent.js';\nimport transformContent from '../../helpers/features/transformContent.js';\nimport getElementXml from '../../helpers/features/getElementXml.js';\nexport default function generateSheetXml(sheetXmlParameters, features) {\n var sheetData_ = sheetXmlParameters.sheetData,\n sheetOptions = sheetXmlParameters.sheetOptions,\n sheetIndex = sheetXmlParameters.sheetIndex,\n sheetId = sheetXmlParameters.sheetId,\n hasDefaultFont = sheetXmlParameters.hasDefaultFont,\n findOrCreateCellStyle = sheetXmlParameters.findOrCreateCellStyle,\n findOrCreateSharedString = sheetXmlParameters.findOrCreateSharedString;\n var columns = sheetOptions.columns,\n dateFormat = sheetOptions.dateFormat,\n orientation = sheetOptions.orientation,\n showGridLines = sheetOptions.showGridLines,\n rightToLeft = sheetOptions.rightToLeft,\n zoomScale = sheetOptions.zoomScale;\n var _processMergedCells = processMergedCells(sheetData_, {\n features: features\n }),\n sheetData = _processMergedCells.sheetData,\n mergedCells = _processMergedCells.mergedCells;\n\n // A parameter that will be used inside the `tag()` function below.\n var tagFunctionProperties = {\n sheetIndex: sheetIndex,\n sheetId: sheetId\n };\n\n /**\r\n * Creates XML tag markup.\r\n * @param {string} tagName\r\n * @param {object} attributes\r\n * @param {string} [innerXml]\r\n * @param {number} [index]\r\n * @returns {string}\r\n */\n var tag = function tag(tagName, attributes, innerXml, index) {\n return getElementXml('xl/worksheets/sheet{id}.xml', tagName, attributes, innerXml, index, tagFunctionProperties, sheetOptions, features);\n };\n var xml = '<?xml version=\"1.0\" ?>' + '<worksheet xmlns=\"http://schemas.openxmlformats.org/spreadsheetml/2006/main\" xmlns:mc=\"http://schemas.openxmlformats.org/markup-compatibility/2006\" xmlns:mv=\"urn:schemas-microsoft-com:mac:vml\" xmlns:mx=\"http://schemas.microsoft.com/office/mac/excel/2008/main\" xmlns:r=\"http://schemas.openxmlformats.org/officeDocument/2006/relationships\" xmlns:x14=\"http://schemas.microsoft.com/office/spreadsheetml/2009/9/main\" xmlns:x14ac=\"http://schemas.microsoft.com/office/spreadsheetml/2009/9/ac\" xmlns:xm=\"http://schemas.microsoft.com/office/excel/2006/main\">' +\n // The order of elements is dictated by the XLSX spec.\n //\n // `<sheetViews/>`\n generateSheetViews(tag, {\n showGridLines: showGridLines,\n rightToLeft: rightToLeft,\n zoomScale: zoomScale\n }, sheetIndex) +\n // `<cols/>`\n generateColumnsDescription(tag, columns) +\n // `<sheetData/>`\n generateSheetData(tag, sheetData, {\n findOrCreateCellStyle: findOrCreateCellStyle,\n findOrCreateSharedString: findOrCreateSharedString,\n hasDefaultFont: hasDefaultFont,\n dateFormat: dateFormat,\n features: features\n }) +\n // `<mergeCells/>`\n generateMergedCellsDescription(tag, mergedCells) +\n // `<pageMargins/>`\n generatePageMargins(tag, {\n orientation: orientation\n }) +\n // `<pageSetup/>`\n generatePageSetup(tag, {\n orientation: orientation\n }) +\n // `<drawing/>`\n generateDrawingReference(tag) +\n // Apply any plugins that insert additional content to this XML.\n getAdditionalContent('xl/worksheets/sheet{id}.xml', features, sheetOptions, {\n sheetIndex: sheetIndex,\n sheetId: sheetId\n }) + '</worksheet>';\n\n // Apply any plugins that transform this XML.\n xml = transformContent(xml, 'xl/worksheets/sheet{id}.xml', features, sheetOptions, {\n sheetIndex: sheetIndex,\n sheetId: sheetId\n });\n return xml;\n}\n//# sourceMappingURL=sheet.xml.js.map","import getAdditionalContent from '../helpers/features/getAdditionalContent.js';\nimport transformContent from '../helpers/features/transformContent.js';\nexport default function generateSheetXmlRels(_ref) {\n var sheetIndex = _ref.sheetIndex,\n sheetId = _ref.sheetId,\n sheetOptions = _ref.sheetOptions,\n features = _ref.features;\n var xml = '<?xml version=\"1.0\" encoding=\"UTF-8\" standalone=\"yes\"?>' + '<Relationships xmlns=\"http://schemas.openxmlformats.org/package/2006/relationships\">' +\n // Each sheet has at most one \"drawing\", so a globally-unique drawing ID is assumed to be the sheet ID.\n getDrawingRelationshipXml(sheetId) +\n // Apply any plugins that insert additional content to this XML.\n getAdditionalContent('xl/worksheets/_rels/sheet{id}.xml.rels', features, sheetOptions, {\n sheetIndex: sheetIndex,\n sheetId: sheetId\n }) + '</Relationships>';\n\n // Apply any plugins that transform this XML.\n xml = transformContent(xml, 'xl/worksheets/_rels/sheet{id}.xml.rels', features, sheetOptions, {\n sheetIndex: sheetIndex,\n sheetId: sheetId\n });\n return xml;\n}\nexport function getDrawingRelationshipXml(sheetId) {\n return \"<Relationship Id=\\\"rId-drawing-1\\\" Type=\\\"http://schemas.openxmlformats.org/officeDocument/2006/relationships/drawing\\\" Target=\\\"../drawings/drawing\".concat(sheetId, \".xml\\\"/>\");\n}\n//# sourceMappingURL=sheet.xml.rels.js.map","function _createForOfIteratorHelperLoose(r, e) { var t = \"undefined\" != typeof Symbol && r[Symbol.iterator] || r[\"@@iterator\"]; if (t) return (t = t.call(r)).next.bind(t); if (Array.isArray(r) || (t = _unsupportedIterableToArray(r)) || e && r && \"number\" == typeof r.length) { t && (r = t); var o = 0; return function () { return o >= r.length ? { done: !0 } : { done: !1, value: r[o++] }; }; } throw new TypeError(\"Invalid attempt to iterate non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); }\nfunction _unsupportedIterableToArray(r, a) { if (r) { if (\"string\" == typeof r) return _arrayLikeToArray(r, a); var t = {}.toString.call(r).slice(8, -1); return \"Object\" === t && r.constructor && (t = r.constructor.name), \"Map\" === t || \"Set\" === t ? Array.from(r) : \"Arguments\" === t || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t) ? _arrayLikeToArray(r, a) : void 0; } }\nfunction _arrayLikeToArray(r, a) { (null == a || a > r.length) && (a = r.length); for (var e = 0, n = Array(a); e < a; e++) n[e] = r[e]; return n; }\nimport sanitizeTextContent from '../../xml/sanitizeTextContent.js';\nexport default function generateSharedStringsXml(sharedStrings) {\n var xml = '<?xml version=\"1.0\"?>';\n xml += '<sst xmlns=\"http://schemas.openxmlformats.org/spreadsheetml/2006/main\">';\n for (var _iterator = _createForOfIteratorHelperLoose(sharedStrings), _step; !(_step = _iterator()).done;) {\n var string = _step.value;\n var attributes = string.trim().length === string.length ? '' : ' xml:space=\"preserve\"';\n xml += \"<si><t\".concat(attributes, \">\");\n xml += sanitizeTextContent(string);\n xml += '</t></si>';\n }\n xml += '</sst>';\n return xml;\n}\n//# sourceMappingURL=sharedStrings.xml.js.map","export default function getXlsxColorForHexColor(color) {\n if (color[0] !== '#') {\n throw new Error(\"Color \\\"\".concat(color, \"\\\" must start with a \\\"#\\\"\"));\n }\n return \"FF\".concat(color.slice('#'.length).toUpperCase());\n}\n//# sourceMappingURL=getXlsxColorForHexColor.js.map","import sanitizeAttributeValue from '../../xml/sanitizeAttributeValue.js';\nimport getXlsxColorForHexColor from './getXlsxColorForHexColor.js';\nimport hasFill from './hasFill.js';\nexport default function getFillXml(fill) {\n var _ref = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {},\n conditionalFormatting = _ref.conditionalFormatting;\n var backgroundColor = fill.backgroundColor,\n fillPatternStyle = fill.fillPatternStyle,\n fillPatternColor = fill.fillPatternColor;\n var isSolidFill = !fillPatternStyle || fillPatternStyle === 'solid';\n if (!hasFill(fill)) {\n return '<fill>' + '<patternFill patternType=\"none\"/>' + '</fill>';\n }\n var xml = '<fill>';\n\n // In XLSX, a background could be one of two types:\n //\n // * Some background color\n // * `<patternFill patternType=\"solid\"/>`\n // * `<fgColor rgb=\"...\"/>` — extremely weirdly, \"background color\" is specified as \"foreground color\" in XLSX standard.\n // * `<bgColor indexed=\"64\"/>` — just ignore this extremely weird mandatory element in XLSX standard.\n // * Some background color + Some pattern over it\n // * `<patternFill patternType=\"...something-other-than-solid...\"/>`\n // * `<fgColor rgb=\"...\"/>` — Pattern color\n // * `<bgColor rgb=\"...\"/>` — Background color\n //\n // As weird as it is, it gets more weird when it comes to \"conditional formatting\":\n // for some weird reason, it doesn't work same way in case of \"conditional formatting\".\n // Specifically, `<bgColor indexed=\"64\"/>` should not be used and instead it should specify\n // `<bgColor rgb=\"...\"/>` same as `<fgColor rgb=\"...\"/>`.\n\n xml += \"<patternFill patternType=\\\"\".concat(isSolidFill ? 'solid' : fillPatternStyle, \"\\\">\");\n xml += \"<fgColor rgb=\\\"\".concat(sanitizeAttributeValue(getXlsxColorForHexColor(isSolidFill ? backgroundColor : fillPatternColor)), \"\\\"/>\");\n xml += \"<bgColor \".concat(isSolidFill && !conditionalFormatting ? 'indexed=\"64\"' : 'rgb=\"' + sanitizeAttributeValue(getXlsxColorForHexColor(backgroundColor)) + '\"', \"/>\");\n xml += '</patternFill>';\n\n // Close the `<fill>` element.\n xml += '</fill>';\n\n // Return the XML.\n return xml;\n}\n//# sourceMappingURL=getFillXml.js.map","import sanitizeAttributeValue from '../../xml/sanitizeAttributeValue.js';\nimport getXlsxColorForHexColor from './getXlsxColorForHexColor.js';\nexport default function getBorderXml(_ref) {\n var borderColor = _ref.borderColor,\n borderStyle = _ref.borderStyle,\n leftBorderColor = _ref.leftBorderColor,\n leftBorderStyle = _ref.leftBorderStyle,\n rightBorderColor = _ref.rightBorderColor,\n rightBorderStyle = _ref.rightBorderStyle,\n topBorderColor = _ref.topBorderColor,\n topBorderStyle = _ref.topBorderStyle,\n bottomBorderColor = _ref.bottomBorderColor,\n bottomBorderStyle = _ref.bottomBorderStyle;\n var left = {\n style: leftBorderStyle || borderStyle,\n color: leftBorderColor || borderColor\n };\n var right = {\n style: rightBorderStyle || borderStyle,\n color: rightBorderColor || borderColor\n };\n var top = {\n style: topBorderStyle || borderStyle,\n color: topBorderColor || borderColor\n };\n var bottom = {\n style: bottomBorderStyle || borderStyle,\n color: bottomBorderColor || borderColor\n };\n var xml = '<border>';\n xml += getSideBorderXml('left', left);\n xml += getSideBorderXml('right', right);\n xml += getSideBorderXml('top', top);\n xml += getSideBorderXml('bottom', bottom);\n xml += '<diagonal/>';\n xml += '</border>';\n return xml;\n}\nfunction getSideBorderXml(side, _ref2) {\n var style = _ref2.style,\n color = _ref2.color;\n if (color && !style) {\n style = 'thin';\n }\n var hasChildren = Boolean(color);\n return \"<\".concat(side) + (style ? \" style=\\\"\".concat(sanitizeAttributeValue(style), \"\\\"\") : '') + (hasChildren ? '>' : '/>') + (color ? \"<color rgb=\\\"\".concat(sanitizeAttributeValue(getXlsxColorForHexColor(color)), \"\\\"/>\") : '') + (hasChildren ? \"</\".concat(side, \">\") : '');\n}\n//# sourceMappingURL=getBorderXml.js.map","import sanitizeAttributeValue from '../../xml/sanitizeAttributeValue.js';\nimport getXlsxColorForHexColor from './getXlsxColorForHexColor.js';\nexport default function getFontXml(font) {\n var _ref = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {},\n isDefaultGenericFont = _ref.isDefaultGenericFont;\n var fontFamily = font.fontFamily,\n fontSize = font.fontSize,\n fontWeight = font.fontWeight,\n fontStyle = font.fontStyle,\n textDecoration = font.textDecoration,\n textColor = font.textColor;\n var xml = '<font>';\n\n // Apply `fontFamily`\n if (fontFamily) {\n // `<name/>` element specifies the actual typeface name, such as \"Calibri\" or \"Arial\".\n xml += \"<name val=\\\"\".concat(sanitizeAttributeValue(fontFamily), \"\\\"/>\");\n }\n\n // Apply `fontSize`\n if (typeof fontSize === 'number') {\n xml += \"<sz val=\\\"\".concat(fontSize, \"\\\"/>\");\n }\n\n // `<family/>` element specifies a generic font family classification, which is used\n // by the application's font substitution logic if the exact font name is unavailable.\n // The `val` attribute uses a numerical value corresponding to a generic family:\n // 0: Automatic\n // 1: Roman (serif typefaces, like Times New Roman)\n // 2: Swiss (sans-serif typefaces, like Arial or Calibri)\n // 3: Modern (typefaces with a consistent stroke width, often monospaced)\n // 4: Script (handwriting or calligraphy style)\n // 5: Decorative (display typefaces)\n xml += '<family val=\"2\"/>';\n\n // When no custom font family or size are specified,\n // it uses a default generic font.\n if (!(fontFamily || typeof fontSize === 'number')) {\n // Specifies that a font belongs to the theme's \"minor\" (body) category,\n // mapping it to the default paragraph/body font. It enables automatic font updates\n // when changing themes, separating it from \"major\" (heading) fonts.\n xml += '<scheme val=\"minor\"/>';\n }\n\n // Apply `fontWeight`\n if (fontWeight === 'bold') {\n xml += '<b/>';\n }\n\n // Apply `fontStyle`\n if (fontStyle === 'italic') {\n xml += '<i/>';\n }\n\n // Apply `textDecoration`\n if (textDecoration) {\n if (textDecoration.strikethrough) {\n xml += '<strike/>';\n }\n if (textDecoration.underline) {\n xml += '<u/>';\n } else if (textDecoration.doubleUnderline) {\n xml += '<u val=\"double\"/>';\n }\n }\n\n // Sidenote: \"subscript\" and \"superscript\" text styles\n // don't seem to work with \"conditional formatting\" feature.\n //\n // if (... === 'subscript') {\n // \txml += '<vertAlign val=\"subscript\"/>'\n // } else if (... === 'superscript') {\n // \txml += '<vertAlign val=\"superscript\"/>'\n // }\n\n // Apply `textColor`\n if (textColor) {\n xml += \"<color rgb=\\\"\".concat(sanitizeAttributeValue(getXlsxColorForHexColor(textColor)), \"\\\"/>\");\n } else {\n // In XLSX files, `theme=\"1\"` for font color typically refers to the first color\n // in the document's theme palette, which is usually \"light-1\" (white or very light grey)\n // or \"dark-1\" (black or very dark grey) depending on the background theme,\n // designed to contrast with the default background color.\n //\n // It is part of the XML structure in XLSX files that defines theme-based colors\n // rather than hardcoded RGB values, allowing for dynamic updates when changing themes in Excel.\n //\n // It is generally used to define the primary text color (e.g., black on white) for default styling.\n //\n xml += '<color theme=\"1\"/>';\n }\n xml += '</font>';\n return xml;\n}\n//# sourceMappingURL=getFontXml.js.map","import sanitizeAttributeValue from '../../xml/sanitizeAttributeValue.js';\nexport default function getAlignmentXml(_ref) {\n var align = _ref.align,\n alignVertical = _ref.alignVertical,\n textRotation = _ref.textRotation,\n indent = _ref.indent,\n wrap = _ref.wrap;\n return '<alignment' + (align ? \" horizontal=\\\"\".concat(sanitizeAttributeValue(align), \"\\\"\") : '') + (alignVertical ? \" vertical=\\\"\".concat(sanitizeAttributeValue(alignVertical), \"\\\"\") : '') + (textRotation ? \" textRotation=\\\"\".concat(getTextRotation(validateTextRotation(textRotation)), \"\\\"\") : '') + (indent ? \" indent=\\\"\".concat(sanitizeAttributeValue(String(indent)), \"\\\"\") : '') + (wrap ? \" wrapText=\\\"1\\\"\" : '') + '/>';\n}\n\n// Validates text rotation parameter value.\n// Text rotation parameter value could be from -90 to 90.\n// Positive values rotate the text counterclockwise, and negative values rotate the text clockwise.\n//\n// The spec-compliant `textRotation` parameter value is weird.\n// See `getTextRotation()` function comments.\n//\n// I've searched the internet on how other libraries expect text rotation parameter to look like.\n// The consensus seems to be \"-90...90\" so that it's not as weird as the official spec defines it.\n//\n// In ClosedXML .NET library, it allows the values from -90 to 90:\n// https://docs.closedxml.io/en/latest/features/cell-format.html#orientation\n//\n// In XlsxWriter Python library, it's -90 to 90 with 270 as a special magic value:\n// https://xlsxwriter.readthedocs.io/format.html#format-set-rotation\n//\n// In Apache POI, it's also -90 to 90 and 255 as a special magic value:\n// https://copyprogramming.com/howto/how-to-rotate-text-in-a-spreadsheet-cell-using-apache-poi\n//\n// \"Specify the angle of rotation for the text within the cell.\n// The degree of rotation can range between -90 and 90 degrees, or it can be set to 0xff for vertical alignment.\"\n//\n// So -90 to 90 seems like a common-practice value range.\n//\nfunction validateTextRotation(textRotation) {\n if (!(textRotation >= -90 && textRotation <= 90)) {\n throw new Error(\"Unsupported text rotation angle: \".concat(textRotation, \". Values from -90 to 90 are supported.\"));\n }\n return textRotation;\n}\n\n// Transforms `textRotation` parameter value to the spec-compliant form.\n//\n// The XLSX specification for the value of `textRotation` is weird:\n// https://learn.microsoft.com/en-us/dotnet/api/documentformat.openxml.spreadsheet.alignment?view=openxml-2.8.1\n//\n// \"Text rotation in cells. Expressed in degrees. Values range from 0 to 180.\n// The first letter of the text is considered the center-point of the arc.\n// For 0 - 90, the value represents degrees above horizon.\n// For 91-180 the degrees below the horizon is calculated as:\n// [degrees below horizon] = 90 - textRotation\"\n//\nfunction getTextRotation(textRotation) {\n if (textRotation < 0) {\n return 90 - textRotation;\n }\n return textRotation;\n}\n//# sourceMappingURL=getAlignmentXml.js.map","function _typeof(o) { \"@babel/helpers - typeof\"; return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && \"function\" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? \"symbol\" : typeof o; }, _typeof(o); }\nfunction ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }\nfunction _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }\nfunction _defineProperty(e, r, t) { return (r = _toPropertyKey(r)) in e ? Object.defineProperty(e, r, { value: t, enumerable: !0, configurable: !0, writable: !0 }) : e[r] = t, e; }\nfunction _toPropertyKey(t) { var i = _toPrimitive(t, \"string\"); return \"symbol\" == _typeof(i) ? i : i + \"\"; }\nfunction _toPrimitive(t, r) { if (\"object\" != _typeof(t) || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || \"default\"); if (\"object\" != _typeof(i)) return i; throw new TypeError(\"@@toPrimitive must return a primitive value.\"); } return (\"string\" === r ? String : Number)(t); }\nimport hasFont from './helpers/hasFont.js';\nimport hasFill from './helpers/hasFill.js';\nimport hasBorder from './helpers/hasBorder.js';\n\n// There seem to be about 100 \"built-in\" formats in Excel.\n// https://docs.microsoft.com/en-us/previous-versions/office/developer/office-2010/ee857658(v=office.14)?redirectedfrom=MSDN\nexport var FORMAT_ID_STARTS_FROM = 100;\nexport default function initializeStyles(defaultFont) {\n var formats = [];\n var formatIdByFormat = {};\n var styles = [];\n var stylesIndex = {};\n var fonts = [];\n var fontIdByFontKey = {};\n var fills = [];\n var fillIdByFillKey = {};\n var borders = [];\n var borderIdByBorderKey = {};\n\n // Add default font.\n var defaultFontId = fonts.length;\n fontIdByFontKey[getKey(defaultFont)] = defaultFontId;\n fonts.push(defaultFont || {});\n\n // // If any of the sheets have a default font that is different from the generic one,\n // // add those fonts to the collection.\n // const sheetsDefaultFontIds = sheetsDefaultFonts.map((font) => {\n // if (font) {\n // const fontKey = getKey(font)\n // if (fontIdByFontKey[fontKey] !== undefined) {\n // return fontIdByFontKey[fontKey]\n // }\n // const fontId = fonts.length\n // fontIdByFontKey[fontKey] = fontId\n // fonts.push(font)\n // return fontId\n // } else {\n // return defaultFontId\n // }\n // })\n\n // Default fill (no color).\n var defaultFill = {};\n fillIdByFillKey[getKey(defaultFill)] = fills.length;\n fills.push(defaultFill);\n\n // Default border.\n var defaultBorder = {};\n borderIdByBorderKey[getKey(defaultBorder)] = borders.length;\n borders.push(defaultBorder);\n\n // Always add a mandatory \"gray125\" fill.\n // For some weird reason, MS Office 2007 Excel seems to require this type of `<fill>`\n // to always be present in an `*.xslx` document.\n // Otherwise, if this `<fill>` is absent in the document, it would forcefully overwrite\n // the first custom `backgroundColor` with a \"gray125\" fill.\n var gray125Fill = {\n gray125: true\n };\n fills.push(gray125Fill);\n\n // Returns a style ID number.\n // Adds a new style if it doesn't exist yet.\n // If it already exists, just reuses the existing one.\n function findOrCreateCellStyle(cellStyle) {\n var format = cellStyle.format,\n align = cellStyle.align,\n alignVertical = cellStyle.alignVertical,\n textRotation = cellStyle.textRotation,\n indent = cellStyle.indent,\n wrap = cellStyle.wrap,\n fontFamily = cellStyle.fontFamily,\n fontSize = cellStyle.fontSize,\n fontWeight = cellStyle.fontWeight,\n fontStyle = cellStyle.fontStyle,\n textDecoration = cellStyle.textDecoration,\n textColor = cellStyle.textColor,\n backgroundColor = cellStyle.backgroundColor,\n fillPatternStyle = cellStyle.fillPatternStyle,\n fillPatternColor = cellStyle.fillPatternColor,\n borderColor = cellStyle.borderColor,\n borderStyle = cellStyle.borderStyle,\n leftBorderColor = cellStyle.leftBorderColor,\n leftBorderStyle = cellStyle.leftBorderStyle,\n rightBorderColor = cellStyle.rightBorderColor,\n rightBorderStyle = cellStyle.rightBorderStyle,\n topBorderColor = cellStyle.topBorderColor,\n topBorderStyle = cellStyle.topBorderStyle,\n bottomBorderColor = cellStyle.bottomBorderColor,\n bottomBorderStyle = cellStyle.bottomBorderStyle;\n\n // const defaultFont = sheetsDefaultFonts[sheetIndex]\n // const defaultFontId = sheetsDefaultFontIds[sheetIndex]\n\n var font = {\n fontFamily: fontFamily,\n fontSize: fontSize,\n fontWeight: fontWeight,\n fontStyle: fontStyle,\n textDecoration: textDecoration,\n textColor: textColor\n };\n var fill = {\n backgroundColor: backgroundColor,\n fillPatternStyle: fillPatternStyle,\n fillPatternColor: fillPatternColor\n };\n var border = {\n borderColor: borderColor,\n borderStyle: borderStyle,\n leftBorderColor: leftBorderColor,\n leftBorderStyle: leftBorderStyle,\n rightBorderColor: rightBorderColor,\n rightBorderStyle: rightBorderStyle,\n topBorderColor: topBorderColor,\n topBorderStyle: topBorderStyle,\n bottomBorderColor: bottomBorderColor,\n bottomBorderStyle: bottomBorderStyle\n };\n var alignment = {\n align: align,\n alignVertical: alignVertical,\n textRotation: textRotation,\n indent: indent,\n wrap: wrap\n };\n var formatKey = getKey(format);\n var fontKey = getKey(font);\n var fillKey = getKey(fill);\n var borderKey = getKey(border);\n // const alignmentKey = getKey(alignment)\n\n var styleKey = getKey(cellStyle);\n\n // Returns style ID.\n var addStyle = function addStyle() {\n // Get format ID.\n var formatId;\n if (format) {\n formatId = formatIdByFormat[formatKey];\n if (formatId === undefined) {\n formatId = FORMAT_ID_STARTS_FROM + formats.length;\n formatIdByFormat[formatKey] = formatId;\n formats.push(format);\n }\n }\n\n // Get font ID.\n var fontId;\n if (hasFont(font)) {\n fontId = fontIdByFontKey[fontKey];\n if (fontId === undefined) {\n fontId = fonts.length;\n fontIdByFontKey[fontKey] = fontId;\n fonts.push(_objectSpread(_objectSpread({}, font), {}, {\n fontSize: font.fontSize || defaultFont && defaultFont.fontSize,\n fontFamily: font.fontFamily || defaultFont && defaultFont.fontFamily\n }));\n }\n } else if (defaultFont) {\n fontId = defaultFontId;\n }\n\n // Get fill ID.\n var fillId;\n if (hasFill(fill)) {\n fillId = fillIdByFillKey[fillKey];\n if (fillId === undefined) {\n fillId = fills.length;\n fillIdByFillKey[fillKey] = fillId;\n fills.push({\n backgroundColor: backgroundColor,\n fillPatternStyle: fillPatternStyle,\n fillPatternColor: fillPatternColor\n });\n }\n }\n\n // Get border ID.\n var borderId;\n if (hasBorder(border)) {\n borderId = borderIdByBorderKey[borderKey];\n if (borderId === undefined) {\n borderId = borders.length;\n borderIdByBorderKey[borderKey] = borderId;\n borders.push(border);\n }\n }\n var styleId = styles.length;\n stylesIndex[styleKey] = styleId;\n\n // Add a style.\n styles.push({\n formatId: formatId,\n fontId: fontId,\n fillId: fillId,\n borderId: borderId,\n alignment: alignment\n });\n return styleId;\n };\n\n // Look for an existing style.\n if (stylesIndex[styleKey] !== undefined) {\n return stylesIndex[styleKey];\n }\n\n // Create new style if doesn't exist.\n return addStyle();\n }\n\n // Add default style.\n // It will be used for any cell that doesn't specify any custom style properties.\n findOrCreateCellStyle({});\n return {\n getCellStyles: function getCellStyles() {\n return {\n formats: formats,\n styles: styles,\n fonts: fonts,\n fills: fills,\n borders: borders\n };\n },\n findOrCreateCellStyle: findOrCreateCellStyle\n };\n}\nfunction getKey(object) {\n return JSON.stringify(object);\n}\n//# sourceMappingURL=initializeStyles.js.map","function _createForOfIteratorHelperLoose(r, e) { var t = \"undefined\" != typeof Symbol && r[Symbol.iterator] || r[\"@@iterator\"]; if (t) return (t = t.call(r)).next.bind(t); if (Array.isArray(r) || (t = _unsupportedIterableToArray(r)) || e && r && \"number\" == typeof r.length) { t && (r = t); var o = 0; return function () { return o >= r.length ? { done: !0 } : { done: !1, value: r[o++] }; }; } throw new TypeError(\"Invalid attempt to iterate non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); }\nfunction _unsupportedIterableToArray(r, a) { if (r) { if (\"string\" == typeof r) return _arrayLikeToArray(r, a); var t = {}.toString.call(r).slice(8, -1); return \"Object\" === t && r.constructor && (t = r.constructor.name), \"Map\" === t || \"Set\" === t ? Array.from(r) : \"Arguments\" === t || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t) ? _arrayLikeToArray(r, a) : void 0; } }\nfunction _arrayLikeToArray(r, a) { (null == a || a > r.length) && (a = r.length); for (var e = 0, n = Array(a); e < a; e++) n[e] = r[e]; return n; }\nimport sanitizeAttributeValue from '../../xml/sanitizeAttributeValue.js';\nimport getFillXml from '../helpers/getFillXml.js';\nimport getBorderXml from '../helpers/getBorderXml.js';\nimport getFontXml from '../helpers/getFontXml.js';\nimport hasAlignment from '../helpers/hasAlignment.js';\nimport getAlignmentXml from '../helpers/getAlignmentXml.js';\nimport getAdditionalContent from '../helpers/features/getAdditionalContent.js';\nimport transformContent from '../helpers/features/transformContent.js';\nimport { FORMAT_ID_STARTS_FROM } from '../initializeStyles.js';\nexport default function generateStylesXml(cellStyles, sheetsOptions, features) {\n var formats = cellStyles.formats,\n styles = cellStyles.styles,\n fonts = cellStyles.fonts,\n fills = cellStyles.fills,\n borders = cellStyles.borders;\n var xml = '<?xml version=\"1.0\" ?>';\n xml += '<styleSheet xmlns=\"http://schemas.openxmlformats.org/spreadsheetml/2006/main\">';\n\n // Turns out, as weird as it sounds, the order of XML elements matters to MS Office Excel.\n // https://social.msdn.microsoft.com/Forums/office/en-US/cc47ab65-dab7-4e32-b676-b641aa1e1411/how-to-validate-the-xlsx-that-i-generate?forum=oxmlsdk\n // For example, previously this library was inserting `<cellXfs/>` before `<fonts/>`\n // and that caused MS Office 2007 Excel to throw an error about the file being corrupt:\n // \"Excel found unreadable content in '*.xlsx'. Do you want to recover the contents of this workbook?\"\n // \"Excel was able to open the file by repairing or removing the unreadable content.\"\n // \"Removed Part: /xl/styles.xml part with XML error. (Styles) Load error. Line 1, column ...\"\n // \"Repaired Records: Cell information from /xl/worksheets/sheet1.xml part\"\n\n if (formats.length > 0) {\n xml += \"<numFmts count=\\\"\".concat(formats.length, \"\\\">\");\n for (var i = 0; i < formats.length; i++) {\n xml += \"<numFmt numFmtId=\\\"\".concat(FORMAT_ID_STARTS_FROM + i, \"\\\" formatCode=\\\"\").concat(sanitizeAttributeValue(formats[i]), \"\\\"/>\");\n }\n xml += \"</numFmts>\";\n }\n xml += \"<fonts count=\\\"\".concat(fonts.length, \"\\\">\");\n for (var _iterator = _createForOfIteratorHelperLoose(fonts), _step; !(_step = _iterator()).done;) {\n var font = _step.value;\n xml += getFontXml(font);\n }\n xml += '</fonts>';\n\n // MS Office 2007 Excel seems to require a `<fills/>` element to always exist.\n // without it, MS Office 2007 Excel thinks that the file is broken.\n xml += \"<fills count=\\\"\".concat(fills.length, \"\\\">\");\n for (var _iterator2 = _createForOfIteratorHelperLoose(fills), _step2; !(_step2 = _iterator2()).done;) {\n var fill = _step2.value;\n if (fill.gray125) {\n // \"gray125\" fill.\n // For some weird reason, MS Office 2007 Excel seems to require \"gray125\" fill to be present in styles.\n // Otherwise, if it's absent, it would replace the first custom `<fill/>` with a \"gray125\" fill.\n xml += '<fill>';\n xml += '<patternFill patternType=\"gray125\"/>';\n xml += '</fill>';\n } else {\n xml += getFillXml(fill);\n }\n }\n xml += '</fills>';\n\n // MS Office 2007 Excel seems to require a `<borders/>` element to exist:\n // without it, MS Office 2007 Excel thinks that the file is broken.\n xml += \"<borders count=\\\"\".concat(borders.length, \"\\\">\");\n for (var _iterator3 = _createForOfIteratorHelperLoose(borders), _step3; !(_step3 = _iterator3()).done;) {\n var border = _step3.value;\n xml += getBorderXml(border);\n }\n xml += '</borders>';\n\n // What are `<cellXfs/>` and `<cellStyleXfs/>`:\n // http://officeopenxml.com/SSstyles.php\n //\n // `<cellStyleXfs/>` are referenced from `<cellXfs/>` as `<xf xfId=\"...\"/>`.\n // `<cellStyleXfs/>` defines abstract \"cell styles\" that can be \"extended\"\n // by \"cell styles\" defined by `<cellXfs/>` that can be applied to individual cells:\n // 1. `<cellStyleXfs><xf .../></cellStyleXfs>`\n // 2. `<cellXfs><xf xfId={cellStyleXfs.xf.index}/></cellXfs>`\n // 3. `<c s={cellXfs.xf.index}/>`\n // Seems like \"cell styles\" defined by `<cellXfs/>` have to reference\n // some abstract \"cell styles\" defined by `<cellStyleXfs/>` by the spec.\n // Otherwise, there would be no need to use `<cellStyleXfs/>` at all.\n // The naming is ambiguous and weird. The whole scheme is needlessly redundant.\n\n // xml += '<cellStyleXfs count=\"2\">'\n // xml += '<xf numFmtId=\"0\" fontId=\"0\" fillId=\"0\" borderId=\"0\"/>'\n // // `applyFont=\"1\"` means apply a custom font in this \"abstract\" \"cell style\"\n // // rather than using a default font.\n // // Seems like by default `applyFont` is `\"0\"` meaning that,\n // // unless `\"1\"` is specified, it would ignore the `fontId` attribute.\n // xml += '<xf numFmtId=\"0\" fontId=\"1\" applyFont=\"1\" fillId=\"0\" borderId=\"0\"/>'\n // xml += '</cellStyleXfs>'\n\n xml += \"<cellXfs count=\\\"\".concat(styles.length, \"\\\">\");\n for (var _iterator4 = _createForOfIteratorHelperLoose(styles), _step4; !(_step4 = _iterator4()).done;) {\n var cellStyle = _step4.value;\n var fontId = cellStyle.fontId,\n fillId = cellStyle.fillId,\n borderId = cellStyle.borderId,\n alignment = cellStyle.alignment,\n formatId = cellStyle.formatId;\n // `applyNumberFormat=\"1\"` means \"apply the `numFmtId` attribute\".\n // Seems like by default `applyNumberFormat` is `\"0\"` meaning that,\n // unless `\"1\"` is specified, it would ignore the `numFmtId` attribute.\n xml += '<xf ' + [formatId === undefined ? undefined : \"numFmtId=\\\"\".concat(formatId, \"\\\" applyNumberFormat=\\\"1\\\"\"), fontId === undefined ? undefined : \"fontId=\\\"\".concat(fontId, \"\\\" applyFont=\\\"1\\\"\"), fillId === undefined ? undefined : \"fillId=\\\"\".concat(fillId, \"\\\" applyFill=\\\"1\\\"\"), borderId === undefined ? undefined : \"borderId=\\\"\".concat(borderId, \"\\\" applyBorder=\\\"1\\\"\"), hasAlignment(alignment) ? 'applyAlignment=\"1\"' : undefined\n // 'xfId=\"0\"'\n ].filter(function (_) {\n return _;\n }).join(' ') + '>' + (\n // Possible horizontal alignment values:\n // left, center, right, fill, justify, center_across, distributed.\n // Possible vertical alignment values:\n // top, vcenter, bottom, vjustify, vdistributed.\n // https://xlsxwriter.readthedocs.io/format.html#set_align\n hasAlignment(alignment) ? getAlignmentXml(alignment) : '') + '</xf>';\n }\n xml += \"</cellXfs>\";\n\n // Apply any plugins that insert additional content to this XML.\n xml += getAdditionalContent('xl/styles.xml', features, sheetsOptions);\n xml += '</styleSheet>';\n\n // Apply any plugins that transform this XML.\n xml = transformContent(xml, 'xl/styles.xml', features, sheetsOptions);\n return xml;\n}\n//# sourceMappingURL=styles.xml.js.map","/**\r\n * Finds elements in valid XML markup.\r\n * Caveat: Every time it finds an element, it doesn't \"step into\" it but rather \"steps over\" it.\r\n * @param {string} xml — XML markup\r\n * @param {string} [options.tagName] — The name of the element to find\r\n * @param {boolean} [options.stopAfterFirstMatch] — If `true`, will only return a single result.\r\n * @returns {object[]} — Found elements, each element represented by an object with propeties: `{ openingTagStartIndex: number, openingTagEndIndex: number, openingTagAttributes: object, selfClosingTag?: boolean, closingTagStartIndex?: number, closingTagEndIndex?: number }`\r\n */\nexport default function findElementsNonRecursive_(xml) {\n var _ref = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {},\n tagName = _ref.tagName,\n stopAfterFirstMatch = _ref.stopAfterFirstMatch;\n var openingTagRegExp = new RegExp(getOpeningTagRegExpPattern(tagName), stopAfterFirstMatch ? undefined : 'g');\n var results = [];\n var openingTagMatch;\n while ((openingTagMatch = openingTagRegExp.exec(xml)) !== null) {\n var openingTag = openingTagMatch[0];\n var openingTagName = tagName || openingTagMatch[1];\n var attributes = {};\n var attributeRegExp = new RegExp('\\\\s+([^\\\\s=>]+)(?:=\"([^\\\\s=>]+)\")', 'g');\n var attributeMatch = void 0;\n while ((attributeMatch = attributeRegExp.exec(openingTag)) !== null) {\n attributes[attributeMatch[1]] = attributeMatch[2];\n }\n var result = {\n tagName: openingTagName,\n // openingTagMarkup: openingTag,\n openingTagStartIndex: openingTagMatch.index,\n openingTagEndIndex: openingTagMatch.index + openingTag.length - 1,\n openingTagAttributes: attributes,\n selfClosingTag: false,\n // closingTagMarkup: undefined,\n closingTagStartIndex: undefined,\n closingTagEndIndex: undefined\n };\n if (openingTag[openingTag.length - 2] === '/') {\n result.selfClosingTag = true;\n } else {\n var closingTagPosition = findClosingTagPosition(xml, result.openingTagEndIndex + 1, openingTagName);\n if (!closingTagPosition) {\n // `xml` is supposed to be \"valid XML\", so such situation isn't supposed to be possible.\n throw new Error(\"Invalid XML: opening tag was found but closing tag was not: </\".concat(openingTagName, \">\"));\n }\n result.closingTagStartIndex = closingTagPosition[0];\n result.closingTagEndIndex = closingTagPosition[1];\n }\n results.push(result);\n if (stopAfterFirstMatch) {\n break;\n }\n\n // Set \"start from\" index of the next match.\n if (result.selfClosingTag) {\n openingTagRegExp.lastIndex = result.openingTagEndIndex + 1;\n } else {\n openingTagRegExp.lastIndex = result.closingTagEndIndex + 1;\n }\n }\n return results;\n}\nfunction findClosingTagPosition(xml, startFromIndex, tagName) {\n var openingOrClosingTagRegExp = new RegExp('<(/)?' + tagName + '(?:\\\\s+[^>]+|/)?>', 'g');\n openingOrClosingTagRegExp.lastIndex = startFromIndex;\n var nestingLevel = 0;\n var openingOrClosingTagMatch;\n while ((openingOrClosingTagMatch = openingOrClosingTagRegExp.exec(xml)) !== null) {\n var openingOrClosingTag = openingOrClosingTagMatch[0];\n // Tells if it's a closing tag or an opening tag.\n var closingTagMarker = openingOrClosingTagMatch[1];\n if (closingTagMarker) {\n // Closing tag encountered.\n if (nestingLevel > 0) {\n nestingLevel--;\n } else {\n return [openingOrClosingTagMatch.index, openingOrClosingTagMatch.index + openingOrClosingTag.length - 1];\n }\n } else {\n // Opening tag encountered.\n nestingLevel++;\n }\n }\n}\nexport function getOpeningTagRegExpPattern(tagName) {\n return '<' + (tagName || '([^\\\\s/>]+)') + '(?:\\\\s+[^>]+|/)?>';\n}\n//# sourceMappingURL=findElementsNonRecursive_.js.map","import findElementsNonRecursive_ from './findElementsNonRecursive_.js';\n\n/**\r\n * Finds a single element in valid XML markup.\r\n * @param {string} xml — XML markup\r\n * @param {string} tagName — The name of the element to find\r\n * @returns {object|undefined} — A found element, represented by an object with propeties: `{ openingTagStartIndex: number, openingTagEndIndex: number, openingTagAttributes: object, selfClosingTag?: boolean, closingTagStartIndex?: number, closingTagEndIndex?: number }`\r\n */\nexport default function findElement(xml, tagName) {\n var elements = findElementsNonRecursive_(xml, {\n tagName: tagName,\n stopAfterFirstMatch: true\n });\n return elements[0];\n}\n//# sourceMappingURL=findElement.js.map","/**\r\n * Replaces the XML inside an `element` that was found in `xml` using `findElement()` function.\r\n * @param {string} xml\r\n * @param {FoundElement} element\r\n * @param {string} [replacementXml]\r\n * @returns {string}\r\n */\nexport default function setMarkupInsideElement(xml, element, replacementXml) {\n if (replacementXml) {\n if (element.selfClosingTag) {\n return xml.slice(0, element.openingTagEndIndex - '/'.length) + '>' + replacementXml + '</' + element.tagName + '>' + xml.slice(element.openingTagEndIndex + 1);\n }\n return xml.slice(0, element.openingTagEndIndex + 1) + replacementXml + xml.slice(element.closingTagStartIndex);\n } else {\n if (element.selfClosingTag) {\n return xml;\n }\n return xml.slice(0, element.openingTagEndIndex) + '/>' + xml.slice(element.closingTagEndIndex + 1);\n }\n}\n//# sourceMappingURL=setMarkupInsideElement.js.map","import setMarkupInsideElement from './setMarkupInsideElement.js';\n\n/**\r\n * Appends XML inside an `element` that was found in `xml` using `findElement()` function.\r\n * @param {string} xml\r\n * @param {FoundElement} element\r\n * @param {string} addedXml\r\n * @returns {string}\r\n */\nexport default function appendMarkupInsideElement(xml, element, addedXml) {\n if (element.selfClosingTag) {\n return setMarkupInsideElement(xml, element, addedXml);\n }\n return xml.slice(0, element.closingTagStartIndex) + addedXml + xml.slice(element.closingTagStartIndex);\n}\n//# sourceMappingURL=appendMarkupInsideElement.js.map","/**\r\n * Returns the XML inside an `element` that was found in `xml` using `findElement()` function.\r\n * @param {string} xml\r\n * @param {FoundElement} element\r\n * @returns {string}\r\n */\nexport default function getMarkupInsideElement(xml, element) {\n if (element.selfClosingTag) {\n return '';\n }\n return xml.substring(element.openingTagEndIndex + 1, element.closingTagStartIndex);\n}\n//# sourceMappingURL=getMarkupInsideElement.js.map","export default function applyEnclosingElementOffset(element, enclosingElement) {\n var enclosingElementOffset = enclosingElement.openingTagEndIndex + 1;\n element.openingTagStartIndex += enclosingElementOffset;\n element.openingTagEndIndex += enclosingElementOffset;\n if (!element.selfClosingTag) {\n element.closingTagStartIndex += enclosingElementOffset;\n element.closingTagEndIndex += enclosingElementOffset;\n }\n}\n//# sourceMappingURL=applyEnclosingElementOffset.js.map","function _createForOfIteratorHelperLoose(r, e) { var t = \"undefined\" != typeof Symbol && r[Symbol.iterator] || r[\"@@iterator\"]; if (t) return (t = t.call(r)).next.bind(t); if (Array.isArray(r) || (t = _unsupportedIterableToArray(r)) || e && r && \"number\" == typeof r.length) { t && (r = t); var o = 0; return function () { return o >= r.length ? { done: !0 } : { done: !1, value: r[o++] }; }; } throw new TypeError(\"Invalid attempt to iterate non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); }\nfunction _unsupportedIterableToArray(r, a) { if (r) { if (\"string\" == typeof r) return _arrayLikeToArray(r, a); var t = {}.toString.call(r).slice(8, -1); return \"Object\" === t && r.constructor && (t = r.constructor.name), \"Map\" === t || \"Set\" === t ? Array.from(r) : \"Arguments\" === t || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t) ? _arrayLikeToArray(r, a) : void 0; } }\nfunction _arrayLikeToArray(r, a) { (null == a || a > r.length) && (a = r.length); for (var e = 0, n = Array(a); e < a; e++) n[e] = r[e]; return n; }\nimport getMarkupInsideElement from './getMarkupInsideElement.js';\nimport applyEnclosingElementOffset from './applyEnclosingElementOffset.js';\nimport findElementsNonRecursive_ from './findElementsNonRecursive_.js';\n\n/**\r\n * Returns all child elements of a given element.\r\n * @param {string} xml — XML markup\r\n * @param {object} element — A parent element that was previously found using `findElement()` function.\r\n * @returns {object[]} — Child elements, each element represented by an object with propeties: `{ openingTagStartIndex: number, openingTagEndIndex: number, openingTagAttributes: object, selfClosingTag?: boolean, closingTagStartIndex?: number, closingTagEndIndex?: number }`\r\n */\nexport default function getChildElements(xml, element) {\n var children = findElementsNonRecursive_(getMarkupInsideElement(xml, element));\n for (var _iterator = _createForOfIteratorHelperLoose(children), _step; !(_step = _iterator()).done;) {\n var child = _step.value;\n applyEnclosingElementOffset(child, element);\n }\n return children;\n}\n//# sourceMappingURL=getChildElements.js.map","import setMarkupInsideElement from './setMarkupInsideElement.js';\n\n/**\r\n * Prepends XML inside an `element` that was found in `xml` using `findElement()` function.\r\n * @param {string} xml\r\n * @param {FoundElement} element\r\n * @param {string} addedXml\r\n * @returns {string}\r\n */\nexport default function prependMarkupInsideElement(xml, element, addedXml) {\n if (element.selfClosingTag) {\n return setMarkupInsideElement(xml, element, addedXml);\n }\n return xml.slice(0, element.openingTagEndIndex + 1) + addedXml + xml.slice(element.openingTagEndIndex + 1);\n}\n//# sourceMappingURL=prependMarkupInsideElement.js.map","function _createForOfIteratorHelperLoose(r, e) { var t = \"undefined\" != typeof Symbol && r[Symbol.iterator] || r[\"@@iterator\"]; if (t) return (t = t.call(r)).next.bind(t); if (Array.isArray(r) || (t = _unsupportedIterableToArray(r)) || e && r && \"number\" == typeof r.length) { t && (r = t); var o = 0; return function () { return o >= r.length ? { done: !0 } : { done: !1, value: r[o++] }; }; } throw new TypeError(\"Invalid attempt to iterate non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); }\nfunction _unsupportedIterableToArray(r, a) { if (r) { if (\"string\" == typeof r) return _arrayLikeToArray(r, a); var t = {}.toString.call(r).slice(8, -1); return \"Object\" === t && r.constructor && (t = r.constructor.name), \"Map\" === t || \"Set\" === t ? Array.from(r) : \"Arguments\" === t || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t) ? _arrayLikeToArray(r, a) : void 0; } }\nfunction _arrayLikeToArray(r, a) { (null == a || a > r.length) && (a = r.length); for (var e = 0, n = Array(a); e < a; e++) n[e] = r[e]; return n; }\nimport findElement from './findElement.js';\nimport { getOpeningTagRegExpPattern } from './findElementsNonRecursive_.js';\nimport appendMarkupInsideElement from './appendMarkupInsideElement.js';\nimport getChildElements from './getChildElements.js';\nimport prependMarkupInsideElement from './prependMarkupInsideElement.js';\nexport default function insertElementMarkupAccordingToOrderOfSiblings(xml, elementMarkup, orderOfSiblings) {\n for (var _len = arguments.length, parentElementTagNames = new Array(_len > 3 ? _len - 3 : 0), _key = 3; _key < _len; _key++) {\n parentElementTagNames[_key - 3] = arguments[_key];\n }\n if (parentElementTagNames.length === 0) {\n throw new Error('At least one parent element tag name is required');\n }\n\n // Reorder the parent elements from top to bottom.\n parentElementTagNames = parentElementTagNames.slice().reverse();\n\n // Find the immediate parent element.\n var parentElement;\n var _loop = function _loop() {\n var parentElementTagName = _step.value;\n if (parentElement) {\n // Doesn't use `findElementInsideElement()` here in order to only search\n // in the immediate children of the `parentElement`.\n // parentElement = findElementInsideElement(xml, parentElementTagName, parentElement)\n parentElement = getChildElements(xml, parentElement).find(function (_) {\n return _.tagName === parentElementTagName;\n });\n } else {\n parentElement = findElement(xml, parentElementTagName);\n }\n if (!parentElement) {\n throw new Error(\"Element not found: <\".concat(parentElementTagName, \">\"));\n }\n };\n for (var _iterator = _createForOfIteratorHelperLoose(parentElementTagNames), _step; !(_step = _iterator()).done;) {\n _loop();\n }\n\n // Get element's tag name.\n var elementTagNameMatch = elementMarkup.match(TAG_NAME_REG_EXP);\n if (!elementTagNameMatch) {\n throw new Error(\"Couldn't extract tag name from markup: \".concat(elementMarkup));\n }\n var elementTagName = elementTagNameMatch[1];\n\n // See if the `.xlsx` specification enforces a specific order of elements in such case.\n if (!orderOfSiblings || orderOfSiblings.length < 2) {\n return appendMarkupInsideElement(xml, parentElement, elementMarkup);\n }\n var children = getChildElements(xml, parentElement);\n if (children.length === 0) {\n return appendMarkupInsideElement(xml, parentElement, elementMarkup);\n }\n var elementTagNameOrder = orderOfSiblings.indexOf(elementTagName);\n if (elementTagNameOrder < 0) {\n // The element tag name is unknown.\n return appendMarkupInsideElement(xml, parentElement, elementMarkup);\n }\n var tagNamesBeforeElement = orderOfSiblings.slice(0, elementTagNameOrder).reverse();\n var _loop2 = function _loop2() {\n var tagName = _step2.value;\n var precedingElement = children.find(function (_) {\n return _.tagName === tagName;\n });\n if (precedingElement) {\n return {\n v: xml.slice(0, precedingElement.selfClosingTag ? precedingElement.openingTagEndIndex + 1 : precedingElement.closingTagEndIndex + 1) + elementMarkup + xml.slice(precedingElement.selfClosingTag ? precedingElement.openingTagEndIndex + 1 : precedingElement.closingTagEndIndex + 1)\n };\n }\n },\n _ret;\n for (var _iterator2 = _createForOfIteratorHelperLoose(tagNamesBeforeElement), _step2; !(_step2 = _iterator2()).done;) {\n _ret = _loop2();\n if (_ret) return _ret.v;\n }\n return prependMarkupInsideElement(xml, parentElement, elementMarkup);\n}\nvar TAG_NAME_REG_EXP = new RegExp(getOpeningTagRegExpPattern());\n\n// function findOrderOfElementsInsideParentElement(orderOfElements, parentElementTagName) {\n// \tfor (const element of orderOfElements) {\n// \t\tif (Array.isArray(element)) {\n// \t\t\tif (element[0] === parentElementTagName) {\n// \t\t\t\treturn element[1]\n// \t\t\t}\n// \t\t\tconst recursionResult = findOrderOfElementsInsideParentElement(element[1], parentElementTagName)\n// \t\t\tif (recursionResult) {\n// \t\t\t\treturn recursionResult\n// \t\t\t}\n// \t\t} else {\n// \t\t\t// No order of child elements is specified for the `element`\n// \t\t\t// so there's nothing to search for inside this `element`.\n// \t\t\t// And if the `element` happens to be `parentElementTagName`,\n// \t\t\t// there's no need to look any further at all\n// \t\t\t// because it seems that no order of child elements is specified\n// \t\t\t// for the `parentElementTagName`.\n// \t\t\tif (element === parentElementTagName) {\n// \t\t\t\treturn\n// \t\t\t}\n// \t\t}\n// \t}\n// }\n//# sourceMappingURL=insertElementMarkupAccordingToOrderOfSiblings.js.map","// This file is currently not used anywhere. It's just here for reference.\n\n// The `.xlsx` document format is described in the official specification\n// called \"ECMA-376 Office Open XML File Formats\":\n// https://ecma-international.org/publications-and-standards/standards/ecma-376/\n// https://en.wikipedia.org/wiki/Office_Open_XML\n//\n// They say that this standard — specifically, \"Part 4\" of it —\n// includes XML \"schemas\" (`.xsd` files) which describe the predefined order of all XML elements.\n//\n// I personally didn't even bother checking because this whole \"specification\" thing\n// already looks needlessly convoluted. Anyway, I asked Google's AI for\n// \"xlsx sheet.xml elements order\" and it did output some kind of a list —\n// a slightly different one depending on the exact wording — which I used\n// as a loose reference and it seemed to fix those pesky \"corrupt file\" errors.\n//\n// For example, `CT_Worksheet` type describes a worksheet document (\"sheet.xml\"),\n// and the corresponding \"schema\" for it is:\n//\n// <xs:complexType name=\"CT_Worksheet\">\n// <xs:sequence>\n// <xs:element name=\"sheetPr\" type=\"CT_SheetPr\" minOccurs=\"0\"/>\n// <xs:element name=\"dimension\" type=\"CT_SheetDimension\" minOccurs=\"0\"/>\n// <xs:element name=\"sheetViews\" type=\"CT_SheetViews\" minOccurs=\"0\"/>\n// <xs:element name=\"sheetFormatPr\" type=\"CT_SheetFormatPr\" minOccurs=\"0\"/>\n// <xs:element name=\"cols\" type=\"CT_Cols\" minOccurs=\"0\" maxOccurs=\"unbounded\"/>\n// <xs:element name=\"sheetData\" type=\"CT_SheetData\"/>\n// <xs:element name=\"sheetProtection\" type=\"CT_SheetProtection\" minOccurs=\"0\"/>\n// <xs:element name=\"mergeCells\" type=\"CT_MergeCells\" minOccurs=\"0\"/>\n// <xs:element name=\"drawing\" type=\"CT_Drawing\" minOccurs=\"0\"/>\n// </xs:sequence>\n// </xs:complexType>\n//\n// There're \"merged\" versions of the specification on the internet\n// in a form of 6000-some page documents in `.pdf` format,\n// but the one I stumbled upon wasn't even searchable in for some weird reason.\n//\n// And the official specification seems to be hosted on some weird website\n// that doesn't even support \"online\" browsing, and the download doesn't start.\n// Who cares about this whole ancient corporate sh*t anyway.\n\n// type TagName = string\n// type OrderOfSiblings = Array<TagName | [TagName, OrderOfSiblings]>\n// type FileName = 'xl/workbook.xml' | 'xl/styles.xml' | 'xl/worksheets/sheet{id}.xml'\n// type OrderOfSiblingsByFile = Record<FileName, OrderOfSiblings>\n// declare const orderOfSiblingsByFile: OrderOfSiblingsByFile\n// export default orderOfSiblingsByFile\n\nexport default {\n // This is what Google AI returned for a search query: \"xlsx workbook.xml elements order\".\n // They say, this order is defined in `CT_Workbook` schema of ECMA-376 specification.\n 'xl/workbook.xml': [['workbook', ['workbookPr',\n // (Workbook Properties)\n 'bookViews',\n // (Book Views)\n 'sheets',\n // (List of sheets)\n 'pivotCaches',\n // (If applicable)\n 'definedNames',\n // (Named ranges)\n 'calcPr' // (Calculation properties)\n ]]],\n // This is what Google AI returned for a search query: \"xlsx styles.xml elements order\".\n // They say, this order is defined in `CT_Stylesheet` schema of ECMA-376 specification.\n 'xl/styles.xml': [['styleSheet', ['numFmts',\n // Defines custom number formats.\n 'fonts',\n // Contains font definitions (font name, size, color).\n 'fills',\n // Defines cell background colors/patterns.\n 'borders',\n // Defines cell borders.\n 'cellStyleXfs',\n // Master cell styles (usually style 0 is \"Normal\").\n 'cellXfs',\n // Actual cell formatting definitions (<xf>) referenced by cells.\n 'cellStyles',\n // Connects named styles to cellStyleXfs.\n 'dxfs',\n // Differential formats (conditional formatting).\n 'tableStyles' // Table-specific styles.\n ]]],\n // This is what Google AI returned for a search query: \"xlsx sheet.xml elements order\".\n // They say, this order is defined in `CT_Worksheet` schema of ECMA-376 specification.\n 'xl/worksheets/sheet{id}.xml': [['worksheet', ['sheetPr',\n // Sheet properties (e.g., tab color, filter configurations).\n 'dimension',\n // Defines the range of used cells (e.g., ref=\"A1:C10\").\n 'sheetViews',\n // View settings like freeze panes, zoom level, and whether the sheet is selected.\n 'sheetFormatPr',\n // Default row height and column width properties.\n 'cols',\n // Defines column-specific properties (width, hidden status).\n 'sheetData',\n // (Required) The main container for cell data, rows, and values.\n 'sheetCalcPr',\n // Calculation properties.\n 'sheetProtection',\n // Sheet-level security and locked status.\n 'protectedRanges',\n // Specific ranges that are protected.\n 'scenarios',\n // Worksheet scenarios.\n 'autoFilter',\n // Filter range definitions.\n 'sortState',\n // Current sort information.\n 'dataConsolidate',\n // Data consolidation settings.\n 'customSheetViews',\n // Custom view settings.\n 'mergeCells',\n // Defines ranges of merged cells.\n 'phoneticPr',\n // Phonetic information properties.\n 'conditionalFormatting',\n // Rules for formatting based on cell values.\n 'dataValidations',\n // Data entry rules and dropdowns.\n 'hyperlinks',\n // Links to external sites or other sheet locations.\n 'printOptions',\n // Defines specific printing preferences, such as centering, gridlines, and headings.\n 'pageMargins',\n // Defines the white space between the worksheet data and the edges of the printed page.\n 'pageSetup',\n // Printing and layout settings.\n 'headerFooter',\n // Sheet header and footer content.\n 'rowBreaks',\n // Manual page breaks.\n 'colBreaks',\n // Manual page breaks.\n 'drawing',\n // References to graphics or charts (points to drawing.xml).\n 'legacyDrawing',\n // References to legacy objects like comments or form controls.\n 'picture',\n // Background image properties.\n 'oleObjects',\n // Embedded OLE objects.\n 'controls',\n // Form or ActiveX controls.\n 'tableParts',\n // Links to defined Excel tables within the sheet.\n 'extLst' // Extension list for future-proofing and custom metadata.\n ]]]\n};\n//# sourceMappingURL=orderOfSiblings.js.map","import ORDER_OF_SIBLINGS from './orderOfSiblings.js';\n\n/**\r\n * Returns the order of siblings in a given `.xml` file inside given parent tag(s).\r\n * @param {string} fileName\r\n * @param {string[]} parentTagNames\r\n * @returns {string[]}\r\n */\nexport default function getOrderOfSiblings(fileName) {\n var orderOfSiblings = ORDER_OF_SIBLINGS[fileName];\n if (!orderOfSiblings) {\n // File not supported.\n // Return nothing.\n return;\n }\n for (var _len = arguments.length, parentTagNames = new Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {\n parentTagNames[_key - 1] = arguments[_key];\n }\n if (parentTagNames.length === 0) {\n throw new Error('At least one parent element tag name is required');\n }\n var _loop = function _loop() {\n var tagName = _parentTagNames[_i];\n var orderOfSiblingsMatchingElement = orderOfSiblings.find(function (element) {\n if (Array.isArray(element)) {\n return element[0] === tagName;\n } else {\n return element === tagName;\n }\n });\n if (!orderOfSiblingsMatchingElement) {\n // The element is not present in the pre-defined order of elements.\n // Return nothing.\n return {\n v: void 0\n };\n }\n if (Array.isArray(orderOfSiblingsMatchingElement)) {\n orderOfSiblings = orderOfSiblingsMatchingElement[1];\n } else {\n // The element doesn't specify any child elements.\n // Return nothing.\n return {\n v: void 0\n };\n }\n },\n _ret;\n for (var _i = 0, _parentTagNames = parentTagNames; _i < _parentTagNames.length; _i++) {\n _ret = _loop();\n if (_ret) return _ret.v;\n }\n if (orderOfSiblings) {\n // Convert element of `OrderOfSiblings` array to a `string`.\n return orderOfSiblings.map(function (element) {\n if (Array.isArray(element)) {\n return element[0];\n } else {\n return element;\n }\n });\n }\n}\n//# sourceMappingURL=getOrderOfSiblings.js.map","function _createForOfIteratorHelperLoose(r, e) { var t = \"undefined\" != typeof Symbol && r[Symbol.iterator] || r[\"@@iterator\"]; if (t) return (t = t.call(r)).next.bind(t); if (Array.isArray(r) || (t = _unsupportedIterableToArray(r)) || e && r && \"number\" == typeof r.length) { t && (r = t); var o = 0; return function () { return o >= r.length ? { done: !0 } : { done: !1, value: r[o++] }; }; } throw new TypeError(\"Invalid attempt to iterate non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); }\nfunction _unsupportedIterableToArray(r, a) { if (r) { if (\"string\" == typeof r) return _arrayLikeToArray(r, a); var t = {}.toString.call(r).slice(8, -1); return \"Object\" === t && r.constructor && (t = r.constructor.name), \"Map\" === t || \"Set\" === t ? Array.from(r) : \"Arguments\" === t || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t) ? _arrayLikeToArray(r, a) : void 0; } }\nfunction _arrayLikeToArray(r, a) { (null == a || a > r.length) && (a = r.length); for (var e = 0, n = Array(a); e < a; e++) n[e] = r[e]; return n; }\nimport sanitizeTextContent from '../../xml/sanitizeTextContent.js';\nimport insertElementMarkupAccordingToOrderOfSiblings from '../../xml/insertElementMarkupAccordingToOrderOfSiblings.js';\nimport hasFill from '../helpers/hasFill.js';\nimport getFillXml from '../helpers/getFillXml.js';\nimport hasBorder from '../helpers/hasBorder.js';\nimport getBorderXml from '../helpers/getBorderXml.js';\nimport hasFont from '../helpers/hasFont.js';\nimport getFontXml from '../helpers/getFontXml.js';\nimport getCellAddress from '../helpers/getCellAddress.js';\nimport getOrderOfSiblings from '../helpers/getOrderOfSiblings.js';\nexport default {\n files: {\n transform: {\n 'xl/worksheets/sheet{id}.xml': {\n // For some weird reason, Excel 2007 demands `<conditionalFormatting/>` element to go before `<drawing/>` element.\n // Because `<drawing/>` element is added before any of the `insert()`s of any features,\n // this feature has to use a `transform()` function instead of an `insert()` function.\n transform: function transform(xml, sheetOptions, _ref) {\n var sheetIndex = _ref.sheetIndex,\n sheetId = _ref.sheetId;\n var conditionalFormatting = sheetOptions.conditionalFormatting;\n if (conditionalFormatting) {\n var conditionalFormattingRulesXml = getConditionalFormattingRulesXml(conditionalFormatting);\n return insertElementMarkupAccordingToOrderOfSiblings(xml, conditionalFormattingRulesXml, getOrderOfSiblings('xl/worksheets/sheet{id}.xml', 'worksheet'), 'worksheet');\n }\n return xml;\n }\n },\n 'xl/styles.xml': {\n insert: function insert(sheetsOptions) {\n var sheetsConditionalFormatting = sheetsOptions.map(function (sheetOptions) {\n return sheetOptions.conditionalFormatting;\n });\n if (sheetsConditionalFormatting.some(Boolean)) {\n return getConditionalFormattingStylesXml(sheetsConditionalFormatting);\n }\n }\n }\n }\n }\n};\nfunction getConditionalFormattingRulesXml(conditionalFormattingRules) {\n var xml = '';\n var i = 0;\n for (var _iterator = _createForOfIteratorHelperLoose(conditionalFormattingRules), _step; !(_step = _iterator()).done;) {\n var conditionalFormattingRule = _step.value;\n var _conditionalFormattin = conditionalFormattingRule.cellRange,\n from = _conditionalFormattin.from,\n to = _conditionalFormattin.to,\n _conditionalFormattin2 = conditionalFormattingRule.condition,\n formula = _conditionalFormattin2.formula,\n operator = _conditionalFormattin2.operator,\n value = _conditionalFormattin2.value,\n value2 = _conditionalFormattin2.value2;\n\n // Cell range example: \"A1:C5\"\n var cellRange = getCellAddress(from.row - 1, from.column - 1) + ':' + getCellAddress(to.row - 1, to.column - 1);\n xml += \"<conditionalFormatting sqref=\\\"\".concat(cellRange, \"\\\">\");\n\n // The priority attribute in conditional formatting XML is an integer value that must be a positive integer between 1 and the total number of conditional formatting rules on the worksheet.\n // * The value is defined by the W3C XML Schema int datatype.\n // * The valid range is dynamic, starting from 1 (highest priority) and ending at the total number of rules on that specific worksheet (lowest priority).\n // * Each priority value must be unique for all rules on the same worksheet. Changing the priority of one rule will automatically adjust the priorities of other rules to maintain uniqueness and order.\n // * A lower numeric value indicates a higher priority (e.g., priority 1 is the highest possible priority).\n var priority = i + 1;\n\n // The `dxfId` attribute in \".xlsx\" (OpenXML) files is a zero-based integer index (0, 1, 2, ...)\n // referencing a specific differential format record (`<dxf>`) within the \"styles.xml\" file.\n //\n var dxfId = conditionalFormattingRule._globalIndex;\n //\n // const dxfId = getConditionalFormattingRuleGlobalIndex({\n // \tconditionalFormattingRuleIndex: i,\n // \tsheetsConditionalFormatting,\n // \tsheetIndex\n // })\n\n // There're a lot of possible `type`s of a `<cfRule/>`.\n // The full list could be viewed by googling for \"ST_CfType\".\n\n if (formula) {\n xml += \"<cfRule type=\\\"expression\\\" dxfId=\\\"\".concat(dxfId, \"\\\" priority=\\\"\").concat(priority, \"\\\">\");\n xml += \"<formula>\".concat(sanitizeTextContent(formula), \"</formula>\");\n xml += '</cfRule>';\n } else if (operator) {\n xml += \"<cfRule type=\\\"cellIs\\\" operator=\\\"\".concat(getXlsxOperatorName(operator), \"\\\" dxfId=\\\"\").concat(dxfId, \"\\\" priority=\\\"\").concat(priority, \"\\\">\");\n xml += \"<formula>\".concat(sanitizeTextContent(formatValue(value)), \"</formula>\");\n if (getXlsxOperatorName(operator) === 'between') {\n xml += \"<formula>\".concat(sanitizeTextContent(formatValue(value2)), \"</formula>\");\n }\n xml += '</cfRule>';\n } else {\n throw new Error(\"Invalid conditional formatting rule:\\n\".concat(JSON.stringify(conditionalFormattingRule, null, 2)));\n }\n xml += '</conditionalFormatting>';\n i++;\n }\n return xml;\n}\nfunction formatValue(value) {\n if (typeof value === 'string') {\n return '\"' + value + '\"';\n }\n return String(value);\n}\n\n// function getConditionalFormattingRuleGlobalIndex({\n// \tconditionalFormattingRuleIndex,\n// \tsheetsConditionalFormattingRules,\n// \tsheetIndex\n// }) {\n// \tlet sheetRulesIndexOffset = 0\n//\n// \tlet i = 0\n// \twhile (i < sheetIndex) {\n// \t\tif (sheetsConditionalFormattingRules[i]) {\n// \t\t\tsheetRulesIndexOffset += sheetsConditionalFormattingRules[i].length\n// \t\t}\n// \t\ti++\n// \t}\n//\n// \treturn sheetRulesIndexOffset + conditionalFormattingRuleIndex\n// }\n\nfunction getXlsxOperatorName(operator) {\n switch (operator) {\n case '<':\n return 'lessThan';\n case '>':\n return 'greaterThan';\n case '<=':\n return 'lessThanOrEqual';\n case '>=':\n return 'greaterThanOrEqual';\n case '=':\n return 'equal';\n case '!=':\n return 'notEqual';\n case '...':\n return 'between';\n default:\n throw new Error(\"Unknown conditional formatting operator: \".concat(operator));\n }\n}\nfunction getConditionalFormattingStylesXml(sheetsConditionalFormatting) {\n var totalConditionalFormattingRulesCount = 0;\n for (var _iterator2 = _createForOfIteratorHelperLoose(sheetsConditionalFormatting), _step2; !(_step2 = _iterator2()).done;) {\n var conditionalFormattingOfSheet = _step2.value;\n if (conditionalFormattingOfSheet) {\n totalConditionalFormattingRulesCount += conditionalFormattingOfSheet.length;\n }\n }\n var xml = '';\n xml += \"<dxfs count=\\\"\".concat(totalConditionalFormattingRulesCount, \"\\\">\");\n for (var _iterator3 = _createForOfIteratorHelperLoose(sheetsConditionalFormatting), _step3; !(_step3 = _iterator3()).done;) {\n var _conditionalFormattingOfSheet = _step3.value;\n if (_conditionalFormattingOfSheet) {\n for (var _iterator4 = _createForOfIteratorHelperLoose(_conditionalFormattingOfSheet), _step4; !(_step4 = _iterator4()).done;) {\n var conditionalFormattingRule = _step4.value;\n var _conditionalFormattin3 = conditionalFormattingRule.style,\n fontFamily = _conditionalFormattin3.fontFamily,\n fontSize = _conditionalFormattin3.fontSize,\n fontWeight = _conditionalFormattin3.fontWeight,\n fontStyle = _conditionalFormattin3.fontStyle,\n textDecoration = _conditionalFormattin3.textDecoration,\n textColor = _conditionalFormattin3.textColor,\n backgroundColor = _conditionalFormattin3.backgroundColor,\n fillPatternStyle = _conditionalFormattin3.fillPatternStyle,\n fillPatternColor = _conditionalFormattin3.fillPatternColor,\n borderColor = _conditionalFormattin3.borderColor,\n borderStyle = _conditionalFormattin3.borderStyle,\n leftBorderColor = _conditionalFormattin3.leftBorderColor,\n leftBorderStyle = _conditionalFormattin3.leftBorderStyle,\n rightBorderColor = _conditionalFormattin3.rightBorderColor,\n rightBorderStyle = _conditionalFormattin3.rightBorderStyle,\n topBorderColor = _conditionalFormattin3.topBorderColor,\n topBorderStyle = _conditionalFormattin3.topBorderStyle,\n bottomBorderColor = _conditionalFormattin3.bottomBorderColor,\n bottomBorderStyle = _conditionalFormattin3.bottomBorderStyle;\n xml += '<dxf>';\n var font = {\n fontFamily: fontFamily,\n fontSize: fontSize,\n fontWeight: fontWeight,\n fontStyle: fontStyle,\n textDecoration: textDecoration,\n textColor: textColor\n };\n if (hasFont(font)) {\n // It seems that the \"conditional formatting\" feature in the XLSX specification\n // doesn't support setting custom `fontFamily` or `fontSize` for some weird reason.\n // https://github.com/catamphetamine/write-excel-file/pull/10#issuecomment-3960778016\n if (fontFamily) {\n throw new Error('Conditional formatting can\\'t be used to override font family');\n }\n if (typeof fontSize === 'number') {\n throw new Error('Conditional formatting can\\'t be used to override font size');\n }\n xml += getFontXml(font);\n }\n var fill = {\n backgroundColor: backgroundColor,\n fillPatternStyle: fillPatternStyle,\n fillPatternColor: fillPatternColor\n };\n if (hasFill(fill)) {\n xml += getFillXml(fill, {\n conditionalFormatting: true\n });\n }\n var border = {\n borderColor: borderColor,\n borderStyle: borderStyle,\n leftBorderColor: leftBorderColor,\n leftBorderStyle: leftBorderStyle,\n rightBorderColor: rightBorderColor,\n rightBorderStyle: rightBorderStyle,\n topBorderColor: topBorderColor,\n topBorderStyle: topBorderStyle,\n bottomBorderColor: bottomBorderColor,\n bottomBorderStyle: bottomBorderStyle\n };\n if (hasBorder(border)) {\n xml += getBorderXml(border);\n }\n xml += '</dxf>';\n }\n }\n }\n xml += '</dxfs>';\n return xml;\n}\n//# sourceMappingURL=conditionalFormatting.js.map","export default function getFileExtensionForContentType(contentType) {\n if (!contentType) {\n throw new Error('`contentType` is required');\n }\n // Discards everything before the slash, and the slash too.\n // Example: \"image/jpeg\" → \"jpeg\".\n var extension = contentType.toLowerCase().replace(/.*\\//, '');\n if (!extension) {\n throw new Error('Unsupported `contentType`: ' + contentType);\n }\n return extension;\n}\n//# sourceMappingURL=getFileExtensionForContentType.js.map","function _typeof(o) { \"@babel/helpers - typeof\"; return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && \"function\" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? \"symbol\" : typeof o; }, _typeof(o); }\nfunction _createForOfIteratorHelperLoose(r, e) { var t = \"undefined\" != typeof Symbol && r[Symbol.iterator] || r[\"@@iterator\"]; if (t) return (t = t.call(r)).next.bind(t); if (Array.isArray(r) || (t = _unsupportedIterableToArray(r)) || e && r && \"number\" == typeof r.length) { t && (r = t); var o = 0; return function () { return o >= r.length ? { done: !0 } : { done: !1, value: r[o++] }; }; } throw new TypeError(\"Invalid attempt to iterate non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); }\nfunction _toConsumableArray(r) { return _arrayWithoutHoles(r) || _iterableToArray(r) || _unsupportedIterableToArray(r) || _nonIterableSpread(); }\nfunction _nonIterableSpread() { throw new TypeError(\"Invalid attempt to spread non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); }\nfunction _unsupportedIterableToArray(r, a) { if (r) { if (\"string\" == typeof r) return _arrayLikeToArray(r, a); var t = {}.toString.call(r).slice(8, -1); return \"Object\" === t && r.constructor && (t = r.constructor.name), \"Map\" === t || \"Set\" === t ? Array.from(r) : \"Arguments\" === t || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t) ? _arrayLikeToArray(r, a) : void 0; } }\nfunction _iterableToArray(r) { if (\"undefined\" != typeof Symbol && null != r[Symbol.iterator] || null != r[\"@@iterator\"]) return Array.from(r); }\nfunction _arrayWithoutHoles(r) { if (Array.isArray(r)) return _arrayLikeToArray(r); }\nfunction _arrayLikeToArray(r, a) { (null == a || a > r.length) && (a = r.length); for (var e = 0, n = Array(a); e < a; e++) n[e] = r[e]; return n; }\nfunction ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }\nfunction _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }\nfunction _defineProperty(e, r, t) { return (r = _toPropertyKey(r)) in e ? Object.defineProperty(e, r, { value: t, enumerable: !0, configurable: !0, writable: !0 }) : e[r] = t, e; }\nfunction _toPropertyKey(t) { var i = _toPrimitive(t, \"string\"); return \"symbol\" == _typeof(i) ? i : i + \"\"; }\nfunction _toPrimitive(t, r) { if (\"object\" != _typeof(t) || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || \"default\"); if (\"object\" != _typeof(i)) return i; throw new TypeError(\"@@toPrimitive must return a primitive value.\"); } return (\"string\" === r ? String : Number)(t); }\nimport sanitizeAttributeValue from '../../xml/sanitizeAttributeValue.js';\nimport getFileExtensionForContentType from '../helpers/getFileExtensionForContentType.js';\nexport default {\n files: {\n transform: {\n '[Content_Types].xml': {\n insert: function insert(sheetsOptions) {\n var sheetsImages = sheetsOptions.map(function (sheetOptions) {\n return sheetOptions.images;\n });\n if (sheetsImages.some(Boolean)) {\n return getContentTypesXml(sheetsImages);\n }\n }\n },\n 'xl/drawings/drawing{id}.xml': {\n insert: function insert(sheetOptions, _ref) {\n var sheetIndex = _ref.sheetIndex,\n sheetId = _ref.sheetId;\n var images = sheetOptions.images;\n if (images) {\n return getImagesDrawingXml({\n images: images\n });\n }\n }\n },\n 'xl/drawings/_rels/drawing{id}.xml.rels': {\n insert: function insert(sheetOptions, _ref2) {\n var sheetIndex = _ref2.sheetIndex,\n sheetId = _ref2.sheetId;\n var images = sheetOptions.images;\n if (images) {\n return getImagesDrawingXmlRels({\n images: images,\n sheetIndex: sheetIndex\n });\n }\n }\n }\n },\n write: {\n files: function files(sheetsOptions, _ref3) {\n var read = _ref3.read;\n var sheetsImages = sheetsOptions.map(function (sheetOptions) {\n return sheetOptions.images;\n });\n if (sheetsImages.some(Boolean)) {\n return sheetsImages.map(function (images, sheetIndex) {\n if (images) {\n return images.reduce(function (imagesContent, image, imageIndex) {\n return _objectSpread(_objectSpread({}, imagesContent), {}, _defineProperty({}, \"xl/media/\".concat(getImageFileName(image, {\n sheetIndex: sheetIndex,\n imageIndex: imageIndex\n })), image.content));\n }, {});\n }\n return {};\n }).reduce(function (allImagesContent, sheetImagesContent) {\n return _objectSpread(_objectSpread({}, allImagesContent), sheetImagesContent);\n }, {});\n }\n }\n }\n }\n};\nfunction getContentTypesXml(sheetsImages) {\n // Get images from all sheets.\n var imagesFromAllSheets = sheetsImages.reduce(function (all, images) {\n return [].concat(_toConsumableArray(all), _toConsumableArray(images || []));\n }, []);\n var xml = '';\n\n // Elements with `PartName=\"/xl/drawings/drawing${sheetId}.xml\"` are already added by default.\n // Hence, this block of code was commented out.\n //\n // let i = 0\n // for (const images of imagesPerSheet) {\n // \tif (images) {\n // \t\txml += `<Override ContentType=\"application/vnd.openxmlformats-officedocument.drawing+xml\" PartName=\"/xl/drawings/drawing${sheetId}.xml\"/>`\n // \t}\n // \ti++\n // }\n\n for (var _iterator = _createForOfIteratorHelperLoose(getFileExtensionContentTypes(imagesFromAllSheets)), _step; !(_step = _iterator()).done;) {\n var _step$value = _step.value,\n fileExtension = _step$value.fileExtension,\n contentType = _step$value.contentType;\n xml += \"<Default Extension=\\\"\".concat(fileExtension, \"\\\" ContentType=\\\"\").concat(contentType, \"\\\"/>\");\n }\n return xml;\n}\nfunction getFileExtensionContentTypes(images) {\n var fileExtensionContentTypes = [];\n var addFileExtensionContentType = function addFileExtensionContentType(image) {\n var fileExtension = getFileExtensionForContentType(image.contentType);\n var existingFileExtensionContentType = fileExtensionContentTypes.find(function (_) {\n return _.fileExtension === fileExtension;\n });\n if (!existingFileExtensionContentType) {\n fileExtensionContentTypes.push({\n fileExtension: fileExtension,\n contentType: image.contentType\n });\n }\n };\n for (var _iterator2 = _createForOfIteratorHelperLoose(images), _step2; !(_step2 = _iterator2()).done;) {\n var image = _step2.value;\n addFileExtensionContentType(image);\n }\n return fileExtensionContentTypes;\n}\nfunction getImageFileName(image, _ref4) {\n var sheetIndex = _ref4.sheetIndex,\n imageIndex = _ref4.imageIndex;\n var sheetNumber = sheetIndex + 1;\n var imageNumber = imageIndex + 1;\n return \"sheet\".concat(sheetNumber, \"-image\").concat(imageNumber, \".\").concat(getFileExtensionForContentType(image.contentType));\n}\nfunction getImagesDrawingXml(_ref5) {\n var images = _ref5.images;\n var xml = '';\n var i = 0;\n var _loop = function _loop() {\n var image = _step3.value;\n // `imageId` is used to get the \"relationship ID\" of the image.\n var imageId = i + 1;\n var pxToEmu = function pxToEmu(px) {\n return pxToEmu_(px, image.dpi);\n };\n\n // There're two ways an image could be \"anchored\" in a spreadsheet:\n // * One-cell anchor — \"anchors\" the image's top-left corner to a top-left corner of a cell.\n // * Two-cell anchor — \"anchors\" the image's top-left corner to a top-left corner of the first cell,\n // and then the image's bottom-right corner to the bottom-right corner of the second cell.\n // While doing so, it completely ignores the image's aspect ratio, so there seems to be\n // no equivalent for CSS's `object-fit: contain` behavior.\n xml += '<xdr:oneCellAnchor>';\n xml += '<xdr:from>';\n xml += \"<xdr:col>\".concat(image.anchor.column - 1, \"</xdr:col>\");\n xml += \"<xdr:colOff>\".concat(typeof image.offsetX === 'number' ? pxToEmu(image.offsetX) : 0, \"</xdr:colOff>\");\n xml += \"<xdr:row>\".concat(image.anchor.row - 1, \"</xdr:row>\");\n xml += \"<xdr:rowOff>\".concat(typeof image.offsetY === 'number' ? pxToEmu(image.offsetY) : 0, \"</xdr:rowOff>\");\n xml += '</xdr:from>';\n xml += \"<xdr:ext cx=\\\"\".concat(pxToEmu(image.width), \"\\\" cy=\\\"\").concat(pxToEmu(image.height), \"\\\"/>\");\n xml += '<xdr:pic>';\n xml += '<xdr:nvPicPr>';\n xml += \"<xdr:cNvPr id=\\\"\".concat(imageId, \"\\\" name=\\\"\").concat(image.title ? sanitizeAttributeValue(image.title) : 'Picture ' + imageId, \"\\\" descr=\\\"\").concat(image.description ? sanitizeAttributeValue(image.description) : '', \"\\\"/>\");\n xml += '<xdr:cNvPicPr>';\n // Optional XML element. Locks the aspect ratio of the image. -->\n xml += '<a:picLocks noChangeAspect=\"1\"/>';\n xml += '</xdr:cNvPicPr>';\n xml += '</xdr:nvPicPr>';\n xml += '<xdr:blipFill>';\n\n // The link to the image.\n xml += \"<a:blip xmlns:r=\\\"http://schemas.openxmlformats.org/officeDocument/2006/relationships\\\" r:embed=\\\"rId-image-\".concat(imageId, \"\\\" cstate=\\\"print\\\"/>\");\n\n // Allows scaling the image.\n xml += '<a:stretch>';\n xml += '<a:fillRect/>';\n xml += '</a:stretch>';\n xml += '</xdr:blipFill>';\n\n // Dunno what this is.\n xml += '<xdr:spPr>';\n xml += '<a:prstGeom prst=\"rect\">';\n xml += '<a:avLst/>';\n xml += '</a:prstGeom>';\n xml += '</xdr:spPr>';\n xml += '</xdr:pic>';\n xml += '<xdr:clientData/>';\n xml += '</xdr:oneCellAnchor>';\n i++;\n };\n for (var _iterator3 = _createForOfIteratorHelperLoose(images), _step3; !(_step3 = _iterator3()).done;) {\n _loop();\n }\n return xml;\n}\nfunction getImagesDrawingXmlRels(_ref6) {\n var images = _ref6.images,\n sheetIndex = _ref6.sheetIndex;\n return images.map(function (image, i) {\n var imageId = i + 1;\n return \"<Relationship Id=\\\"rId-image-\".concat(imageId, \"\\\" Type=\\\"http://schemas.openxmlformats.org/officeDocument/2006/relationships/image\\\" Target=\\\"../media/\").concat(getImageFileName(image, {\n sheetIndex: sheetIndex,\n imageIndex: i\n }), \"\\\"/>\");\n }).join('');\n}\n\n// For legacy reasons, XLSX documents measure image dimensions not in pixels\n// but rather in a weird measurement unit called EMU (English Metric Unit).\n// https://gitlab.com/catamphetamine/write-excel-file/-/blob/main/docs/IMAGES.md#image-dimensions\n// This function converts pixels to EMUs.\nvar DEFAULT_DISPLAY_DPI = 96;\nvar DEFAULT_IMAGE_DPI = 96;\nfunction pxToEmu_(px, imageDpi) {\n var displayDpi = DEFAULT_DISPLAY_DPI;\n return Math.round(px * 9525 * (DEFAULT_DISPLAY_DPI / displayDpi) * (DEFAULT_IMAGE_DPI / imageDpi));\n}\n//# sourceMappingURL=images.js.map","/**\r\n * Replaces an `element` that was found in `xml` using `findElement()` function with a given `replacementXml` markup.\r\n * @param {string} xml\r\n * @param {FoundElement} element\r\n * @param {string} replacementXml\r\n * @returns {string}\r\n */\nexport default function replaceElement(xml, element, replacementXml) {\n if (element.selfClosingTag) {\n return xml.slice(0, element.openingTagStartIndex) + replacementXml + xml.slice(element.openingTagEndIndex + 1);\n }\n return xml.slice(0, element.openingTagStartIndex) + replacementXml + xml.slice(element.closingTagEndIndex + 1);\n}\n//# sourceMappingURL=replaceElement.js.map","import findElement from './findElement.js';\nimport getMarkupInsideElement from './getMarkupInsideElement.js';\nimport applyEnclosingElementOffset from './applyEnclosingElementOffset.js';\n\n/**\r\n * Finds a single element in valid XML markup within bounds of a given element that was previously found using `findElement()` function.\r\n * @param {string} xml — XML markup\r\n * @param {string} tagName — The name of the element to find\r\n * @param {object} enclosingElement — An enclosing element that was previously found using `findElement()` function.\r\n * @returns {object|undefined} — A found element, represented by an object with propeties: `{ openingTagStartIndex: number, openingTagEndIndex: number, openingTagAttributes: object, selfClosingTag?: boolean, closingTagStartIndex?: number, closingTagEndIndex?: number }`\r\n */\nexport default function findElementInsideElement(xml, tagName, enclosingElement) {\n var element = findElement(getMarkupInsideElement(xml, enclosingElement), tagName);\n if (element) {\n applyEnclosingElementOffset(element, enclosingElement);\n return element;\n }\n}\n//# sourceMappingURL=findElementInsideElement.js.map","import findElement from '../../xml/findElement.js';\nimport replaceElement from '../../xml/replaceElement.js';\nimport prependMarkupInsideElement from '../../xml/prependMarkupInsideElement.js';\nimport appendMarkupInsideElement from '../../xml/appendMarkupInsideElement.js';\nimport getOpeningTagMarkup from '../../xml/getOpeningTagMarkup.js';\nimport getClosingTagMarkup from '../../xml/getClosingTagMarkup.js';\nimport getSelfClosingTagMarkup from '../../xml/getSelfClosingTagMarkup.js';\nimport findElementInsideElement from '../../xml/findElementInsideElement.js';\nimport insertElementMarkupAccordingToOrderOfSiblings from '../../xml/insertElementMarkupAccordingToOrderOfSiblings.js';\nimport getCellAddress from '../helpers/getCellAddress.js';\nimport getOrderOfSiblings from '../helpers/getOrderOfSiblings.js';\nexport default {\n files: {\n transform: {\n 'xl/worksheets/sheet{id}.xml': {\n transform: function transform(xml, sheetOptions, _ref) {\n var sheetIndex = _ref.sheetIndex,\n sheetId = _ref.sheetId;\n if (hasStickyRowsOrColumns(sheetOptions)) {\n var stickyRowsCount = sheetOptions.stickyRowsCount,\n stickyColumnsCount = sheetOptions.stickyColumnsCount;\n var paneAttributes = {\n // The vertical position of the split, in 1/20th of a point (twips),\n // or, when frozen, the number of visible rows in the top pane(s).\n ySplit: stickyRowsCount || 0,\n // The horizontal position of the split, in 1/20th of a point (twips),\n // or, when frozen, the number of visible columns in the left pane(s).\n xSplit: stickyColumnsCount || 0,\n // The visible cell in the top-left corner of the bottom-right pane.\n topLeftCell: getCellAddress(stickyRowsCount || 0, stickyColumnsCount || 0),\n // `activePane` defines which pane is active in a \"split\" or \"frozen\" `state`.\n // Possible values: \"bottomLeft\", \"bottomRight\", \"topLeft\", \"topRight\".\n activePane: 'bottomRight',\n // `state: \"frozen\"` indicates that the panes are frozen, meaning the split area\n // (usually top rows or leftmost columns) remains fixed while the rest of the sheet scrolls.\n // Other possible values:\n // \"split\" — Indicates that the window is split into separate panes that can be scrolled independently, but are not locked in place.\n // \"frozenSplit\" — A combination used in specific scenarios (often by Excel itself) to manage complex freezing.\n state: 'frozen'\n };\n var sheetViewElement = findElement(xml, 'sheetView');\n if (sheetViewElement) {\n // Add a `<pane/>` element inside the `<sheetView/>` element.\n // If a `<pane/>` element already exists, it will overwrite it.\n var paneElement = findElementInsideElement(xml, 'pane', sheetViewElement);\n var paneXml = getSelfClosingTagMarkup('pane', paneAttributes);\n if (paneElement) {\n // Overwrite the existing `<pane/>` element.\n // It doesn't seem to be any sense in patching the existing `<pane/>` element\n // because all of its properties would be rewritten anyway in the process.\n xml = replaceElement(xml, paneElement, paneXml);\n } else {\n // Add a `<pane/>` element.\n xml = appendMarkupInsideElement(xml, sheetViewElement, paneXml);\n }\n } else {\n // Add a `<sheetViews/>` element.\n // It isn't supposed to exist when no `<sheetView/>` element is present.\n var sheetViewsElement = findElement(xml, 'sheetViews');\n if (sheetViewsElement) {\n throw new Error(\"xl/worksheets/sheet\".concat(sheetId, \".xml: <sheetViews/> element exists but it doesn't contain any <sheetView/> elements\"));\n }\n var sheetViewAttributes = {\n tabSelected: sheetIndex === 0 ? 1 : 0,\n // The first sheet is selected by default.\n workbookViewId: 0\n };\n var sheetViewsXml = getOpeningTagMarkup('sheetViews') + getOpeningTagMarkup('sheetView', sheetViewAttributes) + getSelfClosingTagMarkup('pane', paneAttributes) + getClosingTagMarkup('sheetView', sheetViewAttributes) + getClosingTagMarkup('sheetViews');\n\n // Add a `<sheetViews/>` element with a child '<sheetView/>` element with a child `<pane/>` element.\n // For some reason, Excel 2007 demands `<sheetViews/>` element to be the first one in a `<worksheet/>` element.\n var worksheetElement = findElement(xml, 'worksheet');\n xml = prependMarkupInsideElement(xml, worksheetElement, sheetViewsXml);\n }\n }\n return xml;\n }\n },\n 'xl/workbook.xml': {\n transform: function transform(xml, sheetsOptions) {\n // If \"sticky rows\" or \"sticky columns\" feature is used, there must exist a `<workbookView/>` element\n // because it will be referenced when configuring those \"sticky rows\" or \"sticky columns\".\n if (sheetsOptions.some(hasStickyRowsOrColumns)) {\n // Find a `<workbookView/>` element.\n // It is required to exist because it is referenced as `workbookViewId=\"0\"`\n // attribute in `<sheetViews/>` element in `xl/worksheets/sheet{id}.xml` file.\n var workbookViewElement = findElement(xml, 'workbookView');\n if (!workbookViewElement) {\n // `<workbookView/>` element doesn't exist, so it should be created.\n // The parent element for it should be `<bookViews/>`.\n var bookViewsElement = findElement(xml, 'bookViews');\n if (bookViewsElement) {\n throw new Error(\"xl/workbook.xml: <bookViews/> element exists but it doesn't contain any <workbookView/> elements\");\n }\n // Add a `<bookViews/>` element with a child '<workbookView/>` element.\n // For some reason, Excel 2007 demands `<bookViews/>` element to go before `<sheets/>` element.\n // And `<sheets/>` element always exists.\n return insertElementMarkupAccordingToOrderOfSiblings(xml, '<bookViews><workbookView/></bookViews>', getOrderOfSiblings('xl/workbook.xml', 'workbook'), 'workbook');\n }\n }\n return xml;\n }\n }\n }\n }\n};\nfunction hasStickyRowsOrColumns(sheetOptions) {\n return Boolean(sheetOptions.stickyRowsCount) || Boolean(sheetOptions.stickyColumnsCount);\n}\n//# sourceMappingURL=stickyRowsOrColumns.js.map","import conditionalFormatting from './features/conditionalFormatting.js';\nimport images from './features/images.js';\nimport stickyRowsOrColumns from './features/stickyRowsOrColumns.js';\nexport default function getFeatures(customFeatures) {\n var features = [];\n\n // Add \"conditional formatting\" feature implicitly.\n features.push(conditionalFormatting);\n\n // Add \"images\" feature implicitly.\n features.push(images);\n\n // Add \"sticky rows or columns\" feature implicitly.\n features.push(stickyRowsOrColumns);\n\n // Custom features might depend on \"default\" features\n // so the order of inclusion of custom features is after including \"default\" features.\n if (customFeatures) {\n customFeatures.forEach(validateFeature);\n features = features.concat(customFeatures);\n }\n return features;\n}\nvar TRANSFORMABLE_FILES = ['[Content_Types].xml', '_rels/.rels', 'xl/styles.xml', 'xl/workbook.xml', 'xl/_rels/workbook.xml.rels', 'xl/worksheets/sheet{id}.xml', 'xl/worksheets/_rels/sheet{id}.xml.rels', 'xl/drawings/drawing{id}.xml', 'xl/drawings/_rels/drawing{id}.xml.rels'];\nfunction validateFeature(feature) {\n if (feature.files && feature.files.transform) {\n for (var _i = 0, _Object$keys = Object.keys(feature.files.transform); _i < _Object$keys.length; _i++) {\n var key = _Object$keys[_i];\n if (TRANSFORMABLE_FILES.indexOf(key) < 0) {\n throw new Error(\"Unknown file to transform: \".concat(key));\n }\n }\n }\n}\n//# sourceMappingURL=getFeatures.js.map","function _createForOfIteratorHelperLoose(r, e) { var t = \"undefined\" != typeof Symbol && r[Symbol.iterator] || r[\"@@iterator\"]; if (t) return (t = t.call(r)).next.bind(t); if (Array.isArray(r) || (t = _unsupportedIterableToArray(r)) || e && r && \"number\" == typeof r.length) { t && (r = t); var o = 0; return function () { return o >= r.length ? { done: !0 } : { done: !1, value: r[o++] }; }; } throw new TypeError(\"Invalid attempt to iterate non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); }\nfunction _unsupportedIterableToArray(r, a) { if (r) { if (\"string\" == typeof r) return _arrayLikeToArray(r, a); var t = {}.toString.call(r).slice(8, -1); return \"Object\" === t && r.constructor && (t = r.constructor.name), \"Map\" === t || \"Set\" === t ? Array.from(r) : \"Arguments\" === t || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t) ? _arrayLikeToArray(r, a) : void 0; } }\nfunction _arrayLikeToArray(r, a) { (null == a || a > r.length) && (a = r.length); for (var e = 0, n = Array(a); e < a; e++) n[e] = r[e]; return n; }\nexport default function validateSheetData(data) {\n if (!Array.isArray(data)) {\n throw new TypeError('Expected sheet data to be an array of rows');\n }\n for (var _iterator = _createForOfIteratorHelperLoose(data), _step; !(_step = _iterator()).done;) {\n var row = _step.value;\n if (Array.isArray(row)) {\n return;\n } else {\n throw new Error('Expected each sheet data row to be an array');\n }\n }\n}\n//# sourceMappingURL=validateSheetData.js.map","export default function initializeSharedStrings() {\n var sharedStrings = [];\n var sharedStringIdByString = {};\n return {\n getSharedStrings: function getSharedStrings() {\n return sharedStrings;\n },\n findOrCreateSharedString: function findOrCreateSharedString(string) {\n var id = sharedStringIdByString[string];\n if (id === undefined) {\n id = sharedStrings.length;\n sharedStringIdByString[string] = id;\n sharedStrings.push(string);\n }\n return id;\n }\n };\n}\n//# sourceMappingURL=initializeSharedStrings.js.map","// https://stackoverflow.com/questions/451452/valid-characters-for-excel-sheet-names\n// Sheet name can't be empty.\n// Sheet name shouldn't exceed 31 characters.\n// Sheet name shouldn't contain any of the following characters: []/\\:*?\n\nvar ILLEGAL_CHARACTERS_IN_SHEET_NAME = /[\\[\\]\\/\\\\:*?]+/;\nexport default function validateSheetName(sheetName) {\n if (!sheetName) {\n throw new Error('Sheet name can\\'t be empty');\n }\n if (sheetName.length > 31) {\n throw new Error(\"Sheet name \\\"\".concat(sheetName, \"\\\" can't be longer than 31 characters\"));\n }\n if (ILLEGAL_CHARACTERS_IN_SHEET_NAME.test(sheetName)) {\n throw new Error(\"Sheet name \\\"\".concat(sheetName, \"\\\" contains illegal characters: []/\\\\:*?\"));\n }\n}\n//# sourceMappingURL=validateSheetName.js.map","function _createForOfIteratorHelperLoose(r, e) { var t = \"undefined\" != typeof Symbol && r[Symbol.iterator] || r[\"@@iterator\"]; if (t) return (t = t.call(r)).next.bind(t); if (Array.isArray(r) || (t = _unsupportedIterableToArray(r)) || e && r && \"number\" == typeof r.length) { t && (r = t); var o = 0; return function () { return o >= r.length ? { done: !0 } : { done: !1, value: r[o++] }; }; } throw new TypeError(\"Invalid attempt to iterate non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); }\nfunction _unsupportedIterableToArray(r, a) { if (r) { if (\"string\" == typeof r) return _arrayLikeToArray(r, a); var t = {}.toString.call(r).slice(8, -1); return \"Object\" === t && r.constructor && (t = r.constructor.name), \"Map\" === t || \"Set\" === t ? Array.from(r) : \"Arguments\" === t || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t) ? _arrayLikeToArray(r, a) : void 0; } }\nfunction _arrayLikeToArray(r, a) { (null == a || a > r.length) && (a = r.length); for (var e = 0, n = Array(a); e < a; e++) n[e] = r[e]; return n; }\nimport initializeStyles from './initializeStyles.js';\nimport initializeSharedStrings from './initializeSharedStrings.js';\nimport validateSheetName from './validateSheetName.js';\nexport default function initializeSheets(sheetsData, sheetsOptions, globalOptions) {\n var _initializeSharedStri = initializeSharedStrings(),\n getSharedStrings = _initializeSharedStri.getSharedStrings,\n findOrCreateSharedString = _initializeSharedStri.findOrCreateSharedString;\n\n // const sheetsDefaultFonts = sheetsOptions.map((sheetOptions) => {\n // \tconst { fontFamily, fontSize } = sheetOptions\n // if (fontFamily || fontSize) {\n // \t\treturn { fontFamily, fontSize }\n // \t}\n // })\n\n var defaultFont = getDefaultFont(globalOptions);\n var _initializeStyles = initializeStyles(defaultFont),\n getCellStyles = _initializeStyles.getCellStyles,\n findOrCreateCellStyle = _initializeStyles.findOrCreateCellStyle;\n\n // Get sheet names.\n var sheetNames = sheetsOptions.map(function (sheetOptions) {\n return sheetOptions.sheet;\n });\n\n // Validate sheet names.\n for (var _iterator = _createForOfIteratorHelperLoose(sheetNames), _step; !(_step = _iterator()).done;) {\n var sheetName = _step.value;\n validateSheetName(sheetName);\n }\n var sheetXmlParameters = [];\n var sheetIndex = 0;\n while (sheetIndex < sheetNames.length) {\n sheetXmlParameters.push({\n sheetData: sheetsData[sheetIndex],\n sheetOptions: sheetsOptions[sheetIndex],\n sheetIndex: sheetIndex,\n sheetId: getSheetId(sheetIndex),\n hasDefaultFont: Boolean(defaultFont),\n // hasDefaultFont: Boolean(sheetsDefaultFonts[sheetIndex]),\n // findOrCreateCellStyle: (style) => findOrCreateCellStyle(style, sheetIndex),\n findOrCreateCellStyle: findOrCreateCellStyle,\n findOrCreateSharedString: findOrCreateSharedString\n });\n sheetIndex++;\n }\n return {\n sheets: sheetNames.map(function (sheetName, _i) {\n // Reassign the `_i` variable to prevent \"closure\" bug when in `generateSheetXml()` function\n // the `_i` value is always equal to the last sheet's index.\n var sheetIndex = _i;\n return {\n sheetId: getSheetId(sheetIndex),\n sheetName: sheetName,\n sheetXmlParameters: sheetXmlParameters[sheetIndex]\n };\n }),\n getSharedStrings: getSharedStrings,\n getCellStyles: getCellStyles\n };\n}\nfunction getSheetId(sheetIndex) {\n return String(sheetIndex + 1);\n}\nfunction getDefaultFont(globalOptions) {\n var fontFamily = globalOptions.fontFamily,\n fontSize = globalOptions.fontSize;\n if (fontFamily || typeof fontSize === 'number') {\n return {\n fontFamily: fontFamily,\n fontSize: fontSize\n };\n }\n}\n//# sourceMappingURL=initializeSheets.js.map","export default function getSheetData(objects, columns) {\n // Create header row.\n var headerRow;\n // If at least one column has a header\n // then a header row will be rendered.\n // Otherwise, there will be no header row.\n if (columns.some(function (column) {\n return column.header;\n })) {\n headerRow = columns.map(function (_ref) {\n var header = _ref.header;\n return header || null;\n });\n }\n return (headerRow ? [headerRow] : []).concat(objects.map(function (object, objectIndex) {\n return columns.map(function (_ref2) {\n var cell = _ref2.cell;\n return cell(object, objectIndex);\n });\n }));\n}\n//# sourceMappingURL=getSheetData.js.map","function _typeof(o) { \"@babel/helpers - typeof\"; return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && \"function\" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? \"symbol\" : typeof o; }, _typeof(o); }\nfunction ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }\nfunction _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }\nfunction _defineProperty(e, r, t) { return (r = _toPropertyKey(r)) in e ? Object.defineProperty(e, r, { value: t, enumerable: !0, configurable: !0, writable: !0 }) : e[r] = t, e; }\nfunction _toPropertyKey(t) { var i = _toPrimitive(t, \"string\"); return \"symbol\" == _typeof(i) ? i : i + \"\"; }\nfunction _toPrimitive(t, r) { if (\"object\" != _typeof(t) || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || \"default\"); if (\"object\" != _typeof(i)) return i; throw new TypeError(\"@@toPrimitive must return a primitive value.\"); } return (\"string\" === r ? String : Number)(t); }\nfunction _createForOfIteratorHelperLoose(r, e) { var t = \"undefined\" != typeof Symbol && r[Symbol.iterator] || r[\"@@iterator\"]; if (t) return (t = t.call(r)).next.bind(t); if (Array.isArray(r) || (t = _unsupportedIterableToArray(r)) || e && r && \"number\" == typeof r.length) { t && (r = t); var o = 0; return function () { return o >= r.length ? { done: !0 } : { done: !1, value: r[o++] }; }; } throw new TypeError(\"Invalid attempt to iterate non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); }\nfunction _unsupportedIterableToArray(r, a) { if (r) { if (\"string\" == typeof r) return _arrayLikeToArray(r, a); var t = {}.toString.call(r).slice(8, -1); return \"Object\" === t && r.constructor && (t = r.constructor.name), \"Map\" === t || \"Set\" === t ? Array.from(r) : \"Arguments\" === t || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t) ? _arrayLikeToArray(r, a) : void 0; } }\nfunction _arrayLikeToArray(r, a) { (null == a || a > r.length) && (a = r.length); for (var e = 0, n = Array(a); e < a; e++) n[e] = r[e]; return n; }\nexport default function getWrittenFiles(features, sheetsOptions, _ref) {\n var read = _ref.read;\n var writtenFiles = {};\n for (var _iterator = _createForOfIteratorHelperLoose(features), _step; !(_step = _iterator()).done;) {\n var feature = _step.value;\n if (feature.files && feature.files.write) {\n if (feature.files.write.files) {\n var files = feature.files.write.files(sheetsOptions, {\n read: read\n });\n if (files) {\n writtenFiles = _objectSpread(_objectSpread({}, writtenFiles), files);\n }\n }\n }\n }\n return writtenFiles;\n}\n//# sourceMappingURL=getWrittenFiles.js.map","function _typeof(o) { \"@babel/helpers - typeof\"; return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && \"function\" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? \"symbol\" : typeof o; }, _typeof(o); }\nvar _excluded = [\"data\"];\nfunction ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }\nfunction _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }\nfunction _defineProperty(e, r, t) { return (r = _toPropertyKey(r)) in e ? Object.defineProperty(e, r, { value: t, enumerable: !0, configurable: !0, writable: !0 }) : e[r] = t, e; }\nfunction _toPropertyKey(t) { var i = _toPrimitive(t, \"string\"); return \"symbol\" == _typeof(i) ? i : i + \"\"; }\nfunction _toPrimitive(t, r) { if (\"object\" != _typeof(t) || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || \"default\"); if (\"object\" != _typeof(i)) return i; throw new TypeError(\"@@toPrimitive must return a primitive value.\"); } return (\"string\" === r ? String : Number)(t); }\nfunction _objectWithoutProperties(e, t) { if (null == e) return {}; var o, r, i = _objectWithoutPropertiesLoose(e, t); if (Object.getOwnPropertySymbols) { var n = Object.getOwnPropertySymbols(e); for (r = 0; r < n.length; r++) o = n[r], -1 === t.indexOf(o) && {}.propertyIsEnumerable.call(e, o) && (i[o] = e[o]); } return i; }\nfunction _objectWithoutPropertiesLoose(r, e) { if (null == r) return {}; var t = {}; for (var n in r) if ({}.hasOwnProperty.call(r, n)) { if (-1 !== e.indexOf(n)) continue; t[n] = r[n]; } return t; }\nfunction _createForOfIteratorHelperLoose(r, e) { var t = \"undefined\" != typeof Symbol && r[Symbol.iterator] || r[\"@@iterator\"]; if (t) return (t = t.call(r)).next.bind(t); if (Array.isArray(r) || (t = _unsupportedIterableToArray(r)) || e && r && \"number\" == typeof r.length) { t && (r = t); var o = 0; return function () { return o >= r.length ? { done: !0 } : { done: !1, value: r[o++] }; }; } throw new TypeError(\"Invalid attempt to iterate non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); }\nfunction _unsupportedIterableToArray(r, a) { if (r) { if (\"string\" == typeof r) return _arrayLikeToArray(r, a); var t = {}.toString.call(r).slice(8, -1); return \"Object\" === t && r.constructor && (t = r.constructor.name), \"Map\" === t || \"Set\" === t ? Array.from(r) : \"Arguments\" === t || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t) ? _arrayLikeToArray(r, a) : void 0; } }\nfunction _arrayLikeToArray(r, a) { (null == a || a > r.length) && (a = r.length); for (var e = 0, n = Array(a); e < a; e++) n[e] = r[e]; return n; }\nimport generateWorkbookXml from './files/workbook.xml.js';\nimport generateWorkbookXmlRels from './files/workbook.xml.rels.js';\nimport generateRelsXml from './files/rels.js';\nimport generateContentTypesXml, { getDrawingContentTypeXml } from './files/[Content_Types].xml.js';\nimport generateDrawingXml, { DRAWING_XML_START, DRAWING_XML_END } from './files/drawing.xml.js';\nimport generateDrawingXmlRels from './files/drawing.xml.rels.js';\nimport generateSheetXml from './files/sheet.xml/sheet.xml.js';\nimport generateDrawingReferenceXml from './files/sheet.xml/drawingReference.js';\nimport generateSheetXmlRels, { getDrawingRelationshipXml } from './files/sheet.xml.rels.js';\nimport generateSharedStringsXml from './files/sharedStrings.xml.js';\nimport generateStylesXml from './files/styles.xml.js';\nimport getFeatures from './getFeatures.js';\nimport validateSheetData from './validateSheetData.js';\nimport initializeSheets from './initializeSheets.js';\nimport getSheetData from '../getSheetData/getSheetData.js';\nimport getWrittenFiles from './helpers/features/getWrittenFiles.js';\nimport isObject from './helpers/isObject.js';\nimport getSelfClosingTagMarkup from '../xml/getSelfClosingTagMarkup.js';\n\n/**\r\n * Creates contents (files) an `*.xlsx` file.\r\n * @param {SheetData|Object[]|Sheet[]} arg1\r\n * @param {object} arg2 — If `arg1` is `SheetData`, `arg2` is `SheetOptions` and `arg3` is `Options`. If `arg1` is `Sheet[]`, `arg2` is `Options`.\r\n * @param {object} [arg3] — If `arg1` is `SheetData`, `arg2` is `SheetOptions` and `arg3` is `Options`. If `arg1` is `Sheet[]`, `arg2` is `Options`.\r\n * @return {Record<string,string|Blob>} A map of files that exist inside an `.xlsx` file.\r\n */\nexport default function generateXlsxFileContents(arg1, arg2, arg3) {\n var _getArguments = getArguments(arg1, arg2, arg3),\n sheetsDataAndOptions = _getArguments.sheets,\n options = _getArguments.options;\n var sheetsData = sheetsDataAndOptions.map(function (sheet) {\n return sheet.data;\n });\n var sheetsOptions = sheetsDataAndOptions.map(function (sheet) {\n return sheet.options;\n });\n sheetsOptions = setSheetNames(sheetsOptions);\n\n // Here's a small hack for `conditionalFormatting` feature support.\n // `.xlsx` format is weird and has many quirks.\n // One of those quirks is each conditional formatting rule has to be assigned a globally-unique ID.\n // That itself wouldn't be an issue if that globally-unique ID could be any string,\n // but `.xlsx` format specification complicates things by demanding it to be\n // a zero-based integer index (0, 1, 2, ...) referencing a specific `<dxf>` element in \"styles.xml\" file.\n // So a conditional formatting rule ID can't be just \"sheet1-rule2\", it has to be specifically\n // an index of this rule in the list of all rules for all sheets in a given `.xlsx` file.\n // Because a sheet-specific file tranform function doesn't have access to other sheets' options,\n // here it manually sets the global indexes of all conditional formatting rules,\n // and it has to do so without mutating any input arguments.\n sheetsOptions = setConditionalFormattingRulesGlobalIndexes(sheetsOptions);\n var features = getFeatures(options.features);\n var files = {};\n var readFile = function readFile(path) {\n return files[path];\n };\n // const fileExists = (path) => Boolean(files[path])\n\n var writeFiles = function writeFiles(filesToWrite) {\n for (var _i = 0, _Object$keys = Object.keys(filesToWrite); _i < _Object$keys.length; _i++) {\n var path = _Object$keys[_i];\n validateFilePath(path);\n validateFileContent(path, filesToWrite[path]);\n files[path] = filesToWrite[path];\n }\n };\n var _initializeSheets = initializeSheets(sheetsData, sheetsOptions, options),\n sheets = _initializeSheets.sheets,\n getSharedStrings = _initializeSheets.getSharedStrings,\n getCellStyles = _initializeSheets.getCellStyles;\n files['[Content_Types].xml'] = generateContentTypesXml({\n sheetIds: sheets.map(function (_) {\n return _.sheetId;\n }),\n features: features,\n sheetsOptions: sheetsOptions\n });\n files['_rels/.rels'] = generateRelsXml({\n features: features,\n sheetsOptions: sheetsOptions\n });\n files['xl/_rels/workbook.xml.rels'] = generateWorkbookXmlRels({\n sheetIds: sheets.map(function (_) {\n return _.sheetId;\n }),\n features: features,\n sheetsOptions: sheetsOptions\n });\n files['xl/workbook.xml'] = generateWorkbookXml({\n sheetIdsAndNames: sheets.map(function (_ref) {\n var sheetId = _ref.sheetId,\n sheetName = _ref.sheetName;\n return {\n sheetId: sheetId,\n sheetName: sheetName\n };\n }),\n features: features,\n sheetsOptions: sheetsOptions\n });\n var sheetIndex = 0;\n for (var _iterator = _createForOfIteratorHelperLoose(sheets), _step; !(_step = _iterator()).done;) {\n var _step$value = _step.value,\n sheetId = _step$value.sheetId,\n sheetXmlParameters = _step$value.sheetXmlParameters;\n var sheetOptions = sheetsOptions[sheetIndex];\n files[\"xl/worksheets/sheet\".concat(sheetId, \".xml\")] = generateSheetXml(sheetXmlParameters, features);\n files[\"xl/worksheets/_rels/sheet\".concat(sheetId, \".xml.rels\")] = generateSheetXmlRels({\n sheetIndex: sheetIndex,\n sheetId: sheetId,\n sheetOptions: sheetOptions,\n features: features\n });\n files[\"xl/drawings/drawing\".concat(sheetId, \".xml\")] = generateDrawingXml({\n sheetIndex: sheetIndex,\n sheetId: sheetId,\n sheetOptions: sheetOptions,\n features: features\n });\n files[\"xl/drawings/_rels/drawing\".concat(sheetId, \".xml.rels\")] = generateDrawingXmlRels({\n sheetIndex: sheetIndex,\n sheetId: sheetId,\n sheetOptions: sheetOptions,\n features: features\n });\n sheetIndex++;\n }\n writeFiles(getWrittenFiles(features, sheetsOptions, {\n read: readFile\n }));\n\n // After sheets' XML was generated, it can generate \"styles.xml\" and \"sharedStrings.xml\".\n files['xl/styles.xml'] = generateStylesXml(getCellStyles(), sheetsOptions, features);\n files['xl/sharedStrings.xml'] = generateSharedStringsXml(getSharedStrings());\n\n // (minor minimization) Remove unused `drawing${id}.xml` files.\n removeUnusedDrawings(files, sheets);\n return files;\n}\n\n// (minor minimization)\n//\n// For each `xl/drawings/drawing${id}.xml`, see if it has no actual content,\n// i.e. the `<xdr:wsDr>` element has no child elements.\n// If that's the case, remove `xl/drawings/drawing${sheetId}.xml` and `xl/drawings/drawing${sheetId}.xml.rels`,\n// and also remove `<drawing r:id=\"...\"/>` element from `xl/worksheets/sheet${sheetId}.xml`\n// and the corresponding `<Relationship Id=\"...\" .../>` element from `xl/worksheets/_rels/sheet${sheetId}.xml.rels`\n// and the corresponding `<Override/> element from `[Content_Types].xml`.\n//\nfunction removeUnusedDrawings(files, sheets) {\n for (var _iterator2 = _createForOfIteratorHelperLoose(sheets), _step2; !(_step2 = _iterator2()).done;) {\n var sheetId = _step2.value.sheetId;\n if (files[\"xl/drawings/drawing\".concat(sheetId, \".xml\")] === DRAWING_XML_START + DRAWING_XML_END) {\n delete files[\"xl/drawings/drawing\".concat(sheetId, \".xml\")];\n delete files[\"xl/drawings/_rels/drawing\".concat(sheetId, \".xml.rels\")];\n if (!removeSubstring(files, \"xl/worksheets/sheet\".concat(sheetId, \".xml\"), generateDrawingReferenceXml(getSelfClosingTagMarkup))) {\n throw new Error(COULD_NOT_REMOVE_UNUSED_DRAWINGS);\n }\n removeSubstring(files, \"xl/worksheets/_rels/sheet\".concat(sheetId, \".xml.rels\"), getDrawingRelationshipXml(sheetId));\n removeSubstring(files, '[Content_Types].xml', getDrawingContentTypeXml(sheetId));\n }\n }\n}\nvar COULD_NOT_REMOVE_UNUSED_DRAWINGS = 'Couldn\\'t remove unused drawings';\nfunction removeSubstring(files, key, substring) {\n if (!files[key]) {\n throw new Error(\"File not found: \".concat(key));\n }\n if (files[key].indexOf(substring) < 0) {\n throw new Error(\"Substring \\\"\".concat(substring, \"\\\" not found in \\\"\").concat(key, \"\\\"\"));\n }\n var stringBeforeRemoval = files[key];\n var stringAfterRemoval = stringBeforeRemoval.replace(substring, '');\n files[key] = stringAfterRemoval;\n return stringBeforeRemoval !== stringAfterRemoval;\n}\nfunction validateFilePath(path) {\n if (path[0] === '/') {\n throw new Error(\"File path must not start with a slash (/)\");\n }\n}\nfunction validateFileContent(path, content) {\n if (!content) {\n throw new Error(\"File `content` not specified: \".concat(path));\n }\n}\nfunction getArguments(arg1, arg2, arg3) {\n if (Array.isArray(arg1)) {\n if (arg1.length === 0 || Array.isArray(arg1[0])) {\n // `arg1` is `SheetData`\n validateSheetData(arg1);\n // Validate that a developer is not using the legacy way of writing multiple sheets.\n if (Array.isArray(arg1[0]) && arg1.length > 0 && Array.isArray(arg1[0][0])) {\n throw new Error('In order to write multiple sheets, pass an array of sheet objects');\n }\n return {\n sheets: [{\n data: arg1,\n options: arg2 || {}\n }],\n options: arg3 || {}\n };\n } else if (isObject(arg1[0])) {\n // `arg1` is either `Sheet[]` or `Object[]`\n // Validate that a developer is not using a legacy parameter `schema`.\n if (isObject(arg2) && Array.isArray(arg2.schema)) {\n throw new Error('`schema` parameter was removed, use `columns` parameter instead');\n }\n if (isObject(arg2) && Array.isArray(arg2.columns)) {\n // `arg1` is `Object[]`.\n // Don't remove `columns` property from `arg2` because it's still required there\n // to apply the column `width`.\n return getArguments(getSheetData(arg1, arg2.columns), arg2, arg3);\n }\n // `arg1` is `Sheet[]`\n return {\n sheets: arg1.map(function (_ref2) {\n var data = _ref2.data,\n options = _objectWithoutProperties(_ref2, _excluded);\n if (!data) {\n throw new Error('`data` property is required for each sheet');\n }\n validateSheetData(data);\n return {\n data: data,\n options: options || {}\n };\n }),\n options: arg2 || {}\n };\n } else {\n throw new Error('Invalid first argument: must be either sheet data — an array of arrays — or an array of sheet objects');\n }\n } else {\n throw new Error('Invalid first argument: must be an array');\n }\n}\n\n// Sets a sheet name for each sheet.\nfunction setSheetNames(sheetsOptions) {\n return sheetsOptions.map(function (sheetOptions, sheetIndex) {\n return _objectSpread(_objectSpread({}, sheetOptions), {}, {\n sheet: sheetOptions.sheet || \"Sheet\".concat(sheetIndex + 1)\n });\n });\n}\n\n// Sets a `_globalIndex: number` property on each conditional formatting rule.\nfunction setConditionalFormattingRulesGlobalIndexes(sheetsOptions) {\n var globalIndex = 0;\n return sheetsOptions.map(function (sheetOptions) {\n return _objectSpread(_objectSpread({}, sheetOptions), {}, {\n conditionalFormatting: sheetOptions.conditionalFormatting && sheetOptions.conditionalFormatting.map(function (conditionalFormattingRule) {\n return _objectSpread(_objectSpread({}, conditionalFormattingRule), {}, {\n // `++` operator returns the value before the increment.\n _globalIndex: globalIndex++\n });\n })\n });\n });\n}\n//# sourceMappingURL=generateXlsxFileContents.js.map","import convertFileContentToUint8Array from './convertFileContentToUint8ArrayUniversal.js';\nimport zipToArrayBuffer from '../zip/zipToArrayBuffer.js';\nimport zipToArrayBufferSync from '../zip/zipToArrayBufferSync.js';\nimport convertFilesContentToUint8Arrays from './convertFilesContentToUint8Arrays.js';\nimport generateXlsxFileContents from '../xlsx/generateXlsxFileContents.js';\n\n// This function doesn't use `async`/`await` in order to avoid adding `@babel/runtime` to `dependencies`.\n// https://gitlab.com/catamphetamine/write-excel-file/-/issues/105\n\n/**\r\n * Creates an `*.xlsx` file.\r\n * @param {SheetData|Object[]|Sheet[]} arg1\r\n * @param {object} arg2 — If `arg1` is `SheetData`, `arg2` is `SheetOptions` and `arg3` is `Options`. If `arg1` is `Sheet[]`, `arg2` is `Options`.\r\n * @param {object} [arg3] — If `arg1` is `SheetData`, `arg2` is `SheetOptions` and `arg3` is `Options`. If `arg1` is `Sheet[]`, `arg2` is `Options`.\r\n * @returns {object} Returns an object with `async` methods: `toBlob()`.\r\n */\nexport default function writeXlsxFile(arg1, arg2, arg3) {\n return {\n toBlob: function toBlob() {\n return generateXlsxFileAsync(arg1, arg2, arg3, convertFileContentToUint8Array);\n }\n };\n}\n\n/**\r\n * @return {Promise<Blob>}\r\n */\nfunction generateXlsxFile(arg1, arg2, arg3, convertFileContentToUint8Array, createZipArchiveAsArrayBuffer, isAsyncZip) {\n // Generate the sub-files inside the `.xlsx` file.\n var files = generateXlsxFileContents(arg1, arg2, arg3);\n\n // Convert files' content to `Uint8Array`s.\n return convertFilesContentToUint8Arrays(files, convertFileContentToUint8Array).then(function (files) {\n // Create a `.zip` archive from the files.\n // An `.xlsx` file is just a `.zip` archive with an `.xlsx` file extension.\n // `result` is either `Uint8Array` or `Promise<Uint8Array>`\n var result = createZipArchiveAsArrayBuffer(files);\n // Return a `Blob` with the `.zip` archive data.\n if (isAsyncZip) {\n return result.then(function (result) {\n return convertArrayBufferToBlob(result);\n });\n } else {\n return convertArrayBufferToBlob(result);\n }\n });\n}\n\n// Converts `ArrayBuffer` to `Blob`.\nfunction convertArrayBufferToBlob(arrayBuffer) {\n return new Blob([arrayBuffer], {\n type: 'application/vnd.openxmlformats-officedocument.spreadsheetml.sheet'\n });\n}\n\n/**\r\n * Generates an *.xlsx file \"synchronously\".\r\n * @return {Promise<Blob>}\r\n */\nexport function generateXlsxFileSync(arg1, arg2, arg3, convertFileContentToUint8Array) {\n return generateXlsxFile(arg1, arg2, arg3, convertFileContentToUint8Array, zipToArrayBufferSync, false);\n}\n\n/**\r\n * Generates an *.xlsx file \"asynchronously\".\r\n * @return {Promise<Blob>}\r\n */\nexport function generateXlsxFileAsync(arg1, arg2, arg3, convertFileContentToUint8Array) {\n return generateXlsxFile(arg1, arg2, arg3, convertFileContentToUint8Array, zipToArrayBuffer, true);\n}\n//# sourceMappingURL=writeXlsxFileUniversal.js.map","// This function doesn't use `async`/`await` in order to avoid adding `@babel/runtime` to `dependencies`.\n// https://gitlab.com/catamphetamine/write-excel-file/-/issues/105\n\n/**\r\n * Converts file content to a `Uint8Array`.\r\n * @param {File|Blob|ArrayBuffer} fileContent\r\n * @returns {Promise<Uint8Array>}\r\n */\nexport default function convertFileContentToUint8Array(fileContent) {\n if (fileContent instanceof File) {\n return fileContent.arrayBuffer().then(arrayBufferToUint8Array);\n }\n if (fileContent instanceof Blob) {\n return fileContent.arrayBuffer().then(arrayBufferToUint8Array);\n }\n if (fileContent instanceof ArrayBuffer) {\n return Promise.resolve(arrayBufferToUint8Array(fileContent));\n }\n throw new Error('Unsupported file content type. Expected a `File`, a `Blob` or an `ArrayBuffer`');\n}\nfunction arrayBufferToUint8Array(arrayBuffer) {\n return new Uint8Array(arrayBuffer);\n}\n//# sourceMappingURL=convertFileContentToUint8ArrayBrowser.js.map","export default function downloadBlob(blob, filename) {\n // Create a URL for the blob\n var url = URL.createObjectURL(blob);\n\n // Create a temporary anchor element\n var a = document.createElement('a');\n a.style.display = 'none';\n a.href = url;\n a.download = filename; // Set the proposed filename for the download\n\n // Append the anchor to the body to make it clickable\n document.body.appendChild(a);\n\n // Trigger the download by simulating a click\n a.click();\n\n // Clean up by revoking the object URL and removing the anchor\n setTimeout(function () {\n URL.revokeObjectURL(url);\n document.body.removeChild(a);\n }, 100); // Delay for Firefox compatibility\n}\n//# sourceMappingURL=downloadBlob.js.map","// Uses an \"async\" function of the zipper function\n// just because it feels more correct to use it over the \"sync\" one\n// because it isn't supposed to ever freeze the \"main thread\" (GUI).\n//\n// import { generateXlsxFileSync } from './writeXlsxFileUniversal.js'\nimport { generateXlsxFileAsync } from './writeXlsxFileUniversal.js';\nimport convertFileContentToUint8Array from './convertFileContentToUint8ArrayBrowser.js';\nimport downloadBlob from './downloadBlob.js';\n\n// This function doesn't use `async`/`await` in order to avoid adding `@babel/runtime` to `dependencies`.\n// https://gitlab.com/catamphetamine/write-excel-file/-/issues/105\n\n/**\r\n * Creates an `*.xlsx` file.\r\n * @param {SheetData|Object[]|Sheet[]} arg1\r\n * @param {object} arg2 — If `arg1` is `SheetData`, `arg2` is `SheetOptions` and `arg3` is `Options`. If `arg1` is `Sheet[]`, `arg2` is `Options`.\r\n * @param {object} [arg3] — If `arg1` is `SheetData`, `arg2` is `SheetOptions` and `arg3` is `Options`. If `arg1` is `Sheet[]`, `arg2` is `Options`.\r\n * @returns {object} Returns an object with `async` methods: `toBlob()`, `toFile(fileName)`.\r\n */\nexport default function writeXlsxFile(arg1, arg2, arg3) {\n var createBlob = function createBlob() {\n return generateXlsxFileAsync(arg1, arg2, arg3, convertFileContentToUint8Array);\n };\n return {\n toBlob: function toBlob() {\n return createBlob();\n },\n toFile: function toFile(fileName) {\n return createBlob().then(function (blob) {\n downloadBlob(blob, fileName);\n });\n }\n };\n}\n//# sourceMappingURL=writeXlsxFileBrowser.js.map","import type { TFunction } from 'i18next';\nimport { format } from 'date-fns';\nimport type { ECharts } from 'echarts';\nimport writeXlsxFile from 'write-excel-file/browser';\nimport { stringify } from 'csv/browser/esm/sync';\nimport {\n CaseDbCaseApi,\n CaseDbLogLevel,\n} from '@gen-epix/api-casedb';\nimport type {\n CaseDbCase,\n CaseDbCol,\n CaseDbCompleteCaseType,\n} from '@gen-epix/api-casedb';\nimport { ConfigService } from '@gen-epix/ui-client-common/classes/services/ConfigService';\nimport { LogService } from '@gen-epix/ui-client-common/classes/services/LogService';\nimport { NotificationService } from '@gen-epix/ui-client-common/classes/services/NotificationService';\nimport { QueryClientService } from '@gen-epix/ui-client-common/classes/services/QueryClientService';\nimport { DownloadUtil } from '@gen-epix/ui-core/utils/DownloadUtil';\nimport { StringUtil } from '@gen-epix/ui-core/utils/StringUtil';\nimport { DATE_FORMAT } from '@gen-epix/ui-core/constants/date';\n\nimport { CaseTypeUtil } from '../CaseTypeUtil';\nimport { CaseUtil } from '../CaseUtil';\nimport { CASEDB_QUERY_KEY } from '../../constants/query';\n\nexport class CaseDbDownloadUtil {\n public static downloadAsCsv(cases: CaseDbCase[], colIds: string[], completeCaseType: CaseDbCompleteCaseType, t: TFunction<'translation', undefined>): void {\n const data = [\n CaseDbDownloadUtil.getColumnHeadersForExport(colIds, completeCaseType),\n ...CaseDbDownloadUtil.getRowsForExport(cases, colIds, completeCaseType),\n ];\n const csv = stringify(data, {\n defaultEncoding: 'utf-8',\n });\n const fileName = `${CaseDbDownloadUtil.getExportFileName(t`Line list`, completeCaseType, t)}.csv`;\n DownloadUtil.createDownloadUrl(`data:text/csv;base64,${btoa(csv)}`, fileName);\n }\n\n public static async downloadAsExcel(cases: CaseDbCase[], colIds: string[], completeCaseType: CaseDbCompleteCaseType, t: TFunction<'translation', undefined>): Promise<void> {\n // Prepare headers\n const headers = CaseDbDownloadUtil.getColumnHeadersForExport(colIds, completeCaseType);\n\n // Prepare data rows\n const rows = CaseDbDownloadUtil.getRowsForExport(cases, colIds, completeCaseType);\n\n // Convert data to the format expected by write-excel-file (SheetData)\n // Each row is an array of Cell objects\n const data = [\n // Header row\n headers.map(header => ({ type: String, value: header })),\n // Data rows\n ...rows.map(row => row.map(cell => ({ type: String, value: cell }))),\n ];\n\n const fileName = `${CaseDbDownloadUtil.getExportFileName(t`Line list`, completeCaseType, t)}.xlsx`;\n\n // Generate Excel file as a Blob and download it\n const blob = await writeXlsxFile(data, {\n columns: headers.map(() => ({ width: 20 })),\n stickyRowsCount: 1,\n }).toBlob();\n\n // Convert blob to base64 and download\n const arrayBuffer = await blob.arrayBuffer();\n const base64 = DownloadUtil.arrayBufferToBase64(arrayBuffer);\n DownloadUtil.createDownloadUrl(`data:application/vnd.openxmlformats-officedocument.spreadsheetml.sheet;base64,${base64}`, fileName);\n }\n\n public static downloadCanvasImage(baseName: string, canvas: HTMLCanvasElement, type: 'jpeg' | 'png', completeCaseType: CaseDbCompleteCaseType, t: TFunction<'translation', undefined>): void {\n const dataUrl = canvas.toDataURL(type === 'jpeg' ? 'image/jpeg' : 'image/png');\n const fileName = `${CaseDbDownloadUtil.getExportFileName(baseName, completeCaseType, t)}.${type}`;\n DownloadUtil.createDownloadUrl(dataUrl, fileName);\n }\n\n public static downloadEchartsImage(baseName: string, instance: ECharts, type: 'jpeg' | 'png', completeCaseType: CaseDbCompleteCaseType, t: TFunction<'translation', undefined>): void {\n const url = instance.getDataURL({\n backgroundColor: '#fff',\n pixelRatio: 2,\n type,\n });\n const fileName = `${CaseDbDownloadUtil.getExportFileName(baseName, completeCaseType, t)}.${type.toLowerCase()}`;\n DownloadUtil.createDownloadUrl(url, fileName);\n }\n\n public static async downloadExcelTemplate(caseTypeId: string, t: TFunction<'translation', undefined>): Promise<void> {\n const queryClient = QueryClientService.getInstance().queryClient;\n try {\n const completeCaseType = await queryClient.fetchQuery({\n queryFn: async ({ signal }) => {\n return (await CaseDbCaseApi.getInstance().completeCaseTypesGetOne(caseTypeId, { signal })).data;\n },\n queryKey: QueryClientService.getInstance().getGenericKey(CASEDB_QUERY_KEY.COMPLETE_CASE_TYPES, caseTypeId),\n });\n\n const headers = CaseDbDownloadUtil.getColumnHeadersForImport(\n CaseTypeUtil.getWritableImportExportColIds(completeCaseType)\n .sort((a, b) => completeCaseType.ordered_col_ids.indexOf(a) - completeCaseType.ordered_col_ids.indexOf(b))\n , completeCaseType,\n );\n const data = [\n headers.map(header => ({ type: String, value: header })),\n ];\n const fileName = `${CaseDbDownloadUtil.getTemplateFileName(completeCaseType)}.xlsx`;\n\n // Generate Excel file as a Blob and download it\n const blob = await writeXlsxFile(data, {\n columns: headers.map(() => ({ width: 20 })),\n showGridLines: true,\n stickyRowsCount: 1,\n }).toBlob();\n\n // Convert blob to base64 and download\n const arrayBuffer = await blob.arrayBuffer();\n const base64 = DownloadUtil.arrayBufferToBase64(arrayBuffer);\n DownloadUtil.createDownloadUrl(`data:application/vnd.openxmlformats-officedocument.spreadsheetml.sheet;base64,${base64}`, fileName);\n } catch (error) {\n LogService.getInstance().log([{\n detail: {\n error,\n stack: (error as Error)?.stack,\n },\n level: CaseDbLogLevel.ERROR,\n topic: (error as Error)?.message ? `Error: ${(error as Error)?.message}` : 'Error',\n }]);\n NotificationService.getInstance().showNotification({\n message: t('Excel template could not be created'),\n severity: 'error',\n });\n }\n }\n\n public static downloadNewick(baseName: string, newick: string, completeCaseType: CaseDbCompleteCaseType, t: TFunction<'translation', undefined>): void {\n const fileName = `${CaseDbDownloadUtil.getExportFileName(baseName, completeCaseType, t)}.txt`;\n DownloadUtil.createDownloadUrl(`data:text/x-nh;base64,${btoa(newick)}`, fileName);\n }\n\n public static getExportFileName(baseName: string, completeCaseType: CaseDbCompleteCaseType, t: TFunction<'translation', undefined>): string {\n return t('{{date}}--{{applicationName}}--{{caseTypeName}}--{{baseName}}', {\n applicationName: StringUtil.createSlug(ConfigService.getInstance().config.applicationName),\n baseName: StringUtil.createSlug(baseName),\n caseTypeName: StringUtil.createSlug(completeCaseType.name),\n date: format(new Date(), DATE_FORMAT.DATE),\n });\n }\n\n public static getTemplateFileName(completeCaseType: CaseDbCompleteCaseType): string {\n return `${StringUtil.createSlug(ConfigService.getInstance().config.applicationName)}--${StringUtil.createSlug(completeCaseType.name)}--template`;\n }\n\n private static getColsForImportExport(colIds: string[], completeCaseType: CaseDbCompleteCaseType): CaseDbCol[] {\n return CaseTypeUtil.getCols(completeCaseType)\n .filter(x => colIds.includes(x.id))\n .sort((a, b) => {\n return colIds.indexOf(a.id) - colIds.indexOf(b.id);\n });\n }\n\n private static getColumnHeadersForExport(colIds: string[], completeCaseType: CaseDbCompleteCaseType): string[] {\n return [\n '_case_id',\n '_case_type',\n '_case_date',\n ...CaseDbDownloadUtil.getColsForImportExport(colIds, completeCaseType).map(col => col.label),\n ];\n }\n\n private static getColumnHeadersForImport(colIds: string[], completeCaseType: CaseDbCompleteCaseType): string[] {\n return [\n '_case_id',\n '_case_date',\n ...CaseDbDownloadUtil.getColsForImportExport(colIds, completeCaseType).map(col => col.label),\n ];\n }\n\n private static getRowsForExport(cases: CaseDbCase[], colIds: string[], completeCaseType: CaseDbCompleteCaseType): string[][] {\n const cols = CaseDbDownloadUtil.getColsForImportExport(colIds, completeCaseType);\n return cases.map(row => [\n row.id,\n completeCaseType.name,\n row.case_date ? format(row.case_date, DATE_FORMAT.DATE) : '',\n ...cols.map(col => CaseUtil.getRowValue(row.content, col, completeCaseType, true).long),\n ]);\n }\n}\n"],"x_google_ignoreList":[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78],"mappings":";;;;;;;;;;;;;;AAsBA,SAAwB,EAAiB,GAAO;CAC9C,OAAO,EAAS,CAAK,CAAC,CAAC,KAAK,SAAU,GAAY;EAChD,OAAO,EAAW;CACpB,CAAC;AACH;AACA,SAAS,EAAS,GAAO;CACvB,OAAO,IAAI,QAAQ,SAAU,GAAS,GAAQ;EAG5C,EAAI,GAAO,SAAU,GAAO,GAAS;GACnC,AAAI,IACF,EAAO,CAAK,IAEZ,EAAQ,CAAO;EAEnB,CAAC;CACH,CAAC;AACH;;;AC/BA,SAAwB,EAAiC,GAAO,GAAgC;CAC9F,IAAI,IAAiB,CAAC;CACtB,OAAO,QAAQ,IAAI,OAAO,KAAK,CAAK,CAAC,CAAC,IAAI,SAAU,GAAK;EACvD,IAAI,EAAM,cAAgB,YACxB,EAAe,KAAO,EAAM;OACvB,IAAI,OAAO,EAAM,MAAS,UAC/B,EAAe,KAAO,EAA0B,EAAM,EAAI;OAE1D,OAAO,EAA+B,EAAM,EAAI,CAAC,CAAC,KAAK,SAAU,GAAY;GAC3E,EAAe,KAAO;EACxB,CAAC;CAEL,CAAC,CAAC,CAAC,CAAC,KAAK,WAAY;EACnB,OAAO;CACT,CAAC;AACH;AACA,SAAS,EAA0B,GAAQ;CACzC,OAAO,EAAQ,CAAM;AACvB;;;AC1BA,SAASA,EAAgC,GAAG,GAAG;CAAE,IAAI,IAAmB,OAAO,SAAtB,OAAgC,EAAE,OAAO,aAAa,EAAE;CAAe,IAAI,GAAG,QAAQ,IAAI,EAAE,KAAK,CAAC,EAAA,CAAG,KAAK,KAAK,CAAC;CAAG,IAAI,MAAM,QAAQ,CAAC,MAAM,IAAIC,EAA4B,CAAC,MAAM,KAAK,KAAiB,OAAO,EAAE,UAArB,UAA6B;EAAE,MAAM,IAAI;EAAI,IAAI,IAAI;EAAG,OAAO,WAAY;GAAE,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,CAAC,EAAE,IAAI;IAAE,MAAM,CAAC;IAAG,OAAO,EAAE;GAAK;EAAG;CAAG;CAAE,MAAU,UAAU,uIAAuI;AAAG;AACziB,SAASA,EAA4B,GAAG,GAAG;CAAE,IAAI,GAAG;EAAE,IAAgB,OAAO,KAAnB,UAAsB,OAAOC,EAAkB,GAAG,CAAC;EAAG,IAAI,IAAI,CAAC,EAAE,SAAS,KAAK,CAAC,CAAC,CAAC,MAAM,GAAG,EAAE;EAAG,OAAoB,MAAb,YAAkB,EAAE,gBAAgB,IAAI,EAAE,YAAY,OAAiB,MAAV,SAAyB,MAAV,QAAc,MAAM,KAAK,CAAC,IAAoB,MAAhB,eAAqB,2CAA2C,KAAK,CAAC,IAAIA,EAAkB,GAAG,CAAC,IAAI,KAAK;CAAG;AAAE;AACzX,SAASA,EAAkB,GAAG,GAAG;CAAE,CAAS,KAAR,QAAa,IAAI,EAAE,YAAY,IAAI,EAAE;CAAS,KAAK,IAAI,IAAI,GAAG,IAAI,MAAM,CAAC,GAAG,IAAI,GAAG,KAAK,EAAE,KAAK,EAAE;CAAI,OAAO;AAAG;AAEnJ,SAAwB,EAAqB,GAAU,GAAU,GAAc,GAAY;CAEzF,KAAK,IADD,IAAU,IACL,IAAYF,EAAgC,CAAQ,GAAG,GAAO,EAAE,IAAQ,EAAU,EAAA,CAAG,OAAO;EACnG,IAAI,IAAU,EAAM,OAChB,IAAY,EAAQ,SAAS,EAAQ,MAAM,aAAa,EAAQ,MAAM,UAAU;EACpF,IAAI,KAAa,EAAU,QAAQ;GACjC,IAAI,IAAkB,EAAU,OAAO,GAAc,CAAU;GAC/D,AAAI,MACF,KAAW;EAEf;CACF;CACA,OAAO;AACT;;;ACjBA,SAASG,EAAgC,GAAG,GAAG;CAAE,IAAI,IAAmB,OAAO,SAAtB,OAAgC,EAAE,OAAO,aAAa,EAAE;CAAe,IAAI,GAAG,QAAQ,IAAI,EAAE,KAAK,CAAC,EAAA,CAAG,KAAK,KAAK,CAAC;CAAG,IAAI,MAAM,QAAQ,CAAC,MAAM,IAAIC,EAA4B,CAAC,MAAM,KAAK,KAAiB,OAAO,EAAE,UAArB,UAA6B;EAAE,MAAM,IAAI;EAAI,IAAI,IAAI;EAAG,OAAO,WAAY;GAAE,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,CAAC,EAAE,IAAI;IAAE,MAAM,CAAC;IAAG,OAAO,EAAE;GAAK;EAAG;CAAG;CAAE,MAAU,UAAU,uIAAuI;AAAG;AACziB,SAASA,EAA4B,GAAG,GAAG;CAAE,IAAI,GAAG;EAAE,IAAgB,OAAO,KAAnB,UAAsB,OAAOC,EAAkB,GAAG,CAAC;EAAG,IAAI,IAAI,CAAC,EAAE,SAAS,KAAK,CAAC,CAAC,CAAC,MAAM,GAAG,EAAE;EAAG,OAAoB,MAAb,YAAkB,EAAE,gBAAgB,IAAI,EAAE,YAAY,OAAiB,MAAV,SAAyB,MAAV,QAAc,MAAM,KAAK,CAAC,IAAoB,MAAhB,eAAqB,2CAA2C,KAAK,CAAC,IAAIA,EAAkB,GAAG,CAAC,IAAI,KAAK;CAAG;AAAE;AACzX,SAASA,EAAkB,GAAG,GAAG;CAAE,CAAS,KAAR,QAAa,IAAI,EAAE,YAAY,IAAI,EAAE;CAAS,KAAK,IAAI,IAAI,GAAG,IAAI,MAAM,CAAC,GAAG,IAAI,GAAG,KAAK,EAAE,KAAK,EAAE;CAAI,OAAO;AAAG;AAEnJ,SAAwB,EAAiB,GAAS,GAAU,GAAU,GAAc,GAAY;CAC9F,KAAK,IAAI,IAAYF,EAAgC,CAAQ,GAAG,GAAO,EAAE,IAAQ,EAAU,EAAA,CAAG,OAAO;EACnG,IAAI,IAAU,EAAM,OAChB,IAAY,EAAQ,SAAS,EAAQ,MAAM,aAAa,EAAQ,MAAM,UAAU;EACpF,AAAI,KAAa,EAAU,cACzB,IAAU,EAAU,UAAU,GAAS,GAAc,CAAU;CAEnE;CACA,OAAO;AACT;;;ACNA,SAAwB,EAA2B,GAAQ,GAAM;CAC/D,IAAI,IAAmB,EAAK;CAsB5B,OAVA,IAAS,EAAW,GAAQ,KAAK,OAAO,GACxC,IAAS,EAAW,GAAQ,KAAK,MAAM,GACvC,IAAS,EAAW,GAAQ,KAAK,MAAM,GAInC,MACF,IAAS,EAAW,GAAQ,KAAM,QAAQ,GAC1C,IAAS,EAAW,GAAQ,MAAK,QAAQ,IAEpC;AACT;AACA,SAAS,EAAW,GAAQ,GAAmB,GAAsB;CAQnE,OAPI,EAAO,aACF,EAAO,WAAW,GAAmB,CAAoB,IAM3D,EAAO,QAAQ,IAAI,OAAO,GAAmB,GAAG,GAAG,CAAoB;AAChF;;;ACzCA,IAAI,KAAqB,8HACrB,KAAyB,gBAAI,OAAO,uqBAAuqB,GAAG;AASltB,SAAwB,EAA2B,GAAQ;CASzD,OANA,IAAS,EAAO,QAAQ,IAAoB,EAAE,GAK9C,IAAS,EAAO,QAAQ,IAAwB,EAAE,GAC3C;AACT;;;ACZA,SAAwB,EAAuB,GAAgB;CAC7D,IAAI,OAAO,KAAmB,UAC5B,MAAU,UAAU,2BAA2B;CAKjD,OAFA,IAAiB,EAA2B,CAAc,GAEnD,EAA2B,GAAgB,EAChD,kBAAkB,GACpB,CAAC;AACH;;;ACXA,SAAwB,GAAsB,GAAe;CAC3D,IAAI,OAAO,KAAkB,UAC3B,MAAU,UAAU,2BAA2B;CAKjD,OAFA,IAAgB,EAA2B,CAAa,GAEjD,EAAc,QAAQ,qBAAqB,EAAE,CAAC,CAAC,QAAQ,gBAAgB,EAAE;AAClF;;;ACJA,SAAwB,GAAoB,GAAY;CACtD,OAAO,OAAO,KAAK,CAAU,CAAC,CAAC,IAAI,SAAU,GAAM;EACjD,OAAO,GAAU,GAAsB,CAAI,MAAiB,EAAuB,OAAO,EAAW,EAAK,CAAC;CAC7G,CAAC,CAAC,CAAC,OAAO,SAAU,GAAU,GAAM;EAClC,OAAO,IAAW,MAAM;CAC1B,GAAG,EAAE;AACP;;;ACTA,SAAwB,EAAoB,GAAS,GAAY;CAC/D,OAAO,MAAM,KAAW,IAAa,GAAoB,CAAU,IAAI,MAAM;AAC/E;;;ACLA,SAAwB,EAAoB,GAAS;CACnD,OAAO,OAAO,IAAU;AAC1B;;;ACCA,SAAwB,EAAwB,GAAS,GAAY;CACnE,OAAO,EAAoB,GAAS,CAAU,CAAC,CAAC,MAAM,GAAG,EAAE,IAAI;AACjE;;;ACVA,SAASG,GAAgC,GAAG,GAAG;CAAE,IAAI,IAAmB,OAAO,SAAtB,OAAgC,EAAE,OAAO,aAAa,EAAE;CAAe,IAAI,GAAG,QAAQ,IAAI,EAAE,KAAK,CAAC,EAAA,CAAG,KAAK,KAAK,CAAC;CAAG,IAAI,MAAM,QAAQ,CAAC,MAAM,IAAIC,EAA4B,CAAC,MAAM,KAAK,KAAiB,OAAO,EAAE,UAArB,UAA6B;EAAE,MAAM,IAAI;EAAI,IAAI,IAAI;EAAG,OAAO,WAAY;GAAE,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,CAAC,EAAE,IAAI;IAAE,MAAM,CAAC;IAAG,OAAO,EAAE;GAAK;EAAG;CAAG;CAAE,MAAU,UAAU,uIAAuI;AAAG;AACziB,SAASA,EAA4B,GAAG,GAAG;CAAE,IAAI,GAAG;EAAE,IAAgB,OAAO,KAAnB,UAAsB,OAAOC,GAAkB,GAAG,CAAC;EAAG,IAAI,IAAI,CAAC,EAAE,SAAS,KAAK,CAAC,CAAC,CAAC,MAAM,GAAG,EAAE;EAAG,OAAoB,MAAb,YAAkB,EAAE,gBAAgB,IAAI,EAAE,YAAY,OAAiB,MAAV,SAAyB,MAAV,QAAc,MAAM,KAAK,CAAC,IAAoB,MAAhB,eAAqB,2CAA2C,KAAK,CAAC,IAAIA,GAAkB,GAAG,CAAC,IAAI,KAAK;CAAG;AAAE;AACzX,SAASA,GAAkB,GAAG,GAAG;CAAE,CAAS,KAAR,QAAa,IAAI,EAAE,YAAY,IAAI,EAAE;CAAS,KAAK,IAAI,IAAI,GAAG,IAAI,MAAM,CAAC,GAAG,IAAI,GAAG,KAAK,EAAE,KAAK,EAAE;CAAI,OAAO;AAAG;AAInJ,SAAwB,GAAc,GAAU,GAAS,GAEzD,GAEA,GAEA,GAAY,GAA6B,GAAU;CACjD,KAAK,IAAI,IAAYF,GAAgC,CAAQ,GAAG,GAAO,EAAE,IAAQ,EAAU,EAAA,CAAG,OAAO;EACnG,IAAI,IAAU,EAAM,OAChB,IAAY,EAAQ,SAAS,EAAQ,MAAM,aAAa,EAAQ,MAAM,UAAU;EACpF,AAAI,KAAa,EAAU,+BACzB,IAAa,EAAU,2BAA2B,GAAS,KAAc,IAAe,GAAO,GAA6B,CAAU;CAE1I;CAIE,OAHE,IACK,EAAoB,GAAS,CAAU,IAAI,IAAW,EAAoB,CAAO,IAEjF,EAAwB,GAAS,CAAU;AAEtD;AACA,IAAI,KAAgB,CAAC;;;ACtBrB,SAAwB,GAAoB,GAAM;CAChD,IAAI,IAAmB,EAAK,kBAC1B,IAAW,EAAK,UAChB,IAAgB,EAAK,eASnB,IAAM,SAAa,GAAS,GAAY,GAAU,GAAO;EAC3D,OAAO,GAAc,mBAAmB,GAAS,GAAY,GAAU,GAAO,IAAc,GAAe,CAAQ;CACrH,GACI,IAAM,snBAIV,EAAI,YAAY,IAEhB,EAAI,aAAa,MAAM,EAAI,gBAAgB,MAAM,MAAM,CAAC,CAAC,IAEzD,EAAI,UAAU,MAAM,EAAiB,IAAI,SAAU,GAAO,GAAG;EAC3D,IAAI,IAAU,EAAM,SAClB,IAAY,EAAM;EACpB,OAAO,EAAI,SAAS;GAClB,QAAQ,MAAa;GACZ;GACT,MAAM;EACR,GAAG,MAAM,CAAC;CACZ,CAAC,CAAC,CAAC,KAAK,EAAE,CAAC,IAEX,EAAI,cAAc,IAElB,EAAI,QAAQ,IAEZ,EAAqB,mBAAmB,GAAU,CAAa,IAAI;CAInE,OADA,IAAM,EAAiB,GAAK,mBAAmB,GAAU,CAAa,GAC/D;AACT;AACA,IAAI,KAAe,CAAC;;;AC7CpB,SAAwB,EAAwB,GAAM;CACpD,IAAI,IAAW,EAAK,UAClB,IAAW,EAAK,UAChB,IAAgB,EAAK,eACnB,IAAM,mHAAoH,EAAS,IAAI,SAAU,GAAI;EACvJ,OAAO,wBAAgC,mHAAkI;CAC3K,CAAC,CAAC,CAAC,KAAK,EAAE,IAAI,wBAAgC,EAAS,SAAS,gJAAqK,EAAS,SAAS,+GAEvP,EAAqB,8BAA8B,GAAU,CAAa,IAAI;CAI9E,OADA,IAAM,EAAiB,GAAK,8BAA8B,GAAU,CAAa,GAC1E;AACT;;;ACbA,SAAwB,GAAgB,GAAM;CAC5C,IAAI,IAAW,EAAK,UAClB,IAAgB,EAAK,eACnB,IAAM,oTAEV,EAAqB,eAAe,GAAU,CAAa,IAAI;CAI/D,OADA,IAAM,EAAiB,GAAK,eAAe,GAAU,CAAa,GAC3D;AACT;;;ACVA,SAAwB,GAAwB,GAAM;CACpD,IAAI,IAAW,EAAK,UAClB,IAAW,EAAK,UAChB,IAAgB,EAAK,eACnB,IAAM,gsBAAksB,EAAS,IAAI,SAAU,GAAS;EAC1uB,OAAO,mIAA6I;CACtJ,CAAC,CAAC,CAAC,KAAK,EAAE,IAAI,EAAS,IAAI,SAAU,GAAS;EAC5C,OAAO,GAAyB,CAAO;CACzC,CAAC,CAAC,CAAC,KAAK,EAAE,IAEV,EAAqB,uBAAuB,GAAU,CAAa,IAAI;CAIvE,OADA,IAAM,EAAiB,GAAK,uBAAuB,GAAU,CAAa,GACnE;AACT;AACA,SAAgB,GAAyB,GAAS;CAChD,OAAO,mHAA6H;AACtI;;;AChBA,SAAwB,GAAmB,GAAM;CAC/C,IAAI,IAAa,EAAK,YACpB,IAAU,EAAK,SACf,IAAe,EAAK,cACpB,IAAW,EAAK,UACd,IAAM,KAEV,EAAqB,+BAA+B,GAAU,GAAc;EAC9D;EACH;CACX,CAAC,IAAI;CAOL,OAJA,IAAM,EAAiB,GAAK,+BAA+B,GAAU,GAAc;EACrE;EACH;CACX,CAAC,GACM;AACT;AACA,IAAW,KAAoB,+NACpB,KAAkB;;;ACtB7B,SAAwB,GAAuB,GAAM;CACnD,IAAI,IAAa,EAAK,YACpB,IAAU,EAAK,SACf,IAAe,EAAK,cACpB,IAAW,EAAK,UACd,IAAM,wJAEV,EAAqB,0CAA0C,GAAU,GAAc;EACzE;EACH;CACX,CAAC,IAAI;CAOL,OAJA,IAAM,EAAiB,GAAK,0CAA0C,GAAU,GAAc;EAChF;EACH;CACX,CAAC,GACM;AACT;;;ACnBA,SAAwB,GAAmB,GAAK,GAAgB,GAAY;CAC1E,IAAI,CAAC,GAAQ,CAAc,GACzB,OAAO;CAET,IAAI,IAAgB,EAAe,eACjC,IAAc,EAAe,aAC7B,IAAY,EAAe,WACzB,IAAsB;EACxB,aAAa,QAAe;EAE5B,gBAAgB;CAClB;CAgBA,OAfI,MAAkB,OACpB,EAAoB,gBAAgB,KAElC,MACF,EAAoB,cAAc,IAEhC,OAAO,KAAc,aAMvB,EAAoB,YAAY,KAAK,MAAM,IAAY,GAAG,IAGrD,EAAI,cAAc,MADN,EAAI,aAAa,GAAqB,MAAM,CACrB,CAAC;AAC7C;AACA,SAAS,GAAQ,GAAM;CACrB,IAAI,IAAgB,EAAK,eACvB,IAAc,EAAK,aACnB,IAAY,EAAK;CACnB,OAAO,MAAkB,MAAS,KAAe,OAAO,KAAc;AACxE;;;ACjCA,SAAwB,GAA0B,GAAK,GAAQ,GAAO;CAMpE,IAAI,CAAC,GACH,OAAO;CAIT,IAAI,IAAQ,EAAO;CAInB,IAAI,CAAC,GACH,OAAO;CAIT,IAAI,IAAe,IAAQ;CAc3B,OAAO,EAAI,OAAO;EALhB,KAAK;EACL,KAAK;EACE;EACP,aAAa;CAEY,GAAG,MAAM,CAAK;AAC3C;;;ACpCA,SAAwB,GAA2B,GAAK,GAAS;CAE/D,IAAI,GAAS;EAGX,IAAI,IAAa,EAAQ,IAAI,SAAU,GAAQ,GAAO;GACpD,OAAO,GAA0B,GAAK,GAAQ,CAAK;EACrD,CAAC,CAAC,CAAC,KAAK,EAAE;EAKV,IAAI,GACF,OAAO,EAAI,QAAQ,MAAM,CAAU;CAEvC;CAKA,OAAO;AACT;;;ACdA,SAAwB,EAAoB,GAAa;CACvD,IAAI,OAAO,KAAgB,UACzB,MAAU,UAAU,2BAA2B;CAKjD,OAFA,IAAc,EAA2B,CAAW,GAE7C,EAA2B,GAAa,EAC7C,kBAAkB,GACpB,CAAC;AACH;;;ACZA,SAAwB,EAAe,GAAU,GAAa;CAC5D,OAAO,GAAU,GAAgB,CAAW,IAAU,IAAW;AACnE;AAGA,IAAI,KAAgB;AACpB,SAAS,GAAgB,GAAa;CACpC,IAAI,OAAO,KAAgB,UACzB,OAAO;CAET,IAAI,IAAS,KAAK,MAAM,IAAc,EAAa,GAE/C,IAAS,OAAO,aAAa,KAAK,IAAc,EAAa,CAAC,CAAC,YAAY;CAI/E,OAHI,MAAW,IACN,IAEF,GAAgB,IAAS,CAAC,IAAI;AACvC;;;ACdA,IAAI,KAAsB,OAKtB,KAAM;AAOV,SAAwB,GAA0B,GAAM;CACtD,OAAO,EAAK,QAAQ,IAAI,KAAM;AAChC;;;ACvBA,SAASG,GAAe,GAAG,GAAG;CAAE,OAAOC,GAAgB,CAAC,KAAKC,GAAsB,GAAG,CAAC,KAAKC,GAA4B,GAAG,CAAC,KAAKC,GAAiB;AAAG;AACrJ,SAASA,KAAmB;CAAE,MAAU,UAAU,2IAA2I;AAAG;AAChM,SAASD,GAA4B,GAAG,GAAG;CAAE,IAAI,GAAG;EAAE,IAAgB,OAAO,KAAnB,UAAsB,OAAOE,GAAkB,GAAG,CAAC;EAAG,IAAI,IAAI,CAAC,EAAE,SAAS,KAAK,CAAC,CAAC,CAAC,MAAM,GAAG,EAAE;EAAG,OAAoB,MAAb,YAAkB,EAAE,gBAAgB,IAAI,EAAE,YAAY,OAAiB,MAAV,SAAyB,MAAV,QAAc,MAAM,KAAK,CAAC,IAAoB,MAAhB,eAAqB,2CAA2C,KAAK,CAAC,IAAIA,GAAkB,GAAG,CAAC,IAAI,KAAK;CAAG;AAAE;AACzX,SAASA,GAAkB,GAAG,GAAG;CAAE,CAAS,KAAR,QAAa,IAAI,EAAE,YAAY,IAAI,EAAE;CAAS,KAAK,IAAI,IAAI,GAAG,IAAI,MAAM,CAAC,GAAG,IAAI,GAAG,KAAK,EAAE,KAAK,EAAE;CAAI,OAAO;AAAG;AACnJ,SAASH,GAAsB,GAAG,GAAG;CAAE,IAAI,IAAY,KAAR,OAAY,OAAsB,OAAO,SAAtB,OAAgC,EAAE,OAAO,aAAa,EAAE;CAAe,IAAY,KAAR,MAAW;EAAE,IAAI,GAAG,GAAG,GAAG,GAAG,IAAI,CAAC,GAAG,IAAI,CAAC,GAAG,IAAI,CAAC;EAAG,IAAI;GAAE,IAAI,KAAK,IAAI,EAAE,KAAK,CAAC,EAAA,CAAG,MAAY,MAAN,GAAS;IAAE,IAAI,OAAO,CAAC,MAAM,GAAG;IAAQ,IAAI,CAAC;GAAG,OAAO,OAAO,EAAE,KAAK,IAAI,EAAE,KAAK,CAAC,EAAA,CAAG,UAAU,EAAE,KAAK,EAAE,KAAK,GAAG,EAAE,WAAW,IAAI,IAAI,CAAC;EAAI,SAAS,GAAG;GAAE,IAAI,CAAC,GAAG,IAAI;EAAG,UAAU;GAAE,IAAI;IAAE,IAAI,CAAC,KAAa,EAAE,UAAV,SAAwB,IAAI,EAAE,OAAU,GAAG,OAAO,CAAC,MAAM,IAAI;GAAQ,UAAU;IAAE,IAAI,GAAG,MAAM;GAAG;EAAE;EAAE,OAAO;CAAG;AAAE;AACzhB,SAASD,GAAgB,GAAG;CAAE,IAAI,MAAM,QAAQ,CAAC,GAAG,OAAO;AAAG;AAI9D,SAAwB,GAAa,GAAK,GAAM,GAAO,GAAU;CAC/D,IAAI,IAAQ,EAAK,OACf,IAAO,EAAK,MACZ,IAAc,EAAK,aACnB,IAA2B,EAAK;CAIlC,IAAI,MAAU,QACR,MAAgB,KAAA,GAClB,OAAO;CAGX,IAAI,IAAiB,EACnB,GAAG,EAAe,GAAU,CAAK,EACnC;CAUA,IAJI,MAAgB,KAAA,MAElB,EAAe,IAAI,OAAO,CAAW,IAEnC,MAAU,MACZ,OAAO,EAAI,KAAK,GAAgB,MAAM,CAAK;CAI7C,IAAI,MAAS,QAAQ,MAAgB,KAAA,GACnC,MAAU,MAAM,qEAAwE,IAAW,YAAsB,IAAQ,+IAA4I;CAE/Q,IAAI,IAAmB,GAAoB,GAAM,GAAO,CAAwB,GAC5E,IAAgB,GAAiB,CAAI;CAGzC,AAAI,MACF,EAAe,IAAI;CAErB,IACE,IAAyBD,GADC,GAAyB,CACS,GAAG,CAAC,GAChE,IAAmB,EAAuB,IAC1C,IAAmB,EAAuB;CAE5C,OAAO,EAAI,KAAK,GADF,IAAmB,IAAmB,GACX,CAAK;AAChD;AACA,SAAS,GAAiB,GAAM;CAO9B,QAAQ,GAAR;EACE,KAAK,QACH,OAAO;EAMT,KAAK,QAGH;EACF,KAAK,MAGH;EACF,KAAK,SACH,OAAO;EACT,KAAK,WACH;EACF,SACE,MAAU,MAAM,iBAAwB,KAAQ,EAAK,QAAQ,GAAK;CACtE;AACF;AACA,SAAS,GAAoB,GAAM,GAAO,GAA0B;CAOlE,QAAQ,GAAR;EACE,KAAK;GACH,IAAI,OAAO,KAAU,UACnB,MAAU,MAAM,uBAA8B,sBAA6B;GAE7E,OAAO,EAAyB,CAAK;EACvC,KAAK;GACH,IAAI,OAAO,KAAU,UACnB,MAAU,MAAM,uBAA8B,sBAA6B;GAE7E,OAAO,OAAO,CAAK;EACrB,KAAK;GACH,IAAI,EAAE,aAAiB,OACrB,MAAU,MAAM,uBAA8B,oBAA2B;GAI3E,OAAO,OAAO,GAA0B,CAAK,CAAC;EAChD,KAAK;GACH,IAAI,OAAO,KAAU,WACnB,MAAU,MAAM,uBAA8B,uBAA8B;GAE9E,OAAO,IAAQ,MAAM;EACvB,KAAK;GACH,IAAI,OAAO,KAAU,UACnB,MAAU,MAAM,uBAA8B,sBAA6B;GAE7E,OAAO,EAAoB,CAAK;EAClC,SACE,MAAU,MAAM,iBAAwB,KAAQ,EAAK,QAAQ,GAAK;CACtE;AACF;AACA,IAAI,KAA0B;AAC9B,SAAS,GAAyB,GAAM;CACtC,IAAI,IAAc,GAAe,CAAI;CAErC,OAAO,CAAC,GADU,EAAY,QAAQ,IAAyB,IAChC,CAAC;AAClC;AACA,SAAS,GAAe,GAAM;CAC5B,QAAQ,GAAR;EAGE,KAAK,WACH,OAAO;EACT,SACE,OAAO;CACX;AACF;;;AC7IA,SAAwB,GAAa,GAAM;CACzC,IAAI,IAAQ,EAAK,OACf,IAAgB,EAAK,eACrB,IAAe,EAAK,cACpB,IAAS,EAAK,QACd,IAAO,EAAK;CACd,OAAO,GAAQ,KAAS,KAAiB,OAAO,KAAiB,YAAY,KAAU;AACzF;;;ACPA,SAAwB,GAAU,GAAM;CACtC,IAAI,IAAc,EAAK,aACrB,IAAc,EAAK,aACnB,IAAkB,EAAK,iBACvB,IAAkB,EAAK,iBACvB,IAAmB,EAAK,kBACxB,IAAmB,EAAK,kBACxB,IAAiB,EAAK,gBACtB,IAAiB,EAAK,gBACtB,IAAoB,EAAK,mBACzB,IAAoB,EAAK;CAC3B,OAAO,GAAQ,KAAe,KAAe,KAAmB,KAAmB,KAAoB,KAAoB,KAAkB,KAAkB,KAAqB;AACtL;;;ACZA,SAAwB,EAAQ,GAAM;CACpC,IAAI,IAAkB,EAAK,iBACzB,IAAmB,EAAK,kBACxB,IAAmB,EAAK;CAC1B,OAAO,GAAQ,KAAmB,KAAoB;AACxD;;;ACLA,SAAwB,GAAQ,GAAM;CACpC,IAAI,IAAa,EAAK,YACpB,IAAW,EAAK,UAChB,IAAa,EAAK,YAClB,IAAY,EAAK,WACjB,IAAiB,EAAK,gBACtB,IAAY,EAAK;CACnB,OAAO,GAAQ,KAAc,OAAO,KAAa,YAAY,KAAc,KAAa,KAAkB,OAAO,KAAK,CAAc,CAAC,CAAC,SAAS,KAAK;AACtJ;;;ACJA,SAAwB,GAAuB,GAAM,GAAU;CAC7D,IAAI,IAAQ,EAAK,OACf,IAAgB,EAAK,eACrB,IAAe,EAAK,cACpB,IAAS,EAAK,QACd,IAAO,EAAK,MACZ,IAAa,EAAK,YAClB,IAAW,EAAK,UAChB,IAAa,EAAK,YAClB,IAAY,EAAK,WACjB,IAAiB,EAAK,gBACtB,IAAY,EAAK,WACjB,IAAkB,EAAK,iBACvB,IAAmB,EAAK,kBACxB,IAAmB,EAAK,kBACxB,IAAc,EAAK,aACnB,IAAc,EAAK,aACnB,IAAkB,EAAK,iBACvB,IAAkB,EAAK,iBACvB,IAAmB,EAAK,kBACxB,IAAmB,EAAK,kBACxB,IAAiB,EAAK,gBACtB,IAAiB,EAAK,gBACtB,IAAoB,EAAK,mBACzB,IAAoB,EAAK;CAC3B,IAAI,GAAa;EACR;EACQ;EACD;EACN;EACF;CACR,CAAC,KAAK,GAAQ;EACA;EACF;EACE;EACD;EACK;EACL;CACb,CAAC,KAAK,EAAQ;EACK;EACC;EACA;CACpB,CAAC,KAAK,GAAU;EACD;EACA;EACI;EACA;EACC;EACA;EACF;EACA;EACG;EACA;CACrB,CAAC,GACC,OAAO,GAAwB;EAEtB;EACQ;EACD;EACN;EACF;EAEM;EACF;EACE;EACD;EACK;EACL;EAEM;EACC;EACA;EAEL;EACA;EACI;EACA;EACC;EACA;EACF;EACA;EACG;EACA;CACrB,CAAC;AAEL;AACA,SAAS,GAAwB,GAAQ;CACvC,IAAI,IAAiB,CAAC;CACtB,KAAK,IAAI,KAAO,GACd,AAAI,EAAO,OAAS,KAAA,MAClB,EAAe,KAAO,EAAO;CAGjC,OAAO;AACT;;;AClGA,IAAI,KAAoB,CAAC,EAAE;AAC3B,SAAwB,EAAS,GAAQ;CACvC,OAAO,KAAmC,QAAQ,EAAO,gBAAgB;AAC3E;;;ACKA,SAAwB,GAAa,GAAM;CAEzC,OAAO,EAAS,CAAI;AACtB;;;ACXA,SAASM,EAAQ,GAAG;CAAE;CAA2B,OAAO,IAAwB,OAAO,UAArB,cAA2C,OAAO,OAAO,YAA1B,WAAqC,SAAU,GAAG;EAAE,OAAO,OAAO;CAAG,IAAI,SAAU,GAAG;EAAE,OAAO,KAAmB,OAAO,UAArB,cAA+B,EAAE,gBAAgB,UAAU,MAAM,OAAO,YAAY,WAAW,OAAO;CAAG,GAAGA,EAAQ,CAAC;AAAG;AAC7T,SAASC,GAAQ,GAAG,GAAG;CAAE,IAAI,IAAI,OAAO,KAAK,CAAC;CAAG,IAAI,OAAO,uBAAuB;EAAE,IAAI,IAAI,OAAO,sBAAsB,CAAC;EAAG,MAAM,IAAI,EAAE,OAAO,SAAU,GAAG;GAAE,OAAO,OAAO,yBAAyB,GAAG,CAAC,CAAC,CAAC;EAAY,CAAC,IAAI,EAAE,KAAK,MAAM,GAAG,CAAC;CAAG;CAAE,OAAO;AAAG;AAC9P,SAASC,GAAc,GAAG;CAAE,KAAK,IAAI,IAAI,GAAG,IAAI,UAAU,QAAQ,KAAK;EAAE,IAAI,IAAY,UAAU,MAAlB,OAAsC,CAAC,IAAhB,UAAU;EAAS,IAAI,IAAID,GAAQ,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,QAAQ,SAAU,GAAG;GAAE,GAAgB,GAAG,GAAG,EAAE,EAAE;EAAG,CAAC,IAAI,OAAO,4BAA4B,OAAO,iBAAiB,GAAG,OAAO,0BAA0B,CAAC,CAAC,IAAIA,GAAQ,OAAO,CAAC,CAAC,CAAC,CAAC,QAAQ,SAAU,GAAG;GAAE,OAAO,eAAe,GAAG,GAAG,OAAO,yBAAyB,GAAG,CAAC,CAAC;EAAG,CAAC;CAAG;CAAE,OAAO;AAAG;AACtb,SAASE,GAAgB,GAAG,GAAG,GAAG;CAAE,QAAQ,IAAIC,GAAe,CAAC,MAAM,IAAI,OAAO,eAAe,GAAG,GAAG;EAAE,OAAO;EAAG,YAAY,CAAC;EAAG,cAAc,CAAC;EAAG,UAAU,CAAC;CAAE,CAAC,IAAI,EAAE,KAAK,GAAG;AAAG;AACnL,SAASA,GAAe,GAAG;CAAE,IAAI,IAAIC,GAAa,GAAG,QAAQ;CAAG,OAAmBL,EAAQ,CAAC,KAArB,WAAyB,IAAI,IAAI;AAAI;AAC5G,SAASK,GAAa,GAAG,GAAG;CAAE,IAAgBL,EAAQ,CAAC,KAArB,YAA0B,CAAC,GAAG,OAAO;CAAG,IAAI,IAAI,EAAE,OAAO;CAAc,IAAe,MAAX,KAAK,GAAS;EAAE,IAAI,IAAI,EAAE,KAAK,GAAG,KAAK,SAAS;EAAG,IAAgBA,EAAQ,CAAC,KAArB,UAAwB,OAAO;EAAG,MAAU,UAAU,8CAA8C;CAAG;CAAE,QAAqB,MAAb,WAAiB,SAAS,OAAA,CAAQ,CAAC;AAAG;AAC3T,SAASM,GAAgC,GAAG,GAAG;CAAE,IAAI,IAAmB,OAAO,SAAtB,OAAgC,EAAE,OAAO,aAAa,EAAE;CAAe,IAAI,GAAG,QAAQ,IAAI,EAAE,KAAK,CAAC,EAAA,CAAG,KAAK,KAAK,CAAC;CAAG,IAAI,MAAM,QAAQ,CAAC,MAAM,IAAIC,GAA4B,CAAC,MAAM,KAAK,KAAiB,OAAO,EAAE,UAArB,UAA6B;EAAE,MAAM,IAAI;EAAI,IAAI,IAAI;EAAG,OAAO,WAAY;GAAE,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,CAAC,EAAE,IAAI;IAAE,MAAM,CAAC;IAAG,OAAO,EAAE;GAAK;EAAG;CAAG;CAAE,MAAU,UAAU,uIAAuI;AAAG;AACziB,SAASA,GAA4B,GAAG,GAAG;CAAE,IAAI,GAAG;EAAE,IAAgB,OAAO,KAAnB,UAAsB,OAAOC,GAAkB,GAAG,CAAC;EAAG,IAAI,IAAI,CAAC,EAAE,SAAS,KAAK,CAAC,CAAC,CAAC,MAAM,GAAG,EAAE;EAAG,OAAoB,MAAb,YAAkB,EAAE,gBAAgB,IAAI,EAAE,YAAY,OAAiB,MAAV,SAAyB,MAAV,QAAc,MAAM,KAAK,CAAC,IAAoB,MAAhB,eAAqB,2CAA2C,KAAK,CAAC,IAAIA,GAAkB,GAAG,CAAC,IAAI,KAAK;CAAG;AAAE;AACzX,SAASA,GAAkB,GAAG,GAAG;CAAE,CAAS,KAAR,QAAa,IAAI,EAAE,YAAY,IAAI,EAAE;CAAS,KAAK,IAAI,IAAI,GAAG,IAAI,MAAM,CAAC,GAAG,IAAI,GAAG,KAAK,EAAE,KAAK,EAAE;CAAI,OAAO;AAAG;AAInJ,SAAwB,GAAY,GAAK,GAAK,GAAO,GAAY;CAG/D,KAAK,IADD,GACK,IAAYF,GAAgC,CAAG,GAAG,GAAO,EAAE,IAAQ,EAAU,EAAA,CAAG,OAAO;EAC9F,IAAI,IAAO,EAAM;EACjB,AAAI,GAAa,CAAI,KACf,EAAK,WACH,MAAc,KAAA,KAAa,IAAY,EAAK,YAC9C,IAAY,EAAK;CAIzB;CAGA,IAAI,IAAW,GACX,IAAc,EAAI,IAAI,SAAU,GAAM,GAAO;EAC/C,OAAO,GAAW,GAAK,GAAM,GAAO,GAAU,CAAU;CAC1D,CAAC,CAAC,CAAC,KAAK,EAAE,GACN,IAAgB,EAClB,GAAG,IAAQ,EACb;CAKA,OAJI,MACF,EAAc,KAAK,GACnB,EAAc,eAAe,IAExB,EAAI,OAAO,GAAe,GAAa,CAAK;AACrD;AACA,SAAS,GAAW,GAAK,GAAM,GAAO,GAAU,GAAM;CACpD,IAAI,IAAwB,EAAK,uBAC/B,IAA2B,EAAK,0BAChC,IAAiB,EAAK,gBACtB,IAAa,EAAK,YAClB,IAAW,EAAK;CAClB,IAAI,KAA+B,MACjC,OAAO;CAET,IAAI,IAAa,GAAa,CAAI,IAAI,IAAO,EAC3C,OAAO,EACT,GACI,IAAsB,GAAuB,GAAY,CAAQ,GACjE,IAAO,EAAW,MACpB,IAAQ,EAAW,OACnB,IAAS,EAAW;CAgBtB,IAfI,GAAQ,CAAK,IACf,IAAQ,OAGJ,MAAS,KAAA,MACX,IAAO,GAAgB,CAAK,GACxB,MAAS,KAAA,MAEX,IAAO,QACP,IAAQ,OAAO,CAAK,KAMtB,GAAQ;EACV,IAAI,MAAS,QAAQ,MAAS,UAAU,MAAS,UAAU,MAAS,WAClE,MAAU,MAAM,eAAqB,wCAAuD,8GAA2G;EAEzM,IAAI,MAAS,UAAU,MAAW,KAChC,MAAU,MAAM,eAAqB,oHAAyH;CAElK,OACE,AAAI,MAAS,SACX,IAAS;CAGb,IAAI,IAAY,EAAQ,GACpB,IAAe,EAAQ,GACvB;CAMJ,QALI,KAAkB,KAAa,OACjC,IAAc,EAAsBJ,GAAc,EACxC,UACV,GAAG,CAAmB,CAAC,IAElB,GAAa,GAAK;EAChB;EACD;EACO;EACa;CAC5B,GAAG,GAAO,CAAQ;AACpB;AACA,SAAS,GAAQ,GAAO;CACtB,OAAO,KAAiC,QAAQ,MAAU;AAC5D;AACA,SAAS,GAAgB,GAAO;CAC9B,QAAQF,EAAQ,CAAK,GAArB;EACE,KAAK,UACH,OAAO;EACT,KAAK,UACH,OAAO;EACT,KAAK,WACH,OAAO;EACT,SACE,IAAI,aAAiB,MACnB,OAAO;CAEb;AACF;;;ACjHA,SAAwB,GAAkB,GAAK,GAAW,GAAY;CAIpE,OAAO,EAAI,aAAa,MAHL,EAAU,IAAI,SAAU,GAAK,GAAO;EACrD,OAAO,GAAY,GAAK,GAAK,GAAO,CAAU;CAChD,CAAC,CAAC,CAAC,KAAK,EACiC,CAAC;AAC5C;;;ACeA,SAAwB,GAAmB,GAAW,GAAU;CAoB9D,KAnBA,IAAI,IAAc,CAAC,GACf,IAAkB,WAA0B;EAG9C,IAAY,EAAU,MAAM;EAG5B,KADA,IAAI,IAAI,GACD,IAAI,EAAU,SAEnB,AADA,EAAU,KAAK,EAAU,EAAE,CAAC,MAAM,GAClC;EAOF,OAJA,IAAkB,WAA0B;GAC1C,OAAO;EACT,GAEO;CACT,GACI,IAAW,GACR,IAAW,EAAU,SAAQ;EAGlC,KAFA,IAAI,IAAM,EAAU,IAChB,IAAc,GACX,IAAc,EAAI,SAAQ;GAC/B,IAAI,IAAO,EAAI;GACf,IAAI,GAAM;IACR,IAAI,IAAgB,EAAK,SACvB,IAAU,MAAkB,KAAK,IAAI,IAAI,GAGvC,IAAa,OAAO,EAAK,QAAS,WAAW,EAAK,OAAO,EAAK;IAIlE,AAHI,OAAO,KAAe,aACxB,IAAa,KAEX,IAAa,KAAK,IAAU,OAI9B,GAAqB,GAAW,GAAU,GAAa,GAAY,GAAS,GAAiB,CAAQ,GAIrG,EAAY,KAAK,CAAC,CAAC,GAAU,CAAW,GAAG,CAAC,KAAY,IAAU,IAAU,IAAI,IAAI,KAAe,IAAa,IAAa,IAAI,EAAE,CAAC,CAAC;GAEzI;GACA;EACF;EACA;CACF;CACA,OAAO;EACM;EACE;CACf;AACF;AAQA,SAAS,GAAqB,GAAW,GAAU,GAAa,GAAY,GAAS,GAAgB,GAAU;CAC7G,IAAI,IAAsB,GAAuB,EAAU,EAAS,CAAC,IAAc,CAAQ;CAC3F,AAAI,MACF,IAAY,EAAe;CAG7B,KADA,IAAI,IAAI,GACD,KAAK,KAAY,IAAU,KAAI;EAEpC,KADA,IAAI,IAAI,GACD,KAAK,KAAe,IAAa,KAAI;GAC1C,IAAI,IAAO,EAAU,EAAE,CAAC;GACxB,IAAI,IAAI,KAAY,IAAI,GAAa;IAEnC,IAAI,KAAS,MACX,MAAU,MAAM,yKAAwK,IAAW,gBAA0B,IAAc,uCAA+C,qBAAsC,kBAAkC,IAAI,gBAA0B,IAAI,4CAAkD,KAAK,UAAU,CAAI,GAAE;IAI7c,AAAI,MACF,EAAU,EAAE,CAAC,KAAK;GAEtB;GACA;EACF;EACA;CACF;AACF;;;AC3GA,SAAS,GAAe,GAAG,GAAG;CAAE,OAAO,GAAgB,CAAC,KAAK,GAAsB,GAAG,CAAC,KAAKS,GAA4B,GAAG,CAAC,KAAK,GAAiB;AAAG;AACrJ,SAAS,KAAmB;CAAE,MAAU,UAAU,2IAA2I;AAAG;AAChM,SAASA,GAA4B,GAAG,GAAG;CAAE,IAAI,GAAG;EAAE,IAAgB,OAAO,KAAnB,UAAsB,OAAOC,GAAkB,GAAG,CAAC;EAAG,IAAI,IAAI,CAAC,EAAE,SAAS,KAAK,CAAC,CAAC,CAAC,MAAM,GAAG,EAAE;EAAG,OAAoB,MAAb,YAAkB,EAAE,gBAAgB,IAAI,EAAE,YAAY,OAAiB,MAAV,SAAyB,MAAV,QAAc,MAAM,KAAK,CAAC,IAAoB,MAAhB,eAAqB,2CAA2C,KAAK,CAAC,IAAIA,GAAkB,GAAG,CAAC,IAAI,KAAK;CAAG;AAAE;AACzX,SAASA,GAAkB,GAAG,GAAG;CAAE,CAAS,KAAR,QAAa,IAAI,EAAE,YAAY,IAAI,EAAE;CAAS,KAAK,IAAI,IAAI,GAAG,IAAI,MAAM,CAAC,GAAG,IAAI,GAAG,KAAK,EAAE,KAAK,EAAE;CAAI,OAAO;AAAG;AACnJ,SAAS,GAAsB,GAAG,GAAG;CAAE,IAAI,IAAY,KAAR,OAAY,OAAsB,OAAO,SAAtB,OAAgC,EAAE,OAAO,aAAa,EAAE;CAAe,IAAY,KAAR,MAAW;EAAE,IAAI,GAAG,GAAG,GAAG,GAAG,IAAI,CAAC,GAAG,IAAI,CAAC,GAAG,IAAI,CAAC;EAAG,IAAI;GAAE,IAAI,KAAK,IAAI,EAAE,KAAK,CAAC,EAAA,CAAG,MAAY,MAAN,GAAS;IAAE,IAAI,OAAO,CAAC,MAAM,GAAG;IAAQ,IAAI,CAAC;GAAG,OAAO,OAAO,EAAE,KAAK,IAAI,EAAE,KAAK,CAAC,EAAA,CAAG,UAAU,EAAE,KAAK,EAAE,KAAK,GAAG,EAAE,WAAW,IAAI,IAAI,CAAC;EAAI,SAAS,GAAG;GAAE,IAAI,CAAC,GAAG,IAAI;EAAG,UAAU;GAAE,IAAI;IAAE,IAAI,CAAC,KAAa,EAAE,UAAV,SAAwB,IAAI,EAAE,OAAU,GAAG,OAAO,CAAC,MAAM,IAAI;GAAQ,UAAU;IAAE,IAAI,GAAG,MAAM;GAAG;EAAE;EAAE,OAAO;CAAG;AAAE;AACzhB,SAAS,GAAgB,GAAG;CAAE,IAAI,MAAM,QAAQ,CAAC,GAAG,OAAO;AAAG;AAsB9D,SAAwB,GAA+B,GAAK,GAAa;CACvE,IAAI,EAAY,WAAW,GACzB,OAAO;CAET,IAAI,IAAgB,EAAY,IAAI,SAAU,GAAM,GAAO;EACzD,IAAI,IAAQ,GAAe,GAAM,CAAC,GAChC,IAAO,EAAM,IACb,IAAK,EAAM;EAEb,OAAO,EAAI,aAAa,EACtB,KAFQ,EAAe,EAAK,IAAI,EAAK,EAAE,IAAI,MAAM,EAAe,EAAG,IAAI,EAAG,EAAE,EAG9E,GAAG,MAAM,CAAK;CAChB,CAAC,CAAC,CAAC,KAAK,EAAE;CACV,OAAO,EAAI,cAAc,EACvB,OAAO,EAAY,OACrB,GAAG,CAAa;AAClB;;;AC1CA,SAAwB,GAAoB,GAAK,GAAM;CAyBrD,OAxBkB,EAAK,cAed,EAAI,eAAe;EACxB,MAAM;EACN,OAAO;EACP,KAAK;EACL,QAAQ;EACR,QAAQ;EACR,QAAQ;CACV,CAAC,IAEI;AACT;;;AC1BA,SAAwB,GAAkB,GAAK,GAAM;CACnD,IAAI,IAAc,EAAK;CAuBvB,OApBI,IAeK,EAAI,aAAa;EACtB,WAAW;EACX,aAAa,EAAuB,CAAW;CACjD,CAAC,IAEI;AACT;;;AC1BA,SAAwB,GAAyB,GAAK;CAMpD,OAAO,EAAI,WAAW,EACpB,QAAQ,gBACV,CAAC;AACH;;;ACEA,SAAwB,GAAiB,GAAoB,GAAU;CACrE,IAAI,IAAa,EAAmB,WAClC,IAAe,EAAmB,cAClC,IAAa,EAAmB,YAChC,IAAU,EAAmB,SAC7B,IAAiB,EAAmB,gBACpC,IAAwB,EAAmB,uBAC3C,IAA2B,EAAmB,0BAC5C,IAAU,EAAa,SACzB,IAAa,EAAa,YAC1B,IAAc,EAAa,aAC3B,IAAgB,EAAa,eAC7B,IAAc,EAAa,aAC3B,IAAY,EAAa,WACvB,IAAsB,GAAmB,GAAY,EAC3C,YACZ,CAAC,GACD,IAAY,EAAoB,WAChC,IAAc,EAAoB,aAGhC,IAAwB;EACd;EACH;CACX,GAUI,IAAM,SAAa,GAAS,GAAY,GAAU,GAAO;EAC3D,OAAO,GAAc,+BAA+B,GAAS,GAAY,GAAU,GAAO,GAAuB,GAAc,CAAQ;CACzI,GACI,IAAM,klBAIV,GAAmB,GAAK;EACP;EACF;EACF;CACb,GAAG,CAAU,IAEb,GAA2B,GAAK,CAAO,IAEvC,GAAkB,GAAK,GAAW;EACT;EACG;EACV;EACJ;EACF;CACZ,CAAC,IAED,GAA+B,GAAK,CAAW,IAE/C,GAAoB,GAAK,EACV,eACf,CAAC,IAED,GAAkB,GAAK,EACR,eACf,CAAC,IAED,GAAyB,CAAG,IAE5B,EAAqB,+BAA+B,GAAU,GAAc;EAC9D;EACH;CACX,CAAC,IAAI;CAOL,OAJA,IAAM,EAAiB,GAAK,+BAA+B,GAAU,GAAc;EACrE;EACH;CACX,CAAC,GACM;AACT;;;ACzFA,SAAwB,GAAqB,GAAM;CACjD,IAAI,IAAa,EAAK,YACpB,IAAU,EAAK,SACf,IAAe,EAAK,cACpB,IAAW,EAAK,UACd,IAAM,wJAEV,GAA0B,CAAO,IAEjC,EAAqB,0CAA0C,GAAU,GAAc;EACzE;EACH;CACX,CAAC,IAAI;CAOL,OAJA,IAAM,EAAiB,GAAK,0CAA0C,GAAU,GAAc;EAChF;EACH;CACX,CAAC,GACM;AACT;AACA,SAAgB,GAA0B,GAAS;CACjD,OAAO,kJAA8J;AACvK;;;ACzBA,SAASC,GAAgC,GAAG,GAAG;CAAE,IAAI,IAAmB,OAAO,SAAtB,OAAgC,EAAE,OAAO,aAAa,EAAE;CAAe,IAAI,GAAG,QAAQ,IAAI,EAAE,KAAK,CAAC,EAAA,CAAG,KAAK,KAAK,CAAC;CAAG,IAAI,MAAM,QAAQ,CAAC,MAAM,IAAIC,GAA4B,CAAC,MAAM,KAAK,KAAiB,OAAO,EAAE,UAArB,UAA6B;EAAE,MAAM,IAAI;EAAI,IAAI,IAAI;EAAG,OAAO,WAAY;GAAE,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,CAAC,EAAE,IAAI;IAAE,MAAM,CAAC;IAAG,OAAO,EAAE;GAAK;EAAG;CAAG;CAAE,MAAU,UAAU,uIAAuI;AAAG;AACziB,SAASA,GAA4B,GAAG,GAAG;CAAE,IAAI,GAAG;EAAE,IAAgB,OAAO,KAAnB,UAAsB,OAAOC,GAAkB,GAAG,CAAC;EAAG,IAAI,IAAI,CAAC,EAAE,SAAS,KAAK,CAAC,CAAC,CAAC,MAAM,GAAG,EAAE;EAAG,OAAoB,MAAb,YAAkB,EAAE,gBAAgB,IAAI,EAAE,YAAY,OAAiB,MAAV,SAAyB,MAAV,QAAc,MAAM,KAAK,CAAC,IAAoB,MAAhB,eAAqB,2CAA2C,KAAK,CAAC,IAAIA,GAAkB,GAAG,CAAC,IAAI,KAAK;CAAG;AAAE;AACzX,SAASA,GAAkB,GAAG,GAAG;CAAE,CAAS,KAAR,QAAa,IAAI,EAAE,YAAY,IAAI,EAAE;CAAS,KAAK,IAAI,IAAI,GAAG,IAAI,MAAM,CAAC,GAAG,IAAI,GAAG,KAAK,EAAE,KAAK,EAAE;CAAI,OAAO;AAAG;AAEnJ,SAAwB,GAAyB,GAAe;CAC9D,IAAI,IAAM;CACV,KAAO;CACP,KAAK,IAAI,IAAYF,GAAgC,CAAa,GAAG,GAAO,EAAE,IAAQ,EAAU,EAAA,CAAG,OAAO;EACxG,IAAI,IAAS,EAAM,OACf,IAAa,EAAO,KAAK,CAAC,CAAC,WAAW,EAAO,SAAS,KAAK;EAG/D,AAFA,KAAO,SAAgB,MACvB,KAAO,EAAoB,CAAM,GACjC,KAAO;CACT;CAEA,OADA,KAAO,UACA;AACT;;;AChBA,SAAwB,EAAwB,GAAO;CACrD,IAAI,EAAM,OAAO,KACf,MAAU,MAAM,UAAkB,0BAAoC;CAExE,OAAO,KAAY,EAAM,MAAM,CAAU,CAAC,CAAC,YAAY;AACzD;;;ACFA,SAAwB,GAAW,GAAM;CACvC,IACE,KADS,UAAU,SAAS,KAAK,UAAU,OAAO,KAAA,IAAY,UAAU,KAAK,CAAC,EAAA,CACjD,uBAC3B,IAAkB,EAAK,iBACzB,IAAmB,EAAK,kBACxB,IAAmB,EAAK,kBACtB,IAAc,CAAC,KAAoB,MAAqB;CAC5D,IAAI,CAAC,EAAQ,CAAI,GACf,OAAO;CAET,IAAI,IAAM;CA2BV,OATA,KAAO,6BAAqC,IAAc,UAAU,OACpE,KAAO,iBAAyB,EAAuB,EAAwB,IAAc,IAAkB,CAAgB,CAAC,QAChI,KAAO,YAAmB,KAAe,CAAC,IAAwB,mBAAiB,WAAU,EAAuB,EAAwB,CAAe,CAAC,IAAI,UAChK,KAAO,kBAGP,KAAO,WAGA;AACT;;;ACvCA,SAAwB,GAAa,GAAM;CACzC,IAAI,IAAc,EAAK,aACrB,IAAc,EAAK,aACnB,IAAkB,EAAK,iBACvB,IAAkB,EAAK,iBACvB,IAAmB,EAAK,kBACxB,IAAmB,EAAK,kBACxB,IAAiB,EAAK,gBACtB,IAAiB,EAAK,gBACtB,IAAoB,EAAK,mBACzB,IAAoB,EAAK,mBACvB,IAAO;EACT,OAAO,KAAmB;EAC1B,OAAO,KAAmB;CAC5B,GACI,IAAQ;EACV,OAAO,KAAoB;EAC3B,OAAO,KAAoB;CAC7B,GACI,IAAM;EACR,OAAO,KAAkB;EACzB,OAAO,KAAkB;CAC3B,GACI,IAAS;EACX,OAAO,KAAqB;EAC5B,OAAO,KAAqB;CAC9B,GACI,IAAM;CAOV,OANA,KAAO,EAAiB,QAAQ,CAAI,GACpC,KAAO,EAAiB,SAAS,CAAK,GACtC,KAAO,EAAiB,OAAO,CAAG,GAClC,KAAO,EAAiB,UAAU,CAAM,GACxC,KAAO,eACP,KAAO,aACA;AACT;AACA,SAAS,EAAiB,GAAM,GAAO;CACrC,IAAI,IAAQ,EAAM,OAChB,IAAQ,EAAM;CAChB,AAAI,KAAS,CAAC,MACZ,IAAQ;CAEV,IAAI,IAAc,EAAQ;CAC1B,OAAO,IAAW,OAAS,IAAQ,WAAmB,EAAuB,CAAK,OAAW,OAAO,IAAc,MAAM,SAAS,IAAQ,eAAuB,EAAuB,EAAwB,CAAK,CAAC,SAAa,OAAO,IAAc,KAAY,OAAa;AAClR;;;AC5CA,SAAwB,GAAW,GAAM;CAEd,CADd,UAAU,SAAS,KAAK,UAAU,OAAO,KAAA,IAAY,UAAU,KAAK,CAAC,EAAA,CAClD;CAC9B,IAAI,IAAa,EAAK,YACpB,IAAW,EAAK,UAChB,IAAa,EAAK,YAClB,IAAY,EAAK,WACjB,IAAiB,EAAK,gBACtB,IAAY,EAAK,WACf,IAAM;CAiFV,OA9EI,MAEF,KAAO,cAAsB,EAAuB,CAAU,SAI5D,OAAO,KAAa,aACtB,KAAO,YAAoB,SAY7B,KAAO,uBAID,KAAc,OAAO,KAAa,aAItC,KAAO,4BAIL,MAAe,WACjB,KAAO,SAIL,MAAc,aAChB,KAAO,SAIL,MACE,EAAe,kBACjB,KAAO,cAEL,EAAe,YACjB,KAAO,SACE,EAAe,oBACxB,KAAO,yBAcX,AAaE,KAbE,IACK,eAAuB,EAAuB,EAAwB,CAAS,CAAC,SAYhF,wBAET,KAAO,WACA;AACT;;;AC5FA,SAAwB,GAAgB,GAAM;CAC5C,IAAI,IAAQ,EAAK,OACf,IAAgB,EAAK,eACrB,IAAe,EAAK,cACpB,IAAS,EAAK,QACd,IAAO,EAAK;CACd,OAAO,gBAAgB,IAAQ,gBAAwB,EAAuB,CAAK,OAAW,OAAO,IAAgB,cAAsB,EAAuB,CAAa,OAAW,OAAO,IAAe,kBAA0B,GAAgB,GAAqB,CAAY,CAAC,OAAW,OAAO,IAAS,YAAoB,EAAuB,OAAO,CAAM,CAAC,OAAW,OAAO,IAAO,oBAAoB,MAAM;AACra;AA0BA,SAAS,GAAqB,GAAc;CAC1C,IAAI,EAAE,KAAgB,OAAO,KAAgB,KAC3C,MAAU,MAAM,oCAA2C,yCAAuD;CAEpH,OAAO;AACT;AAaA,SAAS,GAAgB,GAAc;CAIrC,OAHI,IAAe,IACV,KAAK,IAEP;AACT;;;ACzDA,SAASG,EAAQ,GAAG;CAAE;CAA2B,OAAO,IAAwB,OAAO,UAArB,cAA2C,OAAO,OAAO,YAA1B,WAAqC,SAAU,GAAG;EAAE,OAAO,OAAO;CAAG,IAAI,SAAU,GAAG;EAAE,OAAO,KAAmB,OAAO,UAArB,cAA+B,EAAE,gBAAgB,UAAU,MAAM,OAAO,YAAY,WAAW,OAAO;CAAG,GAAGA,EAAQ,CAAC;AAAG;AAC7T,SAASC,GAAQ,GAAG,GAAG;CAAE,IAAI,IAAI,OAAO,KAAK,CAAC;CAAG,IAAI,OAAO,uBAAuB;EAAE,IAAI,IAAI,OAAO,sBAAsB,CAAC;EAAG,MAAM,IAAI,EAAE,OAAO,SAAU,GAAG;GAAE,OAAO,OAAO,yBAAyB,GAAG,CAAC,CAAC,CAAC;EAAY,CAAC,IAAI,EAAE,KAAK,MAAM,GAAG,CAAC;CAAG;CAAE,OAAO;AAAG;AAC9P,SAASC,GAAc,GAAG;CAAE,KAAK,IAAI,IAAI,GAAG,IAAI,UAAU,QAAQ,KAAK;EAAE,IAAI,IAAY,UAAU,MAAlB,OAAsC,CAAC,IAAhB,UAAU;EAAS,IAAI,IAAID,GAAQ,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,QAAQ,SAAU,GAAG;GAAE,GAAgB,GAAG,GAAG,EAAE,EAAE;EAAG,CAAC,IAAI,OAAO,4BAA4B,OAAO,iBAAiB,GAAG,OAAO,0BAA0B,CAAC,CAAC,IAAIA,GAAQ,OAAO,CAAC,CAAC,CAAC,CAAC,QAAQ,SAAU,GAAG;GAAE,OAAO,eAAe,GAAG,GAAG,OAAO,yBAAyB,GAAG,CAAC,CAAC;EAAG,CAAC;CAAG;CAAE,OAAO;AAAG;AACtb,SAASE,GAAgB,GAAG,GAAG,GAAG;CAAE,QAAQ,IAAIC,GAAe,CAAC,MAAM,IAAI,OAAO,eAAe,GAAG,GAAG;EAAE,OAAO;EAAG,YAAY,CAAC;EAAG,cAAc,CAAC;EAAG,UAAU,CAAC;CAAE,CAAC,IAAI,EAAE,KAAK,GAAG;AAAG;AACnL,SAASA,GAAe,GAAG;CAAE,IAAI,IAAIC,GAAa,GAAG,QAAQ;CAAG,OAAmBL,EAAQ,CAAC,KAArB,WAAyB,IAAI,IAAI;AAAI;AAC5G,SAASK,GAAa,GAAG,GAAG;CAAE,IAAgBL,EAAQ,CAAC,KAArB,YAA0B,CAAC,GAAG,OAAO;CAAG,IAAI,IAAI,EAAE,OAAO;CAAc,IAAe,MAAX,KAAK,GAAS;EAAE,IAAI,IAAI,EAAE,KAAK,GAAG,KAAK,SAAS;EAAG,IAAgBA,EAAQ,CAAC,KAArB,UAAwB,OAAO;EAAG,MAAU,UAAU,8CAA8C;CAAG;CAAE,QAAqB,MAAb,WAAiB,SAAS,OAAA,CAAQ,CAAC;AAAG;AAQ3T,SAAwB,GAAiB,GAAa;CACpD,IAAI,IAAU,CAAC,GACX,IAAmB,CAAC,GACpB,IAAS,CAAC,GACV,IAAc,CAAC,GACf,IAAQ,CAAC,GACT,IAAkB,CAAC,GACnB,IAAQ,CAAC,GACT,IAAkB,CAAC,GACnB,IAAU,CAAC,GACX,IAAsB,CAAC,GAGvB,IAAgB,EAAM;CAE1B,AADA,EAAgB,EAAO,CAAW,KAAK,GACvC,EAAM,KAAK,KAAe,CAAC,CAAC;CAoB5B,IAAI,IAAc,CAAC;CAEnB,AADA,EAAgB,EAAO,CAAW,KAAK,EAAM,QAC7C,EAAM,KAAK,CAAW;CAGtB,IAAI,IAAgB,CAAC;CAYrB,AAXA,EAAoB,EAAO,CAAa,KAAK,EAAQ,QACrD,EAAQ,KAAK,CAAa,GAU1B,EAAM,KAAK,EAFT,SAAS,GAEU,CAAC;CAKtB,SAAS,EAAsB,GAAW;EACxC,IAAI,IAAS,EAAU,QACrB,IAAQ,EAAU,OAClB,IAAgB,EAAU,eAC1B,IAAe,EAAU,cACzB,IAAS,EAAU,QACnB,IAAO,EAAU,MACjB,IAAa,EAAU,YACvB,IAAW,EAAU,UACrB,IAAa,EAAU,YACvB,IAAY,EAAU,WACtB,IAAiB,EAAU,gBAC3B,IAAY,EAAU,WACtB,IAAkB,EAAU,iBAC5B,IAAmB,EAAU,kBAC7B,IAAmB,EAAU,kBAC7B,IAAc,EAAU,aACxB,IAAc,EAAU,aACxB,KAAkB,EAAU,iBAC5B,KAAkB,EAAU,iBAC5B,IAAmB,EAAU,kBAC7B,IAAmB,EAAU,kBAC7B,KAAiB,EAAU,gBAC3B,KAAiB,EAAU,gBAC3B,IAAoB,EAAU,mBAC9B,IAAoB,EAAU,mBAK5B,IAAO;GACG;GACF;GACE;GACD;GACK;GACL;EACb,GACI,KAAO;GACQ;GACC;GACA;EACpB,GACI,IAAS;GACE;GACA;GACI;GACA;GACC;GACA;GACF;GACA;GACG;GACA;EACrB,GACI,KAAY;GACP;GACQ;GACD;GACN;GACF;EACR,GACI,KAAY,EAAO,CAAM,GACzB,KAAU,EAAO,CAAI,GACrB,KAAU,EAAO,EAAI,GACrB,KAAY,EAAO,CAAM,GAGzB,IAAW,EAAO,CAAS;EA4E/B,OALI,EAAY,OAAc,KAAA,IAKvB,WAzE4B;GAEjC,IAAI;GACJ,AAAI,MACF,IAAW,EAAiB,KACxB,MAAa,KAAA,MACf,IAAA,MAAmC,EAAQ,QAC3C,EAAiB,MAAa,GAC9B,EAAQ,KAAK,CAAM;GAKvB,IAAI;GACJ,AAAI,GAAQ,CAAI,KACd,IAAS,EAAgB,KACrB,MAAW,KAAA,MACb,IAAS,EAAM,QACf,EAAgB,MAAW,GAC3B,EAAM,KAAKE,GAAcA,GAAc,CAAC,GAAG,CAAI,GAAG,CAAC,GAAG;IACpD,UAAU,EAAK,YAAY,KAAe,EAAY;IACtD,YAAY,EAAK,cAAc,KAAe,EAAY;GAC5D,CAAC,CAAC,MAEK,MACT,IAAS;GAIX,IAAI;GACJ,AAAI,EAAQ,EAAI,MACd,IAAS,EAAgB,KACrB,MAAW,KAAA,MACb,IAAS,EAAM,QACf,EAAgB,MAAW,GAC3B,EAAM,KAAK;IACQ;IACC;IACA;GACpB,CAAC;GAKL,IAAI;GACJ,AAAI,GAAU,CAAM,MAClB,IAAW,EAAoB,KAC3B,MAAa,KAAA,MACf,IAAW,EAAQ,QACnB,EAAoB,MAAa,GACjC,EAAQ,KAAK,CAAM;GAGvB,IAAI,IAAU,EAAO;GAWrB,OAVA,EAAY,KAAY,GAGxB,EAAO,KAAK;IACA;IACF;IACA;IACE;IACC;GACb,CAAC,GACM;EACT,EAQgB,IAJP,EAAY;CAKvB;CAKA,OADA,EAAsB,CAAC,CAAC,GACjB;EACL,eAAe,WAAyB;GACtC,OAAO;IACI;IACD;IACD;IACA;IACE;GACX;EACF;EACuB;CACzB;AACF;AACA,SAAS,EAAO,GAAQ;CACtB,OAAO,KAAK,UAAU,CAAM;AAC9B;;;AC3OA,SAASI,EAAgC,GAAG,GAAG;CAAE,IAAI,IAAmB,OAAO,SAAtB,OAAgC,EAAE,OAAO,aAAa,EAAE;CAAe,IAAI,GAAG,QAAQ,IAAI,EAAE,KAAK,CAAC,EAAA,CAAG,KAAK,KAAK,CAAC;CAAG,IAAI,MAAM,QAAQ,CAAC,MAAM,IAAIC,GAA4B,CAAC,MAAM,KAAK,KAAiB,OAAO,EAAE,UAArB,UAA6B;EAAE,MAAM,IAAI;EAAI,IAAI,IAAI;EAAG,OAAO,WAAY;GAAE,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,CAAC,EAAE,IAAI;IAAE,MAAM,CAAC;IAAG,OAAO,EAAE;GAAK;EAAG;CAAG;CAAE,MAAU,UAAU,uIAAuI;AAAG;AACziB,SAASA,GAA4B,GAAG,GAAG;CAAE,IAAI,GAAG;EAAE,IAAgB,OAAO,KAAnB,UAAsB,OAAOC,GAAkB,GAAG,CAAC;EAAG,IAAI,IAAI,CAAC,EAAE,SAAS,KAAK,CAAC,CAAC,CAAC,MAAM,GAAG,EAAE;EAAG,OAAoB,MAAb,YAAkB,EAAE,gBAAgB,IAAI,EAAE,YAAY,OAAiB,MAAV,SAAyB,MAAV,QAAc,MAAM,KAAK,CAAC,IAAoB,MAAhB,eAAqB,2CAA2C,KAAK,CAAC,IAAIA,GAAkB,GAAG,CAAC,IAAI,KAAK;CAAG;AAAE;AACzX,SAASA,GAAkB,GAAG,GAAG;CAAE,CAAS,KAAR,QAAa,IAAI,EAAE,YAAY,IAAI,EAAE;CAAS,KAAK,IAAI,IAAI,GAAG,IAAI,MAAM,CAAC,GAAG,IAAI,GAAG,KAAK,EAAE,KAAK,EAAE;CAAI,OAAO;AAAG;AAUnJ,SAAwB,GAAkB,GAAY,GAAe,GAAU;CAC7E,IAAI,IAAU,EAAW,SACvB,IAAS,EAAW,QACpB,IAAQ,EAAW,OACnB,IAAQ,EAAW,OACnB,IAAU,EAAW,SACnB,IAAM;CAYV,IAXA,KAAO,oFAWH,EAAQ,SAAS,GAAG;EACtB,KAAO,mBAA2B,EAAQ;EAC1C,KAAK,IAAI,IAAI,GAAG,IAAI,EAAQ,QAAQ,KAClC,KAAO,qBAAsB,MAA+B,kBAA8B,EAAuB,EAAQ,EAAE;EAE7H,KAAO;CACT;CACA,KAAO,iBAAyB,EAAM;CACtC,KAAK,IAAI,IAAYF,EAAgC,CAAK,GAAG,GAAO,EAAE,IAAQ,EAAU,EAAA,CAAG,OAAO;EAChG,IAAI,IAAO,EAAM;EACjB,KAAO,GAAW,CAAI;CACxB;CAKA,AAJA,KAAO,YAIP,KAAO,iBAAyB,EAAM;CACtC,KAAK,IAAI,IAAaA,EAAgC,CAAK,GAAG,GAAQ,EAAE,IAAS,EAAW,EAAA,CAAG,OAAO;EACpG,IAAI,IAAO,EAAO;EAClB,AAAI,EAAK,WAIP,KAAO,UACP,KAAO,0CACP,KAAO,aAEP,KAAO,GAAW,CAAI;CAE1B;CAKA,AAJA,KAAO,YAIP,KAAO,mBAA2B,EAAQ;CAC1C,KAAK,IAAI,IAAaA,EAAgC,CAAO,GAAG,GAAQ,EAAE,IAAS,EAAW,EAAA,CAAG,OAAO;EACtG,IAAI,IAAS,EAAO;EACpB,KAAO,GAAa,CAAM;CAC5B;CA0BA,AAzBA,KAAO,cAyBP,KAAO,mBAA2B,EAAO;CACzC,KAAK,IAAI,IAAaA,EAAgC,CAAM,GAAG,GAAQ,EAAE,IAAS,EAAW,EAAA,CAAG,OAAO;EACrG,IAAI,IAAY,EAAO,OACnB,IAAS,EAAU,QACrB,IAAS,EAAU,QACnB,IAAW,EAAU,UACrB,IAAY,EAAU,WACtB,IAAW,EAAU;EAIvB,KAAO,SAAS;GAAC,MAAa,KAAA,IAAY,KAAA,IAAY,aAAqB;GAAyC,MAAW,KAAA,IAAY,KAAA,IAAY,WAAmB;GAA+B,MAAW,KAAA,IAAY,KAAA,IAAY,WAAmB;GAA+B,MAAa,KAAA,IAAY,KAAA,IAAY,aAAqB;GAAmC,GAAa,CAAS,IAAI,yBAAuB,KAAA;EAE5a,CAAC,CAAC,OAAO,SAAU,GAAG;GACpB,OAAO;EACT,CAAC,CAAC,CAAC,KAAK,GAAG,IAAI,OAMf,GAAa,CAAS,IAAI,GAAgB,CAAS,IAAI,MAAM;CAC/D;CASA,OARA,KAAO,cAGP,KAAO,EAAqB,iBAAiB,GAAU,CAAa,GACpE,KAAO,iBAGP,IAAM,EAAiB,GAAK,iBAAiB,GAAU,CAAa,GAC7D;AACT;;;ACtHA,SAAwB,GAA0B,GAAK;CAOrD,KANA,IAAI,IAAO,UAAU,SAAS,KAAK,UAAU,OAAO,KAAA,IAAY,UAAU,KAAK,CAAC,GAC9E,IAAU,EAAK,SACf,IAAsB,EAAK,qBACzB,IAAmB,IAAI,OAAO,GAA2B,CAAO,GAAG,IAAsB,KAAA,IAAY,GAAG,GACxG,IAAU,CAAC,GACX,IACI,IAAkB,EAAiB,KAAK,CAAG,OAAO,OAAM;EAM9D,KALA,IAAI,IAAa,EAAgB,IAC7B,IAAiB,KAAW,EAAgB,IAC5C,IAAa,CAAC,GACd,IAAkB,gBAAI,OAAO,uCAAqC,GAAG,GACrE,IAAiB,KAAK,IAClB,IAAiB,EAAgB,KAAK,CAAU,OAAO,OAC7D,EAAW,EAAe,MAAM,EAAe;EAEjD,IAAI,IAAS;GACX,SAAS;GAET,sBAAsB,EAAgB;GACtC,oBAAoB,EAAgB,QAAQ,EAAW,SAAS;GAChE,sBAAsB;GACtB,gBAAgB;GAEhB,sBAAsB,KAAA;GACtB,oBAAoB,KAAA;EACtB;EACA,IAAI,EAAW,EAAW,SAAS,OAAO,KACxC,EAAO,iBAAiB;OACnB;GACL,IAAI,IAAqB,GAAuB,GAAK,EAAO,qBAAqB,GAAG,CAAc;GAClG,IAAI,CAAC,GAEH,MAAU,MAAM,iEAAwE,IAAoB;GAG9G,AADA,EAAO,uBAAuB,EAAmB,IACjD,EAAO,qBAAqB,EAAmB;EACjD;EAEA,IADA,EAAQ,KAAK,CAAM,GACf,GACF;EAIF,AAGE,EAAiB,YAHf,EAAO,iBACoB,EAAO,qBAAqB,IAE5B,EAAO,qBAAqB;CAE7D;CACA,OAAO;AACT;AACA,SAAS,GAAuB,GAAK,GAAgB,GAAS;CAC5D,IAAI,IAAgC,OAAO,UAAU,IAAU,qBAAqB,GAAG;CACvF,EAA0B,YAAY;CAGtC,KAFA,IAAI,IAAe,GACf,IACI,IAA2B,EAA0B,KAAK,CAAG,OAAO,OAAM;EAChF,IAAI,IAAsB,EAAyB;EAGnD,IADuB,EAAyB,IAC1B;GAEpB,IAAI,IAAe,GACjB;QAEA,OAAO,CAAC,EAAyB,OAAO,EAAyB,QAAQ,EAAoB,SAAS,CAAC;EAE3G,OAEE;CAEJ;AACF;AACA,SAAgB,GAA2B,GAAS;CAClD,OAAO,OAAO,KAAW,iBAAiB;AAC5C;;;AC5EA,SAAwB,EAAY,GAAK,GAAS;CAKhD,OAJe,GAA0B,GAAK;EACnC;EACT,qBAAqB;CACvB,CACc,CAAC,CAAC;AAClB;;;ACPA,SAAwB,GAAuB,GAAK,GAAS,GAAgB;CAUzE,OATE,IACE,EAAQ,iBACH,EAAI,MAAM,GAAG,EAAQ,qBAAqB,CAAU,IAAI,MAAM,IAAiB,OAAO,EAAQ,UAAU,MAAM,EAAI,MAAM,EAAQ,qBAAqB,CAAC,IAExJ,EAAI,MAAM,GAAG,EAAQ,qBAAqB,CAAC,IAAI,IAAiB,EAAI,MAAM,EAAQ,oBAAoB,IAEzG,EAAQ,iBACH,IAEF,EAAI,MAAM,GAAG,EAAQ,kBAAkB,IAAI,OAAO,EAAI,MAAM,EAAQ,qBAAqB,CAAC;AAErG;;;ACVA,SAAwB,EAA0B,GAAK,GAAS,GAAU;CAIxE,OAHI,EAAQ,iBACH,GAAuB,GAAK,GAAS,CAAQ,IAE/C,EAAI,MAAM,GAAG,EAAQ,oBAAoB,IAAI,IAAW,EAAI,MAAM,EAAQ,oBAAoB;AACvG;;;ACRA,SAAwB,GAAuB,GAAK,GAAS;CAI3D,OAHI,EAAQ,iBACH,KAEF,EAAI,UAAU,EAAQ,qBAAqB,GAAG,EAAQ,oBAAoB;AACnF;;;ACXA,SAAwB,GAA4B,GAAS,GAAkB;CAC7E,IAAI,IAAyB,EAAiB,qBAAqB;CAGnE,AAFA,EAAQ,wBAAwB,GAChC,EAAQ,sBAAsB,GACzB,EAAQ,mBACX,EAAQ,wBAAwB,GAChC,EAAQ,sBAAsB;AAElC;;;ACRA,SAASG,GAAgC,GAAG,GAAG;CAAE,IAAI,IAAmB,OAAO,SAAtB,OAAgC,EAAE,OAAO,aAAa,EAAE;CAAe,IAAI,GAAG,QAAQ,IAAI,EAAE,KAAK,CAAC,EAAA,CAAG,KAAK,KAAK,CAAC;CAAG,IAAI,MAAM,QAAQ,CAAC,MAAM,IAAIC,GAA4B,CAAC,MAAM,KAAK,KAAiB,OAAO,EAAE,UAArB,UAA6B;EAAE,MAAM,IAAI;EAAI,IAAI,IAAI;EAAG,OAAO,WAAY;GAAE,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,CAAC,EAAE,IAAI;IAAE,MAAM,CAAC;IAAG,OAAO,EAAE;GAAK;EAAG;CAAG;CAAE,MAAU,UAAU,uIAAuI;AAAG;AACziB,SAASA,GAA4B,GAAG,GAAG;CAAE,IAAI,GAAG;EAAE,IAAgB,OAAO,KAAnB,UAAsB,OAAOC,GAAkB,GAAG,CAAC;EAAG,IAAI,IAAI,CAAC,EAAE,SAAS,KAAK,CAAC,CAAC,CAAC,MAAM,GAAG,EAAE;EAAG,OAAoB,MAAb,YAAkB,EAAE,gBAAgB,IAAI,EAAE,YAAY,OAAiB,MAAV,SAAyB,MAAV,QAAc,MAAM,KAAK,CAAC,IAAoB,MAAhB,eAAqB,2CAA2C,KAAK,CAAC,IAAIA,GAAkB,GAAG,CAAC,IAAI,KAAK;CAAG;AAAE;AACzX,SAASA,GAAkB,GAAG,GAAG;CAAE,CAAS,KAAR,QAAa,IAAI,EAAE,YAAY,IAAI,EAAE;CAAS,KAAK,IAAI,IAAI,GAAG,IAAI,MAAM,CAAC,GAAG,IAAI,GAAG,KAAK,EAAE,KAAK,EAAE;CAAI,OAAO;AAAG;AAWnJ,SAAwB,GAAiB,GAAK,GAAS;CAErD,KAAK,IADD,IAAW,GAA0B,GAAuB,GAAK,CAAO,CAAC,GACpE,IAAYF,GAAgC,CAAQ,GAAG,GAAO,EAAE,IAAQ,EAAU,EAAA,CAAG,OAAO;EACnG,IAAI,IAAQ,EAAM;EAClB,GAA4B,GAAO,CAAO;CAC5C;CACA,OAAO;AACT;;;ACXA,SAAwB,GAA2B,GAAK,GAAS,GAAU;CAIzE,OAHI,EAAQ,iBACH,GAAuB,GAAK,GAAS,CAAQ,IAE/C,EAAI,MAAM,GAAG,EAAQ,qBAAqB,CAAC,IAAI,IAAW,EAAI,MAAM,EAAQ,qBAAqB,CAAC;AAC3G;;;ACdA,SAASG,GAAgC,GAAG,GAAG;CAAE,IAAI,IAAmB,OAAO,SAAtB,OAAgC,EAAE,OAAO,aAAa,EAAE;CAAe,IAAI,GAAG,QAAQ,IAAI,EAAE,KAAK,CAAC,EAAA,CAAG,KAAK,KAAK,CAAC;CAAG,IAAI,MAAM,QAAQ,CAAC,MAAM,IAAIC,GAA4B,CAAC,MAAM,KAAK,KAAiB,OAAO,EAAE,UAArB,UAA6B;EAAE,MAAM,IAAI;EAAI,IAAI,IAAI;EAAG,OAAO,WAAY;GAAE,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,CAAC,EAAE,IAAI;IAAE,MAAM,CAAC;IAAG,OAAO,EAAE;GAAK;EAAG;CAAG;CAAE,MAAU,UAAU,uIAAuI;AAAG;AACziB,SAASA,GAA4B,GAAG,GAAG;CAAE,IAAI,GAAG;EAAE,IAAgB,OAAO,KAAnB,UAAsB,OAAOC,GAAkB,GAAG,CAAC;EAAG,IAAI,IAAI,CAAC,EAAE,SAAS,KAAK,CAAC,CAAC,CAAC,MAAM,GAAG,EAAE;EAAG,OAAoB,MAAb,YAAkB,EAAE,gBAAgB,IAAI,EAAE,YAAY,OAAiB,MAAV,SAAyB,MAAV,QAAc,MAAM,KAAK,CAAC,IAAoB,MAAhB,eAAqB,2CAA2C,KAAK,CAAC,IAAIA,GAAkB,GAAG,CAAC,IAAI,KAAK;CAAG;AAAE;AACzX,SAASA,GAAkB,GAAG,GAAG;CAAE,CAAS,KAAR,QAAa,IAAI,EAAE,YAAY,IAAI,EAAE;CAAS,KAAK,IAAI,IAAI,GAAG,IAAI,MAAM,CAAC,GAAG,IAAI,GAAG,KAAK,EAAE,KAAK,EAAE;CAAI,OAAO;AAAG;AAMnJ,SAAwB,GAA8C,GAAK,GAAe,GAAiB;CACpG,IAA6B,QACE;CAEpC,IAAI,EAAsB,WAAW,GACnC,MAAU,MAAM,kDAAkD;CAIpE,IAAwB,EAAsB,MAAM,CAAC,CAAC,QAAQ;CAoB9D,KAAK,IAjBD,GACA,IAAQ,WAAiB;EAC3B,IAAI,IAAuB,EAAM;EAWjC,IAVA,AAQE,IARE,IAIc,GAAiB,GAAK,CAAa,CAAC,CAAC,KAAK,SAAU,GAAG;GACrE,OAAO,EAAE,YAAY;EACvB,CAAC,IAEe,EAAY,GAAK,CAAoB,GAEnD,CAAC,GACH,MAAU,MAAM,uBAA8B,IAA0B;CAE5E,GACS,IAAYF,GAAgC,CAAqB,GAAG,GAAO,EAAE,IAAQ,EAAU,EAAA,CAAG,OACzG,EAAM;CAIR,IAAI,IAAsB,EAAc,MAAM,EAAgB;CAC9D,IAAI,CAAC,GACH,MAAU,MAAM,0CAAiD,GAAc;CAEjF,IAAI,IAAiB,EAAoB;CAGzC,IAAI,CAAC,KAAmB,EAAgB,SAAS,GAC/C,OAAO,EAA0B,GAAK,GAAe,CAAa;CAEpE,IAAI,IAAW,GAAiB,GAAK,CAAa;CAClD,IAAI,EAAS,WAAW,GACtB,OAAO,EAA0B,GAAK,GAAe,CAAa;CAEpE,IAAI,IAAsB,EAAgB,QAAQ,CAAc;CAChE,IAAI,IAAsB,GAExB,OAAO,EAA0B,GAAK,GAAe,CAAa;CAepE,KAAK,IAbD,IAAwB,EAAgB,MAAM,GAAG,CAAmB,CAAC,CAAC,QAAQ,GAC9E,IAAS,WAAkB;EAC3B,IAAI,IAAU,EAAO,OACjB,IAAmB,EAAS,KAAK,SAAU,GAAG;GAChD,OAAO,EAAE,YAAY;EACvB,CAAC;EACD,IAAI,GACF,OAAO,EACL,GAAG,EAAI,MAAM,GAAG,EAAiB,iBAAiB,EAAiB,qBAAqB,IAAI,EAAiB,qBAAqB,CAAC,IAAI,IAAgB,EAAI,MAAM,EAAiB,iBAAiB,EAAiB,qBAAqB,IAAI,EAAiB,qBAAqB,CAAC,EACtR;CAEJ,GACA,GACO,IAAaA,GAAgC,CAAqB,GAAG,GAAQ,EAAE,IAAS,EAAW,EAAA,CAAG,OAE7G,IADA,IAAO,EAAO,GACV,GAAM,OAAO,EAAK;CAExB,OAAO,GAA2B,GAAK,GAAe,CAAa;AACrE;AACA,IAAI,KAAmB,IAAI,OAAO,GAA2B,CAAC,GChC9D,KAAe;CAGb,mBAAmB,CAAC,CAAC,YAAY;EAAC;EAElC;EAEA;EAEA;EAEA;EAEA;CACA,CAAC,CAAC;CAGF,iBAAiB,CAAC,CAAC,cAAc;EAAC;EAElC;EAEA;EAEA;EAEA;EAEA;EAEA;EAEA;EAEA;CACA,CAAC,CAAC;CAGF,+BAA+B,CAAC,CAAC,aAAa,gZA+D9C,CAAC,CAAC;AACJ;;;AC7IA,SAAwB,GAAmB,GAAU;CACnD,IAAI,IAAkBG,GAAkB;CACnC,OAKA;MAA6B,QACL;EAE7B,IAAI,EAAe,WAAW,GAC5B,MAAU,MAAM,kDAAkD;EA6BpE,KAAK,IA3BD,IAAQ,WAAiB;GACzB,IAAI,IAAU,EAAgB,IAC1B,IAAiC,EAAgB,KAAK,SAAU,GAAS;IAIzE,OAHE,MAAM,QAAQ,CAAO,IAChB,EAAQ,OAAO,IAEf,MAAY;GAEvB,CAAC;GACD,IAAI,CAAC,GAGH,OAAO,EACL,GAAG,KAAK,EACV;GAEF,IAAI,MAAM,QAAQ,CAA8B,GAC9C,IAAkB,EAA+B;QAIjD,OAAO,EACL,GAAG,KAAK,EACV;EAEJ,GACA,GACO,IAAK,GAAG,IAAkB,GAAgB,IAAK,EAAgB,QAAQ,KAE9E,IADA,IAAO,EAAM,GACT,GAAM,OAAO,EAAK;EAExB,IAAI,GAEF,OAAO,EAAgB,IAAI,SAAU,GAAS;GAI1C,OAHE,MAAM,QAAQ,CAAO,IAChB,EAAQ,KAER;EAEX,CAAC;CA7C2F;AA+ChG;;;AC9DA,SAASC,EAAgC,GAAG,GAAG;CAAE,IAAI,IAAmB,OAAO,SAAtB,OAAgC,EAAE,OAAO,aAAa,EAAE;CAAe,IAAI,GAAG,QAAQ,IAAI,EAAE,KAAK,CAAC,EAAA,CAAG,KAAK,KAAK,CAAC;CAAG,IAAI,MAAM,QAAQ,CAAC,MAAM,IAAIC,GAA4B,CAAC,MAAM,KAAK,KAAiB,OAAO,EAAE,UAArB,UAA6B;EAAE,MAAM,IAAI;EAAI,IAAI,IAAI;EAAG,OAAO,WAAY;GAAE,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,CAAC,EAAE,IAAI;IAAE,MAAM,CAAC;IAAG,OAAO,EAAE;GAAK;EAAG;CAAG;CAAE,MAAU,UAAU,uIAAuI;AAAG;AACziB,SAASA,GAA4B,GAAG,GAAG;CAAE,IAAI,GAAG;EAAE,IAAgB,OAAO,KAAnB,UAAsB,OAAOC,GAAkB,GAAG,CAAC;EAAG,IAAI,IAAI,CAAC,EAAE,SAAS,KAAK,CAAC,CAAC,CAAC,MAAM,GAAG,EAAE;EAAG,OAAoB,MAAb,YAAkB,EAAE,gBAAgB,IAAI,EAAE,YAAY,OAAiB,MAAV,SAAyB,MAAV,QAAc,MAAM,KAAK,CAAC,IAAoB,MAAhB,eAAqB,2CAA2C,KAAK,CAAC,IAAIA,GAAkB,GAAG,CAAC,IAAI,KAAK;CAAG;AAAE;AACzX,SAASA,GAAkB,GAAG,GAAG;CAAE,CAAS,KAAR,QAAa,IAAI,EAAE,YAAY,IAAI,EAAE;CAAS,KAAK,IAAI,IAAI,GAAG,IAAI,MAAM,CAAC,GAAG,IAAI,GAAG,KAAK,EAAE,KAAK,EAAE;CAAI,OAAO;AAAG;AAWnJ,IAAA,KAAe,EACb,OAAO,EACL,WAAW;CACT,+BAA+B,EAI7B,WAAW,SAAmB,GAAK,GAAc,GAAM;EAEzC,AADK,EAAK,YACV,EAAK;EACjB,IAAI,IAAwB,EAAa;EAKzC,OAJI,IAEK,GAA8C,GADjB,GAAiC,CACX,GAA+B,GAAmB,+BAA+B,WAAW,GAAG,WAAW,IAE/J;CACT,EACF;CACA,iBAAiB,EACf,QAAQ,SAAgB,GAAe;EACrC,IAAI,IAA8B,EAAc,IAAI,SAAU,GAAc;GAC1E,OAAO,EAAa;EACtB,CAAC;EACD,IAAI,EAA4B,KAAK,OAAO,GAC1C,OAAO,GAAkC,CAA2B;CAExE,EACF;AACF,EACF,EACF;AACA,SAAS,GAAiC,GAA4B;CAGpE,KAAK,IAFD,IAAM,IACN,IAAI,GACC,IAAYF,EAAgC,CAA0B,GAAG,GAAO,EAAE,IAAQ,EAAU,EAAA,CAAG,OAAO;EACrH,IAAI,IAA4B,EAAM,OAClC,IAAwB,EAA0B,WACpD,IAAO,EAAsB,MAC7B,IAAK,EAAsB,IAC3B,IAAyB,EAA0B,WACnD,IAAU,EAAuB,SACjC,IAAW,EAAuB,UAClC,IAAQ,EAAuB,OAC/B,IAAS,EAAuB,QAG9B,IAAY,EAAe,EAAK,MAAM,GAAG,EAAK,SAAS,CAAC,IAAI,MAAM,EAAe,EAAG,MAAM,GAAG,EAAG,SAAS,CAAC;EAC9G,KAAO,iCAAyC;EAOhD,IAAI,IAAW,IAAI,GAKf,IAAQ,EAA0B;EAWtC,IAAI,GAGF,AAFA,KAAO,oCAA8C,gBAAgC,OACrF,KAAO,YAAmB,EAAoB,CAAO,eACrD,KAAO;OACF,IAAI,GAMT,AALA,KAAO,mCAA6C,GAAoB,CAAQ,aAAyB,gBAAgC,OACzI,KAAO,YAAmB,EAAoB,GAAY,CAAK,CAAC,eAC5D,GAAoB,CAAQ,MAAM,cACpC,KAAO,YAAmB,EAAoB,GAAY,CAAM,CAAC,gBAEnE,KAAO;OAEP,MAAU,MAAM;EAAgD,KAAK,UAAU,GAA2B,MAAM,CAAC,GAAE;EAGrH,AADA,KAAO,4BACP;CACF;CACA,OAAO;AACT;AACA,SAAS,GAAY,GAAO;CAI1B,OAHI,OAAO,KAAU,WACZ,OAAM,IAAQ,OAEhB,OAAO,CAAK;AACrB;AAoBA,SAAS,GAAoB,GAAU;CACrC,QAAQ,GAAR;EACE,KAAK,KACH,OAAO;EACT,KAAK,KACH,OAAO;EACT,KAAK,MACH,OAAO;EACT,KAAK,MACH,OAAO;EACT,KAAK,KACH,OAAO;EACT,KAAK,MACH,OAAO;EACT,KAAK,OACH,OAAO;EACT,SACE,MAAU,MAAM,4CAAmD,GAAS;CAChF;AACF;AACA,SAAS,GAAkC,GAA6B;CAEtE,KAAK,IADD,IAAuC,GAClC,IAAaA,EAAgC,CAA2B,GAAG,GAAQ,EAAE,IAAS,EAAW,EAAA,CAAG,OAAO;EAC1H,IAAI,IAA+B,EAAO;EAC1C,AAAI,MACF,KAAwC,EAA6B;CAEzE;CACA,IAAI,IAAM;CACV,KAAO,gBAAwB;CAC/B,KAAK,IAAI,IAAaA,EAAgC,CAA2B,GAAG,GAAQ,EAAE,IAAS,EAAW,EAAA,CAAG,OAAO;EAC1H,IAAI,IAAgC,EAAO;EAC3C,IAAI,GACF,KAAK,IAAI,IAAaA,EAAgC,CAA6B,GAAG,GAAQ,EAAE,IAAS,EAAW,EAAA,CAAG,OAAO;GAE5H,IAAI,IAD4B,EAAO,MACgB,OACrD,IAAa,EAAuB,YACpC,IAAW,EAAuB,UAClC,IAAa,EAAuB,YACpC,IAAY,EAAuB,WACnC,IAAiB,EAAuB,gBACxC,IAAY,EAAuB,WACnC,IAAkB,EAAuB,iBACzC,IAAmB,EAAuB,kBAC1C,IAAmB,EAAuB,kBAC1C,IAAc,EAAuB,aACrC,IAAc,EAAuB,aACrC,IAAkB,EAAuB,iBACzC,IAAkB,EAAuB,iBACzC,IAAmB,EAAuB,kBAC1C,IAAmB,EAAuB,kBAC1C,IAAiB,EAAuB,gBACxC,IAAiB,EAAuB,gBACxC,IAAoB,EAAuB,mBAC3C,KAAoB,EAAuB;GAC7C,KAAO;GACP,IAAI,KAAO;IACG;IACF;IACE;IACD;IACK;IACL;GACb;GACA,IAAI,GAAQ,EAAI,GAAG;IAIjB,IAAI,GACF,MAAU,MAAM,8DAA+D;IAEjF,IAAI,OAAO,KAAa,UACtB,MAAU,MAAM,4DAA6D;IAE/E,KAAO,GAAW,EAAI;GACxB;GACA,IAAI,IAAO;IACQ;IACC;IACA;GACpB;GACA,AAAI,EAAQ,CAAI,MACd,KAAO,GAAW,GAAM,EACtB,uBAAuB,GACzB,CAAC;GAEH,IAAI,IAAS;IACE;IACA;IACI;IACA;IACC;IACA;IACF;IACA;IACG;IACA;GACrB;GAIA,AAHI,GAAU,CAAM,MAClB,KAAO,GAAa,CAAM,IAE5B,KAAO;EACT;CAEJ;CAEA,OADA,KAAO,WACA;AACT;;;AC1OA,SAAwB,GAA+B,GAAa;CAClE,IAAI,CAAC,GACH,MAAU,MAAM,2BAA2B;CAI7C,IAAI,IAAY,EAAY,YAAY,CAAC,CAAC,QAAQ,QAAQ,EAAE;CAC5D,IAAI,CAAC,GACH,MAAU,MAAM,gCAAgC,CAAW;CAE7D,OAAO;AACT;;;ACXA,SAASG,EAAQ,GAAG;CAAE;CAA2B,OAAO,IAAwB,OAAO,UAArB,cAA2C,OAAO,OAAO,YAA1B,WAAqC,SAAU,GAAG;EAAE,OAAO,OAAO;CAAG,IAAI,SAAU,GAAG;EAAE,OAAO,KAAmB,OAAO,UAArB,cAA+B,EAAE,gBAAgB,UAAU,MAAM,OAAO,YAAY,WAAW,OAAO;CAAG,GAAGA,EAAQ,CAAC;AAAG;AAC7T,SAASC,GAAgC,GAAG,GAAG;CAAE,IAAI,IAAmB,OAAO,SAAtB,OAAgC,EAAE,OAAO,aAAa,EAAE;CAAe,IAAI,GAAG,QAAQ,IAAI,EAAE,KAAK,CAAC,EAAA,CAAG,KAAK,KAAK,CAAC;CAAG,IAAI,MAAM,QAAQ,CAAC,MAAM,IAAIC,GAA4B,CAAC,MAAM,KAAK,KAAiB,OAAO,EAAE,UAArB,UAA6B;EAAE,MAAM,IAAI;EAAI,IAAI,IAAI;EAAG,OAAO,WAAY;GAAE,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,CAAC,EAAE,IAAI;IAAE,MAAM,CAAC;IAAG,OAAO,EAAE;GAAK;EAAG;CAAG;CAAE,MAAU,UAAU,uIAAuI;AAAG;AACziB,SAAS,GAAmB,GAAG;CAAE,OAAO,GAAmB,CAAC,KAAK,GAAiB,CAAC,KAAKA,GAA4B,CAAC,KAAK,GAAmB;AAAG;AAChJ,SAAS,KAAqB;CAAE,MAAU,UAAU,sIAAsI;AAAG;AAC7L,SAASA,GAA4B,GAAG,GAAG;CAAE,IAAI,GAAG;EAAE,IAAgB,OAAO,KAAnB,UAAsB,OAAOC,GAAkB,GAAG,CAAC;EAAG,IAAI,IAAI,CAAC,EAAE,SAAS,KAAK,CAAC,CAAC,CAAC,MAAM,GAAG,EAAE;EAAG,OAAoB,MAAb,YAAkB,EAAE,gBAAgB,IAAI,EAAE,YAAY,OAAiB,MAAV,SAAyB,MAAV,QAAc,MAAM,KAAK,CAAC,IAAoB,MAAhB,eAAqB,2CAA2C,KAAK,CAAC,IAAIA,GAAkB,GAAG,CAAC,IAAI,KAAK;CAAG;AAAE;AACzX,SAAS,GAAiB,GAAG;CAAE,IAAmB,OAAO,SAAtB,OAAwC,EAAE,OAAO,aAAjB,QAAsC,EAAE,iBAAV,MAAyB,OAAO,MAAM,KAAK,CAAC;AAAG;AAChJ,SAAS,GAAmB,GAAG;CAAE,IAAI,MAAM,QAAQ,CAAC,GAAG,OAAOA,GAAkB,CAAC;AAAG;AACpF,SAASA,GAAkB,GAAG,GAAG;CAAE,CAAS,KAAR,QAAa,IAAI,EAAE,YAAY,IAAI,EAAE;CAAS,KAAK,IAAI,IAAI,GAAG,IAAI,MAAM,CAAC,GAAG,IAAI,GAAG,KAAK,EAAE,KAAK,EAAE;CAAI,OAAO;AAAG;AACnJ,SAASC,GAAQ,GAAG,GAAG;CAAE,IAAI,IAAI,OAAO,KAAK,CAAC;CAAG,IAAI,OAAO,uBAAuB;EAAE,IAAI,IAAI,OAAO,sBAAsB,CAAC;EAAG,MAAM,IAAI,EAAE,OAAO,SAAU,GAAG;GAAE,OAAO,OAAO,yBAAyB,GAAG,CAAC,CAAC,CAAC;EAAY,CAAC,IAAI,EAAE,KAAK,MAAM,GAAG,CAAC;CAAG;CAAE,OAAO;AAAG;AAC9P,SAASC,GAAc,GAAG;CAAE,KAAK,IAAI,IAAI,GAAG,IAAI,UAAU,QAAQ,KAAK;EAAE,IAAI,IAAY,UAAU,MAAlB,OAAsC,CAAC,IAAhB,UAAU;EAAS,IAAI,IAAID,GAAQ,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,QAAQ,SAAU,GAAG;GAAE,GAAgB,GAAG,GAAG,EAAE,EAAE;EAAG,CAAC,IAAI,OAAO,4BAA4B,OAAO,iBAAiB,GAAG,OAAO,0BAA0B,CAAC,CAAC,IAAIA,GAAQ,OAAO,CAAC,CAAC,CAAC,CAAC,QAAQ,SAAU,GAAG;GAAE,OAAO,eAAe,GAAG,GAAG,OAAO,yBAAyB,GAAG,CAAC,CAAC;EAAG,CAAC;CAAG;CAAE,OAAO;AAAG;AACtb,SAASE,GAAgB,GAAG,GAAG,GAAG;CAAE,QAAQ,IAAIC,GAAe,CAAC,MAAM,IAAI,OAAO,eAAe,GAAG,GAAG;EAAE,OAAO;EAAG,YAAY,CAAC;EAAG,cAAc,CAAC;EAAG,UAAU,CAAC;CAAE,CAAC,IAAI,EAAE,KAAK,GAAG;AAAG;AACnL,SAASA,GAAe,GAAG;CAAE,IAAI,IAAIC,GAAa,GAAG,QAAQ;CAAG,OAAmBR,EAAQ,CAAC,KAArB,WAAyB,IAAI,IAAI;AAAI;AAC5G,SAASQ,GAAa,GAAG,GAAG;CAAE,IAAgBR,EAAQ,CAAC,KAArB,YAA0B,CAAC,GAAG,OAAO;CAAG,IAAI,IAAI,EAAE,OAAO;CAAc,IAAe,MAAX,KAAK,GAAS;EAAE,IAAI,IAAI,EAAE,KAAK,GAAG,KAAK,SAAS;EAAG,IAAgBA,EAAQ,CAAC,KAArB,UAAwB,OAAO;EAAG,MAAU,UAAU,8CAA8C;CAAG;CAAE,QAAqB,MAAb,WAAiB,SAAS,OAAA,CAAQ,CAAC;AAAG;AAG3T,IAAA,KAAe,EACb,OAAO;CACL,WAAW;EACT,uBAAuB,EACrB,QAAQ,SAAgB,GAAe;GACrC,IAAI,IAAe,EAAc,IAAI,SAAU,GAAc;IAC3D,OAAO,EAAa;GACtB,CAAC;GACD,IAAI,EAAa,KAAK,OAAO,GAC3B,OAAO,GAAmB,CAAY;EAE1C,EACF;EACA,+BAA+B,EAC7B,QAAQ,SAAgB,GAAc,GAAM;GAE9B,AADK,EAAK,YACV,EAAK;GACjB,IAAI,IAAS,EAAa;GAC1B,IAAI,GACF,OAAO,GAAoB,EACjB,UACV,CAAC;EAEL,EACF;EACA,0CAA0C,EACxC,QAAQ,SAAgB,GAAc,GAAO;GAC3C,IAAI,IAAa,EAAM;GACX,EAAM;GAClB,IAAI,IAAS,EAAa;GAC1B,IAAI,GACF,OAAO,GAAwB;IACrB;IACI;GACd,CAAC;EAEL,EACF;CACF;CACA,OAAO,EACL,OAAO,SAAe,GAAe,GAAO;EAC/B,EAAM;EACjB,IAAI,IAAe,EAAc,IAAI,SAAU,GAAc;GAC3D,OAAO,EAAa;EACtB,CAAC;EACD,IAAI,EAAa,KAAK,OAAO,GAC3B,OAAO,EAAa,IAAI,SAAU,GAAQ,GAAY;GASpD,OARI,IACK,EAAO,OAAO,SAAU,GAAe,GAAO,GAAY;IAC/D,OAAOK,GAAcA,GAAc,CAAC,GAAG,CAAa,GAAG,CAAC,GAAGC,GAAgB,CAAC,GAAG,YAAmB,GAAiB,GAAO;KAC5G;KACA;IACd,CAAC,KAAI,EAAM,OAAO,CAAC;GACrB,GAAG,CAAC,CAAC,IAEA,CAAC;EACV,CAAC,CAAC,CAAC,OAAO,SAAU,GAAkB,GAAoB;GACxD,OAAOD,GAAcA,GAAc,CAAC,GAAG,CAAgB,GAAG,CAAkB;EAC9E,GAAG,CAAC,CAAC;CAET,EACF;AACF,EACF;AACA,SAAS,GAAmB,GAAc;CAkBxC,KAAK,IAhBD,IAAsB,EAAa,OAAO,SAAU,GAAK,GAAQ;EACnE,OAAO,CAAC,CAAC,CAAC,OAAO,GAAmB,CAAG,GAAG,GAAmB,KAAU,CAAC,CAAC,CAAC;CAC5E,GAAG,CAAC,CAAC,GACD,IAAM,IAaD,IAAYJ,GAAgC,GAA6B,CAAmB,CAAC,GAAG,GAAO,EAAE,IAAQ,EAAU,EAAA,CAAG,OAAO;EAC5I,IAAI,IAAc,EAAM,OACtB,IAAgB,EAAY,eAC5B,IAAc,EAAY;EAC5B,KAAO,uBAA+B,mBAA2C;CACnF;CACA,OAAO;AACT;AACA,SAAS,GAA6B,GAAQ;CAc5C,KAAK,IAbD,IAA4B,CAAC,GAC7B,IAA8B,SAAqC,GAAO;EAC5E,IAAI,IAAgB,GAA+B,EAAM,WAAW;EAIpE,AAHuC,EAA0B,KAAK,SAAU,GAAG;GACjF,OAAO,EAAE,kBAAkB;EAC7B,CACoC,KAClC,EAA0B,KAAK;GACd;GACf,aAAa,EAAM;EACrB,CAAC;CAEL,GACS,IAAaA,GAAgC,CAAM,GAAG,GAAQ,EAAE,IAAS,EAAW,EAAA,CAAG,OAAO;EACrG,IAAI,IAAQ,EAAO;EACnB,EAA4B,CAAK;CACnC;CACA,OAAO;AACT;AACA,SAAS,GAAiB,GAAO,GAAO;CACtC,IAAI,IAAa,EAAM,YACrB,IAAa,EAAM;CAGrB,OAAO,QAFW,IAAa,UACb,IAAa,KAC8C,GAA+B,EAAM,WAAW;AAC/H;AACA,SAAS,GAAoB,GAAO;CAwDlC,KAAK,IAvDD,IAAS,EAAM,QACf,IAAM,IACN,IAAI,GACJ,IAAQ,WAAiB;EAC3B,IAAI,IAAQ,EAAO,OAEf,IAAU,IAAI,GACd,IAAU,SAAiB,GAAI;GACjC,OAAO,GAAS,GAAI,EAAM,GAAG;EAC/B;EA4CA,AApCA,KAAO,uBACP,KAAO,cACP,KAAO,YAAmB,EAAM,OAAO,SAAS,eAChD,KAAO,eAAsB,OAAO,EAAM,WAAY,WAAW,EAAQ,EAAM,OAAO,IAAI,kBAC1F,KAAO,YAAmB,EAAM,OAAO,MAAM,eAC7C,KAAO,eAAsB,OAAO,EAAM,WAAY,WAAW,EAAQ,EAAM,OAAO,IAAI,kBAC1F,KAAO,eACP,KAAO,gBAAwB,EAAQ,EAAM,KAAK,UAAsB,EAAQ,EAAM,MAAM,QAC5F,KAAO,aACP,KAAO,iBACP,KAAO,kBAA0B,YAA8B,EAAM,QAAQ,EAAuB,EAAM,KAAK,IAAI,aAAa,aAA+B,EAAM,cAAc,EAAuB,EAAM,WAAW,IAAI,SAC/N,KAAO,kBAEP,KAAO,sCACP,KAAO,mBACP,KAAO,kBACP,KAAO,kBAGP,KAAO,4GAAsH,uBAG7H,KAAO,eACP,KAAO,iBACP,KAAO,gBACP,KAAO,mBAGP,KAAO,cACP,KAAO,8BACP,KAAO,cACP,KAAO,iBACP,KAAO,eACP,KAAO,cACP,KAAO,qBACP,KAAO,wBACP;CACF,GACS,IAAaA,GAAgC,CAAM,GAAG,GAAQ,EAAE,IAAS,EAAW,EAAA,CAAG,OAC9F,EAAM;CAER,OAAO;AACT;AACA,SAAS,GAAwB,GAAO;CACtC,IAAI,IAAS,EAAM,QACjB,IAAa,EAAM;CACrB,OAAO,EAAO,IAAI,SAAU,GAAO,GAAG;EAEpC,OAAO,+BADO,IAAI,wGACwJ,GAAiB,GAAO;GACpL;GACZ,YAAY;EACd,CAAC;CACH,CAAC,CAAC,CAAC,KAAK,EAAE;AACZ;AAMA,IAAI,KAAsB,IACtB,KAAoB;AACxB,SAAS,GAAS,GAAI,GAAU;CAC9B,IAAI,IAAa;CACjB,OAAO,KAAK,MAAM,IAAK,QAAQ,KAAsB,MAAe,KAAoB,EAAS;AACnG;;;AC/MA,SAAwB,GAAe,GAAK,GAAS,GAAgB;CAInE,OAHI,EAAQ,iBACH,EAAI,MAAM,GAAG,EAAQ,oBAAoB,IAAI,IAAiB,EAAI,MAAM,EAAQ,qBAAqB,CAAC,IAExG,EAAI,MAAM,GAAG,EAAQ,oBAAoB,IAAI,IAAiB,EAAI,MAAM,EAAQ,qBAAqB,CAAC;AAC/G;;;ACDA,SAAwB,GAAyB,GAAK,GAAS,GAAkB;CAC/E,IAAI,IAAU,EAAY,GAAuB,GAAK,CAAgB,GAAG,CAAO;CAChF,IAAI,GAEF,OADA,GAA4B,GAAS,CAAgB,GAC9C;AAEX;;;ACNA,IAAA,KAAe,EACb,OAAO,EACL,WAAW;CACT,+BAA+B,EAC7B,WAAW,SAAmB,GAAK,GAAc,GAAM;EACrD,IAAI,IAAa,EAAK,YACpB,IAAU,EAAK;EACjB,IAAI,GAAuB,CAAY,GAAG;GACxC,IAAI,IAAkB,EAAa,iBACjC,IAAqB,EAAa,oBAChC,IAAiB;IAGnB,QAAQ,KAAmB;IAG3B,QAAQ,KAAsB;IAE9B,aAAa,EAAe,KAAmB,GAAG,KAAsB,CAAC;IAGzE,YAAY;IAMZ,OAAO;GACT,GACI,IAAmB,EAAY,GAAK,WAAW;GACnD,IAAI,GAAkB;IAGpB,IAAI,IAAc,GAAyB,GAAK,QAAQ,CAAgB,GACpE,IAAU,EAAwB,QAAQ,CAAc;IAC5D,AAOE,IAPE,IAII,GAAe,GAAK,GAAa,CAAO,IAGxC,EAA0B,GAAK,GAAkB,CAAO;GAElE,OAAO;IAIL,IADwB,EAAY,GAAK,YACrB,GAClB,MAAU,MAAM,sBAA6B,sFAA+F;IAE9I,IAAI,IAAsB;KACxB,aAAa,QAAe;KAE5B,gBAAgB;IAClB,GACI,IAAgB,EAAoB,YAAY,IAAI,EAAoB,aAAa,CAAmB,IAAI,EAAwB,QAAQ,CAAc,IAAI,EAAoB,aAAa,CAAmB,IAAI,EAAoB,YAAY,GAItP,IAAmB,EAAY,GAAK,WAAW;IACnD,IAAM,GAA2B,GAAK,GAAkB,CAAa;GACvE;EACF;EACA,OAAO;CACT,EACF;CACA,mBAAmB,EACjB,WAAW,SAAmB,GAAK,GAAe;EAGhD,IAAI,EAAc,KAAK,EAAsB,KAKvC,CADsB,EAAY,GAAK,cACpB,GAAG;GAIxB,IADuB,EAAY,GAAK,WACrB,GACjB,MAAU,MAAM,kGAAkG;GAKpH,OAAO,GAA8C,GAAK,0CAA0C,GAAmB,mBAAmB,UAAU,GAAG,UAAU;EACnK;EAEF,OAAO;CACT,EACF;AACF,EACF,EACF;AACA,SAAS,GAAuB,GAAc;CAC5C,OAAO,EAAQ,EAAa,mBAAoB,EAAQ,EAAa;AACvE;;;ACzGA,SAAwB,GAAY,GAAgB;CAClD,IAAI,IAAW,CAAC;CAiBhB,OAdA,EAAS,KAAKQ,EAAqB,GAGnC,EAAS,KAAKC,EAAM,GAGpB,EAAS,KAAKC,EAAmB,GAI7B,MACF,EAAe,QAAQ,EAAe,GACtC,IAAW,EAAS,OAAO,CAAc,IAEpC;AACT;AACA,IAAI,KAAsB;CAAC;CAAuB;CAAe;CAAiB;CAAmB;CAA8B;CAA+B;CAA0C;CAA+B;AAAwC;AACnR,SAAS,GAAgB,GAAS;CAChC,IAAI,EAAQ,SAAS,EAAQ,MAAM,WACjC,KAAK,IAAI,IAAK,GAAG,IAAe,OAAO,KAAK,EAAQ,MAAM,SAAS,GAAG,IAAK,EAAa,QAAQ,KAAM;EACpG,IAAI,IAAM,EAAa;EACvB,IAAI,GAAoB,QAAQ,CAAG,IAAI,GACrC,MAAU,MAAM,8BAAqC,GAAI;CAE7D;AAEJ;;;ACjCA,SAASC,GAAgC,GAAG,GAAG;CAAE,IAAI,IAAmB,OAAO,SAAtB,OAAgC,EAAE,OAAO,aAAa,EAAE;CAAe,IAAI,GAAG,QAAQ,IAAI,EAAE,KAAK,CAAC,EAAA,CAAG,KAAK,KAAK,CAAC;CAAG,IAAI,MAAM,QAAQ,CAAC,MAAM,IAAIC,GAA4B,CAAC,MAAM,KAAK,KAAiB,OAAO,EAAE,UAArB,UAA6B;EAAE,MAAM,IAAI;EAAI,IAAI,IAAI;EAAG,OAAO,WAAY;GAAE,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,CAAC,EAAE,IAAI;IAAE,MAAM,CAAC;IAAG,OAAO,EAAE;GAAK;EAAG;CAAG;CAAE,MAAU,UAAU,uIAAuI;AAAG;AACziB,SAASA,GAA4B,GAAG,GAAG;CAAE,IAAI,GAAG;EAAE,IAAgB,OAAO,KAAnB,UAAsB,OAAOC,GAAkB,GAAG,CAAC;EAAG,IAAI,IAAI,CAAC,EAAE,SAAS,KAAK,CAAC,CAAC,CAAC,MAAM,GAAG,EAAE;EAAG,OAAoB,MAAb,YAAkB,EAAE,gBAAgB,IAAI,EAAE,YAAY,OAAiB,MAAV,SAAyB,MAAV,QAAc,MAAM,KAAK,CAAC,IAAoB,MAAhB,eAAqB,2CAA2C,KAAK,CAAC,IAAIA,GAAkB,GAAG,CAAC,IAAI,KAAK;CAAG;AAAE;AACzX,SAASA,GAAkB,GAAG,GAAG;CAAE,CAAS,KAAR,QAAa,IAAI,EAAE,YAAY,IAAI,EAAE;CAAS,KAAK,IAAI,IAAI,GAAG,IAAI,MAAM,CAAC,GAAG,IAAI,GAAG,KAAK,EAAE,KAAK,EAAE;CAAI,OAAO;AAAG;AACnJ,SAAwB,GAAkB,GAAM;CAC9C,IAAI,CAAC,MAAM,QAAQ,CAAI,GACrB,MAAU,UAAU,4CAA4C;CAElE,KAAK,IAAI,IAAYF,GAAgC,CAAI,GAAG,GAAO,EAAE,IAAQ,EAAU,EAAA,CAAG,OAAO;EAC/F,IAAI,IAAM,EAAM;EAChB,IAAI,MAAM,QAAQ,CAAG,GACnB;EAEA,MAAU,MAAM,6CAA6C;CAEjE;AACF;;;ACfA,SAAwB,KAA0B;CAChD,IAAI,IAAgB,CAAC,GACjB,IAAyB,CAAC;CAC9B,OAAO;EACL,kBAAkB,WAA4B;GAC5C,OAAO;EACT;EACA,0BAA0B,SAAkC,GAAQ;GAClE,IAAI,IAAK,EAAuB;GAMhC,OALI,MAAO,KAAA,MACT,IAAK,EAAc,QACnB,EAAuB,KAAU,GACjC,EAAc,KAAK,CAAM,IAEpB;EACT;CACF;AACF;;;ACZA,IAAI,KAAmC;AACvC,SAAwB,GAAkB,GAAW;CACnD,IAAI,CAAC,GACH,MAAU,MAAM,2BAA4B;CAE9C,IAAI,EAAU,SAAS,IACrB,MAAU,MAAM,eAAuB,uCAAmD;CAE5F,IAAI,GAAiC,KAAK,CAAS,GACjD,MAAU,MAAM,eAAuB,0CAAsD;AAEjG;;;AChBA,SAASG,GAAgC,GAAG,GAAG;CAAE,IAAI,IAAmB,OAAO,SAAtB,OAAgC,EAAE,OAAO,aAAa,EAAE;CAAe,IAAI,GAAG,QAAQ,IAAI,EAAE,KAAK,CAAC,EAAA,CAAG,KAAK,KAAK,CAAC;CAAG,IAAI,MAAM,QAAQ,CAAC,MAAM,IAAIC,GAA4B,CAAC,MAAM,KAAK,KAAiB,OAAO,EAAE,UAArB,UAA6B;EAAE,MAAM,IAAI;EAAI,IAAI,IAAI;EAAG,OAAO,WAAY;GAAE,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,CAAC,EAAE,IAAI;IAAE,MAAM,CAAC;IAAG,OAAO,EAAE;GAAK;EAAG;CAAG;CAAE,MAAU,UAAU,uIAAuI;AAAG;AACziB,SAASA,GAA4B,GAAG,GAAG;CAAE,IAAI,GAAG;EAAE,IAAgB,OAAO,KAAnB,UAAsB,OAAOC,GAAkB,GAAG,CAAC;EAAG,IAAI,IAAI,CAAC,EAAE,SAAS,KAAK,CAAC,CAAC,CAAC,MAAM,GAAG,EAAE;EAAG,OAAoB,MAAb,YAAkB,EAAE,gBAAgB,IAAI,EAAE,YAAY,OAAiB,MAAV,SAAyB,MAAV,QAAc,MAAM,KAAK,CAAC,IAAoB,MAAhB,eAAqB,2CAA2C,KAAK,CAAC,IAAIA,GAAkB,GAAG,CAAC,IAAI,KAAK;CAAG;AAAE;AACzX,SAASA,GAAkB,GAAG,GAAG;CAAE,CAAS,KAAR,QAAa,IAAI,EAAE,YAAY,IAAI,EAAE;CAAS,KAAK,IAAI,IAAI,GAAG,IAAI,MAAM,CAAC,GAAG,IAAI,GAAG,KAAK,EAAE,KAAK,EAAE;CAAI,OAAO;AAAG;AAInJ,SAAwB,GAAiB,GAAY,GAAe,GAAe;CAuBjF,KAAK,IAtBD,IAAwB,GAAwB,GAClD,IAAmB,EAAsB,kBACzC,IAA2B,EAAsB,0BAS/C,IAAc,GAAe,CAAa,GAC1C,IAAoB,GAAiB,CAAW,GAClD,IAAgB,EAAkB,eAClC,IAAwB,EAAkB,uBAGxC,IAAa,EAAc,IAAI,SAAU,GAAc;EACzD,OAAO,EAAa;CACtB,CAAC,GAGQ,IAAYF,GAAgC,CAAU,GAAG,GAAO,EAAE,IAAQ,EAAU,EAAA,CAAG,OAAO;EACrG,IAAI,IAAY,EAAM;EACtB,GAAkB,CAAS;CAC7B;CAGA,KAFA,IAAI,IAAqB,CAAC,GACtB,IAAa,GACV,IAAa,EAAW,SAY7B,AAXA,EAAmB,KAAK;EACtB,WAAW,EAAW;EACtB,cAAc,EAAc;EAChB;EACZ,SAAS,GAAW,CAAU;EAC9B,gBAAgB,EAAQ;EAGD;EACG;CAC5B,CAAC,GACD;CAEF,OAAO;EACL,QAAQ,EAAW,IAAI,SAAU,GAAW,GAAI;GAG9C,IAAI,IAAa;GACjB,OAAO;IACL,SAAS,GAAW,CAAU;IACnB;IACX,oBAAoB,EAAmB;GACzC;EACF,CAAC;EACiB;EACH;CACjB;AACF;AACA,SAAS,GAAW,GAAY;CAC9B,OAAO,OAAO,IAAa,CAAC;AAC9B;AACA,SAAS,GAAe,GAAe;CACrC,IAAI,IAAa,EAAc,YAC7B,IAAW,EAAc;CAC3B,IAAI,KAAc,OAAO,KAAa,UACpC,OAAO;EACO;EACF;CACZ;AAEJ;;;AC5EA,SAAwB,GAAa,GAAS,GAAS;CAErD,IAAI;CAYJ,OARI,EAAQ,KAAK,SAAU,GAAQ;EACjC,OAAO,EAAO;CAChB,CAAC,MACC,IAAY,EAAQ,IAAI,SAAU,GAAM;EAEtC,OADa,EAAK,UACD;CACnB,CAAC,KAEK,IAAY,CAAC,CAAS,IAAI,CAAC,EAAA,CAAG,OAAO,EAAQ,IAAI,SAAU,GAAQ,GAAa;EACtF,OAAO,EAAQ,IAAI,SAAU,GAAO;GAClC,IAAI,IAAO,EAAM;GACjB,OAAO,EAAK,GAAQ,CAAW;EACjC,CAAC;CACH,CAAC,CAAC;AACJ;;;ACpBA,SAASG,EAAQ,GAAG;CAAE;CAA2B,OAAO,IAAwB,OAAO,UAArB,cAA2C,OAAO,OAAO,YAA1B,WAAqC,SAAU,GAAG;EAAE,OAAO,OAAO;CAAG,IAAI,SAAU,GAAG;EAAE,OAAO,KAAmB,OAAO,UAArB,cAA+B,EAAE,gBAAgB,UAAU,MAAM,OAAO,YAAY,WAAW,OAAO;CAAG,GAAGA,EAAQ,CAAC;AAAG;AAC7T,SAASC,GAAQ,GAAG,GAAG;CAAE,IAAI,IAAI,OAAO,KAAK,CAAC;CAAG,IAAI,OAAO,uBAAuB;EAAE,IAAI,IAAI,OAAO,sBAAsB,CAAC;EAAG,MAAM,IAAI,EAAE,OAAO,SAAU,GAAG;GAAE,OAAO,OAAO,yBAAyB,GAAG,CAAC,CAAC,CAAC;EAAY,CAAC,IAAI,EAAE,KAAK,MAAM,GAAG,CAAC;CAAG;CAAE,OAAO;AAAG;AAC9P,SAASC,GAAc,GAAG;CAAE,KAAK,IAAI,IAAI,GAAG,IAAI,UAAU,QAAQ,KAAK;EAAE,IAAI,IAAY,UAAU,MAAlB,OAAsC,CAAC,IAAhB,UAAU;EAAS,IAAI,IAAID,GAAQ,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,QAAQ,SAAU,GAAG;GAAE,GAAgB,GAAG,GAAG,EAAE,EAAE;EAAG,CAAC,IAAI,OAAO,4BAA4B,OAAO,iBAAiB,GAAG,OAAO,0BAA0B,CAAC,CAAC,IAAIA,GAAQ,OAAO,CAAC,CAAC,CAAC,CAAC,QAAQ,SAAU,GAAG;GAAE,OAAO,eAAe,GAAG,GAAG,OAAO,yBAAyB,GAAG,CAAC,CAAC;EAAG,CAAC;CAAG;CAAE,OAAO;AAAG;AACtb,SAASE,GAAgB,GAAG,GAAG,GAAG;CAAE,QAAQ,IAAIC,GAAe,CAAC,MAAM,IAAI,OAAO,eAAe,GAAG,GAAG;EAAE,OAAO;EAAG,YAAY,CAAC;EAAG,cAAc,CAAC;EAAG,UAAU,CAAC;CAAE,CAAC,IAAI,EAAE,KAAK,GAAG;AAAG;AACnL,SAASA,GAAe,GAAG;CAAE,IAAI,IAAIC,GAAa,GAAG,QAAQ;CAAG,OAAmBL,EAAQ,CAAC,KAArB,WAAyB,IAAI,IAAI;AAAI;AAC5G,SAASK,GAAa,GAAG,GAAG;CAAE,IAAgBL,EAAQ,CAAC,KAArB,YAA0B,CAAC,GAAG,OAAO;CAAG,IAAI,IAAI,EAAE,OAAO;CAAc,IAAe,MAAX,KAAK,GAAS;EAAE,IAAI,IAAI,EAAE,KAAK,GAAG,KAAK,SAAS;EAAG,IAAgBA,EAAQ,CAAC,KAArB,UAAwB,OAAO;EAAG,MAAU,UAAU,8CAA8C;CAAG;CAAE,QAAqB,MAAb,WAAiB,SAAS,OAAA,CAAQ,CAAC;AAAG;AAC3T,SAASM,GAAgC,GAAG,GAAG;CAAE,IAAI,IAAmB,OAAO,SAAtB,OAAgC,EAAE,OAAO,aAAa,EAAE;CAAe,IAAI,GAAG,QAAQ,IAAI,EAAE,KAAK,CAAC,EAAA,CAAG,KAAK,KAAK,CAAC;CAAG,IAAI,MAAM,QAAQ,CAAC,MAAM,IAAIC,GAA4B,CAAC,MAAM,KAAK,KAAiB,OAAO,EAAE,UAArB,UAA6B;EAAE,MAAM,IAAI;EAAI,IAAI,IAAI;EAAG,OAAO,WAAY;GAAE,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,CAAC,EAAE,IAAI;IAAE,MAAM,CAAC;IAAG,OAAO,EAAE;GAAK;EAAG;CAAG;CAAE,MAAU,UAAU,uIAAuI;AAAG;AACziB,SAASA,GAA4B,GAAG,GAAG;CAAE,IAAI,GAAG;EAAE,IAAgB,OAAO,KAAnB,UAAsB,OAAOC,GAAkB,GAAG,CAAC;EAAG,IAAI,IAAI,CAAC,EAAE,SAAS,KAAK,CAAC,CAAC,CAAC,MAAM,GAAG,EAAE;EAAG,OAAoB,MAAb,YAAkB,EAAE,gBAAgB,IAAI,EAAE,YAAY,OAAiB,MAAV,SAAyB,MAAV,QAAc,MAAM,KAAK,CAAC,IAAoB,MAAhB,eAAqB,2CAA2C,KAAK,CAAC,IAAIA,GAAkB,GAAG,CAAC,IAAI,KAAK;CAAG;AAAE;AACzX,SAASA,GAAkB,GAAG,GAAG;CAAE,CAAS,KAAR,QAAa,IAAI,EAAE,YAAY,IAAI,EAAE;CAAS,KAAK,IAAI,IAAI,GAAG,IAAI,MAAM,CAAC,GAAG,IAAI,GAAG,KAAK,EAAE,KAAK,EAAE;CAAI,OAAO;AAAG;AACnJ,SAAwB,GAAgB,GAAU,GAAe,GAAM;CAGrE,KAAK,IAFD,IAAO,EAAK,MACZ,IAAe,CAAC,GACX,IAAYF,GAAgC,CAAQ,GAAG,GAAO,EAAE,IAAQ,EAAU,EAAA,CAAG,OAAO;EACnG,IAAI,IAAU,EAAM;EACpB,IAAI,EAAQ,SAAS,EAAQ,MAAM,SAC7B,EAAQ,MAAM,MAAM,OAAO;GAC7B,IAAI,IAAQ,EAAQ,MAAM,MAAM,MAAM,GAAe,EAC7C,QACR,CAAC;GACD,AAAI,MACF,IAAeJ,GAAcA,GAAc,CAAC,GAAG,CAAY,GAAG,CAAK;EAEvE;CAEJ;CACA,OAAO;AACT;;;AC1BA,SAAS,EAAQ,GAAG;CAAE;CAA2B,OAAO,IAAwB,OAAO,UAArB,cAA2C,OAAO,OAAO,YAA1B,WAAqC,SAAU,GAAG;EAAE,OAAO,OAAO;CAAG,IAAI,SAAU,GAAG;EAAE,OAAO,KAAmB,OAAO,UAArB,cAA+B,EAAE,gBAAgB,UAAU,MAAM,OAAO,YAAY,WAAW,OAAO;CAAG,GAAG,EAAQ,CAAC;AAAG;AAC7T,IAAI,KAAY,CAAC,MAAM;AACvB,SAAS,GAAQ,GAAG,GAAG;CAAE,IAAI,IAAI,OAAO,KAAK,CAAC;CAAG,IAAI,OAAO,uBAAuB;EAAE,IAAI,IAAI,OAAO,sBAAsB,CAAC;EAAG,MAAM,IAAI,EAAE,OAAO,SAAU,GAAG;GAAE,OAAO,OAAO,yBAAyB,GAAG,CAAC,CAAC,CAAC;EAAY,CAAC,IAAI,EAAE,KAAK,MAAM,GAAG,CAAC;CAAG;CAAE,OAAO;AAAG;AAC9P,SAAS,EAAc,GAAG;CAAE,KAAK,IAAI,IAAI,GAAG,IAAI,UAAU,QAAQ,KAAK;EAAE,IAAI,IAAY,UAAU,MAAlB,OAAsC,CAAC,IAAhB,UAAU;EAAS,IAAI,IAAI,GAAQ,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,QAAQ,SAAU,GAAG;GAAE,GAAgB,GAAG,GAAG,EAAE,EAAE;EAAG,CAAC,IAAI,OAAO,4BAA4B,OAAO,iBAAiB,GAAG,OAAO,0BAA0B,CAAC,CAAC,IAAI,GAAQ,OAAO,CAAC,CAAC,CAAC,CAAC,QAAQ,SAAU,GAAG;GAAE,OAAO,eAAe,GAAG,GAAG,OAAO,yBAAyB,GAAG,CAAC,CAAC;EAAG,CAAC;CAAG;CAAE,OAAO;AAAG;AACtb,SAAS,GAAgB,GAAG,GAAG,GAAG;CAAE,QAAQ,IAAI,GAAe,CAAC,MAAM,IAAI,OAAO,eAAe,GAAG,GAAG;EAAE,OAAO;EAAG,YAAY,CAAC;EAAG,cAAc,CAAC;EAAG,UAAU,CAAC;CAAE,CAAC,IAAI,EAAE,KAAK,GAAG;AAAG;AACnL,SAAS,GAAe,GAAG;CAAE,IAAI,IAAI,GAAa,GAAG,QAAQ;CAAG,OAAmB,EAAQ,CAAC,KAArB,WAAyB,IAAI,IAAI;AAAI;AAC5G,SAAS,GAAa,GAAG,GAAG;CAAE,IAAgB,EAAQ,CAAC,KAArB,YAA0B,CAAC,GAAG,OAAO;CAAG,IAAI,IAAI,EAAE,OAAO;CAAc,IAAe,MAAX,KAAK,GAAS;EAAE,IAAI,IAAI,EAAE,KAAK,GAAG,KAAK,SAAS;EAAG,IAAgB,EAAQ,CAAC,KAArB,UAAwB,OAAO;EAAG,MAAU,UAAU,8CAA8C;CAAG;CAAE,QAAqB,MAAb,WAAiB,SAAS,OAAA,CAAQ,CAAC;AAAG;AAC3T,SAAS,GAAyB,GAAG,GAAG;CAAE,IAAY,KAAR,MAAW,OAAO,CAAC;CAAG,IAAI,GAAG,GAAG,IAAI,GAA8B,GAAG,CAAC;CAAG,IAAI,OAAO,uBAAuB;EAAE,IAAI,IAAI,OAAO,sBAAsB,CAAC;EAAG,KAAK,IAAI,GAAG,IAAI,EAAE,QAAQ,KAAK,IAAI,EAAE,IAAW,EAAE,QAAQ,CAAC,MAAlB,MAAuB,CAAC,EAAE,qBAAqB,KAAK,GAAG,CAAC,MAAM,EAAE,KAAK,EAAE;CAAK;CAAE,OAAO;AAAG;AACrU,SAAS,GAA8B,GAAG,GAAG;CAAE,IAAY,KAAR,MAAW,OAAO,CAAC;CAAG,IAAI,IAAI,CAAC;CAAG,KAAK,IAAI,KAAK,GAAG,IAAI,CAAC,EAAE,eAAe,KAAK,GAAG,CAAC,GAAG;EAAE,IAAW,EAAE,QAAQ,CAAC,MAAlB,IAAqB;EAAU,EAAE,KAAK,EAAE;CAAI;CAAE,OAAO;AAAG;AACtM,SAAS,GAAgC,GAAG,GAAG;CAAE,IAAI,IAAmB,OAAO,SAAtB,OAAgC,EAAE,OAAO,aAAa,EAAE;CAAe,IAAI,GAAG,QAAQ,IAAI,EAAE,KAAK,CAAC,EAAA,CAAG,KAAK,KAAK,CAAC;CAAG,IAAI,MAAM,QAAQ,CAAC,MAAM,IAAI,GAA4B,CAAC,MAAM,KAAK,KAAiB,OAAO,EAAE,UAArB,UAA6B;EAAE,MAAM,IAAI;EAAI,IAAI,IAAI;EAAG,OAAO,WAAY;GAAE,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,CAAC,EAAE,IAAI;IAAE,MAAM,CAAC;IAAG,OAAO,EAAE;GAAK;EAAG;CAAG;CAAE,MAAU,UAAU,uIAAuI;AAAG;AACziB,SAAS,GAA4B,GAAG,GAAG;CAAE,IAAI,GAAG;EAAE,IAAgB,OAAO,KAAnB,UAAsB,OAAO,GAAkB,GAAG,CAAC;EAAG,IAAI,IAAI,CAAC,EAAE,SAAS,KAAK,CAAC,CAAC,CAAC,MAAM,GAAG,EAAE;EAAG,OAAoB,MAAb,YAAkB,EAAE,gBAAgB,IAAI,EAAE,YAAY,OAAiB,MAAV,SAAyB,MAAV,QAAc,MAAM,KAAK,CAAC,IAAoB,MAAhB,eAAqB,2CAA2C,KAAK,CAAC,IAAI,GAAkB,GAAG,CAAC,IAAI,KAAK;CAAG;AAAE;AACzX,SAAS,GAAkB,GAAG,GAAG;CAAE,CAAS,KAAR,QAAa,IAAI,EAAE,YAAY,IAAI,EAAE;CAAS,KAAK,IAAI,IAAI,GAAG,IAAI,MAAM,CAAC,GAAG,IAAI,GAAG,KAAK,EAAE,KAAK,EAAE;CAAI,OAAO;AAAG;AA2BnJ,SAAwB,GAAyB,GAAM,GAAM,GAAM;CACjE,IAAI,IAAgB,GAAa,GAAM,GAAM,CAAI,GAC/C,IAAuB,EAAc,QACrC,IAAU,EAAc,SACtB,IAAa,EAAqB,IAAI,SAAU,GAAO;EACzD,OAAO,EAAM;CACf,CAAC,GACG,IAAgB,EAAqB,IAAI,SAAU,GAAO;EAC5D,OAAO,EAAM;CACf,CAAC;CAcD,AAbA,IAAgB,GAAc,CAAa,GAa3C,IAAgB,GAA2C,CAAa;CACxE,IAAI,IAAW,GAAY,EAAQ,QAAQ,GACvC,IAAQ,CAAC,GACT,IAAW,SAAkB,GAAM;EACrC,OAAO,EAAM;CACf,GAGI,IAAa,SAAoB,GAAc;EACjD,KAAK,IAAI,IAAK,GAAG,IAAe,OAAO,KAAK,CAAY,GAAG,IAAK,EAAa,QAAQ,KAAM;GACzF,IAAI,IAAO,EAAa;GAGxB,AAFA,GAAiB,CAAI,GACrB,GAAoB,GAAM,EAAa,EAAK,GAC5C,EAAM,KAAQ,EAAa;EAC7B;CACF,GACI,IAAoB,GAAiB,GAAY,GAAe,CAAO,GACzE,IAAS,EAAkB,QAC3B,IAAmB,EAAkB,kBACrC,IAAgB,EAAkB;CAmBpC,AAlBA,EAAM,yBAAyB,GAAwB;EACrD,UAAU,EAAO,IAAI,SAAU,GAAG;GAChC,OAAO,EAAE;EACX,CAAC;EACS;EACK;CACjB,CAAC,GACD,EAAM,iBAAiB,GAAgB;EAC3B;EACK;CACjB,CAAC,GACD,EAAM,gCAAgC,EAAwB;EAC5D,UAAU,EAAO,IAAI,SAAU,GAAG;GAChC,OAAO,EAAE;EACX,CAAC;EACS;EACK;CACjB,CAAC,GACD,EAAM,qBAAqB,GAAoB;EAC7C,kBAAkB,EAAO,IAAI,SAAU,GAAM;GAG3C,OAAO;IACL,SAHY,EAAK;IAIjB,WAHY,EAAK;GAInB;EACF,CAAC;EACS;EACK;CACjB,CAAC;CAED,KAAK,IADD,IAAa,GACR,IAAY,GAAgC,CAAM,GAAG,GAAO,EAAE,IAAQ,EAAU,EAAA,CAAG,OAAO;EACjG,IAAI,IAAc,EAAM,OACtB,IAAU,EAAY,SACtB,IAAqB,EAAY,oBAC/B,IAAe,EAAc;EAoBjC,AAnBA,EAAM,sBAA6B,WAAoB,GAAiB,GAAoB,CAAQ,GACpG,EAAM,4BAAmC,gBAAyB,GAAqB;GACzE;GACH;GACK;GACJ;EACZ,CAAC,GACD,EAAM,sBAA6B,WAAoB,GAAmB;GAC5D;GACH;GACK;GACJ;EACZ,CAAC,GACD,EAAM,4BAAmC,gBAAyB,GAAuB;GAC3E;GACH;GACK;GACJ;EACZ,CAAC,GACD;CACF;CAWA,OAVA,EAAW,GAAgB,GAAU,GAAe,EAClD,MAAM,EACR,CAAC,CAAC,GAGF,EAAM,mBAAmB,GAAkB,EAAc,GAAG,GAAe,CAAQ,GACnF,EAAM,0BAA0B,GAAyB,EAAiB,CAAC,GAG3E,GAAqB,GAAO,CAAM,GAC3B;AACT;AAWA,SAAS,GAAqB,GAAO,GAAQ;CAC3C,KAAK,IAAI,IAAa,GAAgC,CAAM,GAAG,GAAQ,EAAE,IAAS,EAAW,EAAA,CAAG,OAAO;EACrG,IAAI,IAAU,EAAO,MAAM;EAC3B,IAAI,EAAM,sBAA6B,aAAe,0OAA4C;GAGhG,IAFA,OAAO,EAAM,sBAA6B,UAC1C,OAAO,EAAM,4BAAmC,eAC5C,CAAC,GAAgB,GAAO,sBAA6B,SAAkBO,GAA4B,CAAuB,CAAC,GAC7H,MAAU,MAAM,EAAgC;GAGlD,AADA,GAAgB,GAAO,4BAAmC,cAAuB,GAA0B,CAAO,CAAC,GACnH,GAAgB,GAAO,uBAAuB,GAAyB,CAAO,CAAC;EACjF;CACF;AACF;AACA,IAAI,KAAmC;AACvC,SAAS,GAAgB,GAAO,GAAK,GAAW;CAC9C,IAAI,CAAC,EAAM,IACT,MAAU,MAAM,mBAA0B,GAAI;CAEhD,IAAI,EAAM,EAAI,CAAC,QAAQ,CAAS,IAAI,GAClC,MAAU,MAAM,cAAsB,oBAAwC,IAAU;CAE1F,IAAI,IAAsB,EAAM,IAC5B,IAAqB,EAAoB,QAAQ,GAAW,EAAE;CAElE,OADA,EAAM,KAAO,GACN,MAAwB;AACjC;AACA,SAAS,GAAiB,GAAM;CAC9B,IAAI,EAAK,OAAO,KACd,MAAU,MAAM,2CAA2C;AAE/D;AACA,SAAS,GAAoB,GAAM,GAAS;CAC1C,IAAI,CAAC,GACH,MAAU,MAAM,mCAAwC,GAAK;AAEjE;AACA,SAAS,GAAa,GAAM,GAAM,GAAM;CACtC,IAAI,MAAM,QAAQ,CAAI,GAAG;EACvB,IAAI,EAAK,WAAW,KAAK,MAAM,QAAQ,EAAK,EAAE,GAAG;GAI/C,IAFA,GAAkB,CAAI,GAElB,MAAM,QAAQ,EAAK,EAAE,KAAK,EAAK,SAAS,KAAK,MAAM,QAAQ,EAAK,EAAE,CAAC,EAAE,GACvE,MAAU,MAAM,mEAAmE;GAErF,OAAO;IACL,QAAQ,CAAC;KACP,MAAM;KACN,SAAS,KAAQ,CAAC;IACpB,CAAC;IACD,SAAS,KAAQ,CAAC;GACpB;EACF;EAAO,IAAI,EAAS,EAAK,EAAE,GAAG;GAG5B,IAAI,EAAS,CAAI,KAAK,MAAM,QAAQ,EAAK,MAAM,GAC7C,MAAU,MAAM,iEAAiE;GASnF,OAPI,EAAS,CAAI,KAAK,MAAM,QAAQ,EAAK,OAAO,IAIvC,GAAa,GAAa,GAAM,EAAK,OAAO,GAAG,GAAM,CAAI,IAG3D;IACL,QAAQ,EAAK,IAAI,SAAU,GAAO;KAChC,IAAI,IAAO,EAAM,MACf,IAAU,GAAyB,GAAO,EAAS;KACrD,IAAI,CAAC,GACH,MAAU,MAAM,4CAA4C;KAG9D,OADA,GAAkB,CAAI,GACf;MACC;MACN,SAAS,KAAW,CAAC;KACvB;IACF,CAAC;IACD,SAAS,KAAQ,CAAC;GACpB;EACF;EACE,MAAU,MAAM,uGAAuG;CAE3H;CACE,MAAU,MAAM,0CAA0C;AAE9D;AAGA,SAAS,GAAc,GAAe;CACpC,OAAO,EAAc,IAAI,SAAU,GAAc,GAAY;EAC3D,OAAO,EAAc,EAAc,CAAC,GAAG,CAAY,GAAG,CAAC,GAAG,EACxD,OAAO,EAAa,SAAS,QAAe,IAAa,IAC3D,CAAC;CACH,CAAC;AACH;AAGA,SAAS,GAA2C,GAAe;CACjE,IAAI,IAAc;CAClB,OAAO,EAAc,IAAI,SAAU,GAAc;EAC/C,OAAO,EAAc,EAAc,CAAC,GAAG,CAAY,GAAG,CAAC,GAAG,EACxD,uBAAuB,EAAa,yBAAyB,EAAa,sBAAsB,IAAI,SAAU,GAA2B;GACvI,OAAO,EAAc,EAAc,CAAC,GAAG,CAAyB,GAAG,CAAC,GAAG,EAErE,cAAc,IAChB,CAAC;EACH,CAAC,EACH,CAAC;CACH,CAAC;AACH;;;ACpPA,SAAS,GAAiB,GAAM,GAAM,GAAM,GAAgC,GAA+B,GAAY;CAKrH,OAAO,EAHK,GAAyB,GAAM,GAAM,CAGT,GAAO,CAA8B,CAAC,CAAC,KAAK,SAAU,GAAO;EAInG,IAAI,IAAS,EAA8B,CAAK;EAO9C,OALE,IACK,EAAO,KAAK,SAAU,GAAQ;GACnC,OAAO,GAAyB,CAAM;EACxC,CAAC,IAEM,GAAyB,CAAM;CAE1C,CAAC;AACH;AAGA,SAAS,GAAyB,GAAa;CAC7C,OAAO,IAAI,KAAK,CAAC,CAAW,GAAG,EAC7B,MAAM,oEACR,CAAC;AACH;AAcA,SAAgB,GAAsB,GAAM,GAAM,GAAM,GAAgC;CACtF,OAAO,GAAiB,GAAM,GAAM,GAAM,GAAgC,GAAkB,EAAI;AAClG;;;AC7DA,SAAwB,GAA+B,GAAa;CAIlE,IAHI,aAAuB,QAGvB,aAAuB,MACzB,OAAO,EAAY,YAAY,CAAC,CAAC,KAAK,EAAuB;CAE/D,IAAI,aAAuB,aACzB,OAAO,QAAQ,QAAQ,GAAwB,CAAW,CAAC;CAE7D,MAAU,MAAM,gFAAgF;AAClG;AACA,SAAS,GAAwB,GAAa;CAC5C,OAAO,IAAI,WAAW,CAAW;AACnC;;;ACtBA,SAAwB,GAAa,GAAM,GAAU;CAEnD,IAAI,IAAM,IAAI,gBAAgB,CAAI,GAG9B,IAAI,SAAS,cAAc,GAAG;CAYlC,AAXA,EAAE,MAAM,UAAU,QAClB,EAAE,OAAO,GACT,EAAE,WAAW,GAGb,SAAS,KAAK,YAAY,CAAC,GAG3B,EAAE,MAAM,GAGR,WAAW,WAAY;EAErB,AADA,IAAI,gBAAgB,CAAG,GACvB,SAAS,KAAK,YAAY,CAAC;CAC7B,GAAG,GAAG;AACR;;;ACFA,SAAwB,GAAc,GAAM,GAAM,GAAM;CACtD,IAAI,IAAa,WAAsB;EACrC,OAAO,GAAsB,GAAM,GAAM,GAAM,EAA8B;CAC/E;CACA,OAAO;EACL,QAAQ,WAAkB;GACxB,OAAO,EAAW;EACpB;EACA,QAAQ,SAAgB,GAAU;GAChC,OAAO,EAAW,CAAC,CAAC,KAAK,SAAU,GAAM;IACvC,GAAa,GAAM,CAAQ;GAC7B,CAAC;EACH;CACF;AACF;;;ACPA,IAAa,KAAb,MAAa,EAAmB;CAC9B,OAAc,cAAc,GAAqB,GAAkB,GAA0C,GAA8C;EACzJ,IAAM,IAAO,CACX,EAAmB,0BAA0B,GAAQ,CAAgB,GACrE,GAAG,EAAmB,iBAAiB,GAAO,GAAQ,CAAgB,CACxE,GACM,IAAM,EAAU,GAAM,EAC1B,iBAAiB,QACnB,CAAC,GACK,IAAW,GAAG,EAAmB,kBAAkB,CAAC,aAAa,GAAkB,CAAC,EAAE;EAC5F,EAAa,kBAAkB,wBAAwB,KAAK,CAAG,KAAK,CAAQ;CAC9E;CAEA,aAAoB,gBAAgB,GAAqB,GAAkB,GAA0C,GAAuD;EAE1K,IAAM,IAAU,EAAmB,0BAA0B,GAAQ,CAAgB,GAG/E,IAAO,EAAmB,iBAAiB,GAAO,GAAQ,CAAgB,GAI1E,IAAO,CAEX,EAAQ,KAAI,OAAW;GAAE,MAAM;GAAQ,OAAO;EAAO,EAAE,GAEvD,GAAG,EAAK,KAAI,MAAO,EAAI,KAAI,OAAS;GAAE,MAAM;GAAQ,OAAO;EAAK,EAAE,CAAC,CACrE,GAEM,IAAW,GAAG,EAAmB,kBAAkB,CAAC,aAAa,GAAkB,CAAC,EAAE,QAStF,IAAc,OAAM,MANP,GAAc,GAAM;GACrC,SAAS,EAAQ,WAAW,EAAE,OAAO,GAAG,EAAE;GAC1C,iBAAiB;EACnB,CAAC,CAAC,CAAC,OAAO,EAAA,CAGqB,YAAY,GACrC,IAAS,EAAa,oBAAoB,CAAW;EAC3D,EAAa,kBAAkB,iFAAiF,KAAU,CAAQ;CACpI;CAEA,OAAc,oBAAoB,GAAkB,GAA2B,GAAsB,GAA0C,GAA8C;EAC3L,IAAM,IAAU,EAAO,UAAU,MAAS,SAAS,eAAe,WAAW,GACvE,IAAW,GAAG,EAAmB,kBAAkB,GAAU,GAAkB,CAAC,EAAE,GAAG;EAC3F,EAAa,kBAAkB,GAAS,CAAQ;CAClD;CAEA,OAAc,qBAAqB,GAAkB,GAAmB,GAAsB,GAA0C,GAA8C;EACpL,IAAM,IAAM,EAAS,WAAW;GAC9B,iBAAiB;GACjB,YAAY;GACZ;EACF,CAAC,GACK,IAAW,GAAG,EAAmB,kBAAkB,GAAU,GAAkB,CAAC,EAAE,GAAG,EAAK,YAAY;EAC5G,EAAa,kBAAkB,GAAK,CAAQ;CAC9C;CAEA,aAAoB,sBAAsB,GAAoB,GAAuD;EACnH,IAAM,IAAc,EAAmB,YAAY,CAAC,CAAC;EACrD,IAAI;GACF,IAAM,IAAmB,MAAM,EAAY,WAAW;IACpD,SAAS,OAAO,EAAE,iBACR,MAAM,EAAc,YAAY,CAAC,CAAC,wBAAwB,GAAY,EAAE,UAAO,CAAC,EAAA,CAAG;IAE7F,UAAU,EAAmB,YAAY,CAAC,CAAC,cAAc,EAAiB,qBAAqB,CAAU;GAC3G,CAAC,GAEK,IAAU,EAAmB,0BACjC,EAAa,8BAA8B,CAAgB,CAAC,CACzD,MAAM,GAAG,MAAM,EAAiB,gBAAgB,QAAQ,CAAC,IAAI,EAAiB,gBAAgB,QAAQ,CAAC,CAAC,GACzG,CACJ,GACM,IAAO,CACX,EAAQ,KAAI,OAAW;IAAE,MAAM;IAAQ,OAAO;GAAO,EAAE,CACzD,GACM,IAAW,GAAG,EAAmB,oBAAoB,CAAgB,EAAE,QAUvE,IAAc,OAAM,MAPP,GAAc,GAAM;IACrC,SAAS,EAAQ,WAAW,EAAE,OAAO,GAAG,EAAE;IAC1C,eAAe;IACf,iBAAiB;GACnB,CAAC,CAAC,CAAC,OAAO,EAAA,CAGqB,YAAY,GACrC,IAAS,EAAa,oBAAoB,CAAW;GAC3D,EAAa,kBAAkB,iFAAiF,KAAU,CAAQ;EACpI,SAAS,GAAO;GASd,AARA,EAAW,YAAY,CAAC,CAAC,IAAI,CAAC;IAC5B,QAAQ;KACN;KACA,OAAQ,GAAiB;IAC3B;IACA,OAAO,EAAe;IACtB,OAAQ,GAAiB,UAAU,UAAW,GAAiB,YAAY;GAC7E,CAAC,CAAC,GACF,EAAoB,YAAY,CAAC,CAAC,iBAAiB;IACjD,SAAS,EAAE,qCAAqC;IAChD,UAAU;GACZ,CAAC;EACH;CACF;CAEA,OAAc,eAAe,GAAkB,GAAgB,GAA0C,GAA8C;EACrJ,IAAM,IAAW,GAAG,EAAmB,kBAAkB,GAAU,GAAkB,CAAC,EAAE;EACxF,EAAa,kBAAkB,yBAAyB,KAAK,CAAM,KAAK,CAAQ;CAClF;CAEA,OAAc,kBAAkB,GAAkB,GAA0C,GAAgD;EAC1I,OAAO,EAAE,iEAAiE;GACxE,iBAAiB,EAAW,WAAW,EAAc,YAAY,CAAC,CAAC,OAAO,eAAe;GACzF,UAAU,EAAW,WAAW,CAAQ;GACxC,cAAc,EAAW,WAAW,EAAiB,IAAI;GACzD,MAAM,kBAAO,IAAI,KAAK,GAAG,EAAY,IAAI;EAC3C,CAAC;CACH;CAEA,OAAc,oBAAoB,GAAkD;EAClF,OAAO,GAAG,EAAW,WAAW,EAAc,YAAY,CAAC,CAAC,OAAO,eAAe,EAAE,IAAI,EAAW,WAAW,EAAiB,IAAI,EAAE;CACvI;CAEA,OAAe,uBAAuB,GAAkB,GAAuD;EAC7G,OAAO,EAAa,QAAQ,CAAgB,CAAC,CAC1C,QAAO,MAAK,EAAO,SAAS,EAAE,EAAE,CAAC,CAAC,CAClC,MAAM,GAAG,MACD,EAAO,QAAQ,EAAE,EAAE,IAAI,EAAO,QAAQ,EAAE,EAAE,CAClD;CACL;CAEA,OAAe,0BAA0B,GAAkB,GAAoD;EAC7G,OAAO;GACL;GACA;GACA;GACA,GAAG,EAAmB,uBAAuB,GAAQ,CAAgB,CAAC,CAAC,KAAI,MAAO,EAAI,KAAK;EAC7F;CACF;CAEA,OAAe,0BAA0B,GAAkB,GAAoD;EAC7G,OAAO;GACL;GACA;GACA,GAAG,EAAmB,uBAAuB,GAAQ,CAAgB,CAAC,CAAC,KAAI,MAAO,EAAI,KAAK;EAC7F;CACF;CAEA,OAAe,iBAAiB,GAAqB,GAAkB,GAAsD;EAC3H,IAAM,IAAO,EAAmB,uBAAuB,GAAQ,CAAgB;EAC/E,OAAO,EAAM,KAAI,MAAO;GACtB,EAAI;GACJ,EAAiB;GACjB,EAAI,YAAY,EAAO,EAAI,WAAW,EAAY,IAAI,IAAI;GAC1D,GAAG,EAAK,KAAI,MAAO,EAAS,YAAY,EAAI,SAAS,GAAK,GAAkB,EAAI,CAAC,CAAC,IAAI;EACxF,CAAC;CACH;AACF"}
|
|
1
|
+
{"version":3,"file":"CaseDbDownloadUtil.js","names":["_createForOfIteratorHelperLoose","_unsupportedIterableToArray","_arrayLikeToArray","_createForOfIteratorHelperLoose","_unsupportedIterableToArray","_arrayLikeToArray","_createForOfIteratorHelperLoose","_unsupportedIterableToArray","_arrayLikeToArray","_slicedToArray","_arrayWithHoles","_iterableToArrayLimit","_unsupportedIterableToArray","_nonIterableRest","_arrayLikeToArray","_typeof","ownKeys","_objectSpread","_defineProperty","_toPropertyKey","_toPrimitive","_createForOfIteratorHelperLoose","_unsupportedIterableToArray","_arrayLikeToArray","_unsupportedIterableToArray","_arrayLikeToArray","_createForOfIteratorHelperLoose","_unsupportedIterableToArray","_arrayLikeToArray","_typeof","ownKeys","_objectSpread","_defineProperty","_toPropertyKey","_toPrimitive","_createForOfIteratorHelperLoose","_unsupportedIterableToArray","_arrayLikeToArray","_createForOfIteratorHelperLoose","_unsupportedIterableToArray","_arrayLikeToArray","_createForOfIteratorHelperLoose","_unsupportedIterableToArray","_arrayLikeToArray","ORDER_OF_SIBLINGS","_createForOfIteratorHelperLoose","_unsupportedIterableToArray","_arrayLikeToArray","_typeof","_createForOfIteratorHelperLoose","_unsupportedIterableToArray","_arrayLikeToArray","ownKeys","_objectSpread","_defineProperty","_toPropertyKey","_toPrimitive","conditionalFormatting","images","stickyRowsOrColumns","_createForOfIteratorHelperLoose","_unsupportedIterableToArray","_arrayLikeToArray","_createForOfIteratorHelperLoose","_unsupportedIterableToArray","_arrayLikeToArray","_typeof","ownKeys","_objectSpread","_defineProperty","_toPropertyKey","_toPrimitive","_createForOfIteratorHelperLoose","_unsupportedIterableToArray","_arrayLikeToArray","generateDrawingReferenceXml"],"sources":["../../../../node_modules/.pnpm/write-excel-file@4.1.1/node_modules/write-excel-file/modules/zip/zipToArrayBuffer.js","../../../../node_modules/.pnpm/write-excel-file@4.1.1/node_modules/write-excel-file/modules/export/convertFilesContentToUint8Arrays.js","../../../../node_modules/.pnpm/write-excel-file@4.1.1/node_modules/write-excel-file/modules/xlsx/helpers/features/getAdditionalContent.js","../../../../node_modules/.pnpm/write-excel-file@4.1.1/node_modules/write-excel-file/modules/xlsx/helpers/features/transformContent.js","../../../../node_modules/.pnpm/write-excel-file@4.1.1/node_modules/write-excel-file/modules/xml/escapeXmlSpecialCharacters.js","../../../../node_modules/.pnpm/write-excel-file@4.1.1/node_modules/write-excel-file/modules/xml/removeInvalidXmlCharacters.js","../../../../node_modules/.pnpm/write-excel-file@4.1.1/node_modules/write-excel-file/modules/xml/sanitizeAttributeValue.js","../../../../node_modules/.pnpm/write-excel-file@4.1.1/node_modules/write-excel-file/modules/xml/sanitizeAttributeName.js","../../../../node_modules/.pnpm/write-excel-file@4.1.1/node_modules/write-excel-file/modules/xml/getAttributesString.js","../../../../node_modules/.pnpm/write-excel-file@4.1.1/node_modules/write-excel-file/modules/xml/getOpeningTagMarkup.js","../../../../node_modules/.pnpm/write-excel-file@4.1.1/node_modules/write-excel-file/modules/xml/getClosingTagMarkup.js","../../../../node_modules/.pnpm/write-excel-file@4.1.1/node_modules/write-excel-file/modules/xml/getSelfClosingTagMarkup.js","../../../../node_modules/.pnpm/write-excel-file@4.1.1/node_modules/write-excel-file/modules/xlsx/helpers/features/getElementXml.js","../../../../node_modules/.pnpm/write-excel-file@4.1.1/node_modules/write-excel-file/modules/xlsx/files/workbook.xml.js","../../../../node_modules/.pnpm/write-excel-file@4.1.1/node_modules/write-excel-file/modules/xlsx/files/workbook.xml.rels.js","../../../../node_modules/.pnpm/write-excel-file@4.1.1/node_modules/write-excel-file/modules/xlsx/files/rels.js","../../../../node_modules/.pnpm/write-excel-file@4.1.1/node_modules/write-excel-file/modules/xlsx/files/[Content_Types].xml.js","../../../../node_modules/.pnpm/write-excel-file@4.1.1/node_modules/write-excel-file/modules/xlsx/files/drawing.xml.js","../../../../node_modules/.pnpm/write-excel-file@4.1.1/node_modules/write-excel-file/modules/xlsx/files/drawing.xml.rels.js","../../../../node_modules/.pnpm/write-excel-file@4.1.1/node_modules/write-excel-file/modules/xlsx/files/sheet.xml/sheetViews.js","../../../../node_modules/.pnpm/write-excel-file@4.1.1/node_modules/write-excel-file/modules/xlsx/files/sheet.xml/column.js","../../../../node_modules/.pnpm/write-excel-file@4.1.1/node_modules/write-excel-file/modules/xlsx/files/sheet.xml/columns.js","../../../../node_modules/.pnpm/write-excel-file@4.1.1/node_modules/write-excel-file/modules/xml/sanitizeTextContent.js","../../../../node_modules/.pnpm/write-excel-file@4.1.1/node_modules/write-excel-file/modules/xlsx/helpers/getCellAddress.js","../../../../node_modules/.pnpm/write-excel-file@4.1.1/node_modules/write-excel-file/modules/xlsx/helpers/convertDateToSerialNumber.js","../../../../node_modules/.pnpm/write-excel-file@4.1.1/node_modules/write-excel-file/modules/xlsx/files/sheet.xml/cell.js","../../../../node_modules/.pnpm/write-excel-file@4.1.1/node_modules/write-excel-file/modules/xlsx/helpers/hasAlignment.js","../../../../node_modules/.pnpm/write-excel-file@4.1.1/node_modules/write-excel-file/modules/xlsx/helpers/hasBorder.js","../../../../node_modules/.pnpm/write-excel-file@4.1.1/node_modules/write-excel-file/modules/xlsx/helpers/hasFill.js","../../../../node_modules/.pnpm/write-excel-file@4.1.1/node_modules/write-excel-file/modules/xlsx/helpers/hasFont.js","../../../../node_modules/.pnpm/write-excel-file@4.1.1/node_modules/write-excel-file/modules/xlsx/files/sheet.xml/helpers/getCellStyleProperties.js","../../../../node_modules/.pnpm/write-excel-file@4.1.1/node_modules/write-excel-file/modules/xlsx/helpers/isObject.js","../../../../node_modules/.pnpm/write-excel-file@4.1.1/node_modules/write-excel-file/modules/xlsx/helpers/isCellObject.js","../../../../node_modules/.pnpm/write-excel-file@4.1.1/node_modules/write-excel-file/modules/xlsx/files/sheet.xml/row.js","../../../../node_modules/.pnpm/write-excel-file@4.1.1/node_modules/write-excel-file/modules/xlsx/files/sheet.xml/sheetData.js","../../../../node_modules/.pnpm/write-excel-file@4.1.1/node_modules/write-excel-file/modules/xlsx/files/sheet.xml/processMergedCells.js","../../../../node_modules/.pnpm/write-excel-file@4.1.1/node_modules/write-excel-file/modules/xlsx/files/sheet.xml/mergedCellsDescription.js","../../../../node_modules/.pnpm/write-excel-file@4.1.1/node_modules/write-excel-file/modules/xlsx/files/sheet.xml/pageMargins.js","../../../../node_modules/.pnpm/write-excel-file@4.1.1/node_modules/write-excel-file/modules/xlsx/files/sheet.xml/pageSetup.js","../../../../node_modules/.pnpm/write-excel-file@4.1.1/node_modules/write-excel-file/modules/xlsx/files/sheet.xml/drawingReference.js","../../../../node_modules/.pnpm/write-excel-file@4.1.1/node_modules/write-excel-file/modules/xlsx/files/sheet.xml/sheet.xml.js","../../../../node_modules/.pnpm/write-excel-file@4.1.1/node_modules/write-excel-file/modules/xlsx/files/sheet.xml.rels.js","../../../../node_modules/.pnpm/write-excel-file@4.1.1/node_modules/write-excel-file/modules/xlsx/files/sharedStrings.xml.js","../../../../node_modules/.pnpm/write-excel-file@4.1.1/node_modules/write-excel-file/modules/xlsx/helpers/getXlsxColorForHexColor.js","../../../../node_modules/.pnpm/write-excel-file@4.1.1/node_modules/write-excel-file/modules/xlsx/helpers/getFillXml.js","../../../../node_modules/.pnpm/write-excel-file@4.1.1/node_modules/write-excel-file/modules/xlsx/helpers/getBorderXml.js","../../../../node_modules/.pnpm/write-excel-file@4.1.1/node_modules/write-excel-file/modules/xlsx/helpers/getFontXml.js","../../../../node_modules/.pnpm/write-excel-file@4.1.1/node_modules/write-excel-file/modules/xlsx/helpers/getAlignmentXml.js","../../../../node_modules/.pnpm/write-excel-file@4.1.1/node_modules/write-excel-file/modules/xlsx/initializeStyles.js","../../../../node_modules/.pnpm/write-excel-file@4.1.1/node_modules/write-excel-file/modules/xlsx/files/styles.xml.js","../../../../node_modules/.pnpm/write-excel-file@4.1.1/node_modules/write-excel-file/modules/xml/findElementsNonRecursive_.js","../../../../node_modules/.pnpm/write-excel-file@4.1.1/node_modules/write-excel-file/modules/xml/findElement.js","../../../../node_modules/.pnpm/write-excel-file@4.1.1/node_modules/write-excel-file/modules/xml/setMarkupInsideElement.js","../../../../node_modules/.pnpm/write-excel-file@4.1.1/node_modules/write-excel-file/modules/xml/appendMarkupInsideElement.js","../../../../node_modules/.pnpm/write-excel-file@4.1.1/node_modules/write-excel-file/modules/xml/getMarkupInsideElement.js","../../../../node_modules/.pnpm/write-excel-file@4.1.1/node_modules/write-excel-file/modules/xml/applyEnclosingElementOffset.js","../../../../node_modules/.pnpm/write-excel-file@4.1.1/node_modules/write-excel-file/modules/xml/getChildElements.js","../../../../node_modules/.pnpm/write-excel-file@4.1.1/node_modules/write-excel-file/modules/xml/prependMarkupInsideElement.js","../../../../node_modules/.pnpm/write-excel-file@4.1.1/node_modules/write-excel-file/modules/xml/insertElementMarkupAccordingToOrderOfSiblings.js","../../../../node_modules/.pnpm/write-excel-file@4.1.1/node_modules/write-excel-file/modules/xlsx/helpers/orderOfSiblings.js","../../../../node_modules/.pnpm/write-excel-file@4.1.1/node_modules/write-excel-file/modules/xlsx/helpers/getOrderOfSiblings.js","../../../../node_modules/.pnpm/write-excel-file@4.1.1/node_modules/write-excel-file/modules/xlsx/features/conditionalFormatting.js","../../../../node_modules/.pnpm/write-excel-file@4.1.1/node_modules/write-excel-file/modules/xlsx/helpers/getFileExtensionForContentType.js","../../../../node_modules/.pnpm/write-excel-file@4.1.1/node_modules/write-excel-file/modules/xlsx/features/images.js","../../../../node_modules/.pnpm/write-excel-file@4.1.1/node_modules/write-excel-file/modules/xml/replaceElement.js","../../../../node_modules/.pnpm/write-excel-file@4.1.1/node_modules/write-excel-file/modules/xml/findElementInsideElement.js","../../../../node_modules/.pnpm/write-excel-file@4.1.1/node_modules/write-excel-file/modules/xlsx/features/stickyRowsOrColumns.js","../../../../node_modules/.pnpm/write-excel-file@4.1.1/node_modules/write-excel-file/modules/xlsx/getFeatures.js","../../../../node_modules/.pnpm/write-excel-file@4.1.1/node_modules/write-excel-file/modules/xlsx/validateSheetData.js","../../../../node_modules/.pnpm/write-excel-file@4.1.1/node_modules/write-excel-file/modules/xlsx/initializeSharedStrings.js","../../../../node_modules/.pnpm/write-excel-file@4.1.1/node_modules/write-excel-file/modules/xlsx/validateSheetName.js","../../../../node_modules/.pnpm/write-excel-file@4.1.1/node_modules/write-excel-file/modules/xlsx/initializeSheets.js","../../../../node_modules/.pnpm/write-excel-file@4.1.1/node_modules/write-excel-file/modules/getSheetData/getSheetData.js","../../../../node_modules/.pnpm/write-excel-file@4.1.1/node_modules/write-excel-file/modules/xlsx/helpers/features/getWrittenFiles.js","../../../../node_modules/.pnpm/write-excel-file@4.1.1/node_modules/write-excel-file/modules/xlsx/generateXlsxFileContents.js","../../../../node_modules/.pnpm/write-excel-file@4.1.1/node_modules/write-excel-file/modules/export/writeXlsxFileUniversal.js","../../../../node_modules/.pnpm/write-excel-file@4.1.1/node_modules/write-excel-file/modules/export/convertFileContentToUint8ArrayBrowser.js","../../../../node_modules/.pnpm/write-excel-file@4.1.1/node_modules/write-excel-file/modules/export/downloadBlob.js","../../../../node_modules/.pnpm/write-excel-file@4.1.1/node_modules/write-excel-file/modules/export/writeXlsxFileBrowser.js","../../src/utils/CaseDbDownloadUtil/CaseDbDownloadUtil.ts"],"sourcesContent":["// `fflate` readme is too complicated:\n// https://github.com/101arrowz/fflate/issues/251\n// I just used whatever approach seemed to work.\n//\n// It was a choice between \"syncrhonous\" (blocking) unzip via `zipSync()`\n// and \"asynchronous\" (non-blocking) unzip via `zip()`.\n//\n// In the readme they say that using \"asynchronous\" API will cause the compression or decompression\n// run in a separate thread by using Web (or Node) Workers, so it won't block the main thread.\n// Yet, they also say that there is an initial overhead to using workers of about 50ms for each\n// asynchronous function. For small (under about 50kB) payloads, they say that the \"asynchronous\" API\n// will be much slower compared to the \"synchronous\" one. However, when compressing larger files\n// or multiple files at once, the \"synchronous\" API causes the main thread to hang for too long,\n// and the \"asynchronous\" API is an order of magnitude better.\n//\nimport { zip } from 'fflate';\n\n/**\r\n * Creates a `*.zip` file from a map of files.\r\n * @param {Record<string,Uint8Array>} files\r\n * @return {Promise<ArrayBuffer>} Promise of `*.zip` file data.\r\n */\nexport default function zipToArrayBuffer(files) {\n return zipAsync(files).then(function (uint8Array) {\n return uint8Array.buffer;\n });\n}\nfunction zipAsync(files) {\n return new Promise(function (resolve, reject) {\n // `zip()` will resort to \"synchronous\" compression in an edge case:\n // * When an individual file size is less than `160KB`.\n zip(files, function (error, archive) {\n if (error) {\n reject(error);\n } else {\n resolve(archive);\n }\n });\n });\n}\n//# sourceMappingURL=zipToArrayBuffer.js.map","import { strToU8 } from 'fflate';\n\n/**\r\n * Converts `files` values to `Uint8Array`s.\r\n * @param {Record<string,any>} files\r\n * @param {function} convertFileContentToUint8Array\r\n * @returns {Promise<Record<string,Uint8Array>>}\r\n */\nexport default function convertFilesContentToUint8Arrays(files, convertFileContentToUint8Array) {\n var convertedFiles = {};\n return Promise.all(Object.keys(files).map(function (key) {\n if (files[key] instanceof Uint8Array) {\n convertedFiles[key] = files[key];\n } else if (typeof files[key] === 'string') {\n convertedFiles[key] = convertStringToUint8Array(files[key]);\n } else {\n return convertFileContentToUint8Array(files[key]).then(function (uint8Array) {\n convertedFiles[key] = uint8Array;\n });\n }\n })).then(function () {\n return convertedFiles;\n });\n}\nfunction convertStringToUint8Array(string) {\n return strToU8(string);\n}\n//# sourceMappingURL=convertFilesContentToUint8Arrays.js.map","function _createForOfIteratorHelperLoose(r, e) { var t = \"undefined\" != typeof Symbol && r[Symbol.iterator] || r[\"@@iterator\"]; if (t) return (t = t.call(r)).next.bind(t); if (Array.isArray(r) || (t = _unsupportedIterableToArray(r)) || e && r && \"number\" == typeof r.length) { t && (r = t); var o = 0; return function () { return o >= r.length ? { done: !0 } : { done: !1, value: r[o++] }; }; } throw new TypeError(\"Invalid attempt to iterate non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); }\nfunction _unsupportedIterableToArray(r, a) { if (r) { if (\"string\" == typeof r) return _arrayLikeToArray(r, a); var t = {}.toString.call(r).slice(8, -1); return \"Object\" === t && r.constructor && (t = r.constructor.name), \"Map\" === t || \"Set\" === t ? Array.from(r) : \"Arguments\" === t || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t) ? _arrayLikeToArray(r, a) : void 0; } }\nfunction _arrayLikeToArray(r, a) { (null == a || a > r.length) && (a = r.length); for (var e = 0, n = Array(a); e < a; e++) n[e] = r[e]; return n; }\n// Returns the content that should be inserted by `features` when performing a `transformName` transform.\nexport default function getAdditionalContent(fileName, features, sheetOptions, properties) {\n var content = '';\n for (var _iterator = _createForOfIteratorHelperLoose(features), _step; !(_step = _iterator()).done;) {\n var feature = _step.value;\n var transform = feature.files && feature.files.transform && feature.files.transform[fileName];\n if (transform && transform.insert) {\n var insertedContent = transform.insert(sheetOptions, properties);\n if (insertedContent) {\n content += insertedContent;\n }\n }\n }\n return content;\n}\n//# sourceMappingURL=getAdditionalContent.js.map","function _createForOfIteratorHelperLoose(r, e) { var t = \"undefined\" != typeof Symbol && r[Symbol.iterator] || r[\"@@iterator\"]; if (t) return (t = t.call(r)).next.bind(t); if (Array.isArray(r) || (t = _unsupportedIterableToArray(r)) || e && r && \"number\" == typeof r.length) { t && (r = t); var o = 0; return function () { return o >= r.length ? { done: !0 } : { done: !1, value: r[o++] }; }; } throw new TypeError(\"Invalid attempt to iterate non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); }\nfunction _unsupportedIterableToArray(r, a) { if (r) { if (\"string\" == typeof r) return _arrayLikeToArray(r, a); var t = {}.toString.call(r).slice(8, -1); return \"Object\" === t && r.constructor && (t = r.constructor.name), \"Map\" === t || \"Set\" === t ? Array.from(r) : \"Arguments\" === t || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t) ? _arrayLikeToArray(r, a) : void 0; } }\nfunction _arrayLikeToArray(r, a) { (null == a || a > r.length) && (a = r.length); for (var e = 0, n = Array(a); e < a; e++) n[e] = r[e]; return n; }\n// Transforms the content by `features` when performing a `transformName` transform.\nexport default function transformContent(content, fileName, features, sheetOptions, properties) {\n for (var _iterator = _createForOfIteratorHelperLoose(features), _step; !(_step = _iterator()).done;) {\n var feature = _step.value;\n var transform = feature.files && feature.files.transform && feature.files.transform[fileName];\n if (transform && transform.transform) {\n content = transform.transform(content, sheetOptions, properties);\n }\n }\n return content;\n}\n//# sourceMappingURL=transformContent.js.map","/**\r\n * Escapes a string for including it in XML markup: replaces \">\" with \">\", etc.\r\n * https://en.wikipedia.org/wiki/Character_encodings_in_HTML#HTML_character_references\r\n * @param {string} string\r\n * @param {boolean} options.isAttributeValue — Pass `true` if an XML attribute value is being escaped. Pass `false` otherwise.\r\n * @return {string}\r\n */\nexport default function escapeXmlSpecialCharacters(string, _ref) {\n var isAttributeValue = _ref.isAttributeValue;\n // By default, \"&\", \"<\" and \">\" characters should be escaped:\n //\n // The ampersand character (&) and the left angle bracket (<) must not appear\n // in their literal form, except when used as markup delimiters, or within a comment,\n // a processing instruction, or a CDATA section. If they are needed elsewhere,\n // they must be escaped using either numeric character references or the strings\n // \" & \" and \" < \" respectively. The right angle bracket (>) may be represented\n // using the string \" > \", and must, for compatibility, be escaped using either\n // \" > \" or a character reference when it appears in the string \" ]]> \" in content,\n // when that string is not marking the end of a CDATA section.\n //\n string = replaceAll(string, '&', '&');\n string = replaceAll(string, '>', '>');\n string = replaceAll(string, '<', '<');\n\n // Additionally, in attribute values, single and double quotes might be required\n // to be escaped depending on what character is used for delimiting those attribute values.\n if (isAttributeValue) {\n string = replaceAll(string, '\\'', ''');\n string = replaceAll(string, '\"', '"');\n }\n return string;\n}\nfunction replaceAll(string, replacedSubstring, replacementSubstring) {\n if (string.replaceAll) {\n return string.replaceAll(replacedSubstring, replacementSubstring);\n }\n // There's no need to escape RegExp special characters in `replacedSubstring`\n // because this function is not exported and is only called internally\n // with a known subset of possible `replacedSubstring`s which are known\n // to not contain any RegExp special characters.\n return string.replace(new RegExp(replacedSubstring, 'g'), replacementSubstring);\n}\n\n// // Escapes any regular-expression-specific special characters.\n// function escapeRegExpSpecialCharacters(string) {\n// \tconst specialCharactersRegExp = new RegExp('[.*+?|()\\\\[\\\\]{}\\\\\\\\]', 'g')\n// \treturn string.replace(specialCharactersRegExp, '\\\\$&')\n// }\n//# sourceMappingURL=escapeXmlSpecialCharacters.js.map","var INVALID_CHARACTERS = /((?:[\\0-\\x08\\x0B\\f\\x0E-\\x1F\\uFFFD\\uFFFE\\uFFFF]|[\\uD800-\\uDBFF](?![\\uDC00-\\uDFFF])|(?:[^\\uD800-\\uDBFF]|^)[\\uDC00-\\uDFFF]))/g;\nvar DISCOURAGED_CHARACTERS = new RegExp(\"([\\\\x7F-\\\\x84]|[\\\\x86-\\\\x9F]|[\\\\uFDD0-\\\\uFDEF]|(?:\\\\uD83F[\\\\uDFFE\\\\uDFFF])|(?:\\\\uD87F[\\\\uDFFE\\\\uDFFF])|(?:\\\\uD8BF[\\\\uDFFE\\\\uDFFF])|(?:\\\\uD8FF[\\\\uDFFE\\\\uDFFF])|(?:\\\\uD93F[\\\\uDFFE\\\\uDFFF])|(?:\\\\uD97F[\\\\uDFFE\\\\uDFFF])|(?:\\\\uD9BF[\\\\uDFFE\\\\uDFFF])|(?:\\\\uD9FF[\\\\uDFFE\\\\uDFFF])|(?:\\\\uDA3F[\\\\uDFFE\\\\uDFFF])|(?:\\\\uDA7F[\\\\uDFFE\\\\uDFFF])|(?:\\\\uDABF[\\\\uDFFE\\\\uDFFF])|(?:\\\\uDAFF[\\\\uDFFE\\\\uDFFF])|(?:\\\\uDB3F[\\\\uDFFE\\\\uDFFF])|(?:\\\\uDB7F[\\\\uDFFE\\\\uDFFF])|(?:\\\\uDBBF[\\\\uDFFE\\\\uDFFF])|(?:\\\\uDBFF[\\\\uDFFE\\\\uDFFF])(?:[\\\\0-\\\\t\\\\x0B\\\\f\\\\x0E-\\\\u2027\\\\u202A-\\\\uD7FF\\\\uE000-\\\\uFFFF]|[\\\\uD800-\\\\uDBFF][\\\\uDC00-\\\\uDFFF]|[\\\\uD800-\\\\uDBFF](?![\\\\uDC00-\\\\uDFFF])|(?:[^\\\\uD800-\\\\uDBFF]|^)[\\\\uDC00-\\\\uDFFF]))\", 'g');\n\n/**\r\n * Removes \"invalid\" or \"discouraged\" XML characters from a string.\r\n * \"Invalid\" characters are \"C0 control characters\" or \"surrogate blocks\" (\"non-characters\" and \"surrogate pairs\").\r\n * \"Discouraged\" characters are the ones that're officially discouraged from use in XML documents by the XML specification.\r\n * @param {string} string - a string containing potentially invalid XML characters (non-UTF8 characters, STX, EOX etc)\r\n * @return {string} a sanitized string stripped of invalid (and by default also discouraged) XML characters\r\n */\nexport default function removeInvalidXmlCharacters(string) {\n // Remove everything forbidden by XML 1.0 specification,\n // plus the unicode replacement character U+FFFD.\n string = string.replace(INVALID_CHARACTERS, '');\n\n // Remove everything discouraged by XML 1.0 specification.\n // I.e. strictly speaking, these characters are still valid\n // but also officially discouraged from use in XML documents.\n string = string.replace(DISCOURAGED_CHARACTERS, '');\n return string;\n}\n//# sourceMappingURL=removeInvalidXmlCharacters.js.map","import escapeXmlSpecialCharacters from './escapeXmlSpecialCharacters.js';\nimport removeInvalidXmlCharacters from './removeInvalidXmlCharacters.js';\n\n/**\r\n * Removes invalid characters and escapes \"speciaL\" characters in an XML attribute's value.\r\n * @param {string} attributeValue\r\n * @returns {string}\r\n */\nexport default function sanitizeAttributeValue(attributeValue) {\n if (typeof attributeValue !== 'string') {\n throw new TypeError('Argument must be a string');\n }\n // Remove characters that're invalid in XML.\n attributeValue = removeInvalidXmlCharacters(attributeValue);\n // Escape \"special\" characters.\n return escapeXmlSpecialCharacters(attributeValue, {\n isAttributeValue: true\n });\n}\n//# sourceMappingURL=sanitizeAttributeValue.js.map","import removeInvalidXmlCharacters from './removeInvalidXmlCharacters.js';\n\n/**\r\n * Removes invalid characters and escapes \"speciaL\" characters in an XML attribute's name.\r\n * @param {string} attributeName\r\n * @returns {string}\r\n */\nexport default function sanitizeAttributeName(attributeName) {\n if (typeof attributeName !== 'string') {\n throw new TypeError('Argument must be a string');\n }\n // Remove characters that're invalid in XML.\n attributeName = removeInvalidXmlCharacters(attributeName);\n // Remove characters that're invalid in an XML attribute name.\n return attributeName.replace(/[^a-zA-Z_0-9-.:]/g, '').replace(/^[^a-zA-Z_]+/, '');\n}\n//# sourceMappingURL=sanitizeAttributeName.js.map","import sanitizeAttributeName from './sanitizeAttributeName.js';\nimport sanitizeAttributeValue from './sanitizeAttributeValue.js';\n\n/**\r\n * Converts an object with XML attribute values to a string.\r\n * Examples:\r\n * { a: 'b', c: 'd' } → ' a=\"b\" c=\"d\"'\r\n * {} → ''\r\n * @param {object} attributes\r\n * @returns {string}\r\n */\nexport default function getAttributesString(attributes) {\n return Object.keys(attributes).map(function (name) {\n return \"\".concat(sanitizeAttributeName(name), \"=\\\"\").concat(sanitizeAttributeValue(String(attributes[name])), \"\\\"\");\n }).reduce(function (combined, part) {\n return combined + ' ' + part;\n }, '');\n}\n//# sourceMappingURL=getAttributesString.js.map","import getAttributesString from './getAttributesString.js';\n\n/**\r\n * Returns XML for an \"opening tag\" with a given `tagName` and optional `attributes`.\r\n * @param {string} tagName\r\n * @param {object} [attributes]\r\n * @returns {string}\r\n */\nexport default function getOpeningTagMarkup(tagName, attributes) {\n return '<' + tagName + (attributes ? getAttributesString(attributes) : '') + '>';\n}\n//# sourceMappingURL=getOpeningTagMarkup.js.map","/**\r\n * Returns XML for a \"closing tag\" with a given `tagName`.\r\n * @param {string} tagName\r\n * @returns {string}\r\n */\nexport default function getClosingTagMarkup(tagName) {\n return '</' + tagName + '>';\n}\n//# sourceMappingURL=getClosingTagMarkup.js.map","import getOpeningTagMarkup from './getOpeningTagMarkup.js';\n\n/**\r\n * Returns XML for an element with a given `tagName`, optional `attributes` and no child elements.\r\n * @param {string} tagName\r\n * @param {object} [attributes]\r\n * @returns {string}\r\n */\nexport default function getSelfClosingTagMarkup(tagName, attributes) {\n return getOpeningTagMarkup(tagName, attributes).slice(0, -1) + '/>';\n}\n//# sourceMappingURL=getSelfClosingTagMarkup.js.map","function _createForOfIteratorHelperLoose(r, e) { var t = \"undefined\" != typeof Symbol && r[Symbol.iterator] || r[\"@@iterator\"]; if (t) return (t = t.call(r)).next.bind(t); if (Array.isArray(r) || (t = _unsupportedIterableToArray(r)) || e && r && \"number\" == typeof r.length) { t && (r = t); var o = 0; return function () { return o >= r.length ? { done: !0 } : { done: !1, value: r[o++] }; }; } throw new TypeError(\"Invalid attempt to iterate non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); }\nfunction _unsupportedIterableToArray(r, a) { if (r) { if (\"string\" == typeof r) return _arrayLikeToArray(r, a); var t = {}.toString.call(r).slice(8, -1); return \"Object\" === t && r.constructor && (t = r.constructor.name), \"Map\" === t || \"Set\" === t ? Array.from(r) : \"Arguments\" === t || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t) ? _arrayLikeToArray(r, a) : void 0; } }\nfunction _arrayLikeToArray(r, a) { (null == a || a > r.length) && (a = r.length); for (var e = 0, n = Array(a); e < a; e++) n[e] = r[e]; return n; }\nimport getOpeningTagMarkup from '../../../xml/getOpeningTagMarkup.js';\nimport getClosingTagMarkup from '../../../xml/getClosingTagMarkup.js';\nimport getSelfClosingTagMarkup from '../../../xml/getSelfClosingTagMarkup.js';\nexport default function getElementXml(fileName, tagName, attributes,\n// Could be `undefined` or `null`\ninnerXml,\n// Could be `undefined` or `null`\nindex,\n// Could be `undefined`\nproperties, sheetOptionsOrSheetsOptions, features) {\n for (var _iterator = _createForOfIteratorHelperLoose(features), _step; !(_step = _iterator()).done;) {\n var feature = _step.value;\n var transform = feature.files && feature.files.transform && feature.files.transform[fileName];\n if (transform && transform.transformElementAttributes) {\n attributes = transform.transformElementAttributes(tagName, attributes || NO_ATTRIBUTES, index, sheetOptionsOrSheetsOptions, properties);\n }\n }\n if (innerXml) {\n return getOpeningTagMarkup(tagName, attributes) + innerXml + getClosingTagMarkup(tagName);\n } else {\n return getSelfClosingTagMarkup(tagName, attributes);\n }\n}\nvar NO_ATTRIBUTES = {};\n//# sourceMappingURL=getElementXml.js.map","import getAdditionalContent from '../helpers/features/getAdditionalContent.js';\nimport transformContent from '../helpers/features/transformContent.js';\nimport sanitizeAttributeValue from '../../xml/sanitizeAttributeValue.js';\nimport getElementXml from '../helpers/features/getElementXml.js';\nexport default function generateWorkbookXml(_ref) {\n var sheetIdsAndNames = _ref.sheetIdsAndNames,\n features = _ref.features,\n sheetsOptions = _ref.sheetsOptions;\n /**\r\n * Creates XML tag markup.\r\n * @param {string} tagName\r\n * @param {object} attributes\r\n * @param {string} [innerXml]\r\n * @param {number} [index]\r\n * @returns {string}\r\n */\n var tag = function tag(tagName, attributes, innerXml, index) {\n return getElementXml('xl/workbook.xml', tagName, attributes, innerXml, index, EMPTY_OBJECT, sheetsOptions, features);\n };\n var xml = '<?xml version=\"1.0\" encoding=\"UTF-8\" standalone=\"yes\"?>' + '<workbook xmlns=\"http://schemas.openxmlformats.org/spreadsheetml/2006/main\" xmlns:r=\"http://schemas.openxmlformats.org/officeDocument/2006/relationships\" xmlns:mx=\"http://schemas.microsoft.com/office/mac/excel/2008/main\" xmlns:mc=\"http://schemas.openxmlformats.org/markup-compatibility/2006\" xmlns:mv=\"urn:schemas-microsoft-com:mac:vml\" xmlns:x14=\"http://schemas.microsoft.com/office/spreadsheetml/2009/9/main\" xmlns:x14ac=\"http://schemas.microsoft.com/office/spreadsheetml/2009/9/ac\" xmlns:xm=\"http://schemas.microsoft.com/office/excel/2006/main\">' +\n // The order of elements is dictated by the XLSX spec.\n //\n // <workbookPr/>\n tag('workbookPr') +\n // <bookViews/>\n tag('bookViews', null, tag('workbookView', null, null, 0)) +\n // <sheets/>\n tag('sheets', null, sheetIdsAndNames.map(function (_ref2, i) {\n var sheetId = _ref2.sheetId,\n sheetName = _ref2.sheetName;\n return tag('sheet', {\n 'r:id': \"rId\".concat(sheetId),\n sheetId: sheetId,\n name: sheetName\n }, null, i);\n }).join('')) +\n // <definedNames/>\n tag('definedNames') +\n // <calcPr/>\n tag('calcPr') +\n // Apply any plugins that insert additional content to this XML.\n getAdditionalContent('xl/workbook.xml', features, sheetsOptions) + '</workbook>';\n\n // Apply any plugins that transform this XML.\n xml = transformContent(xml, 'xl/workbook.xml', features, sheetsOptions);\n return xml;\n}\nvar EMPTY_OBJECT = {};\n//# sourceMappingURL=workbook.xml.js.map","import getAdditionalContent from '../helpers/features/getAdditionalContent.js';\nimport transformContent from '../helpers/features/transformContent.js';\nexport default function generateWorkbookXmlRels(_ref) {\n var sheetIds = _ref.sheetIds,\n features = _ref.features,\n sheetsOptions = _ref.sheetsOptions;\n var xml = '<?xml version=\"1.0\" ?>' + '<Relationships xmlns=\"http://schemas.openxmlformats.org/package/2006/relationships\">' + sheetIds.map(function (id) {\n return \"<Relationship Id=\\\"rId\".concat(id, \"\\\" Type=\\\"http://schemas.openxmlformats.org/officeDocument/2006/relationships/worksheet\\\" Target=\\\"worksheets/sheet\").concat(id, \".xml\\\"/>\");\n }).join('') + \"<Relationship Id=\\\"rId\".concat(sheetIds.length + 1, \"\\\" Type=\\\"http://schemas.openxmlformats.org/officeDocument/2006/relationships/sharedStrings\\\" Target=\\\"sharedStrings.xml\\\"/>\") + \"<Relationship Id=\\\"rId\".concat(sheetIds.length + 2, \"\\\" Type=\\\"http://schemas.openxmlformats.org/officeDocument/2006/relationships/styles\\\" Target=\\\"styles.xml\\\"/>\") +\n // Apply any plugins that insert additional content to this XML.\n getAdditionalContent('xl/_rels/workbook.xml.rels', features, sheetsOptions) + '</Relationships>';\n\n // Apply any plugins that transform this XML.\n xml = transformContent(xml, 'xl/_rels/workbook.xml.rels', features, sheetsOptions);\n return xml;\n}\n//# sourceMappingURL=workbook.xml.rels.js.map","import getAdditionalContent from '../helpers/features/getAdditionalContent.js';\nimport transformContent from '../helpers/features/transformContent.js';\nexport default function generateRelsXml(_ref) {\n var features = _ref.features,\n sheetsOptions = _ref.sheetsOptions;\n var xml = '<?xml version=\"1.0\" encoding=\"UTF-8\" standalone=\"yes\"?>' + '<Relationships xmlns=\"http://schemas.openxmlformats.org/package/2006/relationships\">' + '<Relationship Id=\"rId-workbook-1\" Type=\"http://schemas.openxmlformats.org/officeDocument/2006/relationships/officeDocument\" Target=\"xl/workbook.xml\"/>' +\n // Apply any plugins that insert additional content to this XML.\n getAdditionalContent('_rels/.rels', features, sheetsOptions) + '</Relationships>';\n\n // Apply any plugins that transform this XML.\n xml = transformContent(xml, '_rels/.rels', features, sheetsOptions);\n return xml;\n}\n//# sourceMappingURL=rels.js.map","import getAdditionalContent from '../helpers/features/getAdditionalContent.js';\nimport transformContent from '../helpers/features/transformContent.js';\nexport default function generateContentTypesXml(_ref) {\n var sheetIds = _ref.sheetIds,\n features = _ref.features,\n sheetsOptions = _ref.sheetsOptions;\n var xml = '<?xml version=\"1.0\" encoding=\"UTF-8\" standalone=\"yes\"?>' + '<Types xmlns=\"http://schemas.openxmlformats.org/package/2006/content-types\">' + '<Default ContentType=\"application/xml\" Extension=\"xml\"/>' + '<Default ContentType=\"application/vnd.openxmlformats-package.relationships+xml\" Extension=\"rels\"/>' + '<Override ContentType=\"application/vnd.openxmlformats-officedocument.spreadsheetml.sheet.main+xml\" PartName=\"/xl/workbook.xml\"/>' + '<Override ContentType=\"application/vnd.openxmlformats-officedocument.spreadsheetml.sharedStrings+xml\" PartName=\"/xl/sharedStrings.xml\"/>' + '<Override ContentType=\"application/vnd.openxmlformats-officedocument.spreadsheetml.styles+xml\" PartName=\"/xl/styles.xml\"/>' + sheetIds.map(function (sheetId) {\n return \"<Override ContentType=\\\"application/vnd.openxmlformats-officedocument.spreadsheetml.worksheet+xml\\\" PartName=\\\"/xl/worksheets/sheet\".concat(sheetId, \".xml\\\"/>\");\n }).join('') + sheetIds.map(function (sheetId) {\n return getDrawingContentTypeXml(sheetId);\n }).join('') +\n // Apply any plugins that insert additional content to this XML.\n getAdditionalContent('[Content_Types].xml', features, sheetsOptions) + '</Types>';\n\n // Apply any plugins that transform this XML.\n xml = transformContent(xml, '[Content_Types].xml', features, sheetsOptions);\n return xml;\n}\nexport function getDrawingContentTypeXml(sheetId) {\n return \"<Override ContentType=\\\"application/vnd.openxmlformats-officedocument.drawing+xml\\\" PartName=\\\"/xl/drawings/drawing\".concat(sheetId, \".xml\\\"/>\");\n}\n//# sourceMappingURL=[Content_Types].xml.js.map","import getAdditionalContent from '../helpers/features/getAdditionalContent.js';\nimport transformContent from '../helpers/features/transformContent.js';\n\n// https://gitlab.com/catamphetamine/write-excel-file/-/blob/main/docs/IMAGES.md\nexport default function generateDrawingXml(_ref) {\n var sheetIndex = _ref.sheetIndex,\n sheetId = _ref.sheetId,\n sheetOptions = _ref.sheetOptions,\n features = _ref.features;\n var xml = DRAWING_XML_START +\n // Apply any plugins that insert additional content to this XML.\n getAdditionalContent('xl/drawings/drawing{id}.xml', features, sheetOptions, {\n sheetIndex: sheetIndex,\n sheetId: sheetId\n }) + DRAWING_XML_END;\n\n // Apply any plugins that transform this XML.\n xml = transformContent(xml, 'xl/drawings/drawing{id}.xml', features, sheetOptions, {\n sheetIndex: sheetIndex,\n sheetId: sheetId\n });\n return xml;\n}\nexport var DRAWING_XML_START = '<?xml version=\"1.0\" encoding=\"UTF-8\" standalone=\"yes\"?>' + '<xdr:wsDr xmlns:xdr=\"http://schemas.openxmlformats.org/drawingml/2006/spreadsheetDrawing\" xmlns:a=\"http://schemas.openxmlformats.org/drawingml/2006/main\">';\nexport var DRAWING_XML_END = '</xdr:wsDr>';\n//# sourceMappingURL=drawing.xml.js.map","import getAdditionalContent from '../helpers/features/getAdditionalContent.js';\nimport transformContent from '../helpers/features/transformContent.js';\nexport default function generateDrawingXmlRels(_ref) {\n var sheetIndex = _ref.sheetIndex,\n sheetId = _ref.sheetId,\n sheetOptions = _ref.sheetOptions,\n features = _ref.features;\n var xml = '<?xml version=\"1.0\" encoding=\"UTF-8\" standalone=\"yes\"?>' + '<Relationships xmlns=\"http://schemas.openxmlformats.org/package/2006/relationships\">' +\n // Apply any plugins that insert additional content to this XML.\n getAdditionalContent('xl/drawings/_rels/drawing{id}.xml.rels', features, sheetOptions, {\n sheetIndex: sheetIndex,\n sheetId: sheetId\n }) + '</Relationships>';\n\n // Apply any plugins that transform this XML.\n xml = transformContent(xml, 'xl/drawings/_rels/drawing{id}.xml.rels', features, sheetOptions, {\n sheetIndex: sheetIndex,\n sheetId: sheetId\n });\n return xml;\n}\n//# sourceMappingURL=drawing.xml.rels.js.map","import getSelfClosingTagMarkup from '../../../xml/getSelfClosingTagMarkup.js';\nexport default function generateSheetViews(tag, viewProperties, sheetIndex) {\n if (!hasView(viewProperties)) {\n return '';\n }\n var showGridLines = viewProperties.showGridLines,\n rightToLeft = viewProperties.rightToLeft,\n zoomScale = viewProperties.zoomScale;\n var sheetViewAttributes = {\n tabSelected: sheetIndex === 0 ? 1 : 0,\n // The first sheet is selected by default.\n workbookViewId: 0\n };\n if (showGridLines === false) {\n sheetViewAttributes.showGridLines = false;\n }\n if (rightToLeft) {\n sheetViewAttributes.rightToLeft = 1;\n }\n if (typeof zoomScale === 'number') {\n // Convert the scale number to a percentage.\n //\n // Excel 2007 doesn't like fractional `zoomScale` percentage values.\n // To work around that, it rounds the resulting percentage value.\n //\n sheetViewAttributes.zoomScale = Math.round(zoomScale * 100);\n }\n var sheetViewXml = tag('sheetView', sheetViewAttributes, null, 0);\n return tag('sheetViews', null, sheetViewXml);\n}\nfunction hasView(_ref) {\n var showGridLines = _ref.showGridLines,\n rightToLeft = _ref.rightToLeft,\n zoomScale = _ref.zoomScale;\n return showGridLines === false || rightToLeft || typeof zoomScale === 'number';\n}\n//# sourceMappingURL=sheetViews.js.map","// import floatToInteger from './helpers/floatToInteger.js'\n\nexport default function generateColumnDescription(tag, column, index) {\n // Guards against a developer forgetting to put some columns\n // in the `columns` list.\n // For example, a developer may pass `data` with `7` columns\n // but only specify `6` of them in the `columns` list.\n // Hence, it handles missing column description here.\n if (!column) {\n return '';\n }\n\n // Get the column width (in characters).\n var width = column.width;\n\n // If no width specified (0 width is not allowed as well), then\n // leave the definition empty and the width will be applied automatically.\n if (!width) {\n return '';\n }\n\n // To ensure the column number starts as in Excel.\n var columnNumber = index + 1;\n\n // `column` format is described here:\n // https://msdn.microsoft.com/en-us/library/office/documentformat.openxml.spreadsheet.column.aspx\n //\n // `customWidth=\"1\"` is required in order for `width=\"...\"` to be applied.\n // Otherwise, Microsoft Office 2007 Excel wouldn't apply the custom column `width`.\n //\n var attributes = {\n min: columnNumber,\n max: columnNumber,\n width: width,\n customWidth: 1\n };\n return tag('col', attributes, null, index);\n}\n\n// /**\n// * Converts column width in pixels to column width in characters.\n// * Column width is measured as the number of characters of the maximum digit width\n// * of the numbers 0, 1, 2, …, 9 as rendered in the normal style's font.\n// * There are 4 pixels of margin padding (two on each side), plus 1 pixel padding\n// * for the gridlines.\n// * @param {number} widthInPixels — Target column width in pixels.\n// * @return {number}\n// */\n// function getColumnWidthInCharacters(columnWidthInPixels) {\n// // Using the Calibri font as an example,\n// // the maximum width of a digit character\n// // when using font size \"11 pt\" is equal to 7 pixels (at 96 dpi).\n// // TODO make it configurable?\n// const maximumDigitWidth = 7 // in pixels\n//\n// // To translate from pixels to character width, use this calculation:\n// // =Truncate(({pixels}-5)/{Maximum Digit Width} * 100+0.5)/100\n// const characterWidth = floatToInteger((((columnWidthInPixels - 5) / maximumDigitWidth) * 100) + 0.5) / 100\n//\n// // To translate from character width to real width, use this calculation:\n// // =Truncate([{Number of Characters} * {Maximum Digit Width} + {5 pixel padding}]/{Maximum Digit Width}*256)/256\n// return floatToInteger((((characterWidth * maximumDigitWidth) + 5) / maximumDigitWidth) * 256) / 256\n// }\n//# sourceMappingURL=column.js.map","import generateColumnDescription from './column.js';\nexport default function generateColumnsDescription(tag, columns) {\n // If column options are specified.\n if (columns) {\n // `cols` format is described here:\n // https://msdn.microsoft.com/en-us/library/office/documentformat.openxml.spreadsheet.columns.aspx\n var columnsXml = columns.map(function (column, index) {\n return generateColumnDescription(tag, column, index);\n }).join('');\n\n // If any column has any custom properties, create a `<cols/>` element.\n // An empty `<cols></cols>` element would produce an error in some versions of Excel.\n // https://gitlab.com/catamphetamine/write-excel-file/-/issues/6\n if (columnsXml) {\n return tag('cols', null, columnsXml);\n }\n }\n\n // Return an empty string rather than an empty `<cols></cols>` element.\n // An empty `<cols></cols>` element would produce an error in some versions of Excel.\n // https://gitlab.com/catamphetamine/write-excel-file/-/issues/6\n return '';\n}\n//# sourceMappingURL=columns.js.map","import escapeXmlSpecialCharacters from './escapeXmlSpecialCharacters.js';\nimport removeInvalidXmlCharacters from './removeInvalidXmlCharacters.js';\n\n/**\r\n * Removes invalid characters and escapes \"speciaL\" characters in an XML element's text content.\r\n * @param {string} textContent\r\n * @returns {string}\r\n */\nexport default function sanitizeTextContent(textContent) {\n if (typeof textContent !== 'string') {\n throw new TypeError('Argument must be a string');\n }\n // Remove characters that're invalid in XML.\n textContent = removeInvalidXmlCharacters(textContent);\n // Escape \"special\" characters.\n return escapeXmlSpecialCharacters(textContent, {\n isAttributeValue: false\n });\n}\n//# sourceMappingURL=sanitizeTextContent.js.map","/**\r\n * Gets spreadsheet cell string coordinate from row index and column index.\r\n * @param {number} rowIndex\r\n * @param {number} columnIndex\r\n * @returns {string}\r\n */\nexport default function getCellAddress(rowIndex, columnIndex) {\n return \"\".concat(getColumnLetter(columnIndex)).concat(rowIndex + 1);\n}\n\n// `26` letters in the alphabet: from \"A\" to \"Z\".\nvar LETTERS_COUNT = 26;\nfunction getColumnLetter(columnIndex) {\n if (typeof columnIndex !== 'number') {\n return '';\n }\n var prefix = Math.floor(columnIndex / LETTERS_COUNT);\n // Letter character codes start at `97`.\n var letter = String.fromCharCode(97 + columnIndex % LETTERS_COUNT).toUpperCase();\n if (prefix === 0) {\n return letter;\n }\n return getColumnLetter(prefix - 1) + letter;\n}\n//# sourceMappingURL=getCellAddress.js.map","// \"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).\nvar daysBeforeUnixEpoch = 70 * 365 + 19;\n\n// An hour, approximately, because a minute\n// may be longer than 60 seconds, see \"leap seconds\".\nvar hour = 60 * 60 * 1000;\nvar day = 24 * hour;\n\n/**\r\n * Converts a `Date` into an XLSX \"serial\" number.\r\n * @param {Date} date\r\n * @returns {number}\r\n */\nexport default function convertDateToSerialNumber(date) {\n return date.getTime() / day + daysBeforeUnixEpoch;\n}\n//# sourceMappingURL=convertDateToSerialNumber.js.map","function _slicedToArray(r, e) { return _arrayWithHoles(r) || _iterableToArrayLimit(r, e) || _unsupportedIterableToArray(r, e) || _nonIterableRest(); }\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.\"); }\nfunction _unsupportedIterableToArray(r, a) { if (r) { if (\"string\" == typeof r) return _arrayLikeToArray(r, a); var t = {}.toString.call(r).slice(8, -1); return \"Object\" === t && r.constructor && (t = r.constructor.name), \"Map\" === t || \"Set\" === t ? Array.from(r) : \"Arguments\" === t || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t) ? _arrayLikeToArray(r, a) : void 0; } }\nfunction _arrayLikeToArray(r, a) { (null == a || a > r.length) && (a = r.length); for (var e = 0, n = Array(a); e < a; e++) n[e] = r[e]; return n; }\nfunction _iterableToArrayLimit(r, l) { var t = null == r ? null : \"undefined\" != typeof Symbol && r[Symbol.iterator] || r[\"@@iterator\"]; if (null != t) { var e, n, i, u, a = [], f = !0, o = !1; try { if (i = (t = t.call(r)).next, 0 === l) { if (Object(t) !== t) return; f = !1; } else for (; !(f = (e = i.call(t)).done) && (a.push(e.value), a.length !== l); f = !0); } catch (r) { o = !0, n = r; } finally { try { if (!f && null != t[\"return\"] && (u = t[\"return\"](), Object(u) !== u)) return; } finally { if (o) throw n; } } return a; } }\nfunction _arrayWithHoles(r) { if (Array.isArray(r)) return r; }\nimport sanitizeTextContent from '../../../xml/sanitizeTextContent.js';\nimport getCellAddress from '../../helpers/getCellAddress.js';\nimport convertDateToSerialNumber from '../../helpers/convertDateToSerialNumber.js';\nexport default function generateCell(tag, _ref, index, rowIndex) {\n var value = _ref.value,\n type = _ref.type,\n cellStyleId = _ref.cellStyleId,\n findOrCreateSharedString = _ref.findOrCreateSharedString;\n // Empty cells could be skipped completely,\n // if they don't have a style applied to them,\n // like border or background color.\n if (value === null) {\n if (cellStyleId === undefined) {\n return '';\n }\n }\n var cellAttributes = {\n r: getCellAddress(rowIndex, index)\n };\n\n // Available formatting style IDs (built-in in Excel):\n // https://xlsxwriter.readthedocs.io/format.html#format-set-num-format\n // `2` — 0.00\n // `3` — #,##0\n if (cellStyleId !== undefined) {\n // From the attribute s=\"12\" we know that the cell's formatting is stored at the 13th (zero-based index) <xf> within the <cellXfs>\n cellAttributes.s = String(cellStyleId);\n }\n if (value === null) {\n return tag('c', cellAttributes, null, index);\n }\n\n // Validate date format.\n if (type === Date && cellStyleId === undefined) {\n throw new Error(\"No `format` was specified for a `Date` value in a cell in row \".concat(rowIndex + 1, \" column \").concat(index + 1, \". Either specify a `format` for this cell or specify a default global one by passing `dateFormat` option to `writeXlsxFile()` function\"));\n }\n var valueTextContent = getValueTextContent(type, value, findOrCreateSharedString);\n var typeAttribute = getTypeAttribute(type);\n\n // The default value for `t` is `\"n\"` (a number or a date).\n if (typeAttribute) {\n cellAttributes.t = typeAttribute;\n }\n var _getOpeningAndClosing = getOpeningAndClosingTags(type),\n _getOpeningAndClosing2 = _slicedToArray(_getOpeningAndClosing, 2),\n valueOpeningTags = _getOpeningAndClosing2[0],\n valueClosingTags = _getOpeningAndClosing2[1];\n var cellXml = valueOpeningTags + valueTextContent + valueClosingTags;\n return tag('c', cellAttributes, cellXml, index);\n}\nfunction getTypeAttribute(type) {\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 switch (type) {\n case String:\n return 's';\n // I don't know why did I comment out the use of \"inlineStr\" XLSX type.\n // Perhaps there were some issues with it. Or perhaps there weren't and everyone else just uses \"s\".\n // // \"inlineStr\" type is used instead of \"s\" to avoid creating a \"shared strings\" index.\n // return 'inlineStr'\n\n case Number:\n // `n` is the default cell type (if no `t` has been specified).\n // return 'n'\n return;\n case Date:\n // `n` is the default cell type (if no `t` has been specified).\n // return 'n'\n return;\n case Boolean:\n return 'b';\n case 'Formula':\n return;\n default:\n throw new Error(\"Unknown type: \".concat(type && type.name || type));\n }\n}\nfunction getValueTextContent(type, value, findOrCreateSharedString) {\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 switch (type) {\n case String:\n if (typeof value !== 'string') {\n throw new Error(\"Invalid cell value: \".concat(value, \". Expected a string\"));\n }\n return findOrCreateSharedString(value);\n case Number:\n if (typeof value !== 'number') {\n throw new Error(\"Invalid cell value: \".concat(value, \". Expected a number\"));\n }\n return String(value);\n case Date:\n if (!(value instanceof Date)) {\n throw new Error(\"Invalid cell value: \".concat(value, \". Expected a Date\"));\n }\n // \"d\" type doesn't seem to work.\n // return value.toISOString()\n return String(convertDateToSerialNumber(value));\n case Boolean:\n if (typeof value !== 'boolean') {\n throw new Error(\"Invalid cell value: \".concat(value, \". Expected a boolean\"));\n }\n return value ? '1' : '0';\n case 'Formula':\n if (typeof value !== 'string') {\n throw new Error(\"Invalid cell value: \".concat(value, \". Expected a string\"));\n }\n return sanitizeTextContent(value);\n default:\n throw new Error(\"Unknown type: \".concat(type && type.name || type));\n }\n}\nvar TAG_BRACKET_LEFT_REGEXP = /</g;\nfunction getOpeningAndClosingTags(type) {\n var openingTags = getOpeningTags(type);\n var closingTags = openingTags.replace(TAG_BRACKET_LEFT_REGEXP, '</');\n return [openingTags, closingTags];\n}\nfunction getOpeningTags(type) {\n switch (type) {\n // case 'inlineStr':\n // return '<is><t>'\n case 'Formula':\n return '<f>';\n default:\n return '<v>';\n }\n}\n//# sourceMappingURL=cell.js.map","export default function hasAlignment(_ref) {\n var align = _ref.align,\n alignVertical = _ref.alignVertical,\n textRotation = _ref.textRotation,\n indent = _ref.indent,\n wrap = _ref.wrap;\n return Boolean(align || alignVertical || typeof textRotation === 'number' || indent || wrap);\n}\n//# sourceMappingURL=hasAlignment.js.map","export default function hasBorder(_ref) {\n var borderColor = _ref.borderColor,\n borderStyle = _ref.borderStyle,\n leftBorderColor = _ref.leftBorderColor,\n leftBorderStyle = _ref.leftBorderStyle,\n rightBorderColor = _ref.rightBorderColor,\n rightBorderStyle = _ref.rightBorderStyle,\n topBorderColor = _ref.topBorderColor,\n topBorderStyle = _ref.topBorderStyle,\n bottomBorderColor = _ref.bottomBorderColor,\n bottomBorderStyle = _ref.bottomBorderStyle;\n return Boolean(borderColor || borderStyle || leftBorderColor || leftBorderStyle || rightBorderColor || rightBorderStyle || topBorderColor || topBorderStyle || bottomBorderColor || bottomBorderStyle);\n}\n//# sourceMappingURL=hasBorder.js.map","export default function hasFill(_ref) {\n var backgroundColor = _ref.backgroundColor,\n fillPatternStyle = _ref.fillPatternStyle,\n fillPatternColor = _ref.fillPatternColor;\n return Boolean(backgroundColor || fillPatternStyle && fillPatternColor);\n}\n//# sourceMappingURL=hasFill.js.map","export default function hasFont(_ref) {\n var fontFamily = _ref.fontFamily,\n fontSize = _ref.fontSize,\n fontWeight = _ref.fontWeight,\n fontStyle = _ref.fontStyle,\n textDecoration = _ref.textDecoration,\n textColor = _ref.textColor;\n return Boolean(fontFamily || typeof fontSize === 'number' || fontWeight || fontStyle || textDecoration && Object.keys(textDecoration).length > 0 || textColor);\n}\n//# sourceMappingURL=hasFont.js.map","import hasAlignment from '../../../helpers/hasAlignment.js';\nimport hasBorder from '../../../helpers/hasBorder.js';\nimport hasFill from '../../../helpers/hasFill.js';\nimport hasFont from '../../../helpers/hasFont.js';\nexport default function getCellStyleProperties(cell, features) {\n var align = cell.align,\n alignVertical = cell.alignVertical,\n textRotation = cell.textRotation,\n indent = cell.indent,\n wrap = cell.wrap,\n fontFamily = cell.fontFamily,\n fontSize = cell.fontSize,\n fontWeight = cell.fontWeight,\n fontStyle = cell.fontStyle,\n textDecoration = cell.textDecoration,\n textColor = cell.textColor,\n backgroundColor = cell.backgroundColor,\n fillPatternStyle = cell.fillPatternStyle,\n fillPatternColor = cell.fillPatternColor,\n borderColor = cell.borderColor,\n borderStyle = cell.borderStyle,\n leftBorderColor = cell.leftBorderColor,\n leftBorderStyle = cell.leftBorderStyle,\n rightBorderColor = cell.rightBorderColor,\n rightBorderStyle = cell.rightBorderStyle,\n topBorderColor = cell.topBorderColor,\n topBorderStyle = cell.topBorderStyle,\n bottomBorderColor = cell.bottomBorderColor,\n bottomBorderStyle = cell.bottomBorderStyle;\n if (hasAlignment({\n align: align,\n alignVertical: alignVertical,\n textRotation: textRotation,\n indent: indent,\n wrap: wrap\n }) || hasFont({\n fontFamily: fontFamily,\n fontSize: fontSize,\n fontWeight: fontWeight,\n fontStyle: fontStyle,\n textDecoration: textDecoration,\n textColor: textColor\n }) || hasFill({\n backgroundColor: backgroundColor,\n fillPatternStyle: fillPatternStyle,\n fillPatternColor: fillPatternColor\n }) || hasBorder({\n borderColor: borderColor,\n borderStyle: borderStyle,\n leftBorderColor: leftBorderColor,\n leftBorderStyle: leftBorderStyle,\n rightBorderColor: rightBorderColor,\n rightBorderStyle: rightBorderStyle,\n topBorderColor: topBorderColor,\n topBorderStyle: topBorderStyle,\n bottomBorderColor: bottomBorderColor,\n bottomBorderStyle: bottomBorderStyle\n })) {\n return omitUndefinedProperties({\n // alignment\n align: align,\n alignVertical: alignVertical,\n textRotation: textRotation,\n indent: indent,\n wrap: wrap,\n // font\n fontFamily: fontFamily,\n fontSize: fontSize,\n fontWeight: fontWeight,\n fontStyle: fontStyle,\n textDecoration: textDecoration,\n textColor: textColor,\n // fill\n backgroundColor: backgroundColor,\n fillPatternStyle: fillPatternStyle,\n fillPatternColor: fillPatternColor,\n // border\n borderColor: borderColor,\n borderStyle: borderStyle,\n leftBorderColor: leftBorderColor,\n leftBorderStyle: leftBorderStyle,\n rightBorderColor: rightBorderColor,\n rightBorderStyle: rightBorderStyle,\n topBorderColor: topBorderColor,\n topBorderStyle: topBorderStyle,\n bottomBorderColor: bottomBorderColor,\n bottomBorderStyle: bottomBorderStyle\n });\n }\n}\nfunction omitUndefinedProperties(object) {\n var filteredObject = {};\n for (var key in object) {\n if (object[key] !== undefined) {\n filteredObject[key] = object[key];\n }\n }\n return filteredObject;\n}\n//# sourceMappingURL=getCellStyleProperties.js.map","var objectConstructor = {}.constructor;\nexport default function isObject(object) {\n return object !== undefined && object !== null && object.constructor === objectConstructor;\n}\n//# sourceMappingURL=isObject.js.map","import isObject from './isObject.js';\n\n/**\r\n * Tells if a cell in sheet data is a simple value like `1` or \"abc\"\r\n * or if it's a fully-specified object like `{ value: \"abc\", type: String, ... }`.\r\n * https://gitlab.com/catamphetamine/write-excel-file/-/issues/107\r\n * @returns {boolean}\r\n */\nexport default function isCellObject(cell) {\n // (cell: Cell): value is CellObject {\n return isObject(cell);\n}\n//# sourceMappingURL=isCellObject.js.map","function _typeof(o) { \"@babel/helpers - typeof\"; return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && \"function\" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? \"symbol\" : typeof o; }, _typeof(o); }\nfunction ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }\nfunction _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }\nfunction _defineProperty(e, r, t) { return (r = _toPropertyKey(r)) in e ? Object.defineProperty(e, r, { value: t, enumerable: !0, configurable: !0, writable: !0 }) : e[r] = t, e; }\nfunction _toPropertyKey(t) { var i = _toPrimitive(t, \"string\"); return \"symbol\" == _typeof(i) ? i : i + \"\"; }\nfunction _toPrimitive(t, r) { if (\"object\" != _typeof(t) || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || \"default\"); if (\"object\" != _typeof(i)) return i; throw new TypeError(\"@@toPrimitive must return a primitive value.\"); } return (\"string\" === r ? String : Number)(t); }\nfunction _createForOfIteratorHelperLoose(r, e) { var t = \"undefined\" != typeof Symbol && r[Symbol.iterator] || r[\"@@iterator\"]; if (t) return (t = t.call(r)).next.bind(t); if (Array.isArray(r) || (t = _unsupportedIterableToArray(r)) || e && r && \"number\" == typeof r.length) { t && (r = t); var o = 0; return function () { return o >= r.length ? { done: !0 } : { done: !1, value: r[o++] }; }; } throw new TypeError(\"Invalid attempt to iterate non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); }\nfunction _unsupportedIterableToArray(r, a) { if (r) { if (\"string\" == typeof r) return _arrayLikeToArray(r, a); var t = {}.toString.call(r).slice(8, -1); return \"Object\" === t && r.constructor && (t = r.constructor.name), \"Map\" === t || \"Set\" === t ? Array.from(r) : \"Arguments\" === t || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t) ? _arrayLikeToArray(r, a) : void 0; } }\nfunction _arrayLikeToArray(r, a) { (null == a || a > r.length) && (a = r.length); for (var e = 0, n = Array(a); e < a; e++) n[e] = r[e]; return n; }\nimport generateCell from './cell.js';\nimport getCellStyleProperties from './helpers/getCellStyleProperties.js';\nimport isCellObject from '../../helpers/isCellObject.js';\nexport default function generateRow(tag, row, index, parameters) {\n // Calculate row height.\n var rowHeight;\n for (var _iterator = _createForOfIteratorHelperLoose(row), _step; !(_step = _iterator()).done;) {\n var cell = _step.value;\n if (isCellObject(cell)) {\n if (cell.height) {\n if (rowHeight === undefined || rowHeight < cell.height) {\n rowHeight = cell.height;\n }\n }\n }\n }\n\n // Generate `<r/>` element inner XML.\n var rowIndex = index;\n var rowCellsXml = row.map(function (cell, index) {\n return getCellXml(tag, cell, index, rowIndex, parameters);\n }).join('');\n var rowAttributes = {\n r: index + 1\n };\n if (rowHeight) {\n rowAttributes.ht = rowHeight;\n rowAttributes.customHeight = 1;\n }\n return tag('row', rowAttributes, rowCellsXml, index);\n}\nfunction getCellXml(tag, cell, index, rowIndex, _ref) {\n var findOrCreateCellStyle = _ref.findOrCreateCellStyle,\n findOrCreateSharedString = _ref.findOrCreateSharedString,\n hasDefaultFont = _ref.hasDefaultFont,\n dateFormat = _ref.dateFormat,\n features = _ref.features;\n if (cell === undefined || cell === null) {\n return '';\n }\n var cellObject = isCellObject(cell) ? cell : {\n value: cell\n };\n var cellStyleProperties = getCellStyleProperties(cellObject, features);\n var type = cellObject.type,\n value = cellObject.value,\n format = cellObject.format;\n if (isEmpty(value)) {\n value = null;\n } else {\n // Get cell value type.\n if (type === undefined) {\n type = detectValueType(value);\n if (type === undefined) {\n // The default cell value type is `String`.\n type = String;\n value = String(value);\n }\n }\n }\n\n // Validate `format` property.\n if (format) {\n if (type !== Date && type !== Number && type !== String && type !== 'Formula') {\n throw new Error(\"`format` \\\"\".concat(format, \"\\\" was specified on a cell of type `\").concat(type, \"`. `format` could only be specified on a cell of type `Date`, `Number`, `String` or `\\\"Formula\\\"`.\"));\n }\n if (type === String && format !== '@') {\n throw new Error(\"`format` \\\"\".concat(format, \"\\\" was specified on a cell of type `String`. The only supported `format` for a cell of type `String` is \\\"@\\\".\"));\n }\n } else {\n if (type === Date) {\n format = dateFormat;\n }\n }\n var hasFormat = Boolean(format);\n var hasCellStyle = Boolean(cellStyleProperties);\n var cellStyleId;\n if (hasDefaultFont || hasFormat || hasCellStyle) {\n cellStyleId = findOrCreateCellStyle(_objectSpread({\n format: format\n }, cellStyleProperties));\n }\n return generateCell(tag, {\n value: value,\n type: type,\n cellStyleId: cellStyleId,\n findOrCreateSharedString: findOrCreateSharedString\n }, index, rowIndex);\n}\nfunction isEmpty(value) {\n return value === undefined || value === null || value === '';\n}\nfunction detectValueType(value) {\n switch (_typeof(value)) {\n case 'string':\n return String;\n case 'number':\n return Number;\n case 'boolean':\n return Boolean;\n default:\n if (value instanceof Date) {\n return Date;\n }\n }\n}\n//# sourceMappingURL=row.js.map","import generateRow from './row.js';\nexport default function generateSheetData(tag, sheetData, parameters) {\n var sheetDataXml = sheetData.map(function (row, index) {\n return generateRow(tag, row, index, parameters);\n }).join('');\n return tag('sheetData', null, sheetDataXml);\n}\n//# sourceMappingURL=sheetData.js.map","import getCellStyleProperties from './helpers/getCellStyleProperties.js';\n\n// Supports \"merging cells\" across columns and rows.\n// https://rdrr.io/cran/openxlsx/man/mergeCells.html\n//\n// Returned result example for merged cells range \"A2:C3\":\n// { mergedCells: [ [0, 1], [2, 2] ] }\n//\n// Data example:\n//\n// rows:\n// [\n// [...],\n// [\n// { type: String, value: 'abc', columnSpan: 3, rowSpan: 2 },\n// { ... },\n// { ... }\n// ],\n// [...]\n// ]\n\nexport default function processMergedCells(sheetData, features) {\n var mergedCells = [];\n var _cloneSheetData = function cloneSheetData() {\n // The code will apply the style from the originating \"merged\" cells\n // to their adjacent `null` cells, so clone `sheetData` to prevent mutating it.\n sheetData = sheetData.slice();\n // Also clone each row of `sheetData`.\n var i = 0;\n while (i < sheetData.length) {\n sheetData[i] = sheetData[i].slice();\n i++;\n }\n // `sheetData` has been cloned. No need to clone it again.\n _cloneSheetData = function cloneSheetData() {\n return sheetData;\n };\n // Return the cloned `sheetData`.\n return sheetData;\n };\n var rowIndex = 0;\n while (rowIndex < sheetData.length) {\n var row = sheetData[rowIndex];\n var columnIndex = 0;\n while (columnIndex < row.length) {\n var cell = row[columnIndex];\n if (cell) {\n var _cell$rowSpan = cell.rowSpan,\n rowSpan = _cell$rowSpan === void 0 ? 1 : _cell$rowSpan;\n\n // `cell.span` property was renamed to `cell.columnSpan`.\n var columnSpan = typeof cell.span === 'number' ? cell.span : cell.columnSpan;\n if (typeof columnSpan !== 'number') {\n columnSpan = 1;\n }\n if (columnSpan > 1 || rowSpan > 1) {\n // Validate that `columnSpan`-ning or `rowSpan`-ning cells only overlap\n // `null` or `undefined` ones. Especially that `columnSpan`-ning or `rowSpan`-ning cells\n // don't overlap other `columnSpan`-ning or `rowSpan`-ning cells.\n processSpanningCells(sheetData, rowIndex, columnIndex, columnSpan, rowSpan, _cloneSheetData, features);\n\n // Add \"merged cells\" entry:\n // `[ [fromRowIndex, fromColumnIndex], [toRowIndex, toColumnIndex] ]`.\n mergedCells.push([[rowIndex, columnIndex], [rowIndex + (rowSpan ? rowSpan - 1 : 0), columnIndex + (columnSpan ? columnSpan - 1 : 0)]]);\n }\n }\n columnIndex++;\n }\n rowIndex++;\n }\n return {\n sheetData: sheetData,\n mergedCells: mergedCells\n };\n}\n\n// Validate that a `columnSpan`-ning / `rowSpan`-ning cell doesn't overlap\n// with other cells, especially `columnSpan`-ning / `rowSpan`-ning ones,\n// because those ones would make MS Office 2007 Excel say:\n// \"Excel found unreadable content in 'file.xlsx'.\n// Do you want to recover the contents of this workbook?\n// If you trust the source of this workbook, click Yes\".\nfunction processSpanningCells(sheetData, rowIndex, columnIndex, columnSpan, rowSpan, cloneSheetData, features) {\n var cellStyleProperties = getCellStyleProperties(sheetData[rowIndex][columnIndex], features);\n if (cellStyleProperties) {\n sheetData = cloneSheetData();\n }\n var i = rowIndex;\n while (i <= rowIndex + (rowSpan - 1)) {\n var j = columnIndex;\n while (j <= columnIndex + (columnSpan - 1)) {\n var cell = sheetData[i][j];\n if (i > rowIndex || j > columnIndex) {\n // Validate that all hidden cells are `null` or `undefined`.\n if (cell !== null && cell !== undefined) {\n throw new Error(\"[write-excel-file] When using `columnSpan` or `rowSpan` parameters, all hidden overlapped cells should be represented by `null`s or `undefined`s. Cell at row \".concat(rowIndex + 1, \" and column \").concat(columnIndex + 1, \" is configured with `columnSpan` \").concat(columnSpan, \" and `rowSpan` \").concat(rowSpan, \". Cell at row \").concat(i + 1, \" and column \").concat(j + 1, \" is neither `null` nor `undefined`: \").concat(JSON.stringify(cell)));\n }\n // Apply the style from the original cell to this `null` cell.\n // https://gitlab.com/catamphetamine/write-excel-file/-/issues/43\n if (cellStyleProperties) {\n sheetData[i][j] = cellStyleProperties;\n }\n }\n j++;\n }\n i++;\n }\n}\n//# sourceMappingURL=processMergedCells.js.map","function _slicedToArray(r, e) { return _arrayWithHoles(r) || _iterableToArrayLimit(r, e) || _unsupportedIterableToArray(r, e) || _nonIterableRest(); }\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.\"); }\nfunction _unsupportedIterableToArray(r, a) { if (r) { if (\"string\" == typeof r) return _arrayLikeToArray(r, a); var t = {}.toString.call(r).slice(8, -1); return \"Object\" === t && r.constructor && (t = r.constructor.name), \"Map\" === t || \"Set\" === t ? Array.from(r) : \"Arguments\" === t || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t) ? _arrayLikeToArray(r, a) : void 0; } }\nfunction _arrayLikeToArray(r, a) { (null == a || a > r.length) && (a = r.length); for (var e = 0, n = Array(a); e < a; e++) n[e] = r[e]; return n; }\nfunction _iterableToArrayLimit(r, l) { var t = null == r ? null : \"undefined\" != typeof Symbol && r[Symbol.iterator] || r[\"@@iterator\"]; if (null != t) { var e, n, i, u, a = [], f = !0, o = !1; try { if (i = (t = t.call(r)).next, 0 === l) { if (Object(t) !== t) return; f = !1; } else for (; !(f = (e = i.call(t)).done) && (a.push(e.value), a.length !== l); f = !0); } catch (r) { o = !0, n = r; } finally { try { if (!f && null != t[\"return\"] && (u = t[\"return\"](), Object(u) !== u)) return; } finally { if (o) throw n; } } return a; } }\nfunction _arrayWithHoles(r) { if (Array.isArray(r)) return r; }\nimport getCellAddress from '../../helpers/getCellAddress.js';\n\n// Supports \"merging cells\" across columns and rows.\n// https://rdrr.io/cran/openxlsx/man/mergeCells.html\n//\n// Returned XML example for merged cells range \"A2:C3\":\n// `<sheetData>...</sheetData><mergeCells count=\"1\"><mergeCell ref=\"A2:C3\"/></mergeCells>`\n//\n// Data example:\n//\n// rows:\n// [\n// [...],\n// [\n// { type: String, value: 'abc', columnSpan: 3, rowSpan: 2 },\n// { ... },\n// { ... }\n// ],\n// [...]\n// ]\n\nexport default function generateMergedCellsDescription(tag, mergedCells) {\n if (mergedCells.length === 0) {\n return '';\n }\n var mergeCellsXml = mergedCells.map(function (_ref, index) {\n var _ref2 = _slicedToArray(_ref, 2),\n from = _ref2[0],\n to = _ref2[1];\n var ref = getCellAddress(from[0], from[1]) + ':' + getCellAddress(to[0], to[1]);\n return tag('mergeCell', {\n ref: ref\n }, null, index);\n }).join('');\n return tag('mergeCells', {\n count: mergedCells.length\n }, mergeCellsXml);\n}\n//# sourceMappingURL=mergedCellsDescription.js.map","import sanitizeAttributeValue from '../../../xml/sanitizeAttributeValue.js';\nexport default function generatePageMargins(tag, _ref) {\n var orientation = _ref.orientation;\n // Margins are required when setting custom orientation,\n // otherwise they'd be `0`.\n // https://gitlab.com/catamphetamine/write-excel-file/-/issues/7#note_782347297\n if (orientation) {\n // Page margins (when printing).\n // https://github.com/randym/axlsx/blob/master/lib/axlsx/workbook/worksheet/page_margins.rb\n\n var marginLeft = 0.7; // The left margin in inches.\n var marginRight = 0.7; // The right margin in inches.\n var marginTop = 0.75; // The top margin in inches.\n var marginBottom = 0.75; // The bottom margin in inches.\n var header = 0.3; // The header margin in inches.\n var footer = 0.3; // The footer margin in inches.\n\n return tag('pageMargins', {\n left: marginLeft,\n right: marginRight,\n top: marginTop,\n bottom: marginBottom,\n header: header,\n footer: footer\n });\n }\n return '';\n}\n//# sourceMappingURL=pageMargins.js.map","import sanitizeAttributeValue from '../../../xml/sanitizeAttributeValue.js';\nexport default function generatePageSetup(tag, _ref) {\n var orientation = _ref.orientation;\n // Allows setting \"landscape\" orientation.\n // https://gitlab.com/catamphetamine/write-excel-file/-/issues/7\n if (orientation) {\n // Paper size (when printing).\n // https://github.com/randym/axlsx/blob/master/lib/axlsx/workbook/worksheet/page_setup.rb\n //\n // `paperSize` `9` means \"A4 paper (210 mm by 297 mm)\".\n //\n var paperSize = 9;\n\n // Page orientation (when printing).\n //\n // `orientation` can be:\n // * `landscape`\n // * `portrait`\n // https://docs.microsoft.com/en-us/office/vba/api/excel.pagesetup.orientation\n\n return tag('pageSetup', {\n paperSize: paperSize,\n orientation: sanitizeAttributeValue(orientation)\n });\n }\n return '';\n}\n//# sourceMappingURL=pageSetup.js.map","export default function generateDrawingReference(tag) {\n // Each sheet has at most one \"drawing\", so the drawing ID is always `1`.\n // Here it always creates a drawing, even if it's going to be empty.\n // Such behavior is more convenient for \"features\" (plugins)\n // that might rely on a drawing to already exist.\n // For example, images \"feature\" uses this drawing.\n return tag('drawing', {\n 'r:id': 'rId-drawing-1'\n });\n}\nexport var UNUSED_DRAWING_REFERENCE_XML = '<drawing r:id=\"rId-drawing-1\"/>';\n//# sourceMappingURL=drawingReference.js.map","import generateSheetViews from './sheetViews.js';\nimport generateColumnsDescription from './columns.js';\nimport generateSheetData from './sheetData.js';\nimport processMergedCells from './processMergedCells.js';\nimport generateMergedCellsDescription from './mergedCellsDescription.js';\nimport generatePageMargins from './pageMargins.js';\nimport generatePageSetup from './pageSetup.js';\nimport generateDrawingReference from './drawingReference.js';\nimport getAdditionalContent from '../../helpers/features/getAdditionalContent.js';\nimport transformContent from '../../helpers/features/transformContent.js';\nimport getElementXml from '../../helpers/features/getElementXml.js';\nexport default function generateSheetXml(sheetXmlParameters, features) {\n var sheetData_ = sheetXmlParameters.sheetData,\n sheetOptions = sheetXmlParameters.sheetOptions,\n sheetIndex = sheetXmlParameters.sheetIndex,\n sheetId = sheetXmlParameters.sheetId,\n hasDefaultFont = sheetXmlParameters.hasDefaultFont,\n findOrCreateCellStyle = sheetXmlParameters.findOrCreateCellStyle,\n findOrCreateSharedString = sheetXmlParameters.findOrCreateSharedString;\n var columns = sheetOptions.columns,\n dateFormat = sheetOptions.dateFormat,\n orientation = sheetOptions.orientation,\n showGridLines = sheetOptions.showGridLines,\n rightToLeft = sheetOptions.rightToLeft,\n zoomScale = sheetOptions.zoomScale;\n var _processMergedCells = processMergedCells(sheetData_, {\n features: features\n }),\n sheetData = _processMergedCells.sheetData,\n mergedCells = _processMergedCells.mergedCells;\n\n // A parameter that will be used inside the `tag()` function below.\n var tagFunctionProperties = {\n sheetIndex: sheetIndex,\n sheetId: sheetId\n };\n\n /**\r\n * Creates XML tag markup.\r\n * @param {string} tagName\r\n * @param {object} attributes\r\n * @param {string} [innerXml]\r\n * @param {number} [index]\r\n * @returns {string}\r\n */\n var tag = function tag(tagName, attributes, innerXml, index) {\n return getElementXml('xl/worksheets/sheet{id}.xml', tagName, attributes, innerXml, index, tagFunctionProperties, sheetOptions, features);\n };\n var xml = '<?xml version=\"1.0\" ?>' + '<worksheet xmlns=\"http://schemas.openxmlformats.org/spreadsheetml/2006/main\" xmlns:mc=\"http://schemas.openxmlformats.org/markup-compatibility/2006\" xmlns:mv=\"urn:schemas-microsoft-com:mac:vml\" xmlns:mx=\"http://schemas.microsoft.com/office/mac/excel/2008/main\" xmlns:r=\"http://schemas.openxmlformats.org/officeDocument/2006/relationships\" xmlns:x14=\"http://schemas.microsoft.com/office/spreadsheetml/2009/9/main\" xmlns:x14ac=\"http://schemas.microsoft.com/office/spreadsheetml/2009/9/ac\" xmlns:xm=\"http://schemas.microsoft.com/office/excel/2006/main\">' +\n // The order of elements is dictated by the XLSX spec.\n //\n // `<sheetViews/>`\n generateSheetViews(tag, {\n showGridLines: showGridLines,\n rightToLeft: rightToLeft,\n zoomScale: zoomScale\n }, sheetIndex) +\n // `<cols/>`\n generateColumnsDescription(tag, columns) +\n // `<sheetData/>`\n generateSheetData(tag, sheetData, {\n findOrCreateCellStyle: findOrCreateCellStyle,\n findOrCreateSharedString: findOrCreateSharedString,\n hasDefaultFont: hasDefaultFont,\n dateFormat: dateFormat,\n features: features\n }) +\n // `<mergeCells/>`\n generateMergedCellsDescription(tag, mergedCells) +\n // `<pageMargins/>`\n generatePageMargins(tag, {\n orientation: orientation\n }) +\n // `<pageSetup/>`\n generatePageSetup(tag, {\n orientation: orientation\n }) +\n // `<drawing/>`\n generateDrawingReference(tag) +\n // Apply any plugins that insert additional content to this XML.\n getAdditionalContent('xl/worksheets/sheet{id}.xml', features, sheetOptions, {\n sheetIndex: sheetIndex,\n sheetId: sheetId\n }) + '</worksheet>';\n\n // Apply any plugins that transform this XML.\n xml = transformContent(xml, 'xl/worksheets/sheet{id}.xml', features, sheetOptions, {\n sheetIndex: sheetIndex,\n sheetId: sheetId\n });\n return xml;\n}\n//# sourceMappingURL=sheet.xml.js.map","import getAdditionalContent from '../helpers/features/getAdditionalContent.js';\nimport transformContent from '../helpers/features/transformContent.js';\nexport default function generateSheetXmlRels(_ref) {\n var sheetIndex = _ref.sheetIndex,\n sheetId = _ref.sheetId,\n sheetOptions = _ref.sheetOptions,\n features = _ref.features;\n var xml = '<?xml version=\"1.0\" encoding=\"UTF-8\" standalone=\"yes\"?>' + '<Relationships xmlns=\"http://schemas.openxmlformats.org/package/2006/relationships\">' +\n // Each sheet has at most one \"drawing\", so a globally-unique drawing ID is assumed to be the sheet ID.\n getDrawingRelationshipXml(sheetId) +\n // Apply any plugins that insert additional content to this XML.\n getAdditionalContent('xl/worksheets/_rels/sheet{id}.xml.rels', features, sheetOptions, {\n sheetIndex: sheetIndex,\n sheetId: sheetId\n }) + '</Relationships>';\n\n // Apply any plugins that transform this XML.\n xml = transformContent(xml, 'xl/worksheets/_rels/sheet{id}.xml.rels', features, sheetOptions, {\n sheetIndex: sheetIndex,\n sheetId: sheetId\n });\n return xml;\n}\nexport function getDrawingRelationshipXml(sheetId) {\n return \"<Relationship Id=\\\"rId-drawing-1\\\" Type=\\\"http://schemas.openxmlformats.org/officeDocument/2006/relationships/drawing\\\" Target=\\\"../drawings/drawing\".concat(sheetId, \".xml\\\"/>\");\n}\n//# sourceMappingURL=sheet.xml.rels.js.map","function _createForOfIteratorHelperLoose(r, e) { var t = \"undefined\" != typeof Symbol && r[Symbol.iterator] || r[\"@@iterator\"]; if (t) return (t = t.call(r)).next.bind(t); if (Array.isArray(r) || (t = _unsupportedIterableToArray(r)) || e && r && \"number\" == typeof r.length) { t && (r = t); var o = 0; return function () { return o >= r.length ? { done: !0 } : { done: !1, value: r[o++] }; }; } throw new TypeError(\"Invalid attempt to iterate non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); }\nfunction _unsupportedIterableToArray(r, a) { if (r) { if (\"string\" == typeof r) return _arrayLikeToArray(r, a); var t = {}.toString.call(r).slice(8, -1); return \"Object\" === t && r.constructor && (t = r.constructor.name), \"Map\" === t || \"Set\" === t ? Array.from(r) : \"Arguments\" === t || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t) ? _arrayLikeToArray(r, a) : void 0; } }\nfunction _arrayLikeToArray(r, a) { (null == a || a > r.length) && (a = r.length); for (var e = 0, n = Array(a); e < a; e++) n[e] = r[e]; return n; }\nimport sanitizeTextContent from '../../xml/sanitizeTextContent.js';\nexport default function generateSharedStringsXml(sharedStrings) {\n var xml = '<?xml version=\"1.0\"?>';\n xml += '<sst xmlns=\"http://schemas.openxmlformats.org/spreadsheetml/2006/main\">';\n for (var _iterator = _createForOfIteratorHelperLoose(sharedStrings), _step; !(_step = _iterator()).done;) {\n var string = _step.value;\n var attributes = string.trim().length === string.length ? '' : ' xml:space=\"preserve\"';\n xml += \"<si><t\".concat(attributes, \">\");\n xml += sanitizeTextContent(string);\n xml += '</t></si>';\n }\n xml += '</sst>';\n return xml;\n}\n//# sourceMappingURL=sharedStrings.xml.js.map","export default function getXlsxColorForHexColor(color) {\n if (color[0] !== '#') {\n throw new Error(\"Color \\\"\".concat(color, \"\\\" must start with a \\\"#\\\"\"));\n }\n return \"FF\".concat(color.slice('#'.length).toUpperCase());\n}\n//# sourceMappingURL=getXlsxColorForHexColor.js.map","import sanitizeAttributeValue from '../../xml/sanitizeAttributeValue.js';\nimport getXlsxColorForHexColor from './getXlsxColorForHexColor.js';\nimport hasFill from './hasFill.js';\nexport default function getFillXml(fill) {\n var _ref = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {},\n conditionalFormatting = _ref.conditionalFormatting;\n var backgroundColor = fill.backgroundColor,\n fillPatternStyle = fill.fillPatternStyle,\n fillPatternColor = fill.fillPatternColor;\n var isSolidFill = !fillPatternStyle || fillPatternStyle === 'solid';\n if (!hasFill(fill)) {\n return '<fill>' + '<patternFill patternType=\"none\"/>' + '</fill>';\n }\n var xml = '<fill>';\n\n // In XLSX, a background could be one of two types:\n //\n // * Some background color\n // * `<patternFill patternType=\"solid\"/>`\n // * `<fgColor rgb=\"...\"/>` — extremely weirdly, \"background color\" is specified as \"foreground color\" in XLSX standard.\n // * `<bgColor indexed=\"64\"/>` — just ignore this extremely weird mandatory element in XLSX standard.\n // * Some background color + Some pattern over it\n // * `<patternFill patternType=\"...something-other-than-solid...\"/>`\n // * `<fgColor rgb=\"...\"/>` — Pattern color\n // * `<bgColor rgb=\"...\"/>` — Background color\n //\n // As weird as it is, it gets more weird when it comes to \"conditional formatting\":\n // for some weird reason, it doesn't work same way in case of \"conditional formatting\".\n // Specifically, `<bgColor indexed=\"64\"/>` should not be used and instead it should specify\n // `<bgColor rgb=\"...\"/>` same as `<fgColor rgb=\"...\"/>`.\n\n xml += \"<patternFill patternType=\\\"\".concat(isSolidFill ? 'solid' : fillPatternStyle, \"\\\">\");\n xml += \"<fgColor rgb=\\\"\".concat(sanitizeAttributeValue(getXlsxColorForHexColor(isSolidFill ? backgroundColor : fillPatternColor)), \"\\\"/>\");\n xml += \"<bgColor \".concat(isSolidFill && !conditionalFormatting ? 'indexed=\"64\"' : 'rgb=\"' + sanitizeAttributeValue(getXlsxColorForHexColor(backgroundColor)) + '\"', \"/>\");\n xml += '</patternFill>';\n\n // Close the `<fill>` element.\n xml += '</fill>';\n\n // Return the XML.\n return xml;\n}\n//# sourceMappingURL=getFillXml.js.map","import sanitizeAttributeValue from '../../xml/sanitizeAttributeValue.js';\nimport getXlsxColorForHexColor from './getXlsxColorForHexColor.js';\nexport default function getBorderXml(_ref) {\n var borderColor = _ref.borderColor,\n borderStyle = _ref.borderStyle,\n leftBorderColor = _ref.leftBorderColor,\n leftBorderStyle = _ref.leftBorderStyle,\n rightBorderColor = _ref.rightBorderColor,\n rightBorderStyle = _ref.rightBorderStyle,\n topBorderColor = _ref.topBorderColor,\n topBorderStyle = _ref.topBorderStyle,\n bottomBorderColor = _ref.bottomBorderColor,\n bottomBorderStyle = _ref.bottomBorderStyle;\n var left = {\n style: leftBorderStyle || borderStyle,\n color: leftBorderColor || borderColor\n };\n var right = {\n style: rightBorderStyle || borderStyle,\n color: rightBorderColor || borderColor\n };\n var top = {\n style: topBorderStyle || borderStyle,\n color: topBorderColor || borderColor\n };\n var bottom = {\n style: bottomBorderStyle || borderStyle,\n color: bottomBorderColor || borderColor\n };\n var xml = '<border>';\n xml += getSideBorderXml('left', left);\n xml += getSideBorderXml('right', right);\n xml += getSideBorderXml('top', top);\n xml += getSideBorderXml('bottom', bottom);\n xml += '<diagonal/>';\n xml += '</border>';\n return xml;\n}\nfunction getSideBorderXml(side, _ref2) {\n var style = _ref2.style,\n color = _ref2.color;\n if (color && !style) {\n style = 'thin';\n }\n var hasChildren = Boolean(color);\n return \"<\".concat(side) + (style ? \" style=\\\"\".concat(sanitizeAttributeValue(style), \"\\\"\") : '') + (hasChildren ? '>' : '/>') + (color ? \"<color rgb=\\\"\".concat(sanitizeAttributeValue(getXlsxColorForHexColor(color)), \"\\\"/>\") : '') + (hasChildren ? \"</\".concat(side, \">\") : '');\n}\n//# sourceMappingURL=getBorderXml.js.map","import sanitizeAttributeValue from '../../xml/sanitizeAttributeValue.js';\nimport getXlsxColorForHexColor from './getXlsxColorForHexColor.js';\nexport default function getFontXml(font) {\n var _ref = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {},\n isDefaultGenericFont = _ref.isDefaultGenericFont;\n var fontFamily = font.fontFamily,\n fontSize = font.fontSize,\n fontWeight = font.fontWeight,\n fontStyle = font.fontStyle,\n textDecoration = font.textDecoration,\n textColor = font.textColor;\n var xml = '<font>';\n\n // Apply `fontFamily`\n if (fontFamily) {\n // `<name/>` element specifies the actual typeface name, such as \"Calibri\" or \"Arial\".\n xml += \"<name val=\\\"\".concat(sanitizeAttributeValue(fontFamily), \"\\\"/>\");\n }\n\n // Apply `fontSize`\n if (typeof fontSize === 'number') {\n xml += \"<sz val=\\\"\".concat(fontSize, \"\\\"/>\");\n }\n\n // `<family/>` element specifies a generic font family classification, which is used\n // by the application's font substitution logic if the exact font name is unavailable.\n // The `val` attribute uses a numerical value corresponding to a generic family:\n // 0: Automatic\n // 1: Roman (serif typefaces, like Times New Roman)\n // 2: Swiss (sans-serif typefaces, like Arial or Calibri)\n // 3: Modern (typefaces with a consistent stroke width, often monospaced)\n // 4: Script (handwriting or calligraphy style)\n // 5: Decorative (display typefaces)\n xml += '<family val=\"2\"/>';\n\n // When no custom font family or size are specified,\n // it uses a default generic font.\n if (!(fontFamily || typeof fontSize === 'number')) {\n // Specifies that a font belongs to the theme's \"minor\" (body) category,\n // mapping it to the default paragraph/body font. It enables automatic font updates\n // when changing themes, separating it from \"major\" (heading) fonts.\n xml += '<scheme val=\"minor\"/>';\n }\n\n // Apply `fontWeight`\n if (fontWeight === 'bold') {\n xml += '<b/>';\n }\n\n // Apply `fontStyle`\n if (fontStyle === 'italic') {\n xml += '<i/>';\n }\n\n // Apply `textDecoration`\n if (textDecoration) {\n if (textDecoration.strikethrough) {\n xml += '<strike/>';\n }\n if (textDecoration.underline) {\n xml += '<u/>';\n } else if (textDecoration.doubleUnderline) {\n xml += '<u val=\"double\"/>';\n }\n }\n\n // Sidenote: \"subscript\" and \"superscript\" text styles\n // don't seem to work with \"conditional formatting\" feature.\n //\n // if (... === 'subscript') {\n // \txml += '<vertAlign val=\"subscript\"/>'\n // } else if (... === 'superscript') {\n // \txml += '<vertAlign val=\"superscript\"/>'\n // }\n\n // Apply `textColor`\n if (textColor) {\n xml += \"<color rgb=\\\"\".concat(sanitizeAttributeValue(getXlsxColorForHexColor(textColor)), \"\\\"/>\");\n } else {\n // In XLSX files, `theme=\"1\"` for font color typically refers to the first color\n // in the document's theme palette, which is usually \"light-1\" (white or very light grey)\n // or \"dark-1\" (black or very dark grey) depending on the background theme,\n // designed to contrast with the default background color.\n //\n // It is part of the XML structure in XLSX files that defines theme-based colors\n // rather than hardcoded RGB values, allowing for dynamic updates when changing themes in Excel.\n //\n // It is generally used to define the primary text color (e.g., black on white) for default styling.\n //\n xml += '<color theme=\"1\"/>';\n }\n xml += '</font>';\n return xml;\n}\n//# sourceMappingURL=getFontXml.js.map","import sanitizeAttributeValue from '../../xml/sanitizeAttributeValue.js';\nexport default function getAlignmentXml(_ref) {\n var align = _ref.align,\n alignVertical = _ref.alignVertical,\n textRotation = _ref.textRotation,\n indent = _ref.indent,\n wrap = _ref.wrap;\n return '<alignment' + (align ? \" horizontal=\\\"\".concat(sanitizeAttributeValue(align), \"\\\"\") : '') + (alignVertical ? \" vertical=\\\"\".concat(sanitizeAttributeValue(alignVertical), \"\\\"\") : '') + (textRotation ? \" textRotation=\\\"\".concat(getTextRotation(validateTextRotation(textRotation)), \"\\\"\") : '') + (indent ? \" indent=\\\"\".concat(sanitizeAttributeValue(String(indent)), \"\\\"\") : '') + (wrap ? \" wrapText=\\\"1\\\"\" : '') + '/>';\n}\n\n// Validates text rotation parameter value.\n// Text rotation parameter value could be from -90 to 90.\n// Positive values rotate the text counterclockwise, and negative values rotate the text clockwise.\n//\n// The spec-compliant `textRotation` parameter value is weird.\n// See `getTextRotation()` function comments.\n//\n// I've searched the internet on how other libraries expect text rotation parameter to look like.\n// The consensus seems to be \"-90...90\" so that it's not as weird as the official spec defines it.\n//\n// In ClosedXML .NET library, it allows the values from -90 to 90:\n// https://docs.closedxml.io/en/latest/features/cell-format.html#orientation\n//\n// In XlsxWriter Python library, it's -90 to 90 with 270 as a special magic value:\n// https://xlsxwriter.readthedocs.io/format.html#format-set-rotation\n//\n// In Apache POI, it's also -90 to 90 and 255 as a special magic value:\n// https://copyprogramming.com/howto/how-to-rotate-text-in-a-spreadsheet-cell-using-apache-poi\n//\n// \"Specify the angle of rotation for the text within the cell.\n// The degree of rotation can range between -90 and 90 degrees, or it can be set to 0xff for vertical alignment.\"\n//\n// So -90 to 90 seems like a common-practice value range.\n//\nfunction validateTextRotation(textRotation) {\n if (!(textRotation >= -90 && textRotation <= 90)) {\n throw new Error(\"Unsupported text rotation angle: \".concat(textRotation, \". Values from -90 to 90 are supported.\"));\n }\n return textRotation;\n}\n\n// Transforms `textRotation` parameter value to the spec-compliant form.\n//\n// The XLSX specification for the value of `textRotation` is weird:\n// https://learn.microsoft.com/en-us/dotnet/api/documentformat.openxml.spreadsheet.alignment?view=openxml-2.8.1\n//\n// \"Text rotation in cells. Expressed in degrees. Values range from 0 to 180.\n// The first letter of the text is considered the center-point of the arc.\n// For 0 - 90, the value represents degrees above horizon.\n// For 91-180 the degrees below the horizon is calculated as:\n// [degrees below horizon] = 90 - textRotation\"\n//\nfunction getTextRotation(textRotation) {\n if (textRotation < 0) {\n return 90 - textRotation;\n }\n return textRotation;\n}\n//# sourceMappingURL=getAlignmentXml.js.map","function _typeof(o) { \"@babel/helpers - typeof\"; return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && \"function\" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? \"symbol\" : typeof o; }, _typeof(o); }\nfunction ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }\nfunction _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }\nfunction _defineProperty(e, r, t) { return (r = _toPropertyKey(r)) in e ? Object.defineProperty(e, r, { value: t, enumerable: !0, configurable: !0, writable: !0 }) : e[r] = t, e; }\nfunction _toPropertyKey(t) { var i = _toPrimitive(t, \"string\"); return \"symbol\" == _typeof(i) ? i : i + \"\"; }\nfunction _toPrimitive(t, r) { if (\"object\" != _typeof(t) || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || \"default\"); if (\"object\" != _typeof(i)) return i; throw new TypeError(\"@@toPrimitive must return a primitive value.\"); } return (\"string\" === r ? String : Number)(t); }\nimport hasFont from './helpers/hasFont.js';\nimport hasFill from './helpers/hasFill.js';\nimport hasBorder from './helpers/hasBorder.js';\n\n// There seem to be about 100 \"built-in\" formats in Excel.\n// https://docs.microsoft.com/en-us/previous-versions/office/developer/office-2010/ee857658(v=office.14)?redirectedfrom=MSDN\nexport var FORMAT_ID_STARTS_FROM = 100;\nexport default function initializeStyles(defaultFont) {\n var formats = [];\n var formatIdByFormat = {};\n var styles = [];\n var stylesIndex = {};\n var fonts = [];\n var fontIdByFontKey = {};\n var fills = [];\n var fillIdByFillKey = {};\n var borders = [];\n var borderIdByBorderKey = {};\n\n // Add default font.\n var defaultFontId = fonts.length;\n fontIdByFontKey[getKey(defaultFont)] = defaultFontId;\n fonts.push(defaultFont || {});\n\n // // If any of the sheets have a default font that is different from the generic one,\n // // add those fonts to the collection.\n // const sheetsDefaultFontIds = sheetsDefaultFonts.map((font) => {\n // if (font) {\n // const fontKey = getKey(font)\n // if (fontIdByFontKey[fontKey] !== undefined) {\n // return fontIdByFontKey[fontKey]\n // }\n // const fontId = fonts.length\n // fontIdByFontKey[fontKey] = fontId\n // fonts.push(font)\n // return fontId\n // } else {\n // return defaultFontId\n // }\n // })\n\n // Default fill (no color).\n var defaultFill = {};\n fillIdByFillKey[getKey(defaultFill)] = fills.length;\n fills.push(defaultFill);\n\n // Default border.\n var defaultBorder = {};\n borderIdByBorderKey[getKey(defaultBorder)] = borders.length;\n borders.push(defaultBorder);\n\n // Always add a mandatory \"gray125\" fill.\n // For some weird reason, MS Office 2007 Excel seems to require this type of `<fill>`\n // to always be present in an `*.xslx` document.\n // Otherwise, if this `<fill>` is absent in the document, it would forcefully overwrite\n // the first custom `backgroundColor` with a \"gray125\" fill.\n var gray125Fill = {\n gray125: true\n };\n fills.push(gray125Fill);\n\n // Returns a style ID number.\n // Adds a new style if it doesn't exist yet.\n // If it already exists, just reuses the existing one.\n function findOrCreateCellStyle(cellStyle) {\n var format = cellStyle.format,\n align = cellStyle.align,\n alignVertical = cellStyle.alignVertical,\n textRotation = cellStyle.textRotation,\n indent = cellStyle.indent,\n wrap = cellStyle.wrap,\n fontFamily = cellStyle.fontFamily,\n fontSize = cellStyle.fontSize,\n fontWeight = cellStyle.fontWeight,\n fontStyle = cellStyle.fontStyle,\n textDecoration = cellStyle.textDecoration,\n textColor = cellStyle.textColor,\n backgroundColor = cellStyle.backgroundColor,\n fillPatternStyle = cellStyle.fillPatternStyle,\n fillPatternColor = cellStyle.fillPatternColor,\n borderColor = cellStyle.borderColor,\n borderStyle = cellStyle.borderStyle,\n leftBorderColor = cellStyle.leftBorderColor,\n leftBorderStyle = cellStyle.leftBorderStyle,\n rightBorderColor = cellStyle.rightBorderColor,\n rightBorderStyle = cellStyle.rightBorderStyle,\n topBorderColor = cellStyle.topBorderColor,\n topBorderStyle = cellStyle.topBorderStyle,\n bottomBorderColor = cellStyle.bottomBorderColor,\n bottomBorderStyle = cellStyle.bottomBorderStyle;\n\n // const defaultFont = sheetsDefaultFonts[sheetIndex]\n // const defaultFontId = sheetsDefaultFontIds[sheetIndex]\n\n var font = {\n fontFamily: fontFamily,\n fontSize: fontSize,\n fontWeight: fontWeight,\n fontStyle: fontStyle,\n textDecoration: textDecoration,\n textColor: textColor\n };\n var fill = {\n backgroundColor: backgroundColor,\n fillPatternStyle: fillPatternStyle,\n fillPatternColor: fillPatternColor\n };\n var border = {\n borderColor: borderColor,\n borderStyle: borderStyle,\n leftBorderColor: leftBorderColor,\n leftBorderStyle: leftBorderStyle,\n rightBorderColor: rightBorderColor,\n rightBorderStyle: rightBorderStyle,\n topBorderColor: topBorderColor,\n topBorderStyle: topBorderStyle,\n bottomBorderColor: bottomBorderColor,\n bottomBorderStyle: bottomBorderStyle\n };\n var alignment = {\n align: align,\n alignVertical: alignVertical,\n textRotation: textRotation,\n indent: indent,\n wrap: wrap\n };\n var formatKey = getKey(format);\n var fontKey = getKey(font);\n var fillKey = getKey(fill);\n var borderKey = getKey(border);\n // const alignmentKey = getKey(alignment)\n\n var styleKey = getKey(cellStyle);\n\n // Returns style ID.\n var addStyle = function addStyle() {\n // Get format ID.\n var formatId;\n if (format) {\n formatId = formatIdByFormat[formatKey];\n if (formatId === undefined) {\n formatId = FORMAT_ID_STARTS_FROM + formats.length;\n formatIdByFormat[formatKey] = formatId;\n formats.push(format);\n }\n }\n\n // Get font ID.\n var fontId;\n if (hasFont(font)) {\n fontId = fontIdByFontKey[fontKey];\n if (fontId === undefined) {\n fontId = fonts.length;\n fontIdByFontKey[fontKey] = fontId;\n fonts.push(_objectSpread(_objectSpread({}, font), {}, {\n fontSize: font.fontSize || defaultFont && defaultFont.fontSize,\n fontFamily: font.fontFamily || defaultFont && defaultFont.fontFamily\n }));\n }\n } else if (defaultFont) {\n fontId = defaultFontId;\n }\n\n // Get fill ID.\n var fillId;\n if (hasFill(fill)) {\n fillId = fillIdByFillKey[fillKey];\n if (fillId === undefined) {\n fillId = fills.length;\n fillIdByFillKey[fillKey] = fillId;\n fills.push({\n backgroundColor: backgroundColor,\n fillPatternStyle: fillPatternStyle,\n fillPatternColor: fillPatternColor\n });\n }\n }\n\n // Get border ID.\n var borderId;\n if (hasBorder(border)) {\n borderId = borderIdByBorderKey[borderKey];\n if (borderId === undefined) {\n borderId = borders.length;\n borderIdByBorderKey[borderKey] = borderId;\n borders.push(border);\n }\n }\n var styleId = styles.length;\n stylesIndex[styleKey] = styleId;\n\n // Add a style.\n styles.push({\n formatId: formatId,\n fontId: fontId,\n fillId: fillId,\n borderId: borderId,\n alignment: alignment\n });\n return styleId;\n };\n\n // Look for an existing style.\n if (stylesIndex[styleKey] !== undefined) {\n return stylesIndex[styleKey];\n }\n\n // Create new style if doesn't exist.\n return addStyle();\n }\n\n // Add default style.\n // It will be used for any cell that doesn't specify any custom style properties.\n findOrCreateCellStyle({});\n return {\n getCellStyles: function getCellStyles() {\n return {\n formats: formats,\n styles: styles,\n fonts: fonts,\n fills: fills,\n borders: borders\n };\n },\n findOrCreateCellStyle: findOrCreateCellStyle\n };\n}\nfunction getKey(object) {\n return JSON.stringify(object);\n}\n//# sourceMappingURL=initializeStyles.js.map","function _createForOfIteratorHelperLoose(r, e) { var t = \"undefined\" != typeof Symbol && r[Symbol.iterator] || r[\"@@iterator\"]; if (t) return (t = t.call(r)).next.bind(t); if (Array.isArray(r) || (t = _unsupportedIterableToArray(r)) || e && r && \"number\" == typeof r.length) { t && (r = t); var o = 0; return function () { return o >= r.length ? { done: !0 } : { done: !1, value: r[o++] }; }; } throw new TypeError(\"Invalid attempt to iterate non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); }\nfunction _unsupportedIterableToArray(r, a) { if (r) { if (\"string\" == typeof r) return _arrayLikeToArray(r, a); var t = {}.toString.call(r).slice(8, -1); return \"Object\" === t && r.constructor && (t = r.constructor.name), \"Map\" === t || \"Set\" === t ? Array.from(r) : \"Arguments\" === t || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t) ? _arrayLikeToArray(r, a) : void 0; } }\nfunction _arrayLikeToArray(r, a) { (null == a || a > r.length) && (a = r.length); for (var e = 0, n = Array(a); e < a; e++) n[e] = r[e]; return n; }\nimport sanitizeAttributeValue from '../../xml/sanitizeAttributeValue.js';\nimport getFillXml from '../helpers/getFillXml.js';\nimport getBorderXml from '../helpers/getBorderXml.js';\nimport getFontXml from '../helpers/getFontXml.js';\nimport hasAlignment from '../helpers/hasAlignment.js';\nimport getAlignmentXml from '../helpers/getAlignmentXml.js';\nimport getAdditionalContent from '../helpers/features/getAdditionalContent.js';\nimport transformContent from '../helpers/features/transformContent.js';\nimport { FORMAT_ID_STARTS_FROM } from '../initializeStyles.js';\nexport default function generateStylesXml(cellStyles, sheetsOptions, features) {\n var formats = cellStyles.formats,\n styles = cellStyles.styles,\n fonts = cellStyles.fonts,\n fills = cellStyles.fills,\n borders = cellStyles.borders;\n var xml = '<?xml version=\"1.0\" ?>';\n xml += '<styleSheet xmlns=\"http://schemas.openxmlformats.org/spreadsheetml/2006/main\">';\n\n // Turns out, as weird as it sounds, the order of XML elements matters to MS Office Excel.\n // https://social.msdn.microsoft.com/Forums/office/en-US/cc47ab65-dab7-4e32-b676-b641aa1e1411/how-to-validate-the-xlsx-that-i-generate?forum=oxmlsdk\n // For example, previously this library was inserting `<cellXfs/>` before `<fonts/>`\n // and that caused MS Office 2007 Excel to throw an error about the file being corrupt:\n // \"Excel found unreadable content in '*.xlsx'. Do you want to recover the contents of this workbook?\"\n // \"Excel was able to open the file by repairing or removing the unreadable content.\"\n // \"Removed Part: /xl/styles.xml part with XML error. (Styles) Load error. Line 1, column ...\"\n // \"Repaired Records: Cell information from /xl/worksheets/sheet1.xml part\"\n\n if (formats.length > 0) {\n xml += \"<numFmts count=\\\"\".concat(formats.length, \"\\\">\");\n for (var i = 0; i < formats.length; i++) {\n xml += \"<numFmt numFmtId=\\\"\".concat(FORMAT_ID_STARTS_FROM + i, \"\\\" formatCode=\\\"\").concat(sanitizeAttributeValue(formats[i]), \"\\\"/>\");\n }\n xml += \"</numFmts>\";\n }\n xml += \"<fonts count=\\\"\".concat(fonts.length, \"\\\">\");\n for (var _iterator = _createForOfIteratorHelperLoose(fonts), _step; !(_step = _iterator()).done;) {\n var font = _step.value;\n xml += getFontXml(font);\n }\n xml += '</fonts>';\n\n // MS Office 2007 Excel seems to require a `<fills/>` element to always exist.\n // without it, MS Office 2007 Excel thinks that the file is broken.\n xml += \"<fills count=\\\"\".concat(fills.length, \"\\\">\");\n for (var _iterator2 = _createForOfIteratorHelperLoose(fills), _step2; !(_step2 = _iterator2()).done;) {\n var fill = _step2.value;\n if (fill.gray125) {\n // \"gray125\" fill.\n // For some weird reason, MS Office 2007 Excel seems to require \"gray125\" fill to be present in styles.\n // Otherwise, if it's absent, it would replace the first custom `<fill/>` with a \"gray125\" fill.\n xml += '<fill>';\n xml += '<patternFill patternType=\"gray125\"/>';\n xml += '</fill>';\n } else {\n xml += getFillXml(fill);\n }\n }\n xml += '</fills>';\n\n // MS Office 2007 Excel seems to require a `<borders/>` element to exist:\n // without it, MS Office 2007 Excel thinks that the file is broken.\n xml += \"<borders count=\\\"\".concat(borders.length, \"\\\">\");\n for (var _iterator3 = _createForOfIteratorHelperLoose(borders), _step3; !(_step3 = _iterator3()).done;) {\n var border = _step3.value;\n xml += getBorderXml(border);\n }\n xml += '</borders>';\n\n // What are `<cellXfs/>` and `<cellStyleXfs/>`:\n // http://officeopenxml.com/SSstyles.php\n //\n // `<cellStyleXfs/>` are referenced from `<cellXfs/>` as `<xf xfId=\"...\"/>`.\n // `<cellStyleXfs/>` defines abstract \"cell styles\" that can be \"extended\"\n // by \"cell styles\" defined by `<cellXfs/>` that can be applied to individual cells:\n // 1. `<cellStyleXfs><xf .../></cellStyleXfs>`\n // 2. `<cellXfs><xf xfId={cellStyleXfs.xf.index}/></cellXfs>`\n // 3. `<c s={cellXfs.xf.index}/>`\n // Seems like \"cell styles\" defined by `<cellXfs/>` have to reference\n // some abstract \"cell styles\" defined by `<cellStyleXfs/>` by the spec.\n // Otherwise, there would be no need to use `<cellStyleXfs/>` at all.\n // The naming is ambiguous and weird. The whole scheme is needlessly redundant.\n\n // xml += '<cellStyleXfs count=\"2\">'\n // xml += '<xf numFmtId=\"0\" fontId=\"0\" fillId=\"0\" borderId=\"0\"/>'\n // // `applyFont=\"1\"` means apply a custom font in this \"abstract\" \"cell style\"\n // // rather than using a default font.\n // // Seems like by default `applyFont` is `\"0\"` meaning that,\n // // unless `\"1\"` is specified, it would ignore the `fontId` attribute.\n // xml += '<xf numFmtId=\"0\" fontId=\"1\" applyFont=\"1\" fillId=\"0\" borderId=\"0\"/>'\n // xml += '</cellStyleXfs>'\n\n xml += \"<cellXfs count=\\\"\".concat(styles.length, \"\\\">\");\n for (var _iterator4 = _createForOfIteratorHelperLoose(styles), _step4; !(_step4 = _iterator4()).done;) {\n var cellStyle = _step4.value;\n var fontId = cellStyle.fontId,\n fillId = cellStyle.fillId,\n borderId = cellStyle.borderId,\n alignment = cellStyle.alignment,\n formatId = cellStyle.formatId;\n // `applyNumberFormat=\"1\"` means \"apply the `numFmtId` attribute\".\n // Seems like by default `applyNumberFormat` is `\"0\"` meaning that,\n // unless `\"1\"` is specified, it would ignore the `numFmtId` attribute.\n xml += '<xf ' + [formatId === undefined ? undefined : \"numFmtId=\\\"\".concat(formatId, \"\\\" applyNumberFormat=\\\"1\\\"\"), fontId === undefined ? undefined : \"fontId=\\\"\".concat(fontId, \"\\\" applyFont=\\\"1\\\"\"), fillId === undefined ? undefined : \"fillId=\\\"\".concat(fillId, \"\\\" applyFill=\\\"1\\\"\"), borderId === undefined ? undefined : \"borderId=\\\"\".concat(borderId, \"\\\" applyBorder=\\\"1\\\"\"), hasAlignment(alignment) ? 'applyAlignment=\"1\"' : undefined\n // 'xfId=\"0\"'\n ].filter(function (_) {\n return _;\n }).join(' ') + '>' + (\n // Possible horizontal alignment values:\n // left, center, right, fill, justify, center_across, distributed.\n // Possible vertical alignment values:\n // top, vcenter, bottom, vjustify, vdistributed.\n // https://xlsxwriter.readthedocs.io/format.html#set_align\n hasAlignment(alignment) ? getAlignmentXml(alignment) : '') + '</xf>';\n }\n xml += \"</cellXfs>\";\n\n // Apply any plugins that insert additional content to this XML.\n xml += getAdditionalContent('xl/styles.xml', features, sheetsOptions);\n xml += '</styleSheet>';\n\n // Apply any plugins that transform this XML.\n xml = transformContent(xml, 'xl/styles.xml', features, sheetsOptions);\n return xml;\n}\n//# sourceMappingURL=styles.xml.js.map","/**\r\n * Finds elements in valid XML markup.\r\n * Caveat: Every time it finds an element, it doesn't \"step into\" it but rather \"steps over\" it.\r\n * @param {string} xml — XML markup\r\n * @param {string} [options.tagName] — The name of the element to find\r\n * @param {boolean} [options.stopAfterFirstMatch] — If `true`, will only return a single result.\r\n * @returns {object[]} — Found elements, each element represented by an object with propeties: `{ openingTagStartIndex: number, openingTagEndIndex: number, openingTagAttributes: object, selfClosingTag?: boolean, closingTagStartIndex?: number, closingTagEndIndex?: number }`\r\n */\nexport default function findElementsNonRecursive_(xml) {\n var _ref = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {},\n tagName = _ref.tagName,\n stopAfterFirstMatch = _ref.stopAfterFirstMatch;\n var openingTagRegExp = new RegExp(getOpeningTagRegExpPattern(tagName), stopAfterFirstMatch ? undefined : 'g');\n var results = [];\n var openingTagMatch;\n while ((openingTagMatch = openingTagRegExp.exec(xml)) !== null) {\n var openingTag = openingTagMatch[0];\n var openingTagName = tagName || openingTagMatch[1];\n var attributes = {};\n var attributeRegExp = new RegExp('\\\\s+([^\\\\s=>]+)(?:=\"([^\\\\s=>]+)\")', 'g');\n var attributeMatch = void 0;\n while ((attributeMatch = attributeRegExp.exec(openingTag)) !== null) {\n attributes[attributeMatch[1]] = attributeMatch[2];\n }\n var result = {\n tagName: openingTagName,\n // openingTagMarkup: openingTag,\n openingTagStartIndex: openingTagMatch.index,\n openingTagEndIndex: openingTagMatch.index + openingTag.length - 1,\n openingTagAttributes: attributes,\n selfClosingTag: false,\n // closingTagMarkup: undefined,\n closingTagStartIndex: undefined,\n closingTagEndIndex: undefined\n };\n if (openingTag[openingTag.length - 2] === '/') {\n result.selfClosingTag = true;\n } else {\n var closingTagPosition = findClosingTagPosition(xml, result.openingTagEndIndex + 1, openingTagName);\n if (!closingTagPosition) {\n // `xml` is supposed to be \"valid XML\", so such situation isn't supposed to be possible.\n throw new Error(\"Invalid XML: opening tag was found but closing tag was not: </\".concat(openingTagName, \">\"));\n }\n result.closingTagStartIndex = closingTagPosition[0];\n result.closingTagEndIndex = closingTagPosition[1];\n }\n results.push(result);\n if (stopAfterFirstMatch) {\n break;\n }\n\n // Set \"start from\" index of the next match.\n if (result.selfClosingTag) {\n openingTagRegExp.lastIndex = result.openingTagEndIndex + 1;\n } else {\n openingTagRegExp.lastIndex = result.closingTagEndIndex + 1;\n }\n }\n return results;\n}\nfunction findClosingTagPosition(xml, startFromIndex, tagName) {\n var openingOrClosingTagRegExp = new RegExp('<(/)?' + tagName + '(?:\\\\s+[^>]+|/)?>', 'g');\n openingOrClosingTagRegExp.lastIndex = startFromIndex;\n var nestingLevel = 0;\n var openingOrClosingTagMatch;\n while ((openingOrClosingTagMatch = openingOrClosingTagRegExp.exec(xml)) !== null) {\n var openingOrClosingTag = openingOrClosingTagMatch[0];\n // Tells if it's a closing tag or an opening tag.\n var closingTagMarker = openingOrClosingTagMatch[1];\n if (closingTagMarker) {\n // Closing tag encountered.\n if (nestingLevel > 0) {\n nestingLevel--;\n } else {\n return [openingOrClosingTagMatch.index, openingOrClosingTagMatch.index + openingOrClosingTag.length - 1];\n }\n } else {\n // Opening tag encountered.\n nestingLevel++;\n }\n }\n}\nexport function getOpeningTagRegExpPattern(tagName) {\n return '<' + (tagName || '([^\\\\s/>]+)') + '(?:\\\\s+[^>]+|/)?>';\n}\n//# sourceMappingURL=findElementsNonRecursive_.js.map","import findElementsNonRecursive_ from './findElementsNonRecursive_.js';\n\n/**\r\n * Finds a single element in valid XML markup.\r\n * @param {string} xml — XML markup\r\n * @param {string} tagName — The name of the element to find\r\n * @returns {object|undefined} — A found element, represented by an object with propeties: `{ openingTagStartIndex: number, openingTagEndIndex: number, openingTagAttributes: object, selfClosingTag?: boolean, closingTagStartIndex?: number, closingTagEndIndex?: number }`\r\n */\nexport default function findElement(xml, tagName) {\n var elements = findElementsNonRecursive_(xml, {\n tagName: tagName,\n stopAfterFirstMatch: true\n });\n return elements[0];\n}\n//# sourceMappingURL=findElement.js.map","/**\r\n * Replaces the XML inside an `element` that was found in `xml` using `findElement()` function.\r\n * @param {string} xml\r\n * @param {FoundElement} element\r\n * @param {string} [replacementXml]\r\n * @returns {string}\r\n */\nexport default function setMarkupInsideElement(xml, element, replacementXml) {\n if (replacementXml) {\n if (element.selfClosingTag) {\n return xml.slice(0, element.openingTagEndIndex - '/'.length) + '>' + replacementXml + '</' + element.tagName + '>' + xml.slice(element.openingTagEndIndex + 1);\n }\n return xml.slice(0, element.openingTagEndIndex + 1) + replacementXml + xml.slice(element.closingTagStartIndex);\n } else {\n if (element.selfClosingTag) {\n return xml;\n }\n return xml.slice(0, element.openingTagEndIndex) + '/>' + xml.slice(element.closingTagEndIndex + 1);\n }\n}\n//# sourceMappingURL=setMarkupInsideElement.js.map","import setMarkupInsideElement from './setMarkupInsideElement.js';\n\n/**\r\n * Appends XML inside an `element` that was found in `xml` using `findElement()` function.\r\n * @param {string} xml\r\n * @param {FoundElement} element\r\n * @param {string} addedXml\r\n * @returns {string}\r\n */\nexport default function appendMarkupInsideElement(xml, element, addedXml) {\n if (element.selfClosingTag) {\n return setMarkupInsideElement(xml, element, addedXml);\n }\n return xml.slice(0, element.closingTagStartIndex) + addedXml + xml.slice(element.closingTagStartIndex);\n}\n//# sourceMappingURL=appendMarkupInsideElement.js.map","/**\r\n * Returns the XML inside an `element` that was found in `xml` using `findElement()` function.\r\n * @param {string} xml\r\n * @param {FoundElement} element\r\n * @returns {string}\r\n */\nexport default function getMarkupInsideElement(xml, element) {\n if (element.selfClosingTag) {\n return '';\n }\n return xml.substring(element.openingTagEndIndex + 1, element.closingTagStartIndex);\n}\n//# sourceMappingURL=getMarkupInsideElement.js.map","export default function applyEnclosingElementOffset(element, enclosingElement) {\n var enclosingElementOffset = enclosingElement.openingTagEndIndex + 1;\n element.openingTagStartIndex += enclosingElementOffset;\n element.openingTagEndIndex += enclosingElementOffset;\n if (!element.selfClosingTag) {\n element.closingTagStartIndex += enclosingElementOffset;\n element.closingTagEndIndex += enclosingElementOffset;\n }\n}\n//# sourceMappingURL=applyEnclosingElementOffset.js.map","function _createForOfIteratorHelperLoose(r, e) { var t = \"undefined\" != typeof Symbol && r[Symbol.iterator] || r[\"@@iterator\"]; if (t) return (t = t.call(r)).next.bind(t); if (Array.isArray(r) || (t = _unsupportedIterableToArray(r)) || e && r && \"number\" == typeof r.length) { t && (r = t); var o = 0; return function () { return o >= r.length ? { done: !0 } : { done: !1, value: r[o++] }; }; } throw new TypeError(\"Invalid attempt to iterate non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); }\nfunction _unsupportedIterableToArray(r, a) { if (r) { if (\"string\" == typeof r) return _arrayLikeToArray(r, a); var t = {}.toString.call(r).slice(8, -1); return \"Object\" === t && r.constructor && (t = r.constructor.name), \"Map\" === t || \"Set\" === t ? Array.from(r) : \"Arguments\" === t || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t) ? _arrayLikeToArray(r, a) : void 0; } }\nfunction _arrayLikeToArray(r, a) { (null == a || a > r.length) && (a = r.length); for (var e = 0, n = Array(a); e < a; e++) n[e] = r[e]; return n; }\nimport getMarkupInsideElement from './getMarkupInsideElement.js';\nimport applyEnclosingElementOffset from './applyEnclosingElementOffset.js';\nimport findElementsNonRecursive_ from './findElementsNonRecursive_.js';\n\n/**\r\n * Returns all child elements of a given element.\r\n * @param {string} xml — XML markup\r\n * @param {object} element — A parent element that was previously found using `findElement()` function.\r\n * @returns {object[]} — Child elements, each element represented by an object with propeties: `{ openingTagStartIndex: number, openingTagEndIndex: number, openingTagAttributes: object, selfClosingTag?: boolean, closingTagStartIndex?: number, closingTagEndIndex?: number }`\r\n */\nexport default function getChildElements(xml, element) {\n var children = findElementsNonRecursive_(getMarkupInsideElement(xml, element));\n for (var _iterator = _createForOfIteratorHelperLoose(children), _step; !(_step = _iterator()).done;) {\n var child = _step.value;\n applyEnclosingElementOffset(child, element);\n }\n return children;\n}\n//# sourceMappingURL=getChildElements.js.map","import setMarkupInsideElement from './setMarkupInsideElement.js';\n\n/**\r\n * Prepends XML inside an `element` that was found in `xml` using `findElement()` function.\r\n * @param {string} xml\r\n * @param {FoundElement} element\r\n * @param {string} addedXml\r\n * @returns {string}\r\n */\nexport default function prependMarkupInsideElement(xml, element, addedXml) {\n if (element.selfClosingTag) {\n return setMarkupInsideElement(xml, element, addedXml);\n }\n return xml.slice(0, element.openingTagEndIndex + 1) + addedXml + xml.slice(element.openingTagEndIndex + 1);\n}\n//# sourceMappingURL=prependMarkupInsideElement.js.map","function _createForOfIteratorHelperLoose(r, e) { var t = \"undefined\" != typeof Symbol && r[Symbol.iterator] || r[\"@@iterator\"]; if (t) return (t = t.call(r)).next.bind(t); if (Array.isArray(r) || (t = _unsupportedIterableToArray(r)) || e && r && \"number\" == typeof r.length) { t && (r = t); var o = 0; return function () { return o >= r.length ? { done: !0 } : { done: !1, value: r[o++] }; }; } throw new TypeError(\"Invalid attempt to iterate non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); }\nfunction _unsupportedIterableToArray(r, a) { if (r) { if (\"string\" == typeof r) return _arrayLikeToArray(r, a); var t = {}.toString.call(r).slice(8, -1); return \"Object\" === t && r.constructor && (t = r.constructor.name), \"Map\" === t || \"Set\" === t ? Array.from(r) : \"Arguments\" === t || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t) ? _arrayLikeToArray(r, a) : void 0; } }\nfunction _arrayLikeToArray(r, a) { (null == a || a > r.length) && (a = r.length); for (var e = 0, n = Array(a); e < a; e++) n[e] = r[e]; return n; }\nimport findElement from './findElement.js';\nimport { getOpeningTagRegExpPattern } from './findElementsNonRecursive_.js';\nimport appendMarkupInsideElement from './appendMarkupInsideElement.js';\nimport getChildElements from './getChildElements.js';\nimport prependMarkupInsideElement from './prependMarkupInsideElement.js';\nexport default function insertElementMarkupAccordingToOrderOfSiblings(xml, elementMarkup, orderOfSiblings) {\n for (var _len = arguments.length, parentElementTagNames = new Array(_len > 3 ? _len - 3 : 0), _key = 3; _key < _len; _key++) {\n parentElementTagNames[_key - 3] = arguments[_key];\n }\n if (parentElementTagNames.length === 0) {\n throw new Error('At least one parent element tag name is required');\n }\n\n // Reorder the parent elements from top to bottom.\n parentElementTagNames = parentElementTagNames.slice().reverse();\n\n // Find the immediate parent element.\n var parentElement;\n var _loop = function _loop() {\n var parentElementTagName = _step.value;\n if (parentElement) {\n // Doesn't use `findElementInsideElement()` here in order to only search\n // in the immediate children of the `parentElement`.\n // parentElement = findElementInsideElement(xml, parentElementTagName, parentElement)\n parentElement = getChildElements(xml, parentElement).find(function (_) {\n return _.tagName === parentElementTagName;\n });\n } else {\n parentElement = findElement(xml, parentElementTagName);\n }\n if (!parentElement) {\n throw new Error(\"Element not found: <\".concat(parentElementTagName, \">\"));\n }\n };\n for (var _iterator = _createForOfIteratorHelperLoose(parentElementTagNames), _step; !(_step = _iterator()).done;) {\n _loop();\n }\n\n // Get element's tag name.\n var elementTagNameMatch = elementMarkup.match(TAG_NAME_REG_EXP);\n if (!elementTagNameMatch) {\n throw new Error(\"Couldn't extract tag name from markup: \".concat(elementMarkup));\n }\n var elementTagName = elementTagNameMatch[1];\n\n // See if the `.xlsx` specification enforces a specific order of elements in such case.\n if (!orderOfSiblings || orderOfSiblings.length < 2) {\n return appendMarkupInsideElement(xml, parentElement, elementMarkup);\n }\n var children = getChildElements(xml, parentElement);\n if (children.length === 0) {\n return appendMarkupInsideElement(xml, parentElement, elementMarkup);\n }\n var elementTagNameOrder = orderOfSiblings.indexOf(elementTagName);\n if (elementTagNameOrder < 0) {\n // The element tag name is unknown.\n return appendMarkupInsideElement(xml, parentElement, elementMarkup);\n }\n var tagNamesBeforeElement = orderOfSiblings.slice(0, elementTagNameOrder).reverse();\n var _loop2 = function _loop2() {\n var tagName = _step2.value;\n var precedingElement = children.find(function (_) {\n return _.tagName === tagName;\n });\n if (precedingElement) {\n return {\n v: xml.slice(0, precedingElement.selfClosingTag ? precedingElement.openingTagEndIndex + 1 : precedingElement.closingTagEndIndex + 1) + elementMarkup + xml.slice(precedingElement.selfClosingTag ? precedingElement.openingTagEndIndex + 1 : precedingElement.closingTagEndIndex + 1)\n };\n }\n },\n _ret;\n for (var _iterator2 = _createForOfIteratorHelperLoose(tagNamesBeforeElement), _step2; !(_step2 = _iterator2()).done;) {\n _ret = _loop2();\n if (_ret) return _ret.v;\n }\n return prependMarkupInsideElement(xml, parentElement, elementMarkup);\n}\nvar TAG_NAME_REG_EXP = new RegExp(getOpeningTagRegExpPattern());\n\n// function findOrderOfElementsInsideParentElement(orderOfElements, parentElementTagName) {\n// \tfor (const element of orderOfElements) {\n// \t\tif (Array.isArray(element)) {\n// \t\t\tif (element[0] === parentElementTagName) {\n// \t\t\t\treturn element[1]\n// \t\t\t}\n// \t\t\tconst recursionResult = findOrderOfElementsInsideParentElement(element[1], parentElementTagName)\n// \t\t\tif (recursionResult) {\n// \t\t\t\treturn recursionResult\n// \t\t\t}\n// \t\t} else {\n// \t\t\t// No order of child elements is specified for the `element`\n// \t\t\t// so there's nothing to search for inside this `element`.\n// \t\t\t// And if the `element` happens to be `parentElementTagName`,\n// \t\t\t// there's no need to look any further at all\n// \t\t\t// because it seems that no order of child elements is specified\n// \t\t\t// for the `parentElementTagName`.\n// \t\t\tif (element === parentElementTagName) {\n// \t\t\t\treturn\n// \t\t\t}\n// \t\t}\n// \t}\n// }\n//# sourceMappingURL=insertElementMarkupAccordingToOrderOfSiblings.js.map","// This file is currently not used anywhere. It's just here for reference.\n\n// The `.xlsx` document format is described in the official specification\n// called \"ECMA-376 Office Open XML File Formats\":\n// https://ecma-international.org/publications-and-standards/standards/ecma-376/\n// https://en.wikipedia.org/wiki/Office_Open_XML\n//\n// They say that this standard — specifically, \"Part 4\" of it —\n// includes XML \"schemas\" (`.xsd` files) which describe the predefined order of all XML elements.\n//\n// I personally didn't even bother checking because this whole \"specification\" thing\n// already looks needlessly convoluted. Anyway, I asked Google's AI for\n// \"xlsx sheet.xml elements order\" and it did output some kind of a list —\n// a slightly different one depending on the exact wording — which I used\n// as a loose reference and it seemed to fix those pesky \"corrupt file\" errors.\n//\n// For example, `CT_Worksheet` type describes a worksheet document (\"sheet.xml\"),\n// and the corresponding \"schema\" for it is:\n//\n// <xs:complexType name=\"CT_Worksheet\">\n// <xs:sequence>\n// <xs:element name=\"sheetPr\" type=\"CT_SheetPr\" minOccurs=\"0\"/>\n// <xs:element name=\"dimension\" type=\"CT_SheetDimension\" minOccurs=\"0\"/>\n// <xs:element name=\"sheetViews\" type=\"CT_SheetViews\" minOccurs=\"0\"/>\n// <xs:element name=\"sheetFormatPr\" type=\"CT_SheetFormatPr\" minOccurs=\"0\"/>\n// <xs:element name=\"cols\" type=\"CT_Cols\" minOccurs=\"0\" maxOccurs=\"unbounded\"/>\n// <xs:element name=\"sheetData\" type=\"CT_SheetData\"/>\n// <xs:element name=\"sheetProtection\" type=\"CT_SheetProtection\" minOccurs=\"0\"/>\n// <xs:element name=\"mergeCells\" type=\"CT_MergeCells\" minOccurs=\"0\"/>\n// <xs:element name=\"drawing\" type=\"CT_Drawing\" minOccurs=\"0\"/>\n// </xs:sequence>\n// </xs:complexType>\n//\n// There're \"merged\" versions of the specification on the internet\n// in a form of 6000-some page documents in `.pdf` format,\n// but the one I stumbled upon wasn't even searchable in for some weird reason.\n//\n// And the official specification seems to be hosted on some weird website\n// that doesn't even support \"online\" browsing, and the download doesn't start.\n// Who cares about this whole ancient corporate sh*t anyway.\n\n// type TagName = string\n// type OrderOfSiblings = Array<TagName | [TagName, OrderOfSiblings]>\n// type FileName = 'xl/workbook.xml' | 'xl/styles.xml' | 'xl/worksheets/sheet{id}.xml'\n// type OrderOfSiblingsByFile = Record<FileName, OrderOfSiblings>\n// declare const orderOfSiblingsByFile: OrderOfSiblingsByFile\n// export default orderOfSiblingsByFile\n\nexport default {\n // This is what Google AI returned for a search query: \"xlsx workbook.xml elements order\".\n // They say, this order is defined in `CT_Workbook` schema of ECMA-376 specification.\n 'xl/workbook.xml': [['workbook', ['workbookPr',\n // (Workbook Properties)\n 'bookViews',\n // (Book Views)\n 'sheets',\n // (List of sheets)\n 'pivotCaches',\n // (If applicable)\n 'definedNames',\n // (Named ranges)\n 'calcPr' // (Calculation properties)\n ]]],\n // This is what Google AI returned for a search query: \"xlsx styles.xml elements order\".\n // They say, this order is defined in `CT_Stylesheet` schema of ECMA-376 specification.\n 'xl/styles.xml': [['styleSheet', ['numFmts',\n // Defines custom number formats.\n 'fonts',\n // Contains font definitions (font name, size, color).\n 'fills',\n // Defines cell background colors/patterns.\n 'borders',\n // Defines cell borders.\n 'cellStyleXfs',\n // Master cell styles (usually style 0 is \"Normal\").\n 'cellXfs',\n // Actual cell formatting definitions (<xf>) referenced by cells.\n 'cellStyles',\n // Connects named styles to cellStyleXfs.\n 'dxfs',\n // Differential formats (conditional formatting).\n 'tableStyles' // Table-specific styles.\n ]]],\n // This is what Google AI returned for a search query: \"xlsx sheet.xml elements order\".\n // They say, this order is defined in `CT_Worksheet` schema of ECMA-376 specification.\n 'xl/worksheets/sheet{id}.xml': [['worksheet', ['sheetPr',\n // Sheet properties (e.g., tab color, filter configurations).\n 'dimension',\n // Defines the range of used cells (e.g., ref=\"A1:C10\").\n 'sheetViews',\n // View settings like freeze panes, zoom level, and whether the sheet is selected.\n 'sheetFormatPr',\n // Default row height and column width properties.\n 'cols',\n // Defines column-specific properties (width, hidden status).\n 'sheetData',\n // (Required) The main container for cell data, rows, and values.\n 'sheetCalcPr',\n // Calculation properties.\n 'sheetProtection',\n // Sheet-level security and locked status.\n 'protectedRanges',\n // Specific ranges that are protected.\n 'scenarios',\n // Worksheet scenarios.\n 'autoFilter',\n // Filter range definitions.\n 'sortState',\n // Current sort information.\n 'dataConsolidate',\n // Data consolidation settings.\n 'customSheetViews',\n // Custom view settings.\n 'mergeCells',\n // Defines ranges of merged cells.\n 'phoneticPr',\n // Phonetic information properties.\n 'conditionalFormatting',\n // Rules for formatting based on cell values.\n 'dataValidations',\n // Data entry rules and dropdowns.\n 'hyperlinks',\n // Links to external sites or other sheet locations.\n 'printOptions',\n // Defines specific printing preferences, such as centering, gridlines, and headings.\n 'pageMargins',\n // Defines the white space between the worksheet data and the edges of the printed page.\n 'pageSetup',\n // Printing and layout settings.\n 'headerFooter',\n // Sheet header and footer content.\n 'rowBreaks',\n // Manual page breaks.\n 'colBreaks',\n // Manual page breaks.\n 'drawing',\n // References to graphics or charts (points to drawing.xml).\n 'legacyDrawing',\n // References to legacy objects like comments or form controls.\n 'picture',\n // Background image properties.\n 'oleObjects',\n // Embedded OLE objects.\n 'controls',\n // Form or ActiveX controls.\n 'tableParts',\n // Links to defined Excel tables within the sheet.\n 'extLst' // Extension list for future-proofing and custom metadata.\n ]]]\n};\n//# sourceMappingURL=orderOfSiblings.js.map","import ORDER_OF_SIBLINGS from './orderOfSiblings.js';\n\n/**\r\n * Returns the order of siblings in a given `.xml` file inside given parent tag(s).\r\n * @param {string} fileName\r\n * @param {string[]} parentTagNames\r\n * @returns {string[]}\r\n */\nexport default function getOrderOfSiblings(fileName) {\n var orderOfSiblings = ORDER_OF_SIBLINGS[fileName];\n if (!orderOfSiblings) {\n // File not supported.\n // Return nothing.\n return;\n }\n for (var _len = arguments.length, parentTagNames = new Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {\n parentTagNames[_key - 1] = arguments[_key];\n }\n if (parentTagNames.length === 0) {\n throw new Error('At least one parent element tag name is required');\n }\n var _loop = function _loop() {\n var tagName = _parentTagNames[_i];\n var orderOfSiblingsMatchingElement = orderOfSiblings.find(function (element) {\n if (Array.isArray(element)) {\n return element[0] === tagName;\n } else {\n return element === tagName;\n }\n });\n if (!orderOfSiblingsMatchingElement) {\n // The element is not present in the pre-defined order of elements.\n // Return nothing.\n return {\n v: void 0\n };\n }\n if (Array.isArray(orderOfSiblingsMatchingElement)) {\n orderOfSiblings = orderOfSiblingsMatchingElement[1];\n } else {\n // The element doesn't specify any child elements.\n // Return nothing.\n return {\n v: void 0\n };\n }\n },\n _ret;\n for (var _i = 0, _parentTagNames = parentTagNames; _i < _parentTagNames.length; _i++) {\n _ret = _loop();\n if (_ret) return _ret.v;\n }\n if (orderOfSiblings) {\n // Convert element of `OrderOfSiblings` array to a `string`.\n return orderOfSiblings.map(function (element) {\n if (Array.isArray(element)) {\n return element[0];\n } else {\n return element;\n }\n });\n }\n}\n//# sourceMappingURL=getOrderOfSiblings.js.map","function _createForOfIteratorHelperLoose(r, e) { var t = \"undefined\" != typeof Symbol && r[Symbol.iterator] || r[\"@@iterator\"]; if (t) return (t = t.call(r)).next.bind(t); if (Array.isArray(r) || (t = _unsupportedIterableToArray(r)) || e && r && \"number\" == typeof r.length) { t && (r = t); var o = 0; return function () { return o >= r.length ? { done: !0 } : { done: !1, value: r[o++] }; }; } throw new TypeError(\"Invalid attempt to iterate non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); }\nfunction _unsupportedIterableToArray(r, a) { if (r) { if (\"string\" == typeof r) return _arrayLikeToArray(r, a); var t = {}.toString.call(r).slice(8, -1); return \"Object\" === t && r.constructor && (t = r.constructor.name), \"Map\" === t || \"Set\" === t ? Array.from(r) : \"Arguments\" === t || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t) ? _arrayLikeToArray(r, a) : void 0; } }\nfunction _arrayLikeToArray(r, a) { (null == a || a > r.length) && (a = r.length); for (var e = 0, n = Array(a); e < a; e++) n[e] = r[e]; return n; }\nimport sanitizeTextContent from '../../xml/sanitizeTextContent.js';\nimport insertElementMarkupAccordingToOrderOfSiblings from '../../xml/insertElementMarkupAccordingToOrderOfSiblings.js';\nimport hasFill from '../helpers/hasFill.js';\nimport getFillXml from '../helpers/getFillXml.js';\nimport hasBorder from '../helpers/hasBorder.js';\nimport getBorderXml from '../helpers/getBorderXml.js';\nimport hasFont from '../helpers/hasFont.js';\nimport getFontXml from '../helpers/getFontXml.js';\nimport getCellAddress from '../helpers/getCellAddress.js';\nimport getOrderOfSiblings from '../helpers/getOrderOfSiblings.js';\nexport default {\n files: {\n transform: {\n 'xl/worksheets/sheet{id}.xml': {\n // For some weird reason, Excel 2007 demands `<conditionalFormatting/>` element to go before `<drawing/>` element.\n // Because `<drawing/>` element is added before any of the `insert()`s of any features,\n // this feature has to use a `transform()` function instead of an `insert()` function.\n transform: function transform(xml, sheetOptions, _ref) {\n var sheetIndex = _ref.sheetIndex,\n sheetId = _ref.sheetId;\n var conditionalFormatting = sheetOptions.conditionalFormatting;\n if (conditionalFormatting) {\n var conditionalFormattingRulesXml = getConditionalFormattingRulesXml(conditionalFormatting);\n return insertElementMarkupAccordingToOrderOfSiblings(xml, conditionalFormattingRulesXml, getOrderOfSiblings('xl/worksheets/sheet{id}.xml', 'worksheet'), 'worksheet');\n }\n return xml;\n }\n },\n 'xl/styles.xml': {\n insert: function insert(sheetsOptions) {\n var sheetsConditionalFormatting = sheetsOptions.map(function (sheetOptions) {\n return sheetOptions.conditionalFormatting;\n });\n if (sheetsConditionalFormatting.some(Boolean)) {\n return getConditionalFormattingStylesXml(sheetsConditionalFormatting);\n }\n }\n }\n }\n }\n};\nfunction getConditionalFormattingRulesXml(conditionalFormattingRules) {\n var xml = '';\n var i = 0;\n for (var _iterator = _createForOfIteratorHelperLoose(conditionalFormattingRules), _step; !(_step = _iterator()).done;) {\n var conditionalFormattingRule = _step.value;\n var _conditionalFormattin = conditionalFormattingRule.cellRange,\n from = _conditionalFormattin.from,\n to = _conditionalFormattin.to,\n _conditionalFormattin2 = conditionalFormattingRule.condition,\n formula = _conditionalFormattin2.formula,\n operator = _conditionalFormattin2.operator,\n value = _conditionalFormattin2.value,\n value2 = _conditionalFormattin2.value2;\n\n // Cell range example: \"A1:C5\"\n var cellRange = getCellAddress(from.row - 1, from.column - 1) + ':' + getCellAddress(to.row - 1, to.column - 1);\n xml += \"<conditionalFormatting sqref=\\\"\".concat(cellRange, \"\\\">\");\n\n // The priority attribute in conditional formatting XML is an integer value that must be a positive integer between 1 and the total number of conditional formatting rules on the worksheet.\n // * The value is defined by the W3C XML Schema int datatype.\n // * The valid range is dynamic, starting from 1 (highest priority) and ending at the total number of rules on that specific worksheet (lowest priority).\n // * Each priority value must be unique for all rules on the same worksheet. Changing the priority of one rule will automatically adjust the priorities of other rules to maintain uniqueness and order.\n // * A lower numeric value indicates a higher priority (e.g., priority 1 is the highest possible priority).\n var priority = i + 1;\n\n // The `dxfId` attribute in \".xlsx\" (OpenXML) files is a zero-based integer index (0, 1, 2, ...)\n // referencing a specific differential format record (`<dxf>`) within the \"styles.xml\" file.\n //\n var dxfId = conditionalFormattingRule._globalIndex;\n //\n // const dxfId = getConditionalFormattingRuleGlobalIndex({\n // \tconditionalFormattingRuleIndex: i,\n // \tsheetsConditionalFormatting,\n // \tsheetIndex\n // })\n\n // There're a lot of possible `type`s of a `<cfRule/>`.\n // The full list could be viewed by googling for \"ST_CfType\".\n\n if (formula) {\n xml += \"<cfRule type=\\\"expression\\\" dxfId=\\\"\".concat(dxfId, \"\\\" priority=\\\"\").concat(priority, \"\\\">\");\n xml += \"<formula>\".concat(sanitizeTextContent(formula), \"</formula>\");\n xml += '</cfRule>';\n } else if (operator) {\n xml += \"<cfRule type=\\\"cellIs\\\" operator=\\\"\".concat(getXlsxOperatorName(operator), \"\\\" dxfId=\\\"\").concat(dxfId, \"\\\" priority=\\\"\").concat(priority, \"\\\">\");\n xml += \"<formula>\".concat(sanitizeTextContent(formatValue(value)), \"</formula>\");\n if (getXlsxOperatorName(operator) === 'between') {\n xml += \"<formula>\".concat(sanitizeTextContent(formatValue(value2)), \"</formula>\");\n }\n xml += '</cfRule>';\n } else {\n throw new Error(\"Invalid conditional formatting rule:\\n\".concat(JSON.stringify(conditionalFormattingRule, null, 2)));\n }\n xml += '</conditionalFormatting>';\n i++;\n }\n return xml;\n}\nfunction formatValue(value) {\n if (typeof value === 'string') {\n return '\"' + value + '\"';\n }\n return String(value);\n}\n\n// function getConditionalFormattingRuleGlobalIndex({\n// \tconditionalFormattingRuleIndex,\n// \tsheetsConditionalFormattingRules,\n// \tsheetIndex\n// }) {\n// \tlet sheetRulesIndexOffset = 0\n//\n// \tlet i = 0\n// \twhile (i < sheetIndex) {\n// \t\tif (sheetsConditionalFormattingRules[i]) {\n// \t\t\tsheetRulesIndexOffset += sheetsConditionalFormattingRules[i].length\n// \t\t}\n// \t\ti++\n// \t}\n//\n// \treturn sheetRulesIndexOffset + conditionalFormattingRuleIndex\n// }\n\nfunction getXlsxOperatorName(operator) {\n switch (operator) {\n case '<':\n return 'lessThan';\n case '>':\n return 'greaterThan';\n case '<=':\n return 'lessThanOrEqual';\n case '>=':\n return 'greaterThanOrEqual';\n case '=':\n return 'equal';\n case '!=':\n return 'notEqual';\n case '...':\n return 'between';\n default:\n throw new Error(\"Unknown conditional formatting operator: \".concat(operator));\n }\n}\nfunction getConditionalFormattingStylesXml(sheetsConditionalFormatting) {\n var totalConditionalFormattingRulesCount = 0;\n for (var _iterator2 = _createForOfIteratorHelperLoose(sheetsConditionalFormatting), _step2; !(_step2 = _iterator2()).done;) {\n var conditionalFormattingOfSheet = _step2.value;\n if (conditionalFormattingOfSheet) {\n totalConditionalFormattingRulesCount += conditionalFormattingOfSheet.length;\n }\n }\n var xml = '';\n xml += \"<dxfs count=\\\"\".concat(totalConditionalFormattingRulesCount, \"\\\">\");\n for (var _iterator3 = _createForOfIteratorHelperLoose(sheetsConditionalFormatting), _step3; !(_step3 = _iterator3()).done;) {\n var _conditionalFormattingOfSheet = _step3.value;\n if (_conditionalFormattingOfSheet) {\n for (var _iterator4 = _createForOfIteratorHelperLoose(_conditionalFormattingOfSheet), _step4; !(_step4 = _iterator4()).done;) {\n var conditionalFormattingRule = _step4.value;\n var _conditionalFormattin3 = conditionalFormattingRule.style,\n fontFamily = _conditionalFormattin3.fontFamily,\n fontSize = _conditionalFormattin3.fontSize,\n fontWeight = _conditionalFormattin3.fontWeight,\n fontStyle = _conditionalFormattin3.fontStyle,\n textDecoration = _conditionalFormattin3.textDecoration,\n textColor = _conditionalFormattin3.textColor,\n backgroundColor = _conditionalFormattin3.backgroundColor,\n fillPatternStyle = _conditionalFormattin3.fillPatternStyle,\n fillPatternColor = _conditionalFormattin3.fillPatternColor,\n borderColor = _conditionalFormattin3.borderColor,\n borderStyle = _conditionalFormattin3.borderStyle,\n leftBorderColor = _conditionalFormattin3.leftBorderColor,\n leftBorderStyle = _conditionalFormattin3.leftBorderStyle,\n rightBorderColor = _conditionalFormattin3.rightBorderColor,\n rightBorderStyle = _conditionalFormattin3.rightBorderStyle,\n topBorderColor = _conditionalFormattin3.topBorderColor,\n topBorderStyle = _conditionalFormattin3.topBorderStyle,\n bottomBorderColor = _conditionalFormattin3.bottomBorderColor,\n bottomBorderStyle = _conditionalFormattin3.bottomBorderStyle;\n xml += '<dxf>';\n var font = {\n fontFamily: fontFamily,\n fontSize: fontSize,\n fontWeight: fontWeight,\n fontStyle: fontStyle,\n textDecoration: textDecoration,\n textColor: textColor\n };\n if (hasFont(font)) {\n // It seems that the \"conditional formatting\" feature in the XLSX specification\n // doesn't support setting custom `fontFamily` or `fontSize` for some weird reason.\n // https://github.com/catamphetamine/write-excel-file/pull/10#issuecomment-3960778016\n if (fontFamily) {\n throw new Error('Conditional formatting can\\'t be used to override font family');\n }\n if (typeof fontSize === 'number') {\n throw new Error('Conditional formatting can\\'t be used to override font size');\n }\n xml += getFontXml(font);\n }\n var fill = {\n backgroundColor: backgroundColor,\n fillPatternStyle: fillPatternStyle,\n fillPatternColor: fillPatternColor\n };\n if (hasFill(fill)) {\n xml += getFillXml(fill, {\n conditionalFormatting: true\n });\n }\n var border = {\n borderColor: borderColor,\n borderStyle: borderStyle,\n leftBorderColor: leftBorderColor,\n leftBorderStyle: leftBorderStyle,\n rightBorderColor: rightBorderColor,\n rightBorderStyle: rightBorderStyle,\n topBorderColor: topBorderColor,\n topBorderStyle: topBorderStyle,\n bottomBorderColor: bottomBorderColor,\n bottomBorderStyle: bottomBorderStyle\n };\n if (hasBorder(border)) {\n xml += getBorderXml(border);\n }\n xml += '</dxf>';\n }\n }\n }\n xml += '</dxfs>';\n return xml;\n}\n//# sourceMappingURL=conditionalFormatting.js.map","export default function getFileExtensionForContentType(contentType) {\n if (!contentType) {\n throw new Error('`contentType` is required');\n }\n // Discards everything before the slash, and the slash too.\n // Example: \"image/jpeg\" → \"jpeg\".\n var extension = contentType.toLowerCase().replace(/.*\\//, '');\n if (!extension) {\n throw new Error('Unsupported `contentType`: ' + contentType);\n }\n return extension;\n}\n//# sourceMappingURL=getFileExtensionForContentType.js.map","function _typeof(o) { \"@babel/helpers - typeof\"; return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && \"function\" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? \"symbol\" : typeof o; }, _typeof(o); }\nfunction _createForOfIteratorHelperLoose(r, e) { var t = \"undefined\" != typeof Symbol && r[Symbol.iterator] || r[\"@@iterator\"]; if (t) return (t = t.call(r)).next.bind(t); if (Array.isArray(r) || (t = _unsupportedIterableToArray(r)) || e && r && \"number\" == typeof r.length) { t && (r = t); var o = 0; return function () { return o >= r.length ? { done: !0 } : { done: !1, value: r[o++] }; }; } throw new TypeError(\"Invalid attempt to iterate non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); }\nfunction _toConsumableArray(r) { return _arrayWithoutHoles(r) || _iterableToArray(r) || _unsupportedIterableToArray(r) || _nonIterableSpread(); }\nfunction _nonIterableSpread() { throw new TypeError(\"Invalid attempt to spread non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); }\nfunction _unsupportedIterableToArray(r, a) { if (r) { if (\"string\" == typeof r) return _arrayLikeToArray(r, a); var t = {}.toString.call(r).slice(8, -1); return \"Object\" === t && r.constructor && (t = r.constructor.name), \"Map\" === t || \"Set\" === t ? Array.from(r) : \"Arguments\" === t || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t) ? _arrayLikeToArray(r, a) : void 0; } }\nfunction _iterableToArray(r) { if (\"undefined\" != typeof Symbol && null != r[Symbol.iterator] || null != r[\"@@iterator\"]) return Array.from(r); }\nfunction _arrayWithoutHoles(r) { if (Array.isArray(r)) return _arrayLikeToArray(r); }\nfunction _arrayLikeToArray(r, a) { (null == a || a > r.length) && (a = r.length); for (var e = 0, n = Array(a); e < a; e++) n[e] = r[e]; return n; }\nfunction ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }\nfunction _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }\nfunction _defineProperty(e, r, t) { return (r = _toPropertyKey(r)) in e ? Object.defineProperty(e, r, { value: t, enumerable: !0, configurable: !0, writable: !0 }) : e[r] = t, e; }\nfunction _toPropertyKey(t) { var i = _toPrimitive(t, \"string\"); return \"symbol\" == _typeof(i) ? i : i + \"\"; }\nfunction _toPrimitive(t, r) { if (\"object\" != _typeof(t) || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || \"default\"); if (\"object\" != _typeof(i)) return i; throw new TypeError(\"@@toPrimitive must return a primitive value.\"); } return (\"string\" === r ? String : Number)(t); }\nimport sanitizeAttributeValue from '../../xml/sanitizeAttributeValue.js';\nimport getFileExtensionForContentType from '../helpers/getFileExtensionForContentType.js';\nexport default {\n files: {\n transform: {\n '[Content_Types].xml': {\n insert: function insert(sheetsOptions) {\n var sheetsImages = sheetsOptions.map(function (sheetOptions) {\n return sheetOptions.images;\n });\n if (sheetsImages.some(Boolean)) {\n return getContentTypesXml(sheetsImages);\n }\n }\n },\n 'xl/drawings/drawing{id}.xml': {\n insert: function insert(sheetOptions, _ref) {\n var sheetIndex = _ref.sheetIndex,\n sheetId = _ref.sheetId;\n var images = sheetOptions.images;\n if (images) {\n return getImagesDrawingXml({\n images: images\n });\n }\n }\n },\n 'xl/drawings/_rels/drawing{id}.xml.rels': {\n insert: function insert(sheetOptions, _ref2) {\n var sheetIndex = _ref2.sheetIndex,\n sheetId = _ref2.sheetId;\n var images = sheetOptions.images;\n if (images) {\n return getImagesDrawingXmlRels({\n images: images,\n sheetIndex: sheetIndex\n });\n }\n }\n }\n },\n write: {\n files: function files(sheetsOptions, _ref3) {\n var read = _ref3.read;\n var sheetsImages = sheetsOptions.map(function (sheetOptions) {\n return sheetOptions.images;\n });\n if (sheetsImages.some(Boolean)) {\n return sheetsImages.map(function (images, sheetIndex) {\n if (images) {\n return images.reduce(function (imagesContent, image, imageIndex) {\n return _objectSpread(_objectSpread({}, imagesContent), {}, _defineProperty({}, \"xl/media/\".concat(getImageFileName(image, {\n sheetIndex: sheetIndex,\n imageIndex: imageIndex\n })), image.content));\n }, {});\n }\n return {};\n }).reduce(function (allImagesContent, sheetImagesContent) {\n return _objectSpread(_objectSpread({}, allImagesContent), sheetImagesContent);\n }, {});\n }\n }\n }\n }\n};\nfunction getContentTypesXml(sheetsImages) {\n // Get images from all sheets.\n var imagesFromAllSheets = sheetsImages.reduce(function (all, images) {\n return [].concat(_toConsumableArray(all), _toConsumableArray(images || []));\n }, []);\n var xml = '';\n\n // Elements with `PartName=\"/xl/drawings/drawing${sheetId}.xml\"` are already added by default.\n // Hence, this block of code was commented out.\n //\n // let i = 0\n // for (const images of imagesPerSheet) {\n // \tif (images) {\n // \t\txml += `<Override ContentType=\"application/vnd.openxmlformats-officedocument.drawing+xml\" PartName=\"/xl/drawings/drawing${sheetId}.xml\"/>`\n // \t}\n // \ti++\n // }\n\n for (var _iterator = _createForOfIteratorHelperLoose(getFileExtensionContentTypes(imagesFromAllSheets)), _step; !(_step = _iterator()).done;) {\n var _step$value = _step.value,\n fileExtension = _step$value.fileExtension,\n contentType = _step$value.contentType;\n xml += \"<Default Extension=\\\"\".concat(fileExtension, \"\\\" ContentType=\\\"\").concat(contentType, \"\\\"/>\");\n }\n return xml;\n}\nfunction getFileExtensionContentTypes(images) {\n var fileExtensionContentTypes = [];\n var addFileExtensionContentType = function addFileExtensionContentType(image) {\n var fileExtension = getFileExtensionForContentType(image.contentType);\n var existingFileExtensionContentType = fileExtensionContentTypes.find(function (_) {\n return _.fileExtension === fileExtension;\n });\n if (!existingFileExtensionContentType) {\n fileExtensionContentTypes.push({\n fileExtension: fileExtension,\n contentType: image.contentType\n });\n }\n };\n for (var _iterator2 = _createForOfIteratorHelperLoose(images), _step2; !(_step2 = _iterator2()).done;) {\n var image = _step2.value;\n addFileExtensionContentType(image);\n }\n return fileExtensionContentTypes;\n}\nfunction getImageFileName(image, _ref4) {\n var sheetIndex = _ref4.sheetIndex,\n imageIndex = _ref4.imageIndex;\n var sheetNumber = sheetIndex + 1;\n var imageNumber = imageIndex + 1;\n return \"sheet\".concat(sheetNumber, \"-image\").concat(imageNumber, \".\").concat(getFileExtensionForContentType(image.contentType));\n}\nfunction getImagesDrawingXml(_ref5) {\n var images = _ref5.images;\n var xml = '';\n var i = 0;\n var _loop = function _loop() {\n var image = _step3.value;\n // `imageId` is used to get the \"relationship ID\" of the image.\n var imageId = i + 1;\n var pxToEmu = function pxToEmu(px) {\n return pxToEmu_(px, image.dpi);\n };\n\n // There're two ways an image could be \"anchored\" in a spreadsheet:\n // * One-cell anchor — \"anchors\" the image's top-left corner to a top-left corner of a cell.\n // * Two-cell anchor — \"anchors\" the image's top-left corner to a top-left corner of the first cell,\n // and then the image's bottom-right corner to the bottom-right corner of the second cell.\n // While doing so, it completely ignores the image's aspect ratio, so there seems to be\n // no equivalent for CSS's `object-fit: contain` behavior.\n xml += '<xdr:oneCellAnchor>';\n xml += '<xdr:from>';\n xml += \"<xdr:col>\".concat(image.anchor.column - 1, \"</xdr:col>\");\n xml += \"<xdr:colOff>\".concat(typeof image.offsetX === 'number' ? pxToEmu(image.offsetX) : 0, \"</xdr:colOff>\");\n xml += \"<xdr:row>\".concat(image.anchor.row - 1, \"</xdr:row>\");\n xml += \"<xdr:rowOff>\".concat(typeof image.offsetY === 'number' ? pxToEmu(image.offsetY) : 0, \"</xdr:rowOff>\");\n xml += '</xdr:from>';\n xml += \"<xdr:ext cx=\\\"\".concat(pxToEmu(image.width), \"\\\" cy=\\\"\").concat(pxToEmu(image.height), \"\\\"/>\");\n xml += '<xdr:pic>';\n xml += '<xdr:nvPicPr>';\n xml += \"<xdr:cNvPr id=\\\"\".concat(imageId, \"\\\" name=\\\"\").concat(image.title ? sanitizeAttributeValue(image.title) : 'Picture ' + imageId, \"\\\" descr=\\\"\").concat(image.description ? sanitizeAttributeValue(image.description) : '', \"\\\"/>\");\n xml += '<xdr:cNvPicPr>';\n // Optional XML element. Locks the aspect ratio of the image. -->\n xml += '<a:picLocks noChangeAspect=\"1\"/>';\n xml += '</xdr:cNvPicPr>';\n xml += '</xdr:nvPicPr>';\n xml += '<xdr:blipFill>';\n\n // The link to the image.\n xml += \"<a:blip xmlns:r=\\\"http://schemas.openxmlformats.org/officeDocument/2006/relationships\\\" r:embed=\\\"rId-image-\".concat(imageId, \"\\\" cstate=\\\"print\\\"/>\");\n\n // Allows scaling the image.\n xml += '<a:stretch>';\n xml += '<a:fillRect/>';\n xml += '</a:stretch>';\n xml += '</xdr:blipFill>';\n\n // Dunno what this is.\n xml += '<xdr:spPr>';\n xml += '<a:prstGeom prst=\"rect\">';\n xml += '<a:avLst/>';\n xml += '</a:prstGeom>';\n xml += '</xdr:spPr>';\n xml += '</xdr:pic>';\n xml += '<xdr:clientData/>';\n xml += '</xdr:oneCellAnchor>';\n i++;\n };\n for (var _iterator3 = _createForOfIteratorHelperLoose(images), _step3; !(_step3 = _iterator3()).done;) {\n _loop();\n }\n return xml;\n}\nfunction getImagesDrawingXmlRels(_ref6) {\n var images = _ref6.images,\n sheetIndex = _ref6.sheetIndex;\n return images.map(function (image, i) {\n var imageId = i + 1;\n return \"<Relationship Id=\\\"rId-image-\".concat(imageId, \"\\\" Type=\\\"http://schemas.openxmlformats.org/officeDocument/2006/relationships/image\\\" Target=\\\"../media/\").concat(getImageFileName(image, {\n sheetIndex: sheetIndex,\n imageIndex: i\n }), \"\\\"/>\");\n }).join('');\n}\n\n// For legacy reasons, XLSX documents measure image dimensions not in pixels\n// but rather in a weird measurement unit called EMU (English Metric Unit).\n// https://gitlab.com/catamphetamine/write-excel-file/-/blob/main/docs/IMAGES.md#image-dimensions\n// This function converts pixels to EMUs.\nvar DEFAULT_DISPLAY_DPI = 96;\nvar DEFAULT_IMAGE_DPI = 96;\nfunction pxToEmu_(px, imageDpi) {\n var displayDpi = DEFAULT_DISPLAY_DPI;\n return Math.round(px * 9525 * (DEFAULT_DISPLAY_DPI / displayDpi) * (DEFAULT_IMAGE_DPI / imageDpi));\n}\n//# sourceMappingURL=images.js.map","/**\r\n * Replaces an `element` that was found in `xml` using `findElement()` function with a given `replacementXml` markup.\r\n * @param {string} xml\r\n * @param {FoundElement} element\r\n * @param {string} replacementXml\r\n * @returns {string}\r\n */\nexport default function replaceElement(xml, element, replacementXml) {\n if (element.selfClosingTag) {\n return xml.slice(0, element.openingTagStartIndex) + replacementXml + xml.slice(element.openingTagEndIndex + 1);\n }\n return xml.slice(0, element.openingTagStartIndex) + replacementXml + xml.slice(element.closingTagEndIndex + 1);\n}\n//# sourceMappingURL=replaceElement.js.map","import findElement from './findElement.js';\nimport getMarkupInsideElement from './getMarkupInsideElement.js';\nimport applyEnclosingElementOffset from './applyEnclosingElementOffset.js';\n\n/**\r\n * Finds a single element in valid XML markup within bounds of a given element that was previously found using `findElement()` function.\r\n * @param {string} xml — XML markup\r\n * @param {string} tagName — The name of the element to find\r\n * @param {object} enclosingElement — An enclosing element that was previously found using `findElement()` function.\r\n * @returns {object|undefined} — A found element, represented by an object with propeties: `{ openingTagStartIndex: number, openingTagEndIndex: number, openingTagAttributes: object, selfClosingTag?: boolean, closingTagStartIndex?: number, closingTagEndIndex?: number }`\r\n */\nexport default function findElementInsideElement(xml, tagName, enclosingElement) {\n var element = findElement(getMarkupInsideElement(xml, enclosingElement), tagName);\n if (element) {\n applyEnclosingElementOffset(element, enclosingElement);\n return element;\n }\n}\n//# sourceMappingURL=findElementInsideElement.js.map","import findElement from '../../xml/findElement.js';\nimport replaceElement from '../../xml/replaceElement.js';\nimport prependMarkupInsideElement from '../../xml/prependMarkupInsideElement.js';\nimport appendMarkupInsideElement from '../../xml/appendMarkupInsideElement.js';\nimport getOpeningTagMarkup from '../../xml/getOpeningTagMarkup.js';\nimport getClosingTagMarkup from '../../xml/getClosingTagMarkup.js';\nimport getSelfClosingTagMarkup from '../../xml/getSelfClosingTagMarkup.js';\nimport findElementInsideElement from '../../xml/findElementInsideElement.js';\nimport insertElementMarkupAccordingToOrderOfSiblings from '../../xml/insertElementMarkupAccordingToOrderOfSiblings.js';\nimport getCellAddress from '../helpers/getCellAddress.js';\nimport getOrderOfSiblings from '../helpers/getOrderOfSiblings.js';\nexport default {\n files: {\n transform: {\n 'xl/worksheets/sheet{id}.xml': {\n transform: function transform(xml, sheetOptions, _ref) {\n var sheetIndex = _ref.sheetIndex,\n sheetId = _ref.sheetId;\n if (hasStickyRowsOrColumns(sheetOptions)) {\n var stickyRowsCount = sheetOptions.stickyRowsCount,\n stickyColumnsCount = sheetOptions.stickyColumnsCount;\n var paneAttributes = {\n // The vertical position of the split, in 1/20th of a point (twips),\n // or, when frozen, the number of visible rows in the top pane(s).\n ySplit: stickyRowsCount || 0,\n // The horizontal position of the split, in 1/20th of a point (twips),\n // or, when frozen, the number of visible columns in the left pane(s).\n xSplit: stickyColumnsCount || 0,\n // The visible cell in the top-left corner of the bottom-right pane.\n topLeftCell: getCellAddress(stickyRowsCount || 0, stickyColumnsCount || 0),\n // `activePane` defines which pane is active in a \"split\" or \"frozen\" `state`.\n // Possible values: \"bottomLeft\", \"bottomRight\", \"topLeft\", \"topRight\".\n activePane: 'bottomRight',\n // `state: \"frozen\"` indicates that the panes are frozen, meaning the split area\n // (usually top rows or leftmost columns) remains fixed while the rest of the sheet scrolls.\n // Other possible values:\n // \"split\" — Indicates that the window is split into separate panes that can be scrolled independently, but are not locked in place.\n // \"frozenSplit\" — A combination used in specific scenarios (often by Excel itself) to manage complex freezing.\n state: 'frozen'\n };\n var sheetViewElement = findElement(xml, 'sheetView');\n if (sheetViewElement) {\n // Add a `<pane/>` element inside the `<sheetView/>` element.\n // If a `<pane/>` element already exists, it will overwrite it.\n var paneElement = findElementInsideElement(xml, 'pane', sheetViewElement);\n var paneXml = getSelfClosingTagMarkup('pane', paneAttributes);\n if (paneElement) {\n // Overwrite the existing `<pane/>` element.\n // It doesn't seem to be any sense in patching the existing `<pane/>` element\n // because all of its properties would be rewritten anyway in the process.\n xml = replaceElement(xml, paneElement, paneXml);\n } else {\n // Add a `<pane/>` element.\n xml = appendMarkupInsideElement(xml, sheetViewElement, paneXml);\n }\n } else {\n // Add a `<sheetViews/>` element.\n // It isn't supposed to exist when no `<sheetView/>` element is present.\n var sheetViewsElement = findElement(xml, 'sheetViews');\n if (sheetViewsElement) {\n throw new Error(\"xl/worksheets/sheet\".concat(sheetId, \".xml: <sheetViews/> element exists but it doesn't contain any <sheetView/> elements\"));\n }\n var sheetViewAttributes = {\n tabSelected: sheetIndex === 0 ? 1 : 0,\n // The first sheet is selected by default.\n workbookViewId: 0\n };\n var sheetViewsXml = getOpeningTagMarkup('sheetViews') + getOpeningTagMarkup('sheetView', sheetViewAttributes) + getSelfClosingTagMarkup('pane', paneAttributes) + getClosingTagMarkup('sheetView', sheetViewAttributes) + getClosingTagMarkup('sheetViews');\n\n // Add a `<sheetViews/>` element with a child '<sheetView/>` element with a child `<pane/>` element.\n // For some reason, Excel 2007 demands `<sheetViews/>` element to be the first one in a `<worksheet/>` element.\n var worksheetElement = findElement(xml, 'worksheet');\n xml = prependMarkupInsideElement(xml, worksheetElement, sheetViewsXml);\n }\n }\n return xml;\n }\n },\n 'xl/workbook.xml': {\n transform: function transform(xml, sheetsOptions) {\n // If \"sticky rows\" or \"sticky columns\" feature is used, there must exist a `<workbookView/>` element\n // because it will be referenced when configuring those \"sticky rows\" or \"sticky columns\".\n if (sheetsOptions.some(hasStickyRowsOrColumns)) {\n // Find a `<workbookView/>` element.\n // It is required to exist because it is referenced as `workbookViewId=\"0\"`\n // attribute in `<sheetViews/>` element in `xl/worksheets/sheet{id}.xml` file.\n var workbookViewElement = findElement(xml, 'workbookView');\n if (!workbookViewElement) {\n // `<workbookView/>` element doesn't exist, so it should be created.\n // The parent element for it should be `<bookViews/>`.\n var bookViewsElement = findElement(xml, 'bookViews');\n if (bookViewsElement) {\n throw new Error(\"xl/workbook.xml: <bookViews/> element exists but it doesn't contain any <workbookView/> elements\");\n }\n // Add a `<bookViews/>` element with a child '<workbookView/>` element.\n // For some reason, Excel 2007 demands `<bookViews/>` element to go before `<sheets/>` element.\n // And `<sheets/>` element always exists.\n return insertElementMarkupAccordingToOrderOfSiblings(xml, '<bookViews><workbookView/></bookViews>', getOrderOfSiblings('xl/workbook.xml', 'workbook'), 'workbook');\n }\n }\n return xml;\n }\n }\n }\n }\n};\nfunction hasStickyRowsOrColumns(sheetOptions) {\n return Boolean(sheetOptions.stickyRowsCount) || Boolean(sheetOptions.stickyColumnsCount);\n}\n//# sourceMappingURL=stickyRowsOrColumns.js.map","import conditionalFormatting from './features/conditionalFormatting.js';\nimport images from './features/images.js';\nimport stickyRowsOrColumns from './features/stickyRowsOrColumns.js';\nexport default function getFeatures(customFeatures) {\n var features = [];\n\n // Add \"conditional formatting\" feature implicitly.\n features.push(conditionalFormatting);\n\n // Add \"images\" feature implicitly.\n features.push(images);\n\n // Add \"sticky rows or columns\" feature implicitly.\n features.push(stickyRowsOrColumns);\n\n // Custom features might depend on \"default\" features\n // so the order of inclusion of custom features is after including \"default\" features.\n if (customFeatures) {\n customFeatures.forEach(validateFeature);\n features = features.concat(customFeatures);\n }\n return features;\n}\nvar TRANSFORMABLE_FILES = ['[Content_Types].xml', '_rels/.rels', 'xl/styles.xml', 'xl/workbook.xml', 'xl/_rels/workbook.xml.rels', 'xl/worksheets/sheet{id}.xml', 'xl/worksheets/_rels/sheet{id}.xml.rels', 'xl/drawings/drawing{id}.xml', 'xl/drawings/_rels/drawing{id}.xml.rels'];\nfunction validateFeature(feature) {\n if (feature.files && feature.files.transform) {\n for (var _i = 0, _Object$keys = Object.keys(feature.files.transform); _i < _Object$keys.length; _i++) {\n var key = _Object$keys[_i];\n if (TRANSFORMABLE_FILES.indexOf(key) < 0) {\n throw new Error(\"Unknown file to transform: \".concat(key));\n }\n }\n }\n}\n//# sourceMappingURL=getFeatures.js.map","function _createForOfIteratorHelperLoose(r, e) { var t = \"undefined\" != typeof Symbol && r[Symbol.iterator] || r[\"@@iterator\"]; if (t) return (t = t.call(r)).next.bind(t); if (Array.isArray(r) || (t = _unsupportedIterableToArray(r)) || e && r && \"number\" == typeof r.length) { t && (r = t); var o = 0; return function () { return o >= r.length ? { done: !0 } : { done: !1, value: r[o++] }; }; } throw new TypeError(\"Invalid attempt to iterate non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); }\nfunction _unsupportedIterableToArray(r, a) { if (r) { if (\"string\" == typeof r) return _arrayLikeToArray(r, a); var t = {}.toString.call(r).slice(8, -1); return \"Object\" === t && r.constructor && (t = r.constructor.name), \"Map\" === t || \"Set\" === t ? Array.from(r) : \"Arguments\" === t || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t) ? _arrayLikeToArray(r, a) : void 0; } }\nfunction _arrayLikeToArray(r, a) { (null == a || a > r.length) && (a = r.length); for (var e = 0, n = Array(a); e < a; e++) n[e] = r[e]; return n; }\nexport default function validateSheetData(data) {\n if (!Array.isArray(data)) {\n throw new TypeError('Expected sheet data to be an array of rows');\n }\n for (var _iterator = _createForOfIteratorHelperLoose(data), _step; !(_step = _iterator()).done;) {\n var row = _step.value;\n if (Array.isArray(row)) {\n return;\n } else {\n throw new Error('Expected each sheet data row to be an array');\n }\n }\n}\n//# sourceMappingURL=validateSheetData.js.map","export default function initializeSharedStrings() {\n var sharedStrings = [];\n var sharedStringIdByString = {};\n return {\n getSharedStrings: function getSharedStrings() {\n return sharedStrings;\n },\n findOrCreateSharedString: function findOrCreateSharedString(string) {\n var id = sharedStringIdByString[string];\n if (id === undefined) {\n id = sharedStrings.length;\n sharedStringIdByString[string] = id;\n sharedStrings.push(string);\n }\n return id;\n }\n };\n}\n//# sourceMappingURL=initializeSharedStrings.js.map","// https://stackoverflow.com/questions/451452/valid-characters-for-excel-sheet-names\n// Sheet name can't be empty.\n// Sheet name shouldn't exceed 31 characters.\n// Sheet name shouldn't contain any of the following characters: []/\\:*?\n\nvar ILLEGAL_CHARACTERS_IN_SHEET_NAME = /[\\[\\]\\/\\\\:*?]+/;\nexport default function validateSheetName(sheetName) {\n if (!sheetName) {\n throw new Error('Sheet name can\\'t be empty');\n }\n if (sheetName.length > 31) {\n throw new Error(\"Sheet name \\\"\".concat(sheetName, \"\\\" can't be longer than 31 characters\"));\n }\n if (ILLEGAL_CHARACTERS_IN_SHEET_NAME.test(sheetName)) {\n throw new Error(\"Sheet name \\\"\".concat(sheetName, \"\\\" contains illegal characters: []/\\\\:*?\"));\n }\n}\n//# sourceMappingURL=validateSheetName.js.map","function _createForOfIteratorHelperLoose(r, e) { var t = \"undefined\" != typeof Symbol && r[Symbol.iterator] || r[\"@@iterator\"]; if (t) return (t = t.call(r)).next.bind(t); if (Array.isArray(r) || (t = _unsupportedIterableToArray(r)) || e && r && \"number\" == typeof r.length) { t && (r = t); var o = 0; return function () { return o >= r.length ? { done: !0 } : { done: !1, value: r[o++] }; }; } throw new TypeError(\"Invalid attempt to iterate non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); }\nfunction _unsupportedIterableToArray(r, a) { if (r) { if (\"string\" == typeof r) return _arrayLikeToArray(r, a); var t = {}.toString.call(r).slice(8, -1); return \"Object\" === t && r.constructor && (t = r.constructor.name), \"Map\" === t || \"Set\" === t ? Array.from(r) : \"Arguments\" === t || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t) ? _arrayLikeToArray(r, a) : void 0; } }\nfunction _arrayLikeToArray(r, a) { (null == a || a > r.length) && (a = r.length); for (var e = 0, n = Array(a); e < a; e++) n[e] = r[e]; return n; }\nimport initializeStyles from './initializeStyles.js';\nimport initializeSharedStrings from './initializeSharedStrings.js';\nimport validateSheetName from './validateSheetName.js';\nexport default function initializeSheets(sheetsData, sheetsOptions, globalOptions) {\n var _initializeSharedStri = initializeSharedStrings(),\n getSharedStrings = _initializeSharedStri.getSharedStrings,\n findOrCreateSharedString = _initializeSharedStri.findOrCreateSharedString;\n\n // const sheetsDefaultFonts = sheetsOptions.map((sheetOptions) => {\n // \tconst { fontFamily, fontSize } = sheetOptions\n // if (fontFamily || fontSize) {\n // \t\treturn { fontFamily, fontSize }\n // \t}\n // })\n\n var defaultFont = getDefaultFont(globalOptions);\n var _initializeStyles = initializeStyles(defaultFont),\n getCellStyles = _initializeStyles.getCellStyles,\n findOrCreateCellStyle = _initializeStyles.findOrCreateCellStyle;\n\n // Get sheet names.\n var sheetNames = sheetsOptions.map(function (sheetOptions) {\n return sheetOptions.sheet;\n });\n\n // Validate sheet names.\n for (var _iterator = _createForOfIteratorHelperLoose(sheetNames), _step; !(_step = _iterator()).done;) {\n var sheetName = _step.value;\n validateSheetName(sheetName);\n }\n var sheetXmlParameters = [];\n var sheetIndex = 0;\n while (sheetIndex < sheetNames.length) {\n sheetXmlParameters.push({\n sheetData: sheetsData[sheetIndex],\n sheetOptions: sheetsOptions[sheetIndex],\n sheetIndex: sheetIndex,\n sheetId: getSheetId(sheetIndex),\n hasDefaultFont: Boolean(defaultFont),\n // hasDefaultFont: Boolean(sheetsDefaultFonts[sheetIndex]),\n // findOrCreateCellStyle: (style) => findOrCreateCellStyle(style, sheetIndex),\n findOrCreateCellStyle: findOrCreateCellStyle,\n findOrCreateSharedString: findOrCreateSharedString\n });\n sheetIndex++;\n }\n return {\n sheets: sheetNames.map(function (sheetName, _i) {\n // Reassign the `_i` variable to prevent \"closure\" bug when in `generateSheetXml()` function\n // the `_i` value is always equal to the last sheet's index.\n var sheetIndex = _i;\n return {\n sheetId: getSheetId(sheetIndex),\n sheetName: sheetName,\n sheetXmlParameters: sheetXmlParameters[sheetIndex]\n };\n }),\n getSharedStrings: getSharedStrings,\n getCellStyles: getCellStyles\n };\n}\nfunction getSheetId(sheetIndex) {\n return String(sheetIndex + 1);\n}\nfunction getDefaultFont(globalOptions) {\n var fontFamily = globalOptions.fontFamily,\n fontSize = globalOptions.fontSize;\n if (fontFamily || typeof fontSize === 'number') {\n return {\n fontFamily: fontFamily,\n fontSize: fontSize\n };\n }\n}\n//# sourceMappingURL=initializeSheets.js.map","export default function getSheetData(objects, columns) {\n // Create header row.\n var headerRow;\n // If at least one column has a header\n // then a header row will be rendered.\n // Otherwise, there will be no header row.\n if (columns.some(function (column) {\n return column.header;\n })) {\n headerRow = columns.map(function (_ref) {\n var header = _ref.header;\n return header || null;\n });\n }\n return (headerRow ? [headerRow] : []).concat(objects.map(function (object, objectIndex) {\n return columns.map(function (_ref2) {\n var cell = _ref2.cell;\n return cell(object, objectIndex);\n });\n }));\n}\n//# sourceMappingURL=getSheetData.js.map","function _typeof(o) { \"@babel/helpers - typeof\"; return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && \"function\" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? \"symbol\" : typeof o; }, _typeof(o); }\nfunction ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }\nfunction _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }\nfunction _defineProperty(e, r, t) { return (r = _toPropertyKey(r)) in e ? Object.defineProperty(e, r, { value: t, enumerable: !0, configurable: !0, writable: !0 }) : e[r] = t, e; }\nfunction _toPropertyKey(t) { var i = _toPrimitive(t, \"string\"); return \"symbol\" == _typeof(i) ? i : i + \"\"; }\nfunction _toPrimitive(t, r) { if (\"object\" != _typeof(t) || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || \"default\"); if (\"object\" != _typeof(i)) return i; throw new TypeError(\"@@toPrimitive must return a primitive value.\"); } return (\"string\" === r ? String : Number)(t); }\nfunction _createForOfIteratorHelperLoose(r, e) { var t = \"undefined\" != typeof Symbol && r[Symbol.iterator] || r[\"@@iterator\"]; if (t) return (t = t.call(r)).next.bind(t); if (Array.isArray(r) || (t = _unsupportedIterableToArray(r)) || e && r && \"number\" == typeof r.length) { t && (r = t); var o = 0; return function () { return o >= r.length ? { done: !0 } : { done: !1, value: r[o++] }; }; } throw new TypeError(\"Invalid attempt to iterate non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); }\nfunction _unsupportedIterableToArray(r, a) { if (r) { if (\"string\" == typeof r) return _arrayLikeToArray(r, a); var t = {}.toString.call(r).slice(8, -1); return \"Object\" === t && r.constructor && (t = r.constructor.name), \"Map\" === t || \"Set\" === t ? Array.from(r) : \"Arguments\" === t || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t) ? _arrayLikeToArray(r, a) : void 0; } }\nfunction _arrayLikeToArray(r, a) { (null == a || a > r.length) && (a = r.length); for (var e = 0, n = Array(a); e < a; e++) n[e] = r[e]; return n; }\nexport default function getWrittenFiles(features, sheetsOptions, _ref) {\n var read = _ref.read;\n var writtenFiles = {};\n for (var _iterator = _createForOfIteratorHelperLoose(features), _step; !(_step = _iterator()).done;) {\n var feature = _step.value;\n if (feature.files && feature.files.write) {\n if (feature.files.write.files) {\n var files = feature.files.write.files(sheetsOptions, {\n read: read\n });\n if (files) {\n writtenFiles = _objectSpread(_objectSpread({}, writtenFiles), files);\n }\n }\n }\n }\n return writtenFiles;\n}\n//# sourceMappingURL=getWrittenFiles.js.map","function _typeof(o) { \"@babel/helpers - typeof\"; return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && \"function\" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? \"symbol\" : typeof o; }, _typeof(o); }\nvar _excluded = [\"data\"];\nfunction ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }\nfunction _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }\nfunction _defineProperty(e, r, t) { return (r = _toPropertyKey(r)) in e ? Object.defineProperty(e, r, { value: t, enumerable: !0, configurable: !0, writable: !0 }) : e[r] = t, e; }\nfunction _toPropertyKey(t) { var i = _toPrimitive(t, \"string\"); return \"symbol\" == _typeof(i) ? i : i + \"\"; }\nfunction _toPrimitive(t, r) { if (\"object\" != _typeof(t) || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || \"default\"); if (\"object\" != _typeof(i)) return i; throw new TypeError(\"@@toPrimitive must return a primitive value.\"); } return (\"string\" === r ? String : Number)(t); }\nfunction _objectWithoutProperties(e, t) { if (null == e) return {}; var o, r, i = _objectWithoutPropertiesLoose(e, t); if (Object.getOwnPropertySymbols) { var n = Object.getOwnPropertySymbols(e); for (r = 0; r < n.length; r++) o = n[r], -1 === t.indexOf(o) && {}.propertyIsEnumerable.call(e, o) && (i[o] = e[o]); } return i; }\nfunction _objectWithoutPropertiesLoose(r, e) { if (null == r) return {}; var t = {}; for (var n in r) if ({}.hasOwnProperty.call(r, n)) { if (-1 !== e.indexOf(n)) continue; t[n] = r[n]; } return t; }\nfunction _createForOfIteratorHelperLoose(r, e) { var t = \"undefined\" != typeof Symbol && r[Symbol.iterator] || r[\"@@iterator\"]; if (t) return (t = t.call(r)).next.bind(t); if (Array.isArray(r) || (t = _unsupportedIterableToArray(r)) || e && r && \"number\" == typeof r.length) { t && (r = t); var o = 0; return function () { return o >= r.length ? { done: !0 } : { done: !1, value: r[o++] }; }; } throw new TypeError(\"Invalid attempt to iterate non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); }\nfunction _unsupportedIterableToArray(r, a) { if (r) { if (\"string\" == typeof r) return _arrayLikeToArray(r, a); var t = {}.toString.call(r).slice(8, -1); return \"Object\" === t && r.constructor && (t = r.constructor.name), \"Map\" === t || \"Set\" === t ? Array.from(r) : \"Arguments\" === t || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t) ? _arrayLikeToArray(r, a) : void 0; } }\nfunction _arrayLikeToArray(r, a) { (null == a || a > r.length) && (a = r.length); for (var e = 0, n = Array(a); e < a; e++) n[e] = r[e]; return n; }\nimport generateWorkbookXml from './files/workbook.xml.js';\nimport generateWorkbookXmlRels from './files/workbook.xml.rels.js';\nimport generateRelsXml from './files/rels.js';\nimport generateContentTypesXml, { getDrawingContentTypeXml } from './files/[Content_Types].xml.js';\nimport generateDrawingXml, { DRAWING_XML_START, DRAWING_XML_END } from './files/drawing.xml.js';\nimport generateDrawingXmlRels from './files/drawing.xml.rels.js';\nimport generateSheetXml from './files/sheet.xml/sheet.xml.js';\nimport generateDrawingReferenceXml from './files/sheet.xml/drawingReference.js';\nimport generateSheetXmlRels, { getDrawingRelationshipXml } from './files/sheet.xml.rels.js';\nimport generateSharedStringsXml from './files/sharedStrings.xml.js';\nimport generateStylesXml from './files/styles.xml.js';\nimport getFeatures from './getFeatures.js';\nimport validateSheetData from './validateSheetData.js';\nimport initializeSheets from './initializeSheets.js';\nimport getSheetData from '../getSheetData/getSheetData.js';\nimport getWrittenFiles from './helpers/features/getWrittenFiles.js';\nimport isObject from './helpers/isObject.js';\nimport getSelfClosingTagMarkup from '../xml/getSelfClosingTagMarkup.js';\n\n/**\r\n * Creates contents (files) an `*.xlsx` file.\r\n * @param {SheetData|Object[]|Sheet[]} arg1\r\n * @param {object} arg2 — If `arg1` is `SheetData`, `arg2` is `SheetOptions` and `arg3` is `Options`. If `arg1` is `Sheet[]`, `arg2` is `Options`.\r\n * @param {object} [arg3] — If `arg1` is `SheetData`, `arg2` is `SheetOptions` and `arg3` is `Options`. If `arg1` is `Sheet[]`, `arg2` is `Options`.\r\n * @return {Record<string,string|Blob>} A map of files that exist inside an `.xlsx` file.\r\n */\nexport default function generateXlsxFileContents(arg1, arg2, arg3) {\n var _getArguments = getArguments(arg1, arg2, arg3),\n sheetsDataAndOptions = _getArguments.sheets,\n options = _getArguments.options;\n var sheetsData = sheetsDataAndOptions.map(function (sheet) {\n return sheet.data;\n });\n var sheetsOptions = sheetsDataAndOptions.map(function (sheet) {\n return sheet.options;\n });\n sheetsOptions = setSheetNames(sheetsOptions);\n\n // Here's a small hack for `conditionalFormatting` feature support.\n // `.xlsx` format is weird and has many quirks.\n // One of those quirks is each conditional formatting rule has to be assigned a globally-unique ID.\n // That itself wouldn't be an issue if that globally-unique ID could be any string,\n // but `.xlsx` format specification complicates things by demanding it to be\n // a zero-based integer index (0, 1, 2, ...) referencing a specific `<dxf>` element in \"styles.xml\" file.\n // So a conditional formatting rule ID can't be just \"sheet1-rule2\", it has to be specifically\n // an index of this rule in the list of all rules for all sheets in a given `.xlsx` file.\n // Because a sheet-specific file tranform function doesn't have access to other sheets' options,\n // here it manually sets the global indexes of all conditional formatting rules,\n // and it has to do so without mutating any input arguments.\n sheetsOptions = setConditionalFormattingRulesGlobalIndexes(sheetsOptions);\n var features = getFeatures(options.features);\n var files = {};\n var readFile = function readFile(path) {\n return files[path];\n };\n // const fileExists = (path) => Boolean(files[path])\n\n var writeFiles = function writeFiles(filesToWrite) {\n for (var _i = 0, _Object$keys = Object.keys(filesToWrite); _i < _Object$keys.length; _i++) {\n var path = _Object$keys[_i];\n validateFilePath(path);\n validateFileContent(path, filesToWrite[path]);\n files[path] = filesToWrite[path];\n }\n };\n var _initializeSheets = initializeSheets(sheetsData, sheetsOptions, options),\n sheets = _initializeSheets.sheets,\n getSharedStrings = _initializeSheets.getSharedStrings,\n getCellStyles = _initializeSheets.getCellStyles;\n files['[Content_Types].xml'] = generateContentTypesXml({\n sheetIds: sheets.map(function (_) {\n return _.sheetId;\n }),\n features: features,\n sheetsOptions: sheetsOptions\n });\n files['_rels/.rels'] = generateRelsXml({\n features: features,\n sheetsOptions: sheetsOptions\n });\n files['xl/_rels/workbook.xml.rels'] = generateWorkbookXmlRels({\n sheetIds: sheets.map(function (_) {\n return _.sheetId;\n }),\n features: features,\n sheetsOptions: sheetsOptions\n });\n files['xl/workbook.xml'] = generateWorkbookXml({\n sheetIdsAndNames: sheets.map(function (_ref) {\n var sheetId = _ref.sheetId,\n sheetName = _ref.sheetName;\n return {\n sheetId: sheetId,\n sheetName: sheetName\n };\n }),\n features: features,\n sheetsOptions: sheetsOptions\n });\n var sheetIndex = 0;\n for (var _iterator = _createForOfIteratorHelperLoose(sheets), _step; !(_step = _iterator()).done;) {\n var _step$value = _step.value,\n sheetId = _step$value.sheetId,\n sheetXmlParameters = _step$value.sheetXmlParameters;\n var sheetOptions = sheetsOptions[sheetIndex];\n files[\"xl/worksheets/sheet\".concat(sheetId, \".xml\")] = generateSheetXml(sheetXmlParameters, features);\n files[\"xl/worksheets/_rels/sheet\".concat(sheetId, \".xml.rels\")] = generateSheetXmlRels({\n sheetIndex: sheetIndex,\n sheetId: sheetId,\n sheetOptions: sheetOptions,\n features: features\n });\n files[\"xl/drawings/drawing\".concat(sheetId, \".xml\")] = generateDrawingXml({\n sheetIndex: sheetIndex,\n sheetId: sheetId,\n sheetOptions: sheetOptions,\n features: features\n });\n files[\"xl/drawings/_rels/drawing\".concat(sheetId, \".xml.rels\")] = generateDrawingXmlRels({\n sheetIndex: sheetIndex,\n sheetId: sheetId,\n sheetOptions: sheetOptions,\n features: features\n });\n sheetIndex++;\n }\n writeFiles(getWrittenFiles(features, sheetsOptions, {\n read: readFile\n }));\n\n // After sheets' XML was generated, it can generate \"styles.xml\" and \"sharedStrings.xml\".\n files['xl/styles.xml'] = generateStylesXml(getCellStyles(), sheetsOptions, features);\n files['xl/sharedStrings.xml'] = generateSharedStringsXml(getSharedStrings());\n\n // (minor minimization) Remove unused `drawing${id}.xml` files.\n removeUnusedDrawings(files, sheets);\n return files;\n}\n\n// (minor minimization)\n//\n// For each `xl/drawings/drawing${id}.xml`, see if it has no actual content,\n// i.e. the `<xdr:wsDr>` element has no child elements.\n// If that's the case, remove `xl/drawings/drawing${sheetId}.xml` and `xl/drawings/drawing${sheetId}.xml.rels`,\n// and also remove `<drawing r:id=\"...\"/>` element from `xl/worksheets/sheet${sheetId}.xml`\n// and the corresponding `<Relationship Id=\"...\" .../>` element from `xl/worksheets/_rels/sheet${sheetId}.xml.rels`\n// and the corresponding `<Override/> element from `[Content_Types].xml`.\n//\nfunction removeUnusedDrawings(files, sheets) {\n for (var _iterator2 = _createForOfIteratorHelperLoose(sheets), _step2; !(_step2 = _iterator2()).done;) {\n var sheetId = _step2.value.sheetId;\n if (files[\"xl/drawings/drawing\".concat(sheetId, \".xml\")] === DRAWING_XML_START + DRAWING_XML_END) {\n delete files[\"xl/drawings/drawing\".concat(sheetId, \".xml\")];\n delete files[\"xl/drawings/_rels/drawing\".concat(sheetId, \".xml.rels\")];\n if (!removeSubstring(files, \"xl/worksheets/sheet\".concat(sheetId, \".xml\"), generateDrawingReferenceXml(getSelfClosingTagMarkup))) {\n throw new Error(COULD_NOT_REMOVE_UNUSED_DRAWINGS);\n }\n removeSubstring(files, \"xl/worksheets/_rels/sheet\".concat(sheetId, \".xml.rels\"), getDrawingRelationshipXml(sheetId));\n removeSubstring(files, '[Content_Types].xml', getDrawingContentTypeXml(sheetId));\n }\n }\n}\nvar COULD_NOT_REMOVE_UNUSED_DRAWINGS = 'Couldn\\'t remove unused drawings';\nfunction removeSubstring(files, key, substring) {\n if (!files[key]) {\n throw new Error(\"File not found: \".concat(key));\n }\n if (files[key].indexOf(substring) < 0) {\n throw new Error(\"Substring \\\"\".concat(substring, \"\\\" not found in \\\"\").concat(key, \"\\\"\"));\n }\n var stringBeforeRemoval = files[key];\n var stringAfterRemoval = stringBeforeRemoval.replace(substring, '');\n files[key] = stringAfterRemoval;\n return stringBeforeRemoval !== stringAfterRemoval;\n}\nfunction validateFilePath(path) {\n if (path[0] === '/') {\n throw new Error(\"File path must not start with a slash (/)\");\n }\n}\nfunction validateFileContent(path, content) {\n if (!content) {\n throw new Error(\"File `content` not specified: \".concat(path));\n }\n}\nfunction getArguments(arg1, arg2, arg3) {\n if (Array.isArray(arg1)) {\n if (arg1.length === 0 || Array.isArray(arg1[0])) {\n // `arg1` is `SheetData`\n validateSheetData(arg1);\n // Validate that a developer is not using the legacy way of writing multiple sheets.\n if (Array.isArray(arg1[0]) && arg1.length > 0 && Array.isArray(arg1[0][0])) {\n throw new Error('In order to write multiple sheets, pass an array of sheet objects');\n }\n return {\n sheets: [{\n data: arg1,\n options: arg2 || {}\n }],\n options: arg3 || {}\n };\n } else if (isObject(arg1[0])) {\n // `arg1` is either `Sheet[]` or `Object[]`\n // Validate that a developer is not using a legacy parameter `schema`.\n if (isObject(arg2) && Array.isArray(arg2.schema)) {\n throw new Error('`schema` parameter was removed, use `columns` parameter instead');\n }\n if (isObject(arg2) && Array.isArray(arg2.columns)) {\n // `arg1` is `Object[]`.\n // Don't remove `columns` property from `arg2` because it's still required there\n // to apply the column `width`.\n return getArguments(getSheetData(arg1, arg2.columns), arg2, arg3);\n }\n // `arg1` is `Sheet[]`\n return {\n sheets: arg1.map(function (_ref2) {\n var data = _ref2.data,\n options = _objectWithoutProperties(_ref2, _excluded);\n if (!data) {\n throw new Error('`data` property is required for each sheet');\n }\n validateSheetData(data);\n return {\n data: data,\n options: options || {}\n };\n }),\n options: arg2 || {}\n };\n } else {\n throw new Error('Invalid first argument: must be either sheet data — an array of arrays — or an array of sheet objects');\n }\n } else {\n throw new Error('Invalid first argument: must be an array');\n }\n}\n\n// Sets a sheet name for each sheet.\nfunction setSheetNames(sheetsOptions) {\n return sheetsOptions.map(function (sheetOptions, sheetIndex) {\n return _objectSpread(_objectSpread({}, sheetOptions), {}, {\n sheet: sheetOptions.sheet || \"Sheet\".concat(sheetIndex + 1)\n });\n });\n}\n\n// Sets a `_globalIndex: number` property on each conditional formatting rule.\nfunction setConditionalFormattingRulesGlobalIndexes(sheetsOptions) {\n var globalIndex = 0;\n return sheetsOptions.map(function (sheetOptions) {\n return _objectSpread(_objectSpread({}, sheetOptions), {}, {\n conditionalFormatting: sheetOptions.conditionalFormatting && sheetOptions.conditionalFormatting.map(function (conditionalFormattingRule) {\n return _objectSpread(_objectSpread({}, conditionalFormattingRule), {}, {\n // `++` operator returns the value before the increment.\n _globalIndex: globalIndex++\n });\n })\n });\n });\n}\n//# sourceMappingURL=generateXlsxFileContents.js.map","import convertFileContentToUint8Array from './convertFileContentToUint8ArrayUniversal.js';\nimport zipToArrayBuffer from '../zip/zipToArrayBuffer.js';\nimport zipToArrayBufferSync from '../zip/zipToArrayBufferSync.js';\nimport convertFilesContentToUint8Arrays from './convertFilesContentToUint8Arrays.js';\nimport generateXlsxFileContents from '../xlsx/generateXlsxFileContents.js';\n\n// This function doesn't use `async`/`await` in order to avoid adding `@babel/runtime` to `dependencies`.\n// https://gitlab.com/catamphetamine/write-excel-file/-/issues/105\n\n/**\r\n * Creates an `*.xlsx` file.\r\n * @param {SheetData|Object[]|Sheet[]} arg1\r\n * @param {object} arg2 — If `arg1` is `SheetData`, `arg2` is `SheetOptions` and `arg3` is `Options`. If `arg1` is `Sheet[]`, `arg2` is `Options`.\r\n * @param {object} [arg3] — If `arg1` is `SheetData`, `arg2` is `SheetOptions` and `arg3` is `Options`. If `arg1` is `Sheet[]`, `arg2` is `Options`.\r\n * @returns {object} Returns an object with `async` methods: `toBlob()`.\r\n */\nexport default function writeXlsxFile(arg1, arg2, arg3) {\n return {\n toBlob: function toBlob() {\n return generateXlsxFileAsync(arg1, arg2, arg3, convertFileContentToUint8Array);\n }\n };\n}\n\n/**\r\n * @return {Promise<Blob>}\r\n */\nfunction generateXlsxFile(arg1, arg2, arg3, convertFileContentToUint8Array, createZipArchiveAsArrayBuffer, isAsyncZip) {\n // Generate the sub-files inside the `.xlsx` file.\n var files = generateXlsxFileContents(arg1, arg2, arg3);\n\n // Convert files' content to `Uint8Array`s.\n return convertFilesContentToUint8Arrays(files, convertFileContentToUint8Array).then(function (files) {\n // Create a `.zip` archive from the files.\n // An `.xlsx` file is just a `.zip` archive with an `.xlsx` file extension.\n // `result` is either `Uint8Array` or `Promise<Uint8Array>`\n var result = createZipArchiveAsArrayBuffer(files);\n // Return a `Blob` with the `.zip` archive data.\n if (isAsyncZip) {\n return result.then(function (result) {\n return convertArrayBufferToBlob(result);\n });\n } else {\n return convertArrayBufferToBlob(result);\n }\n });\n}\n\n// Converts `ArrayBuffer` to `Blob`.\nfunction convertArrayBufferToBlob(arrayBuffer) {\n return new Blob([arrayBuffer], {\n type: 'application/vnd.openxmlformats-officedocument.spreadsheetml.sheet'\n });\n}\n\n/**\r\n * Generates an *.xlsx file \"synchronously\".\r\n * @return {Promise<Blob>}\r\n */\nexport function generateXlsxFileSync(arg1, arg2, arg3, convertFileContentToUint8Array) {\n return generateXlsxFile(arg1, arg2, arg3, convertFileContentToUint8Array, zipToArrayBufferSync, false);\n}\n\n/**\r\n * Generates an *.xlsx file \"asynchronously\".\r\n * @return {Promise<Blob>}\r\n */\nexport function generateXlsxFileAsync(arg1, arg2, arg3, convertFileContentToUint8Array) {\n return generateXlsxFile(arg1, arg2, arg3, convertFileContentToUint8Array, zipToArrayBuffer, true);\n}\n//# sourceMappingURL=writeXlsxFileUniversal.js.map","// This function doesn't use `async`/`await` in order to avoid adding `@babel/runtime` to `dependencies`.\n// https://gitlab.com/catamphetamine/write-excel-file/-/issues/105\n\n/**\r\n * Converts file content to a `Uint8Array`.\r\n * @param {File|Blob|ArrayBuffer} fileContent\r\n * @returns {Promise<Uint8Array>}\r\n */\nexport default function convertFileContentToUint8Array(fileContent) {\n if (fileContent instanceof File) {\n return fileContent.arrayBuffer().then(arrayBufferToUint8Array);\n }\n if (fileContent instanceof Blob) {\n return fileContent.arrayBuffer().then(arrayBufferToUint8Array);\n }\n if (fileContent instanceof ArrayBuffer) {\n return Promise.resolve(arrayBufferToUint8Array(fileContent));\n }\n throw new Error('Unsupported file content type. Expected a `File`, a `Blob` or an `ArrayBuffer`');\n}\nfunction arrayBufferToUint8Array(arrayBuffer) {\n return new Uint8Array(arrayBuffer);\n}\n//# sourceMappingURL=convertFileContentToUint8ArrayBrowser.js.map","export default function downloadBlob(blob, filename) {\n // Create a URL for the blob\n var url = URL.createObjectURL(blob);\n\n // Create a temporary anchor element\n var a = document.createElement('a');\n a.style.display = 'none';\n a.href = url;\n a.download = filename; // Set the proposed filename for the download\n\n // Append the anchor to the body to make it clickable\n document.body.appendChild(a);\n\n // Trigger the download by simulating a click\n a.click();\n\n // Clean up by revoking the object URL and removing the anchor\n setTimeout(function () {\n URL.revokeObjectURL(url);\n document.body.removeChild(a);\n }, 100); // Delay for Firefox compatibility\n}\n//# sourceMappingURL=downloadBlob.js.map","// Uses an \"async\" function of the zipper function\n// just because it feels more correct to use it over the \"sync\" one\n// because it isn't supposed to ever freeze the \"main thread\" (GUI).\n//\n// import { generateXlsxFileSync } from './writeXlsxFileUniversal.js'\nimport { generateXlsxFileAsync } from './writeXlsxFileUniversal.js';\nimport convertFileContentToUint8Array from './convertFileContentToUint8ArrayBrowser.js';\nimport downloadBlob from './downloadBlob.js';\n\n// This function doesn't use `async`/`await` in order to avoid adding `@babel/runtime` to `dependencies`.\n// https://gitlab.com/catamphetamine/write-excel-file/-/issues/105\n\n/**\r\n * Creates an `*.xlsx` file.\r\n * @param {SheetData|Object[]|Sheet[]} arg1\r\n * @param {object} arg2 — If `arg1` is `SheetData`, `arg2` is `SheetOptions` and `arg3` is `Options`. If `arg1` is `Sheet[]`, `arg2` is `Options`.\r\n * @param {object} [arg3] — If `arg1` is `SheetData`, `arg2` is `SheetOptions` and `arg3` is `Options`. If `arg1` is `Sheet[]`, `arg2` is `Options`.\r\n * @returns {object} Returns an object with `async` methods: `toBlob()`, `toFile(fileName)`.\r\n */\nexport default function writeXlsxFile(arg1, arg2, arg3) {\n var createBlob = function createBlob() {\n return generateXlsxFileAsync(arg1, arg2, arg3, convertFileContentToUint8Array);\n };\n return {\n toBlob: function toBlob() {\n return createBlob();\n },\n toFile: function toFile(fileName) {\n return createBlob().then(function (blob) {\n downloadBlob(blob, fileName);\n });\n }\n };\n}\n//# sourceMappingURL=writeXlsxFileBrowser.js.map","import type { TFunction } from 'i18next';\nimport { format } from 'date-fns';\nimport type { ECharts } from 'echarts';\nimport writeXlsxFile from 'write-excel-file/browser';\nimport { stringify } from 'csv/browser/esm/sync';\nimport {\n CaseDbCaseApi,\n CaseDbLogLevel,\n} from '@gen-epix/api-casedb';\nimport type {\n CaseDbCase,\n CaseDbCol,\n CaseDbCompleteCaseType,\n} from '@gen-epix/api-casedb';\nimport { ConfigService } from '@gen-epix/ui-client-common/classes/services/ConfigService';\nimport { LogService } from '@gen-epix/ui-client-common/classes/services/LogService';\nimport { NotificationService } from '@gen-epix/ui-client-common/classes/services/NotificationService';\nimport { QueryClientService } from '@gen-epix/ui-client-common/classes/services/QueryClientService';\nimport { DownloadUtil } from '@gen-epix/ui-core/utils/DownloadUtil';\nimport { StringUtil } from '@gen-epix/ui-core/utils/StringUtil';\nimport { DATE_FORMAT } from '@gen-epix/ui-core/constants/date';\n\nimport { CaseTypeUtil } from '../CaseTypeUtil';\nimport { CaseUtil } from '../CaseUtil';\nimport { CASEDB_QUERY_KEY } from '../../constants/query';\n\nexport class CaseDbDownloadUtil {\n public static downloadAsCsv(cases: CaseDbCase[], colIds: string[], completeCaseType: CaseDbCompleteCaseType, t: TFunction<'translation', undefined>): void {\n const data = [\n CaseDbDownloadUtil.getColumnHeadersForExport(colIds, completeCaseType),\n ...CaseDbDownloadUtil.getRowsForExport(cases, colIds, completeCaseType),\n ];\n const csv = stringify(data, {\n defaultEncoding: 'utf-8',\n });\n const fileName = `${CaseDbDownloadUtil.getExportFileName(t`Line list`, completeCaseType, t)}.csv`;\n DownloadUtil.createDownloadUrl(`data:text/csv;base64,${btoa(csv)}`, fileName);\n }\n\n public static async downloadAsExcel(cases: CaseDbCase[], colIds: string[], completeCaseType: CaseDbCompleteCaseType, t: TFunction<'translation', undefined>): Promise<void> {\n // Prepare headers\n const headers = CaseDbDownloadUtil.getColumnHeadersForExport(colIds, completeCaseType);\n\n // Prepare data rows\n const rows = CaseDbDownloadUtil.getRowsForExport(cases, colIds, completeCaseType);\n\n // Convert data to the format expected by write-excel-file (SheetData)\n // Each row is an array of Cell objects\n const data = [\n // Header row\n headers.map(header => ({ type: String, value: header })),\n // Data rows\n ...rows.map(row => row.map(cell => ({ type: String, value: cell }))),\n ];\n\n const fileName = `${CaseDbDownloadUtil.getExportFileName(t`Line list`, completeCaseType, t)}.xlsx`;\n\n // Generate Excel file as a Blob and download it\n const blob = await writeXlsxFile(data, {\n columns: headers.map(() => ({ width: 20 })),\n stickyRowsCount: 1,\n }).toBlob();\n\n // Convert blob to base64 and download\n const arrayBuffer = await blob.arrayBuffer();\n const base64 = DownloadUtil.arrayBufferToBase64(arrayBuffer);\n DownloadUtil.createDownloadUrl(`data:application/vnd.openxmlformats-officedocument.spreadsheetml.sheet;base64,${base64}`, fileName);\n }\n\n public static downloadCanvasImage(baseName: string, canvas: HTMLCanvasElement, type: 'jpeg' | 'png', completeCaseType: CaseDbCompleteCaseType, t: TFunction<'translation', undefined>): void {\n const dataUrl = canvas.toDataURL(type === 'jpeg' ? 'image/jpeg' : 'image/png');\n const fileName = `${CaseDbDownloadUtil.getExportFileName(baseName, completeCaseType, t)}.${type}`;\n DownloadUtil.createDownloadUrl(dataUrl, fileName);\n }\n\n public static downloadEchartsImage(baseName: string, instance: ECharts, type: 'jpeg' | 'png', completeCaseType: CaseDbCompleteCaseType, t: TFunction<'translation', undefined>): void {\n const url = instance.getDataURL({\n backgroundColor: '#fff',\n pixelRatio: 2,\n type,\n });\n const fileName = `${CaseDbDownloadUtil.getExportFileName(baseName, completeCaseType, t)}.${type.toLowerCase()}`;\n DownloadUtil.createDownloadUrl(url, fileName);\n }\n\n public static async downloadExcelTemplate(caseTypeId: string, t: TFunction<'translation', undefined>): Promise<void> {\n const queryClient = QueryClientService.getInstance().queryClient;\n try {\n const completeCaseType = await queryClient.fetchQuery({\n queryFn: async ({ signal }) => {\n return (await CaseDbCaseApi.getInstance().completeCaseTypesGetOne(caseTypeId, { signal })).data;\n },\n queryKey: QueryClientService.getInstance().getGenericKey(CASEDB_QUERY_KEY.COMPLETE_CASE_TYPES, caseTypeId),\n });\n\n const headers = CaseDbDownloadUtil.getColumnHeadersForImport(\n CaseTypeUtil.getWritableImportExportColIds(completeCaseType)\n .sort((a, b) => completeCaseType.ordered_col_ids.indexOf(a) - completeCaseType.ordered_col_ids.indexOf(b))\n , completeCaseType,\n );\n const data = [\n headers.map(header => ({ type: String, value: header })),\n ];\n const fileName = `${CaseDbDownloadUtil.getTemplateFileName(completeCaseType)}.xlsx`;\n\n // Generate Excel file as a Blob and download it\n const blob = await writeXlsxFile(data, {\n columns: headers.map(() => ({ width: 20 })),\n showGridLines: true,\n stickyRowsCount: 1,\n }).toBlob();\n\n // Convert blob to base64 and download\n const arrayBuffer = await blob.arrayBuffer();\n const base64 = DownloadUtil.arrayBufferToBase64(arrayBuffer);\n DownloadUtil.createDownloadUrl(`data:application/vnd.openxmlformats-officedocument.spreadsheetml.sheet;base64,${base64}`, fileName);\n } catch (error) {\n LogService.getInstance().log([{\n detail: {\n error,\n stack: (error as Error)?.stack,\n },\n level: CaseDbLogLevel.ERROR,\n topic: (error as Error)?.message ? `Error: ${(error as Error)?.message}` : 'Error',\n }]);\n NotificationService.getInstance().showNotification({\n message: t('Excel template could not be created'),\n severity: 'error',\n });\n }\n }\n\n public static downloadNewick(baseName: string, newick: string, completeCaseType: CaseDbCompleteCaseType, t: TFunction<'translation', undefined>): void {\n const fileName = `${CaseDbDownloadUtil.getExportFileName(baseName, completeCaseType, t)}.txt`;\n DownloadUtil.createDownloadUrl(`data:text/x-nh;base64,${btoa(newick)}`, fileName);\n }\n\n public static getExportFileName(baseName: string, completeCaseType: CaseDbCompleteCaseType, t: TFunction<'translation', undefined>): string {\n return t('{{date}}--{{applicationName}}--{{caseTypeName}}--{{baseName}}', {\n applicationName: StringUtil.createSlug(ConfigService.getInstance().config.applicationName),\n baseName: StringUtil.createSlug(baseName),\n caseTypeName: StringUtil.createSlug(completeCaseType.name),\n date: format(new Date(), DATE_FORMAT.DATE),\n });\n }\n\n public static getTemplateFileName(completeCaseType: CaseDbCompleteCaseType): string {\n return `${StringUtil.createSlug(ConfigService.getInstance().config.applicationName)}--${StringUtil.createSlug(completeCaseType.name)}--template`;\n }\n\n private static getColsForImportExport(colIds: string[], completeCaseType: CaseDbCompleteCaseType): CaseDbCol[] {\n return CaseTypeUtil.getCols(completeCaseType)\n .filter(x => colIds.includes(x.id))\n .sort((a, b) => {\n return colIds.indexOf(a.id) - colIds.indexOf(b.id);\n });\n }\n\n private static getColumnHeadersForExport(colIds: string[], completeCaseType: CaseDbCompleteCaseType): string[] {\n return [\n '_case_id',\n '_case_type',\n '_case_date',\n ...CaseDbDownloadUtil.getColsForImportExport(colIds, completeCaseType).map(col => col.label),\n ];\n }\n\n private static getColumnHeadersForImport(colIds: string[], completeCaseType: CaseDbCompleteCaseType): string[] {\n return [\n '_case_id',\n '_case_date',\n ...CaseDbDownloadUtil.getColsForImportExport(colIds, completeCaseType).map(col => col.label),\n ];\n }\n\n private static getRowsForExport(cases: CaseDbCase[], colIds: string[], completeCaseType: CaseDbCompleteCaseType): string[][] {\n const cols = CaseDbDownloadUtil.getColsForImportExport(colIds, completeCaseType);\n return cases.map(row => [\n row.id,\n completeCaseType.name,\n row.timed_at ? format(row.timed_at, DATE_FORMAT.DATE) : '',\n ...cols.map(col => CaseUtil.getRowValue(row.content, col, completeCaseType, true).long),\n ]);\n }\n}\n"],"x_google_ignoreList":[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78],"mappings":"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"}
|