vue-gantt-3
Version:
A gantt component for Vue 3
1 lines • 2.94 kB
Source Map (JSON)
{"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;"}