@tcn/ui-table 2.2.0 → 2.3.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (217) hide show
  1. package/README.md +1 -1
  2. package/dist/cell.css +1 -0
  3. package/dist/cell.module-WpHnQBVu.js +5 -0
  4. package/dist/cell.module-WpHnQBVu.js.map +1 -0
  5. package/dist/components/cells/data_cell.d.ts +3 -2
  6. package/dist/components/cells/data_cell.d.ts.map +1 -0
  7. package/dist/components/cells/data_cell.js +18 -10
  8. package/dist/components/cells/data_cell.js.map +1 -1
  9. package/dist/components/cells/footer_cell.d.ts +3 -2
  10. package/dist/components/cells/footer_cell.d.ts.map +1 -0
  11. package/dist/components/cells/footer_cell.js +18 -10
  12. package/dist/components/cells/footer_cell.js.map +1 -1
  13. package/dist/components/cells/header_cell.d.ts +3 -2
  14. package/dist/components/cells/header_cell.d.ts.map +1 -0
  15. package/dist/components/cells/header_cell.js +52 -18
  16. package/dist/components/cells/header_cell.js.map +1 -1
  17. package/dist/components/cells/sticky_row_data_cell.d.ts +3 -2
  18. package/dist/components/cells/sticky_row_data_cell.d.ts.map +1 -0
  19. package/dist/components/cells/sticky_row_data_cell.js +26 -11
  20. package/dist/components/cells/sticky_row_data_cell.js.map +1 -1
  21. package/dist/components/cells/sticky_row_fill_cell.d.ts +2 -2
  22. package/dist/components/cells/sticky_row_fill_cell.d.ts.map +1 -0
  23. package/dist/components/cells/sticky_row_fill_cell.js +15 -5
  24. package/dist/components/cells/sticky_row_fill_cell.js.map +1 -1
  25. package/dist/components/global_search.d.ts +2 -2
  26. package/dist/components/global_search.d.ts.map +1 -0
  27. package/dist/components/global_search.js +26 -9
  28. package/dist/components/global_search.js.map +1 -1
  29. package/dist/components/global_search_presenter.d.ts +2 -1
  30. package/dist/components/global_search_presenter.d.ts.map +1 -0
  31. package/dist/components/global_search_presenter.js +20 -18
  32. package/dist/components/global_search_presenter.js.map +1 -1
  33. package/dist/components/table/table.d.ts +3 -2
  34. package/dist/components/table/table.d.ts.map +1 -0
  35. package/dist/components/table/table.js +140 -77
  36. package/dist/components/table/table.js.map +1 -1
  37. package/dist/components/table/table_column.d.ts +1 -1
  38. package/dist/components/table/table_column.d.ts.map +1 -0
  39. package/dist/components/table/table_column.js +6 -5
  40. package/dist/components/table/table_column.js.map +1 -1
  41. package/dist/components/table/table_presenter.d.ts +3 -2
  42. package/dist/components/table/table_presenter.d.ts.map +1 -0
  43. package/dist/components/table/table_presenter.js +45 -62
  44. package/dist/components/table/table_presenter.js.map +1 -1
  45. package/dist/components/table_filter_panel/field_filters/date_field_filter.d.ts +2 -2
  46. package/dist/components/table_filter_panel/field_filters/date_field_filter.d.ts.map +1 -0
  47. package/dist/components/table_filter_panel/field_filters/date_field_filter.js +59 -33
  48. package/dist/components/table_filter_panel/field_filters/date_field_filter.js.map +1 -1
  49. package/dist/components/table_filter_panel/field_filters/date_field_filter_presenter.d.ts +4 -3
  50. package/dist/components/table_filter_panel/field_filters/date_field_filter_presenter.d.ts.map +1 -0
  51. package/dist/components/table_filter_panel/field_filters/date_field_filter_presenter.js +57 -91
  52. package/dist/components/table_filter_panel/field_filters/date_field_filter_presenter.js.map +1 -1
  53. package/dist/components/table_filter_panel/field_filters/field_filter_props.d.ts +1 -0
  54. package/dist/components/table_filter_panel/field_filters/field_filter_props.d.ts.map +1 -0
  55. package/dist/components/table_filter_panel/field_filters/field_filter_strategy.d.ts +1 -0
  56. package/dist/components/table_filter_panel/field_filters/field_filter_strategy.d.ts.map +1 -0
  57. package/dist/components/table_filter_panel/field_filters/mulit_select_field_filter.d.ts +3 -3
  58. package/dist/components/table_filter_panel/field_filters/mulit_select_field_filter.d.ts.map +1 -0
  59. package/dist/components/table_filter_panel/field_filters/mulit_select_field_filter.js +52 -29
  60. package/dist/components/table_filter_panel/field_filters/mulit_select_field_filter.js.map +1 -1
  61. package/dist/components/table_filter_panel/field_filters/multi_select_field_filter_presenter.d.ts +3 -2
  62. package/dist/components/table_filter_panel/field_filters/multi_select_field_filter_presenter.d.ts.map +1 -0
  63. package/dist/components/table_filter_panel/field_filters/multi_select_field_filter_presenter.js +53 -70
  64. package/dist/components/table_filter_panel/field_filters/multi_select_field_filter_presenter.js.map +1 -1
  65. package/dist/components/table_filter_panel/field_filters/number_field_filter.d.ts +3 -3
  66. package/dist/components/table_filter_panel/field_filters/number_field_filter.d.ts.map +1 -0
  67. package/dist/components/table_filter_panel/field_filters/number_field_filter.js +47 -23
  68. package/dist/components/table_filter_panel/field_filters/number_field_filter.js.map +1 -1
  69. package/dist/components/table_filter_panel/field_filters/number_field_filter_presenter.d.ts +5 -4
  70. package/dist/components/table_filter_panel/field_filters/number_field_filter_presenter.d.ts.map +1 -0
  71. package/dist/components/table_filter_panel/field_filters/number_field_filter_presenter.js +53 -58
  72. package/dist/components/table_filter_panel/field_filters/number_field_filter_presenter.js.map +1 -1
  73. package/dist/components/table_filter_panel/field_filters/number_range_field_filter.d.ts +2 -2
  74. package/dist/components/table_filter_panel/field_filters/number_range_field_filter.d.ts.map +1 -0
  75. package/dist/components/table_filter_panel/field_filters/number_range_field_filter.js +61 -31
  76. package/dist/components/table_filter_panel/field_filters/number_range_field_filter.js.map +1 -1
  77. package/dist/components/table_filter_panel/field_filters/number_range_field_filter_presenter.d.ts +4 -3
  78. package/dist/components/table_filter_panel/field_filters/number_range_field_filter_presenter.d.ts.map +1 -0
  79. package/dist/components/table_filter_panel/field_filters/number_range_field_filter_presenter.js +57 -91
  80. package/dist/components/table_filter_panel/field_filters/number_range_field_filter_presenter.js.map +1 -1
  81. package/dist/components/table_filter_panel/field_filters/select_field_filter.d.ts +3 -3
  82. package/dist/components/table_filter_panel/field_filters/select_field_filter.d.ts.map +1 -0
  83. package/dist/components/table_filter_panel/field_filters/select_field_filter.js +49 -24
  84. package/dist/components/table_filter_panel/field_filters/select_field_filter.js.map +1 -1
  85. package/dist/components/table_filter_panel/field_filters/select_field_filter_presenter.d.ts +3 -2
  86. package/dist/components/table_filter_panel/field_filters/select_field_filter_presenter.d.ts.map +1 -0
  87. package/dist/components/table_filter_panel/field_filters/select_field_filter_presenter.js +49 -53
  88. package/dist/components/table_filter_panel/field_filters/select_field_filter_presenter.js.map +1 -1
  89. package/dist/components/table_filter_panel/field_filters/string_field_filter.d.ts +3 -3
  90. package/dist/components/table_filter_panel/field_filters/string_field_filter.d.ts.map +1 -0
  91. package/dist/components/table_filter_panel/field_filters/string_field_filter.js +62 -33
  92. package/dist/components/table_filter_panel/field_filters/string_field_filter.js.map +1 -1
  93. package/dist/components/table_filter_panel/field_filters/string_field_filter_presenter.d.ts +5 -4
  94. package/dist/components/table_filter_panel/field_filters/string_field_filter_presenter.d.ts.map +1 -0
  95. package/dist/components/table_filter_panel/field_filters/string_field_filter_presenter.js +54 -59
  96. package/dist/components/table_filter_panel/field_filters/string_field_filter_presenter.js.map +1 -1
  97. package/dist/components/table_filter_panel/field_filters/use_field_filter_strategy.d.ts +2 -1
  98. package/dist/components/table_filter_panel/field_filters/use_field_filter_strategy.d.ts.map +1 -0
  99. package/dist/components/table_filter_panel/field_filters/use_field_filter_strategy.js +13 -19
  100. package/dist/components/table_filter_panel/field_filters/use_field_filter_strategy.js.map +1 -1
  101. package/dist/components/table_filter_panel/table_filter_panel.d.ts +5 -4
  102. package/dist/components/table_filter_panel/table_filter_panel.d.ts.map +1 -0
  103. package/dist/components/table_filter_panel/table_filter_panel.js +15 -11
  104. package/dist/components/table_filter_panel/table_filter_panel.js.map +1 -1
  105. package/dist/components/table_filter_panel/table_filter_panel_presenter.d.ts +2 -2
  106. package/dist/components/table_filter_panel/table_filter_panel_presenter.d.ts.map +1 -0
  107. package/dist/components/table_filter_panel/table_filter_panel_presenter.js +45 -62
  108. package/dist/components/table_filter_panel/table_filter_panel_presenter.js.map +1 -1
  109. package/dist/components/table_filter_panel/types.d.ts +1 -0
  110. package/dist/components/table_filter_panel/types.d.ts.map +1 -0
  111. package/dist/components/table_filter_panel/types.js +5 -2
  112. package/dist/components/table_filter_panel/types.js.map +1 -1
  113. package/dist/components/table_pager.d.ts +2 -2
  114. package/dist/components/table_pager.d.ts.map +1 -0
  115. package/dist/components/table_pager.js +22 -20
  116. package/dist/components/table_pager.js.map +1 -1
  117. package/dist/index.d.ts +1 -0
  118. package/dist/index.d.ts.map +1 -0
  119. package/dist/index.js +27 -13
  120. package/dist/index.js.map +1 -1
  121. package/dist/table.css +1 -0
  122. package/dist/table_pager.css +1 -0
  123. package/package.json +61 -61
  124. package/src/__stories__/aip_table.stories.tsx +190 -0
  125. package/src/__stories__/auth_provider.tsx +14 -0
  126. package/src/__stories__/demo.stories.tsx +137 -0
  127. package/src/__stories__/sample_data.ts +1398 -0
  128. package/src/__stories__/table.stories.tsx +423 -0
  129. package/src/__tests__/sanity.test.ts +7 -0
  130. package/src/components/cells/data_cell.tsx +25 -0
  131. package/src/components/cells/footer_cell.tsx +25 -0
  132. package/src/components/cells/header_cell.tsx +77 -0
  133. package/src/components/cells/sticky_row_data_cell.tsx +31 -0
  134. package/src/components/cells/sticky_row_fill_cell.tsx +16 -0
  135. package/src/components/global_search.tsx +33 -0
  136. package/src/components/global_search_presenter.ts +24 -0
  137. package/{dist → src}/components/table/table.module.css +3 -2
  138. package/src/components/table/table.tsx +183 -0
  139. package/src/components/table/table_column.tsx +27 -0
  140. package/src/components/table/table_presenter.test.ts +161 -0
  141. package/src/components/table/table_presenter.ts +103 -0
  142. package/src/components/table_filter_panel/field_filters/date_field_filter.tsx +70 -0
  143. package/src/components/table_filter_panel/field_filters/date_field_filter_presenter.test.ts +583 -0
  144. package/src/components/table_filter_panel/field_filters/date_field_filter_presenter.ts +110 -0
  145. package/src/components/table_filter_panel/field_filters/field_filter_props.ts +5 -0
  146. package/src/components/table_filter_panel/field_filters/field_filter_strategy.ts +14 -0
  147. package/src/components/table_filter_panel/field_filters/mulit_select_field_filter.tsx +68 -0
  148. package/src/components/table_filter_panel/field_filters/multi_select_field_filter_presenter.test.ts +444 -0
  149. package/src/components/table_filter_panel/field_filters/multi_select_field_filter_presenter.ts +90 -0
  150. package/src/components/table_filter_panel/field_filters/number_field_filter.tsx +53 -0
  151. package/src/components/table_filter_panel/field_filters/number_field_filter_presenter.test.ts +431 -0
  152. package/src/components/table_filter_panel/field_filters/number_field_filter_presenter.ts +80 -0
  153. package/src/components/table_filter_panel/field_filters/number_range_field_filter.tsx +68 -0
  154. package/src/components/table_filter_panel/field_filters/number_range_field_filter_presenter.test.ts +582 -0
  155. package/src/components/table_filter_panel/field_filters/number_range_field_filter_presenter.ts +110 -0
  156. package/src/components/table_filter_panel/field_filters/select_field_filter.tsx +57 -0
  157. package/src/components/table_filter_panel/field_filters/select_field_filter_presenter.test.ts +365 -0
  158. package/src/components/table_filter_panel/field_filters/select_field_filter_presenter.ts +74 -0
  159. package/src/components/table_filter_panel/field_filters/string_field_filter.tsx +70 -0
  160. package/src/components/table_filter_panel/field_filters/string_field_filter_presenter.test.ts +296 -0
  161. package/src/components/table_filter_panel/field_filters/string_field_filter_presenter.ts +81 -0
  162. package/src/components/table_filter_panel/field_filters/use_field_filter_strategy.tsx +30 -0
  163. package/src/components/table_filter_panel/table_filter_panel.stories.tsx +46 -0
  164. package/src/components/table_filter_panel/table_filter_panel.tsx +26 -0
  165. package/src/components/table_filter_panel/table_filter_panel_presenter.ts +77 -0
  166. package/src/components/table_filter_panel/types.ts +3 -0
  167. package/src/components/table_pager.tsx +39 -0
  168. package/src/index.ts +16 -0
  169. package/tsconfig.json +36 -0
  170. package/types/file_types.d.ts +54 -0
  171. package/types/react_color.d.ts +61 -0
  172. package/dist/__stories__/aip_table.stories.d.ts +0 -5
  173. package/dist/__stories__/aip_table.stories.js +0 -96
  174. package/dist/__stories__/aip_table.stories.js.map +0 -1
  175. package/dist/__stories__/auth_provider.d.ts +0 -4
  176. package/dist/__stories__/auth_provider.js +0 -10
  177. package/dist/__stories__/auth_provider.js.map +0 -1
  178. package/dist/__stories__/demo.stories.d.ts +0 -6
  179. package/dist/__stories__/demo.stories.js +0 -94
  180. package/dist/__stories__/demo.stories.js.map +0 -1
  181. package/dist/__stories__/sample_data.d.ts +0 -36
  182. package/dist/__stories__/sample_data.js +0 -1385
  183. package/dist/__stories__/sample_data.js.map +0 -1
  184. package/dist/__stories__/table.stories.d.ts +0 -12
  185. package/dist/__stories__/table.stories.js +0 -272
  186. package/dist/__stories__/table.stories.js.map +0 -1
  187. package/dist/components/table/table_presenter.test.d.ts +0 -1
  188. package/dist/components/table/table_presenter.test.js +0 -125
  189. package/dist/components/table/table_presenter.test.js.map +0 -1
  190. package/dist/components/table_filter_panel/field_filters/date_field_filter_presenter.test.d.ts +0 -1
  191. package/dist/components/table_filter_panel/field_filters/date_field_filter_presenter.test.js +0 -434
  192. package/dist/components/table_filter_panel/field_filters/date_field_filter_presenter.test.js.map +0 -1
  193. package/dist/components/table_filter_panel/field_filters/field_filter_props.js +0 -2
  194. package/dist/components/table_filter_panel/field_filters/field_filter_props.js.map +0 -1
  195. package/dist/components/table_filter_panel/field_filters/field_filter_strategy.js +0 -2
  196. package/dist/components/table_filter_panel/field_filters/field_filter_strategy.js.map +0 -1
  197. package/dist/components/table_filter_panel/field_filters/multi_select_field_filter_presenter.test.d.ts +0 -1
  198. package/dist/components/table_filter_panel/field_filters/multi_select_field_filter_presenter.test.js +0 -332
  199. package/dist/components/table_filter_panel/field_filters/multi_select_field_filter_presenter.test.js.map +0 -1
  200. package/dist/components/table_filter_panel/field_filters/number_field_filter_presenter.test.d.ts +0 -1
  201. package/dist/components/table_filter_panel/field_filters/number_field_filter_presenter.test.js +0 -347
  202. package/dist/components/table_filter_panel/field_filters/number_field_filter_presenter.test.js.map +0 -1
  203. package/dist/components/table_filter_panel/field_filters/number_range_field_filter_presenter.test.d.ts +0 -1
  204. package/dist/components/table_filter_panel/field_filters/number_range_field_filter_presenter.test.js +0 -452
  205. package/dist/components/table_filter_panel/field_filters/number_range_field_filter_presenter.test.js.map +0 -1
  206. package/dist/components/table_filter_panel/field_filters/select_field_filter_presenter.test.d.ts +0 -1
  207. package/dist/components/table_filter_panel/field_filters/select_field_filter_presenter.test.js +0 -285
  208. package/dist/components/table_filter_panel/field_filters/select_field_filter_presenter.test.js.map +0 -1
  209. package/dist/components/table_filter_panel/field_filters/string_field_filter_presenter.test.d.ts +0 -1
  210. package/dist/components/table_filter_panel/field_filters/string_field_filter_presenter.test.js +0 -232
  211. package/dist/components/table_filter_panel/field_filters/string_field_filter_presenter.test.js.map +0 -1
  212. package/dist/components/table_filter_panel/table_filter_panel.stories.d.ts +0 -6
  213. package/dist/components/table_filter_panel/table_filter_panel.stories.js +0 -25
  214. package/dist/components/table_filter_panel/table_filter_panel.stories.js.map +0 -1
  215. /package/{dist → src}/__stories__/table.module.css +0 -0
  216. /package/{dist → src}/components/cells/cell.module.css +0 -0
  217. /package/{dist → src}/components/table_pager.module.css +0 -0
@@ -1,24 +1,48 @@
1
- import { CrossCircleIcon } from '@tcn/icons/cross_circle_icon';
2
- import { useSignalValue } from '@tcn/state';
3
- import { Button } from '@tcn/ui/actions';
4
- import { Input, Option, Select } from '@tcn/ui/inputs';
5
- import { Box, HStack, VStack } from '@tcn/ui/stacks';
6
- import { Title } from '@tcn/ui/typography';
7
- import React from 'react';
8
- import { NumberFieldFilterPresenter } from "./number_field_filter_presenter.js";
9
- import { useFieldFilterStrategy } from "./use_field_filter_strategy.js";
10
- const operators = ['>=', '>', '<=', '<', '=', '!='];
11
- export function NumberFieldFilter({ fieldName, label }) {
12
- const presenter = useFieldFilterStrategy(NumberFieldFilterPresenter, fieldName);
13
- const value = useSignalValue(presenter.broadcasts.value);
14
- const operator = useSignalValue(presenter.broadcasts.operator);
15
- return (React.createElement(VStack, { gap: "4px" },
16
- React.createElement(Box, { width: "flex" },
17
- React.createElement(Title, { size: "md" }, label)),
18
- React.createElement(HStack, { width: "flex" },
19
- React.createElement(Select, { value: operator, onChange: value => presenter.setOperator(value), width: "55px" }, operators.map(operator => (React.createElement(Option, { key: operator, value: operator, label: operator }, operator)))),
20
- React.createElement(Input, { type: "number", value: String(value ?? ''), onChange: value => presenter.setValue(Number(value)) }),
21
- React.createElement(Button, { onClick: () => presenter.setValue(null), hierarchy: "tertiary", disabled: value == null },
22
- React.createElement(CrossCircleIcon, null)))));
1
+ import { jsxs as l, jsx as r } from "react/jsx-runtime";
2
+ import { CrossCircleIcon as s } from "@tcn/icons/cross_circle_icon.js";
3
+ import { useSignalValue as o } from "@tcn/state";
4
+ import { Button as c } from "@tcn/ui/actions";
5
+ import { Select as u, Option as p, Input as d } from "@tcn/ui/inputs";
6
+ import { VStack as h, Box as f, HStack as b } from "@tcn/ui/stacks";
7
+ import { Title as x } from "@tcn/ui/typography";
8
+ import { NumberFieldFilterPresenter as g } from "./number_field_filter_presenter.js";
9
+ import { useFieldFilterStrategy as F } from "./use_field_filter_strategy.js";
10
+ const S = [">=", ">", "<=", "<", "=", "!="];
11
+ function I({ fieldName: n, label: a }) {
12
+ const t = F(g, n), i = o(t.broadcasts.value), m = o(t.broadcasts.operator);
13
+ return /* @__PURE__ */ l(h, { gap: "4px", children: [
14
+ /* @__PURE__ */ r(f, { width: "flex", children: /* @__PURE__ */ r(x, { size: "md", children: a }) }),
15
+ /* @__PURE__ */ l(b, { width: "flex", children: [
16
+ /* @__PURE__ */ r(
17
+ u,
18
+ {
19
+ value: m,
20
+ onChange: (e) => t.setOperator(e),
21
+ width: "55px",
22
+ children: S.map((e) => /* @__PURE__ */ r(p, { value: e, label: e, children: e }, e))
23
+ }
24
+ ),
25
+ /* @__PURE__ */ r(
26
+ d,
27
+ {
28
+ type: "number",
29
+ value: String(i ?? ""),
30
+ onChange: (e) => t.setValue(Number(e))
31
+ }
32
+ ),
33
+ /* @__PURE__ */ r(
34
+ c,
35
+ {
36
+ onClick: () => t.setValue(null),
37
+ hierarchy: "tertiary",
38
+ disabled: i == null,
39
+ children: /* @__PURE__ */ r(s, {})
40
+ }
41
+ )
42
+ ] })
43
+ ] });
23
44
  }
24
- //# sourceMappingURL=number_field_filter.js.map
45
+ export {
46
+ I as NumberFieldFilter
47
+ };
48
+ //# sourceMappingURL=number_field_filter.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"number_field_filter.js","sourceRoot":"","sources":["../../../../src/components/table_filter_panel/field_filters/number_field_filter.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,MAAM,8BAA8B,CAAC;AAC/D,OAAO,EAAE,cAAc,EAAE,MAAM,YAAY,CAAC;AAC5C,OAAO,EAAE,MAAM,EAAE,MAAM,iBAAiB,CAAC;AACzC,OAAO,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,gBAAgB,CAAC;AACvD,OAAO,EAAE,GAAG,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,gBAAgB,CAAC;AACrD,OAAO,EAAE,KAAK,EAAE,MAAM,oBAAoB,CAAC;AAC3C,OAAO,KAAK,MAAM,OAAO,CAAC;AAE1B,OAAO,EAAE,0BAA0B,EAAE,2CAAyF;AAC9H,OAAO,EAAE,sBAAsB,EAAE,uCAAqF;AAGtH,MAAM,SAAS,GAAyB,CAAC,IAAI,EAAE,GAAG,EAAE,IAAI,EAAE,GAAG,EAAE,GAAG,EAAE,IAAI,CAAC,CAAC;AAE1E,MAAM,UAAU,iBAAiB,CAAC,EAAE,SAAS,EAAE,KAAK,EAAoB;IACtE,MAAM,SAAS,GAAG,sBAAsB,CAAC,0BAA0B,EAAE,SAAS,CAAC,CAAC;IAEhF,MAAM,KAAK,GAAG,cAAc,CAAC,SAAS,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC;IACzD,MAAM,QAAQ,GAAG,cAAc,CAAC,SAAS,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAC;IAE/D,OAAO,CACL,oBAAC,MAAM,IAAC,GAAG,EAAC,KAAK;QACf,oBAAC,GAAG,IAAC,KAAK,EAAC,MAAM;YACf,oBAAC,KAAK,IAAC,IAAI,EAAC,IAAI,IAAE,KAAK,CAAS,CAC5B;QACN,oBAAC,MAAM,IAAC,KAAK,EAAC,MAAM;YAClB,oBAAC,MAAM,IACL,KAAK,EAAE,QAAQ,EACf,QAAQ,EAAE,KAAK,CAAC,EAAE,CAAC,SAAS,CAAC,WAAW,CAAC,KAA2B,CAAC,EACrE,KAAK,EAAC,MAAM,IAEX,SAAS,CAAC,GAAG,CAAC,QAAQ,CAAC,EAAE,CAAC,CACzB,oBAAC,MAAM,IAAC,GAAG,EAAE,QAAQ,EAAE,KAAK,EAAE,QAAQ,EAAE,KAAK,EAAE,QAAQ,IACpD,QAAQ,CACF,CACV,CAAC,CACK;YACT,oBAAC,KAAK,IACJ,IAAI,EAAC,QAAQ,EACb,KAAK,EAAE,MAAM,CAAC,KAAK,IAAI,EAAE,CAAC,EAC1B,QAAQ,EAAE,KAAK,CAAC,EAAE,CAAC,SAAS,CAAC,QAAQ,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,GACpD;YACF,oBAAC,MAAM,IACL,OAAO,EAAE,GAAG,EAAE,CAAC,SAAS,CAAC,QAAQ,CAAC,IAAI,CAAC,EACvC,SAAS,EAAC,UAAU,EACpB,QAAQ,EAAE,KAAK,IAAI,IAAI;gBAEvB,oBAAC,eAAe,OAAG,CACZ,CACF,CACF,CACV,CAAC;AACJ,CAAC"}
1
+ {"version":3,"file":"number_field_filter.js","sources":["../../../../src/components/table_filter_panel/field_filters/number_field_filter.tsx"],"sourcesContent":["import { CrossCircleIcon } from '@tcn/icons/cross_circle_icon.js';\nimport { useSignalValue } from '@tcn/state';\nimport { Button } from '@tcn/ui/actions';\nimport { Input, Option, Select } from '@tcn/ui/inputs';\nimport { Box, HStack, VStack } from '@tcn/ui/stacks';\nimport { Title } from '@tcn/ui/typography';\nimport React from 'react';\nimport { FieldFilterProps } from './field_filter_props.js';\nimport { NumberFieldFilterPresenter } from './number_field_filter_presenter.js';\nimport { useFieldFilterStrategy } from './use_field_filter_strategy.js';\nimport { ComparisonOperator } from '../types.js';\n\nconst operators: ComparisonOperator[] = ['>=', '>', '<=', '<', '=', '!='];\n\nexport function NumberFieldFilter({ fieldName, label }: FieldFilterProps) {\n const presenter = useFieldFilterStrategy(NumberFieldFilterPresenter, fieldName);\n\n const value = useSignalValue(presenter.broadcasts.value);\n const operator = useSignalValue(presenter.broadcasts.operator);\n\n return (\n <VStack gap=\"4px\">\n <Box width=\"flex\">\n <Title size=\"md\">{label}</Title>\n </Box>\n <HStack width=\"flex\">\n <Select\n value={operator}\n onChange={value => presenter.setOperator(value as ComparisonOperator)}\n width=\"55px\"\n >\n {operators.map(operator => (\n <Option key={operator} value={operator} label={operator}>\n {operator}\n </Option>\n ))}\n </Select>\n <Input\n type=\"number\"\n value={String(value ?? '')}\n onChange={value => presenter.setValue(Number(value))}\n />\n <Button\n onClick={() => presenter.setValue(null)}\n hierarchy=\"tertiary\"\n disabled={value == null}\n >\n <CrossCircleIcon />\n </Button>\n </HStack>\n </VStack>\n );\n}\n"],"names":["operators","NumberFieldFilter","fieldName","label","presenter","useFieldFilterStrategy","NumberFieldFilterPresenter","value","useSignalValue","operator","jsxs","VStack","jsx","Box","Title","HStack","Select","Option","Input","Button","CrossCircleIcon"],"mappings":";;;;;;;;;AAYA,MAAMA,IAAkC,CAAC,MAAM,KAAK,MAAM,KAAK,KAAK,IAAI;AAEjE,SAASC,EAAkB,EAAE,WAAAC,GAAW,OAAAC,KAA2B;AACxE,QAAMC,IAAYC,EAAuBC,GAA4BJ,CAAS,GAExEK,IAAQC,EAAeJ,EAAU,WAAW,KAAK,GACjDK,IAAWD,EAAeJ,EAAU,WAAW,QAAQ;AAE7D,SACE,gBAAAM,EAACC,GAAA,EAAO,KAAI,OACV,UAAA;AAAA,IAAA,gBAAAC,EAACC,GAAA,EAAI,OAAM,QACT,UAAA,gBAAAD,EAACE,KAAM,MAAK,MAAM,aAAM,EAAA,CAC1B;AAAA,IACA,gBAAAJ,EAACK,GAAA,EAAO,OAAM,QACZ,UAAA;AAAA,MAAA,gBAAAH;AAAA,QAACI;AAAA,QAAA;AAAA,UACC,OAAOP;AAAA,UACP,UAAU,CAAAF,MAASH,EAAU,YAAYG,CAA2B;AAAA,UACpE,OAAM;AAAA,UAEL,UAAAP,EAAU,IAAI,CAAAS,MACb,gBAAAG,EAACK,GAAA,EAAsB,OAAOR,GAAU,OAAOA,GAC5C,UAAAA,EAAAA,GADUA,CAEb,CACD;AAAA,QAAA;AAAA,MAAA;AAAA,MAEH,gBAAAG;AAAA,QAACM;AAAA,QAAA;AAAA,UACC,MAAK;AAAA,UACL,OAAO,OAAOX,KAAS,EAAE;AAAA,UACzB,UAAU,CAAAA,MAASH,EAAU,SAAS,OAAOG,CAAK,CAAC;AAAA,QAAA;AAAA,MAAA;AAAA,MAErD,gBAAAK;AAAA,QAACO;AAAA,QAAA;AAAA,UACC,SAAS,MAAMf,EAAU,SAAS,IAAI;AAAA,UACtC,WAAU;AAAA,UACV,UAAUG,KAAS;AAAA,UAEnB,4BAACa,GAAA,CAAA,CAAgB;AAAA,QAAA;AAAA,MAAA;AAAA,IACnB,EAAA,CACF;AAAA,EAAA,GACF;AAEJ;"}
@@ -1,6 +1,6 @@
1
1
  import { Node } from 'clarity-pattern-parser';
2
- import { FieldFilterRegistry, FieldFilterStrategy } from "./field_filter_strategy.js";
3
- import { ComparisonOperator } from "../types.js";
2
+ import { FieldFilterRegistry, FieldFilterStrategy } from './field_filter_strategy.js';
3
+ import { ComparisonOperator } from '../types.js';
4
4
  export declare class NumberFieldFilterPresenter implements FieldFilterStrategy {
5
5
  private _fieldName;
6
6
  private _value;
@@ -10,8 +10,8 @@ export declare class NumberFieldFilterPresenter implements FieldFilterStrategy {
10
10
  private _broadcasts;
11
11
  constructor(fieldName: string);
12
12
  get broadcasts(): {
13
- value: import("@tcn/state").IBroadcast<number | null>;
14
- operator: import("@tcn/state").IBroadcast<ComparisonOperator>;
13
+ value: import('@tcn/state').IBroadcast<number | null>;
14
+ operator: import('@tcn/state').IBroadcast<ComparisonOperator>;
15
15
  };
16
16
  onChange(handler: () => void): () => void;
17
17
  setValue(value: number | null): void;
@@ -21,3 +21,4 @@ export declare class NumberFieldFilterPresenter implements FieldFilterStrategy {
21
21
  setFilterState(filterAst: Node): void;
22
22
  dispose(): void;
23
23
  }
24
+ //# sourceMappingURL=number_field_filter_presenter.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"number_field_filter_presenter.d.ts","sourceRoot":"","sources":["../../../../src/components/table_filter_panel/field_filters/number_field_filter_presenter.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,IAAI,EAAE,MAAM,wBAAwB,CAAC;AAC9C,OAAO,EAAE,mBAAmB,EAAE,mBAAmB,EAAE,MAAM,4BAA4B,CAAC;AACtF,OAAO,EAAE,kBAAkB,EAAE,MAAM,aAAa,CAAC;AAEjD,qBAAa,0BAA2B,YAAW,mBAAmB;IACpE,OAAO,CAAC,UAAU,CAAS;IAC3B,OAAO,CAAC,MAAM,CAAmC;IACjD,OAAO,CAAC,SAAS,CAAuC;IACxD,OAAO,CAAC,oBAAoB,CAAoC;IAChE,OAAO,CAAC,iBAAiB,CAAyB;IAElD,OAAO,CAAC,WAAW,CAGjB;gBAEU,SAAS,EAAE,MAAM;IAI7B,IAAI,UAAU;;;MAEb;IAED,QAAQ,CAAC,OAAO,EAAE,MAAM,IAAI;IAO5B,QAAQ,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI;IAK7B,WAAW,CAAC,QAAQ,EAAE,kBAAkB;IAKxC,eAAe;IAOf,gBAAgB,CAAC,mBAAmB,EAAE,mBAAmB;IAKzD,cAAc,CAAC,SAAS,EAAE,IAAI;IAqB9B,OAAO;CAIR"}
@@ -1,60 +1,55 @@
1
- import { Signal } from '@tcn/state';
2
- export class NumberFieldFilterPresenter {
3
- _fieldName;
4
- _value = new Signal(null);
5
- _operator = new Signal('=');
6
- _fieldFilterRegistry = null;
7
- _onChangeHandlers = new Set();
8
- _broadcasts = {
9
- value: this._value.broadcast,
10
- operator: this._operator.broadcast,
1
+ import { Signal as l } from "@tcn/state";
2
+ class _ {
3
+ _fieldName;
4
+ _value = new l(null);
5
+ _operator = new l("=");
6
+ _fieldFilterRegistry = null;
7
+ _onChangeHandlers = /* @__PURE__ */ new Set();
8
+ _broadcasts = {
9
+ value: this._value.broadcast,
10
+ operator: this._operator.broadcast
11
+ };
12
+ constructor(e) {
13
+ this._fieldName = e;
14
+ }
15
+ get broadcasts() {
16
+ return this._broadcasts;
17
+ }
18
+ onChange(e) {
19
+ return this._onChangeHandlers.add(e), () => {
20
+ this._onChangeHandlers.delete(e);
11
21
  };
12
- constructor(fieldName) {
13
- this._fieldName = fieldName;
14
- }
15
- get broadcasts() {
16
- return this._broadcasts;
17
- }
18
- onChange(handler) {
19
- this._onChangeHandlers.add(handler);
20
- return () => {
21
- this._onChangeHandlers.delete(handler);
22
- };
23
- }
24
- setValue(value) {
25
- this._value.set(value);
26
- this._onChangeHandlers.forEach(handler => handler());
27
- }
28
- setOperator(operator) {
29
- this._operator.set(operator);
30
- this._onChangeHandlers.forEach(handler => handler());
31
- }
32
- getFilterString() {
33
- if (this._value.get() === null) {
34
- return '';
35
- }
36
- return `${this._fieldName} ${this._operator.get()} ${this._value.get()}`;
37
- }
38
- setFieldRegistry(fieldFilterRegistry) {
39
- this._fieldFilterRegistry = fieldFilterRegistry;
40
- this._fieldFilterRegistry.registerFieldFilter(this._fieldName, this);
41
- }
42
- setFilterState(filterAst) {
43
- const fieldNodes = filterAst.findAll(n => n.name === 'plain-field' && n.value === this._fieldName);
44
- const fieldNode = fieldNodes.filter(n => n.parent !== null && n.parent.name === 'infix-expression')[0];
45
- if (fieldNode == null) {
46
- return;
47
- }
48
- const parent = fieldNode.parent;
49
- const operatorNode = parent.children[1];
50
- const valueNode = parent.children[2];
51
- this._operator.set(operatorNode.value);
52
- const value = Number(valueNode.value);
53
- this._value.set(value);
54
- }
55
- dispose() {
56
- this._fieldFilterRegistry?.unregisterFieldFilter(this._fieldName);
57
- this._onChangeHandlers.clear();
58
- }
22
+ }
23
+ setValue(e) {
24
+ this._value.set(e), this._onChangeHandlers.forEach((r) => r());
25
+ }
26
+ setOperator(e) {
27
+ this._operator.set(e), this._onChangeHandlers.forEach((r) => r());
28
+ }
29
+ getFilterString() {
30
+ return this._value.get() === null ? "" : `${this._fieldName} ${this._operator.get()} ${this._value.get()}`;
31
+ }
32
+ setFieldRegistry(e) {
33
+ this._fieldFilterRegistry = e, this._fieldFilterRegistry.registerFieldFilter(this._fieldName, this);
34
+ }
35
+ setFilterState(e) {
36
+ const i = e.findAll(
37
+ (t) => t.name === "plain-field" && t.value === this._fieldName
38
+ ).filter(
39
+ (t) => t.parent !== null && t.parent.name === "infix-expression"
40
+ )[0];
41
+ if (i == null)
42
+ return;
43
+ const s = i.parent, a = s.children[1], n = s.children[2];
44
+ this._operator.set(a.value);
45
+ const o = Number(n.value);
46
+ this._value.set(o);
47
+ }
48
+ dispose() {
49
+ this._fieldFilterRegistry?.unregisterFieldFilter(this._fieldName), this._onChangeHandlers.clear();
50
+ }
59
51
  }
60
- //# sourceMappingURL=number_field_filter_presenter.js.map
52
+ export {
53
+ _ as NumberFieldFilterPresenter
54
+ };
55
+ //# sourceMappingURL=number_field_filter_presenter.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"number_field_filter_presenter.js","sourceRoot":"","sources":["../../../../src/components/table_filter_panel/field_filters/number_field_filter_presenter.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,YAAY,CAAC;AAQpC,MAAM,OAAO,0BAA0B;IAC7B,UAAU,CAAS;IACnB,MAAM,GAAG,IAAI,MAAM,CAAgB,IAAI,CAAC,CAAC;IACzC,SAAS,GAAG,IAAI,MAAM,CAAqB,GAAG,CAAC,CAAC;IAChD,oBAAoB,GAA+B,IAAI,CAAC;IACxD,iBAAiB,GAAG,IAAI,GAAG,EAAc,CAAC;IAE1C,WAAW,GAAG;QACpB,KAAK,EAAE,IAAI,CAAC,MAAM,CAAC,SAAS;QAC5B,QAAQ,EAAE,IAAI,CAAC,SAAS,CAAC,SAAS;KACnC,CAAC;IAEF,YAAY,SAAiB;QAC3B,IAAI,CAAC,UAAU,GAAG,SAAS,CAAC;IAC9B,CAAC;IAED,IAAI,UAAU;QACZ,OAAO,IAAI,CAAC,WAAW,CAAC;IAC1B,CAAC;IAED,QAAQ,CAAC,OAAmB;QAC1B,IAAI,CAAC,iBAAiB,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;QACpC,OAAO,GAAG,EAAE;YACV,IAAI,CAAC,iBAAiB,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;QACzC,CAAC,CAAC;IACJ,CAAC;IAED,QAAQ,CAAC,KAAoB;QAC3B,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;QACvB,IAAI,CAAC,iBAAiB,CAAC,OAAO,CAAC,OAAO,CAAC,EAAE,CAAC,OAAO,EAAE,CAAC,CAAC;IACvD,CAAC;IAED,WAAW,CAAC,QAA4B;QACtC,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;QAC7B,IAAI,CAAC,iBAAiB,CAAC,OAAO,CAAC,OAAO,CAAC,EAAE,CAAC,OAAO,EAAE,CAAC,CAAC;IACvD,CAAC;IAED,eAAe;QACb,IAAI,IAAI,CAAC,MAAM,CAAC,GAAG,EAAE,KAAK,IAAI,EAAE,CAAC;YAC/B,OAAO,EAAE,CAAC;QACZ,CAAC;QACD,OAAO,GAAG,IAAI,CAAC,UAAU,IAAI,IAAI,CAAC,SAAS,CAAC,GAAG,EAAE,IAAI,IAAI,CAAC,MAAM,CAAC,GAAG,EAAE,EAAE,CAAC;IAC3E,CAAC;IAED,gBAAgB,CAAC,mBAAwC;QACvD,IAAI,CAAC,oBAAoB,GAAG,mBAAmB,CAAC;QAChD,IAAI,CAAC,oBAAoB,CAAC,mBAAmB,CAAC,IAAI,CAAC,UAAU,EAAE,IAAI,CAAC,CAAC;IACvE,CAAC;IAED,cAAc,CAAC,SAAe;QAC5B,MAAM,UAAU,GAAG,SAAS,CAAC,OAAO,CAClC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,aAAa,IAAI,CAAC,CAAC,KAAK,KAAK,IAAI,CAAC,UAAU,CAC7D,CAAC;QAEF,MAAM,SAAS,GAAG,UAAU,CAAC,MAAM,CACjC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,MAAM,KAAK,IAAI,IAAI,CAAC,CAAC,MAAM,CAAC,IAAI,KAAK,kBAAkB,CAC/D,CAAC,CAAC,CAAC,CAAC;QAEL,IAAI,SAAS,IAAI,IAAI,EAAE,CAAC;YACtB,OAAO;QACT,CAAC;QAED,MAAM,MAAM,GAAG,SAAS,CAAC,MAAc,CAAC;QACxC,MAAM,YAAY,GAAG,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAS,CAAC;QAChD,MAAM,SAAS,GAAG,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAS,CAAC;QAC7C,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,YAAY,CAAC,KAA2B,CAAC,CAAC;QAC7D,MAAM,KAAK,GAAG,MAAM,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC;QACtC,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;IACzB,CAAC;IAED,OAAO;QACL,IAAI,CAAC,oBAAoB,EAAE,qBAAqB,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;QAClE,IAAI,CAAC,iBAAiB,CAAC,KAAK,EAAE,CAAC;IACjC,CAAC;CACF"}
1
+ {"version":3,"file":"number_field_filter_presenter.js","sources":["../../../../src/components/table_filter_panel/field_filters/number_field_filter_presenter.ts"],"sourcesContent":["import { Signal } from '@tcn/state';\nimport { Node } from 'clarity-pattern-parser';\nimport { FieldFilterRegistry, FieldFilterStrategy } from './field_filter_strategy.js';\nimport { ComparisonOperator } from '../types.js';\n\nexport class NumberFieldFilterPresenter implements FieldFilterStrategy {\n private _fieldName: string;\n private _value = new Signal<number | null>(null);\n private _operator = new Signal<ComparisonOperator>('=');\n private _fieldFilterRegistry: FieldFilterRegistry | null = null;\n private _onChangeHandlers = new Set<() => void>();\n\n private _broadcasts = {\n value: this._value.broadcast,\n operator: this._operator.broadcast,\n };\n\n constructor(fieldName: string) {\n this._fieldName = fieldName;\n }\n\n get broadcasts() {\n return this._broadcasts;\n }\n\n onChange(handler: () => void) {\n this._onChangeHandlers.add(handler);\n return () => {\n this._onChangeHandlers.delete(handler);\n };\n }\n\n setValue(value: number | null) {\n this._value.set(value);\n this._onChangeHandlers.forEach(handler => handler());\n }\n\n setOperator(operator: ComparisonOperator) {\n this._operator.set(operator);\n this._onChangeHandlers.forEach(handler => handler());\n }\n\n getFilterString() {\n if (this._value.get() === null) {\n return '';\n }\n return `${this._fieldName} ${this._operator.get()} ${this._value.get()}`;\n }\n\n setFieldRegistry(fieldFilterRegistry: FieldFilterRegistry) {\n this._fieldFilterRegistry = fieldFilterRegistry;\n this._fieldFilterRegistry.registerFieldFilter(this._fieldName, this);\n }\n\n setFilterState(filterAst: Node) {\n const fieldNodes = filterAst.findAll(\n (n: Node) => n.name === 'plain-field' && n.value === this._fieldName\n );\n\n const fieldNode = fieldNodes.filter(\n (n: Node) => n.parent !== null && n.parent.name === 'infix-expression'\n )[0];\n\n if (fieldNode == null) {\n return;\n }\n\n const parent = fieldNode.parent as Node;\n const operatorNode = parent.children[1] as Node;\n const valueNode = parent.children[2] as Node;\n this._operator.set(operatorNode.value as ComparisonOperator);\n const value = Number(valueNode.value);\n this._value.set(value);\n }\n\n dispose() {\n this._fieldFilterRegistry?.unregisterFieldFilter(this._fieldName);\n this._onChangeHandlers.clear();\n }\n}\n"],"names":["NumberFieldFilterPresenter","Signal","fieldName","handler","value","operator","fieldFilterRegistry","filterAst","fieldNode","n","parent","operatorNode","valueNode"],"mappings":";AAKO,MAAMA,EAA0D;AAAA,EAC7D;AAAA,EACA,SAAS,IAAIC,EAAsB,IAAI;AAAA,EACvC,YAAY,IAAIA,EAA2B,GAAG;AAAA,EAC9C,uBAAmD;AAAA,EACnD,wCAAwB,IAAA;AAAA,EAExB,cAAc;AAAA,IACpB,OAAO,KAAK,OAAO;AAAA,IACnB,UAAU,KAAK,UAAU;AAAA,EAAA;AAAA,EAG3B,YAAYC,GAAmB;AAC7B,SAAK,aAAaA;AAAA,EACpB;AAAA,EAEA,IAAI,aAAa;AACf,WAAO,KAAK;AAAA,EACd;AAAA,EAEA,SAASC,GAAqB;AAC5B,gBAAK,kBAAkB,IAAIA,CAAO,GAC3B,MAAM;AACX,WAAK,kBAAkB,OAAOA,CAAO;AAAA,IACvC;AAAA,EACF;AAAA,EAEA,SAASC,GAAsB;AAC7B,SAAK,OAAO,IAAIA,CAAK,GACrB,KAAK,kBAAkB,QAAQ,CAAAD,MAAWA,EAAA,CAAS;AAAA,EACrD;AAAA,EAEA,YAAYE,GAA8B;AACxC,SAAK,UAAU,IAAIA,CAAQ,GAC3B,KAAK,kBAAkB,QAAQ,CAAAF,MAAWA,EAAA,CAAS;AAAA,EACrD;AAAA,EAEA,kBAAkB;AAChB,WAAI,KAAK,OAAO,IAAA,MAAU,OACjB,KAEF,GAAG,KAAK,UAAU,IAAI,KAAK,UAAU,IAAA,CAAK,IAAI,KAAK,OAAO,IAAA,CAAK;AAAA,EACxE;AAAA,EAEA,iBAAiBG,GAA0C;AACzD,SAAK,uBAAuBA,GAC5B,KAAK,qBAAqB,oBAAoB,KAAK,YAAY,IAAI;AAAA,EACrE;AAAA,EAEA,eAAeC,GAAiB;AAK9B,UAAMC,IAJaD,EAAU;AAAA,MAC3B,CAACE,MAAYA,EAAE,SAAS,iBAAiBA,EAAE,UAAU,KAAK;AAAA,IAAA,EAG/B;AAAA,MAC3B,CAACA,MAAYA,EAAE,WAAW,QAAQA,EAAE,OAAO,SAAS;AAAA,IAAA,EACpD,CAAC;AAEH,QAAID,KAAa;AACf;AAGF,UAAME,IAASF,EAAU,QACnBG,IAAeD,EAAO,SAAS,CAAC,GAChCE,IAAYF,EAAO,SAAS,CAAC;AACnC,SAAK,UAAU,IAAIC,EAAa,KAA2B;AAC3D,UAAMP,IAAQ,OAAOQ,EAAU,KAAK;AACpC,SAAK,OAAO,IAAIR,CAAK;AAAA,EACvB;AAAA,EAEA,UAAU;AACR,SAAK,sBAAsB,sBAAsB,KAAK,UAAU,GAChE,KAAK,kBAAkB,MAAA;AAAA,EACzB;AACF;"}
@@ -1,5 +1,5 @@
1
- import React from 'react';
2
1
  export declare function NumberRangeFieldFilter({ fieldName, label, }: {
3
2
  fieldName: string;
4
3
  label: string;
5
- }): React.JSX.Element;
4
+ }): import("react/jsx-runtime").JSX.Element;
5
+ //# sourceMappingURL=number_range_field_filter.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"number_range_field_filter.d.ts","sourceRoot":"","sources":["../../../../src/components/table_filter_panel/field_filters/number_range_field_filter.tsx"],"names":[],"mappings":"AAUA,wBAAgB,sBAAsB,CAAC,EACrC,SAAS,EACT,KAAK,GACN,EAAE;IACD,SAAS,EAAE,MAAM,CAAC;IAClB,KAAK,EAAE,MAAM,CAAC;CACf,2CAmDA"}
@@ -1,32 +1,62 @@
1
- import { CrossCircleIcon } from '@tcn/icons/cross_circle_icon';
2
- import { useSignalValue } from '@tcn/state';
3
- import { Button } from '@tcn/ui/actions';
4
- import { Input } from '@tcn/ui/inputs';
5
- import { Box, HStack, VStack } from '@tcn/ui/stacks';
6
- import { BodyText, Title } from '@tcn/ui/typography';
7
- import React from 'react';
8
- import { useFieldFilterStrategy } from "./use_field_filter_strategy.js";
9
- import { NumberRangeFieldFilterPresenter } from './number_range_field_filter_presenter.js';
10
- export function NumberRangeFieldFilter({ fieldName, label, }) {
11
- const presenter = useFieldFilterStrategy(NumberRangeFieldFilterPresenter, fieldName);
12
- const minValue = useSignalValue(presenter.broadcasts.minValue);
13
- const maxValue = useSignalValue(presenter.broadcasts.maxValue);
14
- return (React.createElement(VStack, { gap: "4px" },
15
- React.createElement(Box, { width: "flex" },
16
- React.createElement(Title, { size: "md" }, label)),
17
- React.createElement(HStack, { gap: "4px" },
18
- React.createElement(Box, { width: "auto" },
19
- React.createElement(BodyText, { size: "lg" }, "Min")),
20
- React.createElement(Box, { width: "flex" },
21
- React.createElement(Input, { type: "number", value: String(minValue ?? ''), onChange: value => presenter.setMinValue(Number(value)) })),
22
- React.createElement(Button, { onClick: () => presenter.setMinValue(null), hierarchy: "tertiary", disabled: minValue == null },
23
- React.createElement(CrossCircleIcon, null))),
24
- React.createElement(HStack, { gap: "4px" },
25
- React.createElement(Box, { width: "auto" },
26
- React.createElement(BodyText, { size: "lg" }, "Max")),
27
- React.createElement(Box, { width: "flex" },
28
- React.createElement(Input, { type: "number", value: String(maxValue ?? ''), onChange: value => presenter.setMaxValue(Number(value)) })),
29
- React.createElement(Button, { onClick: () => presenter.setMaxValue(null), hierarchy: "tertiary", disabled: maxValue == null },
30
- React.createElement(CrossCircleIcon, null)))));
1
+ import { jsxs as t, jsx as e } from "react/jsx-runtime";
2
+ import { CrossCircleIcon as o } from "@tcn/icons/cross_circle_icon.js";
3
+ import { useSignalValue as d } from "@tcn/state";
4
+ import { Button as m } from "@tcn/ui/actions";
5
+ import { Input as u } from "@tcn/ui/inputs";
6
+ import { VStack as x, Box as i, HStack as c } from "@tcn/ui/stacks";
7
+ import { Title as f, BodyText as s } from "@tcn/ui/typography";
8
+ import { useFieldFilterStrategy as g } from "./use_field_filter_strategy.js";
9
+ import { NumberRangeFieldFilterPresenter as b } from "./number_range_field_filter_presenter.js";
10
+ function z({
11
+ fieldName: h,
12
+ label: p
13
+ }) {
14
+ const r = g(b, h), n = d(r.broadcasts.minValue), a = d(r.broadcasts.maxValue);
15
+ return /* @__PURE__ */ t(x, { gap: "4px", children: [
16
+ /* @__PURE__ */ e(i, { width: "flex", children: /* @__PURE__ */ e(f, { size: "md", children: p }) }),
17
+ /* @__PURE__ */ t(c, { gap: "4px", children: [
18
+ /* @__PURE__ */ e(i, { width: "auto", children: /* @__PURE__ */ e(s, { size: "lg", children: "Min" }) }),
19
+ /* @__PURE__ */ e(i, { width: "flex", children: /* @__PURE__ */ e(
20
+ u,
21
+ {
22
+ type: "number",
23
+ value: String(n ?? ""),
24
+ onChange: (l) => r.setMinValue(Number(l))
25
+ }
26
+ ) }),
27
+ /* @__PURE__ */ e(
28
+ m,
29
+ {
30
+ onClick: () => r.setMinValue(null),
31
+ hierarchy: "tertiary",
32
+ disabled: n == null,
33
+ children: /* @__PURE__ */ e(o, {})
34
+ }
35
+ )
36
+ ] }),
37
+ /* @__PURE__ */ t(c, { gap: "4px", children: [
38
+ /* @__PURE__ */ e(i, { width: "auto", children: /* @__PURE__ */ e(s, { size: "lg", children: "Max" }) }),
39
+ /* @__PURE__ */ e(i, { width: "flex", children: /* @__PURE__ */ e(
40
+ u,
41
+ {
42
+ type: "number",
43
+ value: String(a ?? ""),
44
+ onChange: (l) => r.setMaxValue(Number(l))
45
+ }
46
+ ) }),
47
+ /* @__PURE__ */ e(
48
+ m,
49
+ {
50
+ onClick: () => r.setMaxValue(null),
51
+ hierarchy: "tertiary",
52
+ disabled: a == null,
53
+ children: /* @__PURE__ */ e(o, {})
54
+ }
55
+ )
56
+ ] })
57
+ ] });
31
58
  }
32
- //# sourceMappingURL=number_range_field_filter.js.map
59
+ export {
60
+ z as NumberRangeFieldFilter
61
+ };
62
+ //# sourceMappingURL=number_range_field_filter.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"number_range_field_filter.js","sourceRoot":"","sources":["../../../../src/components/table_filter_panel/field_filters/number_range_field_filter.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,MAAM,8BAA8B,CAAC;AAC/D,OAAO,EAAE,cAAc,EAAE,MAAM,YAAY,CAAC;AAC5C,OAAO,EAAE,MAAM,EAAE,MAAM,iBAAiB,CAAC;AACzC,OAAO,EAAE,KAAK,EAAE,MAAM,gBAAgB,CAAC;AACvC,OAAO,EAAE,GAAG,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,gBAAgB,CAAC;AACrD,OAAO,EAAE,QAAQ,EAAE,KAAK,EAAE,MAAM,oBAAoB,CAAC;AACrD,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,EAAE,sBAAsB,EAAE,uCAAqF;AACtH,OAAO,EAAE,+BAA+B,EAAE,MAAM,0CAA0C,CAAC;AAE3F,MAAM,UAAU,sBAAsB,CAAC,EACrC,SAAS,EACT,KAAK,GACgC;IACrC,MAAM,SAAS,GAAG,sBAAsB,CAAC,+BAA+B,EAAE,SAAS,CAAC,CAAC;IAErF,MAAM,QAAQ,GAAG,cAAc,CAAC,SAAS,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAC;IAC/D,MAAM,QAAQ,GAAG,cAAc,CAAC,SAAS,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAC;IAE/D,OAAO,CACL,oBAAC,MAAM,IAAC,GAAG,EAAC,KAAK;QACf,oBAAC,GAAG,IAAC,KAAK,EAAC,MAAM;YACf,oBAAC,KAAK,IAAC,IAAI,EAAC,IAAI,IAAE,KAAK,CAAS,CAC5B;QACN,oBAAC,MAAM,IAAC,GAAG,EAAC,KAAK;YACf,oBAAC,GAAG,IAAC,KAAK,EAAC,MAAM;gBACf,oBAAC,QAAQ,IAAC,IAAI,EAAC,IAAI,UAAe,CAC9B;YACN,oBAAC,GAAG,IAAC,KAAK,EAAC,MAAM;gBACf,oBAAC,KAAK,IACJ,IAAI,EAAC,QAAQ,EACb,KAAK,EAAE,MAAM,CAAC,QAAQ,IAAI,EAAE,CAAC,EAC7B,QAAQ,EAAE,KAAK,CAAC,EAAE,CAAC,SAAS,CAAC,WAAW,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,GACvD,CACE;YACN,oBAAC,MAAM,IACL,OAAO,EAAE,GAAG,EAAE,CAAC,SAAS,CAAC,WAAW,CAAC,IAAI,CAAC,EAC1C,SAAS,EAAC,UAAU,EACpB,QAAQ,EAAE,QAAQ,IAAI,IAAI;gBAE1B,oBAAC,eAAe,OAAG,CACZ,CACF;QACT,oBAAC,MAAM,IAAC,GAAG,EAAC,KAAK;YACf,oBAAC,GAAG,IAAC,KAAK,EAAC,MAAM;gBACf,oBAAC,QAAQ,IAAC,IAAI,EAAC,IAAI,UAAe,CAC9B;YACN,oBAAC,GAAG,IAAC,KAAK,EAAC,MAAM;gBACf,oBAAC,KAAK,IACJ,IAAI,EAAC,QAAQ,EACb,KAAK,EAAE,MAAM,CAAC,QAAQ,IAAI,EAAE,CAAC,EAC7B,QAAQ,EAAE,KAAK,CAAC,EAAE,CAAC,SAAS,CAAC,WAAW,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,GACvD,CACE;YACN,oBAAC,MAAM,IACL,OAAO,EAAE,GAAG,EAAE,CAAC,SAAS,CAAC,WAAW,CAAC,IAAI,CAAC,EAC1C,SAAS,EAAC,UAAU,EACpB,QAAQ,EAAE,QAAQ,IAAI,IAAI;gBAE1B,oBAAC,eAAe,OAAG,CACZ,CACF,CACF,CACV,CAAC;AACJ,CAAC"}
1
+ {"version":3,"file":"number_range_field_filter.js","sources":["../../../../src/components/table_filter_panel/field_filters/number_range_field_filter.tsx"],"sourcesContent":["import { CrossCircleIcon } from '@tcn/icons/cross_circle_icon.js';\nimport { useSignalValue } from '@tcn/state';\nimport { Button } from '@tcn/ui/actions';\nimport { Input } from '@tcn/ui/inputs';\nimport { Box, HStack, VStack } from '@tcn/ui/stacks';\nimport { BodyText, Title } from '@tcn/ui/typography';\nimport React from 'react';\nimport { useFieldFilterStrategy } from './use_field_filter_strategy.js';\nimport { NumberRangeFieldFilterPresenter } from './number_range_field_filter_presenter.js';\n\nexport function NumberRangeFieldFilter({\n fieldName,\n label,\n}: {\n fieldName: string;\n label: string;\n}) {\n const presenter = useFieldFilterStrategy(NumberRangeFieldFilterPresenter, fieldName);\n\n const minValue = useSignalValue(presenter.broadcasts.minValue);\n const maxValue = useSignalValue(presenter.broadcasts.maxValue);\n\n return (\n <VStack gap=\"4px\">\n <Box width=\"flex\">\n <Title size=\"md\">{label}</Title>\n </Box>\n <HStack gap=\"4px\">\n <Box width=\"auto\">\n <BodyText size=\"lg\">Min</BodyText>\n </Box>\n <Box width=\"flex\">\n <Input\n type=\"number\"\n value={String(minValue ?? '')}\n onChange={value => presenter.setMinValue(Number(value))}\n />\n </Box>\n <Button\n onClick={() => presenter.setMinValue(null)}\n hierarchy=\"tertiary\"\n disabled={minValue == null}\n >\n <CrossCircleIcon />\n </Button>\n </HStack>\n <HStack gap=\"4px\">\n <Box width=\"auto\">\n <BodyText size=\"lg\">Max</BodyText>\n </Box>\n <Box width=\"flex\">\n <Input\n type=\"number\"\n value={String(maxValue ?? '')}\n onChange={value => presenter.setMaxValue(Number(value))}\n />\n </Box>\n <Button\n onClick={() => presenter.setMaxValue(null)}\n hierarchy=\"tertiary\"\n disabled={maxValue == null}\n >\n <CrossCircleIcon />\n </Button>\n </HStack>\n </VStack>\n );\n}\n"],"names":["NumberRangeFieldFilter","fieldName","label","presenter","useFieldFilterStrategy","NumberRangeFieldFilterPresenter","minValue","useSignalValue","maxValue","jsxs","VStack","jsx","Box","Title","HStack","BodyText","Input","value","Button","CrossCircleIcon"],"mappings":";;;;;;;;;AAUO,SAASA,EAAuB;AAAA,EACrC,WAAAC;AAAA,EACA,OAAAC;AACF,GAGG;AACD,QAAMC,IAAYC,EAAuBC,GAAiCJ,CAAS,GAE7EK,IAAWC,EAAeJ,EAAU,WAAW,QAAQ,GACvDK,IAAWD,EAAeJ,EAAU,WAAW,QAAQ;AAE7D,SACE,gBAAAM,EAACC,GAAA,EAAO,KAAI,OACV,UAAA;AAAA,IAAA,gBAAAC,EAACC,GAAA,EAAI,OAAM,QACT,UAAA,gBAAAD,EAACE,KAAM,MAAK,MAAM,aAAM,EAAA,CAC1B;AAAA,IACA,gBAAAJ,EAACK,GAAA,EAAO,KAAI,OACV,UAAA;AAAA,MAAA,gBAAAH,EAACC,GAAA,EAAI,OAAM,QACT,UAAA,gBAAAD,EAACI,KAAS,MAAK,MAAK,iBAAG,EAAA,CACzB;AAAA,MACA,gBAAAJ,EAACC,GAAA,EAAI,OAAM,QACT,UAAA,gBAAAD;AAAA,QAACK;AAAA,QAAA;AAAA,UACC,MAAK;AAAA,UACL,OAAO,OAAOV,KAAY,EAAE;AAAA,UAC5B,UAAU,CAAAW,MAASd,EAAU,YAAY,OAAOc,CAAK,CAAC;AAAA,QAAA;AAAA,MAAA,GAE1D;AAAA,MACA,gBAAAN;AAAA,QAACO;AAAA,QAAA;AAAA,UACC,SAAS,MAAMf,EAAU,YAAY,IAAI;AAAA,UACzC,WAAU;AAAA,UACV,UAAUG,KAAY;AAAA,UAEtB,4BAACa,GAAA,CAAA,CAAgB;AAAA,QAAA;AAAA,MAAA;AAAA,IACnB,GACF;AAAA,IACA,gBAAAV,EAACK,GAAA,EAAO,KAAI,OACV,UAAA;AAAA,MAAA,gBAAAH,EAACC,GAAA,EAAI,OAAM,QACT,UAAA,gBAAAD,EAACI,KAAS,MAAK,MAAK,iBAAG,EAAA,CACzB;AAAA,MACA,gBAAAJ,EAACC,GAAA,EAAI,OAAM,QACT,UAAA,gBAAAD;AAAA,QAACK;AAAA,QAAA;AAAA,UACC,MAAK;AAAA,UACL,OAAO,OAAOR,KAAY,EAAE;AAAA,UAC5B,UAAU,CAAAS,MAASd,EAAU,YAAY,OAAOc,CAAK,CAAC;AAAA,QAAA;AAAA,MAAA,GAE1D;AAAA,MACA,gBAAAN;AAAA,QAACO;AAAA,QAAA;AAAA,UACC,SAAS,MAAMf,EAAU,YAAY,IAAI;AAAA,UACzC,WAAU;AAAA,UACV,UAAUK,KAAY;AAAA,UAEtB,4BAACW,GAAA,CAAA,CAAgB;AAAA,QAAA;AAAA,MAAA;AAAA,IACnB,EAAA,CACF;AAAA,EAAA,GACF;AAEJ;"}
@@ -1,5 +1,5 @@
1
1
  import { Node } from 'clarity-pattern-parser';
2
- import { FieldFilterRegistry, FieldFilterStrategy } from "./field_filter_strategy.js";
2
+ import { FieldFilterRegistry, FieldFilterStrategy } from './field_filter_strategy.js';
3
3
  export declare class NumberRangeFieldFilterPresenter implements FieldFilterStrategy {
4
4
  private _fieldName;
5
5
  private _fieldFilterRegistry;
@@ -9,8 +9,8 @@ export declare class NumberRangeFieldFilterPresenter implements FieldFilterStrat
9
9
  private _broadcasts;
10
10
  constructor(fieldName: string);
11
11
  get broadcasts(): {
12
- minValue: import("@tcn/state").IBroadcast<number | null>;
13
- maxValue: import("@tcn/state").IBroadcast<number | null>;
12
+ minValue: import('@tcn/state').IBroadcast<number | null>;
13
+ maxValue: import('@tcn/state').IBroadcast<number | null>;
14
14
  };
15
15
  getFilterString(): string;
16
16
  onChange(handler: () => void): () => void;
@@ -20,3 +20,4 @@ export declare class NumberRangeFieldFilterPresenter implements FieldFilterStrat
20
20
  setFilterState(filterAst: Node): void;
21
21
  dispose(): void;
22
22
  }
23
+ //# sourceMappingURL=number_range_field_filter_presenter.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"number_range_field_filter_presenter.d.ts","sourceRoot":"","sources":["../../../../src/components/table_filter_panel/field_filters/number_range_field_filter_presenter.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,IAAI,EAAE,MAAM,wBAAwB,CAAC;AAC9C,OAAO,EAAE,mBAAmB,EAAE,mBAAmB,EAAE,MAAM,4BAA4B,CAAC;AAEtF,qBAAa,+BAAgC,YAAW,mBAAmB;IACzE,OAAO,CAAC,UAAU,CAAS;IAC3B,OAAO,CAAC,oBAAoB,CAAoC;IAChE,OAAO,CAAC,SAAS,CAAmC;IACpD,OAAO,CAAC,SAAS,CAAmC;IACpD,OAAO,CAAC,iBAAiB,CAAyB;IAElD,OAAO,CAAC,WAAW,CAGjB;gBAEU,SAAS,EAAE,MAAM;IAI7B,IAAI,UAAU;;;MAEb;IAED,eAAe;IAaf,QAAQ,CAAC,OAAO,EAAE,MAAM,IAAI;IAO5B,WAAW,CAAC,QAAQ,EAAE,MAAM,GAAG,IAAI;IAKnC,WAAW,CAAC,QAAQ,EAAE,MAAM,GAAG,IAAI;IAKnC,gBAAgB,CAAC,aAAa,EAAE,mBAAmB;IAKnD,cAAc,CAAC,SAAS,EAAE,IAAI;IA6C9B,OAAO;CAKR"}
@@ -1,93 +1,59 @@
1
- import { Signal } from '@tcn/state';
2
- export class NumberRangeFieldFilterPresenter {
3
- _fieldName;
4
- _fieldFilterRegistry = null;
5
- _minValue = new Signal(null);
6
- _maxValue = new Signal(null);
7
- _onChangeHandlers = new Set();
8
- _broadcasts = {
9
- minValue: this._minValue.broadcast,
10
- maxValue: this._maxValue.broadcast,
1
+ import { Signal as s } from "@tcn/state";
2
+ class h {
3
+ _fieldName;
4
+ _fieldFilterRegistry = null;
5
+ _minValue = new s(null);
6
+ _maxValue = new s(null);
7
+ _onChangeHandlers = /* @__PURE__ */ new Set();
8
+ _broadcasts = {
9
+ minValue: this._minValue.broadcast,
10
+ maxValue: this._maxValue.broadcast
11
+ };
12
+ constructor(e) {
13
+ this._fieldName = e;
14
+ }
15
+ get broadcasts() {
16
+ return this._broadcasts;
17
+ }
18
+ getFilterString() {
19
+ const e = this._minValue.get(), l = this._maxValue.get();
20
+ return e !== null && l !== null ? `(${this._fieldName} >= ${e} AND ${this._fieldName} <= ${l})` : e !== null ? `${this._fieldName} >= ${e}` : l !== null ? `${this._fieldName} <= ${l}` : "";
21
+ }
22
+ onChange(e) {
23
+ return this._onChangeHandlers.add(e), () => {
24
+ this._onChangeHandlers.delete(e);
11
25
  };
12
- constructor(fieldName) {
13
- this._fieldName = fieldName;
14
- }
15
- get broadcasts() {
16
- return this._broadcasts;
17
- }
18
- getFilterString() {
19
- const minValue = this._minValue.get();
20
- const maxValue = this._maxValue.get();
21
- if (minValue !== null && maxValue !== null) {
22
- return `(${this._fieldName} >= ${minValue} AND ${this._fieldName} <= ${maxValue})`;
23
- }
24
- else if (minValue !== null) {
25
- return `${this._fieldName} >= ${minValue}`;
26
- }
27
- else if (maxValue !== null) {
28
- return `${this._fieldName} <= ${maxValue}`;
29
- }
30
- return '';
31
- }
32
- onChange(handler) {
33
- this._onChangeHandlers.add(handler);
34
- return () => {
35
- this._onChangeHandlers.delete(handler);
36
- };
37
- }
38
- setMinValue(minValue) {
39
- this._minValue.set(minValue);
40
- this._onChangeHandlers.forEach(handler => handler());
41
- }
42
- setMaxValue(maxValue) {
43
- this._maxValue.set(maxValue);
44
- this._onChangeHandlers.forEach(handler => handler());
45
- }
46
- setFieldRegistry(fieldRegistry) {
47
- this._fieldFilterRegistry = fieldRegistry;
48
- fieldRegistry.registerFieldFilter(this._fieldName, this);
49
- }
50
- setFilterState(filterAst) {
51
- const fieldNodes = filterAst.findAll(n => n.name === 'plain-field' && n.value === this._fieldName);
52
- if (fieldNodes.length === 0) {
53
- return;
54
- }
55
- if (fieldNodes.length === 1) {
56
- const operatorNode = fieldNodes[0].parent?.children[1];
57
- const valueNode = fieldNodes[0].parent?.children[2];
58
- if (operatorNode?.value === '>=' && valueNode != null) {
59
- this.setMinValue(Number(valueNode?.value));
60
- }
61
- else if (operatorNode?.value === '<=' && valueNode != null) {
62
- this.setMaxValue(Number(valueNode?.value));
63
- }
64
- return;
65
- }
66
- if (fieldNodes.length === 2) {
67
- const operatorOneNode = fieldNodes[0].parent?.children[1];
68
- const operatorTwoNode = fieldNodes[1].parent?.children[1];
69
- const valueOneNode = fieldNodes[0].parent?.children[2];
70
- const valueTwoNode = fieldNodes[1].parent?.children[2];
71
- if (operatorOneNode?.value === '>=' &&
72
- operatorTwoNode?.value === '<=' &&
73
- valueOneNode != null &&
74
- valueTwoNode != null) {
75
- this.setMinValue(Number(valueOneNode?.value));
76
- this.setMaxValue(Number(valueTwoNode?.value));
77
- }
78
- else if (operatorOneNode?.value === '<=' &&
79
- operatorTwoNode?.value === '>=' &&
80
- valueOneNode != null &&
81
- valueTwoNode != null) {
82
- this.setMaxValue(Number(valueOneNode?.value));
83
- this.setMinValue(Number(valueTwoNode?.value));
84
- }
85
- }
86
- }
87
- dispose() {
88
- this._fieldFilterRegistry?.unregisterFieldFilter(this._fieldName);
89
- this._fieldFilterRegistry = null;
90
- this._onChangeHandlers.clear();
91
- }
26
+ }
27
+ setMinValue(e) {
28
+ this._minValue.set(e), this._onChangeHandlers.forEach((l) => l());
29
+ }
30
+ setMaxValue(e) {
31
+ this._maxValue.set(e), this._onChangeHandlers.forEach((l) => l());
32
+ }
33
+ setFieldRegistry(e) {
34
+ this._fieldFilterRegistry = e, e.registerFieldFilter(this._fieldName, this);
35
+ }
36
+ setFilterState(e) {
37
+ const l = e.findAll(
38
+ (t) => t.name === "plain-field" && t.value === this._fieldName
39
+ );
40
+ if (l.length !== 0) {
41
+ if (l.length === 1) {
42
+ const t = l[0].parent?.children[1], a = l[0].parent?.children[2];
43
+ t?.value === ">=" && a != null ? this.setMinValue(Number(a?.value)) : t?.value === "<=" && a != null && this.setMaxValue(Number(a?.value));
44
+ return;
45
+ }
46
+ if (l.length === 2) {
47
+ const t = l[0].parent?.children[1], a = l[1].parent?.children[1], i = l[0].parent?.children[2], n = l[1].parent?.children[2];
48
+ t?.value === ">=" && a?.value === "<=" && i != null && n != null ? (this.setMinValue(Number(i?.value)), this.setMaxValue(Number(n?.value))) : t?.value === "<=" && a?.value === ">=" && i != null && n != null && (this.setMaxValue(Number(i?.value)), this.setMinValue(Number(n?.value)));
49
+ }
50
+ }
51
+ }
52
+ dispose() {
53
+ this._fieldFilterRegistry?.unregisterFieldFilter(this._fieldName), this._fieldFilterRegistry = null, this._onChangeHandlers.clear();
54
+ }
92
55
  }
93
- //# sourceMappingURL=number_range_field_filter_presenter.js.map
56
+ export {
57
+ h as NumberRangeFieldFilterPresenter
58
+ };
59
+ //# sourceMappingURL=number_range_field_filter_presenter.js.map