@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.
Files changed (226) hide show
  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.cjs +92 -0
  2. 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
  3. 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
  4. 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
  5. 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
  6. 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
  7. 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
  8. package/dist/node_modules/.pnpm/@tanstack_table-core@8.9.2/node_modules/@tanstack/table-core/build/lib/index.cjs +20 -0
  9. package/dist/node_modules/.pnpm/@tanstack_table-core@8.9.2/node_modules/@tanstack/table-core/build/lib/index.cjs.map +1 -1
  10. package/dist/node_modules/.pnpm/@tanstack_table-core@8.9.2/node_modules/@tanstack/table-core/build/lib/index.js +20 -1
  11. package/dist/node_modules/.pnpm/@tanstack_table-core@8.9.2/node_modules/@tanstack/table-core/build/lib/index.js.map +1 -1
  12. package/dist/sidebar/sidebar.cjs +6 -6
  13. package/dist/sidebar/sidebar.cjs.map +1 -1
  14. package/dist/sidebar/sidebar.d.ts +4 -4
  15. package/dist/sidebar/sidebar.js +6 -6
  16. package/dist/sidebar/sidebar.js.map +1 -1
  17. package/dist/style.css +1 -1
  18. package/dist/v1/_virtual/isSameOrAfter.cjs +6 -0
  19. package/dist/v1/_virtual/isSameOrAfter.cjs.map +1 -0
  20. package/dist/v1/_virtual/isSameOrAfter.js +4 -0
  21. package/dist/v1/_virtual/isSameOrAfter.js.map +1 -0
  22. package/dist/v1/_virtual/isSameOrBefore.cjs +6 -0
  23. package/dist/v1/_virtual/isSameOrBefore.cjs.map +1 -0
  24. package/dist/v1/_virtual/isSameOrBefore.js +4 -0
  25. package/dist/v1/_virtual/isSameOrBefore.js.map +1 -0
  26. package/dist/v1/components/calendar/calendar.cjs +1 -1
  27. package/dist/v1/components/calendar/calendar.cjs.map +1 -1
  28. package/dist/v1/components/calendar/calendar.js +1 -1
  29. package/dist/v1/components/calendar/calendar.js.map +1 -1
  30. package/dist/v1/components/calendar/date-picker.cjs +26 -17
  31. package/dist/v1/components/calendar/date-picker.cjs.map +1 -1
  32. package/dist/v1/components/calendar/date-picker.d.ts.map +1 -1
  33. package/dist/v1/components/calendar/date-picker.js +26 -17
  34. package/dist/v1/components/calendar/date-picker.js.map +1 -1
  35. package/dist/v1/components/chip/chip.cjs +3 -3
  36. package/dist/v1/components/chip/chip.cjs.map +1 -1
  37. package/dist/v1/components/chip/chip.d.ts +2 -1
  38. package/dist/v1/components/chip/chip.d.ts.map +1 -1
  39. package/dist/v1/components/chip/chip.js +3 -3
  40. package/dist/v1/components/chip/chip.js.map +1 -1
  41. package/dist/v1/components/data-table/components/content.cjs +81 -0
  42. package/dist/v1/components/data-table/components/content.cjs.map +1 -0
  43. package/dist/v1/components/data-table/components/content.d.ts +3 -0
  44. package/dist/v1/components/data-table/components/content.d.ts.map +1 -0
  45. package/dist/v1/components/data-table/components/content.js +79 -0
  46. package/dist/v1/components/data-table/components/content.js.map +1 -0
  47. package/dist/v1/components/data-table/components/display-properties.cjs +14 -0
  48. package/dist/v1/components/data-table/components/display-properties.cjs.map +1 -0
  49. package/dist/v1/components/data-table/components/display-properties.d.ts +5 -0
  50. package/dist/v1/components/data-table/components/display-properties.d.ts.map +1 -0
  51. package/dist/v1/components/data-table/components/display-properties.js +12 -0
  52. package/dist/v1/components/data-table/components/display-properties.js.map +1 -0
  53. package/dist/v1/components/data-table/components/display-settings.cjs +51 -0
  54. package/dist/v1/components/data-table/components/display-settings.cjs.map +1 -0
  55. package/dist/v1/components/data-table/components/display-settings.d.ts +2 -0
  56. package/dist/v1/components/data-table/components/display-settings.d.ts.map +1 -0
  57. package/dist/v1/components/data-table/components/display-settings.js +49 -0
  58. package/dist/v1/components/data-table/components/display-settings.js.map +1 -0
  59. package/dist/v1/components/data-table/components/filters.cjs +44 -0
  60. package/dist/v1/components/data-table/components/filters.cjs.map +1 -0
  61. package/dist/v1/components/data-table/components/filters.d.ts +2 -0
  62. package/dist/v1/components/data-table/components/filters.d.ts.map +1 -0
  63. package/dist/v1/components/data-table/components/filters.js +42 -0
  64. package/dist/v1/components/data-table/components/filters.js.map +1 -0
  65. package/dist/v1/components/data-table/components/grouping.cjs +31 -0
  66. package/dist/v1/components/data-table/components/grouping.cjs.map +1 -0
  67. package/dist/v1/components/data-table/components/grouping.d.ts +9 -0
  68. package/dist/v1/components/data-table/components/grouping.d.ts.map +1 -0
  69. package/dist/v1/components/data-table/components/grouping.js +29 -0
  70. package/dist/v1/components/data-table/components/grouping.js.map +1 -0
  71. package/dist/v1/components/data-table/components/ordering.cjs +24 -0
  72. package/dist/v1/components/data-table/components/ordering.cjs.map +1 -0
  73. package/dist/v1/components/data-table/components/ordering.d.ts +8 -0
  74. package/dist/v1/components/data-table/components/ordering.d.ts.map +1 -0
  75. package/dist/v1/components/data-table/components/ordering.js +22 -0
  76. package/dist/v1/components/data-table/components/ordering.js.map +1 -0
  77. package/dist/v1/components/data-table/components/search.cjs +22 -0
  78. package/dist/v1/components/data-table/components/search.cjs.map +1 -0
  79. package/dist/v1/components/data-table/components/search.d.ts +3 -0
  80. package/dist/v1/components/data-table/components/search.d.ts.map +1 -0
  81. package/dist/v1/components/data-table/components/search.js +20 -0
  82. package/dist/v1/components/data-table/components/search.js.map +1 -0
  83. package/dist/v1/components/data-table/components/toolbar.cjs +15 -0
  84. package/dist/v1/components/data-table/components/toolbar.cjs.map +1 -0
  85. package/dist/v1/components/data-table/components/toolbar.d.ts +4 -0
  86. package/dist/v1/components/data-table/components/toolbar.d.ts.map +1 -0
  87. package/dist/v1/components/data-table/components/toolbar.js +13 -0
  88. package/dist/v1/components/data-table/components/toolbar.js.map +1 -0
  89. package/dist/v1/components/data-table/context.cjs +8 -0
  90. package/dist/v1/components/data-table/context.cjs.map +1 -0
  91. package/dist/v1/components/data-table/context.d.ts +3 -0
  92. package/dist/v1/components/data-table/context.d.ts.map +1 -0
  93. package/dist/v1/components/data-table/context.js +6 -0
  94. package/dist/v1/components/data-table/context.js.map +1 -0
  95. package/dist/v1/components/data-table/data-table.cjs +87 -0
  96. package/dist/v1/components/data-table/data-table.cjs.map +1 -0
  97. package/dist/v1/components/data-table/data-table.d.ts +12 -0
  98. package/dist/v1/components/data-table/data-table.d.ts.map +1 -0
  99. package/dist/v1/components/data-table/data-table.js +85 -0
  100. package/dist/v1/components/data-table/data-table.js.map +1 -0
  101. package/dist/v1/components/data-table/data-table.module.css.cjs +8 -0
  102. package/dist/v1/components/data-table/data-table.module.css.cjs.map +1 -0
  103. package/dist/v1/components/data-table/data-table.module.css.js +4 -0
  104. package/dist/v1/components/data-table/data-table.module.css.js.map +1 -0
  105. package/dist/v1/components/data-table/data-table.types.cjs +9 -0
  106. package/dist/v1/components/data-table/data-table.types.cjs.map +1 -0
  107. package/dist/v1/components/data-table/data-table.types.d.ts +102 -0
  108. package/dist/v1/components/data-table/data-table.types.d.ts.map +1 -0
  109. package/dist/v1/components/data-table/data-table.types.js +7 -0
  110. package/dist/v1/components/data-table/data-table.types.js.map +1 -0
  111. package/dist/v1/components/data-table/hooks/useDataTable.cjs +15 -0
  112. package/dist/v1/components/data-table/hooks/useDataTable.cjs.map +1 -0
  113. package/dist/v1/components/data-table/hooks/useDataTable.d.ts +2 -0
  114. package/dist/v1/components/data-table/hooks/useDataTable.d.ts.map +1 -0
  115. package/dist/v1/components/data-table/hooks/useDataTable.js +13 -0
  116. package/dist/v1/components/data-table/hooks/useDataTable.js.map +1 -0
  117. package/dist/v1/components/data-table/hooks/useFilters.cjs +78 -0
  118. package/dist/v1/components/data-table/hooks/useFilters.cjs.map +1 -0
  119. package/dist/v1/components/data-table/hooks/useFilters.d.ts +9 -0
  120. package/dist/v1/components/data-table/hooks/useFilters.d.ts.map +1 -0
  121. package/dist/v1/components/data-table/hooks/useFilters.js +76 -0
  122. package/dist/v1/components/data-table/hooks/useFilters.js.map +1 -0
  123. package/dist/v1/components/data-table/index.d.ts +4 -0
  124. package/dist/v1/components/data-table/index.d.ts.map +1 -0
  125. package/dist/v1/components/data-table/utils/filter-operations.cjs +83 -0
  126. package/dist/v1/components/data-table/utils/filter-operations.cjs.map +1 -0
  127. package/dist/v1/components/data-table/utils/filter-operations.d.ts +11 -0
  128. package/dist/v1/components/data-table/utils/filter-operations.d.ts.map +1 -0
  129. package/dist/v1/components/data-table/utils/filter-operations.js +80 -0
  130. package/dist/v1/components/data-table/utils/filter-operations.js.map +1 -0
  131. package/dist/v1/components/data-table/utils/index.cjs +156 -0
  132. package/dist/v1/components/data-table/utils/index.cjs.map +1 -0
  133. package/dist/v1/components/data-table/utils/index.d.ts +14 -0
  134. package/dist/v1/components/data-table/utils/index.d.ts.map +1 -0
  135. package/dist/v1/components/data-table/utils/index.js +147 -0
  136. package/dist/v1/components/data-table/utils/index.js.map +1 -0
  137. package/dist/v1/components/dialog/dialog.cjs +4 -3
  138. package/dist/v1/components/dialog/dialog.cjs.map +1 -1
  139. package/dist/v1/components/dialog/dialog.d.ts +9 -2
  140. package/dist/v1/components/dialog/dialog.d.ts.map +1 -1
  141. package/dist/v1/components/dialog/dialog.js +5 -4
  142. package/dist/v1/components/dialog/dialog.js.map +1 -1
  143. package/dist/v1/components/dialog/dialog.module.css.cjs +1 -1
  144. package/dist/v1/components/dialog/dialog.module.css.js +1 -1
  145. package/dist/v1/components/filter-chip/filter-chip.cjs +28 -19
  146. package/dist/v1/components/filter-chip/filter-chip.cjs.map +1 -1
  147. package/dist/v1/components/filter-chip/filter-chip.d.ts +3 -7
  148. package/dist/v1/components/filter-chip/filter-chip.d.ts.map +1 -1
  149. package/dist/v1/components/filter-chip/filter-chip.js +28 -19
  150. package/dist/v1/components/filter-chip/filter-chip.js.map +1 -1
  151. package/dist/v1/components/icons/assets/filter.svg.cjs +41 -0
  152. package/dist/v1/components/icons/assets/filter.svg.cjs.map +1 -0
  153. package/dist/v1/components/icons/assets/filter.svg.js +20 -0
  154. package/dist/v1/components/icons/assets/filter.svg.js.map +1 -0
  155. package/dist/v1/components/icons/icons.d.ts +3 -0
  156. package/dist/v1/components/icons/icons.d.ts.map +1 -0
  157. package/dist/v1/components/icons/index.d.ts +2 -0
  158. package/dist/v1/components/icons/index.d.ts.map +1 -0
  159. package/dist/v1/components/input-field/input-field.cjs +1 -1
  160. package/dist/v1/components/input-field/input-field.cjs.map +1 -1
  161. package/dist/v1/components/input-field/input-field.js +1 -1
  162. package/dist/v1/components/input-field/input-field.js.map +1 -1
  163. package/dist/v1/components/sidebar/index.d.ts +2 -0
  164. package/dist/v1/components/sidebar/index.d.ts.map +1 -0
  165. package/dist/v1/components/sidebar/sidebar.cjs +47 -0
  166. package/dist/v1/components/sidebar/sidebar.cjs.map +1 -0
  167. package/dist/v1/components/{sidepanel/sidepanel.d.ts → sidebar/sidebar.d.ts} +22 -11
  168. package/dist/v1/components/sidebar/sidebar.d.ts.map +1 -0
  169. package/dist/v1/components/sidebar/sidebar.js +45 -0
  170. package/dist/v1/components/sidebar/sidebar.js.map +1 -0
  171. package/dist/v1/components/sidebar/sidebar.module.css.cjs +8 -0
  172. package/dist/v1/components/sidebar/sidebar.module.css.cjs.map +1 -0
  173. package/dist/v1/components/sidebar/sidebar.module.css.js +4 -0
  174. package/dist/v1/components/sidebar/sidebar.module.css.js.map +1 -0
  175. package/dist/v1/components/table/table.cjs.map +1 -1
  176. package/dist/v1/components/table/table.d.ts +2 -2
  177. package/dist/v1/components/table/table.js.map +1 -1
  178. package/dist/v1/components/tooltip/tooltip.cjs +1 -1
  179. package/dist/v1/components/tooltip/tooltip.cjs.map +1 -1
  180. package/dist/v1/components/tooltip/tooltip.js +1 -1
  181. package/dist/v1/components/tooltip/tooltip.js.map +1 -1
  182. package/dist/v1/index.cjs +6 -2
  183. package/dist/v1/index.cjs.map +1 -1
  184. package/dist/v1/index.d.ts +2 -1
  185. package/dist/v1/index.d.ts.map +1 -1
  186. package/dist/v1/index.js +4 -1
  187. package/dist/v1/index.js.map +1 -1
  188. 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
  189. 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
  190. 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
  191. 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
  192. 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
  193. 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
  194. 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
  195. 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
  196. package/dist/v1/node_modules/.pnpm/@tanstack_table-core@8.9.2/node_modules/@tanstack/table-core/build/lib/index.cjs +3338 -0
  197. package/dist/v1/node_modules/.pnpm/@tanstack_table-core@8.9.2/node_modules/@tanstack/table-core/build/lib/index.cjs.map +1 -0
  198. package/dist/v1/node_modules/.pnpm/@tanstack_table-core@8.9.2/node_modules/@tanstack/table-core/build/lib/index.js +3299 -0
  199. package/dist/v1/node_modules/.pnpm/@tanstack_table-core@8.9.2/node_modules/@tanstack/table-core/build/lib/index.js.map +1 -0
  200. package/dist/v1/node_modules/.pnpm/dayjs@1.11.11/node_modules/dayjs/plugin/isSameOrAfter.cjs +16 -0
  201. package/dist/v1/node_modules/.pnpm/dayjs@1.11.11/node_modules/dayjs/plugin/isSameOrAfter.cjs.map +1 -0
  202. package/dist/v1/node_modules/.pnpm/dayjs@1.11.11/node_modules/dayjs/plugin/isSameOrAfter.js +12 -0
  203. package/dist/v1/node_modules/.pnpm/dayjs@1.11.11/node_modules/dayjs/plugin/isSameOrAfter.js.map +1 -0
  204. package/dist/v1/node_modules/.pnpm/dayjs@1.11.11/node_modules/dayjs/plugin/isSameOrBefore.cjs +16 -0
  205. package/dist/v1/node_modules/.pnpm/dayjs@1.11.11/node_modules/dayjs/plugin/isSameOrBefore.cjs.map +1 -0
  206. package/dist/v1/node_modules/.pnpm/dayjs@1.11.11/node_modules/dayjs/plugin/isSameOrBefore.js +12 -0
  207. package/dist/v1/node_modules/.pnpm/dayjs@1.11.11/node_modules/dayjs/plugin/isSameOrBefore.js.map +1 -0
  208. package/dist/v1/style.css +1 -1
  209. package/dist/v1/types/filters.cjs +39 -0
  210. package/dist/v1/types/filters.cjs.map +1 -0
  211. package/dist/v1/types/filters.d.ts +42 -0
  212. package/dist/v1/types/filters.d.ts.map +1 -0
  213. package/dist/v1/types/filters.js +36 -0
  214. package/dist/v1/types/filters.js.map +1 -0
  215. package/package.json +2 -1
  216. package/dist/v1/components/sidepanel/index.d.ts +0 -2
  217. package/dist/v1/components/sidepanel/index.d.ts.map +0 -1
  218. package/dist/v1/components/sidepanel/sidepanel.cjs +0 -44
  219. package/dist/v1/components/sidepanel/sidepanel.cjs.map +0 -1
  220. package/dist/v1/components/sidepanel/sidepanel.d.ts.map +0 -1
  221. package/dist/v1/components/sidepanel/sidepanel.js +0 -42
  222. package/dist/v1/components/sidepanel/sidepanel.js.map +0 -1
  223. package/dist/v1/components/sidepanel/sidepanel.module.css.cjs +0 -8
  224. package/dist/v1/components/sidepanel/sidepanel.module.css.cjs.map +0 -1
  225. package/dist/v1/components/sidepanel/sidepanel.module.css.js +0 -4
  226. package/dist/v1/components/sidepanel/sidepanel.module.css.js.map +0 -1
@@ -0,0 +1,9 @@
1
+ 'use strict';
2
+
3
+ const SortOrders = {
4
+ ASC: "asc",
5
+ DESC: "desc",
6
+ };
7
+
8
+ exports.SortOrders = SortOrders;
9
+ //# sourceMappingURL=data-table.types.cjs.map
@@ -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,7 @@
1
+ const SortOrders = {
2
+ ASC: "asc",
3
+ DESC: "desc",
4
+ };
5
+
6
+ export { SortOrders };
7
+ //# sourceMappingURL=data-table.types.js.map
@@ -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,2 @@
1
+ export declare const useDataTable: () => import("../data-table.types").TableContextType<any, any>;
2
+ //# sourceMappingURL=useDataTable.d.ts.map
@@ -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,4 @@
1
+ export { DataTable } from "./data-table";
2
+ export { DataTableColumnDef, DataTableQuery } from "./data-table.types";
3
+ export { useDataTable } from "./hooks/useDataTable";
4
+ //# sourceMappingURL=index.d.ts.map
@@ -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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"}