@dbcdk/react-components 0.0.5 → 0.0.6

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 (272) hide show
  1. package/dist/assets/logo.js +2 -85
  2. package/dist/components/__stories__/_data/table.d.ts +15 -0
  3. package/dist/components/__stories__/_data/table.js +49 -0
  4. package/dist/components/__stories__/story-components/Colors.d.ts +2 -1
  5. package/dist/components/__stories__/story-components/Colors.js +87 -142
  6. package/dist/components/__stories__/story-components/Spacing.d.ts +1 -0
  7. package/dist/components/__stories__/story-components/Spacing.js +58 -166
  8. package/dist/components/app-header/AppHeader.d.ts +4 -3
  9. package/dist/components/app-header/AppHeader.js +3 -6
  10. package/dist/components/attribute-chip/AttributeChip.d.ts +1 -0
  11. package/dist/components/attribute-chip/AttributeChip.js +3 -14
  12. package/dist/components/avatar/Avatar.d.ts +2 -2
  13. package/dist/components/avatar/Avatar.js +37 -71
  14. package/dist/components/breadcrumbs/Breadcrumbs.d.ts +4 -4
  15. package/dist/components/breadcrumbs/Breadcrumbs.js +4 -13
  16. package/dist/components/button/Button.d.ts +3 -2
  17. package/dist/components/button/Button.js +54 -56
  18. package/dist/components/button/Button.module.css +1 -1
  19. package/dist/components/card/Card.d.ts +8 -7
  20. package/dist/components/card/Card.js +19 -60
  21. package/dist/components/card-container/CardContainer.d.ts +3 -3
  22. package/dist/components/card-container/CardContainer.js +4 -16
  23. package/dist/components/chip/Chip.d.ts +6 -5
  24. package/dist/components/chip/Chip.js +14 -38
  25. package/dist/components/chip/Chip.module.css +9 -1
  26. package/dist/components/circle/Circle.d.ts +3 -2
  27. package/dist/components/circle/Circle.js +3 -10
  28. package/dist/components/clear-button/ClearButton.d.ts +2 -1
  29. package/dist/components/clear-button/ClearButton.js +6 -17
  30. package/dist/components/code-block/CodeBlock.d.ts +1 -0
  31. package/dist/components/code-block/CodeBlock.js +4 -10
  32. package/dist/components/copy-button/CopyButton.d.ts +4 -3
  33. package/dist/components/copy-button/CopyButton.js +19 -26
  34. package/dist/components/datetime-picker/DateTimePicker.d.ts +8 -5
  35. package/dist/components/datetime-picker/DateTimePicker.js +364 -459
  36. package/dist/components/filter-field/FilterField.d.ts +5 -2
  37. package/dist/components/filter-field/FilterField.js +130 -173
  38. package/dist/components/filter-field/FilterField.module.css +21 -5
  39. package/dist/components/filtering/chip-multi-toggle/ChipMultiToggle.d.ts +36 -0
  40. package/dist/components/filtering/chip-multi-toggle/ChipMultiToggle.js +53 -0
  41. package/dist/components/filtering/chip-multi-toggle/ChipMultiToggle.module.css +60 -0
  42. package/dist/components/forms/checkbox/Checkbox.d.ts +31 -0
  43. package/dist/components/forms/checkbox/Checkbox.js +27 -0
  44. package/dist/components/{checkbox → forms/checkbox}/Checkbox.module.css +0 -1
  45. package/dist/components/forms/checkbox-group/CheckboxGroup.d.ts +47 -0
  46. package/dist/components/forms/checkbox-group/CheckboxGroup.js +75 -0
  47. package/dist/components/forms/checkbox-group/CheckboxGroup.module.css +115 -0
  48. package/dist/components/{input → forms/input}/Input.d.ts +9 -5
  49. package/dist/components/forms/input/Input.js +70 -0
  50. package/dist/components/{input → forms/input}/Input.module.css +1 -0
  51. package/dist/components/forms/input-container/InputContainer.d.ts +15 -0
  52. package/dist/components/forms/input-container/InputContainer.js +15 -0
  53. package/dist/components/forms/input-container/InputContainer.module.css +34 -0
  54. package/dist/components/forms/multi-select/MultiSelect.d.ts +20 -0
  55. package/dist/components/forms/multi-select/MultiSelect.js +19 -0
  56. package/dist/components/forms/select/Select.d.ts +21 -0
  57. package/dist/components/forms/select/Select.js +94 -0
  58. package/dist/components/forms/text-area/Textarea.d.ts +17 -0
  59. package/dist/components/forms/text-area/Textarea.js +33 -0
  60. package/dist/components/forms/text-area/Textarea.module.css +26 -0
  61. package/dist/components/headline/Headline.js +18 -43
  62. package/dist/components/{link/Link.d.ts → hyperlink/Hyperlink.d.ts} +2 -2
  63. package/dist/components/hyperlink/Hyperlink.js +11 -0
  64. package/dist/components/{link/Link.module.css → hyperlink/Hyperlink.module.css} +5 -14
  65. package/dist/components/icon/Icon.d.ts +4 -3
  66. package/dist/components/icon/Icon.js +11 -17
  67. package/dist/components/menu/Menu.js +25 -67
  68. package/dist/components/meta-bar/MetaBar.d.ts +4 -4
  69. package/dist/components/meta-bar/MetaBar.js +7 -20
  70. package/dist/components/nav-bar/NavBar.d.ts +5 -5
  71. package/dist/components/nav-bar/NavBar.js +15 -45
  72. package/dist/components/{modal → overlay/modal}/Modal.d.ts +4 -2
  73. package/dist/components/overlay/modal/Modal.js +92 -0
  74. package/dist/components/{modal → overlay/modal}/provider/ModalProvider.d.ts +0 -1
  75. package/dist/components/overlay/modal/provider/ModalProvider.js +70 -0
  76. package/dist/components/overlay/side-panel/SidePanel.d.ts +16 -0
  77. package/dist/components/overlay/side-panel/SidePanel.js +10 -0
  78. package/dist/components/overlay/side-panel/SidePanel.module.css +56 -0
  79. package/dist/components/overlay/side-panel/useSidePanel.d.ts +5 -0
  80. package/dist/components/overlay/side-panel/useSidePanel.js +11 -0
  81. package/dist/components/overlay/tooltip/Tooltip.d.ts +13 -0
  82. package/dist/components/overlay/tooltip/Tooltip.js +17 -0
  83. package/dist/components/overlay/tooltip/Tooltip.module.css +106 -0
  84. package/dist/components/overlay/tooltip/TooltipProvider.d.ts +20 -0
  85. package/dist/components/overlay/tooltip/TooltipProvider.js +244 -0
  86. package/dist/components/overlay/tooltip/useTooltipTrigger.d.ts +24 -0
  87. package/dist/components/overlay/tooltip/useTooltipTrigger.js +108 -0
  88. package/dist/components/page/Page.d.ts +7 -6
  89. package/dist/components/page/Page.js +4 -21
  90. package/dist/components/page-layout/PageLayout.d.ts +11 -12
  91. package/dist/components/page-layout/PageLayout.js +35 -71
  92. package/dist/components/page-layout/components/page-layout-hero/PageLayoutHero.js +4 -22
  93. package/dist/components/pagination/Pagination.d.ts +2 -1
  94. package/dist/components/pagination/Pagination.js +38 -121
  95. package/dist/components/panel/Panel.d.ts +4 -3
  96. package/dist/components/panel/Panel.js +5 -10
  97. package/dist/components/popover/Popover.d.ts +1 -0
  98. package/dist/components/popover/Popover.js +116 -141
  99. package/dist/components/search-box/SearchBox.d.ts +2 -2
  100. package/dist/components/search-box/SearchBox.js +112 -162
  101. package/dist/components/segmented-progress-bar/SegmentedProgressBar.d.ts +1 -1
  102. package/dist/components/segmented-progress-bar/SegmentedProgressBar.js +47 -94
  103. package/dist/components/sidebar/Sidebar.d.ts +1 -0
  104. package/dist/components/sidebar/Sidebar.js +5 -7
  105. package/dist/components/sidebar/components/SidebarItem.js +6 -14
  106. package/dist/components/sidebar/components/expandable-sidebar-item/ExpandableSidebarItem.d.ts +1 -1
  107. package/dist/components/sidebar/components/expandable-sidebar-item/ExpandableSidebarItem.js +48 -88
  108. package/dist/components/sidebar/components/sidebar-container/SidebarContainer.d.ts +3 -2
  109. package/dist/components/sidebar/components/sidebar-container/SidebarContainer.js +11 -41
  110. package/dist/components/sidebar/components/sidebar-item-content/SidebarItemContent.d.ts +1 -0
  111. package/dist/components/sidebar/components/sidebar-item-content/SidebarItemContent.js +4 -25
  112. package/dist/components/sidebar/components/sidebar-items/SidebarItems.js +9 -23
  113. package/dist/components/sidebar/components/sidenav-filteirng/SidenavFiltering.js +19 -40
  114. package/dist/components/sidebar/providers/SidebarProvider.d.ts +2 -1
  115. package/dist/components/sidebar/providers/SidebarProvider.js +182 -165
  116. package/dist/components/skeleton-loader/SkeletonLoader.js +68 -266
  117. package/dist/components/skeleton-loader/skeleton-loader-item/SkeletonLoaderItem.js +11 -34
  118. package/dist/components/split-button/SplitButton.d.ts +7 -5
  119. package/dist/components/split-button/SplitButton.js +4 -27
  120. package/dist/components/split-pane/SplitPane.js +69 -105
  121. package/dist/components/split-pane/provider/SplitPaneContext.js +77 -71
  122. package/dist/components/table/Table.d.ts +9 -7
  123. package/dist/components/table/Table.js +115 -238
  124. package/dist/components/table/Table.module.css +5 -1
  125. package/dist/components/table/components/column-resizer/ColumnResizer.js +4 -15
  126. package/dist/components/table/components/empty-state/EmptyState.d.ts +6 -5
  127. package/dist/components/table/components/empty-state/EmptyState.js +22 -41
  128. package/dist/components/table/components/table-settings/TableSettings.d.ts +2 -1
  129. package/dist/components/table/components/table-settings/TableSettings.js +9 -27
  130. package/dist/components/table/tanstack.d.ts +1 -1
  131. package/dist/components/table/tanstack.js +154 -160
  132. package/dist/components/tabs/Tabs.d.ts +1 -0
  133. package/dist/components/tabs/Tabs.js +32 -81
  134. package/dist/components/toast/Toast.d.ts +1 -1
  135. package/dist/components/toast/Toast.js +4 -37
  136. package/dist/components/toast/Toast.module.css +1 -0
  137. package/dist/components/toast/provider/ToastProvider.d.ts +1 -1
  138. package/dist/components/toast/provider/ToastProvider.js +60 -87
  139. package/dist/components/user-display/UserDisplay.d.ts +2 -1
  140. package/dist/components/user-display/UserDisplay.js +4 -20
  141. package/dist/constants/severity.d.ts +1 -1
  142. package/dist/constants/severity.js +14 -16
  143. package/dist/constants/severity.types.d.ts +1 -1
  144. package/dist/constants/severity.types.js +1 -1
  145. package/dist/constants/sizes.js +6 -8
  146. package/dist/hooks/usePagination.d.ts +1 -1
  147. package/dist/hooks/usePagination.js +75 -82
  148. package/dist/hooks/useSorting.js +112 -110
  149. package/dist/hooks/useTableData.d.ts +1 -1
  150. package/dist/hooks/useTableData.js +42 -47
  151. package/dist/hooks/useTableSelection.js +121 -121
  152. package/dist/hooks/useTableSettings.js +23 -25
  153. package/dist/hooks/useTheme.d.ts +3 -7
  154. package/dist/hooks/useTheme.js +52 -47
  155. package/dist/hooks/useTimeDuration.d.ts +2 -2
  156. package/dist/hooks/useTimeDuration.js +33 -34
  157. package/dist/hooks/useViewportFill.d.ts +3 -2
  158. package/dist/hooks/useViewportFill.js +55 -48
  159. package/dist/index.d.ts +17 -8
  160. package/dist/index.js +18 -8
  161. package/dist/src/styles/styles.css +3 -3
  162. package/dist/styles/css-helper-classes/flex.css +4 -0
  163. package/dist/styles/styles.css +3 -3
  164. package/dist/styles/themes/dbc/dark.css +1 -1
  165. package/dist/styles/themes/dbc/light.css +2 -1
  166. package/dist/styles/themes/forfatterweb/light.css +1 -1
  167. package/dist/styles/themes/types.js +1 -1
  168. package/dist/types/a11y-props.types.d.ts +5 -5
  169. package/dist/types/a11y-props.types.js +1 -1
  170. package/dist/types/sizes.types.js +1 -1
  171. package/dist/utils/arrays/nested-filtering.js +43 -33
  172. package/dist/utils/date/formatDate.js +25 -16
  173. package/package.json +18 -9
  174. package/dist/assets/logo.cjs +0 -87
  175. package/dist/components/__stories__/story-components/Colors.cjs +0 -159
  176. package/dist/components/__stories__/story-components/Spacing.cjs +0 -190
  177. package/dist/components/app-header/AppHeader.cjs +0 -14
  178. package/dist/components/attribute-chip/AttributeChip.cjs +0 -22
  179. package/dist/components/avatar/Avatar.cjs +0 -101
  180. package/dist/components/breadcrumbs/Breadcrumbs.cjs +0 -22
  181. package/dist/components/button/Button.cjs +0 -87
  182. package/dist/components/card/Card.cjs +0 -69
  183. package/dist/components/card-container/CardContainer.cjs +0 -24
  184. package/dist/components/checkbox/Checkbox.cjs +0 -42
  185. package/dist/components/checkbox/Checkbox.d.ts +0 -12
  186. package/dist/components/checkbox/Checkbox.js +0 -36
  187. package/dist/components/chip/Chip.cjs +0 -50
  188. package/dist/components/circle/Circle.cjs +0 -18
  189. package/dist/components/clear-button/ClearButton.cjs +0 -26
  190. package/dist/components/code-block/CodeBlock.cjs +0 -18
  191. package/dist/components/copy-button/CopyButton.cjs +0 -35
  192. package/dist/components/datetime-picker/DateTimePicker.cjs +0 -504
  193. package/dist/components/filter-field/FilterField.cjs +0 -189
  194. package/dist/components/headline/Headline.cjs +0 -53
  195. package/dist/components/icon/Icon.cjs +0 -27
  196. package/dist/components/input/Input.cjs +0 -89
  197. package/dist/components/input/Input.js +0 -83
  198. package/dist/components/link/Link.cjs +0 -46
  199. package/dist/components/link/Link.js +0 -21
  200. package/dist/components/menu/Menu.cjs +0 -96
  201. package/dist/components/meta-bar/MetaBar.cjs +0 -29
  202. package/dist/components/modal/Modal.cjs +0 -134
  203. package/dist/components/modal/Modal.js +0 -128
  204. package/dist/components/modal/provider/ModalProvider.cjs +0 -80
  205. package/dist/components/modal/provider/ModalProvider.js +0 -77
  206. package/dist/components/multi-select/MultiSelect.cjs +0 -59
  207. package/dist/components/multi-select/MultiSelect.d.ts +0 -18
  208. package/dist/components/multi-select/MultiSelect.js +0 -57
  209. package/dist/components/nav-bar/NavBar.cjs +0 -55
  210. package/dist/components/page/Page.cjs +0 -30
  211. package/dist/components/page-layout/PageLayout.cjs +0 -84
  212. package/dist/components/page-layout/components/page-layout-hero/PageLayoutHero.cjs +0 -32
  213. package/dist/components/pagination/Pagination.cjs +0 -133
  214. package/dist/components/panel/Panel.cjs +0 -18
  215. package/dist/components/popover/Popover.cjs +0 -149
  216. package/dist/components/search-box/SearchBox.cjs +0 -175
  217. package/dist/components/segmented-progress-bar/SegmentedProgressBar.cjs +0 -103
  218. package/dist/components/select/Select.cjs +0 -121
  219. package/dist/components/select/Select.d.ts +0 -12
  220. package/dist/components/select/Select.js +0 -119
  221. package/dist/components/sidebar/Sidebar.cjs +0 -11
  222. package/dist/components/sidebar/components/SidebarItem.cjs +0 -18
  223. package/dist/components/sidebar/components/expandable-sidebar-item/ExpandableSidebarItem.cjs +0 -100
  224. package/dist/components/sidebar/components/sidebar-container/SidebarContainer.cjs +0 -50
  225. package/dist/components/sidebar/components/sidebar-item-content/SidebarItemContent.cjs +0 -34
  226. package/dist/components/sidebar/components/sidebar-items/SidebarItems.cjs +0 -29
  227. package/dist/components/sidebar/components/sidenav-filteirng/SidenavFiltering.cjs +0 -52
  228. package/dist/components/sidebar/providers/SidebarProvider.cjs +0 -179
  229. package/dist/components/skeleton-loader/SkeletonLoader.cjs +0 -270
  230. package/dist/components/skeleton-loader/skeleton-loader-item/SkeletonLoaderItem.cjs +0 -42
  231. package/dist/components/split-button/SplitButton.cjs +0 -37
  232. package/dist/components/split-pane/SplitPane.cjs +0 -123
  233. package/dist/components/split-pane/provider/SplitPaneContext.cjs +0 -87
  234. package/dist/components/table/Table.cjs +0 -249
  235. package/dist/components/table/components/column-resizer/ColumnResizer.cjs +0 -22
  236. package/dist/components/table/components/empty-state/EmptyState.cjs +0 -52
  237. package/dist/components/table/components/table-settings/TableSettings.cjs +0 -32
  238. package/dist/components/table/tanstack.cjs +0 -193
  239. package/dist/components/tabs/Tabs.cjs +0 -90
  240. package/dist/components/text-area/Textarea.cjs +0 -62
  241. package/dist/components/text-area/Textarea.d.ts +0 -14
  242. package/dist/components/text-area/Textarea.js +0 -56
  243. package/dist/components/text-area/Textarea.module.css +0 -3
  244. package/dist/components/toast/Toast.cjs +0 -47
  245. package/dist/components/toast/provider/ToastProvider.cjs +0 -98
  246. package/dist/components/tooltip/Tooltip.cjs +0 -183
  247. package/dist/components/tooltip/Tooltip.d.ts +0 -11
  248. package/dist/components/tooltip/Tooltip.js +0 -177
  249. package/dist/components/tooltip/Tooltip.module.css +0 -66
  250. package/dist/components/user-display/UserDisplay.cjs +0 -28
  251. package/dist/constants/severity.cjs +0 -21
  252. package/dist/constants/severity.types.cjs +0 -2
  253. package/dist/constants/sizes.cjs +0 -11
  254. package/dist/hooks/usePagination.cjs +0 -88
  255. package/dist/hooks/useSorting.cjs +0 -118
  256. package/dist/hooks/useTableData.cjs +0 -52
  257. package/dist/hooks/useTableSelection.cjs +0 -130
  258. package/dist/hooks/useTableSettings.cjs +0 -28
  259. package/dist/hooks/useTheme.cjs +0 -58
  260. package/dist/hooks/useTimeDuration.cjs +0 -39
  261. package/dist/hooks/useViewportFill.cjs +0 -52
  262. package/dist/index.cjs +0 -383
  263. package/dist/styles/themes/types.cjs +0 -2
  264. package/dist/types/a11y-props.types.cjs +0 -2
  265. package/dist/types/assets.d.cjs +0 -2
  266. package/dist/types/assets.d.js +0 -1
  267. package/dist/types/css.d.cjs +0 -2
  268. package/dist/types/css.d.js +0 -1
  269. package/dist/types/sizes.types.cjs +0 -2
  270. package/dist/utils/arrays/nested-filtering.cjs +0 -40
  271. package/dist/utils/date/formatDate.cjs +0 -19
  272. /package/dist/components/{modal → overlay/modal}/Modal.module.css +0 -0
@@ -1,504 +0,0 @@
1
- 'use strict';
2
-
3
- var jsxRuntime = require('react/jsx-runtime');
4
- var react = require('react');
5
- var lucideReact = require('lucide-react');
6
- var Popover = require('../popover/Popover');
7
- var Input = require('../input/Input');
8
- var Button = require('../button/Button');
9
- var styles = require('./DateTimePicker.module.css');
10
-
11
- function _interopDefault (e) { return e && e.__esModule ? e : { default: e }; }
12
-
13
- var styles__default = /*#__PURE__*/_interopDefault(styles);
14
-
15
- const digits = (s) => (s.match(/\d/g) || []).join("");
16
- function maskDateEU(text) {
17
- const d = digits(text).slice(0, 8);
18
- const dd = d.slice(0, 2);
19
- const mm = d.slice(2, 4);
20
- const yyyy = d.slice(4, 8);
21
- let out = dd;
22
- if (mm.length) out += (out ? "-" : "") + mm;
23
- if (yyyy.length) out += (out ? "-" : "") + yyyy;
24
- return out;
25
- }
26
- function maskTimeHM(text) {
27
- const d = digits(text).slice(0, 4);
28
- const hh = d.slice(0, 2);
29
- const mm = d.slice(2, 4);
30
- return mm.length ? `${hh}:${mm}` : hh;
31
- }
32
- function maskSingle(text, enableTime) {
33
- let t = text.trim().replace(/\s+/g, " ");
34
- if (!enableTime) return maskDateEU(t);
35
- const m = /^(.*?)[ T](.*)$/.exec(t);
36
- if (!m) return maskDateEU(t);
37
- const datePart = maskDateEU(m[1]);
38
- const timePart = maskTimeHM(m[2]);
39
- return timePart ? `${datePart} ${timePart}` : datePart;
40
- }
41
- function maskRange(text, enableTime) {
42
- const sepRe = /\s*(?:–|-|to|til)\s*/i;
43
- const parts = text.split(sepRe);
44
- if (parts.length === 1) {
45
- return maskSingle(parts[0], enableTime);
46
- }
47
- const a = maskSingle(parts[0], enableTime);
48
- const b = maskSingle(parts.slice(1).join(" "), enableTime);
49
- return `${a} \u2013 ${b}`.trim();
50
- }
51
- const pad2 = (n) => String(n).padStart(2, "0");
52
- function toMaskedFromDate(d, enableTime) {
53
- const dd = pad2(d.getDate());
54
- const mm = pad2(d.getMonth() + 1);
55
- const yyyy = String(d.getFullYear());
56
- let out = `${dd}-${mm}-${yyyy}`;
57
- if (enableTime) out += ` ${pad2(d.getHours())}:${pad2(d.getMinutes())}`;
58
- return out;
59
- }
60
- function toMaskedRange(start, end, enableTime) {
61
- if (start && end)
62
- return `${toMaskedFromDate(start, enableTime)} \u2013 ${toMaskedFromDate(end, enableTime)}`;
63
- if (start) return `${toMaskedFromDate(start, enableTime)} \u2013`;
64
- if (end) return `\u2013 ${toMaskedFromDate(end, enableTime)}`;
65
- return "";
66
- }
67
- function parseLooseDateOrDateTime(input) {
68
- const txt = input.trim().replace(/\s+/g, " ");
69
- const dateTimeMatch = /^(?<date>[\d./-]{8,10})(?:[ T](?<hh>\d{1,2}):(?<mm>\d{2}))?$/i.exec(txt);
70
- if (!(dateTimeMatch == null ? void 0 : dateTimeMatch.groups)) return null;
71
- const raw = dateTimeMatch.groups.date;
72
- const hh = dateTimeMatch.groups.hh ? parseInt(dateTimeMatch.groups.hh, 10) : 0;
73
- const mm = dateTimeMatch.groups.mm ? parseInt(dateTimeMatch.groups.mm, 10) : 0;
74
- if (hh < 0 || hh > 23 || mm < 0 || mm > 59) return null;
75
- let y, m, d;
76
- let mIso = /^(\d{4})-(\d{1,2})-(\d{1,2})$/.exec(raw);
77
- if (mIso) {
78
- y = +mIso[1];
79
- m = +mIso[2] - 1;
80
- d = +mIso[3];
81
- } else {
82
- let mEu = /^(\d{1,2})[./-](\d{1,2})[./-](\d{4})$/.exec(raw);
83
- if (!mEu) return null;
84
- d = +mEu[1];
85
- m = +mEu[2] - 1;
86
- y = +mEu[3];
87
- }
88
- const local = new Date(y, m, d, hh, mm, 0, 0);
89
- if (Number.isNaN(local.getTime())) return null;
90
- if (local.getFullYear() !== y || local.getMonth() !== m || local.getDate() !== d) return null;
91
- return local;
92
- }
93
- function parseLooseRange(input) {
94
- const sep = /\s*(?:–|-|to|til)\s*/i;
95
- const [a, b] = input.split(sep);
96
- if (!a || !b) return null;
97
- const s = parseLooseDateOrDateTime(a);
98
- const e = parseLooseDateOrDateTime(b);
99
- if (!s || !e) return null;
100
- return s <= e ? { start: s, end: e } : { start: e, end: s };
101
- }
102
- const dUTC = (y, m, day) => new Date(Date.UTC(y, m, day));
103
- const addDaysUTC = (utcDate, n) => dUTC(utcDate.getUTCFullYear(), utcDate.getUTCMonth(), utcDate.getUTCDate() + n);
104
- const startOfMonthUTC = (utcDate) => dUTC(utcDate.getUTCFullYear(), utcDate.getUTCMonth(), 1);
105
- const endOfMonthUTC = (utcDate) => dUTC(utcDate.getUTCFullYear(), utcDate.getUTCMonth() + 1, 0);
106
- const sameDayUTC = (a, b) => a.getUTCFullYear() === b.getUTCFullYear() && a.getUTCMonth() === b.getUTCMonth() && a.getUTCDate() === b.getUTCDate();
107
- const toUTCDateOnly = (local) => dUTC(local.getFullYear(), local.getMonth(), local.getDate());
108
- const startOfWeekUTC = (utcDate, weekStartsOn) => {
109
- const dow = utcDate.getUTCDay();
110
- const diff = (dow - weekStartsOn + 7) % 7;
111
- return addDaysUTC(utcDate, -diff);
112
- };
113
- function buildMonthGrid(anchorLocalDate, weekStartsOn) {
114
- const anchorUTC = toUTCDateOnly(anchorLocalDate);
115
- const firstUTC = startOfWeekUTC(startOfMonthUTC(anchorUTC), weekStartsOn);
116
- const cells = [];
117
- for (let i = 0; i < 42; i++) cells.push(addDaysUTC(firstUTC, i));
118
- return cells;
119
- }
120
- const isBetweenUTC = (d, a, b) => {
121
- const t = +d, s = +a, e = +b;
122
- return t >= Math.min(s, e) && t <= Math.max(s, e);
123
- };
124
- function composeLocalDateTimeISO(utcDateOnly, hh, mm) {
125
- const y = utcDateOnly.getUTCFullYear();
126
- const m = utcDateOnly.getUTCMonth();
127
- const d = utcDateOnly.getUTCDate();
128
- const local = new Date(y, m, d, hh, mm, 0, 0);
129
- return local.toISOString();
130
- }
131
- function defaultFormatDate(d, { locale, enableTime }) {
132
- const opts = enableTime ? { year: "numeric", month: "short", day: "2-digit", hour: "2-digit", minute: "2-digit" } : { year: "numeric", month: "short", day: "2-digit" };
133
- return new Intl.DateTimeFormat(locale || void 0, opts).format(d);
134
- }
135
- function defaultFormatRange(s, e, opts) {
136
- if (s && e) return `${defaultFormatDate(s, opts)} \u2013 ${defaultFormatDate(e, opts)}`;
137
- if (s) return `${defaultFormatDate(s, opts)} \u2013`;
138
- if (e) return `\u2013 ${defaultFormatDate(e, opts)}`;
139
- return "";
140
- }
141
- const cx = (...classes) => classes.filter(Boolean).join(" ");
142
- const DateTimePicker = react.forwardRef(function DateTimePicker2({
143
- mode = "single",
144
- value,
145
- onChange,
146
- enableTime = false,
147
- timeStep = 15,
148
- min,
149
- max,
150
- locale = typeof navigator !== "undefined" ? navigator.language : "da-DK",
151
- weekStartsOn = 1,
152
- presets,
153
- placeholder,
154
- inputSize = "md",
155
- disabled,
156
- id,
157
- formatDate = defaultFormatDate,
158
- // still exposed, not used for input text
159
- formatRange = defaultFormatRange
160
- // still exposed, not used for input text
161
- }, _ref) {
162
- const popRef = react.useRef(null);
163
- const todayLocal = react.useMemo(() => /* @__PURE__ */ new Date(), []);
164
- const initialAnchor = react.useMemo(() => {
165
- if (mode === "single" && value instanceof Date && value) return value;
166
- if (mode === "range" && value && typeof value === "object" && "start" in value && value.start)
167
- return value.start;
168
- return todayLocal;
169
- }, [mode, value, todayLocal]);
170
- const [monthAnchor, setMonthAnchor] = react.useState(initialAnchor);
171
- const [timeHH, setTimeHH] = react.useState(todayLocal.getHours());
172
- const [timeMM, setTimeMM] = react.useState(
173
- Math.floor(todayLocal.getMinutes() / timeStep) * timeStep
174
- );
175
- const [hoverUTC, setHoverUTC] = react.useState(null);
176
- const cellsUTC = react.useMemo(
177
- () => buildMonthGrid(monthAnchor, weekStartsOn),
178
- [monthAnchor, weekStartsOn]
179
- );
180
- const monthStartUTC = react.useMemo(() => startOfMonthUTC(toUTCDateOnly(monthAnchor)), [monthAnchor]);
181
- const monthEndUTC = react.useMemo(() => endOfMonthUTC(toUTCDateOnly(monthAnchor)), [monthAnchor]);
182
- const weekdayFmt = react.useMemo(() => new Intl.DateTimeFormat(locale, { weekday: "short" }), [locale]);
183
- const monthFmt = react.useMemo(
184
- () => new Intl.DateTimeFormat(locale, { month: "long", year: "numeric" }),
185
- [locale]
186
- );
187
- const selectedUTC_single = mode === "single" && value instanceof Date && value ? toUTCDateOnly(value) : null;
188
- const selectedUTC_start = mode === "range" && value && typeof value === "object" && "start" in value && value.start ? toUTCDateOnly(value.start) : null;
189
- const selectedUTC_end = mode === "range" && value && typeof value === "object" && "end" in value && value.end ? toUTCDateOnly(value.end) : null;
190
- const isDisabledUTC = react.useCallback(
191
- (utcDay) => {
192
- if (min && utcDay < toUTCDateOnly(min)) return true;
193
- if (max && utcDay > toUTCDateOnly(max)) return true;
194
- return false;
195
- },
196
- [min, max]
197
- );
198
- const selectDay = (utcDay) => {
199
- var _a, _b;
200
- if (isDisabledUTC(utcDay)) return;
201
- if (mode === "single") {
202
- if (enableTime) {
203
- const iso = composeLocalDateTimeISO(utcDay, timeHH, timeMM);
204
- onChange(new Date(iso));
205
- } else {
206
- onChange(new Date(utcDay.getTime()));
207
- }
208
- (_a = popRef.current) == null ? void 0 : _a.close();
209
- return;
210
- }
211
- const curr = value && typeof value === "object" && "start" in value ? value : { start: null, end: null };
212
- if (!curr.start || curr.start && curr.end) {
213
- onChange({ start: new Date(utcDay.getTime()), end: null });
214
- } else {
215
- const startUTC = toUTCDateOnly(curr.start);
216
- const endUTC = utcDay;
217
- const s = new Date(Math.min(+startUTC, +endUTC));
218
- const e = new Date(Math.max(+startUTC, +endUTC));
219
- onChange({ start: s, end: e });
220
- (_b = popRef.current) == null ? void 0 : _b.close();
221
- }
222
- };
223
- const gridRef = react.useRef(null);
224
- react.useEffect(() => {
225
- const el = gridRef.current;
226
- if (!el) return;
227
- const onKey = (e) => {
228
- var _a;
229
- if (!((_a = popRef.current) == null ? void 0 : _a.isOpen())) return;
230
- if ([
231
- "ArrowLeft",
232
- "ArrowRight",
233
- "ArrowUp",
234
- "ArrowDown",
235
- "PageUp",
236
- "PageDown",
237
- "Home",
238
- "End"
239
- ].includes(e.key)) {
240
- e.preventDefault();
241
- }
242
- const anchor = toUTCDateOnly(monthAnchor);
243
- const move = (days) => setMonthAnchor((prev) => addDaysLocal(prev, days));
244
- switch (e.key) {
245
- case "ArrowLeft":
246
- move(-1);
247
- break;
248
- case "ArrowRight":
249
- move(1);
250
- break;
251
- case "ArrowUp":
252
- move(-7);
253
- break;
254
- case "ArrowDown":
255
- move(7);
256
- break;
257
- case "PageUp":
258
- setMonthAnchor(addMonthsLocal(monthAnchor, -1));
259
- break;
260
- case "PageDown":
261
- setMonthAnchor(addMonthsLocal(monthAnchor, 1));
262
- break;
263
- case "Home":
264
- setMonthAnchor(new Date(anchor.getUTCFullYear(), anchor.getUTCMonth(), 1));
265
- break;
266
- case "End":
267
- setMonthAnchor(new Date(anchor.getUTCFullYear(), anchor.getUTCMonth() + 1, 0));
268
- break;
269
- }
270
- };
271
- el.addEventListener("keydown", onKey);
272
- return () => el.removeEventListener("keydown", onKey);
273
- }, [monthAnchor]);
274
- const hours = react.useMemo(() => Array.from({ length: 24 }, (_, i) => i), []);
275
- const minutes = react.useMemo(
276
- () => Array.from({ length: Math.floor(60 / (timeStep || 1)) }, (_, i) => i * (timeStep || 1)),
277
- [timeStep]
278
- );
279
- const formatted = react.useMemo(() => {
280
- var _a, _b;
281
- if (mode === "single") {
282
- return value instanceof Date && value ? toMaskedFromDate(value, enableTime) : "";
283
- }
284
- const v = value;
285
- return toMaskedRange((_a = v == null ? void 0 : v.start) != null ? _a : null, (_b = v == null ? void 0 : v.end) != null ? _b : null, enableTime);
286
- }, [mode, value, enableTime]);
287
- const [text, setText] = react.useState(formatted);
288
- const [dirty, setDirty] = react.useState(false);
289
- react.useEffect(() => {
290
- if (!dirty) setText(formatted);
291
- }, [formatted, dirty]);
292
- const commitTypedValue = react.useCallback(() => {
293
- if (!text.trim()) {
294
- if (mode === "single") onChange(null);
295
- else onChange({ start: null, end: null });
296
- setDirty(false);
297
- return;
298
- }
299
- if (mode === "single") {
300
- const dLocal = parseLooseDateOrDateTime(text);
301
- if (dLocal) {
302
- onChange(dLocal);
303
- setMonthAnchor(dLocal);
304
- setDirty(false);
305
- }
306
- return;
307
- }
308
- const r = parseLooseRange(text);
309
- if (r) {
310
- onChange({ start: r.start, end: r.end });
311
- setMonthAnchor(r.start);
312
- setDirty(false);
313
- }
314
- }, [text, mode, onChange]);
315
- const clear = react.useCallback(() => {
316
- if (mode === "single") onChange(null);
317
- else onChange({ start: null, end: null });
318
- setDirty(false);
319
- setText("");
320
- }, [mode, onChange]);
321
- function addMonthsLocal(dt, n) {
322
- const y = dt.getFullYear(), m = dt.getMonth();
323
- return new Date(y, m + n, 1);
324
- }
325
- function addDaysLocal(dt, n) {
326
- const d = new Date(dt);
327
- d.setDate(d.getDate() + n);
328
- return d;
329
- }
330
- return /* @__PURE__ */ jsxRuntime.jsx(
331
- Popover.Popover,
332
- {
333
- ref: popRef,
334
- trigger: (toggle) => {
335
- var _a;
336
- return /* @__PURE__ */ jsxRuntime.jsx("div", { onClick: toggle, className: styles__default.default.triggerWrap, children: /* @__PURE__ */ jsxRuntime.jsx(
337
- Input.Input,
338
- {
339
- id,
340
- placeholder: placeholder || (mode === "single" ? "V\xE6lg dato" : "V\xE6lg interval"),
341
- value: dirty ? text : formatted,
342
- onInput: (e) => {
343
- setDirty(true);
344
- const raw = e.target.value;
345
- const masked = mode === "single" ? maskSingle(raw, enableTime) : maskRange(raw, enableTime);
346
- setText(masked);
347
- },
348
- onBlur: commitTypedValue,
349
- onKeyDown: (e) => {
350
- if (e.key === "Enter") {
351
- e.preventDefault();
352
- commitTypedValue();
353
- }
354
- },
355
- inputSize,
356
- icon: /* @__PURE__ */ jsxRuntime.jsx(lucideReact.Calendar, { size: 16 }),
357
- onClear: formatted || text ? clear : void 0,
358
- "aria-haspopup": "dialog",
359
- "aria-expanded": ((_a = popRef.current) == null ? void 0 : _a.isOpen()) ? true : false,
360
- disabled
361
- }
362
- ) });
363
- },
364
- minWidth: "320px",
365
- viewportPadding: 8,
366
- children: /* @__PURE__ */ jsxRuntime.jsxs("div", { className: cx(styles__default.default.panel, !!(presets == null ? void 0 : presets.length) && styles__default.default.panelWithPresets), children: [
367
- (presets == null ? void 0 : presets.length) ? /* @__PURE__ */ jsxRuntime.jsxs("div", { className: styles__default.default.presetsCol, children: [
368
- /* @__PURE__ */ jsxRuntime.jsx("div", { className: styles__default.default.presetsLabel, children: "Forvalg" }),
369
- /* @__PURE__ */ jsxRuntime.jsxs("div", { className: styles__default.default.presetsList, children: [
370
- presets.map((p) => /* @__PURE__ */ jsxRuntime.jsx(
371
- Button.Button,
372
- {
373
- variant: "outlined",
374
- size: "sm",
375
- onClick: () => {
376
- var _a;
377
- const r = p.getRange();
378
- onChange({ start: r.start, end: r.end });
379
- setDirty(false);
380
- setText(toMaskedRange(r.start, r.end, enableTime));
381
- setMonthAnchor(r.start);
382
- (_a = popRef.current) == null ? void 0 : _a.close();
383
- },
384
- children: p.label
385
- },
386
- p.label
387
- )),
388
- mode === "range" && /* @__PURE__ */ jsxRuntime.jsx(Button.Button, { variant: "danger", size: "sm", onClick: clear, icon: /* @__PURE__ */ jsxRuntime.jsx(lucideReact.X, { size: 14 }), children: "Ryd" })
389
- ] })
390
- ] }) : null,
391
- /* @__PURE__ */ jsxRuntime.jsxs("div", { className: styles__default.default.calendarArea, children: [
392
- /* @__PURE__ */ jsxRuntime.jsxs("div", { className: styles__default.default.header, children: [
393
- /* @__PURE__ */ jsxRuntime.jsx(
394
- Button.Button,
395
- {
396
- variant: "outlined",
397
- size: "sm",
398
- "aria-label": "Forrige m\xE5ned",
399
- icon: /* @__PURE__ */ jsxRuntime.jsx(lucideReact.ChevronLeft, { size: 16 }),
400
- onClick: () => setMonthAnchor(addMonthsLocal(monthAnchor, -1))
401
- }
402
- ),
403
- /* @__PURE__ */ jsxRuntime.jsx("div", { "aria-live": "polite", className: styles__default.default.headerTitle, children: monthFmt.format(monthAnchor) }),
404
- /* @__PURE__ */ jsxRuntime.jsx(
405
- Button.Button,
406
- {
407
- variant: "outlined",
408
- size: "sm",
409
- "aria-label": "N\xE6ste m\xE5ned",
410
- icon: /* @__PURE__ */ jsxRuntime.jsx(lucideReact.ChevronRight, { size: 16 }),
411
- onClick: () => setMonthAnchor(addMonthsLocal(monthAnchor, 1))
412
- }
413
- )
414
- ] }),
415
- /* @__PURE__ */ jsxRuntime.jsx("div", { className: styles__default.default.weekRow, "aria-hidden": true, children: Array.from({ length: 7 }, (_, i) => (i + weekStartsOn) % 7).map((dow) => /* @__PURE__ */ jsxRuntime.jsx("div", { className: styles__default.default.weekCell, children: weekdayFmt.format(dUTC(2024, 8, dow + 1)).slice(0, 2) }, dow)) }),
416
- /* @__PURE__ */ jsxRuntime.jsx(
417
- "div",
418
- {
419
- ref: gridRef,
420
- role: "grid",
421
- "aria-label": "Kalender",
422
- tabIndex: 0,
423
- className: styles__default.default.grid,
424
- onMouseLeave: () => setHoverUTC(null),
425
- children: cellsUTC.map((utcDay, idx) => {
426
- const inThisMonth = utcDay >= monthStartUTC && utcDay <= monthEndUTC;
427
- const isToday = sameDayUTC(utcDay, toUTCDateOnly(todayLocal));
428
- const disabledDay = isDisabledUTC(utcDay);
429
- let selected = false;
430
- let inRange = false;
431
- if (mode === "single" && selectedUTC_single)
432
- selected = sameDayUTC(utcDay, selectedUTC_single);
433
- if (mode === "range" && selectedUTC_start && selectedUTC_end) {
434
- inRange = isBetweenUTC(utcDay, selectedUTC_start, selectedUTC_end);
435
- selected = sameDayUTC(utcDay, selectedUTC_start) || sameDayUTC(utcDay, selectedUTC_end);
436
- }
437
- if (mode === "range" && selectedUTC_start && !selectedUTC_end && hoverUTC) {
438
- inRange = isBetweenUTC(utcDay, selectedUTC_start, hoverUTC);
439
- selected = sameDayUTC(utcDay, selectedUTC_start);
440
- }
441
- const dayNum = utcDay.getUTCDate();
442
- return /* @__PURE__ */ jsxRuntime.jsx(
443
- "button",
444
- {
445
- role: "gridcell",
446
- "aria-selected": selected,
447
- "aria-disabled": disabledDay,
448
- onMouseEnter: () => setHoverUTC(utcDay),
449
- onClick: () => selectDay(utcDay),
450
- disabled: disabledDay,
451
- className: cx(
452
- styles__default.default.dayCell,
453
- inThisMonth ? styles__default.default.dayInMonth : styles__default.default.dayOutside,
454
- selected && styles__default.default.daySelected,
455
- inRange && styles__default.default.dayInRange,
456
- isToday && !selected && styles__default.default.dayToday,
457
- disabledDay && styles__default.default.dayDisabled
458
- ),
459
- title: new Date(utcDay).toLocaleDateString(locale),
460
- children: dayNum
461
- },
462
- idx
463
- );
464
- })
465
- }
466
- ),
467
- enableTime && mode === "single" && /* @__PURE__ */ jsxRuntime.jsxs("div", { className: styles__default.default.timeRow, children: [
468
- /* @__PURE__ */ jsxRuntime.jsxs("div", { className: styles__default.default.timeLabel, children: [
469
- /* @__PURE__ */ jsxRuntime.jsx(lucideReact.Clock, { size: 14 }),
470
- " Tid"
471
- ] }),
472
- /* @__PURE__ */ jsxRuntime.jsx(
473
- "select",
474
- {
475
- value: timeHH,
476
- onChange: (e) => setTimeHH(parseInt(e.target.value, 10)),
477
- className: styles__default.default.timeSelect,
478
- children: hours.map((h) => /* @__PURE__ */ jsxRuntime.jsx("option", { value: h, children: String(h).padStart(2, "0") }, h))
479
- }
480
- ),
481
- /* @__PURE__ */ jsxRuntime.jsx(
482
- "select",
483
- {
484
- value: timeMM,
485
- onChange: (e) => setTimeMM(parseInt(e.target.value, 10)),
486
- className: styles__default.default.timeSelect,
487
- children: minutes.map((m) => /* @__PURE__ */ jsxRuntime.jsx("option", { value: m, children: String(m).padStart(2, "0") }, m))
488
- }
489
- )
490
- ] }),
491
- mode === "range" && /* @__PURE__ */ jsxRuntime.jsxs("div", { className: styles__default.default.footer, children: [
492
- /* @__PURE__ */ jsxRuntime.jsx(Button.Button, { variant: "outlined", size: "sm", onClick: clear, icon: /* @__PURE__ */ jsxRuntime.jsx(lucideReact.X, { size: 14 }), children: "Ryd" }),
493
- /* @__PURE__ */ jsxRuntime.jsx(Button.Button, { variant: "primary", size: "sm", onClick: () => {
494
- var _a;
495
- return (_a = popRef.current) == null ? void 0 : _a.close();
496
- }, children: "OK" })
497
- ] })
498
- ] })
499
- ] })
500
- }
501
- );
502
- });
503
-
504
- exports.DateTimePicker = DateTimePicker;
@@ -1,189 +0,0 @@
1
- 'use strict';
2
-
3
- var jsxRuntime = require('react/jsx-runtime');
4
- var react = require('react');
5
- var lucideReact = require('lucide-react');
6
- var Popover = require('../popover/Popover');
7
- var Input = require('../input/Input');
8
- var Menu = require('../menu/Menu');
9
- var MultiSelect = require('../multi-select/MultiSelect');
10
- var Select = require('../select/Select');
11
- var styles = require('./FilterField.module.css');
12
-
13
- function _interopDefault (e) { return e && e.__esModule ? e : { default: e }; }
14
-
15
- var styles__default = /*#__PURE__*/_interopDefault(styles);
16
-
17
- const LABELS = {
18
- is: "is",
19
- isNot: "not",
20
- contains: "contains",
21
- notContains: "not contain",
22
- startsWith: "starts with",
23
- endsWith: "ends with",
24
- gt: ">",
25
- lt: "<",
26
- gte: "\u2265",
27
- lte: "\u2264",
28
- in: "",
29
- notIn: "not in",
30
- isEmpty: "empty",
31
- isNotEmpty: "not empty"
32
- };
33
- const DEFAULT_TEXT_OPERATORS = [
34
- "is",
35
- "isNot",
36
- "contains",
37
- "notContains",
38
- "startsWith",
39
- "endsWith",
40
- "isEmpty",
41
- "isNotEmpty"
42
- ];
43
- const NUMBER_OPERATORS = [
44
- "is",
45
- "isNot",
46
- "gt",
47
- "lt",
48
- "gte",
49
- "lte",
50
- "isEmpty",
51
- "isNotEmpty"
52
- ];
53
- function OperatorDropdown({
54
- value,
55
- onChange,
56
- operators,
57
- size = "sm",
58
- disabled
59
- }) {
60
- const popRef = react.useRef(null);
61
- const [activeIndex, setActiveIndex] = react.useState(() => Math.max(0, operators.indexOf(value)));
62
- react.useEffect(() => {
63
- setActiveIndex(Math.max(0, operators.indexOf(value)));
64
- }, [operators, value]);
65
- const handleSelect = (op) => {
66
- var _a;
67
- onChange(op);
68
- setActiveIndex(operators.indexOf(op));
69
- (_a = popRef.current) == null ? void 0 : _a.close();
70
- };
71
- return /* @__PURE__ */ jsxRuntime.jsx(
72
- Popover.Popover,
73
- {
74
- ref: popRef,
75
- minWidth: "220px",
76
- trigger: (toggle, icon) => /* @__PURE__ */ jsxRuntime.jsxs(
77
- "button",
78
- {
79
- type: "button",
80
- onClick: toggle,
81
- disabled,
82
- "aria-label": "Change operator",
83
- className: `${styles__default.default.operatorTrigger} ${styles__default.default[size]}`,
84
- children: [
85
- /* @__PURE__ */ jsxRuntime.jsx("span", { className: styles__default.default.operatorText, children: LABELS[value] }),
86
- icon
87
- ]
88
- }
89
- ),
90
- children: /* @__PURE__ */ jsxRuntime.jsx(Menu.Menu, { children: operators.map((op) => {
91
- const selected = op === value;
92
- return /* @__PURE__ */ jsxRuntime.jsx(Menu.Menu.Item, { active: selected, children: /* @__PURE__ */ jsxRuntime.jsxs("button", { onClick: () => handleSelect(op), children: [
93
- /* @__PURE__ */ jsxRuntime.jsx("span", { style: { width: 16, display: "inline-flex", justifyContent: "center" }, children: selected ? /* @__PURE__ */ jsxRuntime.jsx(lucideReact.Check, { size: 16 }) : null }),
94
- LABELS[op]
95
- ] }) }, op);
96
- }) })
97
- }
98
- );
99
- }
100
- function FilterField({
101
- field,
102
- control,
103
- operator,
104
- value,
105
- onChange,
106
- operators,
107
- options = [],
108
- single = true,
109
- size = "md",
110
- label,
111
- placeholder = "Type value\u2026",
112
- disabled,
113
- ...inputProps
114
- }) {
115
- const [selectedOperator, setSelectedOperator] = react.useState(operator);
116
- const ops = react.useMemo(() => operators != null ? operators : DEFAULT_TEXT_OPERATORS, [operators]);
117
- react.useEffect(() => {
118
- }, [operator]);
119
- react.useEffect(() => {
120
- if (ops.includes(operator)) {
121
- setSelectedOperator(operator);
122
- }
123
- }, [operator]);
124
- const emit = (next) => {
125
- var _a, _b, _c;
126
- setSelectedOperator((_a = next.operator) != null ? _a : selectedOperator);
127
- onChange({
128
- field,
129
- operator: (_b = next.operator) != null ? _b : selectedOperator,
130
- value: (_c = next.value) != null ? _c : value
131
- });
132
- };
133
- return /* @__PURE__ */ jsxRuntime.jsxs("div", { className: ` ${styles__default.default.filterField} ${styles__default.default[size]}`, children: [
134
- label ? /* @__PURE__ */ jsxRuntime.jsx("span", { className: `${styles__default.default.label} ${styles__default.default[size]}`, children: label }) : null,
135
- /* @__PURE__ */ jsxRuntime.jsx(
136
- OperatorDropdown,
137
- {
138
- value: selectedOperator,
139
- onChange: (op) => emit({ operator: op }),
140
- operators: ops,
141
- size,
142
- disabled
143
- }
144
- ),
145
- /* @__PURE__ */ jsxRuntime.jsx("div", { className: `${control === "input" ? "" : styles__default.default.valueWrapper}`, children: control === "input" ? /* @__PURE__ */ jsxRuntime.jsx(
146
- Input.Input,
147
- {
148
- ...inputProps,
149
- value: value != null ? value : "",
150
- onChange: (e) => emit({ value: e.currentTarget.value }),
151
- inputSize: size,
152
- placeholder,
153
- fullWidth: true,
154
- minWidth: "120px",
155
- disabled,
156
- onClear: () => emit({ value: "" })
157
- }
158
- ) : single ? /* @__PURE__ */ jsxRuntime.jsx(
159
- Select.Select,
160
- {
161
- options,
162
- selectedValue: value != null ? value : null,
163
- onChange: (v) => emit({ value: v }),
164
- placeholder,
165
- size,
166
- variant: "inline",
167
- onClear: () => emit({ value: "" })
168
- }
169
- ) : /* @__PURE__ */ jsxRuntime.jsx(
170
- MultiSelect.MultiSelect,
171
- {
172
- options,
173
- size,
174
- variant: "inline",
175
- selectedValues: Array.isArray(value) ? value : [],
176
- onChange: (v) => {
177
- const current = new Set(Array.isArray(value) ? value : []);
178
- current.has(v) ? current.delete(v) : current.add(v);
179
- emit({ value: Array.from(current) });
180
- },
181
- onClear: () => emit({ value: [] }),
182
- children: placeholder
183
- }
184
- ) })
185
- ] });
186
- }
187
-
188
- exports.FilterField = FilterField;
189
- exports.NUMBER_OPERATORS = NUMBER_OPERATORS;