@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
package/dist/components/table_filter_panel/field_filters/string_field_filter_presenter.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"string_field_filter_presenter.js","
|
|
1
|
+
{"version":3,"file":"string_field_filter_presenter.js","sources":["../../../../src/components/table_filter_panel/field_filters/string_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 StringFieldFilterPresenter implements FieldFilterStrategy {\n private _fieldName: string;\n private _value = new Signal<string | 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 setFieldRegistry(fieldRegistry: FieldFilterRegistry) {\n this._fieldFilterRegistry = fieldRegistry;\n fieldRegistry.registerFieldFilter(this._fieldName, this);\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 setValue(value: string | null) {\n const escapedValue = value?.replace(/\"/g, '\\\\\"') ?? null;\n this._value.set(escapedValue === '' ? null : escapedValue);\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 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 = valueNode.value as string;\n this._value.set(value.slice(1, -1));\n }\n\n dispose() {\n this._fieldFilterRegistry?.unregisterFieldFilter(this._fieldName);\n this._onChangeHandlers.clear();\n }\n}\n"],"names":["StringFieldFilterPresenter","Signal","fieldName","handler","fieldRegistry","value","escapedValue","operator","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,iBAAiBC,GAAoC;AACnD,SAAK,uBAAuBA,GAC5BA,EAAc,oBAAoB,KAAK,YAAY,IAAI;AAAA,EACzD;AAAA,EAEA,kBAAkB;AAChB,WAAI,KAAK,OAAO,IAAA,MAAU,OACjB,KAEF,GAAG,KAAK,UAAU,IAAI,KAAK,UAAU,IAAA,CAAK,KAAK,KAAK,OAAO,IAAA,CAAK;AAAA,EACzE;AAAA,EAEA,SAASC,GAAsB;AAC7B,UAAMC,IAAeD,GAAO,QAAQ,MAAM,KAAK,KAAK;AACpD,SAAK,OAAO,IAAIC,MAAiB,KAAK,OAAOA,CAAY,GACzD,KAAK,kBAAkB,QAAQ,CAAAH,MAAWA,EAAA,CAAS;AAAA,EACrD;AAAA,EAEA,YAAYI,GAA8B;AACxC,SAAK,UAAU,IAAIA,CAAQ,GAC3B,KAAK,kBAAkB,QAAQ,CAAAJ,MAAWA,EAAA,CAAS;AAAA,EACrD;AAAA,EAEA,eAAeK,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,IAAQQ,EAAU;AACxB,SAAK,OAAO,IAAIR,EAAM,MAAM,GAAG,EAAE,CAAC;AAAA,EACpC;AAAA,EAEA,UAAU;AACR,SAAK,sBAAsB,sBAAsB,KAAK,UAAU,GAChE,KAAK,kBAAkB,MAAA;AAAA,EACzB;AACF;"}
|
|
@@ -1,4 +1,5 @@
|
|
|
1
|
-
import { FieldFilterStrategy } from
|
|
1
|
+
import { FieldFilterStrategy } from './field_filter_strategy.js';
|
|
2
2
|
type FieldFilterStrategyConstructor<T> = new (...args: any[]) => T;
|
|
3
3
|
export declare function useFieldFilterStrategy<T extends FieldFilterStrategy>(filterPresenterConstructor: FieldFilterStrategyConstructor<T>, ...args: any[]): T;
|
|
4
4
|
export {};
|
|
5
|
+
//# sourceMappingURL=use_field_filter_strategy.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"use_field_filter_strategy.d.ts","sourceRoot":"","sources":["../../../../src/components/table_filter_panel/field_filters/use_field_filter_strategy.tsx"],"names":[],"mappings":"AACA,OAAO,EAAE,mBAAmB,EAAE,MAAM,4BAA4B,CAAC;AAGjE,KAAK,8BAA8B,CAAC,CAAC,IAAI,KAAK,GAAG,IAAI,EAAE,GAAG,EAAE,KAAK,CAAC,CAAC;AAEnE,wBAAgB,sBAAsB,CAAC,CAAC,SAAS,mBAAmB,EAClE,0BAA0B,EAAE,8BAA8B,CAAC,CAAC,CAAC,EAC7D,GAAG,IAAI,EAAE,GAAG,EAAE,GACb,CAAC,CAoBH"}
|
|
@@ -1,20 +1,14 @@
|
|
|
1
|
-
import { useContext
|
|
2
|
-
import { TableFilterPanelContext } from "../table_filter_panel.js";
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
presenter.setFieldRegistry(panelPresenter);
|
|
11
|
-
}
|
|
12
|
-
}, [panelPresenter, presenter]);
|
|
13
|
-
useEffect(() => {
|
|
14
|
-
return () => {
|
|
15
|
-
presenter.dispose();
|
|
16
|
-
};
|
|
17
|
-
}, [presenter]);
|
|
18
|
-
return presenter;
|
|
1
|
+
import { useContext as o, useState as i, useEffect as r } from "react";
|
|
2
|
+
import { TableFilterPanelContext as u } from "../table_filter_panel.js";
|
|
3
|
+
function p(n, ...s) {
|
|
4
|
+
const t = o(u), [e] = i(() => new n(...s));
|
|
5
|
+
return r(() => {
|
|
6
|
+
t && e.setFieldRegistry(t);
|
|
7
|
+
}, [t, e]), r(() => () => {
|
|
8
|
+
e.dispose();
|
|
9
|
+
}, [e]), e;
|
|
19
10
|
}
|
|
20
|
-
|
|
11
|
+
export {
|
|
12
|
+
p as useFieldFilterStrategy
|
|
13
|
+
};
|
|
14
|
+
//# sourceMappingURL=use_field_filter_strategy.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"use_field_filter_strategy.js","
|
|
1
|
+
{"version":3,"file":"use_field_filter_strategy.js","sources":["../../../../src/components/table_filter_panel/field_filters/use_field_filter_strategy.tsx"],"sourcesContent":["import { useContext, useEffect, useState } from 'react';\nimport { FieldFilterStrategy } from './field_filter_strategy.js';\nimport { TableFilterPanelContext } from '../table_filter_panel.js';\n\ntype FieldFilterStrategyConstructor<T> = new (...args: any[]) => T;\n\nexport function useFieldFilterStrategy<T extends FieldFilterStrategy>(\n filterPresenterConstructor: FieldFilterStrategyConstructor<T>,\n ...args: any[]\n): T {\n const panelPresenter = useContext(TableFilterPanelContext);\n\n const [presenter] = useState<T>(() => {\n return new filterPresenterConstructor(...args);\n });\n\n useEffect(() => {\n if (panelPresenter) {\n presenter.setFieldRegistry(panelPresenter);\n }\n }, [panelPresenter, presenter]);\n\n useEffect(() => {\n return () => {\n presenter.dispose();\n };\n }, [presenter]);\n\n return presenter;\n}\n"],"names":["useFieldFilterStrategy","filterPresenterConstructor","args","panelPresenter","useContext","TableFilterPanelContext","presenter","useState","useEffect"],"mappings":";;AAMO,SAASA,EACdC,MACGC,GACA;AACH,QAAMC,IAAiBC,EAAWC,CAAuB,GAEnD,CAACC,CAAS,IAAIC,EAAY,MACvB,IAAIN,EAA2B,GAAGC,CAAI,CAC9C;AAED,SAAAM,EAAU,MAAM;AACd,IAAIL,KACFG,EAAU,iBAAiBH,CAAc;AAAA,EAE7C,GAAG,CAACA,GAAgBG,CAAS,CAAC,GAE9BE,EAAU,MACD,MAAM;AACX,IAAAF,EAAU,QAAA;AAAA,EACZ,GACC,CAACA,CAAS,CAAC,GAEPA;AACT;"}
|
|
@@ -1,10 +1,11 @@
|
|
|
1
1
|
import { DataSource } from '@tcn/resource-store';
|
|
2
|
-
import React,
|
|
3
|
-
import { FieldFilterProps } from
|
|
4
|
-
import { TableFilterPanelPresenter } from
|
|
2
|
+
import { default as React, ReactElement } from 'react';
|
|
3
|
+
import { FieldFilterProps } from './field_filters/field_filter_props.js';
|
|
4
|
+
import { TableFilterPanelPresenter } from './table_filter_panel_presenter.js';
|
|
5
5
|
export type TableFilterPanelProps = {
|
|
6
6
|
children: ReactElement<FieldFilterProps>[] | ReactElement<FieldFilterProps>;
|
|
7
7
|
dataSource: DataSource<any>;
|
|
8
8
|
};
|
|
9
|
-
export declare function TableFilterPanel({ children, dataSource }: TableFilterPanelProps):
|
|
9
|
+
export declare function TableFilterPanel({ children, dataSource }: TableFilterPanelProps): import("react/jsx-runtime").JSX.Element;
|
|
10
10
|
export declare const TableFilterPanelContext: React.Context<TableFilterPanelPresenter<unknown> | null>;
|
|
11
|
+
//# sourceMappingURL=table_filter_panel.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"table_filter_panel.d.ts","sourceRoot":"","sources":["../../../src/components/table_filter_panel/table_filter_panel.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,qBAAqB,CAAC;AAEjD,OAAO,KAAK,EAAE,EAAE,YAAY,EAA2B,MAAM,OAAO,CAAC;AACrE,OAAO,EAAE,gBAAgB,EAAE,MAAM,uCAAuC,CAAC;AACzE,OAAO,EAAE,yBAAyB,EAAE,MAAM,mCAAmC,CAAC;AAE9E,MAAM,MAAM,qBAAqB,GAAG;IAClC,QAAQ,EAAE,YAAY,CAAC,gBAAgB,CAAC,EAAE,GAAG,YAAY,CAAC,gBAAgB,CAAC,CAAC;IAC5E,UAAU,EAAE,UAAU,CAAC,GAAG,CAAC,CAAC;CAC7B,CAAC;AAEF,wBAAgB,gBAAgB,CAAC,EAAE,QAAQ,EAAE,UAAU,EAAE,EAAE,qBAAqB,2CAU/E;AAED,eAAO,MAAM,uBAAuB,0DAEnC,CAAC"}
|
|
@@ -1,12 +1,16 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import
|
|
3
|
-
import {
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
return (React.createElement(TableFilterPanelContext.Provider, { value: presenter },
|
|
9
|
-
React.createElement(VStack, { gap: "16px" }, children)));
|
|
1
|
+
import { jsx as e } from "react/jsx-runtime";
|
|
2
|
+
import { VStack as o } from "@tcn/ui/stacks";
|
|
3
|
+
import { createContext as l, useState as a } from "react";
|
|
4
|
+
import { TableFilterPanelPresenter as i } from "./table_filter_panel_presenter.js";
|
|
5
|
+
function f({ children: r, dataSource: t }) {
|
|
6
|
+
const [n] = a(() => new i(t));
|
|
7
|
+
return /* @__PURE__ */ e(m.Provider, { value: n, children: /* @__PURE__ */ e(o, { gap: "16px", children: r }) });
|
|
10
8
|
}
|
|
11
|
-
|
|
12
|
-
|
|
9
|
+
const m = l(
|
|
10
|
+
null
|
|
11
|
+
);
|
|
12
|
+
export {
|
|
13
|
+
f as TableFilterPanel,
|
|
14
|
+
m as TableFilterPanelContext
|
|
15
|
+
};
|
|
16
|
+
//# sourceMappingURL=table_filter_panel.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"table_filter_panel.js","
|
|
1
|
+
{"version":3,"file":"table_filter_panel.js","sources":["../../../src/components/table_filter_panel/table_filter_panel.tsx"],"sourcesContent":["import { DataSource } from '@tcn/resource-store';\nimport { VStack } from '@tcn/ui/stacks';\nimport React, { ReactElement, useState, createContext } from 'react';\nimport { FieldFilterProps } from './field_filters/field_filter_props.js';\nimport { TableFilterPanelPresenter } from './table_filter_panel_presenter.js';\n\nexport type TableFilterPanelProps = {\n children: ReactElement<FieldFilterProps>[] | ReactElement<FieldFilterProps>;\n dataSource: DataSource<any>;\n};\n\nexport function TableFilterPanel({ children, dataSource }: TableFilterPanelProps) {\n const [presenter] = useState(() => {\n return new TableFilterPanelPresenter(dataSource);\n });\n\n return (\n <TableFilterPanelContext.Provider value={presenter}>\n <VStack gap=\"16px\">{children}</VStack>\n </TableFilterPanelContext.Provider>\n );\n}\n\nexport const TableFilterPanelContext = createContext<TableFilterPanelPresenter | null>(\n null\n);\n"],"names":["TableFilterPanel","children","dataSource","presenter","useState","TableFilterPanelPresenter","jsx","TableFilterPanelContext","VStack","createContext"],"mappings":";;;;AAWO,SAASA,EAAiB,EAAE,UAAAC,GAAU,YAAAC,KAAqC;AAChF,QAAM,CAACC,CAAS,IAAIC,EAAS,MACpB,IAAIC,EAA0BH,CAAU,CAChD;AAED,SACE,gBAAAI,EAACC,EAAwB,UAAxB,EAAiC,OAAOJ,GACvC,UAAA,gBAAAG,EAACE,GAAA,EAAO,KAAI,QAAQ,UAAAP,EAAA,CAAS,EAAA,CAC/B;AAEJ;AAEO,MAAMM,IAA0BE;AAAA,EACrC;AACF;"}
|
|
@@ -1,6 +1,5 @@
|
|
|
1
1
|
import { DataSource } from '@tcn/resource-store';
|
|
2
|
-
import { FieldFilterStrategy } from
|
|
3
|
-
import { FieldFilterRegistry } from "./field_filters/field_filter_strategy.js";
|
|
2
|
+
import { FieldFilterStrategy, FieldFilterRegistry } from './field_filters/field_filter_strategy.js';
|
|
4
3
|
export declare class TableFilterPanelPresenter<T = unknown> implements FieldFilterRegistry {
|
|
5
4
|
private _dataSource;
|
|
6
5
|
private _unsubscribers;
|
|
@@ -13,3 +12,4 @@ export declare class TableFilterPanelPresenter<T = unknown> implements FieldFilt
|
|
|
13
12
|
private _applyFilters;
|
|
14
13
|
private _setFieldFilterState;
|
|
15
14
|
}
|
|
15
|
+
//# sourceMappingURL=table_filter_panel_presenter.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"table_filter_panel_presenter.d.ts","sourceRoot":"","sources":["../../../src/components/table_filter_panel/table_filter_panel_presenter.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,UAAU,EAAE,MAAM,qBAAqB,CAAC;AAEjD,OAAO,EAAE,mBAAmB,EAAE,MAAM,0CAA0C,CAAC;AAC/E,OAAO,EAAE,mBAAmB,EAAE,MAAM,0CAA0C,CAAC;AAC/E,qBAAa,yBAAyB,CAAC,CAAC,GAAG,OAAO,CAAE,YAAW,mBAAmB;IAChF,OAAO,CAAC,WAAW,CAAgB;IACnC,OAAO,CAAC,cAAc,CAAiC;IAEvD,OAAO,CAAC,aAAa,CAA0C;IAK/D,OAAO,CAAC,sBAAsB,CAAM;IACpC,OAAO,CAAC,iBAAiB,CAAS;gBAEtB,UAAU,EAAE,UAAU,CAAC,CAAC,CAAC;IAarC,mBAAmB,CAAC,SAAS,EAAE,MAAM,EAAE,WAAW,EAAE,mBAAmB;IAWvE,qBAAqB,CAAC,SAAS,EAAE,MAAM;YAMzB,aAAa;YAUb,oBAAoB;CAmBnC"}
|
|
@@ -1,63 +1,46 @@
|
|
|
1
|
-
import { parseFilterString } from
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
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
|
-
.join(' AND ');
|
|
43
|
-
this._lastKnownFilterString = filterString;
|
|
44
|
-
this._dataSource.setFilterString(filterString);
|
|
45
|
-
}
|
|
46
|
-
async _setFieldFilterState(fieldFilter) {
|
|
47
|
-
const filterString = this._dataSource.broadcasts.filterString.get();
|
|
48
|
-
// TODO: Why isn't this type working?
|
|
49
|
-
const ast = (await parseFilterString(filterString));
|
|
50
|
-
if (ast == null) {
|
|
51
|
-
return;
|
|
52
|
-
}
|
|
53
|
-
ast.findAll(n => n.name === 'space').forEach(n => n.remove());
|
|
54
|
-
ast.walkBreadthFirst(n => {
|
|
55
|
-
const firstChild = n.children[0];
|
|
56
|
-
if (n.children.length === 1 && firstChild.children.length === 0) {
|
|
57
|
-
n.replaceWith(firstChild);
|
|
58
|
-
}
|
|
59
|
-
});
|
|
60
|
-
fieldFilter.setFilterState(ast);
|
|
61
|
-
}
|
|
1
|
+
import { parseFilterString as l } from "@tcn/aip-160";
|
|
2
|
+
class c {
|
|
3
|
+
_dataSource;
|
|
4
|
+
_unsubscribers = /* @__PURE__ */ new Map();
|
|
5
|
+
_fieldFilters = /* @__PURE__ */ new Map();
|
|
6
|
+
// Some state to prevent infinite loops.
|
|
7
|
+
// Disable filtering while we're setting state of all the fields
|
|
8
|
+
// based on an updated filter string.
|
|
9
|
+
_lastKnownFilterString = "";
|
|
10
|
+
_disableObserving = !1;
|
|
11
|
+
constructor(t) {
|
|
12
|
+
this._dataSource = t, this._dataSource.broadcasts.filterString.subscribe((e) => {
|
|
13
|
+
if (e !== this._lastKnownFilterString) {
|
|
14
|
+
this._disableObserving = !0;
|
|
15
|
+
for (const i of this._fieldFilters.values())
|
|
16
|
+
this._setFieldFilterState(i);
|
|
17
|
+
this._disableObserving = !1;
|
|
18
|
+
}
|
|
19
|
+
});
|
|
20
|
+
}
|
|
21
|
+
registerFieldFilter(t, e) {
|
|
22
|
+
this._fieldFilters.set(t, e);
|
|
23
|
+
const i = e.onChange(() => {
|
|
24
|
+
this._disableObserving || this._applyFilters();
|
|
25
|
+
});
|
|
26
|
+
this._unsubscribers.set(t, i), this._setFieldFilterState(e);
|
|
27
|
+
}
|
|
28
|
+
unregisterFieldFilter(t) {
|
|
29
|
+
this._fieldFilters.delete(t), this._unsubscribers.get(t)?.(), this._unsubscribers.delete(t);
|
|
30
|
+
}
|
|
31
|
+
async _applyFilters() {
|
|
32
|
+
const t = Array.from(this._fieldFilters.values()).map((e) => e.getFilterString()).filter(Boolean).join(" AND ");
|
|
33
|
+
this._lastKnownFilterString = t, this._dataSource.setFilterString(t);
|
|
34
|
+
}
|
|
35
|
+
async _setFieldFilterState(t) {
|
|
36
|
+
const e = this._dataSource.broadcasts.filterString.get(), i = await l(e);
|
|
37
|
+
i != null && (i.findAll((s) => s.name === "space").forEach((s) => s.remove()), i.walkBreadthFirst((s) => {
|
|
38
|
+
const r = s.children[0];
|
|
39
|
+
s.children.length === 1 && r.children.length === 0 && s.replaceWith(r);
|
|
40
|
+
}), t.setFilterState(i));
|
|
41
|
+
}
|
|
62
42
|
}
|
|
63
|
-
|
|
43
|
+
export {
|
|
44
|
+
c as TableFilterPanelPresenter
|
|
45
|
+
};
|
|
46
|
+
//# sourceMappingURL=table_filter_panel_presenter.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"table_filter_panel_presenter.js","
|
|
1
|
+
{"version":3,"file":"table_filter_panel_presenter.js","sources":["../../../src/components/table_filter_panel/table_filter_panel_presenter.ts"],"sourcesContent":["import { parseFilterString } from '@tcn/aip-160';\nimport { DataSource } from '@tcn/resource-store';\nimport { Node } from 'clarity-pattern-parser';\nimport { FieldFilterStrategy } from './field_filters/field_filter_strategy.js';\nimport { FieldFilterRegistry } from './field_filters/field_filter_strategy.js';\nexport class TableFilterPanelPresenter<T = unknown> implements FieldFilterRegistry {\n private _dataSource: DataSource<T>;\n private _unsubscribers = new Map<string, () => void>();\n\n private _fieldFilters = new Map<string, FieldFilterStrategy>();\n\n // Some state to prevent infinite loops.\n // Disable filtering while we're setting state of all the fields\n // based on an updated filter string.\n private _lastKnownFilterString = '';\n private _disableObserving = false;\n\n constructor(dataSource: DataSource<T>) {\n this._dataSource = dataSource;\n this._dataSource.broadcasts.filterString.subscribe(filterString => {\n if (filterString !== this._lastKnownFilterString) {\n this._disableObserving = true;\n for (const fieldFilter of this._fieldFilters.values()) {\n this._setFieldFilterState(fieldFilter);\n }\n this._disableObserving = false;\n }\n });\n }\n\n registerFieldFilter(fieldName: string, fieldFilter: FieldFilterStrategy) {\n this._fieldFilters.set(fieldName, fieldFilter);\n const unsubscribe = fieldFilter.onChange(() => {\n if (!this._disableObserving) {\n this._applyFilters();\n }\n });\n this._unsubscribers.set(fieldName, unsubscribe);\n this._setFieldFilterState(fieldFilter);\n }\n\n unregisterFieldFilter(fieldName: string) {\n this._fieldFilters.delete(fieldName);\n this._unsubscribers.get(fieldName)?.();\n this._unsubscribers.delete(fieldName);\n }\n\n private async _applyFilters() {\n const filterString = Array.from(this._fieldFilters.values())\n .map(fieldFilter => fieldFilter.getFilterString())\n .filter(Boolean)\n .join(' AND ');\n\n this._lastKnownFilterString = filterString;\n this._dataSource.setFilterString(filterString);\n }\n\n private async _setFieldFilterState(fieldFilter: FieldFilterStrategy) {\n const filterString = this._dataSource.broadcasts.filterString.get();\n // TODO: Why isn't this type working?\n const ast = (await parseFilterString(filterString)) as Node | null;\n if (ast == null) {\n return;\n }\n\n ast.findAll((n: Node) => n.name === 'space').forEach((n: Node) => n.remove());\n\n ast.walkBreadthFirst((n: Node) => {\n const firstChild = n.children[0];\n if (n.children.length === 1 && firstChild.children.length === 0) {\n n.replaceWith(firstChild);\n }\n });\n\n fieldFilter.setFilterState(ast);\n }\n}\n"],"names":["TableFilterPanelPresenter","dataSource","filterString","fieldFilter","fieldName","unsubscribe","ast","parseFilterString","n","firstChild"],"mappings":";AAKO,MAAMA,EAAsE;AAAA,EACzE;AAAA,EACA,qCAAqB,IAAA;AAAA,EAErB,oCAAoB,IAAA;AAAA;AAAA;AAAA;AAAA,EAKpB,yBAAyB;AAAA,EACzB,oBAAoB;AAAA,EAE5B,YAAYC,GAA2B;AACrC,SAAK,cAAcA,GACnB,KAAK,YAAY,WAAW,aAAa,UAAU,CAAAC,MAAgB;AACjE,UAAIA,MAAiB,KAAK,wBAAwB;AAChD,aAAK,oBAAoB;AACzB,mBAAWC,KAAe,KAAK,cAAc,OAAA;AAC3C,eAAK,qBAAqBA,CAAW;AAEvC,aAAK,oBAAoB;AAAA,MAC3B;AAAA,IACF,CAAC;AAAA,EACH;AAAA,EAEA,oBAAoBC,GAAmBD,GAAkC;AACvE,SAAK,cAAc,IAAIC,GAAWD,CAAW;AAC7C,UAAME,IAAcF,EAAY,SAAS,MAAM;AAC7C,MAAK,KAAK,qBACR,KAAK,cAAA;AAAA,IAET,CAAC;AACD,SAAK,eAAe,IAAIC,GAAWC,CAAW,GAC9C,KAAK,qBAAqBF,CAAW;AAAA,EACvC;AAAA,EAEA,sBAAsBC,GAAmB;AACvC,SAAK,cAAc,OAAOA,CAAS,GACnC,KAAK,eAAe,IAAIA,CAAS,IAAA,GACjC,KAAK,eAAe,OAAOA,CAAS;AAAA,EACtC;AAAA,EAEA,MAAc,gBAAgB;AAC5B,UAAMF,IAAe,MAAM,KAAK,KAAK,cAAc,OAAA,CAAQ,EACxD,IAAI,CAAAC,MAAeA,EAAY,iBAAiB,EAChD,OAAO,OAAO,EACd,KAAK,OAAO;AAEf,SAAK,yBAAyBD,GAC9B,KAAK,YAAY,gBAAgBA,CAAY;AAAA,EAC/C;AAAA,EAEA,MAAc,qBAAqBC,GAAkC;AACnE,UAAMD,IAAe,KAAK,YAAY,WAAW,aAAa,IAAA,GAExDI,IAAO,MAAMC,EAAkBL,CAAY;AACjD,IAAII,KAAO,SAIXA,EAAI,QAAQ,CAACE,MAAYA,EAAE,SAAS,OAAO,EAAE,QAAQ,CAACA,MAAYA,EAAE,OAAA,CAAQ,GAE5EF,EAAI,iBAAiB,CAACE,MAAY;AAChC,YAAMC,IAAaD,EAAE,SAAS,CAAC;AAC/B,MAAIA,EAAE,SAAS,WAAW,KAAKC,EAAW,SAAS,WAAW,KAC5DD,EAAE,YAAYC,CAAU;AAAA,IAE5B,CAAC,GAEDN,EAAY,eAAeG,CAAG;AAAA,EAChC;AACF;"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/components/table_filter_panel/types.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,kBAAkB,GAAG,IAAI,GAAG,GAAG,GAAG,IAAI,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,IAAI,CAAC;AAE5E,eAAO,MAAM,mBAAmB,UAAyC,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.js","
|
|
1
|
+
{"version":3,"file":"types.js","sources":["../../../src/components/table_filter_panel/types.ts"],"sourcesContent":["export type ComparisonOperator = '>=' | '>' | '<=' | '<' | '=' | ':' | '!=';\n\nexport const comparisonOperators = ['>=', '>', '<=', '<', '=', ':', '!='];\n"],"names":["comparisonOperators"],"mappings":"AAEO,MAAMA,IAAsB,CAAC,MAAM,KAAK,MAAM,KAAK,KAAK,KAAK,IAAI;"}
|
|
@@ -1,8 +1,8 @@
|
|
|
1
|
-
import React from 'react';
|
|
2
1
|
import { DataSource } from '@tcn/resource-store';
|
|
3
2
|
import { HStackOwnProps, WithDetailedHTMLProps } from '@tcn/ui/stacks';
|
|
4
3
|
export interface TablePagerOwnProps<T> {
|
|
5
4
|
dataSource: DataSource<T>;
|
|
6
5
|
}
|
|
7
6
|
export type TablePagerProps<T> = WithDetailedHTMLProps<TablePagerOwnProps<T> & HStackOwnProps, 'div'>;
|
|
8
|
-
export declare function TablePager<T>({ dataSource, ...props }: TablePagerProps<T>):
|
|
7
|
+
export declare function TablePager<T>({ dataSource, ...props }: TablePagerProps<T>): import("react/jsx-runtime").JSX.Element;
|
|
8
|
+
//# sourceMappingURL=table_pager.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"table_pager.d.ts","sourceRoot":"","sources":["../../src/components/table_pager.tsx"],"names":[],"mappings":"AAGA,OAAO,EAAE,UAAU,EAAE,MAAM,qBAAqB,CAAC;AAGjD,OAAO,EAAU,cAAc,EAAE,qBAAqB,EAAE,MAAM,gBAAgB,CAAC;AAM/E,MAAM,WAAW,kBAAkB,CAAC,CAAC;IACnC,UAAU,EAAE,UAAU,CAAC,CAAC,CAAC,CAAC;CAC3B;AACD,MAAM,MAAM,eAAe,CAAC,CAAC,IAAI,qBAAqB,CACpD,kBAAkB,CAAC,CAAC,CAAC,GAAG,cAAc,EACtC,KAAK,CACN,CAAC;AAEF,wBAAgB,UAAU,CAAC,CAAC,EAAE,EAAE,UAAU,EAAE,GAAG,KAAK,EAAE,EAAE,eAAe,CAAC,CAAC,CAAC,2CAkBzE"}
|
|
@@ -1,21 +1,23 @@
|
|
|
1
|
-
import
|
|
2
|
-
import { ChevronLeftIcon } from
|
|
3
|
-
import { useSignalValue } from
|
|
4
|
-
import { Button } from
|
|
5
|
-
import { HStack } from
|
|
6
|
-
import { BodyText } from
|
|
7
|
-
import { ChevronRightIcon } from
|
|
8
|
-
import
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
React.createElement(ChevronRightIcon, { flipOnRtl: true }))));
|
|
1
|
+
import { jsxs as n, jsx as e } from "react/jsx-runtime";
|
|
2
|
+
import { ChevronLeftIcon as l } from "@tcn/icons/chevron_left_icon.js";
|
|
3
|
+
import { useSignalValue as r } from "@tcn/state";
|
|
4
|
+
import { Button as a } from "@tcn/ui/actions";
|
|
5
|
+
import { HStack as i } from "@tcn/ui/stacks";
|
|
6
|
+
import { BodyText as s } from "@tcn/ui/typography";
|
|
7
|
+
import { ChevronRightIcon as g } from "@tcn/icons/chevron_right_icon.js";
|
|
8
|
+
import '../table_pager.css';const d = "_page-count_2afc65e", h = { "page-count": d };
|
|
9
|
+
function v({ dataSource: t, ...c }) {
|
|
10
|
+
const o = r(t.broadcasts.currentPageIndex), p = r(t.broadcasts.hasNextPage);
|
|
11
|
+
return /* @__PURE__ */ n(i, { as: "div", height: "auto", width: "auto", gap: "8px", ...c, children: [
|
|
12
|
+
/* @__PURE__ */ n(i, { gap: "4px", width: "auto", children: [
|
|
13
|
+
/* @__PURE__ */ e(s, { children: "Page:" }),
|
|
14
|
+
/* @__PURE__ */ e(s, { className: h["page-count"], children: o + 1 })
|
|
15
|
+
] }),
|
|
16
|
+
/* @__PURE__ */ e(a, { onClick: () => t.previousPage(), disabled: o === 0, children: /* @__PURE__ */ e(l, { flipOnRtl: !0 }) }),
|
|
17
|
+
/* @__PURE__ */ e(a, { onClick: () => t.nextPage(), disabled: !p, children: /* @__PURE__ */ e(g, { flipOnRtl: !0 }) })
|
|
18
|
+
] });
|
|
20
19
|
}
|
|
21
|
-
|
|
20
|
+
export {
|
|
21
|
+
v as TablePager
|
|
22
|
+
};
|
|
23
|
+
//# sourceMappingURL=table_pager.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"table_pager.js","
|
|
1
|
+
{"version":3,"file":"table_pager.js","sources":["../../src/components/table_pager.tsx"],"sourcesContent":["import React from 'react';\n\nimport { ChevronLeftIcon } from '@tcn/icons/chevron_left_icon.js';\nimport { DataSource } from '@tcn/resource-store';\nimport { useSignalValue } from '@tcn/state';\nimport { Button } from '@tcn/ui/actions';\nimport { HStack, HStackOwnProps, WithDetailedHTMLProps } from '@tcn/ui/stacks';\nimport { BodyText } from '@tcn/ui/typography';\n\nimport { ChevronRightIcon } from '@tcn/icons/chevron_right_icon.js';\nimport styles from './table_pager.module.css';\n\nexport interface TablePagerOwnProps<T> {\n dataSource: DataSource<T>;\n}\nexport type TablePagerProps<T> = WithDetailedHTMLProps<\n TablePagerOwnProps<T> & HStackOwnProps,\n 'div'\n>;\n\nexport function TablePager<T>({ dataSource, ...props }: TablePagerProps<T>) {\n const pageIndex = useSignalValue(dataSource.broadcasts.currentPageIndex);\n const hasNextPage = useSignalValue(dataSource.broadcasts.hasNextPage);\n\n return (\n <HStack as=\"div\" height=\"auto\" width=\"auto\" gap=\"8px\" {...props}>\n <HStack gap=\"4px\" width=\"auto\">\n <BodyText>Page:</BodyText>\n <BodyText className={styles['page-count']}>{pageIndex + 1}</BodyText>\n </HStack>\n <Button onClick={() => dataSource.previousPage()} disabled={pageIndex === 0}>\n <ChevronLeftIcon flipOnRtl />\n </Button>\n <Button onClick={() => dataSource.nextPage()} disabled={!hasNextPage}>\n <ChevronRightIcon flipOnRtl />\n </Button>\n </HStack>\n );\n}\n"],"names":["TablePager","dataSource","props","pageIndex","useSignalValue","hasNextPage","jsxs","HStack","jsx","BodyText","styles","Button","ChevronLeftIcon","ChevronRightIcon"],"mappings":";;;;;;;;AAoBO,SAASA,EAAc,EAAE,YAAAC,GAAY,GAAGC,KAA6B;AAC1E,QAAMC,IAAYC,EAAeH,EAAW,WAAW,gBAAgB,GACjEI,IAAcD,EAAeH,EAAW,WAAW,WAAW;AAEpE,SACE,gBAAAK,EAACC,GAAA,EAAO,IAAG,OAAM,QAAO,QAAO,OAAM,QAAO,KAAI,OAAO,GAAGL,GACxD,UAAA;AAAA,IAAA,gBAAAI,EAACC,GAAA,EAAO,KAAI,OAAM,OAAM,QACtB,UAAA;AAAA,MAAA,gBAAAC,EAACC,KAAS,UAAA,QAAA,CAAK;AAAA,wBACdA,GAAA,EAAS,WAAWC,EAAO,YAAY,GAAI,cAAY,EAAA,CAAE;AAAA,IAAA,GAC5D;AAAA,IACA,gBAAAF,EAACG,GAAA,EAAO,SAAS,MAAMV,EAAW,aAAA,GAAgB,UAAUE,MAAc,GACxE,UAAA,gBAAAK,EAACI,GAAA,EAAgB,WAAS,IAAC,GAC7B;AAAA,IACA,gBAAAJ,EAACG,GAAA,EAAO,SAAS,MAAMV,EAAW,SAAA,GAAY,UAAU,CAACI,GACvD,UAAA,gBAAAG,EAACK,GAAA,EAAiB,WAAS,IAAC,EAAA,CAC9B;AAAA,EAAA,GACF;AAEJ;"}
|
package/dist/index.d.ts
CHANGED
|
@@ -12,3 +12,4 @@ export { SelectFieldFilter } from './components/table_filter_panel/field_filters
|
|
|
12
12
|
export type { FieldFilterStrategy } from './components/table_filter_panel/field_filters/field_filter_strategy.js';
|
|
13
13
|
export type { FieldFilterProps } from './components/table_filter_panel/field_filters/field_filter_props.js';
|
|
14
14
|
export { useFieldFilterStrategy as useFilterFieldStrategy } from './components/table_filter_panel/field_filters/use_field_filter_strategy.js';
|
|
15
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,MAAM,6BAA6B,CAAC;AACpD,OAAO,EAAE,WAAW,EAAE,MAAM,oCAAoC,CAAC;AACjE,OAAO,EAAE,UAAU,EAAE,MAAM,6BAA6B,CAAC;AACzD,OAAO,EAAE,YAAY,EAAE,MAAM,+BAA+B,CAAC;AAC7D,OAAO,EAAE,gBAAgB,EAAE,MAAM,uDAAuD,CAAC;AACzF,OAAO,EAAE,iBAAiB,EAAE,MAAM,sEAAsE,CAAC;AACzG,OAAO,EAAE,iBAAiB,EAAE,MAAM,sEAAsE,CAAC;AACzG,OAAO,EAAE,eAAe,EAAE,MAAM,oEAAoE,CAAC;AACrG,OAAO,EAAE,sBAAsB,EAAE,MAAM,4EAA4E,CAAC;AACpH,OAAO,EAAE,sBAAsB,EAAE,MAAM,4EAA4E,CAAC;AACpH,OAAO,EAAE,iBAAiB,EAAE,MAAM,sEAAsE,CAAC;AAGzG,YAAY,EAAE,mBAAmB,EAAE,MAAM,wEAAwE,CAAC;AAClH,YAAY,EAAE,gBAAgB,EAAE,MAAM,qEAAqE,CAAC;AAC5G,OAAO,EAAE,sBAAsB,IAAI,sBAAsB,EAAE,MAAM,4EAA4E,CAAC"}
|
package/dist/index.js
CHANGED
|
@@ -1,13 +1,27 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
1
|
+
import { Table as t } from "./components/table/table.js";
|
|
2
|
+
import { TableColumn as o } from "./components/table/table_column.js";
|
|
3
|
+
import { TablePager as F } from "./components/table_pager.js";
|
|
4
|
+
import { GlobalSearch as a } from "./components/global_search.js";
|
|
5
|
+
import { TableFilterPanel as p } from "./components/table_filter_panel/table_filter_panel.js";
|
|
6
|
+
import { NumberFieldFilter as d } from "./components/table_filter_panel/field_filters/number_field_filter.js";
|
|
7
|
+
import { StringFieldFilter as u } from "./components/table_filter_panel/field_filters/string_field_filter.js";
|
|
8
|
+
import { DateFieldFilter as g } from "./components/table_filter_panel/field_filters/date_field_filter.js";
|
|
9
|
+
import { NumberRangeFieldFilter as T } from "./components/table_filter_panel/field_filters/number_range_field_filter.js";
|
|
10
|
+
import { MulitSelectFieldFilter as s } from "./components/table_filter_panel/field_filters/mulit_select_field_filter.js";
|
|
11
|
+
import { SelectFieldFilter as N } from "./components/table_filter_panel/field_filters/select_field_filter.js";
|
|
12
|
+
import { useFieldFilterStrategy as h } from "./components/table_filter_panel/field_filters/use_field_filter_strategy.js";
|
|
13
|
+
export {
|
|
14
|
+
g as DateFieldFilter,
|
|
15
|
+
a as GlobalSearch,
|
|
16
|
+
s as MulitSelectFieldFilter,
|
|
17
|
+
d as NumberFieldFilter,
|
|
18
|
+
T as NumberRangeFieldFilter,
|
|
19
|
+
N as SelectFieldFilter,
|
|
20
|
+
u as StringFieldFilter,
|
|
21
|
+
t as Table,
|
|
22
|
+
o as TableColumn,
|
|
23
|
+
p as TableFilterPanel,
|
|
24
|
+
F as TablePager,
|
|
25
|
+
h as useFilterFieldStrategy
|
|
26
|
+
};
|
|
27
|
+
//# sourceMappingURL=index.js.map
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","
|
|
1
|
+
{"version":3,"file":"index.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;;"}
|
package/dist/table.css
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
._table-body-wrapper_55f7034{box-shadow:var(--table-box-shadow, inset 0px 1px 2px 0px rgba(0, 0, 0, .5));font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen,Ubuntu,Cantarell,Open Sans,Helvetica Neue,sans-serif;color:#333}._table-body_b8c928c{border-spacing:0;width:auto;min-width:100%;height:auto;min-height:100%;font-size:12px;table-layout:fixed;background-color:#ebebeb}.dark-mode ._table-body_b8c928c{background-color:#333;color:#ffffffe6}td{text-align:start;overflow:hidden;white-space:nowrap;text-overflow:ellipsis;background-color:inherit}._table-body_b8c928c tr{font-size:12px}._table-body_b8c928c tr[data-clickable=true]{cursor:pointer}._table-body_b8c928c thead tr th{position:sticky;top:0;z-index:1;box-sizing:border-box}._table-body_b8c928c thead{position:sticky;top:0;z-index:3}._table-body_b8c928c tbody{position:relative;z-index:1}._table-body_b8c928c tfoot{position:relative;z-index:2}._table-body_b8c928c th{--accent-color: #0077aa;--accent-surface-light: color-mix(in srgb, var(--accent-color) 8%, white);background-color:var(--accent-surface-light);color:#000;font-weight:400;text-align:start}._table-body_b8c928c th>div{border-inline-start:1px solid #ccc;border-bottom:1px solid #ccc;display:flex;align-items:center}._table-body_b8c928c th:first-child>div{border-inline-start:none}._table-body_b8c928c th:last-child>div{border-inline:1px solid #ccc}.dark-mode ._table-body_b8c928c th:last-child{border-inline:1px solid #202020}._table-body_b8c928c td:last-child>div{border-inline:1px solid #ccc}.dark-mode ._table-body_b8c928c td:last-child>div{border-inline:1px solid #202020}.dark-mode ._table-body_b8c928c th{color:#ffffffe6;border-bottom:1px solid #202020;border-inline-start:1px solid #202020;background-color:#333}._table-body_b8c928c td>div{height:100%;display:flex;align-items:center;border-bottom:1px solid #e0e0e0}.dark-mode ._table-body_b8c928c td>div{border-bottom:1px solid #202020}._table-body_b8c928c tr:nth-child(odd){background-color:#f1f1f1}._table-body_b8c928c tr:nth-child(2n){background-color:#fff}.dark-mode ._table-body_b8c928c tr:nth-child(odd){background-color:#3b3b3b}.dark-mode ._table-body_b8c928c tr:nth-child(2n){background-color:#2e2e2e}._table-body_b8c928c tr:hover{background-color:#dedede}.dark-mode ._table-body_b8c928c tr:hover{background-color:#1e1e1e}._table-body_b8c928c thead{box-shadow:0 2px 2px -1px #0000001a}._table-body_b8c928c tfoot td{background-color:#f0f0f0;font-weight:700}._table-body_b8c928c tr.fill{height:auto}._table-body_b8c928c tr td.fill{width:auto;min-width:none;background-color:inherit}._table-body_b8c928c tr th.fill{width:auto;background-color:inherit}._table-body_b8c928c tfoot{position:sticky;bottom:0}._table-body_b8c928c tr[data-selected=true],.dark-mode ._table-body_b8c928c tr[data-selected=true]{background-color:var(--accent-color, #549aff);color:#fff}._table-body_b8c928c td,._table-body_b8c928c th{max-height:30px;height:30px;font-size:12px;vertical-align:middle}._table-body_b8c928c td:first-child>div{padding-inline-start:var(--surface-inset, 6px)}._table-body_b8c928c td:last-child>div{padding-inline-end:var(--surface-inset, 6px)}.small-text ._table-body_b8c928c td,.small-text ._table-body_b8c928c th{max-height:20px;height:20px;font-size:10px}.medium-small-text ._table-body_b8c928c td,.medium-small-text ._table-body_b8c928c th{max-height:22px;height:22px;font-size:12px}.medium-text ._table-body_b8c928c td,.medium-text ._table-body_b8c928c th{max-height:24px;height:24px;font-size:14px}.medium-large-text ._table-body_b8c928c td,.medium-large-text ._table-body_b8c928c th{max-height:26px;height:26px;font-size:16px}.large-text ._table-body_b8c928c td,.large-text ._table-body_b8c928c th{height:28px;max-height:28px;font-size:18px}._table-body_b8c928c th{padding:0!important}._table-body_b8c928c tr th.spacer{background-color:#f1f1f1}.dark-mode ._table-body_b8c928c tr th.spacer{background-color:#333}._table-body_b8c928c tr th.fill{background-color:#f1f1f1}.dark-mode ._table-body_b8c928c tr th.fill{background-color:#333}._table-body_b8c928c tr[data-sticky-row] td{background-color:#ccc}.dark-mode ._table-body_b8c928c tr[data-sticky-row] td{background-color:#2f2f2f}._table-body_b8c928c[data-is-clickable=true] td{cursor:pointer}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
._page-count_2afc65e{min-width:2ch;text-align:right}
|