{"version":3,"sources":["../../../../../src/app/js/utils/pdfUtils/GenerateTable.js"],"names":[],"mappings":"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","file":"GenerateTable.js","sourcesContent":["import { BaseGenerator } from 'utils/pdfUtils/BaseGenerator';\nimport { Subscript } from 'utils/Subscript';\n\n/**\n * Generate a table-like structure in PDF.js\n *\n * @param string doc\n * @param array items\n * @param int (optional) startingheight\n * @param int (optional) start\n * @param int (optional) resultsIndent\n * @param int (optional) rowHeight\n * @param int (optional) p\n * @param array (optional) coefficients\n * @return N/A\n */\n\nexport class GenerateTable extends BaseGenerator {\n constructor(\n doc,\n items,\n coefficients = [],\n startingHeight = 50,\n start = 50,\n resultsIndent = 25,\n rowHeight = 15,\n p = 10\n ) {\n super(doc, items, startingHeight, start, resultsIndent, rowHeight, p);\n this.coefficients = coefficients.filter((coefficient) => coefficient.label !== 'SDC');\n this.endTableY = startingHeight;\n this.output();\n }\n\n /**\n * Generate the table and return the existing `doc` instance\n *\n * @return obj this.doc - returns the instance of `doc` that was provided to the constructor\n */\n\n output() {\n let single_char_width = 8;\n [\n { kLeft: this.start, vLeft: 200 },\n { kLeft: 280, vLeft: 400 },\n ].forEach((column, column_index) => {\n let chunk_size = Math.ceil(this.coefficients.length / 2);\n let coeffiencts_chunk = this.coefficients.slice(column_index * chunk_size, chunk_size * (column_index + 1));\n\n let idx = 0;\n coeffiencts_chunk.forEach((coefficient, i) => {\n let subscript = new Subscript(coefficient.label);\n subscript.output_obj;\n let first_chars = subscript.output_obj.uc;\n let first_chars_width = 0;\n first_chars.split('').forEach((chr) => {\n first_chars_width += chr in Subscript.character_widths ? Subscript.character_widths[chr] : 7;\n });\n let remaining_chars = subscript.output_obj.lc;\n // \t\t\t\tlet first_chars = coefficient.label.slice(0,1);\n // \t\t\t\tlet remaining_chars = coefficient.label.slice(1);\n // \t\t\t\tlet label_width = ((coefficient.label.length - 1) * (single_char_width * 0.6)) + single_char_width;\n let label_width = coefficient.label.length * single_char_width;\n let cursorY = this.startingHeight + this.rowHeight * (5 + idx);\n\n let thisstring = _.find(this.items, { label: coefficient.label });\n this.doc\n .font('Helvetica')\n .text(first_chars, column.kLeft + this.resultsIndent, cursorY)\n .fontSize(this.p * 0.6)\n .text(remaining_chars, column.kLeft + this.resultsIndent + first_chars_width, cursorY + 4)\n .fontSize(this.p)\n .text(': ', column.kLeft + this.resultsIndent + label_width, cursorY)\n .text(thisstring && thisstring.value !== null ? thisstring.value : '', column.vLeft, cursorY);\n idx++;\n });\n\n this.endTableY = this.startingHeight + this.rowHeight * (5 + chunk_size) + this.rowHeight;\n });\n return this.doc;\n }\n}\n"]}