@raystack/apsara 0.34.0 → 0.34.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/v1/components/data-table/components/content.cjs +1 -1
- package/dist/v1/components/data-table/components/content.cjs.map +1 -1
- package/dist/v1/components/data-table/components/content.js +1 -1
- package/dist/v1/components/data-table/components/content.js.map +1 -1
- package/dist/v1/components/data-table/components/display-settings.cjs +10 -3
- package/dist/v1/components/data-table/components/display-settings.cjs.map +1 -1
- package/dist/v1/components/data-table/components/display-settings.d.ts.map +1 -1
- package/dist/v1/components/data-table/components/display-settings.js +10 -3
- package/dist/v1/components/data-table/components/display-settings.js.map +1 -1
- package/dist/v1/components/data-table/components/grouping.cjs +6 -2
- package/dist/v1/components/data-table/components/grouping.cjs.map +1 -1
- package/dist/v1/components/data-table/components/grouping.d.ts +4 -3
- package/dist/v1/components/data-table/components/grouping.d.ts.map +1 -1
- package/dist/v1/components/data-table/components/grouping.js +7 -3
- package/dist/v1/components/data-table/components/grouping.js.map +1 -1
- package/dist/v1/components/data-table/data-table.types.cjs.map +1 -1
- package/dist/v1/components/data-table/data-table.types.d.ts +2 -2
- package/dist/v1/components/data-table/data-table.types.d.ts.map +1 -1
- package/dist/v1/components/data-table/data-table.types.js.map +1 -1
- package/dist/v1/components/data-table/utils/filter-operations.cjs +6 -0
- package/dist/v1/components/data-table/utils/filter-operations.cjs.map +1 -1
- package/dist/v1/components/data-table/utils/filter-operations.d.ts +5 -0
- package/dist/v1/components/data-table/utils/filter-operations.d.ts.map +1 -1
- package/dist/v1/components/data-table/utils/filter-operations.js +6 -1
- package/dist/v1/components/data-table/utils/filter-operations.js.map +1 -1
- package/dist/v1/components/data-table/utils/index.cjs +26 -22
- package/dist/v1/components/data-table/utils/index.cjs.map +1 -1
- package/dist/v1/components/data-table/utils/index.d.ts.map +1 -1
- package/dist/v1/components/data-table/utils/index.js +27 -23
- package/dist/v1/components/data-table/utils/index.js.map +1 -1
- package/dist/v1/types/filters.cjs.map +1 -1
- package/dist/v1/types/filters.d.ts +1 -1
- package/dist/v1/types/filters.d.ts.map +1 -1
- package/dist/v1/types/filters.js.map +1 -1
- package/package.json +1 -1
|
@@ -27,7 +27,7 @@ function LoaderRows({ rowCount, columnCount, }) {
|
|
|
27
27
|
});
|
|
28
28
|
}
|
|
29
29
|
function GroupHeader({ colSpan, data, }) {
|
|
30
|
-
return (jsxRuntime.jsxRuntimeExports.jsx(table.Table.SectionHeader, { colSpan: colSpan, children: jsxRuntime.jsxRuntimeExports.jsxs(flex.Flex, { gap: 3, align: "center", children: [data?.
|
|
30
|
+
return (jsxRuntime.jsxRuntimeExports.jsx(table.Table.SectionHeader, { colSpan: colSpan, children: jsxRuntime.jsxRuntimeExports.jsxs(flex.Flex, { gap: 3, align: "center", children: [data?.label, data.showGroupCount ? (jsxRuntime.jsxRuntimeExports.jsx(badge.Badge, { variant: "neutral", children: data?.count })) : null] }) }));
|
|
31
31
|
}
|
|
32
32
|
const Rows = React.forwardRef((props, lastRowRef) => {
|
|
33
33
|
const { rows = [], onRowClick, classNames } = props;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"content.cjs","sources":["../../../../../v1/components/data-table/components/content.tsx"],"sourcesContent":["import { Table } from \"../../table\";\nimport type { Row, HeaderGroup } from \"@tanstack/react-table\";\nimport { EmptyState } from \"../../empty-state\";\nimport { TableIcon } from \"@radix-ui/react-icons\";\nimport { flexRender } from \"@tanstack/react-table\";\nimport { useDataTable } from \"../hooks/useDataTable\";\nimport {\n DataTableColumnDef,\n DataTableContentProps,\n GroupedData,\n} from \"../data-table.types\";\nimport Skeleton from \"react-loading-skeleton\";\nimport {\n ForwardedRef,\n forwardRef,\n useCallback,\n useEffect,\n useRef,\n} from \"react\";\nimport { Badge } from \"../../badge\";\nimport { Flex } from \"../../flex\";\nimport styles from \"../data-table.module.css\";\nimport clsx from \"clsx\";\n\nfunction Headers<TData>({\n headerGroups = [],\n className = \"\",\n}: {\n headerGroups: HeaderGroup<TData>[];\n className?: string;\n}) {\n return (\n <Table.Header className={className}>\n {headerGroups?.map((headerGroup) => (\n <Table.Row key={headerGroup?.id}>\n {headerGroup?.headers?.map((header) => {\n const columnDef = header.column.columnDef as DataTableColumnDef<\n TData,\n unknown\n >;\n return (\n <Table.Head\n key={header.id}\n colSpan={header.colSpan}\n className={columnDef.classNames?.header}\n style={columnDef.styles?.header}\n >\n {flexRender(columnDef.header, header.getContext())}\n </Table.Head>\n );\n })}\n </Table.Row>\n ))}\n </Table.Header>\n );\n}\n\ninterface RowsProps<TData> {\n rows: Row<TData>[];\n lastRowRef?: ForwardedRef<HTMLTableRowElement>;\n onRowClick?: (row: TData) => void;\n classNames?: {\n row?: string;\n };\n}\n\nfunction LoaderRows({\n rowCount,\n columnCount,\n}: {\n rowCount: number;\n columnCount: number;\n}) {\n const rows = Array.from({ length: rowCount });\n return rows.map((_, rowIndex) => {\n const columns = Array.from({ length: columnCount });\n return (\n <Table.Row key={\"loading-row-\" + rowIndex}>\n {columns.map((_, colIndex) => (\n <Table.Cell key={\"loading-column-\" + colIndex}>\n <Skeleton />\n </Table.Cell>\n ))}\n </Table.Row>\n );\n });\n}\n\nfunction GroupHeader<TData>({\n colSpan,\n data,\n}: {\n colSpan: number;\n data: GroupedData<TData>;\n}) {\n return (\n <Table.SectionHeader colSpan={colSpan}>\n <Flex gap={3} align=\"center\">\n {data?.group_key}\n {data.showGroupCount ? (\n <Badge variant=\"neutral\">{data?.count}</Badge>\n ) : null}\n </Flex>\n </Table.SectionHeader>\n );\n}\n\nconst Rows = forwardRef<HTMLTableRowElement, RowsProps<unknown>>(\n (props, lastRowRef) => {\n const { rows = [], onRowClick, classNames } = props;\n return (\n <>\n {rows?.map((row, index) => {\n const isSelected = row.getIsSelected();\n const cells = row.getVisibleCells() || [];\n const isSectionHeadingRow = row.depth === 0 && row.getIsExpanded();\n const isLastRow = index === rows.length - 1;\n const rowKey = row.id + \"-\" + index;\n return isSectionHeadingRow ? (\n <GroupHeader\n key={rowKey}\n colSpan={cells.length}\n data={row.original as GroupedData<unknown>}\n />\n ) : (\n <Table.Row\n key={rowKey}\n className={clsx(\n styles[\"row\"],\n onRowClick ? styles[\"clickable\"] : \"\",\n classNames?.row\n )}\n data-state={isSelected && \"selected\"}\n ref={isLastRow ? lastRowRef : undefined}\n onClick={() => onRowClick?.(row.original)}\n >\n {cells.map((cell) => {\n const columnDef = cell.column.columnDef as DataTableColumnDef<\n unknown,\n unknown\n >;\n return (\n <Table.Cell\n key={cell.id}\n className={clsx(styles[\"cell\"], columnDef.classNames?.cell)}\n style={columnDef.styles?.cell}\n >\n {flexRender(columnDef.cell, cell.getContext())}\n </Table.Cell>\n );\n })}\n </Table.Row>\n );\n })}\n </>\n );\n }\n);\n\nconst DefaultEmptyComponent = () => (\n <EmptyState icon={<TableIcon />} heading=\"No Data\" />\n);\n\nexport function Content({\n emptyState,\n classNames = {},\n}: DataTableContentProps) {\n const {\n onRowClick,\n table,\n mode,\n isLoading,\n loadMoreData,\n loadingRowCount = 3,\n } = useDataTable();\n const headerGroups = table?.getHeaderGroups();\n const { rows = [] } = table?.getRowModel();\n\n const lastRowRef = useRef<HTMLTableRowElement | null>(null);\n const observerRef = useRef<IntersectionObserver | null>(null);\n\n const handleObserver = useCallback(\n (entries: IntersectionObserverEntry[]) => {\n const target = entries[0];\n if (target.isIntersecting && !isLoading) {\n loadMoreData();\n }\n },\n [loadMoreData, isLoading]\n );\n\n useEffect(() => {\n if (mode !== \"server\") return;\n\n if (observerRef.current) {\n observerRef.current.disconnect();\n }\n\n observerRef.current = new IntersectionObserver(handleObserver, {\n threshold: 0.1,\n });\n const lastRow = lastRowRef.current;\n if (lastRow) {\n observerRef.current.observe(lastRow);\n }\n\n return () => {\n if (observerRef.current && lastRow) {\n observerRef.current.unobserve(lastRow);\n observerRef.current.disconnect();\n }\n };\n }, [mode, rows.length, handleObserver]);\n\n const visibleColumnsLength = table.getVisibleLeafColumns().length;\n\n return (\n <Table className={classNames.table}>\n <Headers headerGroups={headerGroups} className={classNames.header} />\n <Table.Body className={classNames.body}>\n {rows?.length || isLoading ? (\n <>\n <Rows\n rows={rows}\n ref={lastRowRef}\n onRowClick={onRowClick}\n classNames={{\n row: classNames.row,\n }}\n />\n {isLoading ? (\n <LoaderRows\n rowCount={loadingRowCount}\n columnCount={visibleColumnsLength}\n />\n ) : null}\n </>\n ) : (\n <Table.Row>\n <Table.Cell colSpan={visibleColumnsLength}>\n {emptyState || <DefaultEmptyComponent />}\n </Table.Cell>\n </Table.Row>\n )}\n </Table.Body>\n </Table>\n );\n}\n"],"names":["_jsx","Table","flexRender","Skeleton","_jsxs","Flex","Badge","forwardRef","_Fragment","index","clsx","styles","EmptyState","TableIcon","table","useDataTable","useRef","useCallback","useEffect"],"mappings":";;;;;;;;;;;;;;;AAwBA,SAAS,OAAO,CAAQ,EACtB,YAAY,GAAG,EAAE,EACjB,SAAS,GAAG,EAAE,GAIf,EAAA;AACC,IAAA,QACEA,gCAAA,CAACC,WAAK,CAAC,MAAM,EAAC,EAAA,SAAS,EAAE,SAAS,YAC/B,YAAY,EAAE,GAAG,CAAC,CAAC,WAAW,MAC7BD,gCAAA,CAACC,WAAK,CAAC,GAAG,EACP,EAAA,QAAA,EAAA,WAAW,EAAE,OAAO,EAAE,GAAG,CAAC,CAAC,MAAM,KAAI;AACpC,gBAAA,MAAM,SAAS,GAAG,MAAM,CAAC,MAAM,CAAC,SAG/B,CAAC;gBACF,QACED,iCAACC,WAAK,CAAC,IAAI,EAET,EAAA,OAAO,EAAE,MAAM,CAAC,OAAO,EACvB,SAAS,EAAE,SAAS,CAAC,UAAU,EAAE,MAAM,EACvC,KAAK,EAAE,SAAS,CAAC,MAAM,EAAE,MAAM,EAAA,QAAA,EAE9BC,gBAAU,CAAC,SAAS,CAAC,MAAM,EAAE,MAAM,CAAC,UAAU,EAAE,CAAC,EAAA,EAL7C,MAAM,CAAC,EAAE,CAMH,EACb;aACH,CAAC,EAhBY,EAAA,WAAW,EAAE,EAAE,CAiBnB,CACb,CAAC,EACW,CAAA,EACf;AACJ,CAAC;AAWD,SAAS,UAAU,CAAC,EAClB,QAAQ,EACR,WAAW,GAIZ,EAAA;AACC,IAAA,MAAM,IAAI,GAAG,KAAK,CAAC,IAAI,CAAC,EAAE,MAAM,EAAE,QAAQ,EAAE,CAAC,CAAC;IAC9C,OAAO,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,QAAQ,KAAI;AAC9B,QAAA,MAAM,OAAO,GAAG,KAAK,CAAC,IAAI,CAAC,EAAE,MAAM,EAAE,WAAW,EAAE,CAAC,CAAC;AACpD,QAAA,QACEF,gCAAC,CAAAC,WAAK,CAAC,GAAG,cACP,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,QAAQ,MACvBD,gCAAA,CAACC,WAAK,CAAC,IAAI,EACT,EAAA,QAAA,EAAAD,gCAAA,CAACG,eAAQ,EAAG,EAAA,CAAA,EAAA,EADG,iBAAiB,GAAG,QAAQ,CAEhC,CACd,CAAC,EALY,EAAA,cAAc,GAAG,QAAQ,CAM7B,EACZ;AACJ,KAAC,CAAC,CAAC;AACL,CAAC;AAED,SAAS,WAAW,CAAQ,EAC1B,OAAO,EACP,IAAI,GAIL,EAAA;IACC,QACEH,iCAACC,WAAK,CAAC,aAAa,EAAC,EAAA,OAAO,EAAE,OAAO,EACnC,QAAA,EAAAG,iCAAA,CAACC,SAAI,EAAC,EAAA,GAAG,EAAE,CAAC,EAAE,KAAK,EAAC,QAAQ,EAAA,QAAA,EAAA,CACzB,IAAI,EAAE,SAAS,EACf,IAAI,CAAC,cAAc,IAClBL,iCAACM,WAAK,EAAA,EAAC,OAAO,EAAC,SAAS,EAAA,QAAA,EAAE,IAAI,EAAE,KAAK,EAAS,CAAA,IAC5C,IAAI,CAAA,EAAA,CACH,EACa,CAAA,EACtB;AACJ,CAAC;AAED,MAAM,IAAI,GAAGC,gBAAU,CACrB,CAAC,KAAK,EAAE,UAAU,KAAI;IACpB,MAAM,EAAE,IAAI,GAAG,EAAE,EAAE,UAAU,EAAE,UAAU,EAAE,GAAG,KAAK,CAAC;IACpD,QACEP,gCACG,CAAAQ,qCAAA,EAAA,EAAA,QAAA,EAAA,IAAI,EAAE,GAAG,CAAC,CAAC,GAAG,EAAEC,OAAK,KAAI;AACxB,YAAA,MAAM,UAAU,GAAG,GAAG,CAAC,aAAa,EAAE,CAAC;YACvC,MAAM,KAAK,GAAG,GAAG,CAAC,eAAe,EAAE,IAAI,EAAE,CAAC;AAC1C,YAAA,MAAM,mBAAmB,GAAG,GAAG,CAAC,KAAK,KAAK,CAAC,IAAI,GAAG,CAAC,aAAa,EAAE,CAAC;YACnE,MAAM,SAAS,GAAGA,OAAK,KAAK,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC;YAC5C,MAAM,MAAM,GAAG,GAAG,CAAC,EAAE,GAAG,GAAG,GAAGA,OAAK,CAAC;YACpC,OAAO,mBAAmB,IACxBT,gCAAC,CAAA,WAAW,IAEV,OAAO,EAAE,KAAK,CAAC,MAAM,EACrB,IAAI,EAAE,GAAG,CAAC,QAAgC,IAFrC,MAAM,CAGX,KAEFA,gCAAA,CAACC,WAAK,CAAC,GAAG,IAER,SAAS,EAAES,SAAI,CACbC,wBAAM,CAAC,KAAK,CAAC,EACb,UAAU,GAAGA,wBAAM,CAAC,WAAW,CAAC,GAAG,EAAE,EACrC,UAAU,EAAE,GAAG,CAChB,EAAA,YAAA,EACW,UAAU,IAAI,UAAU,EACpC,GAAG,EAAE,SAAS,GAAG,UAAU,GAAG,SAAS,EACvC,OAAO,EAAE,MAAM,UAAU,GAAG,GAAG,CAAC,QAAQ,CAAC,YAExC,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,KAAI;AAClB,oBAAA,MAAM,SAAS,GAAG,IAAI,CAAC,MAAM,CAAC,SAG7B,CAAC;oBACF,QACEX,iCAACC,WAAK,CAAC,IAAI,EAET,EAAA,SAAS,EAAES,SAAI,CAACC,wBAAM,CAAC,MAAM,CAAC,EAAE,SAAS,CAAC,UAAU,EAAE,IAAI,CAAC,EAC3D,KAAK,EAAE,SAAS,CAAC,MAAM,EAAE,IAAI,YAE5BT,gBAAU,CAAC,SAAS,CAAC,IAAI,EAAE,IAAI,CAAC,UAAU,EAAE,CAAC,EAAA,EAJzC,IAAI,CAAC,EAAE,CAKD,EACb;AACJ,iBAAC,CAAC,EAAA,EAxBG,MAAM,CAyBD,CACb,CAAC;SACH,CAAC,EACD,CAAA,EACH;AACJ,CAAC,CACF,CAAC;AAEF,MAAM,qBAAqB,GAAG,OAC5BF,gCAAA,CAACY,qBAAU,EAAC,EAAA,IAAI,EAAEZ,gCAAC,CAAAa,wBAAS,KAAG,EAAE,OAAO,EAAC,SAAS,EAAA,CAAG,CACtD,CAAC;AAEI,SAAU,OAAO,CAAC,EACtB,UAAU,EACV,UAAU,GAAG,EAAE,GACO,EAAA;AACtB,IAAA,MAAM,EACJ,UAAU,SACVC,OAAK,EACL,IAAI,EACJ,SAAS,EACT,YAAY,EACZ,eAAe,GAAG,CAAC,GACpB,GAAGC,yBAAY,EAAE,CAAC;AACnB,IAAA,MAAM,YAAY,GAAGD,OAAK,EAAE,eAAe,EAAE,CAAC;IAC9C,MAAM,EAAE,IAAI,GAAG,EAAE,EAAE,GAAGA,OAAK,EAAE,WAAW,EAAE,CAAC;AAE3C,IAAA,MAAM,UAAU,GAAGE,YAAM,CAA6B,IAAI,CAAC,CAAC;AAC5D,IAAA,MAAM,WAAW,GAAGA,YAAM,CAA8B,IAAI,CAAC,CAAC;AAE9D,IAAA,MAAM,cAAc,GAAGC,iBAAW,CAChC,CAAC,OAAoC,KAAI;AACvC,QAAA,MAAM,MAAM,GAAG,OAAO,CAAC,CAAC,CAAC,CAAC;AAC1B,QAAA,IAAI,MAAM,CAAC,cAAc,IAAI,CAAC,SAAS,EAAE;AACvC,YAAA,YAAY,EAAE,CAAC;SAChB;AACH,KAAC,EACD,CAAC,YAAY,EAAE,SAAS,CAAC,CAC1B,CAAC;IAEFC,eAAS,CAAC,MAAK;QACb,IAAI,IAAI,KAAK,QAAQ;YAAE,OAAO;AAE9B,QAAA,IAAI,WAAW,CAAC,OAAO,EAAE;AACvB,YAAA,WAAW,CAAC,OAAO,CAAC,UAAU,EAAE,CAAC;SAClC;AAED,QAAA,WAAW,CAAC,OAAO,GAAG,IAAI,oBAAoB,CAAC,cAAc,EAAE;AAC7D,YAAA,SAAS,EAAE,GAAG;AACf,SAAA,CAAC,CAAC;AACH,QAAA,MAAM,OAAO,GAAG,UAAU,CAAC,OAAO,CAAC;QACnC,IAAI,OAAO,EAAE;AACX,YAAA,WAAW,CAAC,OAAO,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;SACtC;AAED,QAAA,OAAO,MAAK;AACV,YAAA,IAAI,WAAW,CAAC,OAAO,IAAI,OAAO,EAAE;AAClC,gBAAA,WAAW,CAAC,OAAO,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC;AACvC,gBAAA,WAAW,CAAC,OAAO,CAAC,UAAU,EAAE,CAAC;aAClC;AACH,SAAC,CAAC;KACH,EAAE,CAAC,IAAI,EAAE,IAAI,CAAC,MAAM,EAAE,cAAc,CAAC,CAAC,CAAC;IAExC,MAAM,oBAAoB,GAAGJ,OAAK,CAAC,qBAAqB,EAAE,CAAC,MAAM,CAAC;AAElE,IAAA,QACEV,iCAAA,CAACH,WAAK,EAAA,EAAC,SAAS,EAAE,UAAU,CAAC,KAAK,EAAA,QAAA,EAAA,CAChCD,gCAAC,CAAA,OAAO,EAAC,EAAA,YAAY,EAAE,YAAY,EAAE,SAAS,EAAE,UAAU,CAAC,MAAM,EAAI,CAAA,EACrEA,gCAAC,CAAAC,WAAK,CAAC,IAAI,EAAC,EAAA,SAAS,EAAE,UAAU,CAAC,IAAI,EACnC,QAAA,EAAA,IAAI,EAAE,MAAM,IAAI,SAAS,IACxBG,iCACE,CAAAI,qCAAA,EAAA,EAAA,QAAA,EAAA,CAAAR,gCAAA,CAAC,IAAI,EAAA,EACH,IAAI,EAAE,IAAI,EACV,GAAG,EAAE,UAAU,EACf,UAAU,EAAE,UAAU,EACtB,UAAU,EAAE;gCACV,GAAG,EAAE,UAAU,CAAC,GAAG;6BACpB,EACD,CAAA,EACD,SAAS,IACRA,gCAAC,CAAA,UAAU,EACT,EAAA,QAAQ,EAAE,eAAe,EACzB,WAAW,EAAE,oBAAoB,EAAA,CACjC,IACA,IAAI,CACP,EAAA,CAAA,KAEHA,gCAAA,CAACC,WAAK,CAAC,GAAG,EAAA,EAAA,QAAA,EACRD,iCAACC,WAAK,CAAC,IAAI,EAAA,EAAC,OAAO,EAAE,oBAAoB,EACtC,QAAA,EAAA,UAAU,IAAID,gCAAA,CAAC,qBAAqB,EAAA,EAAA,CAAG,EAC7B,CAAA,EAAA,CACH,CACb,EAAA,CACU,CACP,EAAA,CAAA,EACR;AACJ;;;;"}
|
|
1
|
+
{"version":3,"file":"content.cjs","sources":["../../../../../v1/components/data-table/components/content.tsx"],"sourcesContent":["import { Table } from \"../../table\";\nimport type { Row, HeaderGroup } from \"@tanstack/react-table\";\nimport { EmptyState } from \"../../empty-state\";\nimport { TableIcon } from \"@radix-ui/react-icons\";\nimport { flexRender } from \"@tanstack/react-table\";\nimport { useDataTable } from \"../hooks/useDataTable\";\nimport {\n DataTableColumnDef,\n DataTableContentProps,\n GroupedData,\n} from \"../data-table.types\";\nimport Skeleton from \"react-loading-skeleton\";\nimport {\n ForwardedRef,\n forwardRef,\n useCallback,\n useEffect,\n useRef,\n} from \"react\";\nimport { Badge } from \"../../badge\";\nimport { Flex } from \"../../flex\";\nimport styles from \"../data-table.module.css\";\nimport clsx from \"clsx\";\n\nfunction Headers<TData>({\n headerGroups = [],\n className = \"\",\n}: {\n headerGroups: HeaderGroup<TData>[];\n className?: string;\n}) {\n return (\n <Table.Header className={className}>\n {headerGroups?.map((headerGroup) => (\n <Table.Row key={headerGroup?.id}>\n {headerGroup?.headers?.map((header) => {\n const columnDef = header.column.columnDef as DataTableColumnDef<\n TData,\n unknown\n >;\n return (\n <Table.Head\n key={header.id}\n colSpan={header.colSpan}\n className={columnDef.classNames?.header}\n style={columnDef.styles?.header}\n >\n {flexRender(columnDef.header, header.getContext())}\n </Table.Head>\n );\n })}\n </Table.Row>\n ))}\n </Table.Header>\n );\n}\n\ninterface RowsProps<TData> {\n rows: Row<TData>[];\n lastRowRef?: ForwardedRef<HTMLTableRowElement>;\n onRowClick?: (row: TData) => void;\n classNames?: {\n row?: string;\n };\n}\n\nfunction LoaderRows({\n rowCount,\n columnCount,\n}: {\n rowCount: number;\n columnCount: number;\n}) {\n const rows = Array.from({ length: rowCount });\n return rows.map((_, rowIndex) => {\n const columns = Array.from({ length: columnCount });\n return (\n <Table.Row key={\"loading-row-\" + rowIndex}>\n {columns.map((_, colIndex) => (\n <Table.Cell key={\"loading-column-\" + colIndex}>\n <Skeleton />\n </Table.Cell>\n ))}\n </Table.Row>\n );\n });\n}\n\nfunction GroupHeader<TData>({\n colSpan,\n data,\n}: {\n colSpan: number;\n data: GroupedData<TData>;\n}) {\n return (\n <Table.SectionHeader colSpan={colSpan}>\n <Flex gap={3} align=\"center\">\n {data?.label}\n {data.showGroupCount ? (\n <Badge variant=\"neutral\">{data?.count}</Badge>\n ) : null}\n </Flex>\n </Table.SectionHeader>\n );\n}\n\nconst Rows = forwardRef<HTMLTableRowElement, RowsProps<unknown>>(\n (props, lastRowRef) => {\n const { rows = [], onRowClick, classNames } = props;\n return (\n <>\n {rows?.map((row, index) => {\n const isSelected = row.getIsSelected();\n const cells = row.getVisibleCells() || [];\n const isSectionHeadingRow = row.depth === 0 && row.getIsExpanded();\n const isLastRow = index === rows.length - 1;\n const rowKey = row.id + \"-\" + index;\n return isSectionHeadingRow ? (\n <GroupHeader\n key={rowKey}\n colSpan={cells.length}\n data={row.original as GroupedData<unknown>}\n />\n ) : (\n <Table.Row\n key={rowKey}\n className={clsx(\n styles[\"row\"],\n onRowClick ? styles[\"clickable\"] : \"\",\n classNames?.row\n )}\n data-state={isSelected && \"selected\"}\n ref={isLastRow ? lastRowRef : undefined}\n onClick={() => onRowClick?.(row.original)}\n >\n {cells.map((cell) => {\n const columnDef = cell.column.columnDef as DataTableColumnDef<\n unknown,\n unknown\n >;\n return (\n <Table.Cell\n key={cell.id}\n className={clsx(styles[\"cell\"], columnDef.classNames?.cell)}\n style={columnDef.styles?.cell}\n >\n {flexRender(columnDef.cell, cell.getContext())}\n </Table.Cell>\n );\n })}\n </Table.Row>\n );\n })}\n </>\n );\n }\n);\n\nconst DefaultEmptyComponent = () => (\n <EmptyState icon={<TableIcon />} heading=\"No Data\" />\n);\n\nexport function Content({\n emptyState,\n classNames = {},\n}: DataTableContentProps) {\n const {\n onRowClick,\n table,\n mode,\n isLoading,\n loadMoreData,\n loadingRowCount = 3,\n } = useDataTable();\n const headerGroups = table?.getHeaderGroups();\n const { rows = [] } = table?.getRowModel();\n\n const lastRowRef = useRef<HTMLTableRowElement | null>(null);\n const observerRef = useRef<IntersectionObserver | null>(null);\n\n const handleObserver = useCallback(\n (entries: IntersectionObserverEntry[]) => {\n const target = entries[0];\n if (target.isIntersecting && !isLoading) {\n loadMoreData();\n }\n },\n [loadMoreData, isLoading]\n );\n\n useEffect(() => {\n if (mode !== \"server\") return;\n\n if (observerRef.current) {\n observerRef.current.disconnect();\n }\n\n observerRef.current = new IntersectionObserver(handleObserver, {\n threshold: 0.1,\n });\n const lastRow = lastRowRef.current;\n if (lastRow) {\n observerRef.current.observe(lastRow);\n }\n\n return () => {\n if (observerRef.current && lastRow) {\n observerRef.current.unobserve(lastRow);\n observerRef.current.disconnect();\n }\n };\n }, [mode, rows.length, handleObserver]);\n\n const visibleColumnsLength = table.getVisibleLeafColumns().length;\n\n return (\n <Table className={classNames.table}>\n <Headers headerGroups={headerGroups} className={classNames.header} />\n <Table.Body className={classNames.body}>\n {rows?.length || isLoading ? (\n <>\n <Rows\n rows={rows}\n ref={lastRowRef}\n onRowClick={onRowClick}\n classNames={{\n row: classNames.row,\n }}\n />\n {isLoading ? (\n <LoaderRows\n rowCount={loadingRowCount}\n columnCount={visibleColumnsLength}\n />\n ) : null}\n </>\n ) : (\n <Table.Row>\n <Table.Cell colSpan={visibleColumnsLength}>\n {emptyState || <DefaultEmptyComponent />}\n </Table.Cell>\n </Table.Row>\n )}\n </Table.Body>\n </Table>\n );\n}\n"],"names":["_jsx","Table","flexRender","Skeleton","_jsxs","Flex","Badge","forwardRef","_Fragment","index","clsx","styles","EmptyState","TableIcon","table","useDataTable","useRef","useCallback","useEffect"],"mappings":"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"}
|
|
@@ -25,7 +25,7 @@ function LoaderRows({ rowCount, columnCount, }) {
|
|
|
25
25
|
});
|
|
26
26
|
}
|
|
27
27
|
function GroupHeader({ colSpan, data, }) {
|
|
28
|
-
return (jsxRuntimeExports.jsx(Table.SectionHeader, { colSpan: colSpan, children: jsxRuntimeExports.jsxs(Flex, { gap: 3, align: "center", children: [data?.
|
|
28
|
+
return (jsxRuntimeExports.jsx(Table.SectionHeader, { colSpan: colSpan, children: jsxRuntimeExports.jsxs(Flex, { gap: 3, align: "center", children: [data?.label, data.showGroupCount ? (jsxRuntimeExports.jsx(Badge, { variant: "neutral", children: data?.count })) : null] }) }));
|
|
29
29
|
}
|
|
30
30
|
const Rows = forwardRef((props, lastRowRef) => {
|
|
31
31
|
const { rows = [], onRowClick, classNames } = props;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"content.js","sources":["../../../../../v1/components/data-table/components/content.tsx"],"sourcesContent":["import { Table } from \"../../table\";\nimport type { Row, HeaderGroup } from \"@tanstack/react-table\";\nimport { EmptyState } from \"../../empty-state\";\nimport { TableIcon } from \"@radix-ui/react-icons\";\nimport { flexRender } from \"@tanstack/react-table\";\nimport { useDataTable } from \"../hooks/useDataTable\";\nimport {\n DataTableColumnDef,\n DataTableContentProps,\n GroupedData,\n} from \"../data-table.types\";\nimport Skeleton from \"react-loading-skeleton\";\nimport {\n ForwardedRef,\n forwardRef,\n useCallback,\n useEffect,\n useRef,\n} from \"react\";\nimport { Badge } from \"../../badge\";\nimport { Flex } from \"../../flex\";\nimport styles from \"../data-table.module.css\";\nimport clsx from \"clsx\";\n\nfunction Headers<TData>({\n headerGroups = [],\n className = \"\",\n}: {\n headerGroups: HeaderGroup<TData>[];\n className?: string;\n}) {\n return (\n <Table.Header className={className}>\n {headerGroups?.map((headerGroup) => (\n <Table.Row key={headerGroup?.id}>\n {headerGroup?.headers?.map((header) => {\n const columnDef = header.column.columnDef as DataTableColumnDef<\n TData,\n unknown\n >;\n return (\n <Table.Head\n key={header.id}\n colSpan={header.colSpan}\n className={columnDef.classNames?.header}\n style={columnDef.styles?.header}\n >\n {flexRender(columnDef.header, header.getContext())}\n </Table.Head>\n );\n })}\n </Table.Row>\n ))}\n </Table.Header>\n );\n}\n\ninterface RowsProps<TData> {\n rows: Row<TData>[];\n lastRowRef?: ForwardedRef<HTMLTableRowElement>;\n onRowClick?: (row: TData) => void;\n classNames?: {\n row?: string;\n };\n}\n\nfunction LoaderRows({\n rowCount,\n columnCount,\n}: {\n rowCount: number;\n columnCount: number;\n}) {\n const rows = Array.from({ length: rowCount });\n return rows.map((_, rowIndex) => {\n const columns = Array.from({ length: columnCount });\n return (\n <Table.Row key={\"loading-row-\" + rowIndex}>\n {columns.map((_, colIndex) => (\n <Table.Cell key={\"loading-column-\" + colIndex}>\n <Skeleton />\n </Table.Cell>\n ))}\n </Table.Row>\n );\n });\n}\n\nfunction GroupHeader<TData>({\n colSpan,\n data,\n}: {\n colSpan: number;\n data: GroupedData<TData>;\n}) {\n return (\n <Table.SectionHeader colSpan={colSpan}>\n <Flex gap={3} align=\"center\">\n {data?.group_key}\n {data.showGroupCount ? (\n <Badge variant=\"neutral\">{data?.count}</Badge>\n ) : null}\n </Flex>\n </Table.SectionHeader>\n );\n}\n\nconst Rows = forwardRef<HTMLTableRowElement, RowsProps<unknown>>(\n (props, lastRowRef) => {\n const { rows = [], onRowClick, classNames } = props;\n return (\n <>\n {rows?.map((row, index) => {\n const isSelected = row.getIsSelected();\n const cells = row.getVisibleCells() || [];\n const isSectionHeadingRow = row.depth === 0 && row.getIsExpanded();\n const isLastRow = index === rows.length - 1;\n const rowKey = row.id + \"-\" + index;\n return isSectionHeadingRow ? (\n <GroupHeader\n key={rowKey}\n colSpan={cells.length}\n data={row.original as GroupedData<unknown>}\n />\n ) : (\n <Table.Row\n key={rowKey}\n className={clsx(\n styles[\"row\"],\n onRowClick ? styles[\"clickable\"] : \"\",\n classNames?.row\n )}\n data-state={isSelected && \"selected\"}\n ref={isLastRow ? lastRowRef : undefined}\n onClick={() => onRowClick?.(row.original)}\n >\n {cells.map((cell) => {\n const columnDef = cell.column.columnDef as DataTableColumnDef<\n unknown,\n unknown\n >;\n return (\n <Table.Cell\n key={cell.id}\n className={clsx(styles[\"cell\"], columnDef.classNames?.cell)}\n style={columnDef.styles?.cell}\n >\n {flexRender(columnDef.cell, cell.getContext())}\n </Table.Cell>\n );\n })}\n </Table.Row>\n );\n })}\n </>\n );\n }\n);\n\nconst DefaultEmptyComponent = () => (\n <EmptyState icon={<TableIcon />} heading=\"No Data\" />\n);\n\nexport function Content({\n emptyState,\n classNames = {},\n}: DataTableContentProps) {\n const {\n onRowClick,\n table,\n mode,\n isLoading,\n loadMoreData,\n loadingRowCount = 3,\n } = useDataTable();\n const headerGroups = table?.getHeaderGroups();\n const { rows = [] } = table?.getRowModel();\n\n const lastRowRef = useRef<HTMLTableRowElement | null>(null);\n const observerRef = useRef<IntersectionObserver | null>(null);\n\n const handleObserver = useCallback(\n (entries: IntersectionObserverEntry[]) => {\n const target = entries[0];\n if (target.isIntersecting && !isLoading) {\n loadMoreData();\n }\n },\n [loadMoreData, isLoading]\n );\n\n useEffect(() => {\n if (mode !== \"server\") return;\n\n if (observerRef.current) {\n observerRef.current.disconnect();\n }\n\n observerRef.current = new IntersectionObserver(handleObserver, {\n threshold: 0.1,\n });\n const lastRow = lastRowRef.current;\n if (lastRow) {\n observerRef.current.observe(lastRow);\n }\n\n return () => {\n if (observerRef.current && lastRow) {\n observerRef.current.unobserve(lastRow);\n observerRef.current.disconnect();\n }\n };\n }, [mode, rows.length, handleObserver]);\n\n const visibleColumnsLength = table.getVisibleLeafColumns().length;\n\n return (\n <Table className={classNames.table}>\n <Headers headerGroups={headerGroups} className={classNames.header} />\n <Table.Body className={classNames.body}>\n {rows?.length || isLoading ? (\n <>\n <Rows\n rows={rows}\n ref={lastRowRef}\n onRowClick={onRowClick}\n classNames={{\n row: classNames.row,\n }}\n />\n {isLoading ? (\n <LoaderRows\n rowCount={loadingRowCount}\n columnCount={visibleColumnsLength}\n />\n ) : null}\n </>\n ) : (\n <Table.Row>\n <Table.Cell colSpan={visibleColumnsLength}>\n {emptyState || <DefaultEmptyComponent />}\n </Table.Cell>\n </Table.Row>\n )}\n </Table.Body>\n </Table>\n );\n}\n"],"names":["_jsx","_jsxs","_Fragment"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"content.js","sources":["../../../../../v1/components/data-table/components/content.tsx"],"sourcesContent":["import { Table } from \"../../table\";\nimport type { Row, HeaderGroup } from \"@tanstack/react-table\";\nimport { EmptyState } from \"../../empty-state\";\nimport { TableIcon } from \"@radix-ui/react-icons\";\nimport { flexRender } from \"@tanstack/react-table\";\nimport { useDataTable } from \"../hooks/useDataTable\";\nimport {\n DataTableColumnDef,\n DataTableContentProps,\n GroupedData,\n} from \"../data-table.types\";\nimport Skeleton from \"react-loading-skeleton\";\nimport {\n ForwardedRef,\n forwardRef,\n useCallback,\n useEffect,\n useRef,\n} from \"react\";\nimport { Badge } from \"../../badge\";\nimport { Flex } from \"../../flex\";\nimport styles from \"../data-table.module.css\";\nimport clsx from \"clsx\";\n\nfunction Headers<TData>({\n headerGroups = [],\n className = \"\",\n}: {\n headerGroups: HeaderGroup<TData>[];\n className?: string;\n}) {\n return (\n <Table.Header className={className}>\n {headerGroups?.map((headerGroup) => (\n <Table.Row key={headerGroup?.id}>\n {headerGroup?.headers?.map((header) => {\n const columnDef = header.column.columnDef as DataTableColumnDef<\n TData,\n unknown\n >;\n return (\n <Table.Head\n key={header.id}\n colSpan={header.colSpan}\n className={columnDef.classNames?.header}\n style={columnDef.styles?.header}\n >\n {flexRender(columnDef.header, header.getContext())}\n </Table.Head>\n );\n })}\n </Table.Row>\n ))}\n </Table.Header>\n );\n}\n\ninterface RowsProps<TData> {\n rows: Row<TData>[];\n lastRowRef?: ForwardedRef<HTMLTableRowElement>;\n onRowClick?: (row: TData) => void;\n classNames?: {\n row?: string;\n };\n}\n\nfunction LoaderRows({\n rowCount,\n columnCount,\n}: {\n rowCount: number;\n columnCount: number;\n}) {\n const rows = Array.from({ length: rowCount });\n return rows.map((_, rowIndex) => {\n const columns = Array.from({ length: columnCount });\n return (\n <Table.Row key={\"loading-row-\" + rowIndex}>\n {columns.map((_, colIndex) => (\n <Table.Cell key={\"loading-column-\" + colIndex}>\n <Skeleton />\n </Table.Cell>\n ))}\n </Table.Row>\n );\n });\n}\n\nfunction GroupHeader<TData>({\n colSpan,\n data,\n}: {\n colSpan: number;\n data: GroupedData<TData>;\n}) {\n return (\n <Table.SectionHeader colSpan={colSpan}>\n <Flex gap={3} align=\"center\">\n {data?.label}\n {data.showGroupCount ? (\n <Badge variant=\"neutral\">{data?.count}</Badge>\n ) : null}\n </Flex>\n </Table.SectionHeader>\n );\n}\n\nconst Rows = forwardRef<HTMLTableRowElement, RowsProps<unknown>>(\n (props, lastRowRef) => {\n const { rows = [], onRowClick, classNames } = props;\n return (\n <>\n {rows?.map((row, index) => {\n const isSelected = row.getIsSelected();\n const cells = row.getVisibleCells() || [];\n const isSectionHeadingRow = row.depth === 0 && row.getIsExpanded();\n const isLastRow = index === rows.length - 1;\n const rowKey = row.id + \"-\" + index;\n return isSectionHeadingRow ? (\n <GroupHeader\n key={rowKey}\n colSpan={cells.length}\n data={row.original as GroupedData<unknown>}\n />\n ) : (\n <Table.Row\n key={rowKey}\n className={clsx(\n styles[\"row\"],\n onRowClick ? styles[\"clickable\"] : \"\",\n classNames?.row\n )}\n data-state={isSelected && \"selected\"}\n ref={isLastRow ? lastRowRef : undefined}\n onClick={() => onRowClick?.(row.original)}\n >\n {cells.map((cell) => {\n const columnDef = cell.column.columnDef as DataTableColumnDef<\n unknown,\n unknown\n >;\n return (\n <Table.Cell\n key={cell.id}\n className={clsx(styles[\"cell\"], columnDef.classNames?.cell)}\n style={columnDef.styles?.cell}\n >\n {flexRender(columnDef.cell, cell.getContext())}\n </Table.Cell>\n );\n })}\n </Table.Row>\n );\n })}\n </>\n );\n }\n);\n\nconst DefaultEmptyComponent = () => (\n <EmptyState icon={<TableIcon />} heading=\"No Data\" />\n);\n\nexport function Content({\n emptyState,\n classNames = {},\n}: DataTableContentProps) {\n const {\n onRowClick,\n table,\n mode,\n isLoading,\n loadMoreData,\n loadingRowCount = 3,\n } = useDataTable();\n const headerGroups = table?.getHeaderGroups();\n const { rows = [] } = table?.getRowModel();\n\n const lastRowRef = useRef<HTMLTableRowElement | null>(null);\n const observerRef = useRef<IntersectionObserver | null>(null);\n\n const handleObserver = useCallback(\n (entries: IntersectionObserverEntry[]) => {\n const target = entries[0];\n if (target.isIntersecting && !isLoading) {\n loadMoreData();\n }\n },\n [loadMoreData, isLoading]\n );\n\n useEffect(() => {\n if (mode !== \"server\") return;\n\n if (observerRef.current) {\n observerRef.current.disconnect();\n }\n\n observerRef.current = new IntersectionObserver(handleObserver, {\n threshold: 0.1,\n });\n const lastRow = lastRowRef.current;\n if (lastRow) {\n observerRef.current.observe(lastRow);\n }\n\n return () => {\n if (observerRef.current && lastRow) {\n observerRef.current.unobserve(lastRow);\n observerRef.current.disconnect();\n }\n };\n }, [mode, rows.length, handleObserver]);\n\n const visibleColumnsLength = table.getVisibleLeafColumns().length;\n\n return (\n <Table className={classNames.table}>\n <Headers headerGroups={headerGroups} className={classNames.header} />\n <Table.Body className={classNames.body}>\n {rows?.length || isLoading ? (\n <>\n <Rows\n rows={rows}\n ref={lastRowRef}\n onRowClick={onRowClick}\n classNames={{\n row: classNames.row,\n }}\n />\n {isLoading ? (\n <LoaderRows\n rowCount={loadingRowCount}\n columnCount={visibleColumnsLength}\n />\n ) : null}\n </>\n ) : (\n <Table.Row>\n <Table.Cell colSpan={visibleColumnsLength}>\n {emptyState || <DefaultEmptyComponent />}\n </Table.Cell>\n </Table.Row>\n )}\n </Table.Body>\n </Table>\n );\n}\n"],"names":["_jsx","_jsxs","_Fragment"],"mappings":"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"}
|
|
@@ -32,19 +32,26 @@ function DisplaySettings() {
|
|
|
32
32
|
};
|
|
33
33
|
});
|
|
34
34
|
}
|
|
35
|
-
function onGroupChange(columnId
|
|
35
|
+
function onGroupChange(columnId) {
|
|
36
36
|
updateTableQuery((query) => {
|
|
37
37
|
return {
|
|
38
38
|
...query,
|
|
39
39
|
group_by: [columnId],
|
|
40
|
-
|
|
40
|
+
};
|
|
41
|
+
});
|
|
42
|
+
}
|
|
43
|
+
function onGroupRemove() {
|
|
44
|
+
updateTableQuery((query) => {
|
|
45
|
+
return {
|
|
46
|
+
...query,
|
|
47
|
+
group_by: [],
|
|
41
48
|
};
|
|
42
49
|
});
|
|
43
50
|
}
|
|
44
51
|
function onReset() {
|
|
45
52
|
onDisplaySettingsReset();
|
|
46
53
|
}
|
|
47
|
-
return (jsxRuntime.jsxRuntimeExports.jsxs(popover.Popover, { children: [jsxRuntime.jsxRuntimeExports.jsx(popover.Popover.Trigger, { asChild: true, children: jsxRuntime.jsxRuntimeExports.jsx(button.Button, { variant: "outline", color: "neutral", size: "small", leadingIcon: jsxRuntime.jsxRuntimeExports.jsx(reactIcons_esm.MixerHorizontalIcon, {}), children: "Display" }) }), jsxRuntime.jsxRuntimeExports.jsx(popover.Popover.Content, { className: dataTable_module.default["display-popover-content"], align: "end", children: jsxRuntime.jsxRuntimeExports.jsxs(flex.Flex, { direction: "column", children: [jsxRuntime.jsxRuntimeExports.jsxs(flex.Flex, { direction: "column", className: dataTable_module.default["display-popover-properties-container"], gap: 5, children: [jsxRuntime.jsxRuntimeExports.jsx(ordering.Ordering, { columnList: sortableColumns, onChange: onSortChange, value: tableQuery?.sort?.[0] || defaultSort }), jsxRuntime.jsxRuntimeExports.jsx(grouping.Grouping, { columns: columns, onChange: onGroupChange, value: tableQuery?.group_by?.[0] || dataTable_types.defaultGroupOption.id })] }), jsxRuntime.jsxRuntimeExports.jsx(flex.Flex, { className: dataTable_module.default["display-popover-properties-container"], children: jsxRuntime.jsxRuntimeExports.jsx(displayProperties.DisplayProperties, { columns: columns }) }), jsxRuntime.jsxRuntimeExports.jsx(flex.Flex, { justify: "end", className: dataTable_module.default["display-popover-reset-container"], children: jsxRuntime.jsxRuntimeExports.jsx(button.Button, { variant: "text", onClick: onReset, children: "Reset to default" }) })] }) })] }));
|
|
54
|
+
return (jsxRuntime.jsxRuntimeExports.jsxs(popover.Popover, { children: [jsxRuntime.jsxRuntimeExports.jsx(popover.Popover.Trigger, { asChild: true, children: jsxRuntime.jsxRuntimeExports.jsx(button.Button, { variant: "outline", color: "neutral", size: "small", leadingIcon: jsxRuntime.jsxRuntimeExports.jsx(reactIcons_esm.MixerHorizontalIcon, {}), children: "Display" }) }), jsxRuntime.jsxRuntimeExports.jsx(popover.Popover.Content, { className: dataTable_module.default["display-popover-content"], align: "end", children: jsxRuntime.jsxRuntimeExports.jsxs(flex.Flex, { direction: "column", children: [jsxRuntime.jsxRuntimeExports.jsxs(flex.Flex, { direction: "column", className: dataTable_module.default["display-popover-properties-container"], gap: 5, children: [jsxRuntime.jsxRuntimeExports.jsx(ordering.Ordering, { columnList: sortableColumns, onChange: onSortChange, value: tableQuery?.sort?.[0] || defaultSort }), jsxRuntime.jsxRuntimeExports.jsx(grouping.Grouping, { columns: columns, onRemove: onGroupRemove, onChange: onGroupChange, value: tableQuery?.group_by?.[0] || dataTable_types.defaultGroupOption.id })] }), jsxRuntime.jsxRuntimeExports.jsx(flex.Flex, { className: dataTable_module.default["display-popover-properties-container"], children: jsxRuntime.jsxRuntimeExports.jsx(displayProperties.DisplayProperties, { columns: columns }) }), jsxRuntime.jsxRuntimeExports.jsx(flex.Flex, { justify: "end", className: dataTable_module.default["display-popover-reset-container"], children: jsxRuntime.jsxRuntimeExports.jsx(button.Button, { variant: "text", onClick: onReset, children: "Reset to default" }) })] }) })] }));
|
|
48
55
|
}
|
|
49
56
|
|
|
50
57
|
exports.DisplaySettings = DisplaySettings;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"display-settings.cjs","sources":["../../../../../v1/components/data-table/components/display-settings.tsx"],"sourcesContent":["import { Flex } from \"../../flex\";\nimport styles from \"../data-table.module.css\";\nimport { Button } from \"../../button\";\nimport { Popover } from \"../../popover\";\nimport { MixerHorizontalIcon } from \"@radix-ui/react-icons\";\nimport { useDataTable } from \"../hooks/useDataTable\";\nimport {\n DataTableColumn,\n SortOrdersValues,\n defaultGroupOption,\n} from \"../data-table.types\";\nimport { Ordering } from \"./ordering\";\nimport { Grouping } from \"./grouping\";\nimport { DisplayProperties } from \"./display-properties\";\n\nexport function DisplaySettings<TData, TValue>() {\n const {\n table,\n updateTableQuery,\n tableQuery,\n defaultSort,\n onDisplaySettingsReset,\n } = useDataTable();\n const columns = table?.getAllColumns() as DataTableColumn<TData, TValue>[];\n\n const sortableColumns = columns\n ?.filter((col) => col.columnDef.enableSorting)\n ?.map((column) => {\n const id = column.id;\n return {\n label: column.columnDef.header || id,\n id: id,\n };\n });\n\n function onSortChange(columnId: string, order: SortOrdersValues) {\n updateTableQuery((query) => {\n return {\n ...query,\n sort: [{ name: columnId, order }],\n };\n });\n }\n\n function onGroupChange(columnId: string
|
|
1
|
+
{"version":3,"file":"display-settings.cjs","sources":["../../../../../v1/components/data-table/components/display-settings.tsx"],"sourcesContent":["import { Flex } from \"../../flex\";\nimport styles from \"../data-table.module.css\";\nimport { Button } from \"../../button\";\nimport { Popover } from \"../../popover\";\nimport { MixerHorizontalIcon } from \"@radix-ui/react-icons\";\nimport { useDataTable } from \"../hooks/useDataTable\";\nimport {\n DataTableColumn,\n SortOrdersValues,\n defaultGroupOption,\n} from \"../data-table.types\";\nimport { Ordering } from \"./ordering\";\nimport { Grouping } from \"./grouping\";\nimport { DisplayProperties } from \"./display-properties\";\n\nexport function DisplaySettings<TData, TValue>() {\n const {\n table,\n updateTableQuery,\n tableQuery,\n defaultSort,\n onDisplaySettingsReset,\n } = useDataTable();\n const columns = table?.getAllColumns() as DataTableColumn<TData, TValue>[];\n\n const sortableColumns = columns\n ?.filter((col) => col.columnDef.enableSorting)\n ?.map((column) => {\n const id = column.id;\n return {\n label: column.columnDef.header || id,\n id: id,\n };\n });\n\n function onSortChange(columnId: string, order: SortOrdersValues) {\n updateTableQuery((query) => {\n return {\n ...query,\n sort: [{ name: columnId, order }],\n };\n });\n }\n\n function onGroupChange(columnId: string) {\n updateTableQuery((query) => {\n return {\n ...query,\n group_by: [columnId],\n };\n });\n }\n\n function onGroupRemove() {\n updateTableQuery((query) => {\n return {\n ...query,\n group_by: [],\n };\n });\n }\n\n function onReset() {\n onDisplaySettingsReset();\n }\n\n return (\n <Popover>\n <Popover.Trigger asChild>\n <Button\n variant={\"outline\"}\n color=\"neutral\"\n size={\"small\"}\n leadingIcon={<MixerHorizontalIcon />}\n >\n Display\n </Button>\n </Popover.Trigger>\n <Popover.Content\n className={styles[\"display-popover-content\"]}\n align=\"end\"\n >\n <Flex direction={\"column\"}>\n <Flex\n direction={\"column\"}\n className={styles[\"display-popover-properties-container\"]}\n gap={5}\n >\n <Ordering\n columnList={sortableColumns}\n onChange={onSortChange}\n value={tableQuery?.sort?.[0] || defaultSort}\n />\n <Grouping\n columns={columns}\n onRemove={onGroupRemove}\n onChange={onGroupChange}\n value={tableQuery?.group_by?.[0] || defaultGroupOption.id}\n />\n </Flex>\n <Flex className={styles[\"display-popover-properties-container\"]}>\n <DisplayProperties columns={columns} />\n </Flex>\n <Flex\n justify={\"end\"}\n className={styles[\"display-popover-reset-container\"]}\n >\n <Button variant={\"text\"} onClick={onReset}>\n Reset to default\n </Button>\n </Flex>\n </Flex>\n </Popover.Content>\n </Popover>\n );\n}\n"],"names":["useDataTable","_jsxs","Popover","_jsx","Button","MixerHorizontalIcon","styles","Flex","Ordering","Grouping","defaultGroupOption","DisplayProperties"],"mappings":";;;;;;;;;;;;;;SAegB,eAAe,GAAA;AAC7B,IAAA,MAAM,EACJ,KAAK,EACL,gBAAgB,EAChB,UAAU,EACV,WAAW,EACX,sBAAsB,GACvB,GAAGA,yBAAY,EAAE,CAAC;AACnB,IAAA,MAAM,OAAO,GAAG,KAAK,EAAE,aAAa,EAAsC,CAAC;IAE3E,MAAM,eAAe,GAAG,OAAO;AAC7B,UAAE,MAAM,CAAC,CAAC,GAAG,KAAK,GAAG,CAAC,SAAS,CAAC,aAAa,CAAC;AAC9C,UAAE,GAAG,CAAC,CAAC,MAAM,KAAI;AACf,QAAA,MAAM,EAAE,GAAG,MAAM,CAAC,EAAE,CAAC;QACrB,OAAO;AACL,YAAA,KAAK,EAAE,MAAM,CAAC,SAAS,CAAC,MAAM,IAAI,EAAE;AACpC,YAAA,EAAE,EAAE,EAAE;SACP,CAAC;AACJ,KAAC,CAAC,CAAC;AAEL,IAAA,SAAS,YAAY,CAAC,QAAgB,EAAE,KAAuB,EAAA;AAC7D,QAAA,gBAAgB,CAAC,CAAC,KAAK,KAAI;YACzB,OAAO;AACL,gBAAA,GAAG,KAAK;gBACR,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE,CAAC;aAClC,CAAC;AACJ,SAAC,CAAC,CAAC;KACJ;IAED,SAAS,aAAa,CAAC,QAAgB,EAAA;AACrC,QAAA,gBAAgB,CAAC,CAAC,KAAK,KAAI;YACzB,OAAO;AACL,gBAAA,GAAG,KAAK;gBACR,QAAQ,EAAE,CAAC,QAAQ,CAAC;aACrB,CAAC;AACJ,SAAC,CAAC,CAAC;KACJ;AAED,IAAA,SAAS,aAAa,GAAA;AACpB,QAAA,gBAAgB,CAAC,CAAC,KAAK,KAAI;YACzB,OAAO;AACL,gBAAA,GAAG,KAAK;AACR,gBAAA,QAAQ,EAAE,EAAE;aACb,CAAC;AACJ,SAAC,CAAC,CAAC;KACJ;AAED,IAAA,SAAS,OAAO,GAAA;AACd,QAAA,sBAAsB,EAAE,CAAC;KAC1B;AAED,IAAA,QACEC,iCAAC,CAAAC,eAAO,eACNC,gCAAC,CAAAD,eAAO,CAAC,OAAO,EAAA,EAAC,OAAO,EAAA,IAAA,EAAA,QAAA,EACtBC,iCAACC,aAAM,EAAA,EACL,OAAO,EAAE,SAAS,EAClB,KAAK,EAAC,SAAS,EACf,IAAI,EAAE,OAAO,EACb,WAAW,EAAED,iCAACE,kCAAmB,EAAA,EAAA,CAAG,wBAG7B,EACO,CAAA,EAClBF,iCAACD,eAAO,CAAC,OAAO,EACd,EAAA,SAAS,EAAEI,wBAAM,CAAC,yBAAyB,CAAC,EAC5C,KAAK,EAAC,KAAK,EAEX,QAAA,EAAAL,iCAAA,CAACM,SAAI,EAAC,EAAA,SAAS,EAAE,QAAQ,EAAA,QAAA,EAAA,CACvBN,kCAACM,SAAI,EAAA,EACH,SAAS,EAAE,QAAQ,EACnB,SAAS,EAAED,wBAAM,CAAC,sCAAsC,CAAC,EACzD,GAAG,EAAE,CAAC,aAENH,gCAAC,CAAAK,iBAAQ,IACP,UAAU,EAAE,eAAe,EAC3B,QAAQ,EAAE,YAAY,EACtB,KAAK,EAAE,UAAU,EAAE,IAAI,GAAG,CAAC,CAAC,IAAI,WAAW,GAC3C,EACFL,gCAAA,CAACM,iBAAQ,EACP,EAAA,OAAO,EAAE,OAAO,EAChB,QAAQ,EAAE,aAAa,EACvB,QAAQ,EAAE,aAAa,EACvB,KAAK,EAAE,UAAU,EAAE,QAAQ,GAAG,CAAC,CAAC,IAAIC,kCAAkB,CAAC,EAAE,EACzD,CAAA,CAAA,EAAA,CACG,EACPP,gCAAC,CAAAI,SAAI,IAAC,SAAS,EAAED,wBAAM,CAAC,sCAAsC,CAAC,EAAA,QAAA,EAC7DH,iCAACQ,mCAAiB,EAAA,EAAC,OAAO,EAAE,OAAO,GAAI,EAClC,CAAA,EACPR,iCAACI,SAAI,EAAA,EACH,OAAO,EAAE,KAAK,EACd,SAAS,EAAED,wBAAM,CAAC,iCAAiC,CAAC,EAAA,QAAA,EAEpDH,iCAACC,aAAM,EAAA,EAAC,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,OAAO,EAEhC,QAAA,EAAA,kBAAA,EAAA,CAAA,EAAA,CACJ,IACF,EACS,CAAA,CAAA,EAAA,CACV,EACV;AACJ;;;;"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"display-settings.d.ts","sourceRoot":"","sources":["../../../../../v1/components/data-table/components/display-settings.tsx"],"names":[],"mappings":"AAeA,wBAAgB,eAAe,CAAC,KAAK,EAAE,MAAM,
|
|
1
|
+
{"version":3,"file":"display-settings.d.ts","sourceRoot":"","sources":["../../../../../v1/components/data-table/components/display-settings.tsx"],"names":[],"mappings":"AAeA,wBAAgB,eAAe,CAAC,KAAK,EAAE,MAAM,6CAoG5C"}
|
|
@@ -30,19 +30,26 @@ function DisplaySettings() {
|
|
|
30
30
|
};
|
|
31
31
|
});
|
|
32
32
|
}
|
|
33
|
-
function onGroupChange(columnId
|
|
33
|
+
function onGroupChange(columnId) {
|
|
34
34
|
updateTableQuery((query) => {
|
|
35
35
|
return {
|
|
36
36
|
...query,
|
|
37
37
|
group_by: [columnId],
|
|
38
|
-
|
|
38
|
+
};
|
|
39
|
+
});
|
|
40
|
+
}
|
|
41
|
+
function onGroupRemove() {
|
|
42
|
+
updateTableQuery((query) => {
|
|
43
|
+
return {
|
|
44
|
+
...query,
|
|
45
|
+
group_by: [],
|
|
39
46
|
};
|
|
40
47
|
});
|
|
41
48
|
}
|
|
42
49
|
function onReset() {
|
|
43
50
|
onDisplaySettingsReset();
|
|
44
51
|
}
|
|
45
|
-
return (jsxRuntimeExports.jsxs(Popover, { children: [jsxRuntimeExports.jsx(Popover.Trigger, { asChild: true, children: jsxRuntimeExports.jsx(Button, { variant: "outline", color: "neutral", size: "small", leadingIcon: jsxRuntimeExports.jsx(MixerHorizontalIcon, {}), children: "Display" }) }), jsxRuntimeExports.jsx(Popover.Content, { className: styles["display-popover-content"], align: "end", children: jsxRuntimeExports.jsxs(Flex, { direction: "column", children: [jsxRuntimeExports.jsxs(Flex, { direction: "column", className: styles["display-popover-properties-container"], gap: 5, children: [jsxRuntimeExports.jsx(Ordering, { columnList: sortableColumns, onChange: onSortChange, value: tableQuery?.sort?.[0] || defaultSort }), jsxRuntimeExports.jsx(Grouping, { columns: columns, onChange: onGroupChange, value: tableQuery?.group_by?.[0] || defaultGroupOption.id })] }), jsxRuntimeExports.jsx(Flex, { className: styles["display-popover-properties-container"], children: jsxRuntimeExports.jsx(DisplayProperties, { columns: columns }) }), jsxRuntimeExports.jsx(Flex, { justify: "end", className: styles["display-popover-reset-container"], children: jsxRuntimeExports.jsx(Button, { variant: "text", onClick: onReset, children: "Reset to default" }) })] }) })] }));
|
|
52
|
+
return (jsxRuntimeExports.jsxs(Popover, { children: [jsxRuntimeExports.jsx(Popover.Trigger, { asChild: true, children: jsxRuntimeExports.jsx(Button, { variant: "outline", color: "neutral", size: "small", leadingIcon: jsxRuntimeExports.jsx(MixerHorizontalIcon, {}), children: "Display" }) }), jsxRuntimeExports.jsx(Popover.Content, { className: styles["display-popover-content"], align: "end", children: jsxRuntimeExports.jsxs(Flex, { direction: "column", children: [jsxRuntimeExports.jsxs(Flex, { direction: "column", className: styles["display-popover-properties-container"], gap: 5, children: [jsxRuntimeExports.jsx(Ordering, { columnList: sortableColumns, onChange: onSortChange, value: tableQuery?.sort?.[0] || defaultSort }), jsxRuntimeExports.jsx(Grouping, { columns: columns, onRemove: onGroupRemove, onChange: onGroupChange, value: tableQuery?.group_by?.[0] || defaultGroupOption.id })] }), jsxRuntimeExports.jsx(Flex, { className: styles["display-popover-properties-container"], children: jsxRuntimeExports.jsx(DisplayProperties, { columns: columns }) }), jsxRuntimeExports.jsx(Flex, { justify: "end", className: styles["display-popover-reset-container"], children: jsxRuntimeExports.jsx(Button, { variant: "text", onClick: onReset, children: "Reset to default" }) })] }) })] }));
|
|
46
53
|
}
|
|
47
54
|
|
|
48
55
|
export { DisplaySettings };
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"display-settings.js","sources":["../../../../../v1/components/data-table/components/display-settings.tsx"],"sourcesContent":["import { Flex } from \"../../flex\";\nimport styles from \"../data-table.module.css\";\nimport { Button } from \"../../button\";\nimport { Popover } from \"../../popover\";\nimport { MixerHorizontalIcon } from \"@radix-ui/react-icons\";\nimport { useDataTable } from \"../hooks/useDataTable\";\nimport {\n DataTableColumn,\n SortOrdersValues,\n defaultGroupOption,\n} from \"../data-table.types\";\nimport { Ordering } from \"./ordering\";\nimport { Grouping } from \"./grouping\";\nimport { DisplayProperties } from \"./display-properties\";\n\nexport function DisplaySettings<TData, TValue>() {\n const {\n table,\n updateTableQuery,\n tableQuery,\n defaultSort,\n onDisplaySettingsReset,\n } = useDataTable();\n const columns = table?.getAllColumns() as DataTableColumn<TData, TValue>[];\n\n const sortableColumns = columns\n ?.filter((col) => col.columnDef.enableSorting)\n ?.map((column) => {\n const id = column.id;\n return {\n label: column.columnDef.header || id,\n id: id,\n };\n });\n\n function onSortChange(columnId: string, order: SortOrdersValues) {\n updateTableQuery((query) => {\n return {\n ...query,\n sort: [{ name: columnId, order }],\n };\n });\n }\n\n function onGroupChange(columnId: string
|
|
1
|
+
{"version":3,"file":"display-settings.js","sources":["../../../../../v1/components/data-table/components/display-settings.tsx"],"sourcesContent":["import { Flex } from \"../../flex\";\nimport styles from \"../data-table.module.css\";\nimport { Button } from \"../../button\";\nimport { Popover } from \"../../popover\";\nimport { MixerHorizontalIcon } from \"@radix-ui/react-icons\";\nimport { useDataTable } from \"../hooks/useDataTable\";\nimport {\n DataTableColumn,\n SortOrdersValues,\n defaultGroupOption,\n} from \"../data-table.types\";\nimport { Ordering } from \"./ordering\";\nimport { Grouping } from \"./grouping\";\nimport { DisplayProperties } from \"./display-properties\";\n\nexport function DisplaySettings<TData, TValue>() {\n const {\n table,\n updateTableQuery,\n tableQuery,\n defaultSort,\n onDisplaySettingsReset,\n } = useDataTable();\n const columns = table?.getAllColumns() as DataTableColumn<TData, TValue>[];\n\n const sortableColumns = columns\n ?.filter((col) => col.columnDef.enableSorting)\n ?.map((column) => {\n const id = column.id;\n return {\n label: column.columnDef.header || id,\n id: id,\n };\n });\n\n function onSortChange(columnId: string, order: SortOrdersValues) {\n updateTableQuery((query) => {\n return {\n ...query,\n sort: [{ name: columnId, order }],\n };\n });\n }\n\n function onGroupChange(columnId: string) {\n updateTableQuery((query) => {\n return {\n ...query,\n group_by: [columnId],\n };\n });\n }\n\n function onGroupRemove() {\n updateTableQuery((query) => {\n return {\n ...query,\n group_by: [],\n };\n });\n }\n\n function onReset() {\n onDisplaySettingsReset();\n }\n\n return (\n <Popover>\n <Popover.Trigger asChild>\n <Button\n variant={\"outline\"}\n color=\"neutral\"\n size={\"small\"}\n leadingIcon={<MixerHorizontalIcon />}\n >\n Display\n </Button>\n </Popover.Trigger>\n <Popover.Content\n className={styles[\"display-popover-content\"]}\n align=\"end\"\n >\n <Flex direction={\"column\"}>\n <Flex\n direction={\"column\"}\n className={styles[\"display-popover-properties-container\"]}\n gap={5}\n >\n <Ordering\n columnList={sortableColumns}\n onChange={onSortChange}\n value={tableQuery?.sort?.[0] || defaultSort}\n />\n <Grouping\n columns={columns}\n onRemove={onGroupRemove}\n onChange={onGroupChange}\n value={tableQuery?.group_by?.[0] || defaultGroupOption.id}\n />\n </Flex>\n <Flex className={styles[\"display-popover-properties-container\"]}>\n <DisplayProperties columns={columns} />\n </Flex>\n <Flex\n justify={\"end\"}\n className={styles[\"display-popover-reset-container\"]}\n >\n <Button variant={\"text\"} onClick={onReset}>\n Reset to default\n </Button>\n </Flex>\n </Flex>\n </Popover.Content>\n </Popover>\n );\n}\n"],"names":["_jsxs","_jsx"],"mappings":"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"}
|
|
@@ -7,7 +7,7 @@ var text = require('../../text/text.cjs');
|
|
|
7
7
|
var select = require('../../select/select.cjs');
|
|
8
8
|
var dataTable_types = require('../data-table.types.cjs');
|
|
9
9
|
|
|
10
|
-
function Grouping({ columns = [], onChange, value, }) {
|
|
10
|
+
function Grouping({ columns = [], onChange, onRemove, value, }) {
|
|
11
11
|
const columnList = columns
|
|
12
12
|
.filter((column) => column.columnDef.enableGrouping)
|
|
13
13
|
?.map((column) => {
|
|
@@ -18,9 +18,13 @@ function Grouping({ columns = [], onChange, value, }) {
|
|
|
18
18
|
};
|
|
19
19
|
});
|
|
20
20
|
const handleGroupChange = (columnId) => {
|
|
21
|
+
if (columnId === dataTable_types.defaultGroupOption.id) {
|
|
22
|
+
onRemove();
|
|
23
|
+
return;
|
|
24
|
+
}
|
|
21
25
|
const column = columns.find((col) => col.id === columnId);
|
|
22
26
|
if (column) {
|
|
23
|
-
onChange(column.id
|
|
27
|
+
onChange(column.id);
|
|
24
28
|
}
|
|
25
29
|
};
|
|
26
30
|
return (jsxRuntime.jsxRuntimeExports.jsxs(flex.Flex, { justify: "between", align: "center", children: [jsxRuntime.jsxRuntimeExports.jsx(text.Text, { size: 2, weight: 500, className: dataTable_module.default["flex-1"], children: "Grouping" }), jsxRuntime.jsxRuntimeExports.jsx(flex.Flex, { className: dataTable_module.default["flex-1"], children: jsxRuntime.jsxRuntimeExports.jsxs(select.Select, { onValueChange: handleGroupChange, value: value, children: [jsxRuntime.jsxRuntimeExports.jsx(select.Select.Trigger, { size: "small", className: dataTable_module.default["display-popover-properties-select"], children: jsxRuntime.jsxRuntimeExports.jsx(select.Select.Value, { placeholder: "Select value" }) }), jsxRuntime.jsxRuntimeExports.jsxs(select.Select.Content, { "data-variant": "filter", children: [jsxRuntime.jsxRuntimeExports.jsx(select.Select.Item, { value: dataTable_types.defaultGroupOption.id, children: dataTable_types.defaultGroupOption.label }), columnList.map((column) => (jsxRuntime.jsxRuntimeExports.jsx(select.Select.Item, { value: column.id, children: column.label }, column.id)))] })] }) })] }));
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"grouping.cjs","sources":["../../../../../v1/components/data-table/components/grouping.tsx"],"sourcesContent":["import { Flex } from \"../../flex\";\nimport styles from \"../data-table.module.css\";\nimport { Text } from \"../../text\";\nimport { Select } from \"../../select\";\nimport {
|
|
1
|
+
{"version":3,"file":"grouping.cjs","sources":["../../../../../v1/components/data-table/components/grouping.tsx"],"sourcesContent":["import { Flex } from \"../../flex\";\nimport styles from \"../data-table.module.css\";\nimport { Text } from \"../../text\";\nimport { Select } from \"../../select\";\nimport { DataTableColumn, defaultGroupOption } from \"../data-table.types\";\n\ninterface GroupingProps<TData, TValue> {\n columns: DataTableColumn<TData, TValue>[];\n onChange: (columnId: string) => void;\n onRemove: () => void;\n value: string;\n}\n\nexport function Grouping<TData, TValue>({\n columns = [],\n onChange,\n onRemove,\n value,\n}: GroupingProps<TData, TValue>) {\n const columnList = columns\n .filter((column) => column.columnDef.enableGrouping)\n ?.map((column) => {\n const id = column.id;\n return {\n label: column.columnDef.header || id,\n id: id,\n };\n });\n\n const handleGroupChange = (columnId: string) => {\n if (columnId === defaultGroupOption.id) {\n onRemove();\n return;\n }\n const column = columns.find((col) => col.id === columnId);\n if (column) {\n onChange(column.id);\n }\n };\n\n return (\n <Flex justify=\"between\" align=\"center\">\n <Text size={2} weight={500} className={styles[\"flex-1\"]}>\n Grouping\n </Text>\n <Flex className={styles[\"flex-1\"]}>\n <Select onValueChange={handleGroupChange} value={value}>\n <Select.Trigger\n size={\"small\"}\n className={styles[\"display-popover-properties-select\"]}\n >\n <Select.Value placeholder=\"Select value\" />\n </Select.Trigger>\n <Select.Content data-variant=\"filter\">\n <Select.Item value={defaultGroupOption.id}>\n {defaultGroupOption.label}\n </Select.Item>\n {columnList.map((column) => (\n <Select.Item key={column.id} value={column.id}>\n {column.label}\n </Select.Item>\n ))}\n </Select.Content>\n </Select>\n </Flex>\n </Flex>\n );\n}\n"],"names":["defaultGroupOption","_jsxs","Flex","_jsx","Text","styles","Select"],"mappings":";;;;;;;;;AAagB,SAAA,QAAQ,CAAgB,EACtC,OAAO,GAAG,EAAE,EACZ,QAAQ,EACR,QAAQ,EACR,KAAK,GACwB,EAAA;IAC7B,MAAM,UAAU,GAAG,OAAO;SACvB,MAAM,CAAC,CAAC,MAAM,KAAK,MAAM,CAAC,SAAS,CAAC,cAAc,CAAC;AACpD,UAAE,GAAG,CAAC,CAAC,MAAM,KAAI;AACf,QAAA,MAAM,EAAE,GAAG,MAAM,CAAC,EAAE,CAAC;QACrB,OAAO;AACL,YAAA,KAAK,EAAE,MAAM,CAAC,SAAS,CAAC,MAAM,IAAI,EAAE;AACpC,YAAA,EAAE,EAAE,EAAE;SACP,CAAC;AACJ,KAAC,CAAC,CAAC;AAEL,IAAA,MAAM,iBAAiB,GAAG,CAAC,QAAgB,KAAI;AAC7C,QAAA,IAAI,QAAQ,KAAKA,kCAAkB,CAAC,EAAE,EAAE;AACtC,YAAA,QAAQ,EAAE,CAAC;YACX,OAAO;SACR;AACD,QAAA,MAAM,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC,GAAG,KAAK,GAAG,CAAC,EAAE,KAAK,QAAQ,CAAC,CAAC;QAC1D,IAAI,MAAM,EAAE;AACV,YAAA,QAAQ,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;SACrB;AACH,KAAC,CAAC;AAEF,IAAA,QACEC,iCAAA,CAACC,SAAI,EAAA,EAAC,OAAO,EAAC,SAAS,EAAC,KAAK,EAAC,QAAQ,EAAA,QAAA,EAAA,CACpCC,iCAACC,SAAI,EAAA,EAAC,IAAI,EAAE,CAAC,EAAE,MAAM,EAAE,GAAG,EAAE,SAAS,EAAEC,wBAAM,CAAC,QAAQ,CAAC,EAAA,QAAA,EAAA,UAAA,EAAA,CAEhD,EACPF,gCAAC,CAAAD,SAAI,EAAC,EAAA,SAAS,EAAEG,wBAAM,CAAC,QAAQ,CAAC,EAC/B,QAAA,EAAAJ,iCAAA,CAACK,aAAM,EAAA,EAAC,aAAa,EAAE,iBAAiB,EAAE,KAAK,EAAE,KAAK,EACpD,QAAA,EAAA,CAAAH,gCAAA,CAACG,aAAM,CAAC,OAAO,EAAA,EACb,IAAI,EAAE,OAAO,EACb,SAAS,EAAED,wBAAM,CAAC,mCAAmC,CAAC,EAEtD,QAAA,EAAAF,gCAAA,CAACG,aAAM,CAAC,KAAK,EAAA,EAAC,WAAW,EAAC,cAAc,EAAA,CAAG,EAC5B,CAAA,EACjBL,iCAAC,CAAAK,aAAM,CAAC,OAAO,oBAAc,QAAQ,EAAA,QAAA,EAAA,CACnCH,gCAAC,CAAAG,aAAM,CAAC,IAAI,EAAC,EAAA,KAAK,EAAEN,kCAAkB,CAAC,EAAE,EAAA,QAAA,EACtCA,kCAAkB,CAAC,KAAK,EAAA,CACb,EACb,UAAU,CAAC,GAAG,CAAC,CAAC,MAAM,MACrBG,gCAAA,CAACG,aAAM,CAAC,IAAI,EAAA,EAAiB,KAAK,EAAE,MAAM,CAAC,EAAE,EAC1C,QAAA,EAAA,MAAM,CAAC,KAAK,EADG,EAAA,MAAM,CAAC,EAAE,CAEb,CACf,CAAC,CACa,EAAA,CAAA,CAAA,EAAA,CACV,EACJ,CAAA,CAAA,EAAA,CACF,EACP;AACJ;;;;"}
|
|
@@ -1,9 +1,10 @@
|
|
|
1
|
-
import { DataTableColumn
|
|
1
|
+
import { DataTableColumn } from "../data-table.types";
|
|
2
2
|
interface GroupingProps<TData, TValue> {
|
|
3
3
|
columns: DataTableColumn<TData, TValue>[];
|
|
4
|
-
onChange: (columnId: string
|
|
4
|
+
onChange: (columnId: string) => void;
|
|
5
|
+
onRemove: () => void;
|
|
5
6
|
value: string;
|
|
6
7
|
}
|
|
7
|
-
export declare function Grouping<TData, TValue>({ columns, onChange, value, }: GroupingProps<TData, TValue>): import("react/jsx-runtime").JSX.Element;
|
|
8
|
+
export declare function Grouping<TData, TValue>({ columns, onChange, onRemove, value, }: GroupingProps<TData, TValue>): import("react/jsx-runtime").JSX.Element;
|
|
8
9
|
export {};
|
|
9
10
|
//# sourceMappingURL=grouping.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"grouping.d.ts","sourceRoot":"","sources":["../../../../../v1/components/data-table/components/grouping.tsx"],"names":[],"mappings":"AAIA,OAAO,
|
|
1
|
+
{"version":3,"file":"grouping.d.ts","sourceRoot":"","sources":["../../../../../v1/components/data-table/components/grouping.tsx"],"names":[],"mappings":"AAIA,OAAO,EAAE,eAAe,EAAsB,MAAM,qBAAqB,CAAC;AAE1E,UAAU,aAAa,CAAC,KAAK,EAAE,MAAM;IACnC,OAAO,EAAE,eAAe,CAAC,KAAK,EAAE,MAAM,CAAC,EAAE,CAAC;IAC1C,QAAQ,EAAE,CAAC,QAAQ,EAAE,MAAM,KAAK,IAAI,CAAC;IACrC,QAAQ,EAAE,MAAM,IAAI,CAAC;IACrB,KAAK,EAAE,MAAM,CAAC;CACf;AAED,wBAAgB,QAAQ,CAAC,KAAK,EAAE,MAAM,EAAE,EACtC,OAAY,EACZ,QAAQ,EACR,QAAQ,EACR,KAAK,GACN,EAAE,aAAa,CAAC,KAAK,EAAE,MAAM,CAAC,2CAiD9B"}
|
|
@@ -3,9 +3,9 @@ import { Flex } from '../../flex/flex.js';
|
|
|
3
3
|
import styles from '../data-table.module.css.js';
|
|
4
4
|
import { Text } from '../../text/text.js';
|
|
5
5
|
import { Select } from '../../select/select.js';
|
|
6
|
-
import { defaultGroupOption
|
|
6
|
+
import { defaultGroupOption } from '../data-table.types.js';
|
|
7
7
|
|
|
8
|
-
function Grouping({ columns = [], onChange, value, }) {
|
|
8
|
+
function Grouping({ columns = [], onChange, onRemove, value, }) {
|
|
9
9
|
const columnList = columns
|
|
10
10
|
.filter((column) => column.columnDef.enableGrouping)
|
|
11
11
|
?.map((column) => {
|
|
@@ -16,9 +16,13 @@ function Grouping({ columns = [], onChange, value, }) {
|
|
|
16
16
|
};
|
|
17
17
|
});
|
|
18
18
|
const handleGroupChange = (columnId) => {
|
|
19
|
+
if (columnId === defaultGroupOption.id) {
|
|
20
|
+
onRemove();
|
|
21
|
+
return;
|
|
22
|
+
}
|
|
19
23
|
const column = columns.find((col) => col.id === columnId);
|
|
20
24
|
if (column) {
|
|
21
|
-
onChange(column.id
|
|
25
|
+
onChange(column.id);
|
|
22
26
|
}
|
|
23
27
|
};
|
|
24
28
|
return (jsxRuntimeExports.jsxs(Flex, { justify: "between", align: "center", children: [jsxRuntimeExports.jsx(Text, { size: 2, weight: 500, className: styles["flex-1"], children: "Grouping" }), jsxRuntimeExports.jsx(Flex, { className: styles["flex-1"], children: jsxRuntimeExports.jsxs(Select, { onValueChange: handleGroupChange, value: value, children: [jsxRuntimeExports.jsx(Select.Trigger, { size: "small", className: styles["display-popover-properties-select"], children: jsxRuntimeExports.jsx(Select.Value, { placeholder: "Select value" }) }), jsxRuntimeExports.jsxs(Select.Content, { "data-variant": "filter", children: [jsxRuntimeExports.jsx(Select.Item, { value: defaultGroupOption.id, children: defaultGroupOption.label }), columnList.map((column) => (jsxRuntimeExports.jsx(Select.Item, { value: column.id, children: column.label }, column.id)))] })] }) })] }));
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"grouping.js","sources":["../../../../../v1/components/data-table/components/grouping.tsx"],"sourcesContent":["import { Flex } from \"../../flex\";\nimport styles from \"../data-table.module.css\";\nimport { Text } from \"../../text\";\nimport { Select } from \"../../select\";\nimport {
|
|
1
|
+
{"version":3,"file":"grouping.js","sources":["../../../../../v1/components/data-table/components/grouping.tsx"],"sourcesContent":["import { Flex } from \"../../flex\";\nimport styles from \"../data-table.module.css\";\nimport { Text } from \"../../text\";\nimport { Select } from \"../../select\";\nimport { DataTableColumn, defaultGroupOption } from \"../data-table.types\";\n\ninterface GroupingProps<TData, TValue> {\n columns: DataTableColumn<TData, TValue>[];\n onChange: (columnId: string) => void;\n onRemove: () => void;\n value: string;\n}\n\nexport function Grouping<TData, TValue>({\n columns = [],\n onChange,\n onRemove,\n value,\n}: GroupingProps<TData, TValue>) {\n const columnList = columns\n .filter((column) => column.columnDef.enableGrouping)\n ?.map((column) => {\n const id = column.id;\n return {\n label: column.columnDef.header || id,\n id: id,\n };\n });\n\n const handleGroupChange = (columnId: string) => {\n if (columnId === defaultGroupOption.id) {\n onRemove();\n return;\n }\n const column = columns.find((col) => col.id === columnId);\n if (column) {\n onChange(column.id);\n }\n };\n\n return (\n <Flex justify=\"between\" align=\"center\">\n <Text size={2} weight={500} className={styles[\"flex-1\"]}>\n Grouping\n </Text>\n <Flex className={styles[\"flex-1\"]}>\n <Select onValueChange={handleGroupChange} value={value}>\n <Select.Trigger\n size={\"small\"}\n className={styles[\"display-popover-properties-select\"]}\n >\n <Select.Value placeholder=\"Select value\" />\n </Select.Trigger>\n <Select.Content data-variant=\"filter\">\n <Select.Item value={defaultGroupOption.id}>\n {defaultGroupOption.label}\n </Select.Item>\n {columnList.map((column) => (\n <Select.Item key={column.id} value={column.id}>\n {column.label}\n </Select.Item>\n ))}\n </Select.Content>\n </Select>\n </Flex>\n </Flex>\n );\n}\n"],"names":["_jsxs","_jsx"],"mappings":";;;;;;;AAagB,SAAA,QAAQ,CAAgB,EACtC,OAAO,GAAG,EAAE,EACZ,QAAQ,EACR,QAAQ,EACR,KAAK,GACwB,EAAA;IAC7B,MAAM,UAAU,GAAG,OAAO;SACvB,MAAM,CAAC,CAAC,MAAM,KAAK,MAAM,CAAC,SAAS,CAAC,cAAc,CAAC;AACpD,UAAE,GAAG,CAAC,CAAC,MAAM,KAAI;AACf,QAAA,MAAM,EAAE,GAAG,MAAM,CAAC,EAAE,CAAC;QACrB,OAAO;AACL,YAAA,KAAK,EAAE,MAAM,CAAC,SAAS,CAAC,MAAM,IAAI,EAAE;AACpC,YAAA,EAAE,EAAE,EAAE;SACP,CAAC;AACJ,KAAC,CAAC,CAAC;AAEL,IAAA,MAAM,iBAAiB,GAAG,CAAC,QAAgB,KAAI;AAC7C,QAAA,IAAI,QAAQ,KAAK,kBAAkB,CAAC,EAAE,EAAE;AACtC,YAAA,QAAQ,EAAE,CAAC;YACX,OAAO;SACR;AACD,QAAA,MAAM,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC,GAAG,KAAK,GAAG,CAAC,EAAE,KAAK,QAAQ,CAAC,CAAC;QAC1D,IAAI,MAAM,EAAE;AACV,YAAA,QAAQ,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;SACrB;AACH,KAAC,CAAC;AAEF,IAAA,QACEA,sBAAA,CAAC,IAAI,EAAA,EAAC,OAAO,EAAC,SAAS,EAAC,KAAK,EAAC,QAAQ,EAAA,QAAA,EAAA,CACpCC,sBAAC,IAAI,EAAA,EAAC,IAAI,EAAE,CAAC,EAAE,MAAM,EAAE,GAAG,EAAE,SAAS,EAAE,MAAM,CAAC,QAAQ,CAAC,EAAA,QAAA,EAAA,UAAA,EAAA,CAEhD,EACPA,qBAAC,CAAA,IAAI,EAAC,EAAA,SAAS,EAAE,MAAM,CAAC,QAAQ,CAAC,EAC/B,QAAA,EAAAD,sBAAA,CAAC,MAAM,EAAA,EAAC,aAAa,EAAE,iBAAiB,EAAE,KAAK,EAAE,KAAK,EACpD,QAAA,EAAA,CAAAC,qBAAA,CAAC,MAAM,CAAC,OAAO,EAAA,EACb,IAAI,EAAE,OAAO,EACb,SAAS,EAAE,MAAM,CAAC,mCAAmC,CAAC,EAEtD,QAAA,EAAAA,qBAAA,CAAC,MAAM,CAAC,KAAK,EAAA,EAAC,WAAW,EAAC,cAAc,EAAA,CAAG,EAC5B,CAAA,EACjBD,sBAAC,CAAA,MAAM,CAAC,OAAO,oBAAc,QAAQ,EAAA,QAAA,EAAA,CACnCC,qBAAC,CAAA,MAAM,CAAC,IAAI,EAAC,EAAA,KAAK,EAAE,kBAAkB,CAAC,EAAE,EAAA,QAAA,EACtC,kBAAkB,CAAC,KAAK,EAAA,CACb,EACb,UAAU,CAAC,GAAG,CAAC,CAAC,MAAM,MACrBA,qBAAA,CAAC,MAAM,CAAC,IAAI,EAAA,EAAiB,KAAK,EAAE,MAAM,CAAC,EAAE,EAC1C,QAAA,EAAA,MAAM,CAAC,KAAK,EADG,EAAA,MAAM,CAAC,EAAE,CAEb,CACf,CAAC,CACa,EAAA,CAAA,CAAA,EAAA,CACV,EACJ,CAAA,CAAA,EAAA,CACF,EACP;AACJ;;;;"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"data-table.types.cjs","sources":["../../../../v1/components/data-table/data-table.types.tsx"],"sourcesContent":["import type { Column, ColumnDef, Table } from \"@tanstack/table-core\";\nimport type {\n FilterOperatorTypes,\n FilterSelectOption,\n FilterTypes,\n FilterValueType,\n} from \"~/v1/types/filters\";\n\nexport type DataTableMode = \"client\" | \"server\";\n\nexport const SortOrders = {\n ASC: \"asc\",\n DESC: \"desc\",\n} as const;\n\nexport interface RQLFilterValues {\n value: any;\n // Only one of these value fields should be present at a time\n boolValue?: boolean;\n stringValue?: string;\n numberValue?: number;\n}\nexport interface RQLFilter extends RQLFilterValues {\n _type?: FilterTypes;\n _dataType?: FilterValueType;\n name: string;\n operator: FilterOperatorTypes;\n}\n\ntype SortOrdersKeys = keyof typeof SortOrders;\nexport type SortOrdersValues = typeof SortOrders[SortOrdersKeys];\n\nexport interface DataTableSort {\n name: string;\n order: SortOrdersValues;\n}\n\nexport interface DataTableQuery {\n filters?: RQLFilter[];\n sort?: DataTableSort[];\n group_by?: string[];\n offset?: number;\n limit?: number;\n search?: string;\n
|
|
1
|
+
{"version":3,"file":"data-table.types.cjs","sources":["../../../../v1/components/data-table/data-table.types.tsx"],"sourcesContent":["import type { Column, ColumnDef, Table } from \"@tanstack/table-core\";\nimport type {\n FilterOperatorTypes,\n FilterSelectOption,\n FilterTypes,\n FilterValueType,\n} from \"~/v1/types/filters\";\n\nexport type DataTableMode = \"client\" | \"server\";\n\nexport const SortOrders = {\n ASC: \"asc\",\n DESC: \"desc\",\n} as const;\n\nexport interface RQLFilterValues {\n value: any;\n // Only one of these value fields should be present at a time\n boolValue?: boolean;\n stringValue?: string;\n numberValue?: number;\n}\nexport interface RQLFilter extends RQLFilterValues {\n _type?: FilterTypes;\n _dataType?: FilterValueType;\n name: string;\n operator: FilterOperatorTypes;\n}\n\ntype SortOrdersKeys = keyof typeof SortOrders;\nexport type SortOrdersValues = typeof SortOrders[SortOrdersKeys];\n\nexport interface DataTableSort {\n name: string;\n order: SortOrdersValues;\n}\n\nexport interface DataTableQuery {\n filters?: RQLFilter[];\n sort?: DataTableSort[];\n group_by?: string[];\n offset?: number;\n limit?: number;\n search?: string;\n}\n\nexport type DataTableColumn<TData, TValue> = Omit<\n Column<TData, TValue>,\n \"columnDef\"\n> & {\n columnDef: DataTableColumnDef<TData, TValue>;\n};\n\nexport type DataTableColumnDef<TData, TValue> = ColumnDef<TData, TValue> & {\n accessorKey: string;\n header: string;\n filterType?: FilterTypes;\n dataType?: FilterValueType;\n enableColumnFilter?: boolean;\n enableSorting?: boolean;\n enableHiding?: boolean;\n defaultHidden?: boolean;\n filterOptions?: FilterSelectOption[];\n classNames?: {\n cell?: string;\n header?: string;\n };\n styles?: {\n cell?: React.CSSProperties;\n header?: React.CSSProperties;\n };\n enableGrouping?: boolean;\n showGroupCount?: boolean;\n groupCountMap?: Record<string, number>;\n groupLabelsMap?: Record<string, string>;\n // TODO: implement these\n icon?: React.ReactNode;\n};\n\nexport interface DataTableProps<TData, TValue> {\n columns: DataTableColumnDef<TData, TValue>[];\n data: TData[];\n query?: DataTableQuery;\n mode?: DataTableMode;\n isLoading?: boolean;\n loadingRowCount?: number;\n tableQuery?: DataTableQuery;\n onTableQueryChange?: (query: DataTableQuery) => void;\n defaultSort: DataTableSort;\n onLoadMore?: () => Promise<void>;\n onRowClick?: (row: TData) => void;\n}\n\nexport type DataTableContentProps = {\n emptyState?: React.ReactNode;\n classNames?: {\n table?: string;\n header?: string;\n body?: string;\n row?: string;\n };\n};\n\nexport type TableQueryUpdateFn = (query: DataTableQuery) => DataTableQuery;\n\nexport type TableContextType<TData, TValue> = {\n table: Table<TData>;\n columns: DataTableColumnDef<TData, TValue>[];\n isLoading?: boolean;\n loadMoreData: () => void;\n mode: DataTableMode;\n defaultSort: DataTableSort;\n tableQuery?: DataTableQuery;\n loadingRowCount?: number;\n onDisplaySettingsReset: () => void;\n updateTableQuery: (fn: TableQueryUpdateFn) => void;\n onRowClick?: (row: TData) => void;\n};\n\nexport interface ColumnData {\n label: string;\n id: string;\n isVisible?: boolean;\n}\n\ninterface SubRows<T> {}\n\nexport interface GroupedData<T> extends SubRows<T> {\n label: string;\n group_key: string;\n subRows: T[];\n count?: number;\n showGroupCount?: boolean;\n}\n\nexport const defaultGroupOption = {\n id: \"--\",\n label: \"No grouping\",\n};\n\nexport const EmptyFilterValue = \"--empty--\";\n"],"names":[],"mappings":";;AAUa,MAAA,UAAU,GAAG;AACxB,IAAA,GAAG,EAAE,KAAK;AACV,IAAA,IAAI,EAAE,MAAM;EACH;AA0HE,MAAA,kBAAkB,GAAG;AAChC,IAAA,EAAE,EAAE,IAAI;AACR,IAAA,KAAK,EAAE,aAAa;EACpB;AAEK,MAAM,gBAAgB,GAAG;;;;;;"}
|
|
@@ -30,7 +30,6 @@ export interface DataTableQuery {
|
|
|
30
30
|
offset?: number;
|
|
31
31
|
limit?: number;
|
|
32
32
|
search?: string;
|
|
33
|
-
__group_by_sort?: SortOrdersValues;
|
|
34
33
|
}
|
|
35
34
|
export type DataTableColumn<TData, TValue> = Omit<Column<TData, TValue>, "columnDef"> & {
|
|
36
35
|
columnDef: DataTableColumnDef<TData, TValue>;
|
|
@@ -54,9 +53,9 @@ export type DataTableColumnDef<TData, TValue> = ColumnDef<TData, TValue> & {
|
|
|
54
53
|
header?: React.CSSProperties;
|
|
55
54
|
};
|
|
56
55
|
enableGrouping?: boolean;
|
|
57
|
-
groupSortOrder?: SortOrdersValues;
|
|
58
56
|
showGroupCount?: boolean;
|
|
59
57
|
groupCountMap?: Record<string, number>;
|
|
58
|
+
groupLabelsMap?: Record<string, string>;
|
|
60
59
|
icon?: React.ReactNode;
|
|
61
60
|
};
|
|
62
61
|
export interface DataTableProps<TData, TValue> {
|
|
@@ -103,6 +102,7 @@ export interface ColumnData {
|
|
|
103
102
|
interface SubRows<T> {
|
|
104
103
|
}
|
|
105
104
|
export interface GroupedData<T> extends SubRows<T> {
|
|
105
|
+
label: string;
|
|
106
106
|
group_key: string;
|
|
107
107
|
subRows: T[];
|
|
108
108
|
count?: number;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"data-table.types.d.ts","sourceRoot":"","sources":["../../../../v1/components/data-table/data-table.types.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,EAAE,SAAS,EAAE,KAAK,EAAE,MAAM,sBAAsB,CAAC;AACrE,OAAO,KAAK,EACV,mBAAmB,EACnB,kBAAkB,EAClB,WAAW,EACX,eAAe,EAChB,MAAM,oBAAoB,CAAC;AAE5B,MAAM,MAAM,aAAa,GAAG,QAAQ,GAAG,QAAQ,CAAC;AAEhD,eAAO,MAAM,UAAU;;;CAGb,CAAC;AAEX,MAAM,WAAW,eAAe;IAC9B,KAAK,EAAE,GAAG,CAAC;IAEX,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB;AACD,MAAM,WAAW,SAAU,SAAQ,eAAe;IAChD,KAAK,CAAC,EAAE,WAAW,CAAC;IACpB,SAAS,CAAC,EAAE,eAAe,CAAC;IAC5B,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,EAAE,mBAAmB,CAAC;CAC/B;AAED,KAAK,cAAc,GAAG,MAAM,OAAO,UAAU,CAAC;AAC9C,MAAM,MAAM,gBAAgB,GAAG,OAAO,UAAU,CAAC,cAAc,CAAC,CAAC;AAEjE,MAAM,WAAW,aAAa;IAC5B,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,gBAAgB,CAAC;CACzB;AAED,MAAM,WAAW,cAAc;IAC7B,OAAO,CAAC,EAAE,SAAS,EAAE,CAAC;IACtB,IAAI,CAAC,EAAE,aAAa,EAAE,CAAC;IACvB,QAAQ,CAAC,EAAE,MAAM,EAAE,CAAC;IACpB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,MAAM,CAAC,EAAE,MAAM,CAAC;
|
|
1
|
+
{"version":3,"file":"data-table.types.d.ts","sourceRoot":"","sources":["../../../../v1/components/data-table/data-table.types.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,EAAE,SAAS,EAAE,KAAK,EAAE,MAAM,sBAAsB,CAAC;AACrE,OAAO,KAAK,EACV,mBAAmB,EACnB,kBAAkB,EAClB,WAAW,EACX,eAAe,EAChB,MAAM,oBAAoB,CAAC;AAE5B,MAAM,MAAM,aAAa,GAAG,QAAQ,GAAG,QAAQ,CAAC;AAEhD,eAAO,MAAM,UAAU;;;CAGb,CAAC;AAEX,MAAM,WAAW,eAAe;IAC9B,KAAK,EAAE,GAAG,CAAC;IAEX,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB;AACD,MAAM,WAAW,SAAU,SAAQ,eAAe;IAChD,KAAK,CAAC,EAAE,WAAW,CAAC;IACpB,SAAS,CAAC,EAAE,eAAe,CAAC;IAC5B,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,EAAE,mBAAmB,CAAC;CAC/B;AAED,KAAK,cAAc,GAAG,MAAM,OAAO,UAAU,CAAC;AAC9C,MAAM,MAAM,gBAAgB,GAAG,OAAO,UAAU,CAAC,cAAc,CAAC,CAAC;AAEjE,MAAM,WAAW,aAAa;IAC5B,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,gBAAgB,CAAC;CACzB;AAED,MAAM,WAAW,cAAc;IAC7B,OAAO,CAAC,EAAE,SAAS,EAAE,CAAC;IACtB,IAAI,CAAC,EAAE,aAAa,EAAE,CAAC;IACvB,QAAQ,CAAC,EAAE,MAAM,EAAE,CAAC;IACpB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AAED,MAAM,MAAM,eAAe,CAAC,KAAK,EAAE,MAAM,IAAI,IAAI,CAC/C,MAAM,CAAC,KAAK,EAAE,MAAM,CAAC,EACrB,WAAW,CACZ,GAAG;IACF,SAAS,EAAE,kBAAkB,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC;CAC9C,CAAC;AAEF,MAAM,MAAM,kBAAkB,CAAC,KAAK,EAAE,MAAM,IAAI,SAAS,CAAC,KAAK,EAAE,MAAM,CAAC,GAAG;IACzE,WAAW,EAAE,MAAM,CAAC;IACpB,MAAM,EAAE,MAAM,CAAC;IACf,UAAU,CAAC,EAAE,WAAW,CAAC;IACzB,QAAQ,CAAC,EAAE,eAAe,CAAC;IAC3B,kBAAkB,CAAC,EAAE,OAAO,CAAC;IAC7B,aAAa,CAAC,EAAE,OAAO,CAAC;IACxB,YAAY,CAAC,EAAE,OAAO,CAAC;IACvB,aAAa,CAAC,EAAE,OAAO,CAAC;IACxB,aAAa,CAAC,EAAE,kBAAkB,EAAE,CAAC;IACrC,UAAU,CAAC,EAAE;QACX,IAAI,CAAC,EAAE,MAAM,CAAC;QACd,MAAM,CAAC,EAAE,MAAM,CAAC;KACjB,CAAC;IACF,MAAM,CAAC,EAAE;QACP,IAAI,CAAC,EAAE,KAAK,CAAC,aAAa,CAAC;QAC3B,MAAM,CAAC,EAAE,KAAK,CAAC,aAAa,CAAC;KAC9B,CAAC;IACF,cAAc,CAAC,EAAE,OAAO,CAAC;IACzB,cAAc,CAAC,EAAE,OAAO,CAAC;IACzB,aAAa,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACvC,cAAc,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAExC,IAAI,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;CACxB,CAAC;AAEF,MAAM,WAAW,cAAc,CAAC,KAAK,EAAE,MAAM;IAC3C,OAAO,EAAE,kBAAkB,CAAC,KAAK,EAAE,MAAM,CAAC,EAAE,CAAC;IAC7C,IAAI,EAAE,KAAK,EAAE,CAAC;IACd,KAAK,CAAC,EAAE,cAAc,CAAC;IACvB,IAAI,CAAC,EAAE,aAAa,CAAC;IACrB,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,UAAU,CAAC,EAAE,cAAc,CAAC;IAC5B,kBAAkB,CAAC,EAAE,CAAC,KAAK,EAAE,cAAc,KAAK,IAAI,CAAC;IACrD,WAAW,EAAE,aAAa,CAAC;IAC3B,UAAU,CAAC,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC;IACjC,UAAU,CAAC,EAAE,CAAC,GAAG,EAAE,KAAK,KAAK,IAAI,CAAC;CACnC;AAED,MAAM,MAAM,qBAAqB,GAAG;IAClC,UAAU,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;IAC7B,UAAU,CAAC,EAAE;QACX,KAAK,CAAC,EAAE,MAAM,CAAC;QACf,MAAM,CAAC,EAAE,MAAM,CAAC;QAChB,IAAI,CAAC,EAAE,MAAM,CAAC;QACd,GAAG,CAAC,EAAE,MAAM,CAAC;KACd,CAAC;CACH,CAAC;AAEF,MAAM,MAAM,kBAAkB,GAAG,CAAC,KAAK,EAAE,cAAc,KAAK,cAAc,CAAC;AAE3E,MAAM,MAAM,gBAAgB,CAAC,KAAK,EAAE,MAAM,IAAI;IAC5C,KAAK,EAAE,KAAK,CAAC,KAAK,CAAC,CAAC;IACpB,OAAO,EAAE,kBAAkB,CAAC,KAAK,EAAE,MAAM,CAAC,EAAE,CAAC;IAC7C,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,YAAY,EAAE,MAAM,IAAI,CAAC;IACzB,IAAI,EAAE,aAAa,CAAC;IACpB,WAAW,EAAE,aAAa,CAAC;IAC3B,UAAU,CAAC,EAAE,cAAc,CAAC;IAC5B,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,sBAAsB,EAAE,MAAM,IAAI,CAAC;IACnC,gBAAgB,EAAE,CAAC,EAAE,EAAE,kBAAkB,KAAK,IAAI,CAAC;IACnD,UAAU,CAAC,EAAE,CAAC,GAAG,EAAE,KAAK,KAAK,IAAI,CAAC;CACnC,CAAC;AAEF,MAAM,WAAW,UAAU;IACzB,KAAK,EAAE,MAAM,CAAC;IACd,EAAE,EAAE,MAAM,CAAC;IACX,SAAS,CAAC,EAAE,OAAO,CAAC;CACrB;AAED,UAAU,OAAO,CAAC,CAAC;CAAI;AAEvB,MAAM,WAAW,WAAW,CAAC,CAAC,CAAE,SAAQ,OAAO,CAAC,CAAC,CAAC;IAChD,KAAK,EAAE,MAAM,CAAC;IACd,SAAS,EAAE,MAAM,CAAC;IAClB,OAAO,EAAE,CAAC,EAAE,CAAC;IACb,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,cAAc,CAAC,EAAE,OAAO,CAAC;CAC1B;AAED,eAAO,MAAM,kBAAkB;;;CAG9B,CAAC;AAEF,eAAO,MAAM,gBAAgB,cAAc,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"data-table.types.js","sources":["../../../../v1/components/data-table/data-table.types.tsx"],"sourcesContent":["import type { Column, ColumnDef, Table } from \"@tanstack/table-core\";\nimport type {\n FilterOperatorTypes,\n FilterSelectOption,\n FilterTypes,\n FilterValueType,\n} from \"~/v1/types/filters\";\n\nexport type DataTableMode = \"client\" | \"server\";\n\nexport const SortOrders = {\n ASC: \"asc\",\n DESC: \"desc\",\n} as const;\n\nexport interface RQLFilterValues {\n value: any;\n // Only one of these value fields should be present at a time\n boolValue?: boolean;\n stringValue?: string;\n numberValue?: number;\n}\nexport interface RQLFilter extends RQLFilterValues {\n _type?: FilterTypes;\n _dataType?: FilterValueType;\n name: string;\n operator: FilterOperatorTypes;\n}\n\ntype SortOrdersKeys = keyof typeof SortOrders;\nexport type SortOrdersValues = typeof SortOrders[SortOrdersKeys];\n\nexport interface DataTableSort {\n name: string;\n order: SortOrdersValues;\n}\n\nexport interface DataTableQuery {\n filters?: RQLFilter[];\n sort?: DataTableSort[];\n group_by?: string[];\n offset?: number;\n limit?: number;\n search?: string;\n
|
|
1
|
+
{"version":3,"file":"data-table.types.js","sources":["../../../../v1/components/data-table/data-table.types.tsx"],"sourcesContent":["import type { Column, ColumnDef, Table } from \"@tanstack/table-core\";\nimport type {\n FilterOperatorTypes,\n FilterSelectOption,\n FilterTypes,\n FilterValueType,\n} from \"~/v1/types/filters\";\n\nexport type DataTableMode = \"client\" | \"server\";\n\nexport const SortOrders = {\n ASC: \"asc\",\n DESC: \"desc\",\n} as const;\n\nexport interface RQLFilterValues {\n value: any;\n // Only one of these value fields should be present at a time\n boolValue?: boolean;\n stringValue?: string;\n numberValue?: number;\n}\nexport interface RQLFilter extends RQLFilterValues {\n _type?: FilterTypes;\n _dataType?: FilterValueType;\n name: string;\n operator: FilterOperatorTypes;\n}\n\ntype SortOrdersKeys = keyof typeof SortOrders;\nexport type SortOrdersValues = typeof SortOrders[SortOrdersKeys];\n\nexport interface DataTableSort {\n name: string;\n order: SortOrdersValues;\n}\n\nexport interface DataTableQuery {\n filters?: RQLFilter[];\n sort?: DataTableSort[];\n group_by?: string[];\n offset?: number;\n limit?: number;\n search?: string;\n}\n\nexport type DataTableColumn<TData, TValue> = Omit<\n Column<TData, TValue>,\n \"columnDef\"\n> & {\n columnDef: DataTableColumnDef<TData, TValue>;\n};\n\nexport type DataTableColumnDef<TData, TValue> = ColumnDef<TData, TValue> & {\n accessorKey: string;\n header: string;\n filterType?: FilterTypes;\n dataType?: FilterValueType;\n enableColumnFilter?: boolean;\n enableSorting?: boolean;\n enableHiding?: boolean;\n defaultHidden?: boolean;\n filterOptions?: FilterSelectOption[];\n classNames?: {\n cell?: string;\n header?: string;\n };\n styles?: {\n cell?: React.CSSProperties;\n header?: React.CSSProperties;\n };\n enableGrouping?: boolean;\n showGroupCount?: boolean;\n groupCountMap?: Record<string, number>;\n groupLabelsMap?: Record<string, string>;\n // TODO: implement these\n icon?: React.ReactNode;\n};\n\nexport interface DataTableProps<TData, TValue> {\n columns: DataTableColumnDef<TData, TValue>[];\n data: TData[];\n query?: DataTableQuery;\n mode?: DataTableMode;\n isLoading?: boolean;\n loadingRowCount?: number;\n tableQuery?: DataTableQuery;\n onTableQueryChange?: (query: DataTableQuery) => void;\n defaultSort: DataTableSort;\n onLoadMore?: () => Promise<void>;\n onRowClick?: (row: TData) => void;\n}\n\nexport type DataTableContentProps = {\n emptyState?: React.ReactNode;\n classNames?: {\n table?: string;\n header?: string;\n body?: string;\n row?: string;\n };\n};\n\nexport type TableQueryUpdateFn = (query: DataTableQuery) => DataTableQuery;\n\nexport type TableContextType<TData, TValue> = {\n table: Table<TData>;\n columns: DataTableColumnDef<TData, TValue>[];\n isLoading?: boolean;\n loadMoreData: () => void;\n mode: DataTableMode;\n defaultSort: DataTableSort;\n tableQuery?: DataTableQuery;\n loadingRowCount?: number;\n onDisplaySettingsReset: () => void;\n updateTableQuery: (fn: TableQueryUpdateFn) => void;\n onRowClick?: (row: TData) => void;\n};\n\nexport interface ColumnData {\n label: string;\n id: string;\n isVisible?: boolean;\n}\n\ninterface SubRows<T> {}\n\nexport interface GroupedData<T> extends SubRows<T> {\n label: string;\n group_key: string;\n subRows: T[];\n count?: number;\n showGroupCount?: boolean;\n}\n\nexport const defaultGroupOption = {\n id: \"--\",\n label: \"No grouping\",\n};\n\nexport const EmptyFilterValue = \"--empty--\";\n"],"names":[],"mappings":"AAUa,MAAA,UAAU,GAAG;AACxB,IAAA,GAAG,EAAE,KAAK;AACV,IAAA,IAAI,EAAE,MAAM;EACH;AA0HE,MAAA,kBAAkB,GAAG;AAChC,IAAA,EAAE,EAAE,IAAI;AACR,IAAA,KAAK,EAAE,aAAa;EACpB;AAEK,MAAM,gBAAgB,GAAG;;;;"}
|
|
@@ -104,6 +104,11 @@ const handleStringBasedTypes = (filterType, value) => {
|
|
|
104
104
|
};
|
|
105
105
|
}
|
|
106
106
|
};
|
|
107
|
+
const getFilterOperator = ({ value, filterType, operator, }) => {
|
|
108
|
+
return value === dataTable_types.EmptyFilterValue && filterType === filters.FilterType.select
|
|
109
|
+
? "empty"
|
|
110
|
+
: operator;
|
|
111
|
+
};
|
|
107
112
|
const getFilterValue = ({ value, dataType = "string", filterType = filters.FilterType.string, }) => {
|
|
108
113
|
if (dataType === "boolean") {
|
|
109
114
|
return { boolValue: value, value };
|
|
@@ -128,5 +133,6 @@ const getDataType = ({ filterType = filters.FilterType.string, dataType = "strin
|
|
|
128
133
|
exports.filterOperationsMap = filterOperationsMap;
|
|
129
134
|
exports.getDataType = getDataType;
|
|
130
135
|
exports.getFilterFn = getFilterFn;
|
|
136
|
+
exports.getFilterOperator = getFilterOperator;
|
|
131
137
|
exports.getFilterValue = getFilterValue;
|
|
132
138
|
//# sourceMappingURL=filter-operations.cjs.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"filter-operations.cjs","sources":["../../../../../v1/components/data-table/utils/filter-operations.tsx"],"sourcesContent":["import dayjs from \"dayjs\";\nimport isSameOrAfter from \"dayjs/plugin/isSameOrAfter\";\nimport isSameOrBefore from \"dayjs/plugin/isSameOrBefore\";\n\nimport type { FilterFn } from \"@tanstack/table-core\";\nimport {\n FilterValue,\n NumberFilterOperatorType,\n StringFilterOperatorType,\n DateFilterOperatorType,\n SelectFilterOperatorType,\n FilterOperatorTypes,\n FilterTypes,\n FilterValueType,\n FilterType,\n} from \"~/v1/types/filters\";\nimport { EmptyFilterValue, RQLFilterValues } from \"../data-table.types\";\n\ndayjs.extend(isSameOrAfter);\ndayjs.extend(isSameOrBefore);\n\nexport type FilterFunctionsMap = {\n number: Record<NumberFilterOperatorType, FilterFn<any>>;\n string: Record<StringFilterOperatorType, FilterFn<any>>;\n date: Record<DateFilterOperatorType, FilterFn<any>>;\n select: Record<SelectFilterOperatorType, FilterFn<any>>;\n};\n\nexport const filterOperationsMap: FilterFunctionsMap = {\n number: {\n eq: (row, columnId, filterValue: FilterValue) => {\n return Number(row.getValue(columnId)) === Number(filterValue.value);\n },\n neq: (row, columnId, filterValue: FilterValue) => {\n return Number(row.getValue(columnId)) !== Number(filterValue.value);\n },\n lt: (row, columnId, filterValue: FilterValue) => {\n return Number(row.getValue(columnId)) < Number(filterValue.value);\n },\n lte: (row, columnId, filterValue: FilterValue) => {\n return Number(row.getValue(columnId)) <= Number(filterValue.value);\n },\n gt: (row, columnId, filterValue: FilterValue) => {\n return Number(row.getValue(columnId)) > Number(filterValue.value);\n },\n gte: (row, columnId, filterValue: FilterValue) => {\n return Number(row.getValue(columnId)) >= Number(filterValue.value);\n },\n },\n string: {\n eq: (row, columnId, filterValue: FilterValue) => {\n return (\n String(row.getValue(columnId)).toLowerCase() ===\n String(filterValue.value).toLowerCase()\n );\n },\n neq: (row, columnId, filterValue: FilterValue) => {\n return (\n String(row.getValue(columnId)).toLowerCase() !==\n String(filterValue.value).toLowerCase()\n );\n },\n like: (row, columnId, filterValue: FilterValue) => {\n const columnValue = (row.getValue(columnId) as string).toLowerCase();\n const filterStr = (filterValue.value as string).toLowerCase();\n return columnValue.includes(filterStr);\n },\n },\n date: {\n eq: (row, columnId, filterValue: FilterValue) => {\n return dayjs(row.getValue(columnId)).isSame(\n dayjs(filterValue.date),\n \"day\"\n );\n },\n neq: (row, columnId, filterValue: FilterValue) => {\n return !dayjs(row.getValue(columnId)).isSame(\n dayjs(filterValue.date),\n \"day\"\n );\n },\n lt: (row, columnId, filterValue: FilterValue) => {\n return dayjs(row.getValue(columnId)).isBefore(\n dayjs(filterValue.date),\n \"day\"\n );\n },\n lte: (row, columnId, filterValue: FilterValue) => {\n return dayjs(row.getValue(columnId)).isSameOrBefore(\n dayjs(filterValue.date),\n \"day\"\n );\n },\n gt: (row, columnId, filterValue: FilterValue) => {\n return dayjs(row.getValue(columnId)).isAfter(\n dayjs(filterValue.date),\n \"day\"\n );\n },\n gte: (row, columnId, filterValue: FilterValue) => {\n return dayjs(row.getValue(columnId)).isSameOrAfter(\n dayjs(filterValue.date),\n \"day\"\n );\n },\n },\n select: {\n eq: (row, columnId, filterValue: FilterValue) => {\n if (String(filterValue.value) === EmptyFilterValue) {\n return row.getValue(columnId) === \"\";\n }\n // Select only supports string values\n return String(row.getValue(columnId)) === String(filterValue.value);\n },\n neq: (row, columnId, filterValue: FilterValue) => {\n if (String(filterValue.value) === EmptyFilterValue) {\n return row.getValue(columnId) !== \"\";\n }\n // Select only supports string values\n return String(row.getValue(columnId)) !== String(filterValue.value);\n },\n },\n} as const;\n\nexport function getFilterFn<T extends keyof FilterFunctionsMap>(\n type: T,\n operator: FilterOperatorTypes\n) {\n // @ts-expect-error FilterOperatorTypes is union of all possible operators\n return filterOperationsMap[type][operator];\n}\n\nconst handleStringBasedTypes = (\n filterType: FilterTypes,\n value: any\n): RQLFilterValues => {\n switch (filterType) {\n case FilterType.date:\n return {\n value,\n stringValue: (value as Date).toISOString(),\n };\n case FilterType.select:\n return {\n stringValue: value === EmptyFilterValue ? \"\" : value,\n value,\n };\n default:\n return {\n stringValue: value,\n value,\n };\n }\n};\n\nexport const getFilterValue = ({\n value,\n dataType = \"string\",\n filterType = FilterType.string,\n}: {\n value: any;\n dataType?: FilterValueType;\n filterType?: FilterTypes;\n}): RQLFilterValues => {\n if (dataType === \"boolean\") {\n return { boolValue: value, value };\n }\n if (dataType === \"number\") {\n return { numberValue: value, value };\n }\n\n // Handle string-based types\n return handleStringBasedTypes(filterType, value);\n};\n\nexport const getDataType = ({\n filterType = FilterType.string,\n dataType = \"string\",\n}: {\n dataType?: FilterValueType;\n filterType?: FilterTypes;\n}): FilterValueType => {\n switch (filterType) {\n case FilterType.select:\n return dataType;\n case FilterType.date:\n return \"string\";\n default:\n return filterType;\n }\n};\n"],"names":["dayjs","isSameOrAfter","isSameOrBefore","EmptyFilterValue","FilterType"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"filter-operations.cjs","sources":["../../../../../v1/components/data-table/utils/filter-operations.tsx"],"sourcesContent":["import dayjs from \"dayjs\";\nimport isSameOrAfter from \"dayjs/plugin/isSameOrAfter\";\nimport isSameOrBefore from \"dayjs/plugin/isSameOrBefore\";\n\nimport type { FilterFn } from \"@tanstack/table-core\";\nimport {\n FilterValue,\n NumberFilterOperatorType,\n StringFilterOperatorType,\n DateFilterOperatorType,\n SelectFilterOperatorType,\n FilterOperatorTypes,\n FilterTypes,\n FilterValueType,\n FilterType,\n} from \"~/v1/types/filters\";\nimport { EmptyFilterValue, RQLFilterValues } from \"../data-table.types\";\n\ndayjs.extend(isSameOrAfter);\ndayjs.extend(isSameOrBefore);\n\nexport type FilterFunctionsMap = {\n number: Record<NumberFilterOperatorType, FilterFn<any>>;\n string: Record<StringFilterOperatorType, FilterFn<any>>;\n date: Record<DateFilterOperatorType, FilterFn<any>>;\n select: Record<SelectFilterOperatorType, FilterFn<any>>;\n};\n\nexport const filterOperationsMap: FilterFunctionsMap = {\n number: {\n eq: (row, columnId, filterValue: FilterValue) => {\n return Number(row.getValue(columnId)) === Number(filterValue.value);\n },\n neq: (row, columnId, filterValue: FilterValue) => {\n return Number(row.getValue(columnId)) !== Number(filterValue.value);\n },\n lt: (row, columnId, filterValue: FilterValue) => {\n return Number(row.getValue(columnId)) < Number(filterValue.value);\n },\n lte: (row, columnId, filterValue: FilterValue) => {\n return Number(row.getValue(columnId)) <= Number(filterValue.value);\n },\n gt: (row, columnId, filterValue: FilterValue) => {\n return Number(row.getValue(columnId)) > Number(filterValue.value);\n },\n gte: (row, columnId, filterValue: FilterValue) => {\n return Number(row.getValue(columnId)) >= Number(filterValue.value);\n },\n },\n string: {\n eq: (row, columnId, filterValue: FilterValue) => {\n return (\n String(row.getValue(columnId)).toLowerCase() ===\n String(filterValue.value).toLowerCase()\n );\n },\n neq: (row, columnId, filterValue: FilterValue) => {\n return (\n String(row.getValue(columnId)).toLowerCase() !==\n String(filterValue.value).toLowerCase()\n );\n },\n like: (row, columnId, filterValue: FilterValue) => {\n const columnValue = (row.getValue(columnId) as string).toLowerCase();\n const filterStr = (filterValue.value as string).toLowerCase();\n return columnValue.includes(filterStr);\n },\n },\n date: {\n eq: (row, columnId, filterValue: FilterValue) => {\n return dayjs(row.getValue(columnId)).isSame(\n dayjs(filterValue.date),\n \"day\"\n );\n },\n neq: (row, columnId, filterValue: FilterValue) => {\n return !dayjs(row.getValue(columnId)).isSame(\n dayjs(filterValue.date),\n \"day\"\n );\n },\n lt: (row, columnId, filterValue: FilterValue) => {\n return dayjs(row.getValue(columnId)).isBefore(\n dayjs(filterValue.date),\n \"day\"\n );\n },\n lte: (row, columnId, filterValue: FilterValue) => {\n return dayjs(row.getValue(columnId)).isSameOrBefore(\n dayjs(filterValue.date),\n \"day\"\n );\n },\n gt: (row, columnId, filterValue: FilterValue) => {\n return dayjs(row.getValue(columnId)).isAfter(\n dayjs(filterValue.date),\n \"day\"\n );\n },\n gte: (row, columnId, filterValue: FilterValue) => {\n return dayjs(row.getValue(columnId)).isSameOrAfter(\n dayjs(filterValue.date),\n \"day\"\n );\n },\n },\n select: {\n eq: (row, columnId, filterValue: FilterValue) => {\n if (String(filterValue.value) === EmptyFilterValue) {\n return row.getValue(columnId) === \"\";\n }\n // Select only supports string values\n return String(row.getValue(columnId)) === String(filterValue.value);\n },\n neq: (row, columnId, filterValue: FilterValue) => {\n if (String(filterValue.value) === EmptyFilterValue) {\n return row.getValue(columnId) !== \"\";\n }\n // Select only supports string values\n return String(row.getValue(columnId)) !== String(filterValue.value);\n },\n },\n} as const;\n\nexport function getFilterFn<T extends keyof FilterFunctionsMap>(\n type: T,\n operator: FilterOperatorTypes\n) {\n // @ts-expect-error FilterOperatorTypes is union of all possible operators\n return filterOperationsMap[type][operator];\n}\n\nconst handleStringBasedTypes = (\n filterType: FilterTypes,\n value: any\n): RQLFilterValues => {\n switch (filterType) {\n case FilterType.date:\n return {\n value,\n stringValue: (value as Date).toISOString(),\n };\n case FilterType.select:\n return {\n stringValue: value === EmptyFilterValue ? \"\" : value,\n value,\n };\n default:\n return {\n stringValue: value,\n value,\n };\n }\n};\n\nexport const getFilterOperator = ({\n value,\n filterType,\n operator,\n}: {\n value: any;\n filterType?: FilterTypes;\n operator: FilterOperatorTypes;\n}): FilterOperatorTypes => {\n return value === EmptyFilterValue && filterType === FilterType.select\n ? \"empty\"\n : operator;\n};\n\nexport const getFilterValue = ({\n value,\n dataType = \"string\",\n filterType = FilterType.string,\n}: {\n value: any;\n dataType?: FilterValueType;\n filterType?: FilterTypes;\n}): RQLFilterValues => {\n if (dataType === \"boolean\") {\n return { boolValue: value, value };\n }\n if (dataType === \"number\") {\n return { numberValue: value, value };\n }\n\n // Handle string-based types\n return handleStringBasedTypes(filterType, value);\n};\n\nexport const getDataType = ({\n filterType = FilterType.string,\n dataType = \"string\",\n}: {\n dataType?: FilterValueType;\n filterType?: FilterTypes;\n}): FilterValueType => {\n switch (filterType) {\n case FilterType.select:\n return dataType;\n case FilterType.date:\n return \"string\";\n default:\n return filterType;\n }\n};\n"],"names":["dayjs","isSameOrAfter","isSameOrBefore","EmptyFilterValue","FilterType"],"mappings":"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"}
|
|
@@ -9,6 +9,11 @@ export type FilterFunctionsMap = {
|
|
|
9
9
|
};
|
|
10
10
|
export declare const filterOperationsMap: FilterFunctionsMap;
|
|
11
11
|
export declare function getFilterFn<T extends keyof FilterFunctionsMap>(type: T, operator: FilterOperatorTypes): any;
|
|
12
|
+
export declare const getFilterOperator: ({ value, filterType, operator, }: {
|
|
13
|
+
value: any;
|
|
14
|
+
filterType?: "string" | "number" | "select" | "date" | undefined;
|
|
15
|
+
operator: FilterOperatorTypes;
|
|
16
|
+
}) => FilterOperatorTypes;
|
|
12
17
|
export declare const getFilterValue: ({ value, dataType, filterType, }: {
|
|
13
18
|
value: any;
|
|
14
19
|
dataType?: FilterValueType | undefined;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"filter-operations.d.ts","sourceRoot":"","sources":["../../../../../v1/components/data-table/utils/filter-operations.tsx"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,sBAAsB,CAAC;AACrD,OAAO,EAEL,wBAAwB,EACxB,wBAAwB,EACxB,sBAAsB,EACtB,wBAAwB,EACxB,mBAAmB,EACnB,WAAW,EACX,eAAe,EAEhB,MAAM,oBAAoB,CAAC;AAC5B,OAAO,EAAoB,eAAe,EAAE,MAAM,qBAAqB,CAAC;AAKxE,MAAM,MAAM,kBAAkB,GAAG;IAC/B,MAAM,EAAE,MAAM,CAAC,wBAAwB,EAAE,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC;IACxD,MAAM,EAAE,MAAM,CAAC,wBAAwB,EAAE,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC;IACxD,IAAI,EAAE,MAAM,CAAC,sBAAsB,EAAE,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC;IACpD,MAAM,EAAE,MAAM,CAAC,wBAAwB,EAAE,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC;CACzD,CAAC;AAEF,eAAO,MAAM,mBAAmB,EAAE,kBA8FxB,CAAC;AAEX,wBAAgB,WAAW,CAAC,CAAC,SAAS,MAAM,kBAAkB,EAC5D,IAAI,EAAE,CAAC,EACP,QAAQ,EAAE,mBAAmB,OAI9B;AAyBD,eAAO,MAAM,cAAc;WAKlB,GAAG;;;MAGR,eAUH,CAAC;AAEF,eAAO,MAAM,WAAW;;;MAMpB,eASH,CAAC"}
|
|
1
|
+
{"version":3,"file":"filter-operations.d.ts","sourceRoot":"","sources":["../../../../../v1/components/data-table/utils/filter-operations.tsx"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,sBAAsB,CAAC;AACrD,OAAO,EAEL,wBAAwB,EACxB,wBAAwB,EACxB,sBAAsB,EACtB,wBAAwB,EACxB,mBAAmB,EACnB,WAAW,EACX,eAAe,EAEhB,MAAM,oBAAoB,CAAC;AAC5B,OAAO,EAAoB,eAAe,EAAE,MAAM,qBAAqB,CAAC;AAKxE,MAAM,MAAM,kBAAkB,GAAG;IAC/B,MAAM,EAAE,MAAM,CAAC,wBAAwB,EAAE,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC;IACxD,MAAM,EAAE,MAAM,CAAC,wBAAwB,EAAE,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC;IACxD,IAAI,EAAE,MAAM,CAAC,sBAAsB,EAAE,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC;IACpD,MAAM,EAAE,MAAM,CAAC,wBAAwB,EAAE,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC;CACzD,CAAC;AAEF,eAAO,MAAM,mBAAmB,EAAE,kBA8FxB,CAAC;AAEX,wBAAgB,WAAW,CAAC,CAAC,SAAS,MAAM,kBAAkB,EAC5D,IAAI,EAAE,CAAC,EACP,QAAQ,EAAE,mBAAmB,OAI9B;AAyBD,eAAO,MAAM,iBAAiB;WAKrB,GAAG;;cAEA,mBAAmB;MAC3B,mBAIH,CAAC;AAEF,eAAO,MAAM,cAAc;WAKlB,GAAG;;;MAGR,eAUH,CAAC;AAEF,eAAO,MAAM,WAAW;;;MAMpB,eASH,CAAC"}
|
|
@@ -102,6 +102,11 @@ const handleStringBasedTypes = (filterType, value) => {
|
|
|
102
102
|
};
|
|
103
103
|
}
|
|
104
104
|
};
|
|
105
|
+
const getFilterOperator = ({ value, filterType, operator, }) => {
|
|
106
|
+
return value === EmptyFilterValue && filterType === FilterType.select
|
|
107
|
+
? "empty"
|
|
108
|
+
: operator;
|
|
109
|
+
};
|
|
105
110
|
const getFilterValue = ({ value, dataType = "string", filterType = FilterType.string, }) => {
|
|
106
111
|
if (dataType === "boolean") {
|
|
107
112
|
return { boolValue: value, value };
|
|
@@ -123,5 +128,5 @@ const getDataType = ({ filterType = FilterType.string, dataType = "string", }) =
|
|
|
123
128
|
}
|
|
124
129
|
};
|
|
125
130
|
|
|
126
|
-
export { filterOperationsMap, getDataType, getFilterFn, getFilterValue };
|
|
131
|
+
export { filterOperationsMap, getDataType, getFilterFn, getFilterOperator, getFilterValue };
|
|
127
132
|
//# sourceMappingURL=filter-operations.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"filter-operations.js","sources":["../../../../../v1/components/data-table/utils/filter-operations.tsx"],"sourcesContent":["import dayjs from \"dayjs\";\nimport isSameOrAfter from \"dayjs/plugin/isSameOrAfter\";\nimport isSameOrBefore from \"dayjs/plugin/isSameOrBefore\";\n\nimport type { FilterFn } from \"@tanstack/table-core\";\nimport {\n FilterValue,\n NumberFilterOperatorType,\n StringFilterOperatorType,\n DateFilterOperatorType,\n SelectFilterOperatorType,\n FilterOperatorTypes,\n FilterTypes,\n FilterValueType,\n FilterType,\n} from \"~/v1/types/filters\";\nimport { EmptyFilterValue, RQLFilterValues } from \"../data-table.types\";\n\ndayjs.extend(isSameOrAfter);\ndayjs.extend(isSameOrBefore);\n\nexport type FilterFunctionsMap = {\n number: Record<NumberFilterOperatorType, FilterFn<any>>;\n string: Record<StringFilterOperatorType, FilterFn<any>>;\n date: Record<DateFilterOperatorType, FilterFn<any>>;\n select: Record<SelectFilterOperatorType, FilterFn<any>>;\n};\n\nexport const filterOperationsMap: FilterFunctionsMap = {\n number: {\n eq: (row, columnId, filterValue: FilterValue) => {\n return Number(row.getValue(columnId)) === Number(filterValue.value);\n },\n neq: (row, columnId, filterValue: FilterValue) => {\n return Number(row.getValue(columnId)) !== Number(filterValue.value);\n },\n lt: (row, columnId, filterValue: FilterValue) => {\n return Number(row.getValue(columnId)) < Number(filterValue.value);\n },\n lte: (row, columnId, filterValue: FilterValue) => {\n return Number(row.getValue(columnId)) <= Number(filterValue.value);\n },\n gt: (row, columnId, filterValue: FilterValue) => {\n return Number(row.getValue(columnId)) > Number(filterValue.value);\n },\n gte: (row, columnId, filterValue: FilterValue) => {\n return Number(row.getValue(columnId)) >= Number(filterValue.value);\n },\n },\n string: {\n eq: (row, columnId, filterValue: FilterValue) => {\n return (\n String(row.getValue(columnId)).toLowerCase() ===\n String(filterValue.value).toLowerCase()\n );\n },\n neq: (row, columnId, filterValue: FilterValue) => {\n return (\n String(row.getValue(columnId)).toLowerCase() !==\n String(filterValue.value).toLowerCase()\n );\n },\n like: (row, columnId, filterValue: FilterValue) => {\n const columnValue = (row.getValue(columnId) as string).toLowerCase();\n const filterStr = (filterValue.value as string).toLowerCase();\n return columnValue.includes(filterStr);\n },\n },\n date: {\n eq: (row, columnId, filterValue: FilterValue) => {\n return dayjs(row.getValue(columnId)).isSame(\n dayjs(filterValue.date),\n \"day\"\n );\n },\n neq: (row, columnId, filterValue: FilterValue) => {\n return !dayjs(row.getValue(columnId)).isSame(\n dayjs(filterValue.date),\n \"day\"\n );\n },\n lt: (row, columnId, filterValue: FilterValue) => {\n return dayjs(row.getValue(columnId)).isBefore(\n dayjs(filterValue.date),\n \"day\"\n );\n },\n lte: (row, columnId, filterValue: FilterValue) => {\n return dayjs(row.getValue(columnId)).isSameOrBefore(\n dayjs(filterValue.date),\n \"day\"\n );\n },\n gt: (row, columnId, filterValue: FilterValue) => {\n return dayjs(row.getValue(columnId)).isAfter(\n dayjs(filterValue.date),\n \"day\"\n );\n },\n gte: (row, columnId, filterValue: FilterValue) => {\n return dayjs(row.getValue(columnId)).isSameOrAfter(\n dayjs(filterValue.date),\n \"day\"\n );\n },\n },\n select: {\n eq: (row, columnId, filterValue: FilterValue) => {\n if (String(filterValue.value) === EmptyFilterValue) {\n return row.getValue(columnId) === \"\";\n }\n // Select only supports string values\n return String(row.getValue(columnId)) === String(filterValue.value);\n },\n neq: (row, columnId, filterValue: FilterValue) => {\n if (String(filterValue.value) === EmptyFilterValue) {\n return row.getValue(columnId) !== \"\";\n }\n // Select only supports string values\n return String(row.getValue(columnId)) !== String(filterValue.value);\n },\n },\n} as const;\n\nexport function getFilterFn<T extends keyof FilterFunctionsMap>(\n type: T,\n operator: FilterOperatorTypes\n) {\n // @ts-expect-error FilterOperatorTypes is union of all possible operators\n return filterOperationsMap[type][operator];\n}\n\nconst handleStringBasedTypes = (\n filterType: FilterTypes,\n value: any\n): RQLFilterValues => {\n switch (filterType) {\n case FilterType.date:\n return {\n value,\n stringValue: (value as Date).toISOString(),\n };\n case FilterType.select:\n return {\n stringValue: value === EmptyFilterValue ? \"\" : value,\n value,\n };\n default:\n return {\n stringValue: value,\n value,\n };\n }\n};\n\nexport const getFilterValue = ({\n value,\n dataType = \"string\",\n filterType = FilterType.string,\n}: {\n value: any;\n dataType?: FilterValueType;\n filterType?: FilterTypes;\n}): RQLFilterValues => {\n if (dataType === \"boolean\") {\n return { boolValue: value, value };\n }\n if (dataType === \"number\") {\n return { numberValue: value, value };\n }\n\n // Handle string-based types\n return handleStringBasedTypes(filterType, value);\n};\n\nexport const getDataType = ({\n filterType = FilterType.string,\n dataType = \"string\",\n}: {\n dataType?: FilterValueType;\n filterType?: FilterTypes;\n}): FilterValueType => {\n switch (filterType) {\n case FilterType.select:\n return dataType;\n case FilterType.date:\n return \"string\";\n default:\n return filterType;\n }\n};\n"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"filter-operations.js","sources":["../../../../../v1/components/data-table/utils/filter-operations.tsx"],"sourcesContent":["import dayjs from \"dayjs\";\nimport isSameOrAfter from \"dayjs/plugin/isSameOrAfter\";\nimport isSameOrBefore from \"dayjs/plugin/isSameOrBefore\";\n\nimport type { FilterFn } from \"@tanstack/table-core\";\nimport {\n FilterValue,\n NumberFilterOperatorType,\n StringFilterOperatorType,\n DateFilterOperatorType,\n SelectFilterOperatorType,\n FilterOperatorTypes,\n FilterTypes,\n FilterValueType,\n FilterType,\n} from \"~/v1/types/filters\";\nimport { EmptyFilterValue, RQLFilterValues } from \"../data-table.types\";\n\ndayjs.extend(isSameOrAfter);\ndayjs.extend(isSameOrBefore);\n\nexport type FilterFunctionsMap = {\n number: Record<NumberFilterOperatorType, FilterFn<any>>;\n string: Record<StringFilterOperatorType, FilterFn<any>>;\n date: Record<DateFilterOperatorType, FilterFn<any>>;\n select: Record<SelectFilterOperatorType, FilterFn<any>>;\n};\n\nexport const filterOperationsMap: FilterFunctionsMap = {\n number: {\n eq: (row, columnId, filterValue: FilterValue) => {\n return Number(row.getValue(columnId)) === Number(filterValue.value);\n },\n neq: (row, columnId, filterValue: FilterValue) => {\n return Number(row.getValue(columnId)) !== Number(filterValue.value);\n },\n lt: (row, columnId, filterValue: FilterValue) => {\n return Number(row.getValue(columnId)) < Number(filterValue.value);\n },\n lte: (row, columnId, filterValue: FilterValue) => {\n return Number(row.getValue(columnId)) <= Number(filterValue.value);\n },\n gt: (row, columnId, filterValue: FilterValue) => {\n return Number(row.getValue(columnId)) > Number(filterValue.value);\n },\n gte: (row, columnId, filterValue: FilterValue) => {\n return Number(row.getValue(columnId)) >= Number(filterValue.value);\n },\n },\n string: {\n eq: (row, columnId, filterValue: FilterValue) => {\n return (\n String(row.getValue(columnId)).toLowerCase() ===\n String(filterValue.value).toLowerCase()\n );\n },\n neq: (row, columnId, filterValue: FilterValue) => {\n return (\n String(row.getValue(columnId)).toLowerCase() !==\n String(filterValue.value).toLowerCase()\n );\n },\n like: (row, columnId, filterValue: FilterValue) => {\n const columnValue = (row.getValue(columnId) as string).toLowerCase();\n const filterStr = (filterValue.value as string).toLowerCase();\n return columnValue.includes(filterStr);\n },\n },\n date: {\n eq: (row, columnId, filterValue: FilterValue) => {\n return dayjs(row.getValue(columnId)).isSame(\n dayjs(filterValue.date),\n \"day\"\n );\n },\n neq: (row, columnId, filterValue: FilterValue) => {\n return !dayjs(row.getValue(columnId)).isSame(\n dayjs(filterValue.date),\n \"day\"\n );\n },\n lt: (row, columnId, filterValue: FilterValue) => {\n return dayjs(row.getValue(columnId)).isBefore(\n dayjs(filterValue.date),\n \"day\"\n );\n },\n lte: (row, columnId, filterValue: FilterValue) => {\n return dayjs(row.getValue(columnId)).isSameOrBefore(\n dayjs(filterValue.date),\n \"day\"\n );\n },\n gt: (row, columnId, filterValue: FilterValue) => {\n return dayjs(row.getValue(columnId)).isAfter(\n dayjs(filterValue.date),\n \"day\"\n );\n },\n gte: (row, columnId, filterValue: FilterValue) => {\n return dayjs(row.getValue(columnId)).isSameOrAfter(\n dayjs(filterValue.date),\n \"day\"\n );\n },\n },\n select: {\n eq: (row, columnId, filterValue: FilterValue) => {\n if (String(filterValue.value) === EmptyFilterValue) {\n return row.getValue(columnId) === \"\";\n }\n // Select only supports string values\n return String(row.getValue(columnId)) === String(filterValue.value);\n },\n neq: (row, columnId, filterValue: FilterValue) => {\n if (String(filterValue.value) === EmptyFilterValue) {\n return row.getValue(columnId) !== \"\";\n }\n // Select only supports string values\n return String(row.getValue(columnId)) !== String(filterValue.value);\n },\n },\n} as const;\n\nexport function getFilterFn<T extends keyof FilterFunctionsMap>(\n type: T,\n operator: FilterOperatorTypes\n) {\n // @ts-expect-error FilterOperatorTypes is union of all possible operators\n return filterOperationsMap[type][operator];\n}\n\nconst handleStringBasedTypes = (\n filterType: FilterTypes,\n value: any\n): RQLFilterValues => {\n switch (filterType) {\n case FilterType.date:\n return {\n value,\n stringValue: (value as Date).toISOString(),\n };\n case FilterType.select:\n return {\n stringValue: value === EmptyFilterValue ? \"\" : value,\n value,\n };\n default:\n return {\n stringValue: value,\n value,\n };\n }\n};\n\nexport const getFilterOperator = ({\n value,\n filterType,\n operator,\n}: {\n value: any;\n filterType?: FilterTypes;\n operator: FilterOperatorTypes;\n}): FilterOperatorTypes => {\n return value === EmptyFilterValue && filterType === FilterType.select\n ? \"empty\"\n : operator;\n};\n\nexport const getFilterValue = ({\n value,\n dataType = \"string\",\n filterType = FilterType.string,\n}: {\n value: any;\n dataType?: FilterValueType;\n filterType?: FilterTypes;\n}): RQLFilterValues => {\n if (dataType === \"boolean\") {\n return { boolValue: value, value };\n }\n if (dataType === \"number\") {\n return { numberValue: value, value };\n }\n\n // Handle string-based types\n return handleStringBasedTypes(filterType, value);\n};\n\nexport const getDataType = ({\n filterType = FilterType.string,\n dataType = \"string\",\n}: {\n dataType?: FilterValueType;\n filterType?: FilterTypes;\n}): FilterValueType => {\n switch (filterType) {\n case FilterType.select:\n return dataType;\n case FilterType.date:\n return \"string\";\n default:\n return filterType;\n }\n};\n"],"names":[],"mappings":"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"}
|
|
@@ -43,27 +43,30 @@ function groupData(data, group_by, columns = []) {
|
|
|
43
43
|
return [];
|
|
44
44
|
if (!group_by || group_by === dataTable_types.defaultGroupOption.id)
|
|
45
45
|
return data;
|
|
46
|
-
const
|
|
46
|
+
const groupMap = new Map();
|
|
47
|
+
data.forEach((currentData) => {
|
|
47
48
|
const item = currentData;
|
|
48
49
|
const keyValue = item[group_by];
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
50
|
+
if (!groupMap.has(keyValue)) {
|
|
51
|
+
groupMap.set(keyValue, []);
|
|
52
|
+
}
|
|
53
|
+
groupMap.get(keyValue)?.push(item);
|
|
54
|
+
});
|
|
53
55
|
const columnDef = columns.find((col) => col.accessorKey === group_by);
|
|
54
|
-
const sortOrder = columnDef?.groupSortOrder || dataTable_types.SortOrders.ASC;
|
|
55
56
|
const showGroupCount = columnDef?.showGroupCount || false;
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
57
|
+
const groupLablesMap = columnDef?.groupLabelsMap || {};
|
|
58
|
+
const groupCountMap = columnDef?.groupCountMap || {};
|
|
59
|
+
const groupedData = [];
|
|
60
|
+
groupMap.forEach((value, key) => {
|
|
61
|
+
groupedData.push({
|
|
62
|
+
label: groupLablesMap[key] || key,
|
|
63
|
+
group_key: key,
|
|
64
|
+
subRows: value,
|
|
65
|
+
count: groupCountMap[key] ?? value.length,
|
|
66
|
+
showGroupCount,
|
|
67
|
+
});
|
|
66
68
|
});
|
|
69
|
+
return groupedData;
|
|
67
70
|
}
|
|
68
71
|
const generateFilterMap = (filters$1 = []) => {
|
|
69
72
|
return new Map(filters$1
|
|
@@ -113,25 +116,26 @@ function getInitialColumnVisibility(columns = []) {
|
|
|
113
116
|
}, {});
|
|
114
117
|
}
|
|
115
118
|
function sanitizeTableQuery(query) {
|
|
116
|
-
const { group_by = [], filters: filters$1 = [], sort = [],
|
|
119
|
+
const { group_by = [], filters: filters$1 = [], sort = [], ...rest } = query;
|
|
117
120
|
const sanitizedGroupBy = group_by?.filter((key) => key !== dataTable_types.defaultGroupOption.id);
|
|
118
121
|
const sanitizedFilters = filters$1
|
|
119
122
|
?.filter((data) => data._type === filters.FilterType.select || data.value !== "")
|
|
120
123
|
?.map((data) => ({
|
|
121
124
|
name: data.name,
|
|
122
|
-
operator:
|
|
125
|
+
operator: filterOperations.getFilterOperator({
|
|
126
|
+
operator: data.operator,
|
|
127
|
+
value: data.value,
|
|
128
|
+
filterType: data._type,
|
|
129
|
+
}),
|
|
123
130
|
...filterOperations.getFilterValue({
|
|
124
131
|
value: data.value,
|
|
125
132
|
filterType: data._type,
|
|
126
133
|
dataType: data._dataType,
|
|
127
134
|
}),
|
|
128
135
|
})) || [];
|
|
129
|
-
const sortWithGroupBy = sanitizedGroupBy?.[0]
|
|
130
|
-
? [{ name: group_by[0], order: __group_by_sort }, ...sort]
|
|
131
|
-
: sort;
|
|
132
136
|
return {
|
|
133
137
|
...rest,
|
|
134
|
-
sort:
|
|
138
|
+
sort: sort,
|
|
135
139
|
group_by: sanitizedGroupBy,
|
|
136
140
|
filters: sanitizedFilters,
|
|
137
141
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.cjs","sources":["../../../../../v1/components/data-table/utils/index.tsx"],"sourcesContent":["import { TableState } from \"@tanstack/table-core\";\nimport {\n SortOrders,\n DataTableColumnDef,\n GroupedData,\n DataTableSort,\n DataTableQuery,\n RQLFilter,\n defaultGroupOption,\n} from \"../data-table.types\";\nimport { FilterType } from \"~/v1/types/filters\";\nimport { getFilterFn, getFilterValue } from \"./filter-operations\";\n\nexport function queryToTableState(query: DataTableQuery): Partial<TableState> {\n const columnFilters =\n query.filters\n ?.filter((data) => data.value !== \"\")\n ?.map((data) => {\n const valueObject =\n data._type === FilterType.date\n ? { date: data.value }\n : { value: data.value };\n return {\n value: valueObject,\n id: data?.name,\n };\n }) || [];\n\n const sorting = query.sort?.map((data) => ({\n id: data?.name,\n desc: data?.order === SortOrders.DESC,\n }));\n return {\n columnFilters: columnFilters,\n sorting: sorting,\n globalFilter: query.search,\n };\n}\n\nexport function getColumnsWithFilterFn<TData, TValue>(\n columns: DataTableColumnDef<TData, TValue>[] = [],\n filters: RQLFilter[] = []\n): DataTableColumnDef<TData, TValue>[] {\n return columns.map((column) => {\n const colFilter = filters?.find(\n (filter) => filter.name === column.accessorKey\n );\n const filterFn = colFilter?.operator\n ? getFilterFn(column.filterType || FilterType.string, colFilter.operator)\n : undefined;\n\n return {\n ...column,\n filterFn,\n };\n });\n}\n\ntype GroupedDataMap<T> = Record<string, T[]>;\n\nexport function groupData<TData>(\n data: TData[],\n group_by?: string,\n columns: DataTableColumnDef<TData, any>[] = []\n): GroupedData<TData>[] {\n if (!data) return [];\n if (!group_by || group_by === defaultGroupOption.id)\n return data as GroupedData<TData>[];\n const group_by_map = data.reduce(\n (acc: GroupedDataMap<TData>, currentData: TData) => {\n const item = currentData as Record<string, string>;\n const keyValue = item[group_by];\n acc[keyValue] = acc[keyValue] || [];\n acc[keyValue].push(item as TData);\n return acc;\n },\n {} as GroupedDataMap<TData>\n );\n\n const columnDef = columns.find((col) => col.accessorKey === group_by);\n const sortOrder = columnDef?.groupSortOrder || SortOrders.ASC;\n const showGroupCount = columnDef?.showGroupCount || false;\n\n return Object.entries(group_by_map)\n .map(([key, value]) => ({\n group_key: key,\n subRows: value,\n count: columnDef?.groupCountMap?.[key] ?? value.length,\n showGroupCount,\n }))\n .sort((a, b) => {\n const sortValue = sortOrder === SortOrders.ASC ? 1 : -1;\n return a.group_key.localeCompare(b.group_key) * sortValue;\n });\n}\n\nconst generateFilterMap = (filters: RQLFilter[] = []): Map<string, any> => {\n return new Map(\n filters\n ?.filter((data) => data._type === FilterType.select || data.value !== \"\")\n .map(({ name, operator, value }) => [`${name}-${operator}`, value])\n );\n};\n\nconst generateSortMap = (sort: DataTableSort[] = []): Map<string, string> => {\n return new Map(sort.map(({ name, order }) => [name, order]));\n};\n\nconst isFilterChanged = (\n oldFilters: RQLFilter[] = [],\n newFilters: RQLFilter[] = []\n): boolean => {\n const oldFilterMap = generateFilterMap(oldFilters);\n const newFilterMap = generateFilterMap(newFilters);\n\n if (oldFilterMap.size !== newFilterMap.size) return true;\n\n return [...newFilterMap].some(\n ([key, value]) => oldFilterMap.get(key) !== value\n );\n};\n\nconst isSortChanged = (\n oldSort: DataTableSort[] = [],\n newSort: DataTableSort[] = []\n): boolean => {\n if (oldSort.length !== newSort.length) return true;\n\n const oldSortMap = generateSortMap(oldSort);\n const newSortMap = generateSortMap(newSort);\n\n return [...newSortMap].some(([key, order]) => oldSortMap.get(key) !== order);\n};\n\nconst isGroupChanged = (\n oldGroupBy: string[] = [],\n newGroupBy: string[] = []\n): boolean => {\n if (oldGroupBy.length !== newGroupBy.length) return true;\n\n const oldGroupSet = new Set(oldGroupBy);\n return newGroupBy.some((item) => !oldGroupSet.has(item));\n};\n\nconst isSearchChanged = (oldSearch?: string, newSearch?: string): boolean => {\n return oldSearch !== newSearch;\n};\n\nexport const hasQueryChanged = (\n oldQuery: DataTableQuery | null,\n newQuery: DataTableQuery\n): boolean => {\n if (!oldQuery) return true;\n return (\n isFilterChanged(oldQuery.filters, newQuery.filters) ||\n isSortChanged(oldQuery.sort, newQuery.sort) ||\n isGroupChanged(oldQuery.group_by, newQuery.group_by) ||\n isSearchChanged(oldQuery.search, newQuery.search)\n );\n};\n\nexport function getInitialColumnVisibility<TData, TValue>(\n columns: DataTableColumnDef<TData, TValue>[] = []\n): Record<string, boolean> | {} {\n return columns.reduce((acc, col) => {\n return {\n ...acc,\n [col.accessorKey]: col.defaultHidden ? false : true,\n };\n }, {});\n}\n\nexport function sanitizeTableQuery(query: DataTableQuery): DataTableQuery {\n const {\n group_by = [],\n filters = [],\n sort = [],\n __group_by_sort = SortOrders.ASC,\n ...rest\n } = query;\n const sanitizedGroupBy = group_by?.filter(\n (key) => key !== defaultGroupOption.id\n );\n\n const sanitizedFilters =\n filters\n ?.filter((data) => data._type === FilterType.select || data.value !== \"\")\n ?.map((data) => ({\n name: data.name,\n operator: data.operator,\n ...getFilterValue({\n value: data.value,\n filterType: data._type,\n dataType: data._dataType,\n }),\n })) || [];\n\n const sortWithGroupBy = sanitizedGroupBy?.[0]\n ? [{ name: group_by[0], order: __group_by_sort }, ...sort]\n : sort;\n return {\n ...rest,\n sort: sortWithGroupBy,\n group_by: sanitizedGroupBy,\n filters: sanitizedFilters,\n };\n}\n\nexport function getDefaultTableQuery(\n defaultSort: DataTableSort,\n oldQuery: DataTableQuery = {}\n): DataTableQuery {\n return {\n sort: [defaultSort],\n group_by: [defaultGroupOption.id],\n ...oldQuery,\n };\n}\n"],"names":["FilterType","SortOrders","filters","getFilterFn","defaultGroupOption","getFilterValue"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"index.cjs","sources":["../../../../../v1/components/data-table/utils/index.tsx"],"sourcesContent":["import { TableState } from \"@tanstack/table-core\";\nimport {\n SortOrders,\n DataTableColumnDef,\n GroupedData,\n DataTableSort,\n DataTableQuery,\n RQLFilter,\n defaultGroupOption,\n} from \"../data-table.types\";\nimport { FilterType } from \"~/v1/types/filters\";\nimport {\n getFilterFn,\n getFilterOperator,\n getFilterValue,\n} from \"./filter-operations\";\n\nexport function queryToTableState(query: DataTableQuery): Partial<TableState> {\n const columnFilters =\n query.filters\n ?.filter((data) => data.value !== \"\")\n ?.map((data) => {\n const valueObject =\n data._type === FilterType.date\n ? { date: data.value }\n : { value: data.value };\n return {\n value: valueObject,\n id: data?.name,\n };\n }) || [];\n\n const sorting = query.sort?.map((data) => ({\n id: data?.name,\n desc: data?.order === SortOrders.DESC,\n }));\n return {\n columnFilters: columnFilters,\n sorting: sorting,\n globalFilter: query.search,\n };\n}\n\nexport function getColumnsWithFilterFn<TData, TValue>(\n columns: DataTableColumnDef<TData, TValue>[] = [],\n filters: RQLFilter[] = []\n): DataTableColumnDef<TData, TValue>[] {\n return columns.map((column) => {\n const colFilter = filters?.find(\n (filter) => filter.name === column.accessorKey\n );\n const filterFn = colFilter?.operator\n ? getFilterFn(column.filterType || FilterType.string, colFilter.operator)\n : undefined;\n\n return {\n ...column,\n filterFn,\n };\n });\n}\n\nexport function groupData<TData>(\n data: TData[],\n group_by?: string,\n columns: DataTableColumnDef<TData, any>[] = []\n): GroupedData<TData>[] {\n if (!data) return [];\n if (!group_by || group_by === defaultGroupOption.id)\n return data as GroupedData<TData>[];\n\n const groupMap = new Map<string, TData[]>();\n data.forEach((currentData: TData) => {\n const item = currentData as Record<string, string>;\n const keyValue = item[group_by];\n if (!groupMap.has(keyValue)) {\n groupMap.set(keyValue, []);\n }\n groupMap.get(keyValue)?.push(item as TData);\n });\n\n const columnDef = columns.find((col) => col.accessorKey === group_by);\n const showGroupCount = columnDef?.showGroupCount || false;\n const groupLablesMap = columnDef?.groupLabelsMap || {};\n const groupCountMap = columnDef?.groupCountMap || {};\n const groupedData: GroupedData<TData>[] = [];\n\n groupMap.forEach((value, key) => {\n groupedData.push({\n label: groupLablesMap[key] || key,\n group_key: key,\n subRows: value,\n count: groupCountMap[key] ?? value.length,\n showGroupCount,\n });\n });\n\n return groupedData;\n}\n\nconst generateFilterMap = (filters: RQLFilter[] = []): Map<string, any> => {\n return new Map(\n filters\n ?.filter((data) => data._type === FilterType.select || data.value !== \"\")\n .map(({ name, operator, value }) => [`${name}-${operator}`, value])\n );\n};\n\nconst generateSortMap = (sort: DataTableSort[] = []): Map<string, string> => {\n return new Map(sort.map(({ name, order }) => [name, order]));\n};\n\nconst isFilterChanged = (\n oldFilters: RQLFilter[] = [],\n newFilters: RQLFilter[] = []\n): boolean => {\n const oldFilterMap = generateFilterMap(oldFilters);\n const newFilterMap = generateFilterMap(newFilters);\n\n if (oldFilterMap.size !== newFilterMap.size) return true;\n\n return [...newFilterMap].some(\n ([key, value]) => oldFilterMap.get(key) !== value\n );\n};\n\nconst isSortChanged = (\n oldSort: DataTableSort[] = [],\n newSort: DataTableSort[] = []\n): boolean => {\n if (oldSort.length !== newSort.length) return true;\n\n const oldSortMap = generateSortMap(oldSort);\n const newSortMap = generateSortMap(newSort);\n\n return [...newSortMap].some(([key, order]) => oldSortMap.get(key) !== order);\n};\n\nconst isGroupChanged = (\n oldGroupBy: string[] = [],\n newGroupBy: string[] = []\n): boolean => {\n if (oldGroupBy.length !== newGroupBy.length) return true;\n\n const oldGroupSet = new Set(oldGroupBy);\n return newGroupBy.some((item) => !oldGroupSet.has(item));\n};\n\nconst isSearchChanged = (oldSearch?: string, newSearch?: string): boolean => {\n return oldSearch !== newSearch;\n};\n\nexport const hasQueryChanged = (\n oldQuery: DataTableQuery | null,\n newQuery: DataTableQuery\n): boolean => {\n if (!oldQuery) return true;\n return (\n isFilterChanged(oldQuery.filters, newQuery.filters) ||\n isSortChanged(oldQuery.sort, newQuery.sort) ||\n isGroupChanged(oldQuery.group_by, newQuery.group_by) ||\n isSearchChanged(oldQuery.search, newQuery.search)\n );\n};\n\nexport function getInitialColumnVisibility<TData, TValue>(\n columns: DataTableColumnDef<TData, TValue>[] = []\n): Record<string, boolean> | {} {\n return columns.reduce((acc, col) => {\n return {\n ...acc,\n [col.accessorKey]: col.defaultHidden ? false : true,\n };\n }, {});\n}\n\nexport function sanitizeTableQuery(query: DataTableQuery): DataTableQuery {\n const { group_by = [], filters = [], sort = [], ...rest } = query;\n const sanitizedGroupBy = group_by?.filter(\n (key) => key !== defaultGroupOption.id\n );\n\n const sanitizedFilters =\n filters\n ?.filter((data) => data._type === FilterType.select || data.value !== \"\")\n ?.map((data) => ({\n name: data.name,\n operator: getFilterOperator({\n operator: data.operator,\n value: data.value,\n filterType: data._type,\n }),\n ...getFilterValue({\n value: data.value,\n filterType: data._type,\n dataType: data._dataType,\n }),\n })) || [];\n\n return {\n ...rest,\n sort: sort,\n group_by: sanitizedGroupBy,\n filters: sanitizedFilters,\n };\n}\n\nexport function getDefaultTableQuery(\n defaultSort: DataTableSort,\n oldQuery: DataTableQuery = {}\n): DataTableQuery {\n return {\n sort: [defaultSort],\n group_by: [defaultGroupOption.id],\n ...oldQuery,\n };\n}\n"],"names":["FilterType","SortOrders","filters","getFilterFn","defaultGroupOption","getFilterOperator","getFilterValue"],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../v1/components/data-table/utils/index.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,sBAAsB,CAAC;AAClD,OAAO,EAEL,kBAAkB,EAClB,WAAW,EACX,aAAa,EACb,cAAc,EACd,SAAS,EAEV,MAAM,qBAAqB,CAAC;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../v1/components/data-table/utils/index.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,sBAAsB,CAAC;AAClD,OAAO,EAEL,kBAAkB,EAClB,WAAW,EACX,aAAa,EACb,cAAc,EACd,SAAS,EAEV,MAAM,qBAAqB,CAAC;AAQ7B,wBAAgB,iBAAiB,CAAC,KAAK,EAAE,cAAc,GAAG,OAAO,CAAC,UAAU,CAAC,CAwB5E;AAED,wBAAgB,sBAAsB,CAAC,KAAK,EAAE,MAAM,EAClD,OAAO,GAAE,kBAAkB,CAAC,KAAK,EAAE,MAAM,CAAC,EAAO,EACjD,OAAO,GAAE,SAAS,EAAO,GACxB,kBAAkB,CAAC,KAAK,EAAE,MAAM,CAAC,EAAE,CAcrC;AAED,wBAAgB,SAAS,CAAC,KAAK,EAC7B,IAAI,EAAE,KAAK,EAAE,EACb,QAAQ,CAAC,EAAE,MAAM,EACjB,OAAO,GAAE,kBAAkB,CAAC,KAAK,EAAE,GAAG,CAAC,EAAO,GAC7C,WAAW,CAAC,KAAK,CAAC,EAAE,CAgCtB;AAsDD,eAAO,MAAM,eAAe,aAChB,cAAc,GAAG,IAAI,YACrB,cAAc,KACvB,OAQF,CAAC;AAEF,wBAAgB,0BAA0B,CAAC,KAAK,EAAE,MAAM,EACtD,OAAO,GAAE,kBAAkB,CAAC,KAAK,EAAE,MAAM,CAAC,EAAO,GAChD,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,EAAE,CAO9B;AAED,wBAAgB,kBAAkB,CAAC,KAAK,EAAE,cAAc,GAAG,cAAc,CA6BxE;AAED,wBAAgB,oBAAoB,CAClC,WAAW,EAAE,aAAa,EAC1B,QAAQ,GAAE,cAAmB,GAC5B,cAAc,CAMhB"}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { SortOrders, defaultGroupOption } from '../data-table.types.js';
|
|
2
2
|
import { FilterType } from '../../../types/filters.js';
|
|
3
|
-
import { getFilterFn, getFilterValue } from './filter-operations.js';
|
|
3
|
+
import { getFilterFn, getFilterOperator, getFilterValue } from './filter-operations.js';
|
|
4
4
|
|
|
5
5
|
function queryToTableState(query) {
|
|
6
6
|
const columnFilters = query.filters
|
|
@@ -41,27 +41,30 @@ function groupData(data, group_by, columns = []) {
|
|
|
41
41
|
return [];
|
|
42
42
|
if (!group_by || group_by === defaultGroupOption.id)
|
|
43
43
|
return data;
|
|
44
|
-
const
|
|
44
|
+
const groupMap = new Map();
|
|
45
|
+
data.forEach((currentData) => {
|
|
45
46
|
const item = currentData;
|
|
46
47
|
const keyValue = item[group_by];
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
48
|
+
if (!groupMap.has(keyValue)) {
|
|
49
|
+
groupMap.set(keyValue, []);
|
|
50
|
+
}
|
|
51
|
+
groupMap.get(keyValue)?.push(item);
|
|
52
|
+
});
|
|
51
53
|
const columnDef = columns.find((col) => col.accessorKey === group_by);
|
|
52
|
-
const sortOrder = columnDef?.groupSortOrder || SortOrders.ASC;
|
|
53
54
|
const showGroupCount = columnDef?.showGroupCount || false;
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
55
|
+
const groupLablesMap = columnDef?.groupLabelsMap || {};
|
|
56
|
+
const groupCountMap = columnDef?.groupCountMap || {};
|
|
57
|
+
const groupedData = [];
|
|
58
|
+
groupMap.forEach((value, key) => {
|
|
59
|
+
groupedData.push({
|
|
60
|
+
label: groupLablesMap[key] || key,
|
|
61
|
+
group_key: key,
|
|
62
|
+
subRows: value,
|
|
63
|
+
count: groupCountMap[key] ?? value.length,
|
|
64
|
+
showGroupCount,
|
|
65
|
+
});
|
|
64
66
|
});
|
|
67
|
+
return groupedData;
|
|
65
68
|
}
|
|
66
69
|
const generateFilterMap = (filters = []) => {
|
|
67
70
|
return new Map(filters
|
|
@@ -111,25 +114,26 @@ function getInitialColumnVisibility(columns = []) {
|
|
|
111
114
|
}, {});
|
|
112
115
|
}
|
|
113
116
|
function sanitizeTableQuery(query) {
|
|
114
|
-
const { group_by = [], filters = [], sort = [],
|
|
117
|
+
const { group_by = [], filters = [], sort = [], ...rest } = query;
|
|
115
118
|
const sanitizedGroupBy = group_by?.filter((key) => key !== defaultGroupOption.id);
|
|
116
119
|
const sanitizedFilters = filters
|
|
117
120
|
?.filter((data) => data._type === FilterType.select || data.value !== "")
|
|
118
121
|
?.map((data) => ({
|
|
119
122
|
name: data.name,
|
|
120
|
-
operator:
|
|
123
|
+
operator: getFilterOperator({
|
|
124
|
+
operator: data.operator,
|
|
125
|
+
value: data.value,
|
|
126
|
+
filterType: data._type,
|
|
127
|
+
}),
|
|
121
128
|
...getFilterValue({
|
|
122
129
|
value: data.value,
|
|
123
130
|
filterType: data._type,
|
|
124
131
|
dataType: data._dataType,
|
|
125
132
|
}),
|
|
126
133
|
})) || [];
|
|
127
|
-
const sortWithGroupBy = sanitizedGroupBy?.[0]
|
|
128
|
-
? [{ name: group_by[0], order: __group_by_sort }, ...sort]
|
|
129
|
-
: sort;
|
|
130
134
|
return {
|
|
131
135
|
...rest,
|
|
132
|
-
sort:
|
|
136
|
+
sort: sort,
|
|
133
137
|
group_by: sanitizedGroupBy,
|
|
134
138
|
filters: sanitizedFilters,
|
|
135
139
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sources":["../../../../../v1/components/data-table/utils/index.tsx"],"sourcesContent":["import { TableState } from \"@tanstack/table-core\";\nimport {\n SortOrders,\n DataTableColumnDef,\n GroupedData,\n DataTableSort,\n DataTableQuery,\n RQLFilter,\n defaultGroupOption,\n} from \"../data-table.types\";\nimport { FilterType } from \"~/v1/types/filters\";\nimport { getFilterFn, getFilterValue } from \"./filter-operations\";\n\nexport function queryToTableState(query: DataTableQuery): Partial<TableState> {\n const columnFilters =\n query.filters\n ?.filter((data) => data.value !== \"\")\n ?.map((data) => {\n const valueObject =\n data._type === FilterType.date\n ? { date: data.value }\n : { value: data.value };\n return {\n value: valueObject,\n id: data?.name,\n };\n }) || [];\n\n const sorting = query.sort?.map((data) => ({\n id: data?.name,\n desc: data?.order === SortOrders.DESC,\n }));\n return {\n columnFilters: columnFilters,\n sorting: sorting,\n globalFilter: query.search,\n };\n}\n\nexport function getColumnsWithFilterFn<TData, TValue>(\n columns: DataTableColumnDef<TData, TValue>[] = [],\n filters: RQLFilter[] = []\n): DataTableColumnDef<TData, TValue>[] {\n return columns.map((column) => {\n const colFilter = filters?.find(\n (filter) => filter.name === column.accessorKey\n );\n const filterFn = colFilter?.operator\n ? getFilterFn(column.filterType || FilterType.string, colFilter.operator)\n : undefined;\n\n return {\n ...column,\n filterFn,\n };\n });\n}\n\ntype GroupedDataMap<T> = Record<string, T[]>;\n\nexport function groupData<TData>(\n data: TData[],\n group_by?: string,\n columns: DataTableColumnDef<TData, any>[] = []\n): GroupedData<TData>[] {\n if (!data) return [];\n if (!group_by || group_by === defaultGroupOption.id)\n return data as GroupedData<TData>[];\n const group_by_map = data.reduce(\n (acc: GroupedDataMap<TData>, currentData: TData) => {\n const item = currentData as Record<string, string>;\n const keyValue = item[group_by];\n acc[keyValue] = acc[keyValue] || [];\n acc[keyValue].push(item as TData);\n return acc;\n },\n {} as GroupedDataMap<TData>\n );\n\n const columnDef = columns.find((col) => col.accessorKey === group_by);\n const sortOrder = columnDef?.groupSortOrder || SortOrders.ASC;\n const showGroupCount = columnDef?.showGroupCount || false;\n\n return Object.entries(group_by_map)\n .map(([key, value]) => ({\n group_key: key,\n subRows: value,\n count: columnDef?.groupCountMap?.[key] ?? value.length,\n showGroupCount,\n }))\n .sort((a, b) => {\n const sortValue = sortOrder === SortOrders.ASC ? 1 : -1;\n return a.group_key.localeCompare(b.group_key) * sortValue;\n });\n}\n\nconst generateFilterMap = (filters: RQLFilter[] = []): Map<string, any> => {\n return new Map(\n filters\n ?.filter((data) => data._type === FilterType.select || data.value !== \"\")\n .map(({ name, operator, value }) => [`${name}-${operator}`, value])\n );\n};\n\nconst generateSortMap = (sort: DataTableSort[] = []): Map<string, string> => {\n return new Map(sort.map(({ name, order }) => [name, order]));\n};\n\nconst isFilterChanged = (\n oldFilters: RQLFilter[] = [],\n newFilters: RQLFilter[] = []\n): boolean => {\n const oldFilterMap = generateFilterMap(oldFilters);\n const newFilterMap = generateFilterMap(newFilters);\n\n if (oldFilterMap.size !== newFilterMap.size) return true;\n\n return [...newFilterMap].some(\n ([key, value]) => oldFilterMap.get(key) !== value\n );\n};\n\nconst isSortChanged = (\n oldSort: DataTableSort[] = [],\n newSort: DataTableSort[] = []\n): boolean => {\n if (oldSort.length !== newSort.length) return true;\n\n const oldSortMap = generateSortMap(oldSort);\n const newSortMap = generateSortMap(newSort);\n\n return [...newSortMap].some(([key, order]) => oldSortMap.get(key) !== order);\n};\n\nconst isGroupChanged = (\n oldGroupBy: string[] = [],\n newGroupBy: string[] = []\n): boolean => {\n if (oldGroupBy.length !== newGroupBy.length) return true;\n\n const oldGroupSet = new Set(oldGroupBy);\n return newGroupBy.some((item) => !oldGroupSet.has(item));\n};\n\nconst isSearchChanged = (oldSearch?: string, newSearch?: string): boolean => {\n return oldSearch !== newSearch;\n};\n\nexport const hasQueryChanged = (\n oldQuery: DataTableQuery | null,\n newQuery: DataTableQuery\n): boolean => {\n if (!oldQuery) return true;\n return (\n isFilterChanged(oldQuery.filters, newQuery.filters) ||\n isSortChanged(oldQuery.sort, newQuery.sort) ||\n isGroupChanged(oldQuery.group_by, newQuery.group_by) ||\n isSearchChanged(oldQuery.search, newQuery.search)\n );\n};\n\nexport function getInitialColumnVisibility<TData, TValue>(\n columns: DataTableColumnDef<TData, TValue>[] = []\n): Record<string, boolean> | {} {\n return columns.reduce((acc, col) => {\n return {\n ...acc,\n [col.accessorKey]: col.defaultHidden ? false : true,\n };\n }, {});\n}\n\nexport function sanitizeTableQuery(query: DataTableQuery): DataTableQuery {\n const {\n group_by = [],\n filters = [],\n sort = [],\n __group_by_sort = SortOrders.ASC,\n ...rest\n } = query;\n const sanitizedGroupBy = group_by?.filter(\n (key) => key !== defaultGroupOption.id\n );\n\n const sanitizedFilters =\n filters\n ?.filter((data) => data._type === FilterType.select || data.value !== \"\")\n ?.map((data) => ({\n name: data.name,\n operator: data.operator,\n ...getFilterValue({\n value: data.value,\n filterType: data._type,\n dataType: data._dataType,\n }),\n })) || [];\n\n const sortWithGroupBy = sanitizedGroupBy?.[0]\n ? [{ name: group_by[0], order: __group_by_sort }, ...sort]\n : sort;\n return {\n ...rest,\n sort: sortWithGroupBy,\n group_by: sanitizedGroupBy,\n filters: sanitizedFilters,\n };\n}\n\nexport function getDefaultTableQuery(\n defaultSort: DataTableSort,\n oldQuery: DataTableQuery = {}\n): DataTableQuery {\n return {\n sort: [defaultSort],\n group_by: [defaultGroupOption.id],\n ...oldQuery,\n };\n}\n"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"index.js","sources":["../../../../../v1/components/data-table/utils/index.tsx"],"sourcesContent":["import { TableState } from \"@tanstack/table-core\";\nimport {\n SortOrders,\n DataTableColumnDef,\n GroupedData,\n DataTableSort,\n DataTableQuery,\n RQLFilter,\n defaultGroupOption,\n} from \"../data-table.types\";\nimport { FilterType } from \"~/v1/types/filters\";\nimport {\n getFilterFn,\n getFilterOperator,\n getFilterValue,\n} from \"./filter-operations\";\n\nexport function queryToTableState(query: DataTableQuery): Partial<TableState> {\n const columnFilters =\n query.filters\n ?.filter((data) => data.value !== \"\")\n ?.map((data) => {\n const valueObject =\n data._type === FilterType.date\n ? { date: data.value }\n : { value: data.value };\n return {\n value: valueObject,\n id: data?.name,\n };\n }) || [];\n\n const sorting = query.sort?.map((data) => ({\n id: data?.name,\n desc: data?.order === SortOrders.DESC,\n }));\n return {\n columnFilters: columnFilters,\n sorting: sorting,\n globalFilter: query.search,\n };\n}\n\nexport function getColumnsWithFilterFn<TData, TValue>(\n columns: DataTableColumnDef<TData, TValue>[] = [],\n filters: RQLFilter[] = []\n): DataTableColumnDef<TData, TValue>[] {\n return columns.map((column) => {\n const colFilter = filters?.find(\n (filter) => filter.name === column.accessorKey\n );\n const filterFn = colFilter?.operator\n ? getFilterFn(column.filterType || FilterType.string, colFilter.operator)\n : undefined;\n\n return {\n ...column,\n filterFn,\n };\n });\n}\n\nexport function groupData<TData>(\n data: TData[],\n group_by?: string,\n columns: DataTableColumnDef<TData, any>[] = []\n): GroupedData<TData>[] {\n if (!data) return [];\n if (!group_by || group_by === defaultGroupOption.id)\n return data as GroupedData<TData>[];\n\n const groupMap = new Map<string, TData[]>();\n data.forEach((currentData: TData) => {\n const item = currentData as Record<string, string>;\n const keyValue = item[group_by];\n if (!groupMap.has(keyValue)) {\n groupMap.set(keyValue, []);\n }\n groupMap.get(keyValue)?.push(item as TData);\n });\n\n const columnDef = columns.find((col) => col.accessorKey === group_by);\n const showGroupCount = columnDef?.showGroupCount || false;\n const groupLablesMap = columnDef?.groupLabelsMap || {};\n const groupCountMap = columnDef?.groupCountMap || {};\n const groupedData: GroupedData<TData>[] = [];\n\n groupMap.forEach((value, key) => {\n groupedData.push({\n label: groupLablesMap[key] || key,\n group_key: key,\n subRows: value,\n count: groupCountMap[key] ?? value.length,\n showGroupCount,\n });\n });\n\n return groupedData;\n}\n\nconst generateFilterMap = (filters: RQLFilter[] = []): Map<string, any> => {\n return new Map(\n filters\n ?.filter((data) => data._type === FilterType.select || data.value !== \"\")\n .map(({ name, operator, value }) => [`${name}-${operator}`, value])\n );\n};\n\nconst generateSortMap = (sort: DataTableSort[] = []): Map<string, string> => {\n return new Map(sort.map(({ name, order }) => [name, order]));\n};\n\nconst isFilterChanged = (\n oldFilters: RQLFilter[] = [],\n newFilters: RQLFilter[] = []\n): boolean => {\n const oldFilterMap = generateFilterMap(oldFilters);\n const newFilterMap = generateFilterMap(newFilters);\n\n if (oldFilterMap.size !== newFilterMap.size) return true;\n\n return [...newFilterMap].some(\n ([key, value]) => oldFilterMap.get(key) !== value\n );\n};\n\nconst isSortChanged = (\n oldSort: DataTableSort[] = [],\n newSort: DataTableSort[] = []\n): boolean => {\n if (oldSort.length !== newSort.length) return true;\n\n const oldSortMap = generateSortMap(oldSort);\n const newSortMap = generateSortMap(newSort);\n\n return [...newSortMap].some(([key, order]) => oldSortMap.get(key) !== order);\n};\n\nconst isGroupChanged = (\n oldGroupBy: string[] = [],\n newGroupBy: string[] = []\n): boolean => {\n if (oldGroupBy.length !== newGroupBy.length) return true;\n\n const oldGroupSet = new Set(oldGroupBy);\n return newGroupBy.some((item) => !oldGroupSet.has(item));\n};\n\nconst isSearchChanged = (oldSearch?: string, newSearch?: string): boolean => {\n return oldSearch !== newSearch;\n};\n\nexport const hasQueryChanged = (\n oldQuery: DataTableQuery | null,\n newQuery: DataTableQuery\n): boolean => {\n if (!oldQuery) return true;\n return (\n isFilterChanged(oldQuery.filters, newQuery.filters) ||\n isSortChanged(oldQuery.sort, newQuery.sort) ||\n isGroupChanged(oldQuery.group_by, newQuery.group_by) ||\n isSearchChanged(oldQuery.search, newQuery.search)\n );\n};\n\nexport function getInitialColumnVisibility<TData, TValue>(\n columns: DataTableColumnDef<TData, TValue>[] = []\n): Record<string, boolean> | {} {\n return columns.reduce((acc, col) => {\n return {\n ...acc,\n [col.accessorKey]: col.defaultHidden ? false : true,\n };\n }, {});\n}\n\nexport function sanitizeTableQuery(query: DataTableQuery): DataTableQuery {\n const { group_by = [], filters = [], sort = [], ...rest } = query;\n const sanitizedGroupBy = group_by?.filter(\n (key) => key !== defaultGroupOption.id\n );\n\n const sanitizedFilters =\n filters\n ?.filter((data) => data._type === FilterType.select || data.value !== \"\")\n ?.map((data) => ({\n name: data.name,\n operator: getFilterOperator({\n operator: data.operator,\n value: data.value,\n filterType: data._type,\n }),\n ...getFilterValue({\n value: data.value,\n filterType: data._type,\n dataType: data._dataType,\n }),\n })) || [];\n\n return {\n ...rest,\n sort: sort,\n group_by: sanitizedGroupBy,\n filters: sanitizedFilters,\n };\n}\n\nexport function getDefaultTableQuery(\n defaultSort: DataTableSort,\n oldQuery: DataTableQuery = {}\n): DataTableQuery {\n return {\n sort: [defaultSort],\n group_by: [defaultGroupOption.id],\n ...oldQuery,\n };\n}\n"],"names":[],"mappings":";;;;AAiBM,SAAU,iBAAiB,CAAC,KAAqB,EAAA;AACrD,IAAA,MAAM,aAAa,GACjB,KAAK,CAAC,OAAO;AACX,UAAE,MAAM,CAAC,CAAC,IAAI,KAAK,IAAI,CAAC,KAAK,KAAK,EAAE,CAAC;AACrC,UAAE,GAAG,CAAC,CAAC,IAAI,KAAI;QACb,MAAM,WAAW,GACf,IAAI,CAAC,KAAK,KAAK,UAAU,CAAC,IAAI;AAC5B,cAAE,EAAE,IAAI,EAAE,IAAI,CAAC,KAAK,EAAE;cACpB,EAAE,KAAK,EAAE,IAAI,CAAC,KAAK,EAAE,CAAC;QAC5B,OAAO;AACL,YAAA,KAAK,EAAE,WAAW;YAClB,EAAE,EAAE,IAAI,EAAE,IAAI;SACf,CAAC;KACH,CAAC,IAAI,EAAE,CAAC;AAEb,IAAA,MAAM,OAAO,GAAG,KAAK,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC,IAAI,MAAM;QACzC,EAAE,EAAE,IAAI,EAAE,IAAI;AACd,QAAA,IAAI,EAAE,IAAI,EAAE,KAAK,KAAK,UAAU,CAAC,IAAI;AACtC,KAAA,CAAC,CAAC,CAAC;IACJ,OAAO;AACL,QAAA,aAAa,EAAE,aAAa;AAC5B,QAAA,OAAO,EAAE,OAAO;QAChB,YAAY,EAAE,KAAK,CAAC,MAAM;KAC3B,CAAC;AACJ,CAAC;SAEe,sBAAsB,CACpC,UAA+C,EAAE,EACjD,UAAuB,EAAE,EAAA;AAEzB,IAAA,OAAO,OAAO,CAAC,GAAG,CAAC,CAAC,MAAM,KAAI;AAC5B,QAAA,MAAM,SAAS,GAAG,OAAO,EAAE,IAAI,CAC7B,CAAC,MAAM,KAAK,MAAM,CAAC,IAAI,KAAK,MAAM,CAAC,WAAW,CAC/C,CAAC;AACF,QAAA,MAAM,QAAQ,GAAG,SAAS,EAAE,QAAQ;AAClC,cAAE,WAAW,CAAC,MAAM,CAAC,UAAU,IAAI,UAAU,CAAC,MAAM,EAAE,SAAS,CAAC,QAAQ,CAAC;cACvE,SAAS,CAAC;QAEd,OAAO;AACL,YAAA,GAAG,MAAM;YACT,QAAQ;SACT,CAAC;AACJ,KAAC,CAAC,CAAC;AACL,CAAC;AAEK,SAAU,SAAS,CACvB,IAAa,EACb,QAAiB,EACjB,UAA4C,EAAE,EAAA;AAE9C,IAAA,IAAI,CAAC,IAAI;AAAE,QAAA,OAAO,EAAE,CAAC;AACrB,IAAA,IAAI,CAAC,QAAQ,IAAI,QAAQ,KAAK,kBAAkB,CAAC,EAAE;AACjD,QAAA,OAAO,IAA4B,CAAC;AAEtC,IAAA,MAAM,QAAQ,GAAG,IAAI,GAAG,EAAmB,CAAC;AAC5C,IAAA,IAAI,CAAC,OAAO,CAAC,CAAC,WAAkB,KAAI;QAClC,MAAM,IAAI,GAAG,WAAqC,CAAC;AACnD,QAAA,MAAM,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC,CAAC;QAChC,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,QAAQ,CAAC,EAAE;AAC3B,YAAA,QAAQ,CAAC,GAAG,CAAC,QAAQ,EAAE,EAAE,CAAC,CAAC;SAC5B;QACD,QAAQ,CAAC,GAAG,CAAC,QAAQ,CAAC,EAAE,IAAI,CAAC,IAAa,CAAC,CAAC;AAC9C,KAAC,CAAC,CAAC;AAEH,IAAA,MAAM,SAAS,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC,GAAG,KAAK,GAAG,CAAC,WAAW,KAAK,QAAQ,CAAC,CAAC;AACtE,IAAA,MAAM,cAAc,GAAG,SAAS,EAAE,cAAc,IAAI,KAAK,CAAC;AAC1D,IAAA,MAAM,cAAc,GAAG,SAAS,EAAE,cAAc,IAAI,EAAE,CAAC;AACvD,IAAA,MAAM,aAAa,GAAG,SAAS,EAAE,aAAa,IAAI,EAAE,CAAC;IACrD,MAAM,WAAW,GAAyB,EAAE,CAAC;IAE7C,QAAQ,CAAC,OAAO,CAAC,CAAC,KAAK,EAAE,GAAG,KAAI;QAC9B,WAAW,CAAC,IAAI,CAAC;AACf,YAAA,KAAK,EAAE,cAAc,CAAC,GAAG,CAAC,IAAI,GAAG;AACjC,YAAA,SAAS,EAAE,GAAG;AACd,YAAA,OAAO,EAAE,KAAK;YACd,KAAK,EAAE,aAAa,CAAC,GAAG,CAAC,IAAI,KAAK,CAAC,MAAM;YACzC,cAAc;AACf,SAAA,CAAC,CAAC;AACL,KAAC,CAAC,CAAC;AAEH,IAAA,OAAO,WAAW,CAAC;AACrB,CAAC;AAED,MAAM,iBAAiB,GAAG,CAAC,OAAuB,GAAA,EAAE,KAAsB;IACxE,OAAO,IAAI,GAAG,CACZ,OAAO;UACH,MAAM,CAAC,CAAC,IAAI,KAAK,IAAI,CAAC,KAAK,KAAK,UAAU,CAAC,MAAM,IAAI,IAAI,CAAC,KAAK,KAAK,EAAE,CAAC;SACxE,GAAG,CAAC,CAAC,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE,KAAK,CAAC,CAAA,EAAG,IAAI,CAAA,CAAA,EAAI,QAAQ,CAAA,CAAE,EAAE,KAAK,CAAC,CAAC,CACtE,CAAC;AACJ,CAAC,CAAC;AAEF,MAAM,eAAe,GAAG,CAAC,IAAwB,GAAA,EAAE,KAAyB;IAC1E,OAAO,IAAI,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,EAAE,KAAK,EAAE,KAAK,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC,CAAC,CAAC;AAC/D,CAAC,CAAC;AAEF,MAAM,eAAe,GAAG,CACtB,UAAA,GAA0B,EAAE,EAC5B,UAAA,GAA0B,EAAE,KACjB;AACX,IAAA,MAAM,YAAY,GAAG,iBAAiB,CAAC,UAAU,CAAC,CAAC;AACnD,IAAA,MAAM,YAAY,GAAG,iBAAiB,CAAC,UAAU,CAAC,CAAC;AAEnD,IAAA,IAAI,YAAY,CAAC,IAAI,KAAK,YAAY,CAAC,IAAI;AAAE,QAAA,OAAO,IAAI,CAAC;IAEzD,OAAO,CAAC,GAAG,YAAY,CAAC,CAAC,IAAI,CAC3B,CAAC,CAAC,GAAG,EAAE,KAAK,CAAC,KAAK,YAAY,CAAC,GAAG,CAAC,GAAG,CAAC,KAAK,KAAK,CAClD,CAAC;AACJ,CAAC,CAAC;AAEF,MAAM,aAAa,GAAG,CACpB,OAAA,GAA2B,EAAE,EAC7B,OAAA,GAA2B,EAAE,KAClB;AACX,IAAA,IAAI,OAAO,CAAC,MAAM,KAAK,OAAO,CAAC,MAAM;AAAE,QAAA,OAAO,IAAI,CAAC;AAEnD,IAAA,MAAM,UAAU,GAAG,eAAe,CAAC,OAAO,CAAC,CAAC;AAC5C,IAAA,MAAM,UAAU,GAAG,eAAe,CAAC,OAAO,CAAC,CAAC;IAE5C,OAAO,CAAC,GAAG,UAAU,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,EAAE,KAAK,CAAC,KAAK,UAAU,CAAC,GAAG,CAAC,GAAG,CAAC,KAAK,KAAK,CAAC,CAAC;AAC/E,CAAC,CAAC;AAEF,MAAM,cAAc,GAAG,CACrB,UAAA,GAAuB,EAAE,EACzB,UAAA,GAAuB,EAAE,KACd;AACX,IAAA,IAAI,UAAU,CAAC,MAAM,KAAK,UAAU,CAAC,MAAM;AAAE,QAAA,OAAO,IAAI,CAAC;AAEzD,IAAA,MAAM,WAAW,GAAG,IAAI,GAAG,CAAC,UAAU,CAAC,CAAC;AACxC,IAAA,OAAO,UAAU,CAAC,IAAI,CAAC,CAAC,IAAI,KAAK,CAAC,WAAW,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC;AAC3D,CAAC,CAAC;AAEF,MAAM,eAAe,GAAG,CAAC,SAAkB,EAAE,SAAkB,KAAa;IAC1E,OAAO,SAAS,KAAK,SAAS,CAAC;AACjC,CAAC,CAAC;MAEW,eAAe,GAAG,CAC7B,QAA+B,EAC/B,QAAwB,KACb;AACX,IAAA,IAAI,CAAC,QAAQ;AAAE,QAAA,OAAO,IAAI,CAAC;IAC3B,QACE,eAAe,CAAC,QAAQ,CAAC,OAAO,EAAE,QAAQ,CAAC,OAAO,CAAC;QACnD,aAAa,CAAC,QAAQ,CAAC,IAAI,EAAE,QAAQ,CAAC,IAAI,CAAC;QAC3C,cAAc,CAAC,QAAQ,CAAC,QAAQ,EAAE,QAAQ,CAAC,QAAQ,CAAC;QACpD,eAAe,CAAC,QAAQ,CAAC,MAAM,EAAE,QAAQ,CAAC,MAAM,CAAC,EACjD;AACJ,EAAE;AAEc,SAAA,0BAA0B,CACxC,OAAA,GAA+C,EAAE,EAAA;IAEjD,OAAO,OAAO,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,GAAG,KAAI;QACjC,OAAO;AACL,YAAA,GAAG,GAAG;AACN,YAAA,CAAC,GAAG,CAAC,WAAW,GAAG,GAAG,CAAC,aAAa,GAAG,KAAK,GAAG,IAAI;SACpD,CAAC;KACH,EAAE,EAAE,CAAC,CAAC;AACT,CAAC;AAEK,SAAU,kBAAkB,CAAC,KAAqB,EAAA;AACtD,IAAA,MAAM,EAAE,QAAQ,GAAG,EAAE,EAAE,OAAO,GAAG,EAAE,EAAE,IAAI,GAAG,EAAE,EAAE,GAAG,IAAI,EAAE,GAAG,KAAK,CAAC;AAClE,IAAA,MAAM,gBAAgB,GAAG,QAAQ,EAAE,MAAM,CACvC,CAAC,GAAG,KAAK,GAAG,KAAK,kBAAkB,CAAC,EAAE,CACvC,CAAC;IAEF,MAAM,gBAAgB,GACpB,OAAO;UACH,MAAM,CAAC,CAAC,IAAI,KAAK,IAAI,CAAC,KAAK,KAAK,UAAU,CAAC,MAAM,IAAI,IAAI,CAAC,KAAK,KAAK,EAAE,CAAC;AACzE,UAAE,GAAG,CAAC,CAAC,IAAI,MAAM;QACf,IAAI,EAAE,IAAI,CAAC,IAAI;QACf,QAAQ,EAAE,iBAAiB,CAAC;YAC1B,QAAQ,EAAE,IAAI,CAAC,QAAQ;YACvB,KAAK,EAAE,IAAI,CAAC,KAAK;YACjB,UAAU,EAAE,IAAI,CAAC,KAAK;SACvB,CAAC;AACF,QAAA,GAAG,cAAc,CAAC;YAChB,KAAK,EAAE,IAAI,CAAC,KAAK;YACjB,UAAU,EAAE,IAAI,CAAC,KAAK;YACtB,QAAQ,EAAE,IAAI,CAAC,SAAS;SACzB,CAAC;KACH,CAAC,CAAC,IAAI,EAAE,CAAC;IAEd,OAAO;AACL,QAAA,GAAG,IAAI;AACP,QAAA,IAAI,EAAE,IAAI;AACV,QAAA,QAAQ,EAAE,gBAAgB;AAC1B,QAAA,OAAO,EAAE,gBAAgB;KAC1B,CAAC;AACJ,CAAC;SAEe,oBAAoB,CAClC,WAA0B,EAC1B,WAA2B,EAAE,EAAA;IAE7B,OAAO;QACL,IAAI,EAAE,CAAC,WAAW,CAAC;AACnB,QAAA,QAAQ,EAAE,CAAC,kBAAkB,CAAC,EAAE,CAAC;AACjC,QAAA,GAAG,QAAQ;KACZ,CAAC;AACJ;;;;"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"filters.cjs","sources":["../../../v1/types/filters.tsx"],"sourcesContent":["export const FilterType = {\n number: \"number\",\n string: \"string\",\n date: \"date\",\n select: \"select\",\n} as const;\n\nexport type FilterValueType = \"string\" | \"number\" | \"boolean\";\n\nexport interface FilterValue {\n value?: FilterValueType;\n // values?: Array<string | number>;\n date?: Date;\n // dateRange?: DateRange;\n}\n\nexport type FilterOperation = {\n value: string;\n label: string;\n};\n\nexport type NumberFilterOperatorType =\n | \"eq\"\n | \"neq\"\n | \"lt\"\n | \"lte\"\n | \"gt\"\n | \"gte\";\nexport type StringFilterOperatorType = \"eq\" | \"neq\" | \"like\";\nexport type DateFilterOperatorType = \"eq\" | \"neq\" | \"lt\" | \"lte\" | \"gt\" | \"gte\";\nexport type SelectFilterOperatorType = \"eq\" | \"neq\";\n\nexport type FilterOperatorTypes =\n | NumberFilterOperatorType\n | StringFilterOperatorType\n | DateFilterOperatorType\n | SelectFilterOperatorType;\n\nexport type FilterOperator<T> = {\n value: T;\n label: string;\n};\n\nexport type FilterOperatorsMap = {\n number: FilterOperator<NumberFilterOperatorType>[];\n string: FilterOperator<StringFilterOperatorType>[];\n date: FilterOperator<DateFilterOperatorType>[];\n select: FilterOperator<SelectFilterOperatorType>[];\n};\n\nexport type FilterTypes = keyof typeof FilterType;\n\nexport const filterOperators: FilterOperatorsMap = {\n number: [\n { value: \"eq\", label: \"is\" },\n { value: \"neq\", label: \"is not\" },\n { value: \"lt\", label: \"less than\" },\n { value: \"lte\", label: \"less than or equal\" },\n { value: \"gt\", label: \"greater than\" },\n { value: \"gte\", label: \"greater than or equal\" },\n ],\n string: [\n { value: \"eq\", label: \"is\" },\n { value: \"neq\", label: \"is not\" },\n { value: \"like\", label: \"contains\" },\n ],\n date: [\n { value: \"eq\", label: \"is\" },\n { value: \"neq\", label: \"is not\" },\n { value: \"lt\", label: \"is before\" },\n { value: \"lte\", label: \"is on or before\" },\n { value: \"gt\", label: \"is after\" },\n { value: \"gte\", label: \"is on or after\" },\n ],\n select: [\n { value: \"eq\", label: \"is\" },\n { value: \"neq\", label: \"is not\" },\n ],\n} as const;\n\nexport type Filter = {\n type: FilterTypes;\n filterOperation: string;\n value: string;\n};\n\nexport interface FilterSelectOption {\n value: FilterValueType;\n label: string;\n}\n"],"names":[],"mappings":";;AAAa,MAAA,UAAU,GAAG;AACxB,IAAA,MAAM,EAAE,QAAQ;AAChB,IAAA,MAAM,EAAE,QAAQ;AAChB,IAAA,IAAI,EAAE,MAAM;AACZ,IAAA,MAAM,EAAE,QAAQ;EACP;
|
|
1
|
+
{"version":3,"file":"filters.cjs","sources":["../../../v1/types/filters.tsx"],"sourcesContent":["export const FilterType = {\n number: \"number\",\n string: \"string\",\n date: \"date\",\n select: \"select\",\n} as const;\n\nexport type FilterValueType = \"string\" | \"number\" | \"boolean\";\n\nexport interface FilterValue {\n value?: FilterValueType;\n // values?: Array<string | number>;\n date?: Date;\n // dateRange?: DateRange;\n}\n\nexport type FilterOperation = {\n value: string;\n label: string;\n};\n\nexport type NumberFilterOperatorType =\n | \"eq\"\n | \"neq\"\n | \"lt\"\n | \"lte\"\n | \"gt\"\n | \"gte\";\nexport type StringFilterOperatorType = \"eq\" | \"neq\" | \"like\";\nexport type DateFilterOperatorType = \"eq\" | \"neq\" | \"lt\" | \"lte\" | \"gt\" | \"gte\";\nexport type SelectFilterOperatorType = \"eq\" | \"neq\";\n\nexport type FilterOperatorTypes =\n | NumberFilterOperatorType\n | StringFilterOperatorType\n | DateFilterOperatorType\n | SelectFilterOperatorType\n | \"empty\";\n\nexport type FilterOperator<T> = {\n value: T;\n label: string;\n};\n\nexport type FilterOperatorsMap = {\n number: FilterOperator<NumberFilterOperatorType>[];\n string: FilterOperator<StringFilterOperatorType>[];\n date: FilterOperator<DateFilterOperatorType>[];\n select: FilterOperator<SelectFilterOperatorType>[];\n};\n\nexport type FilterTypes = keyof typeof FilterType;\n\nexport const filterOperators: FilterOperatorsMap = {\n number: [\n { value: \"eq\", label: \"is\" },\n { value: \"neq\", label: \"is not\" },\n { value: \"lt\", label: \"less than\" },\n { value: \"lte\", label: \"less than or equal\" },\n { value: \"gt\", label: \"greater than\" },\n { value: \"gte\", label: \"greater than or equal\" },\n ],\n string: [\n { value: \"eq\", label: \"is\" },\n { value: \"neq\", label: \"is not\" },\n { value: \"like\", label: \"contains\" },\n ],\n date: [\n { value: \"eq\", label: \"is\" },\n { value: \"neq\", label: \"is not\" },\n { value: \"lt\", label: \"is before\" },\n { value: \"lte\", label: \"is on or before\" },\n { value: \"gt\", label: \"is after\" },\n { value: \"gte\", label: \"is on or after\" },\n ],\n select: [\n { value: \"eq\", label: \"is\" },\n { value: \"neq\", label: \"is not\" },\n ],\n} as const;\n\nexport type Filter = {\n type: FilterTypes;\n filterOperation: string;\n value: string;\n};\n\nexport interface FilterSelectOption {\n value: FilterValueType;\n label: string;\n}\n"],"names":[],"mappings":";;AAAa,MAAA,UAAU,GAAG;AACxB,IAAA,MAAM,EAAE,QAAQ;AAChB,IAAA,MAAM,EAAE,QAAQ;AAChB,IAAA,IAAI,EAAE,MAAM;AACZ,IAAA,MAAM,EAAE,QAAQ;EACP;AAgDE,MAAA,eAAe,GAAuB;AACjD,IAAA,MAAM,EAAE;AACN,QAAA,EAAE,KAAK,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE;AAC5B,QAAA,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,QAAQ,EAAE;AACjC,QAAA,EAAE,KAAK,EAAE,IAAI,EAAE,KAAK,EAAE,WAAW,EAAE;AACnC,QAAA,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,oBAAoB,EAAE;AAC7C,QAAA,EAAE,KAAK,EAAE,IAAI,EAAE,KAAK,EAAE,cAAc,EAAE;AACtC,QAAA,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,uBAAuB,EAAE;AACjD,KAAA;AACD,IAAA,MAAM,EAAE;AACN,QAAA,EAAE,KAAK,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE;AAC5B,QAAA,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,QAAQ,EAAE;AACjC,QAAA,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,UAAU,EAAE;AACrC,KAAA;AACD,IAAA,IAAI,EAAE;AACJ,QAAA,EAAE,KAAK,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE;AAC5B,QAAA,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,QAAQ,EAAE;AACjC,QAAA,EAAE,KAAK,EAAE,IAAI,EAAE,KAAK,EAAE,WAAW,EAAE;AACnC,QAAA,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,iBAAiB,EAAE;AAC1C,QAAA,EAAE,KAAK,EAAE,IAAI,EAAE,KAAK,EAAE,UAAU,EAAE;AAClC,QAAA,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,gBAAgB,EAAE;AAC1C,KAAA;AACD,IAAA,MAAM,EAAE;AACN,QAAA,EAAE,KAAK,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE;AAC5B,QAAA,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,QAAQ,EAAE;AAClC,KAAA;;;;;;"}
|
|
@@ -17,7 +17,7 @@ export type NumberFilterOperatorType = "eq" | "neq" | "lt" | "lte" | "gt" | "gte
|
|
|
17
17
|
export type StringFilterOperatorType = "eq" | "neq" | "like";
|
|
18
18
|
export type DateFilterOperatorType = "eq" | "neq" | "lt" | "lte" | "gt" | "gte";
|
|
19
19
|
export type SelectFilterOperatorType = "eq" | "neq";
|
|
20
|
-
export type FilterOperatorTypes = NumberFilterOperatorType | StringFilterOperatorType | DateFilterOperatorType | SelectFilterOperatorType;
|
|
20
|
+
export type FilterOperatorTypes = NumberFilterOperatorType | StringFilterOperatorType | DateFilterOperatorType | SelectFilterOperatorType | "empty";
|
|
21
21
|
export type FilterOperator<T> = {
|
|
22
22
|
value: T;
|
|
23
23
|
label: string;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"filters.d.ts","sourceRoot":"","sources":["../../../v1/types/filters.tsx"],"names":[],"mappings":"AAAA,eAAO,MAAM,UAAU;;;;;CAKb,CAAC;AAEX,MAAM,MAAM,eAAe,GAAG,QAAQ,GAAG,QAAQ,GAAG,SAAS,CAAC;AAE9D,MAAM,WAAW,WAAW;IAC1B,KAAK,CAAC,EAAE,eAAe,CAAC;IAExB,IAAI,CAAC,EAAE,IAAI,CAAC;CAEb;AAED,MAAM,MAAM,eAAe,GAAG;IAC5B,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,MAAM,CAAC;CACf,CAAC;AAEF,MAAM,MAAM,wBAAwB,GAChC,IAAI,GACJ,KAAK,GACL,IAAI,GACJ,KAAK,GACL,IAAI,GACJ,KAAK,CAAC;AACV,MAAM,MAAM,wBAAwB,GAAG,IAAI,GAAG,KAAK,GAAG,MAAM,CAAC;AAC7D,MAAM,MAAM,sBAAsB,GAAG,IAAI,GAAG,KAAK,GAAG,IAAI,GAAG,KAAK,GAAG,IAAI,GAAG,KAAK,CAAC;AAChF,MAAM,MAAM,wBAAwB,GAAG,IAAI,GAAG,KAAK,CAAC;AAEpD,MAAM,MAAM,mBAAmB,GAC3B,wBAAwB,GACxB,wBAAwB,GACxB,sBAAsB,GACtB,wBAAwB,CAAC;
|
|
1
|
+
{"version":3,"file":"filters.d.ts","sourceRoot":"","sources":["../../../v1/types/filters.tsx"],"names":[],"mappings":"AAAA,eAAO,MAAM,UAAU;;;;;CAKb,CAAC;AAEX,MAAM,MAAM,eAAe,GAAG,QAAQ,GAAG,QAAQ,GAAG,SAAS,CAAC;AAE9D,MAAM,WAAW,WAAW;IAC1B,KAAK,CAAC,EAAE,eAAe,CAAC;IAExB,IAAI,CAAC,EAAE,IAAI,CAAC;CAEb;AAED,MAAM,MAAM,eAAe,GAAG;IAC5B,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,MAAM,CAAC;CACf,CAAC;AAEF,MAAM,MAAM,wBAAwB,GAChC,IAAI,GACJ,KAAK,GACL,IAAI,GACJ,KAAK,GACL,IAAI,GACJ,KAAK,CAAC;AACV,MAAM,MAAM,wBAAwB,GAAG,IAAI,GAAG,KAAK,GAAG,MAAM,CAAC;AAC7D,MAAM,MAAM,sBAAsB,GAAG,IAAI,GAAG,KAAK,GAAG,IAAI,GAAG,KAAK,GAAG,IAAI,GAAG,KAAK,CAAC;AAChF,MAAM,MAAM,wBAAwB,GAAG,IAAI,GAAG,KAAK,CAAC;AAEpD,MAAM,MAAM,mBAAmB,GAC3B,wBAAwB,GACxB,wBAAwB,GACxB,sBAAsB,GACtB,wBAAwB,GACxB,OAAO,CAAC;AAEZ,MAAM,MAAM,cAAc,CAAC,CAAC,IAAI;IAC9B,KAAK,EAAE,CAAC,CAAC;IACT,KAAK,EAAE,MAAM,CAAC;CACf,CAAC;AAEF,MAAM,MAAM,kBAAkB,GAAG;IAC/B,MAAM,EAAE,cAAc,CAAC,wBAAwB,CAAC,EAAE,CAAC;IACnD,MAAM,EAAE,cAAc,CAAC,wBAAwB,CAAC,EAAE,CAAC;IACnD,IAAI,EAAE,cAAc,CAAC,sBAAsB,CAAC,EAAE,CAAC;IAC/C,MAAM,EAAE,cAAc,CAAC,wBAAwB,CAAC,EAAE,CAAC;CACpD,CAAC;AAEF,MAAM,MAAM,WAAW,GAAG,MAAM,OAAO,UAAU,CAAC;AAElD,eAAO,MAAM,eAAe,EAAE,kBA0BpB,CAAC;AAEX,MAAM,MAAM,MAAM,GAAG;IACnB,IAAI,EAAE,WAAW,CAAC;IAClB,eAAe,EAAE,MAAM,CAAC;IACxB,KAAK,EAAE,MAAM,CAAC;CACf,CAAC;AAEF,MAAM,WAAW,kBAAkB;IACjC,KAAK,EAAE,eAAe,CAAC;IACvB,KAAK,EAAE,MAAM,CAAC;CACf"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"filters.js","sources":["../../../v1/types/filters.tsx"],"sourcesContent":["export const FilterType = {\n number: \"number\",\n string: \"string\",\n date: \"date\",\n select: \"select\",\n} as const;\n\nexport type FilterValueType = \"string\" | \"number\" | \"boolean\";\n\nexport interface FilterValue {\n value?: FilterValueType;\n // values?: Array<string | number>;\n date?: Date;\n // dateRange?: DateRange;\n}\n\nexport type FilterOperation = {\n value: string;\n label: string;\n};\n\nexport type NumberFilterOperatorType =\n | \"eq\"\n | \"neq\"\n | \"lt\"\n | \"lte\"\n | \"gt\"\n | \"gte\";\nexport type StringFilterOperatorType = \"eq\" | \"neq\" | \"like\";\nexport type DateFilterOperatorType = \"eq\" | \"neq\" | \"lt\" | \"lte\" | \"gt\" | \"gte\";\nexport type SelectFilterOperatorType = \"eq\" | \"neq\";\n\nexport type FilterOperatorTypes =\n | NumberFilterOperatorType\n | StringFilterOperatorType\n | DateFilterOperatorType\n | SelectFilterOperatorType;\n\nexport type FilterOperator<T> = {\n value: T;\n label: string;\n};\n\nexport type FilterOperatorsMap = {\n number: FilterOperator<NumberFilterOperatorType>[];\n string: FilterOperator<StringFilterOperatorType>[];\n date: FilterOperator<DateFilterOperatorType>[];\n select: FilterOperator<SelectFilterOperatorType>[];\n};\n\nexport type FilterTypes = keyof typeof FilterType;\n\nexport const filterOperators: FilterOperatorsMap = {\n number: [\n { value: \"eq\", label: \"is\" },\n { value: \"neq\", label: \"is not\" },\n { value: \"lt\", label: \"less than\" },\n { value: \"lte\", label: \"less than or equal\" },\n { value: \"gt\", label: \"greater than\" },\n { value: \"gte\", label: \"greater than or equal\" },\n ],\n string: [\n { value: \"eq\", label: \"is\" },\n { value: \"neq\", label: \"is not\" },\n { value: \"like\", label: \"contains\" },\n ],\n date: [\n { value: \"eq\", label: \"is\" },\n { value: \"neq\", label: \"is not\" },\n { value: \"lt\", label: \"is before\" },\n { value: \"lte\", label: \"is on or before\" },\n { value: \"gt\", label: \"is after\" },\n { value: \"gte\", label: \"is on or after\" },\n ],\n select: [\n { value: \"eq\", label: \"is\" },\n { value: \"neq\", label: \"is not\" },\n ],\n} as const;\n\nexport type Filter = {\n type: FilterTypes;\n filterOperation: string;\n value: string;\n};\n\nexport interface FilterSelectOption {\n value: FilterValueType;\n label: string;\n}\n"],"names":[],"mappings":"AAAa,MAAA,UAAU,GAAG;AACxB,IAAA,MAAM,EAAE,QAAQ;AAChB,IAAA,MAAM,EAAE,QAAQ;AAChB,IAAA,IAAI,EAAE,MAAM;AACZ,IAAA,MAAM,EAAE,QAAQ;EACP;
|
|
1
|
+
{"version":3,"file":"filters.js","sources":["../../../v1/types/filters.tsx"],"sourcesContent":["export const FilterType = {\n number: \"number\",\n string: \"string\",\n date: \"date\",\n select: \"select\",\n} as const;\n\nexport type FilterValueType = \"string\" | \"number\" | \"boolean\";\n\nexport interface FilterValue {\n value?: FilterValueType;\n // values?: Array<string | number>;\n date?: Date;\n // dateRange?: DateRange;\n}\n\nexport type FilterOperation = {\n value: string;\n label: string;\n};\n\nexport type NumberFilterOperatorType =\n | \"eq\"\n | \"neq\"\n | \"lt\"\n | \"lte\"\n | \"gt\"\n | \"gte\";\nexport type StringFilterOperatorType = \"eq\" | \"neq\" | \"like\";\nexport type DateFilterOperatorType = \"eq\" | \"neq\" | \"lt\" | \"lte\" | \"gt\" | \"gte\";\nexport type SelectFilterOperatorType = \"eq\" | \"neq\";\n\nexport type FilterOperatorTypes =\n | NumberFilterOperatorType\n | StringFilterOperatorType\n | DateFilterOperatorType\n | SelectFilterOperatorType\n | \"empty\";\n\nexport type FilterOperator<T> = {\n value: T;\n label: string;\n};\n\nexport type FilterOperatorsMap = {\n number: FilterOperator<NumberFilterOperatorType>[];\n string: FilterOperator<StringFilterOperatorType>[];\n date: FilterOperator<DateFilterOperatorType>[];\n select: FilterOperator<SelectFilterOperatorType>[];\n};\n\nexport type FilterTypes = keyof typeof FilterType;\n\nexport const filterOperators: FilterOperatorsMap = {\n number: [\n { value: \"eq\", label: \"is\" },\n { value: \"neq\", label: \"is not\" },\n { value: \"lt\", label: \"less than\" },\n { value: \"lte\", label: \"less than or equal\" },\n { value: \"gt\", label: \"greater than\" },\n { value: \"gte\", label: \"greater than or equal\" },\n ],\n string: [\n { value: \"eq\", label: \"is\" },\n { value: \"neq\", label: \"is not\" },\n { value: \"like\", label: \"contains\" },\n ],\n date: [\n { value: \"eq\", label: \"is\" },\n { value: \"neq\", label: \"is not\" },\n { value: \"lt\", label: \"is before\" },\n { value: \"lte\", label: \"is on or before\" },\n { value: \"gt\", label: \"is after\" },\n { value: \"gte\", label: \"is on or after\" },\n ],\n select: [\n { value: \"eq\", label: \"is\" },\n { value: \"neq\", label: \"is not\" },\n ],\n} as const;\n\nexport type Filter = {\n type: FilterTypes;\n filterOperation: string;\n value: string;\n};\n\nexport interface FilterSelectOption {\n value: FilterValueType;\n label: string;\n}\n"],"names":[],"mappings":"AAAa,MAAA,UAAU,GAAG;AACxB,IAAA,MAAM,EAAE,QAAQ;AAChB,IAAA,MAAM,EAAE,QAAQ;AAChB,IAAA,IAAI,EAAE,MAAM;AACZ,IAAA,MAAM,EAAE,QAAQ;EACP;AAgDE,MAAA,eAAe,GAAuB;AACjD,IAAA,MAAM,EAAE;AACN,QAAA,EAAE,KAAK,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE;AAC5B,QAAA,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,QAAQ,EAAE;AACjC,QAAA,EAAE,KAAK,EAAE,IAAI,EAAE,KAAK,EAAE,WAAW,EAAE;AACnC,QAAA,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,oBAAoB,EAAE;AAC7C,QAAA,EAAE,KAAK,EAAE,IAAI,EAAE,KAAK,EAAE,cAAc,EAAE;AACtC,QAAA,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,uBAAuB,EAAE;AACjD,KAAA;AACD,IAAA,MAAM,EAAE;AACN,QAAA,EAAE,KAAK,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE;AAC5B,QAAA,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,QAAQ,EAAE;AACjC,QAAA,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,UAAU,EAAE;AACrC,KAAA;AACD,IAAA,IAAI,EAAE;AACJ,QAAA,EAAE,KAAK,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE;AAC5B,QAAA,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,QAAQ,EAAE;AACjC,QAAA,EAAE,KAAK,EAAE,IAAI,EAAE,KAAK,EAAE,WAAW,EAAE;AACnC,QAAA,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,iBAAiB,EAAE;AAC1C,QAAA,EAAE,KAAK,EAAE,IAAI,EAAE,KAAK,EAAE,UAAU,EAAE;AAClC,QAAA,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,gBAAgB,EAAE;AAC1C,KAAA;AACD,IAAA,MAAM,EAAE;AACN,QAAA,EAAE,KAAK,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE;AAC5B,QAAA,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,QAAQ,EAAE;AAClC,KAAA;;;;;"}
|