@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.
- package/README.md +1 -1
- package/dist/cell.css +1 -0
- package/dist/cell.module-WpHnQBVu.js +5 -0
- package/dist/cell.module-WpHnQBVu.js.map +1 -0
- package/dist/components/cells/data_cell.d.ts +3 -2
- package/dist/components/cells/data_cell.d.ts.map +1 -0
- package/dist/components/cells/data_cell.js +18 -10
- package/dist/components/cells/data_cell.js.map +1 -1
- package/dist/components/cells/footer_cell.d.ts +3 -2
- package/dist/components/cells/footer_cell.d.ts.map +1 -0
- package/dist/components/cells/footer_cell.js +18 -10
- package/dist/components/cells/footer_cell.js.map +1 -1
- package/dist/components/cells/header_cell.d.ts +3 -2
- package/dist/components/cells/header_cell.d.ts.map +1 -0
- package/dist/components/cells/header_cell.js +52 -18
- package/dist/components/cells/header_cell.js.map +1 -1
- package/dist/components/cells/sticky_row_data_cell.d.ts +3 -2
- package/dist/components/cells/sticky_row_data_cell.d.ts.map +1 -0
- package/dist/components/cells/sticky_row_data_cell.js +26 -11
- package/dist/components/cells/sticky_row_data_cell.js.map +1 -1
- package/dist/components/cells/sticky_row_fill_cell.d.ts +2 -2
- package/dist/components/cells/sticky_row_fill_cell.d.ts.map +1 -0
- package/dist/components/cells/sticky_row_fill_cell.js +15 -5
- package/dist/components/cells/sticky_row_fill_cell.js.map +1 -1
- package/dist/components/global_search.d.ts +2 -2
- package/dist/components/global_search.d.ts.map +1 -0
- package/dist/components/global_search.js +26 -9
- package/dist/components/global_search.js.map +1 -1
- package/dist/components/global_search_presenter.d.ts +2 -1
- package/dist/components/global_search_presenter.d.ts.map +1 -0
- package/dist/components/global_search_presenter.js +20 -18
- package/dist/components/global_search_presenter.js.map +1 -1
- package/dist/components/table/table.d.ts +3 -2
- package/dist/components/table/table.d.ts.map +1 -0
- package/dist/components/table/table.js +140 -77
- package/dist/components/table/table.js.map +1 -1
- package/dist/components/table/table_column.d.ts +1 -1
- package/dist/components/table/table_column.d.ts.map +1 -0
- package/dist/components/table/table_column.js +6 -5
- package/dist/components/table/table_column.js.map +1 -1
- package/dist/components/table/table_presenter.d.ts +3 -2
- package/dist/components/table/table_presenter.d.ts.map +1 -0
- package/dist/components/table/table_presenter.js +45 -62
- package/dist/components/table/table_presenter.js.map +1 -1
- package/dist/components/table_filter_panel/field_filters/date_field_filter.d.ts +2 -2
- package/dist/components/table_filter_panel/field_filters/date_field_filter.d.ts.map +1 -0
- package/dist/components/table_filter_panel/field_filters/date_field_filter.js +59 -33
- package/dist/components/table_filter_panel/field_filters/date_field_filter.js.map +1 -1
- package/dist/components/table_filter_panel/field_filters/date_field_filter_presenter.d.ts +4 -3
- package/dist/components/table_filter_panel/field_filters/date_field_filter_presenter.d.ts.map +1 -0
- package/dist/components/table_filter_panel/field_filters/date_field_filter_presenter.js +57 -91
- package/dist/components/table_filter_panel/field_filters/date_field_filter_presenter.js.map +1 -1
- package/dist/components/table_filter_panel/field_filters/field_filter_props.d.ts +1 -0
- package/dist/components/table_filter_panel/field_filters/field_filter_props.d.ts.map +1 -0
- package/dist/components/table_filter_panel/field_filters/field_filter_strategy.d.ts +1 -0
- package/dist/components/table_filter_panel/field_filters/field_filter_strategy.d.ts.map +1 -0
- package/dist/components/table_filter_panel/field_filters/mulit_select_field_filter.d.ts +3 -3
- package/dist/components/table_filter_panel/field_filters/mulit_select_field_filter.d.ts.map +1 -0
- package/dist/components/table_filter_panel/field_filters/mulit_select_field_filter.js +52 -29
- package/dist/components/table_filter_panel/field_filters/mulit_select_field_filter.js.map +1 -1
- package/dist/components/table_filter_panel/field_filters/multi_select_field_filter_presenter.d.ts +3 -2
- package/dist/components/table_filter_panel/field_filters/multi_select_field_filter_presenter.d.ts.map +1 -0
- package/dist/components/table_filter_panel/field_filters/multi_select_field_filter_presenter.js +53 -70
- package/dist/components/table_filter_panel/field_filters/multi_select_field_filter_presenter.js.map +1 -1
- package/dist/components/table_filter_panel/field_filters/number_field_filter.d.ts +3 -3
- package/dist/components/table_filter_panel/field_filters/number_field_filter.d.ts.map +1 -0
- package/dist/components/table_filter_panel/field_filters/number_field_filter.js +47 -23
- package/dist/components/table_filter_panel/field_filters/number_field_filter.js.map +1 -1
- package/dist/components/table_filter_panel/field_filters/number_field_filter_presenter.d.ts +5 -4
- package/dist/components/table_filter_panel/field_filters/number_field_filter_presenter.d.ts.map +1 -0
- package/dist/components/table_filter_panel/field_filters/number_field_filter_presenter.js +53 -58
- package/dist/components/table_filter_panel/field_filters/number_field_filter_presenter.js.map +1 -1
- package/dist/components/table_filter_panel/field_filters/number_range_field_filter.d.ts +2 -2
- package/dist/components/table_filter_panel/field_filters/number_range_field_filter.d.ts.map +1 -0
- package/dist/components/table_filter_panel/field_filters/number_range_field_filter.js +61 -31
- package/dist/components/table_filter_panel/field_filters/number_range_field_filter.js.map +1 -1
- package/dist/components/table_filter_panel/field_filters/number_range_field_filter_presenter.d.ts +4 -3
- package/dist/components/table_filter_panel/field_filters/number_range_field_filter_presenter.d.ts.map +1 -0
- package/dist/components/table_filter_panel/field_filters/number_range_field_filter_presenter.js +57 -91
- package/dist/components/table_filter_panel/field_filters/number_range_field_filter_presenter.js.map +1 -1
- package/dist/components/table_filter_panel/field_filters/select_field_filter.d.ts +3 -3
- package/dist/components/table_filter_panel/field_filters/select_field_filter.d.ts.map +1 -0
- package/dist/components/table_filter_panel/field_filters/select_field_filter.js +49 -24
- package/dist/components/table_filter_panel/field_filters/select_field_filter.js.map +1 -1
- package/dist/components/table_filter_panel/field_filters/select_field_filter_presenter.d.ts +3 -2
- package/dist/components/table_filter_panel/field_filters/select_field_filter_presenter.d.ts.map +1 -0
- package/dist/components/table_filter_panel/field_filters/select_field_filter_presenter.js +49 -53
- package/dist/components/table_filter_panel/field_filters/select_field_filter_presenter.js.map +1 -1
- package/dist/components/table_filter_panel/field_filters/string_field_filter.d.ts +3 -3
- package/dist/components/table_filter_panel/field_filters/string_field_filter.d.ts.map +1 -0
- package/dist/components/table_filter_panel/field_filters/string_field_filter.js +62 -33
- package/dist/components/table_filter_panel/field_filters/string_field_filter.js.map +1 -1
- package/dist/components/table_filter_panel/field_filters/string_field_filter_presenter.d.ts +5 -4
- package/dist/components/table_filter_panel/field_filters/string_field_filter_presenter.d.ts.map +1 -0
- package/dist/components/table_filter_panel/field_filters/string_field_filter_presenter.js +54 -59
- package/dist/components/table_filter_panel/field_filters/string_field_filter_presenter.js.map +1 -1
- package/dist/components/table_filter_panel/field_filters/use_field_filter_strategy.d.ts +2 -1
- package/dist/components/table_filter_panel/field_filters/use_field_filter_strategy.d.ts.map +1 -0
- package/dist/components/table_filter_panel/field_filters/use_field_filter_strategy.js +13 -19
- package/dist/components/table_filter_panel/field_filters/use_field_filter_strategy.js.map +1 -1
- package/dist/components/table_filter_panel/table_filter_panel.d.ts +5 -4
- package/dist/components/table_filter_panel/table_filter_panel.d.ts.map +1 -0
- package/dist/components/table_filter_panel/table_filter_panel.js +15 -11
- package/dist/components/table_filter_panel/table_filter_panel.js.map +1 -1
- package/dist/components/table_filter_panel/table_filter_panel_presenter.d.ts +2 -2
- package/dist/components/table_filter_panel/table_filter_panel_presenter.d.ts.map +1 -0
- package/dist/components/table_filter_panel/table_filter_panel_presenter.js +45 -62
- package/dist/components/table_filter_panel/table_filter_panel_presenter.js.map +1 -1
- package/dist/components/table_filter_panel/types.d.ts +1 -0
- package/dist/components/table_filter_panel/types.d.ts.map +1 -0
- package/dist/components/table_filter_panel/types.js +5 -2
- package/dist/components/table_filter_panel/types.js.map +1 -1
- package/dist/components/table_pager.d.ts +2 -2
- package/dist/components/table_pager.d.ts.map +1 -0
- package/dist/components/table_pager.js +22 -20
- package/dist/components/table_pager.js.map +1 -1
- package/dist/index.d.ts +1 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +27 -13
- package/dist/index.js.map +1 -1
- package/dist/table.css +1 -0
- package/dist/table_pager.css +1 -0
- package/package.json +61 -61
- package/src/__stories__/aip_table.stories.tsx +190 -0
- package/src/__stories__/auth_provider.tsx +14 -0
- package/src/__stories__/demo.stories.tsx +137 -0
- package/src/__stories__/sample_data.ts +1398 -0
- package/src/__stories__/table.stories.tsx +423 -0
- package/src/__tests__/sanity.test.ts +7 -0
- package/src/components/cells/data_cell.tsx +25 -0
- package/src/components/cells/footer_cell.tsx +25 -0
- package/src/components/cells/header_cell.tsx +77 -0
- package/src/components/cells/sticky_row_data_cell.tsx +31 -0
- package/src/components/cells/sticky_row_fill_cell.tsx +16 -0
- package/src/components/global_search.tsx +33 -0
- package/src/components/global_search_presenter.ts +24 -0
- package/{dist → src}/components/table/table.module.css +3 -2
- package/src/components/table/table.tsx +183 -0
- package/src/components/table/table_column.tsx +27 -0
- package/src/components/table/table_presenter.test.ts +161 -0
- package/src/components/table/table_presenter.ts +103 -0
- package/src/components/table_filter_panel/field_filters/date_field_filter.tsx +70 -0
- package/src/components/table_filter_panel/field_filters/date_field_filter_presenter.test.ts +583 -0
- package/src/components/table_filter_panel/field_filters/date_field_filter_presenter.ts +110 -0
- package/src/components/table_filter_panel/field_filters/field_filter_props.ts +5 -0
- package/src/components/table_filter_panel/field_filters/field_filter_strategy.ts +14 -0
- package/src/components/table_filter_panel/field_filters/mulit_select_field_filter.tsx +68 -0
- package/src/components/table_filter_panel/field_filters/multi_select_field_filter_presenter.test.ts +444 -0
- package/src/components/table_filter_panel/field_filters/multi_select_field_filter_presenter.ts +90 -0
- package/src/components/table_filter_panel/field_filters/number_field_filter.tsx +53 -0
- package/src/components/table_filter_panel/field_filters/number_field_filter_presenter.test.ts +431 -0
- package/src/components/table_filter_panel/field_filters/number_field_filter_presenter.ts +80 -0
- package/src/components/table_filter_panel/field_filters/number_range_field_filter.tsx +68 -0
- package/src/components/table_filter_panel/field_filters/number_range_field_filter_presenter.test.ts +582 -0
- package/src/components/table_filter_panel/field_filters/number_range_field_filter_presenter.ts +110 -0
- package/src/components/table_filter_panel/field_filters/select_field_filter.tsx +57 -0
- package/src/components/table_filter_panel/field_filters/select_field_filter_presenter.test.ts +365 -0
- package/src/components/table_filter_panel/field_filters/select_field_filter_presenter.ts +74 -0
- package/src/components/table_filter_panel/field_filters/string_field_filter.tsx +70 -0
- package/src/components/table_filter_panel/field_filters/string_field_filter_presenter.test.ts +296 -0
- package/src/components/table_filter_panel/field_filters/string_field_filter_presenter.ts +81 -0
- package/src/components/table_filter_panel/field_filters/use_field_filter_strategy.tsx +30 -0
- package/src/components/table_filter_panel/table_filter_panel.stories.tsx +46 -0
- package/src/components/table_filter_panel/table_filter_panel.tsx +26 -0
- package/src/components/table_filter_panel/table_filter_panel_presenter.ts +77 -0
- package/src/components/table_filter_panel/types.ts +3 -0
- package/src/components/table_pager.tsx +39 -0
- package/src/index.ts +16 -0
- package/tsconfig.json +36 -0
- package/types/file_types.d.ts +54 -0
- package/types/react_color.d.ts +61 -0
- package/dist/__stories__/aip_table.stories.d.ts +0 -5
- package/dist/__stories__/aip_table.stories.js +0 -96
- package/dist/__stories__/aip_table.stories.js.map +0 -1
- package/dist/__stories__/auth_provider.d.ts +0 -4
- package/dist/__stories__/auth_provider.js +0 -10
- package/dist/__stories__/auth_provider.js.map +0 -1
- package/dist/__stories__/demo.stories.d.ts +0 -6
- package/dist/__stories__/demo.stories.js +0 -94
- package/dist/__stories__/demo.stories.js.map +0 -1
- package/dist/__stories__/sample_data.d.ts +0 -36
- package/dist/__stories__/sample_data.js +0 -1385
- package/dist/__stories__/sample_data.js.map +0 -1
- package/dist/__stories__/table.stories.d.ts +0 -12
- package/dist/__stories__/table.stories.js +0 -272
- package/dist/__stories__/table.stories.js.map +0 -1
- package/dist/components/table/table_presenter.test.d.ts +0 -1
- package/dist/components/table/table_presenter.test.js +0 -125
- package/dist/components/table/table_presenter.test.js.map +0 -1
- package/dist/components/table_filter_panel/field_filters/date_field_filter_presenter.test.d.ts +0 -1
- package/dist/components/table_filter_panel/field_filters/date_field_filter_presenter.test.js +0 -434
- package/dist/components/table_filter_panel/field_filters/date_field_filter_presenter.test.js.map +0 -1
- package/dist/components/table_filter_panel/field_filters/field_filter_props.js +0 -2
- package/dist/components/table_filter_panel/field_filters/field_filter_props.js.map +0 -1
- package/dist/components/table_filter_panel/field_filters/field_filter_strategy.js +0 -2
- package/dist/components/table_filter_panel/field_filters/field_filter_strategy.js.map +0 -1
- package/dist/components/table_filter_panel/field_filters/multi_select_field_filter_presenter.test.d.ts +0 -1
- package/dist/components/table_filter_panel/field_filters/multi_select_field_filter_presenter.test.js +0 -332
- package/dist/components/table_filter_panel/field_filters/multi_select_field_filter_presenter.test.js.map +0 -1
- package/dist/components/table_filter_panel/field_filters/number_field_filter_presenter.test.d.ts +0 -1
- package/dist/components/table_filter_panel/field_filters/number_field_filter_presenter.test.js +0 -347
- package/dist/components/table_filter_panel/field_filters/number_field_filter_presenter.test.js.map +0 -1
- package/dist/components/table_filter_panel/field_filters/number_range_field_filter_presenter.test.d.ts +0 -1
- package/dist/components/table_filter_panel/field_filters/number_range_field_filter_presenter.test.js +0 -452
- package/dist/components/table_filter_panel/field_filters/number_range_field_filter_presenter.test.js.map +0 -1
- package/dist/components/table_filter_panel/field_filters/select_field_filter_presenter.test.d.ts +0 -1
- package/dist/components/table_filter_panel/field_filters/select_field_filter_presenter.test.js +0 -285
- package/dist/components/table_filter_panel/field_filters/select_field_filter_presenter.test.js.map +0 -1
- package/dist/components/table_filter_panel/field_filters/string_field_filter_presenter.test.d.ts +0 -1
- package/dist/components/table_filter_panel/field_filters/string_field_filter_presenter.test.js +0 -232
- package/dist/components/table_filter_panel/field_filters/string_field_filter_presenter.test.js.map +0 -1
- package/dist/components/table_filter_panel/table_filter_panel.stories.d.ts +0 -6
- package/dist/components/table_filter_panel/table_filter_panel.stories.js +0 -25
- package/dist/components/table_filter_panel/table_filter_panel.stories.js.map +0 -1
- /package/{dist → src}/__stories__/table.module.css +0 -0
- /package/{dist → src}/components/cells/cell.module.css +0 -0
- /package/{dist → src}/components/table_pager.module.css +0 -0
|
@@ -1,24 +1,48 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import {
|
|
3
|
-
import {
|
|
4
|
-
import {
|
|
5
|
-
import {
|
|
6
|
-
import {
|
|
7
|
-
import
|
|
8
|
-
import { NumberFieldFilterPresenter } from "./number_field_filter_presenter.js";
|
|
9
|
-
import { useFieldFilterStrategy } from "./use_field_filter_strategy.js";
|
|
10
|
-
const
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
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
|
-
|
|
45
|
+
export {
|
|
46
|
+
I as NumberFieldFilter
|
|
47
|
+
};
|
|
48
|
+
//# sourceMappingURL=number_field_filter.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"number_field_filter.js","
|
|
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
|
|
3
|
-
import { ComparisonOperator } from
|
|
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(
|
|
14
|
-
operator: import(
|
|
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
|
package/dist/components/table_filter_panel/field_filters/number_field_filter_presenter.d.ts.map
ADDED
|
@@ -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
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
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
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
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
|
-
|
|
52
|
+
export {
|
|
53
|
+
_ as NumberFieldFilterPresenter
|
|
54
|
+
};
|
|
55
|
+
//# sourceMappingURL=number_field_filter_presenter.js.map
|
package/dist/components/table_filter_panel/field_filters/number_field_filter_presenter.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"number_field_filter_presenter.js","
|
|
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
|
-
}):
|
|
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 {
|
|
2
|
-
import {
|
|
3
|
-
import {
|
|
4
|
-
import {
|
|
5
|
-
import {
|
|
6
|
-
import {
|
|
7
|
-
import
|
|
8
|
-
import { useFieldFilterStrategy } from "./use_field_filter_strategy.js";
|
|
9
|
-
import { NumberRangeFieldFilterPresenter } from
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
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
|
-
|
|
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","
|
|
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;"}
|
package/dist/components/table_filter_panel/field_filters/number_range_field_filter_presenter.d.ts
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { Node } from 'clarity-pattern-parser';
|
|
2
|
-
import { FieldFilterRegistry, FieldFilterStrategy } from
|
|
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(
|
|
13
|
-
maxValue: import(
|
|
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"}
|
package/dist/components/table_filter_panel/field_filters/number_range_field_filter_presenter.js
CHANGED
|
@@ -1,93 +1,59 @@
|
|
|
1
|
-
import { Signal } from
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
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
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
return
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
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
|
-
|
|
56
|
+
export {
|
|
57
|
+
h as NumberRangeFieldFilterPresenter
|
|
58
|
+
};
|
|
59
|
+
//# sourceMappingURL=number_range_field_filter_presenter.js.map
|