{"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() && 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\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 * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":"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"}