@raystack/apsara 0.32.0 → 0.33.0
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/node_modules/.pnpm/@radix-ui_react-icons@1.3.0_react@18.2.0/node_modules/@radix-ui/react-icons/dist/react-icons.esm.cjs +92 -0
- package/dist/node_modules/.pnpm/@radix-ui_react-icons@1.3.0_react@18.2.0/node_modules/@radix-ui/react-icons/dist/react-icons.esm.cjs.map +1 -1
- package/dist/node_modules/.pnpm/@radix-ui_react-icons@1.3.0_react@18.2.0/node_modules/@radix-ui/react-icons/dist/react-icons.esm.js +89 -1
- package/dist/node_modules/.pnpm/@radix-ui_react-icons@1.3.0_react@18.2.0/node_modules/@radix-ui/react-icons/dist/react-icons.esm.js.map +1 -1
- package/dist/node_modules/.pnpm/@tanstack_react-table@8.9.2_react-dom@18.3.1_react@18.2.0__react@18.2.0/node_modules/@tanstack/react-table/build/lib/index.cjs +1 -0
- package/dist/node_modules/.pnpm/@tanstack_react-table@8.9.2_react-dom@18.3.1_react@18.2.0__react@18.2.0/node_modules/@tanstack/react-table/build/lib/index.cjs.map +1 -1
- package/dist/node_modules/.pnpm/@tanstack_react-table@8.9.2_react-dom@18.3.1_react@18.2.0__react@18.2.0/node_modules/@tanstack/react-table/build/lib/index.js +1 -1
- package/dist/node_modules/.pnpm/@tanstack_table-core@8.9.2/node_modules/@tanstack/table-core/build/lib/index.cjs +20 -0
- package/dist/node_modules/.pnpm/@tanstack_table-core@8.9.2/node_modules/@tanstack/table-core/build/lib/index.cjs.map +1 -1
- package/dist/node_modules/.pnpm/@tanstack_table-core@8.9.2/node_modules/@tanstack/table-core/build/lib/index.js +20 -1
- package/dist/node_modules/.pnpm/@tanstack_table-core@8.9.2/node_modules/@tanstack/table-core/build/lib/index.js.map +1 -1
- package/dist/sidebar/sidebar.cjs +6 -6
- package/dist/sidebar/sidebar.cjs.map +1 -1
- package/dist/sidebar/sidebar.d.ts +4 -4
- package/dist/sidebar/sidebar.js +6 -6
- package/dist/sidebar/sidebar.js.map +1 -1
- package/dist/style.css +1 -1
- package/dist/v1/_virtual/isSameOrAfter.cjs +6 -0
- package/dist/v1/_virtual/isSameOrAfter.cjs.map +1 -0
- package/dist/v1/_virtual/isSameOrAfter.js +4 -0
- package/dist/v1/_virtual/isSameOrAfter.js.map +1 -0
- package/dist/v1/_virtual/isSameOrBefore.cjs +6 -0
- package/dist/v1/_virtual/isSameOrBefore.cjs.map +1 -0
- package/dist/v1/_virtual/isSameOrBefore.js +4 -0
- package/dist/v1/_virtual/isSameOrBefore.js.map +1 -0
- package/dist/v1/components/calendar/calendar.cjs +1 -1
- package/dist/v1/components/calendar/calendar.cjs.map +1 -1
- package/dist/v1/components/calendar/calendar.js +1 -1
- package/dist/v1/components/calendar/calendar.js.map +1 -1
- package/dist/v1/components/calendar/date-picker.cjs +26 -17
- package/dist/v1/components/calendar/date-picker.cjs.map +1 -1
- package/dist/v1/components/calendar/date-picker.d.ts.map +1 -1
- package/dist/v1/components/calendar/date-picker.js +26 -17
- package/dist/v1/components/calendar/date-picker.js.map +1 -1
- package/dist/v1/components/chip/chip.cjs +3 -3
- package/dist/v1/components/chip/chip.cjs.map +1 -1
- package/dist/v1/components/chip/chip.d.ts +2 -1
- package/dist/v1/components/chip/chip.d.ts.map +1 -1
- package/dist/v1/components/chip/chip.js +3 -3
- package/dist/v1/components/chip/chip.js.map +1 -1
- package/dist/v1/components/data-table/components/content.cjs +81 -0
- package/dist/v1/components/data-table/components/content.cjs.map +1 -0
- package/dist/v1/components/data-table/components/content.d.ts +3 -0
- package/dist/v1/components/data-table/components/content.d.ts.map +1 -0
- package/dist/v1/components/data-table/components/content.js +79 -0
- package/dist/v1/components/data-table/components/content.js.map +1 -0
- package/dist/v1/components/data-table/components/display-properties.cjs +14 -0
- package/dist/v1/components/data-table/components/display-properties.cjs.map +1 -0
- package/dist/v1/components/data-table/components/display-properties.d.ts +5 -0
- package/dist/v1/components/data-table/components/display-properties.d.ts.map +1 -0
- package/dist/v1/components/data-table/components/display-properties.js +12 -0
- package/dist/v1/components/data-table/components/display-properties.js.map +1 -0
- package/dist/v1/components/data-table/components/display-settings.cjs +51 -0
- package/dist/v1/components/data-table/components/display-settings.cjs.map +1 -0
- package/dist/v1/components/data-table/components/display-settings.d.ts +2 -0
- package/dist/v1/components/data-table/components/display-settings.d.ts.map +1 -0
- package/dist/v1/components/data-table/components/display-settings.js +49 -0
- package/dist/v1/components/data-table/components/display-settings.js.map +1 -0
- package/dist/v1/components/data-table/components/filters.cjs +44 -0
- package/dist/v1/components/data-table/components/filters.cjs.map +1 -0
- package/dist/v1/components/data-table/components/filters.d.ts +2 -0
- package/dist/v1/components/data-table/components/filters.d.ts.map +1 -0
- package/dist/v1/components/data-table/components/filters.js +42 -0
- package/dist/v1/components/data-table/components/filters.js.map +1 -0
- package/dist/v1/components/data-table/components/grouping.cjs +31 -0
- package/dist/v1/components/data-table/components/grouping.cjs.map +1 -0
- package/dist/v1/components/data-table/components/grouping.d.ts +9 -0
- package/dist/v1/components/data-table/components/grouping.d.ts.map +1 -0
- package/dist/v1/components/data-table/components/grouping.js +29 -0
- package/dist/v1/components/data-table/components/grouping.js.map +1 -0
- package/dist/v1/components/data-table/components/ordering.cjs +24 -0
- package/dist/v1/components/data-table/components/ordering.cjs.map +1 -0
- package/dist/v1/components/data-table/components/ordering.d.ts +8 -0
- package/dist/v1/components/data-table/components/ordering.d.ts.map +1 -0
- package/dist/v1/components/data-table/components/ordering.js +22 -0
- package/dist/v1/components/data-table/components/ordering.js.map +1 -0
- package/dist/v1/components/data-table/components/search.cjs +22 -0
- package/dist/v1/components/data-table/components/search.cjs.map +1 -0
- package/dist/v1/components/data-table/components/search.d.ts +3 -0
- package/dist/v1/components/data-table/components/search.d.ts.map +1 -0
- package/dist/v1/components/data-table/components/search.js +20 -0
- package/dist/v1/components/data-table/components/search.js.map +1 -0
- package/dist/v1/components/data-table/components/toolbar.cjs +15 -0
- package/dist/v1/components/data-table/components/toolbar.cjs.map +1 -0
- package/dist/v1/components/data-table/components/toolbar.d.ts +4 -0
- package/dist/v1/components/data-table/components/toolbar.d.ts.map +1 -0
- package/dist/v1/components/data-table/components/toolbar.js +13 -0
- package/dist/v1/components/data-table/components/toolbar.js.map +1 -0
- package/dist/v1/components/data-table/context.cjs +8 -0
- package/dist/v1/components/data-table/context.cjs.map +1 -0
- package/dist/v1/components/data-table/context.d.ts +3 -0
- package/dist/v1/components/data-table/context.d.ts.map +1 -0
- package/dist/v1/components/data-table/context.js +6 -0
- package/dist/v1/components/data-table/context.js.map +1 -0
- package/dist/v1/components/data-table/data-table.cjs +87 -0
- package/dist/v1/components/data-table/data-table.cjs.map +1 -0
- package/dist/v1/components/data-table/data-table.d.ts +12 -0
- package/dist/v1/components/data-table/data-table.d.ts.map +1 -0
- package/dist/v1/components/data-table/data-table.js +85 -0
- package/dist/v1/components/data-table/data-table.js.map +1 -0
- package/dist/v1/components/data-table/data-table.module.css.cjs +8 -0
- package/dist/v1/components/data-table/data-table.module.css.cjs.map +1 -0
- package/dist/v1/components/data-table/data-table.module.css.js +4 -0
- package/dist/v1/components/data-table/data-table.module.css.js.map +1 -0
- package/dist/v1/components/data-table/data-table.types.cjs +9 -0
- package/dist/v1/components/data-table/data-table.types.cjs.map +1 -0
- package/dist/v1/components/data-table/data-table.types.d.ts +102 -0
- package/dist/v1/components/data-table/data-table.types.d.ts.map +1 -0
- package/dist/v1/components/data-table/data-table.types.js +7 -0
- package/dist/v1/components/data-table/data-table.types.js.map +1 -0
- package/dist/v1/components/data-table/hooks/useDataTable.cjs +15 -0
- package/dist/v1/components/data-table/hooks/useDataTable.cjs.map +1 -0
- package/dist/v1/components/data-table/hooks/useDataTable.d.ts +2 -0
- package/dist/v1/components/data-table/hooks/useDataTable.d.ts.map +1 -0
- package/dist/v1/components/data-table/hooks/useDataTable.js +13 -0
- package/dist/v1/components/data-table/hooks/useDataTable.js.map +1 -0
- package/dist/v1/components/data-table/hooks/useFilters.cjs +78 -0
- package/dist/v1/components/data-table/hooks/useFilters.cjs.map +1 -0
- package/dist/v1/components/data-table/hooks/useFilters.d.ts +9 -0
- package/dist/v1/components/data-table/hooks/useFilters.d.ts.map +1 -0
- package/dist/v1/components/data-table/hooks/useFilters.js +76 -0
- package/dist/v1/components/data-table/hooks/useFilters.js.map +1 -0
- package/dist/v1/components/data-table/index.d.ts +4 -0
- package/dist/v1/components/data-table/index.d.ts.map +1 -0
- package/dist/v1/components/data-table/utils/filter-operations.cjs +83 -0
- package/dist/v1/components/data-table/utils/filter-operations.cjs.map +1 -0
- package/dist/v1/components/data-table/utils/filter-operations.d.ts +11 -0
- package/dist/v1/components/data-table/utils/filter-operations.d.ts.map +1 -0
- package/dist/v1/components/data-table/utils/filter-operations.js +80 -0
- package/dist/v1/components/data-table/utils/filter-operations.js.map +1 -0
- package/dist/v1/components/data-table/utils/index.cjs +156 -0
- package/dist/v1/components/data-table/utils/index.cjs.map +1 -0
- package/dist/v1/components/data-table/utils/index.d.ts +14 -0
- package/dist/v1/components/data-table/utils/index.d.ts.map +1 -0
- package/dist/v1/components/data-table/utils/index.js +147 -0
- package/dist/v1/components/data-table/utils/index.js.map +1 -0
- package/dist/v1/components/dialog/dialog.cjs +4 -3
- package/dist/v1/components/dialog/dialog.cjs.map +1 -1
- package/dist/v1/components/dialog/dialog.d.ts +9 -2
- package/dist/v1/components/dialog/dialog.d.ts.map +1 -1
- package/dist/v1/components/dialog/dialog.js +5 -4
- package/dist/v1/components/dialog/dialog.js.map +1 -1
- package/dist/v1/components/dialog/dialog.module.css.cjs +1 -1
- package/dist/v1/components/dialog/dialog.module.css.js +1 -1
- package/dist/v1/components/filter-chip/filter-chip.cjs +28 -19
- package/dist/v1/components/filter-chip/filter-chip.cjs.map +1 -1
- package/dist/v1/components/filter-chip/filter-chip.d.ts +3 -7
- package/dist/v1/components/filter-chip/filter-chip.d.ts.map +1 -1
- package/dist/v1/components/filter-chip/filter-chip.js +28 -19
- package/dist/v1/components/filter-chip/filter-chip.js.map +1 -1
- package/dist/v1/components/icons/assets/filter.svg.cjs +41 -0
- package/dist/v1/components/icons/assets/filter.svg.cjs.map +1 -0
- package/dist/v1/components/icons/assets/filter.svg.js +20 -0
- package/dist/v1/components/icons/assets/filter.svg.js.map +1 -0
- package/dist/v1/components/icons/icons.d.ts +3 -0
- package/dist/v1/components/icons/icons.d.ts.map +1 -0
- package/dist/v1/components/icons/index.d.ts +2 -0
- package/dist/v1/components/icons/index.d.ts.map +1 -0
- package/dist/v1/components/input-field/input-field.cjs +1 -1
- package/dist/v1/components/input-field/input-field.cjs.map +1 -1
- package/dist/v1/components/input-field/input-field.js +1 -1
- package/dist/v1/components/input-field/input-field.js.map +1 -1
- package/dist/v1/components/sidebar/index.d.ts +2 -0
- package/dist/v1/components/sidebar/index.d.ts.map +1 -0
- package/dist/v1/components/sidebar/sidebar.cjs +47 -0
- package/dist/v1/components/sidebar/sidebar.cjs.map +1 -0
- package/dist/v1/components/{sidepanel/sidepanel.d.ts → sidebar/sidebar.d.ts} +22 -11
- package/dist/v1/components/sidebar/sidebar.d.ts.map +1 -0
- package/dist/v1/components/sidebar/sidebar.js +45 -0
- package/dist/v1/components/sidebar/sidebar.js.map +1 -0
- package/dist/v1/components/sidebar/sidebar.module.css.cjs +8 -0
- package/dist/v1/components/sidebar/sidebar.module.css.cjs.map +1 -0
- package/dist/v1/components/sidebar/sidebar.module.css.js +4 -0
- package/dist/v1/components/sidebar/sidebar.module.css.js.map +1 -0
- package/dist/v1/components/table/table.cjs.map +1 -1
- package/dist/v1/components/table/table.d.ts +2 -2
- package/dist/v1/components/table/table.js.map +1 -1
- package/dist/v1/components/tooltip/tooltip.cjs +1 -1
- package/dist/v1/components/tooltip/tooltip.cjs.map +1 -1
- package/dist/v1/components/tooltip/tooltip.js +1 -1
- package/dist/v1/components/tooltip/tooltip.js.map +1 -1
- package/dist/v1/index.cjs +6 -2
- package/dist/v1/index.cjs.map +1 -1
- package/dist/v1/index.d.ts +2 -1
- package/dist/v1/index.d.ts.map +1 -1
- package/dist/v1/index.js +4 -1
- package/dist/v1/index.js.map +1 -1
- package/dist/v1/node_modules/.pnpm/@radix-ui_react-icons@1.3.0_react@18.2.0/node_modules/@radix-ui/react-icons/dist/react-icons.esm.cjs +92 -0
- package/dist/v1/node_modules/.pnpm/@radix-ui_react-icons@1.3.0_react@18.2.0/node_modules/@radix-ui/react-icons/dist/react-icons.esm.cjs.map +1 -1
- package/dist/v1/node_modules/.pnpm/@radix-ui_react-icons@1.3.0_react@18.2.0/node_modules/@radix-ui/react-icons/dist/react-icons.esm.js +89 -1
- package/dist/v1/node_modules/.pnpm/@radix-ui_react-icons@1.3.0_react@18.2.0/node_modules/@radix-ui/react-icons/dist/react-icons.esm.js.map +1 -1
- package/dist/v1/node_modules/.pnpm/@tanstack_react-table@8.9.2_react-dom@18.3.1_react@18.2.0__react@18.2.0/node_modules/@tanstack/react-table/build/lib/index.cjs +131 -0
- package/dist/v1/node_modules/.pnpm/@tanstack_react-table@8.9.2_react-dom@18.3.1_react@18.2.0__react@18.2.0/node_modules/@tanstack/react-table/build/lib/index.cjs.map +1 -0
- package/dist/v1/node_modules/.pnpm/@tanstack_react-table@8.9.2_react-dom@18.3.1_react@18.2.0__react@18.2.0/node_modules/@tanstack/react-table/build/lib/index.js +72 -0
- package/dist/v1/node_modules/.pnpm/@tanstack_react-table@8.9.2_react-dom@18.3.1_react@18.2.0__react@18.2.0/node_modules/@tanstack/react-table/build/lib/index.js.map +1 -0
- package/dist/v1/node_modules/.pnpm/@tanstack_table-core@8.9.2/node_modules/@tanstack/table-core/build/lib/index.cjs +3338 -0
- package/dist/v1/node_modules/.pnpm/@tanstack_table-core@8.9.2/node_modules/@tanstack/table-core/build/lib/index.cjs.map +1 -0
- package/dist/v1/node_modules/.pnpm/@tanstack_table-core@8.9.2/node_modules/@tanstack/table-core/build/lib/index.js +3299 -0
- package/dist/v1/node_modules/.pnpm/@tanstack_table-core@8.9.2/node_modules/@tanstack/table-core/build/lib/index.js.map +1 -0
- package/dist/v1/node_modules/.pnpm/dayjs@1.11.11/node_modules/dayjs/plugin/isSameOrAfter.cjs +16 -0
- package/dist/v1/node_modules/.pnpm/dayjs@1.11.11/node_modules/dayjs/plugin/isSameOrAfter.cjs.map +1 -0
- package/dist/v1/node_modules/.pnpm/dayjs@1.11.11/node_modules/dayjs/plugin/isSameOrAfter.js +12 -0
- package/dist/v1/node_modules/.pnpm/dayjs@1.11.11/node_modules/dayjs/plugin/isSameOrAfter.js.map +1 -0
- package/dist/v1/node_modules/.pnpm/dayjs@1.11.11/node_modules/dayjs/plugin/isSameOrBefore.cjs +16 -0
- package/dist/v1/node_modules/.pnpm/dayjs@1.11.11/node_modules/dayjs/plugin/isSameOrBefore.cjs.map +1 -0
- package/dist/v1/node_modules/.pnpm/dayjs@1.11.11/node_modules/dayjs/plugin/isSameOrBefore.js +12 -0
- package/dist/v1/node_modules/.pnpm/dayjs@1.11.11/node_modules/dayjs/plugin/isSameOrBefore.js.map +1 -0
- package/dist/v1/style.css +1 -1
- package/dist/v1/types/filters.cjs +39 -0
- package/dist/v1/types/filters.cjs.map +1 -0
- package/dist/v1/types/filters.d.ts +42 -0
- package/dist/v1/types/filters.d.ts.map +1 -0
- package/dist/v1/types/filters.js +36 -0
- package/dist/v1/types/filters.js.map +1 -0
- package/package.json +2 -1
- package/dist/v1/components/sidepanel/index.d.ts +0 -2
- package/dist/v1/components/sidepanel/index.d.ts.map +0 -1
- package/dist/v1/components/sidepanel/sidepanel.cjs +0 -44
- package/dist/v1/components/sidepanel/sidepanel.cjs.map +0 -1
- package/dist/v1/components/sidepanel/sidepanel.d.ts.map +0 -1
- package/dist/v1/components/sidepanel/sidepanel.js +0 -42
- package/dist/v1/components/sidepanel/sidepanel.js.map +0 -1
- package/dist/v1/components/sidepanel/sidepanel.module.css.cjs +0 -8
- package/dist/v1/components/sidepanel/sidepanel.module.css.cjs.map +0 -1
- package/dist/v1/components/sidepanel/sidepanel.module.css.js +0 -4
- package/dist/v1/components/sidepanel/sidepanel.module.css.js.map +0 -1
|
@@ -0,0 +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} 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 RQLFilter {\n _type: FilterTypes;\n name: string;\n operator: FilterOperatorTypes;\n value: any;\n}\n\ntype SortOrdersKeys = keyof typeof SortOrders;\nexport type SortOrdersValues = typeof SortOrders[SortOrdersKeys];\n\nexport interface Sort {\n name: string;\n order: SortOrdersValues;\n}\n\nexport interface DataTableQuery {\n filters?: RQLFilter[];\n sort?: Sort[];\n group_by?: string[];\n offset?: number;\n limit?: number;\n search?: string;\n __group_by_sort?: SortOrdersValues;\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 columnType: FilterTypes;\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 groupSortOrder?: SortOrdersValues;\n showGroupCount?: boolean;\n groupCountMap?: Record<string, number>;\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: Sort;\n onLoadMore?: () => Promise<void>;\n}\n\nexport type DataTableContentProps = {\n emptyState?: React.ReactNode;\n classNames?: {\n table?: string;\n header?: string;\n body?: 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: Sort;\n tableQuery?: DataTableQuery;\n loadingRowCount?: number;\n onDisplaySettingsReset: () => void;\n updateTableQuery: (fn: TableQueryUpdateFn) => 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 group_key: string;\n subRows: T[];\n count?: number;\n showGroupCount?: boolean;\n}\n"],"names":[],"mappings":";;AASa,MAAA,UAAU,GAAG;AACxB,IAAA,GAAG,EAAE,KAAK;AACV,IAAA,IAAI,EAAE,MAAM;;;;;"}
|
|
@@ -0,0 +1,102 @@
|
|
|
1
|
+
import type { Column, ColumnDef, Table } from "@tanstack/table-core";
|
|
2
|
+
import type { FilterOperatorTypes, FilterSelectOption, FilterTypes } from "~/v1/types/filters";
|
|
3
|
+
export type DataTableMode = "client" | "server";
|
|
4
|
+
export declare const SortOrders: {
|
|
5
|
+
readonly ASC: "asc";
|
|
6
|
+
readonly DESC: "desc";
|
|
7
|
+
};
|
|
8
|
+
export interface RQLFilter {
|
|
9
|
+
_type: FilterTypes;
|
|
10
|
+
name: string;
|
|
11
|
+
operator: FilterOperatorTypes;
|
|
12
|
+
value: any;
|
|
13
|
+
}
|
|
14
|
+
type SortOrdersKeys = keyof typeof SortOrders;
|
|
15
|
+
export type SortOrdersValues = typeof SortOrders[SortOrdersKeys];
|
|
16
|
+
export interface Sort {
|
|
17
|
+
name: string;
|
|
18
|
+
order: SortOrdersValues;
|
|
19
|
+
}
|
|
20
|
+
export interface DataTableQuery {
|
|
21
|
+
filters?: RQLFilter[];
|
|
22
|
+
sort?: Sort[];
|
|
23
|
+
group_by?: string[];
|
|
24
|
+
offset?: number;
|
|
25
|
+
limit?: number;
|
|
26
|
+
search?: string;
|
|
27
|
+
__group_by_sort?: SortOrdersValues;
|
|
28
|
+
}
|
|
29
|
+
export type DataTableColumn<TData, TValue> = Omit<Column<TData, TValue>, "columnDef"> & {
|
|
30
|
+
columnDef: DataTableColumnDef<TData, TValue>;
|
|
31
|
+
};
|
|
32
|
+
export type DataTableColumnDef<TData, TValue> = ColumnDef<TData, TValue> & {
|
|
33
|
+
accessorKey: string;
|
|
34
|
+
header: string;
|
|
35
|
+
columnType: FilterTypes;
|
|
36
|
+
enableColumnFilter?: boolean;
|
|
37
|
+
enableSorting?: boolean;
|
|
38
|
+
enableHiding?: boolean;
|
|
39
|
+
defaultHidden?: boolean;
|
|
40
|
+
filterOptions?: FilterSelectOption[];
|
|
41
|
+
classNames?: {
|
|
42
|
+
cell?: string;
|
|
43
|
+
header?: string;
|
|
44
|
+
};
|
|
45
|
+
styles?: {
|
|
46
|
+
cell?: React.CSSProperties;
|
|
47
|
+
header?: React.CSSProperties;
|
|
48
|
+
};
|
|
49
|
+
enableGrouping?: boolean;
|
|
50
|
+
groupSortOrder?: SortOrdersValues;
|
|
51
|
+
showGroupCount?: boolean;
|
|
52
|
+
groupCountMap?: Record<string, number>;
|
|
53
|
+
icon?: React.ReactNode;
|
|
54
|
+
};
|
|
55
|
+
export interface DataTableProps<TData, TValue> {
|
|
56
|
+
columns: DataTableColumnDef<TData, TValue>[];
|
|
57
|
+
data: TData[];
|
|
58
|
+
query?: DataTableQuery;
|
|
59
|
+
mode?: DataTableMode;
|
|
60
|
+
isLoading?: boolean;
|
|
61
|
+
loadingRowCount?: number;
|
|
62
|
+
tableQuery?: DataTableQuery;
|
|
63
|
+
onTableQueryChange?: (query: DataTableQuery) => void;
|
|
64
|
+
defaultSort: Sort;
|
|
65
|
+
onLoadMore?: () => Promise<void>;
|
|
66
|
+
}
|
|
67
|
+
export type DataTableContentProps = {
|
|
68
|
+
emptyState?: React.ReactNode;
|
|
69
|
+
classNames?: {
|
|
70
|
+
table?: string;
|
|
71
|
+
header?: string;
|
|
72
|
+
body?: string;
|
|
73
|
+
};
|
|
74
|
+
};
|
|
75
|
+
export type TableQueryUpdateFn = (query: DataTableQuery) => DataTableQuery;
|
|
76
|
+
export type TableContextType<TData, TValue> = {
|
|
77
|
+
table: Table<TData>;
|
|
78
|
+
columns: DataTableColumnDef<TData, TValue>[];
|
|
79
|
+
isLoading?: boolean;
|
|
80
|
+
loadMoreData: () => void;
|
|
81
|
+
mode: DataTableMode;
|
|
82
|
+
defaultSort: Sort;
|
|
83
|
+
tableQuery?: DataTableQuery;
|
|
84
|
+
loadingRowCount?: number;
|
|
85
|
+
onDisplaySettingsReset: () => void;
|
|
86
|
+
updateTableQuery: (fn: TableQueryUpdateFn) => void;
|
|
87
|
+
};
|
|
88
|
+
export interface ColumnData {
|
|
89
|
+
label: string;
|
|
90
|
+
id: string;
|
|
91
|
+
isVisible?: boolean;
|
|
92
|
+
}
|
|
93
|
+
interface SubRows<T> {
|
|
94
|
+
}
|
|
95
|
+
export interface GroupedData<T> extends SubRows<T> {
|
|
96
|
+
group_key: string;
|
|
97
|
+
subRows: T[];
|
|
98
|
+
count?: number;
|
|
99
|
+
showGroupCount?: boolean;
|
|
100
|
+
}
|
|
101
|
+
export {};
|
|
102
|
+
//# sourceMappingURL=data-table.types.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"data-table.types.d.ts","sourceRoot":"","sources":["../../../../v1/components/data-table/data-table.types.tsx"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +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} 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 RQLFilter {\n _type: FilterTypes;\n name: string;\n operator: FilterOperatorTypes;\n value: any;\n}\n\ntype SortOrdersKeys = keyof typeof SortOrders;\nexport type SortOrdersValues = typeof SortOrders[SortOrdersKeys];\n\nexport interface Sort {\n name: string;\n order: SortOrdersValues;\n}\n\nexport interface DataTableQuery {\n filters?: RQLFilter[];\n sort?: Sort[];\n group_by?: string[];\n offset?: number;\n limit?: number;\n search?: string;\n __group_by_sort?: SortOrdersValues;\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 columnType: FilterTypes;\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 groupSortOrder?: SortOrdersValues;\n showGroupCount?: boolean;\n groupCountMap?: Record<string, number>;\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: Sort;\n onLoadMore?: () => Promise<void>;\n}\n\nexport type DataTableContentProps = {\n emptyState?: React.ReactNode;\n classNames?: {\n table?: string;\n header?: string;\n body?: 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: Sort;\n tableQuery?: DataTableQuery;\n loadingRowCount?: number;\n onDisplaySettingsReset: () => void;\n updateTableQuery: (fn: TableQueryUpdateFn) => 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 group_key: string;\n subRows: T[];\n count?: number;\n showGroupCount?: boolean;\n}\n"],"names":[],"mappings":"AASa,MAAA,UAAU,GAAG;AACxB,IAAA,GAAG,EAAE,KAAK;AACV,IAAA,IAAI,EAAE,MAAM;;;;;"}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
'use strict';
|
|
2
|
+
|
|
3
|
+
var React = require('react');
|
|
4
|
+
var context = require('../context.cjs');
|
|
5
|
+
|
|
6
|
+
const useDataTable = () => {
|
|
7
|
+
const ctx = React.useContext(context.TableContext);
|
|
8
|
+
if (ctx === null) {
|
|
9
|
+
throw new Error("useDataTable must be used inside of a DataTable.Provider");
|
|
10
|
+
}
|
|
11
|
+
return ctx;
|
|
12
|
+
};
|
|
13
|
+
|
|
14
|
+
exports.useDataTable = useDataTable;
|
|
15
|
+
//# sourceMappingURL=useDataTable.cjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"useDataTable.cjs","sources":["../../../../../v1/components/data-table/hooks/useDataTable.tsx"],"sourcesContent":["import { useContext } from \"react\";\nimport { TableContext } from \"../context\";\n\nexport const useDataTable = () => {\n const ctx = useContext(TableContext);\n if (ctx === null) {\n throw new Error(\"useDataTable must be used inside of a DataTable.Provider\");\n }\n\n return ctx;\n};\n"],"names":["useContext","TableContext"],"mappings":";;;;;AAGO,MAAM,YAAY,GAAG,MAAK;AAC/B,IAAA,MAAM,GAAG,GAAGA,gBAAU,CAACC,oBAAY,CAAC,CAAC;AACrC,IAAA,IAAI,GAAG,KAAK,IAAI,EAAE;AAChB,QAAA,MAAM,IAAI,KAAK,CAAC,0DAA0D,CAAC,CAAC;KAC7E;AAED,IAAA,OAAO,GAAG,CAAC;AACb;;;;"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"useDataTable.d.ts","sourceRoot":"","sources":["../../../../../v1/components/data-table/hooks/useDataTable.tsx"],"names":[],"mappings":"AAGA,eAAO,MAAM,YAAY,gEAOxB,CAAC"}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import { useContext } from 'react';
|
|
2
|
+
import { TableContext } from '../context.js';
|
|
3
|
+
|
|
4
|
+
const useDataTable = () => {
|
|
5
|
+
const ctx = useContext(TableContext);
|
|
6
|
+
if (ctx === null) {
|
|
7
|
+
throw new Error("useDataTable must be used inside of a DataTable.Provider");
|
|
8
|
+
}
|
|
9
|
+
return ctx;
|
|
10
|
+
};
|
|
11
|
+
|
|
12
|
+
export { useDataTable };
|
|
13
|
+
//# sourceMappingURL=useDataTable.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"useDataTable.js","sources":["../../../../../v1/components/data-table/hooks/useDataTable.tsx"],"sourcesContent":["import { useContext } from \"react\";\nimport { TableContext } from \"../context\";\n\nexport const useDataTable = () => {\n const ctx = useContext(TableContext);\n if (ctx === null) {\n throw new Error(\"useDataTable must be used inside of a DataTable.Provider\");\n }\n\n return ctx;\n};\n"],"names":[],"mappings":";;;AAGO,MAAM,YAAY,GAAG,MAAK;AAC/B,IAAA,MAAM,GAAG,GAAG,UAAU,CAAC,YAAY,CAAC,CAAC;AACrC,IAAA,IAAI,GAAG,KAAK,IAAI,EAAE;AAChB,QAAA,MAAM,IAAI,KAAK,CAAC,0DAA0D,CAAC,CAAC;KAC7E;AAED,IAAA,OAAO,GAAG,CAAC;AACb;;;;"}
|
|
@@ -0,0 +1,78 @@
|
|
|
1
|
+
'use strict';
|
|
2
|
+
|
|
3
|
+
var useDataTable = require('./useDataTable.cjs');
|
|
4
|
+
var filters = require('../../../types/filters.cjs');
|
|
5
|
+
|
|
6
|
+
function useFilters() {
|
|
7
|
+
const { updateTableQuery } = useDataTable.useDataTable();
|
|
8
|
+
function onAddFilter(column) {
|
|
9
|
+
const columnDef = column.columnDef;
|
|
10
|
+
const id = columnDef.accessorKey || column.id;
|
|
11
|
+
const options = columnDef.filterOptions || [];
|
|
12
|
+
const columnType = columnDef.columnType || "text";
|
|
13
|
+
const defaultFilter = filters.filterOperators[columnType][0];
|
|
14
|
+
const defaultValue = columnType === filters.FilterType.date
|
|
15
|
+
? new Date()
|
|
16
|
+
: columnType === filters.FilterType.select
|
|
17
|
+
? options[0].value
|
|
18
|
+
: "";
|
|
19
|
+
updateTableQuery((query) => {
|
|
20
|
+
return {
|
|
21
|
+
...query,
|
|
22
|
+
filters: [
|
|
23
|
+
...(query.filters || []),
|
|
24
|
+
// TODO: Add default filter value in column definition
|
|
25
|
+
{
|
|
26
|
+
_type: columnType,
|
|
27
|
+
name: id,
|
|
28
|
+
value: defaultValue,
|
|
29
|
+
operator: defaultFilter.value,
|
|
30
|
+
},
|
|
31
|
+
],
|
|
32
|
+
};
|
|
33
|
+
});
|
|
34
|
+
}
|
|
35
|
+
function handleRemoveFilter(columnId) {
|
|
36
|
+
updateTableQuery((query) => {
|
|
37
|
+
return {
|
|
38
|
+
...query,
|
|
39
|
+
filters: query.filters?.filter((filter) => filter.name !== columnId),
|
|
40
|
+
};
|
|
41
|
+
});
|
|
42
|
+
}
|
|
43
|
+
function handleFilterValueChange(columnId, value) {
|
|
44
|
+
updateTableQuery((query) => {
|
|
45
|
+
return {
|
|
46
|
+
...query,
|
|
47
|
+
filters: query.filters?.map((filter) => {
|
|
48
|
+
if (filter.name === columnId) {
|
|
49
|
+
return { ...filter, value };
|
|
50
|
+
}
|
|
51
|
+
return filter;
|
|
52
|
+
}),
|
|
53
|
+
};
|
|
54
|
+
});
|
|
55
|
+
}
|
|
56
|
+
function handleFilterOperationChange(columnId, operator) {
|
|
57
|
+
updateTableQuery((query) => {
|
|
58
|
+
return {
|
|
59
|
+
...query,
|
|
60
|
+
filters: query.filters?.map((filter) => {
|
|
61
|
+
if (filter.name === columnId) {
|
|
62
|
+
return { ...filter, operator };
|
|
63
|
+
}
|
|
64
|
+
return filter;
|
|
65
|
+
}),
|
|
66
|
+
};
|
|
67
|
+
});
|
|
68
|
+
}
|
|
69
|
+
return {
|
|
70
|
+
onAddFilter,
|
|
71
|
+
handleRemoveFilter,
|
|
72
|
+
handleFilterValueChange,
|
|
73
|
+
handleFilterOperationChange,
|
|
74
|
+
};
|
|
75
|
+
}
|
|
76
|
+
|
|
77
|
+
exports.useFilters = useFilters;
|
|
78
|
+
//# sourceMappingURL=useFilters.cjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"useFilters.cjs","sources":["../../../../../v1/components/data-table/hooks/useFilters.tsx"],"sourcesContent":["import { useDataTable } from \"./useDataTable\";\nimport {\n FilterOperatorTypes,\n FilterType,\n filterOperators,\n} from \"~/v1/types/filters\";\nimport { DataTableColumn } from \"../data-table.types\";\n\nexport function useFilters<TData, TValue>() {\n const { updateTableQuery } = useDataTable();\n\n function onAddFilter(column: DataTableColumn<TData, TValue>) {\n const columnDef = column.columnDef;\n const id = columnDef.accessorKey || column.id;\n const options = columnDef.filterOptions || [];\n const columnType = columnDef.columnType || \"text\";\n const defaultFilter = filterOperators[columnType][0];\n const defaultValue =\n columnType === FilterType.date\n ? new Date()\n : columnType === FilterType.select\n ? options[0].value\n : \"\";\n\n updateTableQuery((query) => {\n return {\n ...query,\n filters: [\n ...(query.filters || []),\n // TODO: Add default filter value in column definition\n {\n _type: columnType,\n name: id,\n value: defaultValue,\n operator: defaultFilter.value,\n },\n ],\n };\n });\n }\n\n function handleRemoveFilter(columnId: string) {\n updateTableQuery((query) => {\n return {\n ...query,\n filters: query.filters?.filter((filter) => filter.name !== columnId),\n };\n });\n }\n\n function handleFilterValueChange(columnId: string, value: any) {\n updateTableQuery((query) => {\n return {\n ...query,\n filters: query.filters?.map((filter) => {\n if (filter.name === columnId) {\n return { ...filter, value };\n }\n return filter;\n }),\n };\n });\n }\n\n function handleFilterOperationChange(\n columnId: string,\n operator: FilterOperatorTypes\n ) {\n updateTableQuery((query) => {\n return {\n ...query,\n filters: query.filters?.map((filter) => {\n if (filter.name === columnId) {\n return { ...filter, operator };\n }\n return filter;\n }),\n };\n });\n }\n\n return {\n onAddFilter,\n handleRemoveFilter,\n handleFilterValueChange,\n handleFilterOperationChange,\n };\n}\n"],"names":["useDataTable","filterOperators","FilterType"],"mappings":";;;;;SAQgB,UAAU,GAAA;AACxB,IAAA,MAAM,EAAE,gBAAgB,EAAE,GAAGA,yBAAY,EAAE,CAAC;IAE5C,SAAS,WAAW,CAAC,MAAsC,EAAA;AACzD,QAAA,MAAM,SAAS,GAAG,MAAM,CAAC,SAAS,CAAC;QACnC,MAAM,EAAE,GAAG,SAAS,CAAC,WAAW,IAAI,MAAM,CAAC,EAAE,CAAC;AAC9C,QAAA,MAAM,OAAO,GAAG,SAAS,CAAC,aAAa,IAAI,EAAE,CAAC;AAC9C,QAAA,MAAM,UAAU,GAAG,SAAS,CAAC,UAAU,IAAI,MAAM,CAAC;QAClD,MAAM,aAAa,GAAGC,uBAAe,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC;AACrD,QAAA,MAAM,YAAY,GAChB,UAAU,KAAKC,kBAAU,CAAC,IAAI;cAC1B,IAAI,IAAI,EAAE;AACZ,cAAE,UAAU,KAAKA,kBAAU,CAAC,MAAM;AAClC,kBAAE,OAAO,CAAC,CAAC,CAAC,CAAC,KAAK;kBAChB,EAAE,CAAC;AAET,QAAA,gBAAgB,CAAC,CAAC,KAAK,KAAI;YACzB,OAAO;AACL,gBAAA,GAAG,KAAK;AACR,gBAAA,OAAO,EAAE;AACP,oBAAA,IAAI,KAAK,CAAC,OAAO,IAAI,EAAE,CAAC;;AAExB,oBAAA;AACE,wBAAA,KAAK,EAAE,UAAU;AACjB,wBAAA,IAAI,EAAE,EAAE;AACR,wBAAA,KAAK,EAAE,YAAY;wBACnB,QAAQ,EAAE,aAAa,CAAC,KAAK;AAC9B,qBAAA;AACF,iBAAA;aACF,CAAC;AACJ,SAAC,CAAC,CAAC;KACJ;IAED,SAAS,kBAAkB,CAAC,QAAgB,EAAA;AAC1C,QAAA,gBAAgB,CAAC,CAAC,KAAK,KAAI;YACzB,OAAO;AACL,gBAAA,GAAG,KAAK;AACR,gBAAA,OAAO,EAAE,KAAK,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC,MAAM,KAAK,MAAM,CAAC,IAAI,KAAK,QAAQ,CAAC;aACrE,CAAC;AACJ,SAAC,CAAC,CAAC;KACJ;AAED,IAAA,SAAS,uBAAuB,CAAC,QAAgB,EAAE,KAAU,EAAA;AAC3D,QAAA,gBAAgB,CAAC,CAAC,KAAK,KAAI;YACzB,OAAO;AACL,gBAAA,GAAG,KAAK;gBACR,OAAO,EAAE,KAAK,CAAC,OAAO,EAAE,GAAG,CAAC,CAAC,MAAM,KAAI;AACrC,oBAAA,IAAI,MAAM,CAAC,IAAI,KAAK,QAAQ,EAAE;AAC5B,wBAAA,OAAO,EAAE,GAAG,MAAM,EAAE,KAAK,EAAE,CAAC;qBAC7B;AACD,oBAAA,OAAO,MAAM,CAAC;AAChB,iBAAC,CAAC;aACH,CAAC;AACJ,SAAC,CAAC,CAAC;KACJ;AAED,IAAA,SAAS,2BAA2B,CAClC,QAAgB,EAChB,QAA6B,EAAA;AAE7B,QAAA,gBAAgB,CAAC,CAAC,KAAK,KAAI;YACzB,OAAO;AACL,gBAAA,GAAG,KAAK;gBACR,OAAO,EAAE,KAAK,CAAC,OAAO,EAAE,GAAG,CAAC,CAAC,MAAM,KAAI;AACrC,oBAAA,IAAI,MAAM,CAAC,IAAI,KAAK,QAAQ,EAAE;AAC5B,wBAAA,OAAO,EAAE,GAAG,MAAM,EAAE,QAAQ,EAAE,CAAC;qBAChC;AACD,oBAAA,OAAO,MAAM,CAAC;AAChB,iBAAC,CAAC;aACH,CAAC;AACJ,SAAC,CAAC,CAAC;KACJ;IAED,OAAO;QACL,WAAW;QACX,kBAAkB;QAClB,uBAAuB;QACvB,2BAA2B;KAC5B,CAAC;AACJ;;;;"}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import { FilterOperatorTypes } from "~/v1/types/filters";
|
|
2
|
+
import { DataTableColumn } from "../data-table.types";
|
|
3
|
+
export declare function useFilters<TData, TValue>(): {
|
|
4
|
+
onAddFilter: (column: DataTableColumn<TData, TValue>) => void;
|
|
5
|
+
handleRemoveFilter: (columnId: string) => void;
|
|
6
|
+
handleFilterValueChange: (columnId: string, value: any) => void;
|
|
7
|
+
handleFilterOperationChange: (columnId: string, operator: FilterOperatorTypes) => void;
|
|
8
|
+
};
|
|
9
|
+
//# sourceMappingURL=useFilters.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"useFilters.d.ts","sourceRoot":"","sources":["../../../../../v1/components/data-table/hooks/useFilters.tsx"],"names":[],"mappings":"AACA,OAAO,EACL,mBAAmB,EAGpB,MAAM,oBAAoB,CAAC;AAC5B,OAAO,EAAE,eAAe,EAAE,MAAM,qBAAqB,CAAC;AAEtD,wBAAgB,UAAU,CAAC,KAAK,EAAE,MAAM;0BAGT,gBAAgB,KAAK,EAAE,MAAM,CAAC;mCA8BrB,MAAM;wCASD,MAAM,SAAS,GAAG;4CAejD,MAAM,YACN,mBAAmB;EAqBhC"}
|
|
@@ -0,0 +1,76 @@
|
|
|
1
|
+
import { useDataTable } from './useDataTable.js';
|
|
2
|
+
import { filterOperators, FilterType } from '../../../types/filters.js';
|
|
3
|
+
|
|
4
|
+
function useFilters() {
|
|
5
|
+
const { updateTableQuery } = useDataTable();
|
|
6
|
+
function onAddFilter(column) {
|
|
7
|
+
const columnDef = column.columnDef;
|
|
8
|
+
const id = columnDef.accessorKey || column.id;
|
|
9
|
+
const options = columnDef.filterOptions || [];
|
|
10
|
+
const columnType = columnDef.columnType || "text";
|
|
11
|
+
const defaultFilter = filterOperators[columnType][0];
|
|
12
|
+
const defaultValue = columnType === FilterType.date
|
|
13
|
+
? new Date()
|
|
14
|
+
: columnType === FilterType.select
|
|
15
|
+
? options[0].value
|
|
16
|
+
: "";
|
|
17
|
+
updateTableQuery((query) => {
|
|
18
|
+
return {
|
|
19
|
+
...query,
|
|
20
|
+
filters: [
|
|
21
|
+
...(query.filters || []),
|
|
22
|
+
// TODO: Add default filter value in column definition
|
|
23
|
+
{
|
|
24
|
+
_type: columnType,
|
|
25
|
+
name: id,
|
|
26
|
+
value: defaultValue,
|
|
27
|
+
operator: defaultFilter.value,
|
|
28
|
+
},
|
|
29
|
+
],
|
|
30
|
+
};
|
|
31
|
+
});
|
|
32
|
+
}
|
|
33
|
+
function handleRemoveFilter(columnId) {
|
|
34
|
+
updateTableQuery((query) => {
|
|
35
|
+
return {
|
|
36
|
+
...query,
|
|
37
|
+
filters: query.filters?.filter((filter) => filter.name !== columnId),
|
|
38
|
+
};
|
|
39
|
+
});
|
|
40
|
+
}
|
|
41
|
+
function handleFilterValueChange(columnId, value) {
|
|
42
|
+
updateTableQuery((query) => {
|
|
43
|
+
return {
|
|
44
|
+
...query,
|
|
45
|
+
filters: query.filters?.map((filter) => {
|
|
46
|
+
if (filter.name === columnId) {
|
|
47
|
+
return { ...filter, value };
|
|
48
|
+
}
|
|
49
|
+
return filter;
|
|
50
|
+
}),
|
|
51
|
+
};
|
|
52
|
+
});
|
|
53
|
+
}
|
|
54
|
+
function handleFilterOperationChange(columnId, operator) {
|
|
55
|
+
updateTableQuery((query) => {
|
|
56
|
+
return {
|
|
57
|
+
...query,
|
|
58
|
+
filters: query.filters?.map((filter) => {
|
|
59
|
+
if (filter.name === columnId) {
|
|
60
|
+
return { ...filter, operator };
|
|
61
|
+
}
|
|
62
|
+
return filter;
|
|
63
|
+
}),
|
|
64
|
+
};
|
|
65
|
+
});
|
|
66
|
+
}
|
|
67
|
+
return {
|
|
68
|
+
onAddFilter,
|
|
69
|
+
handleRemoveFilter,
|
|
70
|
+
handleFilterValueChange,
|
|
71
|
+
handleFilterOperationChange,
|
|
72
|
+
};
|
|
73
|
+
}
|
|
74
|
+
|
|
75
|
+
export { useFilters };
|
|
76
|
+
//# sourceMappingURL=useFilters.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"useFilters.js","sources":["../../../../../v1/components/data-table/hooks/useFilters.tsx"],"sourcesContent":["import { useDataTable } from \"./useDataTable\";\nimport {\n FilterOperatorTypes,\n FilterType,\n filterOperators,\n} from \"~/v1/types/filters\";\nimport { DataTableColumn } from \"../data-table.types\";\n\nexport function useFilters<TData, TValue>() {\n const { updateTableQuery } = useDataTable();\n\n function onAddFilter(column: DataTableColumn<TData, TValue>) {\n const columnDef = column.columnDef;\n const id = columnDef.accessorKey || column.id;\n const options = columnDef.filterOptions || [];\n const columnType = columnDef.columnType || \"text\";\n const defaultFilter = filterOperators[columnType][0];\n const defaultValue =\n columnType === FilterType.date\n ? new Date()\n : columnType === FilterType.select\n ? options[0].value\n : \"\";\n\n updateTableQuery((query) => {\n return {\n ...query,\n filters: [\n ...(query.filters || []),\n // TODO: Add default filter value in column definition\n {\n _type: columnType,\n name: id,\n value: defaultValue,\n operator: defaultFilter.value,\n },\n ],\n };\n });\n }\n\n function handleRemoveFilter(columnId: string) {\n updateTableQuery((query) => {\n return {\n ...query,\n filters: query.filters?.filter((filter) => filter.name !== columnId),\n };\n });\n }\n\n function handleFilterValueChange(columnId: string, value: any) {\n updateTableQuery((query) => {\n return {\n ...query,\n filters: query.filters?.map((filter) => {\n if (filter.name === columnId) {\n return { ...filter, value };\n }\n return filter;\n }),\n };\n });\n }\n\n function handleFilterOperationChange(\n columnId: string,\n operator: FilterOperatorTypes\n ) {\n updateTableQuery((query) => {\n return {\n ...query,\n filters: query.filters?.map((filter) => {\n if (filter.name === columnId) {\n return { ...filter, operator };\n }\n return filter;\n }),\n };\n });\n }\n\n return {\n onAddFilter,\n handleRemoveFilter,\n handleFilterValueChange,\n handleFilterOperationChange,\n };\n}\n"],"names":[],"mappings":";;;SAQgB,UAAU,GAAA;AACxB,IAAA,MAAM,EAAE,gBAAgB,EAAE,GAAG,YAAY,EAAE,CAAC;IAE5C,SAAS,WAAW,CAAC,MAAsC,EAAA;AACzD,QAAA,MAAM,SAAS,GAAG,MAAM,CAAC,SAAS,CAAC;QACnC,MAAM,EAAE,GAAG,SAAS,CAAC,WAAW,IAAI,MAAM,CAAC,EAAE,CAAC;AAC9C,QAAA,MAAM,OAAO,GAAG,SAAS,CAAC,aAAa,IAAI,EAAE,CAAC;AAC9C,QAAA,MAAM,UAAU,GAAG,SAAS,CAAC,UAAU,IAAI,MAAM,CAAC;QAClD,MAAM,aAAa,GAAG,eAAe,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC;AACrD,QAAA,MAAM,YAAY,GAChB,UAAU,KAAK,UAAU,CAAC,IAAI;cAC1B,IAAI,IAAI,EAAE;AACZ,cAAE,UAAU,KAAK,UAAU,CAAC,MAAM;AAClC,kBAAE,OAAO,CAAC,CAAC,CAAC,CAAC,KAAK;kBAChB,EAAE,CAAC;AAET,QAAA,gBAAgB,CAAC,CAAC,KAAK,KAAI;YACzB,OAAO;AACL,gBAAA,GAAG,KAAK;AACR,gBAAA,OAAO,EAAE;AACP,oBAAA,IAAI,KAAK,CAAC,OAAO,IAAI,EAAE,CAAC;;AAExB,oBAAA;AACE,wBAAA,KAAK,EAAE,UAAU;AACjB,wBAAA,IAAI,EAAE,EAAE;AACR,wBAAA,KAAK,EAAE,YAAY;wBACnB,QAAQ,EAAE,aAAa,CAAC,KAAK;AAC9B,qBAAA;AACF,iBAAA;aACF,CAAC;AACJ,SAAC,CAAC,CAAC;KACJ;IAED,SAAS,kBAAkB,CAAC,QAAgB,EAAA;AAC1C,QAAA,gBAAgB,CAAC,CAAC,KAAK,KAAI;YACzB,OAAO;AACL,gBAAA,GAAG,KAAK;AACR,gBAAA,OAAO,EAAE,KAAK,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC,MAAM,KAAK,MAAM,CAAC,IAAI,KAAK,QAAQ,CAAC;aACrE,CAAC;AACJ,SAAC,CAAC,CAAC;KACJ;AAED,IAAA,SAAS,uBAAuB,CAAC,QAAgB,EAAE,KAAU,EAAA;AAC3D,QAAA,gBAAgB,CAAC,CAAC,KAAK,KAAI;YACzB,OAAO;AACL,gBAAA,GAAG,KAAK;gBACR,OAAO,EAAE,KAAK,CAAC,OAAO,EAAE,GAAG,CAAC,CAAC,MAAM,KAAI;AACrC,oBAAA,IAAI,MAAM,CAAC,IAAI,KAAK,QAAQ,EAAE;AAC5B,wBAAA,OAAO,EAAE,GAAG,MAAM,EAAE,KAAK,EAAE,CAAC;qBAC7B;AACD,oBAAA,OAAO,MAAM,CAAC;AAChB,iBAAC,CAAC;aACH,CAAC;AACJ,SAAC,CAAC,CAAC;KACJ;AAED,IAAA,SAAS,2BAA2B,CAClC,QAAgB,EAChB,QAA6B,EAAA;AAE7B,QAAA,gBAAgB,CAAC,CAAC,KAAK,KAAI;YACzB,OAAO;AACL,gBAAA,GAAG,KAAK;gBACR,OAAO,EAAE,KAAK,CAAC,OAAO,EAAE,GAAG,CAAC,CAAC,MAAM,KAAI;AACrC,oBAAA,IAAI,MAAM,CAAC,IAAI,KAAK,QAAQ,EAAE;AAC5B,wBAAA,OAAO,EAAE,GAAG,MAAM,EAAE,QAAQ,EAAE,CAAC;qBAChC;AACD,oBAAA,OAAO,MAAM,CAAC;AAChB,iBAAC,CAAC;aACH,CAAC;AACJ,SAAC,CAAC,CAAC;KACJ;IAED,OAAO;QACL,WAAW;QACX,kBAAkB;QAClB,uBAAuB;QACvB,2BAA2B;KAC5B,CAAC;AACJ;;;;"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../v1/components/data-table/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AACzC,OAAO,EAAE,kBAAkB,EAAE,cAAc,EAAE,MAAM,oBAAoB,CAAC;AACxE,OAAO,EAAE,YAAY,EAAE,MAAM,sBAAsB,CAAC"}
|
|
@@ -0,0 +1,83 @@
|
|
|
1
|
+
'use strict';
|
|
2
|
+
|
|
3
|
+
var dayjs_min = require('../../../node_modules/.pnpm/dayjs@1.11.11/node_modules/dayjs/dayjs.min.cjs');
|
|
4
|
+
var isSameOrAfter = require('../../../node_modules/.pnpm/dayjs@1.11.11/node_modules/dayjs/plugin/isSameOrAfter.cjs');
|
|
5
|
+
var isSameOrBefore = require('../../../node_modules/.pnpm/dayjs@1.11.11/node_modules/dayjs/plugin/isSameOrBefore.cjs');
|
|
6
|
+
|
|
7
|
+
dayjs_min.default.extend(isSameOrAfter.default);
|
|
8
|
+
dayjs_min.default.extend(isSameOrBefore.default);
|
|
9
|
+
const filterOperationsMap = {
|
|
10
|
+
number: {
|
|
11
|
+
eq: (row, columnId, filterValue) => {
|
|
12
|
+
return Number(row.getValue(columnId)) === Number(filterValue.value);
|
|
13
|
+
},
|
|
14
|
+
neq: (row, columnId, filterValue) => {
|
|
15
|
+
return Number(row.getValue(columnId)) !== Number(filterValue.value);
|
|
16
|
+
},
|
|
17
|
+
lt: (row, columnId, filterValue) => {
|
|
18
|
+
return Number(row.getValue(columnId)) < Number(filterValue.value);
|
|
19
|
+
},
|
|
20
|
+
lte: (row, columnId, filterValue) => {
|
|
21
|
+
return Number(row.getValue(columnId)) <= Number(filterValue.value);
|
|
22
|
+
},
|
|
23
|
+
gt: (row, columnId, filterValue) => {
|
|
24
|
+
return Number(row.getValue(columnId)) > Number(filterValue.value);
|
|
25
|
+
},
|
|
26
|
+
gte: (row, columnId, filterValue) => {
|
|
27
|
+
return Number(row.getValue(columnId)) >= Number(filterValue.value);
|
|
28
|
+
},
|
|
29
|
+
},
|
|
30
|
+
text: {
|
|
31
|
+
eq: (row, columnId, filterValue) => {
|
|
32
|
+
return (String(row.getValue(columnId)).toLowerCase() ===
|
|
33
|
+
String(filterValue.value).toLowerCase());
|
|
34
|
+
},
|
|
35
|
+
neq: (row, columnId, filterValue) => {
|
|
36
|
+
return (String(row.getValue(columnId)).toLowerCase() !==
|
|
37
|
+
String(filterValue.value).toLowerCase());
|
|
38
|
+
},
|
|
39
|
+
like: (row, columnId, filterValue) => {
|
|
40
|
+
const columnValue = row.getValue(columnId).toLowerCase();
|
|
41
|
+
const filterStr = filterValue.value.toLowerCase();
|
|
42
|
+
return columnValue.includes(filterStr);
|
|
43
|
+
},
|
|
44
|
+
},
|
|
45
|
+
date: {
|
|
46
|
+
eq: (row, columnId, filterValue) => {
|
|
47
|
+
return dayjs_min.default(row.getValue(columnId)).isSame(dayjs_min.default(filterValue.date), "day");
|
|
48
|
+
},
|
|
49
|
+
neq: (row, columnId, filterValue) => {
|
|
50
|
+
return !dayjs_min.default(row.getValue(columnId)).isSame(dayjs_min.default(filterValue.date), "day");
|
|
51
|
+
},
|
|
52
|
+
lt: (row, columnId, filterValue) => {
|
|
53
|
+
return dayjs_min.default(row.getValue(columnId)).isBefore(dayjs_min.default(filterValue.date), "day");
|
|
54
|
+
},
|
|
55
|
+
lte: (row, columnId, filterValue) => {
|
|
56
|
+
return dayjs_min.default(row.getValue(columnId)).isSameOrBefore(dayjs_min.default(filterValue.date), "day");
|
|
57
|
+
},
|
|
58
|
+
gt: (row, columnId, filterValue) => {
|
|
59
|
+
return dayjs_min.default(row.getValue(columnId)).isAfter(dayjs_min.default(filterValue.date), "day");
|
|
60
|
+
},
|
|
61
|
+
gte: (row, columnId, filterValue) => {
|
|
62
|
+
return dayjs_min.default(row.getValue(columnId)).isSameOrAfter(dayjs_min.default(filterValue.date), "day");
|
|
63
|
+
},
|
|
64
|
+
},
|
|
65
|
+
select: {
|
|
66
|
+
eq: (row, columnId, filterValue) => {
|
|
67
|
+
// Select only supports string values
|
|
68
|
+
return String(row.getValue(columnId)) === String(filterValue.value);
|
|
69
|
+
},
|
|
70
|
+
neq: (row, columnId, filterValue) => {
|
|
71
|
+
// Select only supports string values
|
|
72
|
+
return String(row.getValue(columnId)) !== String(filterValue.value);
|
|
73
|
+
},
|
|
74
|
+
},
|
|
75
|
+
};
|
|
76
|
+
function getFilterFn(type, operator) {
|
|
77
|
+
// @ts-expect-error FilterOperatorTypes is union of all possible operators
|
|
78
|
+
return filterOperationsMap[type][operator];
|
|
79
|
+
}
|
|
80
|
+
|
|
81
|
+
exports.filterOperationsMap = filterOperationsMap;
|
|
82
|
+
exports.getFilterFn = getFilterFn;
|
|
83
|
+
//# sourceMappingURL=filter-operations.cjs.map
|
|
@@ -0,0 +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 TextFilterOperatorType,\n DateFilterOperatorType,\n SelectFilterOperatorType,\n FilterOperatorTypes,\n} from \"~/v1/types/filters\";\n\ndayjs.extend(isSameOrAfter);\ndayjs.extend(isSameOrBefore);\n\nexport type FilterFunctionsMap = {\n number: Record<NumberFilterOperatorType, FilterFn<any>>;\n text: Record<TextFilterOperatorType, 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 text: {\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 // Select only supports string values\n return String(row.getValue(columnId)) === String(filterValue.value);\n },\n neq: (row, columnId, filterValue: FilterValue) => {\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"],"names":["dayjs","isSameOrAfter","isSameOrBefore"],"mappings":"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"}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import type { FilterFn } from "@tanstack/table-core";
|
|
2
|
+
import { NumberFilterOperatorType, TextFilterOperatorType, DateFilterOperatorType, SelectFilterOperatorType, FilterOperatorTypes } from "~/v1/types/filters";
|
|
3
|
+
export type FilterFunctionsMap = {
|
|
4
|
+
number: Record<NumberFilterOperatorType, FilterFn<any>>;
|
|
5
|
+
text: Record<TextFilterOperatorType, FilterFn<any>>;
|
|
6
|
+
date: Record<DateFilterOperatorType, FilterFn<any>>;
|
|
7
|
+
select: Record<SelectFilterOperatorType, FilterFn<any>>;
|
|
8
|
+
};
|
|
9
|
+
export declare const filterOperationsMap: FilterFunctionsMap;
|
|
10
|
+
export declare function getFilterFn<T extends keyof FilterFunctionsMap>(type: T, operator: FilterOperatorTypes): any;
|
|
11
|
+
//# sourceMappingURL=filter-operations.d.ts.map
|
|
@@ -0,0 +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,sBAAsB,EACtB,sBAAsB,EACtB,wBAAwB,EACxB,mBAAmB,EACpB,MAAM,oBAAoB,CAAC;AAK5B,MAAM,MAAM,kBAAkB,GAAG;IAC/B,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,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,kBAwFxB,CAAC;AAEX,wBAAgB,WAAW,CAAC,CAAC,SAAS,MAAM,kBAAkB,EAC5D,IAAI,EAAE,CAAC,EACP,QAAQ,EAAE,mBAAmB,OAI9B"}
|
|
@@ -0,0 +1,80 @@
|
|
|
1
|
+
import dayjs from '../../../node_modules/.pnpm/dayjs@1.11.11/node_modules/dayjs/dayjs.min.js';
|
|
2
|
+
import isSameOrAfter from '../../../node_modules/.pnpm/dayjs@1.11.11/node_modules/dayjs/plugin/isSameOrAfter.js';
|
|
3
|
+
import isSameOrBefore from '../../../node_modules/.pnpm/dayjs@1.11.11/node_modules/dayjs/plugin/isSameOrBefore.js';
|
|
4
|
+
|
|
5
|
+
dayjs.extend(isSameOrAfter);
|
|
6
|
+
dayjs.extend(isSameOrBefore);
|
|
7
|
+
const filterOperationsMap = {
|
|
8
|
+
number: {
|
|
9
|
+
eq: (row, columnId, filterValue) => {
|
|
10
|
+
return Number(row.getValue(columnId)) === Number(filterValue.value);
|
|
11
|
+
},
|
|
12
|
+
neq: (row, columnId, filterValue) => {
|
|
13
|
+
return Number(row.getValue(columnId)) !== Number(filterValue.value);
|
|
14
|
+
},
|
|
15
|
+
lt: (row, columnId, filterValue) => {
|
|
16
|
+
return Number(row.getValue(columnId)) < Number(filterValue.value);
|
|
17
|
+
},
|
|
18
|
+
lte: (row, columnId, filterValue) => {
|
|
19
|
+
return Number(row.getValue(columnId)) <= Number(filterValue.value);
|
|
20
|
+
},
|
|
21
|
+
gt: (row, columnId, filterValue) => {
|
|
22
|
+
return Number(row.getValue(columnId)) > Number(filterValue.value);
|
|
23
|
+
},
|
|
24
|
+
gte: (row, columnId, filterValue) => {
|
|
25
|
+
return Number(row.getValue(columnId)) >= Number(filterValue.value);
|
|
26
|
+
},
|
|
27
|
+
},
|
|
28
|
+
text: {
|
|
29
|
+
eq: (row, columnId, filterValue) => {
|
|
30
|
+
return (String(row.getValue(columnId)).toLowerCase() ===
|
|
31
|
+
String(filterValue.value).toLowerCase());
|
|
32
|
+
},
|
|
33
|
+
neq: (row, columnId, filterValue) => {
|
|
34
|
+
return (String(row.getValue(columnId)).toLowerCase() !==
|
|
35
|
+
String(filterValue.value).toLowerCase());
|
|
36
|
+
},
|
|
37
|
+
like: (row, columnId, filterValue) => {
|
|
38
|
+
const columnValue = row.getValue(columnId).toLowerCase();
|
|
39
|
+
const filterStr = filterValue.value.toLowerCase();
|
|
40
|
+
return columnValue.includes(filterStr);
|
|
41
|
+
},
|
|
42
|
+
},
|
|
43
|
+
date: {
|
|
44
|
+
eq: (row, columnId, filterValue) => {
|
|
45
|
+
return dayjs(row.getValue(columnId)).isSame(dayjs(filterValue.date), "day");
|
|
46
|
+
},
|
|
47
|
+
neq: (row, columnId, filterValue) => {
|
|
48
|
+
return !dayjs(row.getValue(columnId)).isSame(dayjs(filterValue.date), "day");
|
|
49
|
+
},
|
|
50
|
+
lt: (row, columnId, filterValue) => {
|
|
51
|
+
return dayjs(row.getValue(columnId)).isBefore(dayjs(filterValue.date), "day");
|
|
52
|
+
},
|
|
53
|
+
lte: (row, columnId, filterValue) => {
|
|
54
|
+
return dayjs(row.getValue(columnId)).isSameOrBefore(dayjs(filterValue.date), "day");
|
|
55
|
+
},
|
|
56
|
+
gt: (row, columnId, filterValue) => {
|
|
57
|
+
return dayjs(row.getValue(columnId)).isAfter(dayjs(filterValue.date), "day");
|
|
58
|
+
},
|
|
59
|
+
gte: (row, columnId, filterValue) => {
|
|
60
|
+
return dayjs(row.getValue(columnId)).isSameOrAfter(dayjs(filterValue.date), "day");
|
|
61
|
+
},
|
|
62
|
+
},
|
|
63
|
+
select: {
|
|
64
|
+
eq: (row, columnId, filterValue) => {
|
|
65
|
+
// Select only supports string values
|
|
66
|
+
return String(row.getValue(columnId)) === String(filterValue.value);
|
|
67
|
+
},
|
|
68
|
+
neq: (row, columnId, filterValue) => {
|
|
69
|
+
// Select only supports string values
|
|
70
|
+
return String(row.getValue(columnId)) !== String(filterValue.value);
|
|
71
|
+
},
|
|
72
|
+
},
|
|
73
|
+
};
|
|
74
|
+
function getFilterFn(type, operator) {
|
|
75
|
+
// @ts-expect-error FilterOperatorTypes is union of all possible operators
|
|
76
|
+
return filterOperationsMap[type][operator];
|
|
77
|
+
}
|
|
78
|
+
|
|
79
|
+
export { filterOperationsMap, getFilterFn };
|
|
80
|
+
//# sourceMappingURL=filter-operations.js.map
|
|
@@ -0,0 +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 TextFilterOperatorType,\n DateFilterOperatorType,\n SelectFilterOperatorType,\n FilterOperatorTypes,\n} from \"~/v1/types/filters\";\n\ndayjs.extend(isSameOrAfter);\ndayjs.extend(isSameOrBefore);\n\nexport type FilterFunctionsMap = {\n number: Record<NumberFilterOperatorType, FilterFn<any>>;\n text: Record<TextFilterOperatorType, 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 text: {\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 // Select only supports string values\n return String(row.getValue(columnId)) === String(filterValue.value);\n },\n neq: (row, columnId, filterValue: FilterValue) => {\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"],"names":[],"mappings":"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"}
|