{"version":3,"file":"useTableColumn.mjs","sources":["../../../../src/components/tableView/useTableColumn.ts"],"sourcesContent":["import { toRef, shallowRef, onBeforeMount, watch, markRaw } from 'vue';\nimport type { ColumnNode, ColDef, RowData, FirstColumnCellRenderParams, GanttRowNode } from '@/types';\nimport type { ILoadingCellRendererParams } from \"ag-grid-community\";\nimport FirstColumnCellRender from \"./FirstColumnCellRender.vue\";\n\nexport const useTableColumns = ({\n  props,\n  getRowNode\n\n}: {\n  props: any,\n  getRowNode: (row?: RowData) => GanttRowNode | undefined\n}) => {\n  const columns = toRef(props, 'columns');\n  const firstColumnCellRenderComp = markRaw(FirstColumnCellRender);\n\n  const columnDefs = shallowRef<ColumnNode[]>([]);\n  let firstColumId = '';\n\n  watch(columns, (val) => {\n    formatColumnDefs(val);\n  });\n\n  onBeforeMount(() => {\n    formatColumnDefs(columns.value);\n  });\n\n  function formatColumnDefs (columnDatas: ColDef[]) {\n    firstColumId = columnDatas[0]?.field || '';\n    const newColumnDefs: ColumnNode[] = [];\n    for (let columnData of columnDatas) {\n      const newColumnData: ColumnNode = { ...columnData };\n      newColumnData.cellRendererSelector = cellRendererSelector;\n      newColumnDefs.push(newColumnData);\n    }\n    columnDefs.value = newColumnDefs;\n  }\n\n  /**\n   * a cell renderer to show expand icon\n   * @param params\n   * @returns\n   */\n  function cellRendererSelector (params: ILoadingCellRendererParams<Omit<RowData, 'children'>>) {\n    const field = params.colDef?.field;\n    const cellRendererParams = params.colDef?.cellRendererParams;\n    if (firstColumId && field === firstColumId && cellRendererParams?.expandable) {\n      return {\n        component: firstColumnCellRenderComp,\n        params: {\n          ...cellRendererParams,\n          component: params.colDef?.cellRenderer,\n          rowNode: getRowNode(params.data)\n        } as FirstColumnCellRenderParams\n      };\n    }\n    return undefined;\n  }\n\n  return {\n    columnDefs\n  };\n};"],"names":["FirstColumnCellRender"],"mappings":";;;AAKO,MAAM,kBAAkB,CAAC;AAAA,EAC9B;AAAA,EACA;AAEF,MAGM;AACE,QAAA,UAAU,MAAM,OAAO,SAAS;AAChC,QAAA,4BAA4B,QAAQA,SAAqB;AAEzD,QAAA,aAAa,WAAyB,EAAE;AAC9C,MAAI,eAAe;AAEb,QAAA,SAAS,CAAC,QAAQ;AACtB,qBAAiB,GAAG;AAAA,EAAA,CACrB;AAED,gBAAc,MAAM;AAClB,qBAAiB,QAAQ,KAAK;AAAA,EAAA,CAC/B;AAED,WAAS,iBAAkB,aAAuB;;AACjC,qBAAA,iBAAY,CAAC,MAAb,mBAAgB,UAAS;AACxC,UAAM,gBAA8B,CAAC;AACrC,aAAS,cAAc,aAAa;AAC5B,YAAA,gBAA4B,EAAE,GAAG,WAAW;AAClD,oBAAc,uBAAuB;AACrC,oBAAc,KAAK,aAAa;AAAA,IAAA;AAElC,eAAW,QAAQ;AAAA,EAAA;AAQrB,WAAS,qBAAsB,QAA+D;;AACtF,UAAA,SAAQ,YAAO,WAAP,mBAAe;AACvB,UAAA,sBAAqB,YAAO,WAAP,mBAAe;AAC1C,QAAI,gBAAgB,UAAU,iBAAgB,yDAAoB,aAAY;AACrE,aAAA;AAAA,QACL,WAAW;AAAA,QACX,QAAQ;AAAA,UACN,GAAG;AAAA,UACH,YAAW,YAAO,WAAP,mBAAe;AAAA,UAC1B,SAAS,WAAW,OAAO,IAAI;AAAA,QAAA;AAAA,MAEnC;AAAA,IAAA;AAEK,WAAA;AAAA,EAAA;AAGF,SAAA;AAAA,IACL;AAAA,EACF;AACF;"}