@microsoft/connected-workbooks 3.1.2-beta.2 → 3.2.0-beta
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/README.md +2 -2
- package/dist/main.js +357 -106
- package/dist/src/generators.js +7 -6
- package/dist/src/types.d.ts +1 -0
- package/dist/src/utils/arrayUtils.js +26 -21
- package/dist/src/utils/constants.js +20 -8
- package/dist/src/utils/documentUtils.js +92 -42
- package/dist/src/utils/gridUtils.js +23 -23
- package/dist/src/utils/htmlUtils.js +8 -8
- package/dist/src/utils/mashupDocumentParser.js +110 -67
- package/dist/src/utils/pqUtils.js +158 -65
- package/dist/src/utils/tableUtils.js +118 -74
- package/dist/src/utils/xmlInnerPartsUtils.js +213 -152
- package/dist/src/utils/xmlPartsUtils.js +116 -50
- package/dist/tests/arrayUtils.test.js +21 -21
- package/dist/tests/documentUtils.test.js +37 -8
- package/dist/tests/gridUtils.test.js +9 -9
- package/dist/tests/htmlUtils.test.js +48 -47
- package/dist/tests/mashupDocumentParser.test.js +91 -38
- package/dist/tests/mocks/PqMock.js +1 -1
- package/dist/tests/mocks/section1mSimpleQueryMock.js +5 -15
- package/dist/tests/mocks/xmlMocks.js +2 -2
- package/dist/tests/tableUtils.test.js +18 -18
- package/dist/tests/workbookQueryTemplate.test.js +127 -45
- package/dist/tests/workbookTableTemplate.test.js +104 -33
- package/dist/tests/xmlInnerPartsUtils.test.js +118 -37
- package/dist/utils/constants.js +3 -1
- package/dist/utils/pqUtils.js +63 -45
- package/dist/workbookManager.d.ts +1 -0
- package/dist/workbookManager.js +31 -9
- package/package.json +1 -1
package/dist/main.js
CHANGED
|
@@ -31,6 +31,116 @@ eval("/*!\n * The buffer module from node.js, for the browser.\n *\n * @author
|
|
|
31
31
|
|
|
32
32
|
/***/ }),
|
|
33
33
|
|
|
34
|
+
/***/ "./node_modules/chardet/lib/encoding/ascii.js":
|
|
35
|
+
/*!****************************************************!*\
|
|
36
|
+
!*** ./node_modules/chardet/lib/encoding/ascii.js ***!
|
|
37
|
+
\****************************************************/
|
|
38
|
+
/***/ (function(__unused_webpack_module, exports, __webpack_require__) {
|
|
39
|
+
|
|
40
|
+
"use strict";
|
|
41
|
+
eval("\nvar __importDefault = (this && this.__importDefault) || function (mod) {\n return (mod && mod.__esModule) ? mod : { \"default\": mod };\n};\nObject.defineProperty(exports, \"__esModule\", ({ value: true }));\nconst match_1 = __importDefault(__webpack_require__(/*! ../match */ \"./node_modules/chardet/lib/match.js\"));\nclass Ascii {\n name() {\n return 'ASCII';\n }\n match(det) {\n const input = det.rawInput;\n for (let i = 0; i < det.rawLen; i++) {\n const b = input[i];\n if (b < 32 || b > 126) {\n return (0, match_1.default)(det, this, 0);\n }\n }\n return (0, match_1.default)(det, this, 100);\n }\n}\nexports[\"default\"] = Ascii;\n//# sourceMappingURL=ascii.js.map\n\n//# sourceURL=webpack://@microsoft/connected-workbooks/./node_modules/chardet/lib/encoding/ascii.js?");
|
|
42
|
+
|
|
43
|
+
/***/ }),
|
|
44
|
+
|
|
45
|
+
/***/ "./node_modules/chardet/lib/encoding/iso2022.js":
|
|
46
|
+
/*!******************************************************!*\
|
|
47
|
+
!*** ./node_modules/chardet/lib/encoding/iso2022.js ***!
|
|
48
|
+
\******************************************************/
|
|
49
|
+
/***/ (function(__unused_webpack_module, exports, __webpack_require__) {
|
|
50
|
+
|
|
51
|
+
"use strict";
|
|
52
|
+
eval("\nvar __importDefault = (this && this.__importDefault) || function (mod) {\n return (mod && mod.__esModule) ? mod : { \"default\": mod };\n};\nObject.defineProperty(exports, \"__esModule\", ({ value: true }));\nexports.ISO_2022_CN = exports.ISO_2022_KR = exports.ISO_2022_JP = void 0;\nconst match_1 = __importDefault(__webpack_require__(/*! ../match */ \"./node_modules/chardet/lib/match.js\"));\nclass ISO_2022 {\n constructor() {\n this.escapeSequences = [];\n }\n name() {\n return 'ISO_2022';\n }\n match(det) {\n let i, j;\n let escN;\n let hits = 0;\n let misses = 0;\n let shifts = 0;\n let confidence;\n const text = det.inputBytes;\n const textLen = det.inputLen;\n scanInput: for (i = 0; i < textLen; i++) {\n if (text[i] == 0x1b) {\n checkEscapes: for (escN = 0; escN < this.escapeSequences.length; escN++) {\n const seq = this.escapeSequences[escN];\n if (textLen - i < seq.length)\n continue checkEscapes;\n for (j = 1; j < seq.length; j++)\n if (seq[j] != text[i + j])\n continue checkEscapes;\n hits++;\n i += seq.length - 1;\n continue scanInput;\n }\n misses++;\n }\n if (text[i] == 0x0e || text[i] == 0x0f)\n shifts++;\n }\n if (hits == 0)\n return null;\n confidence = (100 * hits - 100 * misses) / (hits + misses);\n if (hits + shifts < 5)\n confidence -= (5 - (hits + shifts)) * 10;\n return confidence <= 0 ? null : (0, match_1.default)(det, this, confidence);\n }\n}\nclass ISO_2022_JP extends ISO_2022 {\n constructor() {\n super(...arguments);\n this.escapeSequences = [\n [0x1b, 0x24, 0x28, 0x43],\n [0x1b, 0x24, 0x28, 0x44],\n [0x1b, 0x24, 0x40],\n [0x1b, 0x24, 0x41],\n [0x1b, 0x24, 0x42],\n [0x1b, 0x26, 0x40],\n [0x1b, 0x28, 0x42],\n [0x1b, 0x28, 0x48],\n [0x1b, 0x28, 0x49],\n [0x1b, 0x28, 0x4a],\n [0x1b, 0x2e, 0x41],\n [0x1b, 0x2e, 0x46],\n ];\n }\n name() {\n return 'ISO-2022-JP';\n }\n language() {\n return 'ja';\n }\n}\nexports.ISO_2022_JP = ISO_2022_JP;\nclass ISO_2022_KR extends ISO_2022 {\n constructor() {\n super(...arguments);\n this.escapeSequences = [[0x1b, 0x24, 0x29, 0x43]];\n }\n name() {\n return 'ISO-2022-KR';\n }\n language() {\n return 'kr';\n }\n}\nexports.ISO_2022_KR = ISO_2022_KR;\nclass ISO_2022_CN extends ISO_2022 {\n constructor() {\n super(...arguments);\n this.escapeSequences = [\n [0x1b, 0x24, 0x29, 0x41],\n [0x1b, 0x24, 0x29, 0x47],\n [0x1b, 0x24, 0x2a, 0x48],\n [0x1b, 0x24, 0x29, 0x45],\n [0x1b, 0x24, 0x2b, 0x49],\n [0x1b, 0x24, 0x2b, 0x4a],\n [0x1b, 0x24, 0x2b, 0x4b],\n [0x1b, 0x24, 0x2b, 0x4c],\n [0x1b, 0x24, 0x2b, 0x4d],\n [0x1b, 0x4e],\n [0x1b, 0x4f],\n ];\n }\n name() {\n return 'ISO-2022-CN';\n }\n language() {\n return 'zh';\n }\n}\nexports.ISO_2022_CN = ISO_2022_CN;\n//# sourceMappingURL=iso2022.js.map\n\n//# sourceURL=webpack://@microsoft/connected-workbooks/./node_modules/chardet/lib/encoding/iso2022.js?");
|
|
53
|
+
|
|
54
|
+
/***/ }),
|
|
55
|
+
|
|
56
|
+
/***/ "./node_modules/chardet/lib/encoding/mbcs.js":
|
|
57
|
+
/*!***************************************************!*\
|
|
58
|
+
!*** ./node_modules/chardet/lib/encoding/mbcs.js ***!
|
|
59
|
+
\***************************************************/
|
|
60
|
+
/***/ (function(__unused_webpack_module, exports, __webpack_require__) {
|
|
61
|
+
|
|
62
|
+
"use strict";
|
|
63
|
+
eval("\nvar __importDefault = (this && this.__importDefault) || function (mod) {\n return (mod && mod.__esModule) ? mod : { \"default\": mod };\n};\nObject.defineProperty(exports, \"__esModule\", ({ value: true }));\nexports.gb_18030 = exports.euc_kr = exports.euc_jp = exports.big5 = exports.sjis = void 0;\nconst match_1 = __importDefault(__webpack_require__(/*! ../match */ \"./node_modules/chardet/lib/match.js\"));\nfunction binarySearch(arr, searchValue) {\n const find = (arr, searchValue, left, right) => {\n if (right < left)\n return -1;\n const mid = Math.floor((left + right) >>> 1);\n if (searchValue > arr[mid])\n return find(arr, searchValue, mid + 1, right);\n if (searchValue < arr[mid])\n return find(arr, searchValue, left, mid - 1);\n return mid;\n };\n return find(arr, searchValue, 0, arr.length - 1);\n}\nclass IteratedChar {\n constructor() {\n this.charValue = 0;\n this.index = 0;\n this.nextIndex = 0;\n this.error = false;\n this.done = false;\n }\n reset() {\n this.charValue = 0;\n this.index = -1;\n this.nextIndex = 0;\n this.error = false;\n this.done = false;\n }\n nextByte(det) {\n if (this.nextIndex >= det.rawLen) {\n this.done = true;\n return -1;\n }\n const byteValue = det.rawInput[this.nextIndex++] & 0x00ff;\n return byteValue;\n }\n}\nclass mbcs {\n constructor() {\n this.commonChars = [];\n }\n name() {\n return 'mbcs';\n }\n match(det) {\n let doubleByteCharCount = 0, commonCharCount = 0, badCharCount = 0, totalCharCount = 0, confidence = 0;\n const iter = new IteratedChar();\n detectBlock: {\n for (iter.reset(); this.nextChar(iter, det);) {\n totalCharCount++;\n if (iter.error) {\n badCharCount++;\n }\n else {\n const cv = iter.charValue & 0xffffffff;\n if (cv > 0xff) {\n doubleByteCharCount++;\n if (this.commonChars != null) {\n if (binarySearch(this.commonChars, cv) >= 0) {\n commonCharCount++;\n }\n }\n }\n }\n if (badCharCount >= 2 && badCharCount * 5 >= doubleByteCharCount) {\n break detectBlock;\n }\n }\n if (doubleByteCharCount <= 10 && badCharCount == 0) {\n if (doubleByteCharCount == 0 && totalCharCount < 10) {\n confidence = 0;\n }\n else {\n confidence = 10;\n }\n break detectBlock;\n }\n if (doubleByteCharCount < 20 * badCharCount) {\n confidence = 0;\n break detectBlock;\n }\n if (this.commonChars == null) {\n confidence = 30 + doubleByteCharCount - 20 * badCharCount;\n if (confidence > 100) {\n confidence = 100;\n }\n }\n else {\n const maxVal = Math.log(doubleByteCharCount / 4);\n const scaleFactor = 90.0 / maxVal;\n confidence = Math.floor(Math.log(commonCharCount + 1) * scaleFactor + 10);\n confidence = Math.min(confidence, 100);\n }\n }\n return confidence == 0 ? null : (0, match_1.default)(det, this, confidence);\n }\n nextChar(_iter, _det) {\n return true;\n }\n}\nclass sjis extends mbcs {\n constructor() {\n super(...arguments);\n this.commonChars = [\n 0x8140, 0x8141, 0x8142, 0x8145, 0x815b, 0x8169, 0x816a, 0x8175, 0x8176,\n 0x82a0, 0x82a2, 0x82a4, 0x82a9, 0x82aa, 0x82ab, 0x82ad, 0x82af, 0x82b1,\n 0x82b3, 0x82b5, 0x82b7, 0x82bd, 0x82be, 0x82c1, 0x82c4, 0x82c5, 0x82c6,\n 0x82c8, 0x82c9, 0x82cc, 0x82cd, 0x82dc, 0x82e0, 0x82e7, 0x82e8, 0x82e9,\n 0x82ea, 0x82f0, 0x82f1, 0x8341, 0x8343, 0x834e, 0x834f, 0x8358, 0x835e,\n 0x8362, 0x8367, 0x8375, 0x8376, 0x8389, 0x838a, 0x838b, 0x838d, 0x8393,\n 0x8e96, 0x93fa, 0x95aa,\n ];\n }\n name() {\n return 'Shift_JIS';\n }\n language() {\n return 'ja';\n }\n nextChar(iter, det) {\n iter.index = iter.nextIndex;\n iter.error = false;\n const firstByte = (iter.charValue = iter.nextByte(det));\n if (firstByte < 0)\n return false;\n if (firstByte <= 0x7f || (firstByte > 0xa0 && firstByte <= 0xdf))\n return true;\n const secondByte = iter.nextByte(det);\n if (secondByte < 0)\n return false;\n iter.charValue = (firstByte << 8) | secondByte;\n if (!((secondByte >= 0x40 && secondByte <= 0x7f) ||\n (secondByte >= 0x80 && secondByte <= 0xff))) {\n iter.error = true;\n }\n return true;\n }\n}\nexports.sjis = sjis;\nclass big5 extends mbcs {\n constructor() {\n super(...arguments);\n this.commonChars = [\n 0xa140, 0xa141, 0xa142, 0xa143, 0xa147, 0xa149, 0xa175, 0xa176, 0xa440,\n 0xa446, 0xa447, 0xa448, 0xa451, 0xa454, 0xa457, 0xa464, 0xa46a, 0xa46c,\n 0xa477, 0xa4a3, 0xa4a4, 0xa4a7, 0xa4c1, 0xa4ce, 0xa4d1, 0xa4df, 0xa4e8,\n 0xa4fd, 0xa540, 0xa548, 0xa558, 0xa569, 0xa5cd, 0xa5e7, 0xa657, 0xa661,\n 0xa662, 0xa668, 0xa670, 0xa6a8, 0xa6b3, 0xa6b9, 0xa6d3, 0xa6db, 0xa6e6,\n 0xa6f2, 0xa740, 0xa751, 0xa759, 0xa7da, 0xa8a3, 0xa8a5, 0xa8ad, 0xa8d1,\n 0xa8d3, 0xa8e4, 0xa8fc, 0xa9c0, 0xa9d2, 0xa9f3, 0xaa6b, 0xaaba, 0xaabe,\n 0xaacc, 0xaafc, 0xac47, 0xac4f, 0xacb0, 0xacd2, 0xad59, 0xaec9, 0xafe0,\n 0xb0ea, 0xb16f, 0xb2b3, 0xb2c4, 0xb36f, 0xb44c, 0xb44e, 0xb54c, 0xb5a5,\n 0xb5bd, 0xb5d0, 0xb5d8, 0xb671, 0xb7ed, 0xb867, 0xb944, 0xbad8, 0xbb44,\n 0xbba1, 0xbdd1, 0xc2c4, 0xc3b9, 0xc440, 0xc45f,\n ];\n }\n name() {\n return 'Big5';\n }\n language() {\n return 'zh';\n }\n nextChar(iter, det) {\n iter.index = iter.nextIndex;\n iter.error = false;\n const firstByte = (iter.charValue = iter.nextByte(det));\n if (firstByte < 0)\n return false;\n if (firstByte <= 0x7f || firstByte == 0xff)\n return true;\n const secondByte = iter.nextByte(det);\n if (secondByte < 0)\n return false;\n iter.charValue = (iter.charValue << 8) | secondByte;\n if (secondByte < 0x40 || secondByte == 0x7f || secondByte == 0xff)\n iter.error = true;\n return true;\n }\n}\nexports.big5 = big5;\nfunction eucNextChar(iter, det) {\n iter.index = iter.nextIndex;\n iter.error = false;\n let firstByte = 0;\n let secondByte = 0;\n let thirdByte = 0;\n buildChar: {\n firstByte = iter.charValue = iter.nextByte(det);\n if (firstByte < 0) {\n iter.done = true;\n break buildChar;\n }\n if (firstByte <= 0x8d) {\n break buildChar;\n }\n secondByte = iter.nextByte(det);\n iter.charValue = (iter.charValue << 8) | secondByte;\n if (firstByte >= 0xa1 && firstByte <= 0xfe) {\n if (secondByte < 0xa1) {\n iter.error = true;\n }\n break buildChar;\n }\n if (firstByte == 0x8e) {\n if (secondByte < 0xa1) {\n iter.error = true;\n }\n break buildChar;\n }\n if (firstByte == 0x8f) {\n thirdByte = iter.nextByte(det);\n iter.charValue = (iter.charValue << 8) | thirdByte;\n if (thirdByte < 0xa1) {\n iter.error = true;\n }\n }\n }\n return iter.done == false;\n}\nclass euc_jp extends mbcs {\n constructor() {\n super(...arguments);\n this.commonChars = [\n 0xa1a1, 0xa1a2, 0xa1a3, 0xa1a6, 0xa1bc, 0xa1ca, 0xa1cb, 0xa1d6, 0xa1d7,\n 0xa4a2, 0xa4a4, 0xa4a6, 0xa4a8, 0xa4aa, 0xa4ab, 0xa4ac, 0xa4ad, 0xa4af,\n 0xa4b1, 0xa4b3, 0xa4b5, 0xa4b7, 0xa4b9, 0xa4bb, 0xa4bd, 0xa4bf, 0xa4c0,\n 0xa4c1, 0xa4c3, 0xa4c4, 0xa4c6, 0xa4c7, 0xa4c8, 0xa4c9, 0xa4ca, 0xa4cb,\n 0xa4ce, 0xa4cf, 0xa4d0, 0xa4de, 0xa4df, 0xa4e1, 0xa4e2, 0xa4e4, 0xa4e8,\n 0xa4e9, 0xa4ea, 0xa4eb, 0xa4ec, 0xa4ef, 0xa4f2, 0xa4f3, 0xa5a2, 0xa5a3,\n 0xa5a4, 0xa5a6, 0xa5a7, 0xa5aa, 0xa5ad, 0xa5af, 0xa5b0, 0xa5b3, 0xa5b5,\n 0xa5b7, 0xa5b8, 0xa5b9, 0xa5bf, 0xa5c3, 0xa5c6, 0xa5c7, 0xa5c8, 0xa5c9,\n 0xa5cb, 0xa5d0, 0xa5d5, 0xa5d6, 0xa5d7, 0xa5de, 0xa5e0, 0xa5e1, 0xa5e5,\n 0xa5e9, 0xa5ea, 0xa5eb, 0xa5ec, 0xa5ed, 0xa5f3, 0xb8a9, 0xb9d4, 0xbaee,\n 0xbbc8, 0xbef0, 0xbfb7, 0xc4ea, 0xc6fc, 0xc7bd, 0xcab8, 0xcaf3, 0xcbdc,\n 0xcdd1,\n ];\n this.nextChar = eucNextChar;\n }\n name() {\n return 'EUC-JP';\n }\n language() {\n return 'ja';\n }\n}\nexports.euc_jp = euc_jp;\nclass euc_kr extends mbcs {\n constructor() {\n super(...arguments);\n this.commonChars = [\n 0xb0a1, 0xb0b3, 0xb0c5, 0xb0cd, 0xb0d4, 0xb0e6, 0xb0ed, 0xb0f8, 0xb0fa,\n 0xb0fc, 0xb1b8, 0xb1b9, 0xb1c7, 0xb1d7, 0xb1e2, 0xb3aa, 0xb3bb, 0xb4c2,\n 0xb4cf, 0xb4d9, 0xb4eb, 0xb5a5, 0xb5b5, 0xb5bf, 0xb5c7, 0xb5e9, 0xb6f3,\n 0xb7af, 0xb7c2, 0xb7ce, 0xb8a6, 0xb8ae, 0xb8b6, 0xb8b8, 0xb8bb, 0xb8e9,\n 0xb9ab, 0xb9ae, 0xb9cc, 0xb9ce, 0xb9fd, 0xbab8, 0xbace, 0xbad0, 0xbaf1,\n 0xbbe7, 0xbbf3, 0xbbfd, 0xbcad, 0xbcba, 0xbcd2, 0xbcf6, 0xbdba, 0xbdc0,\n 0xbdc3, 0xbdc5, 0xbec6, 0xbec8, 0xbedf, 0xbeee, 0xbef8, 0xbefa, 0xbfa1,\n 0xbfa9, 0xbfc0, 0xbfe4, 0xbfeb, 0xbfec, 0xbff8, 0xc0a7, 0xc0af, 0xc0b8,\n 0xc0ba, 0xc0bb, 0xc0bd, 0xc0c7, 0xc0cc, 0xc0ce, 0xc0cf, 0xc0d6, 0xc0da,\n 0xc0e5, 0xc0fb, 0xc0fc, 0xc1a4, 0xc1a6, 0xc1b6, 0xc1d6, 0xc1df, 0xc1f6,\n 0xc1f8, 0xc4a1, 0xc5cd, 0xc6ae, 0xc7cf, 0xc7d1, 0xc7d2, 0xc7d8, 0xc7e5,\n 0xc8ad,\n ];\n this.nextChar = eucNextChar;\n }\n name() {\n return 'EUC-KR';\n }\n language() {\n return 'ko';\n }\n}\nexports.euc_kr = euc_kr;\nclass gb_18030 extends mbcs {\n constructor() {\n super(...arguments);\n this.commonChars = [\n 0xa1a1, 0xa1a2, 0xa1a3, 0xa1a4, 0xa1b0, 0xa1b1, 0xa1f1, 0xa1f3, 0xa3a1,\n 0xa3ac, 0xa3ba, 0xb1a8, 0xb1b8, 0xb1be, 0xb2bb, 0xb3c9, 0xb3f6, 0xb4f3,\n 0xb5bd, 0xb5c4, 0xb5e3, 0xb6af, 0xb6d4, 0xb6e0, 0xb7a2, 0xb7a8, 0xb7bd,\n 0xb7d6, 0xb7dd, 0xb8b4, 0xb8df, 0xb8f6, 0xb9ab, 0xb9c9, 0xb9d8, 0xb9fa,\n 0xb9fd, 0xbacd, 0xbba7, 0xbbd6, 0xbbe1, 0xbbfa, 0xbcbc, 0xbcdb, 0xbcfe,\n 0xbdcc, 0xbecd, 0xbedd, 0xbfb4, 0xbfc6, 0xbfc9, 0xc0b4, 0xc0ed, 0xc1cb,\n 0xc2db, 0xc3c7, 0xc4dc, 0xc4ea, 0xc5cc, 0xc6f7, 0xc7f8, 0xc8ab, 0xc8cb,\n 0xc8d5, 0xc8e7, 0xc9cf, 0xc9fa, 0xcab1, 0xcab5, 0xcac7, 0xcad0, 0xcad6,\n 0xcaf5, 0xcafd, 0xccec, 0xcdf8, 0xceaa, 0xcec4, 0xced2, 0xcee5, 0xcfb5,\n 0xcfc2, 0xcfd6, 0xd0c2, 0xd0c5, 0xd0d0, 0xd0d4, 0xd1a7, 0xd2aa, 0xd2b2,\n 0xd2b5, 0xd2bb, 0xd2d4, 0xd3c3, 0xd3d0, 0xd3fd, 0xd4c2, 0xd4da, 0xd5e2,\n 0xd6d0,\n ];\n }\n name() {\n return 'GB18030';\n }\n language() {\n return 'zh';\n }\n nextChar(iter, det) {\n iter.index = iter.nextIndex;\n iter.error = false;\n let firstByte = 0;\n let secondByte = 0;\n let thirdByte = 0;\n let fourthByte = 0;\n buildChar: {\n firstByte = iter.charValue = iter.nextByte(det);\n if (firstByte < 0) {\n iter.done = true;\n break buildChar;\n }\n if (firstByte <= 0x80) {\n break buildChar;\n }\n secondByte = iter.nextByte(det);\n iter.charValue = (iter.charValue << 8) | secondByte;\n if (firstByte >= 0x81 && firstByte <= 0xfe) {\n if ((secondByte >= 0x40 && secondByte <= 0x7e) ||\n (secondByte >= 80 && secondByte <= 0xfe)) {\n break buildChar;\n }\n if (secondByte >= 0x30 && secondByte <= 0x39) {\n thirdByte = iter.nextByte(det);\n if (thirdByte >= 0x81 && thirdByte <= 0xfe) {\n fourthByte = iter.nextByte(det);\n if (fourthByte >= 0x30 && fourthByte <= 0x39) {\n iter.charValue =\n (iter.charValue << 16) | (thirdByte << 8) | fourthByte;\n break buildChar;\n }\n }\n }\n iter.error = true;\n break buildChar;\n }\n }\n return iter.done == false;\n }\n}\nexports.gb_18030 = gb_18030;\n//# sourceMappingURL=mbcs.js.map\n\n//# sourceURL=webpack://@microsoft/connected-workbooks/./node_modules/chardet/lib/encoding/mbcs.js?");
|
|
64
|
+
|
|
65
|
+
/***/ }),
|
|
66
|
+
|
|
67
|
+
/***/ "./node_modules/chardet/lib/encoding/sbcs.js":
|
|
68
|
+
/*!***************************************************!*\
|
|
69
|
+
!*** ./node_modules/chardet/lib/encoding/sbcs.js ***!
|
|
70
|
+
\***************************************************/
|
|
71
|
+
/***/ (function(__unused_webpack_module, exports, __webpack_require__) {
|
|
72
|
+
|
|
73
|
+
"use strict";
|
|
74
|
+
eval("\nvar __importDefault = (this && this.__importDefault) || function (mod) {\n return (mod && mod.__esModule) ? mod : { \"default\": mod };\n};\nObject.defineProperty(exports, \"__esModule\", ({ value: true }));\nexports.KOI8_R = exports.windows_1256 = exports.windows_1251 = exports.ISO_8859_9 = exports.ISO_8859_8 = exports.ISO_8859_7 = exports.ISO_8859_6 = exports.ISO_8859_5 = exports.ISO_8859_2 = exports.ISO_8859_1 = void 0;\nconst match_1 = __importDefault(__webpack_require__(/*! ../match */ \"./node_modules/chardet/lib/match.js\"));\nconst N_GRAM_MASK = 0xffffff;\nclass NGramParser {\n constructor(theNgramList, theByteMap) {\n this.byteIndex = 0;\n this.ngram = 0;\n this.ngramCount = 0;\n this.hitCount = 0;\n this.spaceChar = 0x20;\n this.ngramList = theNgramList;\n this.byteMap = theByteMap;\n }\n search(table, value) {\n let index = 0;\n if (table[index + 32] <= value)\n index += 32;\n if (table[index + 16] <= value)\n index += 16;\n if (table[index + 8] <= value)\n index += 8;\n if (table[index + 4] <= value)\n index += 4;\n if (table[index + 2] <= value)\n index += 2;\n if (table[index + 1] <= value)\n index += 1;\n if (table[index] > value)\n index -= 1;\n if (index < 0 || table[index] != value)\n return -1;\n return index;\n }\n lookup(thisNgram) {\n this.ngramCount += 1;\n if (this.search(this.ngramList, thisNgram) >= 0) {\n this.hitCount += 1;\n }\n }\n addByte(b) {\n this.ngram = ((this.ngram << 8) + (b & 0xff)) & N_GRAM_MASK;\n this.lookup(this.ngram);\n }\n nextByte(det) {\n if (this.byteIndex >= det.inputLen)\n return -1;\n return det.inputBytes[this.byteIndex++] & 0xff;\n }\n parse(det, spaceCh) {\n let b, ignoreSpace = false;\n this.spaceChar = spaceCh;\n while ((b = this.nextByte(det)) >= 0) {\n const mb = this.byteMap[b];\n if (mb != 0) {\n if (!(mb == this.spaceChar && ignoreSpace)) {\n this.addByte(mb);\n }\n ignoreSpace = mb == this.spaceChar;\n }\n }\n this.addByte(this.spaceChar);\n const rawPercent = this.hitCount / this.ngramCount;\n if (rawPercent > 0.33)\n return 98;\n return Math.floor(rawPercent * 300.0);\n }\n}\nclass NGramsPlusLang {\n constructor(la, ng) {\n this.fLang = la;\n this.fNGrams = ng;\n }\n}\nconst isFlatNgrams = (val) => Array.isArray(val) && isFinite(val[0]);\nclass sbcs {\n constructor() {\n this.spaceChar = 0x20;\n this.nGramLang = undefined;\n }\n ngrams() {\n return [];\n }\n byteMap() {\n return [];\n }\n name(_input) {\n return 'sbcs';\n }\n language() {\n return this.nGramLang;\n }\n match(det) {\n this.nGramLang = undefined;\n const ngrams = this.ngrams();\n if (isFlatNgrams(ngrams)) {\n const parser = new NGramParser(ngrams, this.byteMap());\n const confidence = parser.parse(det, this.spaceChar);\n return confidence <= 0 ? null : (0, match_1.default)(det, this, confidence);\n }\n let bestConfidence = -1;\n for (let i = ngrams.length - 1; i >= 0; i--) {\n const ngl = ngrams[i];\n const parser = new NGramParser(ngl.fNGrams, this.byteMap());\n const confidence = parser.parse(det, this.spaceChar);\n if (confidence > bestConfidence) {\n bestConfidence = confidence;\n this.nGramLang = ngl.fLang;\n }\n }\n return bestConfidence <= 0 ? null : (0, match_1.default)(det, this, bestConfidence);\n }\n}\nclass ISO_8859_1 extends sbcs {\n byteMap() {\n return [\n 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,\n 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,\n 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,\n 0x20, 0x20, 0x20, 0x00, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,\n 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,\n 0x20, 0x20, 0x20, 0x20, 0x20, 0x61, 0x62, 0x63, 0x64, 0x65, 0x66, 0x67,\n 0x68, 0x69, 0x6a, 0x6b, 0x6c, 0x6d, 0x6e, 0x6f, 0x70, 0x71, 0x72, 0x73,\n 0x74, 0x75, 0x76, 0x77, 0x78, 0x79, 0x7a, 0x20, 0x20, 0x20, 0x20, 0x20,\n 0x20, 0x61, 0x62, 0x63, 0x64, 0x65, 0x66, 0x67, 0x68, 0x69, 0x6a, 0x6b,\n 0x6c, 0x6d, 0x6e, 0x6f, 0x70, 0x71, 0x72, 0x73, 0x74, 0x75, 0x76, 0x77,\n 0x78, 0x79, 0x7a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,\n 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,\n 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,\n 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,\n 0x20, 0x20, 0xaa, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,\n 0x20, 0xb5, 0x20, 0x20, 0x20, 0x20, 0xba, 0x20, 0x20, 0x20, 0x20, 0x20,\n 0xe0, 0xe1, 0xe2, 0xe3, 0xe4, 0xe5, 0xe6, 0xe7, 0xe8, 0xe9, 0xea, 0xeb,\n 0xec, 0xed, 0xee, 0xef, 0xf0, 0xf1, 0xf2, 0xf3, 0xf4, 0xf5, 0xf6, 0x20,\n 0xf8, 0xf9, 0xfa, 0xfb, 0xfc, 0xfd, 0xfe, 0xdf, 0xe0, 0xe1, 0xe2, 0xe3,\n 0xe4, 0xe5, 0xe6, 0xe7, 0xe8, 0xe9, 0xea, 0xeb, 0xec, 0xed, 0xee, 0xef,\n 0xf0, 0xf1, 0xf2, 0xf3, 0xf4, 0xf5, 0xf6, 0x20, 0xf8, 0xf9, 0xfa, 0xfb,\n 0xfc, 0xfd, 0xfe, 0xff,\n ];\n }\n ngrams() {\n return [\n new NGramsPlusLang('da', [\n 0x206166, 0x206174, 0x206465, 0x20656e, 0x206572, 0x20666f, 0x206861,\n 0x206920, 0x206d65, 0x206f67, 0x2070e5, 0x207369, 0x207374, 0x207469,\n 0x207669, 0x616620, 0x616e20, 0x616e64, 0x617220, 0x617420, 0x646520,\n 0x64656e, 0x646572, 0x646574, 0x652073, 0x656420, 0x656465, 0x656e20,\n 0x656e64, 0x657220, 0x657265, 0x657320, 0x657420, 0x666f72, 0x676520,\n 0x67656e, 0x676572, 0x696765, 0x696c20, 0x696e67, 0x6b6520, 0x6b6b65,\n 0x6c6572, 0x6c6967, 0x6c6c65, 0x6d6564, 0x6e6465, 0x6e6520, 0x6e6720,\n 0x6e6765, 0x6f6720, 0x6f6d20, 0x6f7220, 0x70e520, 0x722064, 0x722065,\n 0x722073, 0x726520, 0x737465, 0x742073, 0x746520, 0x746572, 0x74696c,\n 0x766572,\n ]),\n new NGramsPlusLang('de', [\n 0x20616e, 0x206175, 0x206265, 0x206461, 0x206465, 0x206469, 0x206569,\n 0x206765, 0x206861, 0x20696e, 0x206d69, 0x207363, 0x207365, 0x20756e,\n 0x207665, 0x20766f, 0x207765, 0x207a75, 0x626572, 0x636820, 0x636865,\n 0x636874, 0x646173, 0x64656e, 0x646572, 0x646965, 0x652064, 0x652073,\n 0x65696e, 0x656974, 0x656e20, 0x657220, 0x657320, 0x67656e, 0x68656e,\n 0x687420, 0x696368, 0x696520, 0x696e20, 0x696e65, 0x697420, 0x6c6963,\n 0x6c6c65, 0x6e2061, 0x6e2064, 0x6e2073, 0x6e6420, 0x6e6465, 0x6e6520,\n 0x6e6720, 0x6e6765, 0x6e7465, 0x722064, 0x726465, 0x726569, 0x736368,\n 0x737465, 0x742064, 0x746520, 0x74656e, 0x746572, 0x756e64, 0x756e67,\n 0x766572,\n ]),\n new NGramsPlusLang('en', [\n 0x206120, 0x20616e, 0x206265, 0x20636f, 0x20666f, 0x206861, 0x206865,\n 0x20696e, 0x206d61, 0x206f66, 0x207072, 0x207265, 0x207361, 0x207374,\n 0x207468, 0x20746f, 0x207768, 0x616964, 0x616c20, 0x616e20, 0x616e64,\n 0x617320, 0x617420, 0x617465, 0x617469, 0x642061, 0x642074, 0x652061,\n 0x652073, 0x652074, 0x656420, 0x656e74, 0x657220, 0x657320, 0x666f72,\n 0x686174, 0x686520, 0x686572, 0x696420, 0x696e20, 0x696e67, 0x696f6e,\n 0x697320, 0x6e2061, 0x6e2074, 0x6e6420, 0x6e6720, 0x6e7420, 0x6f6620,\n 0x6f6e20, 0x6f7220, 0x726520, 0x727320, 0x732061, 0x732074, 0x736169,\n 0x737420, 0x742074, 0x746572, 0x746861, 0x746865, 0x74696f, 0x746f20,\n 0x747320,\n ]),\n new NGramsPlusLang('es', [\n 0x206120, 0x206361, 0x20636f, 0x206465, 0x20656c, 0x20656e, 0x206573,\n 0x20696e, 0x206c61, 0x206c6f, 0x207061, 0x20706f, 0x207072, 0x207175,\n 0x207265, 0x207365, 0x20756e, 0x207920, 0x612063, 0x612064, 0x612065,\n 0x61206c, 0x612070, 0x616369, 0x61646f, 0x616c20, 0x617220, 0x617320,\n 0x6369f3, 0x636f6e, 0x646520, 0x64656c, 0x646f20, 0x652064, 0x652065,\n 0x65206c, 0x656c20, 0x656e20, 0x656e74, 0x657320, 0x657374, 0x69656e,\n 0x69f36e, 0x6c6120, 0x6c6f73, 0x6e2065, 0x6e7465, 0x6f2064, 0x6f2065,\n 0x6f6e20, 0x6f7220, 0x6f7320, 0x706172, 0x717565, 0x726120, 0x726573,\n 0x732064, 0x732065, 0x732070, 0x736520, 0x746520, 0x746f20, 0x756520,\n 0xf36e20,\n ]),\n new NGramsPlusLang('fr', [\n 0x206175, 0x20636f, 0x206461, 0x206465, 0x206475, 0x20656e, 0x206574,\n 0x206c61, 0x206c65, 0x207061, 0x20706f, 0x207072, 0x207175, 0x207365,\n 0x20736f, 0x20756e, 0x20e020, 0x616e74, 0x617469, 0x636520, 0x636f6e,\n 0x646520, 0x646573, 0x647520, 0x652061, 0x652063, 0x652064, 0x652065,\n 0x65206c, 0x652070, 0x652073, 0x656e20, 0x656e74, 0x657220, 0x657320,\n 0x657420, 0x657572, 0x696f6e, 0x697320, 0x697420, 0x6c6120, 0x6c6520,\n 0x6c6573, 0x6d656e, 0x6e2064, 0x6e6520, 0x6e7320, 0x6e7420, 0x6f6e20,\n 0x6f6e74, 0x6f7572, 0x717565, 0x72206c, 0x726520, 0x732061, 0x732064,\n 0x732065, 0x73206c, 0x732070, 0x742064, 0x746520, 0x74696f, 0x756520,\n 0x757220,\n ]),\n new NGramsPlusLang('it', [\n 0x20616c, 0x206368, 0x20636f, 0x206465, 0x206469, 0x206520, 0x20696c,\n 0x20696e, 0x206c61, 0x207065, 0x207072, 0x20756e, 0x612063, 0x612064,\n 0x612070, 0x612073, 0x61746f, 0x636865, 0x636f6e, 0x64656c, 0x646920,\n 0x652061, 0x652063, 0x652064, 0x652069, 0x65206c, 0x652070, 0x652073,\n 0x656c20, 0x656c6c, 0x656e74, 0x657220, 0x686520, 0x692061, 0x692063,\n 0x692064, 0x692073, 0x696120, 0x696c20, 0x696e20, 0x696f6e, 0x6c6120,\n 0x6c6520, 0x6c6920, 0x6c6c61, 0x6e6520, 0x6e6920, 0x6e6f20, 0x6e7465,\n 0x6f2061, 0x6f2064, 0x6f2069, 0x6f2073, 0x6f6e20, 0x6f6e65, 0x706572,\n 0x726120, 0x726520, 0x736920, 0x746120, 0x746520, 0x746920, 0x746f20,\n 0x7a696f,\n ]),\n new NGramsPlusLang('nl', [\n 0x20616c, 0x206265, 0x206461, 0x206465, 0x206469, 0x206565, 0x20656e,\n 0x206765, 0x206865, 0x20696e, 0x206d61, 0x206d65, 0x206f70, 0x207465,\n 0x207661, 0x207665, 0x20766f, 0x207765, 0x207a69, 0x61616e, 0x616172,\n 0x616e20, 0x616e64, 0x617220, 0x617420, 0x636874, 0x646520, 0x64656e,\n 0x646572, 0x652062, 0x652076, 0x65656e, 0x656572, 0x656e20, 0x657220,\n 0x657273, 0x657420, 0x67656e, 0x686574, 0x696520, 0x696e20, 0x696e67,\n 0x697320, 0x6e2062, 0x6e2064, 0x6e2065, 0x6e2068, 0x6e206f, 0x6e2076,\n 0x6e6465, 0x6e6720, 0x6f6e64, 0x6f6f72, 0x6f7020, 0x6f7220, 0x736368,\n 0x737465, 0x742064, 0x746520, 0x74656e, 0x746572, 0x76616e, 0x766572,\n 0x766f6f,\n ]),\n new NGramsPlusLang('no', [\n 0x206174, 0x206176, 0x206465, 0x20656e, 0x206572, 0x20666f, 0x206861,\n 0x206920, 0x206d65, 0x206f67, 0x2070e5, 0x207365, 0x20736b, 0x20736f,\n 0x207374, 0x207469, 0x207669, 0x20e520, 0x616e64, 0x617220, 0x617420,\n 0x646520, 0x64656e, 0x646574, 0x652073, 0x656420, 0x656e20, 0x656e65,\n 0x657220, 0x657265, 0x657420, 0x657474, 0x666f72, 0x67656e, 0x696b6b,\n 0x696c20, 0x696e67, 0x6b6520, 0x6b6b65, 0x6c6520, 0x6c6c65, 0x6d6564,\n 0x6d656e, 0x6e2073, 0x6e6520, 0x6e6720, 0x6e6765, 0x6e6e65, 0x6f6720,\n 0x6f6d20, 0x6f7220, 0x70e520, 0x722073, 0x726520, 0x736f6d, 0x737465,\n 0x742073, 0x746520, 0x74656e, 0x746572, 0x74696c, 0x747420, 0x747465,\n 0x766572,\n ]),\n new NGramsPlusLang('pt', [\n 0x206120, 0x20636f, 0x206461, 0x206465, 0x20646f, 0x206520, 0x206573,\n 0x206d61, 0x206e6f, 0x206f20, 0x207061, 0x20706f, 0x207072, 0x207175,\n 0x207265, 0x207365, 0x20756d, 0x612061, 0x612063, 0x612064, 0x612070,\n 0x616465, 0x61646f, 0x616c20, 0x617220, 0x617261, 0x617320, 0x636f6d,\n 0x636f6e, 0x646120, 0x646520, 0x646f20, 0x646f73, 0x652061, 0x652064,\n 0x656d20, 0x656e74, 0x657320, 0x657374, 0x696120, 0x696361, 0x6d656e,\n 0x6e7465, 0x6e746f, 0x6f2061, 0x6f2063, 0x6f2064, 0x6f2065, 0x6f2070,\n 0x6f7320, 0x706172, 0x717565, 0x726120, 0x726573, 0x732061, 0x732064,\n 0x732065, 0x732070, 0x737461, 0x746520, 0x746f20, 0x756520, 0xe36f20,\n 0xe7e36f,\n ]),\n new NGramsPlusLang('sv', [\n 0x206174, 0x206176, 0x206465, 0x20656e, 0x2066f6, 0x206861, 0x206920,\n 0x20696e, 0x206b6f, 0x206d65, 0x206f63, 0x2070e5, 0x20736b, 0x20736f,\n 0x207374, 0x207469, 0x207661, 0x207669, 0x20e472, 0x616465, 0x616e20,\n 0x616e64, 0x617220, 0x617474, 0x636820, 0x646520, 0x64656e, 0x646572,\n 0x646574, 0x656420, 0x656e20, 0x657220, 0x657420, 0x66f672, 0x67656e,\n 0x696c6c, 0x696e67, 0x6b6120, 0x6c6c20, 0x6d6564, 0x6e2073, 0x6e6120,\n 0x6e6465, 0x6e6720, 0x6e6765, 0x6e696e, 0x6f6368, 0x6f6d20, 0x6f6e20,\n 0x70e520, 0x722061, 0x722073, 0x726120, 0x736b61, 0x736f6d, 0x742073,\n 0x746120, 0x746520, 0x746572, 0x74696c, 0x747420, 0x766172, 0xe47220,\n 0xf67220,\n ]),\n ];\n }\n name(input) {\n return input && input.c1Bytes ? 'windows-1252' : 'ISO-8859-1';\n }\n}\nexports.ISO_8859_1 = ISO_8859_1;\nclass ISO_8859_2 extends sbcs {\n byteMap() {\n return [\n 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,\n 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,\n 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,\n 0x20, 0x20, 0x20, 0x00, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,\n 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,\n 0x20, 0x20, 0x20, 0x20, 0x20, 0x61, 0x62, 0x63, 0x64, 0x65, 0x66, 0x67,\n 0x68, 0x69, 0x6a, 0x6b, 0x6c, 0x6d, 0x6e, 0x6f, 0x70, 0x71, 0x72, 0x73,\n 0x74, 0x75, 0x76, 0x77, 0x78, 0x79, 0x7a, 0x20, 0x20, 0x20, 0x20, 0x20,\n 0x20, 0x61, 0x62, 0x63, 0x64, 0x65, 0x66, 0x67, 0x68, 0x69, 0x6a, 0x6b,\n 0x6c, 0x6d, 0x6e, 0x6f, 0x70, 0x71, 0x72, 0x73, 0x74, 0x75, 0x76, 0x77,\n 0x78, 0x79, 0x7a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,\n 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,\n 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,\n 0x20, 0x20, 0x20, 0x20, 0x20, 0xb1, 0x20, 0xb3, 0x20, 0xb5, 0xb6, 0x20,\n 0x20, 0xb9, 0xba, 0xbb, 0xbc, 0x20, 0xbe, 0xbf, 0x20, 0xb1, 0x20, 0xb3,\n 0x20, 0xb5, 0xb6, 0xb7, 0x20, 0xb9, 0xba, 0xbb, 0xbc, 0x20, 0xbe, 0xbf,\n 0xe0, 0xe1, 0xe2, 0xe3, 0xe4, 0xe5, 0xe6, 0xe7, 0xe8, 0xe9, 0xea, 0xeb,\n 0xec, 0xed, 0xee, 0xef, 0xf0, 0xf1, 0xf2, 0xf3, 0xf4, 0xf5, 0xf6, 0x20,\n 0xf8, 0xf9, 0xfa, 0xfb, 0xfc, 0xfd, 0xfe, 0xdf, 0xe0, 0xe1, 0xe2, 0xe3,\n 0xe4, 0xe5, 0xe6, 0xe7, 0xe8, 0xe9, 0xea, 0xeb, 0xec, 0xed, 0xee, 0xef,\n 0xf0, 0xf1, 0xf2, 0xf3, 0xf4, 0xf5, 0xf6, 0x20, 0xf8, 0xf9, 0xfa, 0xfb,\n 0xfc, 0xfd, 0xfe, 0x20,\n ];\n }\n ngrams() {\n return [\n new NGramsPlusLang('cs', [\n 0x206120, 0x206279, 0x20646f, 0x206a65, 0x206e61, 0x206e65, 0x206f20,\n 0x206f64, 0x20706f, 0x207072, 0x2070f8, 0x20726f, 0x207365, 0x20736f,\n 0x207374, 0x20746f, 0x207620, 0x207679, 0x207a61, 0x612070, 0x636520,\n 0x636820, 0x652070, 0x652073, 0x652076, 0x656d20, 0x656eed, 0x686f20,\n 0x686f64, 0x697374, 0x6a6520, 0x6b7465, 0x6c6520, 0x6c6920, 0x6e6120,\n 0x6ee920, 0x6eec20, 0x6eed20, 0x6f2070, 0x6f646e, 0x6f6a69, 0x6f7374,\n 0x6f7520, 0x6f7661, 0x706f64, 0x706f6a, 0x70726f, 0x70f865, 0x736520,\n 0x736f75, 0x737461, 0x737469, 0x73746e, 0x746572, 0x746eed, 0x746f20,\n 0x752070, 0xbe6520, 0xe16eed, 0xe9686f, 0xed2070, 0xed2073, 0xed6d20,\n 0xf86564,\n ]),\n new NGramsPlusLang('hu', [\n 0x206120, 0x20617a, 0x206265, 0x206567, 0x20656c, 0x206665, 0x206861,\n 0x20686f, 0x206973, 0x206b65, 0x206b69, 0x206bf6, 0x206c65, 0x206d61,\n 0x206d65, 0x206d69, 0x206e65, 0x20737a, 0x207465, 0x20e973, 0x612061,\n 0x61206b, 0x61206d, 0x612073, 0x616b20, 0x616e20, 0x617a20, 0x62616e,\n 0x62656e, 0x656779, 0x656b20, 0x656c20, 0x656c65, 0x656d20, 0x656e20,\n 0x657265, 0x657420, 0x657465, 0x657474, 0x677920, 0x686f67, 0x696e74,\n 0x697320, 0x6b2061, 0x6bf67a, 0x6d6567, 0x6d696e, 0x6e2061, 0x6e616b,\n 0x6e656b, 0x6e656d, 0x6e7420, 0x6f6779, 0x732061, 0x737a65, 0x737a74,\n 0x737ae1, 0x73e967, 0x742061, 0x747420, 0x74e173, 0x7a6572, 0xe16e20,\n 0xe97320,\n ]),\n new NGramsPlusLang('pl', [\n 0x20637a, 0x20646f, 0x206920, 0x206a65, 0x206b6f, 0x206d61, 0x206d69,\n 0x206e61, 0x206e69, 0x206f64, 0x20706f, 0x207072, 0x207369, 0x207720,\n 0x207769, 0x207779, 0x207a20, 0x207a61, 0x612070, 0x612077, 0x616e69,\n 0x636820, 0x637a65, 0x637a79, 0x646f20, 0x647a69, 0x652070, 0x652073,\n 0x652077, 0x65207a, 0x65676f, 0x656a20, 0x656d20, 0x656e69, 0x676f20,\n 0x696120, 0x696520, 0x69656a, 0x6b6120, 0x6b6920, 0x6b6965, 0x6d6965,\n 0x6e6120, 0x6e6961, 0x6e6965, 0x6f2070, 0x6f7761, 0x6f7769, 0x706f6c,\n 0x707261, 0x70726f, 0x70727a, 0x727a65, 0x727a79, 0x7369ea, 0x736b69,\n 0x737461, 0x776965, 0x796368, 0x796d20, 0x7a6520, 0x7a6965, 0x7a7920,\n 0xf37720,\n ]),\n new NGramsPlusLang('ro', [\n 0x206120, 0x206163, 0x206361, 0x206365, 0x20636f, 0x206375, 0x206465,\n 0x206469, 0x206c61, 0x206d61, 0x207065, 0x207072, 0x207365, 0x2073e3,\n 0x20756e, 0x20ba69, 0x20ee6e, 0x612063, 0x612064, 0x617265, 0x617420,\n 0x617465, 0x617520, 0x636172, 0x636f6e, 0x637520, 0x63e320, 0x646520,\n 0x652061, 0x652063, 0x652064, 0x652070, 0x652073, 0x656120, 0x656920,\n 0x656c65, 0x656e74, 0x657374, 0x692061, 0x692063, 0x692064, 0x692070,\n 0x696520, 0x696920, 0x696e20, 0x6c6120, 0x6c6520, 0x6c6f72, 0x6c7569,\n 0x6e6520, 0x6e7472, 0x6f7220, 0x70656e, 0x726520, 0x726561, 0x727520,\n 0x73e320, 0x746520, 0x747275, 0x74e320, 0x756920, 0x756c20, 0xba6920,\n 0xee6e20,\n ]),\n ];\n }\n name(det) {\n return det && det.c1Bytes ? 'windows-1250' : 'ISO-8859-2';\n }\n}\nexports.ISO_8859_2 = ISO_8859_2;\nclass ISO_8859_5 extends sbcs {\n byteMap() {\n return [\n 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,\n 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,\n 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,\n 0x20, 0x20, 0x20, 0x00, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,\n 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,\n 0x20, 0x20, 0x20, 0x20, 0x20, 0x61, 0x62, 0x63, 0x64, 0x65, 0x66, 0x67,\n 0x68, 0x69, 0x6a, 0x6b, 0x6c, 0x6d, 0x6e, 0x6f, 0x70, 0x71, 0x72, 0x73,\n 0x74, 0x75, 0x76, 0x77, 0x78, 0x79, 0x7a, 0x20, 0x20, 0x20, 0x20, 0x20,\n 0x20, 0x61, 0x62, 0x63, 0x64, 0x65, 0x66, 0x67, 0x68, 0x69, 0x6a, 0x6b,\n 0x6c, 0x6d, 0x6e, 0x6f, 0x70, 0x71, 0x72, 0x73, 0x74, 0x75, 0x76, 0x77,\n 0x78, 0x79, 0x7a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,\n 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,\n 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,\n 0x20, 0x20, 0x20, 0x20, 0x20, 0xf1, 0xf2, 0xf3, 0xf4, 0xf5, 0xf6, 0xf7,\n 0xf8, 0xf9, 0xfa, 0xfb, 0xfc, 0x20, 0xfe, 0xff, 0xd0, 0xd1, 0xd2, 0xd3,\n 0xd4, 0xd5, 0xd6, 0xd7, 0xd8, 0xd9, 0xda, 0xdb, 0xdc, 0xdd, 0xde, 0xdf,\n 0xe0, 0xe1, 0xe2, 0xe3, 0xe4, 0xe5, 0xe6, 0xe7, 0xe8, 0xe9, 0xea, 0xeb,\n 0xec, 0xed, 0xee, 0xef, 0xd0, 0xd1, 0xd2, 0xd3, 0xd4, 0xd5, 0xd6, 0xd7,\n 0xd8, 0xd9, 0xda, 0xdb, 0xdc, 0xdd, 0xde, 0xdf, 0xe0, 0xe1, 0xe2, 0xe3,\n 0xe4, 0xe5, 0xe6, 0xe7, 0xe8, 0xe9, 0xea, 0xeb, 0xec, 0xed, 0xee, 0xef,\n 0x20, 0xf1, 0xf2, 0xf3, 0xf4, 0xf5, 0xf6, 0xf7, 0xf8, 0xf9, 0xfa, 0xfb,\n 0xfc, 0x20, 0xfe, 0xff,\n ];\n }\n ngrams() {\n return [\n 0x20d220, 0x20d2de, 0x20d4de, 0x20d7d0, 0x20d820, 0x20dad0, 0x20dade,\n 0x20ddd0, 0x20ddd5, 0x20ded1, 0x20dfde, 0x20dfe0, 0x20e0d0, 0x20e1de,\n 0x20e1e2, 0x20e2de, 0x20e7e2, 0x20ede2, 0xd0ddd8, 0xd0e2ec, 0xd3de20,\n 0xd5dbec, 0xd5ddd8, 0xd5e1e2, 0xd5e220, 0xd820df, 0xd8d520, 0xd8d820,\n 0xd8ef20, 0xdbd5dd, 0xdbd820, 0xdbecdd, 0xddd020, 0xddd520, 0xddd8d5,\n 0xddd8ef, 0xddde20, 0xddded2, 0xde20d2, 0xde20df, 0xde20e1, 0xded220,\n 0xded2d0, 0xded3de, 0xded920, 0xdedbec, 0xdedc20, 0xdee1e2, 0xdfdedb,\n 0xdfe0d5, 0xdfe0d8, 0xdfe0de, 0xe0d0d2, 0xe0d5d4, 0xe1e2d0, 0xe1e2d2,\n 0xe1e2d8, 0xe1ef20, 0xe2d5db, 0xe2de20, 0xe2dee0, 0xe2ec20, 0xe7e2de,\n 0xebe520,\n ];\n }\n name() {\n return 'ISO-8859-5';\n }\n language() {\n return 'ru';\n }\n}\nexports.ISO_8859_5 = ISO_8859_5;\nclass ISO_8859_6 extends sbcs {\n byteMap() {\n return [\n 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,\n 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,\n 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,\n 0x20, 0x20, 0x20, 0x00, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,\n 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,\n 0x20, 0x20, 0x20, 0x20, 0x20, 0x61, 0x62, 0x63, 0x64, 0x65, 0x66, 0x67,\n 0x68, 0x69, 0x6a, 0x6b, 0x6c, 0x6d, 0x6e, 0x6f, 0x70, 0x71, 0x72, 0x73,\n 0x74, 0x75, 0x76, 0x77, 0x78, 0x79, 0x7a, 0x20, 0x20, 0x20, 0x20, 0x20,\n 0x20, 0x61, 0x62, 0x63, 0x64, 0x65, 0x66, 0x67, 0x68, 0x69, 0x6a, 0x6b,\n 0x6c, 0x6d, 0x6e, 0x6f, 0x70, 0x71, 0x72, 0x73, 0x74, 0x75, 0x76, 0x77,\n 0x78, 0x79, 0x7a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,\n 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,\n 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,\n 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,\n 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,\n 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,\n 0x20, 0xc1, 0xc2, 0xc3, 0xc4, 0xc5, 0xc6, 0xc7, 0xc8, 0xc9, 0xca, 0xcb,\n 0xcc, 0xcd, 0xce, 0xcf, 0xd0, 0xd1, 0xd2, 0xd3, 0xd4, 0xd5, 0xd6, 0xd7,\n 0xd8, 0xd9, 0xda, 0x20, 0x20, 0x20, 0x20, 0x20, 0xe0, 0xe1, 0xe2, 0xe3,\n 0xe4, 0xe5, 0xe6, 0xe7, 0xe8, 0xe9, 0xea, 0x20, 0x20, 0x20, 0x20, 0x20,\n 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,\n 0x20, 0x20, 0x20, 0x20,\n ];\n }\n ngrams() {\n return [\n 0x20c7e4, 0x20c7e6, 0x20c8c7, 0x20d9e4, 0x20e1ea, 0x20e4e4, 0x20e5e6,\n 0x20e8c7, 0xc720c7, 0xc7c120, 0xc7ca20, 0xc7d120, 0xc7e420, 0xc7e4c3,\n 0xc7e4c7, 0xc7e4c8, 0xc7e4ca, 0xc7e4cc, 0xc7e4cd, 0xc7e4cf, 0xc7e4d3,\n 0xc7e4d9, 0xc7e4e2, 0xc7e4e5, 0xc7e4e8, 0xc7e4ea, 0xc7e520, 0xc7e620,\n 0xc7e6ca, 0xc820c7, 0xc920c7, 0xc920e1, 0xc920e4, 0xc920e5, 0xc920e8,\n 0xca20c7, 0xcf20c7, 0xcfc920, 0xd120c7, 0xd1c920, 0xd320c7, 0xd920c7,\n 0xd9e4e9, 0xe1ea20, 0xe420c7, 0xe4c920, 0xe4e920, 0xe4ea20, 0xe520c7,\n 0xe5c720, 0xe5c920, 0xe5e620, 0xe620c7, 0xe720c7, 0xe7c720, 0xe8c7e4,\n 0xe8e620, 0xe920c7, 0xea20c7, 0xea20e5, 0xea20e8, 0xeac920, 0xead120,\n 0xeae620,\n ];\n }\n name() {\n return 'ISO-8859-6';\n }\n language() {\n return 'ar';\n }\n}\nexports.ISO_8859_6 = ISO_8859_6;\nclass ISO_8859_7 extends sbcs {\n byteMap() {\n return [\n 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,\n 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,\n 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,\n 0x20, 0x20, 0x20, 0x00, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,\n 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,\n 0x20, 0x20, 0x20, 0x20, 0x20, 0x61, 0x62, 0x63, 0x64, 0x65, 0x66, 0x67,\n 0x68, 0x69, 0x6a, 0x6b, 0x6c, 0x6d, 0x6e, 0x6f, 0x70, 0x71, 0x72, 0x73,\n 0x74, 0x75, 0x76, 0x77, 0x78, 0x79, 0x7a, 0x20, 0x20, 0x20, 0x20, 0x20,\n 0x20, 0x61, 0x62, 0x63, 0x64, 0x65, 0x66, 0x67, 0x68, 0x69, 0x6a, 0x6b,\n 0x6c, 0x6d, 0x6e, 0x6f, 0x70, 0x71, 0x72, 0x73, 0x74, 0x75, 0x76, 0x77,\n 0x78, 0x79, 0x7a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,\n 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,\n 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,\n 0x20, 0x20, 0x20, 0x20, 0x20, 0xa1, 0xa2, 0x20, 0x20, 0x20, 0x20, 0x20,\n 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,\n 0x20, 0x20, 0xdc, 0x20, 0xdd, 0xde, 0xdf, 0x20, 0xfc, 0x20, 0xfd, 0xfe,\n 0xc0, 0xe1, 0xe2, 0xe3, 0xe4, 0xe5, 0xe6, 0xe7, 0xe8, 0xe9, 0xea, 0xeb,\n 0xec, 0xed, 0xee, 0xef, 0xf0, 0xf1, 0x20, 0xf3, 0xf4, 0xf5, 0xf6, 0xf7,\n 0xf8, 0xf9, 0xfa, 0xfb, 0xdc, 0xdd, 0xde, 0xdf, 0xe0, 0xe1, 0xe2, 0xe3,\n 0xe4, 0xe5, 0xe6, 0xe7, 0xe8, 0xe9, 0xea, 0xeb, 0xec, 0xed, 0xee, 0xef,\n 0xf0, 0xf1, 0xf2, 0xf3, 0xf4, 0xf5, 0xf6, 0xf7, 0xf8, 0xf9, 0xfa, 0xfb,\n 0xfc, 0xfd, 0xfe, 0x20,\n ];\n }\n ngrams() {\n return [\n 0x20e1ed, 0x20e1f0, 0x20e3e9, 0x20e4e9, 0x20e5f0, 0x20e720, 0x20eae1,\n 0x20ece5, 0x20ede1, 0x20ef20, 0x20f0e1, 0x20f0ef, 0x20f0f1, 0x20f3f4,\n 0x20f3f5, 0x20f4e7, 0x20f4ef, 0xdfe120, 0xe120e1, 0xe120f4, 0xe1e920,\n 0xe1ed20, 0xe1f0fc, 0xe1f220, 0xe3e9e1, 0xe5e920, 0xe5f220, 0xe720f4,\n 0xe7ed20, 0xe7f220, 0xe920f4, 0xe9e120, 0xe9eade, 0xe9f220, 0xeae1e9,\n 0xeae1f4, 0xece520, 0xed20e1, 0xed20e5, 0xed20f0, 0xede120, 0xeff220,\n 0xeff520, 0xf0eff5, 0xf0f1ef, 0xf0fc20, 0xf220e1, 0xf220e5, 0xf220ea,\n 0xf220f0, 0xf220f4, 0xf3e520, 0xf3e720, 0xf3f4ef, 0xf4e120, 0xf4e1e9,\n 0xf4e7ed, 0xf4e7f2, 0xf4e9ea, 0xf4ef20, 0xf4eff5, 0xf4f9ed, 0xf9ed20,\n 0xfeed20,\n ];\n }\n name(det) {\n return det && det.c1Bytes ? 'windows-1253' : 'ISO-8859-7';\n }\n language() {\n return 'el';\n }\n}\nexports.ISO_8859_7 = ISO_8859_7;\nclass ISO_8859_8 extends sbcs {\n byteMap() {\n return [\n 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,\n 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,\n 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,\n 0x20, 0x20, 0x20, 0x00, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,\n 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,\n 0x20, 0x20, 0x20, 0x20, 0x20, 0x61, 0x62, 0x63, 0x64, 0x65, 0x66, 0x67,\n 0x68, 0x69, 0x6a, 0x6b, 0x6c, 0x6d, 0x6e, 0x6f, 0x70, 0x71, 0x72, 0x73,\n 0x74, 0x75, 0x76, 0x77, 0x78, 0x79, 0x7a, 0x20, 0x20, 0x20, 0x20, 0x20,\n 0x20, 0x61, 0x62, 0x63, 0x64, 0x65, 0x66, 0x67, 0x68, 0x69, 0x6a, 0x6b,\n 0x6c, 0x6d, 0x6e, 0x6f, 0x70, 0x71, 0x72, 0x73, 0x74, 0x75, 0x76, 0x77,\n 0x78, 0x79, 0x7a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,\n 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,\n 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,\n 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,\n 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,\n 0x20, 0xb5, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,\n 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,\n 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,\n 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0xe0, 0xe1, 0xe2, 0xe3,\n 0xe4, 0xe5, 0xe6, 0xe7, 0xe8, 0xe9, 0xea, 0xeb, 0xec, 0xed, 0xee, 0xef,\n 0xf0, 0xf1, 0xf2, 0xf3, 0xf4, 0xf5, 0xf6, 0xf7, 0xf8, 0xf9, 0xfa, 0x20,\n 0x20, 0x20, 0x20, 0x20,\n ];\n }\n ngrams() {\n return [\n new NGramsPlusLang('he', [\n 0x20e0e5, 0x20e0e7, 0x20e0e9, 0x20e0fa, 0x20e1e9, 0x20e1ee, 0x20e4e0,\n 0x20e4e5, 0x20e4e9, 0x20e4ee, 0x20e4f2, 0x20e4f9, 0x20e4fa, 0x20ece0,\n 0x20ece4, 0x20eee0, 0x20f2ec, 0x20f9ec, 0xe0fa20, 0xe420e0, 0xe420e1,\n 0xe420e4, 0xe420ec, 0xe420ee, 0xe420f9, 0xe4e5e0, 0xe5e020, 0xe5ed20,\n 0xe5ef20, 0xe5f820, 0xe5fa20, 0xe920e4, 0xe9e420, 0xe9e5fa, 0xe9e9ed,\n 0xe9ed20, 0xe9ef20, 0xe9f820, 0xe9fa20, 0xec20e0, 0xec20e4, 0xece020,\n 0xece420, 0xed20e0, 0xed20e1, 0xed20e4, 0xed20ec, 0xed20ee, 0xed20f9,\n 0xeee420, 0xef20e4, 0xf0e420, 0xf0e920, 0xf0e9ed, 0xf2ec20, 0xf820e4,\n 0xf8e9ed, 0xf9ec20, 0xfa20e0, 0xfa20e1, 0xfa20e4, 0xfa20ec, 0xfa20ee,\n 0xfa20f9,\n ]),\n new NGramsPlusLang('he', [\n 0x20e0e5, 0x20e0ec, 0x20e4e9, 0x20e4ec, 0x20e4ee, 0x20e4f0, 0x20e9f0,\n 0x20ecf2, 0x20ecf9, 0x20ede5, 0x20ede9, 0x20efe5, 0x20efe9, 0x20f8e5,\n 0x20f8e9, 0x20fae0, 0x20fae5, 0x20fae9, 0xe020e4, 0xe020ec, 0xe020ed,\n 0xe020fa, 0xe0e420, 0xe0e5e4, 0xe0ec20, 0xe0ee20, 0xe120e4, 0xe120ed,\n 0xe120fa, 0xe420e4, 0xe420e9, 0xe420ec, 0xe420ed, 0xe420ef, 0xe420f8,\n 0xe420fa, 0xe4ec20, 0xe5e020, 0xe5e420, 0xe7e020, 0xe9e020, 0xe9e120,\n 0xe9e420, 0xec20e4, 0xec20ed, 0xec20fa, 0xecf220, 0xecf920, 0xede9e9,\n 0xede9f0, 0xede9f8, 0xee20e4, 0xee20ed, 0xee20fa, 0xeee120, 0xeee420,\n 0xf2e420, 0xf920e4, 0xf920ed, 0xf920fa, 0xf9e420, 0xfae020, 0xfae420,\n 0xfae5e9,\n ]),\n ];\n }\n name(det) {\n return det && det.c1Bytes ? 'windows-1255' : 'ISO-8859-8';\n }\n language() {\n return 'he';\n }\n}\nexports.ISO_8859_8 = ISO_8859_8;\nclass ISO_8859_9 extends sbcs {\n byteMap() {\n return [\n 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,\n 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,\n 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,\n 0x20, 0x20, 0x20, 0x00, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,\n 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,\n 0x20, 0x20, 0x20, 0x20, 0x20, 0x61, 0x62, 0x63, 0x64, 0x65, 0x66, 0x67,\n 0x68, 0x69, 0x6a, 0x6b, 0x6c, 0x6d, 0x6e, 0x6f, 0x70, 0x71, 0x72, 0x73,\n 0x74, 0x75, 0x76, 0x77, 0x78, 0x79, 0x7a, 0x20, 0x20, 0x20, 0x20, 0x20,\n 0x20, 0x61, 0x62, 0x63, 0x64, 0x65, 0x66, 0x67, 0x68, 0x69, 0x6a, 0x6b,\n 0x6c, 0x6d, 0x6e, 0x6f, 0x70, 0x71, 0x72, 0x73, 0x74, 0x75, 0x76, 0x77,\n 0x78, 0x79, 0x7a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,\n 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,\n 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,\n 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,\n 0x20, 0x20, 0xaa, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,\n 0x20, 0xb5, 0x20, 0x20, 0x20, 0x20, 0xba, 0x20, 0x20, 0x20, 0x20, 0x20,\n 0xe0, 0xe1, 0xe2, 0xe3, 0xe4, 0xe5, 0xe6, 0xe7, 0xe8, 0xe9, 0xea, 0xeb,\n 0xec, 0xed, 0xee, 0xef, 0xf0, 0xf1, 0xf2, 0xf3, 0xf4, 0xf5, 0xf6, 0x20,\n 0xf8, 0xf9, 0xfa, 0xfb, 0xfc, 0x69, 0xfe, 0xdf, 0xe0, 0xe1, 0xe2, 0xe3,\n 0xe4, 0xe5, 0xe6, 0xe7, 0xe8, 0xe9, 0xea, 0xeb, 0xec, 0xed, 0xee, 0xef,\n 0xf0, 0xf1, 0xf2, 0xf3, 0xf4, 0xf5, 0xf6, 0x20, 0xf8, 0xf9, 0xfa, 0xfb,\n 0xfc, 0xfd, 0xfe, 0xff,\n ];\n }\n ngrams() {\n return [\n 0x206261, 0x206269, 0x206275, 0x206461, 0x206465, 0x206765, 0x206861,\n 0x20696c, 0x206b61, 0x206b6f, 0x206d61, 0x206f6c, 0x207361, 0x207461,\n 0x207665, 0x207961, 0x612062, 0x616b20, 0x616c61, 0x616d61, 0x616e20,\n 0x616efd, 0x617220, 0x617261, 0x6172fd, 0x6173fd, 0x617961, 0x626972,\n 0x646120, 0x646520, 0x646920, 0x652062, 0x65206b, 0x656469, 0x656e20,\n 0x657220, 0x657269, 0x657369, 0x696c65, 0x696e20, 0x696e69, 0x697220,\n 0x6c616e, 0x6c6172, 0x6c6520, 0x6c6572, 0x6e2061, 0x6e2062, 0x6e206b,\n 0x6e6461, 0x6e6465, 0x6e6520, 0x6e6920, 0x6e696e, 0x6efd20, 0x72696e,\n 0x72fd6e, 0x766520, 0x796120, 0x796f72, 0xfd6e20, 0xfd6e64, 0xfd6efd,\n 0xfdf0fd,\n ];\n }\n name(det) {\n return det && det.c1Bytes ? 'windows-1254' : 'ISO-8859-9';\n }\n language() {\n return 'tr';\n }\n}\nexports.ISO_8859_9 = ISO_8859_9;\nclass windows_1251 extends sbcs {\n byteMap() {\n return [\n 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,\n 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,\n 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,\n 0x20, 0x20, 0x20, 0x00, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,\n 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,\n 0x20, 0x20, 0x20, 0x20, 0x20, 0x61, 0x62, 0x63, 0x64, 0x65, 0x66, 0x67,\n 0x68, 0x69, 0x6a, 0x6b, 0x6c, 0x6d, 0x6e, 0x6f, 0x70, 0x71, 0x72, 0x73,\n 0x74, 0x75, 0x76, 0x77, 0x78, 0x79, 0x7a, 0x20, 0x20, 0x20, 0x20, 0x20,\n 0x20, 0x61, 0x62, 0x63, 0x64, 0x65, 0x66, 0x67, 0x68, 0x69, 0x6a, 0x6b,\n 0x6c, 0x6d, 0x6e, 0x6f, 0x70, 0x71, 0x72, 0x73, 0x74, 0x75, 0x76, 0x77,\n 0x78, 0x79, 0x7a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x90, 0x83, 0x20, 0x83,\n 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x9a, 0x20, 0x9c, 0x9d, 0x9e, 0x9f,\n 0x90, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x9a, 0x20,\n 0x9c, 0x9d, 0x9e, 0x9f, 0x20, 0xa2, 0xa2, 0xbc, 0x20, 0xb4, 0x20, 0x20,\n 0xb8, 0x20, 0xba, 0x20, 0x20, 0x20, 0x20, 0xbf, 0x20, 0x20, 0xb3, 0xb3,\n 0xb4, 0xb5, 0x20, 0x20, 0xb8, 0x20, 0xba, 0x20, 0xbc, 0xbe, 0xbe, 0xbf,\n 0xe0, 0xe1, 0xe2, 0xe3, 0xe4, 0xe5, 0xe6, 0xe7, 0xe8, 0xe9, 0xea, 0xeb,\n 0xec, 0xed, 0xee, 0xef, 0xf0, 0xf1, 0xf2, 0xf3, 0xf4, 0xf5, 0xf6, 0xf7,\n 0xf8, 0xf9, 0xfa, 0xfb, 0xfc, 0xfd, 0xfe, 0xff, 0xe0, 0xe1, 0xe2, 0xe3,\n 0xe4, 0xe5, 0xe6, 0xe7, 0xe8, 0xe9, 0xea, 0xeb, 0xec, 0xed, 0xee, 0xef,\n 0xf0, 0xf1, 0xf2, 0xf3, 0xf4, 0xf5, 0xf6, 0xf7, 0xf8, 0xf9, 0xfa, 0xfb,\n 0xfc, 0xfd, 0xfe, 0xff,\n ];\n }\n ngrams() {\n return [\n 0x20e220, 0x20e2ee, 0x20e4ee, 0x20e7e0, 0x20e820, 0x20eae0, 0x20eaee,\n 0x20ede0, 0x20ede5, 0x20eee1, 0x20efee, 0x20eff0, 0x20f0e0, 0x20f1ee,\n 0x20f1f2, 0x20f2ee, 0x20f7f2, 0x20fdf2, 0xe0ede8, 0xe0f2fc, 0xe3ee20,\n 0xe5ebfc, 0xe5ede8, 0xe5f1f2, 0xe5f220, 0xe820ef, 0xe8e520, 0xe8e820,\n 0xe8ff20, 0xebe5ed, 0xebe820, 0xebfced, 0xede020, 0xede520, 0xede8e5,\n 0xede8ff, 0xedee20, 0xedeee2, 0xee20e2, 0xee20ef, 0xee20f1, 0xeee220,\n 0xeee2e0, 0xeee3ee, 0xeee920, 0xeeebfc, 0xeeec20, 0xeef1f2, 0xefeeeb,\n 0xeff0e5, 0xeff0e8, 0xeff0ee, 0xf0e0e2, 0xf0e5e4, 0xf1f2e0, 0xf1f2e2,\n 0xf1f2e8, 0xf1ff20, 0xf2e5eb, 0xf2ee20, 0xf2eef0, 0xf2fc20, 0xf7f2ee,\n 0xfbf520,\n ];\n }\n name() {\n return 'windows-1251';\n }\n language() {\n return 'ru';\n }\n}\nexports.windows_1251 = windows_1251;\nclass windows_1256 extends sbcs {\n byteMap() {\n return [\n 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,\n 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,\n 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,\n 0x20, 0x20, 0x20, 0x00, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,\n 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,\n 0x20, 0x20, 0x20, 0x20, 0x20, 0x61, 0x62, 0x63, 0x64, 0x65, 0x66, 0x67,\n 0x68, 0x69, 0x6a, 0x6b, 0x6c, 0x6d, 0x6e, 0x6f, 0x70, 0x71, 0x72, 0x73,\n 0x74, 0x75, 0x76, 0x77, 0x78, 0x79, 0x7a, 0x20, 0x20, 0x20, 0x20, 0x20,\n 0x20, 0x61, 0x62, 0x63, 0x64, 0x65, 0x66, 0x67, 0x68, 0x69, 0x6a, 0x6b,\n 0x6c, 0x6d, 0x6e, 0x6f, 0x70, 0x71, 0x72, 0x73, 0x74, 0x75, 0x76, 0x77,\n 0x78, 0x79, 0x7a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x81, 0x20, 0x83,\n 0x20, 0x20, 0x20, 0x20, 0x88, 0x20, 0x8a, 0x20, 0x9c, 0x8d, 0x8e, 0x8f,\n 0x90, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x98, 0x20, 0x9a, 0x20,\n 0x9c, 0x20, 0x20, 0x9f, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,\n 0x20, 0x20, 0xaa, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,\n 0x20, 0xb5, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,\n 0xc0, 0xc1, 0xc2, 0xc3, 0xc4, 0xc5, 0xc6, 0xc7, 0xc8, 0xc9, 0xca, 0xcb,\n 0xcc, 0xcd, 0xce, 0xcf, 0xd0, 0xd1, 0xd2, 0xd3, 0xd4, 0xd5, 0xd6, 0x20,\n 0xd8, 0xd9, 0xda, 0xdb, 0xdc, 0xdd, 0xde, 0xdf, 0xe0, 0xe1, 0xe2, 0xe3,\n 0xe4, 0xe5, 0xe6, 0xe7, 0xe8, 0xe9, 0xea, 0xeb, 0xec, 0xed, 0xee, 0xef,\n 0x20, 0x20, 0x20, 0x20, 0xf4, 0x20, 0x20, 0x20, 0x20, 0xf9, 0x20, 0xfb,\n 0xfc, 0x20, 0x20, 0xff,\n ];\n }\n ngrams() {\n return [\n 0x20c7e1, 0x20c7e4, 0x20c8c7, 0x20dae1, 0x20dded, 0x20e1e1, 0x20e3e4,\n 0x20e6c7, 0xc720c7, 0xc7c120, 0xc7ca20, 0xc7d120, 0xc7e120, 0xc7e1c3,\n 0xc7e1c7, 0xc7e1c8, 0xc7e1ca, 0xc7e1cc, 0xc7e1cd, 0xc7e1cf, 0xc7e1d3,\n 0xc7e1da, 0xc7e1de, 0xc7e1e3, 0xc7e1e6, 0xc7e1ed, 0xc7e320, 0xc7e420,\n 0xc7e4ca, 0xc820c7, 0xc920c7, 0xc920dd, 0xc920e1, 0xc920e3, 0xc920e6,\n 0xca20c7, 0xcf20c7, 0xcfc920, 0xd120c7, 0xd1c920, 0xd320c7, 0xda20c7,\n 0xdae1ec, 0xdded20, 0xe120c7, 0xe1c920, 0xe1ec20, 0xe1ed20, 0xe320c7,\n 0xe3c720, 0xe3c920, 0xe3e420, 0xe420c7, 0xe520c7, 0xe5c720, 0xe6c7e1,\n 0xe6e420, 0xec20c7, 0xed20c7, 0xed20e3, 0xed20e6, 0xedc920, 0xedd120,\n 0xede420,\n ];\n }\n name() {\n return 'windows-1256';\n }\n language() {\n return 'ar';\n }\n}\nexports.windows_1256 = windows_1256;\nclass KOI8_R extends sbcs {\n byteMap() {\n return [\n 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,\n 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,\n 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,\n 0x20, 0x20, 0x20, 0x00, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,\n 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,\n 0x20, 0x20, 0x20, 0x20, 0x20, 0x61, 0x62, 0x63, 0x64, 0x65, 0x66, 0x67,\n 0x68, 0x69, 0x6a, 0x6b, 0x6c, 0x6d, 0x6e, 0x6f, 0x70, 0x71, 0x72, 0x73,\n 0x74, 0x75, 0x76, 0x77, 0x78, 0x79, 0x7a, 0x20, 0x20, 0x20, 0x20, 0x20,\n 0x20, 0x61, 0x62, 0x63, 0x64, 0x65, 0x66, 0x67, 0x68, 0x69, 0x6a, 0x6b,\n 0x6c, 0x6d, 0x6e, 0x6f, 0x70, 0x71, 0x72, 0x73, 0x74, 0x75, 0x76, 0x77,\n 0x78, 0x79, 0x7a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,\n 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,\n 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,\n 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0xa3, 0x20, 0x20, 0x20, 0x20,\n 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0xa3,\n 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,\n 0xc0, 0xc1, 0xc2, 0xc3, 0xc4, 0xc5, 0xc6, 0xc7, 0xc8, 0xc9, 0xca, 0xcb,\n 0xcc, 0xcd, 0xce, 0xcf, 0xd0, 0xd1, 0xd2, 0xd3, 0xd4, 0xd5, 0xd6, 0xd7,\n 0xd8, 0xd9, 0xda, 0xdb, 0xdc, 0xdd, 0xde, 0xdf, 0xc0, 0xc1, 0xc2, 0xc3,\n 0xc4, 0xc5, 0xc6, 0xc7, 0xc8, 0xc9, 0xca, 0xcb, 0xcc, 0xcd, 0xce, 0xcf,\n 0xd0, 0xd1, 0xd2, 0xd3, 0xd4, 0xd5, 0xd6, 0xd7, 0xd8, 0xd9, 0xda, 0xdb,\n 0xdc, 0xdd, 0xde, 0xdf,\n ];\n }\n ngrams() {\n return [\n 0x20c4cf, 0x20c920, 0x20cbc1, 0x20cbcf, 0x20cec1, 0x20cec5, 0x20cfc2,\n 0x20d0cf, 0x20d0d2, 0x20d2c1, 0x20d3cf, 0x20d3d4, 0x20d4cf, 0x20d720,\n 0x20d7cf, 0x20dac1, 0x20dcd4, 0x20ded4, 0xc1cec9, 0xc1d4d8, 0xc5ccd8,\n 0xc5cec9, 0xc5d3d4, 0xc5d420, 0xc7cf20, 0xc920d0, 0xc9c520, 0xc9c920,\n 0xc9d120, 0xccc5ce, 0xccc920, 0xccd8ce, 0xcec120, 0xcec520, 0xcec9c5,\n 0xcec9d1, 0xcecf20, 0xcecfd7, 0xcf20d0, 0xcf20d3, 0xcf20d7, 0xcfc7cf,\n 0xcfca20, 0xcfccd8, 0xcfcd20, 0xcfd3d4, 0xcfd720, 0xcfd7c1, 0xd0cfcc,\n 0xd0d2c5, 0xd0d2c9, 0xd0d2cf, 0xd2c1d7, 0xd2c5c4, 0xd3d120, 0xd3d4c1,\n 0xd3d4c9, 0xd3d4d7, 0xd4c5cc, 0xd4cf20, 0xd4cfd2, 0xd4d820, 0xd9c820,\n 0xded4cf,\n ];\n }\n name() {\n return 'KOI8-R';\n }\n language() {\n return 'ru';\n }\n}\nexports.KOI8_R = KOI8_R;\n//# sourceMappingURL=sbcs.js.map\n\n//# sourceURL=webpack://@microsoft/connected-workbooks/./node_modules/chardet/lib/encoding/sbcs.js?");
|
|
75
|
+
|
|
76
|
+
/***/ }),
|
|
77
|
+
|
|
78
|
+
/***/ "./node_modules/chardet/lib/encoding/unicode.js":
|
|
79
|
+
/*!******************************************************!*\
|
|
80
|
+
!*** ./node_modules/chardet/lib/encoding/unicode.js ***!
|
|
81
|
+
\******************************************************/
|
|
82
|
+
/***/ (function(__unused_webpack_module, exports, __webpack_require__) {
|
|
83
|
+
|
|
84
|
+
"use strict";
|
|
85
|
+
eval("\nvar __importDefault = (this && this.__importDefault) || function (mod) {\n return (mod && mod.__esModule) ? mod : { \"default\": mod };\n};\nObject.defineProperty(exports, \"__esModule\", ({ value: true }));\nexports.UTF_32LE = exports.UTF_32BE = exports.UTF_16LE = exports.UTF_16BE = void 0;\nconst match_1 = __importDefault(__webpack_require__(/*! ../match */ \"./node_modules/chardet/lib/match.js\"));\nclass UTF_16BE {\n name() {\n return 'UTF-16BE';\n }\n match(det) {\n const input = det.rawInput;\n if (input.length >= 2 &&\n (input[0] & 0xff) == 0xfe &&\n (input[1] & 0xff) == 0xff) {\n return (0, match_1.default)(det, this, 100);\n }\n return null;\n }\n}\nexports.UTF_16BE = UTF_16BE;\nclass UTF_16LE {\n name() {\n return 'UTF-16LE';\n }\n match(det) {\n const input = det.rawInput;\n if (input.length >= 2 &&\n (input[0] & 0xff) == 0xff &&\n (input[1] & 0xff) == 0xfe) {\n if (input.length >= 4 && input[2] == 0x00 && input[3] == 0x00) {\n return null;\n }\n return (0, match_1.default)(det, this, 100);\n }\n return null;\n }\n}\nexports.UTF_16LE = UTF_16LE;\nclass UTF_32 {\n name() {\n return 'UTF-32';\n }\n getChar(_input, _index) {\n return -1;\n }\n match(det) {\n let numValid = 0, numInvalid = 0, hasBOM = false, confidence = 0;\n const limit = (det.rawLen / 4) * 4;\n const input = det.rawInput;\n if (limit == 0) {\n return null;\n }\n if (this.getChar(input, 0) == 0x0000feff) {\n hasBOM = true;\n }\n for (let i = 0; i < limit; i += 4) {\n const ch = this.getChar(input, i);\n if (ch < 0 || ch >= 0x10ffff || (ch >= 0xd800 && ch <= 0xdfff)) {\n numInvalid += 1;\n }\n else {\n numValid += 1;\n }\n }\n if (hasBOM && numInvalid == 0) {\n confidence = 100;\n }\n else if (hasBOM && numValid > numInvalid * 10) {\n confidence = 80;\n }\n else if (numValid > 3 && numInvalid == 0) {\n confidence = 100;\n }\n else if (numValid > 0 && numInvalid == 0) {\n confidence = 80;\n }\n else if (numValid > numInvalid * 10) {\n confidence = 25;\n }\n return confidence == 0 ? null : (0, match_1.default)(det, this, confidence);\n }\n}\nclass UTF_32BE extends UTF_32 {\n name() {\n return 'UTF-32BE';\n }\n getChar(input, index) {\n return (((input[index + 0] & 0xff) << 24) |\n ((input[index + 1] & 0xff) << 16) |\n ((input[index + 2] & 0xff) << 8) |\n (input[index + 3] & 0xff));\n }\n}\nexports.UTF_32BE = UTF_32BE;\nclass UTF_32LE extends UTF_32 {\n name() {\n return 'UTF-32LE';\n }\n getChar(input, index) {\n return (((input[index + 3] & 0xff) << 24) |\n ((input[index + 2] & 0xff) << 16) |\n ((input[index + 1] & 0xff) << 8) |\n (input[index + 0] & 0xff));\n }\n}\nexports.UTF_32LE = UTF_32LE;\n//# sourceMappingURL=unicode.js.map\n\n//# sourceURL=webpack://@microsoft/connected-workbooks/./node_modules/chardet/lib/encoding/unicode.js?");
|
|
86
|
+
|
|
87
|
+
/***/ }),
|
|
88
|
+
|
|
89
|
+
/***/ "./node_modules/chardet/lib/encoding/utf8.js":
|
|
90
|
+
/*!***************************************************!*\
|
|
91
|
+
!*** ./node_modules/chardet/lib/encoding/utf8.js ***!
|
|
92
|
+
\***************************************************/
|
|
93
|
+
/***/ (function(__unused_webpack_module, exports, __webpack_require__) {
|
|
94
|
+
|
|
95
|
+
"use strict";
|
|
96
|
+
eval("\nvar __importDefault = (this && this.__importDefault) || function (mod) {\n return (mod && mod.__esModule) ? mod : { \"default\": mod };\n};\nObject.defineProperty(exports, \"__esModule\", ({ value: true }));\nconst match_1 = __importDefault(__webpack_require__(/*! ../match */ \"./node_modules/chardet/lib/match.js\"));\nclass Utf8 {\n name() {\n return 'UTF-8';\n }\n match(det) {\n let hasBOM = false, numValid = 0, numInvalid = 0, trailBytes = 0, confidence;\n const input = det.rawInput;\n if (det.rawLen >= 3 &&\n (input[0] & 0xff) == 0xef &&\n (input[1] & 0xff) == 0xbb &&\n (input[2] & 0xff) == 0xbf) {\n hasBOM = true;\n }\n for (let i = 0; i < det.rawLen; i++) {\n const b = input[i];\n if ((b & 0x80) == 0)\n continue;\n if ((b & 0x0e0) == 0x0c0) {\n trailBytes = 1;\n }\n else if ((b & 0x0f0) == 0x0e0) {\n trailBytes = 2;\n }\n else if ((b & 0x0f8) == 0xf0) {\n trailBytes = 3;\n }\n else {\n numInvalid++;\n if (numInvalid > 5)\n break;\n trailBytes = 0;\n }\n for (;;) {\n i++;\n if (i >= det.rawLen)\n break;\n if ((input[i] & 0xc0) != 0x080) {\n numInvalid++;\n break;\n }\n if (--trailBytes == 0) {\n numValid++;\n break;\n }\n }\n }\n confidence = 0;\n if (hasBOM && numInvalid == 0)\n confidence = 100;\n else if (hasBOM && numValid > numInvalid * 10)\n confidence = 80;\n else if (numValid > 3 && numInvalid == 0)\n confidence = 100;\n else if (numValid > 0 && numInvalid == 0)\n confidence = 80;\n else if (numValid == 0 && numInvalid == 0)\n confidence = 10;\n else if (numValid > numInvalid * 10)\n confidence = 25;\n else\n return null;\n return (0, match_1.default)(det, this, confidence);\n }\n}\nexports[\"default\"] = Utf8;\n//# sourceMappingURL=utf8.js.map\n\n//# sourceURL=webpack://@microsoft/connected-workbooks/./node_modules/chardet/lib/encoding/utf8.js?");
|
|
97
|
+
|
|
98
|
+
/***/ }),
|
|
99
|
+
|
|
100
|
+
/***/ "./node_modules/chardet/lib/fs/browser.js":
|
|
101
|
+
/*!************************************************!*\
|
|
102
|
+
!*** ./node_modules/chardet/lib/fs/browser.js ***!
|
|
103
|
+
\************************************************/
|
|
104
|
+
/***/ ((__unused_webpack_module, exports) => {
|
|
105
|
+
|
|
106
|
+
"use strict";
|
|
107
|
+
eval("\nObject.defineProperty(exports, \"__esModule\", ({ value: true }));\nexports[\"default\"] = () => {\n throw new Error('File system is not available');\n};\n//# sourceMappingURL=browser.js.map\n\n//# sourceURL=webpack://@microsoft/connected-workbooks/./node_modules/chardet/lib/fs/browser.js?");
|
|
108
|
+
|
|
109
|
+
/***/ }),
|
|
110
|
+
|
|
111
|
+
/***/ "./node_modules/chardet/lib/index.js":
|
|
112
|
+
/*!*******************************************!*\
|
|
113
|
+
!*** ./node_modules/chardet/lib/index.js ***!
|
|
114
|
+
\*******************************************/
|
|
115
|
+
/***/ (function(__unused_webpack_module, exports, __webpack_require__) {
|
|
116
|
+
|
|
117
|
+
"use strict";
|
|
118
|
+
eval("\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n var desc = Object.getOwnPropertyDescriptor(m, k);\n if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\n desc = { enumerable: true, get: function() { return m[k]; } };\n }\n Object.defineProperty(o, k2, desc);\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n}));\nvar __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\n}) : function(o, v) {\n o[\"default\"] = v;\n});\nvar __importStar = (this && this.__importStar) || function (mod) {\n if (mod && mod.__esModule) return mod;\n var result = {};\n if (mod != null) for (var k in mod) if (k !== \"default\" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\n __setModuleDefault(result, mod);\n return result;\n};\nvar __importDefault = (this && this.__importDefault) || function (mod) {\n return (mod && mod.__esModule) ? mod : { \"default\": mod };\n};\nObject.defineProperty(exports, \"__esModule\", ({ value: true }));\nexports.detectFileSync = exports.detectFile = exports.analyse = exports.detect = void 0;\nconst node_1 = __importDefault(__webpack_require__(/*! ./fs/node */ \"./node_modules/chardet/lib/fs/browser.js\"));\nconst ascii_1 = __importDefault(__webpack_require__(/*! ./encoding/ascii */ \"./node_modules/chardet/lib/encoding/ascii.js\"));\nconst utf8_1 = __importDefault(__webpack_require__(/*! ./encoding/utf8 */ \"./node_modules/chardet/lib/encoding/utf8.js\"));\nconst unicode = __importStar(__webpack_require__(/*! ./encoding/unicode */ \"./node_modules/chardet/lib/encoding/unicode.js\"));\nconst mbcs = __importStar(__webpack_require__(/*! ./encoding/mbcs */ \"./node_modules/chardet/lib/encoding/mbcs.js\"));\nconst sbcs = __importStar(__webpack_require__(/*! ./encoding/sbcs */ \"./node_modules/chardet/lib/encoding/sbcs.js\"));\nconst iso2022 = __importStar(__webpack_require__(/*! ./encoding/iso2022 */ \"./node_modules/chardet/lib/encoding/iso2022.js\"));\nconst utils_1 = __webpack_require__(/*! ./utils */ \"./node_modules/chardet/lib/utils.js\");\nconst recognisers = [\n new utf8_1.default(),\n new unicode.UTF_16BE(),\n new unicode.UTF_16LE(),\n new unicode.UTF_32BE(),\n new unicode.UTF_32LE(),\n new mbcs.sjis(),\n new mbcs.big5(),\n new mbcs.euc_jp(),\n new mbcs.euc_kr(),\n new mbcs.gb_18030(),\n new iso2022.ISO_2022_JP(),\n new iso2022.ISO_2022_KR(),\n new iso2022.ISO_2022_CN(),\n new sbcs.ISO_8859_1(),\n new sbcs.ISO_8859_2(),\n new sbcs.ISO_8859_5(),\n new sbcs.ISO_8859_6(),\n new sbcs.ISO_8859_7(),\n new sbcs.ISO_8859_8(),\n new sbcs.ISO_8859_9(),\n new sbcs.windows_1251(),\n new sbcs.windows_1256(),\n new sbcs.KOI8_R(),\n new ascii_1.default(),\n];\nconst detect = (buffer) => {\n const matches = (0, exports.analyse)(buffer);\n return matches.length > 0 ? matches[0].name : null;\n};\nexports.detect = detect;\nconst analyse = (buffer) => {\n if (!(0, utils_1.isByteArray)(buffer)) {\n throw new Error('Input must be a byte array, e.g. Buffer or Uint8Array');\n }\n const byteStats = [];\n for (let i = 0; i < 256; i++)\n byteStats[i] = 0;\n for (let i = buffer.length - 1; i >= 0; i--)\n byteStats[buffer[i] & 0x00ff]++;\n let c1Bytes = false;\n for (let i = 0x80; i <= 0x9f; i += 1) {\n if (byteStats[i] !== 0) {\n c1Bytes = true;\n break;\n }\n }\n const context = {\n byteStats,\n c1Bytes,\n rawInput: buffer,\n rawLen: buffer.length,\n inputBytes: buffer,\n inputLen: buffer.length,\n };\n const matches = recognisers\n .map((rec) => {\n return rec.match(context);\n })\n .filter((match) => {\n return !!match;\n })\n .sort((a, b) => {\n return b.confidence - a.confidence;\n });\n return matches;\n};\nexports.analyse = analyse;\nconst detectFile = (filepath, opts = {}) => new Promise((resolve, reject) => {\n let fd;\n const fs = (0, node_1.default)();\n const handler = (err, buffer) => {\n if (fd) {\n fs.closeSync(fd);\n }\n if (err) {\n reject(err);\n }\n else {\n resolve((0, exports.detect)(buffer));\n }\n };\n if (opts && opts.sampleSize) {\n fd = fs.openSync(filepath, 'r');\n const sample = Buffer.allocUnsafe(opts.sampleSize);\n fs.read(fd, sample, 0, opts.sampleSize, opts.offset, (err) => {\n handler(err, sample);\n });\n return;\n }\n fs.readFile(filepath, handler);\n});\nexports.detectFile = detectFile;\nconst detectFileSync = (filepath, opts = {}) => {\n const fs = (0, node_1.default)();\n if (opts && opts.sampleSize) {\n const fd = fs.openSync(filepath, 'r');\n const sample = Buffer.allocUnsafe(opts.sampleSize);\n fs.readSync(fd, sample, 0, opts.sampleSize, opts.offset);\n fs.closeSync(fd);\n return (0, exports.detect)(sample);\n }\n return (0, exports.detect)(fs.readFileSync(filepath));\n};\nexports.detectFileSync = detectFileSync;\nexports[\"default\"] = {\n analyse: exports.analyse,\n detect: exports.detect,\n detectFileSync: exports.detectFileSync,\n detectFile: exports.detectFile,\n};\n//# sourceMappingURL=index.js.map\n\n//# sourceURL=webpack://@microsoft/connected-workbooks/./node_modules/chardet/lib/index.js?");
|
|
119
|
+
|
|
120
|
+
/***/ }),
|
|
121
|
+
|
|
122
|
+
/***/ "./node_modules/chardet/lib/match.js":
|
|
123
|
+
/*!*******************************************!*\
|
|
124
|
+
!*** ./node_modules/chardet/lib/match.js ***!
|
|
125
|
+
\*******************************************/
|
|
126
|
+
/***/ ((__unused_webpack_module, exports) => {
|
|
127
|
+
|
|
128
|
+
"use strict";
|
|
129
|
+
eval("\nObject.defineProperty(exports, \"__esModule\", ({ value: true }));\nexports[\"default\"] = (ctx, rec, confidence) => ({\n confidence,\n name: rec.name(ctx),\n lang: rec.language ? rec.language() : undefined,\n});\n//# sourceMappingURL=match.js.map\n\n//# sourceURL=webpack://@microsoft/connected-workbooks/./node_modules/chardet/lib/match.js?");
|
|
130
|
+
|
|
131
|
+
/***/ }),
|
|
132
|
+
|
|
133
|
+
/***/ "./node_modules/chardet/lib/utils.js":
|
|
134
|
+
/*!*******************************************!*\
|
|
135
|
+
!*** ./node_modules/chardet/lib/utils.js ***!
|
|
136
|
+
\*******************************************/
|
|
137
|
+
/***/ ((__unused_webpack_module, exports) => {
|
|
138
|
+
|
|
139
|
+
"use strict";
|
|
140
|
+
eval("\nObject.defineProperty(exports, \"__esModule\", ({ value: true }));\nexports.isByteArray = void 0;\nconst isByteArray = (input) => {\n if (input == null || typeof input != 'object')\n return false;\n return isFinite(input.length) && input.length >= 0;\n};\nexports.isByteArray = isByteArray;\n//# sourceMappingURL=utils.js.map\n\n//# sourceURL=webpack://@microsoft/connected-workbooks/./node_modules/chardet/lib/utils.js?");
|
|
141
|
+
|
|
142
|
+
/***/ }),
|
|
143
|
+
|
|
34
144
|
/***/ "./node_modules/ieee754/index.js":
|
|
35
145
|
/*!***************************************!*\
|
|
36
146
|
!*** ./node_modules/ieee754/index.js ***!
|
|
@@ -55,10 +165,10 @@ eval("/*!\n\nJSZip v3.8.0 - A JavaScript class for generating and reading zip fi
|
|
|
55
165
|
/*!***************************!*\
|
|
56
166
|
!*** ./src/generators.ts ***!
|
|
57
167
|
\***************************/
|
|
58
|
-
/***/ ((__unused_webpack_module,
|
|
168
|
+
/***/ ((__unused_webpack_module, exports) => {
|
|
59
169
|
|
|
60
170
|
"use strict";
|
|
61
|
-
eval("
|
|
171
|
+
eval("\r\n// Copyright (c) Microsoft Corporation.\r\n// Licensed under the MIT license.\r\nObject.defineProperty(exports, \"__esModule\", ({ value: true }));\r\nexports.generateCustomXmlFilePath = exports.generateSingleQueryMashup = exports.generateMashupXMLTemplate = void 0;\r\nvar generateMashupXMLTemplate = function (base64) {\r\n return \"<?xml version=\\\"1.0\\\" encoding=\\\"utf-16\\\"?><DataMashup xmlns=\\\"http://schemas.microsoft.com/DataMashup\\\">\".concat(base64, \"</DataMashup>\");\r\n};\r\nexports.generateMashupXMLTemplate = generateMashupXMLTemplate;\r\nvar generateSingleQueryMashup = function (queryName, query) {\r\n return \"section Section1;\\n \\n shared #\\\"\".concat(queryName, \"\\\" = \\n \").concat(query, \";\");\r\n};\r\nexports.generateSingleQueryMashup = generateSingleQueryMashup;\r\nvar generateCustomXmlFilePath = function (i) { return \"customXml/item\".concat(i, \".xml\"); };\r\nexports.generateCustomXmlFilePath = generateCustomXmlFilePath;\r\n\n\n//# sourceURL=webpack://@microsoft/connected-workbooks/./src/generators.ts?");
|
|
62
172
|
|
|
63
173
|
/***/ }),
|
|
64
174
|
|
|
@@ -66,10 +176,10 @@ eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpac
|
|
|
66
176
|
/*!**********************!*\
|
|
67
177
|
!*** ./src/index.ts ***!
|
|
68
178
|
\**********************/
|
|
69
|
-
/***/ ((__unused_webpack_module,
|
|
179
|
+
/***/ (function(__unused_webpack_module, exports, __webpack_require__) {
|
|
70
180
|
|
|
71
181
|
"use strict";
|
|
72
|
-
eval("
|
|
182
|
+
eval("\r\n// Copyright (c) Microsoft Corporation.\r\n// Licensed under the MIT license.\r\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\r\n if (k2 === undefined) k2 = k;\r\n var desc = Object.getOwnPropertyDescriptor(m, k);\r\n if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\r\n desc = { enumerable: true, get: function() { return m[k]; } };\r\n }\r\n Object.defineProperty(o, k2, desc);\r\n}) : (function(o, m, k, k2) {\r\n if (k2 === undefined) k2 = k;\r\n o[k2] = m[k];\r\n}));\r\nvar __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {\r\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\r\n}) : function(o, v) {\r\n o[\"default\"] = v;\r\n});\r\nvar __importStar = (this && this.__importStar) || function (mod) {\r\n if (mod && mod.__esModule) return mod;\r\n var result = {};\r\n if (mod != null) for (var k in mod) if (k !== \"default\" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\r\n __setModuleDefault(result, mod);\r\n return result;\r\n};\r\nObject.defineProperty(exports, \"__esModule\", ({ value: true }));\r\nexports.workbookManager = exports.DataTypes = void 0;\r\nvar types_1 = __webpack_require__(/*! ./types */ \"./src/types.ts\");\r\nObject.defineProperty(exports, \"DataTypes\", ({ enumerable: true, get: function () { return types_1.DataTypes; } }));\r\nexports.workbookManager = __importStar(__webpack_require__(/*! ./workbookManager */ \"./src/workbookManager.ts\"));\r\n\n\n//# sourceURL=webpack://@microsoft/connected-workbooks/./src/index.ts?");
|
|
73
183
|
|
|
74
184
|
/***/ }),
|
|
75
185
|
|
|
@@ -77,10 +187,10 @@ eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpac
|
|
|
77
187
|
/*!**********************!*\
|
|
78
188
|
!*** ./src/types.ts ***!
|
|
79
189
|
\**********************/
|
|
80
|
-
/***/ ((__unused_webpack_module,
|
|
190
|
+
/***/ ((__unused_webpack_module, exports) => {
|
|
81
191
|
|
|
82
192
|
"use strict";
|
|
83
|
-
eval("
|
|
193
|
+
eval("\r\n// Copyright (c) Microsoft Corporation.\r\n// Licensed under the MIT license.\r\nObject.defineProperty(exports, \"__esModule\", ({ value: true }));\r\nexports.DocPropsAutoUpdatedElements = exports.DocPropsModifiableElements = exports.DataTypes = void 0;\r\nvar DataTypes;\r\n(function (DataTypes) {\r\n DataTypes[DataTypes[\"null\"] = 0] = \"null\";\r\n DataTypes[DataTypes[\"string\"] = 1] = \"string\";\r\n DataTypes[DataTypes[\"number\"] = 2] = \"number\";\r\n DataTypes[DataTypes[\"boolean\"] = 3] = \"boolean\";\r\n})(DataTypes = exports.DataTypes || (exports.DataTypes = {}));\r\nvar DocPropsModifiableElements;\r\n(function (DocPropsModifiableElements) {\r\n DocPropsModifiableElements[\"title\"] = \"dc:title\";\r\n DocPropsModifiableElements[\"subject\"] = \"dc:subject\";\r\n DocPropsModifiableElements[\"keywords\"] = \"cp:keywords\";\r\n DocPropsModifiableElements[\"createdBy\"] = \"dc:creator\";\r\n DocPropsModifiableElements[\"description\"] = \"dc:description\";\r\n DocPropsModifiableElements[\"lastModifiedBy\"] = \"cp:lastModifiedBy\";\r\n DocPropsModifiableElements[\"category\"] = \"cp:category\";\r\n DocPropsModifiableElements[\"revision\"] = \"cp:revision\";\r\n})(DocPropsModifiableElements = exports.DocPropsModifiableElements || (exports.DocPropsModifiableElements = {}));\r\nvar DocPropsAutoUpdatedElements;\r\n(function (DocPropsAutoUpdatedElements) {\r\n DocPropsAutoUpdatedElements[\"created\"] = \"dcterms:created\";\r\n DocPropsAutoUpdatedElements[\"modified\"] = \"dcterms:modified\";\r\n})(DocPropsAutoUpdatedElements = exports.DocPropsAutoUpdatedElements || (exports.DocPropsAutoUpdatedElements = {}));\r\n\n\n//# sourceURL=webpack://@microsoft/connected-workbooks/./src/types.ts?");
|
|
84
194
|
|
|
85
195
|
/***/ }),
|
|
86
196
|
|
|
@@ -88,10 +198,10 @@ eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpac
|
|
|
88
198
|
/*!*********************************!*\
|
|
89
199
|
!*** ./src/utils/arrayUtils.ts ***!
|
|
90
200
|
\*********************************/
|
|
91
|
-
/***/ ((__unused_webpack_module,
|
|
201
|
+
/***/ ((__unused_webpack_module, exports) => {
|
|
92
202
|
|
|
93
203
|
"use strict";
|
|
94
|
-
eval("
|
|
204
|
+
eval("\r\n// Copyright (c) Microsoft Corporation.\r\n// Licensed under the MIT license.\r\nObject.defineProperty(exports, \"__esModule\", ({ value: true }));\r\nexports.ArrayReader = void 0;\r\nvar ArrayReader = /** @class */ (function () {\r\n function ArrayReader(array) {\r\n this._array = array;\r\n this._position = 0;\r\n }\r\n ArrayReader.prototype.getInt32 = function () {\r\n var retVal = new DataView(this._array, this._position, 4).getInt32(0, true);\r\n this._position += 4;\r\n return retVal;\r\n };\r\n ArrayReader.prototype.getBytes = function (bytes) {\r\n var retVal = this._array.slice(this._position, bytes ? bytes + this._position : bytes);\r\n this._position += retVal.byteLength;\r\n return new Uint8Array(retVal);\r\n };\r\n ArrayReader.prototype.reset = function () {\r\n this._position = 0;\r\n };\r\n return ArrayReader;\r\n}());\r\nexports.ArrayReader = ArrayReader;\r\nfunction getInt32Buffer(val) {\r\n var packageSizeBuffer = new ArrayBuffer(4);\r\n new DataView(packageSizeBuffer).setInt32(0, val, true);\r\n return new Uint8Array(packageSizeBuffer);\r\n}\r\nfunction concatArrays() {\r\n var args = [];\r\n for (var _i = 0; _i < arguments.length; _i++) {\r\n args[_i] = arguments[_i];\r\n }\r\n var size = 0;\r\n args.forEach(function (arr) { return (size += arr.byteLength); });\r\n var retVal = new Uint8Array(size);\r\n var position = 0;\r\n args.forEach(function (arr) {\r\n retVal.set(arr, position);\r\n position += arr.byteLength;\r\n });\r\n return retVal;\r\n}\r\nexports[\"default\"] = {\r\n ArrayReader: ArrayReader,\r\n getInt32Buffer: getInt32Buffer,\r\n concatArrays: concatArrays,\r\n};\r\n\n\n//# sourceURL=webpack://@microsoft/connected-workbooks/./src/utils/arrayUtils.ts?");
|
|
95
205
|
|
|
96
206
|
/***/ }),
|
|
97
207
|
|
|
@@ -99,10 +209,10 @@ eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpac
|
|
|
99
209
|
/*!********************************!*\
|
|
100
210
|
!*** ./src/utils/constants.ts ***!
|
|
101
211
|
\********************************/
|
|
102
|
-
/***/ ((__unused_webpack_module,
|
|
212
|
+
/***/ ((__unused_webpack_module, exports) => {
|
|
103
213
|
|
|
104
214
|
"use strict";
|
|
105
|
-
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ BOM: () => (/* binding */ BOM),\n/* harmony export */ EmptyQueryNameErr: () => (/* binding */ EmptyQueryNameErr),\n/* harmony export */ InvalidColumnNameErr: () => (/* binding */ InvalidColumnNameErr),\n/* harmony export */ OFU: () => (/* binding */ OFU),\n/* harmony export */ QueryNameInvalidCharsErr: () => (/* binding */ QueryNameInvalidCharsErr),\n/* harmony export */ QueryNameMaxLengthErr: () => (/* binding */ QueryNameMaxLengthErr),\n/* harmony export */ URLS: () => (/* binding */ URLS),\n/* harmony export */ application: () => (/* binding */ application),\n/* harmony export */ arrayIsntMxNErr: () => (/* binding */ arrayIsntMxNErr),\n/* harmony export */ base64NotFoundErr: () => (/* binding */ base64NotFoundErr),\n/* harmony export */ blobFileType: () => (/* binding */ blobFileType),\n/* harmony export */ connectionsNotFoundErr: () => (/* binding */ connectionsNotFoundErr),\n/* harmony export */ connectionsXmlPath: () => (/* binding */ connectionsXmlPath),\n/* harmony export */ dataTypeKind: () => (/* binding */ dataTypeKind),\n/* harmony export */ defaults: () => (/* binding */ defaults),\n/* harmony export */ divider: () => (/* binding */ divider),\n/* harmony export */ docMetadataXmlPath: () => (/* binding */ docMetadataXmlPath),\n/* harmony export */ docPropsCoreXmlPath: () => (/* binding */ docPropsCoreXmlPath),\n/* harmony export */ docPropsRootElement: () => (/* binding */ docPropsRootElement),\n/* harmony export */ element: () => (/* binding */ element),\n/* harmony export */ elementAttributes: () => (/* binding */ elementAttributes),\n/* harmony export */ elementAttributesValues: () => (/* binding */ elementAttributesValues),\n/* harmony export */ emptyQueryMashupErr: () => (/* binding */ emptyQueryMashupErr),\n/* harmony export */ emptyValue: () => (/* binding */ emptyValue),\n/* harmony export */ falseStr: () => (/* binding */ falseStr),\n/* harmony export */ falseValue: () => (/* binding */ falseValue),\n/* harmony export */ formulaSectionNotFoundErr: () => (/* binding */ formulaSectionNotFoundErr),\n/* harmony export */ headerNotFoundErr: () => (/* binding */ headerNotFoundErr),\n/* harmony export */ headers: () => (/* binding */ headers),\n/* harmony export */ invalidDataTypeErr: () => (/* binding */ invalidDataTypeErr),\n/* harmony export */ invalidValueInColumnErr: () => (/* binding */ invalidValueInColumnErr),\n/* harmony export */ maxQueryLength: () => (/* binding */ maxQueryLength),\n/* harmony export */ pivotCachesPath: () => (/* binding */ pivotCachesPath),\n/* harmony export */ pivotCachesPathPrefix: () => (/* binding */ pivotCachesPathPrefix),\n/* harmony export */ promotedHeadersCannotBeUsedWithoutAdjustingColumnNamesErr: () => (/* binding */ promotedHeadersCannotBeUsedWithoutAdjustingColumnNamesErr),\n/* harmony export */ queryAndPivotTableNotFoundErr: () => (/* binding */ queryAndPivotTableNotFoundErr),\n/* harmony export */ queryConnectionNotFoundErr: () => (/* binding */ queryConnectionNotFoundErr),\n/* harmony export */ queryNameNotFoundErr: () => (/* binding */ queryNameNotFoundErr),\n/* harmony export */ queryTableNotFoundErr: () => (/* binding */ queryTableNotFoundErr),\n/* harmony export */ queryTableXmlPath: () => (/* binding */ queryTableXmlPath),\n/* harmony export */ queryTablesPath: () => (/* binding */ queryTablesPath),\n/* harmony export */ relsNotFoundErr: () => (/* binding */ relsNotFoundErr),\n/* harmony export */ relsXmlPath: () => (/* binding */ relsXmlPath),\n/* harmony export */ section1PathPrefix: () => (/* binding */ section1PathPrefix),\n/* harmony export */ section1mPath: () => (/* binding */ section1mPath),\n/* harmony export */ sharedStringsNotFoundErr: () => (/* binding */ sharedStringsNotFoundErr),\n/* harmony export */ sharedStringsXmlPath: () => (/* binding */ sharedStringsXmlPath),\n/* harmony export */ sheetsNotFoundErr: () => (/* binding */ sheetsNotFoundErr),\n/* harmony export */ sheetsXmlPath: () => (/* binding */ sheetsXmlPath),\n/* harmony export */ stylesNotFoundErr: () => (/* binding */ stylesNotFoundErr),\n/* harmony export */ tableNotFoundErr: () => (/* binding */ tableNotFoundErr),\n/* harmony export */ tableXmlPath: () => (/* binding */ tableXmlPath),\n/* harmony export */ templateWithInitialDataErr: () => (/* binding */ templateWithInitialDataErr),\n/* harmony export */ textResultType: () => (/* binding */ textResultType),\n/* harmony export */ trueStr: () => (/* binding */ trueStr),\n/* harmony export */ trueValue: () => (/* binding */ trueValue),\n/* harmony export */ uint8ArrayType: () => (/* binding */ uint8ArrayType),\n/* harmony export */ unexpectedErr: () => (/* binding */ unexpectedErr),\n/* harmony export */ workbookXmlPath: () => (/* binding */ workbookXmlPath),\n/* harmony export */ xmlTextResultType: () => (/* binding */ xmlTextResultType)\n/* harmony export */ });\n// Copyright (c) Microsoft Corporation.\r\n// Licensed under the MIT license.\r\nvar connectionsXmlPath = \"xl/connections.xml\";\r\nvar sharedStringsXmlPath = \"xl/sharedStrings.xml\";\r\nvar sheetsXmlPath = \"xl/worksheets/sheet1.xml\";\r\nvar tableXmlPath = \"xl/tables/table1.xml\";\r\nvar queryTableXmlPath = \"xl/queryTables/queryTable1.xml\";\r\nvar workbookXmlPath = \"xl/workbook.xml\";\r\nvar queryTablesPath = \"xl/queryTables/\";\r\nvar pivotCachesPath = \"xl/pivotCache/\";\r\nvar section1mPath = \"Formulas/Section1.m\";\r\nvar docPropsCoreXmlPath = \"docProps/core.xml\";\r\nvar relsXmlPath = \"_rels/.rels\";\r\nvar docMetadataXmlPath = \"docMetadata\";\r\nvar docPropsRootElement = \"cp:coreProperties\";\r\nvar sharedStringsNotFoundErr = \"SharedStrings were not found in template\";\r\nvar connectionsNotFoundErr = \"Connections were not found in template\";\r\nvar sheetsNotFoundErr = \"Sheets were not found in template\";\r\nvar base64NotFoundErr = \"Base64 was not found in template\";\r\nvar emptyQueryMashupErr = \"Query mashup is empty\";\r\nvar queryNameNotFoundErr = \"Query name was not found\";\r\nvar queryAndPivotTableNotFoundErr = \"No such query found in Query Table or Pivot Table found in given template\";\r\nvar queryConnectionNotFoundErr = \"No connection found for query\";\r\nvar formulaSectionNotFoundErr = \"Formula section wasn't found in template\";\r\nvar templateWithInitialDataErr = \"Cannot use a template file with initial data\";\r\nvar queryTableNotFoundErr = \"Query table wasn't found in template\";\r\nvar tableNotFoundErr = \"Table wasn't found in template\";\r\nvar invalidValueInColumnErr = \"Invalid cell value in column\";\r\nvar headerNotFoundErr = \"Invalid JSON file, header is missing\";\r\nvar invalidDataTypeErr = \"Invalid JSON file, invalid data type\";\r\nvar QueryNameMaxLengthErr = \"Query names are limited to 80 characters\";\r\nvar QueryNameInvalidCharsErr = 'Query names cannot contain periods or quotation marks. (. \")';\r\nvar EmptyQueryNameErr = \"Query name cannot be empty\";\r\nvar stylesNotFoundErr = \"Styles were not found in template\";\r\nvar InvalidColumnNameErr = \"Invalid column name\";\r\nvar promotedHeadersCannotBeUsedWithoutAdjustingColumnNamesErr = \"Headers cannot be promoted without adjusting column names\";\r\nvar unexpectedErr = \"Unexpected error\";\r\nvar arrayIsntMxNErr = \"Array isn't MxN\";\r\nvar relsNotFoundErr = \".rels were not found in template\";\r\nvar blobFileType = \"blob\";\r\nvar uint8ArrayType = \"uint8array\";\r\nvar application = \"application/xlsx\";\r\nvar textResultType = \"text\";\r\nvar xmlTextResultType = \"text/xml\";\r\nvar pivotCachesPathPrefix = \"pivotCacheDefinition\";\r\nvar trueValue = \"1\";\r\nvar falseValue = \"0\";\r\nvar emptyValue = \"\";\r\nvar section1PathPrefix = \"Section1/\";\r\nvar divider = \"/\";\r\nvar maxQueryLength = 80;\r\nvar trueStr = \"true\";\r\nvar falseStr = \"false\";\r\nvar BOM = \"\\ufeff\";\r\nvar element = {\r\n sharedStringTable: \"sst\",\r\n text: \"t\",\r\n sharedStringItem: \"si\",\r\n cellValue: \"v\",\r\n databaseProperties: \"dbPr\",\r\n queryTable: \"queryTable\",\r\n cacheSource: \"cacheSource\",\r\n item: \"Item\",\r\n items: \"Items\",\r\n itemPath: \"ItemPath\",\r\n itemType: \"ItemType\",\r\n itemLocation: \"ItemLocation\",\r\n entry: \"Entry\",\r\n stableEntries: \"StableEntries\",\r\n tableColumns: \"tableColumns\",\r\n tableColumn: \"tableColumn\",\r\n table: \"table\",\r\n autoFilter: \"autoFilter\",\r\n definedName: \"definedName\",\r\n queryTableFields: \"queryTableFields\",\r\n queryTableField: \"queryTableField\",\r\n queryTableRefresh: \"queryTableRefresh\",\r\n sheetData: \"sheetData\",\r\n row: \"row\",\r\n dimension: \"dimension\",\r\n selection: \"selection\",\r\n kindCell: \"c\",\r\n};\r\nvar elementAttributes = {\r\n connection: \"connection\",\r\n command: \"command\",\r\n refreshOnLoad: \"refreshOnLoad\",\r\n count: \"count\",\r\n uniqueCount: \"uniqueCount\",\r\n queryTable: \"queryTable\",\r\n connectionId: \"connectionId\",\r\n cacheSource: \"cacheSource\",\r\n name: \"name\",\r\n description: \"description\",\r\n id: \"id\",\r\n type: \"Type\",\r\n value: \"Value\",\r\n relationshipInfo: \"RelationshipInfoContainer\",\r\n resultType: \"ResultType\",\r\n fillColumnNames: \"FillColumnNames\",\r\n fillTarget: \"FillTarget\",\r\n fillLastUpdated: \"FillLastUpdated\",\r\n day: \"d\",\r\n uniqueName: \"uniqueName\",\r\n queryTableFieldId: \"queryTableFieldId\",\r\n reference: \"ref\",\r\n sqref: \"sqref\",\r\n tableColumnId: \"tableColumnId\",\r\n nextId: \"nextId\",\r\n row: \"r\",\r\n spans: \"spans\",\r\n x14acDyDescent: \"x14ac:dyDescent\",\r\n xr3uid: \"xr3:uid\",\r\n space: \"xml:space\",\r\n};\r\nvar dataTypeKind = {\r\n string: \"str\",\r\n number: \"1\",\r\n boolean: \"b\",\r\n};\r\nvar elementAttributesValues = {\r\n connectionName: function (queryName) { return \"Query - \".concat(queryName); },\r\n connectionDescription: function (queryName) { return \"Connection to the '\".concat(queryName, \"' query in the workbook.\"); },\r\n connection: function (queryName) { return \"Provider=Microsoft.Mashup.OleDb.1;Data Source=$Workbook$;Location=\\\"\".concat(queryName, \"\\\";\"); },\r\n connectionCommand: function (queryName) { return \"SELECT * FROM [\".concat(queryName, \"]\"); },\r\n tableResultType: function () { return \"sTable\"; },\r\n};\r\nvar defaults = {\r\n queryName: \"Query1\",\r\n sheetName: \"Sheet1\",\r\n columnName: \"Column\",\r\n};\r\nvar URLS = {\r\n PQ: [\r\n \"http://schemas.microsoft.com/DataMashup\",\r\n \"http://schemas.microsoft.com/DataExplorer\",\r\n \"http://schemas.microsoft.com/DataMashup/Temp\",\r\n \"http://schemas.microsoft.com/DataExplorer/Temp\",\r\n ],\r\n CONNECTED_WORKBOOK: \"http://schemas.microsoft.com/ConnectedWorkbook\",\r\n};\r\n// Content-Type header to indicate that the content is an Excel document\r\nvar headers = {\r\n \"Content-Type\": \"application/vnd.openxmlformats-officedocument.spreadsheetml.sheet\",\r\n};\r\nvar OFU = {\r\n ViewUrl: \"https://view.officeapps.live.com/op/view.aspx?src=http://connectedWorkbooks.excel/\",\r\n PostUrl: \"https://view.officeapps.live.com/op/viewpost.aspx?src=http://connectedWorkbooks.excel/\",\r\n allowTyping: \"AllowTyping\",\r\n};\r\n\n\n//# sourceURL=webpack://@microsoft/connected-workbooks/./src/utils/constants.ts?");
|
|
215
|
+
eval("\r\n// Copyright (c) Microsoft Corporation.\r\n// Licensed under the MIT license.\r\nObject.defineProperty(exports, \"__esModule\", ({ value: true }));\r\nexports.maxQueryLength = exports.divider = exports.section1PathPrefix = exports.emptyValue = exports.falseValue = exports.trueValue = exports.pivotCachesPathPrefix = exports.xmlTextResultType = exports.textResultType = exports.application = exports.uint8ArrayType = exports.blobFileType = exports.columnIndexOutOfRangeErr = exports.relsNotFoundErr = exports.arrayIsntMxNErr = exports.unexpectedErr = exports.promotedHeadersCannotBeUsedWithoutAdjustingColumnNamesErr = exports.InvalidColumnNameErr = exports.stylesNotFoundErr = exports.EmptyQueryNameErr = exports.QueryNameInvalidCharsErr = exports.QueryNameMaxLengthErr = exports.invalidDataTypeErr = exports.headerNotFoundErr = exports.invalidValueInColumnErr = exports.tableNotFoundErr = exports.queryTableNotFoundErr = exports.templateWithInitialDataErr = exports.formulaSectionNotFoundErr = exports.queryConnectionNotFoundErr = exports.queryAndPivotTableNotFoundErr = exports.queryNameNotFoundErr = exports.emptyQueryMashupErr = exports.base64NotFoundErr = exports.sheetsNotFoundErr = exports.connectionsNotFoundErr = exports.sharedStringsNotFoundErr = exports.docPropsRootElement = exports.docMetadataXmlPath = exports.relsXmlPath = exports.docPropsCoreXmlPath = exports.section1mPath = exports.pivotCachesPath = exports.queryTablesPath = exports.workbookXmlPath = exports.queryTableXmlPath = exports.tableXmlPath = exports.sheetsXmlPath = exports.sharedStringsXmlPath = exports.connectionsXmlPath = void 0;\r\nexports.OFU = exports.headers = exports.URLS = exports.defaults = exports.elementAttributesValues = exports.dataTypeKind = exports.elementAttributes = exports.element = exports.BOM = exports.falseStr = exports.trueStr = void 0;\r\nexports.connectionsXmlPath = \"xl/connections.xml\";\r\nexports.sharedStringsXmlPath = \"xl/sharedStrings.xml\";\r\nexports.sheetsXmlPath = \"xl/worksheets/sheet1.xml\";\r\nexports.tableXmlPath = \"xl/tables/table1.xml\";\r\nexports.queryTableXmlPath = \"xl/queryTables/queryTable1.xml\";\r\nexports.workbookXmlPath = \"xl/workbook.xml\";\r\nexports.queryTablesPath = \"xl/queryTables/\";\r\nexports.pivotCachesPath = \"xl/pivotCache/\";\r\nexports.section1mPath = \"Formulas/Section1.m\";\r\nexports.docPropsCoreXmlPath = \"docProps/core.xml\";\r\nexports.relsXmlPath = \"_rels/.rels\";\r\nexports.docMetadataXmlPath = \"docMetadata\";\r\nexports.docPropsRootElement = \"cp:coreProperties\";\r\nexports.sharedStringsNotFoundErr = \"SharedStrings were not found in template\";\r\nexports.connectionsNotFoundErr = \"Connections were not found in template\";\r\nexports.sheetsNotFoundErr = \"Sheets were not found in template\";\r\nexports.base64NotFoundErr = \"Base64 was not found in template\";\r\nexports.emptyQueryMashupErr = \"Query mashup is empty\";\r\nexports.queryNameNotFoundErr = \"Query name was not found\";\r\nexports.queryAndPivotTableNotFoundErr = \"No such query found in Query Table or Pivot Table found in given template\";\r\nexports.queryConnectionNotFoundErr = \"No connection found for query\";\r\nexports.formulaSectionNotFoundErr = \"Formula section wasn't found in template\";\r\nexports.templateWithInitialDataErr = \"Cannot use a template file with initial data\";\r\nexports.queryTableNotFoundErr = \"Query table wasn't found in template\";\r\nexports.tableNotFoundErr = \"Table wasn't found in template\";\r\nexports.invalidValueInColumnErr = \"Invalid cell value in column\";\r\nexports.headerNotFoundErr = \"Invalid JSON file, header is missing\";\r\nexports.invalidDataTypeErr = \"Invalid JSON file, invalid data type\";\r\nexports.QueryNameMaxLengthErr = \"Query names are limited to 80 characters\";\r\nexports.QueryNameInvalidCharsErr = 'Query names cannot contain periods or quotation marks. (. \")';\r\nexports.EmptyQueryNameErr = \"Query name cannot be empty\";\r\nexports.stylesNotFoundErr = \"Styles were not found in template\";\r\nexports.InvalidColumnNameErr = \"Invalid column name\";\r\nexports.promotedHeadersCannotBeUsedWithoutAdjustingColumnNamesErr = \"Headers cannot be promoted without adjusting column names\";\r\nexports.unexpectedErr = \"Unexpected error\";\r\nexports.arrayIsntMxNErr = \"Array isn't MxN\";\r\nexports.relsNotFoundErr = \".rels were not found in template\";\r\nexports.columnIndexOutOfRangeErr = \"Column index out of range\";\r\nexports.blobFileType = \"blob\";\r\nexports.uint8ArrayType = \"uint8array\";\r\nexports.application = \"application/xlsx\";\r\nexports.textResultType = \"text\";\r\nexports.xmlTextResultType = \"text/xml\";\r\nexports.pivotCachesPathPrefix = \"pivotCacheDefinition\";\r\nexports.trueValue = \"1\";\r\nexports.falseValue = \"0\";\r\nexports.emptyValue = \"\";\r\nexports.section1PathPrefix = \"Section1/\";\r\nexports.divider = \"/\";\r\nexports.maxQueryLength = 80;\r\nexports.trueStr = \"true\";\r\nexports.falseStr = \"false\";\r\nexports.BOM = \"\\ufeff\";\r\nexports.element = {\r\n sharedStringTable: \"sst\",\r\n text: \"t\",\r\n sharedStringItem: \"si\",\r\n cellValue: \"v\",\r\n databaseProperties: \"dbPr\",\r\n queryTable: \"queryTable\",\r\n cacheSource: \"cacheSource\",\r\n item: \"Item\",\r\n items: \"Items\",\r\n itemPath: \"ItemPath\",\r\n itemType: \"ItemType\",\r\n itemLocation: \"ItemLocation\",\r\n entry: \"Entry\",\r\n stableEntries: \"StableEntries\",\r\n tableColumns: \"tableColumns\",\r\n tableColumn: \"tableColumn\",\r\n table: \"table\",\r\n autoFilter: \"autoFilter\",\r\n definedName: \"definedName\",\r\n queryTableFields: \"queryTableFields\",\r\n queryTableField: \"queryTableField\",\r\n queryTableRefresh: \"queryTableRefresh\",\r\n sheetData: \"sheetData\",\r\n row: \"row\",\r\n dimension: \"dimension\",\r\n selection: \"selection\",\r\n kindCell: \"c\",\r\n};\r\nexports.elementAttributes = {\r\n connection: \"connection\",\r\n command: \"command\",\r\n refreshOnLoad: \"refreshOnLoad\",\r\n count: \"count\",\r\n uniqueCount: \"uniqueCount\",\r\n queryTable: \"queryTable\",\r\n connectionId: \"connectionId\",\r\n cacheSource: \"cacheSource\",\r\n name: \"name\",\r\n description: \"description\",\r\n id: \"id\",\r\n type: \"Type\",\r\n value: \"Value\",\r\n relationshipInfo: \"RelationshipInfoContainer\",\r\n resultType: \"ResultType\",\r\n fillColumnNames: \"FillColumnNames\",\r\n fillTarget: \"FillTarget\",\r\n fillLastUpdated: \"FillLastUpdated\",\r\n day: \"d\",\r\n uniqueName: \"uniqueName\",\r\n queryTableFieldId: \"queryTableFieldId\",\r\n reference: \"ref\",\r\n sqref: \"sqref\",\r\n tableColumnId: \"tableColumnId\",\r\n nextId: \"nextId\",\r\n row: \"r\",\r\n spans: \"spans\",\r\n x14acDyDescent: \"x14ac:dyDescent\",\r\n xr3uid: \"xr3:uid\",\r\n space: \"xml:space\",\r\n};\r\nexports.dataTypeKind = {\r\n string: \"str\",\r\n number: \"1\",\r\n boolean: \"b\",\r\n};\r\nexports.elementAttributesValues = {\r\n connectionName: function (queryName) { return \"Query - \".concat(queryName); },\r\n connectionDescription: function (queryName) { return \"Connection to the '\".concat(queryName, \"' query in the workbook.\"); },\r\n connection: function (queryName) { return \"Provider=Microsoft.Mashup.OleDb.1;Data Source=$Workbook$;Location=\\\"\".concat(queryName, \"\\\";\"); },\r\n connectionCommand: function (queryName) { return \"SELECT * FROM [\".concat(queryName, \"]\"); },\r\n tableResultType: function () { return \"sTable\"; },\r\n};\r\nexports.defaults = {\r\n queryName: \"Query1\",\r\n sheetName: \"Sheet1\",\r\n columnName: \"Column\",\r\n};\r\nexports.URLS = {\r\n PQ: [\r\n \"http://schemas.microsoft.com/DataMashup\",\r\n \"http://schemas.microsoft.com/DataExplorer\",\r\n \"http://schemas.microsoft.com/DataMashup/Temp\",\r\n \"http://schemas.microsoft.com/DataExplorer/Temp\",\r\n ],\r\n CONNECTED_WORKBOOK: \"http://schemas.microsoft.com/ConnectedWorkbook\",\r\n};\r\n// Content-Type header to indicate that the content is an Excel document\r\nexports.headers = {\r\n \"Content-Type\": \"application/vnd.openxmlformats-officedocument.spreadsheetml.sheet\",\r\n};\r\nexports.OFU = {\r\n ViewUrl: \"https://view.officeapps.live.com/op/view.aspx?src=http://connectedWorkbooks.excel/\",\r\n PostUrl: \"https://view.officeapps.live.com/op/viewpost.aspx?src=http://connectedWorkbooks.excel/\",\r\n allowTyping: \"AllowTyping\",\r\n};\r\n\n\n//# sourceURL=webpack://@microsoft/connected-workbooks/./src/utils/constants.ts?");
|
|
106
216
|
|
|
107
217
|
/***/ }),
|
|
108
218
|
|
|
@@ -110,10 +220,10 @@ eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpac
|
|
|
110
220
|
/*!************************************!*\
|
|
111
221
|
!*** ./src/utils/documentUtils.ts ***!
|
|
112
222
|
\************************************/
|
|
113
|
-
/***/ ((__unused_webpack_module,
|
|
223
|
+
/***/ (function(__unused_webpack_module, exports, __webpack_require__) {
|
|
114
224
|
|
|
115
225
|
"use strict";
|
|
116
|
-
eval("
|
|
226
|
+
eval("\r\n// Copyright (c) Microsoft Corporation.\r\n// Licensed under the MIT license.\r\nvar __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {\r\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\r\n return new (P || (P = Promise))(function (resolve, reject) {\r\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\r\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\r\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\r\n step((generator = generator.apply(thisArg, _arguments || [])).next());\r\n });\r\n};\r\nvar __generator = (this && this.__generator) || function (thisArg, body) {\r\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\r\n return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\r\n function verb(n) { return function (v) { return step([n, v]); }; }\r\n function step(op) {\r\n if (f) throw new TypeError(\"Generator is already executing.\");\r\n while (g && (g = 0, op[0] && (_ = 0)), _) try {\r\n if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\r\n if (y = 0, t) op = [op[0] & 2, t.value];\r\n switch (op[0]) {\r\n case 0: case 1: t = op; break;\r\n case 4: _.label++; return { value: op[1], done: false };\r\n case 5: _.label++; y = op[1]; op = [0]; continue;\r\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\r\n default:\r\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\r\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\r\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\r\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\r\n if (t[2]) _.ops.pop();\r\n _.trys.pop(); continue;\r\n }\r\n op = body.call(thisArg, _);\r\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\r\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\r\n }\r\n};\r\nObject.defineProperty(exports, \"__esModule\", ({ value: true }));\r\nvar constants_1 = __webpack_require__(/*! ./constants */ \"./src/utils/constants.ts\");\r\nvar types_1 = __webpack_require__(/*! ../types */ \"./src/types.ts\");\r\nvar xmldom_qsa_1 = __webpack_require__(/*! xmldom-qsa */ \"./node_modules/xmldom-qsa/lib/index.js\");\r\nvar createOrUpdateProperty = function (doc, parent, property, value) {\r\n if (value === undefined) {\r\n return;\r\n }\r\n var elements = parent.getElementsByTagName(property);\r\n if ((elements === null || elements === void 0 ? void 0 : elements.length) === 0) {\r\n var newElement = doc.createElement(property);\r\n newElement.textContent = value;\r\n parent.appendChild(newElement);\r\n }\r\n else if (elements.length > 1) {\r\n throw new Error(\"Invalid DocProps core.xml, multiple \".concat(property, \" elements\"));\r\n }\r\n else if ((elements === null || elements === void 0 ? void 0 : elements.length) > 0) {\r\n elements[0].textContent = value;\r\n }\r\n};\r\nvar getDocPropsProperties = function (zip) { return __awaiter(void 0, void 0, void 0, function () {\r\n var docPropsCoreXmlString, parser, doc, properties;\r\n var _a;\r\n return __generator(this, function (_b) {\r\n switch (_b.label) {\r\n case 0: return [4 /*yield*/, ((_a = zip.file(constants_1.docPropsCoreXmlPath)) === null || _a === void 0 ? void 0 : _a.async(constants_1.textResultType))];\r\n case 1:\r\n docPropsCoreXmlString = _b.sent();\r\n if (docPropsCoreXmlString === undefined) {\r\n throw new Error(\"DocProps core.xml was not found in template\");\r\n }\r\n parser = new xmldom_qsa_1.DOMParser();\r\n doc = parser.parseFromString(docPropsCoreXmlString, constants_1.xmlTextResultType);\r\n properties = doc.getElementsByTagName(constants_1.docPropsRootElement).item(0);\r\n if (properties === null) {\r\n throw new Error(\"Invalid DocProps core.xml\");\r\n }\r\n return [2 /*return*/, { doc: doc, properties: properties }];\r\n }\r\n });\r\n}); };\r\nvar getCellReferenceAbsolute = function (col, row) {\r\n return \"$\" + convertToExcelColumn(col) + \"$\" + row.toString();\r\n};\r\nvar getCellReferenceRelative = function (col, row) {\r\n return convertToExcelColumn(col) + row.toString();\r\n};\r\nvar convertToExcelColumn = function (index) {\r\n if (index >= 16384) {\r\n throw new Error(constants_1.columnIndexOutOfRangeErr);\r\n }\r\n var columnStr = \"\";\r\n var base = 26; // number of letters in the alphabet\r\n while (index >= 0) {\r\n var remainder = index % base;\r\n columnStr = String.fromCharCode(remainder + 65) + columnStr; // ASCII 'A' is 65\r\n index = Math.floor(index / base) - 1;\r\n }\r\n return columnStr;\r\n};\r\nvar getTableReference = function (numberOfCols, numberOfRows) {\r\n return \"A1:\".concat(getCellReferenceRelative(numberOfCols, numberOfRows));\r\n};\r\nvar createCellElement = function (doc, colIndex, rowIndex, data) {\r\n var cell = doc.createElementNS(doc.documentElement.namespaceURI, constants_1.element.kindCell);\r\n cell.setAttribute(constants_1.elementAttributes.row, getCellReferenceRelative(colIndex, rowIndex + 1));\r\n var cellData = doc.createElementNS(doc.documentElement.namespaceURI, constants_1.element.cellValue);\r\n updateCellData(data, cell, cellData, rowIndex === 0);\r\n cell.appendChild(cellData);\r\n return cell;\r\n};\r\nvar updateCellData = function (data, cell, cellData, rowHeader) {\r\n switch (resolveType(data, rowHeader)) {\r\n case types_1.DataTypes.string:\r\n cell.setAttribute(constants_1.element.text, constants_1.dataTypeKind.string);\r\n break;\r\n case types_1.DataTypes.number:\r\n cell.setAttribute(constants_1.element.text, constants_1.dataTypeKind.number);\r\n break;\r\n case types_1.DataTypes.boolean:\r\n cell.setAttribute(constants_1.element.text, constants_1.dataTypeKind.boolean);\r\n break;\r\n }\r\n if (data.startsWith(\" \") || data.endsWith(\" \")) {\r\n cellData.setAttribute(constants_1.elementAttributes.space, \"preserve\");\r\n }\r\n cellData.textContent = data;\r\n};\r\nvar resolveType = function (originalData, rowHeader) {\r\n var data = originalData;\r\n if (rowHeader || data.trim() === \"\") {\r\n // Headers and whitespace should be string by default.\r\n return types_1.DataTypes.string;\r\n }\r\n var dataType = isNaN(Number(data)) ? types_1.DataTypes.string : types_1.DataTypes.number;\r\n if (dataType == types_1.DataTypes.string) {\r\n if (data.trim() == constants_1.trueStr || data.trim() == constants_1.falseStr) {\r\n dataType = types_1.DataTypes.boolean;\r\n }\r\n }\r\n return dataType;\r\n};\r\nexports[\"default\"] = {\r\n createOrUpdateProperty: createOrUpdateProperty,\r\n getDocPropsProperties: getDocPropsProperties,\r\n getCellReferenceRelative: getCellReferenceRelative,\r\n getCellReferenceAbsolute: getCellReferenceAbsolute,\r\n createCell: createCellElement,\r\n getTableReference: getTableReference,\r\n updateCellData: updateCellData,\r\n resolveType: resolveType,\r\n convertToExcelColumn: convertToExcelColumn,\r\n};\r\n\n\n//# sourceURL=webpack://@microsoft/connected-workbooks/./src/utils/documentUtils.ts?");
|
|
117
227
|
|
|
118
228
|
/***/ }),
|
|
119
229
|
|
|
@@ -121,10 +231,10 @@ eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpac
|
|
|
121
231
|
/*!********************************!*\
|
|
122
232
|
!*** ./src/utils/gridUtils.ts ***!
|
|
123
233
|
\********************************/
|
|
124
|
-
/***/ ((__unused_webpack_module,
|
|
234
|
+
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {
|
|
125
235
|
|
|
126
236
|
"use strict";
|
|
127
|
-
eval("
|
|
237
|
+
eval("\r\n// Copyright (c) Microsoft Corporation.\r\n// Licensed under the MIT license.\r\nObject.defineProperty(exports, \"__esModule\", ({ value: true }));\r\nvar constants_1 = __webpack_require__(/*! ../utils/constants */ \"./src/utils/constants.ts\");\r\nvar parseToTableData = function (grid) {\r\n var _a, _b, _c, _d;\r\n if (grid === null || grid === undefined) {\r\n grid = { data: [] };\r\n }\r\n if (grid.data === null || grid.data === undefined) {\r\n grid.data = [];\r\n }\r\n var mergedGrid = {\r\n config: {\r\n promoteHeaders: (_b = (_a = grid.config) === null || _a === void 0 ? void 0 : _a.promoteHeaders) !== null && _b !== void 0 ? _b : false,\r\n adjustColumnNames: (_d = (_c = grid.config) === null || _c === void 0 ? void 0 : _c.adjustColumnNames) !== null && _d !== void 0 ? _d : true,\r\n },\r\n data: grid.data.map(function (row) { return row.map(function (value) { var _a; return (_a = value === null || value === void 0 ? void 0 : value.toString()) !== null && _a !== void 0 ? _a : \"\"; }); }),\r\n };\r\n correctGrid(mergedGrid);\r\n validateGrid(mergedGrid);\r\n var columnNames = [];\r\n if (mergedGrid.config.promoteHeaders && mergedGrid.config.adjustColumnNames) {\r\n columnNames = getAdjustedColumnNames(mergedGrid.data.shift());\r\n }\r\n else if (mergedGrid.config.promoteHeaders && !mergedGrid.config.adjustColumnNames) {\r\n // eslint-disable-next-line @typescript-eslint/no-non-null-assertion\r\n columnNames = mergedGrid.data.shift();\r\n }\r\n else {\r\n columnNames = Array.from({ length: mergedGrid.data[0].length }, function (_, index) { return \"\".concat(constants_1.defaults.columnName, \" \").concat(index + 1); });\r\n }\r\n return { columnNames: columnNames, rows: mergedGrid.data };\r\n};\r\nvar correctGrid = function (grid) {\r\n if (grid.data.length === 0) {\r\n // empty grid fix\r\n grid.config.promoteHeaders = false;\r\n grid.data.push([\"\"]);\r\n return;\r\n }\r\n var getEmptyArray = function (n) { return Array.from({ length: n }, function () { return \"\"; }); };\r\n if (grid.data[0].length === 0) {\r\n grid.data[0] = [\"\"];\r\n }\r\n // replace empty rows\r\n grid.data.forEach(function (row, index) {\r\n if (row.length === 0) {\r\n grid.data[index] = getEmptyArray(grid.data[0].length);\r\n }\r\n });\r\n if (grid.config.promoteHeaders && grid.data.length === 1) {\r\n // table in Excel should have at least 2 rows\r\n grid.data.push(getEmptyArray(grid.data[0].length));\r\n }\r\n};\r\n/*\r\n * Validates the grid, throws an error if the grid is invalid.\r\n * A valid grid has:\r\n * - MxN structure.\r\n * - If promoteHeaders is true - has at least 1 row, and in case adjustColumnNames is false, first row is unique and non empty.\r\n */\r\nvar validateGrid = function (grid) {\r\n validateDataArrayDimensions(grid.data);\r\n if (grid.config.promoteHeaders && grid.config.adjustColumnNames === false && !validateUniqueAndValidDataArray(grid.data[0])) {\r\n throw new Error(constants_1.promotedHeadersCannotBeUsedWithoutAdjustingColumnNamesErr);\r\n }\r\n};\r\nvar validateDataArrayDimensions = function (arr) {\r\n if (arr.length === 0 || arr[0].length === 0) {\r\n throw new Error(constants_1.unexpectedErr);\r\n }\r\n if (!arr.every(function (innerArr) { return innerArr.length === arr[0].length; })) {\r\n throw new Error(constants_1.arrayIsntMxNErr);\r\n }\r\n};\r\nvar validateUniqueAndValidDataArray = function (arr) {\r\n if (arr.some(function (element) { return element === \"\"; })) {\r\n return false; // Array contains empty elements\r\n }\r\n var uniqueSet = new Set(arr);\r\n return uniqueSet.size === arr.length;\r\n};\r\nvar getAdjustedColumnNames = function (columnNames) {\r\n if (columnNames === undefined) {\r\n throw new Error(constants_1.unexpectedErr);\r\n }\r\n var i = 1;\r\n // replace empty column names with default names, can still conflict if columns exist, but we handle that later\r\n columnNames = columnNames.map(function (columnName) { return columnName || \"\".concat(constants_1.defaults.columnName, \" \").concat(i++); });\r\n var uniqueNames = new Set();\r\n return columnNames.map(function (name) {\r\n var uniqueName = name;\r\n i = 1;\r\n while (uniqueNames.has(uniqueName)) {\r\n uniqueName = \"\".concat(name, \" (\").concat(i++, \")\");\r\n }\r\n uniqueNames.add(uniqueName);\r\n return uniqueName;\r\n });\r\n};\r\nexports[\"default\"] = { parseToTableData: parseToTableData };\r\n\n\n//# sourceURL=webpack://@microsoft/connected-workbooks/./src/utils/gridUtils.ts?");
|
|
128
238
|
|
|
129
239
|
/***/ }),
|
|
130
240
|
|
|
@@ -132,10 +242,10 @@ eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpac
|
|
|
132
242
|
/*!********************************!*\
|
|
133
243
|
!*** ./src/utils/htmlUtils.ts ***!
|
|
134
244
|
\********************************/
|
|
135
|
-
/***/ ((__unused_webpack_module,
|
|
245
|
+
/***/ ((__unused_webpack_module, exports) => {
|
|
136
246
|
|
|
137
247
|
"use strict";
|
|
138
|
-
eval("
|
|
248
|
+
eval("\r\n// Copyright (c) Microsoft Corporation.\r\n// Licensed under the MIT license.\r\nObject.defineProperty(exports, \"__esModule\", ({ value: true }));\r\nvar extractTableValues = function (table) {\r\n var rows = [];\r\n // Extract values from each row\r\n for (var i = 0; i < table.rows.length; i++) {\r\n var row = table.rows[i];\r\n var rowData = [];\r\n for (var j = 0; j < row.cells.length; j++) {\r\n var cell = row.cells[j];\r\n rowData.push(cell.textContent || \"\");\r\n }\r\n rows.push(rowData);\r\n }\r\n return rows;\r\n};\r\nexports[\"default\"] = { extractTableValues: extractTableValues };\r\n\n\n//# sourceURL=webpack://@microsoft/connected-workbooks/./src/utils/htmlUtils.ts?");
|
|
139
249
|
|
|
140
250
|
/***/ }),
|
|
141
251
|
|
|
@@ -143,10 +253,10 @@ eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpac
|
|
|
143
253
|
/*!****************************!*\
|
|
144
254
|
!*** ./src/utils/index.ts ***!
|
|
145
255
|
\****************************/
|
|
146
|
-
/***/ ((__unused_webpack_module,
|
|
256
|
+
/***/ (function(__unused_webpack_module, exports, __webpack_require__) {
|
|
147
257
|
|
|
148
258
|
"use strict";
|
|
149
|
-
eval("
|
|
259
|
+
eval("\r\n// Copyright (c) Microsoft Corporation.\r\n// Licensed under the MIT license.\r\nvar __importDefault = (this && this.__importDefault) || function (mod) {\r\n return (mod && mod.__esModule) ? mod : { \"default\": mod };\r\n};\r\nObject.defineProperty(exports, \"__esModule\", ({ value: true }));\r\nexports.gridUtils = exports.htmlUtils = exports.tableUtils = exports.xmlInnerPartsUtils = exports.xmlPartsUtils = exports.documentUtils = exports.arrayUtils = exports.pqUtils = void 0;\r\nvar pqUtils_1 = __webpack_require__(/*! ./pqUtils */ \"./src/utils/pqUtils.ts\");\r\nObject.defineProperty(exports, \"pqUtils\", ({ enumerable: true, get: function () { return __importDefault(pqUtils_1).default; } }));\r\nvar arrayUtils_1 = __webpack_require__(/*! ./arrayUtils */ \"./src/utils/arrayUtils.ts\");\r\nObject.defineProperty(exports, \"arrayUtils\", ({ enumerable: true, get: function () { return __importDefault(arrayUtils_1).default; } }));\r\nvar documentUtils_1 = __webpack_require__(/*! ./documentUtils */ \"./src/utils/documentUtils.ts\");\r\nObject.defineProperty(exports, \"documentUtils\", ({ enumerable: true, get: function () { return __importDefault(documentUtils_1).default; } }));\r\nvar xmlPartsUtils_1 = __webpack_require__(/*! ./xmlPartsUtils */ \"./src/utils/xmlPartsUtils.ts\");\r\nObject.defineProperty(exports, \"xmlPartsUtils\", ({ enumerable: true, get: function () { return __importDefault(xmlPartsUtils_1).default; } }));\r\nvar xmlInnerPartsUtils_1 = __webpack_require__(/*! ./xmlInnerPartsUtils */ \"./src/utils/xmlInnerPartsUtils.ts\");\r\nObject.defineProperty(exports, \"xmlInnerPartsUtils\", ({ enumerable: true, get: function () { return __importDefault(xmlInnerPartsUtils_1).default; } }));\r\nvar tableUtils_1 = __webpack_require__(/*! ./tableUtils */ \"./src/utils/tableUtils.ts\");\r\nObject.defineProperty(exports, \"tableUtils\", ({ enumerable: true, get: function () { return __importDefault(tableUtils_1).default; } }));\r\nvar htmlUtils_1 = __webpack_require__(/*! ./htmlUtils */ \"./src/utils/htmlUtils.ts\");\r\nObject.defineProperty(exports, \"htmlUtils\", ({ enumerable: true, get: function () { return __importDefault(htmlUtils_1).default; } }));\r\nvar gridUtils_1 = __webpack_require__(/*! ./gridUtils */ \"./src/utils/gridUtils.ts\");\r\nObject.defineProperty(exports, \"gridUtils\", ({ enumerable: true, get: function () { return __importDefault(gridUtils_1).default; } }));\r\n\n\n//# sourceURL=webpack://@microsoft/connected-workbooks/./src/utils/index.ts?");
|
|
150
260
|
|
|
151
261
|
/***/ }),
|
|
152
262
|
|
|
@@ -154,10 +264,10 @@ eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpac
|
|
|
154
264
|
/*!*******************************************!*\
|
|
155
265
|
!*** ./src/utils/mashupDocumentParser.ts ***!
|
|
156
266
|
\*******************************************/
|
|
157
|
-
/***/ ((__unused_webpack_module,
|
|
267
|
+
/***/ (function(__unused_webpack_module, exports, __webpack_require__) {
|
|
158
268
|
|
|
159
269
|
"use strict";
|
|
160
|
-
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ editSingleQueryMetadata: () => (/* binding */ editSingleQueryMetadata),\n/* harmony export */ getPackageComponents: () => (/* binding */ getPackageComponents),\n/* harmony export */ replaceSingleQuery: () => (/* binding */ replaceSingleQuery)\n/* harmony export */ });\n/* harmony import */ var base64_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! base64-js */ \"./node_modules/base64-js/index.js\");\n/* harmony import */ var jszip__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! jszip */ \"./node_modules/jszip/dist/jszip.min.js\");\n/* harmony import */ var jszip__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(jszip__WEBPACK_IMPORTED_MODULE_1__);\n/* harmony import */ var _constants__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./constants */ \"./src/utils/constants.ts\");\n/* harmony import */ var ___WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! . */ \"./src/utils/index.ts\");\n// Copyright (c) Microsoft Corporation.\r\n// Licensed under the MIT license.\r\nvar __awaiter = (undefined && undefined.__awaiter) || function (thisArg, _arguments, P, generator) {\r\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\r\n return new (P || (P = Promise))(function (resolve, reject) {\r\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\r\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\r\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\r\n step((generator = generator.apply(thisArg, _arguments || [])).next());\r\n });\r\n};\r\nvar __generator = (undefined && undefined.__generator) || function (thisArg, body) {\r\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\r\n return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\r\n function verb(n) { return function (v) { return step([n, v]); }; }\r\n function step(op) {\r\n if (f) throw new TypeError(\"Generator is already executing.\");\r\n while (g && (g = 0, op[0] && (_ = 0)), _) try {\r\n if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\r\n if (y = 0, t) op = [op[0] & 2, t.value];\r\n switch (op[0]) {\r\n case 0: case 1: t = op; break;\r\n case 4: _.label++; return { value: op[1], done: false };\r\n case 5: _.label++; y = op[1]; op = [0]; continue;\r\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\r\n default:\r\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\r\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\r\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\r\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\r\n if (t[2]) _.ops.pop();\r\n _.trys.pop(); continue;\r\n }\r\n op = body.call(thisArg, _);\r\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\r\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\r\n }\r\n};\r\nvar __spreadArray = (undefined && undefined.__spreadArray) || function (to, from, pack) {\r\n if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {\r\n if (ar || !(i in from)) {\r\n if (!ar) ar = Array.prototype.slice.call(from, 0, i);\r\n ar[i] = from[i];\r\n }\r\n }\r\n return to.concat(ar || Array.prototype.slice.call(from));\r\n};\r\n\r\n\r\n\r\n\r\nvar replaceSingleQuery = function (base64Str, queryName, queryMashupDoc) { return __awaiter(void 0, void 0, void 0, function () {\r\n var _a, version, packageOPC, permissionsSize, permissions, metadata, endBuffer, newPackageBuffer, packageSizeBuffer, permissionsSizeBuffer, newMetadataBuffer, metadataSizeBuffer, newMashup;\r\n return __generator(this, function (_b) {\r\n switch (_b.label) {\r\n case 0:\r\n _a = getPackageComponents(base64Str), version = _a.version, packageOPC = _a.packageOPC, permissionsSize = _a.permissionsSize, permissions = _a.permissions, metadata = _a.metadata, endBuffer = _a.endBuffer;\r\n return [4 /*yield*/, editSingleQueryPackage(packageOPC, queryMashupDoc)];\r\n case 1:\r\n newPackageBuffer = _b.sent();\r\n packageSizeBuffer = ___WEBPACK_IMPORTED_MODULE_3__.arrayUtils.getInt32Buffer(newPackageBuffer.byteLength);\r\n permissionsSizeBuffer = ___WEBPACK_IMPORTED_MODULE_3__.arrayUtils.getInt32Buffer(permissionsSize);\r\n newMetadataBuffer = editSingleQueryMetadata(metadata, { queryName: queryName });\r\n metadataSizeBuffer = ___WEBPACK_IMPORTED_MODULE_3__.arrayUtils.getInt32Buffer(newMetadataBuffer.byteLength);\r\n newMashup = ___WEBPACK_IMPORTED_MODULE_3__.arrayUtils.concatArrays(version, packageSizeBuffer, newPackageBuffer, permissionsSizeBuffer, permissions, metadataSizeBuffer, newMetadataBuffer, endBuffer);\r\n return [2 /*return*/, base64_js__WEBPACK_IMPORTED_MODULE_0__.fromByteArray(newMashup)];\r\n }\r\n });\r\n}); };\r\nvar getPackageComponents = function (base64Str) {\r\n var buffer = base64_js__WEBPACK_IMPORTED_MODULE_0__.toByteArray(base64Str).buffer;\r\n var mashupArray = new ___WEBPACK_IMPORTED_MODULE_3__.arrayUtils.ArrayReader(buffer);\r\n var version = mashupArray.getBytes(4);\r\n var packageSize = mashupArray.getInt32();\r\n var packageOPC = mashupArray.getBytes(packageSize);\r\n var permissionsSize = mashupArray.getInt32();\r\n var permissions = mashupArray.getBytes(permissionsSize);\r\n var metadataSize = mashupArray.getInt32();\r\n var metadata = mashupArray.getBytes(metadataSize);\r\n var endBuffer = mashupArray.getBytes();\r\n return {\r\n version: version,\r\n packageOPC: packageOPC,\r\n permissionsSize: permissionsSize,\r\n permissions: permissions,\r\n metadata: metadata,\r\n endBuffer: endBuffer,\r\n };\r\n};\r\nvar editSingleQueryPackage = function (packageOPC, queryMashupDoc) { return __awaiter(void 0, void 0, void 0, function () {\r\n var packageZip;\r\n return __generator(this, function (_a) {\r\n switch (_a.label) {\r\n case 0: return [4 /*yield*/, jszip__WEBPACK_IMPORTED_MODULE_1___default().loadAsync(packageOPC)];\r\n case 1:\r\n packageZip = _a.sent();\r\n setSection1m(queryMashupDoc, packageZip);\r\n return [4 /*yield*/, packageZip.generateAsync({ type: _constants__WEBPACK_IMPORTED_MODULE_2__.uint8ArrayType })];\r\n case 2: return [2 /*return*/, _a.sent()];\r\n }\r\n });\r\n}); };\r\nvar setSection1m = function (queryMashupDoc, zip) {\r\n var _a;\r\n if (!((_a = zip.file(_constants__WEBPACK_IMPORTED_MODULE_2__.section1mPath)) === null || _a === void 0 ? void 0 : _a.async(_constants__WEBPACK_IMPORTED_MODULE_2__.textResultType))) {\r\n throw new Error(_constants__WEBPACK_IMPORTED_MODULE_2__.formulaSectionNotFoundErr);\r\n }\r\n var newSection1m = queryMashupDoc;\r\n zip.file(_constants__WEBPACK_IMPORTED_MODULE_2__.section1mPath, newSection1m, {\r\n compression: _constants__WEBPACK_IMPORTED_MODULE_2__.emptyValue,\r\n });\r\n};\r\nvar editSingleQueryMetadata = function (metadataArray, metadata) {\r\n //extract metadataXml\r\n var mashupArray = new ___WEBPACK_IMPORTED_MODULE_3__.arrayUtils.ArrayReader(metadataArray.buffer);\r\n var metadataVersion = mashupArray.getBytes(4);\r\n var metadataXmlSize = mashupArray.getInt32();\r\n var metadataXml = mashupArray.getBytes(metadataXmlSize);\r\n var endBuffer = mashupArray.getBytes();\r\n //parse metdataXml\r\n var textDecoder = new TextDecoder();\r\n var metadataString = textDecoder.decode(metadataXml);\r\n var parser = new DOMParser();\r\n var serializer = new XMLSerializer();\r\n var parsedMetadata = parser.parseFromString(metadataString, _constants__WEBPACK_IMPORTED_MODULE_2__.xmlTextResultType);\r\n // Update InfoPaths to new QueryName\r\n var itemPaths = parsedMetadata.getElementsByTagName(_constants__WEBPACK_IMPORTED_MODULE_2__.element.itemPath);\r\n if (itemPaths && itemPaths.length) {\r\n for (var i = 0; i < itemPaths.length; i++) {\r\n var itemPath = itemPaths[i];\r\n var content = itemPath.innerHTML;\r\n if (content.includes(_constants__WEBPACK_IMPORTED_MODULE_2__.section1PathPrefix)) {\r\n var strArr = content.split(_constants__WEBPACK_IMPORTED_MODULE_2__.divider);\r\n strArr[1] = encodeURIComponent(metadata.queryName);\r\n var newContent = strArr.join(_constants__WEBPACK_IMPORTED_MODULE_2__.divider);\r\n itemPath.textContent = newContent;\r\n }\r\n }\r\n }\r\n var entries = parsedMetadata.getElementsByTagName(_constants__WEBPACK_IMPORTED_MODULE_2__.element.entry);\r\n if (entries && entries.length) {\r\n for (var i = 0; i < entries.length; i++) {\r\n var entry = entries[i];\r\n var entryAttributes = entry.attributes;\r\n var entryAttributesArr = __spreadArray([], entryAttributes, true);\r\n var entryProp = entryAttributesArr.find(function (prop) {\r\n return (prop === null || prop === void 0 ? void 0 : prop.name) === _constants__WEBPACK_IMPORTED_MODULE_2__.elementAttributes.type;\r\n });\r\n if ((entryProp === null || entryProp === void 0 ? void 0 : entryProp.nodeValue) == _constants__WEBPACK_IMPORTED_MODULE_2__.elementAttributes.resultType) {\r\n entry.setAttribute(_constants__WEBPACK_IMPORTED_MODULE_2__.elementAttributes.value, _constants__WEBPACK_IMPORTED_MODULE_2__.elementAttributesValues.tableResultType());\r\n }\r\n if ((entryProp === null || entryProp === void 0 ? void 0 : entryProp.nodeValue) == _constants__WEBPACK_IMPORTED_MODULE_2__.elementAttributes.fillLastUpdated) {\r\n var nowTime = new Date().toISOString();\r\n entry.setAttribute(_constants__WEBPACK_IMPORTED_MODULE_2__.elementAttributes.value, (_constants__WEBPACK_IMPORTED_MODULE_2__.elementAttributes.day + nowTime).replace(/Z/, \"0000Z\"));\r\n }\r\n }\r\n }\r\n // Convert new metadataXml to Uint8Array\r\n var newMetadataString = serializer.serializeToString(parsedMetadata);\r\n var encoder = new TextEncoder();\r\n var newMetadataXml = encoder.encode(newMetadataString);\r\n var newMetadataXmlSize = ___WEBPACK_IMPORTED_MODULE_3__.arrayUtils.getInt32Buffer(newMetadataXml.byteLength);\r\n var newMetadataArray = ___WEBPACK_IMPORTED_MODULE_3__.arrayUtils.concatArrays(metadataVersion, newMetadataXmlSize, newMetadataXml, endBuffer);\r\n return newMetadataArray;\r\n};\r\n\n\n//# sourceURL=webpack://@microsoft/connected-workbooks/./src/utils/mashupDocumentParser.ts?");
|
|
270
|
+
eval("\r\n// Copyright (c) Microsoft Corporation.\r\n// Licensed under the MIT license.\r\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\r\n if (k2 === undefined) k2 = k;\r\n var desc = Object.getOwnPropertyDescriptor(m, k);\r\n if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\r\n desc = { enumerable: true, get: function() { return m[k]; } };\r\n }\r\n Object.defineProperty(o, k2, desc);\r\n}) : (function(o, m, k, k2) {\r\n if (k2 === undefined) k2 = k;\r\n o[k2] = m[k];\r\n}));\r\nvar __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {\r\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\r\n}) : function(o, v) {\r\n o[\"default\"] = v;\r\n});\r\nvar __importStar = (this && this.__importStar) || function (mod) {\r\n if (mod && mod.__esModule) return mod;\r\n var result = {};\r\n if (mod != null) for (var k in mod) if (k !== \"default\" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\r\n __setModuleDefault(result, mod);\r\n return result;\r\n};\r\nvar __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {\r\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\r\n return new (P || (P = Promise))(function (resolve, reject) {\r\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\r\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\r\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\r\n step((generator = generator.apply(thisArg, _arguments || [])).next());\r\n });\r\n};\r\nvar __generator = (this && this.__generator) || function (thisArg, body) {\r\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\r\n return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\r\n function verb(n) { return function (v) { return step([n, v]); }; }\r\n function step(op) {\r\n if (f) throw new TypeError(\"Generator is already executing.\");\r\n while (g && (g = 0, op[0] && (_ = 0)), _) try {\r\n if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\r\n if (y = 0, t) op = [op[0] & 2, t.value];\r\n switch (op[0]) {\r\n case 0: case 1: t = op; break;\r\n case 4: _.label++; return { value: op[1], done: false };\r\n case 5: _.label++; y = op[1]; op = [0]; continue;\r\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\r\n default:\r\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\r\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\r\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\r\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\r\n if (t[2]) _.ops.pop();\r\n _.trys.pop(); continue;\r\n }\r\n op = body.call(thisArg, _);\r\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\r\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\r\n }\r\n};\r\nvar __importDefault = (this && this.__importDefault) || function (mod) {\r\n return (mod && mod.__esModule) ? mod : { \"default\": mod };\r\n};\r\nObject.defineProperty(exports, \"__esModule\", ({ value: true }));\r\nexports.editSingleQueryMetadata = exports.getPackageComponents = exports.replaceSingleQuery = void 0;\r\nvar base64 = __importStar(__webpack_require__(/*! base64-js */ \"./node_modules/base64-js/index.js\"));\r\nvar jszip_1 = __importDefault(__webpack_require__(/*! jszip */ \"./node_modules/jszip/dist/jszip.min.js\"));\r\nvar constants_1 = __webpack_require__(/*! ./constants */ \"./src/utils/constants.ts\");\r\nvar _1 = __webpack_require__(/*! . */ \"./src/utils/index.ts\");\r\nvar xmldom_qsa_1 = __webpack_require__(/*! xmldom-qsa */ \"./node_modules/xmldom-qsa/lib/index.js\");\r\nvar replaceSingleQuery = function (base64Str, queryName, queryMashupDoc) { return __awaiter(void 0, void 0, void 0, function () {\r\n var _a, version, packageOPC, permissionsSize, permissions, metadata, endBuffer, newPackageBuffer, packageSizeBuffer, permissionsSizeBuffer, newMetadataBuffer, metadataSizeBuffer, newMashup;\r\n return __generator(this, function (_b) {\r\n switch (_b.label) {\r\n case 0:\r\n _a = (0, exports.getPackageComponents)(base64Str), version = _a.version, packageOPC = _a.packageOPC, permissionsSize = _a.permissionsSize, permissions = _a.permissions, metadata = _a.metadata, endBuffer = _a.endBuffer;\r\n return [4 /*yield*/, editSingleQueryPackage(packageOPC, queryMashupDoc)];\r\n case 1:\r\n newPackageBuffer = _b.sent();\r\n packageSizeBuffer = _1.arrayUtils.getInt32Buffer(newPackageBuffer.byteLength);\r\n permissionsSizeBuffer = _1.arrayUtils.getInt32Buffer(permissionsSize);\r\n newMetadataBuffer = (0, exports.editSingleQueryMetadata)(metadata, { queryName: queryName });\r\n metadataSizeBuffer = _1.arrayUtils.getInt32Buffer(newMetadataBuffer.byteLength);\r\n newMashup = _1.arrayUtils.concatArrays(version, packageSizeBuffer, newPackageBuffer, permissionsSizeBuffer, permissions, metadataSizeBuffer, newMetadataBuffer, endBuffer);\r\n return [2 /*return*/, base64.fromByteArray(newMashup)];\r\n }\r\n });\r\n}); };\r\nexports.replaceSingleQuery = replaceSingleQuery;\r\nvar getPackageComponents = function (base64Str) {\r\n var buffer = base64.toByteArray(base64Str).buffer;\r\n var mashupArray = new _1.arrayUtils.ArrayReader(buffer);\r\n var version = mashupArray.getBytes(4);\r\n var packageSize = mashupArray.getInt32();\r\n var packageOPC = mashupArray.getBytes(packageSize);\r\n var permissionsSize = mashupArray.getInt32();\r\n var permissions = mashupArray.getBytes(permissionsSize);\r\n var metadataSize = mashupArray.getInt32();\r\n var metadata = mashupArray.getBytes(metadataSize);\r\n var endBuffer = mashupArray.getBytes();\r\n return {\r\n version: version,\r\n packageOPC: packageOPC,\r\n permissionsSize: permissionsSize,\r\n permissions: permissions,\r\n metadata: metadata,\r\n endBuffer: endBuffer,\r\n };\r\n};\r\nexports.getPackageComponents = getPackageComponents;\r\nvar editSingleQueryPackage = function (packageOPC, queryMashupDoc) { return __awaiter(void 0, void 0, void 0, function () {\r\n var packageZip;\r\n return __generator(this, function (_a) {\r\n switch (_a.label) {\r\n case 0: return [4 /*yield*/, jszip_1.default.loadAsync(packageOPC)];\r\n case 1:\r\n packageZip = _a.sent();\r\n setSection1m(queryMashupDoc, packageZip);\r\n return [4 /*yield*/, packageZip.generateAsync({ type: constants_1.uint8ArrayType })];\r\n case 2: return [2 /*return*/, _a.sent()];\r\n }\r\n });\r\n}); };\r\nvar setSection1m = function (queryMashupDoc, zip) {\r\n var _a;\r\n if (!((_a = zip.file(constants_1.section1mPath)) === null || _a === void 0 ? void 0 : _a.async(constants_1.textResultType))) {\r\n throw new Error(constants_1.formulaSectionNotFoundErr);\r\n }\r\n var newSection1m = queryMashupDoc;\r\n zip.file(constants_1.section1mPath, newSection1m, {\r\n compression: constants_1.emptyValue,\r\n });\r\n};\r\nvar editSingleQueryMetadata = function (metadataArray, metadata) {\r\n //extract metadataXml\r\n var mashupArray = new _1.arrayUtils.ArrayReader(metadataArray.buffer);\r\n var metadataVersion = mashupArray.getBytes(4);\r\n var metadataXmlSize = mashupArray.getInt32();\r\n var metadataXml = mashupArray.getBytes(metadataXmlSize);\r\n var endBuffer = mashupArray.getBytes();\r\n //parse metdataXml\r\n var textDecoder = new TextDecoder();\r\n var metadataString = textDecoder.decode(metadataXml);\r\n var parser = new xmldom_qsa_1.DOMParser();\r\n var serializer = new xmldom_qsa_1.XMLSerializer();\r\n var parsedMetadata = parser.parseFromString(metadataString, constants_1.xmlTextResultType);\r\n // Update InfoPaths to new QueryName\r\n var itemPaths = parsedMetadata.getElementsByTagName(constants_1.element.itemPath);\r\n if (itemPaths && itemPaths.length) {\r\n for (var i = 0; i < itemPaths.length; i++) {\r\n var itemPath = itemPaths[i];\r\n var content = itemPath.textContent;\r\n if (content.includes(constants_1.section1PathPrefix)) {\r\n var strArr = content.split(constants_1.divider);\r\n strArr[1] = encodeURIComponent(metadata.queryName);\r\n var newContent = strArr.join(constants_1.divider);\r\n itemPath.textContent = newContent;\r\n }\r\n }\r\n }\r\n var entries = parsedMetadata.getElementsByTagName(constants_1.element.entry);\r\n if (entries && entries.length) {\r\n for (var i = 0; i < entries.length; i++) {\r\n var entry = entries[i];\r\n var entryAttributesArr = Array.from(entry.attributes);\r\n var entryProp = entryAttributesArr.find(function (prop) {\r\n return (prop === null || prop === void 0 ? void 0 : prop.name) === constants_1.elementAttributes.type;\r\n });\r\n if ((entryProp === null || entryProp === void 0 ? void 0 : entryProp.nodeValue) == constants_1.elementAttributes.resultType) {\r\n entry.setAttribute(constants_1.elementAttributes.value, constants_1.elementAttributesValues.tableResultType());\r\n }\r\n if ((entryProp === null || entryProp === void 0 ? void 0 : entryProp.nodeValue) == constants_1.elementAttributes.fillLastUpdated) {\r\n var nowTime = new Date().toISOString();\r\n entry.setAttribute(constants_1.elementAttributes.value, (constants_1.elementAttributes.day + nowTime).replace(/Z/, \"0000Z\"));\r\n }\r\n }\r\n }\r\n // Convert new metadataXml to Uint8Array\r\n var newMetadataString = serializer.serializeToString(parsedMetadata);\r\n var encoder = new TextEncoder();\r\n var newMetadataXml = encoder.encode(newMetadataString);\r\n var newMetadataXmlSize = _1.arrayUtils.getInt32Buffer(newMetadataXml.byteLength);\r\n var newMetadataArray = _1.arrayUtils.concatArrays(metadataVersion, newMetadataXmlSize, newMetadataXml, endBuffer);\r\n return newMetadataArray;\r\n};\r\nexports.editSingleQueryMetadata = editSingleQueryMetadata;\r\n\n\n//# sourceURL=webpack://@microsoft/connected-workbooks/./src/utils/mashupDocumentParser.ts?");
|
|
161
271
|
|
|
162
272
|
/***/ }),
|
|
163
273
|
|
|
@@ -165,10 +275,10 @@ eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpac
|
|
|
165
275
|
/*!******************************!*\
|
|
166
276
|
!*** ./src/utils/pqUtils.ts ***!
|
|
167
277
|
\******************************/
|
|
168
|
-
/***/ ((__unused_webpack_module,
|
|
278
|
+
/***/ (function(__unused_webpack_module, exports, __webpack_require__) {
|
|
169
279
|
|
|
170
280
|
"use strict";
|
|
171
|
-
eval("
|
|
281
|
+
eval("\r\n// Copyright (c) Microsoft Corporation.\r\n// Licensed under the MIT license.\r\nvar __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {\r\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\r\n return new (P || (P = Promise))(function (resolve, reject) {\r\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\r\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\r\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\r\n step((generator = generator.apply(thisArg, _arguments || [])).next());\r\n });\r\n};\r\nvar __generator = (this && this.__generator) || function (thisArg, body) {\r\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\r\n return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\r\n function verb(n) { return function (v) { return step([n, v]); }; }\r\n function step(op) {\r\n if (f) throw new TypeError(\"Generator is already executing.\");\r\n while (g && (g = 0, op[0] && (_ = 0)), _) try {\r\n if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\r\n if (y = 0, t) op = [op[0] & 2, t.value];\r\n switch (op[0]) {\r\n case 0: case 1: t = op; break;\r\n case 4: _.label++; return { value: op[1], done: false };\r\n case 5: _.label++; y = op[1]; op = [0]; continue;\r\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\r\n default:\r\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\r\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\r\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\r\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\r\n if (t[2]) _.ops.pop();\r\n _.trys.pop(); continue;\r\n }\r\n op = body.call(thisArg, _);\r\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\r\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\r\n }\r\n};\r\nvar __importDefault = (this && this.__importDefault) || function (mod) {\r\n return (mod && mod.__esModule) ? mod : { \"default\": mod };\r\n};\r\nObject.defineProperty(exports, \"__esModule\", ({ value: true }));\r\nvar constants_1 = __webpack_require__(/*! ./constants */ \"./src/utils/constants.ts\");\r\nvar generators_1 = __webpack_require__(/*! ../generators */ \"./src/generators.ts\");\r\nvar buffer_1 = __webpack_require__(/*! buffer */ \"./node_modules/buffer/index.js\");\r\nvar xmldom_qsa_1 = __webpack_require__(/*! xmldom-qsa */ \"./node_modules/xmldom-qsa/lib/index.js\");\r\nvar chardet_1 = __importDefault(__webpack_require__(/*! chardet */ \"./node_modules/chardet/lib/index.js\"));\r\nvar getBase64 = function (zip) { return __awaiter(void 0, void 0, void 0, function () {\r\n var mashup;\r\n return __generator(this, function (_a) {\r\n switch (_a.label) {\r\n case 0: return [4 /*yield*/, getDataMashupFile(zip)];\r\n case 1:\r\n mashup = _a.sent();\r\n return [2 /*return*/, mashup.value];\r\n }\r\n });\r\n}); };\r\nvar setBase64 = function (zip, base64) { return __awaiter(void 0, void 0, void 0, function () {\r\n var newXml, encoded, mashup;\r\n return __generator(this, function (_a) {\r\n switch (_a.label) {\r\n case 0:\r\n newXml = (0, generators_1.generateMashupXMLTemplate)(base64);\r\n encoded = buffer_1.Buffer.from(constants_1.BOM + newXml, \"ucs2\");\r\n return [4 /*yield*/, getDataMashupFile(zip)];\r\n case 1:\r\n mashup = _a.sent();\r\n zip.file(mashup === null || mashup === void 0 ? void 0 : mashup.path, encoded);\r\n return [2 /*return*/];\r\n }\r\n });\r\n}); };\r\nvar getDataMashupFile = function (zip) { return __awaiter(void 0, void 0, void 0, function () {\r\n var mashup, _i, _a, url, item;\r\n return __generator(this, function (_b) {\r\n switch (_b.label) {\r\n case 0:\r\n _i = 0, _a = constants_1.URLS.PQ;\r\n _b.label = 1;\r\n case 1:\r\n if (!(_i < _a.length)) return [3 /*break*/, 4];\r\n url = _a[_i];\r\n return [4 /*yield*/, getCustomXmlFile(zip, url)];\r\n case 2:\r\n item = _b.sent();\r\n if (item.found) {\r\n mashup = item;\r\n return [3 /*break*/, 4];\r\n }\r\n _b.label = 3;\r\n case 3:\r\n _i++;\r\n return [3 /*break*/, 1];\r\n case 4:\r\n if (!mashup) {\r\n throw new Error(\"DataMashup XML is not found\");\r\n }\r\n return [2 /*return*/, mashup];\r\n }\r\n });\r\n}); };\r\nvar getCustomXmlFile = function (zip, url, encoding) {\r\n if (encoding === void 0) { encoding = \"utf16le\"; }\r\n return __awaiter(void 0, void 0, void 0, function () {\r\n var parser, itemsArray, found, path, xmlString, value, i, xmlValue, buffer, detected, doc;\r\n var _a, _b;\r\n return __generator(this, function (_c) {\r\n switch (_c.label) {\r\n case 0:\r\n parser = new xmldom_qsa_1.DOMParser();\r\n return [4 /*yield*/, zip.file(/customXml\\/item\\d.xml/)];\r\n case 1:\r\n itemsArray = _c.sent();\r\n if (!itemsArray || itemsArray.length === 0) {\r\n throw new Error(\"No customXml files were found!\");\r\n }\r\n found = false;\r\n value = null;\r\n i = 1;\r\n _c.label = 2;\r\n case 2:\r\n if (!(i <= itemsArray.length)) return [3 /*break*/, 5];\r\n path = (0, generators_1.generateCustomXmlFilePath)(i);\r\n return [4 /*yield*/, ((_a = zip.file(path)) === null || _a === void 0 ? void 0 : _a.async(\"uint8array\"))];\r\n case 3:\r\n xmlValue = _c.sent();\r\n if (xmlValue === undefined) {\r\n return [3 /*break*/, 5];\r\n }\r\n buffer = buffer_1.Buffer.from(xmlValue);\r\n detected = chardet_1.default.detect(buffer);\r\n // toString() will convert the buffer to a string using the detected encoding.\r\n xmlString = buffer.toString(detected).replace(/^\\ufeff/, \"\");\r\n doc = parser.parseFromString(xmlString, \"text/xml\");\r\n found = ((_b = doc === null || doc === void 0 ? void 0 : doc.documentElement) === null || _b === void 0 ? void 0 : _b.namespaceURI) === url;\r\n if (found) {\r\n value = doc.documentElement.textContent;\r\n return [3 /*break*/, 5];\r\n }\r\n _c.label = 4;\r\n case 4:\r\n i++;\r\n return [3 /*break*/, 2];\r\n case 5: return [2 /*return*/, { found: found, path: path, xmlString: xmlString, value: value }];\r\n }\r\n });\r\n });\r\n};\r\nvar queryNameHasInvalidChars = function (queryName) {\r\n var invalidQueryNameChars = ['\"', \".\"];\r\n // Control characters as defined in Unicode\r\n for (var c = 0; c <= 0x001f; ++c) {\r\n invalidQueryNameChars.push(String.fromCharCode(c));\r\n }\r\n for (var c = 0x007f; c <= 0x009f; ++c) {\r\n invalidQueryNameChars.push(String.fromCharCode(c));\r\n }\r\n return queryName.split(\"\").some(function (ch) { return invalidQueryNameChars.indexOf(ch) !== -1; });\r\n};\r\nvar validateQueryName = function (queryName) {\r\n if (queryName) {\r\n if (queryName.length > constants_1.maxQueryLength) {\r\n throw new Error(constants_1.QueryNameMaxLengthErr);\r\n }\r\n if (queryNameHasInvalidChars(queryName)) {\r\n throw new Error(constants_1.QueryNameInvalidCharsErr);\r\n }\r\n }\r\n if (!queryName.trim()) {\r\n throw new Error(constants_1.EmptyQueryNameErr);\r\n }\r\n};\r\nexports[\"default\"] = {\r\n getBase64: getBase64,\r\n setBase64: setBase64,\r\n getCustomXmlFile: getCustomXmlFile,\r\n getDataMashupFile: getDataMashupFile,\r\n validateQueryName: validateQueryName,\r\n};\r\n\n\n//# sourceURL=webpack://@microsoft/connected-workbooks/./src/utils/pqUtils.ts?");
|
|
172
282
|
|
|
173
283
|
/***/ }),
|
|
174
284
|
|
|
@@ -176,10 +286,10 @@ eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpac
|
|
|
176
286
|
/*!*********************************!*\
|
|
177
287
|
!*** ./src/utils/tableUtils.ts ***!
|
|
178
288
|
\*********************************/
|
|
179
|
-
/***/ ((__unused_webpack_module,
|
|
289
|
+
/***/ (function(__unused_webpack_module, exports, __webpack_require__) {
|
|
180
290
|
|
|
181
291
|
"use strict";
|
|
182
|
-
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"default\": () => (__WEBPACK_DEFAULT_EXPORT__)\n/* harmony export */ });\n/* harmony import */ var _constants__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./constants */ \"./src/utils/constants.ts\");\n/* harmony import */ var _documentUtils__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./documentUtils */ \"./src/utils/documentUtils.ts\");\n/* harmony import */ var uuid__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! uuid */ \"./node_modules/uuid/dist/esm-browser/v4.js\");\n// Copyright (c) Microsoft Corporation.\r\n// Licensed under the MIT license.\r\nvar __awaiter = (undefined && undefined.__awaiter) || function (thisArg, _arguments, P, generator) {\r\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\r\n return new (P || (P = Promise))(function (resolve, reject) {\r\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\r\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\r\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\r\n step((generator = generator.apply(thisArg, _arguments || [])).next());\r\n });\r\n};\r\nvar __generator = (undefined && undefined.__generator) || function (thisArg, body) {\r\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\r\n return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\r\n function verb(n) { return function (v) { return step([n, v]); }; }\r\n function step(op) {\r\n if (f) throw new TypeError(\"Generator is already executing.\");\r\n while (g && (g = 0, op[0] && (_ = 0)), _) try {\r\n if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\r\n if (y = 0, t) op = [op[0] & 2, t.value];\r\n switch (op[0]) {\r\n case 0: case 1: t = op; break;\r\n case 4: _.label++; return { value: op[1], done: false };\r\n case 5: _.label++; y = op[1]; op = [0]; continue;\r\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\r\n default:\r\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\r\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\r\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\r\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\r\n if (t[2]) _.ops.pop();\r\n _.trys.pop(); continue;\r\n }\r\n op = body.call(thisArg, _);\r\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\r\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\r\n }\r\n};\r\n\r\n\r\n\r\nvar updateTableInitialDataIfNeeded = function (zip, tableData, updateQueryTable) { return __awaiter(void 0, void 0, void 0, function () {\r\n var sheetsXmlString, newSheet, queryTableXmlString, newQueryTable, workbookXmlString, newWorkbook, tableXmlString, newTable;\r\n var _a, _b, _c, _d;\r\n return __generator(this, function (_e) {\r\n switch (_e.label) {\r\n case 0:\r\n if (!tableData) {\r\n return [2 /*return*/];\r\n }\r\n return [4 /*yield*/, ((_a = zip.file(_constants__WEBPACK_IMPORTED_MODULE_0__.sheetsXmlPath)) === null || _a === void 0 ? void 0 : _a.async(_constants__WEBPACK_IMPORTED_MODULE_0__.textResultType))];\r\n case 1:\r\n sheetsXmlString = _e.sent();\r\n if (sheetsXmlString === undefined) {\r\n throw new Error(_constants__WEBPACK_IMPORTED_MODULE_0__.sheetsNotFoundErr);\r\n }\r\n newSheet = updateSheetsInitialData(sheetsXmlString, tableData);\r\n zip.file(_constants__WEBPACK_IMPORTED_MODULE_0__.sheetsXmlPath, newSheet);\r\n if (!updateQueryTable) return [3 /*break*/, 5];\r\n return [4 /*yield*/, ((_b = zip.file(_constants__WEBPACK_IMPORTED_MODULE_0__.queryTableXmlPath)) === null || _b === void 0 ? void 0 : _b.async(_constants__WEBPACK_IMPORTED_MODULE_0__.textResultType))];\r\n case 2:\r\n queryTableXmlString = _e.sent();\r\n if (queryTableXmlString === undefined) {\r\n throw new Error(_constants__WEBPACK_IMPORTED_MODULE_0__.queryTableNotFoundErr);\r\n }\r\n return [4 /*yield*/, updateQueryTablesInitialData(queryTableXmlString, tableData)];\r\n case 3:\r\n newQueryTable = _e.sent();\r\n zip.file(_constants__WEBPACK_IMPORTED_MODULE_0__.queryTableXmlPath, newQueryTable);\r\n return [4 /*yield*/, ((_c = zip.file(_constants__WEBPACK_IMPORTED_MODULE_0__.workbookXmlPath)) === null || _c === void 0 ? void 0 : _c.async(_constants__WEBPACK_IMPORTED_MODULE_0__.textResultType))];\r\n case 4:\r\n workbookXmlString = _e.sent();\r\n if (workbookXmlString === undefined) {\r\n throw new Error(_constants__WEBPACK_IMPORTED_MODULE_0__.sheetsNotFoundErr);\r\n }\r\n newWorkbook = updateWorkbookInitialData(workbookXmlString, tableData);\r\n zip.file(_constants__WEBPACK_IMPORTED_MODULE_0__.workbookXmlPath, newWorkbook);\r\n _e.label = 5;\r\n case 5: return [4 /*yield*/, ((_d = zip.file(_constants__WEBPACK_IMPORTED_MODULE_0__.tableXmlPath)) === null || _d === void 0 ? void 0 : _d.async(_constants__WEBPACK_IMPORTED_MODULE_0__.textResultType))];\r\n case 6:\r\n tableXmlString = _e.sent();\r\n if (tableXmlString === undefined) {\r\n throw new Error(_constants__WEBPACK_IMPORTED_MODULE_0__.tableNotFoundErr);\r\n }\r\n newTable = updateTablesInitialData(tableXmlString, tableData, updateQueryTable);\r\n zip.file(_constants__WEBPACK_IMPORTED_MODULE_0__.tableXmlPath, newTable);\r\n return [2 /*return*/];\r\n }\r\n });\r\n}); };\r\nvar updateTablesInitialData = function (tableXmlString, tableData, updateQueryTable) {\r\n if (updateQueryTable === void 0) { updateQueryTable = false; }\r\n var parser = new DOMParser();\r\n var serializer = new XMLSerializer();\r\n var tableDoc = parser.parseFromString(tableXmlString, _constants__WEBPACK_IMPORTED_MODULE_0__.xmlTextResultType);\r\n var tableColumns = tableDoc.getElementsByTagName(_constants__WEBPACK_IMPORTED_MODULE_0__.element.tableColumns)[0];\r\n tableColumns.textContent = \"\";\r\n tableData.columnNames.forEach(function (column, columnIndex) {\r\n var tableColumn = tableDoc.createElementNS(tableDoc.documentElement.namespaceURI, _constants__WEBPACK_IMPORTED_MODULE_0__.element.tableColumn);\r\n tableColumn.setAttribute(_constants__WEBPACK_IMPORTED_MODULE_0__.elementAttributes.id, (columnIndex + 1).toString());\r\n tableColumn.setAttribute(_constants__WEBPACK_IMPORTED_MODULE_0__.elementAttributes.name, column);\r\n tableColumns.appendChild(tableColumn);\r\n tableColumn.setAttribute(_constants__WEBPACK_IMPORTED_MODULE_0__.elementAttributes.xr3uid, \"{\" + (0,uuid__WEBPACK_IMPORTED_MODULE_2__[\"default\"])().toUpperCase() + \"}\");\r\n if (updateQueryTable) {\r\n tableColumn.setAttribute(_constants__WEBPACK_IMPORTED_MODULE_0__.elementAttributes.uniqueName, (columnIndex + 1).toString());\r\n tableColumn.setAttribute(_constants__WEBPACK_IMPORTED_MODULE_0__.elementAttributes.queryTableFieldId, (columnIndex + 1).toString());\r\n }\r\n });\r\n tableColumns.setAttribute(_constants__WEBPACK_IMPORTED_MODULE_0__.elementAttributes.count, tableData.columnNames.length.toString());\r\n tableDoc\r\n .getElementsByTagName(_constants__WEBPACK_IMPORTED_MODULE_0__.element.table)[0]\r\n .setAttribute(_constants__WEBPACK_IMPORTED_MODULE_0__.elementAttributes.reference, \"A1:\".concat(_documentUtils__WEBPACK_IMPORTED_MODULE_1__[\"default\"].getCellReferenceRelative(tableData.columnNames.length - 1, tableData.rows.length + 1)));\r\n tableDoc\r\n .getElementsByTagName(_constants__WEBPACK_IMPORTED_MODULE_0__.element.autoFilter)[0]\r\n .setAttribute(_constants__WEBPACK_IMPORTED_MODULE_0__.elementAttributes.reference, \"A1:\".concat(_documentUtils__WEBPACK_IMPORTED_MODULE_1__[\"default\"].getCellReferenceRelative(tableData.columnNames.length - 1, tableData.rows.length + 1)));\r\n return serializer.serializeToString(tableDoc);\r\n};\r\nvar updateWorkbookInitialData = function (workbookXmlString, tableData) {\r\n var newParser = new DOMParser();\r\n var newSerializer = new XMLSerializer();\r\n var workbookDoc = newParser.parseFromString(workbookXmlString, _constants__WEBPACK_IMPORTED_MODULE_0__.xmlTextResultType);\r\n var definedName = workbookDoc.getElementsByTagName(_constants__WEBPACK_IMPORTED_MODULE_0__.element.definedName)[0];\r\n definedName.textContent =\r\n _constants__WEBPACK_IMPORTED_MODULE_0__.defaults.sheetName + \"!$A$1:\".concat(_documentUtils__WEBPACK_IMPORTED_MODULE_1__[\"default\"].getCellReferenceAbsolute(tableData.columnNames.length - 1, tableData.rows.length + 1));\r\n return newSerializer.serializeToString(workbookDoc);\r\n};\r\nvar updateQueryTablesInitialData = function (queryTableXmlString, tableData) {\r\n var parser = new DOMParser();\r\n var serializer = new XMLSerializer();\r\n var queryTableDoc = parser.parseFromString(queryTableXmlString, _constants__WEBPACK_IMPORTED_MODULE_0__.xmlTextResultType);\r\n var queryTableFields = queryTableDoc.getElementsByTagName(_constants__WEBPACK_IMPORTED_MODULE_0__.element.queryTableFields)[0];\r\n queryTableFields.textContent = \"\";\r\n tableData.columnNames.forEach(function (column, columnIndex) {\r\n var queryTableField = queryTableDoc.createElementNS(queryTableDoc.documentElement.namespaceURI, _constants__WEBPACK_IMPORTED_MODULE_0__.element.queryTableField);\r\n queryTableField.setAttribute(_constants__WEBPACK_IMPORTED_MODULE_0__.elementAttributes.id, (columnIndex + 1).toString());\r\n queryTableField.setAttribute(_constants__WEBPACK_IMPORTED_MODULE_0__.elementAttributes.name, column);\r\n queryTableField.setAttribute(_constants__WEBPACK_IMPORTED_MODULE_0__.elementAttributes.tableColumnId, (columnIndex + 1).toString());\r\n queryTableFields.appendChild(queryTableField);\r\n });\r\n queryTableFields.setAttribute(_constants__WEBPACK_IMPORTED_MODULE_0__.elementAttributes.count, tableData.columnNames.length.toString());\r\n queryTableDoc.getElementsByTagName(_constants__WEBPACK_IMPORTED_MODULE_0__.element.queryTableRefresh)[0].setAttribute(_constants__WEBPACK_IMPORTED_MODULE_0__.elementAttributes.nextId, (tableData.columnNames.length + 1).toString());\r\n return serializer.serializeToString(queryTableDoc);\r\n};\r\nvar updateSheetsInitialData = function (sheetsXmlString, tableData) {\r\n var parser = new DOMParser();\r\n var serializer = new XMLSerializer();\r\n var sheetsDoc = parser.parseFromString(sheetsXmlString, _constants__WEBPACK_IMPORTED_MODULE_0__.xmlTextResultType);\r\n var sheetData = sheetsDoc.getElementsByTagName(_constants__WEBPACK_IMPORTED_MODULE_0__.element.sheetData)[0];\r\n sheetData.textContent = \"\";\r\n var rowIndex = 0;\r\n var columnRow = sheetsDoc.createElementNS(sheetsDoc.documentElement.namespaceURI, _constants__WEBPACK_IMPORTED_MODULE_0__.element.row);\r\n columnRow.setAttribute(_constants__WEBPACK_IMPORTED_MODULE_0__.elementAttributes.row, (rowIndex + 1).toString());\r\n columnRow.setAttribute(_constants__WEBPACK_IMPORTED_MODULE_0__.elementAttributes.spans, \"1:\" + tableData.columnNames.length);\r\n columnRow.setAttribute(_constants__WEBPACK_IMPORTED_MODULE_0__.elementAttributes.x14acDyDescent, \"0.3\");\r\n tableData.columnNames.forEach(function (col, colIndex) {\r\n columnRow.appendChild(_documentUtils__WEBPACK_IMPORTED_MODULE_1__[\"default\"].createCell(sheetsDoc, colIndex, rowIndex, col));\r\n });\r\n sheetData.appendChild(columnRow);\r\n rowIndex++;\r\n tableData.rows.forEach(function (row) {\r\n var newRow = sheetsDoc.createElementNS(sheetsDoc.documentElement.namespaceURI, _constants__WEBPACK_IMPORTED_MODULE_0__.element.row);\r\n newRow.setAttribute(_constants__WEBPACK_IMPORTED_MODULE_0__.elementAttributes.row, (rowIndex + 1).toString());\r\n newRow.setAttribute(_constants__WEBPACK_IMPORTED_MODULE_0__.elementAttributes.spans, \"1:\" + row.length);\r\n newRow.setAttribute(_constants__WEBPACK_IMPORTED_MODULE_0__.elementAttributes.x14acDyDescent, \"0.3\");\r\n row.forEach(function (cellContent, colIndex) {\r\n newRow.appendChild(_documentUtils__WEBPACK_IMPORTED_MODULE_1__[\"default\"].createCell(sheetsDoc, colIndex, rowIndex, cellContent));\r\n });\r\n sheetData.appendChild(newRow);\r\n rowIndex++;\r\n });\r\n var reference = _documentUtils__WEBPACK_IMPORTED_MODULE_1__[\"default\"].getTableReference(tableData.rows[0].length - 1, tableData.rows.length + 1);\r\n sheetsDoc.getElementsByTagName(_constants__WEBPACK_IMPORTED_MODULE_0__.element.dimension)[0].setAttribute(_constants__WEBPACK_IMPORTED_MODULE_0__.elementAttributes.reference, reference);\r\n sheetsDoc.getElementsByTagName(_constants__WEBPACK_IMPORTED_MODULE_0__.element.selection)[0].setAttribute(_constants__WEBPACK_IMPORTED_MODULE_0__.elementAttributes.sqref, reference);\r\n return serializer.serializeToString(sheetsDoc);\r\n};\r\n/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = ({\r\n updateTableInitialDataIfNeeded: updateTableInitialDataIfNeeded,\r\n updateSheetsInitialData: updateSheetsInitialData,\r\n updateWorkbookInitialData: updateWorkbookInitialData,\r\n updateTablesInitialData: updateTablesInitialData,\r\n updateQueryTablesInitialData: updateQueryTablesInitialData,\r\n});\r\n\n\n//# sourceURL=webpack://@microsoft/connected-workbooks/./src/utils/tableUtils.ts?");
|
|
292
|
+
eval("\r\n// Copyright (c) Microsoft Corporation.\r\n// Licensed under the MIT license.\r\nvar __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {\r\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\r\n return new (P || (P = Promise))(function (resolve, reject) {\r\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\r\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\r\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\r\n step((generator = generator.apply(thisArg, _arguments || [])).next());\r\n });\r\n};\r\nvar __generator = (this && this.__generator) || function (thisArg, body) {\r\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\r\n return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\r\n function verb(n) { return function (v) { return step([n, v]); }; }\r\n function step(op) {\r\n if (f) throw new TypeError(\"Generator is already executing.\");\r\n while (g && (g = 0, op[0] && (_ = 0)), _) try {\r\n if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\r\n if (y = 0, t) op = [op[0] & 2, t.value];\r\n switch (op[0]) {\r\n case 0: case 1: t = op; break;\r\n case 4: _.label++; return { value: op[1], done: false };\r\n case 5: _.label++; y = op[1]; op = [0]; continue;\r\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\r\n default:\r\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\r\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\r\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\r\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\r\n if (t[2]) _.ops.pop();\r\n _.trys.pop(); continue;\r\n }\r\n op = body.call(thisArg, _);\r\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\r\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\r\n }\r\n};\r\nvar __importDefault = (this && this.__importDefault) || function (mod) {\r\n return (mod && mod.__esModule) ? mod : { \"default\": mod };\r\n};\r\nObject.defineProperty(exports, \"__esModule\", ({ value: true }));\r\nvar constants_1 = __webpack_require__(/*! ./constants */ \"./src/utils/constants.ts\");\r\nvar documentUtils_1 = __importDefault(__webpack_require__(/*! ./documentUtils */ \"./src/utils/documentUtils.ts\"));\r\nvar uuid_1 = __webpack_require__(/*! uuid */ \"./node_modules/uuid/dist/commonjs-browser/index.js\");\r\nvar xmldom_qsa_1 = __webpack_require__(/*! xmldom-qsa */ \"./node_modules/xmldom-qsa/lib/index.js\");\r\nvar updateTableInitialDataIfNeeded = function (zip, tableData, updateQueryTable) { return __awaiter(void 0, void 0, void 0, function () {\r\n var sheetsXmlString, newSheet, queryTableXmlString, newQueryTable, workbookXmlString, newWorkbook, tableXmlString, newTable;\r\n var _a, _b, _c, _d;\r\n return __generator(this, function (_e) {\r\n switch (_e.label) {\r\n case 0:\r\n if (!tableData) {\r\n return [2 /*return*/];\r\n }\r\n return [4 /*yield*/, ((_a = zip.file(constants_1.sheetsXmlPath)) === null || _a === void 0 ? void 0 : _a.async(constants_1.textResultType))];\r\n case 1:\r\n sheetsXmlString = _e.sent();\r\n if (sheetsXmlString === undefined) {\r\n throw new Error(constants_1.sheetsNotFoundErr);\r\n }\r\n newSheet = updateSheetsInitialData(sheetsXmlString, tableData);\r\n zip.file(constants_1.sheetsXmlPath, newSheet);\r\n if (!updateQueryTable) return [3 /*break*/, 5];\r\n return [4 /*yield*/, ((_b = zip.file(constants_1.queryTableXmlPath)) === null || _b === void 0 ? void 0 : _b.async(constants_1.textResultType))];\r\n case 2:\r\n queryTableXmlString = _e.sent();\r\n if (queryTableXmlString === undefined) {\r\n throw new Error(constants_1.queryTableNotFoundErr);\r\n }\r\n return [4 /*yield*/, updateQueryTablesInitialData(queryTableXmlString, tableData)];\r\n case 3:\r\n newQueryTable = _e.sent();\r\n zip.file(constants_1.queryTableXmlPath, newQueryTable);\r\n return [4 /*yield*/, ((_c = zip.file(constants_1.workbookXmlPath)) === null || _c === void 0 ? void 0 : _c.async(constants_1.textResultType))];\r\n case 4:\r\n workbookXmlString = _e.sent();\r\n if (workbookXmlString === undefined) {\r\n throw new Error(constants_1.sheetsNotFoundErr);\r\n }\r\n newWorkbook = updateWorkbookInitialData(workbookXmlString, tableData);\r\n zip.file(constants_1.workbookXmlPath, newWorkbook);\r\n _e.label = 5;\r\n case 5: return [4 /*yield*/, ((_d = zip.file(constants_1.tableXmlPath)) === null || _d === void 0 ? void 0 : _d.async(constants_1.textResultType))];\r\n case 6:\r\n tableXmlString = _e.sent();\r\n if (tableXmlString === undefined) {\r\n throw new Error(constants_1.tableNotFoundErr);\r\n }\r\n newTable = updateTablesInitialData(tableXmlString, tableData, updateQueryTable);\r\n zip.file(constants_1.tableXmlPath, newTable);\r\n return [2 /*return*/];\r\n }\r\n });\r\n}); };\r\nvar updateTablesInitialData = function (tableXmlString, tableData, updateQueryTable) {\r\n if (updateQueryTable === void 0) { updateQueryTable = false; }\r\n var parser = new xmldom_qsa_1.DOMParser();\r\n var serializer = new xmldom_qsa_1.XMLSerializer();\r\n var tableDoc = parser.parseFromString(tableXmlString, constants_1.xmlTextResultType);\r\n var tableColumns = tableDoc.getElementsByTagName(constants_1.element.tableColumns)[0];\r\n tableColumns.textContent = \"\";\r\n tableData.columnNames.forEach(function (column, columnIndex) {\r\n var tableColumn = tableDoc.createElementNS(tableDoc.documentElement.namespaceURI, constants_1.element.tableColumn);\r\n tableColumn.setAttribute(constants_1.elementAttributes.id, (columnIndex + 1).toString());\r\n tableColumn.setAttribute(constants_1.elementAttributes.name, column);\r\n tableColumns.appendChild(tableColumn);\r\n tableColumn.setAttribute(constants_1.elementAttributes.xr3uid, \"{\" + (0, uuid_1.v4)().toUpperCase() + \"}\");\r\n if (updateQueryTable) {\r\n tableColumn.setAttribute(constants_1.elementAttributes.uniqueName, (columnIndex + 1).toString());\r\n tableColumn.setAttribute(constants_1.elementAttributes.queryTableFieldId, (columnIndex + 1).toString());\r\n }\r\n });\r\n tableColumns.setAttribute(constants_1.elementAttributes.count, tableData.columnNames.length.toString());\r\n tableDoc\r\n .getElementsByTagName(constants_1.element.table)[0]\r\n .setAttribute(constants_1.elementAttributes.reference, \"A1:\".concat(documentUtils_1.default.getCellReferenceRelative(tableData.columnNames.length - 1, tableData.rows.length + 1)));\r\n tableDoc\r\n .getElementsByTagName(constants_1.element.autoFilter)[0]\r\n .setAttribute(constants_1.elementAttributes.reference, \"A1:\".concat(documentUtils_1.default.getCellReferenceRelative(tableData.columnNames.length - 1, tableData.rows.length + 1)));\r\n return serializer.serializeToString(tableDoc);\r\n};\r\nvar updateWorkbookInitialData = function (workbookXmlString, tableData) {\r\n var newParser = new xmldom_qsa_1.DOMParser();\r\n var newSerializer = new xmldom_qsa_1.XMLSerializer();\r\n var workbookDoc = newParser.parseFromString(workbookXmlString, constants_1.xmlTextResultType);\r\n var definedName = workbookDoc.getElementsByTagName(constants_1.element.definedName)[0];\r\n definedName.textContent =\r\n constants_1.defaults.sheetName + \"!$A$1:\".concat(documentUtils_1.default.getCellReferenceAbsolute(tableData.columnNames.length - 1, tableData.rows.length + 1));\r\n return newSerializer.serializeToString(workbookDoc);\r\n};\r\nvar updateQueryTablesInitialData = function (queryTableXmlString, tableData) {\r\n var parser = new xmldom_qsa_1.DOMParser();\r\n var serializer = new xmldom_qsa_1.XMLSerializer();\r\n var queryTableDoc = parser.parseFromString(queryTableXmlString, constants_1.xmlTextResultType);\r\n var queryTableFields = queryTableDoc.getElementsByTagName(constants_1.element.queryTableFields)[0];\r\n queryTableFields.textContent = \"\";\r\n tableData.columnNames.forEach(function (column, columnIndex) {\r\n var queryTableField = queryTableDoc.createElementNS(queryTableDoc.documentElement.namespaceURI, constants_1.element.queryTableField);\r\n queryTableField.setAttribute(constants_1.elementAttributes.id, (columnIndex + 1).toString());\r\n queryTableField.setAttribute(constants_1.elementAttributes.name, column);\r\n queryTableField.setAttribute(constants_1.elementAttributes.tableColumnId, (columnIndex + 1).toString());\r\n queryTableFields.appendChild(queryTableField);\r\n });\r\n queryTableFields.setAttribute(constants_1.elementAttributes.count, tableData.columnNames.length.toString());\r\n queryTableDoc.getElementsByTagName(constants_1.element.queryTableRefresh)[0].setAttribute(constants_1.elementAttributes.nextId, (tableData.columnNames.length + 1).toString());\r\n return serializer.serializeToString(queryTableDoc);\r\n};\r\nvar updateSheetsInitialData = function (sheetsXmlString, tableData) {\r\n var parser = new xmldom_qsa_1.DOMParser();\r\n var serializer = new xmldom_qsa_1.XMLSerializer();\r\n var sheetsDoc = parser.parseFromString(sheetsXmlString, constants_1.xmlTextResultType);\r\n var sheetData = sheetsDoc.getElementsByTagName(constants_1.element.sheetData)[0];\r\n sheetData.textContent = \"\";\r\n var rowIndex = 0;\r\n var columnRow = sheetsDoc.createElementNS(sheetsDoc.documentElement.namespaceURI, constants_1.element.row);\r\n columnRow.setAttribute(constants_1.elementAttributes.row, (rowIndex + 1).toString());\r\n columnRow.setAttribute(constants_1.elementAttributes.spans, \"1:\" + tableData.columnNames.length);\r\n columnRow.setAttribute(constants_1.elementAttributes.x14acDyDescent, \"0.3\");\r\n tableData.columnNames.forEach(function (col, colIndex) {\r\n columnRow.appendChild(documentUtils_1.default.createCell(sheetsDoc, colIndex, rowIndex, col));\r\n });\r\n sheetData.appendChild(columnRow);\r\n rowIndex++;\r\n tableData.rows.forEach(function (row) {\r\n var newRow = sheetsDoc.createElementNS(sheetsDoc.documentElement.namespaceURI, constants_1.element.row);\r\n newRow.setAttribute(constants_1.elementAttributes.row, (rowIndex + 1).toString());\r\n newRow.setAttribute(constants_1.elementAttributes.spans, \"1:\" + row.length);\r\n newRow.setAttribute(constants_1.elementAttributes.x14acDyDescent, \"0.3\");\r\n row.forEach(function (cellContent, colIndex) {\r\n newRow.appendChild(documentUtils_1.default.createCell(sheetsDoc, colIndex, rowIndex, cellContent));\r\n });\r\n sheetData.appendChild(newRow);\r\n rowIndex++;\r\n });\r\n var reference = documentUtils_1.default.getTableReference(tableData.rows[0].length - 1, tableData.rows.length + 1);\r\n sheetsDoc.getElementsByTagName(constants_1.element.dimension)[0].setAttribute(constants_1.elementAttributes.reference, reference);\r\n sheetsDoc.getElementsByTagName(constants_1.element.selection)[0].setAttribute(constants_1.elementAttributes.sqref, reference);\r\n return serializer.serializeToString(sheetsDoc);\r\n};\r\nexports[\"default\"] = {\r\n updateTableInitialDataIfNeeded: updateTableInitialDataIfNeeded,\r\n updateSheetsInitialData: updateSheetsInitialData,\r\n updateWorkbookInitialData: updateWorkbookInitialData,\r\n updateTablesInitialData: updateTablesInitialData,\r\n updateQueryTablesInitialData: updateQueryTablesInitialData,\r\n};\r\n\n\n//# sourceURL=webpack://@microsoft/connected-workbooks/./src/utils/tableUtils.ts?");
|
|
183
293
|
|
|
184
294
|
/***/ }),
|
|
185
295
|
|
|
@@ -187,10 +297,10 @@ eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpac
|
|
|
187
297
|
/*!*****************************************!*\
|
|
188
298
|
!*** ./src/utils/xmlInnerPartsUtils.ts ***!
|
|
189
299
|
\*****************************************/
|
|
190
|
-
/***/ ((__unused_webpack_module,
|
|
300
|
+
/***/ (function(__unused_webpack_module, exports, __webpack_require__) {
|
|
191
301
|
|
|
192
302
|
"use strict";
|
|
193
|
-
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"default\": () => (__WEBPACK_DEFAULT_EXPORT__)\n/* harmony export */ });\n/* harmony import */ var _types__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../types */ \"./src/types.ts\");\n/* harmony import */ var _constants__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./constants */ \"./src/utils/constants.ts\");\n/* harmony import */ var _documentUtils__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./documentUtils */ \"./src/utils/documentUtils.ts\");\n// Copyright (c) Microsoft Corporation.\r\n// Licensed under the MIT license.\r\nvar __awaiter = (undefined && undefined.__awaiter) || function (thisArg, _arguments, P, generator) {\r\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\r\n return new (P || (P = Promise))(function (resolve, reject) {\r\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\r\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\r\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\r\n step((generator = generator.apply(thisArg, _arguments || [])).next());\r\n });\r\n};\r\nvar __generator = (undefined && undefined.__generator) || function (thisArg, body) {\r\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\r\n return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\r\n function verb(n) { return function (v) { return step([n, v]); }; }\r\n function step(op) {\r\n if (f) throw new TypeError(\"Generator is already executing.\");\r\n while (g && (g = 0, op[0] && (_ = 0)), _) try {\r\n if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\r\n if (y = 0, t) op = [op[0] & 2, t.value];\r\n switch (op[0]) {\r\n case 0: case 1: t = op; break;\r\n case 4: _.label++; return { value: op[1], done: false };\r\n case 5: _.label++; y = op[1]; op = [0]; continue;\r\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\r\n default:\r\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\r\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\r\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\r\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\r\n if (t[2]) _.ops.pop();\r\n _.trys.pop(); continue;\r\n }\r\n op = body.call(thisArg, _);\r\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\r\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\r\n }\r\n};\r\n\r\n\r\n\r\nvar updateDocProps = function (zip, docProps) {\r\n if (docProps === void 0) { docProps = {}; }\r\n return __awaiter(void 0, void 0, void 0, function () {\r\n var _a, doc, properties, docPropsAutoUpdatedElementsArr, nowTime, docPropsModifiableElementsArr, serializer, newDoc;\r\n return __generator(this, function (_b) {\r\n switch (_b.label) {\r\n case 0: return [4 /*yield*/, _documentUtils__WEBPACK_IMPORTED_MODULE_2__[\"default\"].getDocPropsProperties(zip)];\r\n case 1:\r\n _a = _b.sent(), doc = _a.doc, properties = _a.properties;\r\n docPropsAutoUpdatedElementsArr = Object.keys(_types__WEBPACK_IMPORTED_MODULE_0__.DocPropsAutoUpdatedElements);\r\n nowTime = new Date().toISOString();\r\n docPropsAutoUpdatedElementsArr.forEach(function (tag) {\r\n _documentUtils__WEBPACK_IMPORTED_MODULE_2__[\"default\"].createOrUpdateProperty(doc, properties, _types__WEBPACK_IMPORTED_MODULE_0__.DocPropsAutoUpdatedElements[tag], nowTime);\r\n });\r\n docPropsModifiableElementsArr = Object.keys(_types__WEBPACK_IMPORTED_MODULE_0__.DocPropsModifiableElements);\r\n docPropsModifiableElementsArr\r\n .map(function (key) { return ({\r\n name: _types__WEBPACK_IMPORTED_MODULE_0__.DocPropsModifiableElements[key],\r\n value: docProps[key],\r\n }); })\r\n .forEach(function (kvp) {\r\n _documentUtils__WEBPACK_IMPORTED_MODULE_2__[\"default\"].createOrUpdateProperty(doc, properties, kvp.name, kvp.value);\r\n });\r\n serializer = new XMLSerializer();\r\n newDoc = serializer.serializeToString(doc);\r\n zip.file(_constants__WEBPACK_IMPORTED_MODULE_1__.docPropsCoreXmlPath, newDoc);\r\n return [2 /*return*/];\r\n }\r\n });\r\n });\r\n};\r\nvar clearLabelInfo = function (zip) { return __awaiter(void 0, void 0, void 0, function () {\r\n var relsString, parser, doc, relationships, element, serializer, newDoc;\r\n var _a, _b, _c, _d;\r\n return __generator(this, function (_e) {\r\n switch (_e.label) {\r\n case 0:\r\n // remove docMetadata folder that contains only LabelInfo.xml in template file.\r\n zip.remove(_constants__WEBPACK_IMPORTED_MODULE_1__.docMetadataXmlPath);\r\n return [4 /*yield*/, ((_a = zip.file(_constants__WEBPACK_IMPORTED_MODULE_1__.relsXmlPath)) === null || _a === void 0 ? void 0 : _a.async(_constants__WEBPACK_IMPORTED_MODULE_1__.textResultType))];\r\n case 1:\r\n relsString = _e.sent();\r\n if (relsString === undefined) {\r\n throw new Error(_constants__WEBPACK_IMPORTED_MODULE_1__.relsNotFoundErr);\r\n }\r\n parser = new DOMParser();\r\n doc = parser.parseFromString(relsString, _constants__WEBPACK_IMPORTED_MODULE_1__.xmlTextResultType);\r\n relationships = doc.querySelector(\"Relationships\");\r\n if (relationships === null) {\r\n throw new Error(_constants__WEBPACK_IMPORTED_MODULE_1__.unexpectedErr);\r\n }\r\n element = relationships.querySelector('Relationship[Target=\"docMetadata/LabelInfo.xml\"]');\r\n if (element) {\r\n relationships.removeChild(element);\r\n }\r\n (_b = relationships.querySelector('Relationship[Target=\"xl/workbook.xml\"]')) === null || _b === void 0 ? void 0 : _b.setAttribute(\"Id\", \"rId1\");\r\n (_c = relationships.querySelector('Relationship[Target=\"docProps/core.xml\"]')) === null || _c === void 0 ? void 0 : _c.setAttribute(\"Id\", \"rId2\");\r\n (_d = relationships.querySelector('Relationship[Target=\"docProps/app.xml\"]')) === null || _d === void 0 ? void 0 : _d.setAttribute(\"Id\", \"rId3\");\r\n serializer = new XMLSerializer();\r\n newDoc = serializer.serializeToString(doc);\r\n zip.file(_constants__WEBPACK_IMPORTED_MODULE_1__.relsXmlPath, newDoc);\r\n return [2 /*return*/];\r\n }\r\n });\r\n}); };\r\nvar updateConnections = function (connectionsXmlString, queryName, refreshOnOpen) {\r\n var _a, _b, _c;\r\n var parser = new DOMParser();\r\n var serializer = new XMLSerializer();\r\n var refreshOnLoadValue = refreshOnOpen ? _constants__WEBPACK_IMPORTED_MODULE_1__.trueValue : _constants__WEBPACK_IMPORTED_MODULE_1__.falseValue;\r\n var connectionsDoc = parser.parseFromString(connectionsXmlString, _constants__WEBPACK_IMPORTED_MODULE_1__.xmlTextResultType);\r\n var connectionsProperties = connectionsDoc.getElementsByTagName(_constants__WEBPACK_IMPORTED_MODULE_1__.element.databaseProperties);\r\n var dbPr = connectionsProperties[0];\r\n dbPr.setAttribute(_constants__WEBPACK_IMPORTED_MODULE_1__.elementAttributes.refreshOnLoad, refreshOnLoadValue);\r\n // Update query details to match queryName\r\n (_a = dbPr.parentElement) === null || _a === void 0 ? void 0 : _a.setAttribute(_constants__WEBPACK_IMPORTED_MODULE_1__.elementAttributes.name, _constants__WEBPACK_IMPORTED_MODULE_1__.elementAttributesValues.connectionName(queryName));\r\n (_b = dbPr.parentElement) === null || _b === void 0 ? void 0 : _b.setAttribute(_constants__WEBPACK_IMPORTED_MODULE_1__.elementAttributes.description, _constants__WEBPACK_IMPORTED_MODULE_1__.elementAttributesValues.connectionDescription(queryName));\r\n dbPr.setAttribute(_constants__WEBPACK_IMPORTED_MODULE_1__.elementAttributes.connection, _constants__WEBPACK_IMPORTED_MODULE_1__.elementAttributesValues.connection(queryName));\r\n dbPr.setAttribute(_constants__WEBPACK_IMPORTED_MODULE_1__.elementAttributes.command, _constants__WEBPACK_IMPORTED_MODULE_1__.elementAttributesValues.connectionCommand(queryName));\r\n var connectionId = (_c = dbPr.parentElement) === null || _c === void 0 ? void 0 : _c.getAttribute(_constants__WEBPACK_IMPORTED_MODULE_1__.elementAttributes.id);\r\n var connectionXmlFileString = serializer.serializeToString(connectionsDoc);\r\n if (connectionId === null) {\r\n throw new Error(_constants__WEBPACK_IMPORTED_MODULE_1__.connectionsNotFoundErr);\r\n }\r\n return { connectionId: connectionId, connectionXmlFileString: connectionXmlFileString };\r\n};\r\nvar updateSharedStrings = function (sharedStringsXmlString, queryName) {\r\n var parser = new DOMParser();\r\n var serializer = new XMLSerializer();\r\n var sharedStringsDoc = parser.parseFromString(sharedStringsXmlString, _constants__WEBPACK_IMPORTED_MODULE_1__.xmlTextResultType);\r\n var sharedStringsTable = sharedStringsDoc.getElementsByTagName(_constants__WEBPACK_IMPORTED_MODULE_1__.element.sharedStringTable)[0];\r\n if (!sharedStringsTable) {\r\n throw new Error(_constants__WEBPACK_IMPORTED_MODULE_1__.sharedStringsNotFoundErr);\r\n }\r\n var textElementCollection = sharedStringsDoc.getElementsByTagName(_constants__WEBPACK_IMPORTED_MODULE_1__.element.text);\r\n var textElement = null;\r\n var sharedStringIndex = textElementCollection.length;\r\n if (textElementCollection && textElementCollection.length) {\r\n for (var i = 0; i < textElementCollection.length; i++) {\r\n if (textElementCollection[i].innerHTML === queryName) {\r\n textElement = textElementCollection[i];\r\n sharedStringIndex = i + 1;\r\n break;\r\n }\r\n }\r\n }\r\n if (textElement === null) {\r\n if (sharedStringsDoc.documentElement.namespaceURI) {\r\n textElement = sharedStringsDoc.createElementNS(sharedStringsDoc.documentElement.namespaceURI, _constants__WEBPACK_IMPORTED_MODULE_1__.element.text);\r\n textElement.textContent = queryName;\r\n var siElement = sharedStringsDoc.createElementNS(sharedStringsDoc.documentElement.namespaceURI, _constants__WEBPACK_IMPORTED_MODULE_1__.element.sharedStringItem);\r\n siElement.appendChild(textElement);\r\n sharedStringsDoc.getElementsByTagName(_constants__WEBPACK_IMPORTED_MODULE_1__.element.sharedStringTable)[0].appendChild(siElement);\r\n }\r\n var value = sharedStringsTable.getAttribute(_constants__WEBPACK_IMPORTED_MODULE_1__.elementAttributes.count);\r\n if (value) {\r\n sharedStringsTable.setAttribute(_constants__WEBPACK_IMPORTED_MODULE_1__.elementAttributes.count, (parseInt(value) + 1).toString());\r\n }\r\n var uniqueValue = sharedStringsTable.getAttribute(_constants__WEBPACK_IMPORTED_MODULE_1__.elementAttributes.uniqueCount);\r\n if (uniqueValue) {\r\n sharedStringsTable.setAttribute(_constants__WEBPACK_IMPORTED_MODULE_1__.elementAttributes.uniqueCount, (parseInt(uniqueValue) + 1).toString());\r\n }\r\n }\r\n var newSharedStrings = serializer.serializeToString(sharedStringsDoc);\r\n return { sharedStringIndex: sharedStringIndex, newSharedStrings: newSharedStrings };\r\n};\r\nvar updateWorksheet = function (sheetsXmlString, sharedStringIndex) {\r\n var parser = new DOMParser();\r\n var serializer = new XMLSerializer();\r\n var sheetsDoc = parser.parseFromString(sheetsXmlString, _constants__WEBPACK_IMPORTED_MODULE_1__.xmlTextResultType);\r\n sheetsDoc.getElementsByTagName(_constants__WEBPACK_IMPORTED_MODULE_1__.element.cellValue)[0].innerHTML = sharedStringIndex.toString();\r\n var newSheet = serializer.serializeToString(sheetsDoc);\r\n return newSheet;\r\n};\r\nvar updatePivotTablesandQueryTables = function (zip, queryName, refreshOnOpen, connectionId) { return __awaiter(void 0, void 0, void 0, function () {\r\n var found, queryTablePromises, pivotCachePromises;\r\n var _a, _b;\r\n return __generator(this, function (_c) {\r\n switch (_c.label) {\r\n case 0:\r\n found = false;\r\n queryTablePromises = [];\r\n (_a = zip.folder(_constants__WEBPACK_IMPORTED_MODULE_1__.queryTablesPath)) === null || _a === void 0 ? void 0 : _a.forEach(function (relativePath, queryTableFile) { return __awaiter(void 0, void 0, void 0, function () {\r\n return __generator(this, function (_a) {\r\n queryTablePromises.push((function () {\r\n return queryTableFile.async(_constants__WEBPACK_IMPORTED_MODULE_1__.textResultType).then(function (queryTableString) {\r\n return {\r\n path: relativePath,\r\n queryTableXmlString: queryTableString,\r\n };\r\n });\r\n })());\r\n return [2 /*return*/];\r\n });\r\n }); });\r\n return [4 /*yield*/, Promise.all(queryTablePromises)];\r\n case 1:\r\n (_c.sent()).forEach(function (_a) {\r\n var path = _a.path, queryTableXmlString = _a.queryTableXmlString;\r\n var _b = updateQueryTable(queryTableXmlString, connectionId, refreshOnOpen), isQueryTableUpdated = _b.isQueryTableUpdated, newQueryTable = _b.newQueryTable;\r\n zip.file(_constants__WEBPACK_IMPORTED_MODULE_1__.queryTablesPath + path, newQueryTable);\r\n if (isQueryTableUpdated) {\r\n found = true;\r\n }\r\n });\r\n if (found) {\r\n return [2 /*return*/];\r\n }\r\n pivotCachePromises = [];\r\n (_b = zip.folder(_constants__WEBPACK_IMPORTED_MODULE_1__.pivotCachesPath)) === null || _b === void 0 ? void 0 : _b.forEach(function (relativePath, pivotCacheFile) { return __awaiter(void 0, void 0, void 0, function () {\r\n return __generator(this, function (_a) {\r\n if (relativePath.startsWith(_constants__WEBPACK_IMPORTED_MODULE_1__.pivotCachesPathPrefix)) {\r\n pivotCachePromises.push((function () {\r\n return pivotCacheFile.async(_constants__WEBPACK_IMPORTED_MODULE_1__.textResultType).then(function (pivotCacheString) {\r\n return {\r\n path: relativePath,\r\n pivotCacheXmlString: pivotCacheString,\r\n };\r\n });\r\n })());\r\n }\r\n return [2 /*return*/];\r\n });\r\n }); });\r\n return [4 /*yield*/, Promise.all(pivotCachePromises)];\r\n case 2:\r\n (_c.sent()).forEach(function (_a) {\r\n var path = _a.path, pivotCacheXmlString = _a.pivotCacheXmlString;\r\n var _b = updatePivotTable(pivotCacheXmlString, connectionId, refreshOnOpen), isPivotTableUpdated = _b.isPivotTableUpdated, newPivotTable = _b.newPivotTable;\r\n zip.file(_constants__WEBPACK_IMPORTED_MODULE_1__.pivotCachesPath + path, newPivotTable);\r\n if (isPivotTableUpdated) {\r\n found = true;\r\n }\r\n });\r\n if (!found) {\r\n throw new Error(_constants__WEBPACK_IMPORTED_MODULE_1__.queryAndPivotTableNotFoundErr);\r\n }\r\n return [2 /*return*/];\r\n }\r\n });\r\n}); };\r\nvar updateQueryTable = function (tableXmlString, connectionId, refreshOnOpen) {\r\n var refreshOnLoadValue = refreshOnOpen ? _constants__WEBPACK_IMPORTED_MODULE_1__.trueValue : _constants__WEBPACK_IMPORTED_MODULE_1__.falseValue;\r\n var isQueryTableUpdated = false;\r\n var parser = new DOMParser();\r\n var serializer = new XMLSerializer();\r\n var queryTableDoc = parser.parseFromString(tableXmlString, _constants__WEBPACK_IMPORTED_MODULE_1__.xmlTextResultType);\r\n var queryTable = queryTableDoc.getElementsByTagName(_constants__WEBPACK_IMPORTED_MODULE_1__.element.queryTable)[0];\r\n var newQueryTable = _constants__WEBPACK_IMPORTED_MODULE_1__.emptyValue;\r\n if (queryTable.getAttribute(_constants__WEBPACK_IMPORTED_MODULE_1__.elementAttributes.connectionId) == connectionId) {\r\n queryTable.setAttribute(_constants__WEBPACK_IMPORTED_MODULE_1__.elementAttributes.refreshOnLoad, refreshOnLoadValue);\r\n newQueryTable = serializer.serializeToString(queryTableDoc);\r\n isQueryTableUpdated = true;\r\n }\r\n return { isQueryTableUpdated: isQueryTableUpdated, newQueryTable: newQueryTable };\r\n};\r\nvar updatePivotTable = function (tableXmlString, connectionId, refreshOnOpen) {\r\n var refreshOnLoadValue = refreshOnOpen ? _constants__WEBPACK_IMPORTED_MODULE_1__.trueValue : _constants__WEBPACK_IMPORTED_MODULE_1__.falseValue;\r\n var isPivotTableUpdated = false;\r\n var parser = new DOMParser();\r\n var serializer = new XMLSerializer();\r\n var pivotCacheDoc = parser.parseFromString(tableXmlString, _constants__WEBPACK_IMPORTED_MODULE_1__.xmlTextResultType);\r\n var cacheSource = pivotCacheDoc.getElementsByTagName(_constants__WEBPACK_IMPORTED_MODULE_1__.element.cacheSource)[0];\r\n var newPivotTable = _constants__WEBPACK_IMPORTED_MODULE_1__.emptyValue;\r\n if (cacheSource.getAttribute(_constants__WEBPACK_IMPORTED_MODULE_1__.elementAttributes.connectionId) == connectionId) {\r\n cacheSource = cacheSource.parentElement;\r\n cacheSource.setAttribute(_constants__WEBPACK_IMPORTED_MODULE_1__.elementAttributes.refreshOnLoad, refreshOnLoadValue);\r\n newPivotTable = serializer.serializeToString(pivotCacheDoc);\r\n isPivotTableUpdated = true;\r\n }\r\n return { isPivotTableUpdated: isPivotTableUpdated, newPivotTable: newPivotTable };\r\n};\r\n/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = ({\r\n updateDocProps: updateDocProps,\r\n clearLabelInfo: clearLabelInfo,\r\n updateConnections: updateConnections,\r\n updateSharedStrings: updateSharedStrings,\r\n updateWorksheet: updateWorksheet,\r\n updatePivotTablesandQueryTables: updatePivotTablesandQueryTables,\r\n updateQueryTable: updateQueryTable,\r\n updatePivotTable: updatePivotTable,\r\n});\r\n\n\n//# sourceURL=webpack://@microsoft/connected-workbooks/./src/utils/xmlInnerPartsUtils.ts?");
|
|
303
|
+
eval("\r\n// Copyright (c) Microsoft Corporation.\r\n// Licensed under the MIT license.\r\nvar __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {\r\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\r\n return new (P || (P = Promise))(function (resolve, reject) {\r\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\r\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\r\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\r\n step((generator = generator.apply(thisArg, _arguments || [])).next());\r\n });\r\n};\r\nvar __generator = (this && this.__generator) || function (thisArg, body) {\r\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\r\n return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\r\n function verb(n) { return function (v) { return step([n, v]); }; }\r\n function step(op) {\r\n if (f) throw new TypeError(\"Generator is already executing.\");\r\n while (g && (g = 0, op[0] && (_ = 0)), _) try {\r\n if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\r\n if (y = 0, t) op = [op[0] & 2, t.value];\r\n switch (op[0]) {\r\n case 0: case 1: t = op; break;\r\n case 4: _.label++; return { value: op[1], done: false };\r\n case 5: _.label++; y = op[1]; op = [0]; continue;\r\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\r\n default:\r\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\r\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\r\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\r\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\r\n if (t[2]) _.ops.pop();\r\n _.trys.pop(); continue;\r\n }\r\n op = body.call(thisArg, _);\r\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\r\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\r\n }\r\n};\r\nvar __importDefault = (this && this.__importDefault) || function (mod) {\r\n return (mod && mod.__esModule) ? mod : { \"default\": mod };\r\n};\r\nObject.defineProperty(exports, \"__esModule\", ({ value: true }));\r\nvar types_1 = __webpack_require__(/*! ../types */ \"./src/types.ts\");\r\nvar constants_1 = __webpack_require__(/*! ./constants */ \"./src/utils/constants.ts\");\r\nvar documentUtils_1 = __importDefault(__webpack_require__(/*! ./documentUtils */ \"./src/utils/documentUtils.ts\"));\r\nvar xmldom_qsa_1 = __webpack_require__(/*! xmldom-qsa */ \"./node_modules/xmldom-qsa/lib/index.js\");\r\nvar updateDocProps = function (zip, docProps) {\r\n if (docProps === void 0) { docProps = {}; }\r\n return __awaiter(void 0, void 0, void 0, function () {\r\n var _a, doc, properties, docPropsAutoUpdatedElementsArr, nowTime, docPropsModifiableElementsArr, serializer, newDoc;\r\n return __generator(this, function (_b) {\r\n switch (_b.label) {\r\n case 0: return [4 /*yield*/, documentUtils_1.default.getDocPropsProperties(zip)];\r\n case 1:\r\n _a = _b.sent(), doc = _a.doc, properties = _a.properties;\r\n docPropsAutoUpdatedElementsArr = Object.keys(types_1.DocPropsAutoUpdatedElements);\r\n nowTime = new Date().toISOString();\r\n docPropsAutoUpdatedElementsArr.forEach(function (tag) {\r\n documentUtils_1.default.createOrUpdateProperty(doc, properties, types_1.DocPropsAutoUpdatedElements[tag], nowTime);\r\n });\r\n docPropsModifiableElementsArr = Object.keys(types_1.DocPropsModifiableElements);\r\n docPropsModifiableElementsArr\r\n .map(function (key) { return ({\r\n name: types_1.DocPropsModifiableElements[key],\r\n value: docProps[key],\r\n }); })\r\n .forEach(function (kvp) {\r\n documentUtils_1.default.createOrUpdateProperty(doc, properties, kvp.name, kvp.value);\r\n });\r\n serializer = new xmldom_qsa_1.XMLSerializer();\r\n newDoc = serializer.serializeToString(doc);\r\n zip.file(constants_1.docPropsCoreXmlPath, newDoc);\r\n return [2 /*return*/];\r\n }\r\n });\r\n });\r\n};\r\nvar clearLabelInfo = function (zip) { return __awaiter(void 0, void 0, void 0, function () {\r\n var relsString, parser, doc, relationships, element, serializer, newDoc;\r\n var _a, _b, _c, _d;\r\n return __generator(this, function (_e) {\r\n switch (_e.label) {\r\n case 0:\r\n // remove docMetadata folder that contains only LabelInfo.xml in template file.\r\n zip.remove(constants_1.docMetadataXmlPath);\r\n return [4 /*yield*/, ((_a = zip.file(constants_1.relsXmlPath)) === null || _a === void 0 ? void 0 : _a.async(constants_1.textResultType))];\r\n case 1:\r\n relsString = _e.sent();\r\n if (relsString === undefined) {\r\n throw new Error(constants_1.relsNotFoundErr);\r\n }\r\n parser = new xmldom_qsa_1.DOMParser();\r\n doc = parser.parseFromString(relsString, constants_1.xmlTextResultType);\r\n relationships = doc.querySelector(\"Relationships\");\r\n if (relationships === null) {\r\n throw new Error(constants_1.unexpectedErr);\r\n }\r\n element = relationships.querySelector('Relationship[Target=\"docMetadata/LabelInfo.xml\"]');\r\n if (element) {\r\n relationships.removeChild(element);\r\n }\r\n (_b = relationships.querySelector('Relationship[Target=\"xl/workbook.xml\"]')) === null || _b === void 0 ? void 0 : _b.setAttribute(\"Id\", \"rId1\");\r\n (_c = relationships.querySelector('Relationship[Target=\"docProps/core.xml\"]')) === null || _c === void 0 ? void 0 : _c.setAttribute(\"Id\", \"rId2\");\r\n (_d = relationships.querySelector('Relationship[Target=\"docProps/app.xml\"]')) === null || _d === void 0 ? void 0 : _d.setAttribute(\"Id\", \"rId3\");\r\n serializer = new xmldom_qsa_1.XMLSerializer();\r\n newDoc = serializer.serializeToString(doc);\r\n zip.file(constants_1.relsXmlPath, newDoc);\r\n return [2 /*return*/];\r\n }\r\n });\r\n}); };\r\nvar updateConnections = function (connectionsXmlString, queryName, refreshOnOpen) {\r\n var _a, _b, _c;\r\n var parser = new xmldom_qsa_1.DOMParser();\r\n var serializer = new xmldom_qsa_1.XMLSerializer();\r\n var refreshOnLoadValue = refreshOnOpen ? constants_1.trueValue : constants_1.falseValue;\r\n var connectionsDoc = parser.parseFromString(connectionsXmlString, constants_1.xmlTextResultType);\r\n var connectionsProperties = connectionsDoc.getElementsByTagName(constants_1.element.databaseProperties);\r\n var dbPr = connectionsProperties[0];\r\n dbPr.setAttribute(constants_1.elementAttributes.refreshOnLoad, refreshOnLoadValue);\r\n // Update query details to match queryName\r\n (_a = dbPr.parentNode) === null || _a === void 0 ? void 0 : _a.setAttribute(constants_1.elementAttributes.name, constants_1.elementAttributesValues.connectionName(queryName));\r\n (_b = dbPr.parentNode) === null || _b === void 0 ? void 0 : _b.setAttribute(constants_1.elementAttributes.description, constants_1.elementAttributesValues.connectionDescription(queryName));\r\n dbPr.setAttribute(constants_1.elementAttributes.connection, constants_1.elementAttributesValues.connection(queryName));\r\n dbPr.setAttribute(constants_1.elementAttributes.command, constants_1.elementAttributesValues.connectionCommand(queryName));\r\n var connectionId = (_c = dbPr.parentNode) === null || _c === void 0 ? void 0 : _c.getAttribute(constants_1.elementAttributes.id);\r\n var connectionXmlFileString = serializer.serializeToString(connectionsDoc);\r\n if (connectionId === null) {\r\n throw new Error(constants_1.connectionsNotFoundErr);\r\n }\r\n return { connectionId: connectionId, connectionXmlFileString: connectionXmlFileString };\r\n};\r\nvar updateSharedStrings = function (sharedStringsXmlString, queryName) {\r\n var parser = new xmldom_qsa_1.DOMParser();\r\n var serializer = new xmldom_qsa_1.XMLSerializer();\r\n var sharedStringsDoc = parser.parseFromString(sharedStringsXmlString, constants_1.xmlTextResultType);\r\n var sharedStringsTable = sharedStringsDoc.getElementsByTagName(constants_1.element.sharedStringTable)[0];\r\n if (!sharedStringsTable) {\r\n throw new Error(constants_1.sharedStringsNotFoundErr);\r\n }\r\n var textElementCollection = sharedStringsDoc.getElementsByTagName(constants_1.element.text);\r\n var textElement = null;\r\n var sharedStringIndex = textElementCollection.length;\r\n if (textElementCollection && textElementCollection.length) {\r\n for (var i = 0; i < textElementCollection.length; i++) {\r\n if (textElementCollection[i].textContent === queryName) {\r\n textElement = textElementCollection[i];\r\n sharedStringIndex = i + 1;\r\n break;\r\n }\r\n }\r\n }\r\n if (textElement === null) {\r\n if (sharedStringsDoc.documentElement.namespaceURI) {\r\n textElement = sharedStringsDoc.createElementNS(sharedStringsDoc.documentElement.namespaceURI, constants_1.element.text);\r\n textElement.textContent = queryName;\r\n var siElement = sharedStringsDoc.createElementNS(sharedStringsDoc.documentElement.namespaceURI, constants_1.element.sharedStringItem);\r\n siElement.appendChild(textElement);\r\n sharedStringsDoc.getElementsByTagName(constants_1.element.sharedStringTable)[0].appendChild(siElement);\r\n }\r\n var value = sharedStringsTable.getAttribute(constants_1.elementAttributes.count);\r\n if (value) {\r\n sharedStringsTable.setAttribute(constants_1.elementAttributes.count, (parseInt(value) + 1).toString());\r\n }\r\n var uniqueValue = sharedStringsTable.getAttribute(constants_1.elementAttributes.uniqueCount);\r\n if (uniqueValue) {\r\n sharedStringsTable.setAttribute(constants_1.elementAttributes.uniqueCount, (parseInt(uniqueValue) + 1).toString());\r\n }\r\n }\r\n var newSharedStrings = serializer.serializeToString(sharedStringsDoc);\r\n return { sharedStringIndex: sharedStringIndex, newSharedStrings: newSharedStrings };\r\n};\r\nvar updateWorksheet = function (sheetsXmlString, sharedStringIndex) {\r\n var parser = new xmldom_qsa_1.DOMParser();\r\n var serializer = new xmldom_qsa_1.XMLSerializer();\r\n var sheetsDoc = parser.parseFromString(sheetsXmlString, constants_1.xmlTextResultType);\r\n sheetsDoc.getElementsByTagName(constants_1.element.cellValue)[0].innerHTML = sharedStringIndex.toString();\r\n var newSheet = serializer.serializeToString(sheetsDoc);\r\n return newSheet;\r\n};\r\nvar updatePivotTablesandQueryTables = function (zip, queryName, refreshOnOpen, connectionId) { return __awaiter(void 0, void 0, void 0, function () {\r\n var found, queryTablePromises, pivotCachePromises;\r\n var _a, _b;\r\n return __generator(this, function (_c) {\r\n switch (_c.label) {\r\n case 0:\r\n found = false;\r\n queryTablePromises = [];\r\n (_a = zip.folder(constants_1.queryTablesPath)) === null || _a === void 0 ? void 0 : _a.forEach(function (relativePath, queryTableFile) { return __awaiter(void 0, void 0, void 0, function () {\r\n return __generator(this, function (_a) {\r\n queryTablePromises.push((function () {\r\n return queryTableFile.async(constants_1.textResultType).then(function (queryTableString) {\r\n return {\r\n path: relativePath,\r\n queryTableXmlString: queryTableString,\r\n };\r\n });\r\n })());\r\n return [2 /*return*/];\r\n });\r\n }); });\r\n return [4 /*yield*/, Promise.all(queryTablePromises)];\r\n case 1:\r\n (_c.sent()).forEach(function (_a) {\r\n var path = _a.path, queryTableXmlString = _a.queryTableXmlString;\r\n var _b = updateQueryTable(queryTableXmlString, connectionId, refreshOnOpen), isQueryTableUpdated = _b.isQueryTableUpdated, newQueryTable = _b.newQueryTable;\r\n zip.file(constants_1.queryTablesPath + path, newQueryTable);\r\n if (isQueryTableUpdated) {\r\n found = true;\r\n }\r\n });\r\n if (found) {\r\n return [2 /*return*/];\r\n }\r\n pivotCachePromises = [];\r\n (_b = zip.folder(constants_1.pivotCachesPath)) === null || _b === void 0 ? void 0 : _b.forEach(function (relativePath, pivotCacheFile) { return __awaiter(void 0, void 0, void 0, function () {\r\n return __generator(this, function (_a) {\r\n if (relativePath.startsWith(constants_1.pivotCachesPathPrefix)) {\r\n pivotCachePromises.push((function () {\r\n return pivotCacheFile.async(constants_1.textResultType).then(function (pivotCacheString) {\r\n return {\r\n path: relativePath,\r\n pivotCacheXmlString: pivotCacheString,\r\n };\r\n });\r\n })());\r\n }\r\n return [2 /*return*/];\r\n });\r\n }); });\r\n return [4 /*yield*/, Promise.all(pivotCachePromises)];\r\n case 2:\r\n (_c.sent()).forEach(function (_a) {\r\n var path = _a.path, pivotCacheXmlString = _a.pivotCacheXmlString;\r\n var _b = updatePivotTable(pivotCacheXmlString, connectionId, refreshOnOpen), isPivotTableUpdated = _b.isPivotTableUpdated, newPivotTable = _b.newPivotTable;\r\n zip.file(constants_1.pivotCachesPath + path, newPivotTable);\r\n if (isPivotTableUpdated) {\r\n found = true;\r\n }\r\n });\r\n if (!found) {\r\n throw new Error(constants_1.queryAndPivotTableNotFoundErr);\r\n }\r\n return [2 /*return*/];\r\n }\r\n });\r\n}); };\r\nvar updateQueryTable = function (tableXmlString, connectionId, refreshOnOpen) {\r\n var refreshOnLoadValue = refreshOnOpen ? constants_1.trueValue : constants_1.falseValue;\r\n var isQueryTableUpdated = false;\r\n var parser = new xmldom_qsa_1.DOMParser();\r\n var serializer = new xmldom_qsa_1.XMLSerializer();\r\n var queryTableDoc = parser.parseFromString(tableXmlString, constants_1.xmlTextResultType);\r\n var queryTable = queryTableDoc.getElementsByTagName(constants_1.element.queryTable)[0];\r\n var newQueryTable = constants_1.emptyValue;\r\n if (queryTable.getAttribute(constants_1.elementAttributes.connectionId) == connectionId) {\r\n queryTable.setAttribute(constants_1.elementAttributes.refreshOnLoad, refreshOnLoadValue);\r\n newQueryTable = serializer.serializeToString(queryTableDoc);\r\n isQueryTableUpdated = true;\r\n }\r\n return { isQueryTableUpdated: isQueryTableUpdated, newQueryTable: newQueryTable };\r\n};\r\nvar updatePivotTable = function (tableXmlString, connectionId, refreshOnOpen) {\r\n var refreshOnLoadValue = refreshOnOpen ? constants_1.trueValue : constants_1.falseValue;\r\n var isPivotTableUpdated = false;\r\n var parser = new xmldom_qsa_1.DOMParser();\r\n var serializer = new xmldom_qsa_1.XMLSerializer();\r\n var pivotCacheDoc = parser.parseFromString(tableXmlString, constants_1.xmlTextResultType);\r\n var cacheSource = pivotCacheDoc.getElementsByTagName(constants_1.element.cacheSource)[0];\r\n var newPivotTable = constants_1.emptyValue;\r\n if (cacheSource.getAttribute(constants_1.elementAttributes.connectionId) == connectionId) {\r\n cacheSource = cacheSource.parentElement;\r\n cacheSource.setAttribute(constants_1.elementAttributes.refreshOnLoad, refreshOnLoadValue);\r\n newPivotTable = serializer.serializeToString(pivotCacheDoc);\r\n isPivotTableUpdated = true;\r\n }\r\n return { isPivotTableUpdated: isPivotTableUpdated, newPivotTable: newPivotTable };\r\n};\r\nexports[\"default\"] = {\r\n updateDocProps: updateDocProps,\r\n clearLabelInfo: clearLabelInfo,\r\n updateConnections: updateConnections,\r\n updateSharedStrings: updateSharedStrings,\r\n updateWorksheet: updateWorksheet,\r\n updatePivotTablesandQueryTables: updatePivotTablesandQueryTables,\r\n updateQueryTable: updateQueryTable,\r\n updatePivotTable: updatePivotTable,\r\n};\r\n\n\n//# sourceURL=webpack://@microsoft/connected-workbooks/./src/utils/xmlInnerPartsUtils.ts?");
|
|
194
304
|
|
|
195
305
|
/***/ }),
|
|
196
306
|
|
|
@@ -198,10 +308,10 @@ eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpac
|
|
|
198
308
|
/*!************************************!*\
|
|
199
309
|
!*** ./src/utils/xmlPartsUtils.ts ***!
|
|
200
310
|
\************************************/
|
|
201
|
-
/***/ ((__unused_webpack_module,
|
|
311
|
+
/***/ (function(__unused_webpack_module, exports, __webpack_require__) {
|
|
202
312
|
|
|
203
313
|
"use strict";
|
|
204
|
-
eval("
|
|
314
|
+
eval("\r\n// Copyright (c) Microsoft Corporation.\r\n// Licensed under the MIT license.\r\nvar __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {\r\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\r\n return new (P || (P = Promise))(function (resolve, reject) {\r\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\r\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\r\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\r\n step((generator = generator.apply(thisArg, _arguments || [])).next());\r\n });\r\n};\r\nvar __generator = (this && this.__generator) || function (thisArg, body) {\r\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\r\n return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\r\n function verb(n) { return function (v) { return step([n, v]); }; }\r\n function step(op) {\r\n if (f) throw new TypeError(\"Generator is already executing.\");\r\n while (g && (g = 0, op[0] && (_ = 0)), _) try {\r\n if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\r\n if (y = 0, t) op = [op[0] & 2, t.value];\r\n switch (op[0]) {\r\n case 0: case 1: t = op; break;\r\n case 4: _.label++; return { value: op[1], done: false };\r\n case 5: _.label++; y = op[1]; op = [0]; continue;\r\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\r\n default:\r\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\r\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\r\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\r\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\r\n if (t[2]) _.ops.pop();\r\n _.trys.pop(); continue;\r\n }\r\n op = body.call(thisArg, _);\r\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\r\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\r\n }\r\n};\r\nvar __importDefault = (this && this.__importDefault) || function (mod) {\r\n return (mod && mod.__esModule) ? mod : { \"default\": mod };\r\n};\r\nObject.defineProperty(exports, \"__esModule\", ({ value: true }));\r\nvar constants_1 = __webpack_require__(/*! ./constants */ \"./src/utils/constants.ts\");\r\nvar mashupDocumentParser_1 = __webpack_require__(/*! ./mashupDocumentParser */ \"./src/utils/mashupDocumentParser.ts\");\r\nvar pqUtils_1 = __importDefault(__webpack_require__(/*! ./pqUtils */ \"./src/utils/pqUtils.ts\"));\r\nvar xmlInnerPartsUtils_1 = __importDefault(__webpack_require__(/*! ./xmlInnerPartsUtils */ \"./src/utils/xmlInnerPartsUtils.ts\"));\r\nvar tableUtils_1 = __importDefault(__webpack_require__(/*! ./tableUtils */ \"./src/utils/tableUtils.ts\"));\r\nvar updateWorkbookDataAndConfigurations = function (zip, fileConfigs, tableData, updateQueryTable) {\r\n if (updateQueryTable === void 0) { updateQueryTable = false; }\r\n return __awaiter(void 0, void 0, void 0, function () {\r\n return __generator(this, function (_a) {\r\n switch (_a.label) {\r\n case 0: return [4 /*yield*/, xmlInnerPartsUtils_1.default.updateDocProps(zip, fileConfigs === null || fileConfigs === void 0 ? void 0 : fileConfigs.docProps)];\r\n case 1:\r\n _a.sent();\r\n if (!((fileConfigs === null || fileConfigs === void 0 ? void 0 : fileConfigs.templateFile) === undefined)) return [3 /*break*/, 3];\r\n // If we are using our base template, we need to clear label info\r\n return [4 /*yield*/, xmlInnerPartsUtils_1.default.clearLabelInfo(zip)];\r\n case 2:\r\n // If we are using our base template, we need to clear label info\r\n _a.sent();\r\n _a.label = 3;\r\n case 3: return [4 /*yield*/, tableUtils_1.default.updateTableInitialDataIfNeeded(zip, tableData, updateQueryTable)];\r\n case 4:\r\n _a.sent();\r\n return [2 /*return*/];\r\n }\r\n });\r\n });\r\n};\r\nvar updateWorkbookPowerQueryDocument = function (zip, queryName, queryMashupDoc) { return __awaiter(void 0, void 0, void 0, function () {\r\n var old_base64, new_base64;\r\n return __generator(this, function (_a) {\r\n switch (_a.label) {\r\n case 0: return [4 /*yield*/, pqUtils_1.default.getBase64(zip)];\r\n case 1:\r\n old_base64 = _a.sent();\r\n if (!old_base64) {\r\n throw new Error(constants_1.base64NotFoundErr);\r\n }\r\n return [4 /*yield*/, (0, mashupDocumentParser_1.replaceSingleQuery)(old_base64, queryName, queryMashupDoc)];\r\n case 2:\r\n new_base64 = _a.sent();\r\n return [4 /*yield*/, pqUtils_1.default.setBase64(zip, new_base64)];\r\n case 3:\r\n _a.sent();\r\n return [2 /*return*/];\r\n }\r\n });\r\n}); };\r\nvar updateWorkbookSingleQueryAttributes = function (zip, queryName, refreshOnOpen) { return __awaiter(void 0, void 0, void 0, function () {\r\n var connectionsXmlString, _a, connectionId, connectionXmlFileString, sharedStringsXmlString, _b, sharedStringIndex, newSharedStrings, sheetsXmlString, worksheetString;\r\n var _c, _d, _e;\r\n return __generator(this, function (_f) {\r\n switch (_f.label) {\r\n case 0: return [4 /*yield*/, ((_c = zip.file(constants_1.connectionsXmlPath)) === null || _c === void 0 ? void 0 : _c.async(constants_1.textResultType))];\r\n case 1:\r\n connectionsXmlString = _f.sent();\r\n if (connectionsXmlString === undefined) {\r\n throw new Error(constants_1.connectionsNotFoundErr);\r\n }\r\n _a = xmlInnerPartsUtils_1.default.updateConnections(connectionsXmlString, queryName, refreshOnOpen), connectionId = _a.connectionId, connectionXmlFileString = _a.connectionXmlFileString;\r\n zip.file(constants_1.connectionsXmlPath, connectionXmlFileString);\r\n return [4 /*yield*/, ((_d = zip.file(constants_1.sharedStringsXmlPath)) === null || _d === void 0 ? void 0 : _d.async(constants_1.textResultType))];\r\n case 2:\r\n sharedStringsXmlString = _f.sent();\r\n if (sharedStringsXmlString === undefined) {\r\n throw new Error(constants_1.sharedStringsNotFoundErr);\r\n }\r\n _b = xmlInnerPartsUtils_1.default.updateSharedStrings(sharedStringsXmlString, queryName), sharedStringIndex = _b.sharedStringIndex, newSharedStrings = _b.newSharedStrings;\r\n zip.file(constants_1.sharedStringsXmlPath, newSharedStrings);\r\n return [4 /*yield*/, ((_e = zip.file(constants_1.sheetsXmlPath)) === null || _e === void 0 ? void 0 : _e.async(constants_1.textResultType))];\r\n case 3:\r\n sheetsXmlString = _f.sent();\r\n if (sheetsXmlString === undefined) {\r\n throw new Error(constants_1.sheetsNotFoundErr);\r\n }\r\n worksheetString = xmlInnerPartsUtils_1.default.updateWorksheet(sheetsXmlString, sharedStringIndex.toString());\r\n zip.file(constants_1.sheetsXmlPath, worksheetString);\r\n // Update tables\r\n return [4 /*yield*/, xmlInnerPartsUtils_1.default.updatePivotTablesandQueryTables(zip, queryName, refreshOnOpen, connectionId)];\r\n case 4:\r\n // Update tables\r\n _f.sent();\r\n return [2 /*return*/];\r\n }\r\n });\r\n}); };\r\nexports[\"default\"] = {\r\n updateWorkbookDataAndConfigurations: updateWorkbookDataAndConfigurations,\r\n updateWorkbookPowerQueryDocument: updateWorkbookPowerQueryDocument,\r\n updateWorkbookSingleQueryAttributes: updateWorkbookSingleQueryAttributes,\r\n};\r\n\n\n//# sourceURL=webpack://@microsoft/connected-workbooks/./src/utils/xmlPartsUtils.ts?");
|
|
205
315
|
|
|
206
316
|
/***/ }),
|
|
207
317
|
|
|
@@ -209,10 +319,10 @@ eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpac
|
|
|
209
319
|
/*!********************************!*\
|
|
210
320
|
!*** ./src/workbookManager.ts ***!
|
|
211
321
|
\********************************/
|
|
212
|
-
/***/ ((__unused_webpack_module,
|
|
322
|
+
/***/ (function(__unused_webpack_module, exports, __webpack_require__) {
|
|
213
323
|
|
|
214
324
|
"use strict";
|
|
215
|
-
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ downloadWorkbook: () => (/* binding */ downloadWorkbook),\n/* harmony export */ generateSingleQueryWorkbook: () => (/* binding */ generateSingleQueryWorkbook),\n/* harmony export */ generateTableWorkbookFromGrid: () => (/* binding */ generateTableWorkbookFromGrid),\n/* harmony export */ generateTableWorkbookFromHtml: () => (/* binding */ generateTableWorkbookFromHtml),\n/* harmony export */ openInExcelWeb: () => (/* binding */ openInExcelWeb)\n/* harmony export */ });\n/* harmony import */ var jszip__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! jszip */ \"./node_modules/jszip/dist/jszip.min.js\");\n/* harmony import */ var jszip__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(jszip__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var _utils__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./utils */ \"./src/utils/index.ts\");\n/* harmony import */ var _workbookTemplate__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./workbookTemplate */ \"./src/workbookTemplate.ts\");\n/* harmony import */ var _utils_constants__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./utils/constants */ \"./src/utils/constants.ts\");\n/* harmony import */ var _generators__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./generators */ \"./src/generators.ts\");\n// Copyright (c) Microsoft Corporation.\r\n// Licensed under the MIT license.\r\nvar __awaiter = (undefined && undefined.__awaiter) || function (thisArg, _arguments, P, generator) {\r\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\r\n return new (P || (P = Promise))(function (resolve, reject) {\r\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\r\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\r\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\r\n step((generator = generator.apply(thisArg, _arguments || [])).next());\r\n });\r\n};\r\nvar __generator = (undefined && undefined.__generator) || function (thisArg, body) {\r\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\r\n return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\r\n function verb(n) { return function (v) { return step([n, v]); }; }\r\n function step(op) {\r\n if (f) throw new TypeError(\"Generator is already executing.\");\r\n while (g && (g = 0, op[0] && (_ = 0)), _) try {\r\n if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\r\n if (y = 0, t) op = [op[0] & 2, t.value];\r\n switch (op[0]) {\r\n case 0: case 1: t = op; break;\r\n case 4: _.label++; return { value: op[1], done: false };\r\n case 5: _.label++; y = op[1]; op = [0]; continue;\r\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\r\n default:\r\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\r\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\r\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\r\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\r\n if (t[2]) _.ops.pop();\r\n _.trys.pop(); continue;\r\n }\r\n op = body.call(thisArg, _);\r\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\r\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\r\n }\r\n};\r\n\r\n\r\n\r\n\r\n\r\nvar generateSingleQueryWorkbook = function (query, initialDataGrid, fileConfigs) { return __awaiter(void 0, void 0, void 0, function () {\r\n var templateFile, zip, _a, tableData;\r\n return __generator(this, function (_b) {\r\n switch (_b.label) {\r\n case 0:\r\n if (!query.queryMashup) {\r\n throw new Error(_utils_constants__WEBPACK_IMPORTED_MODULE_3__.emptyQueryMashupErr);\r\n }\r\n if (!query.queryName) {\r\n query.queryName = _utils_constants__WEBPACK_IMPORTED_MODULE_3__.defaults.queryName;\r\n }\r\n templateFile = fileConfigs === null || fileConfigs === void 0 ? void 0 : fileConfigs.templateFile;\r\n if (templateFile !== undefined && initialDataGrid !== undefined) {\r\n throw new Error(_utils_constants__WEBPACK_IMPORTED_MODULE_3__.templateWithInitialDataErr);\r\n }\r\n _utils__WEBPACK_IMPORTED_MODULE_1__.pqUtils.validateQueryName(query.queryName);\r\n if (!(templateFile === undefined)) return [3 /*break*/, 2];\r\n return [4 /*yield*/, jszip__WEBPACK_IMPORTED_MODULE_0___default().loadAsync(_workbookTemplate__WEBPACK_IMPORTED_MODULE_2__.SIMPLE_QUERY_WORKBOOK_TEMPLATE, { base64: true })];\r\n case 1:\r\n _a = _b.sent();\r\n return [3 /*break*/, 4];\r\n case 2: return [4 /*yield*/, jszip__WEBPACK_IMPORTED_MODULE_0___default().loadAsync(templateFile)];\r\n case 3:\r\n _a = _b.sent();\r\n _b.label = 4;\r\n case 4:\r\n zip = _a;\r\n tableData = initialDataGrid ? _utils__WEBPACK_IMPORTED_MODULE_1__.gridUtils.parseToTableData(initialDataGrid) : undefined;\r\n return [4 /*yield*/, generateSingleQueryWorkbookFromZip(zip, query, fileConfigs, tableData)];\r\n case 5: return [2 /*return*/, _b.sent()];\r\n }\r\n });\r\n}); };\r\nvar generateTableWorkbookFromHtml = function (htmlTable, fileConfigs) { return __awaiter(void 0, void 0, void 0, function () {\r\n var gridData;\r\n return __generator(this, function (_a) {\r\n switch (_a.label) {\r\n case 0:\r\n gridData = _utils__WEBPACK_IMPORTED_MODULE_1__.htmlUtils.extractTableValues(htmlTable);\r\n return [4 /*yield*/, generateTableWorkbookFromGrid({ data: gridData, config: { promoteHeaders: true } }, fileConfigs)];\r\n case 1: return [2 /*return*/, _a.sent()];\r\n }\r\n });\r\n}); };\r\nvar generateTableWorkbookFromGrid = function (grid, fileConfigs) { return __awaiter(void 0, void 0, void 0, function () {\r\n var zip, _a, tableData;\r\n return __generator(this, function (_b) {\r\n switch (_b.label) {\r\n case 0:\r\n if (!((fileConfigs === null || fileConfigs === void 0 ? void 0 : fileConfigs.templateFile) === undefined)) return [3 /*break*/, 2];\r\n return [4 /*yield*/, jszip__WEBPACK_IMPORTED_MODULE_0___default().loadAsync(_workbookTemplate__WEBPACK_IMPORTED_MODULE_2__.SIMPLE_BLANK_TABLE_TEMPLATE, { base64: true })];\r\n case 1:\r\n _a = _b.sent();\r\n return [3 /*break*/, 4];\r\n case 2: return [4 /*yield*/, jszip__WEBPACK_IMPORTED_MODULE_0___default().loadAsync(fileConfigs.templateFile)];\r\n case 3:\r\n _a = _b.sent();\r\n _b.label = 4;\r\n case 4:\r\n zip = _a;\r\n tableData = _utils__WEBPACK_IMPORTED_MODULE_1__.gridUtils.parseToTableData(grid);\r\n if (tableData === undefined) {\r\n throw new Error(_utils_constants__WEBPACK_IMPORTED_MODULE_3__.tableNotFoundErr);\r\n }\r\n return [4 /*yield*/, _utils__WEBPACK_IMPORTED_MODULE_1__.xmlPartsUtils.updateWorkbookDataAndConfigurations(zip, fileConfigs, tableData)];\r\n case 5:\r\n _b.sent();\r\n return [4 /*yield*/, zip.generateAsync({\r\n type: _utils_constants__WEBPACK_IMPORTED_MODULE_3__.blobFileType,\r\n mimeType: _utils_constants__WEBPACK_IMPORTED_MODULE_3__.application,\r\n })];\r\n case 6: return [2 /*return*/, _b.sent()];\r\n }\r\n });\r\n}); };\r\nvar generateSingleQueryWorkbookFromZip = function (zip, query, fileConfigs, tableData) { return __awaiter(void 0, void 0, void 0, function () {\r\n return __generator(this, function (_a) {\r\n switch (_a.label) {\r\n case 0:\r\n if (!query.queryName) {\r\n query.queryName = _utils_constants__WEBPACK_IMPORTED_MODULE_3__.defaults.queryName;\r\n }\r\n return [4 /*yield*/, _utils__WEBPACK_IMPORTED_MODULE_1__.xmlPartsUtils.updateWorkbookPowerQueryDocument(zip, query.queryName, (0,_generators__WEBPACK_IMPORTED_MODULE_4__.generateSingleQueryMashup)(query.queryName, query.queryMashup))];\r\n case 1:\r\n _a.sent();\r\n return [4 /*yield*/, _utils__WEBPACK_IMPORTED_MODULE_1__.xmlPartsUtils.updateWorkbookSingleQueryAttributes(zip, query.queryName, query.refreshOnOpen)];\r\n case 2:\r\n _a.sent();\r\n return [4 /*yield*/, _utils__WEBPACK_IMPORTED_MODULE_1__.xmlPartsUtils.updateWorkbookDataAndConfigurations(zip, fileConfigs, tableData, true /*updateQueryTable*/)];\r\n case 3:\r\n _a.sent();\r\n return [4 /*yield*/, zip.generateAsync({\r\n type: _utils_constants__WEBPACK_IMPORTED_MODULE_3__.blobFileType,\r\n mimeType: _utils_constants__WEBPACK_IMPORTED_MODULE_3__.application,\r\n })];\r\n case 4: return [2 /*return*/, _a.sent()];\r\n }\r\n });\r\n}); };\r\nvar downloadWorkbook = function (file, filename) {\r\n var nav = window.navigator;\r\n if (nav.msSaveOrOpenBlob)\r\n // IE10+\r\n nav.msSaveOrOpenBlob(file, filename);\r\n else {\r\n // Others\r\n var a_1 = document.createElement(\"a\");\r\n var url_1 = URL.createObjectURL(file);\r\n a_1.href = url_1;\r\n a_1.download = filename;\r\n document.body.appendChild(a_1);\r\n a_1.click();\r\n setTimeout(function () {\r\n document.body.removeChild(a_1);\r\n window.URL.revokeObjectURL(url_1);\r\n }, 0);\r\n }\r\n};\r\nvar openInExcelWeb = function (file, filename, allowTyping) { return __awaiter(void 0, void 0, void 0, function () {\r\n var fileContent, fileNameGuid, allowTypingParam, response, error_1;\r\n return __generator(this, function (_a) {\r\n switch (_a.label) {\r\n case 0:\r\n if (!(file.size > 0)) return [3 /*break*/, 4];\r\n fileContent = file;\r\n fileNameGuid = new Date().getTime().toString() + (filename ? \"_\" + filename : \"\") + \".xlsx\";\r\n allowTypingParam = allowTyping ? 1 : 0;\r\n _a.label = 1;\r\n case 1:\r\n _a.trys.push([1, 3, , 4]);\r\n return [4 /*yield*/, fetch(\"\".concat(_utils_constants__WEBPACK_IMPORTED_MODULE_3__.OFU.PostUrl).concat(fileNameGuid), {\r\n method: \"POST\",\r\n headers: _utils_constants__WEBPACK_IMPORTED_MODULE_3__.headers,\r\n body: fileContent,\r\n })];\r\n case 2:\r\n response = _a.sent();\r\n // Check if the response is successful\r\n if (response.ok) {\r\n // if upload was successful - open the file in a new tab\r\n window.open(\"\".concat(_utils_constants__WEBPACK_IMPORTED_MODULE_3__.OFU.ViewUrl).concat(fileNameGuid, \"&\").concat(_utils_constants__WEBPACK_IMPORTED_MODULE_3__.OFU.allowTyping, \"=\").concat(allowTypingParam), \"_blank\");\r\n }\r\n else {\r\n throw new Error(\"File upload failed. Status code: \".concat(response.status));\r\n }\r\n return [3 /*break*/, 4];\r\n case 3:\r\n error_1 = _a.sent();\r\n console.error(\"An error occurred:\", error_1);\r\n return [3 /*break*/, 4];\r\n case 4: return [2 /*return*/];\r\n }\r\n });\r\n}); };\r\n\n\n//# sourceURL=webpack://@microsoft/connected-workbooks/./src/workbookManager.ts?");
|
|
325
|
+
eval("\r\n// Copyright (c) Microsoft Corporation.\r\n// Licensed under the MIT license.\r\nvar __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {\r\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\r\n return new (P || (P = Promise))(function (resolve, reject) {\r\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\r\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\r\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\r\n step((generator = generator.apply(thisArg, _arguments || [])).next());\r\n });\r\n};\r\nvar __generator = (this && this.__generator) || function (thisArg, body) {\r\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\r\n return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\r\n function verb(n) { return function (v) { return step([n, v]); }; }\r\n function step(op) {\r\n if (f) throw new TypeError(\"Generator is already executing.\");\r\n while (g && (g = 0, op[0] && (_ = 0)), _) try {\r\n if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\r\n if (y = 0, t) op = [op[0] & 2, t.value];\r\n switch (op[0]) {\r\n case 0: case 1: t = op; break;\r\n case 4: _.label++; return { value: op[1], done: false };\r\n case 5: _.label++; y = op[1]; op = [0]; continue;\r\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\r\n default:\r\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\r\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\r\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\r\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\r\n if (t[2]) _.ops.pop();\r\n _.trys.pop(); continue;\r\n }\r\n op = body.call(thisArg, _);\r\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\r\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\r\n }\r\n};\r\nvar __importDefault = (this && this.__importDefault) || function (mod) {\r\n return (mod && mod.__esModule) ? mod : { \"default\": mod };\r\n};\r\nObject.defineProperty(exports, \"__esModule\", ({ value: true }));\r\nexports.openInExcelWeb = exports.downloadWorkbook = exports.generateTableWorkbookFromGrid = exports.generateTableWorkbookFromHtml = exports.generateSingleQueryWorkbook = void 0;\r\nvar jszip_1 = __importDefault(__webpack_require__(/*! jszip */ \"./node_modules/jszip/dist/jszip.min.js\"));\r\nvar utils_1 = __webpack_require__(/*! ./utils */ \"./src/utils/index.ts\");\r\nvar workbookTemplate_1 = __webpack_require__(/*! ./workbookTemplate */ \"./src/workbookTemplate.ts\");\r\nvar constants_1 = __webpack_require__(/*! ./utils/constants */ \"./src/utils/constants.ts\");\r\nvar generators_1 = __webpack_require__(/*! ./generators */ \"./src/generators.ts\");\r\nvar generateSingleQueryWorkbook = function (query, initialDataGrid, fileConfigs) { return __awaiter(void 0, void 0, void 0, function () {\r\n var templateFile, zip, _a, tableData;\r\n return __generator(this, function (_b) {\r\n switch (_b.label) {\r\n case 0:\r\n if (!query.queryMashup) {\r\n throw new Error(constants_1.emptyQueryMashupErr);\r\n }\r\n if (!query.queryName) {\r\n query.queryName = constants_1.defaults.queryName;\r\n }\r\n templateFile = fileConfigs === null || fileConfigs === void 0 ? void 0 : fileConfigs.templateFile;\r\n if (templateFile !== undefined && initialDataGrid !== undefined) {\r\n throw new Error(constants_1.templateWithInitialDataErr);\r\n }\r\n utils_1.pqUtils.validateQueryName(query.queryName);\r\n if (!(templateFile === undefined)) return [3 /*break*/, 2];\r\n return [4 /*yield*/, jszip_1.default.loadAsync(workbookTemplate_1.SIMPLE_QUERY_WORKBOOK_TEMPLATE, { base64: true })];\r\n case 1:\r\n _a = _b.sent();\r\n return [3 /*break*/, 4];\r\n case 2: return [4 /*yield*/, jszip_1.default.loadAsync(templateFile)];\r\n case 3:\r\n _a = _b.sent();\r\n _b.label = 4;\r\n case 4:\r\n zip = _a;\r\n tableData = initialDataGrid ? utils_1.gridUtils.parseToTableData(initialDataGrid) : undefined;\r\n return [4 /*yield*/, generateSingleQueryWorkbookFromZip(zip, query, fileConfigs, tableData)];\r\n case 5: return [2 /*return*/, _b.sent()];\r\n }\r\n });\r\n}); };\r\nexports.generateSingleQueryWorkbook = generateSingleQueryWorkbook;\r\nvar generateTableWorkbookFromHtml = function (htmlTable, fileConfigs) { return __awaiter(void 0, void 0, void 0, function () {\r\n var gridData;\r\n return __generator(this, function (_a) {\r\n switch (_a.label) {\r\n case 0:\r\n gridData = utils_1.htmlUtils.extractTableValues(htmlTable);\r\n return [4 /*yield*/, (0, exports.generateTableWorkbookFromGrid)({ data: gridData, config: { promoteHeaders: true } }, fileConfigs)];\r\n case 1: return [2 /*return*/, _a.sent()];\r\n }\r\n });\r\n}); };\r\nexports.generateTableWorkbookFromHtml = generateTableWorkbookFromHtml;\r\nvar generateTableWorkbookFromGrid = function (grid, fileConfigs) { return __awaiter(void 0, void 0, void 0, function () {\r\n var zip, _a, tableData;\r\n return __generator(this, function (_b) {\r\n switch (_b.label) {\r\n case 0:\r\n if (!((fileConfigs === null || fileConfigs === void 0 ? void 0 : fileConfigs.templateFile) === undefined)) return [3 /*break*/, 2];\r\n return [4 /*yield*/, jszip_1.default.loadAsync(workbookTemplate_1.SIMPLE_BLANK_TABLE_TEMPLATE, { base64: true })];\r\n case 1:\r\n _a = _b.sent();\r\n return [3 /*break*/, 4];\r\n case 2: return [4 /*yield*/, jszip_1.default.loadAsync(fileConfigs.templateFile)];\r\n case 3:\r\n _a = _b.sent();\r\n _b.label = 4;\r\n case 4:\r\n zip = _a;\r\n tableData = utils_1.gridUtils.parseToTableData(grid);\r\n if (tableData === undefined) {\r\n throw new Error(constants_1.tableNotFoundErr);\r\n }\r\n return [4 /*yield*/, utils_1.xmlPartsUtils.updateWorkbookDataAndConfigurations(zip, fileConfigs, tableData)];\r\n case 5:\r\n _b.sent();\r\n return [4 /*yield*/, zip.generateAsync({\r\n type: constants_1.blobFileType,\r\n mimeType: constants_1.application,\r\n })];\r\n case 6: return [2 /*return*/, _b.sent()];\r\n }\r\n });\r\n}); };\r\nexports.generateTableWorkbookFromGrid = generateTableWorkbookFromGrid;\r\nvar generateSingleQueryWorkbookFromZip = function (zip, query, fileConfigs, tableData) { return __awaiter(void 0, void 0, void 0, function () {\r\n return __generator(this, function (_a) {\r\n switch (_a.label) {\r\n case 0:\r\n if (!query.queryName) {\r\n query.queryName = constants_1.defaults.queryName;\r\n }\r\n return [4 /*yield*/, utils_1.xmlPartsUtils.updateWorkbookPowerQueryDocument(zip, query.queryName, (0, generators_1.generateSingleQueryMashup)(query.queryName, query.queryMashup))];\r\n case 1:\r\n _a.sent();\r\n return [4 /*yield*/, utils_1.xmlPartsUtils.updateWorkbookSingleQueryAttributes(zip, query.queryName, query.refreshOnOpen)];\r\n case 2:\r\n _a.sent();\r\n return [4 /*yield*/, utils_1.xmlPartsUtils.updateWorkbookDataAndConfigurations(zip, fileConfigs, tableData, true /*updateQueryTable*/)];\r\n case 3:\r\n _a.sent();\r\n return [4 /*yield*/, zip.generateAsync({\r\n type: constants_1.blobFileType,\r\n mimeType: constants_1.application,\r\n })];\r\n case 4: return [2 /*return*/, _a.sent()];\r\n }\r\n });\r\n}); };\r\nvar downloadWorkbook = function (file, filename) {\r\n var nav = window.navigator;\r\n if (nav.msSaveOrOpenBlob)\r\n // IE10+\r\n nav.msSaveOrOpenBlob(file, filename);\r\n else {\r\n // Others\r\n var a_1 = document.createElement(\"a\");\r\n var url_1 = URL.createObjectURL(file);\r\n a_1.href = url_1;\r\n a_1.download = filename;\r\n document.body.appendChild(a_1);\r\n a_1.click();\r\n setTimeout(function () {\r\n document.body.removeChild(a_1);\r\n window.URL.revokeObjectURL(url_1);\r\n }, 0);\r\n }\r\n};\r\nexports.downloadWorkbook = downloadWorkbook;\r\nvar openInExcelWeb = function (file, filename, allowTyping) { return __awaiter(void 0, void 0, void 0, function () {\r\n var fileContent, fileNameGuid, allowTypingParam, response, error_1;\r\n return __generator(this, function (_a) {\r\n switch (_a.label) {\r\n case 0:\r\n if (!(file.size > 0)) return [3 /*break*/, 4];\r\n fileContent = file;\r\n fileNameGuid = new Date().getTime().toString() + (filename ? \"_\" + filename : \"\") + \".xlsx\";\r\n allowTypingParam = allowTyping ? 1 : 0;\r\n _a.label = 1;\r\n case 1:\r\n _a.trys.push([1, 3, , 4]);\r\n return [4 /*yield*/, fetch(\"\".concat(constants_1.OFU.PostUrl).concat(fileNameGuid), {\r\n method: \"POST\",\r\n headers: constants_1.headers,\r\n body: fileContent,\r\n })];\r\n case 2:\r\n response = _a.sent();\r\n // Check if the response is successful\r\n if (response.ok) {\r\n // if upload was successful - open the file in a new tab\r\n window.open(\"\".concat(constants_1.OFU.ViewUrl).concat(fileNameGuid, \"&\").concat(constants_1.OFU.allowTyping, \"=\").concat(allowTypingParam), \"_blank\");\r\n }\r\n else {\r\n throw new Error(\"File upload failed. Status code: \".concat(response.status));\r\n }\r\n return [3 /*break*/, 4];\r\n case 3:\r\n error_1 = _a.sent();\r\n console.error(\"An error occurred:\", error_1);\r\n return [3 /*break*/, 4];\r\n case 4: return [2 /*return*/];\r\n }\r\n });\r\n}); };\r\nexports.openInExcelWeb = openInExcelWeb;\r\n\n\n//# sourceURL=webpack://@microsoft/connected-workbooks/./src/workbookManager.ts?");
|
|
216
326
|
|
|
217
327
|
/***/ }),
|
|
218
328
|
|
|
@@ -220,76 +330,257 @@ eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpac
|
|
|
220
330
|
/*!*********************************!*\
|
|
221
331
|
!*** ./src/workbookTemplate.ts ***!
|
|
222
332
|
\*********************************/
|
|
223
|
-
/***/ ((__unused_webpack_module,
|
|
333
|
+
/***/ ((__unused_webpack_module, exports) => {
|
|
224
334
|
|
|
225
335
|
"use strict";
|
|
226
|
-
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ SIMPLE_BLANK_TABLE_TEMPLATE: () => (/* binding */ SIMPLE_BLANK_TABLE_TEMPLATE),\n/* harmony export */ SIMPLE_QUERY_WORKBOOK_TEMPLATE: () => (/* binding */ SIMPLE_QUERY_WORKBOOK_TEMPLATE)\n/* harmony export */ });\n// Copyright (c) Microsoft Corporation.\r\n// Licensed under the MIT license.\r\nvar SIMPLE_QUERY_WORKBOOK_TEMPLATE = \"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\";\r\nvar SIMPLE_BLANK_TABLE_TEMPLATE = \"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\";\r\n\n\n//# sourceURL=webpack://@microsoft/connected-workbooks/./src/workbookTemplate.ts?");
|
|
336
|
+
eval("\r\n// Copyright (c) Microsoft Corporation.\r\n// Licensed under the MIT license.\r\nObject.defineProperty(exports, \"__esModule\", ({ value: true }));\r\nexports.SIMPLE_BLANK_TABLE_TEMPLATE = exports.SIMPLE_QUERY_WORKBOOK_TEMPLATE = void 0;\r\nexports.SIMPLE_QUERY_WORKBOOK_TEMPLATE = \"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\";\r\nexports.SIMPLE_BLANK_TABLE_TEMPLATE = \"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\";\r\n\n\n//# sourceURL=webpack://@microsoft/connected-workbooks/./src/workbookTemplate.ts?");
|
|
227
337
|
|
|
228
338
|
/***/ }),
|
|
229
339
|
|
|
230
|
-
/***/ "./node_modules/uuid/dist/
|
|
231
|
-
|
|
232
|
-
!*** ./node_modules/uuid/dist/
|
|
233
|
-
|
|
234
|
-
/***/ ((__unused_webpack_module,
|
|
340
|
+
/***/ "./node_modules/uuid/dist/commonjs-browser/index.js":
|
|
341
|
+
/*!**********************************************************!*\
|
|
342
|
+
!*** ./node_modules/uuid/dist/commonjs-browser/index.js ***!
|
|
343
|
+
\**********************************************************/
|
|
344
|
+
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {
|
|
235
345
|
|
|
236
346
|
"use strict";
|
|
237
|
-
eval("
|
|
347
|
+
eval("\n\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nObject.defineProperty(exports, \"NIL\", ({\n enumerable: true,\n get: function get() {\n return _nil.default;\n }\n}));\nObject.defineProperty(exports, \"parse\", ({\n enumerable: true,\n get: function get() {\n return _parse.default;\n }\n}));\nObject.defineProperty(exports, \"stringify\", ({\n enumerable: true,\n get: function get() {\n return _stringify.default;\n }\n}));\nObject.defineProperty(exports, \"v1\", ({\n enumerable: true,\n get: function get() {\n return _v.default;\n }\n}));\nObject.defineProperty(exports, \"v3\", ({\n enumerable: true,\n get: function get() {\n return _v2.default;\n }\n}));\nObject.defineProperty(exports, \"v4\", ({\n enumerable: true,\n get: function get() {\n return _v3.default;\n }\n}));\nObject.defineProperty(exports, \"v5\", ({\n enumerable: true,\n get: function get() {\n return _v4.default;\n }\n}));\nObject.defineProperty(exports, \"validate\", ({\n enumerable: true,\n get: function get() {\n return _validate.default;\n }\n}));\nObject.defineProperty(exports, \"version\", ({\n enumerable: true,\n get: function get() {\n return _version.default;\n }\n}));\n\nvar _v = _interopRequireDefault(__webpack_require__(/*! ./v1.js */ \"./node_modules/uuid/dist/commonjs-browser/v1.js\"));\n\nvar _v2 = _interopRequireDefault(__webpack_require__(/*! ./v3.js */ \"./node_modules/uuid/dist/commonjs-browser/v3.js\"));\n\nvar _v3 = _interopRequireDefault(__webpack_require__(/*! ./v4.js */ \"./node_modules/uuid/dist/commonjs-browser/v4.js\"));\n\nvar _v4 = _interopRequireDefault(__webpack_require__(/*! ./v5.js */ \"./node_modules/uuid/dist/commonjs-browser/v5.js\"));\n\nvar _nil = _interopRequireDefault(__webpack_require__(/*! ./nil.js */ \"./node_modules/uuid/dist/commonjs-browser/nil.js\"));\n\nvar _version = _interopRequireDefault(__webpack_require__(/*! ./version.js */ \"./node_modules/uuid/dist/commonjs-browser/version.js\"));\n\nvar _validate = _interopRequireDefault(__webpack_require__(/*! ./validate.js */ \"./node_modules/uuid/dist/commonjs-browser/validate.js\"));\n\nvar _stringify = _interopRequireDefault(__webpack_require__(/*! ./stringify.js */ \"./node_modules/uuid/dist/commonjs-browser/stringify.js\"));\n\nvar _parse = _interopRequireDefault(__webpack_require__(/*! ./parse.js */ \"./node_modules/uuid/dist/commonjs-browser/parse.js\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n//# sourceURL=webpack://@microsoft/connected-workbooks/./node_modules/uuid/dist/commonjs-browser/index.js?");
|
|
238
348
|
|
|
239
349
|
/***/ }),
|
|
240
350
|
|
|
241
|
-
/***/ "./node_modules/uuid/dist/
|
|
242
|
-
|
|
243
|
-
!*** ./node_modules/uuid/dist/
|
|
244
|
-
|
|
245
|
-
/***/ ((__unused_webpack_module,
|
|
351
|
+
/***/ "./node_modules/uuid/dist/commonjs-browser/md5.js":
|
|
352
|
+
/*!********************************************************!*\
|
|
353
|
+
!*** ./node_modules/uuid/dist/commonjs-browser/md5.js ***!
|
|
354
|
+
\********************************************************/
|
|
355
|
+
/***/ ((__unused_webpack_module, exports) => {
|
|
246
356
|
|
|
247
357
|
"use strict";
|
|
248
|
-
eval("
|
|
358
|
+
eval("\n\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nexports[\"default\"] = void 0;\n\n/*\n * Browser-compatible JavaScript MD5\n *\n * Modification of JavaScript MD5\n * https://github.com/blueimp/JavaScript-MD5\n *\n * Copyright 2011, Sebastian Tschan\n * https://blueimp.net\n *\n * Licensed under the MIT license:\n * https://opensource.org/licenses/MIT\n *\n * Based on\n * A JavaScript implementation of the RSA Data Security, Inc. MD5 Message\n * Digest Algorithm, as defined in RFC 1321.\n * Version 2.2 Copyright (C) Paul Johnston 1999 - 2009\n * Other contributors: Greg Holt, Andrew Kepert, Ydnar, Lostinet\n * Distributed under the BSD License\n * See http://pajhome.org.uk/crypt/md5 for more info.\n */\nfunction md5(bytes) {\n if (typeof bytes === 'string') {\n const msg = unescape(encodeURIComponent(bytes)); // UTF8 escape\n\n bytes = new Uint8Array(msg.length);\n\n for (let i = 0; i < msg.length; ++i) {\n bytes[i] = msg.charCodeAt(i);\n }\n }\n\n return md5ToHexEncodedArray(wordsToMd5(bytesToWords(bytes), bytes.length * 8));\n}\n/*\n * Convert an array of little-endian words to an array of bytes\n */\n\n\nfunction md5ToHexEncodedArray(input) {\n const output = [];\n const length32 = input.length * 32;\n const hexTab = '0123456789abcdef';\n\n for (let i = 0; i < length32; i += 8) {\n const x = input[i >> 5] >>> i % 32 & 0xff;\n const hex = parseInt(hexTab.charAt(x >>> 4 & 0x0f) + hexTab.charAt(x & 0x0f), 16);\n output.push(hex);\n }\n\n return output;\n}\n/**\n * Calculate output length with padding and bit length\n */\n\n\nfunction getOutputLength(inputLength8) {\n return (inputLength8 + 64 >>> 9 << 4) + 14 + 1;\n}\n/*\n * Calculate the MD5 of an array of little-endian words, and a bit length.\n */\n\n\nfunction wordsToMd5(x, len) {\n /* append padding */\n x[len >> 5] |= 0x80 << len % 32;\n x[getOutputLength(len) - 1] = len;\n let a = 1732584193;\n let b = -271733879;\n let c = -1732584194;\n let d = 271733878;\n\n for (let i = 0; i < x.length; i += 16) {\n const olda = a;\n const oldb = b;\n const oldc = c;\n const oldd = d;\n a = md5ff(a, b, c, d, x[i], 7, -680876936);\n d = md5ff(d, a, b, c, x[i + 1], 12, -389564586);\n c = md5ff(c, d, a, b, x[i + 2], 17, 606105819);\n b = md5ff(b, c, d, a, x[i + 3], 22, -1044525330);\n a = md5ff(a, b, c, d, x[i + 4], 7, -176418897);\n d = md5ff(d, a, b, c, x[i + 5], 12, 1200080426);\n c = md5ff(c, d, a, b, x[i + 6], 17, -1473231341);\n b = md5ff(b, c, d, a, x[i + 7], 22, -45705983);\n a = md5ff(a, b, c, d, x[i + 8], 7, 1770035416);\n d = md5ff(d, a, b, c, x[i + 9], 12, -1958414417);\n c = md5ff(c, d, a, b, x[i + 10], 17, -42063);\n b = md5ff(b, c, d, a, x[i + 11], 22, -1990404162);\n a = md5ff(a, b, c, d, x[i + 12], 7, 1804603682);\n d = md5ff(d, a, b, c, x[i + 13], 12, -40341101);\n c = md5ff(c, d, a, b, x[i + 14], 17, -1502002290);\n b = md5ff(b, c, d, a, x[i + 15], 22, 1236535329);\n a = md5gg(a, b, c, d, x[i + 1], 5, -165796510);\n d = md5gg(d, a, b, c, x[i + 6], 9, -1069501632);\n c = md5gg(c, d, a, b, x[i + 11], 14, 643717713);\n b = md5gg(b, c, d, a, x[i], 20, -373897302);\n a = md5gg(a, b, c, d, x[i + 5], 5, -701558691);\n d = md5gg(d, a, b, c, x[i + 10], 9, 38016083);\n c = md5gg(c, d, a, b, x[i + 15], 14, -660478335);\n b = md5gg(b, c, d, a, x[i + 4], 20, -405537848);\n a = md5gg(a, b, c, d, x[i + 9], 5, 568446438);\n d = md5gg(d, a, b, c, x[i + 14], 9, -1019803690);\n c = md5gg(c, d, a, b, x[i + 3], 14, -187363961);\n b = md5gg(b, c, d, a, x[i + 8], 20, 1163531501);\n a = md5gg(a, b, c, d, x[i + 13], 5, -1444681467);\n d = md5gg(d, a, b, c, x[i + 2], 9, -51403784);\n c = md5gg(c, d, a, b, x[i + 7], 14, 1735328473);\n b = md5gg(b, c, d, a, x[i + 12], 20, -1926607734);\n a = md5hh(a, b, c, d, x[i + 5], 4, -378558);\n d = md5hh(d, a, b, c, x[i + 8], 11, -2022574463);\n c = md5hh(c, d, a, b, x[i + 11], 16, 1839030562);\n b = md5hh(b, c, d, a, x[i + 14], 23, -35309556);\n a = md5hh(a, b, c, d, x[i + 1], 4, -1530992060);\n d = md5hh(d, a, b, c, x[i + 4], 11, 1272893353);\n c = md5hh(c, d, a, b, x[i + 7], 16, -155497632);\n b = md5hh(b, c, d, a, x[i + 10], 23, -1094730640);\n a = md5hh(a, b, c, d, x[i + 13], 4, 681279174);\n d = md5hh(d, a, b, c, x[i], 11, -358537222);\n c = md5hh(c, d, a, b, x[i + 3], 16, -722521979);\n b = md5hh(b, c, d, a, x[i + 6], 23, 76029189);\n a = md5hh(a, b, c, d, x[i + 9], 4, -640364487);\n d = md5hh(d, a, b, c, x[i + 12], 11, -421815835);\n c = md5hh(c, d, a, b, x[i + 15], 16, 530742520);\n b = md5hh(b, c, d, a, x[i + 2], 23, -995338651);\n a = md5ii(a, b, c, d, x[i], 6, -198630844);\n d = md5ii(d, a, b, c, x[i + 7], 10, 1126891415);\n c = md5ii(c, d, a, b, x[i + 14], 15, -1416354905);\n b = md5ii(b, c, d, a, x[i + 5], 21, -57434055);\n a = md5ii(a, b, c, d, x[i + 12], 6, 1700485571);\n d = md5ii(d, a, b, c, x[i + 3], 10, -1894986606);\n c = md5ii(c, d, a, b, x[i + 10], 15, -1051523);\n b = md5ii(b, c, d, a, x[i + 1], 21, -2054922799);\n a = md5ii(a, b, c, d, x[i + 8], 6, 1873313359);\n d = md5ii(d, a, b, c, x[i + 15], 10, -30611744);\n c = md5ii(c, d, a, b, x[i + 6], 15, -1560198380);\n b = md5ii(b, c, d, a, x[i + 13], 21, 1309151649);\n a = md5ii(a, b, c, d, x[i + 4], 6, -145523070);\n d = md5ii(d, a, b, c, x[i + 11], 10, -1120210379);\n c = md5ii(c, d, a, b, x[i + 2], 15, 718787259);\n b = md5ii(b, c, d, a, x[i + 9], 21, -343485551);\n a = safeAdd(a, olda);\n b = safeAdd(b, oldb);\n c = safeAdd(c, oldc);\n d = safeAdd(d, oldd);\n }\n\n return [a, b, c, d];\n}\n/*\n * Convert an array bytes to an array of little-endian words\n * Characters >255 have their high-byte silently ignored.\n */\n\n\nfunction bytesToWords(input) {\n if (input.length === 0) {\n return [];\n }\n\n const length8 = input.length * 8;\n const output = new Uint32Array(getOutputLength(length8));\n\n for (let i = 0; i < length8; i += 8) {\n output[i >> 5] |= (input[i / 8] & 0xff) << i % 32;\n }\n\n return output;\n}\n/*\n * Add integers, wrapping at 2^32. This uses 16-bit operations internally\n * to work around bugs in some JS interpreters.\n */\n\n\nfunction safeAdd(x, y) {\n const lsw = (x & 0xffff) + (y & 0xffff);\n const msw = (x >> 16) + (y >> 16) + (lsw >> 16);\n return msw << 16 | lsw & 0xffff;\n}\n/*\n * Bitwise rotate a 32-bit number to the left.\n */\n\n\nfunction bitRotateLeft(num, cnt) {\n return num << cnt | num >>> 32 - cnt;\n}\n/*\n * These functions implement the four basic operations the algorithm uses.\n */\n\n\nfunction md5cmn(q, a, b, x, s, t) {\n return safeAdd(bitRotateLeft(safeAdd(safeAdd(a, q), safeAdd(x, t)), s), b);\n}\n\nfunction md5ff(a, b, c, d, x, s, t) {\n return md5cmn(b & c | ~b & d, a, b, x, s, t);\n}\n\nfunction md5gg(a, b, c, d, x, s, t) {\n return md5cmn(b & d | c & ~d, a, b, x, s, t);\n}\n\nfunction md5hh(a, b, c, d, x, s, t) {\n return md5cmn(b ^ c ^ d, a, b, x, s, t);\n}\n\nfunction md5ii(a, b, c, d, x, s, t) {\n return md5cmn(c ^ (b | ~d), a, b, x, s, t);\n}\n\nvar _default = md5;\nexports[\"default\"] = _default;\n\n//# sourceURL=webpack://@microsoft/connected-workbooks/./node_modules/uuid/dist/commonjs-browser/md5.js?");
|
|
249
359
|
|
|
250
360
|
/***/ }),
|
|
251
361
|
|
|
252
|
-
/***/ "./node_modules/uuid/dist/
|
|
253
|
-
|
|
254
|
-
!*** ./node_modules/uuid/dist/
|
|
255
|
-
|
|
256
|
-
/***/ ((__unused_webpack_module,
|
|
362
|
+
/***/ "./node_modules/uuid/dist/commonjs-browser/native.js":
|
|
363
|
+
/*!***********************************************************!*\
|
|
364
|
+
!*** ./node_modules/uuid/dist/commonjs-browser/native.js ***!
|
|
365
|
+
\***********************************************************/
|
|
366
|
+
/***/ ((__unused_webpack_module, exports) => {
|
|
367
|
+
|
|
368
|
+
"use strict";
|
|
369
|
+
eval("\n\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nexports[\"default\"] = void 0;\nconst randomUUID = typeof crypto !== 'undefined' && crypto.randomUUID && crypto.randomUUID.bind(crypto);\nvar _default = {\n randomUUID\n};\nexports[\"default\"] = _default;\n\n//# sourceURL=webpack://@microsoft/connected-workbooks/./node_modules/uuid/dist/commonjs-browser/native.js?");
|
|
370
|
+
|
|
371
|
+
/***/ }),
|
|
372
|
+
|
|
373
|
+
/***/ "./node_modules/uuid/dist/commonjs-browser/nil.js":
|
|
374
|
+
/*!********************************************************!*\
|
|
375
|
+
!*** ./node_modules/uuid/dist/commonjs-browser/nil.js ***!
|
|
376
|
+
\********************************************************/
|
|
377
|
+
/***/ ((__unused_webpack_module, exports) => {
|
|
378
|
+
|
|
379
|
+
"use strict";
|
|
380
|
+
eval("\n\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nexports[\"default\"] = void 0;\nvar _default = '00000000-0000-0000-0000-000000000000';\nexports[\"default\"] = _default;\n\n//# sourceURL=webpack://@microsoft/connected-workbooks/./node_modules/uuid/dist/commonjs-browser/nil.js?");
|
|
381
|
+
|
|
382
|
+
/***/ }),
|
|
383
|
+
|
|
384
|
+
/***/ "./node_modules/uuid/dist/commonjs-browser/parse.js":
|
|
385
|
+
/*!**********************************************************!*\
|
|
386
|
+
!*** ./node_modules/uuid/dist/commonjs-browser/parse.js ***!
|
|
387
|
+
\**********************************************************/
|
|
388
|
+
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {
|
|
389
|
+
|
|
390
|
+
"use strict";
|
|
391
|
+
eval("\n\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nexports[\"default\"] = void 0;\n\nvar _validate = _interopRequireDefault(__webpack_require__(/*! ./validate.js */ \"./node_modules/uuid/dist/commonjs-browser/validate.js\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction parse(uuid) {\n if (!(0, _validate.default)(uuid)) {\n throw TypeError('Invalid UUID');\n }\n\n let v;\n const arr = new Uint8Array(16); // Parse ########-....-....-....-............\n\n arr[0] = (v = parseInt(uuid.slice(0, 8), 16)) >>> 24;\n arr[1] = v >>> 16 & 0xff;\n arr[2] = v >>> 8 & 0xff;\n arr[3] = v & 0xff; // Parse ........-####-....-....-............\n\n arr[4] = (v = parseInt(uuid.slice(9, 13), 16)) >>> 8;\n arr[5] = v & 0xff; // Parse ........-....-####-....-............\n\n arr[6] = (v = parseInt(uuid.slice(14, 18), 16)) >>> 8;\n arr[7] = v & 0xff; // Parse ........-....-....-####-............\n\n arr[8] = (v = parseInt(uuid.slice(19, 23), 16)) >>> 8;\n arr[9] = v & 0xff; // Parse ........-....-....-....-############\n // (Use \"/\" to avoid 32-bit truncation when bit-shifting high-order bytes)\n\n arr[10] = (v = parseInt(uuid.slice(24, 36), 16)) / 0x10000000000 & 0xff;\n arr[11] = v / 0x100000000 & 0xff;\n arr[12] = v >>> 24 & 0xff;\n arr[13] = v >>> 16 & 0xff;\n arr[14] = v >>> 8 & 0xff;\n arr[15] = v & 0xff;\n return arr;\n}\n\nvar _default = parse;\nexports[\"default\"] = _default;\n\n//# sourceURL=webpack://@microsoft/connected-workbooks/./node_modules/uuid/dist/commonjs-browser/parse.js?");
|
|
392
|
+
|
|
393
|
+
/***/ }),
|
|
394
|
+
|
|
395
|
+
/***/ "./node_modules/uuid/dist/commonjs-browser/regex.js":
|
|
396
|
+
/*!**********************************************************!*\
|
|
397
|
+
!*** ./node_modules/uuid/dist/commonjs-browser/regex.js ***!
|
|
398
|
+
\**********************************************************/
|
|
399
|
+
/***/ ((__unused_webpack_module, exports) => {
|
|
257
400
|
|
|
258
401
|
"use strict";
|
|
259
|
-
eval("
|
|
402
|
+
eval("\n\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nexports[\"default\"] = void 0;\nvar _default = /^(?:[0-9a-f]{8}-[0-9a-f]{4}-[1-5][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}|00000000-0000-0000-0000-000000000000)$/i;\nexports[\"default\"] = _default;\n\n//# sourceURL=webpack://@microsoft/connected-workbooks/./node_modules/uuid/dist/commonjs-browser/regex.js?");
|
|
260
403
|
|
|
261
404
|
/***/ }),
|
|
262
405
|
|
|
263
|
-
/***/ "./node_modules/uuid/dist/
|
|
406
|
+
/***/ "./node_modules/uuid/dist/commonjs-browser/rng.js":
|
|
407
|
+
/*!********************************************************!*\
|
|
408
|
+
!*** ./node_modules/uuid/dist/commonjs-browser/rng.js ***!
|
|
409
|
+
\********************************************************/
|
|
410
|
+
/***/ ((__unused_webpack_module, exports) => {
|
|
411
|
+
|
|
412
|
+
"use strict";
|
|
413
|
+
eval("\n\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nexports[\"default\"] = rng;\n// Unique ID creation requires a high quality random # generator. In the browser we therefore\n// require the crypto API and do not support built-in fallback to lower quality random number\n// generators (like Math.random()).\nlet getRandomValues;\nconst rnds8 = new Uint8Array(16);\n\nfunction rng() {\n // lazy load so that environments that need to polyfill have a chance to do so\n if (!getRandomValues) {\n // getRandomValues needs to be invoked in a context where \"this\" is a Crypto implementation.\n getRandomValues = typeof crypto !== 'undefined' && crypto.getRandomValues && crypto.getRandomValues.bind(crypto);\n\n if (!getRandomValues) {\n throw new Error('crypto.getRandomValues() not supported. See https://github.com/uuidjs/uuid#getrandomvalues-not-supported');\n }\n }\n\n return getRandomValues(rnds8);\n}\n\n//# sourceURL=webpack://@microsoft/connected-workbooks/./node_modules/uuid/dist/commonjs-browser/rng.js?");
|
|
414
|
+
|
|
415
|
+
/***/ }),
|
|
416
|
+
|
|
417
|
+
/***/ "./node_modules/uuid/dist/commonjs-browser/sha1.js":
|
|
264
418
|
/*!*********************************************************!*\
|
|
265
|
-
!*** ./node_modules/uuid/dist/
|
|
419
|
+
!*** ./node_modules/uuid/dist/commonjs-browser/sha1.js ***!
|
|
266
420
|
\*********************************************************/
|
|
267
|
-
/***/ ((__unused_webpack_module,
|
|
421
|
+
/***/ ((__unused_webpack_module, exports) => {
|
|
422
|
+
|
|
423
|
+
"use strict";
|
|
424
|
+
eval("\n\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nexports[\"default\"] = void 0;\n\n// Adapted from Chris Veness' SHA1 code at\n// http://www.movable-type.co.uk/scripts/sha1.html\nfunction f(s, x, y, z) {\n switch (s) {\n case 0:\n return x & y ^ ~x & z;\n\n case 1:\n return x ^ y ^ z;\n\n case 2:\n return x & y ^ x & z ^ y & z;\n\n case 3:\n return x ^ y ^ z;\n }\n}\n\nfunction ROTL(x, n) {\n return x << n | x >>> 32 - n;\n}\n\nfunction sha1(bytes) {\n const K = [0x5a827999, 0x6ed9eba1, 0x8f1bbcdc, 0xca62c1d6];\n const H = [0x67452301, 0xefcdab89, 0x98badcfe, 0x10325476, 0xc3d2e1f0];\n\n if (typeof bytes === 'string') {\n const msg = unescape(encodeURIComponent(bytes)); // UTF8 escape\n\n bytes = [];\n\n for (let i = 0; i < msg.length; ++i) {\n bytes.push(msg.charCodeAt(i));\n }\n } else if (!Array.isArray(bytes)) {\n // Convert Array-like to Array\n bytes = Array.prototype.slice.call(bytes);\n }\n\n bytes.push(0x80);\n const l = bytes.length / 4 + 2;\n const N = Math.ceil(l / 16);\n const M = new Array(N);\n\n for (let i = 0; i < N; ++i) {\n const arr = new Uint32Array(16);\n\n for (let j = 0; j < 16; ++j) {\n arr[j] = bytes[i * 64 + j * 4] << 24 | bytes[i * 64 + j * 4 + 1] << 16 | bytes[i * 64 + j * 4 + 2] << 8 | bytes[i * 64 + j * 4 + 3];\n }\n\n M[i] = arr;\n }\n\n M[N - 1][14] = (bytes.length - 1) * 8 / Math.pow(2, 32);\n M[N - 1][14] = Math.floor(M[N - 1][14]);\n M[N - 1][15] = (bytes.length - 1) * 8 & 0xffffffff;\n\n for (let i = 0; i < N; ++i) {\n const W = new Uint32Array(80);\n\n for (let t = 0; t < 16; ++t) {\n W[t] = M[i][t];\n }\n\n for (let t = 16; t < 80; ++t) {\n W[t] = ROTL(W[t - 3] ^ W[t - 8] ^ W[t - 14] ^ W[t - 16], 1);\n }\n\n let a = H[0];\n let b = H[1];\n let c = H[2];\n let d = H[3];\n let e = H[4];\n\n for (let t = 0; t < 80; ++t) {\n const s = Math.floor(t / 20);\n const T = ROTL(a, 5) + f(s, b, c, d) + e + K[s] + W[t] >>> 0;\n e = d;\n d = c;\n c = ROTL(b, 30) >>> 0;\n b = a;\n a = T;\n }\n\n H[0] = H[0] + a >>> 0;\n H[1] = H[1] + b >>> 0;\n H[2] = H[2] + c >>> 0;\n H[3] = H[3] + d >>> 0;\n H[4] = H[4] + e >>> 0;\n }\n\n return [H[0] >> 24 & 0xff, H[0] >> 16 & 0xff, H[0] >> 8 & 0xff, H[0] & 0xff, H[1] >> 24 & 0xff, H[1] >> 16 & 0xff, H[1] >> 8 & 0xff, H[1] & 0xff, H[2] >> 24 & 0xff, H[2] >> 16 & 0xff, H[2] >> 8 & 0xff, H[2] & 0xff, H[3] >> 24 & 0xff, H[3] >> 16 & 0xff, H[3] >> 8 & 0xff, H[3] & 0xff, H[4] >> 24 & 0xff, H[4] >> 16 & 0xff, H[4] >> 8 & 0xff, H[4] & 0xff];\n}\n\nvar _default = sha1;\nexports[\"default\"] = _default;\n\n//# sourceURL=webpack://@microsoft/connected-workbooks/./node_modules/uuid/dist/commonjs-browser/sha1.js?");
|
|
425
|
+
|
|
426
|
+
/***/ }),
|
|
427
|
+
|
|
428
|
+
/***/ "./node_modules/uuid/dist/commonjs-browser/stringify.js":
|
|
429
|
+
/*!**************************************************************!*\
|
|
430
|
+
!*** ./node_modules/uuid/dist/commonjs-browser/stringify.js ***!
|
|
431
|
+
\**************************************************************/
|
|
432
|
+
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {
|
|
268
433
|
|
|
269
434
|
"use strict";
|
|
270
|
-
eval("
|
|
435
|
+
eval("\n\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nexports[\"default\"] = void 0;\nexports.unsafeStringify = unsafeStringify;\n\nvar _validate = _interopRequireDefault(__webpack_require__(/*! ./validate.js */ \"./node_modules/uuid/dist/commonjs-browser/validate.js\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n/**\n * Convert array of 16 byte values to UUID string format of the form:\n * XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX\n */\nconst byteToHex = [];\n\nfor (let i = 0; i < 256; ++i) {\n byteToHex.push((i + 0x100).toString(16).slice(1));\n}\n\nfunction unsafeStringify(arr, offset = 0) {\n // Note: Be careful editing this code! It's been tuned for performance\n // and works in ways you may not expect. See https://github.com/uuidjs/uuid/pull/434\n return (byteToHex[arr[offset + 0]] + byteToHex[arr[offset + 1]] + byteToHex[arr[offset + 2]] + byteToHex[arr[offset + 3]] + '-' + byteToHex[arr[offset + 4]] + byteToHex[arr[offset + 5]] + '-' + byteToHex[arr[offset + 6]] + byteToHex[arr[offset + 7]] + '-' + byteToHex[arr[offset + 8]] + byteToHex[arr[offset + 9]] + '-' + byteToHex[arr[offset + 10]] + byteToHex[arr[offset + 11]] + byteToHex[arr[offset + 12]] + byteToHex[arr[offset + 13]] + byteToHex[arr[offset + 14]] + byteToHex[arr[offset + 15]]).toLowerCase();\n}\n\nfunction stringify(arr, offset = 0) {\n const uuid = unsafeStringify(arr, offset); // Consistency check for valid UUID. If this throws, it's likely due to one\n // of the following:\n // - One or more input array values don't map to a hex octet (leading to\n // \"undefined\" in the uuid)\n // - Invalid input values for the RFC `version` or `variant` fields\n\n if (!(0, _validate.default)(uuid)) {\n throw TypeError('Stringified UUID is invalid');\n }\n\n return uuid;\n}\n\nvar _default = stringify;\nexports[\"default\"] = _default;\n\n//# sourceURL=webpack://@microsoft/connected-workbooks/./node_modules/uuid/dist/commonjs-browser/stringify.js?");
|
|
271
436
|
|
|
272
437
|
/***/ }),
|
|
273
438
|
|
|
274
|
-
/***/ "./node_modules/uuid/dist/
|
|
275
|
-
|
|
276
|
-
!*** ./node_modules/uuid/dist/
|
|
277
|
-
|
|
278
|
-
/***/ ((__unused_webpack_module,
|
|
439
|
+
/***/ "./node_modules/uuid/dist/commonjs-browser/v1.js":
|
|
440
|
+
/*!*******************************************************!*\
|
|
441
|
+
!*** ./node_modules/uuid/dist/commonjs-browser/v1.js ***!
|
|
442
|
+
\*******************************************************/
|
|
443
|
+
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {
|
|
279
444
|
|
|
280
445
|
"use strict";
|
|
281
|
-
eval("
|
|
446
|
+
eval("\n\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nexports[\"default\"] = void 0;\n\nvar _rng = _interopRequireDefault(__webpack_require__(/*! ./rng.js */ \"./node_modules/uuid/dist/commonjs-browser/rng.js\"));\n\nvar _stringify = __webpack_require__(/*! ./stringify.js */ \"./node_modules/uuid/dist/commonjs-browser/stringify.js\");\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n// **`v1()` - Generate time-based UUID**\n//\n// Inspired by https://github.com/LiosK/UUID.js\n// and http://docs.python.org/library/uuid.html\nlet _nodeId;\n\nlet _clockseq; // Previous uuid creation time\n\n\nlet _lastMSecs = 0;\nlet _lastNSecs = 0; // See https://github.com/uuidjs/uuid for API details\n\nfunction v1(options, buf, offset) {\n let i = buf && offset || 0;\n const b = buf || new Array(16);\n options = options || {};\n let node = options.node || _nodeId;\n let clockseq = options.clockseq !== undefined ? options.clockseq : _clockseq; // node and clockseq need to be initialized to random values if they're not\n // specified. We do this lazily to minimize issues related to insufficient\n // system entropy. See #189\n\n if (node == null || clockseq == null) {\n const seedBytes = options.random || (options.rng || _rng.default)();\n\n if (node == null) {\n // Per 4.5, create and 48-bit node id, (47 random bits + multicast bit = 1)\n node = _nodeId = [seedBytes[0] | 0x01, seedBytes[1], seedBytes[2], seedBytes[3], seedBytes[4], seedBytes[5]];\n }\n\n if (clockseq == null) {\n // Per 4.2.2, randomize (14 bit) clockseq\n clockseq = _clockseq = (seedBytes[6] << 8 | seedBytes[7]) & 0x3fff;\n }\n } // UUID timestamps are 100 nano-second units since the Gregorian epoch,\n // (1582-10-15 00:00). JSNumbers aren't precise enough for this, so\n // time is handled internally as 'msecs' (integer milliseconds) and 'nsecs'\n // (100-nanoseconds offset from msecs) since unix epoch, 1970-01-01 00:00.\n\n\n let msecs = options.msecs !== undefined ? options.msecs : Date.now(); // Per 4.2.1.2, use count of uuid's generated during the current clock\n // cycle to simulate higher resolution clock\n\n let nsecs = options.nsecs !== undefined ? options.nsecs : _lastNSecs + 1; // Time since last uuid creation (in msecs)\n\n const dt = msecs - _lastMSecs + (nsecs - _lastNSecs) / 10000; // Per 4.2.1.2, Bump clockseq on clock regression\n\n if (dt < 0 && options.clockseq === undefined) {\n clockseq = clockseq + 1 & 0x3fff;\n } // Reset nsecs if clock regresses (new clockseq) or we've moved onto a new\n // time interval\n\n\n if ((dt < 0 || msecs > _lastMSecs) && options.nsecs === undefined) {\n nsecs = 0;\n } // Per 4.2.1.2 Throw error if too many uuids are requested\n\n\n if (nsecs >= 10000) {\n throw new Error(\"uuid.v1(): Can't create more than 10M uuids/sec\");\n }\n\n _lastMSecs = msecs;\n _lastNSecs = nsecs;\n _clockseq = clockseq; // Per 4.1.4 - Convert from unix epoch to Gregorian epoch\n\n msecs += 12219292800000; // `time_low`\n\n const tl = ((msecs & 0xfffffff) * 10000 + nsecs) % 0x100000000;\n b[i++] = tl >>> 24 & 0xff;\n b[i++] = tl >>> 16 & 0xff;\n b[i++] = tl >>> 8 & 0xff;\n b[i++] = tl & 0xff; // `time_mid`\n\n const tmh = msecs / 0x100000000 * 10000 & 0xfffffff;\n b[i++] = tmh >>> 8 & 0xff;\n b[i++] = tmh & 0xff; // `time_high_and_version`\n\n b[i++] = tmh >>> 24 & 0xf | 0x10; // include version\n\n b[i++] = tmh >>> 16 & 0xff; // `clock_seq_hi_and_reserved` (Per 4.2.2 - include variant)\n\n b[i++] = clockseq >>> 8 | 0x80; // `clock_seq_low`\n\n b[i++] = clockseq & 0xff; // `node`\n\n for (let n = 0; n < 6; ++n) {\n b[i + n] = node[n];\n }\n\n return buf || (0, _stringify.unsafeStringify)(b);\n}\n\nvar _default = v1;\nexports[\"default\"] = _default;\n\n//# sourceURL=webpack://@microsoft/connected-workbooks/./node_modules/uuid/dist/commonjs-browser/v1.js?");
|
|
282
447
|
|
|
283
448
|
/***/ }),
|
|
284
449
|
|
|
285
|
-
/***/ "./node_modules/uuid/dist/
|
|
450
|
+
/***/ "./node_modules/uuid/dist/commonjs-browser/v3.js":
|
|
451
|
+
/*!*******************************************************!*\
|
|
452
|
+
!*** ./node_modules/uuid/dist/commonjs-browser/v3.js ***!
|
|
453
|
+
\*******************************************************/
|
|
454
|
+
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {
|
|
455
|
+
|
|
456
|
+
"use strict";
|
|
457
|
+
eval("\n\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nexports[\"default\"] = void 0;\n\nvar _v = _interopRequireDefault(__webpack_require__(/*! ./v35.js */ \"./node_modules/uuid/dist/commonjs-browser/v35.js\"));\n\nvar _md = _interopRequireDefault(__webpack_require__(/*! ./md5.js */ \"./node_modules/uuid/dist/commonjs-browser/md5.js\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nconst v3 = (0, _v.default)('v3', 0x30, _md.default);\nvar _default = v3;\nexports[\"default\"] = _default;\n\n//# sourceURL=webpack://@microsoft/connected-workbooks/./node_modules/uuid/dist/commonjs-browser/v3.js?");
|
|
458
|
+
|
|
459
|
+
/***/ }),
|
|
460
|
+
|
|
461
|
+
/***/ "./node_modules/uuid/dist/commonjs-browser/v35.js":
|
|
286
462
|
/*!********************************************************!*\
|
|
287
|
-
!*** ./node_modules/uuid/dist/
|
|
463
|
+
!*** ./node_modules/uuid/dist/commonjs-browser/v35.js ***!
|
|
288
464
|
\********************************************************/
|
|
289
|
-
/***/ ((__unused_webpack_module,
|
|
465
|
+
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {
|
|
466
|
+
|
|
467
|
+
"use strict";
|
|
468
|
+
eval("\n\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nexports.URL = exports.DNS = void 0;\nexports[\"default\"] = v35;\n\nvar _stringify = __webpack_require__(/*! ./stringify.js */ \"./node_modules/uuid/dist/commonjs-browser/stringify.js\");\n\nvar _parse = _interopRequireDefault(__webpack_require__(/*! ./parse.js */ \"./node_modules/uuid/dist/commonjs-browser/parse.js\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction stringToBytes(str) {\n str = unescape(encodeURIComponent(str)); // UTF8 escape\n\n const bytes = [];\n\n for (let i = 0; i < str.length; ++i) {\n bytes.push(str.charCodeAt(i));\n }\n\n return bytes;\n}\n\nconst DNS = '6ba7b810-9dad-11d1-80b4-00c04fd430c8';\nexports.DNS = DNS;\nconst URL = '6ba7b811-9dad-11d1-80b4-00c04fd430c8';\nexports.URL = URL;\n\nfunction v35(name, version, hashfunc) {\n function generateUUID(value, namespace, buf, offset) {\n var _namespace;\n\n if (typeof value === 'string') {\n value = stringToBytes(value);\n }\n\n if (typeof namespace === 'string') {\n namespace = (0, _parse.default)(namespace);\n }\n\n if (((_namespace = namespace) === null || _namespace === void 0 ? void 0 : _namespace.length) !== 16) {\n throw TypeError('Namespace must be array-like (16 iterable integer values, 0-255)');\n } // Compute hash of namespace and value, Per 4.3\n // Future: Use spread syntax when supported on all platforms, e.g. `bytes =\n // hashfunc([...namespace, ... value])`\n\n\n let bytes = new Uint8Array(16 + value.length);\n bytes.set(namespace);\n bytes.set(value, namespace.length);\n bytes = hashfunc(bytes);\n bytes[6] = bytes[6] & 0x0f | version;\n bytes[8] = bytes[8] & 0x3f | 0x80;\n\n if (buf) {\n offset = offset || 0;\n\n for (let i = 0; i < 16; ++i) {\n buf[offset + i] = bytes[i];\n }\n\n return buf;\n }\n\n return (0, _stringify.unsafeStringify)(bytes);\n } // Function#name is not settable on some platforms (#270)\n\n\n try {\n generateUUID.name = name; // eslint-disable-next-line no-empty\n } catch (err) {} // For CommonJS default export support\n\n\n generateUUID.DNS = DNS;\n generateUUID.URL = URL;\n return generateUUID;\n}\n\n//# sourceURL=webpack://@microsoft/connected-workbooks/./node_modules/uuid/dist/commonjs-browser/v35.js?");
|
|
469
|
+
|
|
470
|
+
/***/ }),
|
|
471
|
+
|
|
472
|
+
/***/ "./node_modules/uuid/dist/commonjs-browser/v4.js":
|
|
473
|
+
/*!*******************************************************!*\
|
|
474
|
+
!*** ./node_modules/uuid/dist/commonjs-browser/v4.js ***!
|
|
475
|
+
\*******************************************************/
|
|
476
|
+
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {
|
|
477
|
+
|
|
478
|
+
"use strict";
|
|
479
|
+
eval("\n\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nexports[\"default\"] = void 0;\n\nvar _native = _interopRequireDefault(__webpack_require__(/*! ./native.js */ \"./node_modules/uuid/dist/commonjs-browser/native.js\"));\n\nvar _rng = _interopRequireDefault(__webpack_require__(/*! ./rng.js */ \"./node_modules/uuid/dist/commonjs-browser/rng.js\"));\n\nvar _stringify = __webpack_require__(/*! ./stringify.js */ \"./node_modules/uuid/dist/commonjs-browser/stringify.js\");\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction v4(options, buf, offset) {\n if (_native.default.randomUUID && !buf && !options) {\n return _native.default.randomUUID();\n }\n\n options = options || {};\n\n const rnds = options.random || (options.rng || _rng.default)(); // Per 4.4, set bits for version and `clock_seq_hi_and_reserved`\n\n\n rnds[6] = rnds[6] & 0x0f | 0x40;\n rnds[8] = rnds[8] & 0x3f | 0x80; // Copy bytes to buffer, if provided\n\n if (buf) {\n offset = offset || 0;\n\n for (let i = 0; i < 16; ++i) {\n buf[offset + i] = rnds[i];\n }\n\n return buf;\n }\n\n return (0, _stringify.unsafeStringify)(rnds);\n}\n\nvar _default = v4;\nexports[\"default\"] = _default;\n\n//# sourceURL=webpack://@microsoft/connected-workbooks/./node_modules/uuid/dist/commonjs-browser/v4.js?");
|
|
480
|
+
|
|
481
|
+
/***/ }),
|
|
482
|
+
|
|
483
|
+
/***/ "./node_modules/uuid/dist/commonjs-browser/v5.js":
|
|
484
|
+
/*!*******************************************************!*\
|
|
485
|
+
!*** ./node_modules/uuid/dist/commonjs-browser/v5.js ***!
|
|
486
|
+
\*******************************************************/
|
|
487
|
+
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {
|
|
488
|
+
|
|
489
|
+
"use strict";
|
|
490
|
+
eval("\n\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nexports[\"default\"] = void 0;\n\nvar _v = _interopRequireDefault(__webpack_require__(/*! ./v35.js */ \"./node_modules/uuid/dist/commonjs-browser/v35.js\"));\n\nvar _sha = _interopRequireDefault(__webpack_require__(/*! ./sha1.js */ \"./node_modules/uuid/dist/commonjs-browser/sha1.js\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nconst v5 = (0, _v.default)('v5', 0x50, _sha.default);\nvar _default = v5;\nexports[\"default\"] = _default;\n\n//# sourceURL=webpack://@microsoft/connected-workbooks/./node_modules/uuid/dist/commonjs-browser/v5.js?");
|
|
491
|
+
|
|
492
|
+
/***/ }),
|
|
493
|
+
|
|
494
|
+
/***/ "./node_modules/uuid/dist/commonjs-browser/validate.js":
|
|
495
|
+
/*!*************************************************************!*\
|
|
496
|
+
!*** ./node_modules/uuid/dist/commonjs-browser/validate.js ***!
|
|
497
|
+
\*************************************************************/
|
|
498
|
+
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {
|
|
499
|
+
|
|
500
|
+
"use strict";
|
|
501
|
+
eval("\n\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nexports[\"default\"] = void 0;\n\nvar _regex = _interopRequireDefault(__webpack_require__(/*! ./regex.js */ \"./node_modules/uuid/dist/commonjs-browser/regex.js\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction validate(uuid) {\n return typeof uuid === 'string' && _regex.default.test(uuid);\n}\n\nvar _default = validate;\nexports[\"default\"] = _default;\n\n//# sourceURL=webpack://@microsoft/connected-workbooks/./node_modules/uuid/dist/commonjs-browser/validate.js?");
|
|
502
|
+
|
|
503
|
+
/***/ }),
|
|
504
|
+
|
|
505
|
+
/***/ "./node_modules/uuid/dist/commonjs-browser/version.js":
|
|
506
|
+
/*!************************************************************!*\
|
|
507
|
+
!*** ./node_modules/uuid/dist/commonjs-browser/version.js ***!
|
|
508
|
+
\************************************************************/
|
|
509
|
+
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {
|
|
510
|
+
|
|
511
|
+
"use strict";
|
|
512
|
+
eval("\n\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nexports[\"default\"] = void 0;\n\nvar _validate = _interopRequireDefault(__webpack_require__(/*! ./validate.js */ \"./node_modules/uuid/dist/commonjs-browser/validate.js\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction version(uuid) {\n if (!(0, _validate.default)(uuid)) {\n throw TypeError('Invalid UUID');\n }\n\n return parseInt(uuid.slice(14, 15), 16);\n}\n\nvar _default = version;\nexports[\"default\"] = _default;\n\n//# sourceURL=webpack://@microsoft/connected-workbooks/./node_modules/uuid/dist/commonjs-browser/version.js?");
|
|
513
|
+
|
|
514
|
+
/***/ }),
|
|
515
|
+
|
|
516
|
+
/***/ "./node_modules/xmldom-qsa/lib/conventions.js":
|
|
517
|
+
/*!****************************************************!*\
|
|
518
|
+
!*** ./node_modules/xmldom-qsa/lib/conventions.js ***!
|
|
519
|
+
\****************************************************/
|
|
520
|
+
/***/ ((__unused_webpack_module, exports) => {
|
|
290
521
|
|
|
291
522
|
"use strict";
|
|
292
|
-
eval("
|
|
523
|
+
eval("\n\n/**\n * Ponyfill for `Array.prototype.find` which is only available in ES6 runtimes.\n *\n * Works with anything that has a `length` property and index access properties, including NodeList.\n *\n * @template {unknown} T\n * @param {Array<T> | ({length:number, [number]: T})} list\n * @param {function (item: T, index: number, list:Array<T> | ({length:number, [number]: T})):boolean} predicate\n * @param {Partial<Pick<ArrayConstructor['prototype'], 'find'>>?} ac `Array.prototype` by default,\n * \t\t\t\tallows injecting a custom implementation in tests\n * @returns {T | undefined}\n *\n * @see https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/find\n * @see https://tc39.es/ecma262/multipage/indexed-collections.html#sec-array.prototype.find\n */\nfunction find(list, predicate, ac) {\n\tif (ac === undefined) {\n\t\tac = Array.prototype;\n\t}\n\tif (list && typeof ac.find === 'function') {\n\t\treturn ac.find.call(list, predicate);\n\t}\n\tfor (var i = 0; i < list.length; i++) {\n\t\tif (Object.prototype.hasOwnProperty.call(list, i)) {\n\t\t\tvar item = list[i];\n\t\t\tif (predicate.call(undefined, item, i, list)) {\n\t\t\t\treturn item;\n\t\t\t}\n\t\t}\n\t}\n}\n\n/**\n * \"Shallow freezes\" an object to render it immutable.\n * Uses `Object.freeze` if available,\n * otherwise the immutability is only in the type.\n *\n * Is used to create \"enum like\" objects.\n *\n * @template T\n * @param {T} object the object to freeze\n * @param {Pick<ObjectConstructor, 'freeze'> = Object} oc `Object` by default,\n * \t\t\t\tallows to inject custom object constructor for tests\n * @returns {Readonly<T>}\n *\n * @see https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object/freeze\n */\nfunction freeze(object, oc) {\n\tif (oc === undefined) {\n\t\toc = Object\n\t}\n\treturn oc && typeof oc.freeze === 'function' ? oc.freeze(object) : object\n}\n\n/**\n * Since we can not rely on `Object.assign` we provide a simplified version\n * that is sufficient for our needs.\n *\n * @param {Object} target\n * @param {Object | null | undefined} source\n *\n * @returns {Object} target\n * @throws TypeError if target is not an object\n *\n * @see https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object/assign\n * @see https://tc39.es/ecma262/multipage/fundamental-objects.html#sec-object.assign\n */\nfunction assign(target, source) {\n\tif (target === null || typeof target !== 'object') {\n\t\tthrow new TypeError('target is not an object')\n\t}\n\tfor (var key in source) {\n\t\tif (Object.prototype.hasOwnProperty.call(source, key)) {\n\t\t\ttarget[key] = source[key]\n\t\t}\n\t}\n\treturn target\n}\n\n/**\n * All mime types that are allowed as input to `DOMParser.parseFromString`\n *\n * @see https://developer.mozilla.org/en-US/docs/Web/API/DOMParser/parseFromString#Argument02 MDN\n * @see https://html.spec.whatwg.org/multipage/dynamic-markup-insertion.html#domparsersupportedtype WHATWG HTML Spec\n * @see DOMParser.prototype.parseFromString\n */\nvar MIME_TYPE = freeze({\n\t/**\n\t * `text/html`, the only mime type that triggers treating an XML document as HTML.\n\t *\n\t * @see DOMParser.SupportedType.isHTML\n\t * @see https://www.iana.org/assignments/media-types/text/html IANA MimeType registration\n\t * @see https://en.wikipedia.org/wiki/HTML Wikipedia\n\t * @see https://developer.mozilla.org/en-US/docs/Web/API/DOMParser/parseFromString MDN\n\t * @see https://html.spec.whatwg.org/multipage/dynamic-markup-insertion.html#dom-domparser-parsefromstring WHATWG HTML Spec\n\t */\n\tHTML: 'text/html',\n\n\t/**\n\t * Helper method to check a mime type if it indicates an HTML document\n\t *\n\t * @param {string} [value]\n\t * @returns {boolean}\n\t *\n\t * @see https://www.iana.org/assignments/media-types/text/html IANA MimeType registration\n\t * @see https://en.wikipedia.org/wiki/HTML Wikipedia\n\t * @see https://developer.mozilla.org/en-US/docs/Web/API/DOMParser/parseFromString MDN\n\t * @see https://html.spec.whatwg.org/multipage/dynamic-markup-insertion.html#dom-domparser-parsefromstring \t */\n\tisHTML: function (value) {\n\t\treturn value === MIME_TYPE.HTML\n\t},\n\n\t/**\n\t * `application/xml`, the standard mime type for XML documents.\n\t *\n\t * @see https://www.iana.org/assignments/media-types/application/xml IANA MimeType registration\n\t * @see https://tools.ietf.org/html/rfc7303#section-9.1 RFC 7303\n\t * @see https://en.wikipedia.org/wiki/XML_and_MIME Wikipedia\n\t */\n\tXML_APPLICATION: 'application/xml',\n\n\t/**\n\t * `text/html`, an alias for `application/xml`.\n\t *\n\t * @see https://tools.ietf.org/html/rfc7303#section-9.2 RFC 7303\n\t * @see https://www.iana.org/assignments/media-types/text/xml IANA MimeType registration\n\t * @see https://en.wikipedia.org/wiki/XML_and_MIME Wikipedia\n\t */\n\tXML_TEXT: 'text/xml',\n\n\t/**\n\t * `application/xhtml+xml`, indicates an XML document that has the default HTML namespace,\n\t * but is parsed as an XML document.\n\t *\n\t * @see https://www.iana.org/assignments/media-types/application/xhtml+xml IANA MimeType registration\n\t * @see https://dom.spec.whatwg.org/#dom-domimplementation-createdocument WHATWG DOM Spec\n\t * @see https://en.wikipedia.org/wiki/XHTML Wikipedia\n\t */\n\tXML_XHTML_APPLICATION: 'application/xhtml+xml',\n\n\t/**\n\t * `image/svg+xml`,\n\t *\n\t * @see https://www.iana.org/assignments/media-types/image/svg+xml IANA MimeType registration\n\t * @see https://www.w3.org/TR/SVG11/ W3C SVG 1.1\n\t * @see https://en.wikipedia.org/wiki/Scalable_Vector_Graphics Wikipedia\n\t */\n\tXML_SVG_IMAGE: 'image/svg+xml',\n})\n\n/**\n * Namespaces that are used in this code base.\n *\n * @see http://www.w3.org/TR/REC-xml-names\n */\nvar NAMESPACE = freeze({\n\t/**\n\t * The XHTML namespace.\n\t *\n\t * @see http://www.w3.org/1999/xhtml\n\t */\n\tHTML: 'http://www.w3.org/1999/xhtml',\n\n\t/**\n\t * Checks if `uri` equals `NAMESPACE.HTML`.\n\t *\n\t * @param {string} [uri]\n\t *\n\t * @see NAMESPACE.HTML\n\t */\n\tisHTML: function (uri) {\n\t\treturn uri === NAMESPACE.HTML\n\t},\n\n\t/**\n\t * The SVG namespace.\n\t *\n\t * @see http://www.w3.org/2000/svg\n\t */\n\tSVG: 'http://www.w3.org/2000/svg',\n\n\t/**\n\t * The `xml:` namespace.\n\t *\n\t * @see http://www.w3.org/XML/1998/namespace\n\t */\n\tXML: 'http://www.w3.org/XML/1998/namespace',\n\n\t/**\n\t * The `xmlns:` namespace\n\t *\n\t * @see https://www.w3.org/2000/xmlns/\n\t */\n\tXMLNS: 'http://www.w3.org/2000/xmlns/',\n})\n\nexports.assign = assign;\nexports.find = find;\nexports.freeze = freeze;\nexports.MIME_TYPE = MIME_TYPE;\nexports.NAMESPACE = NAMESPACE;\n\n\n//# sourceURL=webpack://@microsoft/connected-workbooks/./node_modules/xmldom-qsa/lib/conventions.js?");
|
|
524
|
+
|
|
525
|
+
/***/ }),
|
|
526
|
+
|
|
527
|
+
/***/ "./node_modules/xmldom-qsa/lib/dom-parser.js":
|
|
528
|
+
/*!***************************************************!*\
|
|
529
|
+
!*** ./node_modules/xmldom-qsa/lib/dom-parser.js ***!
|
|
530
|
+
\***************************************************/
|
|
531
|
+
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {
|
|
532
|
+
|
|
533
|
+
eval("var conventions = __webpack_require__(/*! ./conventions */ \"./node_modules/xmldom-qsa/lib/conventions.js\");\nvar dom = __webpack_require__(/*! ./dom */ \"./node_modules/xmldom-qsa/lib/dom.js\")\nvar entities = __webpack_require__(/*! ./entities */ \"./node_modules/xmldom-qsa/lib/entities.js\");\nvar sax = __webpack_require__(/*! ./sax */ \"./node_modules/xmldom-qsa/lib/sax.js\");\n\nvar DOMImplementation = dom.DOMImplementation;\n\nvar NAMESPACE = conventions.NAMESPACE;\n\nvar ParseError = sax.ParseError;\nvar XMLReader = sax.XMLReader;\n\n/**\n * Normalizes line ending according to https://www.w3.org/TR/xml11/#sec-line-ends:\n *\n * > XML parsed entities are often stored in computer files which,\n * > for editing convenience, are organized into lines.\n * > These lines are typically separated by some combination\n * > of the characters CARRIAGE RETURN (#xD) and LINE FEED (#xA).\n * >\n * > To simplify the tasks of applications, the XML processor must behave\n * > as if it normalized all line breaks in external parsed entities (including the document entity)\n * > on input, before parsing, by translating all of the following to a single #xA character:\n * >\n * > 1. the two-character sequence #xD #xA\n * > 2. the two-character sequence #xD #x85\n * > 3. the single character #x85\n * > 4. the single character #x2028\n * > 5. any #xD character that is not immediately followed by #xA or #x85.\n *\n * @param {string} input\n * @returns {string}\n */\nfunction normalizeLineEndings(input) {\n\treturn input\n\t\t.replace(/\\r[\\n\\u0085]/g, '\\n')\n\t\t.replace(/[\\r\\u0085\\u2028]/g, '\\n')\n}\n\n/**\n * @typedef Locator\n * @property {number} [columnNumber]\n * @property {number} [lineNumber]\n */\n\n/**\n * @typedef DOMParserOptions\n * @property {DOMHandler} [domBuilder]\n * @property {Function} [errorHandler]\n * @property {(string) => string} [normalizeLineEndings] used to replace line endings before parsing\n * \t\t\t\t\t\tdefaults to `normalizeLineEndings`\n * @property {Locator} [locator]\n * @property {Record<string, string>} [xmlns]\n *\n * @see normalizeLineEndings\n */\n\n/**\n * The DOMParser interface provides the ability to parse XML or HTML source code\n * from a string into a DOM `Document`.\n *\n * _xmldom is different from the spec in that it allows an `options` parameter,\n * to override the default behavior._\n *\n * @param {DOMParserOptions} [options]\n * @constructor\n *\n * @see https://developer.mozilla.org/en-US/docs/Web/API/DOMParser\n * @see https://html.spec.whatwg.org/multipage/dynamic-markup-insertion.html#dom-parsing-and-serialization\n */\nfunction DOMParser(options){\n\tthis.options = options ||{locator:{}};\n}\n\nDOMParser.prototype.parseFromString = function(source,mimeType){\n\tvar options = this.options;\n\tvar sax = new XMLReader();\n\tvar domBuilder = options.domBuilder || new DOMHandler();//contentHandler and LexicalHandler\n\tvar errorHandler = options.errorHandler;\n\tvar locator = options.locator;\n\tvar defaultNSMap = options.xmlns||{};\n\tvar isHTML = /\\/x?html?$/.test(mimeType);//mimeType.toLowerCase().indexOf('html') > -1;\n \tvar entityMap = isHTML ? entities.HTML_ENTITIES : entities.XML_ENTITIES;\n\tif(locator){\n\t\tdomBuilder.setDocumentLocator(locator)\n\t}\n\n\tsax.errorHandler = buildErrorHandler(errorHandler,domBuilder,locator);\n\tsax.domBuilder = options.domBuilder || domBuilder;\n\tif(isHTML){\n\t\tdefaultNSMap[''] = NAMESPACE.HTML;\n\t}\n\tdefaultNSMap.xml = defaultNSMap.xml || NAMESPACE.XML;\n\tvar normalize = options.normalizeLineEndings || normalizeLineEndings;\n\tif (source && typeof source === 'string') {\n\t\tsax.parse(\n\t\t\tnormalize(source),\n\t\t\tdefaultNSMap,\n\t\t\tentityMap\n\t\t)\n\t} else {\n\t\tsax.errorHandler.error('invalid doc source')\n\t}\n\treturn domBuilder.doc;\n}\nfunction buildErrorHandler(errorImpl,domBuilder,locator){\n\tif(!errorImpl){\n\t\tif(domBuilder instanceof DOMHandler){\n\t\t\treturn domBuilder;\n\t\t}\n\t\terrorImpl = domBuilder ;\n\t}\n\tvar errorHandler = {}\n\tvar isCallback = errorImpl instanceof Function;\n\tlocator = locator||{}\n\tfunction build(key){\n\t\tvar fn = errorImpl[key];\n\t\tif(!fn && isCallback){\n\t\t\tfn = errorImpl.length == 2?function(msg){errorImpl(key,msg)}:errorImpl;\n\t\t}\n\t\terrorHandler[key] = fn && function(msg){\n\t\t\tfn('[xmldom '+key+']\\t'+msg+_locator(locator));\n\t\t}||function(){};\n\t}\n\tbuild('warning');\n\tbuild('error');\n\tbuild('fatalError');\n\treturn errorHandler;\n}\n\n//console.log('#\\n\\n\\n\\n\\n\\n\\n####')\n/**\n * +ContentHandler+ErrorHandler\n * +LexicalHandler+EntityResolver2\n * -DeclHandler-DTDHandler\n *\n * DefaultHandler:EntityResolver, DTDHandler, ContentHandler, ErrorHandler\n * DefaultHandler2:DefaultHandler,LexicalHandler, DeclHandler, EntityResolver2\n * @link http://www.saxproject.org/apidoc/org/xml/sax/helpers/DefaultHandler.html\n */\nfunction DOMHandler() {\n this.cdata = false;\n}\nfunction position(locator,node){\n\tnode.lineNumber = locator.lineNumber;\n\tnode.columnNumber = locator.columnNumber;\n}\n/**\n * @see org.xml.sax.ContentHandler#startDocument\n * @link http://www.saxproject.org/apidoc/org/xml/sax/ContentHandler.html\n */\nDOMHandler.prototype = {\n\tstartDocument : function() {\n \tthis.doc = new DOMImplementation().createDocument(null, null, null);\n \tif (this.locator) {\n \tthis.doc.documentURI = this.locator.systemId;\n \t}\n\t},\n\tstartElement:function(namespaceURI, localName, qName, attrs) {\n\t\tvar doc = this.doc;\n\t var el = doc.createElementNS(namespaceURI, qName||localName);\n\t var len = attrs.length;\n\t appendElement(this, el);\n\t this.currentElement = el;\n\n\t\tthis.locator && position(this.locator,el)\n\t for (var i = 0 ; i < len; i++) {\n\t var namespaceURI = attrs.getURI(i);\n\t var value = attrs.getValue(i);\n\t var qName = attrs.getQName(i);\n\t\t\tvar attr = doc.createAttributeNS(namespaceURI, qName);\n\t\t\tthis.locator &&position(attrs.getLocator(i),attr);\n\t\t\tattr.value = attr.nodeValue = value;\n\t\t\tel.setAttributeNode(attr)\n\t }\n\t},\n\tendElement:function(namespaceURI, localName, qName) {\n\t\tvar current = this.currentElement\n\t\tvar tagName = current.tagName;\n\t\tthis.currentElement = current.parentNode;\n\t},\n\tstartPrefixMapping:function(prefix, uri) {\n\t},\n\tendPrefixMapping:function(prefix) {\n\t},\n\tprocessingInstruction:function(target, data) {\n\t var ins = this.doc.createProcessingInstruction(target, data);\n\t this.locator && position(this.locator,ins)\n\t appendElement(this, ins);\n\t},\n\tignorableWhitespace:function(ch, start, length) {\n\t},\n\tcharacters:function(chars, start, length) {\n\t\tchars = _toString.apply(this,arguments)\n\t\t//console.log(chars)\n\t\tif(chars){\n\t\t\tif (this.cdata) {\n\t\t\t\tvar charNode = this.doc.createCDATASection(chars);\n\t\t\t} else {\n\t\t\t\tvar charNode = this.doc.createTextNode(chars);\n\t\t\t}\n\t\t\tif(this.currentElement){\n\t\t\t\tthis.currentElement.appendChild(charNode);\n\t\t\t}else if(/^\\s*$/.test(chars)){\n\t\t\t\tthis.doc.appendChild(charNode);\n\t\t\t\t//process xml\n\t\t\t}\n\t\t\tthis.locator && position(this.locator,charNode)\n\t\t}\n\t},\n\tskippedEntity:function(name) {\n\t},\n\tendDocument:function() {\n\t\tthis.doc.normalize();\n\t},\n\tsetDocumentLocator:function (locator) {\n\t if(this.locator = locator){// && !('lineNumber' in locator)){\n\t \tlocator.lineNumber = 0;\n\t }\n\t},\n\t//LexicalHandler\n\tcomment:function(chars, start, length) {\n\t\tchars = _toString.apply(this,arguments)\n\t var comm = this.doc.createComment(chars);\n\t this.locator && position(this.locator,comm)\n\t appendElement(this, comm);\n\t},\n\n\tstartCDATA:function() {\n\t //used in characters() methods\n\t this.cdata = true;\n\t},\n\tendCDATA:function() {\n\t this.cdata = false;\n\t},\n\n\tstartDTD:function(name, publicId, systemId) {\n\t\tvar impl = this.doc.implementation;\n\t if (impl && impl.createDocumentType) {\n\t var dt = impl.createDocumentType(name, publicId, systemId);\n\t this.locator && position(this.locator,dt)\n\t appendElement(this, dt);\n\t\t\t\t\tthis.doc.doctype = dt;\n\t }\n\t},\n\t/**\n\t * @see org.xml.sax.ErrorHandler\n\t * @link http://www.saxproject.org/apidoc/org/xml/sax/ErrorHandler.html\n\t */\n\twarning:function(error) {\n\t\tconsole.warn('[xmldom warning]\\t'+error,_locator(this.locator));\n\t},\n\terror:function(error) {\n\t\tconsole.error('[xmldom error]\\t'+error,_locator(this.locator));\n\t},\n\tfatalError:function(error) {\n\t\tthrow new ParseError(error, this.locator);\n\t}\n}\nfunction _locator(l){\n\tif(l){\n\t\treturn '\\n@'+(l.systemId ||'')+'#[line:'+l.lineNumber+',col:'+l.columnNumber+']'\n\t}\n}\nfunction _toString(chars,start,length){\n\tif(typeof chars == 'string'){\n\t\treturn chars.substr(start,length)\n\t}else{//java sax connect width xmldom on rhino(what about: \"? && !(chars instanceof String)\")\n\t\tif(chars.length >= start+length || start){\n\t\t\treturn new java.lang.String(chars,start,length)+'';\n\t\t}\n\t\treturn chars;\n\t}\n}\n\n/*\n * @link http://www.saxproject.org/apidoc/org/xml/sax/ext/LexicalHandler.html\n * used method of org.xml.sax.ext.LexicalHandler:\n * #comment(chars, start, length)\n * #startCDATA()\n * #endCDATA()\n * #startDTD(name, publicId, systemId)\n *\n *\n * IGNORED method of org.xml.sax.ext.LexicalHandler:\n * #endDTD()\n * #startEntity(name)\n * #endEntity(name)\n *\n *\n * @link http://www.saxproject.org/apidoc/org/xml/sax/ext/DeclHandler.html\n * IGNORED method of org.xml.sax.ext.DeclHandler\n * \t#attributeDecl(eName, aName, type, mode, value)\n * #elementDecl(name, model)\n * #externalEntityDecl(name, publicId, systemId)\n * #internalEntityDecl(name, value)\n * @link http://www.saxproject.org/apidoc/org/xml/sax/ext/EntityResolver2.html\n * IGNORED method of org.xml.sax.EntityResolver2\n * #resolveEntity(String name,String publicId,String baseURI,String systemId)\n * #resolveEntity(publicId, systemId)\n * #getExternalSubset(name, baseURI)\n * @link http://www.saxproject.org/apidoc/org/xml/sax/DTDHandler.html\n * IGNORED method of org.xml.sax.DTDHandler\n * #notationDecl(name, publicId, systemId) {};\n * #unparsedEntityDecl(name, publicId, systemId, notationName) {};\n */\n\"endDTD,startEntity,endEntity,attributeDecl,elementDecl,externalEntityDecl,internalEntityDecl,resolveEntity,getExternalSubset,notationDecl,unparsedEntityDecl\".replace(/\\w+/g,function(key){\n\tDOMHandler.prototype[key] = function(){return null}\n})\n\n/* Private static helpers treated below as private instance methods, so don't need to add these to the public API; we might use a Relator to also get rid of non-standard public properties */\nfunction appendElement (hander,node) {\n if (!hander.currentElement) {\n hander.doc.appendChild(node);\n } else {\n hander.currentElement.appendChild(node);\n }\n}//appendChild and setAttributeNS are preformance key\n\nexports.__DOMHandler = DOMHandler;\nexports.normalizeLineEndings = normalizeLineEndings;\nexports.DOMParser = DOMParser;\n\n\n//# sourceURL=webpack://@microsoft/connected-workbooks/./node_modules/xmldom-qsa/lib/dom-parser.js?");
|
|
534
|
+
|
|
535
|
+
/***/ }),
|
|
536
|
+
|
|
537
|
+
/***/ "./node_modules/xmldom-qsa/lib/dom.js":
|
|
538
|
+
/*!********************************************!*\
|
|
539
|
+
!*** ./node_modules/xmldom-qsa/lib/dom.js ***!
|
|
540
|
+
\********************************************/
|
|
541
|
+
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {
|
|
542
|
+
|
|
543
|
+
eval("var conventions = __webpack_require__(/*! ./conventions */ \"./node_modules/xmldom-qsa/lib/conventions.js\");\n\nvar find = conventions.find;\nvar NAMESPACE = conventions.NAMESPACE;\n\n/**\n * A prerequisite for `[].filter`, to drop elements that are empty\n * @param {string} input\n * @returns {boolean}\n */\nfunction notEmptyString (input) {\n\treturn input !== ''\n}\n/**\n * @see https://infra.spec.whatwg.org/#split-on-ascii-whitespace\n * @see https://infra.spec.whatwg.org/#ascii-whitespace\n *\n * @param {string} input\n * @returns {string[]} (can be empty)\n */\nfunction splitOnASCIIWhitespace(input) {\n\t// U+0009 TAB, U+000A LF, U+000C FF, U+000D CR, U+0020 SPACE\n\treturn input ? input.split(/[\\t\\n\\f\\r ]+/).filter(notEmptyString) : []\n}\n\n/**\n * Adds element as a key to current if it is not already present.\n *\n * @param {Record<string, boolean | undefined>} current\n * @param {string} element\n * @returns {Record<string, boolean | undefined>}\n */\nfunction orderedSetReducer (current, element) {\n\tif (!current.hasOwnProperty(element)) {\n\t\tcurrent[element] = true;\n\t}\n\treturn current;\n}\n\n/**\n * @see https://infra.spec.whatwg.org/#ordered-set\n * @param {string} input\n * @returns {string[]}\n */\nfunction toOrderedSet(input) {\n\tif (!input) return [];\n\tvar list = splitOnASCIIWhitespace(input);\n\treturn Object.keys(list.reduce(orderedSetReducer, {}))\n}\n\n/**\n * Uses `list.indexOf` to implement something like `Array.prototype.includes`,\n * which we can not rely on being available.\n *\n * @param {any[]} list\n * @returns {function(any): boolean}\n */\nfunction arrayIncludes (list) {\n\treturn function(element) {\n\t\treturn list && list.indexOf(element) !== -1;\n\t}\n}\n\nfunction copy(src,dest){\n\tfor(var p in src){\n\t\tif (Object.prototype.hasOwnProperty.call(src, p)) {\n\t\t\tdest[p] = src[p];\n\t\t}\n\t}\n}\n\n/**\n^\\w+\\.prototype\\.([_\\w]+)\\s*=\\s*((?:.*\\{\\s*?[\\r\\n][\\s\\S]*?^})|\\S.*?(?=[;\\r\\n]));?\n^\\w+\\.prototype\\.([_\\w]+)\\s*=\\s*(\\S.*?(?=[;\\r\\n]));?\n */\nfunction _extends(Class,Super){\n\tvar pt = Class.prototype;\n\tif(!(pt instanceof Super)){\n\t\tfunction t(){};\n\t\tt.prototype = Super.prototype;\n\t\tt = new t();\n\t\tcopy(pt,t);\n\t\tClass.prototype = pt = t;\n\t}\n\tif(pt.constructor != Class){\n\t\tif(typeof Class != 'function'){\n\t\t\tconsole.error(\"unknown Class:\"+Class)\n\t\t}\n\t\tpt.constructor = Class\n\t}\n}\n\n// Node Types\nvar NodeType = {}\nvar ELEMENT_NODE = NodeType.ELEMENT_NODE = 1;\nvar ATTRIBUTE_NODE = NodeType.ATTRIBUTE_NODE = 2;\nvar TEXT_NODE = NodeType.TEXT_NODE = 3;\nvar CDATA_SECTION_NODE = NodeType.CDATA_SECTION_NODE = 4;\nvar ENTITY_REFERENCE_NODE = NodeType.ENTITY_REFERENCE_NODE = 5;\nvar ENTITY_NODE = NodeType.ENTITY_NODE = 6;\nvar PROCESSING_INSTRUCTION_NODE = NodeType.PROCESSING_INSTRUCTION_NODE = 7;\nvar COMMENT_NODE = NodeType.COMMENT_NODE = 8;\nvar DOCUMENT_NODE = NodeType.DOCUMENT_NODE = 9;\nvar DOCUMENT_TYPE_NODE = NodeType.DOCUMENT_TYPE_NODE = 10;\nvar DOCUMENT_FRAGMENT_NODE = NodeType.DOCUMENT_FRAGMENT_NODE = 11;\nvar NOTATION_NODE = NodeType.NOTATION_NODE = 12;\n\n// ExceptionCode\nvar ExceptionCode = {}\nvar ExceptionMessage = {};\nvar INDEX_SIZE_ERR = ExceptionCode.INDEX_SIZE_ERR = ((ExceptionMessage[1]=\"Index size error\"),1);\nvar DOMSTRING_SIZE_ERR = ExceptionCode.DOMSTRING_SIZE_ERR = ((ExceptionMessage[2]=\"DOMString size error\"),2);\nvar HIERARCHY_REQUEST_ERR = ExceptionCode.HIERARCHY_REQUEST_ERR = ((ExceptionMessage[3]=\"Hierarchy request error\"),3);\nvar WRONG_DOCUMENT_ERR = ExceptionCode.WRONG_DOCUMENT_ERR = ((ExceptionMessage[4]=\"Wrong document\"),4);\nvar INVALID_CHARACTER_ERR = ExceptionCode.INVALID_CHARACTER_ERR = ((ExceptionMessage[5]=\"Invalid character\"),5);\nvar NO_DATA_ALLOWED_ERR = ExceptionCode.NO_DATA_ALLOWED_ERR = ((ExceptionMessage[6]=\"No data allowed\"),6);\nvar NO_MODIFICATION_ALLOWED_ERR = ExceptionCode.NO_MODIFICATION_ALLOWED_ERR = ((ExceptionMessage[7]=\"No modification allowed\"),7);\nvar NOT_FOUND_ERR = ExceptionCode.NOT_FOUND_ERR = ((ExceptionMessage[8]=\"Not found\"),8);\nvar NOT_SUPPORTED_ERR = ExceptionCode.NOT_SUPPORTED_ERR = ((ExceptionMessage[9]=\"Not supported\"),9);\nvar INUSE_ATTRIBUTE_ERR = ExceptionCode.INUSE_ATTRIBUTE_ERR = ((ExceptionMessage[10]=\"Attribute in use\"),10);\n//level2\nvar INVALID_STATE_ERR \t= ExceptionCode.INVALID_STATE_ERR \t= ((ExceptionMessage[11]=\"Invalid state\"),11);\nvar SYNTAX_ERR \t= ExceptionCode.SYNTAX_ERR \t= ((ExceptionMessage[12]=\"Syntax error\"),12);\nvar INVALID_MODIFICATION_ERR \t= ExceptionCode.INVALID_MODIFICATION_ERR \t= ((ExceptionMessage[13]=\"Invalid modification\"),13);\nvar NAMESPACE_ERR \t= ExceptionCode.NAMESPACE_ERR \t= ((ExceptionMessage[14]=\"Invalid namespace\"),14);\nvar INVALID_ACCESS_ERR \t= ExceptionCode.INVALID_ACCESS_ERR \t= ((ExceptionMessage[15]=\"Invalid access\"),15);\n\n/**\n * DOM Level 2\n * Object DOMException\n * @see http://www.w3.org/TR/2000/REC-DOM-Level-2-Core-20001113/ecma-script-binding.html\n * @see http://www.w3.org/TR/REC-DOM-Level-1/ecma-script-language-binding.html\n */\nfunction DOMException(code, message) {\n\tif(message instanceof Error){\n\t\tvar error = message;\n\t}else{\n\t\terror = this;\n\t\tError.call(this, ExceptionMessage[code]);\n\t\tthis.message = ExceptionMessage[code];\n\t\tif(Error.captureStackTrace) Error.captureStackTrace(this, DOMException);\n\t}\n\terror.code = code;\n\tif(message) this.message = this.message + \": \" + message;\n\treturn error;\n};\nDOMException.prototype = Error.prototype;\ncopy(ExceptionCode,DOMException)\n\n/**\n * @see http://www.w3.org/TR/2000/REC-DOM-Level-2-Core-20001113/core.html#ID-536297177\n * The NodeList interface provides the abstraction of an ordered collection of nodes, without defining or constraining how this collection is implemented. NodeList objects in the DOM are live.\n * The items in the NodeList are accessible via an integral index, starting from 0.\n */\nfunction NodeList() {\n};\nNodeList.prototype = {\n\t/**\n\t * The number of nodes in the list. The range of valid child node indices is 0 to length-1 inclusive.\n\t * @standard level1\n\t */\n\tlength:0,\n\t/**\n\t * Returns the indexth item in the collection. If index is greater than or equal to the number of nodes in the list, this returns null.\n\t * @standard level1\n\t * @param index unsigned long\n\t * Index into the collection.\n\t * @return Node\n\t * \tThe node at the indexth position in the NodeList, or null if that is not a valid index.\n\t */\n\titem: function(index) {\n\t\treturn this[index] || null;\n\t},\n\ttoString:function(isHTML,nodeFilter){\n\t\tfor(var buf = [], i = 0;i<this.length;i++){\n\t\t\tserializeToString(this[i],buf,isHTML,nodeFilter);\n\t\t}\n\t\treturn buf.join('');\n\t},\n\t/**\n\t * @private\n\t * @param {function (Node):boolean} predicate\n\t * @returns {Node[]}\n\t */\n\tfilter: function (predicate) {\n\t\treturn Array.prototype.filter.call(this, predicate);\n\t},\n\t/**\n\t * @private\n\t * @param {Node} item\n\t * @returns {number}\n\t */\n\tindexOf: function (item) {\n\t\treturn Array.prototype.indexOf.call(this, item);\n\t},\n};\n\nfunction LiveNodeList(node,refresh){\n\tthis._node = node;\n\tthis._refresh = refresh\n\t_updateLiveList(this);\n}\nfunction _updateLiveList(list){\n\tvar inc = list._node._inc || list._node.ownerDocument._inc;\n\tif(list._inc != inc){\n\t\tvar ls = list._refresh(list._node);\n\t\t//console.log(ls.length)\n\t\t__set__(list,'length',ls.length);\n\t\tcopy(ls,list);\n\t\tlist._inc = inc;\n\t}\n}\nLiveNodeList.prototype.item = function(i){\n\t_updateLiveList(this);\n\treturn this[i];\n}\n\n_extends(LiveNodeList,NodeList);\n\n/**\n * Objects implementing the NamedNodeMap interface are used\n * to represent collections of nodes that can be accessed by name.\n * Note that NamedNodeMap does not inherit from NodeList;\n * NamedNodeMaps are not maintained in any particular order.\n * Objects contained in an object implementing NamedNodeMap may also be accessed by an ordinal index,\n * but this is simply to allow convenient enumeration of the contents of a NamedNodeMap,\n * and does not imply that the DOM specifies an order to these Nodes.\n * NamedNodeMap objects in the DOM are live.\n * used for attributes or DocumentType entities\n */\nfunction NamedNodeMap() {\n};\n\nfunction _findNodeIndex(list,node){\n\tvar i = list.length;\n\twhile(i--){\n\t\tif(list[i] === node){return i}\n\t}\n}\n\nfunction _addNamedNode(el,list,newAttr,oldAttr){\n\tif(oldAttr){\n\t\tlist[_findNodeIndex(list,oldAttr)] = newAttr;\n\t}else{\n\t\tlist[list.length++] = newAttr;\n\t}\n\tif(el){\n\t\tnewAttr.ownerElement = el;\n\t\tvar doc = el.ownerDocument;\n\t\tif(doc){\n\t\t\toldAttr && _onRemoveAttribute(doc,el,oldAttr);\n\t\t\t_onAddAttribute(doc,el,newAttr);\n\t\t}\n\t}\n}\nfunction _removeNamedNode(el,list,attr){\n\t//console.log('remove attr:'+attr)\n\tvar i = _findNodeIndex(list,attr);\n\tif(i>=0){\n\t\tvar lastIndex = list.length-1\n\t\twhile(i<lastIndex){\n\t\t\tlist[i] = list[++i]\n\t\t}\n\t\tlist.length = lastIndex;\n\t\tif(el){\n\t\t\tvar doc = el.ownerDocument;\n\t\t\tif(doc){\n\t\t\t\t_onRemoveAttribute(doc,el,attr);\n\t\t\t\tattr.ownerElement = null;\n\t\t\t}\n\t\t}\n\t}else{\n\t\tthrow new DOMException(NOT_FOUND_ERR,new Error(el.tagName+'@'+attr))\n\t}\n}\nNamedNodeMap.prototype = {\n\tlength:0,\n\titem:NodeList.prototype.item,\n\tgetNamedItem: function(key) {\n//\t\tif(key.indexOf(':')>0 || key == 'xmlns'){\n//\t\t\treturn null;\n//\t\t}\n\t\t//console.log()\n\t\tvar i = this.length;\n\t\twhile(i--){\n\t\t\tvar attr = this[i];\n\t\t\t//console.log(attr.nodeName,key)\n\t\t\tif(attr.nodeName == key){\n\t\t\t\treturn attr;\n\t\t\t}\n\t\t}\n\t},\n\tsetNamedItem: function(attr) {\n\t\tvar el = attr.ownerElement;\n\t\tif(el && el!=this._ownerElement){\n\t\t\tthrow new DOMException(INUSE_ATTRIBUTE_ERR);\n\t\t}\n\t\tvar oldAttr = this.getNamedItem(attr.nodeName);\n\t\t_addNamedNode(this._ownerElement,this,attr,oldAttr);\n\t\treturn oldAttr;\n\t},\n\t/* returns Node */\n\tsetNamedItemNS: function(attr) {// raises: WRONG_DOCUMENT_ERR,NO_MODIFICATION_ALLOWED_ERR,INUSE_ATTRIBUTE_ERR\n\t\tvar el = attr.ownerElement, oldAttr;\n\t\tif(el && el!=this._ownerElement){\n\t\t\tthrow new DOMException(INUSE_ATTRIBUTE_ERR);\n\t\t}\n\t\toldAttr = this.getNamedItemNS(attr.namespaceURI,attr.localName);\n\t\t_addNamedNode(this._ownerElement,this,attr,oldAttr);\n\t\treturn oldAttr;\n\t},\n\n\t/* returns Node */\n\tremoveNamedItem: function(key) {\n\t\tvar attr = this.getNamedItem(key);\n\t\t_removeNamedNode(this._ownerElement,this,attr);\n\t\treturn attr;\n\n\n\t},// raises: NOT_FOUND_ERR,NO_MODIFICATION_ALLOWED_ERR\n\n\t//for level2\n\tremoveNamedItemNS:function(namespaceURI,localName){\n\t\tvar attr = this.getNamedItemNS(namespaceURI,localName);\n\t\t_removeNamedNode(this._ownerElement,this,attr);\n\t\treturn attr;\n\t},\n\tgetNamedItemNS: function(namespaceURI, localName) {\n\t\tvar i = this.length;\n\t\twhile(i--){\n\t\t\tvar node = this[i];\n\t\t\tif(node.localName == localName && node.namespaceURI == namespaceURI){\n\t\t\t\treturn node;\n\t\t\t}\n\t\t}\n\t\treturn null;\n\t}\n};\n\n/**\n * The DOMImplementation interface represents an object providing methods\n * which are not dependent on any particular document.\n * Such an object is returned by the `Document.implementation` property.\n *\n * __The individual methods describe the differences compared to the specs.__\n *\n * @constructor\n *\n * @see https://developer.mozilla.org/en-US/docs/Web/API/DOMImplementation MDN\n * @see https://www.w3.org/TR/REC-DOM-Level-1/level-one-core.html#ID-102161490 DOM Level 1 Core (Initial)\n * @see https://www.w3.org/TR/DOM-Level-2-Core/core.html#ID-102161490 DOM Level 2 Core\n * @see https://www.w3.org/TR/DOM-Level-3-Core/core.html#ID-102161490 DOM Level 3 Core\n * @see https://dom.spec.whatwg.org/#domimplementation DOM Living Standard\n */\nfunction DOMImplementation() {\n}\n\nDOMImplementation.prototype = {\n\t/**\n\t * The DOMImplementation.hasFeature() method returns a Boolean flag indicating if a given feature is supported.\n\t * The different implementations fairly diverged in what kind of features were reported.\n\t * The latest version of the spec settled to force this method to always return true, where the functionality was accurate and in use.\n\t *\n\t * @deprecated It is deprecated and modern browsers return true in all cases.\n\t *\n\t * @param {string} feature\n\t * @param {string} [version]\n\t * @returns {boolean} always true\n\t *\n\t * @see https://developer.mozilla.org/en-US/docs/Web/API/DOMImplementation/hasFeature MDN\n\t * @see https://www.w3.org/TR/REC-DOM-Level-1/level-one-core.html#ID-5CED94D7 DOM Level 1 Core\n\t * @see https://dom.spec.whatwg.org/#dom-domimplementation-hasfeature DOM Living Standard\n\t */\n\thasFeature: function(feature, version) {\n\t\t\treturn true;\n\t},\n\t/**\n\t * Creates an XML Document object of the specified type with its document element.\n\t *\n\t * __It behaves slightly different from the description in the living standard__:\n\t * - There is no interface/class `XMLDocument`, it returns a `Document` instance.\n\t * - `contentType`, `encoding`, `mode`, `origin`, `url` fields are currently not declared.\n\t * - this implementation is not validating names or qualified names\n\t * (when parsing XML strings, the SAX parser takes care of that)\n\t *\n\t * @param {string|null} namespaceURI\n\t * @param {string} qualifiedName\n\t * @param {DocumentType=null} doctype\n\t * @returns {Document}\n\t *\n\t * @see https://developer.mozilla.org/en-US/docs/Web/API/DOMImplementation/createDocument MDN\n\t * @see https://www.w3.org/TR/DOM-Level-2-Core/core.html#Level-2-Core-DOM-createDocument DOM Level 2 Core (initial)\n\t * @see https://dom.spec.whatwg.org/#dom-domimplementation-createdocument DOM Level 2 Core\n\t *\n\t * @see https://dom.spec.whatwg.org/#validate-and-extract DOM: Validate and extract\n\t * @see https://www.w3.org/TR/xml/#NT-NameStartChar XML Spec: Names\n\t * @see https://www.w3.org/TR/xml-names/#ns-qualnames XML Namespaces: Qualified names\n\t */\n\tcreateDocument: function(namespaceURI, qualifiedName, doctype){\n\t\tvar doc = new Document();\n\t\tdoc.implementation = this;\n\t\tdoc.childNodes = new NodeList();\n\t\tdoc.doctype = doctype || null;\n\t\tif (doctype){\n\t\t\tdoc.appendChild(doctype);\n\t\t}\n\t\tif (qualifiedName){\n\t\t\tvar root = doc.createElementNS(namespaceURI, qualifiedName);\n\t\t\tdoc.appendChild(root);\n\t\t}\n\t\treturn doc;\n\t},\n\t/**\n\t * Returns a doctype, with the given `qualifiedName`, `publicId`, and `systemId`.\n\t *\n\t * __This behavior is slightly different from the in the specs__:\n\t * - this implementation is not validating names or qualified names\n\t * (when parsing XML strings, the SAX parser takes care of that)\n\t *\n\t * @param {string} qualifiedName\n\t * @param {string} [publicId]\n\t * @param {string} [systemId]\n\t * @returns {DocumentType} which can either be used with `DOMImplementation.createDocument` upon document creation\n\t * \t\t\t\t or can be put into the document via methods like `Node.insertBefore()` or `Node.replaceChild()`\n\t *\n\t * @see https://developer.mozilla.org/en-US/docs/Web/API/DOMImplementation/createDocumentType MDN\n\t * @see https://www.w3.org/TR/DOM-Level-2-Core/core.html#Level-2-Core-DOM-createDocType DOM Level 2 Core\n\t * @see https://dom.spec.whatwg.org/#dom-domimplementation-createdocumenttype DOM Living Standard\n\t *\n\t * @see https://dom.spec.whatwg.org/#validate-and-extract DOM: Validate and extract\n\t * @see https://www.w3.org/TR/xml/#NT-NameStartChar XML Spec: Names\n\t * @see https://www.w3.org/TR/xml-names/#ns-qualnames XML Namespaces: Qualified names\n\t */\n\tcreateDocumentType: function(qualifiedName, publicId, systemId){\n\t\tvar node = new DocumentType();\n\t\tnode.name = qualifiedName;\n\t\tnode.nodeName = qualifiedName;\n\t\tnode.publicId = publicId || '';\n\t\tnode.systemId = systemId || '';\n\n\t\treturn node;\n\t}\n};\n\n\n/**\n * @see http://www.w3.org/TR/2000/REC-DOM-Level-2-Core-20001113/core.html#ID-1950641247\n */\n\nfunction Node() {\n};\n\nNode.prototype = {\n\tfirstChild : null,\n\tlastChild : null,\n\tpreviousSibling : null,\n\tnextSibling : null,\n\tattributes : null,\n\tparentNode : null,\n\tchildNodes : null,\n\townerDocument : null,\n\tnodeValue : null,\n\tnamespaceURI : null,\n\tprefix : null,\n\tlocalName : null,\n\t// Modified in DOM Level 2:\n\tinsertBefore:function(newChild, refChild){//raises\n\t\treturn _insertBefore(this,newChild,refChild);\n\t},\n\treplaceChild:function(newChild, oldChild){//raises\n\t\t_insertBefore(this, newChild,oldChild, assertPreReplacementValidityInDocument);\n\t\tif(oldChild){\n\t\t\tthis.removeChild(oldChild);\n\t\t}\n\t},\n\tremoveChild:function(oldChild){\n\t\treturn _removeChild(this,oldChild);\n\t},\n\tappendChild:function(newChild){\n\t\treturn this.insertBefore(newChild,null);\n\t},\n\thasChildNodes:function(){\n\t\treturn this.firstChild != null;\n\t},\n\tcloneNode:function(deep){\n\t\treturn cloneNode(this.ownerDocument||this,this,deep);\n\t},\n\t// Modified in DOM Level 2:\n\tnormalize:function(){\n\t\tvar child = this.firstChild;\n\t\twhile(child){\n\t\t\tvar next = child.nextSibling;\n\t\t\tif(next && next.nodeType == TEXT_NODE && child.nodeType == TEXT_NODE){\n\t\t\t\tthis.removeChild(next);\n\t\t\t\tchild.appendData(next.data);\n\t\t\t}else{\n\t\t\t\tchild.normalize();\n\t\t\t\tchild = next;\n\t\t\t}\n\t\t}\n\t},\n \t// Introduced in DOM Level 2:\n\tisSupported:function(feature, version){\n\t\treturn this.ownerDocument.implementation.hasFeature(feature,version);\n\t},\n // Introduced in DOM Level 2:\n hasAttributes:function(){\n \treturn this.attributes.length>0;\n },\n\t/**\n\t * Look up the prefix associated to the given namespace URI, starting from this node.\n\t * **The default namespace declarations are ignored by this method.**\n\t * See Namespace Prefix Lookup for details on the algorithm used by this method.\n\t *\n\t * _Note: The implementation seems to be incomplete when compared to the algorithm described in the specs._\n\t *\n\t * @param {string | null} namespaceURI\n\t * @returns {string | null}\n\t * @see https://www.w3.org/TR/DOM-Level-3-Core/core.html#Node3-lookupNamespacePrefix\n\t * @see https://www.w3.org/TR/DOM-Level-3-Core/namespaces-algorithms.html#lookupNamespacePrefixAlgo\n\t * @see https://dom.spec.whatwg.org/#dom-node-lookupprefix\n\t * @see https://github.com/xmldom/xmldom/issues/322\n\t */\n lookupPrefix:function(namespaceURI){\n \tvar el = this;\n \twhile(el){\n \t\tvar map = el._nsMap;\n \t\t//console.dir(map)\n \t\tif(map){\n \t\t\tfor(var n in map){\n\t\t\t\t\t\tif (Object.prototype.hasOwnProperty.call(map, n) && map[n] === namespaceURI) {\n\t\t\t\t\t\t\treturn n;\n\t\t\t\t\t\t}\n \t\t\t}\n \t\t}\n \t\tel = el.nodeType == ATTRIBUTE_NODE?el.ownerDocument : el.parentNode;\n \t}\n \treturn null;\n },\n // Introduced in DOM Level 3:\n lookupNamespaceURI:function(prefix){\n \tvar el = this;\n \twhile(el){\n \t\tvar map = el._nsMap;\n \t\t//console.dir(map)\n \t\tif(map){\n \t\t\tif(Object.prototype.hasOwnProperty.call(map, prefix)){\n \t\t\t\treturn map[prefix] ;\n \t\t\t}\n \t\t}\n \t\tel = el.nodeType == ATTRIBUTE_NODE?el.ownerDocument : el.parentNode;\n \t}\n \treturn null;\n },\n // Introduced in DOM Level 3:\n isDefaultNamespace:function(namespaceURI){\n \tvar prefix = this.lookupPrefix(namespaceURI);\n \treturn prefix == null;\n }\n};\n\n\nfunction _xmlEncoder(c){\n\treturn c == '<' && '<' ||\n c == '>' && '>' ||\n c == '&' && '&' ||\n c == '\"' && '"' ||\n '&#'+c.charCodeAt()+';'\n}\n\n\ncopy(NodeType,Node);\ncopy(NodeType,Node.prototype);\n\n/**\n * @param callback return true for continue,false for break\n * @return boolean true: break visit;\n */\nfunction _visitNode(node,callback){\n\tif(callback(node)){\n\t\treturn true;\n\t}\n\tif(node = node.firstChild){\n\t\tdo{\n\t\t\tif(_visitNode(node,callback)){return true}\n }while(node=node.nextSibling)\n }\n}\n\n\n\nfunction Document(){\n\tthis.ownerDocument = this;\n}\n\nfunction _onAddAttribute(doc,el,newAttr){\n\tdoc && doc._inc++;\n\tvar ns = newAttr.namespaceURI ;\n\tif(ns === NAMESPACE.XMLNS){\n\t\t//update namespace\n\t\tel._nsMap[newAttr.prefix?newAttr.localName:''] = newAttr.value\n\t}\n}\n\nfunction _onRemoveAttribute(doc,el,newAttr,remove){\n\tdoc && doc._inc++;\n\tvar ns = newAttr.namespaceURI ;\n\tif(ns === NAMESPACE.XMLNS){\n\t\t//update namespace\n\t\tdelete el._nsMap[newAttr.prefix?newAttr.localName:'']\n\t}\n}\n\n/**\n * Updates `el.childNodes`, updating the indexed items and it's `length`.\n * Passing `newChild` means it will be appended.\n * Otherwise it's assumed that an item has been removed,\n * and `el.firstNode` and it's `.nextSibling` are used\n * to walk the current list of child nodes.\n *\n * @param {Document} doc\n * @param {Node} el\n * @param {Node} [newChild]\n * @private\n */\nfunction _onUpdateChild (doc, el, newChild) {\n\tif(doc && doc._inc){\n\t\tdoc._inc++;\n\t\t//update childNodes\n\t\tvar cs = el.childNodes;\n\t\tif (newChild) {\n\t\t\tcs[cs.length++] = newChild;\n\t\t} else {\n\t\t\tvar child = el.firstChild;\n\t\t\tvar i = 0;\n\t\t\twhile (child) {\n\t\t\t\tcs[i++] = child;\n\t\t\t\tchild = child.nextSibling;\n\t\t\t}\n\t\t\tcs.length = i;\n\t\t\tdelete cs[cs.length];\n\t\t}\n\t}\n}\n\n/**\n * Removes the connections between `parentNode` and `child`\n * and any existing `child.previousSibling` or `child.nextSibling`.\n *\n * @see https://github.com/xmldom/xmldom/issues/135\n * @see https://github.com/xmldom/xmldom/issues/145\n *\n * @param {Node} parentNode\n * @param {Node} child\n * @returns {Node} the child that was removed.\n * @private\n */\nfunction _removeChild (parentNode, child) {\n\tvar previous = child.previousSibling;\n\tvar next = child.nextSibling;\n\tif (previous) {\n\t\tprevious.nextSibling = next;\n\t} else {\n\t\tparentNode.firstChild = next;\n\t}\n\tif (next) {\n\t\tnext.previousSibling = previous;\n\t} else {\n\t\tparentNode.lastChild = previous;\n\t}\n\tchild.parentNode = null;\n\tchild.previousSibling = null;\n\tchild.nextSibling = null;\n\t_onUpdateChild(parentNode.ownerDocument, parentNode);\n\treturn child;\n}\n\n/**\n * Returns `true` if `node` can be a parent for insertion.\n * @param {Node} node\n * @returns {boolean}\n */\nfunction hasValidParentNodeType(node) {\n\treturn (\n\t\tnode &&\n\t\t(node.nodeType === Node.DOCUMENT_NODE || node.nodeType === Node.DOCUMENT_FRAGMENT_NODE || node.nodeType === Node.ELEMENT_NODE)\n\t);\n}\n\n/**\n * Returns `true` if `node` can be inserted according to it's `nodeType`.\n * @param {Node} node\n * @returns {boolean}\n */\nfunction hasInsertableNodeType(node) {\n\treturn (\n\t\tnode &&\n\t\t(isElementNode(node) ||\n\t\t\tisTextNode(node) ||\n\t\t\tisDocTypeNode(node) ||\n\t\t\tnode.nodeType === Node.DOCUMENT_FRAGMENT_NODE ||\n\t\t\tnode.nodeType === Node.COMMENT_NODE ||\n\t\t\tnode.nodeType === Node.PROCESSING_INSTRUCTION_NODE)\n\t);\n}\n\n/**\n * Returns true if `node` is a DOCTYPE node\n * @param {Node} node\n * @returns {boolean}\n */\nfunction isDocTypeNode(node) {\n\treturn node && node.nodeType === Node.DOCUMENT_TYPE_NODE;\n}\n\n/**\n * Returns true if the node is an element\n * @param {Node} node\n * @returns {boolean}\n */\nfunction isElementNode(node) {\n\treturn node && node.nodeType === Node.ELEMENT_NODE;\n}\n/**\n * Returns true if `node` is a text node\n * @param {Node} node\n * @returns {boolean}\n */\nfunction isTextNode(node) {\n\treturn node && node.nodeType === Node.TEXT_NODE;\n}\n\n/**\n * Check if en element node can be inserted before `child`, or at the end if child is falsy,\n * according to the presence and position of a doctype node on the same level.\n *\n * @param {Document} doc The document node\n * @param {Node} child the node that would become the nextSibling if the element would be inserted\n * @returns {boolean} `true` if an element can be inserted before child\n * @private\n * https://dom.spec.whatwg.org/#concept-node-ensure-pre-insertion-validity\n */\nfunction isElementInsertionPossible(doc, child) {\n\tvar parentChildNodes = doc.childNodes || [];\n\tif (find(parentChildNodes, isElementNode) || isDocTypeNode(child)) {\n\t\treturn false;\n\t}\n\tvar docTypeNode = find(parentChildNodes, isDocTypeNode);\n\treturn !(child && docTypeNode && parentChildNodes.indexOf(docTypeNode) > parentChildNodes.indexOf(child));\n}\n\n/**\n * Check if en element node can be inserted before `child`, or at the end if child is falsy,\n * according to the presence and position of a doctype node on the same level.\n *\n * @param {Node} doc The document node\n * @param {Node} child the node that would become the nextSibling if the element would be inserted\n * @returns {boolean} `true` if an element can be inserted before child\n * @private\n * https://dom.spec.whatwg.org/#concept-node-ensure-pre-insertion-validity\n */\nfunction isElementReplacementPossible(doc, child) {\n\tvar parentChildNodes = doc.childNodes || [];\n\n\tfunction hasElementChildThatIsNotChild(node) {\n\t\treturn isElementNode(node) && node !== child;\n\t}\n\n\tif (find(parentChildNodes, hasElementChildThatIsNotChild)) {\n\t\treturn false;\n\t}\n\tvar docTypeNode = find(parentChildNodes, isDocTypeNode);\n\treturn !(child && docTypeNode && parentChildNodes.indexOf(docTypeNode) > parentChildNodes.indexOf(child));\n}\n\n/**\n * @private\n * Steps 1-5 of the checks before inserting and before replacing a child are the same.\n *\n * @param {Node} parent the parent node to insert `node` into\n * @param {Node} node the node to insert\n * @param {Node=} child the node that should become the `nextSibling` of `node`\n * @returns {Node}\n * @throws DOMException for several node combinations that would create a DOM that is not well-formed.\n * @throws DOMException if `child` is provided but is not a child of `parent`.\n * @see https://dom.spec.whatwg.org/#concept-node-ensure-pre-insertion-validity\n * @see https://dom.spec.whatwg.org/#concept-node-replace\n */\nfunction assertPreInsertionValidity1to5(parent, node, child) {\n\t// 1. If `parent` is not a Document, DocumentFragment, or Element node, then throw a \"HierarchyRequestError\" DOMException.\n\tif (!hasValidParentNodeType(parent)) {\n\t\tthrow new DOMException(HIERARCHY_REQUEST_ERR, 'Unexpected parent node type ' + parent.nodeType);\n\t}\n\t// 2. If `node` is a host-including inclusive ancestor of `parent`, then throw a \"HierarchyRequestError\" DOMException.\n\t// not implemented!\n\t// 3. If `child` is non-null and its parent is not `parent`, then throw a \"NotFoundError\" DOMException.\n\tif (child && child.parentNode !== parent) {\n\t\tthrow new DOMException(NOT_FOUND_ERR, 'child not in parent');\n\t}\n\tif (\n\t\t// 4. If `node` is not a DocumentFragment, DocumentType, Element, or CharacterData node, then throw a \"HierarchyRequestError\" DOMException.\n\t\t!hasInsertableNodeType(node) ||\n\t\t// 5. If either `node` is a Text node and `parent` is a document,\n\t\t// the sax parser currently adds top level text nodes, this will be fixed in 0.9.0\n\t\t// || (node.nodeType === Node.TEXT_NODE && parent.nodeType === Node.DOCUMENT_NODE)\n\t\t// or `node` is a doctype and `parent` is not a document, then throw a \"HierarchyRequestError\" DOMException.\n\t\t(isDocTypeNode(node) && parent.nodeType !== Node.DOCUMENT_NODE)\n\t) {\n\t\tthrow new DOMException(\n\t\t\tHIERARCHY_REQUEST_ERR,\n\t\t\t'Unexpected node type ' + node.nodeType + ' for parent node type ' + parent.nodeType\n\t\t);\n\t}\n}\n\n/**\n * @private\n * Step 6 of the checks before inserting and before replacing a child are different.\n *\n * @param {Document} parent the parent node to insert `node` into\n * @param {Node} node the node to insert\n * @param {Node | undefined} child the node that should become the `nextSibling` of `node`\n * @returns {Node}\n * @throws DOMException for several node combinations that would create a DOM that is not well-formed.\n * @throws DOMException if `child` is provided but is not a child of `parent`.\n * @see https://dom.spec.whatwg.org/#concept-node-ensure-pre-insertion-validity\n * @see https://dom.spec.whatwg.org/#concept-node-replace\n */\nfunction assertPreInsertionValidityInDocument(parent, node, child) {\n\tvar parentChildNodes = parent.childNodes || [];\n\tvar nodeChildNodes = node.childNodes || [];\n\n\t// DocumentFragment\n\tif (node.nodeType === Node.DOCUMENT_FRAGMENT_NODE) {\n\t\tvar nodeChildElements = nodeChildNodes.filter(isElementNode);\n\t\t// If node has more than one element child or has a Text node child.\n\t\tif (nodeChildElements.length > 1 || find(nodeChildNodes, isTextNode)) {\n\t\t\tthrow new DOMException(HIERARCHY_REQUEST_ERR, 'More than one element or text in fragment');\n\t\t}\n\t\t// Otherwise, if `node` has one element child and either `parent` has an element child,\n\t\t// `child` is a doctype, or `child` is non-null and a doctype is following `child`.\n\t\tif (nodeChildElements.length === 1 && !isElementInsertionPossible(parent, child)) {\n\t\t\tthrow new DOMException(HIERARCHY_REQUEST_ERR, 'Element in fragment can not be inserted before doctype');\n\t\t}\n\t}\n\t// Element\n\tif (isElementNode(node)) {\n\t\t// `parent` has an element child, `child` is a doctype,\n\t\t// or `child` is non-null and a doctype is following `child`.\n\t\tif (!isElementInsertionPossible(parent, child)) {\n\t\t\tthrow new DOMException(HIERARCHY_REQUEST_ERR, 'Only one element can be added and only after doctype');\n\t\t}\n\t}\n\t// DocumentType\n\tif (isDocTypeNode(node)) {\n\t\t// `parent` has a doctype child,\n\t\tif (find(parentChildNodes, isDocTypeNode)) {\n\t\t\tthrow new DOMException(HIERARCHY_REQUEST_ERR, 'Only one doctype is allowed');\n\t\t}\n\t\tvar parentElementChild = find(parentChildNodes, isElementNode);\n\t\t// `child` is non-null and an element is preceding `child`,\n\t\tif (child && parentChildNodes.indexOf(parentElementChild) < parentChildNodes.indexOf(child)) {\n\t\t\tthrow new DOMException(HIERARCHY_REQUEST_ERR, 'Doctype can only be inserted before an element');\n\t\t}\n\t\t// or `child` is null and `parent` has an element child.\n\t\tif (!child && parentElementChild) {\n\t\t\tthrow new DOMException(HIERARCHY_REQUEST_ERR, 'Doctype can not be appended since element is present');\n\t\t}\n\t}\n}\n\n/**\n * @private\n * Step 6 of the checks before inserting and before replacing a child are different.\n *\n * @param {Document} parent the parent node to insert `node` into\n * @param {Node} node the node to insert\n * @param {Node | undefined} child the node that should become the `nextSibling` of `node`\n * @returns {Node}\n * @throws DOMException for several node combinations that would create a DOM that is not well-formed.\n * @throws DOMException if `child` is provided but is not a child of `parent`.\n * @see https://dom.spec.whatwg.org/#concept-node-ensure-pre-insertion-validity\n * @see https://dom.spec.whatwg.org/#concept-node-replace\n */\nfunction assertPreReplacementValidityInDocument(parent, node, child) {\n\tvar parentChildNodes = parent.childNodes || [];\n\tvar nodeChildNodes = node.childNodes || [];\n\n\t// DocumentFragment\n\tif (node.nodeType === Node.DOCUMENT_FRAGMENT_NODE) {\n\t\tvar nodeChildElements = nodeChildNodes.filter(isElementNode);\n\t\t// If `node` has more than one element child or has a Text node child.\n\t\tif (nodeChildElements.length > 1 || find(nodeChildNodes, isTextNode)) {\n\t\t\tthrow new DOMException(HIERARCHY_REQUEST_ERR, 'More than one element or text in fragment');\n\t\t}\n\t\t// Otherwise, if `node` has one element child and either `parent` has an element child that is not `child` or a doctype is following `child`.\n\t\tif (nodeChildElements.length === 1 && !isElementReplacementPossible(parent, child)) {\n\t\t\tthrow new DOMException(HIERARCHY_REQUEST_ERR, 'Element in fragment can not be inserted before doctype');\n\t\t}\n\t}\n\t// Element\n\tif (isElementNode(node)) {\n\t\t// `parent` has an element child that is not `child` or a doctype is following `child`.\n\t\tif (!isElementReplacementPossible(parent, child)) {\n\t\t\tthrow new DOMException(HIERARCHY_REQUEST_ERR, 'Only one element can be added and only after doctype');\n\t\t}\n\t}\n\t// DocumentType\n\tif (isDocTypeNode(node)) {\n\t\tfunction hasDoctypeChildThatIsNotChild(node) {\n\t\t\treturn isDocTypeNode(node) && node !== child;\n\t\t}\n\n\t\t// `parent` has a doctype child that is not `child`,\n\t\tif (find(parentChildNodes, hasDoctypeChildThatIsNotChild)) {\n\t\t\tthrow new DOMException(HIERARCHY_REQUEST_ERR, 'Only one doctype is allowed');\n\t\t}\n\t\tvar parentElementChild = find(parentChildNodes, isElementNode);\n\t\t// or an element is preceding `child`.\n\t\tif (child && parentChildNodes.indexOf(parentElementChild) < parentChildNodes.indexOf(child)) {\n\t\t\tthrow new DOMException(HIERARCHY_REQUEST_ERR, 'Doctype can only be inserted before an element');\n\t\t}\n\t}\n}\n\n/**\n * @private\n * @param {Node} parent the parent node to insert `node` into\n * @param {Node} node the node to insert\n * @param {Node=} child the node that should become the `nextSibling` of `node`\n * @returns {Node}\n * @throws DOMException for several node combinations that would create a DOM that is not well-formed.\n * @throws DOMException if `child` is provided but is not a child of `parent`.\n * @see https://dom.spec.whatwg.org/#concept-node-ensure-pre-insertion-validity\n */\nfunction _insertBefore(parent, node, child, _inDocumentAssertion) {\n\t// To ensure pre-insertion validity of a node into a parent before a child, run these steps:\n\tassertPreInsertionValidity1to5(parent, node, child);\n\n\t// If parent is a document, and any of the statements below, switched on the interface node implements,\n\t// are true, then throw a \"HierarchyRequestError\" DOMException.\n\tif (parent.nodeType === Node.DOCUMENT_NODE) {\n\t\t(_inDocumentAssertion || assertPreInsertionValidityInDocument)(parent, node, child);\n\t}\n\n\tvar cp = node.parentNode;\n\tif(cp){\n\t\tcp.removeChild(node);//remove and update\n\t}\n\tif(node.nodeType === DOCUMENT_FRAGMENT_NODE){\n\t\tvar newFirst = node.firstChild;\n\t\tif (newFirst == null) {\n\t\t\treturn node;\n\t\t}\n\t\tvar newLast = node.lastChild;\n\t}else{\n\t\tnewFirst = newLast = node;\n\t}\n\tvar pre = child ? child.previousSibling : parent.lastChild;\n\n\tnewFirst.previousSibling = pre;\n\tnewLast.nextSibling = child;\n\n\n\tif(pre){\n\t\tpre.nextSibling = newFirst;\n\t}else{\n\t\tparent.firstChild = newFirst;\n\t}\n\tif(child == null){\n\t\tparent.lastChild = newLast;\n\t}else{\n\t\tchild.previousSibling = newLast;\n\t}\n\tdo{\n\t\tnewFirst.parentNode = parent;\n\t}while(newFirst !== newLast && (newFirst= newFirst.nextSibling))\n\t_onUpdateChild(parent.ownerDocument||parent, parent);\n\t//console.log(parent.lastChild.nextSibling == null)\n\tif (node.nodeType == DOCUMENT_FRAGMENT_NODE) {\n\t\tnode.firstChild = node.lastChild = null;\n\t}\n\treturn node;\n}\n\n/**\n * Appends `newChild` to `parentNode`.\n * If `newChild` is already connected to a `parentNode` it is first removed from it.\n *\n * @see https://github.com/xmldom/xmldom/issues/135\n * @see https://github.com/xmldom/xmldom/issues/145\n * @param {Node} parentNode\n * @param {Node} newChild\n * @returns {Node}\n * @private\n */\nfunction _appendSingleChild (parentNode, newChild) {\n\tif (newChild.parentNode) {\n\t\tnewChild.parentNode.removeChild(newChild);\n\t}\n\tnewChild.parentNode = parentNode;\n\tnewChild.previousSibling = parentNode.lastChild;\n\tnewChild.nextSibling = null;\n\tif (newChild.previousSibling) {\n\t\tnewChild.previousSibling.nextSibling = newChild;\n\t} else {\n\t\tparentNode.firstChild = newChild;\n\t}\n\tparentNode.lastChild = newChild;\n\t_onUpdateChild(parentNode.ownerDocument, parentNode, newChild);\n\treturn newChild;\n}\n\nDocument.prototype = {\n\t//implementation : null,\n\tnodeName : '#document',\n\tnodeType : DOCUMENT_NODE,\n\t/**\n\t * The DocumentType node of the document.\n\t *\n\t * @readonly\n\t * @type DocumentType\n\t */\n\tdoctype : null,\n\tdocumentElement : null,\n\t_inc : 1,\n\n\tinsertBefore : function(newChild, refChild){//raises\n\t\tif(newChild.nodeType == DOCUMENT_FRAGMENT_NODE){\n\t\t\tvar child = newChild.firstChild;\n\t\t\twhile(child){\n\t\t\t\tvar next = child.nextSibling;\n\t\t\t\tthis.insertBefore(child,refChild);\n\t\t\t\tchild = next;\n\t\t\t}\n\t\t\treturn newChild;\n\t\t}\n\t\t_insertBefore(this, newChild, refChild);\n\t\tnewChild.ownerDocument = this;\n\t\tif (this.documentElement === null && newChild.nodeType === ELEMENT_NODE) {\n\t\t\tthis.documentElement = newChild;\n\t\t}\n\n\t\treturn newChild;\n\t},\n\tremoveChild : function(oldChild){\n\t\tif(this.documentElement == oldChild){\n\t\t\tthis.documentElement = null;\n\t\t}\n\t\treturn _removeChild(this,oldChild);\n\t},\n\treplaceChild: function (newChild, oldChild) {\n\t\t//raises\n\t\t_insertBefore(this, newChild, oldChild, assertPreReplacementValidityInDocument);\n\t\tnewChild.ownerDocument = this;\n\t\tif (oldChild) {\n\t\t\tthis.removeChild(oldChild);\n\t\t}\n\t\tif (isElementNode(newChild)) {\n\t\t\tthis.documentElement = newChild;\n\t\t}\n\t},\n\t// Introduced in DOM Level 2:\n\timportNode : function(importedNode,deep){\n\t\treturn importNode(this,importedNode,deep);\n\t},\n\t// Introduced in DOM Level 2:\n\tgetElementById :\tfunction(id){\n\t\tvar rtv = null;\n\t\t_visitNode(this.documentElement,function(node){\n\t\t\tif(node.nodeType == ELEMENT_NODE){\n\t\t\t\tif(node.getAttribute('id') == id){\n\t\t\t\t\trtv = node;\n\t\t\t\t\treturn true;\n\t\t\t\t}\n\t\t\t}\n\t\t})\n\t\treturn rtv;\n\t},\n\n\t/**\n\t * The `getElementsByClassName` method of `Document` interface returns an array-like object\n\t * of all child elements which have **all** of the given class name(s).\n\t *\n\t * Returns an empty list if `classeNames` is an empty string or only contains HTML white space characters.\n\t *\n\t *\n\t * Warning: This is a live LiveNodeList.\n\t * Changes in the DOM will reflect in the array as the changes occur.\n\t * If an element selected by this array no longer qualifies for the selector,\n\t * it will automatically be removed. Be aware of this for iteration purposes.\n\t *\n\t * @param {string} classNames is a string representing the class name(s) to match; multiple class names are separated by (ASCII-)whitespace\n\t *\n\t * @see https://developer.mozilla.org/en-US/docs/Web/API/Document/getElementsByClassName\n\t * @see https://dom.spec.whatwg.org/#concept-getelementsbyclassname\n\t */\n\tgetElementsByClassName: function(classNames) {\n\t\tvar classNamesSet = toOrderedSet(classNames)\n\t\treturn new LiveNodeList(this, function(base) {\n\t\t\tvar ls = [];\n\t\t\tif (classNamesSet.length > 0) {\n\t\t\t\t_visitNode(base.documentElement, function(node) {\n\t\t\t\t\tif(node !== base && node.nodeType === ELEMENT_NODE) {\n\t\t\t\t\t\tvar nodeClassNames = node.getAttribute('class')\n\t\t\t\t\t\t// can be null if the attribute does not exist\n\t\t\t\t\t\tif (nodeClassNames) {\n\t\t\t\t\t\t\t// before splitting and iterating just compare them for the most common case\n\t\t\t\t\t\t\tvar matches = classNames === nodeClassNames;\n\t\t\t\t\t\t\tif (!matches) {\n\t\t\t\t\t\t\t\tvar nodeClassNamesSet = toOrderedSet(nodeClassNames)\n\t\t\t\t\t\t\t\tmatches = classNamesSet.every(arrayIncludes(nodeClassNamesSet))\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tif(matches) {\n\t\t\t\t\t\t\t\tls.push(node);\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t});\n\t\t\t}\n\t\t\treturn ls;\n\t\t});\n\t},\n\n\t//document factory method:\n\tcreateElement :\tfunction(tagName){\n\t\tvar node = new Element();\n\t\tnode.ownerDocument = this;\n\t\tnode.nodeName = tagName;\n\t\tnode.tagName = tagName;\n\t\tnode.localName = tagName;\n\t\tnode.childNodes = new NodeList();\n\t\tvar attrs\t= node.attributes = new NamedNodeMap();\n\t\tattrs._ownerElement = node;\n\t\treturn node;\n\t},\n\tcreateDocumentFragment :\tfunction(){\n\t\tvar node = new DocumentFragment();\n\t\tnode.ownerDocument = this;\n\t\tnode.childNodes = new NodeList();\n\t\treturn node;\n\t},\n\tcreateTextNode :\tfunction(data){\n\t\tvar node = new Text();\n\t\tnode.ownerDocument = this;\n\t\tnode.appendData(data)\n\t\treturn node;\n\t},\n\tcreateComment :\tfunction(data){\n\t\tvar node = new Comment();\n\t\tnode.ownerDocument = this;\n\t\tnode.appendData(data)\n\t\treturn node;\n\t},\n\tcreateCDATASection :\tfunction(data){\n\t\tvar node = new CDATASection();\n\t\tnode.ownerDocument = this;\n\t\tnode.appendData(data)\n\t\treturn node;\n\t},\n\tcreateProcessingInstruction :\tfunction(target,data){\n\t\tvar node = new ProcessingInstruction();\n\t\tnode.ownerDocument = this;\n\t\tnode.tagName = node.target = target;\n\t\tnode.nodeValue= node.data = data;\n\t\treturn node;\n\t},\n\tcreateAttribute :\tfunction(name){\n\t\tvar node = new Attr();\n\t\tnode.ownerDocument\t= this;\n\t\tnode.name = name;\n\t\tnode.nodeName\t= name;\n\t\tnode.localName = name;\n\t\tnode.specified = true;\n\t\treturn node;\n\t},\n\tcreateEntityReference :\tfunction(name){\n\t\tvar node = new EntityReference();\n\t\tnode.ownerDocument\t= this;\n\t\tnode.nodeName\t= name;\n\t\treturn node;\n\t},\n\t// Introduced in DOM Level 2:\n\tcreateElementNS :\tfunction(namespaceURI,qualifiedName){\n\t\tvar node = new Element();\n\t\tvar pl = qualifiedName.split(':');\n\t\tvar attrs\t= node.attributes = new NamedNodeMap();\n\t\tnode.childNodes = new NodeList();\n\t\tnode.ownerDocument = this;\n\t\tnode.nodeName = qualifiedName;\n\t\tnode.tagName = qualifiedName;\n\t\tnode.namespaceURI = namespaceURI;\n\t\tif(pl.length == 2){\n\t\t\tnode.prefix = pl[0];\n\t\t\tnode.localName = pl[1];\n\t\t}else{\n\t\t\t//el.prefix = null;\n\t\t\tnode.localName = qualifiedName;\n\t\t}\n\t\tattrs._ownerElement = node;\n\t\treturn node;\n\t},\n\t// Introduced in DOM Level 2:\n\tcreateAttributeNS :\tfunction(namespaceURI,qualifiedName){\n\t\tvar node = new Attr();\n\t\tvar pl = qualifiedName.split(':');\n\t\tnode.ownerDocument = this;\n\t\tnode.nodeName = qualifiedName;\n\t\tnode.name = qualifiedName;\n\t\tnode.namespaceURI = namespaceURI;\n\t\tnode.specified = true;\n\t\tif(pl.length == 2){\n\t\t\tnode.prefix = pl[0];\n\t\t\tnode.localName = pl[1];\n\t\t}else{\n\t\t\t//el.prefix = null;\n\t\t\tnode.localName = qualifiedName;\n\t\t}\n\t\treturn node;\n\t}\n};\n_extends(Document,Node);\n\n\nfunction Element() {\n\tthis._nsMap = {};\n};\nElement.prototype = {\n\tnodeType : ELEMENT_NODE,\n\thasAttribute : function(name){\n\t\treturn this.getAttributeNode(name)!=null;\n\t},\n\tgetAttribute : function(name){\n\t\tvar attr = this.getAttributeNode(name);\n\t\treturn attr && attr.value || '';\n\t},\n\tgetAttributeNode : function(name){\n\t\treturn this.attributes.getNamedItem(name);\n\t},\n\tsetAttribute : function(name, value){\n\t\tvar attr = this.ownerDocument.createAttribute(name);\n\t\tattr.value = attr.nodeValue = \"\" + value;\n\t\tthis.setAttributeNode(attr)\n\t},\n\tremoveAttribute : function(name){\n\t\tvar attr = this.getAttributeNode(name)\n\t\tattr && this.removeAttributeNode(attr);\n\t},\n\n\t//four real opeartion method\n\tappendChild:function(newChild){\n\t\tif(newChild.nodeType === DOCUMENT_FRAGMENT_NODE){\n\t\t\treturn this.insertBefore(newChild,null);\n\t\t}else{\n\t\t\treturn _appendSingleChild(this,newChild);\n\t\t}\n\t},\n\tsetAttributeNode : function(newAttr){\n\t\treturn this.attributes.setNamedItem(newAttr);\n\t},\n\tsetAttributeNodeNS : function(newAttr){\n\t\treturn this.attributes.setNamedItemNS(newAttr);\n\t},\n\tremoveAttributeNode : function(oldAttr){\n\t\t//console.log(this == oldAttr.ownerElement)\n\t\treturn this.attributes.removeNamedItem(oldAttr.nodeName);\n\t},\n\t//get real attribute name,and remove it by removeAttributeNode\n\tremoveAttributeNS : function(namespaceURI, localName){\n\t\tvar old = this.getAttributeNodeNS(namespaceURI, localName);\n\t\told && this.removeAttributeNode(old);\n\t},\n\n\thasAttributeNS : function(namespaceURI, localName){\n\t\treturn this.getAttributeNodeNS(namespaceURI, localName)!=null;\n\t},\n\tgetAttributeNS : function(namespaceURI, localName){\n\t\tvar attr = this.getAttributeNodeNS(namespaceURI, localName);\n\t\treturn attr && attr.value || '';\n\t},\n\tsetAttributeNS : function(namespaceURI, qualifiedName, value){\n\t\tvar attr = this.ownerDocument.createAttributeNS(namespaceURI, qualifiedName);\n\t\tattr.value = attr.nodeValue = \"\" + value;\n\t\tthis.setAttributeNode(attr)\n\t},\n\tgetAttributeNodeNS : function(namespaceURI, localName){\n\t\treturn this.attributes.getNamedItemNS(namespaceURI, localName);\n\t},\n\n\tgetElementsByTagName : function(tagName){\n\t\treturn new LiveNodeList(this,function(base){\n\t\t\tvar ls = [];\n\t\t\t_visitNode(base,function(node){\n\t\t\t\tif(node !== base && node.nodeType == ELEMENT_NODE && (tagName === '*' || node.tagName == tagName)){\n\t\t\t\t\tls.push(node);\n\t\t\t\t}\n\t\t\t});\n\t\t\treturn ls;\n\t\t});\n\t},\n\tgetElementsByTagNameNS : function(namespaceURI, localName){\n\t\treturn new LiveNodeList(this,function(base){\n\t\t\tvar ls = [];\n\t\t\t_visitNode(base,function(node){\n\t\t\t\tif(node !== base && node.nodeType === ELEMENT_NODE && (namespaceURI === '*' || node.namespaceURI === namespaceURI) && (localName === '*' || node.localName == localName)){\n\t\t\t\t\tls.push(node);\n\t\t\t\t}\n\t\t\t});\n\t\t\treturn ls;\n\n\t\t});\n\t}\n};\nDocument.prototype.getElementsByTagName = Element.prototype.getElementsByTagName;\nDocument.prototype.getElementsByTagNameNS = Element.prototype.getElementsByTagNameNS;\n\n\n_extends(Element,Node);\nfunction Attr() {\n};\nAttr.prototype.nodeType = ATTRIBUTE_NODE;\n_extends(Attr,Node);\n\n\nfunction CharacterData() {\n};\nCharacterData.prototype = {\n\tdata : '',\n\tsubstringData : function(offset, count) {\n\t\treturn this.data.substring(offset, offset+count);\n\t},\n\tappendData: function(text) {\n\t\ttext = this.data+text;\n\t\tthis.nodeValue = this.data = text;\n\t\tthis.length = text.length;\n\t},\n\tinsertData: function(offset,text) {\n\t\tthis.replaceData(offset,0,text);\n\n\t},\n\tappendChild:function(newChild){\n\t\tthrow new Error(ExceptionMessage[HIERARCHY_REQUEST_ERR])\n\t},\n\tdeleteData: function(offset, count) {\n\t\tthis.replaceData(offset,count,\"\");\n\t},\n\treplaceData: function(offset, count, text) {\n\t\tvar start = this.data.substring(0,offset);\n\t\tvar end = this.data.substring(offset+count);\n\t\ttext = start + text + end;\n\t\tthis.nodeValue = this.data = text;\n\t\tthis.length = text.length;\n\t}\n}\n_extends(CharacterData,Node);\nfunction Text() {\n};\nText.prototype = {\n\tnodeName : \"#text\",\n\tnodeType : TEXT_NODE,\n\tsplitText : function(offset) {\n\t\tvar text = this.data;\n\t\tvar newText = text.substring(offset);\n\t\ttext = text.substring(0, offset);\n\t\tthis.data = this.nodeValue = text;\n\t\tthis.length = text.length;\n\t\tvar newNode = this.ownerDocument.createTextNode(newText);\n\t\tif(this.parentNode){\n\t\t\tthis.parentNode.insertBefore(newNode, this.nextSibling);\n\t\t}\n\t\treturn newNode;\n\t}\n}\n_extends(Text,CharacterData);\nfunction Comment() {\n};\nComment.prototype = {\n\tnodeName : \"#comment\",\n\tnodeType : COMMENT_NODE\n}\n_extends(Comment,CharacterData);\n\nfunction CDATASection() {\n};\nCDATASection.prototype = {\n\tnodeName : \"#cdata-section\",\n\tnodeType : CDATA_SECTION_NODE\n}\n_extends(CDATASection,CharacterData);\n\n\nfunction DocumentType() {\n};\nDocumentType.prototype.nodeType = DOCUMENT_TYPE_NODE;\n_extends(DocumentType,Node);\n\nfunction Notation() {\n};\nNotation.prototype.nodeType = NOTATION_NODE;\n_extends(Notation,Node);\n\nfunction Entity() {\n};\nEntity.prototype.nodeType = ENTITY_NODE;\n_extends(Entity,Node);\n\nfunction EntityReference() {\n};\nEntityReference.prototype.nodeType = ENTITY_REFERENCE_NODE;\n_extends(EntityReference,Node);\n\nfunction DocumentFragment() {\n};\nDocumentFragment.prototype.nodeName =\t\"#document-fragment\";\nDocumentFragment.prototype.nodeType =\tDOCUMENT_FRAGMENT_NODE;\n_extends(DocumentFragment,Node);\n\n\nfunction ProcessingInstruction() {\n}\nProcessingInstruction.prototype.nodeType = PROCESSING_INSTRUCTION_NODE;\n_extends(ProcessingInstruction,Node);\nfunction XMLSerializer(){}\nXMLSerializer.prototype.serializeToString = function(node,isHtml,nodeFilter){\n\treturn nodeSerializeToString.call(node,isHtml,nodeFilter);\n}\nNode.prototype.toString = nodeSerializeToString;\nfunction nodeSerializeToString(isHtml,nodeFilter){\n\tvar buf = [];\n\tvar refNode = this.nodeType == 9 && this.documentElement || this;\n\tvar prefix = refNode.prefix;\n\tvar uri = refNode.namespaceURI;\n\n\tif(uri && prefix == null){\n\t\t//console.log(prefix)\n\t\tvar prefix = refNode.lookupPrefix(uri);\n\t\tif(prefix == null){\n\t\t\t//isHTML = true;\n\t\t\tvar visibleNamespaces=[\n\t\t\t{namespace:uri,prefix:null}\n\t\t\t//{namespace:uri,prefix:''}\n\t\t\t]\n\t\t}\n\t}\n\tserializeToString(this,buf,isHtml,nodeFilter,visibleNamespaces);\n\t//console.log('###',this.nodeType,uri,prefix,buf.join(''))\n\treturn buf.join('');\n}\n\nfunction needNamespaceDefine(node, isHTML, visibleNamespaces) {\n\tvar prefix = node.prefix || '';\n\tvar uri = node.namespaceURI;\n\t// According to [Namespaces in XML 1.0](https://www.w3.org/TR/REC-xml-names/#ns-using) ,\n\t// and more specifically https://www.w3.org/TR/REC-xml-names/#nsc-NoPrefixUndecl :\n\t// > In a namespace declaration for a prefix [...], the attribute value MUST NOT be empty.\n\t// in a similar manner [Namespaces in XML 1.1](https://www.w3.org/TR/xml-names11/#ns-using)\n\t// and more specifically https://www.w3.org/TR/xml-names11/#nsc-NSDeclared :\n\t// > [...] Furthermore, the attribute value [...] must not be an empty string.\n\t// so serializing empty namespace value like xmlns:ds=\"\" would produce an invalid XML document.\n\tif (!uri) {\n\t\treturn false;\n\t}\n\tif (prefix === \"xml\" && uri === NAMESPACE.XML || uri === NAMESPACE.XMLNS) {\n\t\treturn false;\n\t}\n\n\tvar i = visibleNamespaces.length\n\twhile (i--) {\n\t\tvar ns = visibleNamespaces[i];\n\t\t// get namespace prefix\n\t\tif (ns.prefix === prefix) {\n\t\t\treturn ns.namespace !== uri;\n\t\t}\n\t}\n\treturn true;\n}\n/**\n * Well-formed constraint: No < in Attribute Values\n * > The replacement text of any entity referred to directly or indirectly\n * > in an attribute value must not contain a <.\n * @see https://www.w3.org/TR/xml11/#CleanAttrVals\n * @see https://www.w3.org/TR/xml11/#NT-AttValue\n *\n * Literal whitespace other than space that appear in attribute values\n * are serialized as their entity references, so they will be preserved.\n * (In contrast to whitespace literals in the input which are normalized to spaces)\n * @see https://www.w3.org/TR/xml11/#AVNormalize\n * @see https://w3c.github.io/DOM-Parsing/#serializing-an-element-s-attributes\n */\nfunction addSerializedAttribute(buf, qualifiedName, value) {\n\tbuf.push(' ', qualifiedName, '=\"', value.replace(/[<>&\"\\t\\n\\r]/g, _xmlEncoder), '\"')\n}\n\nfunction serializeToString(node,buf,isHTML,nodeFilter,visibleNamespaces){\n\tif (!visibleNamespaces) {\n\t\tvisibleNamespaces = [];\n\t}\n\n\tif(nodeFilter){\n\t\tnode = nodeFilter(node);\n\t\tif(node){\n\t\t\tif(typeof node == 'string'){\n\t\t\t\tbuf.push(node);\n\t\t\t\treturn;\n\t\t\t}\n\t\t}else{\n\t\t\treturn;\n\t\t}\n\t\t//buf.sort.apply(attrs, attributeSorter);\n\t}\n\n\tswitch(node.nodeType){\n\tcase ELEMENT_NODE:\n\t\tvar attrs = node.attributes;\n\t\tvar len = attrs.length;\n\t\tvar child = node.firstChild;\n\t\tvar nodeName = node.tagName;\n\n\t\tisHTML = NAMESPACE.isHTML(node.namespaceURI) || isHTML\n\n\t\tvar prefixedNodeName = nodeName\n\t\tif (!isHTML && !node.prefix && node.namespaceURI) {\n\t\t\tvar defaultNS\n\t\t\t// lookup current default ns from `xmlns` attribute\n\t\t\tfor (var ai = 0; ai < attrs.length; ai++) {\n\t\t\t\tif (attrs.item(ai).name === 'xmlns') {\n\t\t\t\t\tdefaultNS = attrs.item(ai).value\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif (!defaultNS) {\n\t\t\t\t// lookup current default ns in visibleNamespaces\n\t\t\t\tfor (var nsi = visibleNamespaces.length - 1; nsi >= 0; nsi--) {\n\t\t\t\t\tvar namespace = visibleNamespaces[nsi]\n\t\t\t\t\tif (namespace.prefix === '' && namespace.namespace === node.namespaceURI) {\n\t\t\t\t\t\tdefaultNS = namespace.namespace\n\t\t\t\t\t\tbreak\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t\tif (defaultNS !== node.namespaceURI) {\n\t\t\t\tfor (var nsi = visibleNamespaces.length - 1; nsi >= 0; nsi--) {\n\t\t\t\t\tvar namespace = visibleNamespaces[nsi]\n\t\t\t\t\tif (namespace.namespace === node.namespaceURI) {\n\t\t\t\t\t\tif (namespace.prefix) {\n\t\t\t\t\t\t\tprefixedNodeName = namespace.prefix + ':' + nodeName\n\t\t\t\t\t\t}\n\t\t\t\t\t\tbreak\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\tbuf.push('<', prefixedNodeName);\n\n\t\tfor(var i=0;i<len;i++){\n\t\t\t// add namespaces for attributes\n\t\t\tvar attr = attrs.item(i);\n\t\t\tif (attr.prefix == 'xmlns') {\n\t\t\t\tvisibleNamespaces.push({ prefix: attr.localName, namespace: attr.value });\n\t\t\t}else if(attr.nodeName == 'xmlns'){\n\t\t\t\tvisibleNamespaces.push({ prefix: '', namespace: attr.value });\n\t\t\t}\n\t\t}\n\n\t\tfor(var i=0;i<len;i++){\n\t\t\tvar attr = attrs.item(i);\n\t\t\tif (needNamespaceDefine(attr,isHTML, visibleNamespaces)) {\n\t\t\t\tvar prefix = attr.prefix||'';\n\t\t\t\tvar uri = attr.namespaceURI;\n\t\t\t\taddSerializedAttribute(buf, prefix ? 'xmlns:' + prefix : \"xmlns\", uri);\n\t\t\t\tvisibleNamespaces.push({ prefix: prefix, namespace:uri });\n\t\t\t}\n\t\t\tserializeToString(attr,buf,isHTML,nodeFilter,visibleNamespaces);\n\t\t}\n\n\t\t// add namespace for current node\n\t\tif (nodeName === prefixedNodeName && needNamespaceDefine(node, isHTML, visibleNamespaces)) {\n\t\t\tvar prefix = node.prefix||'';\n\t\t\tvar uri = node.namespaceURI;\n\t\t\taddSerializedAttribute(buf, prefix ? 'xmlns:' + prefix : \"xmlns\", uri);\n\t\t\tvisibleNamespaces.push({ prefix: prefix, namespace:uri });\n\t\t}\n\n\t\tif(child || isHTML && !/^(?:meta|link|img|br|hr|input)$/i.test(nodeName)){\n\t\t\tbuf.push('>');\n\t\t\t//if is cdata child node\n\t\t\tif(isHTML && /^script$/i.test(nodeName)){\n\t\t\t\twhile(child){\n\t\t\t\t\tif(child.data){\n\t\t\t\t\t\tbuf.push(child.data);\n\t\t\t\t\t}else{\n\t\t\t\t\t\tserializeToString(child, buf, isHTML, nodeFilter, visibleNamespaces.slice());\n\t\t\t\t\t}\n\t\t\t\t\tchild = child.nextSibling;\n\t\t\t\t}\n\t\t\t}else\n\t\t\t{\n\t\t\t\twhile(child){\n\t\t\t\t\tserializeToString(child, buf, isHTML, nodeFilter, visibleNamespaces.slice());\n\t\t\t\t\tchild = child.nextSibling;\n\t\t\t\t}\n\t\t\t}\n\t\t\tbuf.push('</',prefixedNodeName,'>');\n\t\t}else{\n\t\t\tbuf.push('/>');\n\t\t}\n\t\t// remove added visible namespaces\n\t\t//visibleNamespaces.length = startVisibleNamespaces;\n\t\treturn;\n\tcase DOCUMENT_NODE:\n\tcase DOCUMENT_FRAGMENT_NODE:\n\t\tvar child = node.firstChild;\n\t\twhile(child){\n\t\t\tserializeToString(child, buf, isHTML, nodeFilter, visibleNamespaces.slice());\n\t\t\tchild = child.nextSibling;\n\t\t}\n\t\treturn;\n\tcase ATTRIBUTE_NODE:\n\t\treturn addSerializedAttribute(buf, node.name, node.value);\n\tcase TEXT_NODE:\n\t\t/**\n\t\t * The ampersand character (&) and the left angle bracket (<) must not appear in their literal form,\n\t\t * except when used as markup delimiters, or within a comment, a processing instruction, or a CDATA section.\n\t\t * If they are needed elsewhere, they must be escaped using either numeric character references or the strings\n\t\t * `&` and `<` respectively.\n\t\t * The right angle bracket (>) may be represented using the string \" > \", and must, for compatibility,\n\t\t * be escaped using either `>` or a character reference when it appears in the string `]]>` in content,\n\t\t * when that string is not marking the end of a CDATA section.\n\t\t *\n\t\t * In the content of elements, character data is any string of characters\n\t\t * which does not contain the start-delimiter of any markup\n\t\t * and does not include the CDATA-section-close delimiter, `]]>`.\n\t\t *\n\t\t * @see https://www.w3.org/TR/xml/#NT-CharData\n\t\t * @see https://w3c.github.io/DOM-Parsing/#xml-serializing-a-text-node\n\t\t */\n\t\treturn buf.push(node.data\n\t\t\t.replace(/[<&>]/g,_xmlEncoder)\n\t\t);\n\tcase CDATA_SECTION_NODE:\n\t\treturn buf.push( '<![CDATA[',node.data,']]>');\n\tcase COMMENT_NODE:\n\t\treturn buf.push( \"<!--\",node.data,\"-->\");\n\tcase DOCUMENT_TYPE_NODE:\n\t\tvar pubid = node.publicId;\n\t\tvar sysid = node.systemId;\n\t\tbuf.push('<!DOCTYPE ',node.name);\n\t\tif(pubid){\n\t\t\tbuf.push(' PUBLIC ', pubid);\n\t\t\tif (sysid && sysid!='.') {\n\t\t\t\tbuf.push(' ', sysid);\n\t\t\t}\n\t\t\tbuf.push('>');\n\t\t}else if(sysid && sysid!='.'){\n\t\t\tbuf.push(' SYSTEM ', sysid, '>');\n\t\t}else{\n\t\t\tvar sub = node.internalSubset;\n\t\t\tif(sub){\n\t\t\t\tbuf.push(\" [\",sub,\"]\");\n\t\t\t}\n\t\t\tbuf.push(\">\");\n\t\t}\n\t\treturn;\n\tcase PROCESSING_INSTRUCTION_NODE:\n\t\treturn buf.push( \"<?\",node.target,\" \",node.data,\"?>\");\n\tcase ENTITY_REFERENCE_NODE:\n\t\treturn buf.push( '&',node.nodeName,';');\n\t//case ENTITY_NODE:\n\t//case NOTATION_NODE:\n\tdefault:\n\t\tbuf.push('??',node.nodeName);\n\t}\n}\nfunction importNode(doc,node,deep){\n\tvar node2;\n\tswitch (node.nodeType) {\n\tcase ELEMENT_NODE:\n\t\tnode2 = node.cloneNode(false);\n\t\tnode2.ownerDocument = doc;\n\t\t//var attrs = node2.attributes;\n\t\t//var len = attrs.length;\n\t\t//for(var i=0;i<len;i++){\n\t\t\t//node2.setAttributeNodeNS(importNode(doc,attrs.item(i),deep));\n\t\t//}\n\tcase DOCUMENT_FRAGMENT_NODE:\n\t\tbreak;\n\tcase ATTRIBUTE_NODE:\n\t\tdeep = true;\n\t\tbreak;\n\t//case ENTITY_REFERENCE_NODE:\n\t//case PROCESSING_INSTRUCTION_NODE:\n\t////case TEXT_NODE:\n\t//case CDATA_SECTION_NODE:\n\t//case COMMENT_NODE:\n\t//\tdeep = false;\n\t//\tbreak;\n\t//case DOCUMENT_NODE:\n\t//case DOCUMENT_TYPE_NODE:\n\t//cannot be imported.\n\t//case ENTITY_NODE:\n\t//case NOTATION_NODE:\n\t//can not hit in level3\n\t//default:throw e;\n\t}\n\tif(!node2){\n\t\tnode2 = node.cloneNode(false);//false\n\t}\n\tnode2.ownerDocument = doc;\n\tnode2.parentNode = null;\n\tif(deep){\n\t\tvar child = node.firstChild;\n\t\twhile(child){\n\t\t\tnode2.appendChild(importNode(doc,child,deep));\n\t\t\tchild = child.nextSibling;\n\t\t}\n\t}\n\treturn node2;\n}\n//\n//var _relationMap = {firstChild:1,lastChild:1,previousSibling:1,nextSibling:1,\n//\t\t\t\t\tattributes:1,childNodes:1,parentNode:1,documentElement:1,doctype,};\nfunction cloneNode(doc,node,deep){\n\tvar node2 = new node.constructor();\n\tfor (var n in node) {\n\t\tif (Object.prototype.hasOwnProperty.call(node, n)) {\n\t\t\tvar v = node[n];\n\t\t\tif (typeof v != \"object\") {\n\t\t\t\tif (v != node2[n]) {\n\t\t\t\t\tnode2[n] = v;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\tif(node.childNodes){\n\t\tnode2.childNodes = new NodeList();\n\t}\n\tnode2.ownerDocument = doc;\n\tswitch (node2.nodeType) {\n\tcase ELEMENT_NODE:\n\t\tvar attrs\t= node.attributes;\n\t\tvar attrs2\t= node2.attributes = new NamedNodeMap();\n\t\tvar len = attrs.length\n\t\tattrs2._ownerElement = node2;\n\t\tfor(var i=0;i<len;i++){\n\t\t\tnode2.setAttributeNode(cloneNode(doc,attrs.item(i),true));\n\t\t}\n\t\tbreak;;\n\tcase ATTRIBUTE_NODE:\n\t\tdeep = true;\n\t}\n\tif(deep){\n\t\tvar child = node.firstChild;\n\t\twhile(child){\n\t\t\tnode2.appendChild(cloneNode(doc,child,deep));\n\t\t\tchild = child.nextSibling;\n\t\t}\n\t}\n\treturn node2;\n}\n\nfunction __set__(object,key,value){\n\tobject[key] = value\n}\n//do dynamic\ntry{\n\tif(Object.defineProperty){\n\t\tObject.defineProperty(LiveNodeList.prototype,'length',{\n\t\t\tget:function(){\n\t\t\t\t_updateLiveList(this);\n\t\t\t\treturn this.$$length;\n\t\t\t}\n\t\t});\n\n\t\tObject.defineProperty(Node.prototype,'textContent',{\n\t\t\tget:function(){\n\t\t\t\treturn getTextContent(this);\n\t\t\t},\n\n\t\t\tset:function(data){\n\t\t\t\tswitch(this.nodeType){\n\t\t\t\tcase ELEMENT_NODE:\n\t\t\t\tcase DOCUMENT_FRAGMENT_NODE:\n\t\t\t\t\twhile(this.firstChild){\n\t\t\t\t\t\tthis.removeChild(this.firstChild);\n\t\t\t\t\t}\n\t\t\t\t\tif(data || String(data)){\n\t\t\t\t\t\tthis.appendChild(this.ownerDocument.createTextNode(data));\n\t\t\t\t\t}\n\t\t\t\t\tbreak;\n\n\t\t\t\tdefault:\n\t\t\t\t\tthis.data = data;\n\t\t\t\t\tthis.value = data;\n\t\t\t\t\tthis.nodeValue = data;\n\t\t\t\t}\n\t\t\t}\n\t\t})\n\n\t\tfunction getTextContent(node){\n\t\t\tswitch(node.nodeType){\n\t\t\tcase ELEMENT_NODE:\n\t\t\tcase DOCUMENT_FRAGMENT_NODE:\n\t\t\t\tvar buf = [];\n\t\t\t\tnode = node.firstChild;\n\t\t\t\twhile(node){\n\t\t\t\t\tif(node.nodeType!==7 && node.nodeType !==8){\n\t\t\t\t\t\tbuf.push(getTextContent(node));\n\t\t\t\t\t}\n\t\t\t\t\tnode = node.nextSibling;\n\t\t\t\t}\n\t\t\t\treturn buf.join('');\n\t\t\tdefault:\n\t\t\t\treturn node.nodeValue;\n\t\t\t}\n\t\t}\n\n\t\t__set__ = function(object,key,value){\n\t\t\t//console.log(value)\n\t\t\tobject['$$'+key] = value\n\t\t}\n\t}\n}catch(e){//ie8\n}\n\nvar DOMhelper = (__webpack_require__(/*! ./helper */ \"./node_modules/xmldom-qsa/lib/helper.js\").DOMHelper);\n\n[Document, DocumentFragment, Element].forEach(function (Class) {\n\tClass.prototype.querySelector = function (selectors) {\n\t\treturn DOMhelper(this).first(String(selectors), this);\n\t};\n\n\tClass.prototype.querySelectorAll = function (selectors) {\n\t\treturn DOMhelper(this).select(String(selectors), this);\n\t};\n});\n\nElement.prototype.matches = function (selectors) {\n\treturn DOMhelper(this).match(this, selectors);\n};\n\n\n//if(typeof require == 'function'){\n\texports.DocumentType = DocumentType;\n\texports.DOMException = DOMException;\n\texports.DOMImplementation = DOMImplementation;\n\texports.Element = Element;\n\texports.Node = Node;\n\texports.NodeList = NodeList;\n\texports.XMLSerializer = XMLSerializer;\n//}\n\n\n//# sourceURL=webpack://@microsoft/connected-workbooks/./node_modules/xmldom-qsa/lib/dom.js?");
|
|
544
|
+
|
|
545
|
+
/***/ }),
|
|
546
|
+
|
|
547
|
+
/***/ "./node_modules/xmldom-qsa/lib/entities.js":
|
|
548
|
+
/*!*************************************************!*\
|
|
549
|
+
!*** ./node_modules/xmldom-qsa/lib/entities.js ***!
|
|
550
|
+
\*************************************************/
|
|
551
|
+
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {
|
|
552
|
+
|
|
553
|
+
eval("var freeze = (__webpack_require__(/*! ./conventions */ \"./node_modules/xmldom-qsa/lib/conventions.js\").freeze);\n\n/**\n * The entities that are predefined in every XML document.\n *\n * @see https://www.w3.org/TR/2006/REC-xml11-20060816/#sec-predefined-ent W3C XML 1.1\n * @see https://www.w3.org/TR/2008/REC-xml-20081126/#sec-predefined-ent W3C XML 1.0\n * @see https://en.wikipedia.org/wiki/List_of_XML_and_HTML_character_entity_references#Predefined_entities_in_XML Wikipedia\n */\nexports.XML_ENTITIES = freeze({amp:'&', apos:\"'\", gt:'>', lt:'<', quot:'\"'})\n\n/**\n * A map of currently 241 entities that are detected in an HTML document.\n * They contain all entries from `XML_ENTITIES`.\n *\n * @see XML_ENTITIES\n * @see DOMParser.parseFromString\n * @see DOMImplementation.prototype.createHTMLDocument\n * @see https://html.spec.whatwg.org/#named-character-references WHATWG HTML(5) Spec\n * @see https://www.w3.org/TR/xml-entity-names/ W3C XML Entity Names\n * @see https://www.w3.org/TR/html4/sgml/entities.html W3C HTML4/SGML\n * @see https://en.wikipedia.org/wiki/List_of_XML_and_HTML_character_entity_references#Character_entity_references_in_HTML Wikipedia (HTML)\n * @see https://en.wikipedia.org/wiki/List_of_XML_and_HTML_character_entity_references#Entities_representing_special_characters_in_XHTML Wikpedia (XHTML)\n */\nexports.HTML_ENTITIES = freeze({\n lt: '<',\n gt: '>',\n amp: '&',\n quot: '\"',\n apos: \"'\",\n Agrave: \"À\",\n Aacute: \"Á\",\n Acirc: \"Â\",\n Atilde: \"Ã\",\n Auml: \"Ä\",\n Aring: \"Å\",\n AElig: \"Æ\",\n Ccedil: \"Ç\",\n Egrave: \"È\",\n Eacute: \"É\",\n Ecirc: \"Ê\",\n Euml: \"Ë\",\n Igrave: \"Ì\",\n Iacute: \"Í\",\n Icirc: \"Î\",\n Iuml: \"Ï\",\n ETH: \"Ð\",\n Ntilde: \"Ñ\",\n Ograve: \"Ò\",\n Oacute: \"Ó\",\n Ocirc: \"Ô\",\n Otilde: \"Õ\",\n Ouml: \"Ö\",\n Oslash: \"Ø\",\n Ugrave: \"Ù\",\n Uacute: \"Ú\",\n Ucirc: \"Û\",\n Uuml: \"Ü\",\n Yacute: \"Ý\",\n THORN: \"Þ\",\n szlig: \"ß\",\n agrave: \"à\",\n aacute: \"á\",\n acirc: \"â\",\n atilde: \"ã\",\n auml: \"ä\",\n aring: \"å\",\n aelig: \"æ\",\n ccedil: \"ç\",\n egrave: \"è\",\n eacute: \"é\",\n ecirc: \"ê\",\n euml: \"ë\",\n igrave: \"ì\",\n iacute: \"í\",\n icirc: \"î\",\n iuml: \"ï\",\n eth: \"ð\",\n ntilde: \"ñ\",\n ograve: \"ò\",\n oacute: \"ó\",\n ocirc: \"ô\",\n otilde: \"õ\",\n ouml: \"ö\",\n oslash: \"ø\",\n ugrave: \"ù\",\n uacute: \"ú\",\n ucirc: \"û\",\n uuml: \"ü\",\n yacute: \"ý\",\n thorn: \"þ\",\n yuml: \"ÿ\",\n nbsp: \"\\u00a0\",\n iexcl: \"¡\",\n cent: \"¢\",\n pound: \"£\",\n curren: \"¤\",\n yen: \"¥\",\n brvbar: \"¦\",\n sect: \"§\",\n uml: \"¨\",\n copy: \"©\",\n ordf: \"ª\",\n laquo: \"«\",\n not: \"¬\",\n shy: \"\",\n reg: \"®\",\n macr: \"¯\",\n deg: \"°\",\n plusmn: \"±\",\n sup2: \"²\",\n sup3: \"³\",\n acute: \"´\",\n micro: \"µ\",\n para: \"¶\",\n middot: \"·\",\n cedil: \"¸\",\n sup1: \"¹\",\n ordm: \"º\",\n raquo: \"»\",\n frac14: \"¼\",\n frac12: \"½\",\n frac34: \"¾\",\n iquest: \"¿\",\n times: \"×\",\n divide: \"÷\",\n forall: \"∀\",\n part: \"∂\",\n exist: \"∃\",\n empty: \"∅\",\n nabla: \"∇\",\n isin: \"∈\",\n notin: \"∉\",\n ni: \"∋\",\n prod: \"∏\",\n sum: \"∑\",\n minus: \"−\",\n lowast: \"∗\",\n radic: \"√\",\n prop: \"∝\",\n infin: \"∞\",\n ang: \"∠\",\n and: \"∧\",\n or: \"∨\",\n cap: \"∩\",\n cup: \"∪\",\n 'int': \"∫\",\n there4: \"∴\",\n sim: \"∼\",\n cong: \"≅\",\n asymp: \"≈\",\n ne: \"≠\",\n equiv: \"≡\",\n le: \"≤\",\n ge: \"≥\",\n sub: \"⊂\",\n sup: \"⊃\",\n nsub: \"⊄\",\n sube: \"⊆\",\n supe: \"⊇\",\n oplus: \"⊕\",\n otimes: \"⊗\",\n perp: \"⊥\",\n sdot: \"⋅\",\n Alpha: \"Α\",\n Beta: \"Β\",\n Gamma: \"Γ\",\n Delta: \"Δ\",\n Epsilon: \"Ε\",\n Zeta: \"Ζ\",\n Eta: \"Η\",\n Theta: \"Θ\",\n Iota: \"Ι\",\n Kappa: \"Κ\",\n Lambda: \"Λ\",\n Mu: \"Μ\",\n Nu: \"Ν\",\n Xi: \"Ξ\",\n Omicron: \"Ο\",\n Pi: \"Π\",\n Rho: \"Ρ\",\n Sigma: \"Σ\",\n Tau: \"Τ\",\n Upsilon: \"Υ\",\n Phi: \"Φ\",\n Chi: \"Χ\",\n Psi: \"Ψ\",\n Omega: \"Ω\",\n alpha: \"α\",\n beta: \"β\",\n gamma: \"γ\",\n delta: \"δ\",\n epsilon: \"ε\",\n zeta: \"ζ\",\n eta: \"η\",\n theta: \"θ\",\n iota: \"ι\",\n kappa: \"κ\",\n lambda: \"λ\",\n mu: \"μ\",\n nu: \"ν\",\n xi: \"ξ\",\n omicron: \"ο\",\n pi: \"π\",\n rho: \"ρ\",\n sigmaf: \"ς\",\n sigma: \"σ\",\n tau: \"τ\",\n upsilon: \"υ\",\n phi: \"φ\",\n chi: \"χ\",\n psi: \"ψ\",\n omega: \"ω\",\n thetasym: \"ϑ\",\n upsih: \"ϒ\",\n piv: \"ϖ\",\n OElig: \"Œ\",\n oelig: \"œ\",\n Scaron: \"Š\",\n scaron: \"š\",\n Yuml: \"Ÿ\",\n fnof: \"ƒ\",\n circ: \"ˆ\",\n tilde: \"˜\",\n ensp: \" \",\n emsp: \" \",\n thinsp: \" \",\n zwnj: \"\",\n zwj: \"\",\n lrm: \"\",\n rlm: \"\",\n ndash: \"–\",\n mdash: \"—\",\n lsquo: \"‘\",\n rsquo: \"’\",\n sbquo: \"‚\",\n ldquo: \"“\",\n rdquo: \"”\",\n bdquo: \"„\",\n dagger: \"†\",\n Dagger: \"‡\",\n bull: \"•\",\n hellip: \"…\",\n permil: \"‰\",\n prime: \"′\",\n Prime: \"″\",\n lsaquo: \"‹\",\n rsaquo: \"›\",\n oline: \"‾\",\n euro: \"€\",\n trade: \"™\",\n larr: \"←\",\n uarr: \"↑\",\n rarr: \"→\",\n darr: \"↓\",\n harr: \"↔\",\n crarr: \"↵\",\n lceil: \"⌈\",\n rceil: \"⌉\",\n lfloor: \"⌊\",\n rfloor: \"⌋\",\n loz: \"◊\",\n spades: \"♠\",\n clubs: \"♣\",\n hearts: \"♥\",\n diams: \"♦\"\n});\n\n/**\n * @deprecated use `HTML_ENTITIES` instead\n * @see HTML_ENTITIES\n */\nexports.entityMap = exports.HTML_ENTITIES\n\n\n//# sourceURL=webpack://@microsoft/connected-workbooks/./node_modules/xmldom-qsa/lib/entities.js?");
|
|
554
|
+
|
|
555
|
+
/***/ }),
|
|
556
|
+
|
|
557
|
+
/***/ "./node_modules/xmldom-qsa/lib/helper.js":
|
|
558
|
+
/*!***********************************************!*\
|
|
559
|
+
!*** ./node_modules/xmldom-qsa/lib/helper.js ***!
|
|
560
|
+
\***********************************************/
|
|
561
|
+
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {
|
|
562
|
+
|
|
563
|
+
eval("function helper(g) {\n var doc = __webpack_require__.g.document || g,\n root = doc.documentElement || g,\n\n isSingleMatch,\n isSingleSelect,\n\n lastSlice,\n lastContext,\n lastPosition,\n\n lastMatcher,\n lastSelector,\n\n lastPartsMatch,\n lastPartsSelect,\n\n prefixes = '(?:[#.:]|::)?',\n operators = '([~*^$|!]?={1})',\n whitespace = '[\\\\x20\\\\t\\\\n\\\\r\\\\f]',\n combinators = '\\\\x20|[>+~](?=[^>+~])',\n pseudoparms = '(?:[-+]?\\\\d*n)?[-+]?\\\\d*',\n skip_groups = '\\\\[.*\\\\]|\\\\(.*\\\\)|\\\\{.*\\\\}',\n\n any_esc_chr = '\\\\\\\\.',\n alphalodash = '[_a-zA-Z]',\n non_asc_chr = '[^\\\\x00-\\\\x9f]',\n escaped_chr = '\\\\\\\\[^\\\\n\\\\r\\\\f0-9a-fA-F]',\n unicode_chr = '\\\\\\\\[0-9a-fA-F]{1,6}(?:\\\\r\\\\n|' + whitespace + ')?',\n\n quotedvalue = '\"[^\"\\\\\\\\]*(?:\\\\\\\\.[^\"\\\\\\\\]*)*\"' + \"|'[^'\\\\\\\\]*(?:\\\\\\\\.[^'\\\\\\\\]*)*'\",\n\n reSplitGroup = /([^,\\\\()[\\]]+|\\[[^[\\]]*\\]|\\[.*\\]|\\([^()]+\\)|\\(.*\\)|\\{[^{}]+\\}|\\{.*\\}|\\\\.)+/g,\n\n reTrimSpaces = RegExp('[\\\\n\\\\r\\\\f]|^' + whitespace + '+|' + whitespace + '+$', 'g'),\n\n reEscapedChars = /\\\\([0-9a-fA-F]{1,6}[\\x20\\t\\n\\r\\f]?|.)|([\\x22\\x27])/g,\n\n standardValidator, extendedValidator, reValidator,\n\n attrcheck, attributes, attrmatcher, pseudoclass,\n\n reOptimizeSelector, reSimpleNot, reSplitToken,\n\n Optimize, identifier, extensions = '.+',\n\n Patterns = {\n spseudos: /^\\:(root|empty|(?:first|last|only)(?:-child|-of-type)|nth(?:-last)?(?:-child|-of-type)\\(\\s?(even|odd|(?:[-+]{0,1}\\d*n\\s?)?[-+]{0,1}\\s?\\d*)\\s?\\))?(.*)/i,\n dpseudos: /^\\:(link|visited|target|active|focus|hover|checked|disabled|enabled|selected|lang\\(([-\\w]{2,})\\)|(?:matches|not)\\(\\s?(:nth(?:-last)?(?:-child|-of-type)\\(\\s?(?:even|odd|(?:[-+]{0,1}\\d*n\\s?)?[-+]{0,1}\\s?\\d*)\\s?\\)|[^()]*)\\s?\\))?(.*)/i,\n epseudos: /^((?:[:]{1,2}(?:after|before|first-letter|first-line))|(?:[:]{2,2}(?:selection|backdrop|placeholder)))?(.*)/i,\n children: RegExp('^' + whitespace + '?\\\\>' + whitespace + '?(.*)'),\n adjacent: RegExp('^' + whitespace + '?\\\\+' + whitespace + '?(.*)'),\n relative: RegExp('^' + whitespace + '?\\\\~' + whitespace + '?(.*)'),\n ancestor: RegExp('^' + whitespace + '+(.*)'),\n universal: RegExp('^\\\\*(.*)')\n },\n\n Tokens = {\n prefixes: prefixes,\n identifier: identifier,\n attributes: attributes\n },\n\n QUIRKS_MODE,\n XML_DOCUMENT,\n\n GEBTN = 'getElementsByTagName' in doc,\n GEBCN = 'getElementsByClassName' in doc,\n\n IE_LT_9 = typeof doc.addEventListener != 'function',\n\n LINK_NODES = { a: 1, A: 1, area: 1, AREA: 1, link: 1, LINK: 1 },\n\n ATTR_BOOLEAN = {\n checked: 1, disabled: 1, ismap: 1,\n multiple: 1, readonly: 1, selected: 1\n },\n\n ATTR_DEFAULT = {\n value: 'defaultValue',\n checked: 'defaultChecked',\n selected: 'defaultSelected'\n },\n\n ATTR_URIDATA = {\n action: 2, cite: 2, codebase: 2, data: 2, href: 2,\n longdesc: 2, lowsrc: 2, src: 2, usemap: 2\n },\n\n HTML_TABLE = {\n 'accept': 1, 'accept-charset': 1, 'align': 1, 'alink': 1, 'axis': 1,\n 'bgcolor': 1, 'charset': 1, 'checked': 1, 'clear': 1, 'codetype': 1, 'color': 1,\n 'compact': 1, 'declare': 1, 'defer': 1, 'dir': 1, 'direction': 1, 'disabled': 1,\n 'enctype': 1, 'face': 1, 'frame': 1, 'hreflang': 1, 'http-equiv': 1, 'lang': 1,\n 'language': 1, 'link': 1, 'media': 1, 'method': 1, 'multiple': 1, 'nohref': 1,\n 'noresize': 1, 'noshade': 1, 'nowrap': 1, 'readonly': 1, 'rel': 1, 'rev': 1,\n 'rules': 1, 'scope': 1, 'scrolling': 1, 'selected': 1, 'shape': 1, 'target': 1,\n 'text': 1, 'type': 1, 'valign': 1, 'valuetype': 1, 'vlink': 1\n },\n\n NATIVE_TRAVERSAL_API =\n 'nextElementSibling' in root &&\n 'previousElementSibling' in root,\n\n Selectors = {},\n\n Operators = {\n '=': \"n=='%m'\",\n '^=': \"n.indexOf('%m')==0\",\n '*=': \"n.indexOf('%m')>-1\",\n '|=': \"(n+'-').indexOf('%m-')==0\",\n '~=': \"(' '+n+' ').indexOf(' %m ')>-1\",\n '$=': \"n.substr(n.length-'%m'.length)=='%m'\"\n },\n\n concatCall =\n function (data, elements, callback) {\n var i = -1, element;\n while ((element = elements[++i])) {\n if (false === callback(data[data.length] = element)) { break; }\n }\n return data;\n },\n\n switchContext =\n function (from, force) {\n var oldDoc = doc;\n lastContext = from;\n doc = from.ownerDocument || from;\n if (force || oldDoc !== doc) {\n root = doc.documentElement;\n XML_DOCUMENT = doc.createElement('DiV').nodeName == 'DiV';\n QUIRKS_MODE = !XML_DOCUMENT &&\n typeof doc.compatMode == 'string' ?\n doc.compatMode.indexOf('CSS') < 0 :\n (function () {\n var style = doc.createElement('div').style;\n return style && (style.width = 1) && style.width == '1px';\n })();\n\n Config.CACHING && Dom.setCache(true, doc);\n }\n },\n\n codePointToUTF16 =\n function (codePoint) {\n if (codePoint < 1 || codePoint > 0x10ffff ||\n (codePoint > 0xd7ff && codePoint < 0xe000)) {\n return '\\\\ufffd';\n }\n if (codePoint < 0x10000) {\n var lowHex = '000' + codePoint.toString(16);\n return '\\\\u' + lowHex.substr(lowHex.length - 4);\n }\n return '\\\\u' + (((codePoint - 0x10000) >> 0x0a) + 0xd800).toString(16) +\n '\\\\u' + (((codePoint - 0x10000) % 0x400) + 0xdc00).toString(16);\n },\n\n stringFromCodePoint =\n function (codePoint) {\n if (codePoint < 1 || codePoint > 0x10ffff ||\n (codePoint > 0xd7ff && codePoint < 0xe000)) {\n return '\\ufffd';\n }\n if (codePoint < 0x10000) {\n return String.fromCharCode(codePoint);\n }\n return String.fromCodePoint ?\n String.fromCodePoint(codePoint) :\n String.fromCharCode(\n ((codePoint - 0x10000) >> 0x0a) + 0xd800,\n ((codePoint - 0x10000) % 0x400) + 0xdc00);\n },\n\n convertEscapes =\n function (str) {\n return str.replace(reEscapedChars,\n function (substring, p1, p2) {\n return p2 ? '\\\\' + p2 :\n (/^[0-9a-fA-F]/).test(p1) ? codePointToUTF16(parseInt(p1, 16)) :\n (/^[\\\\\\x22\\x27]/).test(p1) ? substring :\n p1;\n }\n );\n },\n\n unescapeIdentifier =\n function (str) {\n return str.replace(reEscapedChars,\n function (substring, p1, p2) {\n return p2 ? p2 :\n (/^[0-9a-fA-F]/).test(p1) ? stringFromCodePoint(parseInt(p1, 16)) :\n (/^[\\\\\\x22\\x27]/).test(p1) ? substring :\n p1;\n }\n );\n },\n\n byIdRaw =\n function (id, elements) {\n var i = -1, element;\n while ((element = elements[++i])) {\n if (element.getAttribute('id') == id) {\n break;\n }\n }\n return element || null;\n },\n\n _byId = !IE_LT_9 ?\n function (id, from) {\n id = (/\\\\/).test(id) ? unescapeIdentifier(id) : id;\n return from.getElementById && from.getElementById(id) ||\n byIdRaw(id, from.getElementsByTagName('*'));\n } :\n function (id, from) {\n var element = null;\n id = (/\\\\/).test(id) ? unescapeIdentifier(id) : id;\n if (XML_DOCUMENT || from.nodeType != 9) {\n return byIdRaw(id, from.getElementsByTagName('*'));\n }\n if ((element = from.getElementById(id)) &&\n element.name == id && from.getElementsByName) {\n return byIdRaw(id, from.getElementsByName(id));\n }\n return element;\n },\n\n byId =\n function (id, from) {\n from || (from = doc);\n if (lastContext !== from) { switchContext(from); }\n return _byId(id, from);\n },\n\n byTagRaw =\n function (tag, from) {\n var any = tag == '*', element = from, elements = [], next = element.firstChild;\n any || (tag = tag.toUpperCase());\n while ((element = next)) {\n if (element.tagName > '@' && (any || element.tagName.toUpperCase() == tag)) {\n elements[elements.length] = element;\n }\n if ((next = element.firstChild || element.nextSibling)) continue;\n while (!next && (element = element.parentNode) && element !== from) {\n next = element.nextSibling;\n }\n }\n return elements;\n },\n\n contains = 'compareDocumentPosition' in root ?\n function (container, element) {\n return (container.compareDocumentPosition(element) & 16) == 16;\n } : 'contains' in root ?\n function (container, element) {\n return container !== element && container.contains(element);\n } :\n function (container, element) {\n while ((element = element.parentNode)) {\n if (element === container) return true;\n }\n return false;\n },\n\n getAttribute = !IE_LT_9 ?\n function (node, attribute) {\n return node.getAttribute(attribute);\n } :\n function (node, attribute) {\n attribute = attribute.toLowerCase();\n if (typeof node[attribute] == 'object') {\n return node.attributes[attribute] &&\n node.attributes[attribute].value;\n }\n return (\n attribute == 'type' ? node.getAttribute(attribute) :\n ATTR_URIDATA[attribute] ? node.getAttribute(attribute, 2) :\n ATTR_BOOLEAN[attribute] ? node.getAttribute(attribute) ? attribute : 'false' :\n (node = node.getAttributeNode(attribute)) && node.value);\n },\n\n hasAttribute = !IE_LT_9 && root.hasAttribute ?\n function (node, attribute) {\n return node.hasAttribute(attribute);\n } :\n function (node, attribute) {\n var obj = node.getAttributeNode(attribute = attribute.toLowerCase());\n return ATTR_DEFAULT[attribute] && attribute != 'value' ?\n node[ATTR_DEFAULT[attribute]] : obj && obj.specified;\n },\n\n isEmpty =\n function (node) {\n node = node.firstChild;\n while (node) {\n if (node.nodeType == 3 || node.nodeName > '@') return false;\n node = node.nextSibling;\n }\n return true;\n },\n\n isLink =\n function (element) {\n return hasAttribute(element, 'href') && LINK_NODES[element.nodeName];\n },\n\n nthElement =\n function (element, last) {\n var count = 1, succ = last ? 'nextSibling' : 'previousSibling';\n while ((element = element[succ])) {\n if (element.nodeName > '@') ++count;\n }\n return count;\n },\n\n nthOfType =\n function (element, last) {\n var count = 1, succ = last ? 'nextSibling' : 'previousSibling', type = element.nodeName;\n while ((element = element[succ])) {\n if (element.nodeName == type) ++count;\n }\n return count;\n },\n\n configure =\n function (option) {\n if (typeof option == 'string') { return !!Config[option]; }\n if (typeof option != 'object') { return Config; }\n for (var i in option) {\n Config[i] = !!option[i];\n if (i == 'SIMPLENOT') {\n matchContexts = {};\n matchResolvers = {};\n selectContexts = {};\n selectResolvers = {};\n }\n }\n setIdentifierSyntax();\n reValidator = RegExp(Config.SIMPLENOT ?\n standardValidator : extendedValidator);\n return true;\n },\n\n emit =\n function (message) {\n if (Config.VERBOSITY) { throw Error(message); }\n if (Config.LOGERRORS && console && console.log) {\n console.log(message);\n }\n },\n\n Config = {\n CACHING: false,\n ESCAPECHR: true,\n NON_ASCII: true,\n SELECTOR3: true,\n UNICODE16: true,\n SHORTCUTS: false,\n SIMPLENOT: true,\n SVG_LCASE: false,\n UNIQUE_ID: true,\n USE_HTML5: true,\n VERBOSITY: true,\n LOGERRORS: true\n },\n\n initialize =\n function (doc) {\n setIdentifierSyntax();\n switchContext(doc, true);\n },\n\n setIdentifierSyntax =\n function () {\n\n var syntax = '', start = Config['SELECTOR3'] ? '-{2}|' : '';\n\n Config['NON_ASCII'] && (syntax += '|' + non_asc_chr);\n Config['UNICODE16'] && (syntax += '|' + unicode_chr);\n Config['ESCAPECHR'] && (syntax += '|' + escaped_chr);\n\n syntax += (Config['UNICODE16'] || Config['ESCAPECHR']) ? '' : '|' + any_esc_chr;\n\n identifier = '-?(?:' + start + alphalodash + syntax + ')(?:-|[0-9]|' + alphalodash + syntax + ')*';\n\n attrcheck = '(' + quotedvalue + '|' + identifier + ')';\n attributes = whitespace + '*(' + identifier + '(?::' + identifier + ')?)' +\n whitespace + '*(?:' + operators + whitespace + '*' + attrcheck + ')?' + whitespace + '*' + '(i)?' + whitespace + '*';\n attrmatcher = attributes.replace(attrcheck, '([\\\\x22\\\\x27]*)((?:\\\\\\\\?.)*?)\\\\3');\n\n pseudoclass = '((?:' +\n pseudoparms + '|' + quotedvalue + '|' +\n prefixes + identifier + '|' +\n '\\\\[' + attributes + '\\\\]|' +\n '\\\\(.+\\\\)|' + whitespace + '*|' +\n ',)+)';\n\n standardValidator =\n '(?=[\\\\x20\\\\t\\\\n\\\\r\\\\f]*[^>+~(){}<>])' +\n '(' +\n '\\\\*' +\n '|(?:' + prefixes + identifier + ')' +\n '|' + combinators +\n '|\\\\[' + attributes + '\\\\]' +\n '|\\\\(' + pseudoclass + '\\\\)' +\n '|\\\\{' + extensions + '\\\\}' +\n '|(?:,|' + whitespace + '*)' +\n ')+';\n\n reSimpleNot = RegExp('^(' +\n '(?!:not)' +\n '(' + prefixes + identifier +\n '|\\\\([^()]*\\\\))+' +\n '|\\\\[' + attributes + '\\\\]' +\n ')$');\n\n reSplitToken = RegExp('(' +\n prefixes + identifier + '|' +\n '\\\\[' + attributes + '\\\\]|' +\n '\\\\(' + pseudoclass + '\\\\)|' +\n '\\\\\\\\.|[^\\\\x20\\\\t\\\\n\\\\r\\\\f>+~])+', 'g');\n\n reOptimizeSelector = RegExp(identifier + '|^$');\n\n Optimize = {\n ID: RegExp('^\\\\*?#(' + identifier + ')|' + skip_groups),\n TAG: RegExp('^(' + identifier + ')|' + skip_groups),\n CLASS: RegExp('^\\\\.(' + identifier + '$)|' + skip_groups)\n };\n\n Patterns.id = RegExp('^#(' + identifier + ')(.*)');\n Patterns.tagName = RegExp('^(' + identifier + ')(.*)');\n Patterns.className = RegExp('^\\\\.(' + identifier + ')(.*)');\n Patterns.attribute = RegExp('^\\\\[' + attrmatcher + '\\\\](.*)');\n\n Tokens.identifier = identifier;\n Tokens.attributes = attributes;\n\n extendedValidator = standardValidator.replace(pseudoclass, '.*');\n\n reValidator = RegExp(standardValidator);\n },\n\n ACCEPT_NODE = 'r[r.length]=c[k];if(f&&false===f(c[k]))break main;else continue main;',\n REJECT_NODE = IE_LT_9 ? 'if(e.nodeName<\"A\")continue;' : '',\n TO_UPPER_CASE = IE_LT_9 ? '.toUpperCase()' : '',\n\n compile =\n function (selector, source, mode) {\n\n var parts = typeof selector == 'string' ? selector.match(reSplitGroup) : selector;\n\n typeof source == 'string' || (source = '');\n\n if (parts.length == 1) {\n source += compileSelector(parts[0], mode ? ACCEPT_NODE : 'f&&f(k);return true;', mode);\n } else {\n var i = -1, seen = {}, token;\n while ((token = parts[++i])) {\n token = token.replace(reTrimSpaces, '');\n if (!seen[token] && (seen[token] = true)) {\n source += compileSelector(token, mode ? ACCEPT_NODE : 'f&&f(k);return true;', mode);\n }\n }\n }\n\n if (mode) {\n return Function('c,s,d,h,g,f',\n 'var N,n,x=0,k=-1,e,r=[];main:while((e=c[++k])){' + source + '}return r;');\n } else {\n return Function('e,s,d,h,g,f',\n 'var N,n,x=0,k=e;' + source + 'return false;');\n }\n },\n\n compileSelector =\n function (selector, source, mode) {\n\n var a, b, n, k = 0, expr, match, result, status, test, type;\n\n while (selector) {\n\n k++;\n\n if ((match = selector.match(Patterns.universal))) {\n expr = '';\n }\n\n else if ((match = selector.match(Patterns.id))) {\n match[1] = (/\\\\/).test(match[1]) ? convertEscapes(match[1]) : match[1];\n source = 'if(' + (XML_DOCUMENT ?\n 's.getAttribute(e,\"id\")' :\n '(e.submit?s.getAttribute(e,\"id\"):e.id)') +\n '==\"' + match[1] + '\"' +\n '){' + source + '}';\n }\n\n else if ((match = selector.match(Patterns.tagName))) {\n test = Config.SVG_LCASE ? '||e.nodeName==\"' + match[1].toLowerCase() + '\"' : '';\n source = 'if(e.nodeName' + (XML_DOCUMENT ?\n '==\"' + match[1] + '\"' : TO_UPPER_CASE +\n '==\"' + match[1].toUpperCase() + '\"' + test) +\n '){' + source + '}';\n }\n\n else if ((match = selector.match(Patterns.className))) {\n match[1] = (/\\\\/).test(match[1]) ? convertEscapes(match[1]) : match[1];\n match[1] = QUIRKS_MODE ? match[1].toLowerCase() : match[1];\n source = 'if((n=' + (XML_DOCUMENT ?\n 'e.getAttribute(\"class\")' : 'e.className') +\n ')&&n.length&&(\" \"+' + (QUIRKS_MODE ? 'n.toLowerCase()' : 'n') +\n '.replace(/' + whitespace + '+/g,\" \")+\" \").indexOf(\" ' + match[1] + ' \")>-1' +\n '){' + source + '}';\n }\n\n else if ((match = selector.match(Patterns.attribute))) {\n expr = match[1].split(':');\n expr = expr.length == 2 ? expr[1] : expr[0] + '';\n\n if (match[2] && !Operators[match[2]]) {\n emit('Unsupported operator in attribute selectors \"' + selector + '\"');\n return '';\n }\n test = 'false';\n if (match[2] && match[4] && (test = Operators[match[2]])) {\n match[4] = (/\\\\/).test(match[4]) ? convertEscapes(match[4]) : match[4];\n type = match[5] == 'i' || HTML_TABLE[expr.toLowerCase()];\n test = test.replace(/\\%m/g, type ? match[4].toLowerCase() : match[4]);\n } else if (match[2] == '!=' || match[2] == '=') {\n test = 'n' + match[2] + '=\"\"';\n }\n source = 'if(n=s.hasAttribute(e,\"' + match[1] + '\")){' +\n (match[2] ? 'n=s.getAttribute(e,\"' + match[1] + '\")' : '') +\n (type && match[2] ? '.toLowerCase();' : ';') +\n 'if(' + (match[2] ? test : 'n') + '){' + source + '}}';\n }\n\n else if ((match = selector.match(Patterns.adjacent))) {\n source = NATIVE_TRAVERSAL_API ?\n 'var N' + k + '=e;if((e=e.previousElementSibling)){' + source + '}e=N' + k + ';' :\n 'var N' + k + '=e;while((e=e.previousSibling)){if(e.nodeType==1){' + source + 'break;}}e=N' + k + ';';\n }\n\n else if ((match = selector.match(Patterns.relative))) {\n source = NATIVE_TRAVERSAL_API ?\n 'var N' + k + '=e;while((e=e.previousElementSibling)){' + source + '}e=N' + k + ';' :\n 'var N' + k + '=e;while((e=e.previousSibling)){if(e.nodeType==1){' + source + '}}e=N' + k + ';';\n }\n\n else if ((match = selector.match(Patterns.children))) {\n source = 'var N' + k + '=e;if((e=e.parentNode)&&e.nodeType==1){' + source + '}e=N' + k + ';';\n }\n\n else if ((match = selector.match(Patterns.ancestor))) {\n source = 'var N' + k + '=e;while((e=e.parentNode)&&e.nodeType==1){' + source + '}e=N' + k + ';';\n }\n\n else if ((match = selector.match(Patterns.spseudos)) && match[1]) {\n switch (match[1]) {\n case 'root':\n if (match[3]) {\n source = 'if(e===h||s.contains(h,e)){' + source + '}';\n } else {\n source = 'if(e===h){' + source + '}';\n }\n break;\n case 'empty':\n source = 'if(s.isEmpty(e)){' + source + '}';\n break;\n default:\n if (match[1] && match[2]) {\n if (match[2] == 'n') {\n source = 'if(e!==h){' + source + '}';\n break;\n } else if (match[2] == 'even') {\n a = 2;\n b = 0;\n } else if (match[2] == 'odd') {\n a = 2;\n b = 1;\n } else {\n b = ((n = match[2].match(/(-?\\d+)$/)) ? parseInt(n[1], 10) : 0);\n a = ((n = match[2].match(/(-?\\d*)n/i)) ? parseInt(n[1], 10) : 0);\n if (n && n[1] == '-') a = -1;\n }\n test = a > 1 ?\n (/last/i.test(match[1])) ? '(n-(' + b + '))%' + a + '==0' :\n 'n>=' + b + '&&(n-(' + b + '))%' + a + '==0' : a < -1 ?\n (/last/i.test(match[1])) ? '(n-(' + b + '))%' + a + '==0' :\n 'n<=' + b + '&&(n-(' + b + '))%' + a + '==0' : a === 0 ?\n 'n==' + b : a == -1 ? 'n<=' + b : 'n>=' + b;\n source =\n 'if(e!==h){' +\n 'n=s[' + (/-of-type/i.test(match[1]) ? '\"nthOfType\"' : '\"nthElement\"') + ']' +\n '(e,' + (/last/i.test(match[1]) ? 'true' : 'false') + ');' +\n 'if(' + test + '){' + source + '}' +\n '}';\n } else {\n a = /first/i.test(match[1]) ? 'previous' : 'next';\n n = /only/i.test(match[1]) ? 'previous' : 'next';\n b = /first|last/i.test(match[1]);\n type = /-of-type/i.test(match[1]) ? '&&n.nodeName!=e.nodeName' : '&&n.nodeName<\"@\"';\n source = 'if(e!==h){' +\n ('n=e;while((n=n.' + a + 'Sibling)' + type + ');if(!n){' + (b ? source :\n 'n=e;while((n=n.' + n + 'Sibling)' + type + ');if(!n){' + source + '}') + '}') + '}';\n }\n break;\n }\n }\n\n else if ((match = selector.match(Patterns.dpseudos)) && match[1]) {\n switch (match[1].match(/^\\w+/)[0]) {\n case 'matches':\n expr = match[3].replace(reTrimSpaces, '');\n source = 'if(s.match(e, \"' + expr.replace(/\\x22/g, '\\\\\"') + '\",g)){' + source + '}';\n break;\n\n case 'not':\n expr = match[3].replace(reTrimSpaces, '');\n if (Config.SIMPLENOT && !reSimpleNot.test(expr)) {\n emit('Negation pseudo-class only accepts simple selectors \"' + selector + '\"');\n return '';\n } else {\n if ('compatMode' in doc) {\n source = 'if(!' + compile(expr, '', false) + '(e,s,d,h,g)){' + source + '}';\n } else {\n source = 'if(!s.match(e, \"' + expr.replace(/\\x22/g, '\\\\\"') + '\",g)){' + source + '}';\n }\n }\n break;\n case 'checked':\n source = 'if((typeof e.form!==\"undefined\"&&(/^(?:radio|checkbox)$/i).test(e.type)&&e.checked)' +\n (Config.USE_HTML5 ? '||(/^option$/i.test(e.nodeName)&&(e.selected||e.checked))' : '') +\n '){' + source + '}';\n break;\n case 'disabled':\n source = 'if(((typeof e.form!==\"undefined\"' +\n (Config.USE_HTML5 ? '' : '&&!(/^hidden$/i).test(e.type)') +\n ')||s.isLink(e))&&e.disabled===true){' + source + '}';\n break;\n case 'enabled':\n source = 'if(((typeof e.form!==\"undefined\"' +\n (Config.USE_HTML5 ? '' : '&&!(/^hidden$/i).test(e.type)') +\n ')||s.isLink(e))&&e.disabled===false){' + source + '}';\n break;\n case 'lang':\n test = '';\n if (match[2]) test = match[2].substr(0, 2) + '-';\n source = 'do{(n=e.lang||\"\").toLowerCase();' +\n 'if((n==\"\"&&h.lang==\"' + match[2].toLowerCase() + '\")||' +\n '(n&&(n==\"' + match[2].toLowerCase() +\n '\"||n.substr(0,3)==\"' + test.toLowerCase() + '\")))' +\n '{' + source + 'break;}}while((e=e.parentNode)&&e!==g);';\n break;\n case 'target':\n source = 'if(e.id==d.location.hash.slice(1)){' + source + '}';\n break;\n case 'link':\n source = 'if(s.isLink(e)&&!e.visited){' + source + '}';\n break;\n case 'visited':\n source = 'if(s.isLink(e)&&e.visited){' + source + '}';\n break;\n case 'active':\n source = 'if(e===d.activeElement){' + source + '}';\n break;\n case 'hover':\n source = 'if(e===d.hoverElement){' + source + '}';\n break;\n case 'focus':\n source = 'hasFocus' in doc ?\n 'if(e===d.activeElement&&d.hasFocus()&&(e.type||e.href||typeof e.tabIndex==\"number\")){' + source + '}' :\n 'if(e===d.activeElement&&(e.type||e.href)){' + source + '}';\n break;\n case 'selected':\n source = 'if(/^option$/i.test(e.nodeName)&&(e.selected||e.checked)){' + source + '}';\n break;\n default:\n break;\n }\n }\n\n else if ((match = selector.match(Patterns.epseudos)) && match[1]) {\n source = 'if(!(/1|11/).test(e.nodeType)){' + source + '}';\n }\n\n else {\n\n expr = false;\n status = false;\n for (expr in Selectors) {\n if ((match = selector.match(Selectors[expr].Expression)) && match[1]) {\n result = Selectors[expr].Callback(match, source);\n if ('match' in result) { match = result.match; }\n source = result.source;\n status = result.status;\n if (status) { break; }\n }\n }\n\n if (!status) {\n emit('Unknown pseudo-class selector \"' + selector + '\"');\n return '';\n }\n\n if (!expr) {\n emit('Unknown token in selector \"' + selector + '\"');\n return '';\n }\n\n }\n\n if (!match) {\n emit('Invalid syntax in selector \"' + selector + '\"');\n return '';\n }\n\n selector = match && match[match.length - 1];\n }\n\n return source;\n },\n\n match =\n function (element, selector, from, callback) {\n\n var parts;\n\n if (!(element && element.nodeType == 1)) {\n emit('Invalid element argument');\n return false;\n } else if (typeof selector != 'string') {\n emit('Invalid selector argument');\n return false;\n } else if (lastContext !== from) {\n switchContext(from || (from = element.ownerDocument));\n }\n\n selector = selector.\n replace(reTrimSpaces, '').\n replace(/\\x00|\\\\$/g, '\\ufffd');\n\n Config.SHORTCUTS && (selector = Dom.shortcuts(selector, element, from));\n\n if (lastMatcher != selector) {\n if ((parts = selector.match(reValidator)) && parts[0] == selector) {\n isSingleMatch = (parts = selector.match(reSplitGroup)).length < 2;\n lastMatcher = selector;\n lastPartsMatch = parts;\n } else {\n emit('The string \"' + selector + '\", is not a valid CSS selector');\n return false;\n }\n } else parts = lastPartsMatch;\n\n if (!matchResolvers[selector] || matchContexts[selector] !== from) {\n matchResolvers[selector] = compile(isSingleMatch ? [selector] : parts, '', false);\n matchContexts[selector] = from;\n }\n\n return matchResolvers[selector](element, Snapshot, doc, root, from, callback);\n },\n\n first =\n function (selector, from) {\n return select(selector, from, function () { return false; })[0] || null;\n },\n\n select =\n function (selector, from, callback) {\n\n var i, changed, element, elements, parts, token, original = selector;\n\n if (arguments.length === 0) {\n emit('Not enough arguments');\n return [];\n } else if (typeof selector != 'string') {\n return [];\n } else if (from && !(/1|9|11/).test(from.nodeType)) {\n emit('Invalid or illegal context element');\n return [];\n } else if (lastContext !== from) {\n switchContext(from || (from = doc));\n }\n\n if (Config.CACHING && (elements = Dom.loadResults(original, from, doc, root))) {\n return callback ? concatCall([], elements, callback) : elements;\n }\n\n selector = selector.\n replace(reTrimSpaces, '').\n replace(/\\x00|\\\\$/g, '\\ufffd');\n\n Config.SHORTCUTS && (selector = Dom.shortcuts(selector, from));\n\n if ((changed = lastSelector != selector)) {\n if ((parts = selector.match(reValidator)) && parts[0] == selector) {\n isSingleSelect = (parts = selector.match(reSplitGroup)).length < 2;\n lastSelector = selector;\n lastPartsSelect = parts;\n } else {\n emit('The string \"' + selector + '\", is not a valid CSS selector');\n return [];\n }\n } else parts = lastPartsSelect;\n\n if (from.nodeType == 11) {\n\n elements = byTagRaw('*', from);\n\n } else if (isSingleSelect) {\n\n if (changed) {\n parts = selector.match(reSplitToken);\n token = parts[parts.length - 1];\n lastSlice = token.split(':not');\n lastSlice = lastSlice[lastSlice.length - 1];\n lastPosition = selector.length - token.length;\n }\n\n if (Config.UNIQUE_ID && lastSlice && (parts = lastSlice.match(Optimize.ID)) && (token = parts[1])) {\n if ((element = _byId(token, from))) {\n if (match(element, selector)) {\n callback && callback(element);\n elements = [element];\n } else elements = [];\n }\n }\n\n else if (Config.UNIQUE_ID && (parts = selector.match(Optimize.ID)) && (token = parts[1])) {\n if ((element = _byId(token, doc))) {\n if ('#' + token == selector) {\n callback && callback(element);\n elements = [element];\n } else if (/[>+~]/.test(selector)) {\n from = element.parentNode;\n } else {\n from = element;\n }\n } else elements = [];\n }\n\n if (elements) {\n Config.CACHING && Dom.saveResults(original, from, doc, elements);\n return elements;\n }\n\n if (!XML_DOCUMENT && GEBTN && lastSlice && (parts = lastSlice.match(Optimize.TAG)) && (token = parts[1])) {\n if ((elements = from.getElementsByTagName(token)).length === 0) { return []; }\n selector = selector.slice(0, lastPosition) + selector.slice(lastPosition).replace(token, '*');\n }\n\n else if (!XML_DOCUMENT && GEBCN && lastSlice && (parts = lastSlice.match(Optimize.CLASS)) && (token = parts[1])) {\n if ((elements = from.getElementsByClassName(unescapeIdentifier(token))).length === 0) { return []; }\n selector = selector.slice(0, lastPosition) + selector.slice(lastPosition).replace('.' + token,\n reOptimizeSelector.test(selector.charAt(selector.indexOf(token) - 1)) ? '' : '*');\n }\n\n }\n\n if (!elements) {\n if (IE_LT_9) {\n elements = /^(?:applet|object)$/i.test(from.nodeName) ? from.children : byTagRaw('*', from);\n } else {\n elements = from.getElementsByTagName('*');\n }\n }\n\n if (!selectResolvers[selector] || selectContexts[selector] !== from) {\n selectResolvers[selector] = compile(isSingleSelect ? [selector] : parts, REJECT_NODE, true);\n selectContexts[selector] = from;\n }\n\n elements = selectResolvers[selector](elements, Snapshot, doc, root, from, callback);\n\n Config.CACHING && Dom.saveResults(original, from, doc, elements);\n\n return elements;\n },\n\n FN = function (x) { return x; },\n\n matchContexts = {},\n matchResolvers = {},\n\n selectContexts = {},\n selectResolvers = {},\n\n Snapshot = {\n byId: _byId,\n match: match,\n select: select,\n isLink: isLink,\n isEmpty: isEmpty,\n contains: contains,\n nthOfType: nthOfType,\n nthElement: nthElement,\n getAttribute: getAttribute,\n hasAttribute: hasAttribute\n },\n\n Dom = {\n\n ACCEPT_NODE: ACCEPT_NODE,\n\n byId: byId,\n match: match,\n first: first,\n select: select,\n compile: compile,\n contains: contains,\n configure: configure,\n getAttribute: getAttribute,\n hasAttribute: hasAttribute,\n\n setCache: FN,\n shortcuts: FN,\n loadResults: FN,\n saveResults: FN,\n\n emit: emit,\n Config: Config,\n Snapshot: Snapshot,\n\n Operators: Operators,\n Selectors: Selectors,\n\n Tokens: Tokens,\n\n registerOperator:\n function (symbol, resolver) {\n Operators[symbol] || (Operators[symbol] = resolver);\n },\n\n registerSelector:\n function (name, rexp, func) {\n Selectors[name] || (Selectors[name] = {\n Expression: rexp,\n Callback: func\n });\n }\n\n };\n\n initialize(doc);\n\n return Dom\n}\n\nexports.DOMHelper = helper\n\n\n//# sourceURL=webpack://@microsoft/connected-workbooks/./node_modules/xmldom-qsa/lib/helper.js?");
|
|
564
|
+
|
|
565
|
+
/***/ }),
|
|
566
|
+
|
|
567
|
+
/***/ "./node_modules/xmldom-qsa/lib/index.js":
|
|
568
|
+
/*!**********************************************!*\
|
|
569
|
+
!*** ./node_modules/xmldom-qsa/lib/index.js ***!
|
|
570
|
+
\**********************************************/
|
|
571
|
+
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {
|
|
572
|
+
|
|
573
|
+
eval("var dom = __webpack_require__(/*! ./dom */ \"./node_modules/xmldom-qsa/lib/dom.js\")\nexports.DOMImplementation = dom.DOMImplementation\nexports.XMLSerializer = dom.XMLSerializer\nexports.DOMParser = __webpack_require__(/*! ./dom-parser */ \"./node_modules/xmldom-qsa/lib/dom-parser.js\").DOMParser\n\n\n//# sourceURL=webpack://@microsoft/connected-workbooks/./node_modules/xmldom-qsa/lib/index.js?");
|
|
574
|
+
|
|
575
|
+
/***/ }),
|
|
576
|
+
|
|
577
|
+
/***/ "./node_modules/xmldom-qsa/lib/sax.js":
|
|
578
|
+
/*!********************************************!*\
|
|
579
|
+
!*** ./node_modules/xmldom-qsa/lib/sax.js ***!
|
|
580
|
+
\********************************************/
|
|
581
|
+
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {
|
|
582
|
+
|
|
583
|
+
eval("var NAMESPACE = (__webpack_require__(/*! ./conventions */ \"./node_modules/xmldom-qsa/lib/conventions.js\").NAMESPACE);\n\n//[4] \tNameStartChar\t ::= \t\":\" | [A-Z] | \"_\" | [a-z] | [#xC0-#xD6] | [#xD8-#xF6] | [#xF8-#x2FF] | [#x370-#x37D] | [#x37F-#x1FFF] | [#x200C-#x200D] | [#x2070-#x218F] | [#x2C00-#x2FEF] | [#x3001-#xD7FF] | [#xF900-#xFDCF] | [#xFDF0-#xFFFD] | [#x10000-#xEFFFF]\n//[4a] \tNameChar\t ::= \tNameStartChar | \"-\" | \".\" | [0-9] | #xB7 | [#x0300-#x036F] | [#x203F-#x2040]\n//[5] \tName\t ::= \tNameStartChar (NameChar)*\nvar nameStartChar = /[A-Z_a-z\\xC0-\\xD6\\xD8-\\xF6\\u00F8-\\u02FF\\u0370-\\u037D\\u037F-\\u1FFF\\u200C-\\u200D\\u2070-\\u218F\\u2C00-\\u2FEF\\u3001-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFFD]///\\u10000-\\uEFFFF\nvar nameChar = new RegExp(\"[\\\\-\\\\.0-9\"+nameStartChar.source.slice(1,-1)+\"\\\\u00B7\\\\u0300-\\\\u036F\\\\u203F-\\\\u2040]\");\nvar tagNamePattern = new RegExp('^'+nameStartChar.source+nameChar.source+'*(?:\\:'+nameStartChar.source+nameChar.source+'*)?$');\n//var tagNamePattern = /^[a-zA-Z_][\\w\\-\\.]*(?:\\:[a-zA-Z_][\\w\\-\\.]*)?$/\n//var handlers = 'resolveEntity,getExternalSubset,characters,endDocument,endElement,endPrefixMapping,ignorableWhitespace,processingInstruction,setDocumentLocator,skippedEntity,startDocument,startElement,startPrefixMapping,notationDecl,unparsedEntityDecl,error,fatalError,warning,attributeDecl,elementDecl,externalEntityDecl,internalEntityDecl,comment,endCDATA,endDTD,endEntity,startCDATA,startDTD,startEntity'.split(',')\n\n//S_TAG,\tS_ATTR,\tS_EQ,\tS_ATTR_NOQUOT_VALUE\n//S_ATTR_SPACE,\tS_ATTR_END,\tS_TAG_SPACE, S_TAG_CLOSE\nvar S_TAG = 0;//tag name offerring\nvar S_ATTR = 1;//attr name offerring\nvar S_ATTR_SPACE=2;//attr name end and space offer\nvar S_EQ = 3;//=space?\nvar S_ATTR_NOQUOT_VALUE = 4;//attr value(no quot value only)\nvar S_ATTR_END = 5;//attr value end and no space(quot end)\nvar S_TAG_SPACE = 6;//(attr value end || tag end ) && (space offer)\nvar S_TAG_CLOSE = 7;//closed el<el />\n\n/**\n * Creates an error that will not be caught by XMLReader aka the SAX parser.\n *\n * @param {string} message\n * @param {any?} locator Optional, can provide details about the location in the source\n * @constructor\n */\nfunction ParseError(message, locator) {\n\tthis.message = message\n\tthis.locator = locator\n\tif(Error.captureStackTrace) Error.captureStackTrace(this, ParseError);\n}\nParseError.prototype = new Error();\nParseError.prototype.name = ParseError.name\n\nfunction XMLReader(){\n\n}\n\nXMLReader.prototype = {\n\tparse:function(source,defaultNSMap,entityMap){\n\t\tvar domBuilder = this.domBuilder;\n\t\tdomBuilder.startDocument();\n\t\t_copy(defaultNSMap ,defaultNSMap = {})\n\t\tparse(source,defaultNSMap,entityMap,\n\t\t\t\tdomBuilder,this.errorHandler);\n\t\tdomBuilder.endDocument();\n\t}\n}\nfunction parse(source,defaultNSMapCopy,entityMap,domBuilder,errorHandler){\n\tfunction fixedFromCharCode(code) {\n\t\t// String.prototype.fromCharCode does not supports\n\t\t// > 2 bytes unicode chars directly\n\t\tif (code > 0xffff) {\n\t\t\tcode -= 0x10000;\n\t\t\tvar surrogate1 = 0xd800 + (code >> 10)\n\t\t\t\t, surrogate2 = 0xdc00 + (code & 0x3ff);\n\n\t\t\treturn String.fromCharCode(surrogate1, surrogate2);\n\t\t} else {\n\t\t\treturn String.fromCharCode(code);\n\t\t}\n\t}\n\tfunction entityReplacer(a){\n\t\tvar k = a.slice(1,-1);\n\t\tif (Object.hasOwnProperty.call(entityMap, k)) {\n\t\t\treturn entityMap[k];\n\t\t}else if(k.charAt(0) === '#'){\n\t\t\treturn fixedFromCharCode(parseInt(k.substr(1).replace('x','0x')))\n\t\t}else{\n\t\t\terrorHandler.error('entity not found:'+a);\n\t\t\treturn a;\n\t\t}\n\t}\n\tfunction appendText(end){//has some bugs\n\t\tif(end>start){\n\t\t\tvar xt = source.substring(start,end).replace(/&#?\\w+;/g,entityReplacer);\n\t\t\tlocator&&position(start);\n\t\t\tdomBuilder.characters(xt,0,end-start);\n\t\t\tstart = end\n\t\t}\n\t}\n\tfunction position(p,m){\n\t\twhile(p>=lineEnd && (m = linePattern.exec(source))){\n\t\t\tlineStart = m.index;\n\t\t\tlineEnd = lineStart + m[0].length;\n\t\t\tlocator.lineNumber++;\n\t\t\t//console.log('line++:',locator,startPos,endPos)\n\t\t}\n\t\tlocator.columnNumber = p-lineStart+1;\n\t}\n\tvar lineStart = 0;\n\tvar lineEnd = 0;\n\tvar linePattern = /.*(?:\\r\\n?|\\n)|.*$/g\n\tvar locator = domBuilder.locator;\n\n\tvar parseStack = [{currentNSMap:defaultNSMapCopy}]\n\tvar closeMap = {};\n\tvar start = 0;\n\twhile(true){\n\t\ttry{\n\t\t\tvar tagStart = source.indexOf('<',start);\n\t\t\tif(tagStart<0){\n\t\t\t\tif(!source.substr(start).match(/^\\s*$/)){\n\t\t\t\t\tvar doc = domBuilder.doc;\n\t \t\t\tvar text = doc.createTextNode(source.substr(start));\n\t \t\t\tdoc.appendChild(text);\n\t \t\t\tdomBuilder.currentElement = text;\n\t\t\t\t}\n\t\t\t\treturn;\n\t\t\t}\n\t\t\tif(tagStart>start){\n\t\t\t\tappendText(tagStart);\n\t\t\t}\n\t\t\tswitch(source.charAt(tagStart+1)){\n\t\t\tcase '/':\n\t\t\t\tvar end = source.indexOf('>',tagStart+3);\n\t\t\t\tvar tagName = source.substring(tagStart + 2, end).replace(/[ \\t\\n\\r]+$/g, '');\n\t\t\t\tvar config = parseStack.pop();\n\t\t\t\tif(end<0){\n\n\t \t\ttagName = source.substring(tagStart+2).replace(/[\\s<].*/,'');\n\t \t\terrorHandler.error(\"end tag name: \"+tagName+' is not complete:'+config.tagName);\n\t \t\tend = tagStart+1+tagName.length;\n\t \t}else if(tagName.match(/\\s</)){\n\t \t\ttagName = tagName.replace(/[\\s<].*/,'');\n\t \t\terrorHandler.error(\"end tag name: \"+tagName+' maybe not complete');\n\t \t\tend = tagStart+1+tagName.length;\n\t\t\t\t}\n\t\t\t\tvar localNSMap = config.localNSMap;\n\t\t\t\tvar endMatch = config.tagName == tagName;\n\t\t\t\tvar endIgnoreCaseMach = endMatch || config.tagName&&config.tagName.toLowerCase() == tagName.toLowerCase()\n\t\t if(endIgnoreCaseMach){\n\t\t \tdomBuilder.endElement(config.uri,config.localName,tagName);\n\t\t\t\t\tif(localNSMap){\n\t\t\t\t\t\tfor (var prefix in localNSMap) {\n\t\t\t\t\t\t\tif (Object.prototype.hasOwnProperty.call(localNSMap, prefix)) {\n\t\t\t\t\t\t\t\tdomBuilder.endPrefixMapping(prefix);\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\tif(!endMatch){\n\t\t \terrorHandler.fatalError(\"end tag name: \"+tagName+' is not match the current start tagName:'+config.tagName ); // No known test case\n\t\t\t\t\t}\n\t\t }else{\n\t\t \tparseStack.push(config)\n\t\t }\n\n\t\t\t\tend++;\n\t\t\t\tbreak;\n\t\t\t\t// end elment\n\t\t\tcase '?':// <?...?>\n\t\t\t\tlocator&&position(tagStart);\n\t\t\t\tend = parseInstruction(source,tagStart,domBuilder);\n\t\t\t\tbreak;\n\t\t\tcase '!':// <!doctype,<![CDATA,<!--\n\t\t\t\tlocator&&position(tagStart);\n\t\t\t\tend = parseDCC(source,tagStart,domBuilder,errorHandler);\n\t\t\t\tbreak;\n\t\t\tdefault:\n\t\t\t\tlocator&&position(tagStart);\n\t\t\t\tvar el = new ElementAttributes();\n\t\t\t\tvar currentNSMap = parseStack[parseStack.length-1].currentNSMap;\n\t\t\t\t//elStartEnd\n\t\t\t\tvar end = parseElementStartPart(source,tagStart,el,currentNSMap,entityReplacer,errorHandler);\n\t\t\t\tvar len = el.length;\n\n\n\t\t\t\tif(!el.closed && fixSelfClosed(source,end,el.tagName,closeMap)){\n\t\t\t\t\tel.closed = true;\n\t\t\t\t\tif(!entityMap.nbsp){\n\t\t\t\t\t\terrorHandler.warning('unclosed xml attribute');\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tif(locator && len){\n\t\t\t\t\tvar locator2 = copyLocator(locator,{});\n\t\t\t\t\t//try{//attribute position fixed\n\t\t\t\t\tfor(var i = 0;i<len;i++){\n\t\t\t\t\t\tvar a = el[i];\n\t\t\t\t\t\tposition(a.offset);\n\t\t\t\t\t\ta.locator = copyLocator(locator,{});\n\t\t\t\t\t}\n\t\t\t\t\tdomBuilder.locator = locator2\n\t\t\t\t\tif(appendElement(el,domBuilder,currentNSMap)){\n\t\t\t\t\t\tparseStack.push(el)\n\t\t\t\t\t}\n\t\t\t\t\tdomBuilder.locator = locator;\n\t\t\t\t}else{\n\t\t\t\t\tif(appendElement(el,domBuilder,currentNSMap)){\n\t\t\t\t\t\tparseStack.push(el)\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\tif (NAMESPACE.isHTML(el.uri) && !el.closed) {\n\t\t\t\t\tend = parseHtmlSpecialContent(source,end,el.tagName,entityReplacer,domBuilder)\n\t\t\t\t} else {\n\t\t\t\t\tend++;\n\t\t\t\t}\n\t\t\t}\n\t\t}catch(e){\n\t\t\tif (e instanceof ParseError) {\n\t\t\t\tthrow e;\n\t\t\t}\n\t\t\terrorHandler.error('element parse error: '+e)\n\t\t\tend = -1;\n\t\t}\n\t\tif(end>start){\n\t\t\tstart = end;\n\t\t}else{\n\t\t\t//TODO: 这里有可能sax回退,有位置错误风险\n\t\t\tappendText(Math.max(tagStart,start)+1);\n\t\t}\n\t}\n}\nfunction copyLocator(f,t){\n\tt.lineNumber = f.lineNumber;\n\tt.columnNumber = f.columnNumber;\n\treturn t;\n}\n\n/**\n * @see #appendElement(source,elStartEnd,el,selfClosed,entityReplacer,domBuilder,parseStack);\n * @return end of the elementStartPart(end of elementEndPart for selfClosed el)\n */\nfunction parseElementStartPart(source,start,el,currentNSMap,entityReplacer,errorHandler){\n\n\t/**\n\t * @param {string} qname\n\t * @param {string} value\n\t * @param {number} startIndex\n\t */\n\tfunction addAttribute(qname, value, startIndex) {\n\t\tif (el.attributeNames.hasOwnProperty(qname)) {\n\t\t\terrorHandler.fatalError('Attribute ' + qname + ' redefined')\n\t\t}\n\t\tel.addValue(\n\t\t\tqname,\n\t\t\t// @see https://www.w3.org/TR/xml/#AVNormalize\n\t\t\t// since the xmldom sax parser does not \"interpret\" DTD the following is not implemented:\n\t\t\t// - recursive replacement of (DTD) entity references\n\t\t\t// - trimming and collapsing multiple spaces into a single one for attributes that are not of type CDATA\n\t\t\tvalue.replace(/[\\t\\n\\r]/g, ' ').replace(/&#?\\w+;/g, entityReplacer),\n\t\t\tstartIndex\n\t\t)\n\t}\n\tvar attrName;\n\tvar value;\n\tvar p = ++start;\n\tvar s = S_TAG;//status\n\twhile(true){\n\t\tvar c = source.charAt(p);\n\t\tswitch(c){\n\t\tcase '=':\n\t\t\tif(s === S_ATTR){//attrName\n\t\t\t\tattrName = source.slice(start,p);\n\t\t\t\ts = S_EQ;\n\t\t\t}else if(s === S_ATTR_SPACE){\n\t\t\t\ts = S_EQ;\n\t\t\t}else{\n\t\t\t\t//fatalError: equal must after attrName or space after attrName\n\t\t\t\tthrow new Error('attribute equal must after attrName'); // No known test case\n\t\t\t}\n\t\t\tbreak;\n\t\tcase '\\'':\n\t\tcase '\"':\n\t\t\tif(s === S_EQ || s === S_ATTR //|| s == S_ATTR_SPACE\n\t\t\t\t){//equal\n\t\t\t\tif(s === S_ATTR){\n\t\t\t\t\terrorHandler.warning('attribute value must after \"=\"')\n\t\t\t\t\tattrName = source.slice(start,p)\n\t\t\t\t}\n\t\t\t\tstart = p+1;\n\t\t\t\tp = source.indexOf(c,start)\n\t\t\t\tif(p>0){\n\t\t\t\t\tvalue = source.slice(start, p);\n\t\t\t\t\taddAttribute(attrName, value, start-1);\n\t\t\t\t\ts = S_ATTR_END;\n\t\t\t\t}else{\n\t\t\t\t\t//fatalError: no end quot match\n\t\t\t\t\tthrow new Error('attribute value no end \\''+c+'\\' match');\n\t\t\t\t}\n\t\t\t}else if(s == S_ATTR_NOQUOT_VALUE){\n\t\t\t\tvalue = source.slice(start, p);\n\t\t\t\taddAttribute(attrName, value, start);\n\t\t\t\terrorHandler.warning('attribute \"'+attrName+'\" missed start quot('+c+')!!');\n\t\t\t\tstart = p+1;\n\t\t\t\ts = S_ATTR_END\n\t\t\t}else{\n\t\t\t\t//fatalError: no equal before\n\t\t\t\tthrow new Error('attribute value must after \"=\"'); // No known test case\n\t\t\t}\n\t\t\tbreak;\n\t\tcase '/':\n\t\t\tswitch(s){\n\t\t\tcase S_TAG:\n\t\t\t\tel.setTagName(source.slice(start,p));\n\t\t\tcase S_ATTR_END:\n\t\t\tcase S_TAG_SPACE:\n\t\t\tcase S_TAG_CLOSE:\n\t\t\t\ts =S_TAG_CLOSE;\n\t\t\t\tel.closed = true;\n\t\t\tcase S_ATTR_NOQUOT_VALUE:\n\t\t\tcase S_ATTR:\n\t\t\t\tbreak;\n\t\t\t\tcase S_ATTR_SPACE:\n\t\t\t\t\tel.closed = true;\n\t\t\t\tbreak;\n\t\t\t//case S_EQ:\n\t\t\tdefault:\n\t\t\t\tthrow new Error(\"attribute invalid close char('/')\") // No known test case\n\t\t\t}\n\t\t\tbreak;\n\t\tcase ''://end document\n\t\t\terrorHandler.error('unexpected end of input');\n\t\t\tif(s == S_TAG){\n\t\t\t\tel.setTagName(source.slice(start,p));\n\t\t\t}\n\t\t\treturn p;\n\t\tcase '>':\n\t\t\tswitch(s){\n\t\t\tcase S_TAG:\n\t\t\t\tel.setTagName(source.slice(start,p));\n\t\t\tcase S_ATTR_END:\n\t\t\tcase S_TAG_SPACE:\n\t\t\tcase S_TAG_CLOSE:\n\t\t\t\tbreak;//normal\n\t\t\tcase S_ATTR_NOQUOT_VALUE://Compatible state\n\t\t\tcase S_ATTR:\n\t\t\t\tvalue = source.slice(start,p);\n\t\t\t\tif(value.slice(-1) === '/'){\n\t\t\t\t\tel.closed = true;\n\t\t\t\t\tvalue = value.slice(0,-1)\n\t\t\t\t}\n\t\t\tcase S_ATTR_SPACE:\n\t\t\t\tif(s === S_ATTR_SPACE){\n\t\t\t\t\tvalue = attrName;\n\t\t\t\t}\n\t\t\t\tif(s == S_ATTR_NOQUOT_VALUE){\n\t\t\t\t\terrorHandler.warning('attribute \"'+value+'\" missed quot(\")!');\n\t\t\t\t\taddAttribute(attrName, value, start)\n\t\t\t\t}else{\n\t\t\t\t\tif(!NAMESPACE.isHTML(currentNSMap['']) || !value.match(/^(?:disabled|checked|selected)$/i)){\n\t\t\t\t\t\terrorHandler.warning('attribute \"'+value+'\" missed value!! \"'+value+'\" instead!!')\n\t\t\t\t\t}\n\t\t\t\t\taddAttribute(value, value, start)\n\t\t\t\t}\n\t\t\t\tbreak;\n\t\t\tcase S_EQ:\n\t\t\t\tthrow new Error('attribute value missed!!');\n\t\t\t}\n//\t\t\tconsole.log(tagName,tagNamePattern,tagNamePattern.test(tagName))\n\t\t\treturn p;\n\t\t/*xml space '\\x20' | #x9 | #xD | #xA; */\n\t\tcase '\\u0080':\n\t\t\tc = ' ';\n\t\tdefault:\n\t\t\tif(c<= ' '){//space\n\t\t\t\tswitch(s){\n\t\t\t\tcase S_TAG:\n\t\t\t\t\tel.setTagName(source.slice(start,p));//tagName\n\t\t\t\t\ts = S_TAG_SPACE;\n\t\t\t\t\tbreak;\n\t\t\t\tcase S_ATTR:\n\t\t\t\t\tattrName = source.slice(start,p)\n\t\t\t\t\ts = S_ATTR_SPACE;\n\t\t\t\t\tbreak;\n\t\t\t\tcase S_ATTR_NOQUOT_VALUE:\n\t\t\t\t\tvar value = source.slice(start, p);\n\t\t\t\t\terrorHandler.warning('attribute \"'+value+'\" missed quot(\")!!');\n\t\t\t\t\taddAttribute(attrName, value, start)\n\t\t\t\tcase S_ATTR_END:\n\t\t\t\t\ts = S_TAG_SPACE;\n\t\t\t\t\tbreak;\n\t\t\t\t//case S_TAG_SPACE:\n\t\t\t\t//case S_EQ:\n\t\t\t\t//case S_ATTR_SPACE:\n\t\t\t\t//\tvoid();break;\n\t\t\t\t//case S_TAG_CLOSE:\n\t\t\t\t\t//ignore warning\n\t\t\t\t}\n\t\t\t}else{//not space\n//S_TAG,\tS_ATTR,\tS_EQ,\tS_ATTR_NOQUOT_VALUE\n//S_ATTR_SPACE,\tS_ATTR_END,\tS_TAG_SPACE, S_TAG_CLOSE\n\t\t\t\tswitch(s){\n\t\t\t\t//case S_TAG:void();break;\n\t\t\t\t//case S_ATTR:void();break;\n\t\t\t\t//case S_ATTR_NOQUOT_VALUE:void();break;\n\t\t\t\tcase S_ATTR_SPACE:\n\t\t\t\t\tvar tagName = el.tagName;\n\t\t\t\t\tif (!NAMESPACE.isHTML(currentNSMap['']) || !attrName.match(/^(?:disabled|checked|selected)$/i)) {\n\t\t\t\t\t\terrorHandler.warning('attribute \"'+attrName+'\" missed value!! \"'+attrName+'\" instead2!!')\n\t\t\t\t\t}\n\t\t\t\t\taddAttribute(attrName, attrName, start);\n\t\t\t\t\tstart = p;\n\t\t\t\t\ts = S_ATTR;\n\t\t\t\t\tbreak;\n\t\t\t\tcase S_ATTR_END:\n\t\t\t\t\terrorHandler.warning('attribute space is required\"'+attrName+'\"!!')\n\t\t\t\tcase S_TAG_SPACE:\n\t\t\t\t\ts = S_ATTR;\n\t\t\t\t\tstart = p;\n\t\t\t\t\tbreak;\n\t\t\t\tcase S_EQ:\n\t\t\t\t\ts = S_ATTR_NOQUOT_VALUE;\n\t\t\t\t\tstart = p;\n\t\t\t\t\tbreak;\n\t\t\t\tcase S_TAG_CLOSE:\n\t\t\t\t\tthrow new Error(\"elements closed character '/' and '>' must be connected to\");\n\t\t\t\t}\n\t\t\t}\n\t\t}//end outer switch\n\t\t//console.log('p++',p)\n\t\tp++;\n\t}\n}\n/**\n * @return true if has new namespace define\n */\nfunction appendElement(el,domBuilder,currentNSMap){\n\tvar tagName = el.tagName;\n\tvar localNSMap = null;\n\t//var currentNSMap = parseStack[parseStack.length-1].currentNSMap;\n\tvar i = el.length;\n\twhile(i--){\n\t\tvar a = el[i];\n\t\tvar qName = a.qName;\n\t\tvar value = a.value;\n\t\tvar nsp = qName.indexOf(':');\n\t\tif(nsp>0){\n\t\t\tvar prefix = a.prefix = qName.slice(0,nsp);\n\t\t\tvar localName = qName.slice(nsp+1);\n\t\t\tvar nsPrefix = prefix === 'xmlns' && localName\n\t\t}else{\n\t\t\tlocalName = qName;\n\t\t\tprefix = null\n\t\t\tnsPrefix = qName === 'xmlns' && ''\n\t\t}\n\t\t//can not set prefix,because prefix !== ''\n\t\ta.localName = localName ;\n\t\t//prefix == null for no ns prefix attribute\n\t\tif(nsPrefix !== false){//hack!!\n\t\t\tif(localNSMap == null){\n\t\t\t\tlocalNSMap = {}\n\t\t\t\t//console.log(currentNSMap,0)\n\t\t\t\t_copy(currentNSMap,currentNSMap={})\n\t\t\t\t//console.log(currentNSMap,1)\n\t\t\t}\n\t\t\tcurrentNSMap[nsPrefix] = localNSMap[nsPrefix] = value;\n\t\t\ta.uri = NAMESPACE.XMLNS\n\t\t\tdomBuilder.startPrefixMapping(nsPrefix, value)\n\t\t}\n\t}\n\tvar i = el.length;\n\twhile(i--){\n\t\ta = el[i];\n\t\tvar prefix = a.prefix;\n\t\tif(prefix){//no prefix attribute has no namespace\n\t\t\tif(prefix === 'xml'){\n\t\t\t\ta.uri = NAMESPACE.XML;\n\t\t\t}if(prefix !== 'xmlns'){\n\t\t\t\ta.uri = currentNSMap[prefix || '']\n\n\t\t\t\t//{console.log('###'+a.qName,domBuilder.locator.systemId+'',currentNSMap,a.uri)}\n\t\t\t}\n\t\t}\n\t}\n\tvar nsp = tagName.indexOf(':');\n\tif(nsp>0){\n\t\tprefix = el.prefix = tagName.slice(0,nsp);\n\t\tlocalName = el.localName = tagName.slice(nsp+1);\n\t}else{\n\t\tprefix = null;//important!!\n\t\tlocalName = el.localName = tagName;\n\t}\n\t//no prefix element has default namespace\n\tvar ns = el.uri = currentNSMap[prefix || ''];\n\tdomBuilder.startElement(ns,localName,tagName,el);\n\t//endPrefixMapping and startPrefixMapping have not any help for dom builder\n\t//localNSMap = null\n\tif(el.closed){\n\t\tdomBuilder.endElement(ns,localName,tagName);\n\t\tif(localNSMap){\n\t\t\tfor (prefix in localNSMap) {\n\t\t\t\tif (Object.prototype.hasOwnProperty.call(localNSMap, prefix)) {\n\t\t\t\t\tdomBuilder.endPrefixMapping(prefix);\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}else{\n\t\tel.currentNSMap = currentNSMap;\n\t\tel.localNSMap = localNSMap;\n\t\t//parseStack.push(el);\n\t\treturn true;\n\t}\n}\nfunction parseHtmlSpecialContent(source,elStartEnd,tagName,entityReplacer,domBuilder){\n\tif(/^(?:script|textarea)$/i.test(tagName)){\n\t\tvar elEndStart = source.indexOf('</'+tagName+'>',elStartEnd);\n\t\tvar text = source.substring(elStartEnd+1,elEndStart);\n\t\tif(/[&<]/.test(text)){\n\t\t\tif(/^script$/i.test(tagName)){\n\t\t\t\t//if(!/\\]\\]>/.test(text)){\n\t\t\t\t\t//lexHandler.startCDATA();\n\t\t\t\t\tdomBuilder.characters(text,0,text.length);\n\t\t\t\t\t//lexHandler.endCDATA();\n\t\t\t\t\treturn elEndStart;\n\t\t\t\t//}\n\t\t\t}//}else{//text area\n\t\t\t\ttext = text.replace(/&#?\\w+;/g,entityReplacer);\n\t\t\t\tdomBuilder.characters(text,0,text.length);\n\t\t\t\treturn elEndStart;\n\t\t\t//}\n\n\t\t}\n\t}\n\treturn elStartEnd+1;\n}\nfunction fixSelfClosed(source,elStartEnd,tagName,closeMap){\n\t//if(tagName in closeMap){\n\tvar pos = closeMap[tagName];\n\tif(pos == null){\n\t\t//console.log(tagName)\n\t\tpos = source.lastIndexOf('</'+tagName+'>')\n\t\tif(pos<elStartEnd){//忘记闭合\n\t\t\tpos = source.lastIndexOf('</'+tagName)\n\t\t}\n\t\tcloseMap[tagName] =pos\n\t}\n\treturn pos<elStartEnd;\n\t//}\n}\n\nfunction _copy (source, target) {\n\tfor (var n in source) {\n\t\tif (Object.prototype.hasOwnProperty.call(source, n)) {\n\t\t\ttarget[n] = source[n];\n\t\t}\n\t}\n}\n\nfunction parseDCC(source,start,domBuilder,errorHandler){//sure start with '<!'\n\tvar next= source.charAt(start+2)\n\tswitch(next){\n\tcase '-':\n\t\tif(source.charAt(start + 3) === '-'){\n\t\t\tvar end = source.indexOf('-->',start+4);\n\t\t\t//append comment source.substring(4,end)//<!--\n\t\t\tif(end>start){\n\t\t\t\tdomBuilder.comment(source,start+4,end-start-4);\n\t\t\t\treturn end+3;\n\t\t\t}else{\n\t\t\t\terrorHandler.error(\"Unclosed comment\");\n\t\t\t\treturn -1;\n\t\t\t}\n\t\t}else{\n\t\t\t//error\n\t\t\treturn -1;\n\t\t}\n\tdefault:\n\t\tif(source.substr(start+3,6) == 'CDATA['){\n\t\t\tvar end = source.indexOf(']]>',start+9);\n\t\t\tdomBuilder.startCDATA();\n\t\t\tdomBuilder.characters(source,start+9,end-start-9);\n\t\t\tdomBuilder.endCDATA()\n\t\t\treturn end+3;\n\t\t}\n\t\t//<!DOCTYPE\n\t\t//startDTD(java.lang.String name, java.lang.String publicId, java.lang.String systemId)\n\t\tvar matchs = split(source,start);\n\t\tvar len = matchs.length;\n\t\tif(len>1 && /!doctype/i.test(matchs[0][0])){\n\t\t\tvar name = matchs[1][0];\n\t\t\tvar pubid = false;\n\t\t\tvar sysid = false;\n\t\t\tif(len>3){\n\t\t\t\tif(/^public$/i.test(matchs[2][0])){\n\t\t\t\t\tpubid = matchs[3][0];\n\t\t\t\t\tsysid = len>4 && matchs[4][0];\n\t\t\t\t}else if(/^system$/i.test(matchs[2][0])){\n\t\t\t\t\tsysid = matchs[3][0];\n\t\t\t\t}\n\t\t\t}\n\t\t\tvar lastMatch = matchs[len-1]\n\t\t\tdomBuilder.startDTD(name, pubid, sysid);\n\t\t\tdomBuilder.endDTD();\n\n\t\t\treturn lastMatch.index+lastMatch[0].length\n\t\t}\n\t}\n\treturn -1;\n}\n\n\n\nfunction parseInstruction(source,start,domBuilder){\n\tvar end = source.indexOf('?>',start);\n\tif(end){\n\t\tvar match = source.substring(start,end).match(/^<\\?(\\S*)\\s*([\\s\\S]*?)\\s*$/);\n\t\tif(match){\n\t\t\tvar len = match[0].length;\n\t\t\tdomBuilder.processingInstruction(match[1], match[2]) ;\n\t\t\treturn end+2;\n\t\t}else{//error\n\t\t\treturn -1;\n\t\t}\n\t}\n\treturn -1;\n}\n\nfunction ElementAttributes(){\n\tthis.attributeNames = {}\n}\nElementAttributes.prototype = {\n\tsetTagName:function(tagName){\n\t\tif(!tagNamePattern.test(tagName)){\n\t\t\tthrow new Error('invalid tagName:'+tagName)\n\t\t}\n\t\tthis.tagName = tagName\n\t},\n\taddValue:function(qName, value, offset) {\n\t\tif(!tagNamePattern.test(qName)){\n\t\t\tthrow new Error('invalid attribute:'+qName)\n\t\t}\n\t\tthis.attributeNames[qName] = this.length;\n\t\tthis[this.length++] = {qName:qName,value:value,offset:offset}\n\t},\n\tlength:0,\n\tgetLocalName:function(i){return this[i].localName},\n\tgetLocator:function(i){return this[i].locator},\n\tgetQName:function(i){return this[i].qName},\n\tgetURI:function(i){return this[i].uri},\n\tgetValue:function(i){return this[i].value}\n//\t,getIndex:function(uri, localName)){\n//\t\tif(localName){\n//\n//\t\t}else{\n//\t\t\tvar qName = uri\n//\t\t}\n//\t},\n//\tgetValue:function(){return this.getValue(this.getIndex.apply(this,arguments))},\n//\tgetType:function(uri,localName){}\n//\tgetType:function(i){},\n}\n\n\n\nfunction split(source,start){\n\tvar match;\n\tvar buf = [];\n\tvar reg = /'[^']+'|\"[^\"]+\"|[^\\s<>\\/=]+=?|(\\/?\\s*>|<)/g;\n\treg.lastIndex = start;\n\treg.exec(source);//skip <\n\twhile(match = reg.exec(source)){\n\t\tbuf.push(match);\n\t\tif(match[1])return buf;\n\t}\n}\n\nexports.XMLReader = XMLReader;\nexports.ParseError = ParseError;\n\n\n//# sourceURL=webpack://@microsoft/connected-workbooks/./node_modules/xmldom-qsa/lib/sax.js?");
|
|
293
584
|
|
|
294
585
|
/***/ })
|
|
295
586
|
|
|
@@ -313,37 +604,13 @@ eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpac
|
|
|
313
604
|
/******/ };
|
|
314
605
|
/******/
|
|
315
606
|
/******/ // Execute the module function
|
|
316
|
-
/******/ __webpack_modules__[moduleId](module, module.exports, __webpack_require__);
|
|
607
|
+
/******/ __webpack_modules__[moduleId].call(module.exports, module, module.exports, __webpack_require__);
|
|
317
608
|
/******/
|
|
318
609
|
/******/ // Return the exports of the module
|
|
319
610
|
/******/ return module.exports;
|
|
320
611
|
/******/ }
|
|
321
612
|
/******/
|
|
322
613
|
/************************************************************************/
|
|
323
|
-
/******/ /* webpack/runtime/compat get default export */
|
|
324
|
-
/******/ (() => {
|
|
325
|
-
/******/ // getDefaultExport function for compatibility with non-harmony modules
|
|
326
|
-
/******/ __webpack_require__.n = (module) => {
|
|
327
|
-
/******/ var getter = module && module.__esModule ?
|
|
328
|
-
/******/ () => (module['default']) :
|
|
329
|
-
/******/ () => (module);
|
|
330
|
-
/******/ __webpack_require__.d(getter, { a: getter });
|
|
331
|
-
/******/ return getter;
|
|
332
|
-
/******/ };
|
|
333
|
-
/******/ })();
|
|
334
|
-
/******/
|
|
335
|
-
/******/ /* webpack/runtime/define property getters */
|
|
336
|
-
/******/ (() => {
|
|
337
|
-
/******/ // define getter functions for harmony exports
|
|
338
|
-
/******/ __webpack_require__.d = (exports, definition) => {
|
|
339
|
-
/******/ for(var key in definition) {
|
|
340
|
-
/******/ if(__webpack_require__.o(definition, key) && !__webpack_require__.o(exports, key)) {
|
|
341
|
-
/******/ Object.defineProperty(exports, key, { enumerable: true, get: definition[key] });
|
|
342
|
-
/******/ }
|
|
343
|
-
/******/ }
|
|
344
|
-
/******/ };
|
|
345
|
-
/******/ })();
|
|
346
|
-
/******/
|
|
347
614
|
/******/ /* webpack/runtime/global */
|
|
348
615
|
/******/ (() => {
|
|
349
616
|
/******/ __webpack_require__.g = (function() {
|
|
@@ -356,27 +623,11 @@ eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpac
|
|
|
356
623
|
/******/ })();
|
|
357
624
|
/******/ })();
|
|
358
625
|
/******/
|
|
359
|
-
/******/ /* webpack/runtime/hasOwnProperty shorthand */
|
|
360
|
-
/******/ (() => {
|
|
361
|
-
/******/ __webpack_require__.o = (obj, prop) => (Object.prototype.hasOwnProperty.call(obj, prop))
|
|
362
|
-
/******/ })();
|
|
363
|
-
/******/
|
|
364
|
-
/******/ /* webpack/runtime/make namespace object */
|
|
365
|
-
/******/ (() => {
|
|
366
|
-
/******/ // define __esModule on exports
|
|
367
|
-
/******/ __webpack_require__.r = (exports) => {
|
|
368
|
-
/******/ if(typeof Symbol !== 'undefined' && Symbol.toStringTag) {
|
|
369
|
-
/******/ Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
|
|
370
|
-
/******/ }
|
|
371
|
-
/******/ Object.defineProperty(exports, '__esModule', { value: true });
|
|
372
|
-
/******/ };
|
|
373
|
-
/******/ })();
|
|
374
|
-
/******/
|
|
375
626
|
/************************************************************************/
|
|
376
627
|
/******/
|
|
377
628
|
/******/ // startup
|
|
378
629
|
/******/ // Load entry module and return exports
|
|
379
|
-
/******/ // This entry module
|
|
630
|
+
/******/ // This entry module is referenced by other modules so it can't be inlined
|
|
380
631
|
/******/ var __webpack_exports__ = __webpack_require__("./src/index.ts");
|
|
381
632
|
/******/
|
|
382
633
|
/******/ })()
|