@bnsights/bbsf-utilities 1.0.42 → 1.0.44

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.
Files changed (126) hide show
  1. package/README.md +87 -66
  2. package/bnsights-bbsf-utilities-1.0.44.tgz +0 -0
  3. package/{esm2020 → esm2022}/bnsights-bbsf-utilities.mjs +4 -4
  4. package/{esm2020 → esm2022}/lib/bbsf-utilities.module.mjs +59 -59
  5. package/esm2022/lib/shared/authentication/auth.service.mjs +211 -0
  6. package/{esm2020 → esm2022}/lib/shared/authentication/index.mjs +1 -1
  7. package/{esm2020 → esm2022}/lib/shared/config/environment.mjs +11 -11
  8. package/{esm2020 → esm2022}/lib/shared/config/word/constants.mjs +104 -104
  9. package/{esm2020 → esm2022}/lib/shared/config/word/docx-document.mjs +347 -347
  10. package/{esm2020 → esm2022}/lib/shared/config/word/helpers/index.mjs +3 -3
  11. package/{esm2020 → esm2022}/lib/shared/config/word/helpers/render-document-file.mjs +153 -153
  12. package/{esm2020 → esm2022}/lib/shared/config/word/helpers/xml-builder.mjs +1835 -1835
  13. package/{esm2020 → esm2022}/lib/shared/config/word/html-to-docx.mjs +186 -186
  14. package/{esm2020 → esm2022}/lib/shared/config/word/index.mjs +49 -49
  15. package/{esm2020 → esm2022}/lib/shared/config/word/namespaces.mjs +36 -36
  16. package/{esm2020 → esm2022}/lib/shared/config/word/schemas/content-types.mjs +2 -2
  17. package/{esm2020 → esm2022}/lib/shared/config/word/schemas/core.mjs +6 -6
  18. package/{esm2020 → esm2022}/lib/shared/config/word/schemas/document-rels.mjs +3 -3
  19. package/{esm2020 → esm2022}/lib/shared/config/word/schemas/document.template.mjs +17 -17
  20. package/{esm2020 → esm2022}/lib/shared/config/word/schemas/font-table.mjs +3 -3
  21. package/{esm2020 → esm2022}/lib/shared/config/word/schemas/generic-rels.mjs +2 -2
  22. package/{esm2020 → esm2022}/lib/shared/config/word/schemas/index.mjs +12 -12
  23. package/{esm2020 → esm2022}/lib/shared/config/word/schemas/numbering.mjs +3 -3
  24. package/{esm2020 → esm2022}/lib/shared/config/word/schemas/rels.mjs +3 -3
  25. package/{esm2020 → esm2022}/lib/shared/config/word/schemas/settings.mjs +3 -3
  26. package/{esm2020 → esm2022}/lib/shared/config/word/schemas/styles.mjs +4 -4
  27. package/{esm2020 → esm2022}/lib/shared/config/word/schemas/theme.mjs +3 -3
  28. package/{esm2020 → esm2022}/lib/shared/config/word/schemas/web-settings.mjs +3 -3
  29. package/{esm2020 → esm2022}/lib/shared/config/word/utils/color-conversion.mjs +59 -59
  30. package/{esm2020 → esm2022}/lib/shared/config/word/utils/list.mjs +50 -50
  31. package/{esm2020 → esm2022}/lib/shared/config/word/utils/unit-conversion.mjs +29 -29
  32. package/{esm2020 → esm2022}/lib/shared/config/word/utils/url.mjs +6 -6
  33. package/{esm2020 → esm2022}/lib/shared/config/word/utils/vnode.mjs +2 -2
  34. package/{esm2020 → esm2022}/lib/shared/config/word/word-work/templates/documentTemplate.mjs +12 -12
  35. package/{esm2020 → esm2022}/lib/shared/config/word/word-work/templates/index.mjs +3 -3
  36. package/{esm2020 → esm2022}/lib/shared/config/word/word-work/templates/mhtDocumentTemplate.mjs +4 -4
  37. package/{esm2020 → esm2022}/lib/shared/config/word/word-work/templates/mhtPartTemplate.mjs +3 -3
  38. package/{esm2020 → esm2022}/lib/shared/config/word/word-work/utils.mjs +25 -25
  39. package/{esm2020 → esm2022}/lib/shared/enums/authentication-modes-enums.mjs +7 -7
  40. package/{esm2020 → esm2022}/lib/shared/index.mjs +3 -3
  41. package/{esm2020 → esm2022}/lib/shared/models/UserModel.mjs +2 -2
  42. package/{esm2020 → esm2022}/lib/shared/models/area-model.mjs +2 -2
  43. package/{esm2020 → esm2022}/lib/shared/models/error-model.mjs +2 -2
  44. package/{esm2020 → esm2022}/lib/shared/models/index.mjs +4 -4
  45. package/{esm2020 → esm2022}/lib/shared/models/request-options-model.mjs +10 -10
  46. package/{esm2020 → esm2022}/lib/shared/models/word-document-model.mjs +7 -7
  47. package/{esm2020 → esm2022}/lib/shared/services/appearance-configuration.service.mjs +35 -35
  48. package/esm2022/lib/shared/services/configuration.service.mjs +24 -0
  49. package/{esm2020 → esm2022}/lib/shared/services/control-validation.service.mjs +173 -173
  50. package/esm2022/lib/shared/services/environment.service.mjs +75 -0
  51. package/{esm2020 → esm2022}/lib/shared/services/index.mjs +11 -11
  52. package/{esm2020 → esm2022}/lib/shared/services/master-layout.service.mjs +72 -72
  53. package/{esm2020 → esm2022}/lib/shared/services/request-handler.service.mjs +219 -199
  54. package/{esm2020 → esm2022}/lib/shared/services/styles-bundle.service.mjs +55 -55
  55. package/{esm2020 → esm2022}/lib/shared/services/translate.service.mjs +14 -14
  56. package/{esm2020 → esm2022}/lib/shared/services/translation-resolver.service.mjs +6 -6
  57. package/{esm2020 → esm2022}/lib/shared/services/utility.service.mjs +87 -87
  58. package/{esm2020 → esm2022}/lib/shared/services/word-document.service.mjs +38 -38
  59. package/{esm2020 → esm2022}/public-api.mjs +29 -29
  60. package/{fesm2020 → fesm2022}/bnsights-bbsf-utilities.mjs +3856 -3836
  61. package/fesm2022/bnsights-bbsf-utilities.mjs.map +1 -0
  62. package/index.d.ts +5 -5
  63. package/lib/bbsf-utilities.module.d.ts +10 -10
  64. package/lib/shared/authentication/auth.service.d.ts +52 -52
  65. package/lib/shared/authentication/index.d.ts +1 -1
  66. package/lib/shared/config/environment.d.ts +1 -1
  67. package/lib/shared/config/word/constants.d.ts +124 -124
  68. package/lib/shared/config/word/docx-document.d.ts +73 -73
  69. package/lib/shared/config/word/helpers/index.d.ts +1 -1
  70. package/lib/shared/config/word/helpers/render-document-file.d.ts +2 -2
  71. package/lib/shared/config/word/helpers/xml-builder.d.ts +16 -16
  72. package/lib/shared/config/word/html-to-docx.d.ts +1 -1
  73. package/lib/shared/config/word/index.d.ts +1 -1
  74. package/lib/shared/config/word/namespaces.d.ts +36 -36
  75. package/lib/shared/config/word/schemas/content-types.d.ts +1 -1
  76. package/lib/shared/config/word/schemas/core.d.ts +1 -1
  77. package/lib/shared/config/word/schemas/document-rels.d.ts +1 -1
  78. package/lib/shared/config/word/schemas/document.template.d.ts +4 -4
  79. package/lib/shared/config/word/schemas/font-table.d.ts +1 -1
  80. package/lib/shared/config/word/schemas/generic-rels.d.ts +1 -1
  81. package/lib/shared/config/word/schemas/index.d.ts +12 -12
  82. package/lib/shared/config/word/schemas/numbering.d.ts +1 -1
  83. package/lib/shared/config/word/schemas/rels.d.ts +1 -1
  84. package/lib/shared/config/word/schemas/settings.d.ts +1 -1
  85. package/lib/shared/config/word/schemas/styles.d.ts +1 -1
  86. package/lib/shared/config/word/schemas/theme.d.ts +1 -1
  87. package/lib/shared/config/word/schemas/web-settings.d.ts +1 -1
  88. package/lib/shared/config/word/utils/color-conversion.d.ts +7 -7
  89. package/lib/shared/config/word/utils/list.d.ts +6 -6
  90. package/lib/shared/config/word/utils/unit-conversion.d.ts +29 -29
  91. package/lib/shared/config/word/utils/url.d.ts +1 -1
  92. package/lib/shared/config/word/utils/vnode.d.ts +1 -1
  93. package/lib/shared/config/word/word-work/templates/documentTemplate.d.ts +12 -12
  94. package/lib/shared/config/word/word-work/templates/index.d.ts +3 -3
  95. package/lib/shared/config/word/word-work/templates/mhtDocumentTemplate.d.ts +1 -1
  96. package/lib/shared/config/word/word-work/templates/mhtPartTemplate.d.ts +1 -1
  97. package/lib/shared/config/word/word-work/utils.d.ts +1 -1
  98. package/lib/shared/enums/authentication-modes-enums.d.ts +6 -6
  99. package/lib/shared/index.d.ts +3 -3
  100. package/lib/shared/models/UserModel.d.ts +6 -6
  101. package/lib/shared/models/area-model.d.ts +4 -4
  102. package/lib/shared/models/error-model.d.ts +5 -5
  103. package/lib/shared/models/index.d.ts +4 -4
  104. package/lib/shared/models/request-options-model.d.ts +11 -11
  105. package/lib/shared/models/word-document-model.d.ts +16 -16
  106. package/lib/shared/services/appearance-configuration.service.d.ts +14 -14
  107. package/lib/shared/services/configuration.service.d.ts +10 -10
  108. package/lib/shared/services/control-validation.service.d.ts +23 -23
  109. package/lib/shared/services/environment.service.d.ts +25 -25
  110. package/lib/shared/services/index.d.ts +11 -11
  111. package/lib/shared/services/master-layout.service.d.ts +24 -24
  112. package/lib/shared/services/request-handler.service.d.ts +35 -33
  113. package/lib/shared/services/styles-bundle.service.d.ts +12 -12
  114. package/lib/shared/services/translate.service.d.ts +6 -6
  115. package/lib/shared/services/translation-resolver.service.d.ts +2 -2
  116. package/lib/shared/services/utility.service.d.ts +23 -23
  117. package/lib/shared/services/word-document.service.d.ts +8 -8
  118. package/package.json +28 -29
  119. package/public-api.d.ts +17 -17
  120. package/bnsights-bbsf-utilities-1.0.42.tgz +0 -0
  121. package/esm2020/lib/shared/authentication/auth.service.mjs +0 -211
  122. package/esm2020/lib/shared/services/configuration.service.mjs +0 -24
  123. package/esm2020/lib/shared/services/environment.service.mjs +0 -75
  124. package/fesm2015/bnsights-bbsf-utilities.mjs +0 -4555
  125. package/fesm2015/bnsights-bbsf-utilities.mjs.map +0 -1
  126. package/fesm2020/bnsights-bbsf-utilities.mjs.map +0 -1
@@ -1,187 +1,187 @@
1
- import { create } from 'xmlbuilder2';
2
- import VNode from 'virtual-dom/vnode/vnode';
3
- import VText from 'virtual-dom/vnode/vtext';
4
- // eslint-disable-next-line import/no-named-default
5
- import { default as HTMLToVDOM } from 'html-to-vdom';
6
- import { relsXML } from './schemas';
7
- import { DocxDocument } from './docx-document';
8
- import { renderDocumentFile } from './helpers';
9
- import { getMHTdocument } from "./word-work/utils";
10
- import { pixelRegex, pixelToTWIP, cmRegex, cmToTWIP, inchRegex, inchToTWIP, pointRegex, pointToHIP, } from './utils/unit-conversion';
11
- import { defaultDocumentOptions, defaultHTMLString, relsFolderName, headerFileName, footerFileName, themeFileName, documentFileName, headerType, footerType, internalRelationship, wordFolder, themeFolder, themeType, } from './constants';
12
- import { generateDocumentTemplateHeader, generateDocumentTemplateFooter, generateDocumentTemplateFooterWithoutPaging } from './schemas/document.template';
13
- const convertHTML = HTMLToVDOM({
14
- VNode,
15
- VText,
16
- });
17
- const mergeOptions = (options, patch) => ({ ...options, ...patch });
18
- const fixupFontSize = (fontSize) => {
19
- let normalizedFontSize;
20
- if (pointRegex.test(fontSize)) {
21
- const matchedParts = fontSize.match(pointRegex);
22
- normalizedFontSize = pointToHIP(matchedParts[1]);
23
- }
24
- else if (fontSize) {
25
- // assuming it is already in HIP
26
- normalizedFontSize = fontSize;
27
- }
28
- else {
29
- normalizedFontSize = null;
30
- }
31
- return normalizedFontSize;
32
- };
33
- const normalizeUnits = (dimensioningObject, defaultDimensionsProperty) => {
34
- let normalizedUnitResult = {};
35
- if (typeof dimensioningObject === 'object' && dimensioningObject !== null) {
36
- Object.keys(dimensioningObject).forEach((key) => {
37
- if (pixelRegex.test(dimensioningObject[key])) {
38
- const matchedParts = dimensioningObject[key].match(pixelRegex);
39
- normalizedUnitResult[key] = pixelToTWIP(matchedParts[1]);
40
- }
41
- else if (cmRegex.test(dimensioningObject[key])) {
42
- const matchedParts = dimensioningObject[key].match(cmRegex);
43
- normalizedUnitResult[key] = cmToTWIP(matchedParts[1]);
44
- }
45
- else if (inchRegex.test(dimensioningObject[key])) {
46
- const matchedParts = dimensioningObject[key].match(inchRegex);
47
- normalizedUnitResult[key] = inchToTWIP(matchedParts[1]);
48
- }
49
- else if (dimensioningObject[key]) {
50
- normalizedUnitResult[key] = dimensioningObject[key];
51
- }
52
- else {
53
- // incase value is something like 0
54
- normalizedUnitResult[key] = defaultDimensionsProperty[key];
55
- }
56
- });
57
- }
58
- else {
59
- // eslint-disable-next-line no-param-reassign
60
- normalizedUnitResult = null;
61
- }
62
- return normalizedUnitResult;
63
- };
64
- const normalizeDocumentOptions = (documentOptions) => {
65
- const normalizedDocumentOptions = { ...documentOptions };
66
- Object.keys(documentOptions).forEach((key) => {
67
- // eslint-disable-next-line default-case
68
- switch (key) {
69
- case 'pageSize':
70
- case 'margins':
71
- normalizedDocumentOptions[key] = normalizeUnits(documentOptions[key], defaultDocumentOptions[key]);
72
- break;
73
- case 'fontSize':
74
- case 'complexScriptFontSize':
75
- normalizedDocumentOptions[key] = fixupFontSize(documentOptions[key]);
76
- break;
77
- }
78
- });
79
- return normalizedDocumentOptions;
80
- };
81
- // Ref: https://en.wikipedia.org/wiki/Office_Open_XML_file_formats
82
- // http://officeopenxml.com/anatomyofOOXML.php
83
- async function addFilesToContainer(zip, htmlString, suppliedDocumentOptions, headerHTMLString, footerHTMLString) {
84
- debugger;
85
- const normalizedDocumentOptions = normalizeDocumentOptions(suppliedDocumentOptions);
86
- const documentOptions = mergeOptions(defaultDocumentOptions, normalizedDocumentOptions);
87
- if (documentOptions.header && !headerHTMLString) {
88
- // eslint-disable-next-line no-param-reassign
89
- headerHTMLString = defaultHTMLString;
90
- }
91
- if (documentOptions.footer && !footerHTMLString) {
92
- // eslint-disable-next-line no-param-reassign
93
- footerHTMLString = defaultHTMLString;
94
- }
95
- const docxDocument = new DocxDocument({ zip, htmlString, ...documentOptions });
96
- // Conversion to Word XML happens here
97
- docxDocument.documentXML = await renderDocumentFile(docxDocument);
98
- debugger;
99
- zip
100
- .folder(relsFolderName)
101
- .file('.rels', create({ encoding: 'UTF-8', standalone: true }, relsXML).toString({ prettyPrint: true }), { createFolders: false });
102
- zip.folder('docProps').file('core.xml', docxDocument.generateCoreXML(), {
103
- createFolders: false,
104
- });
105
- if (docxDocument.header && headerHTMLString) {
106
- const vTree = convertHTML(headerHTMLString);
107
- docxDocument.relationshipFilename = headerFileName;
108
- const { headerId, headerXML } = await docxDocument.generateHeaderXML(vTree);
109
- docxDocument.relationshipFilename = documentFileName;
110
- const fileNameWithExt = `${headerType}${headerId}.xml`;
111
- const relationshipId = docxDocument.createDocumentRelationships(docxDocument.relationshipFilename, headerType, fileNameWithExt, internalRelationship);
112
- zip.folder(wordFolder).file(fileNameWithExt, generateDocumentTemplateHeader.toString({ prettyPrint: true }), {
113
- createFolders: false,
114
- });
115
- docxDocument.headerObjects.push({ headerId, relationshipId, type: docxDocument.headerType });
116
- }
117
- if (docxDocument.footer && footerHTMLString) {
118
- const vTree = convertHTML(footerHTMLString);
119
- docxDocument.relationshipFilename = footerFileName;
120
- const { footerId, footerXML } = await docxDocument.generateFooterXML(vTree);
121
- docxDocument.relationshipFilename = documentFileName;
122
- const fileNameWithExt = `${footerType}${footerId}.xml`;
123
- const relationshipId = docxDocument.createDocumentRelationships(docxDocument.relationshipFilename, footerType, fileNameWithExt, internalRelationship);
124
- console.log(footerXML.toString({ prettyPrint: true }));
125
- if (suppliedDocumentOptions.pageNumber)
126
- zip.folder(wordFolder).file(fileNameWithExt, generateDocumentTemplateFooter.toString({ prettyPrint: true }), {
127
- createFolders: false,
128
- });
129
- else
130
- zip.folder(wordFolder).file(fileNameWithExt, generateDocumentTemplateFooterWithoutPaging.toString({ prettyPrint: true }), {
131
- createFolders: false,
132
- });
133
- docxDocument.footerObjects.push({ footerId, relationshipId, type: docxDocument.footerType });
134
- }
135
- const themeFileNameWithExt = `${themeFileName}.xml`;
136
- docxDocument.createDocumentRelationships(docxDocument.relationshipFilename, themeType, `${themeFolder}/${themeFileNameWithExt}`, internalRelationship);
137
- zip
138
- .folder(wordFolder)
139
- .folder(themeFolder)
140
- .file(themeFileNameWithExt, docxDocument.generateThemeXML(), {
141
- createFolders: false,
142
- });
143
- zip
144
- .folder(wordFolder)
145
- .file('document.xml', docxDocument.generateDocumentXML(), { createFolders: false })
146
- .file('afchunk.mht', getMHTdocument(htmlString), {
147
- createFolders: false,
148
- })
149
- .file('afchunkheader.mht', getMHTdocument(headerHTMLString), {
150
- createFolders: false,
151
- })
152
- .file('afchunkfooter.mht', getMHTdocument(footerHTMLString), {
153
- createFolders: false,
154
- })
155
- .file('fontTable.xml', docxDocument.generateFontTableXML(), { createFolders: false })
156
- .file('styles.xml', docxDocument.generateStylesXML(), { createFolders: false })
157
- .file('numbering.xml', docxDocument.generateNumberingXML(), { createFolders: false })
158
- .file('settings.xml', docxDocument.generateSettingsXML(), { createFolders: false })
159
- .file('webSettings.xml', docxDocument.generateWebSettingsXML(), { createFolders: false });
160
- const relationshipXMLs = docxDocument.generateRelsXML();
161
- if (relationshipXMLs && Array.isArray(relationshipXMLs)) {
162
- relationshipXMLs.forEach(({ fileName, xmlString }) => {
163
- console.log(xmlString);
164
- zip.folder(wordFolder).folder(relsFolderName).file(`${fileName}.xml.rels`, xmlString, {
165
- createFolders: false,
166
- });
167
- });
168
- }
169
- if (relationshipXMLs && Array.isArray(relationshipXMLs)) {
170
- relationshipXMLs.forEach(({ fileName, xmlString }) => {
171
- zip.folder(wordFolder).folder(relsFolderName).file(`header1.xml.rels`, xmlString, {
172
- createFolders: false,
173
- });
174
- });
175
- }
176
- if (relationshipXMLs && Array.isArray(relationshipXMLs)) {
177
- relationshipXMLs.forEach(({ fileName, xmlString }) => {
178
- zip.folder(wordFolder).folder(relsFolderName).file(`footer1.xml.rels`, xmlString, {
179
- createFolders: false,
180
- });
181
- });
182
- }
183
- zip.file('[Content_Types].xml', docxDocument.generateContentTypesXML(), { createFolders: false });
184
- return zip;
185
- }
186
- export { addFilesToContainer };
1
+ import { create } from 'xmlbuilder2';
2
+ import VNode from 'virtual-dom/vnode/vnode';
3
+ import VText from 'virtual-dom/vnode/vtext';
4
+ // eslint-disable-next-line import/no-named-default
5
+ import { default as HTMLToVDOM } from 'html-to-vdom';
6
+ import { relsXML } from './schemas';
7
+ import { DocxDocument } from './docx-document';
8
+ import { renderDocumentFile } from './helpers';
9
+ import { getMHTdocument } from "./word-work/utils";
10
+ import { pixelRegex, pixelToTWIP, cmRegex, cmToTWIP, inchRegex, inchToTWIP, pointRegex, pointToHIP, } from './utils/unit-conversion';
11
+ import { defaultDocumentOptions, defaultHTMLString, relsFolderName, headerFileName, footerFileName, themeFileName, documentFileName, headerType, footerType, internalRelationship, wordFolder, themeFolder, themeType, } from './constants';
12
+ import { generateDocumentTemplateHeader, generateDocumentTemplateFooter, generateDocumentTemplateFooterWithoutPaging } from './schemas/document.template';
13
+ const convertHTML = HTMLToVDOM({
14
+ VNode,
15
+ VText,
16
+ });
17
+ const mergeOptions = (options, patch) => ({ ...options, ...patch });
18
+ const fixupFontSize = (fontSize) => {
19
+ let normalizedFontSize;
20
+ if (pointRegex.test(fontSize)) {
21
+ const matchedParts = fontSize.match(pointRegex);
22
+ normalizedFontSize = pointToHIP(matchedParts[1]);
23
+ }
24
+ else if (fontSize) {
25
+ // assuming it is already in HIP
26
+ normalizedFontSize = fontSize;
27
+ }
28
+ else {
29
+ normalizedFontSize = null;
30
+ }
31
+ return normalizedFontSize;
32
+ };
33
+ const normalizeUnits = (dimensioningObject, defaultDimensionsProperty) => {
34
+ let normalizedUnitResult = {};
35
+ if (typeof dimensioningObject === 'object' && dimensioningObject !== null) {
36
+ Object.keys(dimensioningObject).forEach((key) => {
37
+ if (pixelRegex.test(dimensioningObject[key])) {
38
+ const matchedParts = dimensioningObject[key].match(pixelRegex);
39
+ normalizedUnitResult[key] = pixelToTWIP(matchedParts[1]);
40
+ }
41
+ else if (cmRegex.test(dimensioningObject[key])) {
42
+ const matchedParts = dimensioningObject[key].match(cmRegex);
43
+ normalizedUnitResult[key] = cmToTWIP(matchedParts[1]);
44
+ }
45
+ else if (inchRegex.test(dimensioningObject[key])) {
46
+ const matchedParts = dimensioningObject[key].match(inchRegex);
47
+ normalizedUnitResult[key] = inchToTWIP(matchedParts[1]);
48
+ }
49
+ else if (dimensioningObject[key]) {
50
+ normalizedUnitResult[key] = dimensioningObject[key];
51
+ }
52
+ else {
53
+ // incase value is something like 0
54
+ normalizedUnitResult[key] = defaultDimensionsProperty[key];
55
+ }
56
+ });
57
+ }
58
+ else {
59
+ // eslint-disable-next-line no-param-reassign
60
+ normalizedUnitResult = null;
61
+ }
62
+ return normalizedUnitResult;
63
+ };
64
+ const normalizeDocumentOptions = (documentOptions) => {
65
+ const normalizedDocumentOptions = { ...documentOptions };
66
+ Object.keys(documentOptions).forEach((key) => {
67
+ // eslint-disable-next-line default-case
68
+ switch (key) {
69
+ case 'pageSize':
70
+ case 'margins':
71
+ normalizedDocumentOptions[key] = normalizeUnits(documentOptions[key], defaultDocumentOptions[key]);
72
+ break;
73
+ case 'fontSize':
74
+ case 'complexScriptFontSize':
75
+ normalizedDocumentOptions[key] = fixupFontSize(documentOptions[key]);
76
+ break;
77
+ }
78
+ });
79
+ return normalizedDocumentOptions;
80
+ };
81
+ // Ref: https://en.wikipedia.org/wiki/Office_Open_XML_file_formats
82
+ // http://officeopenxml.com/anatomyofOOXML.php
83
+ async function addFilesToContainer(zip, htmlString, suppliedDocumentOptions, headerHTMLString, footerHTMLString) {
84
+ debugger;
85
+ const normalizedDocumentOptions = normalizeDocumentOptions(suppliedDocumentOptions);
86
+ const documentOptions = mergeOptions(defaultDocumentOptions, normalizedDocumentOptions);
87
+ if (documentOptions.header && !headerHTMLString) {
88
+ // eslint-disable-next-line no-param-reassign
89
+ headerHTMLString = defaultHTMLString;
90
+ }
91
+ if (documentOptions.footer && !footerHTMLString) {
92
+ // eslint-disable-next-line no-param-reassign
93
+ footerHTMLString = defaultHTMLString;
94
+ }
95
+ const docxDocument = new DocxDocument({ zip, htmlString, ...documentOptions });
96
+ // Conversion to Word XML happens here
97
+ docxDocument.documentXML = await renderDocumentFile(docxDocument);
98
+ debugger;
99
+ zip
100
+ .folder(relsFolderName)
101
+ .file('.rels', create({ encoding: 'UTF-8', standalone: true }, relsXML).toString({ prettyPrint: true }), { createFolders: false });
102
+ zip.folder('docProps').file('core.xml', docxDocument.generateCoreXML(), {
103
+ createFolders: false,
104
+ });
105
+ if (docxDocument.header && headerHTMLString) {
106
+ const vTree = convertHTML(headerHTMLString);
107
+ docxDocument.relationshipFilename = headerFileName;
108
+ const { headerId, headerXML } = await docxDocument.generateHeaderXML(vTree);
109
+ docxDocument.relationshipFilename = documentFileName;
110
+ const fileNameWithExt = `${headerType}${headerId}.xml`;
111
+ const relationshipId = docxDocument.createDocumentRelationships(docxDocument.relationshipFilename, headerType, fileNameWithExt, internalRelationship);
112
+ zip.folder(wordFolder).file(fileNameWithExt, generateDocumentTemplateHeader.toString({ prettyPrint: true }), {
113
+ createFolders: false,
114
+ });
115
+ docxDocument.headerObjects.push({ headerId, relationshipId, type: docxDocument.headerType });
116
+ }
117
+ if (docxDocument.footer && footerHTMLString) {
118
+ const vTree = convertHTML(footerHTMLString);
119
+ docxDocument.relationshipFilename = footerFileName;
120
+ const { footerId, footerXML } = await docxDocument.generateFooterXML(vTree);
121
+ docxDocument.relationshipFilename = documentFileName;
122
+ const fileNameWithExt = `${footerType}${footerId}.xml`;
123
+ const relationshipId = docxDocument.createDocumentRelationships(docxDocument.relationshipFilename, footerType, fileNameWithExt, internalRelationship);
124
+ console.log(footerXML.toString({ prettyPrint: true }));
125
+ if (suppliedDocumentOptions.pageNumber)
126
+ zip.folder(wordFolder).file(fileNameWithExt, generateDocumentTemplateFooter.toString({ prettyPrint: true }), {
127
+ createFolders: false,
128
+ });
129
+ else
130
+ zip.folder(wordFolder).file(fileNameWithExt, generateDocumentTemplateFooterWithoutPaging.toString({ prettyPrint: true }), {
131
+ createFolders: false,
132
+ });
133
+ docxDocument.footerObjects.push({ footerId, relationshipId, type: docxDocument.footerType });
134
+ }
135
+ const themeFileNameWithExt = `${themeFileName}.xml`;
136
+ docxDocument.createDocumentRelationships(docxDocument.relationshipFilename, themeType, `${themeFolder}/${themeFileNameWithExt}`, internalRelationship);
137
+ zip
138
+ .folder(wordFolder)
139
+ .folder(themeFolder)
140
+ .file(themeFileNameWithExt, docxDocument.generateThemeXML(), {
141
+ createFolders: false,
142
+ });
143
+ zip
144
+ .folder(wordFolder)
145
+ .file('document.xml', docxDocument.generateDocumentXML(), { createFolders: false })
146
+ .file('afchunk.mht', getMHTdocument(htmlString), {
147
+ createFolders: false,
148
+ })
149
+ .file('afchunkheader.mht', getMHTdocument(headerHTMLString), {
150
+ createFolders: false,
151
+ })
152
+ .file('afchunkfooter.mht', getMHTdocument(footerHTMLString), {
153
+ createFolders: false,
154
+ })
155
+ .file('fontTable.xml', docxDocument.generateFontTableXML(), { createFolders: false })
156
+ .file('styles.xml', docxDocument.generateStylesXML(), { createFolders: false })
157
+ .file('numbering.xml', docxDocument.generateNumberingXML(), { createFolders: false })
158
+ .file('settings.xml', docxDocument.generateSettingsXML(), { createFolders: false })
159
+ .file('webSettings.xml', docxDocument.generateWebSettingsXML(), { createFolders: false });
160
+ const relationshipXMLs = docxDocument.generateRelsXML();
161
+ if (relationshipXMLs && Array.isArray(relationshipXMLs)) {
162
+ relationshipXMLs.forEach(({ fileName, xmlString }) => {
163
+ console.log(xmlString);
164
+ zip.folder(wordFolder).folder(relsFolderName).file(`${fileName}.xml.rels`, xmlString, {
165
+ createFolders: false,
166
+ });
167
+ });
168
+ }
169
+ if (relationshipXMLs && Array.isArray(relationshipXMLs)) {
170
+ relationshipXMLs.forEach(({ fileName, xmlString }) => {
171
+ zip.folder(wordFolder).folder(relsFolderName).file(`header1.xml.rels`, xmlString, {
172
+ createFolders: false,
173
+ });
174
+ });
175
+ }
176
+ if (relationshipXMLs && Array.isArray(relationshipXMLs)) {
177
+ relationshipXMLs.forEach(({ fileName, xmlString }) => {
178
+ zip.folder(wordFolder).folder(relsFolderName).file(`footer1.xml.rels`, xmlString, {
179
+ createFolders: false,
180
+ });
181
+ });
182
+ }
183
+ zip.file('[Content_Types].xml', docxDocument.generateContentTypesXML(), { createFolders: false });
184
+ return zip;
185
+ }
186
+ export { addFilesToContainer };
187
187
  //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaHRtbC10by1kb2N4LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYmJzZi11dGlsaXRpZXMvc3JjL2xpYi9zaGFyZWQvY29uZmlnL3dvcmQvaHRtbC10by1kb2N4LmpzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxNQUFNLEVBQUUsTUFBTSxhQUFhLENBQUM7QUFDckMsT0FBTyxLQUFLLE1BQU0seUJBQXlCLENBQUM7QUFDNUMsT0FBTyxLQUFLLE1BQU0seUJBQXlCLENBQUM7QUFDNUMsbURBQW1EO0FBQ25ELE9BQU8sRUFBRSxPQUFPLElBQUksVUFBVSxFQUFFLE1BQU0sY0FBYyxDQUFDO0FBRXJELE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSxXQUFXLENBQUM7QUFDcEMsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQy9DLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLFdBQVcsQ0FBQztBQUMvQyxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sbUJBQW1CLENBQUE7QUFDbEQsT0FBTyxFQUNMLFVBQVUsRUFDVixXQUFXLEVBQ1gsT0FBTyxFQUNQLFFBQVEsRUFDUixTQUFTLEVBQ1QsVUFBVSxFQUNWLFVBQVUsRUFDVixVQUFVLEdBQ1gsTUFBTSx5QkFBeUIsQ0FBQztBQUNqQyxPQUFPLEVBQ0wsc0JBQXNCLEVBQ3RCLGlCQUFpQixFQUNqQixjQUFjLEVBQ2QsY0FBYyxFQUNkLGNBQWMsRUFDZCxhQUFhLEVBQ2IsZ0JBQWdCLEVBQ2hCLFVBQVUsRUFDVixVQUFVLEVBQ1Ysb0JBQW9CLEVBQ3BCLFVBQVUsRUFDVixXQUFXLEVBQ1gsU0FBUyxHQUNWLE1BQU0sYUFBYSxDQUFDO0FBQ3JCLE9BQU8sRUFBRSw4QkFBOEIsRUFBRSw4QkFBOEIsRUFBRSwyQ0FBMkMsRUFBRSxNQUFNLDZCQUE2QixDQUFDO0FBQzFKLE1BQU0sV0FBVyxHQUFHLFVBQVUs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LGdCQUFnQixDQUFDLEVBQUU7UUFDdkQsZ0JBQWdCLENBQUMsT0FBTyxDQUFDLENBQUMsRUFBRSxRQUFRLEVBQUUsU0FBUyxFQUFFLEVBQUUsRUFBRTtZQUNuRCxHQUFHLENBQUMsTUFBTSxDQUFDLFVBQVUsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxjQUFjLENBQUMsQ0FBQyxJQUFJLENBQUMsa0JBQWtCLEVBQUUsU0FBUyxFQUFFO2dCQUNoRixhQUFhLEVBQUUsS0FBSzthQUNyQixDQUFDLENBQUM7UUFDTCxDQUFDLENBQUMsQ0FBQztLQUNKO0lBQ0QsSUFBSSxnQkFBZ0IsSUFBSSxLQUFLLENBQUMsT0FBTyxDQUFDLGdCQUFnQixDQUFDLEVBQUU7UUFDdkQsZ0JBQWdCLENBQUMsT0FBTyxDQUFDLENBQUMsRUFBRSxRQUFRLEVBQUUsU0FBUyxFQUFFLEVBQUUsRUFBRTtZQUNuRCxHQUFHLENBQUMsTUFBTSxDQUFDLFVBQVUsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxjQUFjLENBQUMsQ0FBQyxJQUFJLENBQUMsa0JBQWtCLEVBQUUsU0FBUyxFQUFFO2dCQUNoRixhQUFhLEVBQUUsS0FBSzthQUNyQixDQUFDLENBQUM7UUFDTCxDQUFDLENBQUMsQ0FBQztLQUNKO0lBR0QsR0FBRyxDQUFDLElBQUksQ0FBQyxxQkFBcUIsRUFBRSxZQUFZLENBQUMsdUJBQXVCLEVBQUUsRUFBRSxFQUFFLGFBQWEsRUFBRSxLQUFLLEVBQUUsQ0FBQyxDQUFDO0lBRWxHLE9BQU8sR0FBRyxDQUFDO0FBQ2IsQ0FBQztBQUVELE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgY3JlYXRlIH0gZnJvbSAneG1sYnVpbGRlcjInO1xyXG5pbXBvcnQgVk5vZGUgZnJvbSAndmlydHVhbC1kb20vdm5vZGUvdm5vZGUnO1xyXG5pbXBvcnQgVlRleHQgZnJvbSAndmlydHVhbC1kb20vdm5vZGUvdnRleHQnO1xyXG4vLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgaW1wb3J0L25vLW5hbWVkLWRlZmF1bHRcclxuaW1wb3J0IHsgZGVmYXVsdCBhcyBIVE1MVG9WRE9NIH0gZnJvbSAnaHRtbC10by12ZG9tJztcclxuXHJcbmltcG9ydCB7IHJlbHNYTUwgfSBmcm9tICcuL3NjaGVtYXMnO1xyXG5pbXBvcnQgeyBEb2N4RG9jdW1lbnQgfSBmcm9tICcuL2RvY3gtZG9jdW1lbnQnO1xyXG5pbXBvcnQgeyByZW5kZXJEb2N1bWVudEZpbGUgfSBmcm9tICcuL2hlbHBlcnMnO1xyXG5pbXBvcnQgeyBnZXRNSFRkb2N1bWVudCB9IGZyb20gXCIuL3dvcmQtd29yay91dGlsc1wiXHJcbmltcG9ydCB7XHJcbiAgcGl4ZWxSZWdleCxcclxuICBwaXhlbFRvVFdJUCxcclxuICBjbVJlZ2V4LFxyXG4gIGNtVG9UV0lQLFxyXG4gIGluY2hSZWdleCxcclxuICBpbmNoVG9UV0lQLFxyXG4gIHBvaW50UmVnZXgsXHJcbiAgcG9pbnRUb0hJUCxcclxufSBmcm9tICcuL3V0aWxzL3VuaXQtY29udmVyc2lvbic7XHJcbmltcG9ydCB7XHJcbiAgZGVmYXVsdERvY3VtZW50T3B0aW9ucyxcclxuICBkZWZhdWx0SFRNTFN0cmluZyxcclxuICByZWxzRm9sZGVyTmFtZSxcclxuICBoZWFkZXJGaWxlTmFtZSxcclxuICBmb290ZXJGaWxlTmFtZSxcclxuICB0aGVtZUZpbGVOYW1lLFxyXG4gIGRvY3VtZW50RmlsZU5hbWUsXHJcbiAgaGVhZGVyVHlwZSxcclxuICBmb290ZXJUeXBlLFxyXG4gIGludGVybmFsUmVsYXRpb25zaGlwLFxyXG4gIHdvcmRGb2xkZXIsXHJcbiAgdGhlbWVGb2xkZXIsXHJcbiAgdGhlbWVUeXBlLFxyXG59IGZyb20gJy4vY29uc3RhbnRzJztcclxuaW1wb3J0IHsgZ2VuZXJhdGVEb2N1bWVudFRlbXBsYXRlSGVhZGVyLCBnZW5lcmF0ZURvY3VtZW50VGVtcGxhdGVGb290ZXIsIGdlbmVyYXRlRG9jdW1lbnRUZW1wbGF0ZUZvb3RlcldpdGhvdXRQYWdpbmcgfSBmcm9tICcuL3NjaGVtYXMvZG9jdW1lbnQudGVtcGxhdGUnO1xyXG5jb25zdCBjb252ZXJ0SFRNTCA9IEhUTUxUb1ZET00oe1xyXG4gIFZOb2RlLFxyXG4gIFZUZXh0LFxyXG59KTtcclxuXHJcbmNvbnN0IG1lcmdlT3B0aW9ucyA9IChvcHRpb25zLCBwYXRjaCkgPT4gKHsgLi4ub3B0aW9ucywgLi4ucGF0Y2ggfSk7XHJcblxyXG5jb25zdCBmaXh1cEZvbnRTaXplID0gKGZvbnRTaXplKSA9PiB7XHJcbiAgbGV0IG5vcm1hbGl6ZWRGb250U2l6ZTtcclxuICBpZiAocG9pbnRSZWdleC50ZXN0KGZvbnRTaXplKSkge1xyXG4gICAgY29uc3QgbWF0Y2hlZFBhcnRzID0gZm9udFNpemUubWF0Y2gocG9pbnRSZWdleCk7XHJcblxyXG4gICAgbm9ybWFsaXplZEZvbnRTaXplID0gcG9pbnRUb0hJUChtYXRjaGVkUGFydHNbMV0pO1xyXG4gIH0gZWxzZSBpZiAoZm9udFNpemUpIHtcclxuICAgIC8vIGFzc3VtaW5nIGl0IGlzIGFscmVhZHkgaW4gSElQXHJcbiAgICBub3JtYWxpemVkRm9udFNpemUgPSBmb250U2l6ZTtcclxuICB9IGVsc2Uge1xyXG4gICAgbm9ybWFsaXplZEZvbnRTaXplID0gbnVsbDtcclxuICB9XHJcblxyXG4gIHJldHVybiBub3JtYWxpemVkRm9udFNpemU7XHJcbn07XHJcblxyXG5jb25zdCBub3JtYWxpemVVbml0cyA9IChkaW1lbnNpb25pbmdPYmplY3QsIGRlZmF1bHREaW1lbnNpb25zUHJvcGVydHkpID0+IHtcclxuICBsZXQgbm9ybWFsaXplZFVuaXRSZXN1bHQgPSB7fTtcclxuICBpZiAodHlwZW9mIGRpbWVuc2lvbmluZ09iamVjdCA9PT0gJ29iamVjdCcgJiYgZGltZW5zaW9uaW5nT2JqZWN0ICE9PSBudWxsKSB7XHJcbiAgICBPYmplY3Qua2V5cyhkaW1lbnNpb25pbmdPYmplY3QpLmZvckVhY2goKGtleSkgPT4ge1xyXG4gICAgICBpZiAocGl4ZWxSZWdleC50ZXN0KGRpbWVuc2lvbmluZ09iamVjdFtrZXldKSkge1xyXG4gICAgICAgIGNvbnN0IG1hdGNoZWRQYXJ0cyA9IGRpbWVuc2lvbmluZ09iamVjdFtrZXldLm1hdGNoKHBpeGVsUmVnZXgpO1xyXG4gICAgICAgIG5vcm1hbGl6ZWRVbml0UmVzdWx0W2tleV0gPSBwaXhlbFRvVFdJUChtYXRjaGVkUGFydHNbMV0pO1xyXG4gICAgICB9IGVsc2UgaWYgKGNtUmVnZXgudGVzdChkaW1lbnNpb25pbmdPYmplY3Rba2V5XSkpIHtcclxuICAgICAgICBjb25zdCBtYXRjaGVkUGFydHMgPSBkaW1lbnNpb25pbmdPYmplY3Rba2V5XS5tYXRjaChjbVJlZ2V4KTtcclxuICAgICAgICBub3JtYWxpemVkVW5pdFJlc3VsdFtrZXldID0gY21Ub1RXSVAobWF0Y2hlZFBhcnRzWzFdKTtcclxuICAgICAgfSBlbHNlIGlmIChpbmNoUmVnZXgudGVzdChkaW1lbnNpb25pbmdPYmplY3Rba2V5XSkpIHtcclxuICAgICAgICBjb25zdCBtYXRjaGVkUGFydHMgPSBkaW1lbnNpb25pbmdPYmplY3Rba2V5XS5tYXRjaChpbmNoUmVnZXgpO1xyXG4gICAgICAgIG5vcm1hbGl6ZWRVbml0UmVzdWx0W2tleV0gPSBpbmNoVG9UV0lQKG1hdGNoZWRQYXJ0c1sxXSk7XHJcbiAgICAgIH0gZWxzZSBpZiAoZGltZW5zaW9uaW5nT2JqZWN0W2tleV0pIHtcclxuICAgICAgICBub3JtYWxpemVkVW5pdFJlc3VsdFtrZXldID0gZGltZW5zaW9uaW5nT2JqZWN0W2tleV07XHJcbiAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgLy8gaW5jYXNlIHZhbHVlIGlzIHNvbWV0aGluZyBsaWtlIDBcclxuICAgICAgICBub3JtYWxpemVkVW5pdFJlc3VsdFtrZXldID0gZGVmYXVsdERpbWVuc2lvbnNQcm9wZXJ0eVtrZXldO1xyXG4gICAgICB9XHJcbiAgICB9KTtcclxuICB9IGVsc2Uge1xyXG4gICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIG5vLXBhcmFtLXJlYXNzaWduXHJcbiAgICBub3JtYWxpemVkVW5pdFJlc3VsdCA9IG51bGw7XHJcbiAgfVxyXG5cclxuICByZXR1cm4gbm9ybWFsaXplZFVuaXRSZXN1bHQ7XHJcbn07XHJcblxyXG5jb25zdCBub3JtYWxpemVEb2N1bWVudE9wdGlvbnMgPSAoZG9jdW1lbnRPcHRpb25zKSA9PiB7XHJcbiAgY29uc3Qgbm9ybWFsaXplZERvY3VtZW50T3B0aW9ucyA9IHsgLi4uZG9jdW1lbnRPcHRpb25zIH07XHJcbiAgT2JqZWN0LmtleXMoZG9jdW1lbnRPcHRpb25zKS5mb3JFYWNoKChrZXkpID0+IHtcclxuICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBkZWZhdWx0LWNhc2VcclxuICAgIHN3aXRjaCAoa2V5KSB7XHJcbiAgICAgIGNhc2UgJ3BhZ2VTaXplJzpcclxuICAgICAgY2FzZSAnbWFyZ2lucyc6XHJcbiAgICAgICAgbm9ybWFsaXplZERvY3VtZW50T3B0aW9uc1trZXldID0gbm9ybWFsaXplVW5pdHMoXHJcbiAgICAgICAgICBkb2N1bWVudE9wdGlvbnNba2V5XSxcclxuICAgICAgICAgIGRlZmF1bHREb2N1bWVudE9wdGlvbnNba2V5XVxyXG4gICAgICAgICk7XHJcbiAgICAgICAgYnJlYWs7XHJcbiAgICAgIGNhc2UgJ2ZvbnRTaXplJzpcclxuICAgICAgY2FzZSAnY29tcGxleFNjcmlwdEZvbnRTaXplJzpcclxuICAgICAgICBub3JtYWxpemVkRG9jdW1lbnRPcHRpb25zW2tleV0gPSBmaXh1cEZvbnRTaXplKGRvY3VtZW50T3B0aW9uc1trZXldKTtcclxuICAgICAgICBicmVhaztcclxuICAgIH1cclxuICB9KTtcclxuXHJcbiAgcmV0dXJuIG5vcm1hbGl6ZWREb2N1bWVudE9wdGlvbnM7XHJcbn07XHJcblxyXG4vLyBSZWY6IGh0dHBzOi8vZW4ud2lraXBlZGlhLm9yZy93aWtpL09mZmljZV9PcGVuX1hNTF9maWxlX2Zvcm1hdHNcclxuLy8gaHR0cDovL29mZmljZW9wZW54bWwuY29tL2FuYXRvbXlvZk9PWE1MLnBocFxyXG5hc3luYyBmdW5jdGlvbiBhZGRGaWxlc1RvQ29udGFpbmVyKFxyXG4gIHppcCxcclxuICBodG1sU3RyaW5nLFxyXG4gIHN1cHBsaWVkRG9jdW1lbnRPcHRpb25zLFxyXG4gIGhlYWRlckhUTUxTdHJpbmcsXHJcbiAgZm9vdGVySFRNTFN0cmluZ1xyXG4pIHtcclxuICBkZWJ1Z2dlcjtcclxuICBjb25zdCBub3JtYWxpemVkRG9jdW1lbnRPcHRpb25zID0gbm9ybWFsaXplRG9jdW1lbnRPcHRpb25zKHN1cHBsaWVkRG9jdW1lbnRPcHRpb25zKTtcclxuICBjb25zdCBkb2N1bWVudE9wdGlvbnMgPSBtZXJnZU9wdGlvbnMoZGVmYXVsdERvY3VtZW50T3B0aW9ucywgbm9ybWFsaXplZERvY3VtZW50T3B0aW9ucyk7XHJcblxyXG4gIGlmIChkb2N1bWVudE9wdGlvbnMuaGVhZGVyICYmICFoZWFkZXJIVE1MU3RyaW5nKSB7XHJcbiAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgbm8tcGFyYW0tcmVhc3NpZ25cclxuICAgIGhlYWRlckhUTUxTdHJpbmcgPSBkZWZhdWx0SFRNTFN0cmluZztcclxuICB9XHJcbiAgaWYgKGRvY3VtZW50T3B0aW9ucy5mb290ZXIgJiYgIWZvb3RlckhUTUxTdHJpbmcpIHtcclxuICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBuby1wYXJhbS1yZWFzc2lnblxyXG4gICAgZm9vdGVySFRNTFN0cmluZyA9IGRlZmF1bHRIVE1MU3RyaW5nO1xyXG4gIH1cclxuXHJcbiAgY29uc3QgZG9jeERvY3VtZW50ID0gbmV3IERvY3hEb2N1bWVudCh7IHppcCwgaHRtbFN0cmluZywgLi4uZG9jdW1lbnRPcHRpb25zIH0pO1xyXG4gIC8vIENvbnZlcnNpb24gdG8gV29yZCBYTUwgaGFwcGVucyBoZXJlXHJcbiAgZG9jeERvY3VtZW50LmRvY3VtZW50WE1MID0gYXdhaXQgcmVuZGVyRG9jdW1lbnRGaWxlKGRvY3hEb2N1bWVudCk7XHJcbiAgZGVidWdnZXI7XHJcbiAgemlwXHJcbiAgICAuZm9sZGVyKHJlbHNGb2xkZXJOYW1lKVxyXG4gICAgLmZpbGUoXHJcbiAgICAgICcucmVscycsXHJcbiAgICAgIGNyZWF0ZSh7IGVuY29kaW5nOiAnVVRGLTgnLCBzdGFuZGFsb25lOiB0cnVlIH0sIHJlbHNYTUwpLnRvU3RyaW5nKHsgcHJldHR5UHJpbnQ6IHRydWUgfSksXHJcbiAgICAgIHsgY3JlYXRlRm9sZGVyczogZmFsc2UgfVxyXG4gICAgKTtcclxuXHJcbiAgemlwLmZvbGRlcignZG9jUHJvcHMnKS5maWxlKCdjb3JlLnhtbCcsIGRvY3hEb2N1bWVudC5nZW5lcmF0ZUNvcmVYTUwoKSwge1xyXG4gICAgY3JlYXRlRm9sZGVyczogZmFsc2UsXHJcbiAgfSk7XHJcblxyXG4gIGlmIChkb2N4RG9jdW1lbnQuaGVhZGVyICYmIGhlYWRlckhUTUxTdHJpbmcpIHtcclxuICAgIGNvbnN0IHZUcmVlID0gY29udmVydEhUTUwoaGVhZGVySFRNTFN0cmluZyk7XHJcblxyXG4gICAgZG9jeERvY3VtZW50LnJlbGF0aW9uc2hpcEZpbGVuYW1lID0gaGVhZGVyRmlsZU5hbWU7XHJcbiAgICBjb25zdCB7IGhlYWRlcklkLCBoZWFkZXJYTUwgfSA9IGF3YWl0IGRvY3hEb2N1bWVudC5nZW5lcmF0ZUhlYWRlclhNTCh2VHJlZSk7XHJcbiAgICBkb2N4RG9jdW1lbnQucmVsYXRpb25zaGlwRmlsZW5hbWUgPSBkb2N1bWVudEZpbGVOYW1lO1xyXG4gICAgY29uc3QgZmlsZU5hbWVXaXRoRXh0ID0gYCR7aGVhZGVyVHlwZX0ke2hlYWRlcklkfS54bWxgO1xyXG5cclxuICAgIGNvbnN0IHJlbGF0aW9uc2hpcElkID0gZG9jeERvY3VtZW50LmNyZWF0ZURvY3VtZW50UmVsYXRpb25zaGlwcyhcclxuICAgICAgZG9jeERvY3VtZW50LnJlbGF0aW9uc2hpcEZpbGVuYW1lLFxyXG4gICAgICBoZWFkZXJUeXBlLFxyXG4gICAgICBmaWxlTmFtZVdpdGhFeHQsXHJcbiAgICAgIGludGVybmFsUmVsYXRpb25zaGlwXHJcbiAgICApO1xyXG5cclxuICAgIHppcC5mb2xkZXIod29yZEZvbGRlcikuZmlsZShmaWxlTmFtZVdpdGhFeHQsIGdlbmVyYXRlRG9jdW1lbnRUZW1wbGF0ZUhlYWRlci50b1N0cmluZyh7IHByZXR0eVByaW50OiB0cnVlIH0pLCB7XHJcbiAgICAgIGNyZWF0ZUZvbGRlcnM6IGZhbHNlLFxyXG4gICAgfSk7XHJcblxyXG4gICAgZG9jeERvY3VtZW50LmhlYWRlck9iamVjdHMucHVzaCh7IGhlYWRlcklkLCByZWxhdGlvbnNoaXBJZCwgdHlwZTogZG9jeERvY3VtZW50LmhlYWRlclR5cGUgfSk7XHJcbiAgfVxyXG4gIGlmIChkb2N4RG9jdW1lbnQuZm9vdGVyICYmIGZvb3RlckhUTUxTdHJpbmcpIHtcclxuICAgIGNvbnN0IHZUcmVlID0gY29udmVydEhUTUwoZm9vdGVySFRNTFN0cmluZyk7XHJcblxyXG4gICAgZG9jeERvY3VtZW50LnJlbGF0aW9uc2hpcEZpbGVuYW1lID0gZm9vdGVyRmlsZU5hbWU7XHJcbiAgICBjb25zdCB7IGZvb3RlcklkLCBmb290ZXJYTUwgfSA9IGF3YWl0IGRvY3hEb2N1bWVudC5nZW5lcmF0ZUZvb3RlclhNTCh2VHJlZSk7XHJcbiAgICBkb2N4RG9jdW1lbnQucmVsYXRpb25zaGlwRmlsZW5hbWUgPSBkb2N1bWVudEZpbGVOYW1lO1xyXG4gICAgY29uc3QgZmlsZU5hbWVXaXRoRXh0ID0gYCR7Zm9vdGVyVHlwZX0ke2Zvb3RlcklkfS54bWxgO1xyXG5cclxuICAgIGNvbnN0IHJlbGF0aW9uc2hpcElkID0gZG9jeERvY3VtZW50LmNyZWF0ZURvY3VtZW50UmVsYXRpb25zaGlwcyhcclxuICAgICAgZG9jeERvY3VtZW50LnJlbGF0aW9uc2hpcEZpbGVuYW1lLFxyXG4gICAgICBmb290ZXJUeXBlLFxyXG4gICAgICBmaWxlTmFtZVdpdGhFeHQsXHJcbiAgICAgIGludGVybmFsUmVsYXRpb25zaGlwXHJcbiAgICApO1xyXG4gICAgY29uc29sZS5sb2coZm9vdGVyWE1MLnRvU3RyaW5nKHsgcHJldHR5UHJpbnQ6IHRydWUgfSkpXHJcblxyXG4gICAgaWYgKHN1cHBsaWVkRG9jdW1lbnRPcHRpb25zLnBhZ2VOdW1iZXIpXHJcbiAgICAgIHppcC5mb2xkZXIod29yZEZvbGRlcikuZmlsZShmaWxlTmFtZVdpdGhFeHQsIGdlbmVyYXRlRG9jdW1lbnRUZW1wbGF0ZUZvb3Rlci50b1N0cmluZyh7IHByZXR0eVByaW50OiB0cnVlIH0pLCB7XHJcbiAgICAgICAgY3JlYXRlRm9sZGVyczogZmFsc2UsXHJcbiAgICAgIH0pO1xyXG4gICAgZWxzZVxyXG4gICAgICB6aXAuZm9sZGVyKHdvcmRGb2xkZXIpLmZpbGUoZmlsZU5hbWVXaXRoRXh0LCBnZW5lcmF0ZURvY3VtZW50VGVtcGxhdGVGb290ZXJXaXRob3V0UGFnaW5nLnRvU3RyaW5nKHsgcHJldHR5UHJpbnQ6IHRydWUgfSksIHtcclxuICAgICAgICBjcmVhdGVGb2xkZXJzOiBmYWxzZSxcclxuICAgICAgfSk7XHJcblxyXG4gICAgZG9jeERvY3VtZW50LmZvb3Rlck9iamVjdHMucHVzaCh7IGZvb3RlcklkLCByZWxhdGlvbnNoaXBJZCwgdHlwZTogZG9jeERvY3VtZW50LmZvb3RlclR5cGUgfSk7XHJcbiAgfVxyXG4gIGNvbnN0IHRoZW1lRmlsZU5hbWVXaXRoRXh0ID0gYCR7dGhlbWVGaWxlTmFtZX0ueG1sYDtcclxuICBkb2N4RG9jdW1lbnQuY3JlYXRlRG9jdW1lbnRSZWxhdGlvbnNoaXBzKFxyXG4gICAgZG9jeERvY3VtZW50LnJlbGF0aW9uc2hpcEZpbGVuYW1lLFxyXG4gICAgdGhlbWVUeXBlLFxyXG4gICAgYCR7dGhlbWVGb2xkZXJ9LyR7dGhlbWVGaWxlTmFtZVdpdGhFeHR9YCxcclxuICAgIGludGVybmFsUmVsYXRpb25zaGlwXHJcbiAgKTtcclxuICB6aXBcclxuICAgIC5mb2xkZXIod29yZEZvbGRlcilcclxuICAgIC5mb2xkZXIodGhlbWVGb2xkZXIpXHJcbiAgICAuZmlsZSh0aGVtZUZpbGVOYW1lV2l0aEV4dCwgZG9jeERvY3VtZW50LmdlbmVyYXRlVGhlbWVYTUwoKSwge1xyXG4gICAgICBjcmVhdGVGb2xkZXJzOiBmYWxzZSxcclxuICAgIH0pO1xyXG5cclxuICB6aXBcclxuICAgIC5mb2xkZXIod29yZEZvbGRlcilcclxuICAgIC5maWxlKCdkb2N1bWVudC54bWwnLCBkb2N4RG9jdW1lbnQuZ2VuZXJhdGVEb2N1bWVudFhNTCgpLCB7IGNyZWF0ZUZvbGRlcnM6IGZhbHNlIH0pXHJcbiAgICAuZmlsZSgnYWZjaHVuay5taHQnLCBnZXRNSFRkb2N1bWVudChodG1sU3RyaW5nKSwge1xyXG4gICAgICBjcmVhdGVGb2xkZXJzOiBmYWxzZSxcclxuICAgIH0pXHJcbiAgICAuZmlsZSgnYWZjaHVua2hlYWRlci5taHQnLCBnZXRNSFRkb2N1bWVudChoZWFkZXJIVE1MU3RyaW5nKSwge1xyXG4gICAgICBjcmVhdGVGb2xkZXJzOiBmYWxzZSxcclxuICAgIH0pXHJcbiAgICAuZmlsZSgnYWZjaHVua2Zvb3Rlci5taHQnLCBnZXRNSFRkb2N1bWVudChmb290ZXJIVE1MU3RyaW5nKSwge1xyXG4gICAgICBjcmVhdGVGb2xkZXJzOiBmYWxzZSxcclxuICAgIH0pXHJcbiAgICAuZmlsZSgnZm9udFRhYmxlLnhtbCcsIGRvY3hEb2N1bWVudC5nZW5lcmF0ZUZvbnRUYWJsZVhNTCgpLCB7IGNyZWF0ZUZvbGRlcnM6IGZhbHNlIH0pXHJcbiAgICAuZmlsZSgnc3R5bGVzLnhtbCcsIGRvY3hEb2N1bWVudC5nZW5lcmF0ZVN0eWxlc1hNTCgpLCB7IGNyZWF0ZUZvbGRlcnM6IGZhbHNlIH0pXHJcbiAgICAuZmlsZSgnbnVtYmVyaW5nLnhtbCcsIGRvY3hEb2N1bWVudC5nZW5lcmF0ZU51bWJlcmluZ1hNTCgpLCB7IGNyZWF0ZUZvbGRlcnM6IGZhbHNlIH0pXHJcbiAgICAuZmlsZSgnc2V0dGluZ3MueG1sJywgZG9jeERvY3VtZW50LmdlbmVyYXRlU2V0dGluZ3NYTUwoKSwgeyBjcmVhdGVGb2xkZXJzOiBmYWxzZSB9KVxyXG4gICAgLmZpbGUoJ3dlYlNldHRpbmdzLnhtbCcsIGRvY3hEb2N1bWVudC5nZW5lcmF0ZVdlYlNldHRpbmdzWE1MKCksIHsgY3JlYXRlRm9sZGVyczogZmFsc2UgfSk7XHJcblxyXG4gIGNvbnN0IHJlbGF0aW9uc2hpcFhNTHMgPSBkb2N4RG9jdW1lbnQuZ2VuZXJhdGVSZWxzWE1MKCk7XHJcbiAgaWYgKHJlbGF0aW9uc2hpcFhNTHMgJiYgQXJyYXkuaXNBcnJheShyZWxhdGlvbnNoaXBYTUxzKSkge1xyXG4gICAgcmVsYXRpb25zaGlwWE1Mcy5mb3JFYWNoKCh7IGZpbGVOYW1lLCB4bWxTdHJpbmcgfSkgPT4ge1xyXG4gICAgICBjb25zb2xlLmxvZyh4bWxTdHJpbmcpXHJcbiAgICAgIHppcC5mb2xkZXIod29yZEZvbGRlcikuZm9sZGVyKHJlbHNGb2xkZXJOYW1lKS5maWxlKGAke2ZpbGVOYW1lfS54bWwucmVsc2AsIHhtbFN0cmluZywge1xyXG4gICAgICAgIGNyZWF0ZUZvbGRlcnM6IGZhbHNlLFxyXG4gICAgICB9KTtcclxuICAgIH0pO1xyXG4gIH1cclxuXHJcbiAgaWYgKHJlbGF0aW9uc2hpcFhNTHMgJiYgQXJyYXkuaXNBcnJheShyZWxhdGlvbnNoaXBYTUxzKSkge1xyXG4gICAgcmVsYXRpb25zaGlwWE1Mcy5mb3JFYWNoKCh7IGZpbGVOYW1lLCB4bWxTdHJpbmcgfSkgPT4ge1xyXG4gICAgICB6aXAuZm9sZGVyKHdvcmRGb2xkZXIpLmZvbGRlcihyZWxzRm9sZGVyTmFtZSkuZmlsZShgaGVhZGVyMS54bWwucmVsc2AsIHhtbFN0cmluZywge1xyXG4gICAgICAgIGNyZWF0ZUZvbGRlcnM6IGZhbHNlLFxyXG4gICAgICB9KTtcclxuICAgIH0pO1xyXG4gIH1cclxuICBpZiAocmVsYXRpb25zaGlwWE1McyAmJiBBcnJheS5pc0FycmF5KHJlbGF0aW9uc2hpcFhNTHMpKSB7XHJcbiAgICByZWxhdGlvbnNoaXBYTUxzLmZvckVhY2goKHsgZmlsZU5hbWUsIHhtbFN0cmluZyB9KSA9PiB7XHJcbiAgICAgIHppcC5mb2xkZXIod29yZEZvbGRlcikuZm9sZGVyKHJlbHNGb2xkZXJOYW1lKS5maWxlKGBmb290ZXIxLnhtbC5yZWxzYCwgeG1sU3RyaW5nLCB7XHJcbiAgICAgICAgY3JlYXRlRm9sZGVyczogZmFsc2UsXHJcbiAgICAgIH0pO1xyXG4gICAgfSk7XHJcbiAgfVxyXG5cclxuXHJcbiAgemlwLmZpbGUoJ1tDb250ZW50X1R5cGVzXS54bWwnLCBkb2N4RG9jdW1lbnQuZ2VuZXJhdGVDb250ZW50VHlwZXNYTUwoKSwgeyBjcmVhdGVGb2xkZXJzOiBmYWxzZSB9KTtcclxuXHJcbiAgcmV0dXJuIHppcDtcclxufVxyXG5cclxuZXhwb3J0IHsgYWRkRmlsZXNUb0NvbnRhaW5lciB9O1xyXG4iXX0=
@@ -1,50 +1,50 @@
1
- /* eslint-disable no-useless-escape */
2
- import JSZip from 'jszip';
3
- import { addFilesToContainer } from './html-to-docx';
4
- const minifyHTMLString = (htmlString) => {
5
- try {
6
- if (typeof htmlString === 'string' || htmlString instanceof String) {
7
- const minifiedHTMLString = htmlString
8
- .replace(/\n/g, ' ')
9
- .replace(/\r/g, ' ')
10
- .replace(/\r\n/g, ' ')
11
- .replace(/[\t]+\</g, '<')
12
- .replace(/\>[\t ]+\</g, '><')
13
- .replace(/\>[\t ]+$/g, '>');
14
- return minifiedHTMLString;
15
- }
16
- throw new Error('invalid html string');
17
- }
18
- catch (error) {
19
- return null;
20
- }
21
- };
22
- async function generateContainer(htmlString, headerHTMLString, documentOptions = {}, footerHTMLString) {
23
- const zip = new JSZip();
24
- let contentHTML = htmlString;
25
- let headerHTML = headerHTMLString;
26
- let footerHTML = footerHTMLString;
27
- if (htmlString) {
28
- contentHTML = minifyHTMLString(contentHTML);
29
- }
30
- if (headerHTMLString) {
31
- headerHTML = minifyHTMLString(headerHTML);
32
- }
33
- if (footerHTMLString) {
34
- footerHTML = minifyHTMLString(footerHTML);
35
- }
36
- await addFilesToContainer(zip, contentHTML, documentOptions, headerHTML, footerHTML);
37
- const buffer = await zip.generateAsync({ type: 'arraybuffer' });
38
- if (Object.prototype.hasOwnProperty.call(global, 'Buffer')) {
39
- return Buffer.from(new Uint8Array(buffer));
40
- }
41
- if (Object.prototype.hasOwnProperty.call(global, 'Blob')) {
42
- // eslint-disable-next-line no-undef
43
- return new Blob([buffer], {
44
- type: 'application/vnd.openxmlformats-officedocument.wordprocessingml.document',
45
- });
46
- }
47
- throw new Error('Add blob support using a polyfill eg https://github.com/bjornstar/blob-polyfill');
48
- }
49
- export { generateContainer };
1
+ /* eslint-disable no-useless-escape */
2
+ import JSZip from 'jszip';
3
+ import { addFilesToContainer } from './html-to-docx';
4
+ const minifyHTMLString = (htmlString) => {
5
+ try {
6
+ if (typeof htmlString === 'string' || htmlString instanceof String) {
7
+ const minifiedHTMLString = htmlString
8
+ .replace(/\n/g, ' ')
9
+ .replace(/\r/g, ' ')
10
+ .replace(/\r\n/g, ' ')
11
+ .replace(/[\t]+\</g, '<')
12
+ .replace(/\>[\t ]+\</g, '><')
13
+ .replace(/\>[\t ]+$/g, '>');
14
+ return minifiedHTMLString;
15
+ }
16
+ throw new Error('invalid html string');
17
+ }
18
+ catch (error) {
19
+ return null;
20
+ }
21
+ };
22
+ async function generateContainer(htmlString, headerHTMLString, documentOptions = {}, footerHTMLString) {
23
+ const zip = new JSZip();
24
+ let contentHTML = htmlString;
25
+ let headerHTML = headerHTMLString;
26
+ let footerHTML = footerHTMLString;
27
+ if (htmlString) {
28
+ contentHTML = minifyHTMLString(contentHTML);
29
+ }
30
+ if (headerHTMLString) {
31
+ headerHTML = minifyHTMLString(headerHTML);
32
+ }
33
+ if (footerHTMLString) {
34
+ footerHTML = minifyHTMLString(footerHTML);
35
+ }
36
+ await addFilesToContainer(zip, contentHTML, documentOptions, headerHTML, footerHTML);
37
+ const buffer = await zip.generateAsync({ type: 'arraybuffer' });
38
+ if (Object.prototype.hasOwnProperty.call(global, 'Buffer')) {
39
+ return Buffer.from(new Uint8Array(buffer));
40
+ }
41
+ if (Object.prototype.hasOwnProperty.call(global, 'Blob')) {
42
+ // eslint-disable-next-line no-undef
43
+ return new Blob([buffer], {
44
+ type: 'application/vnd.openxmlformats-officedocument.wordprocessingml.document',
45
+ });
46
+ }
47
+ throw new Error('Add blob support using a polyfill eg https://github.com/bjornstar/blob-polyfill');
48
+ }
49
+ export { generateContainer };
50
50
  //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9iYnNmLXV0aWxpdGllcy9zcmMvbGliL3NoYXJlZC9jb25maWcvd29yZC9pbmRleC5qcyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxzQ0FBc0M7QUFDdEMsT0FBTyxLQUFLLE1BQU0sT0FBTyxDQUFDO0FBQzFCLE9BQU8sRUFBQyxtQkFBbUIsRUFBQyxNQUFNLGdCQUFnQixDQUFDO0FBRW5ELE1BQU0sZ0JBQWdCLEdBQUcsQ0FBQyxVQUFVLEVBQUUsRUFBRTtJQUN0QyxJQUFJO1FBQ0YsSUFBSSxPQUFPLFVBQVUsS0FBSyxRQUFRLElBQUksVUFBVSxZQUFZLE1BQU0sRUFBRTtZQUNsRSxNQUFNLGtCQUFrQixHQUFHLFVBQVU7aUJBQ2xDLE9BQU8sQ0FBQyxLQUFLLEVBQUUsR0FBRyxDQUFDO2lCQUNuQixPQUFPLENBQUMsS0FBSyxFQUFFLEdBQUcsQ0FBQztpQkFDbkIsT0FBTyxDQUFDLE9BQU8sRUFBRSxHQUFHLENBQUM7aUJBQ3JCLE9BQU8sQ0FBQyxVQUFVLEVBQUUsR0FBRyxDQUFDO2lCQUN4QixPQUFPLENBQUMsYUFBYSxFQUFFLElBQUksQ0FBQztpQkFDNUIsT0FBTyxDQUFDLFlBQVksRUFBRSxHQUFHLENBQUMsQ0FBQztZQUU5QixPQUFPLGtCQUFrQixDQUFDO1NBQzNCO1FBRUQsTUFBTSxJQUFJLEtBQUssQ0FBQyxxQkFBcUIsQ0FBQyxDQUFDO0tBQ3hDO0lBQUMsT0FBTyxLQUFLLEVBQUU7UUFDZCxPQUFPLElBQUksQ0FBQztLQUNiO0FBQ0gsQ0FBQyxDQUFDO0FBRUYsS0FBSyxVQUFVLGlCQUFpQixDQUM5QixVQUFVLEVBQ1YsZ0JBQWdCLEVBQ2hCLGVBQWUsR0FBRyxFQUFFLEVBQ3BCLGdCQUFnQjtJQUVoQixNQUFNLEdBQUcsR0FBRyxJQUFJLEtBQUssRUFBRSxDQUFDO0lBRXhCLElBQUksV0FBVyxHQUFHLFVBQVUsQ0FBQztJQUM3QixJQUFJLFVBQVUsR0FBRyxnQkFBZ0IsQ0FBQztJQUNsQyxJQUFJLFVBQVUsR0FBRyxnQkFBZ0IsQ0FBQztJQUNsQyxJQUFJLFVBQVUsRUFBRTtRQUNkLFdBQVcsR0FBRyxnQkFBZ0IsQ0FBQyxXQUFXLENBQUMsQ0FBQztLQUM3QztJQUNELElBQUksZ0JBQWdCLEVBQUU7UUFDcEIsVUFBVSxHQUFHLGdCQUFnQixDQUFDLFVBQVUsQ0FBQyxDQUFDO0tBQzNDO0lBQ0QsSUFBSSxnQkFBZ0IsRUFBRTtRQUNwQixVQUFVLEdBQUcsZ0JBQWdCLENBQUMsVUFBVSxDQUFDLENBQUM7S0FDM0M7SUFFRCxNQUFNLG1CQUFtQixDQUFDLEdBQUcsRUFBRSxXQUFXLEVBQUUsZUFBZSxFQUFFLFVBQVUsRUFBRSxVQUFVLENBQUMsQ0FBQztJQUVyRixNQUFNLE1BQU0sR0FBRyxNQUFNLEdBQUcsQ0FBQyxhQUFhLENBQUMsRUFBRSxJQUFJLEVBQUUsYUFBYSxFQUFFLENBQUMsQ0FBQztJQUNoRSxJQUFJLE1BQU0sQ0FBQyxTQUFTLENBQUMsY0FBYyxDQUFDLElBQUksQ0FBQyxNQUFNLEVBQUUsUUFBUSxDQUFDLEVBQUU7UUFDMUQsT0FBTyxNQUFNLENBQUMsSUFBSSxDQUFDLElBQUksVUFBVSxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUM7S0FDNUM7SUFDRCxJQUFJLE1BQU0sQ0FBQyxTQUFTLENBQUMsY0FBYyxDQUFDLElBQUksQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLEVBQUU7UUFDeEQsb0NBQW9DO1FBQ3BDLE9BQU8sSUFBSSxJQUFJLENBQUMsQ0FBQyxNQUFNLENBQUMsRUFBRTtZQUN4QixJQUFJLEVBQUUseUVBQXlFO1NBQ2hGLENBQUMsQ0FBQztLQUNKO0lBQ0QsTUFBTSxJQUFJLEtBQUssQ0FDYixpRkFBaUYsQ0FDbEYsQ0FBQztBQUNKLENBQUM7QUFFRCxPQUFPLEVBQUMsaUJBQWlCLEVBQUMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8qIGVzbGludC1kaXNhYmxlIG5vLXVzZWxlc3MtZXNjYXBlICovXHJcbmltcG9ydCBKU1ppcCBmcm9tICdqc3ppcCc7XHJcbmltcG9ydCB7YWRkRmlsZXNUb0NvbnRhaW5lcn0gZnJvbSAnLi9odG1sLXRvLWRvY3gnO1xyXG5cclxuY29uc3QgbWluaWZ5SFRNTFN0cmluZyA9IChodG1sU3RyaW5nKSA9PiB7XHJcbiAgdHJ5IHtcclxuICAgIGlmICh0eXBlb2YgaHRtbFN0cmluZyA9PT0gJ3N0cmluZycgfHwgaHRtbFN0cmluZyBpbnN0YW5jZW9mIFN0cmluZykge1xyXG4gICAgICBjb25zdCBtaW5pZmllZEhUTUxTdHJpbmcgPSBodG1sU3RyaW5nXHJcbiAgICAgICAgLnJlcGxhY2UoL1xcbi9nLCAnICcpXHJcbiAgICAgICAgLnJlcGxhY2UoL1xcci9nLCAnICcpXHJcbiAgICAgICAgLnJlcGxhY2UoL1xcclxcbi9nLCAnICcpXHJcbiAgICAgICAgLnJlcGxhY2UoL1tcXHRdK1xcPC9nLCAnPCcpXHJcbiAgICAgICAgLnJlcGxhY2UoL1xcPltcXHQgXStcXDwvZywgJz48JylcclxuICAgICAgICAucmVwbGFjZSgvXFw+W1xcdCBdKyQvZywgJz4nKTtcclxuXHJcbiAgICAgIHJldHVybiBtaW5pZmllZEhUTUxTdHJpbmc7XHJcbiAgICB9XHJcblxyXG4gICAgdGhyb3cgbmV3IEVycm9yKCdpbnZhbGlkIGh0bWwgc3RyaW5nJyk7XHJcbiAgfSBjYXRjaCAoZXJyb3IpIHtcclxuICAgIHJldHVybiBudWxsO1xyXG4gIH1cclxufTtcclxuXHJcbmFzeW5jIGZ1bmN0aW9uIGdlbmVyYXRlQ29udGFpbmVyKFxyXG4gIGh0bWxTdHJpbmcsXHJcbiAgaGVhZGVySFRNTFN0cmluZyxcclxuICBkb2N1bWVudE9wdGlvbnMgPSB7fSxcclxuICBmb290ZXJIVE1MU3RyaW5nXHJcbikge1xyXG4gIGNvbnN0IHppcCA9IG5ldyBKU1ppcCgpO1xyXG5cclxuICBsZXQgY29udGVudEhUTUwgPSBodG1sU3RyaW5nO1xyXG4gIGxldCBoZWFkZXJIVE1MID0gaGVhZGVySFRNTFN0cmluZztcclxuICBsZXQgZm9vdGVySFRNTCA9IGZvb3RlckhUTUxTdHJpbmc7XHJcbiAgaWYgKGh0bWxTdHJpbmcpIHtcclxuICAgIGNvbnRlbnRIVE1MID0gbWluaWZ5SFRNTFN0cmluZyhjb250ZW50SFRNTCk7XHJcbiAgfVxyXG4gIGlmIChoZWFkZXJIVE1MU3RyaW5nKSB7XHJcbiAgICBoZWFkZXJIVE1MID0gbWluaWZ5SFRNTFN0cmluZyhoZWFkZXJIVE1MKTtcclxuICB9XHJcbiAgaWYgKGZvb3RlckhUTUxTdHJpbmcpIHtcclxuICAgIGZvb3RlckhUTUwgPSBtaW5pZnlIVE1MU3RyaW5nKGZvb3RlckhUTUwpO1xyXG4gIH1cclxuXHJcbiAgYXdhaXQgYWRkRmlsZXNUb0NvbnRhaW5lcih6aXAsIGNvbnRlbnRIVE1MLCBkb2N1bWVudE9wdGlvbnMsIGhlYWRlckhUTUwsIGZvb3RlckhUTUwpO1xyXG5cclxuICBjb25zdCBidWZmZXIgPSBhd2FpdCB6aXAuZ2VuZXJhdGVBc3luYyh7IHR5cGU6ICdhcnJheWJ1ZmZlcicgfSk7XHJcbiAgaWYgKE9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbChnbG9iYWwsICdCdWZmZXInKSkge1xyXG4gICAgcmV0dXJuIEJ1ZmZlci5mcm9tKG5ldyBVaW50OEFycmF5KGJ1ZmZlcikpO1xyXG4gIH1cclxuICBpZiAoT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKGdsb2JhbCwgJ0Jsb2InKSkge1xyXG4gICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIG5vLXVuZGVmXHJcbiAgICByZXR1cm4gbmV3IEJsb2IoW2J1ZmZlcl0sIHtcclxuICAgICAgdHlwZTogJ2FwcGxpY2F0aW9uL3ZuZC5vcGVueG1sZm9ybWF0cy1vZmZpY2Vkb2N1bWVudC53b3JkcHJvY2Vzc2luZ21sLmRvY3VtZW50JyxcclxuICAgIH0pO1xyXG4gIH1cclxuICB0aHJvdyBuZXcgRXJyb3IoXHJcbiAgICAnQWRkIGJsb2Igc3VwcG9ydCB1c2luZyBhIHBvbHlmaWxsIGVnIGh0dHBzOi8vZ2l0aHViLmNvbS9iam9ybnN0YXIvYmxvYi1wb2x5ZmlsbCdcclxuICApO1xyXG59XHJcblxyXG5leHBvcnQge2dlbmVyYXRlQ29udGFpbmVyfTtcclxuIl19
@@ -1,37 +1,37 @@
1
- const namespaces = {
2
- a: 'http://schemas.openxmlformats.org/drawingml/2006/main',
3
- b: 'http://schemas.openxmlformats.org/officeDocument/2006/bibliography',
4
- cdr: 'http://schemas.openxmlformats.org/drawingml/2006/chartDrawing',
5
- dc: 'http://purl.org/dc/elements/1.1/',
6
- dcmitype: 'http://purl.org/dc/dcmitype/',
7
- dcterms: 'http://purl.org/dc/terms/',
8
- o: 'urn:schemas-microsoft-com:office:office',
9
- pic: 'http://schemas.openxmlformats.org/drawingml/2006/picture',
10
- r: 'http://schemas.openxmlformats.org/officeDocument/2006/relationships',
11
- v: 'urn:schemas-microsoft-com:vml',
12
- ve: 'http://schemas.openxmlformats.org/markup-compatibility/2006',
13
- vt: 'http://schemas.openxmlformats.org/officeDocument/2006/docPropsVTypes',
14
- w: 'http://schemas.openxmlformats.org/wordprocessingml/2006/main',
15
- w10: 'urn:schemas-microsoft-com:office:word',
16
- wp: 'http://schemas.openxmlformats.org/drawingml/2006/wordprocessingDrawing',
17
- wne: 'http://schemas.microsoft.com/office/word/2006/wordml',
18
- xsd: 'http://www.w3.org/2001/XMLSchema',
19
- xsi: 'http://www.w3.org/2001/XMLSchema-instance',
20
- numbering: 'http://schemas.openxmlformats.org/officeDocument/2006/relationships/numbering',
21
- hyperlinks: 'http://schemas.openxmlformats.org/officeDocument/2006/relationships/hyperlink',
22
- images: 'http://schemas.openxmlformats.org/officeDocument/2006/relationships/image',
23
- styles: 'http://schemas.openxmlformats.org/officeDocument/2006/relationships/styles',
24
- headers: 'http://schemas.openxmlformats.org/officeDocument/2006/relationships/header',
25
- footers: 'http://schemas.openxmlformats.org/officeDocument/2006/relationships/footer',
26
- themes: 'http://schemas.openxmlformats.org/officeDocument/2006/relationships/theme',
27
- coreProperties: 'http://schemas.openxmlformats.org/package/2006/metadata/core-properties',
28
- officeDocumentRelation: 'http://schemas.openxmlformats.org/officeDocument/2006/relationships/officeDocument',
29
- corePropertiesRelation: 'http://schemas.openxmlformats.org/package/2006/relationships/metadata/core-properties',
30
- settingsRelation: 'http://schemas.openxmlformats.org/officeDocument/2006/relationships/settings',
31
- webSettingsRelation: 'http://schemas.openxmlformats.org/officeDocument/2006/relationships/webSettings',
32
- sl: 'http://schemas.openxmlformats.org/schemaLibrary/2006/main',
33
- contentTypes: 'http://schemas.openxmlformats.org/package/2006/content-types',
34
- relationship: 'http://schemas.openxmlformats.org/package/2006/relationships',
35
- };
36
- export default namespaces;
1
+ const namespaces = {
2
+ a: 'http://schemas.openxmlformats.org/drawingml/2006/main',
3
+ b: 'http://schemas.openxmlformats.org/officeDocument/2006/bibliography',
4
+ cdr: 'http://schemas.openxmlformats.org/drawingml/2006/chartDrawing',
5
+ dc: 'http://purl.org/dc/elements/1.1/',
6
+ dcmitype: 'http://purl.org/dc/dcmitype/',
7
+ dcterms: 'http://purl.org/dc/terms/',
8
+ o: 'urn:schemas-microsoft-com:office:office',
9
+ pic: 'http://schemas.openxmlformats.org/drawingml/2006/picture',
10
+ r: 'http://schemas.openxmlformats.org/officeDocument/2006/relationships',
11
+ v: 'urn:schemas-microsoft-com:vml',
12
+ ve: 'http://schemas.openxmlformats.org/markup-compatibility/2006',
13
+ vt: 'http://schemas.openxmlformats.org/officeDocument/2006/docPropsVTypes',
14
+ w: 'http://schemas.openxmlformats.org/wordprocessingml/2006/main',
15
+ w10: 'urn:schemas-microsoft-com:office:word',
16
+ wp: 'http://schemas.openxmlformats.org/drawingml/2006/wordprocessingDrawing',
17
+ wne: 'http://schemas.microsoft.com/office/word/2006/wordml',
18
+ xsd: 'http://www.w3.org/2001/XMLSchema',
19
+ xsi: 'http://www.w3.org/2001/XMLSchema-instance',
20
+ numbering: 'http://schemas.openxmlformats.org/officeDocument/2006/relationships/numbering',
21
+ hyperlinks: 'http://schemas.openxmlformats.org/officeDocument/2006/relationships/hyperlink',
22
+ images: 'http://schemas.openxmlformats.org/officeDocument/2006/relationships/image',
23
+ styles: 'http://schemas.openxmlformats.org/officeDocument/2006/relationships/styles',
24
+ headers: 'http://schemas.openxmlformats.org/officeDocument/2006/relationships/header',
25
+ footers: 'http://schemas.openxmlformats.org/officeDocument/2006/relationships/footer',
26
+ themes: 'http://schemas.openxmlformats.org/officeDocument/2006/relationships/theme',
27
+ coreProperties: 'http://schemas.openxmlformats.org/package/2006/metadata/core-properties',
28
+ officeDocumentRelation: 'http://schemas.openxmlformats.org/officeDocument/2006/relationships/officeDocument',
29
+ corePropertiesRelation: 'http://schemas.openxmlformats.org/package/2006/relationships/metadata/core-properties',
30
+ settingsRelation: 'http://schemas.openxmlformats.org/officeDocument/2006/relationships/settings',
31
+ webSettingsRelation: 'http://schemas.openxmlformats.org/officeDocument/2006/relationships/webSettings',
32
+ sl: 'http://schemas.openxmlformats.org/schemaLibrary/2006/main',
33
+ contentTypes: 'http://schemas.openxmlformats.org/package/2006/content-types',
34
+ relationship: 'http://schemas.openxmlformats.org/package/2006/relationships',
35
+ };
36
+ export default namespaces;
37
37
  //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibmFtZXNwYWNlcy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2Jic2YtdXRpbGl0aWVzL3NyYy9saWIvc2hhcmVkL2NvbmZpZy93b3JkL25hbWVzcGFjZXMuanMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsTUFBTSxVQUFVLEdBQUc7SUFDakIsQ0FBQyxFQUFFLHVEQUF1RDtJQUMxRCxDQUFDLEVBQUUsb0VBQW9FO0lBQ3ZFLEdBQUcsRUFBRSwrREFBK0Q7SUFDcEUsRUFBRSxFQUFFLGtDQUFrQztJQUN0QyxRQUFRLEVBQUUsOEJBQThCO0lBQ3hDLE9BQU8sRUFBRSwyQkFBMkI7SUFDcEMsQ0FBQyxFQUFFLHlDQUF5QztJQUM1QyxHQUFHLEVBQUUsMERBQTBEO0lBQy9ELENBQUMsRUFBRSxxRUFBcUU7SUFDeEUsQ0FBQyxFQUFFLCtCQUErQjtJQUNsQyxFQUFFLEVBQUUsNkRBQTZEO0lBQ2pFLEVBQUUsRUFBRSxzRUFBc0U7SUFDMUUsQ0FBQyxFQUFFLDhEQUE4RDtJQUNqRSxHQUFHLEVBQUUsdUNBQXVDO0lBQzVDLEVBQUUsRUFBRSx3RUFBd0U7SUFDNUUsR0FBRyxFQUFFLHNEQUFzRDtJQUMzRCxHQUFHLEVBQUUsa0NBQWtDO0lBQ3ZDLEdBQUcsRUFBRSwyQ0FBMkM7SUFDaEQsU0FBUyxFQUFFLCtFQUErRTtJQUMxRixVQUFVLEVBQUUsK0VBQStFO0lBQzNGLE1BQU0sRUFBRSwyRUFBMkU7SUFDbkYsTUFBTSxFQUFFLDRFQUE0RTtJQUNwRixPQUFPLEVBQUUsNEVBQTRFO0lBQ3JGLE9BQU8sRUFBRSw0RUFBNEU7SUFDckYsTUFBTSxFQUFFLDJFQUEyRTtJQUNuRixjQUFjLEVBQUUseUVBQXlFO0lBQ3pGLHNCQUFzQixFQUFFLG9GQUFvRjtJQUM1RyxzQkFBc0IsRUFBRSx1RkFBdUY7SUFDL0csZ0JBQWdCLEVBQUUsOEVBQThFO0lBQ2hHLG1CQUFtQixFQUFFLGlGQUFpRjtJQUN0RyxFQUFFLEVBQUUsMkRBQTJEO0lBQy9ELFlBQVksRUFBRSw4REFBOEQ7SUFDNUUsWUFBWSxFQUFFLDhEQUE4RDtDQUM3RSxDQUFDO0FBRUYsZUFBZSxVQUFVLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJjb25zdCBuYW1lc3BhY2VzID0ge1xyXG4gIGE6ICdodHRwOi8vc2NoZW1hcy5vcGVueG1sZm9ybWF0cy5vcmcvZHJhd2luZ21sLzIwMDYvbWFpbicsXHJcbiAgYjogJ2h0dHA6Ly9zY2hlbWFzLm9wZW54bWxmb3JtYXRzLm9yZy9vZmZpY2VEb2N1bWVudC8yMDA2L2JpYmxpb2dyYXBoeScsXHJcbiAgY2RyOiAnaHR0cDovL3NjaGVtYXMub3BlbnhtbGZvcm1hdHMub3JnL2RyYXdpbmdtbC8yMDA2L2NoYXJ0RHJhd2luZycsXHJcbiAgZGM6ICdodHRwOi8vcHVybC5vcmcvZGMvZWxlbWVudHMvMS4xLycsXHJcbiAgZGNtaXR5cGU6ICdodHRwOi8vcHVybC5vcmcvZGMvZGNtaXR5cGUvJyxcclxuICBkY3Rlcm1zOiAnaHR0cDovL3B1cmwub3JnL2RjL3Rlcm1zLycsXHJcbiAgbzogJ3VybjpzY2hlbWFzLW1pY3Jvc29mdC1jb206b2ZmaWNlOm9mZmljZScsXHJcbiAgcGljOiAnaHR0cDovL3NjaGVtYXMub3BlbnhtbGZvcm1hdHMub3JnL2RyYXdpbmdtbC8yMDA2L3BpY3R1cmUnLFxyXG4gIHI6ICdodHRwOi8vc2NoZW1hcy5vcGVueG1sZm9ybWF0cy5vcmcvb2ZmaWNlRG9jdW1lbnQvMjAwNi9yZWxhdGlvbnNoaXBzJyxcclxuICB2OiAndXJuOnNjaGVtYXMtbWljcm9zb2Z0LWNvbTp2bWwnLFxyXG4gIHZlOiAnaHR0cDovL3NjaGVtYXMub3BlbnhtbGZvcm1hdHMub3JnL21hcmt1cC1jb21wYXRpYmlsaXR5LzIwMDYnLFxyXG4gIHZ0OiAnaHR0cDovL3NjaGVtYXMub3BlbnhtbGZvcm1hdHMub3JnL29mZmljZURvY3VtZW50LzIwMDYvZG9jUHJvcHNWVHlwZXMnLFxyXG4gIHc6ICdodHRwOi8vc2NoZW1hcy5vcGVueG1sZm9ybWF0cy5vcmcvd29yZHByb2Nlc3NpbmdtbC8yMDA2L21haW4nLFxyXG4gIHcxMDogJ3VybjpzY2hlbWFzLW1pY3Jvc29mdC1jb206b2ZmaWNlOndvcmQnLFxyXG4gIHdwOiAnaHR0cDovL3NjaGVtYXMub3BlbnhtbGZvcm1hdHMub3JnL2RyYXdpbmdtbC8yMDA2L3dvcmRwcm9jZXNzaW5nRHJhd2luZycsXHJcbiAgd25lOiAnaHR0cDovL3NjaGVtYXMubWljcm9zb2Z0LmNvbS9vZmZpY2Uvd29yZC8yMDA2L3dvcmRtbCcsXHJcbiAgeHNkOiAnaHR0cDovL3d3dy53My5vcmcvMjAwMS9YTUxTY2hlbWEnLFxyXG4gIHhzaTogJ2h0dHA6Ly93d3cudzMub3JnLzIwMDEvWE1MU2NoZW1hLWluc3RhbmNlJyxcclxuICBudW1iZXJpbmc6ICdodHRwOi8vc2NoZW1hcy5vcGVueG1sZm9ybWF0cy5vcmcvb2ZmaWNlRG9jdW1lbnQvMjAwNi9yZWxhdGlvbnNoaXBzL251bWJlcmluZycsXHJcbiAgaHlwZXJsaW5rczogJ2h0dHA6Ly9zY2hlbWFzLm9wZW54bWxmb3JtYXRzLm9yZy9vZmZpY2VEb2N1bWVudC8yMDA2L3JlbGF0aW9uc2hpcHMvaHlwZXJsaW5rJyxcclxuICBpbWFnZXM6ICdodHRwOi8vc2NoZW1hcy5vcGVueG1sZm9ybWF0cy5vcmcvb2ZmaWNlRG9jdW1lbnQvMjAwNi9yZWxhdGlvbnNoaXBzL2ltYWdlJyxcclxuICBzdHlsZXM6ICdodHRwOi8vc2NoZW1hcy5vcGVueG1sZm9ybWF0cy5vcmcvb2ZmaWNlRG9jdW1lbnQvMjAwNi9yZWxhdGlvbnNoaXBzL3N0eWxlcycsXHJcbiAgaGVhZGVyczogJ2h0dHA6Ly9zY2hlbWFzLm9wZW54bWxmb3JtYXRzLm9yZy9vZmZpY2VEb2N1bWVudC8yMDA2L3JlbGF0aW9uc2hpcHMvaGVhZGVyJyxcclxuICBmb290ZXJzOiAnaHR0cDovL3NjaGVtYXMub3BlbnhtbGZvcm1hdHMub3JnL29mZmljZURvY3VtZW50LzIwMDYvcmVsYXRpb25zaGlwcy9mb290ZXInLFxyXG4gIHRoZW1lczogJ2h0dHA6Ly9zY2hlbWFzLm9wZW54bWxmb3JtYXRzLm9yZy9vZmZpY2VEb2N1bWVudC8yMDA2L3JlbGF0aW9uc2hpcHMvdGhlbWUnLFxyXG4gIGNvcmVQcm9wZXJ0aWVzOiAnaHR0cDovL3NjaGVtYXMub3BlbnhtbGZvcm1hdHMub3JnL3BhY2thZ2UvMjAwNi9tZXRhZGF0YS9jb3JlLXByb3BlcnRpZXMnLFxyXG4gIG9mZmljZURvY3VtZW50UmVsYXRpb246ICdodHRwOi8vc2NoZW1hcy5vcGVueG1sZm9ybWF0cy5vcmcvb2ZmaWNlRG9jdW1lbnQvMjAwNi9yZWxhdGlvbnNoaXBzL29mZmljZURvY3VtZW50JyxcclxuICBjb3JlUHJvcGVydGllc1JlbGF0aW9uOiAnaHR0cDovL3NjaGVtYXMub3BlbnhtbGZvcm1hdHMub3JnL3BhY2thZ2UvMjAwNi9yZWxhdGlvbnNoaXBzL21ldGFkYXRhL2NvcmUtcHJvcGVydGllcycsXHJcbiAgc2V0dGluZ3NSZWxhdGlvbjogJ2h0dHA6Ly9zY2hlbWFzLm9wZW54bWxmb3JtYXRzLm9yZy9vZmZpY2VEb2N1bWVudC8yMDA2L3JlbGF0aW9uc2hpcHMvc2V0dGluZ3MnLFxyXG4gIHdlYlNldHRpbmdzUmVsYXRpb246ICdodHRwOi8vc2NoZW1hcy5vcGVueG1sZm9ybWF0cy5vcmcvb2ZmaWNlRG9jdW1lbnQvMjAwNi9yZWxhdGlvbnNoaXBzL3dlYlNldHRpbmdzJyxcclxuICBzbDogJ2h0dHA6Ly9zY2hlbWFzLm9wZW54bWxmb3JtYXRzLm9yZy9zY2hlbWFMaWJyYXJ5LzIwMDYvbWFpbicsXHJcbiAgY29udGVudFR5cGVzOiAnaHR0cDovL3NjaGVtYXMub3BlbnhtbGZvcm1hdHMub3JnL3BhY2thZ2UvMjAwNi9jb250ZW50LXR5cGVzJyxcclxuICByZWxhdGlvbnNoaXA6ICdodHRwOi8vc2NoZW1hcy5vcGVueG1sZm9ybWF0cy5vcmcvcGFja2FnZS8yMDA2L3JlbGF0aW9uc2hpcHMnLFxyXG59O1xyXG5cclxuZXhwb3J0IGRlZmF1bHQgbmFtZXNwYWNlcztcclxuIl19