@bnsights/bbsf-utilities 1.0.40 → 1.0.42
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 +4 -0
- package/bnsights-bbsf-utilities-1.0.42.tgz +0 -0
- package/esm2020/lib/bbsf-utilities.module.mjs +59 -0
- package/esm2020/lib/shared/authentication/auth.service.mjs +211 -0
- package/esm2020/lib/shared/authentication/index.mjs +2 -0
- package/{esm2015/lib/shared/config/environment.js → esm2020/lib/shared/config/environment.mjs} +1 -1
- package/esm2020/lib/shared/config/word/docx-document.mjs +348 -0
- package/esm2020/lib/shared/config/word/helpers/render-document-file.mjs +154 -0
- package/esm2020/lib/shared/config/word/helpers/xml-builder.mjs +1836 -0
- package/esm2020/lib/shared/config/word/html-to-docx.mjs +187 -0
- package/esm2020/lib/shared/config/word/index.mjs +50 -0
- package/esm2020/lib/shared/config/word/namespaces.mjs +37 -0
- package/{esm2015/lib/shared/config/word/schemas/core.js → esm2020/lib/shared/config/word/schemas/core.mjs} +1 -3
- package/esm2020/lib/shared/config/word/schemas/document.template.mjs +107 -0
- package/{esm2015/lib/shared/config/word/schemas/numbering.js → esm2020/lib/shared/config/word/schemas/numbering.mjs} +1 -3
- package/esm2020/lib/shared/config/word/schemas/styles.mjs +147 -0
- package/esm2020/lib/shared/config/word/schemas/theme.mjs +198 -0
- package/{esm2015/lib/shared/config/word/utils/url.js → esm2020/lib/shared/config/word/utils/url.mjs} +1 -3
- package/esm2020/lib/shared/enums/authentication-modes-enums.mjs +8 -0
- package/esm2020/lib/shared/index.mjs +4 -0
- package/{esm2015/lib/shared/models/UserModel.js → esm2020/lib/shared/models/UserModel.mjs} +1 -1
- package/esm2020/lib/shared/models/area-model.mjs +3 -0
- package/esm2020/lib/shared/models/error-model.mjs +3 -0
- package/esm2020/lib/shared/models/index.mjs +5 -0
- package/esm2020/lib/shared/models/request-options-model.mjs +11 -0
- package/esm2020/lib/shared/models/word-document-model.mjs +8 -0
- package/esm2020/lib/shared/services/appearance-configuration.service.mjs +35 -0
- package/esm2020/lib/shared/services/configuration.service.mjs +24 -0
- package/esm2020/lib/shared/services/control-validation.service.mjs +173 -0
- package/esm2020/lib/shared/services/environment.service.mjs +75 -0
- package/esm2020/lib/shared/services/index.mjs +12 -0
- package/esm2020/lib/shared/services/master-layout.service.mjs +72 -0
- package/esm2020/lib/shared/services/request-handler.service.mjs +199 -0
- package/esm2020/lib/shared/services/styles-bundle.service.mjs +55 -0
- package/esm2020/lib/shared/services/translate.service.mjs +14 -0
- package/esm2020/lib/shared/services/translation-resolver.service.mjs +7 -0
- package/esm2020/lib/shared/services/utility.service.mjs +87 -0
- package/esm2020/lib/shared/services/word-document.service.mjs +38 -0
- package/esm2020/public-api.mjs +30 -0
- package/fesm2015/{bnsights-bbsf-utilities.js → bnsights-bbsf-utilities.mjs} +741 -787
- package/fesm2015/bnsights-bbsf-utilities.mjs.map +1 -0
- package/fesm2020/bnsights-bbsf-utilities.mjs +4589 -0
- package/fesm2020/bnsights-bbsf-utilities.mjs.map +1 -0
- package/{bnsights-bbsf-utilities.d.ts → index.d.ts} +1 -0
- package/lib/bbsf-utilities.module.d.ts +8 -4
- package/lib/shared/authentication/auth.service.d.ts +11 -8
- package/lib/shared/authentication/index.d.ts +1 -0
- package/lib/shared/config/word/docx-document.d.ts +10 -10
- package/lib/shared/config/word/helpers/render-document-file.d.ts +0 -2
- package/lib/shared/config/word/helpers/xml-builder.d.ts +12 -10
- package/lib/shared/config/word/index.d.ts +1 -1
- package/lib/shared/config/word/word-work/templates/documentTemplate.d.ts +2 -2
- package/lib/shared/enums/authentication-modes-enums.d.ts +6 -0
- package/lib/shared/index.d.ts +3 -0
- package/lib/shared/models/area-model.d.ts +4 -0
- package/lib/shared/models/index.d.ts +4 -0
- package/lib/shared/services/{AppearanceConfiguration.service.d.ts → appearance-configuration.service.d.ts} +4 -1
- package/lib/shared/services/configuration.service.d.ts +3 -0
- package/lib/shared/services/{controlvalidation.service.d.ts → control-validation.service.d.ts} +8 -5
- package/lib/shared/services/environment.service.d.ts +12 -1
- package/lib/shared/services/index.d.ts +11 -0
- package/lib/shared/services/{masterlayout.service.d.ts → master-layout.service.d.ts} +6 -6
- package/lib/shared/services/{requesthandler.service.d.ts → request-handler.service.d.ts} +8 -7
- package/lib/shared/services/{stylesbundle.service.d.ts → styles-bundle.service.d.ts} +4 -1
- package/lib/shared/services/translate.service.d.ts +3 -0
- package/lib/shared/services/translation-resolver.service.d.ts +2 -0
- package/lib/shared/services/utility.service.d.ts +7 -3
- package/lib/shared/services/word-document.service.d.ts +5 -2
- package/package.json +41 -21
- package/public-api.d.ts +10 -9
- package/bnsights-bbsf-utilities-1.0.40.tgz +0 -0
- package/bnsights-bbsf-utilities.metadata.json +0 -1
- package/bundles/bnsights-bbsf-utilities.umd.js +0 -4777
- package/bundles/bnsights-bbsf-utilities.umd.js.map +0 -1
- package/esm2015/lib/bbsf-utilities.module.js +0 -54
- package/esm2015/lib/shared/authentication/auth.service.js +0 -199
- package/esm2015/lib/shared/config/word/docx-document.js +0 -351
- package/esm2015/lib/shared/config/word/helpers/render-document-file.js +0 -278
- package/esm2015/lib/shared/config/word/helpers/xml-builder.js +0 -1765
- package/esm2015/lib/shared/config/word/html-to-docx.js +0 -195
- package/esm2015/lib/shared/config/word/index.js +0 -55
- package/esm2015/lib/shared/config/word/namespaces.js +0 -37
- package/esm2015/lib/shared/config/word/schemas/document.template.js +0 -109
- package/esm2015/lib/shared/config/word/schemas/styles.js +0 -149
- package/esm2015/lib/shared/config/word/schemas/theme.js +0 -200
- package/esm2015/lib/shared/models/AreaModel.js +0 -3
- package/esm2015/lib/shared/models/ErrorModel.js +0 -3
- package/esm2015/lib/shared/models/RequestOptionsModel.js +0 -11
- package/esm2015/lib/shared/models/WordDocumentModel.js +0 -8
- package/esm2015/lib/shared/services/AppearanceConfiguration.service.js +0 -37
- package/esm2015/lib/shared/services/configuration.service.js +0 -26
- package/esm2015/lib/shared/services/controlvalidation.service.js +0 -175
- package/esm2015/lib/shared/services/environment.service.js +0 -52
- package/esm2015/lib/shared/services/masterlayout.service.js +0 -89
- package/esm2015/lib/shared/services/requesthandler.service.js +0 -206
- package/esm2015/lib/shared/services/stylesbundle.service.js +0 -56
- package/esm2015/lib/shared/services/translate.service.js +0 -13
- package/esm2015/lib/shared/services/translationresolver.service.js +0 -20
- package/esm2015/lib/shared/services/utility.service.js +0 -92
- package/esm2015/lib/shared/services/word-document.service.js +0 -39
- package/esm2015/public-api.js +0 -20
- package/fesm2015/bnsights-bbsf-utilities.js.map +0 -1
- package/lib/shared/models/AreaModel.d.ts +0 -4
- package/lib/shared/services/translationresolver.service.d.ts +0 -8
- /package/{esm2015/bnsights-bbsf-utilities.js → esm2020/bnsights-bbsf-utilities.mjs} +0 -0
- /package/{esm2015/lib/shared/config/word/constants.js → esm2020/lib/shared/config/word/constants.mjs} +0 -0
- /package/{esm2015/lib/shared/config/word/helpers/index.js → esm2020/lib/shared/config/word/helpers/index.mjs} +0 -0
- /package/{esm2015/lib/shared/config/word/schemas/content-types.js → esm2020/lib/shared/config/word/schemas/content-types.mjs} +0 -0
- /package/{esm2015/lib/shared/config/word/schemas/document-rels.js → esm2020/lib/shared/config/word/schemas/document-rels.mjs} +0 -0
- /package/{esm2015/lib/shared/config/word/schemas/font-table.js → esm2020/lib/shared/config/word/schemas/font-table.mjs} +0 -0
- /package/{esm2015/lib/shared/config/word/schemas/generic-rels.js → esm2020/lib/shared/config/word/schemas/generic-rels.mjs} +0 -0
- /package/{esm2015/lib/shared/config/word/schemas/index.js → esm2020/lib/shared/config/word/schemas/index.mjs} +0 -0
- /package/{esm2015/lib/shared/config/word/schemas/rels.js → esm2020/lib/shared/config/word/schemas/rels.mjs} +0 -0
- /package/{esm2015/lib/shared/config/word/schemas/settings.js → esm2020/lib/shared/config/word/schemas/settings.mjs} +0 -0
- /package/{esm2015/lib/shared/config/word/schemas/web-settings.js → esm2020/lib/shared/config/word/schemas/web-settings.mjs} +0 -0
- /package/{esm2015/lib/shared/config/word/utils/color-conversion.js → esm2020/lib/shared/config/word/utils/color-conversion.mjs} +0 -0
- /package/{esm2015/lib/shared/config/word/utils/list.js → esm2020/lib/shared/config/word/utils/list.mjs} +0 -0
- /package/{esm2015/lib/shared/config/word/utils/unit-conversion.js → esm2020/lib/shared/config/word/utils/unit-conversion.mjs} +0 -0
- /package/{esm2015/lib/shared/config/word/utils/vnode.js → esm2020/lib/shared/config/word/utils/vnode.mjs} +0 -0
- /package/{esm2015/lib/shared/config/word/word-work/templates/documentTemplate.js → esm2020/lib/shared/config/word/word-work/templates/documentTemplate.mjs} +0 -0
- /package/{esm2015/lib/shared/config/word/word-work/templates/index.js → esm2020/lib/shared/config/word/word-work/templates/index.mjs} +0 -0
- /package/{esm2015/lib/shared/config/word/word-work/templates/mhtDocumentTemplate.js → esm2020/lib/shared/config/word/word-work/templates/mhtDocumentTemplate.mjs} +0 -0
- /package/{esm2015/lib/shared/config/word/word-work/templates/mhtPartTemplate.js → esm2020/lib/shared/config/word/word-work/templates/mhtPartTemplate.mjs} +0 -0
- /package/{esm2015/lib/shared/config/word/word-work/utils.js → esm2020/lib/shared/config/word/word-work/utils.mjs} +0 -0
- /package/lib/shared/models/{ErrorModel.d.ts → error-model.d.ts} +0 -0
- /package/lib/shared/models/{RequestOptionsModel.d.ts → request-options-model.d.ts} +0 -0
- /package/lib/shared/models/{WordDocumentModel.d.ts → word-document-model.d.ts} +0 -0
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"bnsights-bbsf-utilities.umd.js","sources":["../../../node_modules/tslib/tslib.es6.js","../../../projects/bbsf-utilities/src/lib/shared/services/translate.service.ts","../../../projects/bbsf-utilities/src/lib/shared/config/environment.ts","../../../projects/bbsf-utilities/src/lib/shared/services/environment.service.ts","../../../projects/bbsf-utilities/src/lib/shared/services/utility.service.ts","../../../projects/bbsf-utilities/src/lib/shared/models/UserModel.ts","../../../projects/bbsf-utilities/src/lib/shared/authentication/auth.service.ts","../../../projects/bbsf-utilities/src/lib/shared/models/RequestOptionsModel.ts","../../../projects/bbsf-utilities/src/lib/shared/services/requesthandler.service.ts","../../../projects/bbsf-utilities/src/lib/shared/services/stylesbundle.service.ts","../../../projects/bbsf-utilities/src/lib/shared/services/controlvalidation.service.ts","../../../projects/bbsf-utilities/src/lib/shared/services/masterlayout.service.ts","../../../projects/bbsf-utilities/src/lib/shared/services/configuration.service.ts","../../../projects/bbsf-utilities/src/lib/bbsf-utilities.module.ts","../../../projects/bbsf-utilities/src/lib/shared/services/translationresolver.service.ts","../../../projects/bbsf-utilities/src/lib/shared/services/AppearanceConfiguration.service.ts","../../../projects/bbsf-utilities/src/lib/shared/config/word/schemas/content-types.js","../../../projects/bbsf-utilities/src/lib/shared/config/word/namespaces.js","../../../projects/bbsf-utilities/src/lib/shared/config/word/constants.js","../../../projects/bbsf-utilities/src/lib/shared/config/word/schemas/core.js","../../../projects/bbsf-utilities/src/lib/shared/config/word/schemas/document-rels.js","../../../projects/bbsf-utilities/src/lib/shared/config/word/schemas/rels.js","../../../projects/bbsf-utilities/src/lib/shared/config/word/schemas/numbering.js","../../../projects/bbsf-utilities/src/lib/shared/config/word/schemas/styles.js","../../../projects/bbsf-utilities/src/lib/shared/config/word/schemas/font-table.js","../../../projects/bbsf-utilities/src/lib/shared/config/word/schemas/theme.js","../../../projects/bbsf-utilities/src/lib/shared/config/word/schemas/settings.js","../../../projects/bbsf-utilities/src/lib/shared/config/word/schemas/web-settings.js","../../../projects/bbsf-utilities/src/lib/shared/config/word/schemas/generic-rels.js","../../../projects/bbsf-utilities/src/lib/shared/config/word/schemas/document.template.js","../../../projects/bbsf-utilities/src/lib/shared/config/word/utils/color-conversion.js","../../../projects/bbsf-utilities/src/lib/shared/config/word/utils/unit-conversion.js","../../../projects/bbsf-utilities/src/lib/shared/config/word/utils/vnode.js","../../../projects/bbsf-utilities/src/lib/shared/config/word/utils/url.js","../../../projects/bbsf-utilities/src/lib/shared/config/word/helpers/xml-builder.js","../../../projects/bbsf-utilities/src/lib/shared/config/word/helpers/render-document-file.js","../../../projects/bbsf-utilities/src/lib/shared/config/word/helpers/index.js","../../../projects/bbsf-utilities/src/lib/shared/config/word/utils/list.js","../../../projects/bbsf-utilities/src/lib/shared/config/word/docx-document.js","../../../projects/bbsf-utilities/src/lib/shared/config/word/word-work/templates/documentTemplate.ts","../../../projects/bbsf-utilities/src/lib/shared/config/word/word-work/templates/mhtDocumentTemplate.ts","../../../projects/bbsf-utilities/src/lib/shared/config/word/word-work/templates/mhtPartTemplate.ts","../../../projects/bbsf-utilities/src/lib/shared/config/word/word-work/utils.ts","../../../projects/bbsf-utilities/src/lib/shared/config/word/html-to-docx.js","../../../projects/bbsf-utilities/src/lib/shared/config/word/index.js","../../../projects/bbsf-utilities/src/lib/shared/services/word-document.service.ts","../../../projects/bbsf-utilities/src/lib/shared/models/WordDocumentModel.ts","../../../projects/bbsf-utilities/src/public-api.ts","../../../projects/bbsf-utilities/src/bnsights-bbsf-utilities.ts"],"sourcesContent":["/*! *****************************************************************************\r\nCopyright (c) Microsoft Corporation.\r\n\r\nPermission to use, copy, modify, and/or distribute this software for any\r\npurpose with or without fee is hereby granted.\r\n\r\nTHE SOFTWARE IS PROVIDED \"AS IS\" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH\r\nREGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY\r\nAND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,\r\nINDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM\r\nLOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR\r\nOTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR\r\nPERFORMANCE OF THIS SOFTWARE.\r\n***************************************************************************** */\r\n/* global Reflect, Promise */\r\n\r\nvar extendStatics = function(d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n};\r\n\r\nexport function __extends(d, b) {\r\n if (typeof b !== \"function\" && b !== null)\r\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n}\r\n\r\nexport var __assign = function() {\r\n __assign = Object.assign || function __assign(t) {\r\n for (var s, i = 1, n = arguments.length; i < n; i++) {\r\n s = arguments[i];\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];\r\n }\r\n return t;\r\n }\r\n return __assign.apply(this, arguments);\r\n}\r\n\r\nexport function __rest(s, e) {\r\n var t = {};\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\r\n t[p] = s[p];\r\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\r\n for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\r\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))\r\n t[p[i]] = s[p[i]];\r\n }\r\n return t;\r\n}\r\n\r\nexport function __decorate(decorators, target, key, desc) {\r\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\r\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\r\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\r\n return c > 3 && r && Object.defineProperty(target, key, r), r;\r\n}\r\n\r\nexport function __param(paramIndex, decorator) {\r\n return function (target, key) { decorator(target, key, paramIndex); }\r\n}\r\n\r\nexport function __metadata(metadataKey, metadataValue) {\r\n if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(metadataKey, metadataValue);\r\n}\r\n\r\nexport function __awaiter(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\n\r\nexport function __generator(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 (_) 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\nexport var __createBinding = Object.create ? (function(o, m, k, k2) {\r\n if (k2 === undefined) k2 = k;\r\n Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });\r\n}) : (function(o, m, k, k2) {\r\n if (k2 === undefined) k2 = k;\r\n o[k2] = m[k];\r\n});\r\n\r\nexport function __exportStar(m, o) {\r\n for (var p in m) if (p !== \"default\" && !Object.prototype.hasOwnProperty.call(o, p)) __createBinding(o, m, p);\r\n}\r\n\r\nexport function __values(o) {\r\n var s = typeof Symbol === \"function\" && Symbol.iterator, m = s && o[s], i = 0;\r\n if (m) return m.call(o);\r\n if (o && typeof o.length === \"number\") return {\r\n next: function () {\r\n if (o && i >= o.length) o = void 0;\r\n return { value: o && o[i++], done: !o };\r\n }\r\n };\r\n throw new TypeError(s ? \"Object is not iterable.\" : \"Symbol.iterator is not defined.\");\r\n}\r\n\r\nexport function __read(o, n) {\r\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\r\n if (!m) return o;\r\n var i = m.call(o), r, ar = [], e;\r\n try {\r\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\r\n }\r\n catch (error) { e = { error: error }; }\r\n finally {\r\n try {\r\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\r\n }\r\n finally { if (e) throw e.error; }\r\n }\r\n return ar;\r\n}\r\n\r\n/** @deprecated */\r\nexport function __spread() {\r\n for (var ar = [], i = 0; i < arguments.length; i++)\r\n ar = ar.concat(__read(arguments[i]));\r\n return ar;\r\n}\r\n\r\n/** @deprecated */\r\nexport function __spreadArrays() {\r\n for (var s = 0, i = 0, il = arguments.length; i < il; i++) s += arguments[i].length;\r\n for (var r = Array(s), k = 0, i = 0; i < il; i++)\r\n for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++)\r\n r[k] = a[j];\r\n return r;\r\n}\r\n\r\nexport function __spreadArray(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\nexport function __await(v) {\r\n return this instanceof __await ? (this.v = v, this) : new __await(v);\r\n}\r\n\r\nexport function __asyncGenerator(thisArg, _arguments, generator) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var g = generator.apply(thisArg, _arguments || []), i, q = [];\r\n return i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i;\r\n function verb(n) { if (g[n]) i[n] = function (v) { return new Promise(function (a, b) { q.push([n, v, a, b]) > 1 || resume(n, v); }); }; }\r\n function resume(n, v) { try { step(g[n](v)); } catch (e) { settle(q[0][3], e); } }\r\n function step(r) { r.value instanceof __await ? Promise.resolve(r.value.v).then(fulfill, reject) : settle(q[0][2], r); }\r\n function fulfill(value) { resume(\"next\", value); }\r\n function reject(value) { resume(\"throw\", value); }\r\n function settle(f, v) { if (f(v), q.shift(), q.length) resume(q[0][0], q[0][1]); }\r\n}\r\n\r\nexport function __asyncDelegator(o) {\r\n var i, p;\r\n return i = {}, verb(\"next\"), verb(\"throw\", function (e) { throw e; }), verb(\"return\"), i[Symbol.iterator] = function () { return this; }, i;\r\n function verb(n, f) { i[n] = o[n] ? function (v) { return (p = !p) ? { value: __await(o[n](v)), done: n === \"return\" } : f ? f(v) : v; } : f; }\r\n}\r\n\r\nexport function __asyncValues(o) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var m = o[Symbol.asyncIterator], i;\r\n return m ? m.call(o) : (o = typeof __values === \"function\" ? __values(o) : o[Symbol.iterator](), i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i);\r\n function verb(n) { i[n] = o[n] && function (v) { return new Promise(function (resolve, reject) { v = o[n](v), settle(resolve, reject, v.done, v.value); }); }; }\r\n function settle(resolve, reject, d, v) { Promise.resolve(v).then(function(v) { resolve({ value: v, done: d }); }, reject); }\r\n}\r\n\r\nexport function __makeTemplateObject(cooked, raw) {\r\n if (Object.defineProperty) { Object.defineProperty(cooked, \"raw\", { value: raw }); } else { cooked.raw = raw; }\r\n return cooked;\r\n};\r\n\r\nvar __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\n\r\nexport function __importStar(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\n\r\nexport function __importDefault(mod) {\r\n return (mod && mod.__esModule) ? mod : { default: mod };\r\n}\r\n\r\nexport function __classPrivateFieldGet(receiver, state, kind, f) {\r\n if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a getter\");\r\n if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot read private member from an object whose class did not declare it\");\r\n return kind === \"m\" ? f : kind === \"a\" ? f.call(receiver) : f ? f.value : state.get(receiver);\r\n}\r\n\r\nexport function __classPrivateFieldSet(receiver, state, value, kind, f) {\r\n if (kind === \"m\") throw new TypeError(\"Private method is not writable\");\r\n if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a setter\");\r\n if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot write private member to an object whose class did not declare it\");\r\n return (kind === \"a\" ? f.call(receiver, value) : f ? f.value = value : state.set(receiver, value)), value;\r\n}\r\n","import { Injectable } from \"@angular/core\";\r\nimport { TranslateService } from \"@ngx-translate/core\";\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class BBSFTranslateService extends TranslateService {\r\n}","// This file can be replaced during build by using the `fileReplacements` array.\r\n// `ng build ---prod` replaces `environment.ts` with `environment.prod.ts`.\r\n// The list of file replacements can be found in `angular.json`.\r\n\r\nexport const environment = Object.assign({\r\n},\r\n(window as any).Environment);\r\n\r\n\r\n/*\r\n * In development mode, to ignore zone related error stack frames such as\r\n * `zone.run`, `zoneDelegate.invokeTask` for easier debugging, you can\r\n * import the following file, but please comment it out in production mode\r\n * because it will have performance impact when throw error\r\n */\r\n// import 'zone.js/dist/zone-error'; // Included with Angular CLI.\r\n","import { Injectable } from '@angular/core';\r\nimport { environment } from '../config/environment';\r\nimport { AreaModel } from '../models/AreaModel';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class EnvironmentService {\r\n\r\n\r\n static AreaList: AreaModel[] = []\r\n\r\n getEnvironmentObject() {\r\n return environment;\r\n }\r\n\r\n getBaseUrl() {\r\n let Url = environment[\"BBSF_BaseURL\"]\r\n return Url;\r\n }\r\n getApiUrl() {\r\n let Url = environment[\"BBSF_ApiUrl\"]\r\n return Url;\r\n }\r\n\r\n getProductionMode() {\r\n let Mode = environment[\"BBSF_IsProduction\"] as boolean\r\n\r\n return Mode;\r\n }\r\n\r\n getDefaultLanguage() {\r\n let Mode = environment[\"BBSF_DefaultLanguage\"] as string\r\n return Mode;\r\n }\r\n getIdentityServerUrl() {\r\n let Url = environment[\"BBSF_IdentityServerUrl\"]\r\n return Url;\r\n }\r\n getIsIdentityServerExternal() {\r\n let Mode = environment[\"BBSF_IsExternalIdentityServer\"] as string\r\n return Mode;\r\n }\r\n getIsIdentityServerClientId() {\r\n let Mode = environment[\"BBSF_IdentityServer_Client_Id\"] as string\r\n return Mode;\r\n }\r\n\r\n getIsIdentityServerClientSecret() {\r\n let Mode = environment[\"BBSF_IdentityServer_Client_Secret\"] as string\r\n return Mode;\r\n }\r\n\r\n getIsEnableWindowsAuthentication() {\r\n let Mode = environment[\"BBSF_Enable_WindowsAuthentication\"] as boolean\r\n return Mode;\r\n }\r\n}\r\n","import { Injectable, Optional, Host, SkipSelf, Component } from '@angular/core';\r\nimport { ToastrService } from 'ngx-toastr';\r\nimport { BlockUI, NgBlockUI } from 'ng-block-ui';\r\nimport { BBSFTranslateService } from './translate.service';\r\nimport { AppInjector } from '../../bbsf-utilities.module';\r\nimport { EnvironmentService } from './environment.service';\r\n\r\n\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class UtilityService {\r\n\r\n isCreatedBefore = false;\r\n @BlockUI() blockUI: NgBlockUI;\r\n\r\n constructor(private translator: BBSFTranslateService, private environmentService: EnvironmentService,) {\r\n\r\n }\r\n\r\n\r\n getResourceValue(Key: string): string {\r\n let ResourceValue = this.translator.instant(Key)\r\n return ResourceValue;\r\n\r\n }\r\n\r\n getCurrentLanguage() {\r\n let currentLanguage = this.environmentService.getDefaultLanguage();\r\n let lang = localStorage.getItem('language');\r\n if (lang)\r\n currentLanguage = lang;\r\n else\r\n localStorage.setItem('language', currentLanguage);\r\n return currentLanguage;\r\n }\r\n isCurrentLanguageEnglish() {\r\n return this.getCurrentLanguage() == \"en\"\r\n }\r\n isCurrentLanguageArabic() {\r\n return this.getCurrentLanguage() == \"ar\"\r\n }\r\n\r\n notifySuccessMessage(Message?: string, title?: string, time?: number, showHeader: boolean = true) {\r\n\r\n let MessageTemplate = this.getResourceValue(\"SuccessMessage\");\r\n let titleTemplate: string;\r\n if (Message) {\r\n MessageTemplate = Message;\r\n }\r\n if (title) {\r\n titleTemplate = title;\r\n }\r\n let toaster = AppInjector.get(ToastrService);\r\n showHeader ? toaster.success(MessageTemplate, titleTemplate) : toaster.success(MessageTemplate);\r\n }\r\n\r\n notifyErrorMessage(Message?: string, title?: string, time?: number, showHeader: boolean = true) {\r\n\r\n let MessageTemplate = this.getResourceValue(\"ErrorMessage\");\r\n let titleTemplate = this.getResourceValue(\"Error\");\r\n if (Message) {\r\n MessageTemplate = Message;\r\n }\r\n if (title) {\r\n titleTemplate = title;\r\n }\r\n const toaster = AppInjector.get(ToastrService);\r\n showHeader ? toaster.error(MessageTemplate, titleTemplate) : toaster.error(MessageTemplate);\r\n }\r\n\r\n notifyWarningMessage(Message?: string, title?: string, time?: number, showHeader: boolean = true) {\r\n\r\n let MessageTemplate = this.getResourceValue(\"WarningMessage\");\r\n let titleTemplate = this.getResourceValue(\"Warning\");\r\n if (Message) {\r\n MessageTemplate = Message;\r\n }\r\n if (title) {\r\n titleTemplate = title;\r\n }\r\n const toaster = AppInjector.get(ToastrService);\r\n showHeader ? toaster.warning(MessageTemplate, titleTemplate) : toaster.warning(MessageTemplate);\r\n }\r\n\r\n startBlockUI() {\r\n this.blockUI.start();\r\n }\r\n stopBlockUI() {\r\n this.blockUI.stop();\r\n }\r\n}\r\n","export class User {\r\n\r\n token_type: string;\r\n access_token: string;\r\n profile: any;\r\n expires_at:any\r\n}\r\n","import { Injectable, Injector } from '@angular/core';\r\nimport { HttpClient, HttpErrorResponse, HttpHeaders } from '@angular/common/http';\r\nimport { BehaviorSubject, Observable, Subject, throwError } from 'rxjs';\r\nimport { EnvironmentService } from '../services/environment.service';\r\nimport { BBSFTranslateService } from '../services/translate.service';\r\nimport { Router } from '@angular/router';\r\nimport { MasterLayoutService } from '../services/masterlayout.service';\r\nimport { JwtHelperService } from '@auth0/angular-jwt';\r\nimport { User } from '../models/UserModel';\r\nimport { CookieService } from 'ngx-cookie-service';\r\nimport { map, takeUntil, tap } from 'rxjs/operators';\r\nimport { UtilityService } from '../services/utility.service';\r\nconst TOKEN_KEY = 'access_token';\r\n\r\n@Injectable({\r\n providedIn: 'root',\r\n})\r\nexport class AuthService {\r\n public redirectUrl: string = '';\r\n static user: User | null = null;\r\n user: User | null;\r\n static UserClaims: any = null;\r\n private jwtHelper: JwtHelperService = new JwtHelperService();\r\n private isAuthenticatedSubject = new BehaviorSubject<boolean>(this.hasToken());\r\n isAuthenticate$ = this.isAuthenticatedSubject.asObservable();\r\n //refresh\r\n static timers = [];\r\n static seconds = 0;\r\n\r\n constructor(private injector: Injector, private http: HttpClient, private environmentService: EnvironmentService, private translateService: BBSFTranslateService, private router: Router, private cookieService: CookieService,private utilityService:UtilityService) {\r\n this.user = this.getUserManager()\r\n }\r\n\r\n private hasToken(): boolean {\r\n const token = this.cookieService.get(TOKEN_KEY);\r\n return token && !this.jwtHelper.isTokenExpired(token);\r\n }\r\n\r\n getUserManager() {\r\n const token = this.cookieService.get(TOKEN_KEY);\r\n if (token)\r\n this.handleAccessTokenWithoutLanguage(token)\r\n return AuthService.user;\r\n }\r\n\r\n\r\n getUser() {\r\n this.user = AuthService.user;\r\n }\r\n storUser(User: any) {\r\n AuthService.user = this.user = this.user;\r\n }\r\n\r\n getCurrentUser() {\r\n return AuthService.user\r\n }\r\n\r\n async isAuthenticated(): Promise<boolean> {\r\n return AuthService.user != null && !this.jwtHelper.isTokenExpired(AuthService.user.access_token);\r\n }\r\n isUserInRole(allowedPermission: number[]) {\r\n let selectedPermissionSetID: number = Number.parseInt(\r\n this.user.profile['selectedpermissionsetid']\r\n );\r\n return allowedPermission.includes(selectedPermissionSetID);\r\n }\r\n\r\n authorizationHeaderValue(): string {\r\n return AuthService.user\r\n ? `${AuthService.user.token_type} ${AuthService.user.access_token}`\r\n : '';\r\n }\r\n\r\n name(): string {\r\n return AuthService.user != null ? AuthService.user.profile.given_name : '';\r\n }\r\n setUrl(url) {\r\n localStorage.setItem('redirectUrl', url);\r\n }\r\n getUrl() {\r\n return localStorage.getItem('redirectUrl') ?? \"/\";\r\n }\r\n signout() {\r\n AuthService.timers.map(t => clearInterval(t));\r\n AuthService.timers = [];\r\n if (!this.isAuthenticated()) {\r\n this.cookieService.delete(TOKEN_KEY);\r\n this.router.navigate(['/Admin/account/login'])\r\n }\r\n this.logout().subscribe(res => {\r\n this.cookieService.delete(TOKEN_KEY);\r\n this.router.navigate(['/Admin/account/login'])\r\n });\r\n }\r\n\r\n logout() {\r\n const httpOptions = {\r\n headers: new HttpHeaders({\r\n 'Content-Type': 'application/json',\r\n }),\r\n };\r\n let ApiUrl = '/Account/';\r\n return this.http.get(this.environmentService.getApiUrl() + ApiUrl + 'Logout', httpOptions);\r\n }\r\n\r\n\r\n clearUserSessionClaims() {\r\n const httpOptions = {\r\n headers: new HttpHeaders({\r\n 'Content-Type': 'application/json',\r\n }),\r\n };\r\n let ApiUrl = '/api/Home/';\r\n return this.http.get(this.environmentService.getBaseUrl() + ApiUrl + 'ClearCurrentUserSession', httpOptions);\r\n }\r\n\r\n\r\n async handleAccessToken(response: any): Promise<void> {\r\n const token = response;\r\n AuthService.user = new User();\r\n AuthService.user.token_type = \"Bearer\"\r\n AuthService.user.access_token = token;\r\n AuthService.user.profile = this.jwtHelper.decodeToken(token);\r\n AuthService.user.expires_at = this.jwtHelper.getTokenExpirationDate(token);\r\n AuthService.timers.map(t => clearInterval(t));\r\n AuthService.timers = [];\r\n this.setTokenSeconds()\r\n AuthService.timers.push(this.checkRefreshToken());\r\n this.user = AuthService.user\r\n await this.updateLanguage()\r\n this.cookieService.set(TOKEN_KEY, token, null, null, null, true, 'Strict');\r\n this.isAuthenticatedSubject.next(true);\r\n }\r\n\r\n handleAccessTokenWithoutLanguage(response: any) {\r\n const token = response;\r\n AuthService.user = new User();\r\n AuthService.user.token_type = \"Bearer\"\r\n AuthService.user.access_token = token;\r\n AuthService.user.profile = this.jwtHelper.decodeToken(token);\r\n AuthService.user.expires_at = this.jwtHelper.getTokenExpirationDate(token);\r\n this.setTokenSeconds()\r\n this.user = AuthService.user\r\n this.cookieService.set(TOKEN_KEY, token, null, null, null, true, 'Strict');\r\n this.isAuthenticatedSubject.next(true);\r\n }\r\n async updateLanguage() {\r\n if (\r\n !localStorage.getItem('language') ||\r\n localStorage.getItem('language') == this.user.profile.locale\r\n )\r\n localStorage.setItem('language', this.user.profile.locale);\r\n\r\n if (this.translateService.currentLang != localStorage.getItem('language')) {\r\n this.translateService.resetLang(this.translateService.currentLang);\r\n await this.translateService\r\n .reloadLang(localStorage.getItem('language'))\r\n .subscribe((res) => {\r\n console.log(res);\r\n });\r\n }\r\n }\r\n\r\n checkRefreshToken() {\r\n let date = new Date() as any;\r\n return setInterval(() => {\r\n if (Math.floor(AuthService.seconds) < 120 && this.isAuthenticated())\r\n this.refresh()\r\n AuthService.seconds--;\r\n }, 1000);\r\n }\r\n setTokenSeconds() {\r\n let date = new Date() as any;\r\n AuthService.seconds = (AuthService.user.expires_at - date) / 1000\r\n }\r\n refresh() {\r\n const httpOptions = {\r\n headers: new HttpHeaders({\r\n 'Content-Type': 'application/json',\r\n 'Authorization': this.authorizationHeaderValue(),\r\n }),\r\n };\r\n let ApiUrl = '/api/Home/';\r\n this.http.get(this.environmentService.getApiUrl() + ApiUrl + 'RefreshAccessToken', httpOptions).subscribe((res:any) => {\r\n this.cookieService.delete(TOKEN_KEY);\r\n this.handleAccessTokenWithoutLanguage(res.val)\r\n })\r\n }\r\n}\r\n","import { FormGroup } from \"@angular/forms\";\r\n\r\nexport class RequestOptionsModel {\r\n disableSuccessNotification: boolean=false;\r\n disableBlockUI: boolean = false;\r\n disableErrorHandler: boolean = false;\r\n customSuccessMessage: string;\r\n customErrorMessage: string;\r\n responseType:any=\"\"\r\n formGroup: FormGroup = null\r\n castResponsetoClass: boolean = true;\r\n\r\n}\r\n","import { Injectable, OnDestroy, Pipe } from '@angular/core';\r\nimport { HttpClient, HttpErrorResponse, HttpHeaders, HttpParams } from \"@angular/common/http\";\r\nimport { RequestOptionsModel } from '../models/RequestOptionsModel';\r\nimport { AuthService } from '../authentication/auth.service';\r\nimport { EnvironmentService } from './environment.service';\r\nimport { Observable, Subject, throwError } from 'rxjs';\r\nimport { UtilityService } from './utility.service';\r\nimport { map, takeUntil, tap } from 'rxjs/operators';\r\nimport { BBSFTranslateService } from './translate.service';\r\nimport { plainToClass } from 'class-transformer';\r\nimport { Router } from '@angular/router';\r\n\r\n\r\n@Injectable()\r\nexport class RequestHandlerService implements OnDestroy {\r\n private requestOptions: RequestOptionsModel = new RequestOptionsModel();\r\n private currentLanguage = \"\";\r\n public onDestroy$: Subject<void> = new Subject<void>();\r\n constructor\r\n (\r\n private http: HttpClient,\r\n private authService: AuthService,\r\n private environmentService: EnvironmentService,\r\n private utilityService: UtilityService,\r\n private bbsfTranslateService: BBSFTranslateService,\r\n private router: Router\r\n ) {\r\n //using localStorage to avoid call getCurrentLanguage() because it is not all to use async in constructor\r\n\r\n this.bbsfTranslateService.onLangChange.subscribe((event) => {\r\n if (this.currentLanguage != event.lang) {\r\n this.currentLanguage = event.lang;\r\n }\r\n })\r\n }\r\n\r\n public getLuckyNumber(): Observable<number> {\r\n\r\n return Observable.create((subject: Subject<number>) => {\r\n setInterval(() => {\r\n const number = Math.floor(Math.random() * 10);\r\n console.log(number)\r\n subject.next(number);\r\n }, 1000);\r\n }).pipe(\r\n takeUntil(this.onDestroy$));\r\n }\r\n\r\n\r\n get<T>(Url: string, params?: HttpParams, responseType?: new () => T, requestOptions?: RequestOptionsModel): Observable<T> {\r\n if (requestOptions)\r\n this.requestOptions = requestOptions;\r\n\r\n let headers = this.getHeaders();\r\n if (!this.requestOptions.disableBlockUI)\r\n this.utilityService.startBlockUI();\r\n let object: T;\r\n return this.http.get<T>(this.environmentService.getApiUrl() + Url, { headers: headers, params: params }).pipe(\r\n takeUntil(this.onDestroy$),\r\n tap((result) => {\r\n if (!this.requestOptions.disableBlockUI)\r\n this.utilityService.stopBlockUI();\r\n }, error => {\r\n if (!this.requestOptions.disableErrorHandler)\r\n this.handleError(error);\r\n }), map((data: T) => {\r\n if (this.requestOptions.castResponsetoClass)\r\n return plainToClass(responseType, data, { excludeExtraneousValues: true });\r\n else\r\n return data;\r\n })\r\n ) as Observable<T>;\r\n }\r\n\r\n post<T>(Url: string, model?: any, responseType?: new () => T, params?: HttpParams, requestOptions?: RequestOptionsModel): Observable<T> {\r\n\r\n if (requestOptions)\r\n this.requestOptions = requestOptions;\r\n\r\n let headers = this.getHeaders();\r\n if (!this.requestOptions.disableBlockUI)\r\n this.utilityService.startBlockUI();\r\n return this.http.post<T>(this.environmentService.getApiUrl() + Url, model, { headers: headers, params: params, responseType: this.requestOptions.responseType }).pipe(\r\n takeUntil(this.onDestroy$),\r\n tap((result) => {\r\n if (!this.requestOptions.disableBlockUI)\r\n this.utilityService.stopBlockUI();\r\n }, error => {\r\n if (!this.requestOptions.disableErrorHandler)\r\n this.handleError(error);\r\n }), map((data: T) => {\r\n if (this.requestOptions.castResponsetoClass)\r\n return plainToClass(responseType, data, { excludeExtraneousValues: true });\r\n else\r\n return data;\r\n })\r\n );\r\n }\r\n\r\n delete<T>(Url: string, deletedId: string, requestOptions?: RequestOptionsModel, responseType?: new () => T, params?: HttpParams): Observable<T> {\r\n if (requestOptions)\r\n this.requestOptions = requestOptions;\r\n\r\n let headers = this.getHeaders();\r\n if (!this.requestOptions.disableBlockUI)\r\n this.utilityService.startBlockUI();\r\n return this.http.delete<T>(this.environmentService.getApiUrl() + Url + `/${deletedId}`, { headers: headers, params: params }).pipe(\r\n takeUntil(this.onDestroy$),\r\n tap((result) => {\r\n if (!this.requestOptions.disableBlockUI)\r\n this.utilityService.stopBlockUI();\r\n }, error => {\r\n if (!this.requestOptions.disableErrorHandler)\r\n this.handleError(error);\r\n }), map((data: T) => {\r\n if (this.requestOptions.castResponsetoClass)\r\n return plainToClass(responseType, data, { excludeExtraneousValues: true });\r\n else\r\n return data;\r\n })\r\n );\r\n }\r\n\r\n put<T>(Url: string, model?: any, params?: HttpParams, responseType?: new () => T, requestOptions?: RequestOptionsModel): Observable<T> {\r\n if (requestOptions)\r\n this.requestOptions = requestOptions;\r\n\r\n let headers = this.getHeaders();\r\n if (!this.requestOptions.disableBlockUI)\r\n this.utilityService.startBlockUI();\r\n return this.http.put<T>(this.environmentService.getApiUrl() + Url, model, { headers: headers, params: params, responseType: this.requestOptions.responseType }).pipe(\r\n takeUntil(this.onDestroy$),\r\n tap((result) => {\r\n if (!this.requestOptions.disableBlockUI)\r\n this.utilityService.stopBlockUI();\r\n }, error => {\r\n if (!this.requestOptions.disableErrorHandler)\r\n this.handleError(error);\r\n }), map((data: T) => {\r\n if (this.requestOptions.castResponsetoClass)\r\n return plainToClass(responseType, data, { excludeExtraneousValues: true });\r\n else\r\n return data;\r\n })\r\n );\r\n }\r\n\r\n patch<T>(Url: string, model?: any, responseType?: new () => T, params?: HttpParams, requestOptions?: RequestOptionsModel): Observable<T> {\r\n\r\n if (requestOptions)\r\n this.requestOptions = requestOptions;\r\n\r\n let headers = new HttpHeaders({\r\n 'Content-Type': 'application/json',\r\n 'Authorization': this.authService.authorizationHeaderValue(),\r\n\r\n });\r\n this.currentLanguage = localStorage.getItem('language');\r\n headers = headers.set('Accept-Language', this.currentLanguage.toString());\r\n headers = headers.set('ignore-cookies', 'true');\r\n if (!this.requestOptions.disableBlockUI)\r\n this.utilityService.startBlockUI();\r\n\r\n return this.http.patch<T>(this.environmentService.getApiUrl() + Url, model, { headers: headers, params: params, responseType: this.requestOptions.responseType }).pipe(\r\n takeUntil(this.onDestroy$),\r\n tap((result) => {\r\n if (!this.requestOptions.disableBlockUI)\r\n this.utilityService.stopBlockUI();\r\n }, error => {\r\n if (!this.requestOptions.disableErrorHandler)\r\n this.handleError(error);\r\n }), map((data: T) => {\r\n if (this.requestOptions.castResponsetoClass)\r\n return plainToClass(responseType, data, { excludeExtraneousValues: true })\r\n else\r\n return data;\r\n })\r\n );\r\n }\r\n download<T>(Url: string, params?: HttpParams, requestOptions?: RequestOptionsModel): Observable<T> {\r\n if (requestOptions)\r\n this.requestOptions = requestOptions;\r\n\r\n let headers = this.getHeaders();\r\n if (!this.requestOptions.disableBlockUI)\r\n this.utilityService.startBlockUI();\r\n return this.http.get<T>(this.environmentService.getApiUrl() + Url, { headers: headers, params: params, responseType: this.requestOptions.responseType }).pipe(\r\n takeUntil(this.onDestroy$),\r\n tap((result) => {\r\n if (!this.requestOptions.disableBlockUI)\r\n this.utilityService.stopBlockUI();\r\n }, error => {\r\n if (!this.requestOptions.disableErrorHandler)\r\n this.handleError(error);\r\n })\r\n );\r\n }\r\n\r\n public destroyHandler(): void {\r\n this.onDestroy$.next();\r\n }\r\n\r\n ngOnDestroy(): void {\r\n console.log(\"clearInterval\")\r\n this.destroyHandler()\r\n }\r\n\r\n private handleError(err: HttpErrorResponse) {\r\n var isEnglish = this.utilityService.getCurrentLanguage() == \"en\";\r\n if (err.error instanceof ErrorEvent) {\r\n this.utilityService.notifyErrorMessage()\r\n }\r\n else {\r\n if (err.status == 400)\r\n throwError(err);//error 400 is thrown to be catch by the Form component to handle Fluent validation errors\r\n else if (err.status == 401)\r\n this.router.navigate([\"/Admin/account/login\"])\r\n else if (err.status == 403)\r\n this.utilityService.notifyErrorMessage(isEnglish ? \"Sorry, You're not authorized to access this action\" : \"عذرا ليس لديك الصلاحيه لهذا الطلب\")\r\n else if (err.status == 510)\r\n this.utilityService.notifyErrorMessage(isEnglish ? \"Can not delete this item as it is related to others\" : \"لا يمكن حذف هذا العنصر لأنه مرتبط بعناصر أخرى\")\r\n else if (err.status == 515)\r\n this.utilityService.notifyErrorMessage((err.error ? err.error.Message : err.message))\r\n else {\r\n console.log(`error message is: ${err.error ? err.error.Message : err.message}`)\r\n this.utilityService.notifyErrorMessage(this.utilityService.getResourceValue(\"ErrorMassage\"))\r\n }\r\n }\r\n this.utilityService.stopBlockUI();\r\n }\r\n\r\n private getHeaders() {\r\n return new HttpHeaders({\r\n 'Content-Type': 'application/json',\r\n 'Authorization': this.authService.authorizationHeaderValue(),\r\n 'Client-Local-Time-Zone': Intl.DateTimeFormat().resolvedOptions().timeZone,\r\n 'Accept-Language': localStorage.getItem('language'),\r\n 'ignore-cookies': 'true'\r\n });\r\n }\r\n}\r\n","import { DOCUMENT } from '@angular/common';\r\nimport { Inject, Injectable } from '@angular/core';\r\nimport { BlockUI, NgBlockUI } from 'ng-block-ui';\r\nimport { BBSFTranslateService } from './translate.service';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class StylesBundleService {\r\n\r\n constructor(@Inject(DOCUMENT) private document: Document, private translateService: BBSFTranslateService) { }\r\n\r\n loadThemes(lang: string, bundleEnglishName: string, bundleArabicName: string) {\r\n if (lang == \"ar\") {\r\n this.loadStyleBundle(bundleArabicName.toString())\r\n document.querySelector('html').setAttribute(\"b-lang\", \"ar\"); //use b-lang instead of lang to fix firefox number inputs in Arabic locale\r\n document.querySelector('html').setAttribute(\"dir\", \"rtl\");\r\n } else {\r\n this.loadStyleBundle(bundleEnglishName.toString())\r\n document.querySelector('html').setAttribute(\"b-lang\", \"en\");\r\n document.querySelector('html').setAttribute(\"dir\", \"ltr\");\r\n }\r\n\r\n }\r\n\r\n loadThemesColor(theme: string, bundleDarkName: string, bundleLightName: string) {\r\n if (theme == \"Light\")\r\n this.loadStyleBundle(bundleLightName.toString());\r\n else\r\n this.loadStyleBundle(bundleDarkName.toString())\r\n }\r\n\r\n loadStyleBundle(styleName: string) {\r\n const head = this.document.getElementsByTagName('head')[0];\r\n\r\n let themeLink = this.document.getElementById('client-theme') as HTMLLinkElement;\r\n\r\n if (themeLink && themeLink.href.includes(styleName)) {\r\n return;\r\n }\r\n else if (themeLink && !themeLink.href.includes(styleName)) {\r\n themeLink.remove();\r\n }\r\n const style = this.document.createElement('link');\r\n style.id = 'client-theme';\r\n style.rel = 'stylesheet';\r\n style.href = `${styleName}`;\r\n head.appendChild(style);\r\n }\r\n\r\n}\r\n\r\n","import { Injectable, Optional, Host, SkipSelf, Component } from '@angular/core';\r\nimport { IndividualConfig, ToastrService } from 'ngx-toastr';\r\nimport { BlockUI, NgBlockUI } from 'ng-block-ui';\r\nimport { AbstractControl, ControlContainer, ControlValueAccessor, NG_VALUE_ACCESSOR, FormControl, FormsModule, FormGroup } from '@angular/forms';\r\nimport { TranslateService } from '@ngx-translate/core';\r\nimport { HttpErrorResponse } from '@angular/common/http';\r\nimport { ErrorModel } from '../models/ErrorModel';\r\nimport { UtilityService } from './utility.service';\r\nimport { RequestOptionsModel } from '../models/RequestOptionsModel';\r\n\r\n\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class ControlValidationService {\r\n private requestOptions: RequestOptionsModel = new RequestOptionsModel();\r\n\r\n constructor(private utilityService: UtilityService) {\r\n }\r\n\r\n isCreatedBefor = false;\r\n\r\n @BlockUI() blockUI: NgBlockUI;\r\n\r\n showGlobalError(errorMessage?: string | string[], formId?: string, deleteOld?: boolean) {\r\n let globalErorrElement = document.getElementsByClassName('alert alert-InvalidValidation bg-light-danger text-danger')\r\n if (globalErorrElement.length > 0) {\r\n this.removeElementsByClass('alert alert-InvalidValidation bg-light-danger text-danger');\r\n }\r\n if (this.isCreatedBefor == true) {\r\n this.removeElementsByClass('alert alert-InvalidValidation bg-light-danger text-danger');\r\n }\r\n // tslint:disable-next-line: prefer-const\r\n if (!formId)\r\n formId = \"currentForm\"\r\n var object = document.getElementById(formId);\r\n const tagName = 'div';\r\n // tslint:disable-next-line: prefer-const\r\n var elementToAppend = document.createElement(tagName); // Your tag name here\r\n let message: string | string[] = \"\";\r\n\r\n if (!errorMessage || (typeof errorMessage == \"string\")) {\r\n if (localStorage.getItem('language') == \"ar\")\r\n message = errorMessage ? errorMessage : \"لديك بعص الأخطاء . من فضلك قم بالمراجعه \";\r\n else\r\n message = errorMessage ? errorMessage : \"You have some validation errors. Please check below\"\r\n elementToAppend.innerHTML = \"<ul class='list-unstyled m-0 py-3 d-flex align-items-center fs-6'><li><i class='fa fa-times-circle text-danger me-3 fs-2'></i>\" + message + \"</li></ul>\";\r\n elementToAppend.className += 'alert alert-InvalidValidation bg-light-danger text-danger';\r\n elementToAppend.id += 'errorId';\r\n // tslint:disable-next-line: prefer-for-of\r\n const elementToAppen = elementToAppend.cloneNode(true);\r\n // let targetElement = object.getElementsByClassName(\"b-control\")[0];\r\n object.insertBefore(elementToAppen, object.firstChild);\r\n }\r\n else {\r\n let ul = document.createElement(\"ul\");\r\n elementToAppend.appendChild(ul);\r\n\r\n for (const iterator of errorMessage) {\r\n let li = document.createElement(\"li\");\r\n li.innerHTML = iterator;\r\n ul.appendChild(li);\r\n }\r\n\r\n elementToAppend.className += 'alert alert-InvalidValidation bg-light-danger text-danger';\r\n elementToAppend.id += 'errorId';\r\n // tslint:disable-next-line: prefer-for-of\r\n const elementToAppen = elementToAppend.cloneNode(true);\r\n // let targetElement = object.getElementsByClassName(\"b-control\")[0];\r\n object.insertBefore(elementToAppen, object.firstChild);\r\n }\r\n\r\n this.isCreatedBefor = true;\r\n }\r\n\r\n RemoveGlobalError() {\r\n const removedList = document.getElementsByClassName('alert alert-InvalidValidation bg-light-danger text-danger');\r\n // tslint:disable-next-line: prefer-for-of\r\n for (let index = 0; index < removedList.length; index++) {\r\n const element = removedList[index];\r\n element.remove();\r\n }\r\n this.isCreatedBefor = false;\r\n }\r\n\r\n showInputErro(errors: any) {\r\n // show error on top of form \r\n this.showGlobalError();\r\n // remove old error from server\r\n this.removeElementsByClass('errortemplet');\r\n // Looping in error Object\r\n for (const key in errors) {\r\n if (errors.hasOwnProperty(key)) {\r\n for (const iterator of errors[key]) {\r\n const input = document.querySelectorAll('[ng-reflect-name=' + key + ']')[0];\r\n if ((input.attributes['ng-reflect-name'].value as string) === key) {\r\n this.removeElementsByClass('erroclass-' + key);\r\n const tagName = 'p'\r\n const elementToAppend = document.createElement(tagName); // Your tag name here\r\n elementToAppend.innerHTML = iterator;\r\n elementToAppend.style.color = 'red'\r\n elementToAppend.className += 'errortemplet erroclass-' + key;\r\n const elementToappen = elementToAppend.cloneNode(true);\r\n input.parentNode.insertBefore(elementToappen, input.lastChild);\r\n break;\r\n }\r\n }\r\n }\r\n }\r\n }\r\n\r\n removeElementsByClass(className) {\r\n const elements = document.getElementsByClassName(className);\r\n while (elements.length > 0) {\r\n elements[0].parentNode.removeChild(elements[0]);\r\n }\r\n }\r\n\r\n renderServerErrors(form: FormGroup, err: HttpErrorResponse, requestOptions: RequestOptionsModel, formId?: string) {\r\n if (err.error == null) {\r\n return;\r\n }\r\n let errorsArray: string[] = [];\r\n\r\n this.requestOptions = requestOptions;\r\n\r\n if (err.error.validation_errors) {\r\n err.error.validation_errors.forEach((element: ErrorModel) => {\r\n let fieldName = element.field;\r\n let controlName = element.controlName;\r\n let message = element.message;\r\n if (form == null) {\r\n this.requestOptions.customErrorMessage ? this.utilityService.notifyErrorMessage(this.requestOptions.customErrorMessage) : this.utilityService.notifyErrorMessage(`${message}`);\r\n }\r\n else if (controlName && !this.hasControlName(form, controlName)) {\r\n errorsArray.push(`${fieldName}: ${message}`);\r\n }\r\n else {\r\n this.setFieldError(form, controlName, fieldName, message);\r\n this.showGlobalError(null, formId);\r\n }\r\n });\r\n\r\n if (errorsArray.length > 0)\r\n this.showGlobalError(errorsArray, formId)\r\n }\r\n\r\n }\r\n\r\n private hasControlName(form: FormGroup, controlName: string): boolean {\r\n let control = form.get(controlName);\r\n return control != null;\r\n }\r\n\r\n private setFieldError(form: FormGroup, controlName: string, fieldName: string, message: string) {\r\n let control = null\r\n\r\n if (controlName)\r\n control = this.getControlFormNameByFieldName(form, controlName);\r\n else\r\n control = this.getControlFormNameByFieldName(form, fieldName.split('.')[0]);\r\n\r\n let errors = { \"errorMassage\": message };\r\n let fieldNameArray = fieldName.split('.');\r\n if (fieldNameArray.length >= 1) {\r\n switch (fieldNameArray[fieldNameArray.length - 1].toLocaleLowerCase()) {\r\n case \"english\":\r\n let englishControl = control.get(\"English\")\r\n englishControl.setErrors(errors);\r\n break;\r\n case \"arabic\":\r\n let arabicControl = control.get(\"Arabic\")\r\n arabicControl.setErrors(errors);\r\n break;\r\n default:\r\n control.setErrors(errors);\r\n }\r\n }\r\n else {\r\n this.requestOptions.customErrorMessage ? this.utilityService.notifyErrorMessage(this.requestOptions.customErrorMessage) : this.utilityService.notifyErrorMessage(`${message}`)\r\n }\r\n }\r\n\r\n private getControlFormNameByFieldName(form: FormGroup, fieldName: string) {\r\n const formControls = form.controls;\r\n let controlName = Object.keys(formControls).find(c => c.toLocaleLowerCase() === fieldName.toLocaleLowerCase());\r\n let control = form.get(controlName);\r\n return control;\r\n }\r\n\r\n\r\n\r\n}\r\n","import { HttpParams } from '@angular/common/http';\r\nimport { Injectable } from '@angular/core';\r\nimport { Router } from '@angular/router';\r\nimport { TranslateService } from '@ngx-translate/core';\r\nimport { AuthService } from '../authentication/auth.service';\r\nimport { EnvironmentService } from './environment.service';\r\nimport { RequestHandlerService } from './requesthandler.service';\r\nimport { StylesBundleService } from './stylesbundle.service';\r\n\r\n@Injectable({\r\n providedIn: 'root',\r\n})\r\nexport class MasterLayoutService {\r\n ApiUrl = '/api/Home/';\r\n constructor(private router: Router, private http: RequestHandlerService, private authService: AuthService, private stylesBundleService: StylesBundleService, private translate: TranslateService, private environmentService: EnvironmentService) { }\r\n\r\n switchLang(lang: string, bundleEnglishName: string, bundleArabicName: string) {\r\n this.changeLanguage(lang).subscribe((result) => {\r\n this.updateUserInfo().subscribe((Value) => {\r\n let UserInfoObject = Value as any;\r\n this.authService.handleAccessToken(UserInfoObject.token)\r\n this.stylesBundleService.loadThemes(\r\n lang,\r\n bundleEnglishName,\r\n bundleArabicName\r\n );\r\n localStorage.setItem('language', lang);\r\n this.translate.use(lang);\r\n });\r\n });\r\n }\r\n\r\n reloadComponent() {\r\n let currentUrl = this.router.url;\r\n this.router.routeReuseStrategy.shouldReuseRoute = () => false;\r\n this.router.onSameUrlNavigation = 'reload';\r\n this.router.navigate([currentUrl]);\r\n }\r\n\r\n private changeLanguage(key: string) {\r\n let params = new HttpParams();\r\n params = params.append('UserId', this.authService.user.profile.id);\r\n params = params.append('LanguageKey', key);\r\n return this.http.post(this.ApiUrl + 'UpdateLanguage', null, null, params);\r\n }\r\n\r\n getUserClaims() {\r\n return this.http.get(this.ApiUrl + 'GetUserClaims', null, null);\r\n }\r\n\r\n logError(error: string) {\r\n let params = new HttpParams();\r\n params = params.append('error', error);\r\n return this.http.post(this.ApiUrl + 'LogError', null, null, params);\r\n }\r\n\r\n private updateUserInfo() {\r\n return this.http.get(this.ApiUrl + 'UpdateUserInfo', null, null);\r\n\r\n }\r\n\r\n switchRole(permissionSetID: string) {\r\n this.updateRole(permissionSetID).subscribe((result) => {\r\n this.updateUserInfo().subscribe((Value) => {\r\n let UserInfoObject = Value as any;\r\n this.authService.handleAccessToken(UserInfoObject.token)\r\n });\r\n });\r\n }\r\n\r\n private updateRole(permissionSetID: string) {\r\n let params = new HttpParams();\r\n params = params.append('UserId', this.authService.user.profile.id);\r\n params = params.append('RoleID', permissionSetID);\r\n return this.http.post(this.ApiUrl + 'SwitchRole', null, null, params);\r\n }\r\n}\r\n","import { HttpClient } from \"@angular/common/http\";\r\nimport { Injectable } from \"@angular/core\";\r\nimport { TranslateService } from \"@ngx-translate/core\";\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class ConfigurationService {\r\n static JsonData:any[]=[]\r\n constructor(private httpClient: HttpClient){\r\n this.httpClient.get(\"./assets/config/configurations.json\").subscribe(data =>{\r\n ConfigurationService.JsonData = data as any[];\r\n })\r\n }\r\n getConfigurationValue(key:string) {\r\n return ConfigurationService.JsonData[key];\r\n }\r\n}","import { HttpClient } from '@angular/common/http';\r\nimport { Injector, NgModule } from '@angular/core';\r\nimport { RouterModule } from '@angular/router';\r\nimport { TranslateService } from '@ngx-translate/core';\r\nimport { BlockUIModule } from 'ng-block-ui';\r\nimport { ToastrModule } from 'ngx-toastr';\r\nimport { HttpModule } from '@angular/http';\r\nimport { UtilityService } from './shared/services/utility.service';\r\nimport { EnvironmentService } from './shared/services/environment.service';\r\nimport { AuthService } from './shared/authentication/auth.service';\r\nimport { RequestHandlerService } from './shared/services/requesthandler.service';\r\nimport { StylesBundleService } from './shared/services/stylesbundle.service';\r\nimport { BBSFTranslateService } from './shared/services/translate.service';\r\nimport { ControlValidationService } from './shared/services/controlvalidation.service';\r\nimport { MasterLayoutService } from './shared/services/masterlayout.service';\r\nimport { ConfigurationService } from './shared/services/configuration.service';\r\nimport { CommonModule } from '@angular/common';\r\nimport { CookieService } from 'ngx-cookie-service';\r\nexport let AppInjector: Injector;\r\n\r\n@NgModule({\r\n declarations: [\r\n ],\r\n imports: [\r\n CommonModule,\r\n BlockUIModule.forRoot(),\r\n HttpModule,\r\n RouterModule,\r\n ToastrModule.forRoot(),\r\n\r\n ],\r\n exports: [\r\n ],\r\n providers: [\r\n UtilityService,\r\n EnvironmentService,\r\n AuthService,\r\n RequestHandlerService,\r\n StylesBundleService,\r\n TranslateService,\r\n BBSFTranslateService,\r\n ControlValidationService,\r\n MasterLayoutService,\r\n ConfigurationService,\r\n CookieService\r\n\r\n ]\r\n})\r\nexport class BBSFUtilitiesModule {\r\n constructor(private injector: Injector) {\r\n AppInjector = this.injector;\r\n\r\n }\r\n}\r\n","import { Injectable } from \"@angular/core\";\r\nimport { Resolve } from \"@angular/router\";\r\nimport { Observable } from \"rxjs\";\r\nimport { BBSFTranslateService } from \"./translate.service\";\r\n\r\n\r\n@Injectable({ providedIn: 'root' })\r\nexport class TranslationResolverService implements Resolve<any> {\r\n constructor(private translateService: BBSFTranslateService) {}\r\n\r\n resolve(): Observable<any> {\r\n return this.translateService.getTranslation(\r\n this.translateService.currentLang\r\n );\r\n }\r\n}\r\n","import { Injectable } from \"@angular/core\";\r\nimport { TranslateService } from \"@ngx-translate/core\";\r\nimport { ConfigurationService } from \"./configuration.service\";\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class AppearanceConfigurationService {\r\n constructor(private configService: ConfigurationService) {\r\n }\r\n\r\n getLayoutTheme() {\r\n return this.configService.getConfigurationValue('AnonymousLayout_Theme');\r\n }\r\n getFooterText() {\r\n return this.configService.getConfigurationValue('AnonymousLayout_FooterText');\r\n }\r\n getPageTitle() {\r\n return this.configService.getConfigurationValue('AnonymousLayout_PageTitle');\r\n }\r\n getFavIcon() {\r\n return this.configService.getConfigurationValue('AnonymousLayout_FavIcon');\r\n }\r\n getCustomStyles() {\r\n return this.configService.getConfigurationValue('AnonymousLayout_CustomStyles');\r\n }\r\n getLogo() {\r\n return this.configService.getConfigurationValue('AnonymousLayout_Logo');\r\n }\r\n}","const contentTypesXML = `\r\n <?xml version=\"1.0\" encoding=\"UTF-8\" standalone=\"yes\"?>\r\n\r\n <Types xmlns=\"http://schemas.openxmlformats.org/package/2006/content-types\">\r\n <Default Extension=\"rels\" ContentType=\"application/vnd.openxmlformats-package.relationships+xml\" />\r\n <Default Extension=\"jpeg\" ContentType=\"image/jpeg\"/>\r\n <Default Extension=\"png\" ContentType=\"image/png\"/>\r\n <Default Extension=\"xml\" ContentType=\"application/xml\"/>\r\n <Override PartName=\"/_rels/.rels\" ContentType=\"application/vnd.openxmlformats-package.relationships+xml\"/>\r\n <Override PartName=\"/word/_rels/document.xml.rels\" ContentType=\"application/vnd.openxmlformats-package.relationships+xml\"/>\r\n <Override PartName=\"/word/_rels/footer1.xml.rels\" ContentType=\"application/vnd.openxmlformats-package.relationships+xml\"/>\r\n <Override PartName=\"/word/document.xml\" ContentType=\"application/vnd.openxmlformats-officedocument.wordprocessingml.document.main+xml\"/>\r\n <Override PartName=\"/word/styles.xml\" ContentType=\"application/vnd.openxmlformats-officedocument.wordprocessingml.styles+xml\"/>\r\n <Override PartName=\"/word/numbering.xml\" ContentType=\"application/vnd.openxmlformats-officedocument.wordprocessingml.numbering+xml\"/>\r\n <Override PartName=\"/word/theme/theme1.xml\" ContentType=\"application/vnd.openxmlformats-officedocument.theme+xml\"/>\r\n <Override PartName=\"/word/fontTable.xml\" ContentType=\"application/vnd.openxmlformats-officedocument.wordprocessingml.fontTable+xml\"/>\r\n <Override PartName=\"/docProps/core.xml\" ContentType=\"application/vnd.openxmlformats-package.core-properties+xml\"/>\r\n <Override PartName=\"/word/settings.xml\" ContentType=\"application/vnd.openxmlformats-officedocument.wordprocessingml.settings+xml\"/>\r\n <Override PartName=\"/word/webSettings.xml\" ContentType=\"application/vnd.openxmlformats-officedocument.wordprocessingml.webSettings+xml\"/>\r\n <Override PartName=\"/word/afchunk.mht\" ContentType=\"message/rfc822\"/>\r\n <Override PartName=\"/word/afchunkheader.mht\" ContentType=\"message/rfc822\"/>\r\n <Override PartName=\"/word/afchunkfooter.mht\" ContentType=\"message/rfc822\"/>\r\n </Types>\r\n`;\r\n\r\nexport { contentTypesXML};\r\n","const namespaces = {\r\n a: 'http://schemas.openxmlformats.org/drawingml/2006/main',\r\n b: 'http://schemas.openxmlformats.org/officeDocument/2006/bibliography',\r\n cdr: 'http://schemas.openxmlformats.org/drawingml/2006/chartDrawing',\r\n dc: 'http://purl.org/dc/elements/1.1/',\r\n dcmitype: 'http://purl.org/dc/dcmitype/',\r\n dcterms: 'http://purl.org/dc/terms/',\r\n o: 'urn:schemas-microsoft-com:office:office',\r\n pic: 'http://schemas.openxmlformats.org/drawingml/2006/picture',\r\n r: 'http://schemas.openxmlformats.org/officeDocument/2006/relationships',\r\n v: 'urn:schemas-microsoft-com:vml',\r\n ve: 'http://schemas.openxmlformats.org/markup-compatibility/2006',\r\n vt: 'http://schemas.openxmlformats.org/officeDocument/2006/docPropsVTypes',\r\n w: 'http://schemas.openxmlformats.org/wordprocessingml/2006/main',\r\n w10: 'urn:schemas-microsoft-com:office:word',\r\n wp: 'http://schemas.openxmlformats.org/drawingml/2006/wordprocessingDrawing',\r\n wne: 'http://schemas.microsoft.com/office/word/2006/wordml',\r\n xsd: 'http://www.w3.org/2001/XMLSchema',\r\n xsi: 'http://www.w3.org/2001/XMLSchema-instance',\r\n numbering: 'http://schemas.openxmlformats.org/officeDocument/2006/relationships/numbering',\r\n hyperlinks: 'http://schemas.openxmlformats.org/officeDocument/2006/relationships/hyperlink',\r\n images: 'http://schemas.openxmlformats.org/officeDocument/2006/relationships/image',\r\n styles: 'http://schemas.openxmlformats.org/officeDocument/2006/relationships/styles',\r\n headers: 'http://schemas.openxmlformats.org/officeDocument/2006/relationships/header',\r\n footers: 'http://schemas.openxmlformats.org/officeDocument/2006/relationships/footer',\r\n themes: 'http://schemas.openxmlformats.org/officeDocument/2006/relationships/theme',\r\n coreProperties: 'http://schemas.openxmlformats.org/package/2006/metadata/core-properties',\r\n officeDocumentRelation:\r\n 'http://schemas.openxmlformats.org/officeDocument/2006/relationships/officeDocument',\r\n corePropertiesRelation:\r\n 'http://schemas.openxmlformats.org/package/2006/relationships/metadata/core-properties',\r\n settingsRelation: 'http://schemas.openxmlformats.org/officeDocument/2006/relationships/settings',\r\n webSettingsRelation:\r\n 'http://schemas.openxmlformats.org/officeDocument/2006/relationships/webSettings',\r\n sl: 'http://schemas.openxmlformats.org/schemaLibrary/2006/main',\r\n contentTypes: 'http://schemas.openxmlformats.org/package/2006/content-types',\r\n relationship: 'http://schemas.openxmlformats.org/package/2006/relationships',\r\n};\r\n\r\nexport default namespaces;\r\n","import { cloneDeep } from 'lodash';\r\n\r\nconst applicationName = 'html-to-docx';\r\nconst defaultOrientation = 'portrait';\r\nconst landscapeWidth = 15840;\r\nconst landscapeHeight = 12240;\r\nconst landscapeMargins = {\r\n top: 1800,\r\n right: 1440,\r\n bottom: 1800,\r\n left: 1440,\r\n header: 720,\r\n footer: 720,\r\n gutter: 0,\r\n};\r\nconst portraitMargins = {\r\n top: 1440,\r\n right: 1800,\r\n bottom: 1440,\r\n left: 1800,\r\n header: 720,\r\n footer: 720,\r\n gutter: 0,\r\n};\r\nconst defaultFont = 'Times New Roman';\r\nconst defaultFontSize = 22;\r\nconst defaultDocumentOptions = {\r\n orientation: defaultOrientation,\r\n margins: cloneDeep(portraitMargins),\r\n title: '',\r\n subject: '',\r\n creator: applicationName,\r\n keywords: [applicationName],\r\n description: '',\r\n lastModifiedBy: applicationName,\r\n revision: 1,\r\n createdAt: new Date(),\r\n modifiedAt: new Date(),\r\n headerType: 'default',\r\n header: false,\r\n footerType: 'default',\r\n footer: false,\r\n font: defaultFont,\r\n fontSize: defaultFontSize,\r\n complexScriptFontSize: defaultFontSize,\r\n table: {\r\n row: {\r\n cantSplit: false,\r\n },\r\n },\r\n pageSize: {\r\n width: landscapeHeight,\r\n height: landscapeWidth,\r\n },\r\n pageNumber: false,\r\n skipFirstHeaderFooter: false,\r\n lineNumber: false,\r\n lineNumberOptions: {\r\n countBy: 1,\r\n start: 0,\r\n restart: 'continuous',\r\n },\r\n numbering: {\r\n defaultOrderedListStyleType: 'decimal',\r\n },\r\n};\r\nconst defaultHTMLString = '<p></p>';\r\nconst relsFolderName = '_rels';\r\nconst headerFileName = 'header1';\r\nconst footerFileName = 'footer1';\r\nconst themeFileName = 'theme1';\r\nconst documentFileName = 'document';\r\nconst headerType = 'header';\r\nconst footerType = 'footer';\r\nconst themeType = 'theme';\r\nconst hyperlinkType = 'hyperlink';\r\nconst imageType = 'image';\r\nconst internalRelationship = 'Internal';\r\nconst wordFolder = 'word';\r\nconst themeFolder = 'theme';\r\nconst paragraphBordersObject = {\r\n top: {\r\n size: 0,\r\n spacing: 3,\r\n color: 'FFFFFF',\r\n },\r\n left: {\r\n size: 0,\r\n spacing: 3,\r\n color: 'FFFFFF',\r\n },\r\n bottom: {\r\n size: 0,\r\n spacing: 3,\r\n color: 'FFFFFF',\r\n },\r\n right: {\r\n size: 0,\r\n spacing: 3,\r\n color: 'FFFFFF',\r\n },\r\n};\r\nconst colorlessColors = ['transparent', 'auto'];\r\nconst verticalAlignValues = ['top', 'middle', 'bottom'];\r\n\r\nexport {\r\n defaultDocumentOptions,\r\n defaultHTMLString,\r\n relsFolderName,\r\n headerFileName,\r\n footerFileName,\r\n themeFileName,\r\n documentFileName,\r\n headerType,\r\n footerType,\r\n themeType,\r\n internalRelationship,\r\n wordFolder,\r\n themeFolder,\r\n landscapeMargins,\r\n portraitMargins,\r\n defaultOrientation,\r\n landscapeWidth,\r\n landscapeHeight,\r\n applicationName,\r\n defaultFont,\r\n defaultFontSize,\r\n hyperlinkType,\r\n imageType,\r\n paragraphBordersObject,\r\n colorlessColors,\r\n verticalAlignValues,\r\n};\r\n","import namespaces from '../namespaces';\r\nimport { applicationName } from '../constants';\r\n\r\nconst generateCoreXML = (\r\n title = '',\r\n subject = '',\r\n creator = applicationName,\r\n keywords = [applicationName],\r\n description = '',\r\n lastModifiedBy = applicationName,\r\n revision = 1,\r\n createdAt = new Date(),\r\n modifiedAt = new Date()\r\n) => `\r\n <?xml version=\"1.0\" encoding=\"UTF-8\" standalone=\"yes\"?>\r\n\r\n <cp:coreProperties\r\n xmlns:cp=\"${namespaces.coreProperties}\"\r\n xmlns:dc=\"${namespaces.dc}\"\r\n xmlns:dcterms=\"${namespaces.dcterms}\"\r\n xmlns:dcmitype=\"${namespaces.dcmitype}\"\r\n xmlns:xsi=\"${namespaces.xsi}\"\r\n >\r\n <dc:title>${title}</dc:title>\r\n <dc:subject>${subject}</dc:subject>\r\n <dc:creator>${creator}</dc:creator>\r\n ${\r\n keywords && Array.isArray(keywords)\r\n ? `<cp:keywords>${keywords.join(', ')}</cp:keywords>`\r\n : ''\r\n }\r\n <dc:description>${description}</dc:description>\r\n <cp:lastModifiedBy>${lastModifiedBy}</cp:lastModifiedBy>\r\n <cp:revision>${revision}</cp:revision>\r\n <dcterms:created xsi:type=\"dcterms:W3CDTF\">${\r\n createdAt instanceof Date ? createdAt.toISOString() : new Date().toISOString()\r\n }</dcterms:created>\r\n <dcterms:modified xsi:type=\"dcterms:W3CDTF\">${\r\n modifiedAt instanceof Date ? modifiedAt.toISOString() : new Date().toISOString()\r\n }</dcterms:modified>\r\n </cp:coreProperties>\r\n `;\r\n\r\nexport { generateCoreXML};\r\n","import namespaces from '../namespaces';\r\n\r\nconst documentRelsXML = `\r\n <?xml version=\"1.0\" encoding=\"UTF-8\" standalone=\"yes\"?>\r\n\r\n <Relationships xmlns=\"http://schemas.openxmlformats.org/package/2006/relationships\">\r\n <Relationship Id=\"rId1\" Type=\"${namespaces.numbering}\" Target=\"numbering.xml\"/>\r\n <Relationship Id=\"rId2\" Type=\"${namespaces.styles}\" Target=\"styles.xml\"/>\r\n <Relationship Id=\"rId3\" Type=\"${namespaces.settingsRelation}\" Target=\"settings.xml\"/>\r\n <Relationship Id=\"rId4\" Type=\"${namespaces.webSettingsRelation}\" Target=\"webSettings.xml\"/>\r\n <Relationship Type=\"http://schemas.openxmlformats.org/officeDocument/2006/relationships/aFChunk\" Target=\"/word/afchunk.mht\" Id=\"htmlChunk\" />\r\n <Relationship Type=\"http://schemas.openxmlformats.org/officeDocument/2006/relationships/aFChunk\" Target=\"/word/afchunkheader.mht\" Id=\"htmlChunkHeader\" />\r\n <Relationship Type=\"http://schemas.openxmlformats.org/officeDocument/2006/relationships/aFChunk\" Target=\"/word/afchunkfooter.mht\" Id=\"htmlChunkFooter\" />\r\n </Relationships>\r\n`;\r\n\r\nexport {documentRelsXML};\r\n","import namespaces from '../namespaces';\r\n\r\nconst relsXML = `\r\n <?xml version=\"1.0\" encoding=\"UTF-8\" standalone=\"yes\"?>\r\n\r\n <Relationships xmlns=\"http://schemas.openxmlformats.org/package/2006/relationships\">\r\n <Relationship Id=\"rId1\" Type=\"${namespaces.officeDocumentRelation}\" Target=\"word/document.xml\"/>\r\n <Relationship Id=\"rId2\" Type=\"${namespaces.corePropertiesRelation}\" Target=\"docProps/core.xml\"/>\r\n </Relationships>\r\n`;\r\n\r\nexport {relsXML};\r\n","import namespaces from '../namespaces';\r\n\r\nconst generateNumberingXMLTemplate = () => `\r\n <?xml version=\"1.0\" encoding=\"UTF-8\" standalone=\"yes\"?>\r\n\r\n <w:numbering\r\n xmlns:w=\"${namespaces.w}\"\r\n xmlns:ve=\"${namespaces.ve}\"\r\n xmlns:o=\"${namespaces.o}\"\r\n xmlns:r=\"${namespaces.r}\"\r\n xmlns:v=\"${namespaces.v}\"\r\n xmlns:wp=\"${namespaces.wp}\"\r\n xmlns:w10=\"${namespaces.w10}\"\r\n xmlns:wne=\"${namespaces.wne}\">\r\n </w:numbering>\r\n `;\r\n\r\nexport {generateNumberingXMLTemplate};\r\n","import { defaultFont, defaultFontSize } from '../constants';\r\nimport namespaces from '../namespaces';\r\n\r\nconst generateStylesXML = (\r\n font = defaultFont,\r\n fontSize = defaultFontSize,\r\n complexScriptFontSize = defaultFontSize\r\n) => `\r\n <?xml version=\"1.0\" encoding=\"UTF-8\" standalone=\"yes\"?>\r\n\r\n <w:styles xmlns:w=\"${namespaces.w}\" xmlns:r=\"${namespaces.r}\">\r\n\t<w:docDefaults>\r\n\t <w:rPrDefault>\r\n\t\t<w:rPr>\r\n\t\t <w:rFonts w:ascii=\"${font}\" w:eastAsiaTheme=\"minorHAnsi\" w:hAnsiTheme=\"minorHAnsi\" w:cstheme=\"minorBidi\" />\r\n\t\t <w:sz w:val=\"${fontSize}\" />\r\n\t\t <w:szCs w:val=\"${complexScriptFontSize}\" />\r\n\t\t <w:lang w:val=\"en-US\" w:eastAsia=\"en-US\" w:bidi=\"ar-SA\" />\r\n\t\t</w:rPr>\r\n\t </w:rPrDefault>\r\n\t <w:pPrDefault>\r\n\t\t<w:pPr>\r\n\t\t <w:spacing w:after=\"120\" w:line=\"240\" w:lineRule=\"atLeast\" />\r\n\t\t</w:pPr>\r\n\t </w:pPrDefault>\r\n\t</w:docDefaults>\r\n\t<w:style w:type=\"character\" w:styleId=\"Hyperlink\">\r\n\t <w:name w:val=\"Hyperlink\" />\r\n\t <w:rPr>\r\n\t\t<w:color w:val=\"0000FF\" />\r\n\t\t<w:u w:val=\"single\" />\r\n\t </w:rPr>\r\n\t</w:style>\r\n\t<w:style w:type=\"paragraph\" w:styleId=\"Heading1\">\r\n\t <w:name w:val=\"heading 1\" />\r\n\t <w:basedOn w:val=\"Normal\" />\r\n\t <w:next w:val=\"Normal\" />\r\n\t <w:uiPriority w:val=\"9\" />\r\n\t <w:qFormat />\r\n\t <w:pPr>\r\n\t\t<w:keepNext />\r\n\t\t<w:keepLines />\r\n\t\t<w:spacing w:before=\"480\" />\r\n\t\t<w:outlineLvl w:val=\"0\" />\r\n\t </w:pPr>\r\n\t <w:rPr>\r\n\t\t<w:b />\r\n\t\t<w:sz w:val=\"48\" />\r\n\t\t<w:szCs w:val=\"48\" />\r\n\t </w:rPr>\r\n\t</w:style>\r\n\t<w:style w:type=\"paragraph\" w:styleId=\"Heading2\">\r\n\t <w:name w:val=\"heading 2\" />\r\n\t <w:basedOn w:val=\"Normal\" />\r\n\t <w:next w:val=\"Normal\" />\r\n\t <w:uiPriority w:val=\"9\" />\r\n\t <w:unhideWhenUsed />\r\n\t <w:qFormat />\r\n\t <w:pPr>\r\n\t\t<w:keepNext />\r\n\t\t<w:keepLines />\r\n\t\t<w:spacing w:before=\"360\" w:after=\"80\" />\r\n\t\t<w:outlineLvl w:val=\"1\" />\r\n\t </w:pPr>\r\n\t <w:rPr>\r\n\t\t<w:b />\r\n\t\t<w:sz w:val=\"36\" />\r\n\t\t<w:szCs w:val=\"36\" />\r\n\t </w:rPr>\r\n\t</w:style>\r\n\t<w:style w:type=\"paragraph\" w:styleId=\"Heading3\">\r\n\t <w:name w:val=\"heading 3\" />\r\n\t <w:basedOn w:val=\"Normal\" />\r\n\t <w:next w:val=\"Normal\" />\r\n\t <w:uiPriority w:val=\"9\" />\r\n\t <w:semiHidden />\r\n\t <w:unhideWhenUsed />\r\n\t <w:qFormat />\r\n\t <w:pPr>\r\n\t\t<w:keepNext />\r\n\t\t<w:keepLines />\r\n\t\t<w:spacing w:before=\"280\" w:after=\"80\" />\r\n\t\t<w:outlineLvl w:val=\"2\" />\r\n\t </w:pPr>\r\n\t <w:rPr>\r\n\t\t<w:b />\r\n\t\t<w:sz w:val=\"28\" />\r\n\t\t<w:szCs w:val=\"28\" />\r\n\t </w:rPr>\r\n\t</w:style>\r\n\t<w:style w:type=\"paragraph\" w:styleId=\"Heading4\">\r\n\t <w:name w:val=\"heading 4\" />\r\n\t <w:basedOn w:val=\"Normal\" />\r\n\t <w:next w:val=\"Normal\" />\r\n\t <w:uiPriority w:val=\"9\" />\r\n\t <w:semiHidden />\r\n\t <w:unhideWhenUsed />\r\n\t <w:qFormat />\r\n\t <w:pPr>\r\n\t\t<w:keepNext />\r\n\t\t<w:keepLines />\r\n\t\t<w:spacing w:before=\"240\" w:after=\"40\" />\r\n\t\t<w:outlineLvl w:val=\"3\" />\r\n\t </w:pPr>\r\n\t <w:rPr>\r\n\t\t<w:b />\r\n\t\t<w:sz w:val=\"24\" />\r\n\t\t<w:szCs w:val=\"24\" />\r\n\t </w:rPr>\r\n\t</w:style>\r\n\t<w:style w:type=\"paragraph\" w:styleId=\"Heading5\">\r\n\t <w:name w:val=\"heading 5\" />\r\n\t <w:basedOn w:val=\"Normal\" />\r\n\t <w:next w:val=\"Normal\" />\r\n\t <w:uiPriority w:val=\"9\" />\r\n\t <w:semiHidden />\r\n\t <w:unhideWhenUsed />\r\n\t <w:qFormat />\r\n\t <w:pPr>\r\n\t\t<w:keepNext />\r\n\t\t<w:keepLines />\r\n\t\t<w:spacing w:before=\"220\" w:after=\"40\" />\r\n\t\t<w:outlineLvl w:val=\"4\" />\r\n\t </w:pPr>\r\n\t <w:rPr>\r\n\t\t<w:b />\r\n\t </w:rPr>\r\n\t</w:style>\r\n\t<w:style w:type=\"paragraph\" w:styleId=\"Heading6\">\r\n\t <w:name w:val=\"heading 6\" />\r\n\t <w:basedOn w:val=\"Normal\" />\r\n\t <w:next w:val=\"Normal\" />\r\n\t <w:uiPriority w:val=\"9\" />\r\n\t <w:semiHidden />\r\n\t <w:unhideWhenUsed />\r\n\t <w:qFormat />\r\n\t <w:pPr>\r\n\t\t<w:keepNext />\r\n\t\t<w:keepLines />\r\n\t\t<w:spacing w:before=\"200\" w:after=\"40\" />\r\n\t\t<w:outlineLvl w:val=\"5\" />\r\n\t </w:pPr>\r\n\t <w:rPr>\r\n\t\t<w:b />\r\n\t\t<w:sz w:val=\"20\" />\r\n\t\t<w:szCs w:val=\"20\" />\r\n\t </w:rPr>\r\n\t</w:style>\r\n </w:styles>\r\n `;\r\n\r\nexport {generateStylesXML};\r\n","import namespaces from '../namespaces';\r\n\r\nconst fontTableXML = `\r\n <?xml version=\"1.0\" encoding=\"UTF-8\" standalone=\"yes\"?>\r\n\r\n <w:fonts\r\n xmlns:r=\"${namespaces.r}\"\r\n xmlns:w=\"${namespaces.w}\"\r\n >\r\n <w:font w:name=\"Symbol\">\r\n <w:panose1 w:val=\"05050102010706020507\"/>\r\n <w:charset w:val=\"02\"/>\r\n <w:family w:val=\"decorative\"/>\r\n <w:pitch w:val=\"variable\"/>\r\n <w:sig w:usb0=\"00000000\" w:usb1=\"10000000\" w:usb2=\"00000000\" w:usb3=\"00000000\" w:csb0=\"80000000\" w:csb1=\"00000000\"/>\r\n </w:font>\r\n <w:font w:name=\"Calibri\">\r\n <w:panose1 w:val=\"020F0502020204030204\"/>\r\n <w:charset w:val=\"00\"/>\r\n <w:family w:val=\"swiss\"/>\r\n <w:pitch w:val=\"variable\"/>\r\n <w:sig w:usb0=\"E4002EFF\" w:usb1=\"C000247B\" w:usb2=\"00000009\" w:usb3=\"00000000\" w:csb0=\"000001FF\" w:csb1=\"00000000\"/>\r\n </w:font>\r\n <w:font w:name=\"Times New Roman\">\r\n <w:panose1 w:val=\"02020603050405020304\"/>\r\n <w:charset w:val=\"00\"/>\r\n <w:family w:val=\"roman\"/>\r\n <w:pitch w:val=\"variable\"/>\r\n <w:sig w:usb0=\"E0002EFF\" w:usb1=\"C000785B\" w:usb2=\"00000009\" w:usb3=\"00000000\" w:csb0=\"000001FF\" w:csb1=\"00000000\"/>\r\n </w:font>\r\n <w:font w:name=\"Calibri Light\">\r\n <w:panose1 w:val=\"020F0302020204030204\"/>\r\n <w:charset w:val=\"00\"/>\r\n <w:family w:val=\"swiss\"/>\r\n <w:pitch w:val=\"variable\"/>\r\n <w:sig w:usb0=\"E4002EFF\" w:usb1=\"C000247B\" w:usb2=\"00000009\" w:usb3=\"00000000\" w:csb0=\"000001FF\" w:csb1=\"00000000\"/>\r\n </w:font>\r\n </w:fonts>\r\n`;\r\n\r\nexport {fontTableXML};\r\n","import { defaultFont } from '../constants';\r\n\r\nconst generateThemeXML = (font = defaultFont) => `\r\n <?xml version=\"1.0\" encoding=\"UTF-8\" standalone=\"yes\"?>\r\n\r\n <a:theme xmlns:a=\"http://schemas.openxmlformats.org/drawingml/2006/main\" name=\"Office Theme\">\r\n <a:themeElements>\r\n <a:clrScheme name=\"Office\">\r\n <a:dk1>\r\n <a:sysClr val=\"windowText\" lastClr=\"000000\"/>\r\n </a:dk1>\r\n <a:lt1>\r\n <a:sysClr val=\"window\" lastClr=\"FFFFFF\"/>\r\n </a:lt1>\r\n <a:dk2>\r\n <a:srgbClr val=\"44546A\"/>\r\n </a:dk2>\r\n <a:lt2>\r\n <a:srgbClr val=\"E7E6E6\"/>\r\n </a:lt2>\r\n <a:accent1>\r\n <a:srgbClr val=\"4472C4\"/>\r\n </a:accent1>\r\n <a:accent2>\r\n <a:srgbClr val=\"ED7D31\"/>\r\n </a:accent2>\r\n <a:accent3>\r\n <a:srgbClr val=\"A5A5A5\"/>\r\n </a:accent3>\r\n <a:accent4>\r\n <a:srgbClr val=\"FFC000\"/>\r\n </a:accent4>\r\n <a:accent5>\r\n <a:srgbClr val=\"5B9BD5\"/>\r\n </a:accent5>\r\n <a:accent6>\r\n <a:srgbClr val=\"70AD47\"/>\r\n </a:accent6>\r\n <a:hlink>\r\n <a:srgbClr val=\"0563C1\"/>\r\n </a:hlink>\r\n <a:folHlink>\r\n <a:srgbClr val=\"954F72\"/>\r\n </a:folHlink>\r\n </a:clrScheme>\r\n <a:fontScheme name=\"Office\">\r\n <a:majorFont>\r\n <a:latin typeface=\"${font}\"/>\r\n <a:ea typeface=\"${font}\"/>\r\n <a:cs typeface=\"\"/>\r\n </a:majorFont>\r\n <a:minorFont>\r\n <a:latin typeface=\"${font}\"/>\r\n <a:ea typeface=\"${font}\"/>\r\n <a:cs typeface=\"\"/>\r\n </a:minorFont>\r\n </a:fontScheme>\r\n <a:fmtScheme name=\"Office\">\r\n <a:fillStyleLst>\r\n <a:solidFill>\r\n <a:schemeClr val=\"phClr\"/>\r\n </a:solidFill>\r\n <a:gradFill rotWithShape=\"1\">\r\n <a:gsLst>\r\n <a:gs pos=\"0\">\r\n <a:schemeClr val=\"phClr\">\r\n <a:lumMod val=\"110000\"/>\r\n <a:satMod val=\"105000\"/>\r\n <a:tint val=\"67000\"/>\r\n </a:schemeClr>\r\n </a:gs>\r\n <a:gs pos=\"50000\">\r\n <a:schemeClr val=\"phClr\">\r\n <a:lumMod val=\"105000\"/>\r\n <a:satMod val=\"103000\"/>\r\n <a:tint val=\"73000\"/>\r\n </a:schemeClr>\r\n </a:gs>\r\n <a:gs pos=\"100000\">\r\n <a:schemeClr val=\"phClr\">\r\n <a:lumMod val=\"105000\"/>\r\n <a:satMod val=\"109000\"/>\r\n <a:tint val=\"81000\"/>\r\n </a:schemeClr>\r\n </a:gs>\r\n </a:gsLst>\r\n <a:lin ang=\"5400000\" scaled=\"0\"/>\r\n </a:gradFill>\r\n <a:gradFill rotWithShape=\"1\">\r\n <a:gsLst>\r\n <a:gs pos=\"0\">\r\n <a:schemeClr val=\"phClr\">\r\n <a:satMod val=\"103000\"/>\r\n <a:lumMod val=\"102000\"/>\r\n <a:tint val=\"94000\"/>\r\n </a:schemeClr>\r\n </a:gs>\r\n <a:gs pos=\"50000\">\r\n <a:schemeClr val=\"phClr\">\r\n <a:satMod val=\"110000\"/>\r\n <a:lumMod val=\"100000\"/>\r\n <a:shade val=\"100000\"/>\r\n </a:schemeClr>\r\n </a:gs>\r\n <a:gs pos=\"100000\">\r\n <a:schemeClr val=\"phClr\">\r\n <a:lumMod val=\"99000\"/>\r\n <a:satMod val=\"120000\"/>\r\n <a:shade val=\"78000\"/>\r\n </a:schemeClr>\r\n </a:gs>\r\n </a:gsLst>\r\n <a:lin ang=\"5400000\" scaled=\"0\"/>\r\n </a:gradFill>\r\n </a:fillStyleLst>\r\n <a:lnStyleLst>\r\n <a:ln w=\"6350\" cap=\"flat\" cmpd=\"sng\" algn=\"ctr\">\r\n <a:solidFill>\r\n <a:schemeClr val=\"phClr\"/>\r\n </a:solidFill>\r\n <a:prstDash val=\"solid\"/>\r\n <a:miter lim=\"800000\"/>\r\n </a:ln>\r\n <a:ln w=\"12700\" cap=\"flat\" cmpd=\"sng\" algn=\"ctr\">\r\n <a:solidFill>\r\n <a:schemeClr val=\"phClr\"/>\r\n </a:solidFill>\r\n <a:prstDash val=\"solid\"/>\r\n <a:miter lim=\"800000\"/>\r\n </a:ln>\r\n <a:ln w=\"19050\" cap=\"flat\" cmpd=\"sng\" algn=\"ctr\">\r\n <a:solidFill>\r\n <a:schemeClr val=\"phClr\"/>\r\n </a:solidFill>\r\n <a:prstDash val=\"solid\"/>\r\n <a:miter lim=\"800000\"/>\r\n </a:ln>\r\n </a:lnStyleLst>\r\n <a:effectStyleLst>\r\n <a:effectStyle>\r\n <a:effectLst/>\r\n </a:effectStyle>\r\n <a:effectStyle>\r\n <a:effectLst/>\r\n </a:effectStyle>\r\n <a:effectStyle>\r\n <a:effectLst>\r\n <a:outerShdw blurRad=\"57150\" dist=\"19050\" dir=\"5400000\" algn=\"ctr\" rotWithShape=\"0\">\r\n <a:srgbClr val=\"000000\">\r\n <a:alpha val=\"63000\"/>\r\n </a:srgbClr>\r\n </a:outerShdw>\r\n </a:effectLst>\r\n </a:effectStyle>\r\n </a:effectStyleLst>\r\n <a:bgFillStyleLst>\r\n <a:solidFill>\r\n <a:schemeClr val=\"phClr\"/>\r\n </a:solidFill>\r\n <a:solidFill>\r\n <a:schemeClr val=\"phClr\">\r\n <a:tint val=\"95000\"/>\r\n <a:satMod val=\"170000\"/>\r\n </a:schemeClr>\r\n </a:solidFill>\r\n <a:gradFill rotWithShape=\"1\">\r\n <a:gsLst>\r\n <a:gs pos=\"0\">\r\n <a:schemeClr val=\"phClr\">\r\n <a:tint val=\"93000\"/>\r\n <a:satMod val=\"150000\"/>\r\n <a:shade val=\"98000\"/>\r\n <a:lumMod val=\"102000\"/>\r\n </a:schemeClr>\r\n </a:gs>\r\n <a:gs pos=\"50000\">\r\n <a:schemeClr val=\"phClr\">\r\n <a:tint val=\"98000\"/>\r\n <a:satMod val=\"130000\"/>\r\n <a:shade val=\"90000\"/>\r\n <a:lumMod val=\"103000\"/>\r\n </a:schemeClr>\r\n </a:gs>\r\n <a:gs pos=\"100000\">\r\n <a:schemeClr val=\"phClr\">\r\n <a:shade val=\"63000\"/>\r\n <a:satMod val=\"120000\"/>\r\n </a:schemeClr>\r\n </a:gs>\r\n </a:gsLst>\r\n <a:lin ang=\"5400000\" scaled=\"0\"/>\r\n </a:gradFill>\r\n </a:bgFillStyleLst>\r\n </a:fmtScheme>\r\n </a:themeElements>\r\n </a:theme>\r\n`;\r\n\r\nexport {generateThemeXML};\r\n","import namespaces from '../namespaces';\r\n\r\nconst settingsXML = `\r\n <?xml version=\"1.0\" encoding=\"UTF-8\" standalone=\"yes\"?>\r\n\r\n <w:settings xmlns:w=\"${namespaces.w}\" xmlns:o=\"${namespaces.o}\" xmlns:r=\"${namespaces.r}\" xmlns:v=\"${namespaces.v}\" xmlns:w10=\"${namespaces.w10}\" xmlns:sl=\"${namespaces.sl}\">\r\n <w:zoom w:percent=\"100\"/>\r\n <w:defaultTabStop w:val=\"720\"/>\r\n <w:decimalSymbol w:val=\".\"/>\r\n <w:listSeparator w:val=\",\"/>\r\n </w:settings>\r\n`;\r\n\r\nexport {settingsXML};\r\n","import namespaces from '../namespaces';\r\n\r\nconst webSettingsXML = `\r\n <?xml version=\"1.0\" encoding=\"UTF-8\" standalone=\"yes\"?>\r\n\r\n <w:webSettings xmlns:w=\"${namespaces.w}\" xmlns:r=\"${namespaces.r}\">\r\n </w:webSettings>\r\n`;\r\n\r\nexport {webSettingsXML};\r\n","const genericRelsXML = `\r\n <?xml version=\"1.0\" encoding=\"UTF-8\" standalone=\"yes\"?>\r\n\r\n <Relationships xmlns=\"http://schemas.openxmlformats.org/package/2006/relationships\">\r\n <Relationship Type=\"http://schemas.openxmlformats.org/officeDocument/2006/relationships/aFChunk\" Target=\"/word/afchunk.mht\" Id=\"htmlChunk\" />\r\n <Relationship Type=\"http://schemas.openxmlformats.org/officeDocument/2006/relationships/aFChunk\" Target=\"/word/afchunkheader.mht\" Id=\"htmlChunkHeader\" />\r\n <Relationship Type=\"http://schemas.openxmlformats.org/officeDocument/2006/relationships/aFChunk\" Target=\"/word/afchunkfooter.mht\" Id=\"htmlChunkFooter\" />\r\n </Relationships>\r\n`;\r\n\r\nexport {genericRelsXML};\r\n","import namespaces from \"../namespaces\";\r\n\r\nconst generateDocumentTemplate = (width, height, orientation, margins) => `\r\n <?xml version=\"1.0\" encoding=\"UTF-8\" standalone=\"yes\"?>\r\n <w:document\r\n xmlns:a=\"${namespaces.a}\"\r\n xmlns:cdr=\"${namespaces.cdr}\"\r\n xmlns:o=\"${namespaces.o}\"\r\n xmlns:pic=\"${namespaces.pic}\"\r\n xmlns:r=\"${namespaces.r}\"\r\n xmlns:v=\"${namespaces.v}\"\r\n xmlns:ve=\"${namespaces.ve}\"\r\n xmlns:vt=\"${namespaces.vt}\"\r\n xmlns:w=\"${namespaces.w}\"\r\n xmlns:w10=\"${namespaces.w10}\"\r\n xmlns:wp=\"${namespaces.wp}\"\r\n xmlns:wne=\"${namespaces.wne}\"\r\n >\r\n <w:body>\r\n\r\n <w:altChunk r:id=\"htmlChunk\" />\r\n <w:sectPr>\r\n <w:pgSz w:w=\"${width}\" w:h=\"${height}\" w:orient=\"${orientation}\" />\r\n <w:pgMar w:top=\"${margins.top}\"\r\n w:right=\"${margins.right}\"\r\n w:bottom=\"${margins.bottom}\"\r\n w:left=\"${margins.left}\"\r\n w:header=\"${margins.header}\"\r\n w:footer=\"${margins.footer}\"\r\n w:gutter=\"${margins.gutter}\"/>\r\n </w:sectPr>\r\n </w:body>\r\n </w:document>\r\n `;\r\n\r\nconst generateDocumentTemplateHeader = `\r\n<w:hdr\r\nxmlns:a=\"${namespaces.a}\"\r\nxmlns:cdr=\"${namespaces.cdr}\"\r\nxmlns:o=\"${namespaces.o}\"\r\nxmlns:pic=\"${namespaces.pic}\"\r\nxmlns:r=\"${namespaces.r}\"\r\nxmlns:v=\"${namespaces.v}\"\r\nxmlns:ve=\"${namespaces.ve}\"\r\nxmlns:vt=\"${namespaces.vt}\"\r\nxmlns:w=\"${namespaces.w}\"\r\nxmlns:w10=\"${namespaces.w10}\"\r\nxmlns:wp=\"${namespaces.wp}\"\r\nxmlns:wne=\"${namespaces.wne}\"\r\n>\r\n<w:altChunk r:id=\"htmlChunkHeader\" />\r\n</w:hdr>\r\n `;\r\n\r\nconst generateDocumentTemplateFooter = `\r\n <w:ftr\r\n xmlns:a=\"${namespaces.a}\"\r\n xmlns:cdr=\"${namespaces.cdr}\"\r\n xmlns:o=\"${namespaces.o}\"\r\n xmlns:pic=\"${namespaces.pic}\"\r\n xmlns:r=\"${namespaces.r}\"\r\n xmlns:v=\"${namespaces.v}\"\r\n xmlns:ve=\"${namespaces.ve}\"\r\n xmlns:vt=\"${namespaces.vt}\"\r\n xmlns:w=\"${namespaces.w}\"\r\n xmlns:w10=\"${namespaces.w10}\"\r\n xmlns:wp=\"${namespaces.wp}\"\r\n >\r\n <w:altChunk r:id=\"htmlChunkFooter\" />\r\n\t<w:p w:rsidR=\"0014021C\" w:rsidRDefault=\"0014021C\" w:rsidP=\"0014021C\">\r\n\t\t\t<w:pPr>\r\n\t\t\t\t<w:pStyle w:val=\"Footer\"/>\r\n\t\t\t\t<w:jc w:val=\"center\"/>\r\n\t\t\t</w:pPr>\r\n <w:fldSimple xmlns:ns2=\"http://schemas.openxmlformats.org/wordprocessingml/2006/main\" ns2:instr=\"PAGE\">\r\n <w:r/>\r\n </w:fldSimple>\r\n\t\t</w:p>\r\n\t</w:ftr>\r\n `;\r\n\r\n const generateDocumentTemplateFooterWithoutPaging = `\r\n <w:ftr\r\n xmlns:a=\"${namespaces.a}\"\r\n xmlns:cdr=\"${namespaces.cdr}\"\r\n xmlns:o=\"${namespaces.o}\"\r\n xmlns:pic=\"${namespaces.pic}\"\r\n xmlns:r=\"${namespaces.r}\"\r\n xmlns:v=\"${namespaces.v}\"\r\n xmlns:ve=\"${namespaces.ve}\"\r\n xmlns:vt=\"${namespaces.vt}\"\r\n xmlns:w=\"${namespaces.w}\"\r\n xmlns:w10=\"${namespaces.w10}\"\r\n xmlns:wp=\"${namespaces.wp}\"\r\n >\r\n <w:altChunk r:id=\"htmlChunkFooter\" />\r\n\t</w:ftr>\r\n `;\r\n\r\nexport {\r\n generateDocumentTemplate,\r\n generateDocumentTemplateHeader,\r\n generateDocumentTemplateFooter,\r\n generateDocumentTemplateFooterWithoutPaging\r\n};\r\n\r\n{/* <w:altChunk r:id=\"htmlChunkFooter\" /> */}\r\n\r\n{\r\n /* <w:altChunk r:id=\"htmlChunkFooter\" xmlns:r=\"http://schemas.openxmlformats.org/officeDocument/2006/relationships\" /> */\r\n}\r\n\r\n{\r\n /* <w:ftr xmlns:w=\"http://schemas.openxmlformats.org/wordprocessingml/2006/main\">\r\n<fldSimple xmlns:ns2=\"http://schemas.openxmlformats.org/wordprocessingml/2006/main\" ns2:instr=\"PAGE\">\r\n</fldSimple>\r\n<w:altChunk r:id=\"htmlChunkFooter\" xmlns:r=\"http://schemas.openxmlformats.org/officeDocument/2006/relationships\" />\r\n </w:ftr> */\r\n}\r\n","/* eslint-disable no-param-reassign */\r\n\r\nexport const rgbRegex = /rgb\\((\\d+),\\s*([\\d.]+),\\s*([\\d.]+)\\)/i;\r\nexport const hslRegex = /hsl\\((\\d+),\\s*([\\d.]+)%,\\s*([\\d.]+)%\\)/i;\r\nexport const hexRegex = /#([0-9A-F]{6})/i;\r\nexport const hex3Regex = /#([0-9A-F])([0-9A-F])([0-9A-F])/i;\r\n\r\n// eslint-disable-next-line import/prefer-default-export\r\nexport const rgbToHex = (red, green, blue) => {\r\n const hexColorCode = [red, green, blue]\r\n .map((x) => {\r\n // eslint-disable-next-line radix, no-param-reassign\r\n x = parseInt(x).toString(16);\r\n return x.length === 1 ? `0${x}` : x;\r\n })\r\n .join('');\r\n\r\n return hexColorCode;\r\n};\r\n\r\nexport const hslToHex = (hue, saturation, luminosity) => {\r\n hue /= 360;\r\n saturation /= 100;\r\n luminosity /= 100;\r\n // eslint-disable-next-line one-var\r\n let red, green, blue;\r\n if (saturation === 0) {\r\n // eslint-disable-next-line no-multi-assign\r\n red = green = blue = luminosity; // achromatic\r\n } else {\r\n const hue2rgb = (p, q, t) => {\r\n if (t < 0) t += 1;\r\n if (t > 1) t -= 1;\r\n if (t < 1 / 6) return p + (q - p) * 6 * t;\r\n if (t < 1 / 2) return q;\r\n if (t < 2 / 3) return p + (q - p) * (2 / 3 - t) * 6;\r\n return p;\r\n };\r\n const q =\r\n luminosity < 0.5\r\n ? luminosity * (1 + saturation)\r\n : luminosity + saturation - luminosity * saturation;\r\n const p = 2 * luminosity - q;\r\n red = hue2rgb(p, q, hue + 1 / 3);\r\n green = hue2rgb(p, q, hue);\r\n blue = hue2rgb(p, q, hue - 1 / 3);\r\n }\r\n return [red, green, blue]\r\n .map((x) => {\r\n const hex = Math.round(x * 255).toString(16);\r\n return hex.length === 1 ? `0${hex}` : hex;\r\n })\r\n .join('');\r\n};\r\n\r\nexport const hex3ToHex = (red, green, blue) => {\r\n const hexColorCode = [red, green, blue].map((x) => `${x}${x}`).join('');\r\n\r\n return hexColorCode;\r\n};\r\n","export const pixelRegex = /([\\d.]+)px/i;\r\nexport const percentageRegex = /([\\d.]+)%/i;\r\nexport const pointRegex = /([\\d.]+)pt/i;\r\nexport const cmRegex = /([\\d.]+)cm/i;\r\nexport const inchRegex = /([\\d.]+)in/i;\r\n\r\nexport const pixelToEMU = (pixelValue) => Math.round(pixelValue * 9525);\r\n\r\nexport const EMUToPixel = (EMUValue) => Math.round(EMUValue / 9525);\r\n\r\nexport const TWIPToEMU = (TWIPValue) => Math.round(TWIPValue * 635);\r\n\r\nexport const EMUToTWIP = (EMUValue) => Math.round(EMUValue / 635);\r\n\r\nexport const pointToTWIP = (pointValue) => Math.round(pointValue * 20);\r\n\r\nexport const TWIPToPoint = (TWIPValue) => Math.round(TWIPValue / 20);\r\n\r\nexport const pointToHIP = (pointValue) => Math.round(pointValue * 2);\r\n\r\nexport const HIPToPoint = (HIPValue) => Math.round(HIPValue / 2);\r\n\r\nexport const HIPToTWIP = (HIPValue) => Math.round(HIPValue * 10);\r\n\r\nexport const TWIPToHIP = (TWIPValue) => Math.round(TWIPValue / 10);\r\n\r\nexport const pixelToTWIP = (pixelValue) => EMUToTWIP(pixelToEMU(pixelValue));\r\n\r\nexport const TWIPToPixel = (TWIPValue) => EMUToPixel(TWIPToEMU(TWIPValue));\r\n\r\nexport const pixelToHIP = (pixelValue) => TWIPToHIP(EMUToTWIP(pixelToEMU(pixelValue)));\r\n\r\nexport const HIPToPixel = (HIPValue) => EMUToPixel(TWIPToEMU(HIPToTWIP(HIPValue)));\r\n\r\nexport const inchToPoint = (inchValue) => Math.round(inchValue * 72);\r\n\r\nexport const inchToTWIP = (inchValue) => pointToTWIP(inchToPoint(inchValue));\r\n\r\nexport const cmToInch = (cmValue) => cmValue * 0.3937008;\r\n\r\nexport const cmToTWIP = (cmValue) => inchToTWIP(cmToInch(cmValue));\r\n\r\nexport const pixelToPoint = (pixelValue) => HIPToPoint(pixelToHIP(pixelValue));\r\n\r\nexport const pointToPixel = (pointValue) => HIPToPixel(pointToHIP(pointValue));\r\n\r\nexport const EIPToPoint = (EIPValue) => Math.round(EIPValue / 8);\r\n\r\nexport const pointToEIP = (PointValue) => Math.round(PointValue * 8);\r\n\r\nexport const pixelToEIP = (pixelValue) => pointToEIP(pixelToPoint(pixelValue));\r\n\r\nexport const EIPToPixel = (EIPValue) => pointToPixel(EIPToPoint(EIPValue));\r\n","// eslint-disable-next-line import/prefer-default-export\r\nexport const vNodeHasChildren = (vNode) =>\r\n vNode && vNode.children && Array.isArray(vNode.children) && vNode.children.length;\r\n","const isValidUrl = (urlString) => {\r\n const urlRegex = /http(s)?:\\/\\/(\\w+:?\\w*@)?(\\S+)(:\\d+)?((?<=\\.)\\w+)+(\\/([\\w#!:.?+=&%@!\\-/])*)?/gi;\r\n\r\n return Boolean(urlRegex.test(urlString));\r\n};\r\n\r\n// eslint-disable-next-line import/prefer-default-export\r\nexport { isValidUrl };\r\n","/* eslint-disable no-await-in-loop */\r\n/* eslint-disable radix */\r\n/* eslint-disable no-param-reassign */\r\n/* eslint-disable no-case-declarations */\r\n/* eslint-disable no-plusplus */\r\n/* eslint-disable no-else-return */\r\nimport { fragment } from 'xmlbuilder2';\r\nimport isVNode from 'virtual-dom/vnode/is-vnode';\r\nimport isVText from 'virtual-dom/vnode/is-vtext';\r\nimport colorNames from 'color-name';\r\nimport { cloneDeep } from 'lodash';\r\nimport imageToBase64 from 'image-to-base64';\r\nimport mimeTypes from 'mime-types';\r\nimport sizeOf from 'image-size';\r\n\r\nimport namespaces from '../namespaces';\r\nimport {\r\n rgbToHex,\r\n hslToHex,\r\n hslRegex,\r\n rgbRegex,\r\n hexRegex,\r\n hex3Regex,\r\n hex3ToHex,\r\n} from '../utils/color-conversion';\r\nimport {\r\n pixelToEMU,\r\n pixelRegex,\r\n TWIPToEMU,\r\n percentageRegex,\r\n pointRegex,\r\n pointToHIP,\r\n HIPToTWIP,\r\n pointToTWIP,\r\n pixelToHIP,\r\n pixelToTWIP,\r\n pixelToEIP,\r\n pointToEIP,\r\n cmToTWIP,\r\n cmRegex,\r\n inchRegex,\r\n inchToTWIP,\r\n} from '../utils/unit-conversion';\r\n// FIXME: remove the cyclic dependency\r\n// eslint-disable-next-line import/no-cycle\r\nimport { buildImage, buildList } from './render-document-file';\r\nimport {\r\n defaultFont,\r\n hyperlinkType,\r\n paragraphBordersObject,\r\n colorlessColors,\r\n verticalAlignValues,\r\n imageType,\r\n internalRelationship,\r\n} from '../constants';\r\nimport { vNodeHasChildren } from '../utils/vnode';\r\nimport { isValidUrl } from '../utils/url';\r\n\r\n// eslint-disable-next-line consistent-return\r\nconst fixupColorCode = (colorCodeString) => {\r\n if (Object.prototype.hasOwnProperty.call(colorNames, colorCodeString.toLowerCase())) {\r\n const [red, green, blue] = colorNames[colorCodeString.toLowerCase()];\r\n\r\n return rgbToHex(red, green, blue);\r\n } else if (rgbRegex.test(colorCodeString)) {\r\n const matchedParts = colorCodeString.match(rgbRegex);\r\n const red = matchedParts[1];\r\n const green = matchedParts[2];\r\n const blue = matchedParts[3];\r\n\r\n return rgbToHex(red, green, blue);\r\n } else if (hslRegex.test(colorCodeString)) {\r\n const matchedParts = colorCodeString.match(hslRegex);\r\n const hue = matchedParts[1];\r\n const saturation = matchedParts[2];\r\n const luminosity = matchedParts[3];\r\n\r\n return hslToHex(hue, saturation, luminosity);\r\n } else if (hexRegex.test(colorCodeString)) {\r\n const matchedParts = colorCodeString.match(hexRegex);\r\n\r\n return matchedParts[1];\r\n } else if (hex3Regex.test(colorCodeString)) {\r\n const matchedParts = colorCodeString.match(hex3Regex);\r\n const red = matchedParts[1];\r\n const green = matchedParts[2];\r\n const blue = matchedParts[3];\r\n\r\n return hex3ToHex(red, green, blue);\r\n } else {\r\n return '000000';\r\n }\r\n};\r\n\r\nconst buildRunFontFragment = (fontName = defaultFont) =>\r\n fragment({ namespaceAlias: { w: namespaces.w } })\r\n .ele('@w', 'rFonts')\r\n .att('@w', 'ascii', fontName)\r\n .att('@w', 'hAnsi', fontName)\r\n .up();\r\n\r\nconst buildRunStyleFragment = (type = 'Hyperlink') =>\r\n fragment({ namespaceAlias: { w: namespaces.w } })\r\n .ele('@w', 'rStyle')\r\n .att('@w', 'val', type)\r\n .up();\r\n\r\nconst buildTableRowHeight = (tableRowHeight) =>\r\n fragment({ namespaceAlias: { w: namespaces.w } })\r\n .ele('@w', 'trHeight')\r\n .att('@w', 'val', tableRowHeight)\r\n .att('@w', 'hRule', 'atLeast')\r\n .up();\r\n\r\nconst buildVerticalAlignment = (verticalAlignment) => {\r\n if (verticalAlignment.toLowerCase() === 'middle') {\r\n verticalAlignment = 'center';\r\n }\r\n\r\n return fragment({ namespaceAlias: { w: namespaces.w } })\r\n .ele('@w', 'vAlign')\r\n .att('@w', 'val', verticalAlignment)\r\n .up();\r\n};\r\n\r\nconst buildVerticalMerge = (verticalMerge = 'continue') =>\r\n fragment({ namespaceAlias: { w: namespaces.w } })\r\n .ele('@w', 'vMerge')\r\n .att('@w', 'val', verticalMerge)\r\n .up();\r\n\r\nconst buildColor = (colorCode) =>\r\n fragment({ namespaceAlias: { w: namespaces.w } })\r\n .ele('@w', 'color')\r\n .att('@w', 'val', colorCode)\r\n .up();\r\n\r\nconst buildFontSize = (fontSize) =>\r\n fragment({ namespaceAlias: { w: namespaces.w } })\r\n .ele('@w', 'sz')\r\n .att('@w', 'val', fontSize)\r\n .up();\r\n\r\nconst buildShading = (colorCode) =>\r\n fragment({ namespaceAlias: { w: namespaces.w } })\r\n .ele('@w', 'shd')\r\n .att('@w', 'val', 'clear')\r\n .att('@w', 'fill', colorCode)\r\n .up();\r\n\r\nconst buildHighlight = (color = 'yellow') =>\r\n fragment({ namespaceAlias: { w: namespaces.w } })\r\n .ele('@w', 'highlight')\r\n .att('@w', 'val', color)\r\n .up();\r\n\r\nconst buildVertAlign = (type = 'baseline') =>\r\n fragment({ namespaceAlias: { w: namespaces.w } })\r\n .ele('@w', 'vertAlign')\r\n .att('@w', 'val', type)\r\n .up();\r\n\r\nconst buildStrike = () =>\r\n fragment({ namespaceAlias: { w: namespaces.w } })\r\n .ele('@w', 'strike')\r\n .att('@w', 'val', true)\r\n .up();\r\n\r\nconst buildBold = () =>\r\n fragment({ namespaceAlias: { w: namespaces.w } })\r\n .ele('@w', 'b')\r\n .up();\r\n\r\nconst buildItalics = () =>\r\n fragment({ namespaceAlias: { w: namespaces.w } })\r\n .ele('@w', 'i')\r\n .up();\r\n\r\nconst buildUnderline = (type = 'single') =>\r\n fragment({ namespaceAlias: { w: namespaces.w } })\r\n .ele('@w', 'u')\r\n .att('@w', 'val', type)\r\n .up();\r\n\r\nconst buildLineBreak = (type = 'textWrapping') =>\r\n fragment({ namespaceAlias: { w: namespaces.w } })\r\n .ele('@w', 'br')\r\n .att('@w', 'type', type)\r\n .up();\r\n\r\nconst buildBorder = (\r\n borderSide = 'top',\r\n borderSize = 0,\r\n borderSpacing = 0,\r\n borderColor = fixupColorCode('black'),\r\n borderStroke = 'single'\r\n) =>\r\n fragment({ namespaceAlias: { w: namespaces.w } })\r\n .ele('@w', borderSide)\r\n .att('@w', 'val', borderStroke)\r\n .att('@w', 'sz', borderSize)\r\n .att('@w', 'space', borderSpacing)\r\n .att('@w', 'color', borderColor)\r\n .up();\r\n\r\nconst buildTextElement = (text) =>\r\n fragment({ namespaceAlias: { w: namespaces.w } })\r\n .ele('@w', 't')\r\n .att('@xml', 'space', 'preserve')\r\n .txt(text)\r\n .up();\r\n\r\n// eslint-disable-next-line consistent-return\r\nconst fixupLineHeight = (lineHeight, fontSize) => {\r\n // FIXME: If line height is anything other than a number\r\n // eslint-disable-next-line no-restricted-globals\r\n if (!isNaN(lineHeight)) {\r\n if (fontSize) {\r\n const actualLineHeight = +lineHeight * fontSize;\r\n\r\n return HIPToTWIP(actualLineHeight);\r\n } else {\r\n // 240 TWIP or 12 point is default line height\r\n return +lineHeight * 240;\r\n }\r\n } else {\r\n // 240 TWIP or 12 point is default line height\r\n return 240;\r\n }\r\n};\r\n\r\n// eslint-disable-next-line consistent-return\r\nconst fixupFontSize = (fontSizeString) => {\r\n if (pointRegex.test(fontSizeString)) {\r\n const matchedParts = fontSizeString.match(pointRegex);\r\n // convert point to half point\r\n return pointToHIP(matchedParts[1]);\r\n } else if (pixelRegex.test(fontSizeString)) {\r\n const matchedParts = fontSizeString.match(pixelRegex);\r\n // convert pixels to half point\r\n return pixelToHIP(matchedParts[1]);\r\n }\r\n};\r\n\r\n// eslint-disable-next-line consistent-return\r\nconst fixupRowHeight = (rowHeightString) => {\r\n if (pointRegex.test(rowHeightString)) {\r\n const matchedParts = rowHeightString.match(pointRegex);\r\n // convert point to half point\r\n return pointToTWIP(matchedParts[1]);\r\n } else if (pixelRegex.test(rowHeightString)) {\r\n const matchedParts = rowHeightString.match(pixelRegex);\r\n // convert pixels to half point\r\n return pixelToTWIP(matchedParts[1]);\r\n } else if (cmRegex.test(rowHeightString)) {\r\n const matchedParts = rowHeightString.match(cmRegex);\r\n return cmToTWIP(matchedParts[1]);\r\n } else if (inchRegex.test(rowHeightString)) {\r\n const matchedParts = rowHeightString.match(inchRegex);\r\n return inchToTWIP(matchedParts[1]);\r\n }\r\n};\r\n\r\n// eslint-disable-next-line consistent-return\r\nconst fixupColumnWidth = (columnWidthString) => {\r\n if (pointRegex.test(columnWidthString)) {\r\n const matchedParts = columnWidthString.match(pointRegex);\r\n return pointToTWIP(matchedParts[1]);\r\n } else if (pixelRegex.test(columnWidthString)) {\r\n const matchedParts = columnWidthString.match(pixelRegex);\r\n return pixelToTWIP(matchedParts[1]);\r\n } else if (cmRegex.test(columnWidthString)) {\r\n const matchedParts = columnWidthString.match(cmRegex);\r\n return cmToTWIP(matchedParts[1]);\r\n } else if (inchRegex.test(columnWidthString)) {\r\n const matchedParts = columnWidthString.match(inchRegex);\r\n return inchToTWIP(matchedParts[1]);\r\n }\r\n};\r\n\r\n// eslint-disable-next-line consistent-return\r\nconst fixupMargin = (marginString) => {\r\n if (pointRegex.test(marginString)) {\r\n const matchedParts = marginString.match(pointRegex);\r\n // convert point to half point\r\n return pointToTWIP(matchedParts[1]);\r\n } else if (pixelRegex.test(marginString)) {\r\n const matchedParts = marginString.match(pixelRegex);\r\n // convert pixels to half point\r\n return pixelToTWIP(matchedParts[1]);\r\n }\r\n};\r\n\r\nconst modifiedStyleAttributesBuilder = (vNode, attributes, options) => {\r\n const modifiedAttributes = { ...attributes };\r\n\r\n // styles\r\n if (isVNode(vNode) && vNode.properties && vNode.properties.style) {\r\n if (vNode.properties.style.color && !colorlessColors.includes(vNode.properties.style.color)) {\r\n modifiedAttributes.color = fixupColorCode(vNode.properties.style.color);\r\n }\r\n\r\n if (\r\n vNode.properties.style['background-color'] &&\r\n !colorlessColors.includes(vNode.properties.style['background-color'])\r\n ) {\r\n modifiedAttributes.backgroundColor = fixupColorCode(\r\n vNode.properties.style['background-color']\r\n );\r\n }\r\n\r\n if (\r\n vNode.properties.style['vertical-align'] &&\r\n verticalAlignValues.includes(vNode.properties.style['vertical-align'])\r\n ) {\r\n modifiedAttributes.verticalAlign = vNode.properties.style['vertical-align'];\r\n }\r\n\r\n if (\r\n vNode.properties.style['text-align'] &&\r\n ['left', 'right', 'center', 'justify'].includes(vNode.properties.style['text-align'])\r\n ) {\r\n modifiedAttributes.textAlign = vNode.properties.style['text-align'];\r\n }\r\n\r\n // FIXME: remove bold check when other font weights are handled.\r\n if (vNode.properties.style['font-weight'] && vNode.properties.style['font-weight'] === 'bold') {\r\n modifiedAttributes.strong = vNode.properties.style['font-weight'];\r\n }\r\n if (vNode.properties.style['font-size']) {\r\n modifiedAttributes.fontSize = fixupFontSize(vNode.properties.style['font-size']);\r\n }\r\n if (vNode.properties.style['line-height']) {\r\n modifiedAttributes.lineHeight = fixupLineHeight(\r\n vNode.properties.style['line-height'],\r\n vNode.properties.style['font-size']\r\n ? fixupFontSize(vNode.properties.style['font-size'])\r\n : null\r\n );\r\n }\r\n if (vNode.properties.style['margin-left'] || vNode.properties.style['margin-right']) {\r\n const leftMargin = fixupMargin(vNode.properties.style['margin-left']);\r\n const rightMargin = fixupMargin(vNode.properties.style['margin-right']);\r\n const indentation = {};\r\n if (leftMargin) {\r\n indentation.left = leftMargin;\r\n }\r\n if (rightMargin) {\r\n indentation.right = rightMargin;\r\n }\r\n if (leftMargin || rightMargin) {\r\n modifiedAttributes.indentation = indentation;\r\n }\r\n }\r\n if (vNode.properties.style.display) {\r\n modifiedAttributes.display = vNode.properties.style.display;\r\n }\r\n\r\n if (vNode.properties.style.width) {\r\n modifiedAttributes.width = vNode.properties.style.width;\r\n }\r\n }\r\n\r\n // paragraph only\r\n if (options && options.isParagraph) {\r\n if (isVNode(vNode) && vNode.tagName === 'blockquote') {\r\n modifiedAttributes.indentation = { left: 284 };\r\n modifiedAttributes.textAlign = 'justify';\r\n } else if (isVNode(vNode) && vNode.tagName === 'code') {\r\n modifiedAttributes.highlightColor = 'lightGray';\r\n } else if (isVNode(vNode) && vNode.tagName === 'pre') {\r\n modifiedAttributes.font = 'Courier';\r\n }\r\n }\r\n\r\n return modifiedAttributes;\r\n};\r\n\r\n// html tag to formatting function\r\n// options are passed to the formatting function if needed\r\nconst buildFormatting = (htmlTag, options) => {\r\n switch (htmlTag) {\r\n case 'strong':\r\n case 'b':\r\n return buildBold();\r\n case 'em':\r\n case 'i':\r\n return buildItalics();\r\n case 'ins':\r\n case 'u':\r\n return buildUnderline();\r\n case 'strike':\r\n case 'del':\r\n case 's':\r\n return buildStrike();\r\n case 'sub':\r\n return buildVertAlign('subscript');\r\n case 'sup':\r\n return buildVertAlign('superscript');\r\n case 'mark':\r\n return buildHighlight();\r\n case 'code':\r\n return buildHighlight('lightGray');\r\n case 'highlightColor':\r\n return buildHighlight(options && options.color ? options.color : 'lightGray');\r\n case 'font':\r\n case 'pre':\r\n return buildRunFontFragment('Courier');\r\n case 'color':\r\n return buildColor(options && options.color ? options.color : 'black');\r\n case 'backgroundColor':\r\n return buildShading(options && options.color ? options.color : 'black');\r\n case 'fontSize':\r\n // does this need a unit of measure?\r\n return buildFontSize(options && options.fontSize ? options.fontSize : 10);\r\n case 'hyperlink':\r\n return buildRunStyleFragment('Hyperlink');\r\n }\r\n\r\n return null;\r\n};\r\n\r\nconst buildRunProperties = (attributes) => {\r\n const runPropertiesFragment = fragment({ namespaceAlias: { w: namespaces.w } }).ele('@w', 'rPr');\r\n if (attributes && attributes.constructor === Object) {\r\n Object.keys(attributes).forEach((key) => {\r\n const options = {};\r\n if (key === 'color' || key === 'backgroundColor' || key === 'highlightColor') {\r\n options.color = attributes[key];\r\n }\r\n\r\n if (key === 'fontSize') {\r\n options.fontSize = attributes[key];\r\n }\r\n\r\n const formattingFragment = buildFormatting(key, options);\r\n if (formattingFragment) {\r\n runPropertiesFragment.import(formattingFragment);\r\n }\r\n });\r\n }\r\n runPropertiesFragment.up();\r\n\r\n return runPropertiesFragment;\r\n};\r\n\r\nconst buildRun = async (vNode, attributes, docxDocumentInstance) => {\r\n const runFragment = fragment({ namespaceAlias: { w: namespaces.w } }).ele('@w', 'r');\r\n const runPropertiesFragment = buildRunProperties(cloneDeep(attributes));\r\n\r\n // case where we have recursive spans representing font changes\r\n if (isVNode(vNode) && vNode.tagName === 'span') {\r\n // eslint-disable-next-line no-use-before-define\r\n return buildRunOrRuns(vNode, attributes, docxDocumentInstance);\r\n }\r\n\r\n if (\r\n isVNode(vNode) &&\r\n [\r\n 'strong',\r\n 'b',\r\n 'em',\r\n 'i',\r\n 'u',\r\n 'ins',\r\n 'strike',\r\n 'del',\r\n 's',\r\n 'sub',\r\n 'sup',\r\n 'mark',\r\n 'blockquote',\r\n 'code',\r\n 'pre',\r\n ].includes(vNode.tagName)\r\n ) {\r\n const runFragmentsArray = [];\r\n\r\n let vNodes = [vNode];\r\n // create temp run fragments to split the paragraph into different runs\r\n let tempAttributes = cloneDeep(attributes);\r\n let tempRunFragment = fragment({ namespaceAlias: { w: namespaces.w } }).ele('@w', 'r');\r\n while (vNodes.length) {\r\n const tempVNode = vNodes.shift();\r\n if (isVText(tempVNode)) {\r\n const textFragment = buildTextElement(tempVNode.text);\r\n const tempRunPropertiesFragment = buildRunProperties({ ...attributes, ...tempAttributes });\r\n tempRunFragment.import(tempRunPropertiesFragment);\r\n tempRunFragment.import(textFragment);\r\n runFragmentsArray.push(tempRunFragment);\r\n\r\n // re initialize temp run fragments with new fragment\r\n tempAttributes = cloneDeep(attributes);\r\n tempRunFragment = fragment({ namespaceAlias: { w: namespaces.w } }).ele('@w', 'r');\r\n } else if (isVNode(tempVNode)) {\r\n if (\r\n [\r\n 'strong',\r\n 'b',\r\n 'em',\r\n 'i',\r\n 'u',\r\n 'ins',\r\n 'strike',\r\n 'del',\r\n 's',\r\n 'sub',\r\n 'sup',\r\n 'mark',\r\n 'code',\r\n 'pre',\r\n ].includes(tempVNode.tagName)\r\n ) {\r\n tempAttributes = {};\r\n switch (tempVNode.tagName) {\r\n case 'strong':\r\n case 'b':\r\n tempAttributes.strong = true;\r\n break;\r\n case 'i':\r\n tempAttributes.i = true;\r\n break;\r\n case 'u':\r\n tempAttributes.u = true;\r\n break;\r\n case 'sub':\r\n tempAttributes.sub = true;\r\n break;\r\n case 'sup':\r\n tempAttributes.sup = true;\r\n break;\r\n }\r\n const formattingFragment = buildFormatting(tempVNode);\r\n\r\n if (formattingFragment) {\r\n runPropertiesFragment.import(formattingFragment);\r\n }\r\n // go a layer deeper if there is a span somewhere in the children\r\n } else if (tempVNode.tagName === 'span') {\r\n // eslint-disable-next-line no-use-before-define\r\n const spanFragment = await buildRunOrRuns(\r\n tempVNode,\r\n { ...attributes, ...tempAttributes },\r\n docxDocumentInstance\r\n );\r\n\r\n // if spanFragment is an array, we need to add each fragment to the runFragmentsArray. If the fragment is an array, perform a depth first search on the array to add each fragment to the runFragmentsArray\r\n if (Array.isArray(spanFragment)) {\r\n spanFragment.flat(Infinity);\r\n runFragmentsArray.push(...spanFragment);\r\n } else {\r\n runFragmentsArray.push(spanFragment);\r\n }\r\n\r\n // do not slice and concat children since this is already accounted for in the buildRunOrRuns function\r\n // eslint-disable-next-line no-continue\r\n continue;\r\n }\r\n }\r\n\r\n if (tempVNode.children && tempVNode.children.length) {\r\n if (tempVNode.children.length > 1) {\r\n attributes = { ...attributes, ...tempAttributes };\r\n }\r\n\r\n vNodes = tempVNode.children.slice().concat(vNodes);\r\n }\r\n }\r\n if (runFragmentsArray.length) {\r\n return runFragmentsArray;\r\n }\r\n }\r\n\r\n runFragment.import(runPropertiesFragment);\r\n if (isVText(vNode)) {\r\n const textFragment = buildTextElement(vNode.text);\r\n runFragment.import(textFragment);\r\n } else if (attributes && attributes.type === 'picture') {\r\n let response = null;\r\n\r\n const base64Uri = decodeURIComponent(vNode.properties.src);\r\n if (base64Uri) {\r\n response = docxDocumentInstance.createMediaFile(base64Uri);\r\n }\r\n\r\n if (response) {\r\n docxDocumentInstance.zip\r\n .folder('word')\r\n .folder('media')\r\n .file(response.fileNameWithExtension, Buffer.from(response.fileContent, 'base64'), {\r\n createFolders: false,\r\n });\r\n\r\n const documentRelsId = docxDocumentInstance.createDocumentRelationships(\r\n docxDocumentInstance.relationshipFilename,\r\n imageType,\r\n `media/${response.fileNameWithExtension}`,\r\n internalRelationship\r\n );\r\n\r\n attributes.inlineOrAnchored = true;\r\n attributes.relationshipId = documentRelsId;\r\n attributes.id = response.id;\r\n attributes.fileContent = response.fileContent;\r\n attributes.fileNameWithExtension = response.fileNameWithExtension;\r\n }\r\n\r\n const { type, inlineOrAnchored, ...otherAttributes } = attributes;\r\n // eslint-disable-next-line no-use-before-define\r\n const imageFragment = buildDrawing(inlineOrAnchored, type, otherAttributes);\r\n runFragment.import(imageFragment);\r\n } else if (isVNode(vNode) && vNode.tagName === 'br') {\r\n const lineBreakFragment = buildLineBreak();\r\n runFragment.import(lineBreakFragment);\r\n }\r\n runFragment.up();\r\n\r\n return runFragment;\r\n};\r\n\r\nconst buildRunOrRuns = async (vNode, attributes, docxDocumentInstance) => {\r\n if (isVNode(vNode) && vNode.tagName === 'span') {\r\n let runFragments = [];\r\n\r\n for (let index = 0; index < vNode.children.length; index++) {\r\n const childVNode = vNode.children[index];\r\n const modifiedAttributes = modifiedStyleAttributesBuilder(vNode, attributes);\r\n const tempRunFragments = await buildRun(childVNode, modifiedAttributes, docxDocumentInstance);\r\n runFragments = runFragments.concat(\r\n Array.isArray(tempRunFragments) ? tempRunFragments : [tempRunFragments]\r\n );\r\n }\r\n\r\n return runFragments;\r\n } else {\r\n const tempRunFragments = await buildRun(vNode, attributes, docxDocumentInstance);\r\n return tempRunFragments;\r\n }\r\n};\r\n\r\nconst buildRunOrHyperLink = async (vNode, attributes, docxDocumentInstance) => {\r\n if (isVNode(vNode) && vNode.tagName === 'a') {\r\n const relationshipId = docxDocumentInstance.createDocumentRelationships(\r\n docxDocumentInstance.relationshipFilename,\r\n hyperlinkType,\r\n vNode.properties && vNode.properties.href ? vNode.properties.href : ''\r\n );\r\n const hyperlinkFragment = fragment({ namespaceAlias: { w: namespaces.w, r: namespaces.r } })\r\n .ele('@w', 'hyperlink')\r\n .att('@r', 'id', `rId${relationshipId}`);\r\n\r\n const modifiedAttributes = { ...attributes };\r\n modifiedAttributes.hyperlink = true;\r\n\r\n const runFragments = await buildRunOrRuns(\r\n vNode.children[0],\r\n modifiedAttributes,\r\n docxDocumentInstance\r\n );\r\n if (Array.isArray(runFragments)) {\r\n for (let index = 0; index < runFragments.length; index++) {\r\n const runFragment = runFragments[index];\r\n\r\n hyperlinkFragment.import(runFragment);\r\n }\r\n } else {\r\n hyperlinkFragment.import(runFragments);\r\n }\r\n hyperlinkFragment.up();\r\n\r\n return hyperlinkFragment;\r\n }\r\n\r\n const runFragments = await buildRunOrRuns(vNode, attributes, docxDocumentInstance);\r\n\r\n return runFragments;\r\n};\r\n\r\nconst buildNumberingProperties = (levelId, numberingId) =>\r\n fragment({ namespaceAlias: { w: namespaces.w } })\r\n .ele('@w', 'numPr')\r\n .ele('@w', 'ilvl')\r\n .att('@w', 'val', String(levelId))\r\n .up()\r\n .ele('@w', 'numId')\r\n .att('@w', 'val', String(numberingId))\r\n .up()\r\n .up();\r\n\r\nconst buildNumberingInstances = () =>\r\n fragment({ namespaceAlias: { w: namespaces.w } })\r\n .ele('@w', 'num')\r\n .ele('@w', 'abstractNumId')\r\n .up()\r\n .up();\r\n\r\nconst buildSpacing = (lineSpacing, beforeSpacing, afterSpacing) => {\r\n const spacingFragment = fragment({ namespaceAlias: { w: namespaces.w } }).ele('@w', 'spacing');\r\n\r\n if (lineSpacing) {\r\n spacingFragment.att('@w', 'line', lineSpacing);\r\n }\r\n if (beforeSpacing) {\r\n spacingFragment.att('@w', 'before', beforeSpacing);\r\n }\r\n if (afterSpacing) {\r\n spacingFragment.att('@w', 'after', afterSpacing);\r\n }\r\n\r\n spacingFragment.att('@w', 'lineRule', 'auto').up();\r\n\r\n return spacingFragment;\r\n};\r\n\r\nconst buildIndentation = ({ left, right }) => {\r\n const indentationFragment = fragment({\r\n namespaceAlias: { w: namespaces.w },\r\n }).ele('@w', 'ind');\r\n\r\n if (left) {\r\n indentationFragment.att('@w', 'left', left);\r\n }\r\n if (right) {\r\n indentationFragment.att('@w', 'right', right);\r\n }\r\n\r\n indentationFragment.up();\r\n\r\n return indentationFragment;\r\n};\r\n\r\nconst buildPStyle = (style = 'Normal') =>\r\n fragment({ namespaceAlias: { w: namespaces.w } })\r\n .ele('@w', 'pStyle')\r\n .att('@w', 'val', style)\r\n .up();\r\n\r\nconst buildHorizontalAlignment = (horizontalAlignment) => {\r\n if (horizontalAlignment === 'justify') {\r\n horizontalAlignment = 'both';\r\n }\r\n return fragment({ namespaceAlias: { w: namespaces.w } })\r\n .ele('@w', 'jc')\r\n .att('@w', 'val', horizontalAlignment)\r\n .up();\r\n};\r\n\r\nconst buildParagraphBorder = () => {\r\n const paragraphBorderFragment = fragment({ namespaceAlias: { w: namespaces.w } }).ele(\r\n '@w',\r\n 'pBdr'\r\n );\r\n const bordersObject = cloneDeep(paragraphBordersObject);\r\n\r\n Object.keys(bordersObject).forEach((borderName) => {\r\n if (bordersObject[borderName]) {\r\n const { size, spacing, color } = bordersObject[borderName];\r\n\r\n const borderFragment = buildBorder(borderName, size, spacing, color);\r\n paragraphBorderFragment.import(borderFragment);\r\n }\r\n });\r\n\r\n paragraphBorderFragment.up();\r\n\r\n return paragraphBorderFragment;\r\n};\r\n\r\nconst buildParagraphProperties = (attributes) => {\r\n const paragraphPropertiesFragment = fragment({ namespaceAlias: { w: namespaces.w } }).ele(\r\n '@w',\r\n 'pPr'\r\n );\r\n if (attributes && attributes.constructor === Object) {\r\n Object.keys(attributes).forEach((key) => {\r\n switch (key) {\r\n case 'numbering':\r\n const { levelId, numberingId } = attributes[key];\r\n const numberingPropertiesFragment = buildNumberingProperties(levelId, numberingId);\r\n paragraphPropertiesFragment.import(numberingPropertiesFragment);\r\n // eslint-disable-next-line no-param-reassign\r\n delete attributes.numbering;\r\n break;\r\n case 'textAlign':\r\n const horizontalAlignmentFragment = buildHorizontalAlignment(attributes[key]);\r\n paragraphPropertiesFragment.import(horizontalAlignmentFragment);\r\n // eslint-disable-next-line no-param-reassign\r\n delete attributes.textAlign;\r\n break;\r\n case 'backgroundColor':\r\n // Add shading to Paragraph Properties only if display is block\r\n // Essentially if background color needs to be across the row\r\n if (attributes.display === 'block') {\r\n const shadingFragment = buildShading(attributes[key]);\r\n paragraphPropertiesFragment.import(shadingFragment);\r\n // FIXME: Inner padding in case of shaded paragraphs.\r\n const paragraphBorderFragment = buildParagraphBorder();\r\n paragraphPropertiesFragment.import(paragraphBorderFragment);\r\n // eslint-disable-next-line no-param-reassign\r\n delete attributes.backgroundColor;\r\n }\r\n break;\r\n case 'paragraphStyle':\r\n const pStyleFragment = buildPStyle(attributes.paragraphStyle);\r\n paragraphPropertiesFragment.import(pStyleFragment);\r\n delete attributes.paragraphStyle;\r\n break;\r\n case 'indentation':\r\n const indentationFragment = buildIndentation(attributes[key]);\r\n paragraphPropertiesFragment.import(indentationFragment);\r\n // eslint-disable-next-line no-param-reassign\r\n delete attributes.indentation;\r\n break;\r\n }\r\n });\r\n\r\n const spacingFragment = buildSpacing(\r\n attributes.lineHeight,\r\n attributes.beforeSpacing,\r\n attributes.afterSpacing\r\n );\r\n // eslint-disable-next-line no-param-reassign\r\n delete attributes.lineHeight;\r\n // eslint-disable-next-line no-param-reassign\r\n delete attributes.beforeSpacing;\r\n // eslint-disable-next-line no-param-reassign\r\n delete attributes.afterSpacing;\r\n\r\n paragraphPropertiesFragment.import(spacingFragment);\r\n }\r\n paragraphPropertiesFragment.up();\r\n\r\n return paragraphPropertiesFragment;\r\n};\r\n\r\nconst computeImageDimensions = (vNode, attributes) => {\r\n const { maximumWidth, originalWidth, originalHeight } = attributes;\r\n const aspectRatio = originalWidth / originalHeight;\r\n const maximumWidthInEMU = TWIPToEMU(maximumWidth);\r\n let originalWidthInEMU = pixelToEMU(originalWidth);\r\n let originalHeightInEMU = pixelToEMU(originalHeight);\r\n if (originalWidthInEMU > maximumWidthInEMU) {\r\n originalWidthInEMU = maximumWidthInEMU;\r\n originalHeightInEMU = Math.round(originalWidthInEMU / aspectRatio);\r\n }\r\n let modifiedHeight;\r\n let modifiedWidth;\r\n\r\n if (vNode.properties && vNode.properties.style) {\r\n if (vNode.properties.style.width) {\r\n if (vNode.properties.style.width !== 'auto') {\r\n if (pixelRegex.test(vNode.properties.style.width)) {\r\n modifiedWidth = pixelToEMU(vNode.properties.style.width.match(pixelRegex)[1]);\r\n } else if (percentageRegex.test(vNode.properties.style.width)) {\r\n const percentageValue = vNode.properties.style.width.match(percentageRegex)[1];\r\n\r\n modifiedWidth = Math.round((percentageValue / 100) * originalWidthInEMU);\r\n }\r\n } else {\r\n // eslint-disable-next-line no-lonely-if\r\n if (vNode.properties.style.height && vNode.properties.style.height === 'auto') {\r\n modifiedWidth = originalWidthInEMU;\r\n modifiedHeight = originalHeightInEMU;\r\n }\r\n }\r\n }\r\n if (vNode.properties.style.height) {\r\n if (vNode.properties.style.height !== 'auto') {\r\n if (pixelRegex.test(vNode.properties.style.height)) {\r\n modifiedHeight = pixelToEMU(vNode.properties.style.height.match(pixelRegex)[1]);\r\n } else if (percentageRegex.test(vNode.properties.style.height)) {\r\n const percentageValue = vNode.properties.style.width.match(percentageRegex)[1];\r\n\r\n modifiedHeight = Math.round((percentageValue / 100) * originalHeightInEMU);\r\n if (!modifiedWidth) {\r\n modifiedWidth = Math.round(modifiedHeight * aspectRatio);\r\n }\r\n }\r\n } else {\r\n // eslint-disable-next-line no-lonely-if\r\n if (modifiedWidth) {\r\n if (!modifiedHeight) {\r\n modifiedHeight = Math.round(modifiedWidth / aspectRatio);\r\n }\r\n } else {\r\n modifiedHeight = originalHeightInEMU;\r\n modifiedWidth = originalWidthInEMU;\r\n }\r\n }\r\n }\r\n if (modifiedWidth && !modifiedHeight) {\r\n modifiedHeight = Math.round(modifiedWidth / aspectRatio);\r\n } else if (modifiedHeight && !modifiedWidth) {\r\n modifiedWidth = Math.round(modifiedHeight * aspectRatio);\r\n }\r\n } else {\r\n modifiedWidth = originalWidthInEMU;\r\n modifiedHeight = originalHeightInEMU;\r\n }\r\n\r\n // eslint-disable-next-line no-param-reassign\r\n attributes.width = modifiedWidth;\r\n // eslint-disable-next-line no-param-reassign\r\n attributes.height = modifiedHeight;\r\n};\r\n\r\nconst buildParagraph = async (vNode, attributes, docxDocumentInstance) => {\r\n const paragraphFragment = fragment({ namespaceAlias: { w: namespaces.w } }).ele('@w', 'p');\r\n const modifiedAttributes = modifiedStyleAttributesBuilder(vNode, attributes, {\r\n isParagraph: true,\r\n });\r\n const paragraphPropertiesFragment = buildParagraphProperties(modifiedAttributes);\r\n paragraphFragment.import(paragraphPropertiesFragment);\r\n if (isVNode(vNode) && vNodeHasChildren(vNode)) {\r\n if (\r\n [\r\n 'span',\r\n 'strong',\r\n 'b',\r\n 'em',\r\n 'i',\r\n 'u',\r\n 'ins',\r\n 'strike',\r\n 'del',\r\n 's',\r\n 'sub',\r\n 'sup',\r\n 'mark',\r\n 'a',\r\n 'code',\r\n 'pre',\r\n ].includes(vNode.tagName)\r\n ) {\r\n const runOrHyperlinkFragments = await buildRunOrHyperLink(\r\n vNode,\r\n modifiedAttributes,\r\n docxDocumentInstance\r\n );\r\n if (Array.isArray(runOrHyperlinkFragments)) {\r\n for (\r\n let iteratorIndex = 0;\r\n iteratorIndex < runOrHyperlinkFragments.length;\r\n iteratorIndex++\r\n ) {\r\n const runOrHyperlinkFragment = runOrHyperlinkFragments[iteratorIndex];\r\n\r\n paragraphFragment.import(runOrHyperlinkFragment);\r\n }\r\n } else {\r\n paragraphFragment.import(runOrHyperlinkFragments);\r\n }\r\n } else if (vNode.tagName === 'blockquote') {\r\n const runFragmentOrFragments = await buildRun(vNode, attributes);\r\n if (Array.isArray(runFragmentOrFragments)) {\r\n for (let index = 0; index < runFragmentOrFragments.length; index++) {\r\n paragraphFragment.import(runFragmentOrFragments[index]);\r\n }\r\n } else {\r\n paragraphFragment.import(runFragmentOrFragments);\r\n }\r\n } else {\r\n for (let index = 0; index < vNode.children.length; index++) {\r\n const childVNode = vNode.children[index];\r\n if (childVNode.tagName === 'img') {\r\n let base64String;\r\n const imageSource = childVNode.properties.src;\r\n if (isValidUrl(imageSource)) {\r\n base64String = await imageToBase64(imageSource).catch((error) => {\r\n // eslint-disable-next-line no-console\r\n console.warning(`skipping image download and conversion due to ${error}`);\r\n });\r\n\r\n if (base64String && mimeTypes.lookup(imageSource)) {\r\n childVNode.properties.src = `data:${mimeTypes.lookup(\r\n imageSource\r\n )};base64, ${base64String}`;\r\n } else {\r\n break;\r\n }\r\n } else {\r\n // eslint-disable-next-line no-useless-escape, prefer-destructuring\r\n base64String = imageSource.match(/^data:([A-Za-z-+\\/]+);base64,(.+)$/)[2];\r\n }\r\n const imageBuffer = Buffer.from(decodeURIComponent(base64String), 'base64');\r\n const imageProperties = sizeOf(imageBuffer);\r\n\r\n modifiedAttributes.maximumWidth =\r\n modifiedAttributes.maximumWidth || docxDocumentInstance.availableDocumentSpace;\r\n modifiedAttributes.originalWidth = imageProperties.width;\r\n modifiedAttributes.originalHeight = imageProperties.height;\r\n\r\n computeImageDimensions(childVNode, modifiedAttributes);\r\n }\r\n const runOrHyperlinkFragments = await buildRunOrHyperLink(\r\n childVNode,\r\n isVNode(childVNode) && childVNode.tagName === 'img'\r\n ? { ...modifiedAttributes, type: 'picture' }\r\n : modifiedAttributes,\r\n docxDocumentInstance\r\n );\r\n if (Array.isArray(runOrHyperlinkFragments)) {\r\n for (\r\n let iteratorIndex = 0;\r\n iteratorIndex < runOrHyperlinkFragments.length;\r\n iteratorIndex++\r\n ) {\r\n const runOrHyperlinkFragment = runOrHyperlinkFragments[iteratorIndex];\r\n\r\n paragraphFragment.import(runOrHyperlinkFragment);\r\n }\r\n } else {\r\n paragraphFragment.import(runOrHyperlinkFragments);\r\n }\r\n }\r\n }\r\n } else {\r\n // In case paragraphs has to be rendered where vText is present. Eg. table-cell\r\n // Or in case the vNode is something like img\r\n if (isVNode(vNode) && vNode.tagName === 'img') {\r\n const imageSource = vNode.properties.src;\r\n let base64String = imageSource;\r\n if (isValidUrl(imageSource)) {\r\n base64String = await imageToBase64(imageSource).catch((error) => {\r\n // eslint-disable-next-line no-console\r\n console.warning(`skipping image download and conversion due to ${error}`);\r\n });\r\n\r\n if (base64String && mimeTypes.lookup(imageSource)) {\r\n vNode.properties.src = `data:${mimeTypes.lookup(imageSource)};base64, ${base64String}`;\r\n } else {\r\n paragraphFragment.up();\r\n\r\n return paragraphFragment;\r\n }\r\n } else {\r\n // eslint-disable-next-line no-useless-escape, prefer-destructuring\r\n base64String = base64String.match(/^data:([A-Za-z-+\\/]+);base64,(.+)$/)[2];\r\n }\r\n\r\n const imageBuffer = Buffer.from(decodeURIComponent(base64String), 'base64');\r\n const imageProperties = sizeOf(imageBuffer);\r\n\r\n modifiedAttributes.maximumWidth =\r\n modifiedAttributes.maximumWidth || docxDocumentInstance.availableDocumentSpace;\r\n modifiedAttributes.originalWidth = imageProperties.width;\r\n modifiedAttributes.originalHeight = imageProperties.height;\r\n\r\n computeImageDimensions(vNode, modifiedAttributes);\r\n }\r\n const runFragments = await buildRunOrRuns(vNode, modifiedAttributes, docxDocumentInstance);\r\n if (Array.isArray(runFragments)) {\r\n for (let index = 0; index < runFragments.length; index++) {\r\n const runFragment = runFragments[index];\r\n\r\n paragraphFragment.import(runFragment);\r\n }\r\n } else {\r\n paragraphFragment.import(runFragments);\r\n }\r\n }\r\n paragraphFragment.up();\r\n\r\n return paragraphFragment;\r\n};\r\n\r\nconst buildGridSpanFragment = (spanValue) =>\r\n fragment({ namespaceAlias: { w: namespaces.w } })\r\n .ele('@w', 'gridSpan')\r\n .att('@w', 'val', spanValue)\r\n .up();\r\n\r\nconst buildTableCellSpacing = (cellSpacing = 0) =>\r\n fragment({ namespaceAlias: { w: namespaces.w } })\r\n .ele('@w', 'tblCellSpacing')\r\n .att('@w', 'w', cellSpacing)\r\n .att('@w', 'type', 'dxa')\r\n .up();\r\n\r\nconst buildTableCellBorders = (tableCellBorder) => {\r\n const tableCellBordersFragment = fragment({ namespaceAlias: { w: namespaces.w } }).ele(\r\n '@w',\r\n 'tcBorders'\r\n );\r\n\r\n const { color, stroke, ...borders } = tableCellBorder;\r\n Object.keys(borders).forEach((border) => {\r\n if (tableCellBorder[border]) {\r\n const borderFragment = buildBorder(border, tableCellBorder[border], 0, color, stroke);\r\n tableCellBordersFragment.import(borderFragment);\r\n }\r\n });\r\n\r\n tableCellBordersFragment.up();\r\n\r\n return tableCellBordersFragment;\r\n};\r\n\r\nconst buildTableCellWidth = (tableCellWidth) =>\r\n fragment({ namespaceAlias: { w: namespaces.w } })\r\n .ele('@w', 'tcW')\r\n .att('@w', 'w', fixupColumnWidth(tableCellWidth))\r\n .att('@w', 'type', 'dxa')\r\n .up();\r\n\r\nconst buildTableCellProperties = (attributes) => {\r\n const tableCellPropertiesFragment = fragment({ namespaceAlias: { w: namespaces.w } }).ele(\r\n '@w',\r\n 'tcPr'\r\n );\r\n if (attributes && attributes.constructor === Object) {\r\n Object.keys(attributes).forEach((key) => {\r\n switch (key) {\r\n case 'backgroundColor':\r\n const shadingFragment = buildShading(attributes[key]);\r\n tableCellPropertiesFragment.import(shadingFragment);\r\n // eslint-disable-next-line no-param-reassign\r\n delete attributes.backgroundColor;\r\n break;\r\n case 'verticalAlign':\r\n const verticalAlignmentFragment = buildVerticalAlignment(attributes[key]);\r\n tableCellPropertiesFragment.import(verticalAlignmentFragment);\r\n // eslint-disable-next-line no-param-reassign\r\n delete attributes.verticalAlign;\r\n break;\r\n case 'colSpan':\r\n const gridSpanFragment = buildGridSpanFragment(attributes[key]);\r\n tableCellPropertiesFragment.import(gridSpanFragment);\r\n // eslint-disable-next-line no-param-reassign\r\n delete attributes.colSpan;\r\n break;\r\n case 'tableCellBorder':\r\n const tableCellBorderFragment = buildTableCellBorders(attributes[key]);\r\n tableCellPropertiesFragment.import(tableCellBorderFragment);\r\n // eslint-disable-next-line no-param-reassign\r\n delete attributes.tableCellBorder;\r\n break;\r\n case 'rowSpan':\r\n const verticalMergeFragment = buildVerticalMerge(attributes[key]);\r\n tableCellPropertiesFragment.import(verticalMergeFragment);\r\n\r\n delete attributes.rowSpan;\r\n break;\r\n case 'width':\r\n const widthFragment = buildTableCellWidth(attributes[key]);\r\n tableCellPropertiesFragment.import(widthFragment);\r\n delete attributes.width;\r\n break;\r\n }\r\n });\r\n }\r\n tableCellPropertiesFragment.up();\r\n\r\n return tableCellPropertiesFragment;\r\n};\r\n\r\nconst fixupTableCellBorder = (vNode, attributes) => {\r\n if (Object.prototype.hasOwnProperty.call(vNode.properties.style, 'border')) {\r\n if (vNode.properties.style.border === 'none' || vNode.properties.style.border === 0) {\r\n attributes.tableCellBorder = {};\r\n } else {\r\n // eslint-disable-next-line no-use-before-define\r\n const [borderSize, borderStroke, borderColor] = cssBorderParser(\r\n vNode.properties.style.border\r\n );\r\n\r\n attributes.tableCellBorder = {\r\n top: borderSize,\r\n left: borderSize,\r\n bottom: borderSize,\r\n right: borderSize,\r\n color: borderColor,\r\n stroke: borderStroke,\r\n };\r\n }\r\n }\r\n if (vNode.properties.style['border-top'] && vNode.properties.style['border-top'] === '0') {\r\n attributes.tableCellBorder = {\r\n ...attributes.tableCellBorder,\r\n top: 0,\r\n };\r\n } else if (vNode.properties.style['border-top'] && vNode.properties.style['border-top'] !== '0') {\r\n // eslint-disable-next-line no-use-before-define\r\n const [borderSize, borderStroke, borderColor] = cssBorderParser(\r\n vNode.properties.style['border-top']\r\n );\r\n attributes.tableCellBorder = {\r\n ...attributes.tableCellBorder,\r\n top: borderSize,\r\n color: borderColor,\r\n stroke: borderStroke,\r\n };\r\n }\r\n if (vNode.properties.style['border-left'] && vNode.properties.style['border-left'] === '0') {\r\n attributes.tableCellBorder = {\r\n ...attributes.tableCellBorder,\r\n left: 0,\r\n };\r\n } else if (\r\n vNode.properties.style['border-left'] &&\r\n vNode.properties.style['border-left'] !== '0'\r\n ) {\r\n // eslint-disable-next-line no-use-before-define\r\n const [borderSize, borderStroke, borderColor] = cssBorderParser(\r\n vNode.properties.style['border-left']\r\n );\r\n attributes.tableCellBorder = {\r\n ...attributes.tableCellBorder,\r\n left: borderSize,\r\n color: borderColor,\r\n stroke: borderStroke,\r\n };\r\n }\r\n if (vNode.properties.style['border-bottom'] && vNode.properties.style['border-bottom'] === '0') {\r\n attributes.tableCellBorder = {\r\n ...attributes.tableCellBorder,\r\n bottom: 0,\r\n };\r\n } else if (\r\n vNode.properties.style['border-bottom'] &&\r\n vNode.properties.style['border-bottom'] !== '0'\r\n ) {\r\n // eslint-disable-next-line no-use-before-define\r\n const [borderSize, borderStroke, borderColor] = cssBorderParser(\r\n vNode.properties.style['border-bottom']\r\n );\r\n attributes.tableCellBorder = {\r\n ...attributes.tableCellBorder,\r\n bottom: borderSize,\r\n color: borderColor,\r\n stroke: borderStroke,\r\n };\r\n }\r\n if (vNode.properties.style['border-right'] && vNode.properties.style['border-right'] === '0') {\r\n attributes.tableCellBorder = {\r\n ...attributes.tableCellBorder,\r\n right: 0,\r\n };\r\n } else if (\r\n vNode.properties.style['border-right'] &&\r\n vNode.properties.style['border-right'] !== '0'\r\n ) {\r\n // eslint-disable-next-line no-use-before-define\r\n const [borderSize, borderStroke, borderColor] = cssBorderParser(\r\n vNode.properties.style['border-right']\r\n );\r\n attributes.tableCellBorder = {\r\n ...attributes.tableCellBorder,\r\n right: borderSize,\r\n color: borderColor,\r\n stroke: borderStroke,\r\n };\r\n }\r\n};\r\n\r\nconst buildTableCell = async (vNode, attributes, rowSpanMap, columnIndex, docxDocumentInstance) => {\r\n const tableCellFragment = fragment({ namespaceAlias: { w: namespaces.w } }).ele('@w', 'tc');\r\n\r\n let modifiedAttributes = { ...attributes };\r\n if (isVNode(vNode) && vNode.properties) {\r\n if (vNode.properties.rowSpan) {\r\n rowSpanMap.set(columnIndex.index, { rowSpan: vNode.properties.rowSpan - 1, colSpan: 0 });\r\n modifiedAttributes.rowSpan = 'restart';\r\n } else {\r\n const previousSpanObject = rowSpanMap.get(columnIndex.index);\r\n rowSpanMap.set(\r\n columnIndex.index,\r\n // eslint-disable-next-line prefer-object-spread\r\n Object.assign({}, previousSpanObject, {\r\n rowSpan: 0,\r\n colSpan: (previousSpanObject && previousSpanObject.colSpan) || 0,\r\n })\r\n );\r\n }\r\n if (\r\n vNode.properties.colSpan ||\r\n (vNode.properties.style && vNode.properties.style['column-span'])\r\n ) {\r\n modifiedAttributes.colSpan =\r\n vNode.properties.colSpan ||\r\n (vNode.properties.style && vNode.properties.style['column-span']);\r\n const previousSpanObject = rowSpanMap.get(columnIndex.index);\r\n rowSpanMap.set(\r\n columnIndex.index,\r\n // eslint-disable-next-line prefer-object-spread\r\n Object.assign({}, previousSpanObject, {\r\n colSpan: parseInt(modifiedAttributes.colSpan) || 0,\r\n })\r\n );\r\n columnIndex.index += parseInt(modifiedAttributes.colSpan) - 1;\r\n }\r\n if (vNode.properties.style) {\r\n modifiedAttributes = {\r\n ...modifiedAttributes,\r\n ...modifiedStyleAttributesBuilder(vNode, attributes),\r\n };\r\n\r\n fixupTableCellBorder(vNode, modifiedAttributes);\r\n }\r\n }\r\n const tableCellPropertiesFragment = buildTableCellProperties(modifiedAttributes);\r\n tableCellFragment.import(tableCellPropertiesFragment);\r\n if (vNodeHasChildren(vNode)) {\r\n for (let index = 0; index < vNode.children.length; index++) {\r\n const childVNode = vNode.children[index];\r\n if (isVNode(childVNode) && childVNode.tagName === 'img') {\r\n const imageFragment = await buildImage(\r\n docxDocumentInstance,\r\n childVNode,\r\n modifiedAttributes.maximumWidth\r\n );\r\n if (imageFragment) {\r\n tableCellFragment.import(imageFragment);\r\n }\r\n } else if (isVNode(childVNode) && childVNode.tagName === 'figure') {\r\n if (vNodeHasChildren(childVNode)) {\r\n // eslint-disable-next-line no-plusplus\r\n for (let iteratorIndex = 0; iteratorIndex < childVNode.children.length; iteratorIndex++) {\r\n const grandChildVNode = childVNode.children[iteratorIndex];\r\n if (grandChildVNode.tagName === 'img') {\r\n const imageFragment = await buildImage(\r\n docxDocumentInstance,\r\n grandChildVNode,\r\n modifiedAttributes.maximumWidth\r\n );\r\n if (imageFragment) {\r\n tableCellFragment.import(imageFragment);\r\n }\r\n }\r\n }\r\n }\r\n } else if (isVNode(childVNode) && ['ul', 'ol'].includes(childVNode.tagName)) {\r\n // render list in table\r\n if (vNodeHasChildren(childVNode)) {\r\n await buildList(childVNode, docxDocumentInstance, tableCellFragment);\r\n }\r\n } else {\r\n const paragraphFragment = await buildParagraph(\r\n childVNode,\r\n modifiedAttributes,\r\n docxDocumentInstance\r\n );\r\n\r\n tableCellFragment.import(paragraphFragment);\r\n }\r\n }\r\n } else {\r\n // TODO: Figure out why building with buildParagraph() isn't working\r\n const paragraphFragment = fragment({ namespaceAlias: { w: namespaces.w } })\r\n .ele('@w', 'p')\r\n .up();\r\n tableCellFragment.import(paragraphFragment);\r\n }\r\n tableCellFragment.up();\r\n\r\n return tableCellFragment;\r\n};\r\n\r\nconst buildRowSpanCell = (rowSpanMap, columnIndex, attributes) => {\r\n const rowSpanCellFragments = [];\r\n let spanObject = rowSpanMap.get(columnIndex.index);\r\n while (spanObject && spanObject.rowSpan) {\r\n const rowSpanCellFragment = fragment({ namespaceAlias: { w: namespaces.w } }).ele('@w', 'tc');\r\n\r\n const tableCellPropertiesFragment = buildTableCellProperties({\r\n ...attributes,\r\n rowSpan: 'continue',\r\n colSpan: spanObject.colSpan ? spanObject.colSpan : 0,\r\n });\r\n rowSpanCellFragment.import(tableCellPropertiesFragment);\r\n\r\n const paragraphFragment = fragment({ namespaceAlias: { w: namespaces.w } })\r\n .ele('@w', 'p')\r\n .up();\r\n rowSpanCellFragment.import(paragraphFragment);\r\n rowSpanCellFragment.up();\r\n\r\n rowSpanCellFragments.push(rowSpanCellFragment);\r\n\r\n if (spanObject.rowSpan - 1 === 0) {\r\n rowSpanMap.delete(columnIndex.index);\r\n } else {\r\n rowSpanMap.set(columnIndex.index, {\r\n rowSpan: spanObject.rowSpan - 1,\r\n colSpan: spanObject.colSpan || 0,\r\n });\r\n }\r\n columnIndex.index += spanObject.colSpan || 1;\r\n spanObject = rowSpanMap.get(columnIndex.index);\r\n }\r\n\r\n return rowSpanCellFragments;\r\n};\r\n\r\nconst buildTableRowProperties = (attributes) => {\r\n const tableRowPropertiesFragment = fragment({ namespaceAlias: { w: namespaces.w } }).ele(\r\n '@w',\r\n 'trPr'\r\n );\r\n if (attributes && attributes.constructor === Object) {\r\n Object.keys(attributes).forEach((key) => {\r\n switch (key) {\r\n case 'tableRowHeight':\r\n const tableRowHeightFragment = buildTableRowHeight(attributes[key]);\r\n tableRowPropertiesFragment.import(tableRowHeightFragment);\r\n // eslint-disable-next-line no-param-reassign\r\n delete attributes.tableRowHeight;\r\n break;\r\n case 'rowCantSplit':\r\n if (attributes.rowCantSplit) {\r\n const cantSplitFragment = fragment({ namespaceAlias: { w: namespaces.w } })\r\n .ele('@w', 'cantSplit')\r\n .up();\r\n tableRowPropertiesFragment.import(cantSplitFragment);\r\n // eslint-disable-next-line no-param-reassign\r\n delete attributes.rowCantSplit;\r\n }\r\n break;\r\n }\r\n });\r\n }\r\n tableRowPropertiesFragment.up();\r\n return tableRowPropertiesFragment;\r\n};\r\n\r\nconst buildTableRow = async (vNode, attributes, rowSpanMap, docxDocumentInstance) => {\r\n const tableRowFragment = fragment({ namespaceAlias: { w: namespaces.w } }).ele('@w', 'tr');\r\n const modifiedAttributes = { ...attributes };\r\n if (isVNode(vNode) && vNode.properties) {\r\n // FIXME: find a better way to get row height from cell style\r\n if (\r\n (vNode.properties.style && vNode.properties.style.height) ||\r\n (vNode.children[0] &&\r\n isVNode(vNode.children[0]) &&\r\n vNode.children[0].properties.style &&\r\n vNode.children[0].properties.style.height)\r\n ) {\r\n modifiedAttributes.tableRowHeight = fixupRowHeight(\r\n (vNode.properties.style && vNode.properties.style.height) ||\r\n (vNode.children[0] &&\r\n isVNode(vNode.children[0]) &&\r\n vNode.children[0].properties.style &&\r\n vNode.children[0].properties.style.height\r\n ? vNode.children[0].properties.style.height\r\n : undefined)\r\n );\r\n }\r\n if (vNode.properties.style) {\r\n fixupTableCellBorder(vNode, modifiedAttributes);\r\n }\r\n }\r\n\r\n const tableRowPropertiesFragment = buildTableRowProperties(modifiedAttributes);\r\n tableRowFragment.import(tableRowPropertiesFragment);\r\n\r\n const columnIndex = { index: 0 };\r\n\r\n if (vNodeHasChildren(vNode)) {\r\n const tableColumns = vNode.children.filter((childVNode) =>\r\n ['td', 'th'].includes(childVNode.tagName)\r\n );\r\n const maximumColumnWidth = docxDocumentInstance.availableDocumentSpace / tableColumns.length;\r\n\r\n // eslint-disable-next-line no-restricted-syntax\r\n for (const column of tableColumns) {\r\n const rowSpanCellFragments = buildRowSpanCell(rowSpanMap, columnIndex, modifiedAttributes);\r\n if (Array.isArray(rowSpanCellFragments)) {\r\n for (let iteratorIndex = 0; iteratorIndex < rowSpanCellFragments.length; iteratorIndex++) {\r\n const rowSpanCellFragment = rowSpanCellFragments[iteratorIndex];\r\n\r\n tableRowFragment.import(rowSpanCellFragment);\r\n }\r\n }\r\n const tableCellFragment = await buildTableCell(\r\n column,\r\n { ...modifiedAttributes, maximumWidth: maximumColumnWidth },\r\n rowSpanMap,\r\n columnIndex,\r\n docxDocumentInstance\r\n );\r\n columnIndex.index++;\r\n\r\n tableRowFragment.import(tableCellFragment);\r\n }\r\n }\r\n\r\n if (columnIndex.index < rowSpanMap.size) {\r\n const rowSpanCellFragments = buildRowSpanCell(rowSpanMap, columnIndex, modifiedAttributes);\r\n if (Array.isArray(rowSpanCellFragments)) {\r\n for (let iteratorIndex = 0; iteratorIndex < rowSpanCellFragments.length; iteratorIndex++) {\r\n const rowSpanCellFragment = rowSpanCellFragments[iteratorIndex];\r\n\r\n tableRowFragment.import(rowSpanCellFragment);\r\n }\r\n }\r\n }\r\n\r\n tableRowFragment.up();\r\n\r\n return tableRowFragment;\r\n};\r\n\r\nconst buildTableGridCol = (gridWidth) =>\r\n fragment({ namespaceAlias: { w: namespaces.w } })\r\n .ele('@w', 'gridCol')\r\n .att('@w', 'w', String(gridWidth));\r\n\r\nconst buildTableGrid = (vNode, attributes) => {\r\n const tableGridFragment = fragment({ namespaceAlias: { w: namespaces.w } }).ele('@w', 'tblGrid');\r\n if (vNodeHasChildren(vNode)) {\r\n const gridColumns = vNode.children.filter((childVNode) => childVNode.tagName === 'col');\r\n const gridWidth = attributes.maximumWidth / gridColumns.length;\r\n\r\n for (let index = 0; index < gridColumns.length; index++) {\r\n const tableGridColFragment = buildTableGridCol(gridWidth);\r\n tableGridFragment.import(tableGridColFragment);\r\n }\r\n }\r\n tableGridFragment.up();\r\n\r\n return tableGridFragment;\r\n};\r\n\r\nconst buildTableGridFromTableRow = (vNode, attributes) => {\r\n const tableGridFragment = fragment({ namespaceAlias: { w: namespaces.w } }).ele('@w', 'tblGrid');\r\n if (vNodeHasChildren(vNode)) {\r\n const numberOfGridColumns = vNode.children.reduce((accumulator, childVNode) => {\r\n const colSpan =\r\n childVNode.properties.colSpan ||\r\n (childVNode.properties.style && childVNode.properties.style['column-span']);\r\n\r\n return accumulator + (colSpan ? parseInt(colSpan) : 1);\r\n }, 0);\r\n const gridWidth = attributes.maximumWidth / numberOfGridColumns;\r\n\r\n for (let index = 0; index < numberOfGridColumns; index++) {\r\n const tableGridColFragment = buildTableGridCol(gridWidth);\r\n tableGridFragment.import(tableGridColFragment);\r\n }\r\n }\r\n tableGridFragment.up();\r\n\r\n return tableGridFragment;\r\n};\r\n\r\nconst buildTableBorders = (tableBorder) => {\r\n const tableBordersFragment = fragment({ namespaceAlias: { w: namespaces.w } }).ele(\r\n '@w',\r\n 'tblBorders'\r\n );\r\n\r\n const { color, stroke, ...borders } = tableBorder;\r\n\r\n Object.keys(borders).forEach((border) => {\r\n if (borders[border]) {\r\n const borderFragment = buildBorder(border, borders[border], 0, color, stroke);\r\n tableBordersFragment.import(borderFragment);\r\n }\r\n });\r\n\r\n tableBordersFragment.up();\r\n\r\n return tableBordersFragment;\r\n};\r\n\r\nconst buildTableWidth = (tableWidth) =>\r\n fragment({ namespaceAlias: { w: namespaces.w } })\r\n .ele('@w', 'tblW')\r\n .att('@w', 'type', 'dxa')\r\n .att('@w', 'w', String(tableWidth))\r\n .up();\r\n\r\nconst buildCellMargin = (side, margin) =>\r\n fragment({ namespaceAlias: { w: namespaces.w } })\r\n .ele('@w', side)\r\n .att('@w', 'type', 'dxa')\r\n .att('@w', 'w', String(margin))\r\n .up();\r\n\r\nconst buildTableCellMargins = (margin) => {\r\n const tableCellMarFragment = fragment({ namespaceAlias: { w: namespaces.w } }).ele(\r\n '@w',\r\n 'tblCellMar'\r\n );\r\n\r\n ['top', 'bottom'].forEach((side) => {\r\n const marginFragment = buildCellMargin(side, margin / 2);\r\n tableCellMarFragment.import(marginFragment);\r\n });\r\n ['left', 'right'].forEach((side) => {\r\n const marginFragment = buildCellMargin(side, margin);\r\n tableCellMarFragment.import(marginFragment);\r\n });\r\n\r\n return tableCellMarFragment;\r\n};\r\n\r\nconst buildTableProperties = (attributes) => {\r\n const tablePropertiesFragment = fragment({ namespaceAlias: { w: namespaces.w } }).ele(\r\n '@w',\r\n 'tblPr'\r\n );\r\n\r\n if (attributes && attributes.constructor === Object) {\r\n Object.keys(attributes).forEach((key) => {\r\n switch (key) {\r\n case 'tableBorder':\r\n const tableBordersFragment = buildTableBorders(attributes[key]);\r\n tablePropertiesFragment.import(tableBordersFragment);\r\n // eslint-disable-next-line no-param-reassign\r\n delete attributes.tableBorder;\r\n break;\r\n case 'tableCellSpacing':\r\n const tableCellSpacingFragment = buildTableCellSpacing(attributes[key]);\r\n tablePropertiesFragment.import(tableCellSpacingFragment);\r\n // eslint-disable-next-line no-param-reassign\r\n delete attributes.tableCellSpacing;\r\n break;\r\n case 'width':\r\n if (attributes[key]) {\r\n const tableWidthFragment = buildTableWidth(attributes[key]);\r\n tablePropertiesFragment.import(tableWidthFragment);\r\n }\r\n // eslint-disable-next-line no-param-reassign\r\n delete attributes.width;\r\n break;\r\n }\r\n });\r\n }\r\n const tableCellMarginFragment = buildTableCellMargins(160);\r\n tablePropertiesFragment.import(tableCellMarginFragment);\r\n\r\n // by default, all tables are center aligned.\r\n const alignmentFragment = buildHorizontalAlignment('center');\r\n tablePropertiesFragment.import(alignmentFragment);\r\n\r\n tablePropertiesFragment.up();\r\n\r\n return tablePropertiesFragment;\r\n};\r\n\r\nconst cssBorderParser = (borderString) => {\r\n let [size, stroke, color] = borderString.split(' ');\r\n\r\n if (pointRegex.test(size)) {\r\n const matchedParts = size.match(pointRegex);\r\n // convert point to eighth of a point\r\n size = pointToEIP(matchedParts[1]);\r\n } else if (pixelRegex.test(size)) {\r\n const matchedParts = size.match(pixelRegex);\r\n // convert pixels to eighth of a point\r\n size = pixelToEIP(matchedParts[1]);\r\n }\r\n stroke = stroke && ['dashed', 'dotted', 'double'].includes(stroke) ? stroke : 'single';\r\n\r\n color = color && fixupColorCode(color).toUpperCase();\r\n\r\n return [size, stroke, color];\r\n};\r\n\r\nconst buildTable = async (vNode, attributes, docxDocumentInstance) => {\r\n const tableFragment = fragment({ namespaceAlias: { w: namespaces.w } }).ele('@w', 'tbl');\r\n const modifiedAttributes = { ...attributes };\r\n if (isVNode(vNode) && vNode.properties) {\r\n const tableAttributes = vNode.properties.attributes || {};\r\n const tableStyles = vNode.properties.style || {};\r\n const tableBorders = {};\r\n const tableCellBorders = {};\r\n let [borderSize, borderStrike, borderColor] = [2, 'single', '000000'];\r\n\r\n // eslint-disable-next-line no-restricted-globals\r\n if (!isNaN(tableAttributes.border)) {\r\n borderSize = parseInt(tableAttributes.border, 10);\r\n }\r\n\r\n // css style overrides table border properties\r\n if (tableStyles.border) {\r\n const [cssSize, cssStroke, cssColor] = cssBorderParser(tableStyles.border);\r\n borderSize = cssSize || borderSize;\r\n borderColor = cssColor || borderColor;\r\n borderStrike = cssStroke || borderStrike;\r\n }\r\n\r\n tableBorders.top = borderSize;\r\n tableBorders.bottom = borderSize;\r\n tableBorders.left = borderSize;\r\n tableBorders.right = borderSize;\r\n tableBorders.stroke = borderStrike;\r\n tableBorders.color = borderColor;\r\n\r\n if (tableStyles['border-collapse'] === 'collapse') {\r\n tableBorders.insideV = borderSize;\r\n tableBorders.insideH = borderSize;\r\n } else {\r\n tableBorders.insideV = 0;\r\n tableBorders.insideH = 0;\r\n tableCellBorders.top = 1;\r\n tableCellBorders.bottom = 1;\r\n tableCellBorders.left = 1;\r\n tableCellBorders.right = 1;\r\n }\r\n\r\n modifiedAttributes.tableBorder = tableBorders;\r\n modifiedAttributes.tableCellSpacing = 0;\r\n\r\n if (Object.keys(tableCellBorders).length) {\r\n modifiedAttributes.tableCellBorder = tableCellBorders;\r\n }\r\n\r\n let minimumWidth;\r\n let maximumWidth;\r\n let width;\r\n // Calculate minimum width of table\r\n if (pixelRegex.test(tableStyles['min-width'])) {\r\n minimumWidth = pixelToTWIP(tableStyles['min-width'].match(pixelRegex)[1]);\r\n } else if (percentageRegex.test(tableStyles['min-width'])) {\r\n const percentageValue = tableStyles['min-width'].match(percentageRegex)[1];\r\n minimumWidth = Math.round((percentageValue / 100) * attributes.maximumWidth);\r\n }\r\n\r\n // Calculate maximum width of table\r\n if (pixelRegex.test(tableStyles['max-width'])) {\r\n pixelRegex.lastIndex = 0;\r\n maximumWidth = pixelToTWIP(tableStyles['max-width'].match(pixelRegex)[1]);\r\n } else if (percentageRegex.test(tableStyles['max-width'])) {\r\n percentageRegex.lastIndex = 0;\r\n const percentageValue = tableStyles['max-width'].match(percentageRegex)[1];\r\n maximumWidth = Math.round((percentageValue / 100) * attributes.maximumWidth);\r\n }\r\n\r\n // Calculate specified width of table\r\n if (pixelRegex.test(tableStyles.width)) {\r\n pixelRegex.lastIndex = 0;\r\n width = pixelToTWIP(tableStyles.width.match(pixelRegex)[1]);\r\n } else if (percentageRegex.test(tableStyles.width)) {\r\n percentageRegex.lastIndex = 0;\r\n const percentageValue = tableStyles.width.match(percentageRegex)[1];\r\n width = Math.round((percentageValue / 100) * attributes.maximumWidth);\r\n }\r\n\r\n // If width isn't supplied, we should have min-width as the width.\r\n if (width) {\r\n modifiedAttributes.width = width;\r\n if (maximumWidth) {\r\n modifiedAttributes.width = Math.min(modifiedAttributes.width, maximumWidth);\r\n }\r\n if (minimumWidth) {\r\n modifiedAttributes.width = Math.max(modifiedAttributes.width, minimumWidth);\r\n }\r\n } else if (minimumWidth) {\r\n modifiedAttributes.width = minimumWidth;\r\n }\r\n if (modifiedAttributes.width) {\r\n modifiedAttributes.width = Math.min(modifiedAttributes.width, attributes.maximumWidth);\r\n }\r\n }\r\n const tablePropertiesFragment = buildTableProperties(modifiedAttributes);\r\n tableFragment.import(tablePropertiesFragment);\r\n\r\n const rowSpanMap = new Map();\r\n\r\n if (vNodeHasChildren(vNode)) {\r\n for (let index = 0; index < vNode.children.length; index++) {\r\n const childVNode = vNode.children[index];\r\n if (childVNode.tagName === 'colgroup') {\r\n const tableGridFragment = buildTableGrid(childVNode, modifiedAttributes);\r\n tableFragment.import(tableGridFragment);\r\n } else if (childVNode.tagName === 'thead') {\r\n for (let iteratorIndex = 0; iteratorIndex < childVNode.children.length; iteratorIndex++) {\r\n const grandChildVNode = childVNode.children[iteratorIndex];\r\n if (grandChildVNode.tagName === 'tr') {\r\n if (iteratorIndex === 0) {\r\n const tableGridFragment = buildTableGridFromTableRow(\r\n grandChildVNode,\r\n modifiedAttributes\r\n );\r\n tableFragment.import(tableGridFragment);\r\n }\r\n const tableRowFragment = await buildTableRow(\r\n grandChildVNode,\r\n modifiedAttributes,\r\n rowSpanMap,\r\n docxDocumentInstance\r\n );\r\n tableFragment.import(tableRowFragment);\r\n }\r\n }\r\n } else if (childVNode.tagName === 'tbody') {\r\n for (let iteratorIndex = 0; iteratorIndex < childVNode.children.length; iteratorIndex++) {\r\n const grandChildVNode = childVNode.children[iteratorIndex];\r\n if (grandChildVNode.tagName === 'tr') {\r\n if (iteratorIndex === 0) {\r\n const tableGridFragment = buildTableGridFromTableRow(\r\n grandChildVNode,\r\n modifiedAttributes\r\n );\r\n tableFragment.import(tableGridFragment);\r\n }\r\n const tableRowFragment = await buildTableRow(\r\n grandChildVNode,\r\n modifiedAttributes,\r\n rowSpanMap,\r\n docxDocumentInstance\r\n );\r\n tableFragment.import(tableRowFragment);\r\n }\r\n }\r\n } else if (childVNode.tagName === 'tr') {\r\n if (index === 0) {\r\n const tableGridFragment = buildTableGridFromTableRow(childVNode, modifiedAttributes);\r\n tableFragment.import(tableGridFragment);\r\n }\r\n const tableRowFragment = await buildTableRow(\r\n childVNode,\r\n modifiedAttributes,\r\n rowSpanMap,\r\n docxDocumentInstance\r\n );\r\n tableFragment.import(tableRowFragment);\r\n }\r\n }\r\n }\r\n tableFragment.up();\r\n\r\n return tableFragment;\r\n};\r\n\r\nconst buildPresetGeometry = () =>\r\n fragment({ namespaceAlias: { a: namespaces.a } })\r\n .ele('@a', 'prstGeom')\r\n .att('prst', 'rect')\r\n .up();\r\n\r\nconst buildExtents = ({ width, height }) =>\r\n fragment({ namespaceAlias: { a: namespaces.a } })\r\n .ele('@a', 'ext')\r\n .att('cx', width)\r\n .att('cy', height)\r\n .up();\r\n\r\nconst buildOffset = () =>\r\n fragment({ namespaceAlias: { a: namespaces.a } })\r\n .ele('@a', 'off')\r\n .att('x', '0')\r\n .att('y', '0')\r\n .up();\r\n\r\nconst buildGraphicFrameTransform = (attributes) => {\r\n const graphicFrameTransformFragment = fragment({ namespaceAlias: { a: namespaces.a } }).ele(\r\n '@a',\r\n 'xfrm'\r\n );\r\n\r\n const offsetFragment = buildOffset();\r\n graphicFrameTransformFragment.import(offsetFragment);\r\n const extentsFragment = buildExtents(attributes);\r\n graphicFrameTransformFragment.import(extentsFragment);\r\n\r\n graphicFrameTransformFragment.up();\r\n\r\n return graphicFrameTransformFragment;\r\n};\r\n\r\nconst buildShapeProperties = (attributes) => {\r\n const shapeProperties = fragment({ namespaceAlias: { pic: namespaces.pic } }).ele('@pic', 'spPr');\r\n\r\n const graphicFrameTransformFragment = buildGraphicFrameTransform(attributes);\r\n shapeProperties.import(graphicFrameTransformFragment);\r\n const presetGeometryFragment = buildPresetGeometry();\r\n shapeProperties.import(presetGeometryFragment);\r\n\r\n shapeProperties.up();\r\n\r\n return shapeProperties;\r\n};\r\n\r\nconst buildFillRect = () =>\r\n fragment({ namespaceAlias: { a: namespaces.a } })\r\n .ele('@a', 'fillRect')\r\n .up();\r\n\r\nconst buildStretch = () => {\r\n const stretchFragment = fragment({ namespaceAlias: { a: namespaces.a } }).ele('@a', 'stretch');\r\n\r\n const fillRectFragment = buildFillRect();\r\n stretchFragment.import(fillRectFragment);\r\n\r\n stretchFragment.up();\r\n\r\n return stretchFragment;\r\n};\r\n\r\nconst buildSrcRectFragment = () =>\r\n fragment({ namespaceAlias: { a: namespaces.a } })\r\n .ele('@a', 'srcRect')\r\n .att('b', '0')\r\n .att('l', '0')\r\n .att('r', '0')\r\n .att('t', '0')\r\n .up();\r\n\r\nconst buildBinaryLargeImageOrPicture = (relationshipId) =>\r\n fragment({\r\n namespaceAlias: { a: namespaces.a, r: namespaces.r },\r\n })\r\n .ele('@a', 'blip')\r\n .att('@r', 'embed', `rId${relationshipId}`)\r\n // FIXME: possible values 'email', 'none', 'print', 'hqprint', 'screen'\r\n .att('cstate', 'print')\r\n .up();\r\n\r\nconst buildBinaryLargeImageOrPictureFill = (relationshipId) => {\r\n const binaryLargeImageOrPictureFillFragment = fragment({\r\n namespaceAlias: { pic: namespaces.pic },\r\n }).ele('@pic', 'blipFill');\r\n const binaryLargeImageOrPictureFragment = buildBinaryLargeImageOrPicture(relationshipId);\r\n binaryLargeImageOrPictureFillFragment.import(binaryLargeImageOrPictureFragment);\r\n const srcRectFragment = buildSrcRectFragment();\r\n binaryLargeImageOrPictureFillFragment.import(srcRectFragment);\r\n const stretchFragment = buildStretch();\r\n binaryLargeImageOrPictureFillFragment.import(stretchFragment);\r\n\r\n binaryLargeImageOrPictureFillFragment.up();\r\n\r\n return binaryLargeImageOrPictureFillFragment;\r\n};\r\n\r\nconst buildNonVisualPictureDrawingProperties = () =>\r\n fragment({ namespaceAlias: { pic: namespaces.pic } })\r\n .ele('@pic', 'cNvPicPr')\r\n .up();\r\n\r\nconst buildNonVisualDrawingProperties = (\r\n pictureId,\r\n pictureNameWithExtension,\r\n pictureDescription = ''\r\n) =>\r\n fragment({ namespaceAlias: { pic: namespaces.pic } })\r\n .ele('@pic', 'cNvPr')\r\n .att('id', pictureId)\r\n .att('name', pictureNameWithExtension)\r\n .att('descr', pictureDescription)\r\n .up();\r\n\r\nconst buildNonVisualPictureProperties = (\r\n pictureId,\r\n pictureNameWithExtension,\r\n pictureDescription\r\n) => {\r\n const nonVisualPicturePropertiesFragment = fragment({\r\n namespaceAlias: { pic: namespaces.pic },\r\n }).ele('@pic', 'nvPicPr');\r\n // TODO: Handle picture attributes\r\n const nonVisualDrawingPropertiesFragment = buildNonVisualDrawingProperties(\r\n pictureId,\r\n pictureNameWithExtension,\r\n pictureDescription\r\n );\r\n nonVisualPicturePropertiesFragment.import(nonVisualDrawingPropertiesFragment);\r\n const nonVisualPictureDrawingPropertiesFragment = buildNonVisualPictureDrawingProperties();\r\n nonVisualPicturePropertiesFragment.import(nonVisualPictureDrawingPropertiesFragment);\r\n nonVisualPicturePropertiesFragment.up();\r\n\r\n return nonVisualPicturePropertiesFragment;\r\n};\r\n\r\nconst buildPicture = ({\r\n id,\r\n fileNameWithExtension,\r\n description,\r\n relationshipId,\r\n width,\r\n height,\r\n}) => {\r\n const pictureFragment = fragment({ namespaceAlias: { pic: namespaces.pic } }).ele('@pic', 'pic');\r\n const nonVisualPicturePropertiesFragment = buildNonVisualPictureProperties(\r\n id,\r\n fileNameWithExtension,\r\n description\r\n );\r\n pictureFragment.import(nonVisualPicturePropertiesFragment);\r\n const binaryLargeImageOrPictureFill = buildBinaryLargeImageOrPictureFill(relationshipId);\r\n pictureFragment.import(binaryLargeImageOrPictureFill);\r\n const shapeProperties = buildShapeProperties({ width, height });\r\n pictureFragment.import(shapeProperties);\r\n pictureFragment.up();\r\n\r\n return pictureFragment;\r\n};\r\n\r\nconst buildGraphicData = (graphicType, attributes) => {\r\n const graphicDataFragment = fragment({ namespaceAlias: { a: namespaces.a } })\r\n .ele('@a', 'graphicData')\r\n .att('uri', 'http://schemas.openxmlformats.org/drawingml/2006/picture');\r\n if (graphicType === 'picture') {\r\n const pictureFragment = buildPicture(attributes);\r\n graphicDataFragment.import(pictureFragment);\r\n }\r\n graphicDataFragment.up();\r\n\r\n return graphicDataFragment;\r\n};\r\n\r\nconst buildGraphic = (graphicType, attributes) => {\r\n const graphicFragment = fragment({ namespaceAlias: { a: namespaces.a } }).ele('@a', 'graphic');\r\n // TODO: Handle drawing type\r\n const graphicDataFragment = buildGraphicData(graphicType, attributes);\r\n graphicFragment.import(graphicDataFragment);\r\n graphicFragment.up();\r\n\r\n return graphicFragment;\r\n};\r\n\r\nconst buildDrawingObjectNonVisualProperties = (pictureId, pictureName) =>\r\n fragment({ namespaceAlias: { wp: namespaces.wp } })\r\n .ele('@wp', 'docPr')\r\n .att('id', pictureId)\r\n .att('name', pictureName)\r\n .up();\r\n\r\nconst buildWrapSquare = () =>\r\n fragment({ namespaceAlias: { wp: namespaces.wp } })\r\n .ele('@wp', 'wrapSquare')\r\n .att('wrapText', 'bothSides')\r\n .att('distB', '228600')\r\n .att('distT', '228600')\r\n .att('distL', '228600')\r\n .att('distR', '228600')\r\n .up();\r\n\r\n// eslint-disable-next-line no-unused-vars\r\nconst buildWrapNone = () =>\r\n fragment({ namespaceAlias: { wp: namespaces.wp } })\r\n .ele('@wp', 'wrapNone')\r\n .up();\r\n\r\nconst buildEffectExtentFragment = () =>\r\n fragment({ namespaceAlias: { wp: namespaces.wp } })\r\n .ele('@wp', 'effectExtent')\r\n .att('b', '0')\r\n .att('l', '0')\r\n .att('r', '0')\r\n .att('t', '0')\r\n .up();\r\n\r\nconst buildExtent = ({ width, height }) =>\r\n fragment({ namespaceAlias: { wp: namespaces.wp } })\r\n .ele('@wp', 'extent')\r\n .att('cx', width)\r\n .att('cy', height)\r\n .up();\r\n\r\nconst buildPositionV = () =>\r\n fragment({ namespaceAlias: { wp: namespaces.wp } })\r\n .ele('@wp', 'positionV')\r\n .att('relativeFrom', 'paragraph')\r\n .ele('@wp', 'posOffset')\r\n .txt('19050')\r\n .up()\r\n .up();\r\n\r\nconst buildPositionH = () =>\r\n fragment({ namespaceAlias: { wp: namespaces.wp } })\r\n .ele('@wp', 'positionH')\r\n .att('relativeFrom', 'column')\r\n .ele('@wp', 'posOffset')\r\n .txt('19050')\r\n .up()\r\n .up();\r\n\r\nconst buildSimplePos = () =>\r\n fragment({ namespaceAlias: { wp: namespaces.wp } })\r\n .ele('@wp', 'simplePos')\r\n .att('x', '0')\r\n .att('y', '0')\r\n .up();\r\n\r\nconst buildAnchoredDrawing = (graphicType, attributes) => {\r\n const anchoredDrawingFragment = fragment({ namespaceAlias: { wp: namespaces.wp } })\r\n .ele('@wp', 'anchor')\r\n .att('distB', '0')\r\n .att('distL', '0')\r\n .att('distR', '0')\r\n .att('distT', '0')\r\n .att('relativeHeight', '0')\r\n .att('behindDoc', 'false')\r\n .att('locked', 'true')\r\n .att('layoutInCell', 'true')\r\n .att('allowOverlap', 'false')\r\n .att('simplePos', 'false');\r\n // Even though simplePos isnt supported by Word 2007 simplePos is required.\r\n const simplePosFragment = buildSimplePos();\r\n anchoredDrawingFragment.import(simplePosFragment);\r\n const positionHFragment = buildPositionH();\r\n anchoredDrawingFragment.import(positionHFragment);\r\n const positionVFragment = buildPositionV();\r\n anchoredDrawingFragment.import(positionVFragment);\r\n const extentFragment = buildExtent({ width: attributes.width, height: attributes.height });\r\n anchoredDrawingFragment.import(extentFragment);\r\n const effectExtentFragment = buildEffectExtentFragment();\r\n anchoredDrawingFragment.import(effectExtentFragment);\r\n const wrapSquareFragment = buildWrapSquare();\r\n anchoredDrawingFragment.import(wrapSquareFragment);\r\n const drawingObjectNonVisualPropertiesFragment = buildDrawingObjectNonVisualProperties(\r\n attributes.id,\r\n attributes.fileNameWithExtension\r\n );\r\n anchoredDrawingFragment.import(drawingObjectNonVisualPropertiesFragment);\r\n const graphicFragment = buildGraphic(graphicType, attributes);\r\n anchoredDrawingFragment.import(graphicFragment);\r\n\r\n anchoredDrawingFragment.up();\r\n\r\n return anchoredDrawingFragment;\r\n};\r\n\r\nconst buildInlineDrawing = (graphicType, attributes) => {\r\n const inlineDrawingFragment = fragment({ namespaceAlias: { wp: namespaces.wp } })\r\n .ele('@wp', 'inline')\r\n .att('distB', '0')\r\n .att('distL', '0')\r\n .att('distR', '0')\r\n .att('distT', '0');\r\n\r\n const extentFragment = buildExtent({ width: attributes.width, height: attributes.height });\r\n inlineDrawingFragment.import(extentFragment);\r\n const effectExtentFragment = buildEffectExtentFragment();\r\n inlineDrawingFragment.import(effectExtentFragment);\r\n const drawingObjectNonVisualPropertiesFragment = buildDrawingObjectNonVisualProperties(\r\n attributes.id,\r\n attributes.fileNameWithExtension\r\n );\r\n inlineDrawingFragment.import(drawingObjectNonVisualPropertiesFragment);\r\n const graphicFragment = buildGraphic(graphicType, attributes);\r\n inlineDrawingFragment.import(graphicFragment);\r\n\r\n inlineDrawingFragment.up();\r\n\r\n return inlineDrawingFragment;\r\n};\r\n\r\nconst buildDrawing = (inlineOrAnchored = false, graphicType, attributes) => {\r\n const drawingFragment = fragment({ namespaceAlias: { w: namespaces.w } }).ele('@w', 'drawing');\r\n const inlineOrAnchoredDrawingFragment = inlineOrAnchored\r\n ? buildInlineDrawing(graphicType, attributes)\r\n : buildAnchoredDrawing(graphicType, attributes);\r\n drawingFragment.import(inlineOrAnchoredDrawingFragment);\r\n drawingFragment.up();\r\n\r\n return drawingFragment;\r\n};\r\n\r\nexport {\r\n buildParagraph,\r\n buildTable,\r\n buildNumberingInstances,\r\n buildLineBreak,\r\n buildIndentation,\r\n buildTextElement,\r\n buildBold,\r\n buildItalics,\r\n buildUnderline,\r\n buildDrawing,\r\n fixupLineHeight,\r\n};\r\n","/* eslint-disable no-await-in-loop */\r\n/* eslint-disable no-case-declarations */\r\nimport { fragment } from 'xmlbuilder2';\r\nimport VNode from 'virtual-dom/vnode/vnode';\r\nimport VText from 'virtual-dom/vnode/vtext';\r\nimport isVNode from 'virtual-dom/vnode/is-vnode';\r\nimport isVText from 'virtual-dom/vnode/is-vtext';\r\n// eslint-disable-next-line import/no-named-default\r\nimport { default as HTMLToVDOM } from 'html-to-vdom';\r\nimport escape from 'escape-html';\r\nimport sizeOf from 'image-size';\r\nimport imageToBase64 from 'image-to-base64';\r\nimport mimeTypes from 'mime-types';\r\n\r\n// FIXME: remove the cyclic dependency\r\n// eslint-disable-next-line import/no-cycle\r\nimport * as xmlBuilder from './xml-builder';\r\nimport namespaces from '../namespaces';\r\nimport { imageType, internalRelationship } from '../constants';\r\nimport { vNodeHasChildren } from '../utils/vnode';\r\nimport { isValidUrl } from '../utils/url';\r\n\r\nconst convertHTML = HTMLToVDOM({\r\n VNode,\r\n VText,\r\n});\r\n\r\n// eslint-disable-next-line consistent-return, no-shadow\r\nexport const buildImage = async (docxDocumentInstance, vNode, maximumWidth = null) => {\r\n let response = null;\r\n let base64Uri = null;\r\n try {\r\n const imageSource = vNode.properties.src;\r\n if (isValidUrl(imageSource)) {\r\n const base64String = await imageToBase64(imageSource).catch((error) => {\r\n // eslint-disable-next-line no-console\r\n console.warning(`skipping image download and conversion due to ${error}`);\r\n });\r\n\r\n if (base64String) {\r\n base64Uri = `data:${mimeTypes.lookup(imageSource)};base64, ${base64String}`;\r\n }\r\n } else {\r\n base64Uri = decodeURIComponent(vNode.properties.src);\r\n }\r\n if (base64Uri) {\r\n response = docxDocumentInstance.createMediaFile(base64Uri);\r\n }\r\n } catch (error) {\r\n // NOOP\r\n }\r\n if (response) {\r\n docxDocumentInstance.zip\r\n .folder('word')\r\n .folder('media')\r\n .file(response.fileNameWithExtension, Buffer.from(response.fileContent, 'base64'), {\r\n createFolders: false,\r\n });\r\n\r\n const documentRelsId = docxDocumentInstance.createDocumentRelationships(\r\n docxDocumentInstance.relationshipFilename,\r\n imageType,\r\n `media/${response.fileNameWithExtension}`,\r\n internalRelationship\r\n );\r\n\r\n const imageBuffer = Buffer.from(response.fileContent, 'base64');\r\n const imageProperties = sizeOf(imageBuffer);\r\n\r\n const imageFragment = await xmlBuilder.buildParagraph(\r\n vNode,\r\n {\r\n type: 'picture',\r\n inlineOrAnchored: true,\r\n relationshipId: documentRelsId,\r\n ...response,\r\n maximumWidth: maximumWidth || docxDocumentInstance.availableDocumentSpace,\r\n originalWidth: imageProperties.width,\r\n originalHeight: imageProperties.height,\r\n },\r\n docxDocumentInstance\r\n );\r\n\r\n return imageFragment;\r\n }\r\n};\r\n\r\nexport const buildList = async (vNode, docxDocumentInstance, xmlFragment) => {\r\n const listElements = [];\r\n\r\n let vNodeObjects = [\r\n {\r\n node: vNode,\r\n level: 0,\r\n type: vNode.tagName,\r\n numberingId: docxDocumentInstance.createNumbering(vNode.tagName, vNode.properties),\r\n },\r\n ];\r\n while (vNodeObjects.length) {\r\n const tempVNodeObject = vNodeObjects.shift();\r\n\r\n if (\r\n isVText(tempVNodeObject.node) ||\r\n (isVNode(tempVNodeObject.node) && !['ul', 'ol', 'li'].includes(tempVNodeObject.node.tagName))\r\n ) {\r\n const paragraphFragment = await xmlBuilder.buildParagraph(\r\n tempVNodeObject.node,\r\n {\r\n numbering: { levelId: tempVNodeObject.level, numberingId: tempVNodeObject.numberingId },\r\n },\r\n docxDocumentInstance\r\n );\r\n\r\n xmlFragment.import(paragraphFragment);\r\n }\r\n\r\n if (\r\n tempVNodeObject.node.children &&\r\n tempVNodeObject.node.children.length &&\r\n ['ul', 'ol', 'li'].includes(tempVNodeObject.node.tagName)\r\n ) {\r\n const tempVNodeObjects = tempVNodeObject.node.children.reduce((accumulator, childVNode) => {\r\n if (['ul', 'ol'].includes(childVNode.tagName)) {\r\n accumulator.push({\r\n node: childVNode,\r\n level: tempVNodeObject.level + 1,\r\n type: childVNode.tagName,\r\n numberingId: docxDocumentInstance.createNumbering(\r\n childVNode.tagName,\r\n childVNode.properties\r\n ),\r\n });\r\n } else {\r\n // eslint-disable-next-line no-lonely-if\r\n if (\r\n accumulator.length > 0 &&\r\n isVNode(accumulator[accumulator.length - 1].node) &&\r\n accumulator[accumulator.length - 1].node.tagName.toLowerCase() === 'p'\r\n ) {\r\n accumulator[accumulator.length - 1].node.children.push(childVNode);\r\n } else {\r\n const paragraphVNode = new VNode(\r\n 'p',\r\n null,\r\n // eslint-disable-next-line no-nested-ternary\r\n isVText(childVNode)\r\n ? [childVNode]\r\n : // eslint-disable-next-line no-nested-ternary\r\n isVNode(childVNode)\r\n ? childVNode.tagName.toLowerCase() === 'li'\r\n ? [...childVNode.children]\r\n : [childVNode]\r\n : []\r\n );\r\n accumulator.push({\r\n // eslint-disable-next-line prettier/prettier, no-nested-ternary\r\n node: isVNode(childVNode)\r\n ? // eslint-disable-next-line prettier/prettier, no-nested-ternary\r\n childVNode.tagName.toLowerCase() === 'li'\r\n ? childVNode\r\n : childVNode.tagName.toLowerCase() !== 'p'\r\n ? paragraphVNode\r\n : childVNode\r\n : // eslint-disable-next-line prettier/prettier\r\n paragraphVNode,\r\n level: tempVNodeObject.level,\r\n type: tempVNodeObject.type,\r\n numberingId: tempVNodeObject.numberingId,\r\n });\r\n }\r\n }\r\n\r\n return accumulator;\r\n }, []);\r\n vNodeObjects = tempVNodeObjects.concat(vNodeObjects);\r\n }\r\n }\r\n\r\n return listElements;\r\n};\r\n\r\nasync function findXMLEquivalent(docxDocumentInstance, vNode, xmlFragment) {\r\n if (\r\n vNode.tagName === 'div' &&\r\n (vNode.properties.attributes.class === 'page-break' ||\r\n (vNode.properties.style && vNode.properties.style['page-break-after']))\r\n ) {\r\n const paragraphFragment = fragment({ namespaceAlias: { w: namespaces.w } })\r\n .ele('@w', 'p')\r\n .ele('@w', 'r')\r\n .ele('@w', 'br')\r\n .att('@w', 'type', 'page')\r\n .up()\r\n .up()\r\n .up();\r\n\r\n xmlFragment.import(paragraphFragment);\r\n return;\r\n }\r\n\r\n switch (vNode.tagName) {\r\n case 'h1':\r\n case 'h2':\r\n case 'h3':\r\n case 'h4':\r\n case 'h5':\r\n case 'h6':\r\n const headingFragment = await xmlBuilder.buildParagraph(\r\n vNode,\r\n {\r\n paragraphStyle: `Heading${vNode.tagName[1]}`,\r\n },\r\n docxDocumentInstance\r\n );\r\n xmlFragment.import(headingFragment);\r\n return;\r\n case 'span':\r\n case 'strong':\r\n case 'b':\r\n case 'em':\r\n case 'i':\r\n case 'u':\r\n case 'ins':\r\n case 'strike':\r\n case 'del':\r\n case 's':\r\n case 'sub':\r\n case 'sup':\r\n case 'mark':\r\n case 'p':\r\n case 'a':\r\n case 'blockquote':\r\n case 'code':\r\n case 'pre':\r\n const paragraphFragment = await xmlBuilder.buildParagraph(vNode, {}, docxDocumentInstance);\r\n xmlFragment.import(paragraphFragment);\r\n return;\r\n case 'figure':\r\n if (vNodeHasChildren(vNode)) {\r\n // eslint-disable-next-line no-plusplus\r\n for (let index = 0; index < vNode.children.length; index++) {\r\n const childVNode = vNode.children[index];\r\n if (childVNode.tagName === 'table') {\r\n const tableFragment = await xmlBuilder.buildTable(\r\n childVNode,\r\n {\r\n maximumWidth: docxDocumentInstance.availableDocumentSpace,\r\n rowCantSplit: docxDocumentInstance.tableRowCantSplit,\r\n },\r\n docxDocumentInstance\r\n );\r\n xmlFragment.import(tableFragment);\r\n // Adding empty paragraph for space after table\r\n const emptyParagraphFragment = await xmlBuilder.buildParagraph(null, {});\r\n xmlFragment.import(emptyParagraphFragment);\r\n } else if (childVNode.tagName === 'img') {\r\n const imageFragment = await buildImage(docxDocumentInstance, childVNode);\r\n if (imageFragment) {\r\n xmlFragment.import(imageFragment);\r\n }\r\n }\r\n }\r\n }\r\n return;\r\n case 'table':\r\n const tableFragment = await xmlBuilder.buildTable(\r\n vNode,\r\n {\r\n maximumWidth: docxDocumentInstance.availableDocumentSpace,\r\n rowCantSplit: docxDocumentInstance.tableRowCantSplit,\r\n },\r\n docxDocumentInstance\r\n );\r\n xmlFragment.import(tableFragment);\r\n // Adding empty paragraph for space after table\r\n const emptyParagraphFragment = await xmlBuilder.buildParagraph(null, {});\r\n xmlFragment.import(emptyParagraphFragment);\r\n return;\r\n case 'ol':\r\n case 'ul':\r\n await buildList(vNode, docxDocumentInstance, xmlFragment);\r\n return;\r\n case 'img':\r\n const imageFragment = await buildImage(docxDocumentInstance, vNode);\r\n if (imageFragment) {\r\n xmlFragment.import(imageFragment);\r\n }\r\n return;\r\n case 'br':\r\n const linebreakFragment = await xmlBuilder.buildParagraph(null, {});\r\n xmlFragment.import(linebreakFragment);\r\n return;\r\n }\r\n if (vNodeHasChildren(vNode)) {\r\n // eslint-disable-next-line no-plusplus\r\n for (let index = 0; index < vNode.children.length; index++) {\r\n const childVNode = vNode.children[index];\r\n // eslint-disable-next-line no-use-before-define\r\n await convertVTreeToXML(docxDocumentInstance, childVNode, xmlFragment);\r\n }\r\n }\r\n}\r\n\r\n// eslint-disable-next-line consistent-return\r\nexport async function convertVTreeToXML(docxDocumentInstance, vTree, xmlFragment) {\r\n if (!vTree) {\r\n // eslint-disable-next-line no-useless-return\r\n return '';\r\n }\r\n if (Array.isArray(vTree) && vTree.length) {\r\n // eslint-disable-next-line no-plusplus\r\n for (let index = 0; index < vTree.length; index++) {\r\n const vNode = vTree[index];\r\n await convertVTreeToXML(docxDocumentInstance, vNode, xmlFragment);\r\n }\r\n } else if (isVNode(vTree)) {\r\n await findXMLEquivalent(docxDocumentInstance, vTree, xmlFragment);\r\n } else if (isVText(vTree)) {\r\n xmlBuilder.buildTextElement(xmlFragment, escape(String(vTree.text)));\r\n }\r\n return xmlFragment;\r\n}\r\n\r\nasync function renderDocumentFile(docxDocumentInstance) {\r\n const vTree = convertHTML(docxDocumentInstance.htmlString);\r\n\r\n const xmlFragment = fragment({ namespaceAlias: { w: namespaces.w } });\r\n\r\n const populatedXmlFragment = await convertVTreeToXML(docxDocumentInstance, vTree, xmlFragment);\r\n\r\n return populatedXmlFragment;\r\n}\r\n\r\nexport{ renderDocumentFile};\r\n","/* eslint-disable import/prefer-default-export */\r\nexport { renderDocumentFile } from './render-document-file';\r\nexport { convertVTreeToXML } from './render-document-file';\r\n","class ListStyleBuilder {\r\n // defaults is an object passed in from constants.js / numbering with the following properties:\r\n // defaultOrderedListStyleType: 'decimal' (unless otherwise specified)\r\n constructor(defaults) {\r\n this.defaults = defaults || { defaultOrderedListStyleType: 'decimal' };\r\n }\r\n\r\n // eslint-disable-next-line class-methods-use-this\r\n getListStyleType(listType) {\r\n switch (listType) {\r\n case 'upper-roman':\r\n return 'upperRoman';\r\n case 'lower-roman':\r\n return 'lowerRoman';\r\n case 'upper-alpha':\r\n case 'upper-alpha-bracket-end':\r\n return 'upperLetter';\r\n case 'lower-alpha':\r\n case 'lower-alpha-bracket-end':\r\n return 'lowerLetter';\r\n case 'decimal':\r\n case 'decimal-bracket':\r\n return 'decimal';\r\n default:\r\n return this.defaults.defaultOrderedListStyleType;\r\n }\r\n }\r\n\r\n getListPrefixSuffix(style, lvl) {\r\n let listType = this.defaults.defaultOrderedListStyleType;\r\n\r\n if (style && style['list-style-type']) {\r\n listType = style['list-style-type'];\r\n }\r\n\r\n switch (listType) {\r\n case 'upper-roman':\r\n case 'lower-roman':\r\n case 'upper-alpha':\r\n case 'lower-alpha':\r\n return `%${lvl + 1}.`;\r\n case 'upper-alpha-bracket-end':\r\n case 'lower-alpha-bracket-end':\r\n case 'decimal-bracket-end':\r\n return `%${lvl + 1})`;\r\n case 'decimal-bracket':\r\n return `(%${lvl + 1})`;\r\n case 'decimal':\r\n default:\r\n return `%${lvl + 1}.`;\r\n }\r\n }\r\n}\r\n\r\nexport {ListStyleBuilder};\r\n","import { create, fragment } from 'xmlbuilder2';\r\nimport { nanoid } from 'nanoid';\r\n\r\nimport {\r\n generateCoreXML,\r\n generateStylesXML,\r\n generateNumberingXMLTemplate,\r\n generateThemeXML,\r\n documentRelsXML as documentRelsXMLString,\r\n settingsXML as settingsXMLString,\r\n webSettingsXML as webSettingsXMLString,\r\n contentTypesXML as contentTypesXMLString,\r\n fontTableXML as fontTableXMLString,\r\n genericRelsXML as genericRelsXMLString,\r\n generateDocumentTemplate,\r\n} from './schemas';\r\nimport { convertVTreeToXML } from './helpers';\r\nimport namespaces from './namespaces';\r\nimport {\r\n footerType as footerFileType,\r\n headerType as headerFileType,\r\n themeType as themeFileType,\r\n landscapeMargins,\r\n portraitMargins,\r\n defaultOrientation,\r\n landscapeWidth,\r\n landscapeHeight,\r\n applicationName,\r\n defaultFont,\r\n defaultFontSize,\r\n hyperlinkType,\r\n documentFileName,\r\n imageType,\r\n defaultDocumentOptions,\r\n} from './constants';\r\nimport {ListStyleBuilder} from './utils/list';\r\n\r\nfunction generateContentTypesFragments(contentTypesXML, type, objects) {\r\n if (objects && Array.isArray(objects)) {\r\n objects.forEach((object) => {\r\n const contentTypesFragment = fragment({ defaultNamespace: { ele: namespaces.contentTypes } })\r\n .ele('Override')\r\n .att('PartName', `/word/${type}${object[`${type}Id`]}.xml`)\r\n .att(\r\n 'ContentType',\r\n `application/vnd.openxmlformats-officedocument.wordprocessingml.${type}+xml`\r\n )\r\n .up();\r\n\r\n contentTypesXML.root().import(contentTypesFragment);\r\n });\r\n }\r\n}\r\n\r\nfunction generateSectionReferenceXML(documentXML, documentSectionType, objects, isEnabled) {\r\n if (isEnabled && objects && Array.isArray(objects) && objects.length) {\r\n const xmlFragment = fragment();\r\n objects.forEach(({ relationshipId, type }) => {\r\n const objectFragment = fragment({ namespaceAlias: { w: namespaces.w, r: namespaces.r } })\r\n .ele('@w', `${documentSectionType}Reference`)\r\n .att('@r', 'id', `rId${relationshipId}`)\r\n .att('@w', 'type', type)\r\n .up();\r\n xmlFragment.import(objectFragment);\r\n });\r\n\r\n documentXML.root().first().first().import(xmlFragment);\r\n }\r\n}\r\n\r\nfunction generateXMLString(xmlString) {\r\n const xmlDocumentString = create({ encoding: 'UTF-8', standalone: true }, xmlString);\r\n return xmlDocumentString.toString({ prettyPrint: true });\r\n}\r\n\r\n async function generateSectionXML(vTree, type = 'header') {\r\n debugger;\r\n const sectionXML = create({\r\n encoding: 'UTF-8',\r\n standalone: true,\r\n namespaceAlias: {\r\n a:namespaces.a,\r\n cdr:namespaces.cdr,\r\n o:namespaces.o,\r\n pic:namespaces.pic,\r\n r:namespaces.r,\r\n v:namespaces.v,\r\n ve:namespaces.ve,\r\n vt:namespaces.vt,\r\n w:namespaces.w,\r\n w10:namespaces.w10,\r\n wp:namespaces.wp,\r\n wne:namespaces.wne\r\n },\r\n }).ele('@w', type === 'header' ? 'hdr' : 'ftr');\r\n\r\n const XMLFragment = fragment();\r\n await convertVTreeToXML(this, vTree, XMLFragment);\r\n if (type === 'footer' && XMLFragment.first().node.tagName === 'p' && this.pageNumber) {\r\n XMLFragment.first().import(\r\n fragment({ namespaceAlias: { w: namespaces.w } })\r\n .ele('@w', 'fldSimple')\r\n .att('@w', 'instr', 'PAGE')\r\n .ele('@w', 'r')\r\n .up()\r\n .up()\r\n );\r\n }\r\n sectionXML.root().import(XMLFragment);\r\n\r\n const referenceName = type === 'header' ? 'Header' : 'Footer';\r\n this[`last${referenceName}Id`] += 1;\r\n\r\n return { [`${type}Id`]: this[`last${referenceName}Id`], [`${type}XML`]: sectionXML };\r\n}\r\n\r\nexport class DocxDocument {\r\n constructor(properties) {\r\n this.zip = properties.zip;\r\n this.htmlString = properties.htmlString;\r\n this.orientation = properties.orientation;\r\n this.pageSize = properties.pageSize || defaultDocumentOptions.pageSize;\r\n\r\n const isPortraitOrientation = this.orientation === defaultOrientation;\r\n const height = this.pageSize.height ? this.pageSize.height : landscapeHeight;\r\n const width = this.pageSize.width ? this.pageSize.width : landscapeWidth;\r\n\r\n this.width = isPortraitOrientation ? width : height;\r\n this.height = isPortraitOrientation ? height : width;\r\n\r\n const marginsObject = properties.margins;\r\n this.margins =\r\n // eslint-disable-next-line no-nested-ternary\r\n marginsObject && Object.keys(marginsObject).length\r\n ? marginsObject\r\n : isPortraitOrientation\r\n ? portraitMargins\r\n : landscapeMargins;\r\n\r\n this.availableDocumentSpace = this.width - this.margins.left - this.margins.right;\r\n this.title = properties.title || '';\r\n this.subject = properties.subject || '';\r\n this.creator = properties.creator || applicationName;\r\n this.keywords = properties.keywords || [applicationName];\r\n this.description = properties.description || '';\r\n this.lastModifiedBy = properties.lastModifiedBy || applicationName;\r\n this.revision = properties.revision || 1;\r\n this.createdAt = properties.createdAt || new Date();\r\n this.modifiedAt = properties.modifiedAt || new Date();\r\n this.headerType = properties.headerType || 'default';\r\n this.header = properties.header || false;\r\n this.footerType = properties.footerType || 'default';\r\n this.footer = properties.footer || false;\r\n this.font = properties.font || defaultFont;\r\n this.fontSize = properties.fontSize || defaultFontSize;\r\n this.complexScriptFontSize = properties.complexScriptFontSize || defaultFontSize;\r\n this.tableRowCantSplit =\r\n (properties.table && properties.table.row && properties.table.row.cantSplit) || false;\r\n this.pageNumber = properties.pageNumber || false;\r\n this.skipFirstHeaderFooter = properties.skipFirstHeaderFooter || false;\r\n this.lineNumber = properties.lineNumber ? properties.lineNumberOptions : null;\r\n\r\n this.lastNumberingId = 0;\r\n this.lastMediaId = 0;\r\n this.lastHeaderId = 0;\r\n this.lastFooterId = 0;\r\n this.stylesObjects = [];\r\n this.numberingObjects = [];\r\n this.relationshipFilename = documentFileName;\r\n this.relationships = [{ fileName: documentFileName, lastRelsId: 4, rels: [] }];\r\n this.mediaFiles = [];\r\n this.headerObjects = [];\r\n this.footerObjects = [];\r\n this.documentXML = null;\r\n\r\n this.generateContentTypesXML = this.generateContentTypesXML.bind(this);\r\n this.generateDocumentXML = this.generateDocumentXML.bind(this);\r\n this.generateCoreXML = this.generateCoreXML.bind(this);\r\n this.generateSettingsXML = this.generateSettingsXML.bind(this);\r\n this.generateWebSettingsXML = this.generateWebSettingsXML.bind(this);\r\n this.generateStylesXML = this.generateStylesXML.bind(this);\r\n this.generateFontTableXML = this.generateFontTableXML.bind(this);\r\n this.generateThemeXML = this.generateThemeXML.bind(this);\r\n this.generateNumberingXML = this.generateNumberingXML.bind(this);\r\n this.generateRelsXML = this.generateRelsXML.bind(this);\r\n this.createMediaFile = this.createMediaFile.bind(this);\r\n this.createDocumentRelationships = this.createDocumentRelationships.bind(this);\r\n this.generateHeaderXML = this.generateHeaderXML.bind(this);\r\n this.generateFooterXML = this.generateFooterXML.bind(this);\r\n this.generateSectionXML = generateSectionXML.bind(this);\r\n\r\n this.ListStyleBuilder = new ListStyleBuilder(properties.numbering);\r\n }\r\n\r\n generateContentTypesXML() {\r\n const contentTypesXML = create({ encoding: 'UTF-8', standalone: true }, contentTypesXMLString);\r\n\r\n generateContentTypesFragments(contentTypesXML, 'header', this.headerObjects);\r\n generateContentTypesFragments(contentTypesXML, 'footer', this.footerObjects);\r\n\r\n return contentTypesXML.toString({ prettyPrint: true });\r\n }\r\n\r\n generateDocumentXML() {\r\n const documentXML = create(\r\n { encoding: 'UTF-8', standalone: true },\r\n generateDocumentTemplate(this.width, this.height, this.orientation, this.margins)\r\n );\r\n // documentXML.root().first().import(this.documentXML);\r\n\r\n generateSectionReferenceXML(documentXML, 'header', this.headerObjects, this.header);\r\n generateSectionReferenceXML(documentXML, 'footer', this.footerObjects, this.footer);\r\n\r\n if ((this.header || this.footer) && this.skipFirstHeaderFooter) {\r\n documentXML\r\n .root()\r\n .first()\r\n .first()\r\n .import(fragment({ namespaceAlias: { w: namespaces.w } }).ele('@w', 'titlePg'));\r\n }\r\n if (this.lineNumber) {\r\n const { countBy, start, restart } = this.lineNumber;\r\n documentXML\r\n .root()\r\n .first()\r\n .first()\r\n .import(\r\n fragment({ namespaceAlias: { w: namespaces.w } })\r\n .ele('@w', 'lnNumType')\r\n .att('@w', 'countBy', countBy)\r\n .att('@w', 'start', start)\r\n .att('@w', 'restart', restart)\r\n );\r\n }\r\n\r\n return documentXML.toString({ prettyPrint: true });\r\n }\r\n\r\n generateCoreXML() {\r\n return generateXMLString(\r\n generateCoreXML(\r\n this.title,\r\n this.subject,\r\n this.creator,\r\n this.keywords,\r\n this.description,\r\n this.lastModifiedBy,\r\n this.revision,\r\n this.createdAt,\r\n this.modifiedAt\r\n )\r\n );\r\n }\r\n\r\n // eslint-disable-next-line class-methods-use-this\r\n generateSettingsXML() {\r\n return generateXMLString(settingsXMLString);\r\n }\r\n\r\n // eslint-disable-next-line class-methods-use-this\r\n generateWebSettingsXML() {\r\n return generateXMLString(webSettingsXMLString);\r\n }\r\n\r\n generateStylesXML() {\r\n return generateXMLString(\r\n generateStylesXML(this.font, this.fontSize, this.complexScriptFontSize)\r\n );\r\n }\r\n\r\n // eslint-disable-next-line class-methods-use-this\r\n generateFontTableXML() {\r\n return generateXMLString(fontTableXMLString);\r\n }\r\n\r\n generateThemeXML() {\r\n return generateXMLString(generateThemeXML(this.font));\r\n }\r\n\r\n generateNumberingXML() {\r\n const numberingXML = create(\r\n { encoding: 'UTF-8', standalone: true },\r\n generateNumberingXMLTemplate()\r\n );\r\n\r\n const abstractNumberingFragments = fragment();\r\n const numberingFragments = fragment();\r\n\r\n this.numberingObjects.forEach(({ numberingId, type, properties }) => {\r\n const abstractNumberingFragment = fragment({ namespaceAlias: { w: namespaces.w } })\r\n .ele('@w', 'abstractNum')\r\n .att('@w', 'abstractNumId', String(numberingId));\r\n\r\n [...Array(8).keys()].forEach((level) => {\r\n const levelFragment = fragment({ namespaceAlias: { w: namespaces.w } })\r\n .ele('@w', 'lvl')\r\n .att('@w', 'ilvl', level)\r\n .ele('@w', 'start')\r\n .att(\r\n '@w',\r\n 'val',\r\n type === 'ol'\r\n ? (properties.attributes && properties.attributes['data-start']) || 1\r\n : '1'\r\n )\r\n .up()\r\n .ele('@w', 'numFmt')\r\n .att(\r\n '@w',\r\n 'val',\r\n type === 'ol'\r\n ? this.ListStyleBuilder.getListStyleType(\r\n properties.style && properties.style['list-style-type']\r\n )\r\n : 'bullet'\r\n )\r\n .up()\r\n .ele('@w', 'lvlText')\r\n .att(\r\n '@w',\r\n 'val',\r\n type === 'ol' ? this.ListStyleBuilder.getListPrefixSuffix(properties.style, level) : ''\r\n )\r\n .up()\r\n .ele('@w', 'lvlJc')\r\n .att('@w', 'val', 'left')\r\n .up()\r\n .ele('@w', 'pPr')\r\n .ele('@w', 'tabs')\r\n .ele('@w', 'tab')\r\n .att('@w', 'val', 'num')\r\n .att('@w', 'pos', (level + 1) * 720)\r\n .up()\r\n .up()\r\n .ele('@w', 'ind')\r\n .att('@w', 'left', (level + 1) * 720)\r\n .att('@w', 'hanging', 360)\r\n .up()\r\n .up()\r\n .up();\r\n\r\n if (type === 'ul') {\r\n levelFragment.last().import(\r\n fragment({ namespaceAlias: { w: namespaces.w } })\r\n .ele('@w', 'rPr')\r\n .ele('@w', 'rFonts')\r\n .att('@w', 'ascii', 'Symbol')\r\n .att('@w', 'hAnsi', 'Symbol')\r\n .att('@w', 'hint', 'default')\r\n .up()\r\n .up()\r\n );\r\n }\r\n abstractNumberingFragment.import(levelFragment);\r\n });\r\n abstractNumberingFragment.up();\r\n abstractNumberingFragments.import(abstractNumberingFragment);\r\n\r\n numberingFragments.import(\r\n fragment({ namespaceAlias: { w: namespaces.w } })\r\n .ele('@w', 'num')\r\n .att('@w', 'numId', String(numberingId))\r\n .ele('@w', 'abstractNumId')\r\n .att('@w', 'val', String(numberingId))\r\n .up()\r\n .up()\r\n );\r\n });\r\n\r\n numberingXML.root().import(abstractNumberingFragments);\r\n numberingXML.root().import(numberingFragments);\r\n\r\n return numberingXML.toString({ prettyPrint: true });\r\n }\r\n\r\n // eslint-disable-next-line class-methods-use-this\r\n appendRelationships(xmlFragment, relationships) {\r\n relationships.forEach(({ relationshipId, type, target, targetMode }) => {\r\n xmlFragment.import(\r\n fragment({ defaultNamespace: { ele: namespaces.relationship } })\r\n .ele('Relationship')\r\n .att('Id', `rId${relationshipId}`)\r\n .att('Type', type)\r\n .att('Target', target)\r\n .att('TargetMode', targetMode)\r\n .up()\r\n );\r\n });\r\n }\r\n\r\n generateRelsXML() {\r\n const relationshipXMLStrings = this.relationships.map(({ fileName, rels }) => {\r\n const xmlFragment = create(\r\n { encoding: 'UTF-8', standalone: true },\r\n fileName === documentFileName ? documentRelsXMLString : genericRelsXMLString\r\n );\r\n this.appendRelationships(xmlFragment.root(), rels);\r\n\r\n return { fileName, xmlString: xmlFragment.toString({ prettyPrint: true }) };\r\n });\r\n return relationshipXMLStrings;\r\n }\r\n\r\n createNumbering(type, properties) {\r\n this.lastNumberingId += 1;\r\n this.numberingObjects.push({ numberingId: this.lastNumberingId, type, properties });\r\n\r\n return this.lastNumberingId;\r\n }\r\n\r\n createMediaFile(base64String) {\r\n // eslint-disable-next-line no-useless-escape\r\n const matches = base64String.match(/^data:([A-Za-z-+\\/]+);base64,(.+)$/);\r\n if (matches.length !== 3) {\r\n throw new Error('Invalid base64 string');\r\n }\r\n\r\n const base64FileContent = matches[2];\r\n // matches array contains file type in base64 format - image/jpeg and base64 stringified data\r\n const fileExtension =\r\n matches[1].match(/\\/(.*?)$/)[1] === 'octet-stream' ? 'png' : matches[1].match(/\\/(.*?)$/)[1];\r\n\r\n const fileNameWithExtension = `image-${nanoid()}.${fileExtension}`;\r\n\r\n this.lastMediaId += 1;\r\n\r\n return { id: this.lastMediaId, fileContent: base64FileContent, fileNameWithExtension };\r\n }\r\n\r\n createDocumentRelationships(fileName = 'document', type, target, targetMode = 'External') {\r\n debugger;\r\n let relationshipObject = this.relationships.find(\r\n (relationship) => relationship.fileName === fileName\r\n );\r\n let lastRelsId = 1;\r\n if (relationshipObject) {\r\n lastRelsId = relationshipObject.lastRelsId + 1;\r\n relationshipObject.lastRelsId = lastRelsId;\r\n } else {\r\n relationshipObject = { fileName, lastRelsId, rels: [] };\r\n this.relationships.push(relationshipObject);\r\n }\r\n let relationshipType;\r\n switch (type) {\r\n case hyperlinkType:\r\n relationshipType = namespaces.hyperlinks;\r\n break;\r\n case imageType:\r\n relationshipType = namespaces.images;\r\n break;\r\n case headerFileType:\r\n relationshipType = namespaces.headers;\r\n break;\r\n case footerFileType:\r\n relationshipType = namespaces.footers;\r\n break;\r\n case themeFileType:\r\n relationshipType = namespaces.themes;\r\n break;\r\n }\r\n\r\n relationshipObject.rels.push({\r\n relationshipId: lastRelsId,\r\n type: relationshipType,\r\n target,\r\n targetMode,\r\n });\r\n\r\n console.log(fileName)\r\n console.log( relationshipObject.rels)\r\n return lastRelsId;\r\n }\r\n\r\n generateHeaderXML(vTree) {\r\n return this.generateSectionXML(vTree, 'header');\r\n }\r\n\r\n generateFooterXML(vTree) {\r\n return this.generateSectionXML(vTree, 'footer');\r\n }\r\n}\r\n\r\n","export const defaultMargins = {\r\n top: 1440,\r\n right: 1440,\r\n bottom: 1440,\r\n left: 1440,\r\n header: 720,\r\n footer: 720,\r\n gutter: 0,\r\n}\r\n\r\nexport type Margins = typeof defaultMargins\r\n\r\nexport type Orient = 'landscape' | 'portrait'\r\n\r\nexport const documentTemplate = (width: number, height: number, orient: string, margins: Margins) => {\r\n return `<?xml version=\"1.0\" encoding=\"UTF-8\" standalone=\"yes\"?>\r\n<w:document\r\n xmlns:w=\"http://schemas.openxmlformats.org/wordprocessingml/2006/main\"\r\n xmlns:m=\"http://schemas.openxmlformats.org/officeDocument/2006/math\"\r\n xmlns:r=\"http://schemas.openxmlformats.org/officeDocument/2006/relationships\"\r\n xmlns:wp=\"http://schemas.openxmlformats.org/drawingml/2006/wordprocessingDrawing\"\r\n xmlns:a=\"http://schemas.openxmlformats.org/drawingml/2006/main\"\r\n xmlns:ns6=\"http://schemas.openxmlformats.org/schemaLibrary/2006/main\"\r\n xmlns:c=\"http://schemas.openxmlformats.org/drawingml/2006/chart\"\r\n xmlns:ns8=\"http://schemas.openxmlformats.org/drawingml/2006/chartDrawing\"\r\n xmlns:dgm=\"http://schemas.openxmlformats.org/drawingml/2006/diagram\"\r\n xmlns:pic=\"http://schemas.openxmlformats.org/drawingml/2006/picture\"\r\n xmlns:ns11=\"http://schemas.openxmlformats.org/drawingml/2006/spreadsheetDrawing\"\r\n xmlns:dsp=\"http://schemas.microsoft.com/office/drawing/2008/diagram\"\r\n xmlns:ns13=\"urn:schemas-microsoft-com:office:excel\"\r\n xmlns:o=\"urn:schemas-microsoft-com:office:office\"\r\n xmlns:v=\"urn:schemas-microsoft-com:vml\"\r\n xmlns:w10=\"urn:schemas-microsoft-com:office:word\"\r\n xmlns:ns17=\"urn:schemas-microsoft-com:office:powerpoint\"\r\n xmlns:odx=\"http://opendope.org/xpaths\"\r\n xmlns:odc=\"http://opendope.org/conditions\"\r\n xmlns:odq=\"http://opendope.org/questions\"\r\n xmlns:odi=\"http://opendope.org/components\"\r\n xmlns:odgm=\"http://opendope.org/SmartArt/DataHierarchy\"\r\n xmlns:ns24=\"http://schemas.openxmlformats.org/officeDocument/2006/bibliography\"\r\n xmlns:ns25=\"http://schemas.openxmlformats.org/drawingml/2006/compatibility\"\r\n xmlns:ns26=\"http://schemas.openxmlformats.org/drawingml/2006/lockedCanvas\">\r\n <w:body>\r\n <w:altChunk r:id=\"htmlChunk\" />\r\n <w:sectPr>\r\n <w:pgSz w:w=\"${width}\" w:h=\"${height}\" w:orient=\"${orient}\" />\r\n <w:pgMar w:top=\"${margins.top}\"\r\n w:right=\"${margins.right}\"\r\n w:bottom=\"${margins.bottom}\"\r\n w:left=\"${margins.left}\"\r\n w:header=\"${margins.header}\"\r\n w:footer=\"${margins.footer}\"\r\n w:gutter=\"${margins.gutter}\"/>\r\n </w:sectPr>\r\n </w:body>\r\n</w:document>\r\n`\r\n}\r\n","export const mhtDocumentTemplate = (htmlSource: string, contentParts: string) => {\r\n debugger;\r\n return `MIME-Version: 1.0\r\nContent-Type: multipart/related;\r\n type=\"text/html\";\r\n boundary=\"----=mhtDocumentPart\"\r\n\r\n\r\n------=mhtDocumentPart\r\nContent-Type: text/html;\r\n charset=\"utf-8\"\r\nContent-Transfer-Encoding: quoted-printable\r\nContent-Location: file:///C:/fake/document.html\r\n\r\n${htmlSource}\r\n\r\n${contentParts}\r\n\r\n------=mhtDocumentPart--\r\n`\r\n}\r\n","export const mhtPartTemplate = (\r\n contentType: string,\r\n contentEncoding: string,\r\n contentLocation: string,\r\n encodedContent: string,\r\n) => {\r\n return `------=mhtDocumentPart\r\nContent-Type: ${contentType}\r\nContent-Transfer-Encoding: ${contentEncoding}\r\nContent-Location: ${contentLocation}\r\n\r\n${encodedContent}\r\n`\r\n}\r\n","import { mhtDocumentTemplate, mhtPartTemplate } from './templates'\r\n\r\nexport function getMHTdocument(htmlSource: string) {\r\n debugger\r\n const ref = _prepareImageParts(htmlSource)\r\n const imageContentPartsString = ref.imageContentParts.join('\\n')\r\n htmlSource = ref.htmlSource.replace(/\\=/g, '=3D')\r\n return mhtDocumentTemplate(htmlSource, imageContentPartsString)\r\n}\r\n\r\nfunction _prepareImageParts(htmlSource: string) {\r\n debugger\r\n const imageContentParts: string[] = []\r\n const inlinedSrcPattern = /\"data:(\\w+\\/\\w+);(\\w+),(\\S+)\"/g\r\n const inlinedReplacer = (match: string, contentType: string, contentEncoding: string, encodedContent: string) => {\r\n const index = imageContentParts.length\r\n const extension = contentType.split('/')[1]\r\n const contentLocation = `file:///C:/fake/image${index}.${extension}`\r\n imageContentParts.push(mhtPartTemplate(contentType, contentEncoding, contentLocation, encodedContent))\r\n return `\\\"${contentLocation}\\\"`\r\n }\r\n if (!/<img/g.test(htmlSource)) {\r\n return { htmlSource, imageContentParts }\r\n }\r\n htmlSource = htmlSource.replace(inlinedSrcPattern, inlinedReplacer)\r\n return { htmlSource, imageContentParts }\r\n}\r\n","import { create } from 'xmlbuilder2';\r\nimport VNode from 'virtual-dom/vnode/vnode';\r\nimport VText from 'virtual-dom/vnode/vtext';\r\n// eslint-disable-next-line import/no-named-default\r\nimport { default as HTMLToVDOM } from 'html-to-vdom';\r\n\r\nimport { relsXML } from './schemas';\r\nimport {DocxDocument} from './docx-document';\r\nimport { renderDocumentFile } from './helpers';\r\nimport {getMHTdocument} from \"./word-work/utils\"\r\nimport {\r\n pixelRegex,\r\n pixelToTWIP,\r\n cmRegex,\r\n cmToTWIP,\r\n inchRegex,\r\n inchToTWIP,\r\n pointRegex,\r\n pointToHIP,\r\n} from './utils/unit-conversion';\r\nimport {\r\n defaultDocumentOptions,\r\n defaultHTMLString,\r\n relsFolderName,\r\n headerFileName,\r\n footerFileName,\r\n themeFileName,\r\n documentFileName,\r\n headerType,\r\n footerType,\r\n internalRelationship,\r\n wordFolder,\r\n themeFolder,\r\n themeType,\r\n} from './constants';\r\nimport {generateDocumentTemplateHeader,generateDocumentTemplateFooter,generateDocumentTemplateFooterWithoutPaging }from './schemas/document.template';\r\nconst convertHTML = HTMLToVDOM({\r\n VNode,\r\n VText,\r\n});\r\n\r\nconst mergeOptions = (options, patch) => ({ ...options, ...patch });\r\n\r\nconst fixupFontSize = (fontSize) => {\r\n let normalizedFontSize;\r\n if (pointRegex.test(fontSize)) {\r\n const matchedParts = fontSize.match(pointRegex);\r\n\r\n normalizedFontSize = pointToHIP(matchedParts[1]);\r\n } else if (fontSize) {\r\n // assuming it is already in HIP\r\n normalizedFontSize = fontSize;\r\n } else {\r\n normalizedFontSize = null;\r\n }\r\n\r\n return normalizedFontSize;\r\n};\r\n\r\nconst normalizeUnits = (dimensioningObject, defaultDimensionsProperty) => {\r\n let normalizedUnitResult = {};\r\n if (typeof dimensioningObject === 'object' && dimensioningObject !== null) {\r\n Object.keys(dimensioningObject).forEach((key) => {\r\n if (pixelRegex.test(dimensioningObject[key])) {\r\n const matchedParts = dimensioningObject[key].match(pixelRegex);\r\n normalizedUnitResult[key] = pixelToTWIP(matchedParts[1]);\r\n } else if (cmRegex.test(dimensioningObject[key])) {\r\n const matchedParts = dimensioningObject[key].match(cmRegex);\r\n normalizedUnitResult[key] = cmToTWIP(matchedParts[1]);\r\n } else if (inchRegex.test(dimensioningObject[key])) {\r\n const matchedParts = dimensioningObject[key].match(inchRegex);\r\n normalizedUnitResult[key] = inchToTWIP(matchedParts[1]);\r\n } else if (dimensioningObject[key]) {\r\n normalizedUnitResult[key] = dimensioningObject[key];\r\n } else {\r\n // incase value is something like 0\r\n normalizedUnitResult[key] = defaultDimensionsProperty[key];\r\n }\r\n });\r\n } else {\r\n // eslint-disable-next-line no-param-reassign\r\n normalizedUnitResult = null;\r\n }\r\n\r\n return normalizedUnitResult;\r\n};\r\n\r\nconst normalizeDocumentOptions = (documentOptions) => {\r\n const normalizedDocumentOptions = { ...documentOptions };\r\n Object.keys(documentOptions).forEach((key) => {\r\n // eslint-disable-next-line default-case\r\n switch (key) {\r\n case 'pageSize':\r\n case 'margins':\r\n normalizedDocumentOptions[key] = normalizeUnits(\r\n documentOptions[key],\r\n defaultDocumentOptions[key]\r\n );\r\n break;\r\n case 'fontSize':\r\n case 'complexScriptFontSize':\r\n normalizedDocumentOptions[key] = fixupFontSize(documentOptions[key]);\r\n break;\r\n }\r\n });\r\n\r\n return normalizedDocumentOptions;\r\n};\r\n\r\n// Ref: https://en.wikipedia.org/wiki/Office_Open_XML_file_formats\r\n// http://officeopenxml.com/anatomyofOOXML.php\r\n async function addFilesToContainer(\r\n zip,\r\n htmlString,\r\n suppliedDocumentOptions,\r\n headerHTMLString,\r\n footerHTMLString\r\n) {\r\n debugger;\r\n const normalizedDocumentOptions = normalizeDocumentOptions(suppliedDocumentOptions);\r\n const documentOptions = mergeOptions(defaultDocumentOptions, normalizedDocumentOptions);\r\n\r\n if (documentOptions.header && !headerHTMLString) {\r\n // eslint-disable-next-line no-param-reassign\r\n headerHTMLString = defaultHTMLString;\r\n }\r\n if (documentOptions.footer && !footerHTMLString) {\r\n // eslint-disable-next-line no-param-reassign\r\n footerHTMLString = defaultHTMLString;\r\n }\r\n\r\n const docxDocument = new DocxDocument({ zip, htmlString, ...documentOptions });\r\n // Conversion to Word XML happens here\r\n docxDocument.documentXML = await renderDocumentFile(docxDocument);\r\n debugger;\r\n zip\r\n .folder(relsFolderName)\r\n .file(\r\n '.rels',\r\n create({ encoding: 'UTF-8', standalone: true }, relsXML).toString({ prettyPrint: true }),\r\n { createFolders: false }\r\n );\r\n\r\n zip.folder('docProps').file('core.xml', docxDocument.generateCoreXML(), {\r\n createFolders: false,\r\n });\r\n\r\n if (docxDocument.header && headerHTMLString) {\r\n const vTree = convertHTML(headerHTMLString);\r\n\r\n docxDocument.relationshipFilename = headerFileName;\r\n const { headerId, headerXML } = await docxDocument.generateHeaderXML(vTree);\r\n docxDocument.relationshipFilename = documentFileName;\r\n const fileNameWithExt = `${headerType}${headerId}.xml`;\r\n\r\n const relationshipId = docxDocument.createDocumentRelationships(\r\n docxDocument.relationshipFilename,\r\n headerType,\r\n fileNameWithExt,\r\n internalRelationship\r\n );\r\n\r\n zip.folder(wordFolder).file(fileNameWithExt, generateDocumentTemplateHeader.toString({ prettyPrint: true }), {\r\n createFolders: false,\r\n });\r\n\r\n docxDocument.headerObjects.push({ headerId, relationshipId, type: docxDocument.headerType });\r\n }\r\n if (docxDocument.footer && footerHTMLString) {\r\n const vTree = convertHTML(footerHTMLString);\r\n\r\n docxDocument.relationshipFilename = footerFileName;\r\n const { footerId, footerXML } = await docxDocument.generateFooterXML(vTree);\r\n docxDocument.relationshipFilename = documentFileName;\r\n const fileNameWithExt = `${footerType}${footerId}.xml`;\r\n\r\n const relationshipId = docxDocument.createDocumentRelationships(\r\n docxDocument.relationshipFilename,\r\n footerType,\r\n fileNameWithExt,\r\n internalRelationship\r\n );\r\n console.log(footerXML.toString({ prettyPrint: true }))\r\n\r\n if(suppliedDocumentOptions.pageNumber)\r\n zip.folder(wordFolder).file(fileNameWithExt, generateDocumentTemplateFooter.toString({ prettyPrint: true }), {\r\n createFolders: false,\r\n });\r\n else\r\n zip.folder(wordFolder).file(fileNameWithExt, generateDocumentTemplateFooterWithoutPaging.toString({ prettyPrint: true }), {\r\n createFolders: false,\r\n });\r\n\r\n docxDocument.footerObjects.push({ footerId, relationshipId, type: docxDocument.footerType });\r\n }\r\n const themeFileNameWithExt = `${themeFileName}.xml`;\r\n docxDocument.createDocumentRelationships(\r\n docxDocument.relationshipFilename,\r\n themeType,\r\n `${themeFolder}/${themeFileNameWithExt}`,\r\n internalRelationship\r\n );\r\n zip\r\n .folder(wordFolder)\r\n .folder(themeFolder)\r\n .file(themeFileNameWithExt, docxDocument.generateThemeXML(), {\r\n createFolders: false,\r\n });\r\n\r\n zip\r\n .folder(wordFolder)\r\n .file('document.xml', docxDocument.generateDocumentXML(), { createFolders: false })\r\n .file('afchunk.mht', getMHTdocument(htmlString), {\r\n createFolders: false,\r\n })\r\n .file('afchunkheader.mht', getMHTdocument(headerHTMLString), {\r\n createFolders: false,\r\n })\r\n .file('afchunkfooter.mht', getMHTdocument(footerHTMLString), {\r\n createFolders: false,\r\n })\r\n .file('fontTable.xml', docxDocument.generateFontTableXML(), { createFolders: false })\r\n .file('styles.xml', docxDocument.generateStylesXML(), { createFolders: false })\r\n .file('numbering.xml', docxDocument.generateNumberingXML(), { createFolders: false })\r\n .file('settings.xml', docxDocument.generateSettingsXML(), { createFolders: false })\r\n .file('webSettings.xml', docxDocument.generateWebSettingsXML(), { createFolders: false });\r\n\r\n const relationshipXMLs = docxDocument.generateRelsXML();\r\n if (relationshipXMLs && Array.isArray(relationshipXMLs)) {\r\n relationshipXMLs.forEach(({ fileName, xmlString }) => {\r\n console.log(xmlString)\r\n zip.folder(wordFolder).folder(relsFolderName).file(`${fileName}.xml.rels`, xmlString, {\r\n createFolders: false,\r\n });\r\n });\r\n }\r\n\r\n if (relationshipXMLs && Array.isArray(relationshipXMLs)) {\r\n relationshipXMLs.forEach(({ fileName, xmlString }) => {\r\n zip.folder(wordFolder).folder(relsFolderName).file(`header1.xml.rels`, xmlString, {\r\n createFolders: false,\r\n });\r\n });\r\n }\r\n if (relationshipXMLs && Array.isArray(relationshipXMLs)) {\r\n relationshipXMLs.forEach(({ fileName, xmlString }) => {\r\n zip.folder(wordFolder).folder(relsFolderName).file(`footer1.xml.rels`, xmlString, {\r\n createFolders: false,\r\n });\r\n });\r\n }\r\n\r\n\r\n zip.file('[Content_Types].xml', docxDocument.generateContentTypesXML(), { createFolders: false });\r\n\r\n return zip;\r\n}\r\n\r\nexport { addFilesToContainer};\r\n","/* eslint-disable no-useless-escape */\r\nimport JSZip from 'jszip';\r\nimport {addFilesToContainer} from './html-to-docx';\r\n\r\nconst minifyHTMLString = (htmlString) => {\r\n try {\r\n if (typeof htmlString === 'string' || htmlString instanceof String) {\r\n const minifiedHTMLString = htmlString\r\n .replace(/\\n/g, ' ')\r\n .replace(/\\r/g, ' ')\r\n .replace(/\\r\\n/g, ' ')\r\n .replace(/[\\t]+\\</g, '<')\r\n .replace(/\\>[\\t ]+\\</g, '><')\r\n .replace(/\\>[\\t ]+$/g, '>');\r\n\r\n return minifiedHTMLString;\r\n }\r\n\r\n throw new Error('invalid html string');\r\n } catch (error) {\r\n return null;\r\n }\r\n};\r\n\r\nasync function generateContainer(\r\n htmlString,\r\n headerHTMLString,\r\n documentOptions = {},\r\n footerHTMLString\r\n) {\r\n const zip = new JSZip();\r\n\r\n let contentHTML = htmlString;\r\n let headerHTML = headerHTMLString;\r\n let footerHTML = footerHTMLString;\r\n if (htmlString) {\r\n contentHTML = minifyHTMLString(contentHTML);\r\n }\r\n if (headerHTMLString) {\r\n headerHTML = minifyHTMLString(headerHTML);\r\n }\r\n if (footerHTMLString) {\r\n footerHTML = minifyHTMLString(footerHTML);\r\n }\r\n\r\n await addFilesToContainer(zip, contentHTML, documentOptions, headerHTML, footerHTML);\r\n\r\n const buffer = await zip.generateAsync({ type: 'arraybuffer' });\r\n if (Object.prototype.hasOwnProperty.call(global, 'Buffer')) {\r\n return Buffer.from(new Uint8Array(buffer));\r\n }\r\n if (Object.prototype.hasOwnProperty.call(global, 'Blob')) {\r\n // eslint-disable-next-line no-undef\r\n return new Blob([buffer], {\r\n type: 'application/vnd.openxmlformats-officedocument.wordprocessingml.document',\r\n });\r\n }\r\n throw new Error(\r\n 'Add blob support using a polyfill eg https://github.com/bjornstar/blob-polyfill'\r\n );\r\n}\r\n\r\nexport {generateContainer};\r\n","import { Injectable } from '@angular/core';\r\nimport { generateContainer as GenerateDOCX } from '../config//word/index';\r\nimport { WordDocumentModel } from '../models/WordDocumentModel';\r\n@Injectable({\r\n providedIn: 'root',\r\n})\r\nexport class WordDocumentService {\r\n async generateWordByteFile(model: WordDocumentModel) {\r\n let documentOptions: any = {};\r\n if (model.options.isLandscape) documentOptions.orientation = 'landscape';\r\n documentOptions.pageSize = {\r\n width: model.options.pageWidth * 15,\r\n height: model.options.pageHeight * 15,\r\n };\r\n documentOptions.margins = {\r\n top: model.options.top * 15,\r\n right: model.options.right * 15,\r\n bottom: model.options.bottom * 15,\r\n left: model.options.left * 15,\r\n header: model.options.top * 15*2,\r\n footer: model.options.bottom * 15*2,\r\n gutter: 0,\r\n };\r\n documentOptions.footer = true;\r\n documentOptions.header = true;\r\n documentOptions.pageNumber = model.options.showPaging;\r\n documentOptions.table = { row: { cantSplit: true } };\r\n var fileBuffer = await GenerateDOCX(\r\n model.body,\r\n model.header,\r\n documentOptions,\r\n model.footer\r\n );\r\n return fileBuffer;\r\n }\r\n}\r\n","export class WordDocumentModel\r\n{\r\n header:string;\r\n footer:string;\r\n body:string;\r\n options:DocumentOptionsModel=new DocumentOptionsModel()\r\n}\r\nexport class DocumentOptionsModel\r\n{\r\n pageHeight:number;\r\n pageWidth:number;\r\n top:number;\r\n bottom:number;\r\n left:number;\r\n right:number;\r\n isLandscape:boolean;\r\n showPaging:boolean;\r\n\r\n}\r\n","/*\r\n * Public API Surface of @bnsights/bbsf-utilities\r\n */\r\n\r\nexport * from './lib/bbsf-utilities.module';\r\n\r\nexport * from './lib/shared/services/utility.service';\r\nexport * from './lib/shared/services/environment.service';\r\nexport * from './lib/shared/services/requesthandler.service'\r\nexport * from './lib/shared/services/stylesbundle.service'\r\nexport * from './lib/shared/services/translate.service'\r\nexport * from './lib/shared/services/controlvalidation.service'\r\nexport * from './lib/shared/services/masterlayout.service'\r\nexport * from './lib/shared/services/translationresolver.service'\r\nexport * from './lib/shared/services/AppearanceConfiguration.service'\r\nexport * from './lib/shared/services/configuration.service'\r\nexport * from './lib/shared/services/word-document.service'\r\n\r\nexport * from './lib/shared/config/environment';\r\n\r\n\r\nexport * from './lib/shared/authentication/auth.service';\r\n\r\n\r\nexport * from './lib/shared/models/RequestOptionsModel';\r\nexport * from './lib/shared/models/WordDocumentModel';\r\n\r\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["TranslateService","Injectable","AppInjector","ToastrService","BlockUI","JwtHelperService","BehaviorSubject","HttpHeaders","Injector","HttpClient","Router","CookieService","Subject","Observable","takeUntil","tap","map","plainToClass","throwError","Inject","DOCUMENT","HttpParams","NgModule","CommonModule","BlockUIModule","HttpModule","RouterModule","ToastrModule","cloneDeep","colorNames","fragment","fixupFontSize","isVNode","isVText","imageToBase64","mimeTypes","sizeOf","convertHTML","HTMLToVDOM","xmlBuilder.buildParagraph","VNode","xmlBuilder.buildTable","xmlBuilder.buildTextElement","escape","create","contentTypesXML","contentTypesXMLString","settingsXMLString","webSettingsXMLString","fontTableXMLString","documentRelsXMLString","genericRelsXMLString","nanoid","headerFileType","footerFileType","themeFileType","JSZip","GenerateDOCX"],"mappings":"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"}
|