@raystack/apsara 0.48.2 → 0.48.4

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 (122) hide show
  1. package/dist/components/avatar/avatar.cjs +1 -1
  2. package/dist/components/avatar/avatar.cjs.map +1 -1
  3. package/dist/components/avatar/avatar.d.ts.map +1 -1
  4. package/dist/components/avatar/avatar.js +1 -1
  5. package/dist/components/avatar/avatar.js.map +1 -1
  6. package/dist/components/breadcrumb/breadcrumb-item.cjs +26 -0
  7. package/dist/components/breadcrumb/breadcrumb-item.cjs.map +1 -0
  8. package/dist/components/breadcrumb/breadcrumb-item.d.ts +14 -0
  9. package/dist/components/breadcrumb/breadcrumb-item.d.ts.map +1 -0
  10. package/dist/components/breadcrumb/breadcrumb-item.js +24 -0
  11. package/dist/components/breadcrumb/breadcrumb-item.js.map +1 -0
  12. package/dist/components/breadcrumb/breadcrumb-misc.cjs +20 -0
  13. package/dist/components/breadcrumb/breadcrumb-misc.cjs.map +1 -0
  14. package/dist/components/breadcrumb/breadcrumb-misc.d.ts +8 -0
  15. package/dist/components/breadcrumb/breadcrumb-misc.d.ts.map +1 -0
  16. package/dist/components/breadcrumb/breadcrumb-misc.js +17 -0
  17. package/dist/components/breadcrumb/breadcrumb-misc.js.map +1 -0
  18. package/dist/components/breadcrumb/breadcrumb-root.cjs +25 -0
  19. package/dist/components/breadcrumb/breadcrumb-root.cjs.map +1 -0
  20. package/dist/components/breadcrumb/breadcrumb-root.d.ts +10 -0
  21. package/dist/components/breadcrumb/breadcrumb-root.d.ts.map +1 -0
  22. package/dist/components/breadcrumb/breadcrumb-root.js +23 -0
  23. package/dist/components/breadcrumb/breadcrumb-root.js.map +1 -0
  24. package/dist/components/breadcrumb/breadcrumb.cjs +7 -53
  25. package/dist/components/breadcrumb/breadcrumb.cjs.map +1 -1
  26. package/dist/components/breadcrumb/breadcrumb.d.ts +5 -27
  27. package/dist/components/breadcrumb/breadcrumb.d.ts.map +1 -1
  28. package/dist/components/breadcrumb/breadcrumb.js +7 -53
  29. package/dist/components/breadcrumb/breadcrumb.js.map +1 -1
  30. package/dist/components/breadcrumb/breadcrumb.module.css.cjs +1 -1
  31. package/dist/components/breadcrumb/breadcrumb.module.css.js +1 -1
  32. package/dist/components/breadcrumb/index.d.ts +1 -1
  33. package/dist/components/data-table/utils/filter-operations.cjs +46 -22
  34. package/dist/components/data-table/utils/filter-operations.cjs.map +1 -1
  35. package/dist/components/data-table/utils/filter-operations.d.ts +10 -9
  36. package/dist/components/data-table/utils/filter-operations.d.ts.map +1 -1
  37. package/dist/components/data-table/utils/filter-operations.js +46 -22
  38. package/dist/components/data-table/utils/filter-operations.js.map +1 -1
  39. package/dist/components/dropdown-menu/dropdown-menu-misc.cjs +1 -1
  40. package/dist/components/dropdown-menu/dropdown-menu-misc.cjs.map +1 -1
  41. package/dist/components/dropdown-menu/dropdown-menu-misc.js +1 -1
  42. package/dist/components/dropdown-menu/dropdown-menu-misc.js.map +1 -1
  43. package/dist/components/dropdown-menu/dropdown-menu-root.cjs +10 -10
  44. package/dist/components/dropdown-menu/dropdown-menu-root.cjs.map +1 -1
  45. package/dist/components/dropdown-menu/dropdown-menu-root.d.ts +8 -5
  46. package/dist/components/dropdown-menu/dropdown-menu-root.d.ts.map +1 -1
  47. package/dist/components/dropdown-menu/dropdown-menu-root.js +11 -11
  48. package/dist/components/dropdown-menu/dropdown-menu-root.js.map +1 -1
  49. package/dist/components/dropdown-menu/dropdown-menu-trigger.cjs +6 -2
  50. package/dist/components/dropdown-menu/dropdown-menu-trigger.cjs.map +1 -1
  51. package/dist/components/dropdown-menu/dropdown-menu-trigger.d.ts +1 -0
  52. package/dist/components/dropdown-menu/dropdown-menu-trigger.d.ts.map +1 -1
  53. package/dist/components/dropdown-menu/dropdown-menu-trigger.js +6 -2
  54. package/dist/components/dropdown-menu/dropdown-menu-trigger.js.map +1 -1
  55. package/dist/components/dropdown-menu/dropdown-menu.d.ts +1 -1
  56. package/dist/components/filter-chip/filter-chip-operation.cjs +31 -0
  57. package/dist/components/filter-chip/filter-chip-operation.cjs.map +1 -0
  58. package/dist/components/filter-chip/filter-chip-operation.d.ts +11 -0
  59. package/dist/components/filter-chip/filter-chip-operation.d.ts.map +1 -0
  60. package/dist/components/filter-chip/filter-chip-operation.js +29 -0
  61. package/dist/components/filter-chip/filter-chip-operation.js.map +1 -0
  62. package/dist/components/filter-chip/filter-chip.cjs +37 -41
  63. package/dist/components/filter-chip/filter-chip.cjs.map +1 -1
  64. package/dist/components/filter-chip/filter-chip.d.ts +6 -5
  65. package/dist/components/filter-chip/filter-chip.d.ts.map +1 -1
  66. package/dist/components/filter-chip/filter-chip.js +37 -41
  67. package/dist/components/filter-chip/filter-chip.js.map +1 -1
  68. package/dist/components/filter-chip/filter-chip.module.css.cjs +1 -1
  69. package/dist/components/filter-chip/filter-chip.module.css.js +1 -1
  70. package/dist/components/select/select-item.cjs +2 -1
  71. package/dist/components/select/select-item.cjs.map +1 -1
  72. package/dist/components/select/select-item.d.ts.map +1 -1
  73. package/dist/components/select/select-item.js +2 -1
  74. package/dist/components/select/select-item.js.map +1 -1
  75. package/dist/components/select/select-root.cjs +2 -2
  76. package/dist/components/select/select-root.cjs.map +1 -1
  77. package/dist/components/select/select-root.d.ts.map +1 -1
  78. package/dist/components/select/select-root.js +2 -2
  79. package/dist/components/select/select-root.js.map +1 -1
  80. package/dist/components/sidebar/index.d.ts +1 -1
  81. package/dist/components/sidebar/sidebar.cjs +11 -12
  82. package/dist/components/sidebar/sidebar.cjs.map +1 -1
  83. package/dist/components/sidebar/sidebar.d.ts +5 -10
  84. package/dist/components/sidebar/sidebar.d.ts.map +1 -1
  85. package/dist/components/sidebar/sidebar.js +12 -13
  86. package/dist/components/sidebar/sidebar.js.map +1 -1
  87. package/dist/components/sidebar/sidebar.module.css.cjs +1 -1
  88. package/dist/components/sidebar/sidebar.module.css.js +1 -1
  89. package/dist/components/tooltip/index.d.ts +1 -1
  90. package/dist/components/tooltip/index.d.ts.map +1 -1
  91. package/dist/components/tooltip/tooltip-provider.cjs +17 -0
  92. package/dist/components/tooltip/tooltip-provider.cjs.map +1 -0
  93. package/dist/components/tooltip/tooltip-provider.d.ts +9 -0
  94. package/dist/components/tooltip/tooltip-provider.d.ts.map +1 -0
  95. package/dist/components/tooltip/tooltip-provider.js +14 -0
  96. package/dist/components/tooltip/tooltip-provider.js.map +1 -0
  97. package/dist/components/tooltip/tooltip-root.cjs +65 -0
  98. package/dist/components/tooltip/tooltip-root.cjs.map +1 -0
  99. package/dist/components/tooltip/tooltip-root.d.ts +29 -0
  100. package/dist/components/tooltip/tooltip-root.d.ts.map +1 -0
  101. package/dist/components/tooltip/tooltip-root.js +62 -0
  102. package/dist/components/tooltip/tooltip-root.js.map +1 -0
  103. package/dist/components/tooltip/tooltip.cjs +4 -50
  104. package/dist/components/tooltip/tooltip.cjs.map +1 -1
  105. package/dist/components/tooltip/tooltip.d.ts +3 -30
  106. package/dist/components/tooltip/tooltip.d.ts.map +1 -1
  107. package/dist/components/tooltip/tooltip.js +5 -50
  108. package/dist/components/tooltip/tooltip.js.map +1 -1
  109. package/dist/index.cjs +0 -1
  110. package/dist/index.cjs.map +1 -1
  111. package/dist/index.d.ts +1 -1
  112. package/dist/index.d.ts.map +1 -1
  113. package/dist/index.js +1 -1
  114. package/dist/node_modules/.pnpm/@radix-ui_react-tooltip@1.2.7_@types_react-dom@18.0.11_@types_react@18.2.12_react-dom@18.3.1_react@18.2.0__react@18.2.0/node_modules/@radix-ui/react-tooltip/dist/index.cjs +8 -8
  115. package/dist/style.css +1 -1
  116. package/dist/types/filters.cjs +26 -21
  117. package/dist/types/filters.cjs.map +1 -1
  118. package/dist/types/filters.d.ts +19 -6
  119. package/dist/types/filters.d.ts.map +1 -1
  120. package/dist/types/filters.js +26 -21
  121. package/dist/types/filters.js.map +1 -1
  122. package/package.json +1 -1
@@ -1,58 +1,12 @@
1
- import { j as jsxRuntimeExports } from '../../node_modules/.pnpm/react@18.2.0/node_modules/react/jsx-runtime.js';
2
- import { DotsHorizontalIcon, ChevronDownIcon } from '../../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';
3
- import { cx, cva } from '../../node_modules/.pnpm/class-variance-authority@0.7.1/node_modules/class-variance-authority/dist/index.js';
4
- import { forwardRef, useMemo, cloneElement } from 'react';
5
- import { DropdownMenu } from '../dropdown-menu/dropdown-menu.js';
6
- import styles from './breadcrumb.module.css.js';
1
+ import { BreadcrumbItem } from './breadcrumb-item.js';
2
+ import { BreadcrumbEllipsis, BreadcrumbSeparator } from './breadcrumb-misc.js';
3
+ import { BreadcrumbRoot } from './breadcrumb-root.js';
7
4
 
8
- const BreadcrumbItem = ({ as = jsxRuntimeExports.jsx("a", {}), onItemClick, ...props }) => {
9
- const { label, href, icon, dropdownItems, isActive } = props;
10
- if (label === 'ellipsis') {
11
- return (jsxRuntimeExports.jsx("span", { className: styles['breadcrumb-ellipsis'], children: jsxRuntimeExports.jsx(DotsHorizontalIcon, {}) }));
12
- }
13
- if (dropdownItems) {
14
- return (jsxRuntimeExports.jsxs(DropdownMenu, { children: [jsxRuntimeExports.jsxs(DropdownMenu.Trigger, { className: styles['breadcrumb-dropdown-trigger'], children: [icon && jsxRuntimeExports.jsx("span", { className: styles['breadcrumb-icon'], children: icon }), jsxRuntimeExports.jsx("span", { children: label }), jsxRuntimeExports.jsx(ChevronDownIcon, { className: styles['breadcrumb-dropdown-icon'] })] }), jsxRuntimeExports.jsx(DropdownMenu.Content, { className: styles['breadcrumb-dropdown-content'], children: dropdownItems.map((dropdownItem, dropdownIndex) => (jsxRuntimeExports.jsx(DropdownMenu.Item, { className: styles['breadcrumb-dropdown-item'], onSelect: () => onItemClick?.(dropdownItem), children: dropdownItem.label }, dropdownIndex))) })] }));
15
- }
16
- return cloneElement(as, {
17
- className: cx(styles['breadcrumb-link'], isActive && styles['breadcrumb-link-active']),
18
- onClick: (e) => {
19
- if (onItemClick && href !== '#') {
20
- e.preventDefault();
21
- onItemClick(props);
22
- }
23
- },
24
- href,
25
- ...as.props
26
- }, jsxRuntimeExports.jsxs(jsxRuntimeExports.Fragment, { children: [icon && jsxRuntimeExports.jsx("span", { className: styles['breadcrumb-icon'], children: icon }), jsxRuntimeExports.jsx("span", { children: label })] }));
27
- };
28
- const breadcrumbVariants = cva(styles['breadcrumb'], {
29
- variants: {
30
- size: {
31
- small: styles['breadcrumb-small'],
32
- medium: styles['breadcrumb-medium']
33
- }
34
- },
35
- defaultVariants: {
36
- size: 'medium'
37
- }
5
+ const Breadcrumb = Object.assign(BreadcrumbRoot, {
6
+ Item: BreadcrumbItem,
7
+ Ellipsis: BreadcrumbEllipsis,
8
+ Separator: BreadcrumbSeparator
38
9
  });
39
- const Breadcrumb = forwardRef(({ className, size = 'medium', items, maxVisibleItems, separator = '/', onItemClick, ...props }, ref) => {
40
- const visibleItems = useMemo(() => {
41
- if (maxVisibleItems && items.length > maxVisibleItems) {
42
- return [
43
- ...items.slice(0, 1),
44
- { label: 'ellipsis', href: '#' },
45
- ...items.slice(-Math.min(maxVisibleItems - 1, items.length - 1))
46
- ];
47
- }
48
- return items;
49
- }, [maxVisibleItems, items]);
50
- return (jsxRuntimeExports.jsx("nav", { className: breadcrumbVariants({ size, className }), ref: ref, ...props, children: jsxRuntimeExports.jsx("ol", { className: styles['breadcrumb-list'], children: visibleItems.map((item, index) => {
51
- const isLast = index === visibleItems.length - 1;
52
- return (jsxRuntimeExports.jsxs("li", { className: styles['breadcrumb-item'], children: [jsxRuntimeExports.jsx(BreadcrumbItem, { ...item, isActive: isLast, onItemClick: onItemClick }), !isLast && (jsxRuntimeExports.jsx("span", { className: styles['breadcrumb-separator'], children: separator }))] }, index));
53
- }) }) }));
54
- });
55
- Breadcrumb.displayName = 'Breadcrumb';
56
10
 
57
11
  export { Breadcrumb };
58
12
  //# sourceMappingURL=breadcrumb.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"breadcrumb.js","sources":["../../../components/breadcrumb/breadcrumb.tsx"],"sourcesContent":["import { ChevronDownIcon, DotsHorizontalIcon } from '@radix-ui/react-icons';\nimport { type VariantProps, cva, cx } from 'class-variance-authority';\nimport {\n MouseEvent,\n ReactElement,\n cloneElement,\n forwardRef,\n useMemo\n} from 'react';\nimport { DropdownMenu } from '../dropdown-menu';\nimport styles from './breadcrumb.module.css';\n\ninterface BreadcrumbItemBase {\n label: string;\n href?: string;\n}\ninterface BreadcrumbItem extends BreadcrumbItemBase {\n icon?: React.ReactNode;\n dropdownItems?: BreadcrumbItemBase[];\n as?: ReactElement;\n}\n\ninterface BreadcrumbItemProps extends BreadcrumbItem {\n isActive: boolean;\n onItemClick?: (item: BreadcrumbItem) => void;\n}\n\nconst BreadcrumbItem = ({\n as = <a />,\n onItemClick,\n ...props\n}: BreadcrumbItemProps) => {\n const { label, href, icon, dropdownItems, isActive } = props;\n\n if (label === 'ellipsis') {\n return (\n <span className={styles['breadcrumb-ellipsis']}>\n <DotsHorizontalIcon />\n </span>\n );\n }\n if (dropdownItems) {\n return (\n <DropdownMenu>\n <DropdownMenu.Trigger className={styles['breadcrumb-dropdown-trigger']}>\n {icon && <span className={styles['breadcrumb-icon']}>{icon}</span>}\n <span>{label}</span>\n <ChevronDownIcon className={styles['breadcrumb-dropdown-icon']} />\n </DropdownMenu.Trigger>\n <DropdownMenu.Content className={styles['breadcrumb-dropdown-content']}>\n {dropdownItems.map((dropdownItem, dropdownIndex) => (\n <DropdownMenu.Item\n key={dropdownIndex}\n className={styles['breadcrumb-dropdown-item']}\n onSelect={() => onItemClick?.(dropdownItem)}\n >\n {dropdownItem.label}\n </DropdownMenu.Item>\n ))}\n </DropdownMenu.Content>\n </DropdownMenu>\n );\n }\n return cloneElement(\n as,\n {\n className: cx(\n styles['breadcrumb-link'],\n isActive && styles['breadcrumb-link-active']\n ),\n onClick: (e: MouseEvent) => {\n if (onItemClick && href !== '#') {\n e.preventDefault();\n onItemClick(props);\n }\n },\n href,\n ...as.props\n },\n <>\n {icon && <span className={styles['breadcrumb-icon']}>{icon}</span>}\n <span>{label}</span>\n </>\n );\n};\n\nconst breadcrumbVariants = cva(styles['breadcrumb'], {\n variants: {\n size: {\n small: styles['breadcrumb-small'],\n medium: styles['breadcrumb-medium']\n }\n },\n defaultVariants: {\n size: 'medium'\n }\n});\n\ntype BreadcrumbProps = VariantProps<typeof breadcrumbVariants> & {\n items: BreadcrumbItem[];\n maxVisibleItems?: number;\n separator?: React.ReactNode;\n onItemClick?: (item: BreadcrumbItem) => void;\n className?: string;\n size?: 'small' | 'medium';\n};\n\nexport const Breadcrumb = forwardRef<HTMLDivElement, BreadcrumbProps>(\n (\n {\n className,\n size = 'medium',\n items,\n maxVisibleItems,\n separator = '/',\n onItemClick,\n ...props\n },\n ref\n ) => {\n const visibleItems = useMemo(() => {\n if (maxVisibleItems && items.length > maxVisibleItems) {\n return [\n ...items.slice(0, 1),\n { label: 'ellipsis', href: '#' },\n ...items.slice(-Math.min(maxVisibleItems - 1, items.length - 1))\n ];\n }\n return items;\n }, [maxVisibleItems, items]);\n\n return (\n <nav\n className={breadcrumbVariants({ size, className })}\n ref={ref}\n {...props}\n >\n <ol className={styles['breadcrumb-list']}>\n {visibleItems.map((item, index) => {\n const isLast = index === visibleItems.length - 1;\n return (\n <li className={styles['breadcrumb-item']} key={index}>\n <BreadcrumbItem\n {...item}\n isActive={isLast}\n onItemClick={onItemClick}\n />\n {!isLast && (\n <span className={styles['breadcrumb-separator']}>\n {separator}\n </span>\n )}\n </li>\n );\n })}\n </ol>\n </nav>\n );\n }\n);\n\nBreadcrumb.displayName = 'Breadcrumb';\n"],"names":["_jsx","_jsxs"],"mappings":"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"}
1
+ {"version":3,"file":"breadcrumb.js","sources":["../../../components/breadcrumb/breadcrumb.tsx"],"sourcesContent":["import { BreadcrumbItem } from './breadcrumb-item';\nimport { BreadcrumbEllipsis, BreadcrumbSeparator } from './breadcrumb-misc';\nimport { BreadcrumbRoot } from './breadcrumb-root';\n\nexport const Breadcrumb = Object.assign(BreadcrumbRoot, {\n Item: BreadcrumbItem,\n Ellipsis: BreadcrumbEllipsis,\n Separator: BreadcrumbSeparator\n});\n"],"names":[],"mappings":";;;;MAIa,UAAU,GAAG,MAAM,CAAC,MAAM,CAAC,cAAc,EAAE;AACtD,IAAA,IAAI,EAAE,cAAc;AACpB,IAAA,QAAQ,EAAE,kBAAkB;AAC5B,IAAA,SAAS,EAAE,mBAAmB;AAC/B,CAAA;;;;"}
@@ -2,7 +2,7 @@
2
2
 
3
3
  Object.defineProperty(exports, '__esModule', { value: true });
4
4
 
5
- var styles = {"breadcrumb":"breadcrumb-module_breadcrumb__5yXGy","breadcrumb-small":"breadcrumb-module_breadcrumb-small__ddlW7","breadcrumb-medium":"breadcrumb-module_breadcrumb-medium__xGUhN","breadcrumb-list":"breadcrumb-module_breadcrumb-list__fTMHZ","breadcrumb-item":"breadcrumb-module_breadcrumb-item__geKbw","breadcrumb-link":"breadcrumb-module_breadcrumb-link__SATrN","breadcrumb-link-active":"breadcrumb-module_breadcrumb-link-active__xGmwH","breadcrumb-icon":"breadcrumb-module_breadcrumb-icon__GU-Xh","breadcrumb-separator":"breadcrumb-module_breadcrumb-separator__4HNuQ","breadcrumb-ellipsis":"breadcrumb-module_breadcrumb-ellipsis__aNhLZ","breadcrumb-dropdown-trigger":"breadcrumb-module_breadcrumb-dropdown-trigger__xvjTm","breadcrumb-dropdown-icon":"breadcrumb-module_breadcrumb-dropdown-icon__bh34X","breadcrumb-dropdown-content":"breadcrumb-module_breadcrumb-dropdown-content__OJfNZ","breadcrumb-dropdown-item":"breadcrumb-module_breadcrumb-dropdown-item__wPdcx","breadcrumb___small":"breadcrumb-module_breadcrumb-small__ddlW7","breadcrumb___medium":"breadcrumb-module_breadcrumb-medium__xGUhN","breadcrumb___list":"breadcrumb-module_breadcrumb-list__fTMHZ","breadcrumb___item":"breadcrumb-module_breadcrumb-item__geKbw","breadcrumb___link":"breadcrumb-module_breadcrumb-link__SATrN","breadcrumb___link___active":"breadcrumb-module_breadcrumb-link-active__xGmwH","breadcrumb___icon":"breadcrumb-module_breadcrumb-icon__GU-Xh","breadcrumb___separator":"breadcrumb-module_breadcrumb-separator__4HNuQ","breadcrumb___ellipsis":"breadcrumb-module_breadcrumb-ellipsis__aNhLZ","breadcrumb___dropdown___trigger":"breadcrumb-module_breadcrumb-dropdown-trigger__xvjTm","breadcrumb___dropdown___icon":"breadcrumb-module_breadcrumb-dropdown-icon__bh34X","breadcrumb___dropdown___content":"breadcrumb-module_breadcrumb-dropdown-content__OJfNZ","breadcrumb___dropdown___item":"breadcrumb-module_breadcrumb-dropdown-item__wPdcx"};
5
+ var styles = {"breadcrumb":"breadcrumb-module_breadcrumb__5yXGy","breadcrumb-small":"breadcrumb-module_breadcrumb-small__ddlW7","breadcrumb-medium":"breadcrumb-module_breadcrumb-medium__xGUhN","breadcrumb-list":"breadcrumb-module_breadcrumb-list__fTMHZ","breadcrumb-item":"breadcrumb-module_breadcrumb-item__geKbw","breadcrumb-link":"breadcrumb-module_breadcrumb-link__SATrN","breadcrumb-link-active":"breadcrumb-module_breadcrumb-link-active__xGmwH","breadcrumb-icon":"breadcrumb-module_breadcrumb-icon__GU-Xh","breadcrumb-separator":"breadcrumb-module_breadcrumb-separator__4HNuQ","breadcrumb-ellipsis":"breadcrumb-module_breadcrumb-ellipsis__aNhLZ","breadcrumb-dropdown-trigger":"breadcrumb-module_breadcrumb-dropdown-trigger__xvjTm","breadcrumb-dropdown-icon":"breadcrumb-module_breadcrumb-dropdown-icon__bh34X","breadcrumb-dropdown-item":"breadcrumb-module_breadcrumb-dropdown-item__wPdcx","breadcrumb___small":"breadcrumb-module_breadcrumb-small__ddlW7","breadcrumb___medium":"breadcrumb-module_breadcrumb-medium__xGUhN","breadcrumb___list":"breadcrumb-module_breadcrumb-list__fTMHZ","breadcrumb___item":"breadcrumb-module_breadcrumb-item__geKbw","breadcrumb___link":"breadcrumb-module_breadcrumb-link__SATrN","breadcrumb___link___active":"breadcrumb-module_breadcrumb-link-active__xGmwH","breadcrumb___icon":"breadcrumb-module_breadcrumb-icon__GU-Xh","breadcrumb___separator":"breadcrumb-module_breadcrumb-separator__4HNuQ","breadcrumb___ellipsis":"breadcrumb-module_breadcrumb-ellipsis__aNhLZ","breadcrumb___dropdown___trigger":"breadcrumb-module_breadcrumb-dropdown-trigger__xvjTm","breadcrumb___dropdown___icon":"breadcrumb-module_breadcrumb-dropdown-icon__bh34X","breadcrumb___dropdown___item":"breadcrumb-module_breadcrumb-dropdown-item__wPdcx"};
6
6
 
7
7
  exports.default = styles;
8
8
  //# sourceMappingURL=breadcrumb.module.css.cjs.map
@@ -1,4 +1,4 @@
1
- var styles = {"breadcrumb":"breadcrumb-module_breadcrumb__5yXGy","breadcrumb-small":"breadcrumb-module_breadcrumb-small__ddlW7","breadcrumb-medium":"breadcrumb-module_breadcrumb-medium__xGUhN","breadcrumb-list":"breadcrumb-module_breadcrumb-list__fTMHZ","breadcrumb-item":"breadcrumb-module_breadcrumb-item__geKbw","breadcrumb-link":"breadcrumb-module_breadcrumb-link__SATrN","breadcrumb-link-active":"breadcrumb-module_breadcrumb-link-active__xGmwH","breadcrumb-icon":"breadcrumb-module_breadcrumb-icon__GU-Xh","breadcrumb-separator":"breadcrumb-module_breadcrumb-separator__4HNuQ","breadcrumb-ellipsis":"breadcrumb-module_breadcrumb-ellipsis__aNhLZ","breadcrumb-dropdown-trigger":"breadcrumb-module_breadcrumb-dropdown-trigger__xvjTm","breadcrumb-dropdown-icon":"breadcrumb-module_breadcrumb-dropdown-icon__bh34X","breadcrumb-dropdown-content":"breadcrumb-module_breadcrumb-dropdown-content__OJfNZ","breadcrumb-dropdown-item":"breadcrumb-module_breadcrumb-dropdown-item__wPdcx","breadcrumb___small":"breadcrumb-module_breadcrumb-small__ddlW7","breadcrumb___medium":"breadcrumb-module_breadcrumb-medium__xGUhN","breadcrumb___list":"breadcrumb-module_breadcrumb-list__fTMHZ","breadcrumb___item":"breadcrumb-module_breadcrumb-item__geKbw","breadcrumb___link":"breadcrumb-module_breadcrumb-link__SATrN","breadcrumb___link___active":"breadcrumb-module_breadcrumb-link-active__xGmwH","breadcrumb___icon":"breadcrumb-module_breadcrumb-icon__GU-Xh","breadcrumb___separator":"breadcrumb-module_breadcrumb-separator__4HNuQ","breadcrumb___ellipsis":"breadcrumb-module_breadcrumb-ellipsis__aNhLZ","breadcrumb___dropdown___trigger":"breadcrumb-module_breadcrumb-dropdown-trigger__xvjTm","breadcrumb___dropdown___icon":"breadcrumb-module_breadcrumb-dropdown-icon__bh34X","breadcrumb___dropdown___content":"breadcrumb-module_breadcrumb-dropdown-content__OJfNZ","breadcrumb___dropdown___item":"breadcrumb-module_breadcrumb-dropdown-item__wPdcx"};
1
+ var styles = {"breadcrumb":"breadcrumb-module_breadcrumb__5yXGy","breadcrumb-small":"breadcrumb-module_breadcrumb-small__ddlW7","breadcrumb-medium":"breadcrumb-module_breadcrumb-medium__xGUhN","breadcrumb-list":"breadcrumb-module_breadcrumb-list__fTMHZ","breadcrumb-item":"breadcrumb-module_breadcrumb-item__geKbw","breadcrumb-link":"breadcrumb-module_breadcrumb-link__SATrN","breadcrumb-link-active":"breadcrumb-module_breadcrumb-link-active__xGmwH","breadcrumb-icon":"breadcrumb-module_breadcrumb-icon__GU-Xh","breadcrumb-separator":"breadcrumb-module_breadcrumb-separator__4HNuQ","breadcrumb-ellipsis":"breadcrumb-module_breadcrumb-ellipsis__aNhLZ","breadcrumb-dropdown-trigger":"breadcrumb-module_breadcrumb-dropdown-trigger__xvjTm","breadcrumb-dropdown-icon":"breadcrumb-module_breadcrumb-dropdown-icon__bh34X","breadcrumb-dropdown-item":"breadcrumb-module_breadcrumb-dropdown-item__wPdcx","breadcrumb___small":"breadcrumb-module_breadcrumb-small__ddlW7","breadcrumb___medium":"breadcrumb-module_breadcrumb-medium__xGUhN","breadcrumb___list":"breadcrumb-module_breadcrumb-list__fTMHZ","breadcrumb___item":"breadcrumb-module_breadcrumb-item__geKbw","breadcrumb___link":"breadcrumb-module_breadcrumb-link__SATrN","breadcrumb___link___active":"breadcrumb-module_breadcrumb-link-active__xGmwH","breadcrumb___icon":"breadcrumb-module_breadcrumb-icon__GU-Xh","breadcrumb___separator":"breadcrumb-module_breadcrumb-separator__4HNuQ","breadcrumb___ellipsis":"breadcrumb-module_breadcrumb-ellipsis__aNhLZ","breadcrumb___dropdown___trigger":"breadcrumb-module_breadcrumb-dropdown-trigger__xvjTm","breadcrumb___dropdown___icon":"breadcrumb-module_breadcrumb-dropdown-icon__bh34X","breadcrumb___dropdown___item":"breadcrumb-module_breadcrumb-dropdown-item__wPdcx"};
2
2
 
3
3
  export { styles as default };
4
4
  //# sourceMappingURL=breadcrumb.module.css.js.map
@@ -1,2 +1,2 @@
1
- export { Breadcrumb } from "./breadcrumb";
1
+ export { Breadcrumb } from './breadcrumb';
2
2
  //# sourceMappingURL=index.d.ts.map
@@ -27,7 +27,7 @@ const filterOperationsMap = {
27
27
  },
28
28
  gte: (row, columnId, filterValue) => {
29
29
  return Number(row.getValue(columnId)) >= Number(filterValue.value);
30
- },
30
+ }
31
31
  },
32
32
  string: {
33
33
  eq: (row, columnId, filterValue) => {
@@ -42,44 +42,60 @@ const filterOperationsMap = {
42
42
  const columnValue = row.getValue(columnId).toLowerCase();
43
43
  const filterStr = filterValue.value.toLowerCase();
44
44
  return columnValue.includes(filterStr);
45
- },
45
+ }
46
46
  },
47
47
  date: {
48
48
  eq: (row, columnId, filterValue) => {
49
- return dayjs_min.default(row.getValue(columnId)).isSame(dayjs_min.default(filterValue.date), "day");
49
+ return dayjs_min.default(row.getValue(columnId)).isSame(dayjs_min.default(filterValue.date), 'day');
50
50
  },
51
51
  neq: (row, columnId, filterValue) => {
52
- return !dayjs_min.default(row.getValue(columnId)).isSame(dayjs_min.default(filterValue.date), "day");
52
+ return !dayjs_min.default(row.getValue(columnId)).isSame(dayjs_min.default(filterValue.date), 'day');
53
53
  },
54
54
  lt: (row, columnId, filterValue) => {
55
- return dayjs_min.default(row.getValue(columnId)).isBefore(dayjs_min.default(filterValue.date), "day");
55
+ return dayjs_min.default(row.getValue(columnId)).isBefore(dayjs_min.default(filterValue.date), 'day');
56
56
  },
57
57
  lte: (row, columnId, filterValue) => {
58
- return dayjs_min.default(row.getValue(columnId)).isSameOrBefore(dayjs_min.default(filterValue.date), "day");
58
+ return dayjs_min.default(row.getValue(columnId)).isSameOrBefore(dayjs_min.default(filterValue.date), 'day');
59
59
  },
60
60
  gt: (row, columnId, filterValue) => {
61
- return dayjs_min.default(row.getValue(columnId)).isAfter(dayjs_min.default(filterValue.date), "day");
61
+ return dayjs_min.default(row.getValue(columnId)).isAfter(dayjs_min.default(filterValue.date), 'day');
62
62
  },
63
63
  gte: (row, columnId, filterValue) => {
64
- return dayjs_min.default(row.getValue(columnId)).isSameOrAfter(dayjs_min.default(filterValue.date), "day");
65
- },
64
+ return dayjs_min.default(row.getValue(columnId)).isSameOrAfter(dayjs_min.default(filterValue.date), 'day');
65
+ }
66
66
  },
67
67
  select: {
68
68
  eq: (row, columnId, filterValue) => {
69
69
  if (String(filterValue.value) === dataTable_types.EmptyFilterValue) {
70
- return row.getValue(columnId) === "";
70
+ return row.getValue(columnId) === '';
71
71
  }
72
72
  // Select only supports string values
73
73
  return String(row.getValue(columnId)) === String(filterValue.value);
74
74
  },
75
75
  neq: (row, columnId, filterValue) => {
76
76
  if (String(filterValue.value) === dataTable_types.EmptyFilterValue) {
77
- return row.getValue(columnId) !== "";
77
+ return row.getValue(columnId) !== '';
78
78
  }
79
79
  // Select only supports string values
80
80
  return String(row.getValue(columnId)) !== String(filterValue.value);
81
- },
81
+ }
82
82
  },
83
+ multiselect: {
84
+ in: (row, columnId, filterValue) => {
85
+ if (!Array.isArray(filterValue.value))
86
+ return false;
87
+ return filterValue.value
88
+ .map(value => (value === dataTable_types.EmptyFilterValue ? '' : String(value)))
89
+ .includes(String(row.getValue(columnId)));
90
+ },
91
+ notin: (row, columnId, filterValue) => {
92
+ if (!Array.isArray(filterValue.value))
93
+ return false;
94
+ return !filterValue.value
95
+ .map(value => (value === dataTable_types.EmptyFilterValue ? '' : String(value)))
96
+ .includes(String(row.getValue(columnId)));
97
+ }
98
+ }
83
99
  };
84
100
  function getFilterFn(type, operator) {
85
101
  // @ts-expect-error FilterOperatorTypes is union of all possible operators
@@ -90,41 +106,49 @@ const handleStringBasedTypes = (filterType, value) => {
90
106
  case filters.FilterType.date:
91
107
  return {
92
108
  value,
93
- stringValue: value.toISOString(),
109
+ stringValue: value.toISOString()
94
110
  };
95
111
  case filters.FilterType.select:
96
112
  return {
97
- stringValue: value === dataTable_types.EmptyFilterValue ? "" : value,
113
+ stringValue: value === dataTable_types.EmptyFilterValue ? '' : value,
114
+ value
115
+ };
116
+ case filters.FilterType.multiselect:
117
+ return {
98
118
  value,
119
+ stringValue: value
120
+ .map((value) => value === dataTable_types.EmptyFilterValue ? '' : String(value))
121
+ .join()
99
122
  };
100
123
  default:
101
124
  return {
102
125
  stringValue: value,
103
- value,
126
+ value
104
127
  };
105
128
  }
106
129
  };
107
- const getFilterOperator = ({ value, filterType, operator, }) => {
130
+ const getFilterOperator = ({ value, filterType, operator }) => {
108
131
  return value === dataTable_types.EmptyFilterValue && filterType === filters.FilterType.select
109
- ? "empty"
132
+ ? 'empty'
110
133
  : operator;
111
134
  };
112
- const getFilterValue = ({ value, dataType = "string", filterType = filters.FilterType.string, }) => {
113
- if (dataType === "boolean") {
135
+ const getFilterValue = ({ value, dataType = 'string', filterType = filters.FilterType.string }) => {
136
+ if (dataType === 'boolean') {
114
137
  return { boolValue: value, value };
115
138
  }
116
- if (dataType === "number") {
139
+ if (dataType === 'number') {
117
140
  return { numberValue: value, value };
118
141
  }
119
142
  // Handle string-based types
120
143
  return handleStringBasedTypes(filterType, value);
121
144
  };
122
- const getDataType = ({ filterType = filters.FilterType.string, dataType = "string", }) => {
145
+ const getDataType = ({ filterType = filters.FilterType.string, dataType = 'string' }) => {
123
146
  switch (filterType) {
147
+ case filters.FilterType.multiselect:
124
148
  case filters.FilterType.select:
125
149
  return dataType;
126
150
  case filters.FilterType.date:
127
- return "string";
151
+ return 'string';
128
152
  default:
129
153
  return filterType;
130
154
  }
@@ -1 +1 @@
1
- {"version":3,"file":"filter-operations.cjs","sources":["../../../../components/data-table/utils/filter-operations.tsx"],"sourcesContent":["import type { FilterFn } from \"@tanstack/table-core\";\nimport dayjs from \"dayjs\";\nimport isSameOrAfter from \"dayjs/plugin/isSameOrAfter\";\nimport isSameOrBefore from \"dayjs/plugin/isSameOrBefore\";\n\nimport {\n DateFilterOperatorType,\n FilterOperatorTypes,\n FilterValue,\n NumberFilterOperatorType,\n StringFilterOperatorType,\n SelectFilterOperatorType,\n FilterTypes,\n FilterValueType,\n FilterType,\n} from \"~/types/filters\";\nimport { EmptyFilterValue, RQLFilterValues } from \"../data-table.types\";\n\ndayjs.extend(isSameOrAfter);\ndayjs.extend(isSameOrBefore);\n\nexport type FilterFunctionsMap = {\n number: Record<NumberFilterOperatorType, FilterFn<any>>;\n string: Record<StringFilterOperatorType, FilterFn<any>>;\n date: Record<DateFilterOperatorType, FilterFn<any>>;\n select: Record<SelectFilterOperatorType, FilterFn<any>>;\n};\n\nexport const filterOperationsMap: FilterFunctionsMap = {\n number: {\n eq: (row, columnId, filterValue: FilterValue) => {\n return Number(row.getValue(columnId)) === Number(filterValue.value);\n },\n neq: (row, columnId, filterValue: FilterValue) => {\n return Number(row.getValue(columnId)) !== Number(filterValue.value);\n },\n lt: (row, columnId, filterValue: FilterValue) => {\n return Number(row.getValue(columnId)) < Number(filterValue.value);\n },\n lte: (row, columnId, filterValue: FilterValue) => {\n return Number(row.getValue(columnId)) <= Number(filterValue.value);\n },\n gt: (row, columnId, filterValue: FilterValue) => {\n return Number(row.getValue(columnId)) > Number(filterValue.value);\n },\n gte: (row, columnId, filterValue: FilterValue) => {\n return Number(row.getValue(columnId)) >= Number(filterValue.value);\n },\n },\n string: {\n eq: (row, columnId, filterValue: FilterValue) => {\n return (\n String(row.getValue(columnId)).toLowerCase() ===\n String(filterValue.value).toLowerCase()\n );\n },\n neq: (row, columnId, filterValue: FilterValue) => {\n return (\n String(row.getValue(columnId)).toLowerCase() !==\n String(filterValue.value).toLowerCase()\n );\n },\n like: (row, columnId, filterValue: FilterValue) => {\n const columnValue = (row.getValue(columnId) as string).toLowerCase();\n const filterStr = (filterValue.value as string).toLowerCase();\n return columnValue.includes(filterStr);\n },\n },\n date: {\n eq: (row, columnId, filterValue: FilterValue) => {\n return dayjs(row.getValue(columnId)).isSame(\n dayjs(filterValue.date),\n \"day\"\n );\n },\n neq: (row, columnId, filterValue: FilterValue) => {\n return !dayjs(row.getValue(columnId)).isSame(\n dayjs(filterValue.date),\n \"day\"\n );\n },\n lt: (row, columnId, filterValue: FilterValue) => {\n return dayjs(row.getValue(columnId)).isBefore(\n dayjs(filterValue.date),\n \"day\"\n );\n },\n lte: (row, columnId, filterValue: FilterValue) => {\n return dayjs(row.getValue(columnId)).isSameOrBefore(\n dayjs(filterValue.date),\n \"day\"\n );\n },\n gt: (row, columnId, filterValue: FilterValue) => {\n return dayjs(row.getValue(columnId)).isAfter(\n dayjs(filterValue.date),\n \"day\"\n );\n },\n gte: (row, columnId, filterValue: FilterValue) => {\n return dayjs(row.getValue(columnId)).isSameOrAfter(\n dayjs(filterValue.date),\n \"day\"\n );\n },\n },\n select: {\n eq: (row, columnId, filterValue: FilterValue) => {\n if (String(filterValue.value) === EmptyFilterValue) {\n return row.getValue(columnId) === \"\";\n }\n // Select only supports string values\n return String(row.getValue(columnId)) === String(filterValue.value);\n },\n neq: (row, columnId, filterValue: FilterValue) => {\n if (String(filterValue.value) === EmptyFilterValue) {\n return row.getValue(columnId) !== \"\";\n }\n // Select only supports string values\n return String(row.getValue(columnId)) !== String(filterValue.value);\n },\n },\n} as const;\n\nexport function getFilterFn<T extends keyof FilterFunctionsMap>(\n type: T,\n operator: FilterOperatorTypes\n) {\n // @ts-expect-error FilterOperatorTypes is union of all possible operators\n return filterOperationsMap[type][operator];\n}\n\nconst handleStringBasedTypes = (\n filterType: FilterTypes,\n value: any\n): RQLFilterValues => {\n switch (filterType) {\n case FilterType.date:\n return {\n value,\n stringValue: (value as Date).toISOString(),\n };\n case FilterType.select:\n return {\n stringValue: value === EmptyFilterValue ? \"\" : value,\n value,\n };\n default:\n return {\n stringValue: value,\n value,\n };\n }\n};\n\nexport const getFilterOperator = ({\n value,\n filterType,\n operator,\n}: {\n value: any;\n filterType?: FilterTypes;\n operator: FilterOperatorTypes;\n}): FilterOperatorTypes => {\n return value === EmptyFilterValue && filterType === FilterType.select\n ? \"empty\"\n : operator;\n};\n\nexport const getFilterValue = ({\n value,\n dataType = \"string\",\n filterType = FilterType.string,\n}: {\n value: any;\n dataType?: FilterValueType;\n filterType?: FilterTypes;\n}): RQLFilterValues => {\n if (dataType === \"boolean\") {\n return { boolValue: value, value };\n }\n if (dataType === \"number\") {\n return { numberValue: value, value };\n }\n\n // Handle string-based types\n return handleStringBasedTypes(filterType, value);\n};\n\nexport const getDataType = ({\n filterType = FilterType.string,\n dataType = \"string\",\n}: {\n dataType?: FilterValueType;\n filterType?: FilterTypes;\n}): FilterValueType => {\n switch (filterType) {\n case FilterType.select:\n return dataType;\n case FilterType.date:\n return \"string\";\n default:\n return filterType;\n }\n};\n"],"names":["dayjs","isSameOrAfter","isSameOrBefore","EmptyFilterValue","FilterType"],"mappings":"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"}
1
+ {"version":3,"file":"filter-operations.cjs","sources":["../../../../components/data-table/utils/filter-operations.tsx"],"sourcesContent":["import type { FilterFn } from '@tanstack/table-core';\nimport dayjs from 'dayjs';\nimport isSameOrAfter from 'dayjs/plugin/isSameOrAfter';\nimport isSameOrBefore from 'dayjs/plugin/isSameOrBefore';\n\nimport {\n DateFilterOperatorType,\n FilterOperatorTypes,\n FilterType,\n FilterTypes,\n FilterValue,\n FilterValueType,\n MultiSelectFilterOperatorType,\n NumberFilterOperatorType,\n SelectFilterOperatorType,\n StringFilterOperatorType\n} from '~/types/filters';\nimport { EmptyFilterValue, RQLFilterValues } from '../data-table.types';\n\ndayjs.extend(isSameOrAfter);\ndayjs.extend(isSameOrBefore);\n\nexport type FilterFunctionsMap = {\n number: Record<NumberFilterOperatorType, FilterFn<any>>;\n string: Record<StringFilterOperatorType, FilterFn<any>>;\n date: Record<DateFilterOperatorType, FilterFn<any>>;\n select: Record<SelectFilterOperatorType, FilterFn<any>>;\n multiselect: Record<MultiSelectFilterOperatorType, FilterFn<any>>;\n};\n\nexport const filterOperationsMap: FilterFunctionsMap = {\n number: {\n eq: (row, columnId, filterValue: FilterValue) => {\n return Number(row.getValue(columnId)) === Number(filterValue.value);\n },\n neq: (row, columnId, filterValue: FilterValue) => {\n return Number(row.getValue(columnId)) !== Number(filterValue.value);\n },\n lt: (row, columnId, filterValue: FilterValue) => {\n return Number(row.getValue(columnId)) < Number(filterValue.value);\n },\n lte: (row, columnId, filterValue: FilterValue) => {\n return Number(row.getValue(columnId)) <= Number(filterValue.value);\n },\n gt: (row, columnId, filterValue: FilterValue) => {\n return Number(row.getValue(columnId)) > Number(filterValue.value);\n },\n gte: (row, columnId, filterValue: FilterValue) => {\n return Number(row.getValue(columnId)) >= Number(filterValue.value);\n }\n },\n string: {\n eq: (row, columnId, filterValue: FilterValue) => {\n return (\n String(row.getValue(columnId)).toLowerCase() ===\n String(filterValue.value).toLowerCase()\n );\n },\n neq: (row, columnId, filterValue: FilterValue) => {\n return (\n String(row.getValue(columnId)).toLowerCase() !==\n String(filterValue.value).toLowerCase()\n );\n },\n like: (row, columnId, filterValue: FilterValue) => {\n const columnValue = (row.getValue(columnId) as string).toLowerCase();\n const filterStr = (filterValue.value as string).toLowerCase();\n return columnValue.includes(filterStr);\n }\n },\n date: {\n eq: (row, columnId, filterValue: FilterValue) => {\n return dayjs(row.getValue(columnId)).isSame(\n dayjs(filterValue.date),\n 'day'\n );\n },\n neq: (row, columnId, filterValue: FilterValue) => {\n return !dayjs(row.getValue(columnId)).isSame(\n dayjs(filterValue.date),\n 'day'\n );\n },\n lt: (row, columnId, filterValue: FilterValue) => {\n return dayjs(row.getValue(columnId)).isBefore(\n dayjs(filterValue.date),\n 'day'\n );\n },\n lte: (row, columnId, filterValue: FilterValue) => {\n return dayjs(row.getValue(columnId)).isSameOrBefore(\n dayjs(filterValue.date),\n 'day'\n );\n },\n gt: (row, columnId, filterValue: FilterValue) => {\n return dayjs(row.getValue(columnId)).isAfter(\n dayjs(filterValue.date),\n 'day'\n );\n },\n gte: (row, columnId, filterValue: FilterValue) => {\n return dayjs(row.getValue(columnId)).isSameOrAfter(\n dayjs(filterValue.date),\n 'day'\n );\n }\n },\n select: {\n eq: (row, columnId, filterValue: FilterValue) => {\n if (String(filterValue.value) === EmptyFilterValue) {\n return row.getValue(columnId) === '';\n }\n // Select only supports string values\n return String(row.getValue(columnId)) === String(filterValue.value);\n },\n neq: (row, columnId, filterValue: FilterValue) => {\n if (String(filterValue.value) === EmptyFilterValue) {\n return row.getValue(columnId) !== '';\n }\n // Select only supports string values\n return String(row.getValue(columnId)) !== String(filterValue.value);\n }\n },\n multiselect: {\n in: (row, columnId, filterValue: FilterValue) => {\n if (!Array.isArray(filterValue.value)) return false;\n\n return filterValue.value\n .map(value => (value === EmptyFilterValue ? '' : String(value)))\n .includes(String(row.getValue(columnId)));\n },\n notin: (row, columnId, filterValue: FilterValue) => {\n if (!Array.isArray(filterValue.value)) return false;\n\n return !filterValue.value\n .map(value => (value === EmptyFilterValue ? '' : String(value)))\n .includes(String(row.getValue(columnId)));\n }\n }\n} as const;\n\nexport function getFilterFn<T extends keyof FilterFunctionsMap>(\n type: T,\n operator: FilterOperatorTypes\n) {\n // @ts-expect-error FilterOperatorTypes is union of all possible operators\n return filterOperationsMap[type][operator];\n}\n\nconst handleStringBasedTypes = (\n filterType: FilterTypes,\n value: any\n): RQLFilterValues => {\n switch (filterType) {\n case FilterType.date:\n return {\n value,\n stringValue: (value as Date).toISOString()\n };\n case FilterType.select:\n return {\n stringValue: value === EmptyFilterValue ? '' : value,\n value\n };\n case FilterType.multiselect:\n return {\n value,\n stringValue: value\n .map((value: any) =>\n value === EmptyFilterValue ? '' : String(value)\n )\n .join()\n };\n default:\n return {\n stringValue: value,\n value\n };\n }\n};\n\nexport const getFilterOperator = ({\n value,\n filterType,\n operator\n}: {\n value: any;\n filterType?: FilterTypes;\n operator: FilterOperatorTypes;\n}): FilterOperatorTypes => {\n return value === EmptyFilterValue && filterType === FilterType.select\n ? 'empty'\n : operator;\n};\n\nexport const getFilterValue = ({\n value,\n dataType = 'string',\n filterType = FilterType.string\n}: {\n value: any;\n dataType?: FilterValueType;\n filterType?: FilterTypes;\n}): RQLFilterValues => {\n if (dataType === 'boolean') {\n return { boolValue: value, value };\n }\n if (dataType === 'number') {\n return { numberValue: value, value };\n }\n\n // Handle string-based types\n return handleStringBasedTypes(filterType, value);\n};\n\nexport const getDataType = ({\n filterType = FilterType.string,\n dataType = 'string'\n}: {\n dataType?: FilterValueType;\n filterType?: FilterTypes;\n}): FilterValueType => {\n switch (filterType) {\n case FilterType.multiselect:\n case FilterType.select:\n return dataType;\n case FilterType.date:\n return 'string';\n default:\n return filterType;\n }\n};\n"],"names":["dayjs","isSameOrAfter","isSameOrBefore","EmptyFilterValue","FilterType"],"mappings":"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"}
@@ -1,26 +1,27 @@
1
- import type { FilterFn } from "@tanstack/table-core";
2
- import { DateFilterOperatorType, FilterOperatorTypes, NumberFilterOperatorType, StringFilterOperatorType, SelectFilterOperatorType, FilterTypes, FilterValueType } from "~/types/filters";
3
- import { RQLFilterValues } from "../data-table.types";
1
+ import type { FilterFn } from '@tanstack/table-core';
2
+ import { DateFilterOperatorType, FilterOperatorTypes, FilterTypes, FilterValueType, MultiSelectFilterOperatorType, NumberFilterOperatorType, SelectFilterOperatorType, StringFilterOperatorType } from '~/types/filters';
3
+ import { RQLFilterValues } from '../data-table.types';
4
4
  export type FilterFunctionsMap = {
5
5
  number: Record<NumberFilterOperatorType, FilterFn<any>>;
6
6
  string: Record<StringFilterOperatorType, FilterFn<any>>;
7
7
  date: Record<DateFilterOperatorType, FilterFn<any>>;
8
8
  select: Record<SelectFilterOperatorType, FilterFn<any>>;
9
+ multiselect: Record<MultiSelectFilterOperatorType, FilterFn<any>>;
9
10
  };
10
11
  export declare const filterOperationsMap: FilterFunctionsMap;
11
12
  export declare function getFilterFn<T extends keyof FilterFunctionsMap>(type: T, operator: FilterOperatorTypes): any;
12
- export declare const getFilterOperator: ({ value, filterType, operator, }: {
13
+ export declare const getFilterOperator: ({ value, filterType, operator }: {
13
14
  value: any;
14
- filterType?: "string" | "number" | "select" | "date" | undefined;
15
+ filterType?: "string" | "number" | "select" | "date" | "multiselect" | undefined;
15
16
  operator: FilterOperatorTypes;
16
17
  }) => FilterOperatorTypes;
17
- export declare const getFilterValue: ({ value, dataType, filterType, }: {
18
+ export declare const getFilterValue: ({ value, dataType, filterType }: {
18
19
  value: any;
19
20
  dataType?: FilterValueType | undefined;
20
- filterType?: "string" | "number" | "select" | "date" | undefined;
21
+ filterType?: "string" | "number" | "select" | "date" | "multiselect" | undefined;
21
22
  }) => RQLFilterValues;
22
- export declare const getDataType: ({ filterType, dataType, }: {
23
+ export declare const getDataType: ({ filterType, dataType }: {
23
24
  dataType?: FilterValueType | undefined;
24
- filterType?: "string" | "number" | "select" | "date" | undefined;
25
+ filterType?: "string" | "number" | "select" | "date" | "multiselect" | undefined;
25
26
  }) => FilterValueType;
26
27
  //# sourceMappingURL=filter-operations.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"filter-operations.d.ts","sourceRoot":"","sources":["../../../../components/data-table/utils/filter-operations.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,sBAAsB,CAAC;AAKrD,OAAO,EACL,sBAAsB,EACtB,mBAAmB,EAEnB,wBAAwB,EACxB,wBAAwB,EACxB,wBAAwB,EACxB,WAAW,EACX,eAAe,EAEhB,MAAM,iBAAiB,CAAC;AACzB,OAAO,EAAoB,eAAe,EAAE,MAAM,qBAAqB,CAAC;AAKxE,MAAM,MAAM,kBAAkB,GAAG;IAC/B,MAAM,EAAE,MAAM,CAAC,wBAAwB,EAAE,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC;IACxD,MAAM,EAAE,MAAM,CAAC,wBAAwB,EAAE,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC;IACxD,IAAI,EAAE,MAAM,CAAC,sBAAsB,EAAE,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC;IACpD,MAAM,EAAE,MAAM,CAAC,wBAAwB,EAAE,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC;CACzD,CAAC;AAEF,eAAO,MAAM,mBAAmB,EAAE,kBA8FxB,CAAC;AAEX,wBAAgB,WAAW,CAAC,CAAC,SAAS,MAAM,kBAAkB,EAC5D,IAAI,EAAE,CAAC,EACP,QAAQ,EAAE,mBAAmB,OAI9B;AAyBD,eAAO,MAAM,iBAAiB;WAKrB,GAAG;;cAEA,mBAAmB;MAC3B,mBAIH,CAAC;AAEF,eAAO,MAAM,cAAc;WAKlB,GAAG;;;MAGR,eAUH,CAAC;AAEF,eAAO,MAAM,WAAW;;;MAMpB,eASH,CAAC"}
1
+ {"version":3,"file":"filter-operations.d.ts","sourceRoot":"","sources":["../../../../components/data-table/utils/filter-operations.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,sBAAsB,CAAC;AAKrD,OAAO,EACL,sBAAsB,EACtB,mBAAmB,EAEnB,WAAW,EAEX,eAAe,EACf,6BAA6B,EAC7B,wBAAwB,EACxB,wBAAwB,EACxB,wBAAwB,EACzB,MAAM,iBAAiB,CAAC;AACzB,OAAO,EAAoB,eAAe,EAAE,MAAM,qBAAqB,CAAC;AAKxE,MAAM,MAAM,kBAAkB,GAAG;IAC/B,MAAM,EAAE,MAAM,CAAC,wBAAwB,EAAE,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC;IACxD,MAAM,EAAE,MAAM,CAAC,wBAAwB,EAAE,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC;IACxD,IAAI,EAAE,MAAM,CAAC,sBAAsB,EAAE,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC;IACpD,MAAM,EAAE,MAAM,CAAC,wBAAwB,EAAE,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC;IACxD,WAAW,EAAE,MAAM,CAAC,6BAA6B,EAAE,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC;CACnE,CAAC;AAEF,eAAO,MAAM,mBAAmB,EAAE,kBA8GxB,CAAC;AAEX,wBAAgB,WAAW,CAAC,CAAC,SAAS,MAAM,kBAAkB,EAC5D,IAAI,EAAE,CAAC,EACP,QAAQ,EAAE,mBAAmB,OAI9B;AAkCD,eAAO,MAAM,iBAAiB;WAKrB,GAAG;;cAEA,mBAAmB;MAC3B,mBAIH,CAAC;AAEF,eAAO,MAAM,cAAc;WAKlB,GAAG;;;MAGR,eAUH,CAAC;AAEF,eAAO,MAAM,WAAW;;;MAMpB,eAUH,CAAC"}
@@ -25,7 +25,7 @@ const filterOperationsMap = {
25
25
  },
26
26
  gte: (row, columnId, filterValue) => {
27
27
  return Number(row.getValue(columnId)) >= Number(filterValue.value);
28
- },
28
+ }
29
29
  },
30
30
  string: {
31
31
  eq: (row, columnId, filterValue) => {
@@ -40,44 +40,60 @@ const filterOperationsMap = {
40
40
  const columnValue = row.getValue(columnId).toLowerCase();
41
41
  const filterStr = filterValue.value.toLowerCase();
42
42
  return columnValue.includes(filterStr);
43
- },
43
+ }
44
44
  },
45
45
  date: {
46
46
  eq: (row, columnId, filterValue) => {
47
- return dayjs(row.getValue(columnId)).isSame(dayjs(filterValue.date), "day");
47
+ return dayjs(row.getValue(columnId)).isSame(dayjs(filterValue.date), 'day');
48
48
  },
49
49
  neq: (row, columnId, filterValue) => {
50
- return !dayjs(row.getValue(columnId)).isSame(dayjs(filterValue.date), "day");
50
+ return !dayjs(row.getValue(columnId)).isSame(dayjs(filterValue.date), 'day');
51
51
  },
52
52
  lt: (row, columnId, filterValue) => {
53
- return dayjs(row.getValue(columnId)).isBefore(dayjs(filterValue.date), "day");
53
+ return dayjs(row.getValue(columnId)).isBefore(dayjs(filterValue.date), 'day');
54
54
  },
55
55
  lte: (row, columnId, filterValue) => {
56
- return dayjs(row.getValue(columnId)).isSameOrBefore(dayjs(filterValue.date), "day");
56
+ return dayjs(row.getValue(columnId)).isSameOrBefore(dayjs(filterValue.date), 'day');
57
57
  },
58
58
  gt: (row, columnId, filterValue) => {
59
- return dayjs(row.getValue(columnId)).isAfter(dayjs(filterValue.date), "day");
59
+ return dayjs(row.getValue(columnId)).isAfter(dayjs(filterValue.date), 'day');
60
60
  },
61
61
  gte: (row, columnId, filterValue) => {
62
- return dayjs(row.getValue(columnId)).isSameOrAfter(dayjs(filterValue.date), "day");
63
- },
62
+ return dayjs(row.getValue(columnId)).isSameOrAfter(dayjs(filterValue.date), 'day');
63
+ }
64
64
  },
65
65
  select: {
66
66
  eq: (row, columnId, filterValue) => {
67
67
  if (String(filterValue.value) === EmptyFilterValue) {
68
- return row.getValue(columnId) === "";
68
+ return row.getValue(columnId) === '';
69
69
  }
70
70
  // Select only supports string values
71
71
  return String(row.getValue(columnId)) === String(filterValue.value);
72
72
  },
73
73
  neq: (row, columnId, filterValue) => {
74
74
  if (String(filterValue.value) === EmptyFilterValue) {
75
- return row.getValue(columnId) !== "";
75
+ return row.getValue(columnId) !== '';
76
76
  }
77
77
  // Select only supports string values
78
78
  return String(row.getValue(columnId)) !== String(filterValue.value);
79
- },
79
+ }
80
80
  },
81
+ multiselect: {
82
+ in: (row, columnId, filterValue) => {
83
+ if (!Array.isArray(filterValue.value))
84
+ return false;
85
+ return filterValue.value
86
+ .map(value => (value === EmptyFilterValue ? '' : String(value)))
87
+ .includes(String(row.getValue(columnId)));
88
+ },
89
+ notin: (row, columnId, filterValue) => {
90
+ if (!Array.isArray(filterValue.value))
91
+ return false;
92
+ return !filterValue.value
93
+ .map(value => (value === EmptyFilterValue ? '' : String(value)))
94
+ .includes(String(row.getValue(columnId)));
95
+ }
96
+ }
81
97
  };
82
98
  function getFilterFn(type, operator) {
83
99
  // @ts-expect-error FilterOperatorTypes is union of all possible operators
@@ -88,41 +104,49 @@ const handleStringBasedTypes = (filterType, value) => {
88
104
  case FilterType.date:
89
105
  return {
90
106
  value,
91
- stringValue: value.toISOString(),
107
+ stringValue: value.toISOString()
92
108
  };
93
109
  case FilterType.select:
94
110
  return {
95
- stringValue: value === EmptyFilterValue ? "" : value,
111
+ stringValue: value === EmptyFilterValue ? '' : value,
112
+ value
113
+ };
114
+ case FilterType.multiselect:
115
+ return {
96
116
  value,
117
+ stringValue: value
118
+ .map((value) => value === EmptyFilterValue ? '' : String(value))
119
+ .join()
97
120
  };
98
121
  default:
99
122
  return {
100
123
  stringValue: value,
101
- value,
124
+ value
102
125
  };
103
126
  }
104
127
  };
105
- const getFilterOperator = ({ value, filterType, operator, }) => {
128
+ const getFilterOperator = ({ value, filterType, operator }) => {
106
129
  return value === EmptyFilterValue && filterType === FilterType.select
107
- ? "empty"
130
+ ? 'empty'
108
131
  : operator;
109
132
  };
110
- const getFilterValue = ({ value, dataType = "string", filterType = FilterType.string, }) => {
111
- if (dataType === "boolean") {
133
+ const getFilterValue = ({ value, dataType = 'string', filterType = FilterType.string }) => {
134
+ if (dataType === 'boolean') {
112
135
  return { boolValue: value, value };
113
136
  }
114
- if (dataType === "number") {
137
+ if (dataType === 'number') {
115
138
  return { numberValue: value, value };
116
139
  }
117
140
  // Handle string-based types
118
141
  return handleStringBasedTypes(filterType, value);
119
142
  };
120
- const getDataType = ({ filterType = FilterType.string, dataType = "string", }) => {
143
+ const getDataType = ({ filterType = FilterType.string, dataType = 'string' }) => {
121
144
  switch (filterType) {
145
+ case FilterType.multiselect:
122
146
  case FilterType.select:
123
147
  return dataType;
124
148
  case FilterType.date:
125
- return "string";
149
+ return 'string';
126
150
  default:
127
151
  return filterType;
128
152
  }
@@ -1 +1 @@
1
- {"version":3,"file":"filter-operations.js","sources":["../../../../components/data-table/utils/filter-operations.tsx"],"sourcesContent":["import type { FilterFn } from \"@tanstack/table-core\";\nimport dayjs from \"dayjs\";\nimport isSameOrAfter from \"dayjs/plugin/isSameOrAfter\";\nimport isSameOrBefore from \"dayjs/plugin/isSameOrBefore\";\n\nimport {\n DateFilterOperatorType,\n FilterOperatorTypes,\n FilterValue,\n NumberFilterOperatorType,\n StringFilterOperatorType,\n SelectFilterOperatorType,\n FilterTypes,\n FilterValueType,\n FilterType,\n} from \"~/types/filters\";\nimport { EmptyFilterValue, RQLFilterValues } from \"../data-table.types\";\n\ndayjs.extend(isSameOrAfter);\ndayjs.extend(isSameOrBefore);\n\nexport type FilterFunctionsMap = {\n number: Record<NumberFilterOperatorType, FilterFn<any>>;\n string: Record<StringFilterOperatorType, FilterFn<any>>;\n date: Record<DateFilterOperatorType, FilterFn<any>>;\n select: Record<SelectFilterOperatorType, FilterFn<any>>;\n};\n\nexport const filterOperationsMap: FilterFunctionsMap = {\n number: {\n eq: (row, columnId, filterValue: FilterValue) => {\n return Number(row.getValue(columnId)) === Number(filterValue.value);\n },\n neq: (row, columnId, filterValue: FilterValue) => {\n return Number(row.getValue(columnId)) !== Number(filterValue.value);\n },\n lt: (row, columnId, filterValue: FilterValue) => {\n return Number(row.getValue(columnId)) < Number(filterValue.value);\n },\n lte: (row, columnId, filterValue: FilterValue) => {\n return Number(row.getValue(columnId)) <= Number(filterValue.value);\n },\n gt: (row, columnId, filterValue: FilterValue) => {\n return Number(row.getValue(columnId)) > Number(filterValue.value);\n },\n gte: (row, columnId, filterValue: FilterValue) => {\n return Number(row.getValue(columnId)) >= Number(filterValue.value);\n },\n },\n string: {\n eq: (row, columnId, filterValue: FilterValue) => {\n return (\n String(row.getValue(columnId)).toLowerCase() ===\n String(filterValue.value).toLowerCase()\n );\n },\n neq: (row, columnId, filterValue: FilterValue) => {\n return (\n String(row.getValue(columnId)).toLowerCase() !==\n String(filterValue.value).toLowerCase()\n );\n },\n like: (row, columnId, filterValue: FilterValue) => {\n const columnValue = (row.getValue(columnId) as string).toLowerCase();\n const filterStr = (filterValue.value as string).toLowerCase();\n return columnValue.includes(filterStr);\n },\n },\n date: {\n eq: (row, columnId, filterValue: FilterValue) => {\n return dayjs(row.getValue(columnId)).isSame(\n dayjs(filterValue.date),\n \"day\"\n );\n },\n neq: (row, columnId, filterValue: FilterValue) => {\n return !dayjs(row.getValue(columnId)).isSame(\n dayjs(filterValue.date),\n \"day\"\n );\n },\n lt: (row, columnId, filterValue: FilterValue) => {\n return dayjs(row.getValue(columnId)).isBefore(\n dayjs(filterValue.date),\n \"day\"\n );\n },\n lte: (row, columnId, filterValue: FilterValue) => {\n return dayjs(row.getValue(columnId)).isSameOrBefore(\n dayjs(filterValue.date),\n \"day\"\n );\n },\n gt: (row, columnId, filterValue: FilterValue) => {\n return dayjs(row.getValue(columnId)).isAfter(\n dayjs(filterValue.date),\n \"day\"\n );\n },\n gte: (row, columnId, filterValue: FilterValue) => {\n return dayjs(row.getValue(columnId)).isSameOrAfter(\n dayjs(filterValue.date),\n \"day\"\n );\n },\n },\n select: {\n eq: (row, columnId, filterValue: FilterValue) => {\n if (String(filterValue.value) === EmptyFilterValue) {\n return row.getValue(columnId) === \"\";\n }\n // Select only supports string values\n return String(row.getValue(columnId)) === String(filterValue.value);\n },\n neq: (row, columnId, filterValue: FilterValue) => {\n if (String(filterValue.value) === EmptyFilterValue) {\n return row.getValue(columnId) !== \"\";\n }\n // Select only supports string values\n return String(row.getValue(columnId)) !== String(filterValue.value);\n },\n },\n} as const;\n\nexport function getFilterFn<T extends keyof FilterFunctionsMap>(\n type: T,\n operator: FilterOperatorTypes\n) {\n // @ts-expect-error FilterOperatorTypes is union of all possible operators\n return filterOperationsMap[type][operator];\n}\n\nconst handleStringBasedTypes = (\n filterType: FilterTypes,\n value: any\n): RQLFilterValues => {\n switch (filterType) {\n case FilterType.date:\n return {\n value,\n stringValue: (value as Date).toISOString(),\n };\n case FilterType.select:\n return {\n stringValue: value === EmptyFilterValue ? \"\" : value,\n value,\n };\n default:\n return {\n stringValue: value,\n value,\n };\n }\n};\n\nexport const getFilterOperator = ({\n value,\n filterType,\n operator,\n}: {\n value: any;\n filterType?: FilterTypes;\n operator: FilterOperatorTypes;\n}): FilterOperatorTypes => {\n return value === EmptyFilterValue && filterType === FilterType.select\n ? \"empty\"\n : operator;\n};\n\nexport const getFilterValue = ({\n value,\n dataType = \"string\",\n filterType = FilterType.string,\n}: {\n value: any;\n dataType?: FilterValueType;\n filterType?: FilterTypes;\n}): RQLFilterValues => {\n if (dataType === \"boolean\") {\n return { boolValue: value, value };\n }\n if (dataType === \"number\") {\n return { numberValue: value, value };\n }\n\n // Handle string-based types\n return handleStringBasedTypes(filterType, value);\n};\n\nexport const getDataType = ({\n filterType = FilterType.string,\n dataType = \"string\",\n}: {\n dataType?: FilterValueType;\n filterType?: FilterTypes;\n}): FilterValueType => {\n switch (filterType) {\n case FilterType.select:\n return dataType;\n case FilterType.date:\n return \"string\";\n default:\n return filterType;\n }\n};\n"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"filter-operations.js","sources":["../../../../components/data-table/utils/filter-operations.tsx"],"sourcesContent":["import type { FilterFn } from '@tanstack/table-core';\nimport dayjs from 'dayjs';\nimport isSameOrAfter from 'dayjs/plugin/isSameOrAfter';\nimport isSameOrBefore from 'dayjs/plugin/isSameOrBefore';\n\nimport {\n DateFilterOperatorType,\n FilterOperatorTypes,\n FilterType,\n FilterTypes,\n FilterValue,\n FilterValueType,\n MultiSelectFilterOperatorType,\n NumberFilterOperatorType,\n SelectFilterOperatorType,\n StringFilterOperatorType\n} from '~/types/filters';\nimport { EmptyFilterValue, RQLFilterValues } from '../data-table.types';\n\ndayjs.extend(isSameOrAfter);\ndayjs.extend(isSameOrBefore);\n\nexport type FilterFunctionsMap = {\n number: Record<NumberFilterOperatorType, FilterFn<any>>;\n string: Record<StringFilterOperatorType, FilterFn<any>>;\n date: Record<DateFilterOperatorType, FilterFn<any>>;\n select: Record<SelectFilterOperatorType, FilterFn<any>>;\n multiselect: Record<MultiSelectFilterOperatorType, FilterFn<any>>;\n};\n\nexport const filterOperationsMap: FilterFunctionsMap = {\n number: {\n eq: (row, columnId, filterValue: FilterValue) => {\n return Number(row.getValue(columnId)) === Number(filterValue.value);\n },\n neq: (row, columnId, filterValue: FilterValue) => {\n return Number(row.getValue(columnId)) !== Number(filterValue.value);\n },\n lt: (row, columnId, filterValue: FilterValue) => {\n return Number(row.getValue(columnId)) < Number(filterValue.value);\n },\n lte: (row, columnId, filterValue: FilterValue) => {\n return Number(row.getValue(columnId)) <= Number(filterValue.value);\n },\n gt: (row, columnId, filterValue: FilterValue) => {\n return Number(row.getValue(columnId)) > Number(filterValue.value);\n },\n gte: (row, columnId, filterValue: FilterValue) => {\n return Number(row.getValue(columnId)) >= Number(filterValue.value);\n }\n },\n string: {\n eq: (row, columnId, filterValue: FilterValue) => {\n return (\n String(row.getValue(columnId)).toLowerCase() ===\n String(filterValue.value).toLowerCase()\n );\n },\n neq: (row, columnId, filterValue: FilterValue) => {\n return (\n String(row.getValue(columnId)).toLowerCase() !==\n String(filterValue.value).toLowerCase()\n );\n },\n like: (row, columnId, filterValue: FilterValue) => {\n const columnValue = (row.getValue(columnId) as string).toLowerCase();\n const filterStr = (filterValue.value as string).toLowerCase();\n return columnValue.includes(filterStr);\n }\n },\n date: {\n eq: (row, columnId, filterValue: FilterValue) => {\n return dayjs(row.getValue(columnId)).isSame(\n dayjs(filterValue.date),\n 'day'\n );\n },\n neq: (row, columnId, filterValue: FilterValue) => {\n return !dayjs(row.getValue(columnId)).isSame(\n dayjs(filterValue.date),\n 'day'\n );\n },\n lt: (row, columnId, filterValue: FilterValue) => {\n return dayjs(row.getValue(columnId)).isBefore(\n dayjs(filterValue.date),\n 'day'\n );\n },\n lte: (row, columnId, filterValue: FilterValue) => {\n return dayjs(row.getValue(columnId)).isSameOrBefore(\n dayjs(filterValue.date),\n 'day'\n );\n },\n gt: (row, columnId, filterValue: FilterValue) => {\n return dayjs(row.getValue(columnId)).isAfter(\n dayjs(filterValue.date),\n 'day'\n );\n },\n gte: (row, columnId, filterValue: FilterValue) => {\n return dayjs(row.getValue(columnId)).isSameOrAfter(\n dayjs(filterValue.date),\n 'day'\n );\n }\n },\n select: {\n eq: (row, columnId, filterValue: FilterValue) => {\n if (String(filterValue.value) === EmptyFilterValue) {\n return row.getValue(columnId) === '';\n }\n // Select only supports string values\n return String(row.getValue(columnId)) === String(filterValue.value);\n },\n neq: (row, columnId, filterValue: FilterValue) => {\n if (String(filterValue.value) === EmptyFilterValue) {\n return row.getValue(columnId) !== '';\n }\n // Select only supports string values\n return String(row.getValue(columnId)) !== String(filterValue.value);\n }\n },\n multiselect: {\n in: (row, columnId, filterValue: FilterValue) => {\n if (!Array.isArray(filterValue.value)) return false;\n\n return filterValue.value\n .map(value => (value === EmptyFilterValue ? '' : String(value)))\n .includes(String(row.getValue(columnId)));\n },\n notin: (row, columnId, filterValue: FilterValue) => {\n if (!Array.isArray(filterValue.value)) return false;\n\n return !filterValue.value\n .map(value => (value === EmptyFilterValue ? '' : String(value)))\n .includes(String(row.getValue(columnId)));\n }\n }\n} as const;\n\nexport function getFilterFn<T extends keyof FilterFunctionsMap>(\n type: T,\n operator: FilterOperatorTypes\n) {\n // @ts-expect-error FilterOperatorTypes is union of all possible operators\n return filterOperationsMap[type][operator];\n}\n\nconst handleStringBasedTypes = (\n filterType: FilterTypes,\n value: any\n): RQLFilterValues => {\n switch (filterType) {\n case FilterType.date:\n return {\n value,\n stringValue: (value as Date).toISOString()\n };\n case FilterType.select:\n return {\n stringValue: value === EmptyFilterValue ? '' : value,\n value\n };\n case FilterType.multiselect:\n return {\n value,\n stringValue: value\n .map((value: any) =>\n value === EmptyFilterValue ? '' : String(value)\n )\n .join()\n };\n default:\n return {\n stringValue: value,\n value\n };\n }\n};\n\nexport const getFilterOperator = ({\n value,\n filterType,\n operator\n}: {\n value: any;\n filterType?: FilterTypes;\n operator: FilterOperatorTypes;\n}): FilterOperatorTypes => {\n return value === EmptyFilterValue && filterType === FilterType.select\n ? 'empty'\n : operator;\n};\n\nexport const getFilterValue = ({\n value,\n dataType = 'string',\n filterType = FilterType.string\n}: {\n value: any;\n dataType?: FilterValueType;\n filterType?: FilterTypes;\n}): RQLFilterValues => {\n if (dataType === 'boolean') {\n return { boolValue: value, value };\n }\n if (dataType === 'number') {\n return { numberValue: value, value };\n }\n\n // Handle string-based types\n return handleStringBasedTypes(filterType, value);\n};\n\nexport const getDataType = ({\n filterType = FilterType.string,\n dataType = 'string'\n}: {\n dataType?: FilterValueType;\n filterType?: FilterTypes;\n}): FilterValueType => {\n switch (filterType) {\n case FilterType.multiselect:\n case FilterType.select:\n return dataType;\n case FilterType.date:\n return 'string';\n default:\n return filterType;\n }\n};\n"],"names":[],"mappings":";;;;;;AAmBA,KAAK,CAAC,MAAM,CAAC,aAAa,CAAC,CAAC;AAC5B,KAAK,CAAC,MAAM,CAAC,cAAc,CAAC,CAAC;AAUhB,MAAA,mBAAmB,GAAuB;AACrD,IAAA,MAAM,EAAE;QACN,EAAE,EAAE,CAAC,GAAG,EAAE,QAAQ,EAAE,WAAwB,KAAI;AAC9C,YAAA,OAAO,MAAM,CAAC,GAAG,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC,KAAK,MAAM,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC;SACrE;QACD,GAAG,EAAE,CAAC,GAAG,EAAE,QAAQ,EAAE,WAAwB,KAAI;AAC/C,YAAA,OAAO,MAAM,CAAC,GAAG,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC,KAAK,MAAM,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC;SACrE;QACD,EAAE,EAAE,CAAC,GAAG,EAAE,QAAQ,EAAE,WAAwB,KAAI;AAC9C,YAAA,OAAO,MAAM,CAAC,GAAG,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC,GAAG,MAAM,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC;SACnE;QACD,GAAG,EAAE,CAAC,GAAG,EAAE,QAAQ,EAAE,WAAwB,KAAI;AAC/C,YAAA,OAAO,MAAM,CAAC,GAAG,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC,IAAI,MAAM,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC;SACpE;QACD,EAAE,EAAE,CAAC,GAAG,EAAE,QAAQ,EAAE,WAAwB,KAAI;AAC9C,YAAA,OAAO,MAAM,CAAC,GAAG,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC,GAAG,MAAM,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC;SACnE;QACD,GAAG,EAAE,CAAC,GAAG,EAAE,QAAQ,EAAE,WAAwB,KAAI;AAC/C,YAAA,OAAO,MAAM,CAAC,GAAG,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC,IAAI,MAAM,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC;SACpE;AACF,KAAA;AACD,IAAA,MAAM,EAAE;QACN,EAAE,EAAE,CAAC,GAAG,EAAE,QAAQ,EAAE,WAAwB,KAAI;AAC9C,YAAA,QACE,MAAM,CAAC,GAAG,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC,CAAC,WAAW,EAAE;gBAC5C,MAAM,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC,WAAW,EAAE,EACvC;SACH;QACD,GAAG,EAAE,CAAC,GAAG,EAAE,QAAQ,EAAE,WAAwB,KAAI;AAC/C,YAAA,QACE,MAAM,CAAC,GAAG,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC,CAAC,WAAW,EAAE;gBAC5C,MAAM,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC,WAAW,EAAE,EACvC;SACH;QACD,IAAI,EAAE,CAAC,GAAG,EAAE,QAAQ,EAAE,WAAwB,KAAI;YAChD,MAAM,WAAW,GAAI,GAAG,CAAC,QAAQ,CAAC,QAAQ,CAAY,CAAC,WAAW,EAAE,CAAC;YACrE,MAAM,SAAS,GAAI,WAAW,CAAC,KAAgB,CAAC,WAAW,EAAE,CAAC;AAC9D,YAAA,OAAO,WAAW,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC;SACxC;AACF,KAAA;AACD,IAAA,IAAI,EAAE;QACJ,EAAE,EAAE,CAAC,GAAG,EAAE,QAAQ,EAAE,WAAwB,KAAI;YAC9C,OAAO,KAAK,CAAC,GAAG,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC,CAAC,MAAM,CACzC,KAAK,CAAC,WAAW,CAAC,IAAI,CAAC,EACvB,KAAK,CACN,CAAC;SACH;QACD,GAAG,EAAE,CAAC,GAAG,EAAE,QAAQ,EAAE,WAAwB,KAAI;YAC/C,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC,CAAC,MAAM,CAC1C,KAAK,CAAC,WAAW,CAAC,IAAI,CAAC,EACvB,KAAK,CACN,CAAC;SACH;QACD,EAAE,EAAE,CAAC,GAAG,EAAE,QAAQ,EAAE,WAAwB,KAAI;YAC9C,OAAO,KAAK,CAAC,GAAG,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC,CAAC,QAAQ,CAC3C,KAAK,CAAC,WAAW,CAAC,IAAI,CAAC,EACvB,KAAK,CACN,CAAC;SACH;QACD,GAAG,EAAE,CAAC,GAAG,EAAE,QAAQ,EAAE,WAAwB,KAAI;YAC/C,OAAO,KAAK,CAAC,GAAG,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC,CAAC,cAAc,CACjD,KAAK,CAAC,WAAW,CAAC,IAAI,CAAC,EACvB,KAAK,CACN,CAAC;SACH;QACD,EAAE,EAAE,CAAC,GAAG,EAAE,QAAQ,EAAE,WAAwB,KAAI;YAC9C,OAAO,KAAK,CAAC,GAAG,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC,CAAC,OAAO,CAC1C,KAAK,CAAC,WAAW,CAAC,IAAI,CAAC,EACvB,KAAK,CACN,CAAC;SACH;QACD,GAAG,EAAE,CAAC,GAAG,EAAE,QAAQ,EAAE,WAAwB,KAAI;YAC/C,OAAO,KAAK,CAAC,GAAG,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC,CAAC,aAAa,CAChD,KAAK,CAAC,WAAW,CAAC,IAAI,CAAC,EACvB,KAAK,CACN,CAAC;SACH;AACF,KAAA;AACD,IAAA,MAAM,EAAE;QACN,EAAE,EAAE,CAAC,GAAG,EAAE,QAAQ,EAAE,WAAwB,KAAI;YAC9C,IAAI,MAAM,CAAC,WAAW,CAAC,KAAK,CAAC,KAAK,gBAAgB,EAAE;gBAClD,OAAO,GAAG,CAAC,QAAQ,CAAC,QAAQ,CAAC,KAAK,EAAE,CAAC;aACtC;;AAED,YAAA,OAAO,MAAM,CAAC,GAAG,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC,KAAK,MAAM,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC;SACrE;QACD,GAAG,EAAE,CAAC,GAAG,EAAE,QAAQ,EAAE,WAAwB,KAAI;YAC/C,IAAI,MAAM,CAAC,WAAW,CAAC,KAAK,CAAC,KAAK,gBAAgB,EAAE;gBAClD,OAAO,GAAG,CAAC,QAAQ,CAAC,QAAQ,CAAC,KAAK,EAAE,CAAC;aACtC;;AAED,YAAA,OAAO,MAAM,CAAC,GAAG,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC,KAAK,MAAM,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC;SACrE;AACF,KAAA;AACD,IAAA,WAAW,EAAE;QACX,EAAE,EAAE,CAAC,GAAG,EAAE,QAAQ,EAAE,WAAwB,KAAI;YAC9C,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,WAAW,CAAC,KAAK,CAAC;AAAE,gBAAA,OAAO,KAAK,CAAC;YAEpD,OAAO,WAAW,CAAC,KAAK;iBACrB,GAAG,CAAC,KAAK,KAAK,KAAK,KAAK,gBAAgB,GAAG,EAAE,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC;iBAC/D,QAAQ,CAAC,MAAM,CAAC,GAAG,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC;SAC7C;QACD,KAAK,EAAE,CAAC,GAAG,EAAE,QAAQ,EAAE,WAAwB,KAAI;YACjD,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,WAAW,CAAC,KAAK,CAAC;AAAE,gBAAA,OAAO,KAAK,CAAC;YAEpD,OAAO,CAAC,WAAW,CAAC,KAAK;iBACtB,GAAG,CAAC,KAAK,KAAK,KAAK,KAAK,gBAAgB,GAAG,EAAE,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC;iBAC/D,QAAQ,CAAC,MAAM,CAAC,GAAG,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC;SAC7C;AACF,KAAA;EACQ;AAEK,SAAA,WAAW,CACzB,IAAO,EACP,QAA6B,EAAA;;AAG7B,IAAA,OAAO,mBAAmB,CAAC,IAAI,CAAC,CAAC,QAAQ,CAAC,CAAC;AAC7C,CAAC;AAED,MAAM,sBAAsB,GAAG,CAC7B,UAAuB,EACvB,KAAU,KACS;IACnB,QAAQ,UAAU;QAChB,KAAK,UAAU,CAAC,IAAI;YAClB,OAAO;gBACL,KAAK;AACL,gBAAA,WAAW,EAAG,KAAc,CAAC,WAAW,EAAE;aAC3C,CAAC;QACJ,KAAK,UAAU,CAAC,MAAM;YACpB,OAAO;gBACL,WAAW,EAAE,KAAK,KAAK,gBAAgB,GAAG,EAAE,GAAG,KAAK;gBACpD,KAAK;aACN,CAAC;QACJ,KAAK,UAAU,CAAC,WAAW;YACzB,OAAO;gBACL,KAAK;AACL,gBAAA,WAAW,EAAE,KAAK;qBACf,GAAG,CAAC,CAAC,KAAU,KACd,KAAK,KAAK,gBAAgB,GAAG,EAAE,GAAG,MAAM,CAAC,KAAK,CAAC,CAChD;AACA,qBAAA,IAAI,EAAE;aACV,CAAC;AACJ,QAAA;YACE,OAAO;AACL,gBAAA,WAAW,EAAE,KAAK;gBAClB,KAAK;aACN,CAAC;KACL;AACH,CAAC,CAAC;AAEK,MAAM,iBAAiB,GAAG,CAAC,EAChC,KAAK,EACL,UAAU,EACV,QAAQ,EAKT,KAAyB;IACxB,OAAO,KAAK,KAAK,gBAAgB,IAAI,UAAU,KAAK,UAAU,CAAC,MAAM;AACnE,UAAE,OAAO;UACP,QAAQ,CAAC;AACf,EAAE;AAEW,MAAA,cAAc,GAAG,CAAC,EAC7B,KAAK,EACL,QAAQ,GAAG,QAAQ,EACnB,UAAU,GAAG,UAAU,CAAC,MAAM,EAK/B,KAAqB;AACpB,IAAA,IAAI,QAAQ,KAAK,SAAS,EAAE;AAC1B,QAAA,OAAO,EAAE,SAAS,EAAE,KAAK,EAAE,KAAK,EAAE,CAAC;KACpC;AACD,IAAA,IAAI,QAAQ,KAAK,QAAQ,EAAE;AACzB,QAAA,OAAO,EAAE,WAAW,EAAE,KAAK,EAAE,KAAK,EAAE,CAAC;KACtC;;AAGD,IAAA,OAAO,sBAAsB,CAAC,UAAU,EAAE,KAAK,CAAC,CAAC;AACnD,EAAE;AAEW,MAAA,WAAW,GAAG,CAAC,EAC1B,UAAU,GAAG,UAAU,CAAC,MAAM,EAC9B,QAAQ,GAAG,QAAQ,EAIpB,KAAqB;IACpB,QAAQ,UAAU;QAChB,KAAK,UAAU,CAAC,WAAW,CAAC;QAC5B,KAAK,UAAU,CAAC,MAAM;AACpB,YAAA,OAAO,QAAQ,CAAC;QAClB,KAAK,UAAU,CAAC,IAAI;AAClB,YAAA,OAAO,QAAQ,CAAC;AAClB,QAAA;AACE,YAAA,OAAO,UAAU,CAAC;KACrB;AACH;;;;"}
@@ -26,7 +26,7 @@ const DropdownMenuSeparator = React.forwardRef(({ className, asChild, ...props }
26
26
  if (shouldFilter) {
27
27
  return null;
28
28
  }
29
- return (jsxRuntime.jsxRuntimeExports.jsx(menuSeparator.MenuSeparator, { ref: ref, className: index.cx(dropdownMenu_module.default.separator, className), render: asChild ? jsxRuntime.jsxRuntimeExports.jsx(index$1.Root, {}) : undefined, ...props }));
29
+ return (jsxRuntime.jsxRuntimeExports.jsx(menuSeparator.MenuSeparator, { ref: ref, className: index.cx(dropdownMenu_module.default.separator, className), render: asChild ? jsxRuntime.jsxRuntimeExports.jsx(index$1.Root, {}) : jsxRuntime.jsxRuntimeExports.jsx("div", {}), ...props }));
30
30
  });
31
31
  const DropdownMenuEmptyState = React.forwardRef(({ className, children, ...props }, ref) => (jsxRuntime.jsxRuntimeExports.jsx("div", { ref: ref, className: index.cx(dropdownMenu_module.default.empty, className), ...props, children: children })));
32
32
 
@@ -1 +1 @@
1
- {"version":3,"file":"dropdown-menu-misc.cjs","sources":["../../../components/dropdown-menu/dropdown-menu-misc.tsx"],"sourcesContent":["import {\n MenuGroup,\n MenuGroupLabel,\n MenuGroupLabelProps,\n MenuGroupProps,\n MenuSeparator,\n MenuSeparatorProps\n} from '@ariakit/react';\nimport { cx } from 'class-variance-authority';\nimport { Slot } from 'radix-ui';\nimport {\n ElementRef,\n Fragment,\n HTMLAttributes,\n ReactNode,\n forwardRef\n} from 'react';\nimport { useDropdownContext } from './dropdown-menu-root';\nimport styles from './dropdown-menu.module.css';\nimport { WithAsChild } from './types';\n\nexport const DropdownMenuGroup = forwardRef<\n ElementRef<typeof MenuGroup>,\n WithAsChild<MenuGroupProps>\n>(({ className, asChild, ...props }, ref) => {\n const { shouldFilter } = useDropdownContext();\n\n return (\n <MenuGroup\n ref={ref}\n className={cx(styles.menugroup, className)}\n render={shouldFilter ? <Fragment /> : asChild ? <Slot.Root /> : undefined}\n {...props}\n />\n );\n});\n\nexport const DropdownMenuLabel = forwardRef<\n ElementRef<typeof MenuGroupLabel>,\n WithAsChild<MenuGroupLabelProps>\n>(({ className, asChild, ...props }, ref) => {\n const { shouldFilter } = useDropdownContext();\n\n if (shouldFilter) {\n return null;\n }\n\n return (\n <MenuGroupLabel\n ref={ref}\n className={cx(styles.label, className)}\n render={asChild ? <Slot.Root /> : undefined}\n {...props}\n />\n );\n});\n\nexport const DropdownMenuSeparator = forwardRef<\n ElementRef<typeof MenuSeparator>,\n WithAsChild<MenuSeparatorProps>\n>(({ className, asChild, ...props }, ref) => {\n const { shouldFilter } = useDropdownContext();\n\n if (shouldFilter) {\n return null;\n }\n\n return (\n <MenuSeparator\n ref={ref}\n className={cx(styles.separator, className)}\n render={asChild ? <Slot.Root /> : undefined}\n {...props}\n />\n );\n});\n\nexport const DropdownMenuEmptyState = forwardRef<\n HTMLDivElement,\n HTMLAttributes<HTMLDivElement> & {\n children: ReactNode;\n }\n>(({ className, children, ...props }, ref) => (\n <div ref={ref} className={cx(styles.empty, className)} {...props}>\n {children}\n </div>\n));\n"],"names":["forwardRef","useDropdownContext","_jsx","MenuGroup","cx","styles","Fragment","Slot.Root","MenuGroupLabel","MenuSeparator"],"mappings":";;;;;;;;;;;;AAqBa,MAAA,iBAAiB,GAAGA,gBAAU,CAGzC,CAAC,EAAE,SAAS,EAAE,OAAO,EAAE,GAAG,KAAK,EAAE,EAAE,GAAG,KAAI;AAC1C,IAAA,MAAM,EAAE,YAAY,EAAE,GAAGC,mCAAkB,EAAE,CAAC;IAE9C,QACEC,iCAACC,mBAAS,EAAA,EACR,GAAG,EAAE,GAAG,EACR,SAAS,EAAEC,QAAE,CAACC,2BAAM,CAAC,SAAS,EAAE,SAAS,CAAC,EAC1C,MAAM,EAAE,YAAY,GAAGH,gCAAC,CAAAI,cAAQ,KAAG,GAAG,OAAO,GAAGJ,gCAAC,CAAAK,YAAS,EAAA,EAAA,CAAG,GAAG,SAAS,EACrE,GAAA,KAAK,EACT,CAAA,EACF;AACJ,CAAC,EAAE;AAEU,MAAA,iBAAiB,GAAGP,gBAAU,CAGzC,CAAC,EAAE,SAAS,EAAE,OAAO,EAAE,GAAG,KAAK,EAAE,EAAE,GAAG,KAAI;AAC1C,IAAA,MAAM,EAAE,YAAY,EAAE,GAAGC,mCAAkB,EAAE,CAAC;IAE9C,IAAI,YAAY,EAAE;AAChB,QAAA,OAAO,IAAI,CAAC;KACb;AAED,IAAA,QACEC,gCAAC,CAAAM,6BAAc,EACb,EAAA,GAAG,EAAE,GAAG,EACR,SAAS,EAAEJ,QAAE,CAACC,2BAAM,CAAC,KAAK,EAAE,SAAS,CAAC,EACtC,MAAM,EAAE,OAAO,GAAGH,gCAAA,CAACK,YAAS,EAAG,EAAA,CAAA,GAAG,SAAS,KACvC,KAAK,EAAA,CACT,EACF;AACJ,CAAC,EAAE;AAEU,MAAA,qBAAqB,GAAGP,gBAAU,CAG7C,CAAC,EAAE,SAAS,EAAE,OAAO,EAAE,GAAG,KAAK,EAAE,EAAE,GAAG,KAAI;AAC1C,IAAA,MAAM,EAAE,YAAY,EAAE,GAAGC,mCAAkB,EAAE,CAAC;IAE9C,IAAI,YAAY,EAAE;AAChB,QAAA,OAAO,IAAI,CAAC;KACb;AAED,IAAA,QACEC,gCAAC,CAAAO,2BAAa,EACZ,EAAA,GAAG,EAAE,GAAG,EACR,SAAS,EAAEL,QAAE,CAACC,2BAAM,CAAC,SAAS,EAAE,SAAS,CAAC,EAC1C,MAAM,EAAE,OAAO,GAAGH,gCAAA,CAACK,YAAS,EAAG,EAAA,CAAA,GAAG,SAAS,KACvC,KAAK,EAAA,CACT,EACF;AACJ,CAAC,EAAE;AAEU,MAAA,sBAAsB,GAAGP,gBAAU,CAK9C,CAAC,EAAE,SAAS,EAAE,QAAQ,EAAE,GAAG,KAAK,EAAE,EAAE,GAAG,MACvCE,0CAAK,GAAG,EAAE,GAAG,EAAE,SAAS,EAAEE,QAAE,CAACC,2BAAM,CAAC,KAAK,EAAE,SAAS,CAAC,KAAM,KAAK,EAAA,QAAA,EAC7D,QAAQ,EACL,CAAA,CACP;;;;;;;"}
1
+ {"version":3,"file":"dropdown-menu-misc.cjs","sources":["../../../components/dropdown-menu/dropdown-menu-misc.tsx"],"sourcesContent":["import {\n MenuGroup,\n MenuGroupLabel,\n MenuGroupLabelProps,\n MenuGroupProps,\n MenuSeparator,\n MenuSeparatorProps\n} from '@ariakit/react';\nimport { cx } from 'class-variance-authority';\nimport { Slot } from 'radix-ui';\nimport {\n ElementRef,\n Fragment,\n HTMLAttributes,\n ReactNode,\n forwardRef\n} from 'react';\nimport { useDropdownContext } from './dropdown-menu-root';\nimport styles from './dropdown-menu.module.css';\nimport { WithAsChild } from './types';\n\nexport const DropdownMenuGroup = forwardRef<\n ElementRef<typeof MenuGroup>,\n WithAsChild<MenuGroupProps>\n>(({ className, asChild, ...props }, ref) => {\n const { shouldFilter } = useDropdownContext();\n\n return (\n <MenuGroup\n ref={ref}\n className={cx(styles.menugroup, className)}\n render={shouldFilter ? <Fragment /> : asChild ? <Slot.Root /> : undefined}\n {...props}\n />\n );\n});\n\nexport const DropdownMenuLabel = forwardRef<\n ElementRef<typeof MenuGroupLabel>,\n WithAsChild<MenuGroupLabelProps>\n>(({ className, asChild, ...props }, ref) => {\n const { shouldFilter } = useDropdownContext();\n\n if (shouldFilter) {\n return null;\n }\n\n return (\n <MenuGroupLabel\n ref={ref}\n className={cx(styles.label, className)}\n render={asChild ? <Slot.Root /> : undefined}\n {...props}\n />\n );\n});\n\nexport const DropdownMenuSeparator = forwardRef<\n ElementRef<typeof MenuSeparator>,\n WithAsChild<MenuSeparatorProps>\n>(({ className, asChild, ...props }, ref) => {\n const { shouldFilter } = useDropdownContext();\n\n if (shouldFilter) {\n return null;\n }\n\n return (\n <MenuSeparator\n ref={ref}\n className={cx(styles.separator, className)}\n render={asChild ? <Slot.Root /> : <div />}\n {...props}\n />\n );\n});\n\nexport const DropdownMenuEmptyState = forwardRef<\n HTMLDivElement,\n HTMLAttributes<HTMLDivElement> & {\n children: ReactNode;\n }\n>(({ className, children, ...props }, ref) => (\n <div ref={ref} className={cx(styles.empty, className)} {...props}>\n {children}\n </div>\n));\n"],"names":["forwardRef","useDropdownContext","_jsx","MenuGroup","cx","styles","Fragment","Slot.Root","MenuGroupLabel","MenuSeparator"],"mappings":";;;;;;;;;;;;AAqBa,MAAA,iBAAiB,GAAGA,gBAAU,CAGzC,CAAC,EAAE,SAAS,EAAE,OAAO,EAAE,GAAG,KAAK,EAAE,EAAE,GAAG,KAAI;AAC1C,IAAA,MAAM,EAAE,YAAY,EAAE,GAAGC,mCAAkB,EAAE,CAAC;IAE9C,QACEC,iCAACC,mBAAS,EAAA,EACR,GAAG,EAAE,GAAG,EACR,SAAS,EAAEC,QAAE,CAACC,2BAAM,CAAC,SAAS,EAAE,SAAS,CAAC,EAC1C,MAAM,EAAE,YAAY,GAAGH,gCAAC,CAAAI,cAAQ,KAAG,GAAG,OAAO,GAAGJ,gCAAC,CAAAK,YAAS,EAAA,EAAA,CAAG,GAAG,SAAS,EACrE,GAAA,KAAK,EACT,CAAA,EACF;AACJ,CAAC,EAAE;AAEU,MAAA,iBAAiB,GAAGP,gBAAU,CAGzC,CAAC,EAAE,SAAS,EAAE,OAAO,EAAE,GAAG,KAAK,EAAE,EAAE,GAAG,KAAI;AAC1C,IAAA,MAAM,EAAE,YAAY,EAAE,GAAGC,mCAAkB,EAAE,CAAC;IAE9C,IAAI,YAAY,EAAE;AAChB,QAAA,OAAO,IAAI,CAAC;KACb;AAED,IAAA,QACEC,gCAAC,CAAAM,6BAAc,EACb,EAAA,GAAG,EAAE,GAAG,EACR,SAAS,EAAEJ,QAAE,CAACC,2BAAM,CAAC,KAAK,EAAE,SAAS,CAAC,EACtC,MAAM,EAAE,OAAO,GAAGH,gCAAA,CAACK,YAAS,EAAG,EAAA,CAAA,GAAG,SAAS,KACvC,KAAK,EAAA,CACT,EACF;AACJ,CAAC,EAAE;AAEU,MAAA,qBAAqB,GAAGP,gBAAU,CAG7C,CAAC,EAAE,SAAS,EAAE,OAAO,EAAE,GAAG,KAAK,EAAE,EAAE,GAAG,KAAI;AAC1C,IAAA,MAAM,EAAE,YAAY,EAAE,GAAGC,mCAAkB,EAAE,CAAC;IAE9C,IAAI,YAAY,EAAE;AAChB,QAAA,OAAO,IAAI,CAAC;KACb;AAED,IAAA,QACEC,gCAAC,CAAAO,2BAAa,EACZ,EAAA,GAAG,EAAE,GAAG,EACR,SAAS,EAAEL,QAAE,CAACC,2BAAM,CAAC,SAAS,EAAE,SAAS,CAAC,EAC1C,MAAM,EAAE,OAAO,GAAGH,gCAAA,CAACK,YAAS,EAAG,EAAA,CAAA,GAAGL,gCAAA,CAAA,KAAA,EAAA,EAAA,CAAO,KACrC,KAAK,EAAA,CACT,EACF;AACJ,CAAC,EAAE;AAEU,MAAA,sBAAsB,GAAGF,gBAAU,CAK9C,CAAC,EAAE,SAAS,EAAE,QAAQ,EAAE,GAAG,KAAK,EAAE,EAAE,GAAG,MACvCE,0CAAK,GAAG,EAAE,GAAG,EAAE,SAAS,EAAEE,QAAE,CAACC,2BAAM,CAAC,KAAK,EAAE,SAAS,CAAC,KAAM,KAAK,EAAA,QAAA,EAC7D,QAAQ,EACL,CAAA,CACP;;;;;;;"}