@sankhyalabs/sankhyablocks 9.2.0-dev.2 → 9.2.0-dev.21
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/dist/cjs/{ConfigStorage-1931defc.js → ConfigStorage-8b6def32.js} +2 -2
- package/dist/cjs/{DataFetcher-ad9fb3bb.js → DataFetcher-2c37b6a1.js} +52 -1
- package/dist/cjs/{ISave-18ffb73e.js → ISave-b22b3cf0.js} +1 -1
- package/dist/cjs/{SnkFormConfigManager-65e5288e.js → SnkFormConfigManager-477a27de.js} +2 -2
- package/dist/cjs/{ClientSideExporterProvider-994f6e26.js → SnkMultiSelectionListDataSource-b7ab26ba.js} +82 -79
- package/dist/cjs/{auth-fetcher-afbe69ab.js → auth-fetcher-78a90b36.js} +1 -1
- package/dist/cjs/{dataunit-fetcher-c7253b02.js → dataunit-fetcher-877944a9.js} +1 -1
- package/dist/cjs/filter-validate-6993f6f2.js +30 -0
- package/dist/cjs/{form-config-fetcher-f6e66d64.js → form-config-fetcher-dee08eb4.js} +1 -1
- package/dist/cjs/{index-0ad2baeb.js → index-13d05f03.js} +21 -5
- package/dist/cjs/index-1cf293c1.js +8 -8
- package/dist/cjs/loader.cjs.js +1 -1
- package/dist/cjs/pesquisa-grid_2.cjs.entry.js +4 -4
- package/dist/cjs/sankhyablocks.cjs.js +1 -1
- package/dist/cjs/snk-actions-button_8.cjs.entry.js +5 -5
- package/dist/cjs/snk-application.cjs.entry.js +6 -9
- package/dist/cjs/snk-attach.cjs.entry.js +7 -7
- package/dist/cjs/snk-crud.cjs.entry.js +7 -7
- package/dist/cjs/snk-data-exporter.cjs.entry.js +5 -5
- package/dist/cjs/{snk-data-unit-448fce74.js → snk-data-unit-0cfa7622.js} +14 -4
- package/dist/cjs/snk-data-unit.cjs.entry.js +3 -3
- package/dist/cjs/snk-detail-view.cjs.entry.js +9 -9
- package/dist/cjs/snk-entity-list.cjs.entry.js +10 -3
- package/dist/cjs/snk-expression-group_2.cjs.entry.js +1 -1
- package/dist/cjs/snk-filter-bar_4.cjs.entry.js +189 -115
- package/dist/cjs/snk-filter-binary-select.cjs.entry.js +23 -2
- package/dist/cjs/snk-filter-checkbox-list.cjs.entry.js +20 -2
- package/dist/cjs/snk-filter-detail.cjs.entry.js +25 -8
- package/dist/cjs/snk-filter-modal-item.cjs.entry.js +9 -14
- package/dist/cjs/snk-filter-multi-select.cjs.entry.js +16 -3
- package/dist/cjs/snk-filter-number.cjs.entry.js +34 -3
- package/dist/cjs/snk-filter-period.cjs.entry.js +59 -14
- package/dist/cjs/snk-filter-search.cjs.entry.js +14 -3
- package/dist/cjs/snk-filter-text.cjs.entry.js +18 -1
- package/dist/cjs/snk-form_2.cjs.entry.js +31 -5
- package/dist/cjs/snk-grid.cjs.entry.js +158 -66
- package/dist/cjs/{snk-guides-viewer-c23ed218.js → snk-guides-viewer-38277265.js} +6 -6
- package/dist/cjs/snk-guides-viewer.cjs.entry.js +9 -9
- package/dist/cjs/snk-personalized-filter.cjs.entry.js +14 -6
- package/dist/cjs/snk-pesquisa.cjs.entry.js +4 -4
- package/dist/cjs/snk-simple-bar.cjs.entry.js +5 -5
- package/dist/cjs/snk-simple-crud.cjs.entry.js +60 -23
- package/dist/cjs/snk-taskbar.cjs.entry.js +2 -2
- package/dist/cjs/{taskbar-elements-3b74cd21.js → taskbar-elements-fb5d1e08.js} +1 -1
- package/dist/collection/components/snk-application/snk-application.js +0 -2
- package/dist/collection/components/snk-data-exporter/providers/ClientSideExporterProvider.js +4 -1
- package/dist/collection/components/snk-data-unit/snk-data-unit.js +174 -29
- package/dist/collection/components/snk-entity-list/snk-entity-list.js +28 -4
- package/dist/collection/components/snk-filter-bar/filter-item/editors/snk-filter-binary-select.js +72 -2
- package/dist/collection/components/snk-filter-bar/filter-item/editors/snk-filter-checkbox-list.js +73 -2
- package/dist/collection/components/snk-filter-bar/filter-item/editors/snk-filter-multi-select.js +51 -5
- package/dist/collection/components/snk-filter-bar/filter-item/editors/snk-filter-number.js +83 -3
- package/dist/collection/components/snk-filter-bar/filter-item/editors/snk-filter-period.js +118 -27
- package/dist/collection/components/snk-filter-bar/filter-item/editors/snk-filter-search.js +49 -5
- package/dist/collection/components/snk-filter-bar/filter-item/editors/snk-filter-text.js +71 -1
- package/dist/collection/components/snk-filter-bar/filter-item/snk-filter-detail.js +62 -11
- package/dist/collection/components/snk-filter-bar/filter-item/snk-filter-item.js +70 -8
- package/dist/collection/components/snk-filter-bar/filter-modal/snk-filter-modal.css +0 -4
- package/dist/collection/components/snk-filter-bar/filter-modal/snk-filter-modal.js +112 -16
- package/dist/collection/components/snk-filter-bar/filter-modal/subcomponents/snk-filter-modal-item.js +8 -16
- package/dist/collection/components/snk-filter-bar/snk-filter-bar.js +315 -114
- package/dist/collection/components/snk-filter-bar/utils/SnkFilterModalFactory.js +3 -1
- package/dist/collection/components/snk-filter-bar/utils/filter-validate.js +24 -0
- package/dist/collection/components/snk-form/snk-form.js +133 -22
- package/dist/collection/components/snk-grid/snk-grid.js +488 -133
- package/dist/collection/components/snk-personalized-filter/snk-personalized-filter.js +83 -21
- package/dist/collection/components/snk-pesquisa/snk-pesquisa.js +80 -14
- package/dist/collection/components/snk-simple-bar/snk-simple-bar.js +9 -9
- package/dist/collection/components/snk-simple-crud/snk-simple-crud.js +414 -119
- package/dist/collection/components/snk-taskbar/snk-taskbar.js +102 -36
- package/dist/collection/lib/http/data-fetcher/DataFetcher.js +1 -0
- package/dist/collection/lib/http/data-fetcher/custom-xhr-override.js +39 -0
- package/dist/collection/lib/message/resources/en-us/snk-filter-bar.msg.js +1 -0
- package/dist/collection/lib/message/resources/en-us/snk-grid.msg.js +4 -0
- package/dist/collection/lib/message/resources/es-es/snk-filter-bar.msg.js +1 -0
- package/dist/collection/lib/message/resources/es-es/snk-grid.msg.js +4 -0
- package/dist/collection/lib/message/resources/pt-br/snk-filter-bar.msg.js +1 -0
- package/dist/collection/lib/message/resources/pt-br/snk-grid.msg.js +4 -0
- package/dist/components/ContinuousInsertUtils.js +4 -1
- package/dist/components/DataFetcher.js +52 -1
- package/dist/components/index2.js +21 -5
- package/dist/components/snk-application2.js +0 -3
- package/dist/components/snk-crud.js +62 -44
- package/dist/components/snk-data-unit2.js +12 -2
- package/dist/components/snk-detail-view2.js +89 -56
- package/dist/components/snk-entity-list.js +11 -3
- package/dist/components/snk-filter-bar2.js +103 -108
- package/dist/components/snk-filter-binary-select.js +27 -3
- package/dist/components/snk-filter-checkbox-list.js +24 -3
- package/dist/components/snk-filter-detail2.js +28 -9
- package/dist/components/snk-filter-item2.js +70 -8
- package/dist/components/snk-filter-modal-item2.js +7 -12
- package/dist/components/snk-filter-modal.js +1 -325
- package/dist/components/snk-filter-modal2.js +391 -0
- package/dist/components/snk-filter-multi-select.js +19 -4
- package/dist/components/snk-filter-number.js +38 -4
- package/dist/components/snk-filter-period.js +64 -16
- package/dist/components/snk-filter-search.js +17 -4
- package/dist/components/snk-filter-text.js +22 -2
- package/dist/components/snk-form.js +29 -2
- package/dist/components/snk-grid2.js +188 -75
- package/dist/components/snk-personalized-filter2.js +10 -2
- package/dist/components/snk-simple-bar2.js +5 -5
- package/dist/components/snk-simple-crud2.js +45 -8
- package/dist/esm/{ConfigStorage-b5a1dba3.js → ConfigStorage-22eace3a.js} +2 -2
- package/dist/esm/{DataFetcher-6f6de657.js → DataFetcher-f6b2961a.js} +52 -1
- package/dist/esm/{ISave-7ecdca20.js → ISave-6b7b0423.js} +1 -1
- package/dist/esm/{SnkFormConfigManager-34fc1dc7.js → SnkFormConfigManager-968b97e7.js} +2 -2
- package/dist/esm/{ClientSideExporterProvider-7c2781f4.js → SnkMultiSelectionListDataSource-1136c4e7.js} +87 -84
- package/dist/esm/{auth-fetcher-7332a9a9.js → auth-fetcher-cf39e42b.js} +1 -1
- package/dist/esm/{dataunit-fetcher-f21cbad0.js → dataunit-fetcher-6314b19d.js} +1 -1
- package/dist/esm/filter-validate-d765d450.js +27 -0
- package/dist/esm/{form-config-fetcher-6ab4e805.js → form-config-fetcher-bc6f0f1f.js} +1 -1
- package/dist/esm/{index-b72af127.js → index-446f9341.js} +21 -5
- package/dist/esm/index-479e1293.js +8 -8
- package/dist/esm/loader.js +1 -1
- package/dist/esm/pesquisa-grid_2.entry.js +4 -4
- package/dist/esm/sankhyablocks.js +1 -1
- package/dist/esm/snk-actions-button_8.entry.js +5 -5
- package/dist/esm/snk-application.entry.js +6 -9
- package/dist/esm/snk-attach.entry.js +7 -7
- package/dist/esm/snk-crud.entry.js +7 -7
- package/dist/esm/snk-data-exporter.entry.js +5 -5
- package/dist/esm/{snk-data-unit-b7e6e7a6.js → snk-data-unit-4acf4781.js} +14 -4
- package/dist/esm/snk-data-unit.entry.js +3 -3
- package/dist/esm/snk-detail-view.entry.js +9 -9
- package/dist/esm/snk-entity-list.entry.js +10 -3
- package/dist/esm/snk-expression-group_2.entry.js +1 -1
- package/dist/esm/snk-filter-bar_4.entry.js +190 -116
- package/dist/esm/snk-filter-binary-select.entry.js +23 -2
- package/dist/esm/snk-filter-checkbox-list.entry.js +20 -2
- package/dist/esm/snk-filter-detail.entry.js +25 -8
- package/dist/esm/snk-filter-modal-item.entry.js +9 -14
- package/dist/esm/snk-filter-multi-select.entry.js +16 -3
- package/dist/esm/snk-filter-number.entry.js +34 -3
- package/dist/esm/snk-filter-period.entry.js +59 -14
- package/dist/esm/snk-filter-search.entry.js +14 -3
- package/dist/esm/snk-filter-text.entry.js +18 -1
- package/dist/esm/snk-form_2.entry.js +31 -5
- package/dist/esm/snk-grid.entry.js +152 -60
- package/dist/esm/{snk-guides-viewer-fbfece85.js → snk-guides-viewer-19cb7f1f.js} +6 -6
- package/dist/esm/snk-guides-viewer.entry.js +9 -9
- package/dist/esm/snk-personalized-filter.entry.js +14 -6
- package/dist/esm/snk-pesquisa.entry.js +4 -4
- package/dist/esm/snk-simple-bar.entry.js +5 -5
- package/dist/esm/snk-simple-crud.entry.js +55 -18
- package/dist/esm/snk-taskbar.entry.js +2 -2
- package/dist/esm/{taskbar-elements-171476d4.js → taskbar-elements-faaf5d8f.js} +1 -1
- package/dist/sankhyablocks/p-093f58fa.entry.js +1 -0
- package/dist/sankhyablocks/{p-0e495575.js → p-0a317e81.js} +1 -1
- package/dist/sankhyablocks/{p-ad2ae575.entry.js → p-0e1f0344.entry.js} +1 -1
- package/dist/sankhyablocks/{p-8d1508aa.entry.js → p-16c1c209.entry.js} +1 -1
- package/dist/sankhyablocks/p-29cacaf3.entry.js +1 -0
- package/dist/sankhyablocks/{p-eb0616d3.entry.js → p-32450ea2.entry.js} +1 -1
- package/dist/sankhyablocks/{p-b49281be.entry.js → p-3c29939c.entry.js} +1 -1
- package/dist/sankhyablocks/p-3ed04f0d.entry.js +1 -0
- package/dist/sankhyablocks/{p-4872dc3a.entry.js → p-44c5ec49.entry.js} +1 -1
- package/dist/sankhyablocks/p-49ddc27a.entry.js +1 -0
- package/dist/sankhyablocks/p-4c763b10.entry.js +1 -0
- package/dist/sankhyablocks/p-4eeb06fc.js +1 -0
- package/dist/sankhyablocks/p-505172c8.entry.js +1 -0
- package/dist/sankhyablocks/p-55798617.js +1 -0
- package/dist/sankhyablocks/p-658f67a5.js +1 -0
- package/dist/sankhyablocks/{p-158adf33.entry.js → p-701b024c.entry.js} +1 -1
- package/dist/sankhyablocks/p-72a9285d.entry.js +1 -0
- package/dist/sankhyablocks/p-7f7fe6c4.entry.js +1 -0
- package/dist/sankhyablocks/p-88b7bc09.js +1 -0
- package/dist/sankhyablocks/{p-c6331595.js → p-8d256def.js} +1 -1
- package/dist/sankhyablocks/p-8f37b75b.entry.js +1 -0
- package/dist/sankhyablocks/{p-b35574b5.js → p-9062d640.js} +1 -1
- package/dist/sankhyablocks/{p-72c8c847.entry.js → p-95c71f5e.entry.js} +1 -1
- package/dist/sankhyablocks/p-96d45943.entry.js +1 -0
- package/dist/sankhyablocks/{p-eacff4b7.entry.js → p-b2d7f4cd.entry.js} +1 -1
- package/dist/sankhyablocks/{p-6a015ba2.js → p-b7f5caf6.js} +1 -1
- package/dist/sankhyablocks/p-b9200e77.entry.js +11 -0
- package/dist/sankhyablocks/{p-7de79adf.js → p-b987e15d.js} +1 -1
- package/dist/sankhyablocks/{p-ba4979b4.js → p-bf017a1f.js} +1 -1
- package/dist/sankhyablocks/{p-735a1175.entry.js → p-c3dbf441.entry.js} +1 -1
- package/dist/sankhyablocks/{p-3dba3468.js → p-c71dcb2d.js} +1 -1
- package/dist/sankhyablocks/{p-5e282b33.entry.js → p-c95f20d9.entry.js} +1 -1
- package/dist/sankhyablocks/p-c98e2085.js +1 -0
- package/dist/sankhyablocks/p-cb4343c4.entry.js +1 -0
- package/dist/sankhyablocks/p-d03ae54e.entry.js +1 -0
- package/dist/sankhyablocks/p-d235314c.entry.js +1 -0
- package/dist/sankhyablocks/p-d75a732c.js +1 -0
- package/dist/sankhyablocks/{p-f39b0ebe.entry.js → p-df7979fd.entry.js} +1 -1
- package/dist/sankhyablocks/p-e258de96.entry.js +1 -0
- package/dist/sankhyablocks/{p-d377aa7a.entry.js → p-f8e87cf1.entry.js} +1 -1
- package/dist/sankhyablocks/sankhyablocks.esm.js +1 -1
- package/dist/types/components/snk-data-unit/snk-data-unit.d.ts +46 -3
- package/dist/types/components/snk-entity-list/snk-entity-list.d.ts +8 -4
- package/dist/types/components/snk-filter-bar/filter-item/editors/snk-filter-binary-select.d.ts +12 -0
- package/dist/types/components/snk-filter-bar/filter-item/editors/snk-filter-checkbox-list.d.ts +12 -0
- package/dist/types/components/snk-filter-bar/filter-item/editors/snk-filter-multi-select.d.ts +12 -4
- package/dist/types/components/snk-filter-bar/filter-item/editors/snk-filter-number.d.ts +16 -4
- package/dist/types/components/snk-filter-bar/filter-item/editors/snk-filter-period.d.ts +17 -3
- package/dist/types/components/snk-filter-bar/filter-item/editors/snk-filter-search.d.ts +10 -2
- package/dist/types/components/snk-filter-bar/filter-item/editors/snk-filter-text.d.ts +12 -0
- package/dist/types/components/snk-filter-bar/filter-item/snk-filter-detail.d.ts +8 -3
- package/dist/types/components/snk-filter-bar/filter-item/snk-filter-item.d.ts +27 -4
- package/dist/types/components/snk-filter-bar/filter-modal/snk-filter-modal.d.ts +17 -3
- package/dist/types/components/snk-filter-bar/filter-modal/subcomponents/snk-filter-modal-item.d.ts +2 -3
- package/dist/types/components/snk-filter-bar/snk-filter-bar.d.ts +60 -30
- package/dist/types/components/snk-filter-bar/utils/SnkFilterModalFactory.d.ts +4 -2
- package/dist/types/components/snk-filter-bar/utils/filter-validate.d.ts +11 -0
- package/dist/types/components/snk-form/snk-form.d.ts +29 -4
- package/dist/types/components/snk-grid/snk-grid.d.ts +132 -58
- package/dist/types/components/snk-personalized-filter/snk-personalized-filter.d.ts +53 -5
- package/dist/types/components/snk-pesquisa/snk-pesquisa.d.ts +44 -6
- package/dist/types/components/snk-simple-bar/snk-simple-bar.d.ts +15 -15
- package/dist/types/components/snk-simple-crud/snk-simple-crud.d.ts +100 -43
- package/dist/types/components/snk-taskbar/snk-taskbar.d.ts +23 -21
- package/dist/types/components.d.ts +771 -255
- package/dist/types/lib/http/data-fetcher/DataFetcher.d.ts +1 -0
- package/package.json +4 -3
- package/dist/collection/lib/licenses/sankhyalicense.module.js +0 -1
- package/dist/sankhyablocks/p-012208e0.entry.js +0 -1
- package/dist/sankhyablocks/p-07b14811.entry.js +0 -1
- package/dist/sankhyablocks/p-0dac8fef.js +0 -1
- package/dist/sankhyablocks/p-1210500e.js +0 -1
- package/dist/sankhyablocks/p-16fc4acd.js +0 -1
- package/dist/sankhyablocks/p-25209340.entry.js +0 -1
- package/dist/sankhyablocks/p-295b83ae.entry.js +0 -1
- package/dist/sankhyablocks/p-398cdd67.entry.js +0 -1
- package/dist/sankhyablocks/p-4e63ffed.entry.js +0 -1
- package/dist/sankhyablocks/p-5bab470d.entry.js +0 -1
- package/dist/sankhyablocks/p-5c7af8a9.entry.js +0 -1
- package/dist/sankhyablocks/p-81769310.entry.js +0 -11
- package/dist/sankhyablocks/p-9fd87bfd.entry.js +0 -1
- package/dist/sankhyablocks/p-a349689a.js +0 -1
- package/dist/sankhyablocks/p-a76e6d51.entry.js +0 -1
- package/dist/sankhyablocks/p-a86eee47.entry.js +0 -1
- package/dist/sankhyablocks/p-c6a8a8bc.entry.js +0 -1
- package/dist/sankhyablocks/p-c9e6d720.js +0 -1
- package/dist/sankhyablocks/p-dff65083.entry.js +0 -1
- package/dist/sankhyablocks/p-fa18530e.entry.js +0 -1
@@ -1,18 +1,19 @@
|
|
1
1
|
import { r as registerInstance, c as createEvent, h, H as Host, g as getElement } from './index-479e1293.js';
|
2
|
-
import { DataType, StringUtils, ObjectUtils, ElementIDUtils, ErrorException, ApplicationContext, LockManager, LockManagerOperation, DateUtils, MaskFormatter, FloatingManager, ArrayUtils } from '@sankhyalabs/core';
|
2
|
+
import { DataType, StringUtils, ObjectUtils, ElementIDUtils, ErrorException, ApplicationContext, LockManager, LockManagerOperation, DateUtils, MaskFormatter, KeyboardManager, FloatingManager, ArrayUtils } from '@sankhyalabs/core';
|
3
3
|
import { EzScrollDirection } from '@sankhyalabs/ezui/dist/collection/components/ez-scroller/EzScrollDirection';
|
4
|
-
import { C as ConfigStorage } from './ConfigStorage-
|
4
|
+
import { C as ConfigStorage } from './ConfigStorage-22eace3a.js';
|
5
|
+
import { P as PersonalizedFilterUtils } from './PersonalizedFilterUtils-2db38ff2.js';
|
5
6
|
import { toString } from '@sankhyalabs/core/dist/dataunit/metadata/DataType';
|
6
7
|
import { F as FilterItemType } from './filter-item-type.enum-d45e026f.js';
|
7
8
|
import { F as FilterOperand, D as DefaultFilter } from './index-8acbae97.js';
|
8
9
|
import { F as FilterNumberVariation } from './filterNumberVariation-8cee02ea.js';
|
9
|
-
import { ApplicationUtils } from '@sankhyalabs/ezui/dist/collection/utils';
|
10
|
-
import { P as PersonalizedFilterUtils } from './PersonalizedFilterUtils-2db38ff2.js';
|
11
10
|
import { ModalAction } from '@sankhyalabs/ezui/dist/collection/components/ez-modal-container';
|
12
|
-
import {
|
11
|
+
import { ApplicationUtils } from '@sankhyalabs/ezui/dist/collection/utils';
|
13
12
|
import { A as ActionDefaultFilter } from './default-filters-50105e43.js';
|
14
|
-
import './
|
15
|
-
import './
|
13
|
+
import { F as FilterType } from './filter-type.enum-f6a8fe23.js';
|
14
|
+
import { g as getInvalidFilters } from './filter-validate-d765d450.js';
|
15
|
+
import './form-config-fetcher-bc6f0f1f.js';
|
16
|
+
import './DataFetcher-f6b2961a.js';
|
16
17
|
import './PrintUtils-3e4ff0f5.js';
|
17
18
|
import '@sankhyalabs/core/dist/dataunit/metadata/UnitMetadata';
|
18
19
|
|
@@ -206,51 +207,6 @@ function buildPersonalized(item) {
|
|
206
207
|
return { name: id, expression, params };
|
207
208
|
}
|
208
209
|
|
209
|
-
class SnkFilterModalFactory {
|
210
|
-
constructor({ filterConfig, configName, onComplete, getMessage, disablePersonalizedFilter, onAddPersonalizedFilter, onEditPersonalizedFilter, onDeletePersonalizedFilter }) {
|
211
|
-
this._filterConfig = filterConfig;
|
212
|
-
this._configName = configName;
|
213
|
-
this._onComplete = onComplete;
|
214
|
-
this._getMessage = getMessage;
|
215
|
-
this._disablePersonalizedFilter = disablePersonalizedFilter;
|
216
|
-
this._addPersonalizedFilterFn = onAddPersonalizedFilter;
|
217
|
-
this._editPersonalizedFilterFn = onEditPersonalizedFilter;
|
218
|
-
this._onDeletePersonalizedFilter = onDeletePersonalizedFilter;
|
219
|
-
}
|
220
|
-
applyFilters(newFilterConfig) {
|
221
|
-
this._onComplete(newFilterConfig);
|
222
|
-
this._closeModal();
|
223
|
-
}
|
224
|
-
buildFilterModal() {
|
225
|
-
const filterModal = document.createElement("snk-filter-modal");
|
226
|
-
filterModal.className = "ez-size-height--full";
|
227
|
-
filterModal.filters = this._filterConfig;
|
228
|
-
filterModal.configName = this._configName;
|
229
|
-
filterModal.disablePersonalizedFilter = this._disablePersonalizedFilter;
|
230
|
-
filterModal.getMessage = this._getMessage.bind(this);
|
231
|
-
filterModal.applyFilters = this.applyFilters.bind(this);
|
232
|
-
filterModal.closeModal = () => this._closeModal();
|
233
|
-
filterModal.addPersonalizedFilter = (isDefault) => this._addPersonalizedFilterFn(isDefault);
|
234
|
-
filterModal.editPersonalizedFilter = (id, isDefault) => this._editPersonalizedFilterFn(id, isDefault);
|
235
|
-
filterModal.deletePersonalizedFilter = (filter, configName, isDefault) => this._onDeletePersonalizedFilter(filter, configName, isDefault);
|
236
|
-
return filterModal;
|
237
|
-
}
|
238
|
-
async showModal() {
|
239
|
-
const filterModal = this.buildFilterModal();
|
240
|
-
const modalProps = {
|
241
|
-
content: filterModal,
|
242
|
-
position: 'right',
|
243
|
-
heightMode: 'full',
|
244
|
-
closeOutsideClick: false,
|
245
|
-
useScrimLight: true
|
246
|
-
};
|
247
|
-
this._closeModal = await ApplicationUtils.showModal(modalProps);
|
248
|
-
}
|
249
|
-
async closeModal() {
|
250
|
-
this._closeModal();
|
251
|
-
}
|
252
|
-
}
|
253
|
-
|
254
210
|
const snkFilterBarCss = ".sc-snk-filter-bar-h{display:grid;grid-template-columns:1fr minmax(100px, 100%) 1fr 1fr;--snk-personalized-filter--z-index:var(--elevation--20, 20);--snk-personalized-filter--background-color:var(--background--xlight, #fff)}.snk-filter-bar__title.sc-snk-filter-bar{max-width:260px;display:inline-block;text-overflow:ellipsis;overflow:hidden;white-space:nowrap;font-size:16px;font-family:var(--font-pattern, Arial);font-weight:var(--text-weight--large, 600);color:var(--color--title-primary, #2B3A54);margin-top:12px}[data-mode=\"hidden\"].sc-snk-filter-bar-h{width:0px;height:0px}[data-mode=\"button\"].sc-snk-filter-bar-h{grid-template-columns:1fr;width:fit-content}.snk-filter__popover-container.sc-snk-filter-bar{display:flex;cursor:auto}.filter-bar__personalized-filter.sc-snk-filter-bar{display:flex;flex-direction:column;position:fixed;top:0;left:0;width:100%;height:100%;overflow:auto;z-index:var(--snk-personalized-filter--z-index);background-color:var(--snk-personalized-filter--background-color)}.snk-filter__popover.sc-snk-filter-bar{display:flex;flex-direction:column;position:absolute;width:fit-content;height:fit-content;min-width:265px;background-color:var(--background--xlight, #fff);border-radius:var(--border--radius-medium, 12px);box-shadow:var(--shadow, 0px 0px 16px 0px #000)}.snk-filter-item__editor-header.sc-snk-filter-bar{flex-grow:1;font-weight:var(--text-weight--medium, 400);color:var(--color--title-primary, #2B3A54)}.snk-filter__popover-rule.sc-snk-filter-bar{border-style:solid;border-color:var(--color--disable-secondary, #F2F5F8);border-radius:1px;border-width:1px;width:100%}.editor__ez-check.sc-snk-filter-bar{--ez-check__label--padding-left:0}.snk-filter-item__editor-header-button.sc-snk-filter-bar{cursor:pointer;background-color:transparent;border:none;padding:3px;outline-color:var(--color--primary)}.snk-filter-bar__divider.sc-snk-filter-bar{margin-bottom:var(--space--small);height:80%}.snk-filter-bar__filter-item-container.sc-snk-filter-bar{display:flex;align-items:start;margin:var(--space--2, 2px) 0}.snk-filter-bar__scroller.sc-snk-filter-bar .sc-snk-filter-bar:first-child{margin-left:var(--space-extra-small, 3px)}.snk-filter-bar__filter-list-items-container.sc-snk-filter-bar{overflow-y:auto;max-height:360px;margin-top:var(--space--small, 6px)}.snk-filter-bar__filter-list-item.sc-snk-filter-bar{cursor:pointer;border-radius:var(--border--radius-small, 6px);border:none;background-color:transparent}.snk-filter-bar__filter-list-item__label.sc-snk-filter-bar{color:var(--title--primary)}.snk-filter-bar__filter-list-item__label--secondary.sc-snk-filter-bar{color:var(--text--primary)}.snk-filter-bar__filter-list-item__icon.sc-snk-filter-bar{--ez-icon--color:var(--title--primary)}.snk-filter-bar__filter-list-item__icon--secondary.sc-snk-filter-bar{--ez-icon--color:var(--text--secondary)}.snk-filter-bar__filter-list-item.sc-snk-filter-bar:focus-visible{outline:none;background-color:var(--background--medium)}.snk-filter-bar__filter-list-item.sc-snk-filter-bar:hover{background-color:var(--background--medium)}.snk-filter-bar__filter-list-items-container--empty.sc-snk-filter-bar{width:100%;height:100px;display:flex;justify-content:center;align-self:center;align-items:center}.snk-filter-bar__filter-list-items-button--active.sc-snk-filter-bar{position:relative}.snk-filter-bar__filter-list-items-button--active.sc-snk-filter-bar::after{display:flex;position:absolute;content:\"\";width:8px;height:8px;top:7px;left:17px;background-color:var(--icon--alert--color, #008561);border-radius:50%}.snk-filter-bar__filter-modal-item.sc-snk-filter-bar{--modal-item-border-width:2px;display:flex;flex-direction:row;margin-left:var(--modal-item-border-width);border-radius:var(--border--radius-medium, 12px);background-color:var(--background--medium, #f0f3f7);border:none;width:100%}.snk-filter-bar__filter-modal-item.sc-snk-filter-bar:focus-visible{outline:var(--color--primary) solid var(--modal-item-border-width)}.snk-filter-bar__filter-modal-item__check.sc-snk-filter-bar{width:auto}.snk-filter-bar__filter-modal-item__label.sc-snk-filter-bar{font-weight:var(--text-weight--medium)}.snk-filter-bar__filter-modal-content.sc-snk-filter-bar{display:grid;grid-template-rows:auto auto 1fr auto;width:99%;height:100%}";
|
255
211
|
|
256
212
|
const SnkFilterBar = class {
|
@@ -291,10 +247,13 @@ const SnkFilterBar = class {
|
|
291
247
|
this.filterBarLegacyConfigName = undefined;
|
292
248
|
this.autoLoad = undefined;
|
293
249
|
this.afterApplyConfig = undefined;
|
250
|
+
this.filterCustomConfig = undefined;
|
251
|
+
this.filterCustomConfigInterceptor = undefined;
|
294
252
|
this.allowDefault = undefined;
|
295
253
|
this.scrollerLocked = false;
|
296
254
|
this.showPersonalizedFilter = false;
|
297
255
|
this.personalizedFilterId = undefined;
|
256
|
+
this.isFilterModalOpen = false;
|
298
257
|
}
|
299
258
|
hasValidValue(item) {
|
300
259
|
if (item.value === undefined || item.value === null)
|
@@ -343,22 +302,28 @@ const SnkFilterBar = class {
|
|
343
302
|
this.processAfterUpdateConfig();
|
344
303
|
}
|
345
304
|
/**
|
346
|
-
* Faz o recarregamento da
|
305
|
+
* @description Faz o recarregamento da barra de filtros buscando o state no servidor.
|
306
|
+
* @async
|
307
|
+
* @return {Promise<void>} Retorna uma Promise que resolve quando o recarregamento for concluído.
|
347
308
|
*/
|
348
309
|
async reload() {
|
349
310
|
this.loadConfigFromStorage(true);
|
350
311
|
}
|
351
312
|
/**
|
352
|
-
* Retorna um item de filtro pelo ID.
|
313
|
+
* @description Retorna um item de filtro pelo ID.
|
314
|
+
* @async
|
315
|
+
* @param {string} id - ID do item de filtro.
|
316
|
+
* @returns {Promise<SnkFilterItemConfig | undefined>} O item de filtro correspondente ou undefined se não for encontrado.
|
353
317
|
*/
|
354
318
|
async getFilterItem(id) {
|
355
319
|
const item = this.filterConfig.find(item => item.id === id);
|
356
320
|
return Promise.resolve(ObjectUtils.copy(item));
|
357
321
|
}
|
358
322
|
/**
|
359
|
-
* Atualiza um item do filtro.
|
360
|
-
*
|
361
|
-
* @param
|
323
|
+
* @description Atualiza um item do filtro.
|
324
|
+
* @async
|
325
|
+
* @param {SnkFilterItemConfig} newFilterItem - Item com as informações atualizadas, caso o item não seja encontrado no array, ele não será modificado.
|
326
|
+
* @return {Promise<void>} Retorna uma Promise que resolve quando a atualização for concluída.
|
362
327
|
*/
|
363
328
|
async updateFilterItem(newFilterItem) {
|
364
329
|
const itemIndex = this.filterConfig.findIndex(item => item.id === newFilterItem.id);
|
@@ -371,9 +336,10 @@ const SnkFilterBar = class {
|
|
371
336
|
return Promise.resolve();
|
372
337
|
}
|
373
338
|
/**
|
374
|
-
* Adiciona um item de filtro.
|
375
|
-
*
|
376
|
-
* @param filterItem - Item a ser adicionado, caso o item já exista com o ID ele não será adicionado novamente
|
339
|
+
* @description Adiciona um item de filtro.
|
340
|
+
* @async
|
341
|
+
* @param {SnkFilterItemConfig} filterItem - Item a ser adicionado, caso o item já exista com o ID, ele não será adicionado novamente.
|
342
|
+
* @return {Promise<void>} Retorna uma Promise que resolve quando o item for adicionado.
|
377
343
|
*/
|
378
344
|
async addFilterItem(filterItem) {
|
379
345
|
const itemIndex = this.filterConfig.findIndex(item => item.id === filterItem.id);
|
@@ -387,11 +353,10 @@ const SnkFilterBar = class {
|
|
387
353
|
return Promise.resolve();
|
388
354
|
}
|
389
355
|
/**
|
390
|
-
* Remove um item de filtro.
|
391
|
-
*
|
392
|
-
* @param filterID - ID do a ser
|
393
|
-
*
|
394
|
-
* @returns {Promise<SnkFilterItemConfig|undefined>} - Retorna o item de filtro removido, ou undefined caso não encontrado.
|
356
|
+
* @description Remove um item de filtro.
|
357
|
+
* @async
|
358
|
+
* @param {string} filterID - ID do item a ser removido.
|
359
|
+
* @returns {Promise<SnkFilterItemConfig|undefined>} Retorna o item de filtro removido, ou undefined caso não seja encontrado.
|
395
360
|
*/
|
396
361
|
async removeFilterItem(filterID) {
|
397
362
|
const itemIndex = this.filterConfig.findIndex(item => item.id === filterID);
|
@@ -436,7 +401,7 @@ const SnkFilterBar = class {
|
|
436
401
|
return;
|
437
402
|
}
|
438
403
|
this._loadingPending = false;
|
439
|
-
this.doLoadData(
|
404
|
+
this.doLoadData();
|
440
405
|
}
|
441
406
|
if (this._configUpdated) {
|
442
407
|
this._configUpdated = false;
|
@@ -463,7 +428,7 @@ const SnkFilterBar = class {
|
|
463
428
|
}
|
464
429
|
/**
|
465
430
|
* Conforme mecanismo de mensagens, é possível customizar as mensagens dos blocos de construção
|
466
|
-
* através de um pequeno
|
431
|
+
* através de um pequeno módulo na estrutura da aplicação:
|
467
432
|
* - Criar um arquivo no seguinte caminho: /messages/appmessages.msg.js.
|
468
433
|
* Para conhecer os detalhes do módulo, vide o arquivo neste projeto "/src/lib/message/resources/snk-filter-bar.msg.ts"
|
469
434
|
*/
|
@@ -474,6 +439,9 @@ const SnkFilterBar = class {
|
|
474
439
|
}
|
475
440
|
return ((_a = this.messagesBuilder) === null || _a === void 0 ? void 0 : _a.getMessage(key, params)) || defaultValue;
|
476
441
|
}
|
442
|
+
async getFilters() {
|
443
|
+
return this.getFilter(null);
|
444
|
+
}
|
477
445
|
getFilter(_dataUnit) {
|
478
446
|
var _a;
|
479
447
|
const filters = [];
|
@@ -532,11 +500,11 @@ const SnkFilterBar = class {
|
|
532
500
|
const unpinnedItems = [];
|
533
501
|
this.filterConfig.sort((a, b) => this._filtersComparator(a, b))
|
534
502
|
.filter(this.filterActiveFilter)
|
535
|
-
.forEach((item
|
503
|
+
.forEach((item) => {
|
536
504
|
item = ObjectUtils.copy(item);
|
537
505
|
const itemId = `filter-${item.id}`;
|
538
|
-
const filterItem = (h("snk-filter-item", { onVisibleChanged: (evt) => this.scrollerLocked = evt.detail, onFilterChange: (event) => this.updateFilter(event.detail), onFocusin: () => this.itemFocused(itemId), id: itemId, config: item, class:
|
539
|
-
if (item.fixed || item.hardFixed) {
|
506
|
+
const filterItem = (h("snk-filter-item", { onVisibleChanged: (evt) => this.scrollerLocked = evt.detail, onFilterChange: (event) => this.updateFilter(event.detail), onFocusin: () => this.itemFocused(itemId), id: itemId, config: item, class: "ez-margin-horizontal--extra-small", getMessage: (key, props) => this.getMessage(key, props), key: item.id }));
|
507
|
+
if (item.fixed || item.hardFixed || item.required) {
|
540
508
|
pinnedItems.push(filterItem);
|
541
509
|
}
|
542
510
|
else {
|
@@ -545,9 +513,9 @@ const SnkFilterBar = class {
|
|
545
513
|
return filterItem;
|
546
514
|
});
|
547
515
|
const elements = [];
|
548
|
-
elements.push(...pinnedItems);
|
516
|
+
elements.push(...pinnedItems.reverse());
|
549
517
|
if (pinnedItems.length > 0 && unpinnedItems.length > 0) {
|
550
|
-
elements.push(h("hr", { class: "ez-
|
518
|
+
elements.push(h("hr", { class: "ez-margin-horizontal--small ez-margin-vertical--auto ez-divider-vertical ez-divider--dark snk-filter-bar__divider" }));
|
551
519
|
}
|
552
520
|
elements.push(...unpinnedItems);
|
553
521
|
return elements;
|
@@ -572,7 +540,7 @@ const SnkFilterBar = class {
|
|
572
540
|
return normalized;
|
573
541
|
}
|
574
542
|
updateFilter(newItem) {
|
575
|
-
|
543
|
+
let config = this.filterConfig.map(item => {
|
576
544
|
newItem = this.normalizeItem(newItem);
|
577
545
|
if (item.id === newItem.id) {
|
578
546
|
if (ObjectUtils.objectToString(item) != ObjectUtils.objectToString(newItem)) {
|
@@ -582,6 +550,10 @@ const SnkFilterBar = class {
|
|
582
550
|
}
|
583
551
|
return item;
|
584
552
|
}).sort((a, b) => this._filtersComparator(a, b));
|
553
|
+
if (this.filterCustomConfigInterceptor) {
|
554
|
+
config = this.filterCustomConfigInterceptor(config);
|
555
|
+
}
|
556
|
+
this.filterConfig = config;
|
585
557
|
}
|
586
558
|
loadPermitions() {
|
587
559
|
this._application.isUserSup().then(value => this.allowDefault = value);
|
@@ -603,6 +575,12 @@ const SnkFilterBar = class {
|
|
603
575
|
else {
|
604
576
|
config = await ConfigStorage.loadFilterBarConfig(this.configName, this.resourceID, { contextURI: this.dataUnit.name });
|
605
577
|
}
|
578
|
+
if (this.filterCustomConfig) {
|
579
|
+
config = [...this.filterCustomConfig, ...config];
|
580
|
+
}
|
581
|
+
if (this.filterCustomConfigInterceptor) {
|
582
|
+
config = this.filterCustomConfigInterceptor(config);
|
583
|
+
}
|
606
584
|
this.filterConfig = config.map(item => this.normalizeItem(item));
|
607
585
|
this.filterConfig.sort((a, b) => this._filtersComparator(a, b));
|
608
586
|
}
|
@@ -642,33 +620,17 @@ const SnkFilterBar = class {
|
|
642
620
|
this.updateFilter(evt.detail);
|
643
621
|
}
|
644
622
|
/**
|
645
|
-
* Abre o modal de filtros
|
623
|
+
* @description Abre o modal de filtros.
|
624
|
+
* @async
|
646
625
|
*/
|
647
626
|
async showFilterModal() {
|
648
|
-
|
649
|
-
|
650
|
-
|
651
|
-
|
652
|
-
};
|
653
|
-
let filtersConfigCopy = ObjectUtils.copy(this.filterConfig);
|
654
|
-
filtersConfigCopy = filtersConfigCopy.sort((itemA, itemB) => {
|
655
|
-
return itemA.originOrder - itemB.originOrder;
|
656
|
-
});
|
657
|
-
const factoryParams = {
|
658
|
-
filterConfig: filtersConfigCopy,
|
659
|
-
configName: this.configName,
|
660
|
-
onComplete: callbackOnApplyFilter,
|
661
|
-
disablePersonalizedFilter: this.disablePersonalizedFilter,
|
662
|
-
getMessage: (key, props) => this.getMessage(key, props),
|
663
|
-
onAddPersonalizedFilter: (isDefault) => this.addPersonalizedFilter(isDefault),
|
664
|
-
onEditPersonalizedFilter: (id, isDefault) => this.editPersonalizedFilter(id, isDefault),
|
665
|
-
onDeletePersonalizedFilter: (filter, configName, isDefault) => this.deletePersonalizedFilter(filter, FilterItemType.PERSONALIZED, configName, isDefault),
|
666
|
-
};
|
667
|
-
this._filterModalFactory = new SnkFilterModalFactory(factoryParams);
|
668
|
-
await this._filterModalFactory.showModal();
|
627
|
+
if (this.isFilterModalOpen) {
|
628
|
+
return; // Evita abrir múltiplos modais
|
629
|
+
}
|
630
|
+
this.isFilterModalOpen = true;
|
669
631
|
}
|
670
632
|
addPersonalizedFilter(isDefault = false) {
|
671
|
-
this.
|
633
|
+
this.isFilterModalOpen = false;
|
672
634
|
this._isDefaultFilter = isDefault;
|
673
635
|
this.personalizedFilterId = undefined;
|
674
636
|
this.showPersonalizedFilter = true;
|
@@ -677,7 +639,7 @@ const SnkFilterBar = class {
|
|
677
639
|
});
|
678
640
|
}
|
679
641
|
editPersonalizedFilter(id, isDefault = false) {
|
680
|
-
this.
|
642
|
+
this.isFilterModalOpen = false;
|
681
643
|
this._isDefaultFilter = isDefault;
|
682
644
|
this.showPersonalizedFilter = true;
|
683
645
|
this.personalizedFilterId = id;
|
@@ -692,6 +654,15 @@ const SnkFilterBar = class {
|
|
692
654
|
ConfigStorage.removePersonalizedFilter(filter, this.resourceID, configName);
|
693
655
|
}
|
694
656
|
}
|
657
|
+
closeFilterModal() {
|
658
|
+
this.isFilterModalOpen = false;
|
659
|
+
}
|
660
|
+
applyFiltersFromModal(filters) {
|
661
|
+
var _a;
|
662
|
+
this.filterConfig = filters.map(this.normalizeItem).sort((a, b) => this._filtersComparator(a, b));
|
663
|
+
(_a = this.afterApplyConfig) === null || _a === void 0 ? void 0 : _a.call(this);
|
664
|
+
this.isFilterModalOpen = false;
|
665
|
+
}
|
695
666
|
handleHidePersonalizedFilter(reloadFilterBar) {
|
696
667
|
if (reloadFilterBar) {
|
697
668
|
this.loadConfigFromStorage().then(() => {
|
@@ -738,10 +709,14 @@ const SnkFilterBar = class {
|
|
738
709
|
if (this.showPersonalizedFilter) {
|
739
710
|
return h("snk-personalized-filter", { class: "filter-bar__personalized-filter", filterId: this.personalizedFilterId, ref: (el) => this._elPersonalizedFilter = el, isDefaultFilter: this._isDefaultFilter, onEzCancel: () => this.handleHidePersonalizedFilter(false), onEzAfterSave: () => this.handleHidePersonalizedFilter(true), entityUri: this.dataUnit.name, configName: this.configName, resourceID: this.resourceID });
|
740
711
|
}
|
712
|
+
let filtersConfigCopy = ObjectUtils.copy(this.filterConfig);
|
713
|
+
filtersConfigCopy = filtersConfigCopy.sort((itemA, itemB) => {
|
714
|
+
return itemA.originOrder - itemB.originOrder;
|
715
|
+
});
|
741
716
|
if (this.mode !== "regular") {
|
742
|
-
return (h(Host, { "data-mode": this.mode }, this.getPersonalizedFilterVariableItems(), this.mode === 'button' && (h("ez-button", { class: "ez-margin-left--medium", size: "small", label: this.getMessage('snkFilterBar.filters', undefined, this.getMessage("snkFilterBar.filters")), onClick: this.showFilterModal.bind(this) }))));
|
717
|
+
return (h(Host, { "data-mode": this.mode }, this.getPersonalizedFilterVariableItems(), this.mode === 'button' && (h("ez-button", { class: "ez-margin-left--medium", size: "small", label: this.getMessage('snkFilterBar.filters', undefined, this.getMessage("snkFilterBar.filters")), onClick: this.showFilterModal.bind(this) })), h("snk-filter-modal", { opened: this.isFilterModalOpen, filterConfig: this.filterConfig, configName: this.configName, disablePersonalizedFilter: this.disablePersonalizedFilter, getMessage: (key, props) => this.getMessage(key, props), applyFilters: (filters) => this.applyFiltersFromModal(filters), closeModal: () => this.closeFilterModal(), addPersonalizedFilter: (isDefault) => this.addPersonalizedFilter(isDefault), editPersonalizedFilter: (id, isDefault) => this.editPersonalizedFilter(id, isDefault), deletePersonalizedFilter: (filter, configName, isDefault) => this.deletePersonalizedFilter(filter, FilterItemType.PERSONALIZED, configName, isDefault), filterCustomConfigInterceptor: this.filterCustomConfigInterceptor })));
|
743
718
|
}
|
744
|
-
return (h(Host, null, h("div", null, h("span", { class: "snk-filter-bar__title", title: this.title, "data-tooltip": this.title, "data-flow": "bottom" }, this.title)), h("ez-scroller", { class: "snk-filter-bar__scroller", direction: EzScrollDirection.HORIZONTAL, activeShadow: true, locked: this.scrollerLocked }, h("section", { class: "snk-filter-bar__filter-item-container" }, this.getFilterItems())), h("ez-button", { class: "ez-padding-left--medium ez-margin-top--extra-small", size: "small", label: this.getMessage('snkFilterBar.filters', undefined, this.getMessage("snkFilterBar.filters")), onClick: this.showFilterModal.bind(this) }, h("ez-icon", { slot: "leftIcon", iconName: "plus", class: "ez-padding-right--small" }))));
|
719
|
+
return (h(Host, null, h("div", null, h("span", { class: "snk-filter-bar__title", title: this.title, "data-tooltip": this.title, "data-flow": "bottom" }, this.title)), h("ez-scroller", { class: "snk-filter-bar__scroller", direction: EzScrollDirection.HORIZONTAL, activeShadow: true, locked: this.scrollerLocked }, h("section", { class: "snk-filter-bar__filter-item-container" }, this.getFilterItems())), h("ez-button", { class: "ez-padding-left--medium ez-margin-top--extra-small", size: "small", label: this.getMessage('snkFilterBar.filters', undefined, this.getMessage("snkFilterBar.filters")), onClick: this.showFilterModal.bind(this) }, h("ez-icon", { slot: "leftIcon", iconName: "plus", class: "ez-padding-right--small" })), h("snk-filter-modal", { opened: this.isFilterModalOpen, filterConfig: this.filterConfig, configName: this.configName, disablePersonalizedFilter: this.disablePersonalizedFilter, getMessage: (key, props) => this.getMessage(key, props), applyFilters: (filters) => this.applyFiltersFromModal(filters), closeModal: () => this.closeFilterModal(), addPersonalizedFilter: (isDefault) => this.addPersonalizedFilter(isDefault), editPersonalizedFilter: (id, isDefault) => this.editPersonalizedFilter(id, isDefault), deletePersonalizedFilter: (filter, configName, isDefault) => this.deletePersonalizedFilter(filter, FilterItemType.PERSONALIZED, configName, isDefault), filterCustomConfigInterceptor: this.filterCustomConfigInterceptor })));
|
745
720
|
}
|
746
721
|
get _element() { return getElement(this); }
|
747
722
|
static get watchers() { return {
|
@@ -757,6 +732,7 @@ const SnkFilterItem = class {
|
|
757
732
|
registerInstance(this, hostRef);
|
758
733
|
this.visibleChanged = createEvent(this, "visibleChanged", 7);
|
759
734
|
this.filterChange = createEvent(this, "filterChange", 3);
|
735
|
+
this._keyboardManager = undefined;
|
760
736
|
this.detailIsVisible = undefined;
|
761
737
|
this.config = undefined;
|
762
738
|
this.getMessage = undefined;
|
@@ -780,13 +756,15 @@ const SnkFilterItem = class {
|
|
780
756
|
if (open) {
|
781
757
|
await ((_a = this._chipElement) === null || _a === void 0 ? void 0 : _a.setBlur());
|
782
758
|
await this._popover.showUnder(this._chipElement);
|
759
|
+
await this._filterDetail.setFocusField();
|
783
760
|
}
|
784
761
|
}
|
785
762
|
/**
|
786
763
|
* Oculta os detalhes de um item da lista.
|
787
764
|
*/
|
788
765
|
async hideDetail() {
|
789
|
-
|
766
|
+
var _a;
|
767
|
+
await ((_a = this._popover) === null || _a === void 0 ? void 0 : _a.hide());
|
790
768
|
}
|
791
769
|
getConfigChanges() {
|
792
770
|
var _a;
|
@@ -806,12 +784,15 @@ const SnkFilterItem = class {
|
|
806
784
|
this.filterChange.emit(configChanged);
|
807
785
|
}
|
808
786
|
else {
|
809
|
-
this.togglePopover();
|
787
|
+
this.togglePopover(event);
|
810
788
|
}
|
811
789
|
}
|
812
790
|
async togglePopover(event) {
|
813
791
|
event === null || event === void 0 ? void 0 : event.preventDefault();
|
814
792
|
event === null || event === void 0 ? void 0 : event.stopPropagation();
|
793
|
+
if (this.config.enabled === false) {
|
794
|
+
return;
|
795
|
+
}
|
815
796
|
if (this.detailIsVisible) {
|
816
797
|
await this.hideDetail();
|
817
798
|
}
|
@@ -960,8 +941,9 @@ const SnkFilterItem = class {
|
|
960
941
|
return undefined;
|
961
942
|
}
|
962
943
|
hasActiveElements(value) {
|
963
|
-
var _a
|
964
|
-
|
944
|
+
var _a;
|
945
|
+
const list = Array.isArray(value) ? value : value === null || value === void 0 ? void 0 : value.elements;
|
946
|
+
return ((_a = list === null || list === void 0 ? void 0 : list.filter((val) => val === null || val === void 0 ? void 0 : val.check)) === null || _a === void 0 ? void 0 : _a.length) > 0;
|
965
947
|
}
|
966
948
|
hasActiveValue(config) {
|
967
949
|
return (config.type !== FilterItemType.MULTI_LIST && config.value !== undefined) || this.hasActiveElements(config.value);
|
@@ -976,12 +958,67 @@ const SnkFilterItem = class {
|
|
976
958
|
}
|
977
959
|
return this.hasActiveValue(this.config);
|
978
960
|
}
|
979
|
-
handleVisibilityPopover(event) {
|
961
|
+
async handleVisibilityPopover(event) {
|
980
962
|
this.detailIsVisible = event.detail;
|
963
|
+
if (!this.detailIsVisible) {
|
964
|
+
await this._filterDetail.clearValue();
|
965
|
+
}
|
966
|
+
}
|
967
|
+
getCustomMessage(key, params) {
|
968
|
+
var _a;
|
969
|
+
return (_a = this.getMessage) === null || _a === void 0 ? void 0 : _a.call(this, `snkFilterBar.filterModal.${key}`, params);
|
970
|
+
}
|
971
|
+
hasValue() {
|
972
|
+
if (this.config.type === FilterItemType.MULTI_LIST) {
|
973
|
+
return this.hasActiveElements(this.config.value);
|
974
|
+
}
|
975
|
+
return this.config.value !== undefined && this.config.value !== null;
|
976
|
+
}
|
977
|
+
getTooltipMessage() {
|
978
|
+
var _a, _b;
|
979
|
+
if (this.config.required && !this.hasValue()) {
|
980
|
+
return {
|
981
|
+
message: (_a = this.config.requiredMessage) !== null && _a !== void 0 ? _a : this.getCustomMessage('validations.requiredFilter'),
|
982
|
+
type: 'error'
|
983
|
+
};
|
984
|
+
}
|
985
|
+
if (this.config.enabled === false && this.config.disabledMessage) {
|
986
|
+
return { message: this.config.disabledMessage, type: 'warning' };
|
987
|
+
}
|
988
|
+
return {
|
989
|
+
message: (_b = this.config.defaultMessage) !== null && _b !== void 0 ? _b : this.getLabel(true),
|
990
|
+
type: 'default'
|
991
|
+
};
|
992
|
+
}
|
993
|
+
getTypeChip(type) {
|
994
|
+
switch (type) {
|
995
|
+
case 'default':
|
996
|
+
return 'secondary';
|
997
|
+
case 'warning':
|
998
|
+
return 'warning-light';
|
999
|
+
case 'error':
|
1000
|
+
return 'error-light';
|
1001
|
+
case 'success':
|
1002
|
+
return 'success-light';
|
1003
|
+
default:
|
1004
|
+
return type;
|
1005
|
+
}
|
1006
|
+
}
|
1007
|
+
initKeyboardManager() {
|
1008
|
+
this._keyboardManager = new KeyboardManager({ element: this._filterItemElement, propagate: true });
|
1009
|
+
this._keyboardManager
|
1010
|
+
.bind("Escape", () => this.hideDetail());
|
1011
|
+
}
|
1012
|
+
connectedCallback() {
|
1013
|
+
this.initKeyboardManager();
|
1014
|
+
}
|
1015
|
+
disconnectedCallback() {
|
1016
|
+
this._keyboardManager.unbindAllShortcutKeys();
|
981
1017
|
}
|
982
1018
|
render() {
|
983
1019
|
const leftIcon = this.getLeftIconName();
|
984
|
-
|
1020
|
+
const { type, message } = this.getTooltipMessage();
|
1021
|
+
return (h(Host, null, this.showChips && (h("ez-tooltip", { id: this.config.id, message: message, type: type, active: !this.detailIsVisible, strategy: "fixed" }, h("ez-chip", { id: this.config.id, ref: ref => this._chipElement = ref, label: this.getLabel(), value: this.getEnabledChip(), onClick: (event) => this.togglePopover(event), disableAutoUpdateValue: true, type: this.getTypeChip(type), enabled: this.config.enabled }, leftIcon && (h("ez-icon", { ref: ref => this._leftIconElement = ref, iconName: leftIcon, slot: "leftIcon" })), h("ez-icon", { ref: ref => this._rightIconElement = ref, iconName: this.getRightIconName(), slot: "rightIcon", id: "removeFilter", onClick: (event) => this.clearFilter(event) })))), h("ez-popover-core", { ref: elem => this._popover = elem, onEzVisibilityChange: (event) => this.handleVisibilityPopover(event) }, h("snk-filter-detail", { ref: ref => this._filterDetail = ref, key: this.config.id, config: this.config, getMessage: this.getMessage, class: "sc-snk-filter-bar snk-filter__popover ez-padding--small ez-elevation--16", "data-element-id": this._idSnkFilterDetail, showHardFixed: this.showChips && !this.config.required, removalBlocked: this.config.required }))));
|
985
1022
|
}
|
986
1023
|
get _filterItemElement() { return getElement(this); }
|
987
1024
|
static get watchers() { return {
|
@@ -1134,14 +1171,17 @@ const SnkFilterList = class {
|
|
1134
1171
|
get _element() { return getElement(this); }
|
1135
1172
|
};
|
1136
1173
|
|
1137
|
-
const snkFilterModalCss = "ez-modal{--ez-modal-content-padding:24px 12px}.snk-filter-modal__container{
|
1174
|
+
const snkFilterModalCss = "ez-modal{--ez-modal-content-padding:24px 12px}.snk-filter-modal__container{min-width:344px;overflow:hidden}.snk-filter-modal__content{display:flex;flex-direction:column;gap:var(--space--medium, 12px);padding-right:var(--space--3xs, 4px)}.snk-filter-modal__collapsible-box{border:var(--border--small, 1px solid) var(--color--strokes, #DCE0E8);border-radius:var(--border--radius-medium);padding:var(--space--medium, 12px) var(--space--small, 6px)}.snk-filter-modal__rendered-items{max-height:760px}.snk-filter-modal__rendered-items::-webkit-scrollbar{width:var(--space--small);min-width:var(--space--small);max-width:var(--space--small)}";
|
1138
1175
|
|
1139
1176
|
const SnkFilterModal = class {
|
1140
1177
|
constructor(hostRef) {
|
1141
1178
|
registerInstance(this, hostRef);
|
1179
|
+
this.filters = [];
|
1180
|
+
this.filtersWithError = [];
|
1142
1181
|
this.getMessage = undefined;
|
1143
1182
|
this.configName = undefined;
|
1144
|
-
this.
|
1183
|
+
this.filterConfig = undefined;
|
1184
|
+
this.opened = false;
|
1145
1185
|
this.applyFilters = undefined;
|
1146
1186
|
this.closeModal = undefined;
|
1147
1187
|
this.addPersonalizedFilter = undefined;
|
@@ -1150,6 +1190,11 @@ const SnkFilterModal = class {
|
|
1150
1190
|
this.filtersToDelete = [];
|
1151
1191
|
this.filterDefaultToDelete = undefined;
|
1152
1192
|
this.disablePersonalizedFilter = undefined;
|
1193
|
+
this.filterCustomConfigInterceptor = undefined;
|
1194
|
+
}
|
1195
|
+
filterConfigChangeHandler(newValue) {
|
1196
|
+
this.filters = ObjectUtils.copy(newValue);
|
1197
|
+
this.validateFilters();
|
1153
1198
|
}
|
1154
1199
|
/**
|
1155
1200
|
* Emitido quando um filtro personalizado é deletado.
|
@@ -1208,7 +1253,7 @@ const SnkFilterModal = class {
|
|
1208
1253
|
});
|
1209
1254
|
}
|
1210
1255
|
hasChangeToSave() {
|
1211
|
-
const hasChangesPersonalizedFilters = ObjectUtils.objectToString(this.filters) !== ObjectUtils.objectToString(this.
|
1256
|
+
const hasChangesPersonalizedFilters = ObjectUtils.objectToString(this.filters) !== ObjectUtils.objectToString(this.filters);
|
1212
1257
|
return hasChangesPersonalizedFilters;
|
1213
1258
|
}
|
1214
1259
|
handleClose() {
|
@@ -1223,6 +1268,9 @@ const SnkFilterModal = class {
|
|
1223
1268
|
});
|
1224
1269
|
}
|
1225
1270
|
handleApplyFilters() {
|
1271
|
+
if (!this.validateFilters()) {
|
1272
|
+
return;
|
1273
|
+
}
|
1226
1274
|
const filterPersonalized = this.filters.find(filter => filter.filterType === FilterType.CUSTOM_FILTER || filter.filterType === FilterType.DEFAULT_FILTER);
|
1227
1275
|
if (this.isValidCustomFilter(filterPersonalized)) {
|
1228
1276
|
this.applyFilters(this.filters);
|
@@ -1261,8 +1309,14 @@ const SnkFilterModal = class {
|
|
1261
1309
|
break;
|
1262
1310
|
}
|
1263
1311
|
}
|
1264
|
-
handleFilterChange(
|
1265
|
-
|
1312
|
+
handleFilterChange(event) {
|
1313
|
+
event.stopPropagation();
|
1314
|
+
const filterConfig = event.detail;
|
1315
|
+
let config = this.filters.map(filter => filter.id === filterConfig.id ? filterConfig : filter);
|
1316
|
+
if (this.filterCustomConfigInterceptor) {
|
1317
|
+
config = this.filterCustomConfigInterceptor(config);
|
1318
|
+
}
|
1319
|
+
this.filters = ObjectUtils.copy(config);
|
1266
1320
|
}
|
1267
1321
|
handleClearFilterList(filterList) {
|
1268
1322
|
this.filters = this.filters.map(filter => filterList.includes(filter) ? (Object.assign(Object.assign({}, filter), { value: undefined })) : filter);
|
@@ -1295,8 +1349,22 @@ const SnkFilterModal = class {
|
|
1295
1349
|
});
|
1296
1350
|
return valueList;
|
1297
1351
|
}
|
1352
|
+
validateFilters() {
|
1353
|
+
const notValidFilters = getInvalidFilters(this.filters);
|
1354
|
+
this.filtersWithError = notValidFilters.map(item => item.id);
|
1355
|
+
if (notValidFilters.length === 0) {
|
1356
|
+
return true;
|
1357
|
+
}
|
1358
|
+
notValidFilters.forEach(item => {
|
1359
|
+
const filterItem = this._element.querySelector(`#filter-item-${item.id}`);
|
1360
|
+
if (filterItem) {
|
1361
|
+
filterItem["errorMessage"] = item.requiredMessage || this.getCustomMessage('validations.requiredFilter');
|
1362
|
+
}
|
1363
|
+
});
|
1364
|
+
return false;
|
1365
|
+
}
|
1298
1366
|
renderFilterItem(filterItem, fullRow) {
|
1299
|
-
return (h("snk-filter-modal-item", { class: fullRow ? 'ez-col ez-col--sd-12' : 'ez-col ez-col--sd-6 ez-padding--small', filterItem: filterItem, configName: this.configName, onFilterChange: (event) => this.handleFilterChange(event
|
1367
|
+
return (h("snk-filter-modal-item", { key: `modal-item-${filterItem.id}`, class: fullRow ? 'ez-col ez-col--sd-12' : 'ez-col ez-col--sd-6 ez-padding--small', filterItem: filterItem, configName: this.configName, onFilterChange: (event) => this.handleFilterChange(event), onEditPersonalizedFilter: evt => this.editPersonalizedFilter(evt.detail), onAddPersonalizedFilter: () => this.addPersonalizedFilter() }));
|
1300
1368
|
}
|
1301
1369
|
isDefaultFilterNumberVariation(filter) {
|
1302
1370
|
var _a;
|
@@ -1333,8 +1401,9 @@ const SnkFilterModal = class {
|
|
1333
1401
|
}
|
1334
1402
|
getIformedFiltersCount(listItems) {
|
1335
1403
|
let countInformedItens = 0;
|
1336
|
-
listItems.forEach(
|
1404
|
+
listItems.forEach(localItem => {
|
1337
1405
|
var _a, _b, _c, _d, _e, _f;
|
1406
|
+
const item = this.filterConfig.find(filter => filter.id === localItem.id);
|
1338
1407
|
if (FilterItemType.MULTI_LIST === item.type) {
|
1339
1408
|
countInformedItens += (_e = (_d = (_c = ((_b = (_a = item.value) === null || _a === void 0 ? void 0 : _a.elements) !== null && _b !== void 0 ? _b : item.value)) === null || _c === void 0 ? void 0 : _c.filter(value => value === null || value === void 0 ? void 0 : value.check)) === null || _d === void 0 ? void 0 : _d.length) !== null && _e !== void 0 ? _e : 0;
|
1340
1409
|
return;
|
@@ -1360,7 +1429,8 @@ const SnkFilterModal = class {
|
|
1360
1429
|
return null;
|
1361
1430
|
const appliedFilters = this.getIformedFiltersCount(listItems);
|
1362
1431
|
const lines = this.mountFiltersLines(listItems);
|
1363
|
-
|
1432
|
+
const countFiltersWithError = this.filtersWithError.filter(item => listItems.some(filter => filter.id === item)).length;
|
1433
|
+
return (h("ez-collapsible-box", { class: "snk-filter-modal__collapsible-box", headerSize: "medium", value: true, label: label }, h("div", { class: "ez-flex ez-flex--justify-end grow", slot: "rightSlot" }, !!appliedFilters && (h("ez-badge", { class: "ez-badge--primary-subtle", label: appliedFilters === null || appliedFilters === void 0 ? void 0 : appliedFilters.toString() })), !!countFiltersWithError && (h("ez-badge", { class: "ez-badge--error-subtle", label: countFiltersWithError === null || countFiltersWithError === void 0 ? void 0 : countFiltersWithError.toString() }))), h("div", { class: "ez-row snk-filter-modal__rendered-items" }, lines.map(this.renderFilterLine.bind(this))), shouldRenderFooter && (h("div", { class: "ez-flex ez-flex--justify-end grow" }, h("ez-button", { class: "ez-button--tertiary", size: "medium", label: this.getCustomMessage("clearModal"), onClick: () => isSingleItem ? this.handleClearSigleFilter(listItems[0]) : this.handleClearFilterList(listItems) })))));
|
1364
1434
|
}
|
1365
1435
|
handleDeleteFilter() {
|
1366
1436
|
this._application.confirm(this.getMessage('snkPersonalizedFilter.deleteConfirm.title'), this.getMessage('snkPersonalizedFilter.info.deleteDefaultFilterConfirm'), "alert-circle-inverted", "critical").then((actionConfirmed) => {
|
@@ -1394,6 +1464,7 @@ const SnkFilterModal = class {
|
|
1394
1464
|
}
|
1395
1465
|
componentWillLoad() {
|
1396
1466
|
this._application = ApplicationContext.getContextValue('__SNK__APPLICATION__');
|
1467
|
+
this.filters = ObjectUtils.copy(this.filterConfig);
|
1397
1468
|
}
|
1398
1469
|
componentWillRender() {
|
1399
1470
|
this._modalTitle = this.getCustomMessage('title');
|
@@ -1401,16 +1472,19 @@ const SnkFilterModal = class {
|
|
1401
1472
|
this._cancelButtonLabel = this.getCustomMessage('cancelButtonLabel');
|
1402
1473
|
}
|
1403
1474
|
componentDidLoad() {
|
1404
|
-
|
1405
|
-
this._originalFilterConfig = this.filters;
|
1475
|
+
this.validateFilters();
|
1406
1476
|
}
|
1407
1477
|
render() {
|
1408
1478
|
this._defaultFilter = this.getDefaultFilter(this.filters);
|
1409
1479
|
const customFilters = this.getCustomFilter(this.filters);
|
1410
1480
|
const quickFilters = this.filters.filter(filter => filter.filterType === FilterType.QUICK_FILTER);
|
1411
1481
|
const otherFilters = this.filters.filter(filter => filter.filterType === FilterType.OTHER_FILTERS);
|
1412
|
-
return (h("ez-modal-container", { class: "snk-filter-modal__container", modalTitle: this._modalTitle, cancelButtonLabel: this._cancelButtonLabel, okButtonLabel: this._okButtonLabel, onEzModalAction: this.modalActionListener.bind(this) }, h("div", { class: "snk-filter-modal__content ez-col--sd-12" }, h("snk-default-filter", { getMessage: this.getCustomMessage.bind(this), hasDefaultFilter: !!this._defaultFilter, onActionSelected: this.handleActionSelectedDefaultFilter.bind(this) }), !this.disablePersonalizedFilter && this.renderCollapsibleFilterBox(this.getCustomMessage('customFilters'), customFilters, false, false), this.renderCollapsibleFilterBox(this.getCustomMessage('quickFilters'), quickFilters, false), otherFilters.map(filter => this.renderCollapsibleFilterBox(filter.label, [filter], true)))));
|
1482
|
+
return (h("ez-modal", { opened: this.opened, modalSize: "col--sd-3", align: "right", heightMode: "full", closeEsc: true }, h("ez-modal-container", { class: "snk-filter-modal__container", modalTitle: this._modalTitle, cancelButtonLabel: this._cancelButtonLabel, okButtonLabel: this._okButtonLabel, onEzModalAction: this.modalActionListener.bind(this) }, h("div", { class: "snk-filter-modal__content ez-col--sd-12" }, h("snk-default-filter", { getMessage: this.getCustomMessage.bind(this), hasDefaultFilter: !!this._defaultFilter, onActionSelected: this.handleActionSelectedDefaultFilter.bind(this) }), !this.disablePersonalizedFilter && this.renderCollapsibleFilterBox(this.getCustomMessage('customFilters'), customFilters, false, false), this.renderCollapsibleFilterBox(this.getCustomMessage('quickFilters'), quickFilters, false), otherFilters.map(filter => this.renderCollapsibleFilterBox(filter.label, [filter], true))))));
|
1413
1483
|
}
|
1484
|
+
get _element() { return getElement(this); }
|
1485
|
+
static get watchers() { return {
|
1486
|
+
"filterConfig": ["filterConfigChangeHandler"]
|
1487
|
+
}; }
|
1414
1488
|
};
|
1415
1489
|
SnkFilterModal.style = snkFilterModalCss;
|
1416
1490
|
|