{"version":3,"file":"ng-vagabond-lab-ng-dsv-ds-table.mjs","sources":["../../../projects/ng-dsv/ds/table/component/table.component.ts","../../../projects/ng-dsv/ds/table/component/table.component.html","../../../projects/ng-dsv/ds/table/utils/table.utils.ts","../../../projects/ng-dsv/ds/table/ng-vagabond-lab-ng-dsv-ds-table.ts"],"sourcesContent":["import { Component, effect, input, signal } from '@angular/core';\n\nimport { RouterLink } from '@angular/router';\nimport { JSONObject } from '@ng-vagabond-lab/ng-dsv/api';\nimport { TranslatePipe } from '@ngx-translate/core';\nimport { TableDto } from '../dto/table.dto';\nimport { getValue, initTable } from '../public-api';\n\n@Component({\n    selector: 'dsv-table',\n    imports: [RouterLink, TranslatePipe],\n    templateUrl: './table.component.html',\n    styleUrls: ['./table.component.scss'],\n})\nexport class TableComponent {\n    url = input.required<string>();\n\n    cells = input.required<TableDto[]>();\n    datas = input.required<JSONObject[]>();\n\n    max = input<number>(10);\n\n    showDatas = signal<string[][]>([]);\n    links = signal<(string | null)[]>([]);\n\n    constructor() {\n        effect(() => {\n            const { links, datas } = initTable(this.datas(), this.max());\n\n            this.links.set(links);\n\n            const showDatas: string[][] = [];\n            datas.forEach((data) => {\n                const showData: string[] = [];\n                showData.push(getValue(data, 'id', false));\n                this.cells()?.forEach((cell) => {\n                    showData.push(getValue(data, cell.name, cell.date ?? false));\n                });\n                showDatas.push(showData);\n            });\n            this.showDatas.set(showDatas);\n        });\n    }\n}\n","<table>\n    <thead>\n        <tr>\n            @for (cell of cells(); track cell.name) {\n                <th [style.maxWidth]=\"cell.width\">{{ cell.label | translate }}</th>\n            }\n        </tr>\n    </thead>\n    <tbody>\n        @for (data of showDatas(); track $index; let index = $index) {\n            <tr>\n                @for (cell of cells(); track cell.name; let indexData = $index) {\n                    <td\n                        [class.cursor]=\"links()[index]\"\n                        [routerLink]=\"links()[index]\"\n                        [style.maxWidth]=\"cell.width\"\n                    >\n                        {{ data[indexData + 1] }}\n                    </td>\n                }\n            </tr>\n        }\n    </tbody>\n</table>\n","import { JSONObject } from '@ng-vagabond-lab/ng-dsv/api';\nimport { formatDate } from '@ng-vagabond-lab/ng-dsv/date';\n\nexport const initTable = (datas: JSONObject[], max: number) => {\n    const links = [];\n    const newDatas = [];\n    for (let i = 0, length = max > 0 ? max : datas.length; i < length; i++) {\n        let data = datas?.[i];\n        if (data) {\n            links.push(data['id' as keyof JSONObject]);\n        } else {\n            data = { id: -1 * (i + 1) } as JSONObject;\n            links.push(null);\n        }\n        newDatas.push(data);\n    }\n\n    return {\n        links: links,\n        datas: newDatas,\n    };\n};\n\nexport const getValue = (obj: JSONObject, key: string, isDate: boolean): any => {\n    let value: string = obj[key as keyof JSONObject];\n    if (key.includes('.')) {\n        const keys = key.split('.');\n        let recurse: JSONObject = obj;\n        keys.forEach((key2) => {\n            if (recurse) {\n                if (Array.isArray(recurse)) {\n                    recurse = (recurse as JSONObject[])\n                        .map((item) => item[key2 as keyof JSONObject])\n                        .join(',') as JSONObject;\n                } else {\n                    recurse = recurse[key2 as keyof JSONObject];\n                }\n            }\n        });\n        value = recurse as string;\n    }\n    if (isDate && value) {\n        value = formatDate(value);\n    }\n    return value;\n};\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":"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"}