{"version":3,"sources":["webpack:///./node_modules/jspdf-autotable/dist/jspdf.plugin.autotable.js"],"names":["root","factory","module","exports","e","globalThis","this","window","self","__WEBPACK_EXTERNAL_MODULE__964__","__webpack_modules__","172","__unused_webpack_module","__extends","extendStatics","d","b","Object","setPrototypeOf","__proto__","Array","p","prototype","hasOwnProperty","call","TypeError","String","__","constructor","create","defineProperty","value","CellHookData","HookData","doc","table","cursor","pageNumber","pageCount","settings","getDocument","_super","cell","row","column","_this","section","340","__webpack_require__","htmlParser_1","autoTableText_1","documentHandler_1","inputParser_1","tableDrawer_1","tableCalculator_1","default_1","jsPDF","API","autoTable","options","args","_i","arguments","length","console","error","columns","body","input","parseInput","createTable","drawTable","lastAutoTable","previousAutoTable","previous","autoTableText","text","x","y","styles","default","autoTableSetDefaults","defaults","DocHandler","setDefaults","autoTableHtmlToJson","tableElem","includeHiddenElements","_a","_b","parseHtml","head","map","c","content","rows","data","autoTableEndPosY","prev","finalY","autoTableAddPageContent","hook","globalDefaults","addPageContent","autoTableAddPage","addPage","136","PHYSICAL_LINE_HEIGHT","k","internal","scaleFactor","fontSize","getFontSize","lineHeightFactor","getLineHeightFactor","lineHeight","splitRegex","splitText","lineCount","valign","halign","split","alignSize","iLine","getStringUnitWidth","maxWidth","align","420","getStringWidth","applyStyles","textArr","isArray","widestLineWidth","getTextWidth","reduce","a","Math","max","addTableBorder","startPos","lineWidth","tableLineWidth","lineColor","tableLineColor","fillStyle","getFillStyle","rect","getWidth","pageSize","width","fillColor","drawLine","drawBackground","parseSpacing","defaultValue","_c","_d","top","right","bottom","left","vertical","horizontal","getPageAvailableWidth","margins","margin","796","getTheme","defaultStyles","HtmlRowInput","element","_element","font","fontStyle","overflow","textColor","cellPadding","cellWidth","minCellHeight","minCellWidth","name","themes","striped","foot","alternateRow","grid","plain","903","parseCss","common_1","supportedFonts","style","result","pxScaleFactor","backgroundColor","parseColor","elem","getComputedStyle","padding","parsePadding","borderColorSide","finalScaleFactor","btw","borderTopWidth","borderBottomWidth","borderRightWidth","borderLeftWidth","borderWidth","parseFloat","log","borderColor","accepted","indexOf","textAlign","verticalAlign","res","parseInt","isNaN","parseFontStyle","fontFamily","toLowerCase","fontWeight","styleGetter","cssColor","realColor","rgba","match","color","alpha","bg","parentElement","val","paddingTop","paddingRight","paddingBottom","paddingLeft","linePadding","inputPadding","n","744","jsPDFDocument","userStyles","getTextColor","getFont","fontName","getLineWidth","getDrawColor","__autoTableDocumentDefaults","unifyColor","fontOnly","setFontStyle","availableFontStyles","getFontList","setFont","setFontSize","setFillColor","apply","setTextColor","setDrawColor","setLineWidth","splitTextToSize","size","opts","height","getLastAutoTable","setPage","page","getGlobalOptions","getDocumentOptions","getHeight","getLineHeight","pageInfo","getCurrentPageInfo","getNumberOfPages","4","cssParser_1","config_1","includeHiddenHtml","useCss","tableElement","document","querySelector","keys","i","tagName","parseRowContent","push","includeHidden","resultRow","cells","style_1","display","cellStyles","rowSpan","colSpan","parseCellContent","orgCell","cloneNode","innerHTML","replace","part","trim","join","innerText","textContent","776","polyfills_1","inputValidator_1","current","global","win","assign","parseStyles","hooks","parseHooks","parseSettings","parseContent","id","tableId","gInput","dInput","cInput","styleOptions","headStyles","bodyStyles","footStyles","alternateRowStyles","columnStyles","_loop_1","prop","global_1","document_1","allOptions","didParseCell","willDrawCell","didDrawCell","willDrawPage","didDrawPage","allOptions_1","_e","_f","_g","_h","_j","_k","_l","_m","showFoot","showHead","startY","getStartY","theme","horizontalPageBreak","horizontalPageBreakRepeat","pageBreak","rowPageBreak","tableWidth","horizontalPageBreakBehaviour","userStartY","sf","currentPage","isSamePageAsPreviousTable","startPageNumber","endingPage","html","hidden","htmlContent","parseColumns","firstRow","filter","key","forEach","concat","rowResult","dataKey","792","extendWidth","afterPageContent","beforePageContent","afterPageAdd","deprecated","o","deprecatedOption","styleProp","checkStyles","rowHeight","columnWidth","260","Column","Cell","Row","Table","HookData_1","getHeadHeight","acc","getMaxCellHeight","getFootHeight","allRows","callCellHooks","handlers","handlers_1","handler","callEndPageHooks","callWillDrawPageHooks","pageWidth","wrappedWidth","total","col","raw","index","spansMultiplePages","hasRowSpan","canEntireRowFit","getMinimumRowHeight","vPadding","oneRowHeight","contentHeight","contentWidth","minReadableWidth","minWidth","title","getTextPos","netHeight","netWidth","getContentHeight","getMaxCustomCellWidth","356","target","s","s1","s2","s3","to","nextSource","nextKey","972","models_1","widthCalculator_1","jsPDFDoc","calculateWidths","createColumns","sectionRow","generateSectionRow","parseSection","sectionName","sectionRows","styleProps","rowSpansLeftForColumn","rawRow","rowIndex","skippedRowForRowSpans","colSpansAdded","columnSpansLeft","columns_1","rawCell","cellInputStyles","times","getSectionTitle","header","footer","themeName","sectionStyles","otherStyles","colStyles","rowStyles","defaultStyle","themeStyles","664","tablePrinter_1","sectionsHeight","minTableBottomPos","tableHeight","nextPage","printTableWithHorizontalPageBreak","printRow","isLastRow","printFullRow","allColumnsCanFitResult","calculateAllColumnsCanFitInPage","colsAndIndexes","printHead","printBody","printFoot","lastRowIndexOfLastPage_1","firstColumnsToFitResult","lastPrintedRowIndex","firstColumnsToFit","printBodyWithoutPageBreaks","maxNumberOfRows","slice","startRowIndex","endRowIndex","min","remainingSpace","getRemainingPageSpace","getRemainingLineCount","remainingPageSpace","remainingLines","floor","modifyRowToFit","remainderCell","remainingLineCount","splice","remainderRow","shouldPrintOnCurrentPage","pageHeight","marginHeight","maxRowHeight","minRowHeight","minRowFits","rowHasRowSpanCell","rowHigherThanPage","drawCellRect","textPos","ceil","getFillColor","drawCellBorders","x1","y1","x2","y2","line","bottomContentHeight","suppressFooter","newCurrent","224","getColumnsCanFitInPage","config","remainingWidth","repeatColumnsMap","Map","colIndexes","field","find","item","has","set","first","start","colWidth","lastIndex","allResults","324","ellipsize","resizeColumns","calculate","resizableColumns","initialTableWidth","customWidth","resizeWidth","abs","round","warn","applyColSpans","fitContent","applyRowSpans","availablePageWidth","longestWordWidth","defaultMinWidth","getMinWidth","initialResizeWidth","sumWrappedWidth","ratio","suggestedChange","suggestedWidth","newWidth","rowSpanCells","colRowSpansLeft","all","remaining","colSpanCell","combinedColSpanWidth","colSpansLeft","columnIndex","rowSpanHeight","count","textSpace","realContentHeight","str","ellipsizeStr","precision","substring","964","Error","code","__webpack_module_cache__","moduleId","cachedModule","undefined","__webpack_exports__","__drawTable","__createTable","applyPlugin","applyPlugin_1","enumerable","get","models_2"],"mappings":"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","file":"js/chunk-2d0af61d.803e0ba2.js","sourcesContent":["/*!\n * \n * jsPDF AutoTable plugin v3.8.2\n *\n * Copyright (c) 2024 Simon Bengtsson, https://github.com/simonbengtsson/jsPDF-AutoTable\n * Licensed under the MIT License.\n * http://opensource.org/licenses/mit-license\n *\n */\n(function webpackUniversalModuleDefinition(root, factory) {\n\tif(typeof exports === 'object' && typeof module === 'object')\n\t\tmodule.exports = factory((function webpackLoadOptionalExternalModule() { try { return require(\"jspdf\"); } catch(e) {} }()));\n\telse if(typeof define === 'function' && define.amd)\n\t\tdefine([\"jspdf\"], factory);\n\telse {\n\t\tvar a = typeof exports === 'object' ? factory((function webpackLoadOptionalExternalModule() { try { return require(\"jspdf\"); } catch(e) {} }())) : factory(root[\"jspdf\"]);\n\t\tfor(var i in a) (typeof exports === 'object' ? exports : root)[i] = a[i];\n\t}\n})(typeof globalThis !== 'undefined' ? globalThis : typeof this !== 'undefined' ? this : typeof window !== 'undefined' ? window : typeof self !== 'undefined' ? self : global , function(__WEBPACK_EXTERNAL_MODULE__964__) {\nreturn /******/ (function() { // webpackBootstrap\n/******/ \t\"use strict\";\n/******/ \tvar __webpack_modules__ = ({\n\n/***/ 172:\n/***/ (function(__unused_webpack_module, exports) {\n\n\nvar __extends = (this && this.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n if (typeof b !== \"function\" && b !== null)\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nObject.defineProperty(exports, \"__esModule\", ({ value: true }));\nexports.CellHookData = exports.HookData = void 0;\nvar HookData = /** @class */ (function () {\n function HookData(doc, table, cursor) {\n this.table = table;\n this.pageNumber = table.pageNumber;\n this.pageCount = this.pageNumber;\n this.settings = table.settings;\n this.cursor = cursor;\n this.doc = doc.getDocument();\n }\n return HookData;\n}());\nexports.HookData = HookData;\nvar CellHookData = /** @class */ (function (_super) {\n __extends(CellHookData, _super);\n function CellHookData(doc, table, cell, row, column, cursor) {\n var _this = _super.call(this, doc, table, cursor) || this;\n _this.cell = cell;\n _this.row = row;\n _this.column = column;\n _this.section = row.section;\n return _this;\n }\n return CellHookData;\n}(HookData));\nexports.CellHookData = CellHookData;\n\n\n/***/ }),\n\n/***/ 340:\n/***/ (function(__unused_webpack_module, exports, __webpack_require__) {\n\n\nObject.defineProperty(exports, \"__esModule\", ({ value: true }));\nvar htmlParser_1 = __webpack_require__(4);\nvar autoTableText_1 = __webpack_require__(136);\nvar documentHandler_1 = __webpack_require__(744);\nvar inputParser_1 = __webpack_require__(776);\nvar tableDrawer_1 = __webpack_require__(664);\nvar tableCalculator_1 = __webpack_require__(972);\nfunction default_1(jsPDF) {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n jsPDF.API.autoTable = function () {\n var args = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n args[_i] = arguments[_i];\n }\n var options;\n if (args.length === 1) {\n options = args[0];\n }\n else {\n console.error('Use of deprecated autoTable initiation');\n options = args[2] || {};\n options.columns = args[0];\n options.body = args[1];\n }\n var input = (0, inputParser_1.parseInput)(this, options);\n var table = (0, tableCalculator_1.createTable)(this, input);\n (0, tableDrawer_1.drawTable)(this, table);\n return this;\n };\n // Assign false to enable `doc.lastAutoTable.finalY || 40` sugar\n jsPDF.API.lastAutoTable = false;\n jsPDF.API.previousAutoTable = false; // deprecated in v3\n jsPDF.API.autoTable.previous = false; // deprecated in v3\n jsPDF.API.autoTableText = function (text, x, y, styles) {\n (0, autoTableText_1.default)(text, x, y, styles, this);\n };\n jsPDF.API.autoTableSetDefaults = function (defaults) {\n documentHandler_1.DocHandler.setDefaults(defaults, this);\n return this;\n };\n jsPDF.autoTableSetDefaults = function (defaults, doc) {\n documentHandler_1.DocHandler.setDefaults(defaults, doc);\n };\n jsPDF.API.autoTableHtmlToJson = function (tableElem, includeHiddenElements) {\n var _a;\n if (includeHiddenElements === void 0) { includeHiddenElements = false; }\n if (typeof window === 'undefined') {\n console.error('Cannot run autoTableHtmlToJson in non browser environment');\n return null;\n }\n var doc = new documentHandler_1.DocHandler(this);\n var _b = (0, htmlParser_1.parseHtml)(doc, tableElem, window, includeHiddenElements, false), head = _b.head, body = _b.body;\n var columns = ((_a = head[0]) === null || _a === void 0 ? void 0 : _a.map(function (c) { return c.content; })) || [];\n return { columns: columns, rows: body, data: body };\n };\n /**\n * @deprecated\n */\n jsPDF.API.autoTableEndPosY = function () {\n console.error('Use of deprecated function: autoTableEndPosY. Use doc.lastAutoTable.finalY instead.');\n var prev = this.lastAutoTable;\n if (prev && prev.finalY) {\n return prev.finalY;\n }\n else {\n return 0;\n }\n };\n /**\n * @deprecated\n */\n jsPDF.API.autoTableAddPageContent = function (hook) {\n console.error('Use of deprecated function: autoTableAddPageContent. Use jsPDF.autoTableSetDefaults({didDrawPage: () => {}}) instead.');\n if (!jsPDF.API.autoTable.globalDefaults) {\n jsPDF.API.autoTable.globalDefaults = {};\n }\n jsPDF.API.autoTable.globalDefaults.addPageContent = hook;\n return this;\n };\n /**\n * @deprecated\n */\n jsPDF.API.autoTableAddPage = function () {\n console.error('Use of deprecated function: autoTableAddPage. Use doc.addPage()');\n this.addPage();\n return this;\n };\n}\nexports[\"default\"] = default_1;\n\n\n/***/ }),\n\n/***/ 136:\n/***/ (function(__unused_webpack_module, exports) {\n\n\nObject.defineProperty(exports, \"__esModule\", ({ value: true }));\n/**\n * Improved text function with halign and valign support\n * Inspiration from: http://stackoverflow.com/questions/28327510/align-text-right-using-jspdf/28433113#28433113\n */\nfunction default_1(text, x, y, styles, doc) {\n styles = styles || {};\n var PHYSICAL_LINE_HEIGHT = 1.15;\n var k = doc.internal.scaleFactor;\n var fontSize = doc.internal.getFontSize() / k;\n var lineHeightFactor = doc.getLineHeightFactor\n ? doc.getLineHeightFactor()\n : PHYSICAL_LINE_HEIGHT;\n var lineHeight = fontSize * lineHeightFactor;\n var splitRegex = /\\r\\n|\\r|\\n/g;\n var splitText = '';\n var lineCount = 1;\n if (styles.valign === 'middle' ||\n styles.valign === 'bottom' ||\n styles.halign === 'center' ||\n styles.halign === 'right') {\n splitText = typeof text === 'string' ? text.split(splitRegex) : text;\n lineCount = splitText.length || 1;\n }\n // Align the top\n y += fontSize * (2 - PHYSICAL_LINE_HEIGHT);\n if (styles.valign === 'middle')\n y -= (lineCount / 2) * lineHeight;\n else if (styles.valign === 'bottom')\n y -= lineCount * lineHeight;\n if (styles.halign === 'center' || styles.halign === 'right') {\n var alignSize = fontSize;\n if (styles.halign === 'center')\n alignSize *= 0.5;\n if (splitText && lineCount >= 1) {\n for (var iLine = 0; iLine < splitText.length; iLine++) {\n doc.text(splitText[iLine], x - doc.getStringUnitWidth(splitText[iLine]) * alignSize, y);\n y += lineHeight;\n }\n return doc;\n }\n x -= doc.getStringUnitWidth(text) * alignSize;\n }\n if (styles.halign === 'justify') {\n doc.text(text, x, y, {\n maxWidth: styles.maxWidth || 100,\n align: 'justify',\n });\n }\n else {\n doc.text(text, x, y);\n }\n return doc;\n}\nexports[\"default\"] = default_1;\n\n\n/***/ }),\n\n/***/ 420:\n/***/ (function(__unused_webpack_module, exports) {\n\n\nObject.defineProperty(exports, \"__esModule\", ({ value: true }));\nexports.getPageAvailableWidth = exports.parseSpacing = exports.getFillStyle = exports.addTableBorder = exports.getStringWidth = void 0;\nfunction getStringWidth(text, styles, doc) {\n doc.applyStyles(styles, true);\n var textArr = Array.isArray(text) ? text : [text];\n var widestLineWidth = textArr\n .map(function (text) { return doc.getTextWidth(text); })\n .reduce(function (a, b) { return Math.max(a, b); }, 0);\n return widestLineWidth;\n}\nexports.getStringWidth = getStringWidth;\nfunction addTableBorder(doc, table, startPos, cursor) {\n var lineWidth = table.settings.tableLineWidth;\n var lineColor = table.settings.tableLineColor;\n doc.applyStyles({ lineWidth: lineWidth, lineColor: lineColor });\n var fillStyle = getFillStyle(lineWidth, false);\n if (fillStyle) {\n doc.rect(startPos.x, startPos.y, table.getWidth(doc.pageSize().width), cursor.y - startPos.y, fillStyle);\n }\n}\nexports.addTableBorder = addTableBorder;\nfunction getFillStyle(lineWidth, fillColor) {\n var drawLine = lineWidth > 0;\n var drawBackground = fillColor || fillColor === 0;\n if (drawLine && drawBackground) {\n return 'DF'; // Fill then stroke\n }\n else if (drawLine) {\n return 'S'; // Only stroke (transparent background)\n }\n else if (drawBackground) {\n return 'F'; // Only fill, no stroke\n }\n else {\n return null;\n }\n}\nexports.getFillStyle = getFillStyle;\nfunction parseSpacing(value, defaultValue) {\n var _a, _b, _c, _d;\n value = value || defaultValue;\n if (Array.isArray(value)) {\n if (value.length >= 4) {\n return {\n top: value[0],\n right: value[1],\n bottom: value[2],\n left: value[3],\n };\n }\n else if (value.length === 3) {\n return {\n top: value[0],\n right: value[1],\n bottom: value[2],\n left: value[1],\n };\n }\n else if (value.length === 2) {\n return {\n top: value[0],\n right: value[1],\n bottom: value[0],\n left: value[1],\n };\n }\n else if (value.length === 1) {\n value = value[0];\n }\n else {\n value = defaultValue;\n }\n }\n if (typeof value === 'object') {\n if (typeof value.vertical === 'number') {\n value.top = value.vertical;\n value.bottom = value.vertical;\n }\n if (typeof value.horizontal === 'number') {\n value.right = value.horizontal;\n value.left = value.horizontal;\n }\n return {\n left: (_a = value.left) !== null && _a !== void 0 ? _a : defaultValue,\n top: (_b = value.top) !== null && _b !== void 0 ? _b : defaultValue,\n right: (_c = value.right) !== null && _c !== void 0 ? _c : defaultValue,\n bottom: (_d = value.bottom) !== null && _d !== void 0 ? _d : defaultValue,\n };\n }\n if (typeof value !== 'number') {\n value = defaultValue;\n }\n return { top: value, right: value, bottom: value, left: value };\n}\nexports.parseSpacing = parseSpacing;\nfunction getPageAvailableWidth(doc, table) {\n var margins = parseSpacing(table.settings.margin, 0);\n return doc.pageSize().width - (margins.left + margins.right);\n}\nexports.getPageAvailableWidth = getPageAvailableWidth;\n\n\n/***/ }),\n\n/***/ 796:\n/***/ (function(__unused_webpack_module, exports) {\n\n\nvar __extends = (this && this.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n if (typeof b !== \"function\" && b !== null)\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nObject.defineProperty(exports, \"__esModule\", ({ value: true }));\nexports.getTheme = exports.defaultStyles = exports.HtmlRowInput = void 0;\nvar HtmlRowInput = /** @class */ (function (_super) {\n __extends(HtmlRowInput, _super);\n function HtmlRowInput(element) {\n var _this = _super.call(this) || this;\n _this._element = element;\n return _this;\n }\n return HtmlRowInput;\n}(Array));\nexports.HtmlRowInput = HtmlRowInput;\n// Base style for all themes\nfunction defaultStyles(scaleFactor) {\n return {\n font: 'helvetica', // helvetica, times, courier\n fontStyle: 'normal', // normal, bold, italic, bolditalic\n overflow: 'linebreak', // linebreak, ellipsize, visible or hidden\n fillColor: false, // Either false for transparent, rbg array e.g. [255, 255, 255] or gray level e.g 200\n textColor: 20,\n halign: 'left', // left, center, right, justify\n valign: 'top', // top, middle, bottom\n fontSize: 10,\n cellPadding: 5 / scaleFactor, // number or {top,left,right,left,vertical,horizontal}\n lineColor: 200,\n lineWidth: 0,\n cellWidth: 'auto', // 'auto'|'wrap'|number\n minCellHeight: 0,\n minCellWidth: 0,\n };\n}\nexports.defaultStyles = defaultStyles;\nfunction getTheme(name) {\n var themes = {\n striped: {\n table: { fillColor: 255, textColor: 80, fontStyle: 'normal' },\n head: { textColor: 255, fillColor: [41, 128, 185], fontStyle: 'bold' },\n body: {},\n foot: { textColor: 255, fillColor: [41, 128, 185], fontStyle: 'bold' },\n alternateRow: { fillColor: 245 },\n },\n grid: {\n table: {\n fillColor: 255,\n textColor: 80,\n fontStyle: 'normal',\n lineWidth: 0.1,\n },\n head: {\n textColor: 255,\n fillColor: [26, 188, 156],\n fontStyle: 'bold',\n lineWidth: 0,\n },\n body: {},\n foot: {\n textColor: 255,\n fillColor: [26, 188, 156],\n fontStyle: 'bold',\n lineWidth: 0,\n },\n alternateRow: {},\n },\n plain: {\n head: { fontStyle: 'bold' },\n foot: { fontStyle: 'bold' },\n },\n };\n return themes[name];\n}\nexports.getTheme = getTheme;\n\n\n/***/ }),\n\n/***/ 903:\n/***/ (function(__unused_webpack_module, exports, __webpack_require__) {\n\n\nObject.defineProperty(exports, \"__esModule\", ({ value: true }));\nexports.parseCss = void 0;\n// Limitations\n// - No support for border spacing\n// - No support for transparency\nvar common_1 = __webpack_require__(420);\nfunction parseCss(supportedFonts, element, scaleFactor, style, window) {\n var result = {};\n var pxScaleFactor = 96 / 72;\n var backgroundColor = parseColor(element, function (elem) {\n return window.getComputedStyle(elem)['backgroundColor'];\n });\n if (backgroundColor != null)\n result.fillColor = backgroundColor;\n var textColor = parseColor(element, function (elem) {\n return window.getComputedStyle(elem)['color'];\n });\n if (textColor != null)\n result.textColor = textColor;\n var padding = parsePadding(style, scaleFactor);\n if (padding)\n result.cellPadding = padding;\n var borderColorSide = 'borderTopColor';\n var finalScaleFactor = pxScaleFactor * scaleFactor;\n var btw = style.borderTopWidth;\n if (style.borderBottomWidth === btw &&\n style.borderRightWidth === btw &&\n style.borderLeftWidth === btw) {\n var borderWidth = (parseFloat(btw) || 0) / finalScaleFactor;\n if (borderWidth)\n result.lineWidth = borderWidth;\n }\n else {\n result.lineWidth = {\n top: (parseFloat(style.borderTopWidth) || 0) / finalScaleFactor,\n right: (parseFloat(style.borderRightWidth) || 0) / finalScaleFactor,\n bottom: (parseFloat(style.borderBottomWidth) || 0) / finalScaleFactor,\n left: (parseFloat(style.borderLeftWidth) || 0) / finalScaleFactor,\n };\n // Choose border color of first available side\n // could be improved by supporting object as lineColor\n if (!result.lineWidth.top) {\n if (result.lineWidth.right) {\n borderColorSide = 'borderRightColor';\n }\n else if (result.lineWidth.bottom) {\n borderColorSide = 'borderBottomColor';\n }\n else if (result.lineWidth.left) {\n borderColorSide = 'borderLeftColor';\n }\n }\n }\n console.log(result.lineWidth);\n var borderColor = parseColor(element, function (elem) {\n return window.getComputedStyle(elem)[borderColorSide];\n });\n if (borderColor != null)\n result.lineColor = borderColor;\n var accepted = ['left', 'right', 'center', 'justify'];\n if (accepted.indexOf(style.textAlign) !== -1) {\n result.halign = style.textAlign;\n }\n accepted = ['middle', 'bottom', 'top'];\n if (accepted.indexOf(style.verticalAlign) !== -1) {\n result.valign = style.verticalAlign;\n }\n var res = parseInt(style.fontSize || '');\n if (!isNaN(res))\n result.fontSize = res / pxScaleFactor;\n var fontStyle = parseFontStyle(style);\n if (fontStyle)\n result.fontStyle = fontStyle;\n var font = (style.fontFamily || '').toLowerCase();\n if (supportedFonts.indexOf(font) !== -1) {\n result.font = font;\n }\n return result;\n}\nexports.parseCss = parseCss;\nfunction parseFontStyle(style) {\n var res = '';\n if (style.fontWeight === 'bold' ||\n style.fontWeight === 'bolder' ||\n parseInt(style.fontWeight) >= 700) {\n res = 'bold';\n }\n if (style.fontStyle === 'italic' || style.fontStyle === 'oblique') {\n res += 'italic';\n }\n return res;\n}\nfunction parseColor(element, styleGetter) {\n var cssColor = realColor(element, styleGetter);\n if (!cssColor)\n return null;\n var rgba = cssColor.match(/^rgba?\\((\\d+),\\s*(\\d+),\\s*(\\d+)(?:,\\s*(\\d*\\.?\\d*))?\\)$/);\n if (!rgba || !Array.isArray(rgba)) {\n return null;\n }\n var color = [\n parseInt(rgba[1]),\n parseInt(rgba[2]),\n parseInt(rgba[3]),\n ];\n var alpha = parseInt(rgba[4]);\n if (alpha === 0 || isNaN(color[0]) || isNaN(color[1]) || isNaN(color[2])) {\n return null;\n }\n return color;\n}\nfunction realColor(elem, styleGetter) {\n var bg = styleGetter(elem);\n if (bg === 'rgba(0, 0, 0, 0)' ||\n bg === 'transparent' ||\n bg === 'initial' ||\n bg === 'inherit') {\n if (elem.parentElement == null) {\n return null;\n }\n return realColor(elem.parentElement, styleGetter);\n }\n else {\n return bg;\n }\n}\nfunction parsePadding(style, scaleFactor) {\n var val = [\n style.paddingTop,\n style.paddingRight,\n style.paddingBottom,\n style.paddingLeft,\n ];\n var pxScaleFactor = 96 / (72 / scaleFactor);\n var linePadding = (parseInt(style.lineHeight) - parseInt(style.fontSize)) / scaleFactor / 2;\n var inputPadding = val.map(function (n) {\n return parseInt(n || '0') / pxScaleFactor;\n });\n var padding = (0, common_1.parseSpacing)(inputPadding, 0);\n if (linePadding > padding.top) {\n padding.top = linePadding;\n }\n if (linePadding > padding.bottom) {\n padding.bottom = linePadding;\n }\n return padding;\n}\n\n\n/***/ }),\n\n/***/ 744:\n/***/ (function(__unused_webpack_module, exports) {\n\n\nObject.defineProperty(exports, \"__esModule\", ({ value: true }));\nexports.DocHandler = void 0;\nvar globalDefaults = {};\nvar DocHandler = /** @class */ (function () {\n function DocHandler(jsPDFDocument) {\n this.jsPDFDocument = jsPDFDocument;\n this.userStyles = {\n // Black for versions of jspdf without getTextColor\n textColor: jsPDFDocument.getTextColor\n ? this.jsPDFDocument.getTextColor()\n : 0,\n fontSize: jsPDFDocument.internal.getFontSize(),\n fontStyle: jsPDFDocument.internal.getFont().fontStyle,\n font: jsPDFDocument.internal.getFont().fontName,\n // 0 for versions of jspdf without getLineWidth\n lineWidth: jsPDFDocument.getLineWidth\n ? this.jsPDFDocument.getLineWidth()\n : 0,\n // Black for versions of jspdf without getDrawColor\n lineColor: jsPDFDocument.getDrawColor\n ? this.jsPDFDocument.getDrawColor()\n : 0,\n };\n }\n DocHandler.setDefaults = function (defaults, doc) {\n if (doc === void 0) { doc = null; }\n if (doc) {\n doc.__autoTableDocumentDefaults = defaults;\n }\n else {\n globalDefaults = defaults;\n }\n };\n DocHandler.unifyColor = function (c) {\n if (Array.isArray(c)) {\n return c;\n }\n else if (typeof c === 'number') {\n return [c, c, c];\n }\n else if (typeof c === 'string') {\n return [c];\n }\n else {\n return null;\n }\n };\n DocHandler.prototype.applyStyles = function (styles, fontOnly) {\n // Font style needs to be applied before font\n // https://github.com/simonbengtsson/jsPDF-AutoTable/issues/632\n var _a, _b, _c;\n if (fontOnly === void 0) { fontOnly = false; }\n if (styles.fontStyle)\n this.jsPDFDocument.setFontStyle &&\n this.jsPDFDocument.setFontStyle(styles.fontStyle);\n var _d = this.jsPDFDocument.internal.getFont(), fontStyle = _d.fontStyle, fontName = _d.fontName;\n if (styles.font)\n fontName = styles.font;\n if (styles.fontStyle) {\n fontStyle = styles.fontStyle;\n var availableFontStyles = this.getFontList()[fontName];\n if (availableFontStyles &&\n availableFontStyles.indexOf(fontStyle) === -1) {\n // Common issue was that the default bold in headers\n // made custom fonts not work. For example:\n // https://github.com/simonbengtsson/jsPDF-AutoTable/issues/653\n this.jsPDFDocument.setFontStyle &&\n this.jsPDFDocument.setFontStyle(availableFontStyles[0]);\n fontStyle = availableFontStyles[0];\n }\n }\n this.jsPDFDocument.setFont(fontName, fontStyle);\n if (styles.fontSize)\n this.jsPDFDocument.setFontSize(styles.fontSize);\n if (fontOnly) {\n return; // Performance improvement\n }\n var color = DocHandler.unifyColor(styles.fillColor);\n if (color)\n (_a = this.jsPDFDocument).setFillColor.apply(_a, color);\n color = DocHandler.unifyColor(styles.textColor);\n if (color)\n (_b = this.jsPDFDocument).setTextColor.apply(_b, color);\n color = DocHandler.unifyColor(styles.lineColor);\n if (color)\n (_c = this.jsPDFDocument).setDrawColor.apply(_c, color);\n if (typeof styles.lineWidth === 'number') {\n this.jsPDFDocument.setLineWidth(styles.lineWidth);\n }\n };\n DocHandler.prototype.splitTextToSize = function (text, size, opts) {\n return this.jsPDFDocument.splitTextToSize(text, size, opts);\n };\n /**\n * Adds a rectangle to the PDF\n * @param x Coordinate (in units declared at inception of PDF document) against left edge of the page\n * @param y Coordinate (in units declared at inception of PDF document) against upper edge of the page\n * @param width Width (in units declared at inception of PDF document)\n * @param height Height (in units declared at inception of PDF document)\n * @param fillStyle A string specifying the painting style or null. Valid styles include: 'S' [default] - stroke, 'F' - fill, and 'DF' (or 'FD') - fill then stroke.\n */\n DocHandler.prototype.rect = function (x, y, width, height, fillStyle) {\n // null is excluded from fillStyle possible values because it isn't needed\n // and is prone to bugs as it's used to postpone setting the style\n // https://rawgit.com/MrRio/jsPDF/master/docs/jsPDF.html#rect\n return this.jsPDFDocument.rect(x, y, width, height, fillStyle);\n };\n DocHandler.prototype.getLastAutoTable = function () {\n return this.jsPDFDocument.lastAutoTable || null;\n };\n DocHandler.prototype.getTextWidth = function (text) {\n return this.jsPDFDocument.getTextWidth(text);\n };\n DocHandler.prototype.getDocument = function () {\n return this.jsPDFDocument;\n };\n DocHandler.prototype.setPage = function (page) {\n this.jsPDFDocument.setPage(page);\n };\n DocHandler.prototype.addPage = function () {\n return this.jsPDFDocument.addPage();\n };\n DocHandler.prototype.getFontList = function () {\n return this.jsPDFDocument.getFontList();\n };\n DocHandler.prototype.getGlobalOptions = function () {\n return globalDefaults || {};\n };\n DocHandler.prototype.getDocumentOptions = function () {\n return this.jsPDFDocument.__autoTableDocumentDefaults || {};\n };\n DocHandler.prototype.pageSize = function () {\n var pageSize = this.jsPDFDocument.internal.pageSize;\n // JSPDF 1.4 uses get functions instead of properties on pageSize\n if (pageSize.width == null) {\n pageSize = {\n width: pageSize.getWidth(),\n height: pageSize.getHeight(),\n };\n }\n return pageSize;\n };\n DocHandler.prototype.scaleFactor = function () {\n return this.jsPDFDocument.internal.scaleFactor;\n };\n DocHandler.prototype.getLineHeightFactor = function () {\n var doc = this.jsPDFDocument;\n return doc.getLineHeightFactor ? doc.getLineHeightFactor() : 1.15;\n };\n DocHandler.prototype.getLineHeight = function (fontSize) {\n return (fontSize / this.scaleFactor()) * this.getLineHeightFactor();\n };\n DocHandler.prototype.pageNumber = function () {\n var pageInfo = this.jsPDFDocument.internal.getCurrentPageInfo();\n if (!pageInfo) {\n // Only recent versions of jspdf has pageInfo\n return this.jsPDFDocument.internal.getNumberOfPages();\n }\n return pageInfo.pageNumber;\n };\n return DocHandler;\n}());\nexports.DocHandler = DocHandler;\n\n\n/***/ }),\n\n/***/ 4:\n/***/ (function(__unused_webpack_module, exports, __webpack_require__) {\n\n\nObject.defineProperty(exports, \"__esModule\", ({ value: true }));\nexports.parseHtml = void 0;\nvar cssParser_1 = __webpack_require__(903);\nvar config_1 = __webpack_require__(796);\nfunction parseHtml(doc, input, window, includeHiddenHtml, useCss) {\n var _a, _b;\n if (includeHiddenHtml === void 0) { includeHiddenHtml = false; }\n if (useCss === void 0) { useCss = false; }\n var tableElement;\n if (typeof input === 'string') {\n tableElement = window.document.querySelector(input);\n }\n else {\n tableElement = input;\n }\n var supportedFonts = Object.keys(doc.getFontList());\n var scaleFactor = doc.scaleFactor();\n var head = [], body = [], foot = [];\n if (!tableElement) {\n console.error('Html table could not be found with input: ', input);\n return { head: head, body: body, foot: foot };\n }\n for (var i = 0; i < tableElement.rows.length; i++) {\n var element = tableElement.rows[i];\n var tagName = (_b = (_a = element === null || element === void 0 ? void 0 : element.parentElement) === null || _a === void 0 ? void 0 : _a.tagName) === null || _b === void 0 ? void 0 : _b.toLowerCase();\n var row = parseRowContent(supportedFonts, scaleFactor, window, element, includeHiddenHtml, useCss);\n if (!row)\n continue;\n if (tagName === 'thead') {\n head.push(row);\n }\n else if (tagName === 'tfoot') {\n foot.push(row);\n }\n else {\n // Add to body both if parent is tbody or table\n body.push(row);\n }\n }\n return { head: head, body: body, foot: foot };\n}\nexports.parseHtml = parseHtml;\nfunction parseRowContent(supportedFonts, scaleFactor, window, row, includeHidden, useCss) {\n var resultRow = new config_1.HtmlRowInput(row);\n for (var i = 0; i < row.cells.length; i++) {\n var cell = row.cells[i];\n var style_1 = window.getComputedStyle(cell);\n if (includeHidden || style_1.display !== 'none') {\n var cellStyles = void 0;\n if (useCss) {\n cellStyles = (0, cssParser_1.parseCss)(supportedFonts, cell, scaleFactor, style_1, window);\n }\n resultRow.push({\n rowSpan: cell.rowSpan,\n colSpan: cell.colSpan,\n styles: cellStyles,\n _element: cell,\n content: parseCellContent(cell),\n });\n }\n }\n var style = window.getComputedStyle(row);\n if (resultRow.length > 0 && (includeHidden || style.display !== 'none')) {\n return resultRow;\n }\n}\nfunction parseCellContent(orgCell) {\n // Work on cloned node to make sure no changes are applied to html table\n var cell = orgCell.cloneNode(true);\n // Remove extra space and line breaks in markup to make it more similar to\n // what would be shown in html\n cell.innerHTML = cell.innerHTML.replace(/\\n/g, '').replace(/ +/g, ' ');\n // Preserve
tags as line breaks in the pdf\n cell.innerHTML = cell.innerHTML\n .split(//) //start with '
'.\n .map(function (part) { return part.trim(); })\n .join('\\n');\n // innerText for ie\n return cell.innerText || cell.textContent || '';\n}\n\n\n/***/ }),\n\n/***/ 776:\n/***/ (function(__unused_webpack_module, exports, __webpack_require__) {\n\n\nObject.defineProperty(exports, \"__esModule\", ({ value: true }));\nexports.parseInput = void 0;\nvar htmlParser_1 = __webpack_require__(4);\nvar polyfills_1 = __webpack_require__(356);\nvar common_1 = __webpack_require__(420);\nvar documentHandler_1 = __webpack_require__(744);\nvar inputValidator_1 = __webpack_require__(792);\nfunction parseInput(d, current) {\n var doc = new documentHandler_1.DocHandler(d);\n var document = doc.getDocumentOptions();\n var global = doc.getGlobalOptions();\n (0, inputValidator_1.default)(doc, global, document, current);\n var options = (0, polyfills_1.assign)({}, global, document, current);\n var win;\n if (typeof window !== 'undefined') {\n win = window;\n }\n var styles = parseStyles(global, document, current);\n var hooks = parseHooks(global, document, current);\n var settings = parseSettings(doc, options);\n var content = parseContent(doc, options, win);\n return {\n id: current.tableId,\n content: content,\n hooks: hooks,\n styles: styles,\n settings: settings,\n };\n}\nexports.parseInput = parseInput;\nfunction parseStyles(gInput, dInput, cInput) {\n var styleOptions = {\n styles: {},\n headStyles: {},\n bodyStyles: {},\n footStyles: {},\n alternateRowStyles: {},\n columnStyles: {},\n };\n var _loop_1 = function (prop) {\n if (prop === 'columnStyles') {\n var global_1 = gInput[prop];\n var document_1 = dInput[prop];\n var current = cInput[prop];\n styleOptions.columnStyles = (0, polyfills_1.assign)({}, global_1, document_1, current);\n }\n else {\n var allOptions = [gInput, dInput, cInput];\n var styles = allOptions.map(function (opts) { return opts[prop] || {}; });\n styleOptions[prop] = (0, polyfills_1.assign)({}, styles[0], styles[1], styles[2]);\n }\n };\n for (var _i = 0, _a = Object.keys(styleOptions); _i < _a.length; _i++) {\n var prop = _a[_i];\n _loop_1(prop);\n }\n return styleOptions;\n}\nfunction parseHooks(global, document, current) {\n var allOptions = [global, document, current];\n var result = {\n didParseCell: [],\n willDrawCell: [],\n didDrawCell: [],\n willDrawPage: [],\n didDrawPage: [],\n };\n for (var _i = 0, allOptions_1 = allOptions; _i < allOptions_1.length; _i++) {\n var options = allOptions_1[_i];\n if (options.didParseCell)\n result.didParseCell.push(options.didParseCell);\n if (options.willDrawCell)\n result.willDrawCell.push(options.willDrawCell);\n if (options.didDrawCell)\n result.didDrawCell.push(options.didDrawCell);\n if (options.willDrawPage)\n result.willDrawPage.push(options.willDrawPage);\n if (options.didDrawPage)\n result.didDrawPage.push(options.didDrawPage);\n }\n return result;\n}\nfunction parseSettings(doc, options) {\n var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k, _l, _m;\n var margin = (0, common_1.parseSpacing)(options.margin, 40 / doc.scaleFactor());\n var startY = (_a = getStartY(doc, options.startY)) !== null && _a !== void 0 ? _a : margin.top;\n var showFoot;\n if (options.showFoot === true) {\n showFoot = 'everyPage';\n }\n else if (options.showFoot === false) {\n showFoot = 'never';\n }\n else {\n showFoot = (_b = options.showFoot) !== null && _b !== void 0 ? _b : 'everyPage';\n }\n var showHead;\n if (options.showHead === true) {\n showHead = 'everyPage';\n }\n else if (options.showHead === false) {\n showHead = 'never';\n }\n else {\n showHead = (_c = options.showHead) !== null && _c !== void 0 ? _c : 'everyPage';\n }\n var useCss = (_d = options.useCss) !== null && _d !== void 0 ? _d : false;\n var theme = options.theme || (useCss ? 'plain' : 'striped');\n var horizontalPageBreak = !!options.horizontalPageBreak;\n var horizontalPageBreakRepeat = (_e = options.horizontalPageBreakRepeat) !== null && _e !== void 0 ? _e : null;\n return {\n includeHiddenHtml: (_f = options.includeHiddenHtml) !== null && _f !== void 0 ? _f : false,\n useCss: useCss,\n theme: theme,\n startY: startY,\n margin: margin,\n pageBreak: (_g = options.pageBreak) !== null && _g !== void 0 ? _g : 'auto',\n rowPageBreak: (_h = options.rowPageBreak) !== null && _h !== void 0 ? _h : 'auto',\n tableWidth: (_j = options.tableWidth) !== null && _j !== void 0 ? _j : 'auto',\n showHead: showHead,\n showFoot: showFoot,\n tableLineWidth: (_k = options.tableLineWidth) !== null && _k !== void 0 ? _k : 0,\n tableLineColor: (_l = options.tableLineColor) !== null && _l !== void 0 ? _l : 200,\n horizontalPageBreak: horizontalPageBreak,\n horizontalPageBreakRepeat: horizontalPageBreakRepeat,\n horizontalPageBreakBehaviour: (_m = options.horizontalPageBreakBehaviour) !== null && _m !== void 0 ? _m : 'afterAllRows',\n };\n}\nfunction getStartY(doc, userStartY) {\n var previous = doc.getLastAutoTable();\n var sf = doc.scaleFactor();\n var currentPage = doc.pageNumber();\n var isSamePageAsPreviousTable = false;\n if (previous && previous.startPageNumber) {\n var endingPage = previous.startPageNumber + previous.pageNumber - 1;\n isSamePageAsPreviousTable = endingPage === currentPage;\n }\n if (typeof userStartY === 'number') {\n return userStartY;\n }\n else if (userStartY == null || userStartY === false) {\n if (isSamePageAsPreviousTable && (previous === null || previous === void 0 ? void 0 : previous.finalY) != null) {\n // Some users had issues with overlapping tables when they used multiple\n // tables without setting startY so setting it here to a sensible default.\n return previous.finalY + 20 / sf;\n }\n }\n return null;\n}\nfunction parseContent(doc, options, window) {\n var head = options.head || [];\n var body = options.body || [];\n var foot = options.foot || [];\n if (options.html) {\n var hidden = options.includeHiddenHtml;\n if (window) {\n var htmlContent = (0, htmlParser_1.parseHtml)(doc, options.html, window, hidden, options.useCss) || {};\n head = htmlContent.head || head;\n body = htmlContent.body || head;\n foot = htmlContent.foot || head;\n }\n else {\n console.error('Cannot parse html in non browser environment');\n }\n }\n var columns = options.columns || parseColumns(head, body, foot);\n return {\n columns: columns,\n head: head,\n body: body,\n foot: foot,\n };\n}\nfunction parseColumns(head, body, foot) {\n var firstRow = head[0] || body[0] || foot[0] || [];\n var result = [];\n Object.keys(firstRow)\n .filter(function (key) { return key !== '_element'; })\n .forEach(function (key) {\n var colSpan = 1;\n var input;\n if (Array.isArray(firstRow)) {\n input = firstRow[parseInt(key)];\n }\n else {\n input = firstRow[key];\n }\n if (typeof input === 'object' && !Array.isArray(input)) {\n colSpan = (input === null || input === void 0 ? void 0 : input.colSpan) || 1;\n }\n for (var i = 0; i < colSpan; i++) {\n var id = void 0;\n if (Array.isArray(firstRow)) {\n id = result.length;\n }\n else {\n id = key + (i > 0 ? \"_\".concat(i) : '');\n }\n var rowResult = { dataKey: id };\n result.push(rowResult);\n }\n });\n return result;\n}\n\n\n/***/ }),\n\n/***/ 792:\n/***/ (function(__unused_webpack_module, exports) {\n\n\nObject.defineProperty(exports, \"__esModule\", ({ value: true }));\nfunction default_1(doc, global, document, current) {\n var _loop_1 = function (options) {\n if (options && typeof options !== 'object') {\n console.error('The options parameter should be of type object, is: ' + typeof options);\n }\n if (typeof options.extendWidth !== 'undefined') {\n options.tableWidth = options.extendWidth ? 'auto' : 'wrap';\n console.error('Use of deprecated option: extendWidth, use tableWidth instead.');\n }\n if (typeof options.margins !== 'undefined') {\n if (typeof options.margin === 'undefined')\n options.margin = options.margins;\n console.error('Use of deprecated option: margins, use margin instead.');\n }\n if (options.startY && typeof options.startY !== 'number') {\n console.error('Invalid value for startY option', options.startY);\n delete options.startY;\n }\n if (!options.didDrawPage &&\n (options.afterPageContent ||\n options.beforePageContent ||\n options.afterPageAdd)) {\n console.error('The afterPageContent, beforePageContent and afterPageAdd hooks are deprecated. Use didDrawPage instead');\n options.didDrawPage = function (data) {\n doc.applyStyles(doc.userStyles);\n if (options.beforePageContent)\n options.beforePageContent(data);\n doc.applyStyles(doc.userStyles);\n if (options.afterPageContent)\n options.afterPageContent(data);\n doc.applyStyles(doc.userStyles);\n if (options.afterPageAdd && data.pageNumber > 1) {\n ;\n data.afterPageAdd(data);\n }\n doc.applyStyles(doc.userStyles);\n };\n }\n ;\n [\n 'createdHeaderCell',\n 'drawHeaderRow',\n 'drawRow',\n 'drawHeaderCell',\n ].forEach(function (name) {\n if (options[name]) {\n console.error(\"The \\\"\".concat(name, \"\\\" hook has changed in version 3.0, check the changelog for how to migrate.\"));\n }\n });\n [\n ['showFoot', 'showFooter'],\n ['showHead', 'showHeader'],\n ['didDrawPage', 'addPageContent'],\n ['didParseCell', 'createdCell'],\n ['headStyles', 'headerStyles'],\n ].forEach(function (_a) {\n var current = _a[0], deprecated = _a[1];\n if (options[deprecated]) {\n console.error(\"Use of deprecated option \".concat(deprecated, \". Use \").concat(current, \" instead\"));\n options[current] = options[deprecated];\n }\n });\n [\n ['padding', 'cellPadding'],\n ['lineHeight', 'rowHeight'],\n 'fontSize',\n 'overflow',\n ].forEach(function (o) {\n var deprecatedOption = typeof o === 'string' ? o : o[0];\n var style = typeof o === 'string' ? o : o[1];\n if (typeof options[deprecatedOption] !== 'undefined') {\n if (typeof options.styles[style] === 'undefined') {\n options.styles[style] = options[deprecatedOption];\n }\n console.error('Use of deprecated option: ' +\n deprecatedOption +\n ', use the style ' +\n style +\n ' instead.');\n }\n });\n for (var _b = 0, _c = [\n 'styles',\n 'bodyStyles',\n 'headStyles',\n 'footStyles',\n ]; _b < _c.length; _b++) {\n var styleProp = _c[_b];\n checkStyles(options[styleProp] || {});\n }\n var columnStyles = options['columnStyles'] || {};\n for (var _d = 0, _e = Object.keys(columnStyles); _d < _e.length; _d++) {\n var key = _e[_d];\n checkStyles(columnStyles[key] || {});\n }\n };\n for (var _i = 0, _a = [global, document, current]; _i < _a.length; _i++) {\n var options = _a[_i];\n _loop_1(options);\n }\n}\nexports[\"default\"] = default_1;\nfunction checkStyles(styles) {\n if (styles.rowHeight) {\n console.error('Use of deprecated style rowHeight. It is renamed to minCellHeight.');\n if (!styles.minCellHeight) {\n styles.minCellHeight = styles.rowHeight;\n }\n }\n else if (styles.columnWidth) {\n console.error('Use of deprecated style columnWidth. It is renamed to cellWidth.');\n if (!styles.cellWidth) {\n styles.cellWidth = styles.columnWidth;\n }\n }\n}\n\n\n/***/ }),\n\n/***/ 260:\n/***/ (function(__unused_webpack_module, exports, __webpack_require__) {\n\n\nObject.defineProperty(exports, \"__esModule\", ({ value: true }));\nexports.Column = exports.Cell = exports.Row = exports.Table = void 0;\nvar config_1 = __webpack_require__(796);\nvar HookData_1 = __webpack_require__(172);\nvar common_1 = __webpack_require__(420);\nvar Table = /** @class */ (function () {\n function Table(input, content) {\n this.pageNumber = 1;\n // Deprecated, use pageNumber instead\n // Not using getter since:\n // https://github.com/simonbengtsson/jsPDF-AutoTable/issues/596\n this.pageCount = 1;\n this.id = input.id;\n this.settings = input.settings;\n this.styles = input.styles;\n this.hooks = input.hooks;\n this.columns = content.columns;\n this.head = content.head;\n this.body = content.body;\n this.foot = content.foot;\n }\n Table.prototype.getHeadHeight = function (columns) {\n return this.head.reduce(function (acc, row) { return acc + row.getMaxCellHeight(columns); }, 0);\n };\n Table.prototype.getFootHeight = function (columns) {\n return this.foot.reduce(function (acc, row) { return acc + row.getMaxCellHeight(columns); }, 0);\n };\n Table.prototype.allRows = function () {\n return this.head.concat(this.body).concat(this.foot);\n };\n Table.prototype.callCellHooks = function (doc, handlers, cell, row, column, cursor) {\n for (var _i = 0, handlers_1 = handlers; _i < handlers_1.length; _i++) {\n var handler = handlers_1[_i];\n var data = new HookData_1.CellHookData(doc, this, cell, row, column, cursor);\n var result = handler(data) === false;\n // Make sure text is always string[] since user can assign string\n cell.text = Array.isArray(cell.text) ? cell.text : [cell.text];\n if (result) {\n return false;\n }\n }\n return true;\n };\n Table.prototype.callEndPageHooks = function (doc, cursor) {\n doc.applyStyles(doc.userStyles);\n for (var _i = 0, _a = this.hooks.didDrawPage; _i < _a.length; _i++) {\n var handler = _a[_i];\n handler(new HookData_1.HookData(doc, this, cursor));\n }\n };\n Table.prototype.callWillDrawPageHooks = function (doc, cursor) {\n for (var _i = 0, _a = this.hooks.willDrawPage; _i < _a.length; _i++) {\n var handler = _a[_i];\n handler(new HookData_1.HookData(doc, this, cursor));\n }\n };\n Table.prototype.getWidth = function (pageWidth) {\n if (typeof this.settings.tableWidth === 'number') {\n return this.settings.tableWidth;\n }\n else if (this.settings.tableWidth === 'wrap') {\n var wrappedWidth = this.columns.reduce(function (total, col) { return total + col.wrappedWidth; }, 0);\n return wrappedWidth;\n }\n else {\n var margin = this.settings.margin;\n return pageWidth - margin.left - margin.right;\n }\n };\n return Table;\n}());\nexports.Table = Table;\nvar Row = /** @class */ (function () {\n function Row(raw, index, section, cells, spansMultiplePages) {\n if (spansMultiplePages === void 0) { spansMultiplePages = false; }\n this.height = 0;\n this.raw = raw;\n if (raw instanceof config_1.HtmlRowInput) {\n this.raw = raw._element;\n this.element = raw._element;\n }\n this.index = index;\n this.section = section;\n this.cells = cells;\n this.spansMultiplePages = spansMultiplePages;\n }\n Row.prototype.getMaxCellHeight = function (columns) {\n var _this = this;\n return columns.reduce(function (acc, column) { var _a; return Math.max(acc, ((_a = _this.cells[column.index]) === null || _a === void 0 ? void 0 : _a.height) || 0); }, 0);\n };\n Row.prototype.hasRowSpan = function (columns) {\n var _this = this;\n return (columns.filter(function (column) {\n var cell = _this.cells[column.index];\n if (!cell)\n return false;\n return cell.rowSpan > 1;\n }).length > 0);\n };\n Row.prototype.canEntireRowFit = function (height, columns) {\n return this.getMaxCellHeight(columns) <= height;\n };\n Row.prototype.getMinimumRowHeight = function (columns, doc) {\n var _this = this;\n return columns.reduce(function (acc, column) {\n var cell = _this.cells[column.index];\n if (!cell)\n return 0;\n var lineHeight = doc.getLineHeight(cell.styles.fontSize);\n var vPadding = cell.padding('vertical');\n var oneRowHeight = vPadding + lineHeight;\n return oneRowHeight > acc ? oneRowHeight : acc;\n }, 0);\n };\n return Row;\n}());\nexports.Row = Row;\nvar Cell = /** @class */ (function () {\n function Cell(raw, styles, section) {\n var _a, _b;\n this.contentHeight = 0;\n this.contentWidth = 0;\n this.wrappedWidth = 0;\n this.minReadableWidth = 0;\n this.minWidth = 0;\n this.width = 0;\n this.height = 0;\n this.x = 0;\n this.y = 0;\n this.styles = styles;\n this.section = section;\n this.raw = raw;\n var content = raw;\n if (raw != null && typeof raw === 'object' && !Array.isArray(raw)) {\n this.rowSpan = raw.rowSpan || 1;\n this.colSpan = raw.colSpan || 1;\n content = (_b = (_a = raw.content) !== null && _a !== void 0 ? _a : raw.title) !== null && _b !== void 0 ? _b : raw;\n if (raw._element) {\n this.raw = raw._element;\n }\n }\n else {\n this.rowSpan = 1;\n this.colSpan = 1;\n }\n // Stringify 0 and false, but not undefined or null\n var text = content != null ? '' + content : '';\n var splitRegex = /\\r\\n|\\r|\\n/g;\n this.text = text.split(splitRegex);\n }\n Cell.prototype.getTextPos = function () {\n var y;\n if (this.styles.valign === 'top') {\n y = this.y + this.padding('top');\n }\n else if (this.styles.valign === 'bottom') {\n y = this.y + this.height - this.padding('bottom');\n }\n else {\n var netHeight = this.height - this.padding('vertical');\n y = this.y + netHeight / 2 + this.padding('top');\n }\n var x;\n if (this.styles.halign === 'right') {\n x = this.x + this.width - this.padding('right');\n }\n else if (this.styles.halign === 'center') {\n var netWidth = this.width - this.padding('horizontal');\n x = this.x + netWidth / 2 + this.padding('left');\n }\n else {\n x = this.x + this.padding('left');\n }\n return { x: x, y: y };\n };\n // TODO (v4): replace parameters with only (lineHeight)\n Cell.prototype.getContentHeight = function (scaleFactor, lineHeightFactor) {\n if (lineHeightFactor === void 0) { lineHeightFactor = 1.15; }\n var lineCount = Array.isArray(this.text) ? this.text.length : 1;\n var lineHeight = (this.styles.fontSize / scaleFactor) * lineHeightFactor;\n var height = lineCount * lineHeight + this.padding('vertical');\n return Math.max(height, this.styles.minCellHeight);\n };\n Cell.prototype.padding = function (name) {\n var padding = (0, common_1.parseSpacing)(this.styles.cellPadding, 0);\n if (name === 'vertical') {\n return padding.top + padding.bottom;\n }\n else if (name === 'horizontal') {\n return padding.left + padding.right;\n }\n else {\n return padding[name];\n }\n };\n return Cell;\n}());\nexports.Cell = Cell;\nvar Column = /** @class */ (function () {\n function Column(dataKey, raw, index) {\n this.wrappedWidth = 0;\n this.minReadableWidth = 0;\n this.minWidth = 0;\n this.width = 0;\n this.dataKey = dataKey;\n this.raw = raw;\n this.index = index;\n }\n Column.prototype.getMaxCustomCellWidth = function (table) {\n var max = 0;\n for (var _i = 0, _a = table.allRows(); _i < _a.length; _i++) {\n var row = _a[_i];\n var cell = row.cells[this.index];\n if (cell && typeof cell.styles.cellWidth === 'number') {\n max = Math.max(max, cell.styles.cellWidth);\n }\n }\n return max;\n };\n return Column;\n}());\nexports.Column = Column;\n\n\n/***/ }),\n\n/***/ 356:\n/***/ (function(__unused_webpack_module, exports) {\n\n\n/* eslint-disable @typescript-eslint/no-unused-vars */\nObject.defineProperty(exports, \"__esModule\", ({ value: true }));\nexports.assign = void 0;\n// https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object/assign\nfunction assign(target, s, s1, s2, s3) {\n if (target == null) {\n throw new TypeError('Cannot convert undefined or null to object');\n }\n var to = Object(target);\n for (var index = 1; index < arguments.length; index++) {\n // eslint-disable-next-line prefer-rest-params\n var nextSource = arguments[index];\n if (nextSource != null) {\n // Skip over if undefined or null\n for (var nextKey in nextSource) {\n // Avoid bugs when hasOwnProperty is shadowed\n if (Object.prototype.hasOwnProperty.call(nextSource, nextKey)) {\n to[nextKey] = nextSource[nextKey];\n }\n }\n }\n }\n return to;\n}\nexports.assign = assign;\n\n\n/***/ }),\n\n/***/ 972:\n/***/ (function(__unused_webpack_module, exports, __webpack_require__) {\n\n\nObject.defineProperty(exports, \"__esModule\", ({ value: true }));\nexports.createTable = void 0;\nvar documentHandler_1 = __webpack_require__(744);\nvar models_1 = __webpack_require__(260);\nvar widthCalculator_1 = __webpack_require__(324);\nvar config_1 = __webpack_require__(796);\nvar polyfills_1 = __webpack_require__(356);\nfunction createTable(jsPDFDoc, input) {\n var doc = new documentHandler_1.DocHandler(jsPDFDoc);\n var content = parseContent(input, doc.scaleFactor());\n var table = new models_1.Table(input, content);\n (0, widthCalculator_1.calculateWidths)(doc, table);\n doc.applyStyles(doc.userStyles);\n return table;\n}\nexports.createTable = createTable;\nfunction parseContent(input, sf) {\n var content = input.content;\n var columns = createColumns(content.columns);\n // If no head or foot is set, try generating it with content from columns\n if (content.head.length === 0) {\n var sectionRow = generateSectionRow(columns, 'head');\n if (sectionRow)\n content.head.push(sectionRow);\n }\n if (content.foot.length === 0) {\n var sectionRow = generateSectionRow(columns, 'foot');\n if (sectionRow)\n content.foot.push(sectionRow);\n }\n var theme = input.settings.theme;\n var styles = input.styles;\n return {\n columns: columns,\n head: parseSection('head', content.head, columns, styles, theme, sf),\n body: parseSection('body', content.body, columns, styles, theme, sf),\n foot: parseSection('foot', content.foot, columns, styles, theme, sf),\n };\n}\nfunction parseSection(sectionName, sectionRows, columns, styleProps, theme, scaleFactor) {\n var rowSpansLeftForColumn = {};\n var result = sectionRows.map(function (rawRow, rowIndex) {\n var skippedRowForRowSpans = 0;\n var cells = {};\n var colSpansAdded = 0;\n var columnSpansLeft = 0;\n for (var _i = 0, columns_1 = columns; _i < columns_1.length; _i++) {\n var column = columns_1[_i];\n if (rowSpansLeftForColumn[column.index] == null ||\n rowSpansLeftForColumn[column.index].left === 0) {\n if (columnSpansLeft === 0) {\n var rawCell = void 0;\n if (Array.isArray(rawRow)) {\n rawCell =\n rawRow[column.index - colSpansAdded - skippedRowForRowSpans];\n }\n else {\n rawCell = rawRow[column.dataKey];\n }\n var cellInputStyles = {};\n if (typeof rawCell === 'object' && !Array.isArray(rawCell)) {\n cellInputStyles = (rawCell === null || rawCell === void 0 ? void 0 : rawCell.styles) || {};\n }\n var styles = cellStyles(sectionName, column, rowIndex, theme, styleProps, scaleFactor, cellInputStyles);\n var cell = new models_1.Cell(rawCell, styles, sectionName);\n // dataKey is not used internally no more but keep for\n // backwards compat in hooks\n cells[column.dataKey] = cell;\n cells[column.index] = cell;\n columnSpansLeft = cell.colSpan - 1;\n rowSpansLeftForColumn[column.index] = {\n left: cell.rowSpan - 1,\n times: columnSpansLeft,\n };\n }\n else {\n columnSpansLeft--;\n colSpansAdded++;\n }\n }\n else {\n rowSpansLeftForColumn[column.index].left--;\n columnSpansLeft = rowSpansLeftForColumn[column.index].times;\n skippedRowForRowSpans++;\n }\n }\n return new models_1.Row(rawRow, rowIndex, sectionName, cells);\n });\n return result;\n}\nfunction generateSectionRow(columns, section) {\n var sectionRow = {};\n columns.forEach(function (col) {\n if (col.raw != null) {\n var title = getSectionTitle(section, col.raw);\n if (title != null)\n sectionRow[col.dataKey] = title;\n }\n });\n return Object.keys(sectionRow).length > 0 ? sectionRow : null;\n}\nfunction getSectionTitle(section, column) {\n if (section === 'head') {\n if (typeof column === 'object') {\n return column.header || column.title || null;\n }\n else if (typeof column === 'string' || typeof column === 'number') {\n return column;\n }\n }\n else if (section === 'foot' && typeof column === 'object') {\n return column.footer;\n }\n return null;\n}\nfunction createColumns(columns) {\n return columns.map(function (input, index) {\n var _a, _b;\n var key;\n if (typeof input === 'object') {\n key = (_b = (_a = input.dataKey) !== null && _a !== void 0 ? _a : input.key) !== null && _b !== void 0 ? _b : index;\n }\n else {\n key = index;\n }\n return new models_1.Column(key, input, index);\n });\n}\nfunction cellStyles(sectionName, column, rowIndex, themeName, styles, scaleFactor, cellInputStyles) {\n var theme = (0, config_1.getTheme)(themeName);\n var sectionStyles;\n if (sectionName === 'head') {\n sectionStyles = styles.headStyles;\n }\n else if (sectionName === 'body') {\n sectionStyles = styles.bodyStyles;\n }\n else if (sectionName === 'foot') {\n sectionStyles = styles.footStyles;\n }\n var otherStyles = (0, polyfills_1.assign)({}, theme.table, theme[sectionName], styles.styles, sectionStyles);\n var columnStyles = styles.columnStyles[column.dataKey] ||\n styles.columnStyles[column.index] ||\n {};\n var colStyles = sectionName === 'body' ? columnStyles : {};\n var rowStyles = sectionName === 'body' && rowIndex % 2 === 0\n ? (0, polyfills_1.assign)({}, theme.alternateRow, styles.alternateRowStyles)\n : {};\n var defaultStyle = (0, config_1.defaultStyles)(scaleFactor);\n var themeStyles = (0, polyfills_1.assign)({}, defaultStyle, otherStyles, rowStyles, colStyles);\n return (0, polyfills_1.assign)(themeStyles, cellInputStyles);\n}\n\n\n/***/ }),\n\n/***/ 664:\n/***/ (function(__unused_webpack_module, exports, __webpack_require__) {\n\n\nObject.defineProperty(exports, \"__esModule\", ({ value: true }));\nexports.addPage = exports.drawTable = void 0;\nvar common_1 = __webpack_require__(420);\nvar models_1 = __webpack_require__(260);\nvar documentHandler_1 = __webpack_require__(744);\nvar polyfills_1 = __webpack_require__(356);\nvar autoTableText_1 = __webpack_require__(136);\nvar tablePrinter_1 = __webpack_require__(224);\nfunction drawTable(jsPDFDoc, table) {\n var settings = table.settings;\n var startY = settings.startY;\n var margin = settings.margin;\n var cursor = {\n x: margin.left,\n y: startY,\n };\n var sectionsHeight = table.getHeadHeight(table.columns) + table.getFootHeight(table.columns);\n var minTableBottomPos = startY + margin.bottom + sectionsHeight;\n if (settings.pageBreak === 'avoid') {\n var rows = table.body;\n var tableHeight = rows.reduce(function (acc, row) { return acc + row.height; }, 0);\n minTableBottomPos += tableHeight;\n }\n var doc = new documentHandler_1.DocHandler(jsPDFDoc);\n if (settings.pageBreak === 'always' ||\n (settings.startY != null && minTableBottomPos > doc.pageSize().height)) {\n nextPage(doc);\n cursor.y = margin.top;\n }\n table.callWillDrawPageHooks(doc, cursor);\n var startPos = (0, polyfills_1.assign)({}, cursor);\n table.startPageNumber = doc.pageNumber();\n if (settings.horizontalPageBreak) {\n // managed flow for split columns\n printTableWithHorizontalPageBreak(doc, table, startPos, cursor);\n }\n else {\n // normal flow\n doc.applyStyles(doc.userStyles);\n if (settings.showHead === 'firstPage' ||\n settings.showHead === 'everyPage') {\n table.head.forEach(function (row) {\n return printRow(doc, table, row, cursor, table.columns);\n });\n }\n doc.applyStyles(doc.userStyles);\n table.body.forEach(function (row, index) {\n var isLastRow = index === table.body.length - 1;\n printFullRow(doc, table, row, isLastRow, startPos, cursor, table.columns);\n });\n doc.applyStyles(doc.userStyles);\n if (settings.showFoot === 'lastPage' || settings.showFoot === 'everyPage') {\n table.foot.forEach(function (row) {\n return printRow(doc, table, row, cursor, table.columns);\n });\n }\n }\n (0, common_1.addTableBorder)(doc, table, startPos, cursor);\n table.callEndPageHooks(doc, cursor);\n table.finalY = cursor.y;\n jsPDFDoc.lastAutoTable = table;\n jsPDFDoc.previousAutoTable = table; // Deprecated\n if (jsPDFDoc.autoTable)\n jsPDFDoc.autoTable.previous = table; // Deprecated\n doc.applyStyles(doc.userStyles);\n}\nexports.drawTable = drawTable;\nfunction printTableWithHorizontalPageBreak(doc, table, startPos, cursor) {\n // calculate width of columns and render only those which can fit into page\n var allColumnsCanFitResult = (0, tablePrinter_1.calculateAllColumnsCanFitInPage)(doc, table);\n var settings = table.settings;\n if (settings.horizontalPageBreakBehaviour === 'afterAllRows') {\n allColumnsCanFitResult.forEach(function (colsAndIndexes, index) {\n doc.applyStyles(doc.userStyles);\n // add page to print next columns in new page\n if (index > 0) {\n // When adding a page here, make sure not to print the footers\n // because they were already printed before on this same loop\n addPage(doc, table, startPos, cursor, colsAndIndexes.columns, true);\n }\n else {\n // print head for selected columns\n printHead(doc, table, cursor, colsAndIndexes.columns);\n }\n // print body & footer for selected columns\n printBody(doc, table, startPos, cursor, colsAndIndexes.columns);\n printFoot(doc, table, cursor, colsAndIndexes.columns);\n });\n }\n else {\n var lastRowIndexOfLastPage_1 = -1;\n var firstColumnsToFitResult = allColumnsCanFitResult[0];\n var _loop_1 = function () {\n // Print the first columns, taking note of the last row printed\n var lastPrintedRowIndex = lastRowIndexOfLastPage_1;\n if (firstColumnsToFitResult) {\n doc.applyStyles(doc.userStyles);\n var firstColumnsToFit = firstColumnsToFitResult.columns;\n if (lastRowIndexOfLastPage_1 >= 0) {\n // When adding a page here, make sure not to print the footers\n // because they were already printed before on this same loop\n addPage(doc, table, startPos, cursor, firstColumnsToFit, true);\n }\n else {\n printHead(doc, table, cursor, firstColumnsToFit);\n }\n lastPrintedRowIndex = printBodyWithoutPageBreaks(doc, table, lastRowIndexOfLastPage_1 + 1, cursor, firstColumnsToFit);\n printFoot(doc, table, cursor, firstColumnsToFit);\n }\n // Check how many rows were printed, so that the next columns would not print more rows than that\n var maxNumberOfRows = lastPrintedRowIndex - lastRowIndexOfLastPage_1;\n // Print the next columns, never exceding maxNumberOfRows\n allColumnsCanFitResult.slice(1).forEach(function (colsAndIndexes) {\n doc.applyStyles(doc.userStyles);\n // When adding a page here, make sure not to print the footers\n // because they were already printed before on this same loop\n addPage(doc, table, startPos, cursor, colsAndIndexes.columns, true);\n printBodyWithoutPageBreaks(doc, table, lastRowIndexOfLastPage_1 + 1, cursor, colsAndIndexes.columns, maxNumberOfRows);\n printFoot(doc, table, cursor, colsAndIndexes.columns);\n });\n lastRowIndexOfLastPage_1 = lastPrintedRowIndex;\n };\n while (lastRowIndexOfLastPage_1 < table.body.length - 1) {\n _loop_1();\n }\n }\n}\nfunction printHead(doc, table, cursor, columns) {\n var settings = table.settings;\n doc.applyStyles(doc.userStyles);\n if (settings.showHead === 'firstPage' || settings.showHead === 'everyPage') {\n table.head.forEach(function (row) { return printRow(doc, table, row, cursor, columns); });\n }\n}\nfunction printBody(doc, table, startPos, cursor, columns) {\n doc.applyStyles(doc.userStyles);\n table.body.forEach(function (row, index) {\n var isLastRow = index === table.body.length - 1;\n printFullRow(doc, table, row, isLastRow, startPos, cursor, columns);\n });\n}\nfunction printBodyWithoutPageBreaks(doc, table, startRowIndex, cursor, columns, maxNumberOfRows) {\n doc.applyStyles(doc.userStyles);\n maxNumberOfRows = maxNumberOfRows !== null && maxNumberOfRows !== void 0 ? maxNumberOfRows : table.body.length;\n var endRowIndex = Math.min(startRowIndex + maxNumberOfRows, table.body.length);\n var lastPrintedRowIndex = -1;\n table.body.slice(startRowIndex, endRowIndex).forEach(function (row, index) {\n var isLastRow = startRowIndex + index === table.body.length - 1;\n var remainingSpace = getRemainingPageSpace(doc, table, isLastRow, cursor);\n if (row.canEntireRowFit(remainingSpace, columns)) {\n printRow(doc, table, row, cursor, columns);\n lastPrintedRowIndex = startRowIndex + index;\n }\n });\n return lastPrintedRowIndex;\n}\nfunction printFoot(doc, table, cursor, columns) {\n var settings = table.settings;\n doc.applyStyles(doc.userStyles);\n if (settings.showFoot === 'lastPage' || settings.showFoot === 'everyPage') {\n table.foot.forEach(function (row) { return printRow(doc, table, row, cursor, columns); });\n }\n}\nfunction getRemainingLineCount(cell, remainingPageSpace, doc) {\n var lineHeight = doc.getLineHeight(cell.styles.fontSize);\n var vPadding = cell.padding('vertical');\n var remainingLines = Math.floor((remainingPageSpace - vPadding) / lineHeight);\n return Math.max(0, remainingLines);\n}\nfunction modifyRowToFit(row, remainingPageSpace, table, doc) {\n var cells = {};\n row.spansMultiplePages = true;\n row.height = 0;\n var rowHeight = 0;\n for (var _i = 0, _a = table.columns; _i < _a.length; _i++) {\n var column = _a[_i];\n var cell = row.cells[column.index];\n if (!cell)\n continue;\n if (!Array.isArray(cell.text)) {\n cell.text = [cell.text];\n }\n var remainderCell = new models_1.Cell(cell.raw, cell.styles, cell.section);\n remainderCell = (0, polyfills_1.assign)(remainderCell, cell);\n remainderCell.text = [];\n var remainingLineCount = getRemainingLineCount(cell, remainingPageSpace, doc);\n if (cell.text.length > remainingLineCount) {\n remainderCell.text = cell.text.splice(remainingLineCount, cell.text.length);\n }\n var scaleFactor = doc.scaleFactor();\n var lineHeightFactor = doc.getLineHeightFactor();\n cell.contentHeight = cell.getContentHeight(scaleFactor, lineHeightFactor);\n if (cell.contentHeight >= remainingPageSpace) {\n cell.contentHeight = remainingPageSpace;\n remainderCell.styles.minCellHeight -= remainingPageSpace;\n }\n if (cell.contentHeight > row.height) {\n row.height = cell.contentHeight;\n }\n remainderCell.contentHeight = remainderCell.getContentHeight(scaleFactor, lineHeightFactor);\n if (remainderCell.contentHeight > rowHeight) {\n rowHeight = remainderCell.contentHeight;\n }\n cells[column.index] = remainderCell;\n }\n var remainderRow = new models_1.Row(row.raw, -1, row.section, cells, true);\n remainderRow.height = rowHeight;\n for (var _b = 0, _c = table.columns; _b < _c.length; _b++) {\n var column = _c[_b];\n var remainderCell = remainderRow.cells[column.index];\n if (remainderCell) {\n remainderCell.height = remainderRow.height;\n }\n var cell = row.cells[column.index];\n if (cell) {\n cell.height = row.height;\n }\n }\n return remainderRow;\n}\nfunction shouldPrintOnCurrentPage(doc, row, remainingPageSpace, table) {\n var pageHeight = doc.pageSize().height;\n var margin = table.settings.margin;\n var marginHeight = margin.top + margin.bottom;\n var maxRowHeight = pageHeight - marginHeight;\n if (row.section === 'body') {\n // Should also take into account that head and foot is not\n // on every page with some settings\n maxRowHeight -=\n table.getHeadHeight(table.columns) + table.getFootHeight(table.columns);\n }\n var minRowHeight = row.getMinimumRowHeight(table.columns, doc);\n var minRowFits = minRowHeight < remainingPageSpace;\n if (minRowHeight > maxRowHeight) {\n console.error(\"Will not be able to print row \".concat(row.index, \" correctly since it's minimum height is larger than page height\"));\n return true;\n }\n if (!minRowFits) {\n return false;\n }\n var rowHasRowSpanCell = row.hasRowSpan(table.columns);\n var rowHigherThanPage = row.getMaxCellHeight(table.columns) > maxRowHeight;\n if (rowHigherThanPage) {\n if (rowHasRowSpanCell) {\n console.error(\"The content of row \".concat(row.index, \" will not be drawn correctly since drawing rows with a height larger than the page height and has cells with rowspans is not supported.\"));\n }\n return true;\n }\n if (rowHasRowSpanCell) {\n // Currently a new page is required whenever a rowspan row don't fit a page.\n return false;\n }\n if (table.settings.rowPageBreak === 'avoid') {\n return false;\n }\n // In all other cases print the row on current page\n return true;\n}\nfunction printFullRow(doc, table, row, isLastRow, startPos, cursor, columns) {\n var remainingSpace = getRemainingPageSpace(doc, table, isLastRow, cursor);\n if (row.canEntireRowFit(remainingSpace, columns)) {\n // The row fits in the current page\n printRow(doc, table, row, cursor, columns);\n }\n else if (shouldPrintOnCurrentPage(doc, row, remainingSpace, table)) {\n // The row gets split in two here, each piece in one page\n var remainderRow = modifyRowToFit(row, remainingSpace, table, doc);\n printRow(doc, table, row, cursor, columns);\n addPage(doc, table, startPos, cursor, columns);\n printFullRow(doc, table, remainderRow, isLastRow, startPos, cursor, columns);\n }\n else {\n // The row get printed entirelly on the next page\n addPage(doc, table, startPos, cursor, columns);\n printFullRow(doc, table, row, isLastRow, startPos, cursor, columns);\n }\n}\nfunction printRow(doc, table, row, cursor, columns) {\n cursor.x = table.settings.margin.left;\n for (var _i = 0, columns_1 = columns; _i < columns_1.length; _i++) {\n var column = columns_1[_i];\n var cell = row.cells[column.index];\n if (!cell) {\n cursor.x += column.width;\n continue;\n }\n doc.applyStyles(cell.styles);\n cell.x = cursor.x;\n cell.y = cursor.y;\n var result = table.callCellHooks(doc, table.hooks.willDrawCell, cell, row, column, cursor);\n if (result === false) {\n cursor.x += column.width;\n continue;\n }\n drawCellRect(doc, cell, cursor);\n var textPos = cell.getTextPos();\n (0, autoTableText_1.default)(cell.text, textPos.x, textPos.y, {\n halign: cell.styles.halign,\n valign: cell.styles.valign,\n maxWidth: Math.ceil(cell.width - cell.padding('left') - cell.padding('right')),\n }, doc.getDocument());\n table.callCellHooks(doc, table.hooks.didDrawCell, cell, row, column, cursor);\n cursor.x += column.width;\n }\n cursor.y += row.height;\n}\nfunction drawCellRect(doc, cell, cursor) {\n var cellStyles = cell.styles;\n // https://github.com/simonbengtsson/jsPDF-AutoTable/issues/774\n // TODO (v4): better solution?\n doc.getDocument().setFillColor(doc.getDocument().getFillColor());\n if (typeof cellStyles.lineWidth === 'number') {\n // Draw cell background with normal borders\n var fillStyle = (0, common_1.getFillStyle)(cellStyles.lineWidth, cellStyles.fillColor);\n if (fillStyle) {\n doc.rect(cell.x, cursor.y, cell.width, cell.height, fillStyle);\n }\n }\n else if (typeof cellStyles.lineWidth === 'object') {\n // Draw cell background\n if (cellStyles.fillColor) {\n doc.rect(cell.x, cursor.y, cell.width, cell.height, 'F');\n }\n // Draw cell individual borders\n drawCellBorders(doc, cell, cursor, cellStyles.lineWidth);\n }\n}\n/**\n * Draw all specified borders. Borders are centered on cell's edge and lengthened\n * to overlap with neighbours to create sharp corners.\n * @param doc\n * @param cell\n * @param cursor\n * @param fillColor\n * @param lineWidth\n */\nfunction drawCellBorders(doc, cell, cursor, lineWidth) {\n var x1, y1, x2, y2;\n if (lineWidth.top) {\n x1 = cursor.x;\n y1 = cursor.y;\n x2 = cursor.x + cell.width;\n y2 = cursor.y;\n if (lineWidth.right) {\n x2 += 0.5 * lineWidth.right;\n }\n if (lineWidth.left) {\n x1 -= 0.5 * lineWidth.left;\n }\n drawLine(lineWidth.top, x1, y1, x2, y2);\n }\n if (lineWidth.bottom) {\n x1 = cursor.x;\n y1 = cursor.y + cell.height;\n x2 = cursor.x + cell.width;\n y2 = cursor.y + cell.height;\n if (lineWidth.right) {\n x2 += 0.5 * lineWidth.right;\n }\n if (lineWidth.left) {\n x1 -= 0.5 * lineWidth.left;\n }\n drawLine(lineWidth.bottom, x1, y1, x2, y2);\n }\n if (lineWidth.left) {\n x1 = cursor.x;\n y1 = cursor.y;\n x2 = cursor.x;\n y2 = cursor.y + cell.height;\n if (lineWidth.top) {\n y1 -= 0.5 * lineWidth.top;\n }\n if (lineWidth.bottom) {\n y2 += 0.5 * lineWidth.bottom;\n }\n drawLine(lineWidth.left, x1, y1, x2, y2);\n }\n if (lineWidth.right) {\n x1 = cursor.x + cell.width;\n y1 = cursor.y;\n x2 = cursor.x + cell.width;\n y2 = cursor.y + cell.height;\n if (lineWidth.top) {\n y1 -= 0.5 * lineWidth.top;\n }\n if (lineWidth.bottom) {\n y2 += 0.5 * lineWidth.bottom;\n }\n drawLine(lineWidth.right, x1, y1, x2, y2);\n }\n function drawLine(width, x1, y1, x2, y2) {\n doc.getDocument().setLineWidth(width);\n doc.getDocument().line(x1, y1, x2, y2, 'S');\n }\n}\nfunction getRemainingPageSpace(doc, table, isLastRow, cursor) {\n var bottomContentHeight = table.settings.margin.bottom;\n var showFoot = table.settings.showFoot;\n if (showFoot === 'everyPage' || (showFoot === 'lastPage' && isLastRow)) {\n bottomContentHeight += table.getFootHeight(table.columns);\n }\n return doc.pageSize().height - cursor.y - bottomContentHeight;\n}\nfunction addPage(doc, table, startPos, cursor, columns, suppressFooter) {\n if (columns === void 0) { columns = []; }\n if (suppressFooter === void 0) { suppressFooter = false; }\n doc.applyStyles(doc.userStyles);\n if (table.settings.showFoot === 'everyPage' && !suppressFooter) {\n table.foot.forEach(function (row) { return printRow(doc, table, row, cursor, columns); });\n }\n // Add user content just before adding new page ensure it will\n // be drawn above other things on the page\n table.callEndPageHooks(doc, cursor);\n var margin = table.settings.margin;\n (0, common_1.addTableBorder)(doc, table, startPos, cursor);\n nextPage(doc);\n table.pageNumber++;\n table.pageCount++;\n cursor.x = margin.left;\n cursor.y = margin.top;\n startPos.y = margin.top;\n // call didAddPage hooks before any content is added to the page\n table.callWillDrawPageHooks(doc, cursor);\n if (table.settings.showHead === 'everyPage') {\n table.head.forEach(function (row) { return printRow(doc, table, row, cursor, columns); });\n doc.applyStyles(doc.userStyles);\n }\n}\nexports.addPage = addPage;\nfunction nextPage(doc) {\n var current = doc.pageNumber();\n doc.setPage(current + 1);\n var newCurrent = doc.pageNumber();\n if (newCurrent === current) {\n doc.addPage();\n return true;\n }\n return false;\n}\n\n\n/***/ }),\n\n/***/ 224:\n/***/ (function(__unused_webpack_module, exports, __webpack_require__) {\n\n\nObject.defineProperty(exports, \"__esModule\", ({ value: true }));\nexports.calculateAllColumnsCanFitInPage = void 0;\nvar common_1 = __webpack_require__(420);\n// get columns can be fit into page\nfunction getColumnsCanFitInPage(doc, table, config) {\n var _a;\n if (config === void 0) { config = {}; }\n // Get page width\n var remainingWidth = (0, common_1.getPageAvailableWidth)(doc, table);\n // Get column data key to repeat\n var repeatColumnsMap = new Map();\n var colIndexes = [];\n var columns = [];\n var horizontalPageBreakRepeat = [];\n table.settings.horizontalPageBreakRepeat;\n if (Array.isArray(table.settings.horizontalPageBreakRepeat)) {\n horizontalPageBreakRepeat = table.settings.horizontalPageBreakRepeat;\n // It can be a single value of type string or number (even number: 0)\n }\n else if (typeof table.settings.horizontalPageBreakRepeat === 'string' ||\n typeof table.settings.horizontalPageBreakRepeat === 'number') {\n horizontalPageBreakRepeat = [table.settings.horizontalPageBreakRepeat];\n }\n // Code to repeat the given column in split pages\n horizontalPageBreakRepeat.forEach(function (field) {\n var col = table.columns.find(function (item) { return item.dataKey === field || item.index === field; });\n if (col && !repeatColumnsMap.has(col.index)) {\n repeatColumnsMap.set(col.index, true);\n colIndexes.push(col.index);\n columns.push(table.columns[col.index]);\n remainingWidth -= col.wrappedWidth;\n }\n });\n var first = true;\n var i = (_a = config === null || config === void 0 ? void 0 : config.start) !== null && _a !== void 0 ? _a : 0; // make sure couter is initiated outside the loop\n while (i < table.columns.length) {\n // Prevent duplicates\n if (repeatColumnsMap.has(i)) {\n i++;\n continue;\n }\n var colWidth = table.columns[i].wrappedWidth;\n // Take at least one column even if it doesn't fit\n if (first || remainingWidth >= colWidth) {\n first = false;\n colIndexes.push(i);\n columns.push(table.columns[i]);\n remainingWidth -= colWidth;\n }\n else {\n break;\n }\n i++;\n }\n return { colIndexes: colIndexes, columns: columns, lastIndex: i - 1 };\n}\nfunction calculateAllColumnsCanFitInPage(doc, table) {\n var allResults = [];\n for (var i = 0; i < table.columns.length; i++) {\n var result = getColumnsCanFitInPage(doc, table, { start: i });\n if (result.columns.length) {\n allResults.push(result);\n i = result.lastIndex;\n }\n }\n return allResults;\n}\nexports.calculateAllColumnsCanFitInPage = calculateAllColumnsCanFitInPage;\n\n\n/***/ }),\n\n/***/ 324:\n/***/ (function(__unused_webpack_module, exports, __webpack_require__) {\n\n\nObject.defineProperty(exports, \"__esModule\", ({ value: true }));\nexports.ellipsize = exports.resizeColumns = exports.calculateWidths = void 0;\nvar common_1 = __webpack_require__(420);\n/**\n * Calculate the column widths\n */\nfunction calculateWidths(doc, table) {\n calculate(doc, table);\n var resizableColumns = [];\n var initialTableWidth = 0;\n table.columns.forEach(function (column) {\n var customWidth = column.getMaxCustomCellWidth(table);\n if (customWidth) {\n // final column width\n column.width = customWidth;\n }\n else {\n // initial column width (will be resized)\n column.width = column.wrappedWidth;\n resizableColumns.push(column);\n }\n initialTableWidth += column.width;\n });\n // width difference that needs to be distributed\n var resizeWidth = table.getWidth(doc.pageSize().width) - initialTableWidth;\n // first resize attempt: with respect to minReadableWidth and minWidth\n if (resizeWidth) {\n resizeWidth = resizeColumns(resizableColumns, resizeWidth, function (column) {\n return Math.max(column.minReadableWidth, column.minWidth);\n });\n }\n // second resize attempt: ignore minReadableWidth but respect minWidth\n if (resizeWidth) {\n resizeWidth = resizeColumns(resizableColumns, resizeWidth, function (column) { return column.minWidth; });\n }\n resizeWidth = Math.abs(resizeWidth);\n if (!table.settings.horizontalPageBreak &&\n resizeWidth > 0.1 / doc.scaleFactor()) {\n // Table can't get smaller due to custom-width or minWidth restrictions\n // We can't really do much here. Up to user to for example\n // reduce font size, increase page size or remove custom cell widths\n // to allow more columns to be reduced in size\n resizeWidth = resizeWidth < 1 ? resizeWidth : Math.round(resizeWidth);\n console.warn(\"Of the table content, \".concat(resizeWidth, \" units width could not fit page\"));\n }\n applyColSpans(table);\n fitContent(table, doc);\n applyRowSpans(table);\n}\nexports.calculateWidths = calculateWidths;\nfunction calculate(doc, table) {\n var sf = doc.scaleFactor();\n var horizontalPageBreak = table.settings.horizontalPageBreak;\n var availablePageWidth = (0, common_1.getPageAvailableWidth)(doc, table);\n table.allRows().forEach(function (row) {\n for (var _i = 0, _a = table.columns; _i < _a.length; _i++) {\n var column = _a[_i];\n var cell = row.cells[column.index];\n if (!cell)\n continue;\n var hooks = table.hooks.didParseCell;\n table.callCellHooks(doc, hooks, cell, row, column, null);\n var padding = cell.padding('horizontal');\n cell.contentWidth = (0, common_1.getStringWidth)(cell.text, cell.styles, doc) + padding;\n var longestWordWidth = (0, common_1.getStringWidth)(cell.text.join(' ').split(/\\s+/), cell.styles, doc);\n cell.minReadableWidth = longestWordWidth + cell.padding('horizontal');\n if (typeof cell.styles.cellWidth === 'number') {\n cell.minWidth = cell.styles.cellWidth;\n cell.wrappedWidth = cell.styles.cellWidth;\n }\n else if (cell.styles.cellWidth === 'wrap' ||\n horizontalPageBreak === true) {\n // cell width should not be more than available page width\n if (cell.contentWidth > availablePageWidth) {\n cell.minWidth = availablePageWidth;\n cell.wrappedWidth = availablePageWidth;\n }\n else {\n cell.minWidth = cell.contentWidth;\n cell.wrappedWidth = cell.contentWidth;\n }\n }\n else {\n // auto\n var defaultMinWidth = 10 / sf;\n cell.minWidth = cell.styles.minCellWidth || defaultMinWidth;\n cell.wrappedWidth = cell.contentWidth;\n if (cell.minWidth > cell.wrappedWidth) {\n cell.wrappedWidth = cell.minWidth;\n }\n }\n }\n });\n table.allRows().forEach(function (row) {\n for (var _i = 0, _a = table.columns; _i < _a.length; _i++) {\n var column = _a[_i];\n var cell = row.cells[column.index];\n // For now we ignore the minWidth and wrappedWidth of colspan cells when calculating colspan widths.\n // Could probably be improved upon however.\n if (cell && cell.colSpan === 1) {\n column.wrappedWidth = Math.max(column.wrappedWidth, cell.wrappedWidth);\n column.minWidth = Math.max(column.minWidth, cell.minWidth);\n column.minReadableWidth = Math.max(column.minReadableWidth, cell.minReadableWidth);\n }\n else {\n // Respect cellWidth set in columnStyles even if there is no cells for this column\n // or if the column only have colspan cells. Since the width of colspan cells\n // does not affect the width of columns, setting columnStyles cellWidth enables the\n // user to at least do it manually.\n // Note that this is not perfect for now since for example row and table styles are\n // not accounted for\n var columnStyles = table.styles.columnStyles[column.dataKey] ||\n table.styles.columnStyles[column.index] ||\n {};\n var cellWidth = columnStyles.cellWidth || columnStyles.minCellWidth;\n if (cellWidth && typeof cellWidth === 'number') {\n column.minWidth = cellWidth;\n column.wrappedWidth = cellWidth;\n }\n }\n if (cell) {\n // Make sure all columns get at least min width even though width calculations are not based on them\n if (cell.colSpan > 1 && !column.minWidth) {\n column.minWidth = cell.minWidth;\n }\n if (cell.colSpan > 1 && !column.wrappedWidth) {\n column.wrappedWidth = cell.minWidth;\n }\n }\n }\n });\n}\n/**\n * Distribute resizeWidth on passed resizable columns\n */\nfunction resizeColumns(columns, resizeWidth, getMinWidth) {\n var initialResizeWidth = resizeWidth;\n var sumWrappedWidth = columns.reduce(function (acc, column) { return acc + column.wrappedWidth; }, 0);\n for (var i = 0; i < columns.length; i++) {\n var column = columns[i];\n var ratio = column.wrappedWidth / sumWrappedWidth;\n var suggestedChange = initialResizeWidth * ratio;\n var suggestedWidth = column.width + suggestedChange;\n var minWidth = getMinWidth(column);\n var newWidth = suggestedWidth < minWidth ? minWidth : suggestedWidth;\n resizeWidth -= newWidth - column.width;\n column.width = newWidth;\n }\n resizeWidth = Math.round(resizeWidth * 1e10) / 1e10;\n // Run the resizer again if there's remaining width needs\n // to be distributed and there're columns that can be resized\n if (resizeWidth) {\n var resizableColumns = columns.filter(function (column) {\n return resizeWidth < 0\n ? column.width > getMinWidth(column) // check if column can shrink\n : true; // check if column can grow\n });\n if (resizableColumns.length) {\n resizeWidth = resizeColumns(resizableColumns, resizeWidth, getMinWidth);\n }\n }\n return resizeWidth;\n}\nexports.resizeColumns = resizeColumns;\nfunction applyRowSpans(table) {\n var rowSpanCells = {};\n var colRowSpansLeft = 1;\n var all = table.allRows();\n for (var rowIndex = 0; rowIndex < all.length; rowIndex++) {\n var row = all[rowIndex];\n for (var _i = 0, _a = table.columns; _i < _a.length; _i++) {\n var column = _a[_i];\n var data = rowSpanCells[column.index];\n if (colRowSpansLeft > 1) {\n colRowSpansLeft--;\n delete row.cells[column.index];\n }\n else if (data) {\n data.cell.height += row.height;\n colRowSpansLeft = data.cell.colSpan;\n delete row.cells[column.index];\n data.left--;\n if (data.left <= 1) {\n delete rowSpanCells[column.index];\n }\n }\n else {\n var cell = row.cells[column.index];\n if (!cell) {\n continue;\n }\n cell.height = row.height;\n if (cell.rowSpan > 1) {\n var remaining = all.length - rowIndex;\n var left = cell.rowSpan > remaining ? remaining : cell.rowSpan;\n rowSpanCells[column.index] = { cell: cell, left: left, row: row };\n }\n }\n }\n }\n}\nfunction applyColSpans(table) {\n var all = table.allRows();\n for (var rowIndex = 0; rowIndex < all.length; rowIndex++) {\n var row = all[rowIndex];\n var colSpanCell = null;\n var combinedColSpanWidth = 0;\n var colSpansLeft = 0;\n for (var columnIndex = 0; columnIndex < table.columns.length; columnIndex++) {\n var column = table.columns[columnIndex];\n // Width and colspan\n colSpansLeft -= 1;\n if (colSpansLeft > 1 && table.columns[columnIndex + 1]) {\n combinedColSpanWidth += column.width;\n delete row.cells[column.index];\n }\n else if (colSpanCell) {\n var cell = colSpanCell;\n delete row.cells[column.index];\n colSpanCell = null;\n cell.width = column.width + combinedColSpanWidth;\n }\n else {\n var cell = row.cells[column.index];\n if (!cell)\n continue;\n colSpansLeft = cell.colSpan;\n combinedColSpanWidth = 0;\n if (cell.colSpan > 1) {\n colSpanCell = cell;\n combinedColSpanWidth += column.width;\n continue;\n }\n cell.width = column.width + combinedColSpanWidth;\n }\n }\n }\n}\nfunction fitContent(table, doc) {\n var rowSpanHeight = { count: 0, height: 0 };\n for (var _i = 0, _a = table.allRows(); _i < _a.length; _i++) {\n var row = _a[_i];\n for (var _b = 0, _c = table.columns; _b < _c.length; _b++) {\n var column = _c[_b];\n var cell = row.cells[column.index];\n if (!cell)\n continue;\n doc.applyStyles(cell.styles, true);\n var textSpace = cell.width - cell.padding('horizontal');\n if (cell.styles.overflow === 'linebreak') {\n // Add one pt to textSpace to fix rounding error\n cell.text = doc.splitTextToSize(cell.text, textSpace + 1 / doc.scaleFactor(), { fontSize: cell.styles.fontSize });\n }\n else if (cell.styles.overflow === 'ellipsize') {\n cell.text = ellipsize(cell.text, textSpace, cell.styles, doc, '...');\n }\n else if (cell.styles.overflow === 'hidden') {\n cell.text = ellipsize(cell.text, textSpace, cell.styles, doc, '');\n }\n else if (typeof cell.styles.overflow === 'function') {\n var result = cell.styles.overflow(cell.text, textSpace);\n if (typeof result === 'string') {\n cell.text = [result];\n }\n else {\n cell.text = result;\n }\n }\n cell.contentHeight = cell.getContentHeight(doc.scaleFactor(), doc.getLineHeightFactor());\n var realContentHeight = cell.contentHeight / cell.rowSpan;\n if (cell.rowSpan > 1 &&\n rowSpanHeight.count * rowSpanHeight.height <\n realContentHeight * cell.rowSpan) {\n rowSpanHeight = { height: realContentHeight, count: cell.rowSpan };\n }\n else if (rowSpanHeight && rowSpanHeight.count > 0) {\n if (rowSpanHeight.height > realContentHeight) {\n realContentHeight = rowSpanHeight.height;\n }\n }\n if (realContentHeight > row.height) {\n row.height = realContentHeight;\n }\n }\n rowSpanHeight.count--;\n }\n}\nfunction ellipsize(text, width, styles, doc, overflow) {\n return text.map(function (str) { return ellipsizeStr(str, width, styles, doc, overflow); });\n}\nexports.ellipsize = ellipsize;\nfunction ellipsizeStr(text, width, styles, doc, overflow) {\n var precision = 10000 * doc.scaleFactor();\n width = Math.ceil(width * precision) / precision;\n if (width >= (0, common_1.getStringWidth)(text, styles, doc)) {\n return text;\n }\n while (width < (0, common_1.getStringWidth)(text + overflow, styles, doc)) {\n if (text.length <= 1) {\n break;\n }\n text = text.substring(0, text.length - 1);\n }\n return text.trim() + overflow;\n}\n\n\n/***/ }),\n\n/***/ 964:\n/***/ (function(module) {\n\nif(typeof __WEBPACK_EXTERNAL_MODULE__964__ === 'undefined') { var e = new Error(\"Cannot find module 'undefined'\"); e.code = 'MODULE_NOT_FOUND'; throw e; }\n\nmodule.exports = __WEBPACK_EXTERNAL_MODULE__964__;\n\n/***/ })\n\n/******/ \t});\n/************************************************************************/\n/******/ \t// The module cache\n/******/ \tvar __webpack_module_cache__ = {};\n/******/ \t\n/******/ \t// The require function\n/******/ \tfunction __webpack_require__(moduleId) {\n/******/ \t\t// Check if module is in cache\n/******/ \t\tvar cachedModule = __webpack_module_cache__[moduleId];\n/******/ \t\tif (cachedModule !== undefined) {\n/******/ \t\t\treturn cachedModule.exports;\n/******/ \t\t}\n/******/ \t\t// Create a new module (and put it into the cache)\n/******/ \t\tvar module = __webpack_module_cache__[moduleId] = {\n/******/ \t\t\t// no module.id needed\n/******/ \t\t\t// no module.loaded needed\n/******/ \t\t\texports: {}\n/******/ \t\t};\n/******/ \t\n/******/ \t\t// Execute the module function\n/******/ \t\t__webpack_modules__[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n/******/ \t\n/******/ \t\t// Return the exports of the module\n/******/ \t\treturn module.exports;\n/******/ \t}\n/******/ \t\n/************************************************************************/\nvar __webpack_exports__ = {};\n// This entry need to be wrapped in an IIFE because it need to be isolated against other modules in the chunk.\n!function() {\nvar exports = __webpack_exports__;\n\nObject.defineProperty(exports, \"__esModule\", ({ value: true }));\nexports.Cell = exports.Column = exports.Row = exports.Table = exports.CellHookData = exports.__drawTable = exports.__createTable = exports.applyPlugin = void 0;\nvar applyPlugin_1 = __webpack_require__(340);\nvar inputParser_1 = __webpack_require__(776);\nvar tableDrawer_1 = __webpack_require__(664);\nvar tableCalculator_1 = __webpack_require__(972);\nvar models_1 = __webpack_require__(260);\nObject.defineProperty(exports, \"Table\", ({ enumerable: true, get: function () { return models_1.Table; } }));\nvar HookData_1 = __webpack_require__(172);\nObject.defineProperty(exports, \"CellHookData\", ({ enumerable: true, get: function () { return HookData_1.CellHookData; } }));\nvar models_2 = __webpack_require__(260);\nObject.defineProperty(exports, \"Cell\", ({ enumerable: true, get: function () { return models_2.Cell; } }));\nObject.defineProperty(exports, \"Column\", ({ enumerable: true, get: function () { return models_2.Column; } }));\nObject.defineProperty(exports, \"Row\", ({ enumerable: true, get: function () { return models_2.Row; } }));\n// export { applyPlugin } didn't export applyPlugin\n// to index.d.ts for some reason\nfunction applyPlugin(jsPDF) {\n (0, applyPlugin_1.default)(jsPDF);\n}\nexports.applyPlugin = applyPlugin;\nfunction autoTable(d, options) {\n var input = (0, inputParser_1.parseInput)(d, options);\n var table = (0, tableCalculator_1.createTable)(d, input);\n (0, tableDrawer_1.drawTable)(d, table);\n}\n// Experimental export\nfunction __createTable(d, options) {\n var input = (0, inputParser_1.parseInput)(d, options);\n return (0, tableCalculator_1.createTable)(d, input);\n}\nexports.__createTable = __createTable;\nfunction __drawTable(d, table) {\n (0, tableDrawer_1.drawTable)(d, table);\n}\nexports.__drawTable = __drawTable;\ntry {\n // eslint-disable-next-line @typescript-eslint/no-var-requires\n var jsPDF = __webpack_require__(964);\n // Webpack imported jspdf instead of jsPDF for some reason\n // while it seemed to work everywhere else.\n if (jsPDF.jsPDF)\n jsPDF = jsPDF.jsPDF;\n applyPlugin(jsPDF);\n}\ncatch (error) {\n // Importing jspdf in nodejs environments does not work as of jspdf\n // 1.5.3 so we need to silence potential errors to support using for example\n // the nodejs jspdf dist files with the exported applyPlugin\n}\nexports[\"default\"] = autoTable;\n\n}();\n/******/ \treturn __webpack_exports__;\n/******/ })()\n;\n});"],"sourceRoot":""}