@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,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 DateFieldFilterPresenter implements FieldFilterStrategy {
|
|
4
4
|
private _fieldName;
|
|
5
5
|
private _fieldFilterRegistry;
|
|
@@ -9,8 +9,8 @@ export declare class DateFieldFilterPresenter implements FieldFilterStrategy {
|
|
|
9
9
|
private _broadcasts;
|
|
10
10
|
constructor(fieldName: string);
|
|
11
11
|
get broadcasts(): {
|
|
12
|
-
startDate: import(
|
|
13
|
-
endDate: import(
|
|
12
|
+
startDate: import('@tcn/state').IBroadcast<Date | null>;
|
|
13
|
+
endDate: import('@tcn/state').IBroadcast<Date | null>;
|
|
14
14
|
};
|
|
15
15
|
getFilterString(): string;
|
|
16
16
|
onChange(handler: () => void): () => void;
|
|
@@ -20,3 +20,4 @@ export declare class DateFieldFilterPresenter implements FieldFilterStrategy {
|
|
|
20
20
|
setFilterState(filterAst: Node): void;
|
|
21
21
|
dispose(): void;
|
|
22
22
|
}
|
|
23
|
+
//# sourceMappingURL=date_field_filter_presenter.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"date_field_filter_presenter.d.ts","sourceRoot":"","sources":["../../../../src/components/table_filter_panel/field_filters/date_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,wBAAyB,YAAW,mBAAmB;IAClE,OAAO,CAAC,UAAU,CAAS;IAC3B,OAAO,CAAC,oBAAoB,CAAoC;IAChE,OAAO,CAAC,UAAU,CAAiC;IACnD,OAAO,CAAC,QAAQ,CAAiC;IACjD,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,YAAY,CAAC,SAAS,EAAE,IAAI,GAAG,IAAI;IAKnC,UAAU,CAAC,OAAO,EAAE,IAAI,GAAG,IAAI;IAK/B,gBAAgB,CAAC,mBAAmB,EAAE,mBAAmB;IAKzD,cAAc,CAAC,SAAS,EAAE,IAAI;IA6C9B,OAAO;CAKR"}
|
|
@@ -1,93 +1,59 @@
|
|
|
1
|
-
import { Signal } from
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
1
|
+
import { Signal as n } from "@tcn/state";
|
|
2
|
+
class o {
|
|
3
|
+
_fieldName;
|
|
4
|
+
_fieldFilterRegistry = null;
|
|
5
|
+
_startDate = new n(null);
|
|
6
|
+
_endDate = new n(null);
|
|
7
|
+
_onChangeHandlers = /* @__PURE__ */ new Set();
|
|
8
|
+
_broadcasts = {
|
|
9
|
+
startDate: this._startDate.broadcast,
|
|
10
|
+
endDate: this._endDate.broadcast
|
|
11
|
+
};
|
|
12
|
+
constructor(e) {
|
|
13
|
+
this._fieldName = e;
|
|
14
|
+
}
|
|
15
|
+
get broadcasts() {
|
|
16
|
+
return this._broadcasts;
|
|
17
|
+
}
|
|
18
|
+
getFilterString() {
|
|
19
|
+
const e = this._startDate.get(), t = this._endDate.get();
|
|
20
|
+
return e && t ? `(${this._fieldName} >= '${e.toISOString()}' AND ${this._fieldName} <= '${t.toISOString()}')` : e ? `${this._fieldName} >= '${e.toISOString()}'` : t ? `${this._fieldName} <= '${t.toISOString()}'` : "";
|
|
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
|
-
setEndDate(endDate) {
|
|
43
|
-
this._endDate.set(endDate);
|
|
44
|
-
this._onChangeHandlers.forEach(handler => handler());
|
|
45
|
-
}
|
|
46
|
-
setFieldRegistry(fieldFilterRegistry) {
|
|
47
|
-
this._fieldFilterRegistry = fieldFilterRegistry;
|
|
48
|
-
fieldFilterRegistry.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.setStartDate(new Date(valueNode?.value.slice(1, -1)));
|
|
60
|
-
}
|
|
61
|
-
else if (operatorNode?.value === '<=' && valueNode != null) {
|
|
62
|
-
this.setEndDate(new Date(valueNode?.value.slice(1, -1)));
|
|
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.setStartDate(new Date(valueOneNode?.value.slice(1, -1)));
|
|
76
|
-
this.setEndDate(new Date(valueTwoNode?.value.slice(1, -1)));
|
|
77
|
-
}
|
|
78
|
-
else if (operatorOneNode?.value === '<=' &&
|
|
79
|
-
operatorTwoNode?.value === '>=' &&
|
|
80
|
-
valueOneNode != null &&
|
|
81
|
-
valueTwoNode != null) {
|
|
82
|
-
this.setEndDate(new Date(valueOneNode?.value.slice(1, -1)));
|
|
83
|
-
this.setStartDate(new Date(valueTwoNode?.value.slice(1, -1)));
|
|
84
|
-
}
|
|
85
|
-
}
|
|
86
|
-
}
|
|
87
|
-
dispose() {
|
|
88
|
-
this._fieldFilterRegistry?.unregisterFieldFilter(this._fieldName);
|
|
89
|
-
this._fieldFilterRegistry = null;
|
|
90
|
-
this._onChangeHandlers.clear();
|
|
91
|
-
}
|
|
26
|
+
}
|
|
27
|
+
setStartDate(e) {
|
|
28
|
+
this._startDate.set(e), this._onChangeHandlers.forEach((t) => t());
|
|
29
|
+
}
|
|
30
|
+
setEndDate(e) {
|
|
31
|
+
this._endDate.set(e), this._onChangeHandlers.forEach((t) => t());
|
|
32
|
+
}
|
|
33
|
+
setFieldRegistry(e) {
|
|
34
|
+
this._fieldFilterRegistry = e, e.registerFieldFilter(this._fieldName, this);
|
|
35
|
+
}
|
|
36
|
+
setFilterState(e) {
|
|
37
|
+
const t = e.findAll(
|
|
38
|
+
(a) => a.name === "plain-field" && a.value === this._fieldName
|
|
39
|
+
);
|
|
40
|
+
if (t.length !== 0) {
|
|
41
|
+
if (t.length === 1) {
|
|
42
|
+
const a = t[0].parent?.children[1], i = t[0].parent?.children[2];
|
|
43
|
+
a?.value === ">=" && i != null ? this.setStartDate(new Date(i?.value.slice(1, -1))) : a?.value === "<=" && i != null && this.setEndDate(new Date(i?.value.slice(1, -1)));
|
|
44
|
+
return;
|
|
45
|
+
}
|
|
46
|
+
if (t.length === 2) {
|
|
47
|
+
const a = t[0].parent?.children[1], i = t[1].parent?.children[1], s = t[0].parent?.children[2], l = t[1].parent?.children[2];
|
|
48
|
+
a?.value === ">=" && i?.value === "<=" && s != null && l != null ? (this.setStartDate(new Date(s?.value.slice(1, -1))), this.setEndDate(new Date(l?.value.slice(1, -1)))) : a?.value === "<=" && i?.value === ">=" && s != null && l != null && (this.setEndDate(new Date(s?.value.slice(1, -1))), this.setStartDate(new Date(l?.value.slice(1, -1))));
|
|
49
|
+
}
|
|
50
|
+
}
|
|
51
|
+
}
|
|
52
|
+
dispose() {
|
|
53
|
+
this._fieldFilterRegistry?.unregisterFieldFilter(this._fieldName), this._fieldFilterRegistry = null, this._onChangeHandlers.clear();
|
|
54
|
+
}
|
|
92
55
|
}
|
|
93
|
-
|
|
56
|
+
export {
|
|
57
|
+
o as DateFieldFilterPresenter
|
|
58
|
+
};
|
|
59
|
+
//# sourceMappingURL=date_field_filter_presenter.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"date_field_filter_presenter.js","
|
|
1
|
+
{"version":3,"file":"date_field_filter_presenter.js","sources":["../../../../src/components/table_filter_panel/field_filters/date_field_filter_presenter.ts"],"sourcesContent":["import { Signal } from '@tcn/state';\nimport { Node } from 'clarity-pattern-parser';\nimport { FieldFilterRegistry, FieldFilterStrategy } from './field_filter_strategy.js';\n\nexport class DateFieldFilterPresenter implements FieldFilterStrategy {\n private _fieldName: string;\n private _fieldFilterRegistry: FieldFilterRegistry | null = null;\n private _startDate = new Signal<Date | null>(null);\n private _endDate = new Signal<Date | null>(null);\n private _onChangeHandlers = new Set<() => void>();\n\n private _broadcasts = {\n startDate: this._startDate.broadcast,\n endDate: this._endDate.broadcast,\n };\n\n constructor(fieldName: string) {\n this._fieldName = fieldName;\n }\n\n get broadcasts() {\n return this._broadcasts;\n }\n\n getFilterString() {\n const startDate = this._startDate.get();\n const endDate = this._endDate.get();\n if (startDate && endDate) {\n return `(${this._fieldName} >= '${startDate.toISOString()}' AND ${this._fieldName} <= '${endDate.toISOString()}')`;\n } else if (startDate) {\n return `${this._fieldName} >= '${startDate.toISOString()}'`;\n } else if (endDate) {\n return `${this._fieldName} <= '${endDate.toISOString()}'`;\n }\n return '';\n }\n\n onChange(handler: () => void) {\n this._onChangeHandlers.add(handler);\n return () => {\n this._onChangeHandlers.delete(handler);\n };\n }\n\n setStartDate(startDate: Date | null) {\n this._startDate.set(startDate);\n this._onChangeHandlers.forEach(handler => handler());\n }\n\n setEndDate(endDate: Date | null) {\n this._endDate.set(endDate);\n this._onChangeHandlers.forEach(handler => handler());\n }\n\n setFieldRegistry(fieldFilterRegistry: FieldFilterRegistry) {\n this._fieldFilterRegistry = fieldFilterRegistry;\n 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 if (fieldNodes.length === 0) {\n return;\n }\n\n if (fieldNodes.length === 1) {\n const operatorNode = fieldNodes[0].parent?.children[1];\n const valueNode = fieldNodes[0].parent?.children[2];\n if (operatorNode?.value === '>=' && valueNode != null) {\n this.setStartDate(new Date(valueNode?.value.slice(1, -1)));\n } else if (operatorNode?.value === '<=' && valueNode != null) {\n this.setEndDate(new Date(valueNode?.value.slice(1, -1)));\n }\n return;\n }\n\n if (fieldNodes.length === 2) {\n const operatorOneNode = fieldNodes[0].parent?.children[1];\n const operatorTwoNode = fieldNodes[1].parent?.children[1];\n const valueOneNode = fieldNodes[0].parent?.children[2];\n const valueTwoNode = fieldNodes[1].parent?.children[2];\n if (\n operatorOneNode?.value === '>=' &&\n operatorTwoNode?.value === '<=' &&\n valueOneNode != null &&\n valueTwoNode != null\n ) {\n this.setStartDate(new Date(valueOneNode?.value.slice(1, -1)));\n this.setEndDate(new Date(valueTwoNode?.value.slice(1, -1)));\n } else if (\n operatorOneNode?.value === '<=' &&\n operatorTwoNode?.value === '>=' &&\n valueOneNode != null &&\n valueTwoNode != null\n ) {\n this.setEndDate(new Date(valueOneNode?.value.slice(1, -1)));\n this.setStartDate(new Date(valueTwoNode?.value.slice(1, -1)));\n }\n }\n }\n\n dispose() {\n this._fieldFilterRegistry?.unregisterFieldFilter(this._fieldName);\n this._fieldFilterRegistry = null;\n this._onChangeHandlers.clear();\n }\n}\n"],"names":["DateFieldFilterPresenter","Signal","fieldName","startDate","endDate","handler","fieldFilterRegistry","filterAst","fieldNodes","n","operatorNode","valueNode","operatorOneNode","operatorTwoNode","valueOneNode","valueTwoNode"],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"field_filter_props.d.ts","sourceRoot":"","sources":["../../../../src/components/table_filter_panel/field_filters/field_filter_props.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,gBAAgB,GAAG;IAC7B,SAAS,EAAE,MAAM,CAAC;IAClB,KAAK,EAAE,MAAM,CAAC;IACd,SAAS,CAAC,EAAE,CAAC,IAAI,GAAG,OAAO,GAAG,KAAK,CAAC,EAAE,CAAC;CACxC,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"field_filter_strategy.d.ts","sourceRoot":"","sources":["../../../../src/components/table_filter_panel/field_filters/field_filter_strategy.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,MAAM,wBAAwB,CAAC;AAE9C,MAAM,WAAW,mBAAmB;IAClC,mBAAmB,EAAE,CAAC,SAAS,EAAE,MAAM,EAAE,WAAW,EAAE,mBAAmB,KAAK,IAAI,CAAC;IACnF,qBAAqB,EAAE,CAAC,SAAS,EAAE,MAAM,KAAK,IAAI,CAAC;CACpD;AAED,MAAM,WAAW,mBAAmB;IAClC,eAAe,EAAE,MAAM,MAAM,CAAC;IAC9B,QAAQ,EAAE,CAAC,OAAO,EAAE,MAAM,IAAI,KAAK,MAAM,IAAI,CAAC;IAC9C,gBAAgB,EAAE,CAAC,aAAa,EAAE,mBAAmB,KAAK,IAAI,CAAC;IAC/D,OAAO,EAAE,MAAM,IAAI,CAAC;IACpB,cAAc,EAAE,CAAC,SAAS,EAAE,IAAI,KAAK,IAAI,CAAC;CAC3C"}
|
|
@@ -1,9 +1,9 @@
|
|
|
1
|
-
import
|
|
2
|
-
import { FieldFilterProps } from "./field_filter_props.js";
|
|
1
|
+
import { FieldFilterProps } from './field_filter_props.js';
|
|
3
2
|
export type MulitSelectFieldFilterProps = FieldFilterProps & {
|
|
4
3
|
options: {
|
|
5
4
|
label: string;
|
|
6
5
|
value: string | boolean | number;
|
|
7
6
|
}[];
|
|
8
7
|
};
|
|
9
|
-
export declare function MulitSelectFieldFilter({ fieldName, label, options, }: MulitSelectFieldFilterProps):
|
|
8
|
+
export declare function MulitSelectFieldFilter({ fieldName, label, options, }: MulitSelectFieldFilterProps): import("react/jsx-runtime").JSX.Element;
|
|
9
|
+
//# sourceMappingURL=mulit_select_field_filter.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"mulit_select_field_filter.d.ts","sourceRoot":"","sources":["../../../../src/components/table_filter_panel/field_filters/mulit_select_field_filter.tsx"],"names":[],"mappings":"AAQA,OAAO,EAAE,gBAAgB,EAAE,MAAM,yBAAyB,CAAC;AAI3D,MAAM,MAAM,2BAA2B,GAAG,gBAAgB,GAAG;IAC3D,OAAO,EAAE;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,GAAG,OAAO,GAAG,MAAM,CAAA;KAAE,EAAE,CAAC;CAChE,CAAC;AAEF,wBAAgB,sBAAsB,CAAC,EACrC,SAAS,EACT,KAAK,EACL,OAAO,GACR,EAAE,2BAA2B,2CA+C7B"}
|
|
@@ -1,30 +1,53 @@
|
|
|
1
|
-
import
|
|
2
|
-
import { CrossCircleIcon } from
|
|
3
|
-
import { useSignalValue } from
|
|
4
|
-
import { Button } from
|
|
5
|
-
import { Multiselect, Option } from
|
|
6
|
-
import { Box, HStack
|
|
7
|
-
import { Title } from
|
|
8
|
-
import { MultiSelectFieldFilterPresenter } from "./multi_select_field_filter_presenter.js";
|
|
9
|
-
import { useFieldFilterStrategy } from "./use_field_filter_strategy.js";
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
1
|
+
import { jsxs as o, jsx as l } from "react/jsx-runtime";
|
|
2
|
+
import { CrossCircleIcon as f } from "@tcn/icons/cross_circle_icon.js";
|
|
3
|
+
import { useSignalValue as h } from "@tcn/state";
|
|
4
|
+
import { Button as p } from "@tcn/ui/actions";
|
|
5
|
+
import { Multiselect as b, Option as v } from "@tcn/ui/inputs";
|
|
6
|
+
import { VStack as g, Box as c, HStack as x } from "@tcn/ui/stacks";
|
|
7
|
+
import { Title as S } from "@tcn/ui/typography";
|
|
8
|
+
import { MultiSelectFieldFilterPresenter as F } from "./multi_select_field_filter_presenter.js";
|
|
9
|
+
import { useFieldFilterStrategy as V } from "./use_field_filter_strategy.js";
|
|
10
|
+
function I({
|
|
11
|
+
fieldName: m,
|
|
12
|
+
label: s,
|
|
13
|
+
options: t
|
|
14
|
+
}) {
|
|
15
|
+
const i = V(F, m), a = h(i.broadcasts.value), u = a?.map((e) => t.find((r) => r.value === e)?.label ?? "").filter(Boolean) ?? [];
|
|
16
|
+
return /* @__PURE__ */ o(g, { gap: "4px", children: [
|
|
17
|
+
/* @__PURE__ */ l(c, { width: "flex", children: /* @__PURE__ */ l(S, { size: "md", children: s }) }),
|
|
18
|
+
/* @__PURE__ */ o(x, { children: [
|
|
19
|
+
/* @__PURE__ */ l(c, { width: "flex", children: /* @__PURE__ */ l(
|
|
20
|
+
b,
|
|
21
|
+
{
|
|
22
|
+
value: u,
|
|
23
|
+
onChange: (e) => {
|
|
24
|
+
const r = e.map((n) => t.find((d) => d.label === n)?.value).filter((n) => n !== void 0);
|
|
25
|
+
i.setValue(r.length > 0 ? r : null);
|
|
26
|
+
},
|
|
27
|
+
children: t.map((e) => /* @__PURE__ */ l(
|
|
28
|
+
v,
|
|
29
|
+
{
|
|
30
|
+
value: e.label,
|
|
31
|
+
label: e.label,
|
|
32
|
+
children: e.label
|
|
33
|
+
},
|
|
34
|
+
e.value.toString()
|
|
35
|
+
))
|
|
36
|
+
}
|
|
37
|
+
) }),
|
|
38
|
+
/* @__PURE__ */ l(
|
|
39
|
+
p,
|
|
40
|
+
{
|
|
41
|
+
onClick: () => i.setValue(null),
|
|
42
|
+
hierarchy: "tertiary",
|
|
43
|
+
disabled: a == null || a.length === 0,
|
|
44
|
+
children: /* @__PURE__ */ l(f, {})
|
|
45
|
+
}
|
|
46
|
+
)
|
|
47
|
+
] })
|
|
48
|
+
] });
|
|
29
49
|
}
|
|
30
|
-
|
|
50
|
+
export {
|
|
51
|
+
I as MulitSelectFieldFilter
|
|
52
|
+
};
|
|
53
|
+
//# sourceMappingURL=mulit_select_field_filter.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"mulit_select_field_filter.js","
|
|
1
|
+
{"version":3,"file":"mulit_select_field_filter.js","sources":["../../../../src/components/table_filter_panel/field_filters/mulit_select_field_filter.tsx"],"sourcesContent":["import React from 'react';\n\nimport { CrossCircleIcon } from '@tcn/icons/cross_circle_icon.js';\nimport { useSignalValue } from '@tcn/state';\nimport { Button } from '@tcn/ui/actions';\nimport { Multiselect, Option } from '@tcn/ui/inputs';\nimport { Box, HStack, VStack } from '@tcn/ui/stacks';\nimport { Title } from '@tcn/ui/typography';\nimport { FieldFilterProps } from './field_filter_props.js';\nimport { MultiSelectFieldFilterPresenter } from './multi_select_field_filter_presenter.js';\nimport { useFieldFilterStrategy } from './use_field_filter_strategy.js';\n\nexport type MulitSelectFieldFilterProps = FieldFilterProps & {\n options: { label: string; value: string | boolean | number }[];\n};\n\nexport function MulitSelectFieldFilter({\n fieldName,\n label,\n options,\n}: MulitSelectFieldFilterProps) {\n const presenter = useFieldFilterStrategy(MultiSelectFieldFilterPresenter, fieldName);\n\n const values = useSignalValue(presenter.broadcasts.value);\n const selectedLabels =\n values\n ?.map(value => options.find(option => option.value === value)?.label ?? '')\n .filter(Boolean) ?? [];\n\n return (\n <VStack gap=\"4px\">\n <Box width=\"flex\">\n <Title size=\"md\">{label}</Title>\n </Box>\n <HStack>\n <Box width=\"flex\">\n <Multiselect\n value={selectedLabels}\n onChange={selectedLabels => {\n const realValues = selectedLabels\n .map(label => options.find(option => option.label === label)?.value)\n .filter(value => value !== undefined) as (string | boolean | number)[];\n\n presenter.setValue(realValues.length > 0 ? realValues : null);\n }}\n >\n {options.map(option => (\n <Option\n key={option.value.toString()}\n value={option.label}\n label={option.label}\n >\n {option.label}\n </Option>\n ))}\n </Multiselect>\n </Box>\n <Button\n onClick={() => presenter.setValue(null)}\n hierarchy=\"tertiary\"\n disabled={values == null || values.length === 0}\n >\n <CrossCircleIcon />\n </Button>\n </HStack>\n </VStack>\n );\n}\n"],"names":["MulitSelectFieldFilter","fieldName","label","options","presenter","useFieldFilterStrategy","MultiSelectFieldFilterPresenter","values","useSignalValue","selectedLabels","value","option","jsxs","VStack","jsx","Box","Title","HStack","Multiselect","realValues","Option","Button","CrossCircleIcon"],"mappings":";;;;;;;;;AAgBO,SAASA,EAAuB;AAAA,EACrC,WAAAC;AAAA,EACA,OAAAC;AAAA,EACA,SAAAC;AACF,GAAgC;AAC9B,QAAMC,IAAYC,EAAuBC,GAAiCL,CAAS,GAE7EM,IAASC,EAAeJ,EAAU,WAAW,KAAK,GAClDK,IACJF,GACI,IAAI,CAAAG,MAASP,EAAQ,KAAK,CAAAQ,MAAUA,EAAO,UAAUD,CAAK,GAAG,SAAS,EAAE,EACzE,OAAO,OAAO,KAAK,CAAA;AAExB,SACE,gBAAAE,EAACC,GAAA,EAAO,KAAI,OACV,UAAA;AAAA,IAAA,gBAAAC,EAACC,GAAA,EAAI,OAAM,QACT,UAAA,gBAAAD,EAACE,KAAM,MAAK,MAAM,aAAM,EAAA,CAC1B;AAAA,sBACCC,GAAA,EACC,UAAA;AAAA,MAAA,gBAAAH,EAACC,GAAA,EAAI,OAAM,QACT,UAAA,gBAAAD;AAAA,QAACI;AAAA,QAAA;AAAA,UACC,OAAOT;AAAA,UACP,UAAU,CAAAA,MAAkB;AAC1B,kBAAMU,IAAaV,EAChB,IAAI,CAAAP,MAASC,EAAQ,KAAK,CAAAQ,MAAUA,EAAO,UAAUT,CAAK,GAAG,KAAK,EAClE,OAAO,CAAAQ,MAASA,MAAU,MAAS;AAEtC,YAAAN,EAAU,SAASe,EAAW,SAAS,IAAIA,IAAa,IAAI;AAAA,UAC9D;AAAA,UAEC,UAAAhB,EAAQ,IAAI,CAAAQ,MACX,gBAAAG;AAAA,YAACM;AAAA,YAAA;AAAA,cAEC,OAAOT,EAAO;AAAA,cACd,OAAOA,EAAO;AAAA,cAEb,UAAAA,EAAO;AAAA,YAAA;AAAA,YAJHA,EAAO,MAAM,SAAA;AAAA,UAAS,CAM9B;AAAA,QAAA;AAAA,MAAA,GAEL;AAAA,MACA,gBAAAG;AAAA,QAACO;AAAA,QAAA;AAAA,UACC,SAAS,MAAMjB,EAAU,SAAS,IAAI;AAAA,UACtC,WAAU;AAAA,UACV,UAAUG,KAAU,QAAQA,EAAO,WAAW;AAAA,UAE9C,4BAACe,GAAA,CAAA,CAAgB;AAAA,QAAA;AAAA,MAAA;AAAA,IACnB,EAAA,CACF;AAAA,EAAA,GACF;AAEJ;"}
|
package/dist/components/table_filter_panel/field_filters/multi_select_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 MultiSelectFieldFilterPresenter implements FieldFilterStrategy {
|
|
4
4
|
private _fieldName;
|
|
5
5
|
private _value;
|
|
@@ -10,10 +10,11 @@ export declare class MultiSelectFieldFilterPresenter implements FieldFilterStrat
|
|
|
10
10
|
onChange(handler: () => void): () => void;
|
|
11
11
|
setValue(value: (string | boolean | number)[] | null): void;
|
|
12
12
|
get broadcasts(): {
|
|
13
|
-
value: import(
|
|
13
|
+
value: import('@tcn/state').IBroadcast<(string | number | boolean)[] | null>;
|
|
14
14
|
};
|
|
15
15
|
setFieldRegistry(fieldRegistry: FieldFilterRegistry): void;
|
|
16
16
|
getFilterString(): string;
|
|
17
17
|
setFilterState(filterAst: Node): void;
|
|
18
18
|
dispose(): void;
|
|
19
19
|
}
|
|
20
|
+
//# sourceMappingURL=multi_select_field_filter_presenter.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"multi_select_field_filter_presenter.d.ts","sourceRoot":"","sources":["../../../../src/components/table_filter_panel/field_filters/multi_select_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,MAAM,CAA0D;IACxE,OAAO,CAAC,oBAAoB,CAAoC;IAChE,OAAO,CAAC,iBAAiB,CAAyB;IAElD,OAAO,CAAC,WAAW,CAEjB;gBAEU,SAAS,EAAE,MAAM;IAI7B,QAAQ,CAAC,OAAO,EAAE,MAAM,IAAI;IAO5B,QAAQ,CAAC,KAAK,EAAE,CAAC,MAAM,GAAG,OAAO,GAAG,MAAM,CAAC,EAAE,GAAG,IAAI;IAKpD,IAAI,UAAU;;MAEb;IAED,gBAAgB,CAAC,aAAa,EAAE,mBAAmB;IAKnD,eAAe;IAaf,cAAc,CAAC,SAAS,EAAE,IAAI;IAiC9B,OAAO;CAIR"}
|
package/dist/components/table_filter_panel/field_filters/multi_select_field_filter_presenter.js
CHANGED
|
@@ -1,72 +1,55 @@
|
|
|
1
|
-
import { Signal } from
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
1
|
+
import { Signal as a } from "@tcn/state";
|
|
2
|
+
class d {
|
|
3
|
+
_fieldName;
|
|
4
|
+
_value = new a(null);
|
|
5
|
+
_fieldFilterRegistry = null;
|
|
6
|
+
_onChangeHandlers = /* @__PURE__ */ new Set();
|
|
7
|
+
_broadcasts = {
|
|
8
|
+
value: this._value.broadcast
|
|
9
|
+
};
|
|
10
|
+
constructor(t) {
|
|
11
|
+
this._fieldName = t;
|
|
12
|
+
}
|
|
13
|
+
onChange(t) {
|
|
14
|
+
return this._onChangeHandlers.add(t), () => {
|
|
15
|
+
this._onChangeHandlers.delete(t);
|
|
9
16
|
};
|
|
10
|
-
|
|
11
|
-
|
|
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
|
-
|
|
43
|
-
|
|
44
|
-
if (fieldNodes.length === 0) {
|
|
45
|
-
return;
|
|
46
|
-
}
|
|
47
|
-
const valueNodes = fieldNodes
|
|
48
|
-
.map(node => node.parent?.children[2])
|
|
49
|
-
.filter(node => node != null);
|
|
50
|
-
const values = valueNodes
|
|
51
|
-
.map(node => {
|
|
52
|
-
const n = node;
|
|
53
|
-
return n.name === 'double-quote-str' || n.name === 'single-quote-string'
|
|
54
|
-
? n.value.slice(1, -1)
|
|
55
|
-
: n.value;
|
|
56
|
-
})
|
|
57
|
-
.map(value => (value === 'true' ? true : value === 'false' ? false : value))
|
|
58
|
-
.map(value => {
|
|
59
|
-
const numValue = Number(value);
|
|
60
|
-
if (isNaN(numValue)) {
|
|
61
|
-
return value;
|
|
62
|
-
}
|
|
63
|
-
return numValue;
|
|
64
|
-
});
|
|
65
|
-
this._value.set(values);
|
|
66
|
-
}
|
|
67
|
-
dispose() {
|
|
68
|
-
this._fieldFilterRegistry?.unregisterFieldFilter(this._fieldName);
|
|
69
|
-
this._onChangeHandlers.clear();
|
|
70
|
-
}
|
|
17
|
+
}
|
|
18
|
+
setValue(t) {
|
|
19
|
+
this._value.set(t), this._onChangeHandlers.forEach((s) => s());
|
|
20
|
+
}
|
|
21
|
+
get broadcasts() {
|
|
22
|
+
return this._broadcasts;
|
|
23
|
+
}
|
|
24
|
+
setFieldRegistry(t) {
|
|
25
|
+
this._fieldFilterRegistry = t, t.registerFieldFilter(this._fieldName, this);
|
|
26
|
+
}
|
|
27
|
+
getFilterString() {
|
|
28
|
+
const t = this._value.get();
|
|
29
|
+
if (t == null)
|
|
30
|
+
return "";
|
|
31
|
+
const l = t.map(
|
|
32
|
+
(e) => typeof e == "string" ? `"${e}"` : e
|
|
33
|
+
).map((e) => `${this._fieldName} = ${e}`), i = l.join(" OR ");
|
|
34
|
+
return l.length > 1 ? `(${i})` : i;
|
|
35
|
+
}
|
|
36
|
+
setFilterState(t) {
|
|
37
|
+
const s = t.findAll((e) => e.name === "plain-field" && e.value === this._fieldName).filter((e) => e.parent?.name === "infix-expression");
|
|
38
|
+
if (s.length === 0)
|
|
39
|
+
return;
|
|
40
|
+
const i = s.map((e) => e.parent?.children[2]).filter((e) => e != null).map((e) => e.name === "double-quote-str" || e.name === "single-quote-string" ? e.value.slice(1, -1) : e.value).map(
|
|
41
|
+
(e) => e === "true" ? !0 : e === "false" ? !1 : e
|
|
42
|
+
).map((e) => {
|
|
43
|
+
const r = Number(e);
|
|
44
|
+
return isNaN(r) ? e : r;
|
|
45
|
+
});
|
|
46
|
+
this._value.set(i);
|
|
47
|
+
}
|
|
48
|
+
dispose() {
|
|
49
|
+
this._fieldFilterRegistry?.unregisterFieldFilter(this._fieldName), this._onChangeHandlers.clear();
|
|
50
|
+
}
|
|
71
51
|
}
|
|
72
|
-
|
|
52
|
+
export {
|
|
53
|
+
d as MultiSelectFieldFilterPresenter
|
|
54
|
+
};
|
|
55
|
+
//# sourceMappingURL=multi_select_field_filter_presenter.js.map
|
package/dist/components/table_filter_panel/field_filters/multi_select_field_filter_presenter.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"multi_select_field_filter_presenter.js","
|
|
1
|
+
{"version":3,"file":"multi_select_field_filter_presenter.js","sources":["../../../../src/components/table_filter_panel/field_filters/multi_select_field_filter_presenter.ts"],"sourcesContent":["import { Signal } from '@tcn/state';\nimport { Node } from 'clarity-pattern-parser';\nimport { FieldFilterRegistry, FieldFilterStrategy } from './field_filter_strategy.js';\n\nexport class MultiSelectFieldFilterPresenter implements FieldFilterStrategy {\n private _fieldName: string;\n private _value = new Signal<(string | boolean | number)[] | null>(null);\n private _fieldFilterRegistry: FieldFilterRegistry | null = null;\n private _onChangeHandlers = new Set<() => void>();\n\n private _broadcasts = {\n value: this._value.broadcast,\n };\n\n constructor(fieldName: string) {\n this._fieldName = fieldName;\n }\n\n onChange(handler: () => void) {\n this._onChangeHandlers.add(handler);\n return () => {\n this._onChangeHandlers.delete(handler);\n };\n }\n\n setValue(value: (string | boolean | number)[] | null) {\n this._value.set(value);\n this._onChangeHandlers.forEach(handler => handler());\n }\n\n get broadcasts() {\n return this._broadcasts;\n }\n\n setFieldRegistry(fieldRegistry: FieldFilterRegistry) {\n this._fieldFilterRegistry = fieldRegistry;\n fieldRegistry.registerFieldFilter(this._fieldName, this);\n }\n\n getFilterString() {\n const values = this._value.get();\n if (values == null) {\n return '';\n }\n const wrappedValues = values.map(value =>\n typeof value === 'string' ? `\"${value}\"` : value\n );\n const filterItems = wrappedValues.map(value => `${this._fieldName} = ${value}`);\n const filterString = filterItems.join(' OR ');\n return filterItems.length > 1 ? `(${filterString})` : filterString;\n }\n\n setFilterState(filterAst: Node) {\n const fieldNodes = filterAst\n .findAll((n: Node) => n.name === 'plain-field' && n.value === this._fieldName)\n .filter((node: Node) => node.parent?.name === 'infix-expression');\n\n if (fieldNodes.length === 0) {\n return;\n }\n\n const valueNodes = fieldNodes\n .map((node: Node) => node.parent?.children[2])\n .filter((node: Node | undefined): node is Node => node != null);\n\n const values = valueNodes\n .map((node: Node) => {\n return node.name === 'double-quote-str' || node.name === 'single-quote-string'\n ? node.value.slice(1, -1)\n : node.value;\n })\n .map((value: string) =>\n value === 'true' ? true : value === 'false' ? false : value\n )\n .map((value: string | boolean) => {\n const numValue = Number(value);\n if (isNaN(numValue)) {\n return value;\n }\n return numValue;\n });\n\n this._value.set(values);\n }\n\n dispose() {\n this._fieldFilterRegistry?.unregisterFieldFilter(this._fieldName);\n this._onChangeHandlers.clear();\n }\n}\n"],"names":["MultiSelectFieldFilterPresenter","Signal","fieldName","handler","value","fieldRegistry","values","filterItems","filterString","filterAst","fieldNodes","n","node","numValue"],"mappings":";AAIO,MAAMA,EAA+D;AAAA,EAClE;AAAA,EACA,SAAS,IAAIC,EAA6C,IAAI;AAAA,EAC9D,uBAAmD;AAAA,EACnD,wCAAwB,IAAA;AAAA,EAExB,cAAc;AAAA,IACpB,OAAO,KAAK,OAAO;AAAA,EAAA;AAAA,EAGrB,YAAYC,GAAmB;AAC7B,SAAK,aAAaA;AAAA,EACpB;AAAA,EAEA,SAASC,GAAqB;AAC5B,gBAAK,kBAAkB,IAAIA,CAAO,GAC3B,MAAM;AACX,WAAK,kBAAkB,OAAOA,CAAO;AAAA,IACvC;AAAA,EACF;AAAA,EAEA,SAASC,GAA6C;AACpD,SAAK,OAAO,IAAIA,CAAK,GACrB,KAAK,kBAAkB,QAAQ,CAAAD,MAAWA,EAAA,CAAS;AAAA,EACrD;AAAA,EAEA,IAAI,aAAa;AACf,WAAO,KAAK;AAAA,EACd;AAAA,EAEA,iBAAiBE,GAAoC;AACnD,SAAK,uBAAuBA,GAC5BA,EAAc,oBAAoB,KAAK,YAAY,IAAI;AAAA,EACzD;AAAA,EAEA,kBAAkB;AAChB,UAAMC,IAAS,KAAK,OAAO,IAAA;AAC3B,QAAIA,KAAU;AACZ,aAAO;AAKT,UAAMC,IAHgBD,EAAO;AAAA,MAAI,OAC/B,OAAOF,KAAU,WAAW,IAAIA,CAAK,MAAMA;AAAA,IAAA,EAEX,IAAI,CAAAA,MAAS,GAAG,KAAK,UAAU,MAAMA,CAAK,EAAE,GACxEI,IAAeD,EAAY,KAAK,MAAM;AAC5C,WAAOA,EAAY,SAAS,IAAI,IAAIC,CAAY,MAAMA;AAAA,EACxD;AAAA,EAEA,eAAeC,GAAiB;AAC9B,UAAMC,IAAaD,EAChB,QAAQ,CAACE,MAAYA,EAAE,SAAS,iBAAiBA,EAAE,UAAU,KAAK,UAAU,EAC5E,OAAO,CAACC,MAAeA,EAAK,QAAQ,SAAS,kBAAkB;AAElE,QAAIF,EAAW,WAAW;AACxB;AAOF,UAAMJ,IAJaI,EAChB,IAAI,CAACE,MAAeA,EAAK,QAAQ,SAAS,CAAC,CAAC,EAC5C,OAAO,CAACA,MAAyCA,KAAQ,IAAI,EAG7D,IAAI,CAACA,MACGA,EAAK,SAAS,sBAAsBA,EAAK,SAAS,wBACrDA,EAAK,MAAM,MAAM,GAAG,EAAE,IACtBA,EAAK,KACV,EACA;AAAA,MAAI,CAACR,MACJA,MAAU,SAAS,KAAOA,MAAU,UAAU,KAAQA;AAAA,IAAA,EAEvD,IAAI,CAACA,MAA4B;AAChC,YAAMS,IAAW,OAAOT,CAAK;AAC7B,aAAI,MAAMS,CAAQ,IACTT,IAEFS;AAAA,IACT,CAAC;AAEH,SAAK,OAAO,IAAIP,CAAM;AAAA,EACxB;AAAA,EAEA,UAAU;AACR,SAAK,sBAAsB,sBAAsB,KAAK,UAAU,GAChE,KAAK,kBAAkB,MAAA;AAAA,EACzB;AACF;"}
|
|
@@ -1,3 +1,3 @@
|
|
|
1
|
-
import
|
|
2
|
-
|
|
3
|
-
|
|
1
|
+
import { FieldFilterProps } from './field_filter_props.js';
|
|
2
|
+
export declare function NumberFieldFilter({ fieldName, label }: FieldFilterProps): import("react/jsx-runtime").JSX.Element;
|
|
3
|
+
//# sourceMappingURL=number_field_filter.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"number_field_filter.d.ts","sourceRoot":"","sources":["../../../../src/components/table_filter_panel/field_filters/number_field_filter.tsx"],"names":[],"mappings":"AAOA,OAAO,EAAE,gBAAgB,EAAE,MAAM,yBAAyB,CAAC;AAO3D,wBAAgB,iBAAiB,CAAC,EAAE,SAAS,EAAE,KAAK,EAAE,EAAE,gBAAgB,2CAsCvE"}
|