????

Your IP : 216.73.216.152


Current Path : C:/inetpub/vhost/xaydung.gdtsolutions.vn/build/static/js/
Upload File :
Current File : C:/inetpub/vhost/xaydung.gdtsolutions.vn/build/static/js/8562.621529c0.chunk.js.map

{"version":3,"file":"static/js/8562.621529c0.chunk.js","mappings":"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","sources":["components/export/ExcelPlugin/utils/helpers.js","components/export/ExcelExtensions/WorksheetWrapper.js","components/export/ExcelExtensions/ExcelWorkbook.js","components/export/ExcelExtensions/index.js","views/bao-cao/DefaultRowGroups.js","../../../../../../root/.yarn/berry/cache/date-fns-npm-2.30.0-895c790e0f-10c0.zip/node_modules/date-fns/esm/lightFormat/index.js","components/export/ExcelPlugin/utils/constant.js","views/bao-cao/doi-thue/TabThongTin/CongNoThueNgoai/ExportExcel.js"],"sourcesContent":["import { ALPHABET, NUM_LETTERS, MONEY_LETTERS } from './constant';\n/** @requires ./types */\n\n/**\n * Chuyển số thứ tự cột thành chữ trong Excel\n * @param {number} n Số thứ tự cột\n * @returns {string}\n */\nexport function numToStrAddr(n) {\n    if (!n) return '';\n    n--;\n    if (n < ALPHABET.length) return ALPHABET[n];\n    const remain = n % ALPHABET.length;\n    return `${numToStrAddr(Math.floor(n / ALPHABET.length))}${ALPHABET[remain]}`\n}\n\n/**\n * Chuyển địa chỉ về dạng chuẩn\n * @param {ExcelAddress} addr\n * @returns {string}\n */\nexport function convertAddr(addr) {\n    if (typeof addr == \"string\") return addr;\n    if (Array.isArray(addr) && addr.length > 1) {\n        const [t, l, b, r] = addr;\n        if (b && r) return numToStrAddr(l) + t + \":\" + numToStrAddr(b) + r;\n        return numToStrAddr(l) + t;\n    }\n    throw new Error(\"Sai địa chỉ ô Excel\");\n}\n\n/**\n * 1. Hàm đọc số có ba chữ số;\n * @param {number} baso nhóm 3 chữ số\n */\nfunction DocSo3ChuSo(baso) {\n    var tram;\n    var chuc;\n    var donvi;\n    var KetQua = \"\";\n    tram = parseInt(baso / 100);\n    chuc = parseInt((baso % 100) / 10);\n    donvi = baso % 10;\n    if (tram === 0 && chuc === 0 && donvi === 0) return \"\";\n    if (tram !== 0) {\n        KetQua += NUM_LETTERS[tram] + \" trăm \";\n        if ((chuc === 0) && (donvi !== 0)) KetQua += \" linh \";\n    }\n    if ((chuc !== 0) && (chuc !== 1)) {\n        KetQua += NUM_LETTERS[chuc] + \" mươi\";\n        if ((chuc === 0) && (donvi !== 0)) KetQua = KetQua + \" linh \";\n    }\n    if (chuc === 1) KetQua += \" mười \";\n    switch (donvi) {\n        case 1:\n            if ((chuc !== 0) && (chuc !== 1)) {\n                KetQua += \" mốt \";\n            }\n            else {\n                KetQua += NUM_LETTERS[donvi];\n            }\n            break;\n        case 5:\n            if (chuc === 0) {\n                KetQua += NUM_LETTERS[donvi];\n            }\n            else {\n                KetQua += \" lăm \";\n            }\n            break;\n        default:\n            if (donvi !== 0) {\n                KetQua += NUM_LETTERS[donvi];\n            }\n            break;\n    }\n    return KetQua;\n}\n\n/**\n * 2. Hàm đọc số thành chữ (Sử dụng hàm đọc số có ba chữ số)\n * @param {BigInt} SoTien số tiền\n */\nexport function DocTienBangChu(SoTien) {\n    var lan = 0;\n    var i = 0;\n    var so = 0;\n    var KetQua = \"\";\n    var tmp = \"\";\n    var ViTri = [];\n    if (SoTien < 0) return \"Số tiền âm !\";\n    if (SoTien === 0) return \"Không đồng !\";\n    if (SoTien > 0) {\n        so = SoTien;\n    }\n    else {\n        so = -SoTien;\n    }\n    if (SoTien > 8999999999999999) {\n        //SoTien = 0;\n        return \"Số quá lớn!\";\n    }\n    ViTri[5] = Math.floor(so / 1000000000000000);\n    if (isNaN(ViTri[5]))\n        ViTri[5] = \"0\";\n    so = so - parseFloat(ViTri[5].toString()) * 1000000000000000;\n    ViTri[4] = Math.floor(so / 1000000000000);\n    if (isNaN(ViTri[4]))\n        ViTri[4] = \"0\";\n    so = so - parseFloat(ViTri[4].toString()) * 1000000000000;\n    ViTri[3] = Math.floor(so / 1000000000);\n    if (isNaN(ViTri[3]))\n        ViTri[3] = \"0\";\n    so = so - parseFloat(ViTri[3].toString()) * 1000000000;\n    ViTri[2] = parseInt(so / 1000000);\n    if (isNaN(ViTri[2]))\n        ViTri[2] = \"0\";\n    ViTri[1] = parseInt((so % 1000000) / 1000);\n    if (isNaN(ViTri[1]))\n        ViTri[1] = \"0\";\n    ViTri[0] = parseInt(so % 1000);\n    if (isNaN(ViTri[0]))\n        ViTri[0] = \"0\";\n    if (ViTri[5] > 0) {\n        lan = 5;\n    }\n    else if (ViTri[4] > 0) {\n        lan = 4;\n    }\n    else if (ViTri[3] > 0) {\n        lan = 3;\n    }\n    else if (ViTri[2] > 0) {\n        lan = 2;\n    }\n    else if (ViTri[1] > 0) {\n        lan = 1;\n    }\n    else {\n        lan = 0;\n    }\n    for (i = lan; i >= 0; i--) {\n        tmp = DocSo3ChuSo(ViTri[i]);\n        KetQua += tmp;\n        if (ViTri[i] > 0) KetQua += MONEY_LETTERS[i];\n        if ((i > 0) && (tmp.length > 0)) KetQua += ',';\n    }\n    if (KetQua.substring(KetQua.length - 1) === ',') {\n        KetQua = KetQua.substring(0, KetQua.length - 1);\n    }\n    KetQua = KetQua.substring(1, 2).toUpperCase() + KetQua.substring(2);\n    return KetQua.replace(/\\s+/g, \" \").replace(\"mươi một\", \"mươi mốt\").trim();\n}\n","/// <reference path=\"../ExcelPlugin/utils/types.js\"/>\n\nimport lodashMerge from 'lodash.merge';\nimport { convertAddr } from '../ExcelPlugin/utils/helpers';\nimport { DEFAULT_STYLE } from '../ExcelPlugin/utils/constant';\n/** @requires module:src/components/export */\n\nexport default class WorksheetWrapper {\n    /** @type {import('exceljs').Worksheet} */\n    #ws;\n    /** @param {import('exceljs').Worksheet} ws */\n    constructor(ws) {\n        this.#ws = ws;\n        return this;\n    }\n    get worksheet() {\n        return this.#ws;\n    }\n    /**\n     * Chuẩn hóa dữ liệu từng ô\n     * @param {ExcelCell} cell\n     * @returns {import('exceljs').CellValue}\n     */\n    #getCellValue = (cell) => {\n        if (Object.prototype.toString.call(cell) === '[object Object]'\n            && Object.prototype.hasOwnProperty.call(cell, 'value'))\n            return cell.value;\n        return cell || null;\n    }\n    //#region render array row group\n    /**\n     *\n     * @param {[number, number]} address Địa chỉ ô đầu tiên của dòng [dòng, cột]\n     * @param {ExcelRow} row Dữ liệu của dòng\n     */\n    #renderRow = ([r, c = 1], row) => {\n        const { cells, style, height } = row;\n        if (!cells) return;\n        const xr = this.#ws.getRow(r);\n        cells.forEach((ce, i) => {\n            const cell = xr.getCell(c + i);\n            if (cell.isMerged) return;\n            cell.value = this.#getCellValue(ce);\n            cell.style = lodashMerge({}, DEFAULT_STYLE, style, ce?.style);\n            if (ce?.colspan > 1 || ce?.rowspan > 1) {\n                this.#ws.mergeCells(r, c + i, r + (ce?.rowspan - 1 || 0), c + i + (ce?.colspan - 1 || 0));\n            }\n        })\n        if (height) this.#ws.getRow(r).height = height;\n    }\n    /**\n     * @param {ExcelAddress} topLeft\n     * @param {ExcelArrayRowGroupProps} rowsDef\n     * @alias export.renderArrayRowGroup\n     */\n    renderArrayRowGroup(topLeft, { rows, style }) {\n        const { col, row } = this.#ws.getCell(convertAddr(topLeft)).fullAddress;\n        const rowsData = typeof rows === 'function' ? rows() : rows;\n        rowsData.forEach((r, i) => {\n            if (r) this.#renderRow([row + i, col], {\n                r: row + i,\n                c: col,\n                style: lodashMerge({}, style, r.style),\n                cells: r.cells || r,\n                height: r.height\n            })\n        })\n    }\n    //#endregion\n\n    //#region render data row group\n    /**\n     * @template T\n     * @param {ExcelAddress} topLeft\n     * @param {ExcelGroupedData<T>} groupedDataDef\n     * @returns {number} Dòng đầu tiên của nhóm tiếp theo\n     */\n    #renderGroup = (topLeft, { keys, data, columns, style }) => {\n        const key = keys?.shift();\n        const column = columns.find(f => f.key === key);\n        let { col, row } = this.#ws.getCell(convertAddr(topLeft)).fullAddress;\n        if (key && column) {\n            const groupData = Array.from(new Set(data.map((m, i) => typeof column.render !== 'undefined' ? column.render(m, i) : m[key])));\n            for (let g of groupData) {\n                const gCell = this.#ws.getCell(row, +col, row, +col + columns.filter(f => !f.group).length);\n                gCell.value = g || null;\n                gCell.style = lodashMerge({}, DEFAULT_STYLE, style, { font: { bold: true } });\n                this.#ws.mergeCells(gCell.address);\n                row = this.#renderGroup([+row + 1, +col], {\n                    keys, columns,\n                    data: data.filter(f => f[key] === g)\n                });\n            }\n        } else {\n            columns.filter(f => !f.group).forEach((c, i) => {\n                data = typeof data === 'function' ? data() : data;\n                data.forEach((d, j) => {\n                    const cell = typeof c.render !== 'undefined' ? c.render(d, j) : d[c.key];\n                    this.#ws.getCell(+row + j, +col + i).value = this.#getCellValue(cell);\n                    this.#ws.getCell(+row + j, +col + i).style = lodashMerge({}, DEFAULT_STYLE, style, c?.style, cell?.style);\n                })\n                this.#ws.getColumn(+col + i).width = typeof c.width === 'number' ? c.width : 10;\n            })\n            row += data.length;\n        }\n        return row;\n    }\n    /**\n     * @template T\n     * @param {ExcelAddress} topLeft\n     * @param {ExcelDataRowGroupProps<T>} dataGroupDef\n     */\n    renderDataRowGroup(topLeft, { columns, data, header, totalRow, rowNum, headerStyle, cellStyle, onEndRow }) {\n        const { col, row } = this.#ws.getCell(convertAddr(topLeft)).fullAddress;\n        columns = typeof columns === 'function' ? columns() : columns;\n        if (rowNum) columns.unshift({\n            name: 'STT',\n            render: (_, idx) => idx + 1,\n            colStyle: { alignment: { horizontal: 'center' } },\n            width: 5\n        })\n        if (!header) {\n            header = [{\n                cells: columns.filter(f => !f.group).map(m => ({ value: m.name, style: lodashMerge({}, m.cellStyle) })),\n                style: headerStyle\n            }]\n        }\n        this.renderArrayRowGroup(topLeft, { rows: header, style: headerStyle });\n        const groupedCols = columns.filter(f => f.group).sort((a, b) => (+a.group) - (+b.group)).map(m => m.key);\n        const endRow = this.#renderGroup([+row + header.length, +col], { keys: groupedCols, data, columns, style: cellStyle })\n        onEndRow && onEndRow(endRow - 1);\n    }\n    //#endregion\n}","import { Workbook } from 'exceljs';\nimport { saveAs } from \"../../../actions/file-saver\";\nimport WorksheetWrapper from './WorksheetWrapper';\n\nexport default class ExcelWorkbook extends Workbook {\n    static create() {\n        // Tạo workbook\n        const wb = new Workbook();\n        wb.creator = 'GDT QLCB';\n        wb.lastModifiedBy = 'GDT QLCB';\n        wb.created = new Date();\n        wb.modified = new Date();\n        wb.lastPrinted = new Date();\n        return wb;\n    }\n\n    /**\n     * Tải về file excel\n     * @param {string} filename\n     */\n    async download(filename) {\n        const wbBuffer = await this.xlsx.writeBuffer();\n        saveAs(new Blob([wbBuffer], { type: \"application/vnd.openxmlformats-officedocument.spreadsheetml.sheet\" }), filename)\n    }\n    /**\n     * @param {string} [name]\n     * @param {Partial<import('exceljs').AddWorksheetOptions>} [option]\n     */\n    addWorksheet(name = \"Sheet1\", option) {\n        return new WorksheetWrapper(super.addWorksheet(name, option));\n    }\n    /** @param {string | number} indexOrName */\n    getWorksheet(indexOrName) {\n        return new WorksheetWrapper(super.getWorksheet(indexOrName));\n    }\n}","import ExcelWorkbook from './ExcelWorkbook';\nexport default ExcelWorkbook;","/** @requires ../../components/export/ExcelPlugin/utils/types */\n\n/**\n * Dữ liệu mặc định cho nhóm dòng thông tin đơn vị\n * @param {number} colspan Tổng số dòng thông tin đơn vị\n * @returns {ExcelArrayRowGroupProps}\n */\nexport function ExportDonVi(colspan = 3) {\n    return {\n        style: { alignment: { horizontal: 'center' } },\n        rows: [\n            [{ value: 'TỈNH ỦY BÌNH ĐỊNH', colspan }],\n            [{ value: 'TRƯỜNG CHÍNH TRỊ', colspan, style: { font: { bold: true } } }],\n        ]\n    }\n}\n/**\n * Dữ liệu mặc định cho nhóm dòng quốc hiệu\n * @param {number} colspan Tổng số dòng dành cho quốc hiệu\n * @returns {ExcelArrayRowGroupProps}\n */\nexport function ExportQuocHieu(colspan = 3) {\n    return {\n        style: { alignment: { horizontal: 'center' } },\n        rows: [\n            [{ value: 'CỘNG HÒA XÃ HỘI CHỦ NGHĨA VIỆT NAM', colspan, style: { font: { bold: true } } }],\n            [{ value: 'Độc lập - Tự do - Hạnh phúc', colspan, style: { font: { bold: true } } }],\n            [{ value: '-----***-----', colspan }],\n        ]\n    }\n}\n/**\n * Dữ liệu mặc định cho thông tin Đảng Cộng sản\n * @param {number} colspan Tổng số dòng thông tin đơn vị\n * @returns {ExcelArrayRowGroupProps}\n */\nexport function ExportParty(colspan = 3) {\n    return {\n        style: {\n            alignment: { horizontal: 'center' },\n            font: { bold: true, underline: 'single' }\n        },\n        rows: [\n            [{ value: 'ĐẢNG CỘNG SẢN VIỆT NAM', colspan }]\n        ]\n    }\n}\n/**\n * Lấy dữ liệu nhóm dòng tiêu đề nội dung báo cáo\n * @param {number} colspan Tổng số dòng dành cho tiêu đề\n * @returns {ExcelArrayRowGroupProps}\n */\nexport function ExportInfo(colspan, title, subTitle) {\n    if (!colspan) throw new Error(\"Tổng số cột cần merge cell phải lớn hơn 0\");\n    return {\n        style: { alignment: { horizontal: 'center' } },\n        rows: [\n            [{ value: title, colspan, style: { font: { bold: true } } }],\n            [{ value: subTitle, colspan, style: { font: { italic: true } } }],\n        ]\n    }\n}","import toDate from \"../toDate/index.js\";\nimport formatters from \"../_lib/format/lightFormatters/index.js\";\nimport getTimezoneOffsetInMilliseconds from \"../_lib/getTimezoneOffsetInMilliseconds/index.js\";\nimport isValid from \"../isValid/index.js\";\nimport subMilliseconds from \"../subMilliseconds/index.js\";\nimport requiredArgs from \"../_lib/requiredArgs/index.js\"; // This RegExp consists of three parts separated by `|`:\n// - (\\w)\\1* matches any sequences of the same letter\n// - '' matches two quote characters in a row\n// - '(''|[^'])+('|$) matches anything surrounded by two quote characters ('),\n//   except a single quote symbol, which ends the sequence.\n//   Two quote characters do not end the sequence.\n//   If there is no matching single quote\n//   then the sequence will continue until the end of the string.\n// - . matches any single character unmatched by previous parts of the RegExps\nvar formattingTokensRegExp = /(\\w)\\1*|''|'(''|[^'])+('|$)|./g;\nvar escapedStringRegExp = /^'([^]*?)'?$/;\nvar doubleQuoteRegExp = /''/g;\nvar unescapedLatinCharacterRegExp = /[a-zA-Z]/;\n\n/**\n * @name lightFormat\n * @category Common Helpers\n * @summary Format the date.\n *\n * @description\n * Return the formatted date string in the given format. Unlike `format`,\n * `lightFormat` doesn't use locales and outputs date using the most popular tokens.\n *\n * > ⚠️ Please note that the `lightFormat` tokens differ from Moment.js and other libraries.\n * > See: https://github.com/date-fns/date-fns/blob/master/docs/unicodeTokens.md\n *\n * The characters wrapped between two single quotes characters (') are escaped.\n * Two single quotes in a row, whether inside or outside a quoted sequence, represent a 'real' single quote.\n *\n * Format of the string is based on Unicode Technical Standard #35:\n * https://www.unicode.org/reports/tr35/tr35-dates.html#Date_Field_Symbol_Table\n *\n * Accepted patterns:\n * | Unit                            | Pattern | Result examples                   |\n * |---------------------------------|---------|-----------------------------------|\n * | AM, PM                          | a..aaa  | AM, PM                            |\n * |                                 | aaaa    | a.m., p.m.                        |\n * |                                 | aaaaa   | a, p                              |\n * | Calendar year                   | y       | 44, 1, 1900, 2017                 |\n * |                                 | yy      | 44, 01, 00, 17                    |\n * |                                 | yyy     | 044, 001, 000, 017                |\n * |                                 | yyyy    | 0044, 0001, 1900, 2017            |\n * | Month (formatting)              | M       | 1, 2, ..., 12                     |\n * |                                 | MM      | 01, 02, ..., 12                   |\n * | Day of month                    | d       | 1, 2, ..., 31                     |\n * |                                 | dd      | 01, 02, ..., 31                   |\n * | Hour [1-12]                     | h       | 1, 2, ..., 11, 12                 |\n * |                                 | hh      | 01, 02, ..., 11, 12               |\n * | Hour [0-23]                     | H       | 0, 1, 2, ..., 23                  |\n * |                                 | HH      | 00, 01, 02, ..., 23               |\n * | Minute                          | m       | 0, 1, ..., 59                     |\n * |                                 | mm      | 00, 01, ..., 59                   |\n * | Second                          | s       | 0, 1, ..., 59                     |\n * |                                 | ss      | 00, 01, ..., 59                   |\n * | Fraction of second              | S       | 0, 1, ..., 9                      |\n * |                                 | SS      | 00, 01, ..., 99                   |\n * |                                 | SSS     | 000, 001, ..., 999                |\n * |                                 | SSSS    | ...                               |\n *\n * @param {Date|Number} date - the original date\n * @param {String} format - the string of tokens\n * @returns {String} the formatted date string\n * @throws {TypeError} 2 arguments required\n * @throws {RangeError} format string contains an unescaped latin alphabet character\n *\n * @example\n * const result = lightFormat(new Date(2014, 1, 11), 'yyyy-MM-dd')\n * //=> '2014-02-11'\n */\n\nexport default function lightFormat(dirtyDate, formatStr) {\n  requiredArgs(2, arguments);\n  var originalDate = toDate(dirtyDate);\n  if (!isValid(originalDate)) {\n    throw new RangeError('Invalid time value');\n  }\n\n  // Convert the date in system timezone to the same date in UTC+00:00 timezone.\n  // This ensures that when UTC functions will be implemented, locales will be compatible with them.\n  // See an issue about UTC functions: https://github.com/date-fns/date-fns/issues/376\n  var timezoneOffset = getTimezoneOffsetInMilliseconds(originalDate);\n  var utcDate = subMilliseconds(originalDate, timezoneOffset);\n  var tokens = formatStr.match(formattingTokensRegExp);\n\n  // The only case when formattingTokensRegExp doesn't match the string is when it's empty\n  if (!tokens) return '';\n  var result = tokens.map(function (substring) {\n    // Replace two single quote characters with one single quote character\n    if (substring === \"''\") {\n      return \"'\";\n    }\n    var firstCharacter = substring[0];\n    if (firstCharacter === \"'\") {\n      return cleanEscapedString(substring);\n    }\n    var formatter = formatters[firstCharacter];\n    if (formatter) {\n      return formatter(utcDate, substring);\n    }\n    if (firstCharacter.match(unescapedLatinCharacterRegExp)) {\n      throw new RangeError('Format string contains an unescaped latin alphabet character `' + firstCharacter + '`');\n    }\n    return substring;\n  }).join('');\n  return result;\n}\nfunction cleanEscapedString(input) {\n  var matches = input.match(escapedStringRegExp);\n  if (!matches) {\n    return input;\n  }\n  return matches[1].replace(doubleQuoteRegExp, \"'\");\n}","import lodashMerge from 'lodash.merge'\n/** Cách đọc các số */\nexport const NUM_LETTERS = Array.of(\" không \", \" một \", \" hai \", \" ba \", \" bốn \", \" năm \", \" sáu \", \" bảy \", \" tám \", \" chín \");\n/** Cách đọc phần nghìn */\nexport const MONEY_LETTERS = Array.of(\"\", \" nghìn\", \" triệu\", \" tỷ\", \" nghìn tỷ\", \" triệu tỷ\");\n/**\n * Viền xung quanh ô (dùng cho bảng)\n * @type {Partial<import('exceljs').Borders>}\n */\nconst ALL_BORDERED = {\n    top: { style: 'thin', color: { argb: 'FF808080' } },\n    left: { style: 'thin', color: { argb: 'FF808080' } },\n    bottom: { style: 'thin', color: { argb: 'FF808080' } },\n    right: { style: 'thin', color: { argb: 'FF808080' } }\n}\n/**\n * Style mặc định của Excel\n * @type {Partial<import('exceljs').Style>}\n */\nexport const DEFAULT_STYLE = {\n    numFmt: '#,##0',\n    font: {\n        name: 'Times New Roman',\n        family: 4,\n        size: 12,\n        color: { argb: 'FF000000' }\n    },\n    alignment: {\n        vertical: 'middle',\n        wrapText: true\n    },\n    fill: {\n        type: 'pattern',\n        pattern: 'none'\n    }\n}\n/**\n * Style mặc định từng ô trong Excel\n * @type {Partial<import('exceljs').Style>}\n */\nexport const CELL_STYLE = {\n    border: ALL_BORDERED\n}\n/**\n * Style mặc định tiêu đề bảng excel\n * @type {Partial<import('exceljs').Style>}\n */\nexport const HEADER_STYLE = lodashMerge({}, {\n    font: {\n        bold: true,\n        size: 12\n    },\n    alignment: {\n        horizontal: 'center',\n        wrapText: true\n    },\n    // border: ALL_BORDERED\n})\n/** Bảng chữ cái */\nexport const ALPHABET = \"ABCDEFGHIJKLMNOPQRSTUVWXYZ\";\n\n/**\n * Tiêu đề\n */\nexport const Title_Header = {\n    font: {\n        bold: true,\n        size: 10\n    }\n}\n\nexport const Tilte_Columns = {\n    background: '#F2F2F2'\n}\n\nexport const CELL_CENTER = {\n    alignment: {\n        horizontal: 'center',\n        vertical: 'middle',\n        wrapText: true\n    }\n}\n\nexport const CELL_RIGHT = {\n    alignment: {\n        horizontal: 'right',\n        vertical: 'middle',\n        wrapText: true\n    }\n}","/// <reference path=\"../../../../../components/export/ExcelPlugin/utils/types.js\" />\n/** @requires module:src/components/export */\nimport { HEADER_STYLE, CELL_STYLE } from '../../../../../components/export/ExcelPlugin/utils/constant';\nimport ExcelWorkbook from '../../../../../components/export/ExcelExtensions';\nimport { ExportQuocHieu } from '../../../DefaultRowGroups';\nimport lightFormat from 'date-fns/lightFormat';\nimport { formatNumber } from '../../../../../actions/util';\n\n/**\n * Export Công nợ\n * @param {ExportCongNoModel} data\n * @param {string} filename\n */\nconst INITIAL_COLOR_GROUP = { '1': '00FF7300', '2': '00e4ebcc', '3': '00FFFFFF' }\nexport default async function ExportCongNoThu({ Nam, arrDot, data }, filename) {\n  const wb = new ExcelWorkbook();\n  const totalCol = 5 + data.length;\n  const arrayDot = Array.from(Array(data.length).keys()).map(m => m);\n  // Tạo worksheet công nợ\n  const ws = wb.addWorksheet(`Công nợ đội thuê ngoài ${Nam}`);\n  ws.worksheet.getColumn(2).width = 30;\n  ws.worksheet.getColumn(3).width = 20;\n  ws.worksheet.getColumn(4).width = 20;\n  arrayDot.sort().forEach(cur => ws.worksheet.getColumn(cur + 5).width = 15)\n  ws.worksheet.getColumn(5 + arrDot.length).width = 20;\n  ws.worksheet.getColumn(6 + arrDot.length).width = 20;\n  // Render thông tin chung\n  ws.renderArrayRowGroup([1, 3], ExportQuocHieu(totalCol - 2));\n  ws.renderArrayRowGroup([4, 1], {\n    style: {\n      font: { bold: true },\n      alignment: { horizontal: 'center' }\n    },\n    rows: [\n      [{ value: `CÔNG NỢ ĐỘI THUÊ NGOÀI - ${Nam} `.toUpperCase(), colspan: totalCol }],\n    ]\n  });\n  ws.renderArrayRowGroup([5, totalCol - 4], {\n    style: {\n      font: { italic: true },\n      alignment: { horizontal: 'center' }\n    },\n    rows: [\n      [{ colspan: 5, value: `Bình Định, ${lightFormat(new Date(), `'ngày 'dd' tháng 'MM' năm 'yyyy`)}` }]\n    ]\n  })\n\n  // Render chi tiết\n  ws.renderArrayRowGroup([6, 1], TableHeader(arrDot));\n  const tableData = TableContentGroup(data, arrDot);\n  // const tableData = data.map(m => TableDetailGroup(m, arrayDots)).flat();\n  ws.renderArrayRowGroup([7, 1], { style: CELL_STYLE, rows: tableData })\n  wb.download(filename)\n}\n\n//#region Các hàm hỗ trợ xuất bảng tổng hợp công nợ\n\n/**\n * Render header của bảng export công nợ\n * @param {Omit<ExportKhenThuongModel, 'data'>} param\n * @returns {ExcelArrayRowGroupProps}\n */\nfunction TableHeader(arrDot) {\n  const ARRAY_DOT = (arrDot) => arrDot.map((_, i) => ({ rowspan: 1, value: `Đợt ` + _.Dot }));\n  return ({\n    style: HEADER_STYLE,\n    rows: [\n      [\n        { rowspan: 1, value: 'TT' },\n        { rowspan: 1, value: 'ĐỘI' },\n        { rowspan: 1, value: 'SỐ TIỀN PHẢI TRẢ' },\n        { rowspan: 1, value: 'NỢ CŨ' },\n        { rowspan: 1, value: 'TẠM ỨNG ĐỢT NÀY' },\n        ...(ARRAY_DOT(arrDot)),\n        { rowspan: 1, value: 'TỔNG CHI PHÍ' },\n        { rowspan: 1, value: 'TỔNG TẠM ỨNG' },\n      ]\n    ]\n  })\n}\n\n/**\n * Render chi tiết dự án \n * @param {Array<Object>} data dữ liệu chi tiết\n * @param {Array<Object>} NhomKhoanThu nhóm dự án\n * @param {Array<number>} arrayDot mảng các đợt thanh toán\n * @returns {Array<ExcelRow>}\n */\nfunction TableContentGroup(data, arrDot) {\n  let content = [];\n  data.forEach((n, i) => { // đội\n    content = [...content, ...[TableRow({ row: n }, arrDot, false, i)]]\n  })\n  return content\n}\n/**\n * @param {Array<object>} arrDotThanhToan mảng các đợt thanh toán\n * @param {boolean} bold đậm cho font chữ\n * @param {intNumber} enumsGroup 1-nhóm dự án || 2-khoản thu || 3-dự án\n*/\nfunction TableRow({ row }, arrDot, bold = false, index) {\n  const ArrCol = ({ Items }, arrDot) => {\n    return arrDot.map(k => {\n      const dataThanhToan = Items.find(cur => cur.DotId === k.Id);\n      const valRow = dataThanhToan ? formatNumber(dataThanhToan.TongLuong) : null\n      return { value: valRow || null }\n    })\n  }\n  const boldStyle = { font: { bold, background: { argb: INITIAL_COLOR_GROUP['1'] } } };\n  const headLineSTT = index + 1;\n  return [\n    { value: headLineSTT, style: { ...boldStyle, alignment: { horizontal: 'center' } } },\n    { value: row.OrganName, style: boldStyle },\n    { value: formatNumber(row.TongChiPhi - row.CongNos + row.CongNoCu), style: boldStyle },\n    { value: row.CongNoCu, style: boldStyle },\n    { value: row.TamUngDotNay, style: boldStyle },\n    ...ArrCol(row, arrDot),\n    { value: formatNumber(row.TongChiPhi), style: boldStyle },\n    { value: formatNumber(row.CongNos), style: boldStyle },\n  ]\n}\n\n/**\n * Chuyển số thành chữ số La Mã\n * @param {number} intNumber\n */\nexport function IntegerToRoman(intNumber) {\n  if (typeof intNumber !== 'number')\n    return '';\n\n  var digits = String(+intNumber).split(\"\"),\n    key = [\"\", \"C\", \"CC\", \"CCC\", \"CD\", \"D\", \"DC\", \"DCC\", \"DCCC\", \"CM\",\n      \"\", \"X\", \"XX\", \"XXX\", \"XL\", \"L\", \"LX\", \"LXX\", \"LXXX\", \"XC\",\n      \"\", \"I\", \"II\", \"III\", \"IV\", \"V\", \"VI\", \"VII\", \"VIII\", \"IX\"],\n    roman_num = \"\",\n    i = 3;\n  while (i--)\n    roman_num = (key[+digits.pop() + (i * 10)] || \"\") + roman_num;\n  return Array(+digits.join(\"\") + 1).join(\"M\") + roman_num;\n}\n\n//#endregion\n\n//#region JSDoc Types\n\n//#endregion"],"names":["numToStrAddr","n","ALPHABET","length","remain","Math","floor","convertAddr","addr","Array","isArray","t","l","b","r","Error","_ws","_classPrivateFieldLooseKey","_getCellValue","_renderRow","_renderGroup","WorksheetWrapper","constructor","ws","Object","defineProperty","writable","value","cell","prototype","toString","call","hasOwnProperty","_ref","row","c","cells","style","height","xr","_classPrivateFieldLooseBase","this","getRow","forEach","ce","i","getCell","isMerged","lodashMerge","DEFAULT_STYLE","colspan","rowspan","mergeCells","topLeft","_ref2","keys","data","columns","key","shift","column","find","f","col","fullAddress","groupData","from","Set","map","m","render","g","gCell","filter","group","font","bold","address","d","j","getColumn","width","worksheet","renderArrayRowGroup","_ref3","rows","renderDataRowGroup","_ref4","header","totalRow","rowNum","headerStyle","cellStyle","onEndRow","unshift","name","_","idx","colStyle","alignment","horizontal","groupedCols","sort","a","endRow","ExcelWorkbook","Workbook","create","wb","creator","lastModifiedBy","created","Date","modified","lastPrinted","download","filename","wbBuffer","xlsx","writeBuffer","saveAs","Blob","type","addWorksheet","arguments","undefined","option","super","getWorksheet","indexOrName","ExportDonVi","ExportQuocHieu","ExportParty","underline","ExportInfo","title","subTitle","italic","formattingTokensRegExp","escapedStringRegExp","doubleQuoteRegExp","unescapedLatinCharacterRegExp","lightFormat","dirtyDate","formatStr","requiredArgs","originalDate","toDate","isValid","RangeError","timezoneOffset","getTimezoneOffsetInMilliseconds","utcDate","subMilliseconds","tokens","match","substring","firstCharacter","input","matches","replace","cleanEscapedString","formatter","formatters","join","of","numFmt","family","size","color","argb","vertical","wrapText","fill","pattern","CELL_STYLE","border","top","left","bottom","right","HEADER_STYLE","Title_Header","Tilte_Columns","background","CELL_CENTER","CELL_RIGHT","INITIAL_COLOR_GROUP","async","ExportCongNoThu","Nam","arrDot","totalCol","arrayDot","cur","toUpperCase","ARRAY_DOT","Dot","TableHeader","tableData","content","TableRow","TableContentGroup","index","boldStyle","OrganName","formatNumber","TongChiPhi","CongNos","CongNoCu","TamUngDotNay","ArrCol","Items","k","dataThanhToan","DotId","Id","TongLuong","IntegerToRoman","intNumber","digits","String","split","roman_num","pop"],"sourceRoot":""}