@sankhyalabs/sankhyablocks 0.0.0-bugfix-dev-KB-55889.1 → 0.0.0-bugfix-dev-KB-72883.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/dist/cjs/{IExporterProvider-9ac15aaf.js → ContinuousInsertUtils-29b65619.js} +36 -3
- package/dist/cjs/{SnkMessageBuilder-cceebbae.js → SnkMessageBuilder-bae64d0d.js} +5 -1
- package/dist/cjs/{dataunit-fetcher-4b12f70c.js → dataunit-fetcher-f89461c1.js} +45 -17
- package/dist/cjs/{field-search-f56aa7d6.js → field-search-68e34bf4.js} +5 -1
- package/dist/cjs/loader.cjs.js +1 -1
- package/dist/cjs/sankhyablocks.cjs.js +1 -1
- package/dist/cjs/snk-actions-button_4.cjs.entry.js +1 -1
- package/dist/cjs/snk-application.cjs.entry.js +2 -2
- package/dist/cjs/snk-attach.cjs.entry.js +2 -4
- package/dist/cjs/snk-crud.cjs.entry.js +5 -2
- package/dist/cjs/snk-data-exporter.cjs.entry.js +3 -3
- package/dist/cjs/{snk-data-unit-ed17da6b.js → snk-data-unit-47202e42.js} +24 -18
- package/dist/cjs/snk-data-unit.cjs.entry.js +3 -3
- package/dist/cjs/snk-detail-view.cjs.entry.js +4 -4
- package/dist/cjs/snk-filter-bar.cjs.entry.js +19 -15
- package/dist/cjs/snk-filter-checkbox-list.cjs.entry.js +1 -1
- package/dist/cjs/snk-grid.cjs.entry.js +53 -14
- package/dist/cjs/{snk-guides-viewer-866447ab.js → snk-guides-viewer-68777d37.js} +8 -4
- package/dist/cjs/snk-guides-viewer.cjs.entry.js +3 -3
- package/dist/cjs/snk-simple-bar.cjs.entry.js +1 -1
- package/dist/cjs/snk-simple-crud.cjs.entry.js +44 -13
- package/dist/collection/components/snk-attach/structure/fetcher/factory/attach-fetcher-data-unit.factory.js +2 -4
- package/dist/collection/components/snk-crud/snk-crud.js +22 -1
- package/dist/collection/components/snk-crud/subcomponents/snk-guides-viewer.js +24 -2
- package/dist/collection/components/snk-data-unit/snk-data-unit.js +22 -16
- package/dist/collection/components/snk-filter-bar/filter-item/editors/snk-filter-checkbox-list.js +1 -1
- package/dist/collection/components/snk-filter-bar/snk-filter-bar.css +1 -1
- package/dist/collection/components/snk-filter-bar/snk-filter-bar.js +44 -14
- package/dist/collection/components/snk-grid/snk-grid.css +1 -1
- package/dist/collection/components/snk-grid/snk-grid.js +66 -7
- package/dist/collection/components/snk-simple-bar/snk-simple-bar.js +1 -1
- package/dist/collection/components/snk-simple-crud/snk-simple-crud.css +0 -1
- package/dist/collection/components/snk-simple-crud/snk-simple-crud.js +59 -9
- package/dist/collection/components/snk-taskbar/processor/taskbar-processor.js +5 -1
- package/dist/collection/lib/DefaultCustomFormatters/RmPrecisionCustomValueFormatter.js +3 -3
- package/dist/collection/lib/dataUnit/InMemoryLoader.js +2 -4
- package/dist/collection/lib/dataUnit/dataUnitInMemoryUtils.js +34 -9
- package/dist/collection/lib/http/data-fetcher/fetchers/data-unit/loadstrategy/DatasetStrategy.js +9 -2
- package/dist/collection/lib/message/resources/snk-grid.msg.js +5 -1
- package/dist/collection/lib/utils/ContinuousInsertUtils.js +31 -0
- package/dist/components/{IExporterProvider.js → ContinuousInsertUtils.js} +40 -5
- package/dist/components/SnkMessageBuilder.js +5 -1
- package/dist/components/dataunit-fetcher.js +45 -15
- package/dist/components/snk-attach2.js +2 -4
- package/dist/components/snk-crud.js +5 -1
- package/dist/components/snk-data-unit2.js +23 -17
- package/dist/components/snk-detail-view2.js +8 -3
- package/dist/components/snk-filter-bar2.js +20 -15
- package/dist/components/snk-filter-checkbox-list.js +1 -1
- package/dist/components/snk-grid2.js +49 -8
- package/dist/components/snk-simple-bar2.js +1 -1
- package/dist/components/snk-simple-crud2.js +40 -7
- package/dist/esm/{IExporterProvider-09df2e3e.js → ContinuousInsertUtils-30caa626.js} +37 -5
- package/dist/esm/{SnkMessageBuilder-ae87b754.js → SnkMessageBuilder-6fff4a4c.js} +5 -1
- package/dist/esm/{dataunit-fetcher-3aac1a53.js → dataunit-fetcher-c24c76c6.js} +45 -15
- package/dist/esm/{field-search-efbe307f.js → field-search-f8b1d91e.js} +5 -1
- package/dist/esm/loader.js +1 -1
- package/dist/esm/sankhyablocks.js +1 -1
- package/dist/esm/snk-actions-button_4.entry.js +1 -1
- package/dist/esm/snk-application.entry.js +2 -2
- package/dist/esm/snk-attach.entry.js +2 -4
- package/dist/esm/snk-crud.entry.js +5 -2
- package/dist/esm/snk-data-exporter.entry.js +3 -3
- package/dist/esm/{snk-data-unit-6888df8f.js → snk-data-unit-de45e0e1.js} +24 -18
- package/dist/esm/snk-data-unit.entry.js +3 -3
- package/dist/esm/snk-detail-view.entry.js +4 -4
- package/dist/esm/snk-filter-bar.entry.js +19 -15
- package/dist/esm/snk-filter-checkbox-list.entry.js +1 -1
- package/dist/esm/snk-grid.entry.js +48 -9
- package/dist/esm/{snk-guides-viewer-cb8a0b48.js → snk-guides-viewer-b5dd30e6.js} +8 -4
- package/dist/esm/snk-guides-viewer.entry.js +3 -3
- package/dist/esm/snk-simple-bar.entry.js +1 -1
- package/dist/esm/snk-simple-crud.entry.js +40 -9
- package/dist/sankhyablocks/p-17425c72.js +1 -0
- package/dist/sankhyablocks/p-23736d75.js +1 -0
- package/dist/sankhyablocks/p-2923c1b5.js +1 -0
- package/dist/sankhyablocks/p-3e3cc017.js +1 -0
- package/dist/sankhyablocks/p-50779ad3.entry.js +1 -0
- package/dist/sankhyablocks/{p-aaa3ee68.entry.js → p-5f157b09.entry.js} +1 -1
- package/dist/sankhyablocks/{p-559bfb9b.entry.js → p-62e048c6.entry.js} +1 -1
- package/dist/sankhyablocks/{p-16969508.entry.js → p-694e1c4a.entry.js} +1 -1
- package/dist/sankhyablocks/p-7ac7932c.js +60 -0
- package/dist/sankhyablocks/{p-bc4b94d2.entry.js → p-7eef0898.entry.js} +1 -1
- package/dist/sankhyablocks/p-9eaf913b.entry.js +1 -0
- package/dist/sankhyablocks/{p-640140b3.entry.js → p-a42e7a1e.entry.js} +1 -1
- package/dist/sankhyablocks/p-b9679243.entry.js +1 -0
- package/dist/sankhyablocks/{p-9cbef862.js → p-bccfc262.js} +1 -1
- package/dist/sankhyablocks/p-c2e468c9.entry.js +1 -0
- package/dist/sankhyablocks/p-d11f58d2.entry.js +1 -0
- package/dist/sankhyablocks/{p-439a50fb.entry.js → p-da34270e.entry.js} +1 -1
- package/dist/sankhyablocks/p-e16e87fc.entry.js +1 -0
- package/dist/sankhyablocks/{p-3d542b58.entry.js → p-eb9f0407.entry.js} +1 -1
- package/dist/sankhyablocks/sankhyablocks.esm.js +1 -1
- package/dist/types/components/snk-crud/snk-crud.d.ts +4 -0
- package/dist/types/components/snk-crud/subcomponents/snk-guides-viewer.d.ts +5 -0
- package/dist/types/components/snk-data-unit/snk-data-unit.d.ts +2 -2
- package/dist/types/components/snk-filter-bar/snk-filter-bar.d.ts +4 -0
- package/dist/types/components/snk-grid/snk-grid.d.ts +11 -0
- package/dist/types/components/snk-simple-crud/snk-simple-crud.d.ts +9 -0
- package/dist/types/components/snk-taskbar/processor/taskbar-processor.d.ts +1 -0
- package/dist/types/components.d.ts +40 -0
- package/dist/types/lib/dataUnit/dataUnitInMemoryUtils.d.ts +12 -2
- package/dist/types/lib/utils/ContinuousInsertUtils.d.ts +10 -0
- package/package.json +1 -1
- package/dist/sankhyablocks/p-0e9a872d.entry.js +0 -1
- package/dist/sankhyablocks/p-1ab19772.js +0 -1
- package/dist/sankhyablocks/p-1f47a0b2.entry.js +0 -1
- package/dist/sankhyablocks/p-3757394b.entry.js +0 -1
- package/dist/sankhyablocks/p-53c1d25d.entry.js +0 -1
- package/dist/sankhyablocks/p-7c4aabe2.js +0 -1
- package/dist/sankhyablocks/p-88aa931b.entry.js +0 -1
- package/dist/sankhyablocks/p-a31e761f.js +0 -1
- package/dist/sankhyablocks/p-b2caaaf9.entry.js +0 -1
- package/dist/sankhyablocks/p-c2495304.js +0 -1
- package/dist/sankhyablocks/p-f8698ad3.js +0 -60
|
@@ -9,15 +9,15 @@ const constants = require('./constants-35ddd366.js');
|
|
|
9
9
|
const taskbarElements = require('./taskbar-elements-9ad1f9c0.js');
|
|
10
10
|
require('./DataFetcher-cadeef8e.js');
|
|
11
11
|
require('./pesquisa-fetcher-ca89181c.js');
|
|
12
|
-
const
|
|
12
|
+
const ContinuousInsertUtils = require('./ContinuousInsertUtils-29b65619.js');
|
|
13
13
|
const index = require('./index-1dfc7a6e.js');
|
|
14
14
|
require('./ISave-e91b70a7.js');
|
|
15
15
|
require('@sankhyalabs/ezui/dist/collection/utils/constants');
|
|
16
16
|
require('@sankhyalabs/core/dist/dataunit/metadata/UnitMetadata');
|
|
17
|
-
const dataunitFetcher = require('./dataunit-fetcher-
|
|
17
|
+
const dataunitFetcher = require('./dataunit-fetcher-f89461c1.js');
|
|
18
18
|
require('./filter-item-type.enum-a7ffdaa6.js');
|
|
19
19
|
const formConfigFetcher = require('./form-config-fetcher-ed497282.js');
|
|
20
|
-
const fieldSearch = require('./field-search-
|
|
20
|
+
const fieldSearch = require('./field-search-68e34bf4.js');
|
|
21
21
|
const ConfigStorage = require('./ConfigStorage-ecc0ed20.js');
|
|
22
22
|
const SnkFormConfigManager = require('./SnkFormConfigManager-f1c92f79.js');
|
|
23
23
|
const GetSelectedRecordsIDsInfo = require('./GetSelectedRecordsIDsInfo-bd50caf1.js');
|
|
@@ -31,7 +31,7 @@ require('./ResourceIDUtils-5ff86aa7.js');
|
|
|
31
31
|
const REGULAR_DEFAULT_BTNS = ["INSERT", "REFRESH", "PREVIOUS", "NEXT", "DIVIDER", "MORE_OPTIONS"];
|
|
32
32
|
const REGULAR_SELECTED_BTNS = ["INSERT", "REFRESH", "PREVIOUS", "NEXT", "DIVIDER", "CLONE", "REMOVE", "DIVIDER", "MORE_OPTIONS"];
|
|
33
33
|
|
|
34
|
-
class ClientSideExporterProvider extends
|
|
34
|
+
class ClientSideExporterProvider extends ContinuousInsertUtils.CommonsExporter {
|
|
35
35
|
getSelectedNumber() {
|
|
36
36
|
return this.dataUnit.getSelectionInfo().length;
|
|
37
37
|
}
|
|
@@ -86,7 +86,7 @@ class ClientSideExporterProvider extends IExporterProvider.CommonsExporter {
|
|
|
86
86
|
}
|
|
87
87
|
}
|
|
88
88
|
|
|
89
|
-
const snkSimpleCrudCss = ".sc-snk-simple-crud-h{display:flex;height:100%;width:100%;--snk-simple-crud-grid--min-height:300px}.simple-crud__container.sc-snk-simple-crud{display:grid;grid-template-rows:auto 1fr;
|
|
89
|
+
const snkSimpleCrudCss = ".sc-snk-simple-crud-h{display:flex;height:100%;width:100%;--snk-simple-crud-grid--min-height:300px}.simple-crud__container.sc-snk-simple-crud{display:grid;grid-template-rows:auto 1fr;height:100%;width:100%}.simple-crud__container-section.sc-snk-simple-crud{flex-wrap:unset;flex-direction:column}.simple-crud__form--hidden.sc-snk-simple-crud{display:none}ez-grid.sc-snk-simple-crud{--ez-grid__container--shadow:none;--ez-grid--min-height:var(--snk-simple-crud-grid--min-height)}ez-form.sc-snk-simple-crud{min-height:300px}";
|
|
90
90
|
|
|
91
91
|
const SnkSimpleCrud = class {
|
|
92
92
|
constructor(hostRef) {
|
|
@@ -97,7 +97,7 @@ const SnkSimpleCrud = class {
|
|
|
97
97
|
this.formItemsReady = index$1.createEvent(this, "formItemsReady", 7);
|
|
98
98
|
this.configuratorSave = index$1.createEvent(this, "configuratorSave", 7);
|
|
99
99
|
this.configuratorCancel = index$1.createEvent(this, "configuratorCancel", 7);
|
|
100
|
-
this._multiSelectionListDataSource = new
|
|
100
|
+
this._multiSelectionListDataSource = new ContinuousInsertUtils.SnkMultiSelectionListDataSource();
|
|
101
101
|
this._keyDownHandler = (event) => this.keyDownListener(event);
|
|
102
102
|
this._formConfigFetcher = new formConfigFetcher.FormConfigFetcher();
|
|
103
103
|
this._customEditors = new Map();
|
|
@@ -107,7 +107,7 @@ const SnkSimpleCrud = class {
|
|
|
107
107
|
"snkSimpleCrudTaskbar.grid_regular": this.getButtons(false, [taskbarElements.TaskbarElement.DATA_EXPORTER, taskbarElements.TaskbarElement.FORM_MODE]),
|
|
108
108
|
"snkSimpleCrudTaskbar.form_selected": this.getButtons(true, [taskbarElements.TaskbarElement.GRID_MODE]),
|
|
109
109
|
"snkSimpleCrudTaskbar.grid_selected": this.getButtons(true, [taskbarElements.TaskbarElement.DATA_EXPORTER, taskbarElements.TaskbarElement.FORM_MODE]),
|
|
110
|
-
"snkSimpleCrudTaskbar.finish_edition":
|
|
110
|
+
"snkSimpleCrudTaskbar.finish_edition": this.getFinishEditionButtonsCallback.bind(this)
|
|
111
111
|
});
|
|
112
112
|
this._showPopUpGridConfig = false;
|
|
113
113
|
this._showFormConfig = false;
|
|
@@ -123,10 +123,12 @@ const SnkSimpleCrud = class {
|
|
|
123
123
|
this.formConfig = undefined;
|
|
124
124
|
this._formFields = [];
|
|
125
125
|
this._fieldsProps = new Map();
|
|
126
|
+
this._enableContinuousInsert = true;
|
|
126
127
|
this.multipleSelection = undefined;
|
|
127
128
|
this.useCancelConfirm = true;
|
|
128
129
|
this.pageSize = 150;
|
|
129
130
|
this.resourceID = undefined;
|
|
131
|
+
this.enableGridInsert = false;
|
|
130
132
|
this.taskbarManager = undefined;
|
|
131
133
|
this.messagesBuilder = undefined;
|
|
132
134
|
this.useEnterLikeTab = false;
|
|
@@ -196,6 +198,13 @@ const SnkSimpleCrud = class {
|
|
|
196
198
|
newCustomFieldProps.set(fieldName, Object.assign(Object.assign({}, currentProps), { [propName]: value }));
|
|
197
199
|
this._fieldsProps = newCustomFieldProps;
|
|
198
200
|
}
|
|
201
|
+
getFinishEditionButtonsCallback() {
|
|
202
|
+
const btns = ["CANCEL", "SAVE"];
|
|
203
|
+
if (this.enableGridInsert && this._currentViewMode !== constants.VIEW_MODE.ATTACHMENT) {
|
|
204
|
+
btns.push(this._currentViewMode === constants.VIEW_MODE.GRID ? taskbarElements.TaskbarElement.FORM_MODE : taskbarElements.TaskbarElement.GRID_MODE);
|
|
205
|
+
}
|
|
206
|
+
return btns;
|
|
207
|
+
}
|
|
199
208
|
getButtons(selected, extraButtons) {
|
|
200
209
|
return this.addConfigButton(this.resolveInMemoryBtns(selected ? REGULAR_SELECTED_BTNS : REGULAR_DEFAULT_BTNS)
|
|
201
210
|
.concat(extraButtons));
|
|
@@ -399,7 +408,11 @@ const SnkSimpleCrud = class {
|
|
|
399
408
|
this.processMetadata();
|
|
400
409
|
this.onModeChange();
|
|
401
410
|
this.configDatasource();
|
|
402
|
-
this._rmPrecisionCustomValueFormatter = new
|
|
411
|
+
this._rmPrecisionCustomValueFormatter = new ContinuousInsertUtils.RmPrecisionCustomValueFormatter();
|
|
412
|
+
this._continuousInsertUtils = new ContinuousInsertUtils.ContinuousInsertUtils(this.application, this.resolveResourceID(), this.configName);
|
|
413
|
+
if (this.enableGridInsert) {
|
|
414
|
+
this._continuousInsertUtils.getConfig().then(value => this._enableContinuousInsert = value);
|
|
415
|
+
}
|
|
403
416
|
}
|
|
404
417
|
componentDidLoad() {
|
|
405
418
|
utils.CSSVarsUtils.applyVarsGrid(this._element, this._grid);
|
|
@@ -634,6 +647,9 @@ const SnkSimpleCrud = class {
|
|
|
634
647
|
const options = filteredFields.map(field => ({ value: field.name, label: field.label }));
|
|
635
648
|
return Promise.resolve(options);
|
|
636
649
|
}
|
|
650
|
+
isGridInsertActive() {
|
|
651
|
+
return this.enableGridInsert && this.dataUnit.hasNewRecord();
|
|
652
|
+
}
|
|
637
653
|
getActionsList() {
|
|
638
654
|
var _a, _b;
|
|
639
655
|
const hardList = [{
|
|
@@ -645,11 +661,21 @@ const SnkSimpleCrud = class {
|
|
|
645
661
|
? this.getColumnSearch(actionButton, item)
|
|
646
662
|
: this.getFieldSearch(actionButton, item)
|
|
647
663
|
}];
|
|
664
|
+
if (this.enableGridInsert) {
|
|
665
|
+
hardList.push(this._continuousInsertUtils.actionContinuousInsert(this._enableContinuousInsert, () => {
|
|
666
|
+
this._enableContinuousInsert = !this._enableContinuousInsert;
|
|
667
|
+
this._continuousInsertUtils.handleSaveConfig(this._enableContinuousInsert);
|
|
668
|
+
}));
|
|
669
|
+
}
|
|
670
|
+
if (this.isGridInsertActive())
|
|
671
|
+
return hardList;
|
|
648
672
|
if (this.taskbarManager != undefined && this.taskbarManager.getMoreOptions != undefined) {
|
|
649
673
|
const taskbarID = this.getTopTaskBarId();
|
|
650
674
|
return hardList.concat(this.taskbarManager.getMoreOptions(taskbarID, this.configName, this.dataState, this.actionsList));
|
|
651
675
|
}
|
|
652
|
-
|
|
676
|
+
if (this.actionsList)
|
|
677
|
+
return hardList.concat(this.actionsList);
|
|
678
|
+
return hardList;
|
|
653
679
|
}
|
|
654
680
|
getTopTaskBarId() {
|
|
655
681
|
var _a;
|
|
@@ -723,7 +749,7 @@ const SnkSimpleCrud = class {
|
|
|
723
749
|
}
|
|
724
750
|
setGridConfig(config) {
|
|
725
751
|
this.gridConfig = config;
|
|
726
|
-
|
|
752
|
+
ContinuousInsertUtils.CrudUtils.assertDefaultSorting(this.gridConfig, this.dataUnit);
|
|
727
753
|
}
|
|
728
754
|
setFormConfig(config, forceUpdate) {
|
|
729
755
|
if (this.formConfig && !forceUpdate)
|
|
@@ -768,16 +794,21 @@ const SnkSimpleCrud = class {
|
|
|
768
794
|
}
|
|
769
795
|
this._formConfigManager.setConfig(this.formConfig);
|
|
770
796
|
}
|
|
797
|
+
handleDataUnitOnInsertionMode() {
|
|
798
|
+
if (this.enableGridInsert)
|
|
799
|
+
return;
|
|
800
|
+
this.goToView(constants.VIEW_MODE.FORM);
|
|
801
|
+
}
|
|
771
802
|
/* istanbul ignore next */
|
|
772
803
|
render() {
|
|
773
804
|
var _a;
|
|
774
805
|
if (this.dataUnit == undefined) {
|
|
775
806
|
return;
|
|
776
807
|
}
|
|
777
|
-
const taskbarContent = (index$1.h("snk-taskbar", { class: this._currentViewMode === constants.VIEW_MODE.FORM && "ez-box ez-box--shadow ez-padding--
|
|
778
|
-
return (index$1.h("snk-data-unit", { ref: ref => this._snkDataUnit = ref, class: "simple-crud__container", dataUnit: this.dataUnit, useCancelConfirm: this.useCancelConfirm, onDataStateChange: evt => this.onDataStateChange(evt), onCancelEdition: this.handleCancelEdit.bind(this), pageSize: this.getPageSize(), onInsertionMode:
|
|
808
|
+
const taskbarContent = (index$1.h("snk-taskbar", { class: this._currentViewMode === constants.VIEW_MODE.FORM && "ez-box ez-box--shadow ez-padding--small", dataUnit: this.dataUnit, primaryButton: ((_a = this.dataState) === null || _a === void 0 ? void 0 : _a.isDirty) ? "SAVE" : "INSERT", "data-element-id": "grid_left", messagesBuilder: this.messagesBuilder, buttons: this._taskbarProcessor.buttons, actionsList: this.getActionsList(), disabledButtons: this._taskbarProcessor.disabledButtons, customButtons: this._taskbarProcessor.customButtons, "data-exporter-store-key": this.getDataExporterStoreKey(), slot: "leftButtons", presentationMode: index.PresentationMode.SECONDARY }, index$1.h("slot", { name: "TASKBAR_CUSTOM_ELEMENTS" })));
|
|
809
|
+
return (index$1.h("snk-data-unit", { ref: ref => this._snkDataUnit = ref, class: "simple-crud__container", dataUnit: this.dataUnit, useCancelConfirm: this.useCancelConfirm, onDataStateChange: evt => this.onDataStateChange(evt), onCancelEdition: this.handleCancelEdit.bind(this), pageSize: this.getPageSize(), onInsertionMode: this.handleDataUnitOnInsertionMode.bind(this), onDataUnitReady: (evt) => this.dataUnitReady.emit(evt.detail), ignoreSaveMessage: this._currentViewMode === constants.VIEW_MODE.GRID, onMessagesBuilderUpdated: evt => this.messagesBuilder = evt.detail, onDataUnitFieldsHidded: this.updateFormConfig.bind(this), domainMessagesBuilder: this.domainMessagesBuilder }, index$1.h("header", null, index$1.h("slot", { name: "snkSimpleCrudHeader" })), index$1.h("section", { class: "ez-box ez-box--shadow simple-crud__container-section" }, this._currentViewMode === constants.VIEW_MODE.FORM && taskbarContent, index$1.h("ez-view-stack", { ref: (ref) => this._viewStack = ref, "data-element-id": "simple-crud" }, index$1.h("stack-item", null, index$1.h("ez-grid", { class: "ez-margin-bottom--large", ref: ref => this._grid = ref, dataUnit: this.dataUnit, config: this.gridConfig, "no-header": true, multipleSelection: this.multipleSelection, onEzDoubleClick: () => this.goToView(constants.VIEW_MODE.FORM), onConfigChange: evt => this.gridConfigChangeHandler(evt), columnfilterDataSource: this.dataUnit.name && this.dataUnit.name.includes(dataunitFetcher.InMemoryLoader.IN_MEMORY_DATA_UNIT_NAME)
|
|
779
810
|
? undefined
|
|
780
|
-
: this._multiSelectionListDataSource, useEnterLikeTab: this.useEnterLikeTab, autoFocus: this.autoFocus }, this._currentViewMode === constants.VIEW_MODE.GRID && taskbarContent, index$1.h("div", { slot: "footer" }, index$1.h("slot", { name: "snkSimpleCrudFooter" })))), index$1.h("stack-item", null, index$1.h("ez-form", { ref: (ref) => this._form = ref, class: `ez-margin-top--large ${this.handleShowFormConfig() ? "simple-crud__form--hidden" : ""}`, dataUnit: this.dataUnit, config: this.getFormConfig(), fieldToFocus: this._fieldToGetFocus, onEzFormSetFields: (evt) => this.handleFormSetFields(evt.detail), onEzFormRequestClearFieldToFocus: this.clearFieldToFocusHandler.bind(this) }), this.handleShowFormConfig() && index$1.h("snk-form-config", { messagesBuilder: this.messagesBuilder, dataUnit: this.dataUnit, configManager: this._formConfigManager, onConfigClose: () => this.closeFormConfig() })), this.messagesBuilder && index$1.h("snk-configurator", { ref: (ref) => this._snkConfigurator = ref, viewMode: this._currentViewMode, messagesBuilder: this.messagesBuilder, onConfigSelected: (evt) => this.goToView(evt.detail), onOpenConfig: (evt) => this.openConfig(evt.detail), showActionButtons: this.showConfiguratorButtons, onSave: evt => this.handleConfiguratorEvent(evt, 'SAVE'), onCancel: evt => this.handleConfiguratorEvent(evt, 'CANCEL'), resourceID: this.resolveResourceID(), customContainerId: this._customContainerId })), index$1.h("div", { id: `${this._customContainerId}` }, index$1.h("slot", { name: "SnkConfigContainerSlot" }))), index$1.h("ez-modal", { modalSize: "small", closeEsc: false, closeOutsideClick: false, opened: this._showPopUpGridConfig, onEzCloseModal: () => this.closeGridConfig() }, index$1.h("snk-grid-config", { ref: ref => this._snkGridConfig = ref, config: this.gridConfig, "data-element-id": this._element.getAttribute(core.ElementIDUtils.DATA_ELEMENT_ID_ATTRIBUTE_NAME), selectedIndex: 0, configName: this.configName, onConfigChange: (evt) => this.modalConfigChangeHandler(evt), onConfigCancel: () => this.closeGridConfig(), resourceID: this.resolveResourceID() }))));
|
|
811
|
+
: this._multiSelectionListDataSource, useEnterLikeTab: this.useEnterLikeTab, autoFocus: this.autoFocus, enableGridInsert: this.enableGridInsert, enableContinuousInsert: this._enableContinuousInsert }, this._currentViewMode === constants.VIEW_MODE.GRID && taskbarContent, index$1.h("div", { slot: "footer" }, index$1.h("slot", { name: "snkSimpleCrudFooter" })))), index$1.h("stack-item", null, index$1.h("ez-form", { ref: (ref) => this._form = ref, class: `ez-margin-top--large ${this.handleShowFormConfig() ? "simple-crud__form--hidden" : ""}`, dataUnit: this.dataUnit, config: this.getFormConfig(), fieldToFocus: this._fieldToGetFocus, onEzFormSetFields: (evt) => this.handleFormSetFields(evt.detail), onEzFormRequestClearFieldToFocus: this.clearFieldToFocusHandler.bind(this) }), this.handleShowFormConfig() && index$1.h("snk-form-config", { messagesBuilder: this.messagesBuilder, dataUnit: this.dataUnit, configManager: this._formConfigManager, onConfigClose: () => this.closeFormConfig() })), this.messagesBuilder && index$1.h("snk-configurator", { ref: (ref) => this._snkConfigurator = ref, viewMode: this._currentViewMode, messagesBuilder: this.messagesBuilder, onConfigSelected: (evt) => this.goToView(evt.detail), onOpenConfig: (evt) => this.openConfig(evt.detail), showActionButtons: this.showConfiguratorButtons, onSave: evt => this.handleConfiguratorEvent(evt, 'SAVE'), onCancel: evt => this.handleConfiguratorEvent(evt, 'CANCEL'), resourceID: this.resolveResourceID(), customContainerId: this._customContainerId })), index$1.h("div", { id: `${this._customContainerId}` }, index$1.h("slot", { name: "SnkConfigContainerSlot" }))), index$1.h("ez-modal", { modalSize: "small", closeEsc: false, closeOutsideClick: false, opened: this._showPopUpGridConfig, onEzCloseModal: () => this.closeGridConfig() }, index$1.h("snk-grid-config", { ref: ref => this._snkGridConfig = ref, config: this.gridConfig, "data-element-id": this._element.getAttribute(core.ElementIDUtils.DATA_ELEMENT_ID_ATTRIBUTE_NAME), selectedIndex: 0, configName: this.configName, onConfigChange: (evt) => this.modalConfigChangeHandler(evt), onConfigCancel: () => this.closeGridConfig(), resourceID: this.resolveResourceID() }))));
|
|
781
812
|
}
|
|
782
813
|
get _element() { return index$1.getElement(this); }
|
|
783
814
|
static get watchers() { return {
|
|
@@ -3,7 +3,7 @@ import { SaveErrorsEnum } from '../../../../../lib/http/data-fetcher/fetchers/At
|
|
|
3
3
|
import { AutorizationType } from '../../../../../lib/http/data-fetcher/fetchers/auth-fetcher';
|
|
4
4
|
import { attachFetcherMetadataBuilder } from '../../builder/attach-crud-config.builder';
|
|
5
5
|
import { VIEW_MODE } from '../../../../../lib/utils/constants';
|
|
6
|
-
import {
|
|
6
|
+
import { buildLoadDataResponse } from '../../../../../lib/dataUnit/dataUnitInMemoryUtils';
|
|
7
7
|
const SERVICE_LOAD = "Attach.load";
|
|
8
8
|
export class AttachFetcherDataUnitFactory {
|
|
9
9
|
constructor(getMessage) {
|
|
@@ -49,9 +49,7 @@ export class AttachFetcherDataUnitFactory {
|
|
|
49
49
|
});
|
|
50
50
|
this._records = records;
|
|
51
51
|
}
|
|
52
|
-
|
|
53
|
-
records = applySorting(records, dataUnit, request.sort);
|
|
54
|
-
return Promise.resolve({ records, paginationInfo: buildPaginationInfo(records, request.offset, request.limit) });
|
|
52
|
+
return buildLoadDataResponse(this._records, dataUnit, request);
|
|
55
53
|
}
|
|
56
54
|
saveLoader(changes, fetcher) {
|
|
57
55
|
return new Promise((resolve) => {
|
|
@@ -39,6 +39,7 @@ export class SnkCrud {
|
|
|
39
39
|
this.disablePersonalizedFilter = undefined;
|
|
40
40
|
this.autoLoad = undefined;
|
|
41
41
|
this.autoFocus = true;
|
|
42
|
+
this.enableGridInsert = false;
|
|
42
43
|
this.domainMessagesBuilder = undefined;
|
|
43
44
|
this.setCustomFormTitle = undefined;
|
|
44
45
|
this.customContainerId = `SNK-CRUD-CUSTOM-CONTAINER-${StringUtils.generateUUID()}`;
|
|
@@ -165,6 +166,8 @@ export class SnkCrud {
|
|
|
165
166
|
ElementIDUtils.addIDInfo(this._element, null, dataInfo);
|
|
166
167
|
}
|
|
167
168
|
insertionModeHandler() {
|
|
169
|
+
if (this.enableGridInsert)
|
|
170
|
+
return;
|
|
168
171
|
this.gridToForm();
|
|
169
172
|
}
|
|
170
173
|
cancelHandler() {
|
|
@@ -380,7 +383,7 @@ export class SnkCrud {
|
|
|
380
383
|
return;
|
|
381
384
|
}
|
|
382
385
|
this._snkDataUnit.ignoreSaveMessage = this._currentViewMode === VIEW_MODE.GRID;
|
|
383
|
-
return (h(Host, null, h("ez-view-stack", { ref: (ref) => this._viewStack = ref, "data-element-id": "crud" }, h("stack-item", null, h("snk-grid", { ref: (ref) => this._snkGrid = ref, filterBarTitle: this.filterBarTitle, "data-element-id": "crud_grid", configName: this.configName, onGridDoubleClick: () => this.gridToForm(true), taskbarManager: this.taskbarManager, onActionClick: evt => this.executeAction(evt.detail), messagesBuilder: this.messagesBuilder, actionsList: this.actionsList, statusResolver: this.statusResolver, multipleSelection: this.multipleSelection, presentationMode: this.presentationMode, recordsValidator: this.recordsValidator, selectionToastConfig: this.selectionToastConfig, useEnterLikeTab: this.useEnterLikeTab, canEdit: this._canEdit, resourceID: this._resourceID, disablePersonalizedFilter: this.disablePersonalizedFilter, gridLegacyConfigName: this.gridLegacyConfigName, filterBarLegacyConfigName: this.filterBarLegacyConfigName, autoLoad: this.autoLoad, autoFocus: this.autoFocus }, h("slot", { name: "GRID_TASKBAR_CUSTOM_ELEMENTS" }), h("slot", { name: "GRID_HEADER_CUSTOM_ELEMENTS" }), h("slot", { name: "SnkGridHeader" }), h("slot", { name: "SnkGridFooter" }), h("slot", { name: "SnkGridTaskBar" }))), h("stack-item", null, h("snk-guides-viewer", { ref: ref => this._guidesViewer = ref, entityPath: this._snkDataUnit.entityName, messagesBuilder: this.messagesBuilder, onExit: () => this.setViewMode(VIEW_MODE.GRID), dataState: this._dataState, dataUnit: this._dataUnit, actionsList: this.actionsList, taskbarManager: this.taskbarManager, configName: this.configName, onActionClick: evt => this.executeAction(evt.detail), presentationMode: this.presentationMode, "data-element-id": "crud_form", canEdit: this._canEdit, recordsValidator: this.recordsValidator, resourceID: this._resourceID, detailTaskbarCustomContainerId: this.customContainerId, formLegacyConfigName: this.formLegacyConfigName, getCustomTitle: this.setCustomFormTitle }, h("slot", { name: "GUIDES_VIEWER_TASKBAR_CUSTOM_ELEMENTS" }), h("slot", { name: "SnkFormTaskBar" }))), h("stack-item", null, h("snk-attach", { registerKey: this.attachmentRegisterKey, messagesBuilder: this.messagesBuilder, entityName: this._snkDataUnit.entityName, onBack: this.backView.bind(this) })), h("snk-configurator", { ref: (ref) => this._snkConfigurator = ref, viewMode: this._currentViewMode, messagesBuilder: this.messagesBuilder, onConfigSelected: (evt) => this.setViewMode(evt.detail), onOpenConfig: (evt) => this.openConfig(evt.detail), showActionButtons: this.showActionButtons, onSave: evt => this.handleConfiguratorEvent(evt, 'SAVE'), onCancel: evt => this.handleConfiguratorEvent(evt, 'CANCEL'), resourceID: this._resourceID, customContainerId: this.customContainerId })), h("div", { id: `${this.customContainerId}` }, h("slot", { name: "SnkConfigContainerSlot" }), h("slot", { name: "DETAIL_GRID_HEADER_CUSTOM_ELEMENTS" }), h("slot", { name: "DETAIL_GRID_TASKBAR_CUSTOM_ELEMENTS" }), h("slot", { name: "DETAIL_TASKBAR_CUSTOM_ELEMENTS" }))));
|
|
386
|
+
return (h(Host, null, h("ez-view-stack", { ref: (ref) => this._viewStack = ref, "data-element-id": "crud" }, h("stack-item", null, h("snk-grid", { ref: (ref) => this._snkGrid = ref, filterBarTitle: this.filterBarTitle, "data-element-id": "crud_grid", configName: this.configName, onGridDoubleClick: () => this.gridToForm(true), taskbarManager: this.taskbarManager, onActionClick: evt => this.executeAction(evt.detail), messagesBuilder: this.messagesBuilder, actionsList: this.actionsList, statusResolver: this.statusResolver, multipleSelection: this.multipleSelection, presentationMode: this.presentationMode, recordsValidator: this.recordsValidator, selectionToastConfig: this.selectionToastConfig, useEnterLikeTab: this.useEnterLikeTab, canEdit: this._canEdit, resourceID: this._resourceID, disablePersonalizedFilter: this.disablePersonalizedFilter, gridLegacyConfigName: this.gridLegacyConfigName, filterBarLegacyConfigName: this.filterBarLegacyConfigName, autoLoad: this.autoLoad, autoFocus: this.autoFocus, enableGridInsert: this.enableGridInsert }, h("slot", { name: "GRID_TASKBAR_CUSTOM_ELEMENTS" }), h("slot", { name: "GRID_HEADER_CUSTOM_ELEMENTS" }), h("slot", { name: "SnkGridHeader" }), h("slot", { name: "SnkGridFooter" }), h("slot", { name: "SnkGridTaskBar" }))), h("stack-item", null, h("snk-guides-viewer", { ref: ref => this._guidesViewer = ref, entityPath: this._snkDataUnit.entityName, messagesBuilder: this.messagesBuilder, onExit: () => this.setViewMode(VIEW_MODE.GRID), dataState: this._dataState, dataUnit: this._dataUnit, actionsList: this.actionsList, taskbarManager: this.taskbarManager, configName: this.configName, onActionClick: evt => this.executeAction(evt.detail), presentationMode: this.presentationMode, "data-element-id": "crud_form", canEdit: this._canEdit, recordsValidator: this.recordsValidator, resourceID: this._resourceID, detailTaskbarCustomContainerId: this.customContainerId, formLegacyConfigName: this.formLegacyConfigName, enableGridInsert: this.enableGridInsert, getCustomTitle: this.setCustomFormTitle }, h("slot", { name: "GUIDES_VIEWER_TASKBAR_CUSTOM_ELEMENTS" }), h("slot", { name: "SnkFormTaskBar" }))), h("stack-item", null, h("snk-attach", { registerKey: this.attachmentRegisterKey, messagesBuilder: this.messagesBuilder, entityName: this._snkDataUnit.entityName, onBack: this.backView.bind(this) })), h("snk-configurator", { ref: (ref) => this._snkConfigurator = ref, viewMode: this._currentViewMode, messagesBuilder: this.messagesBuilder, onConfigSelected: (evt) => this.setViewMode(evt.detail), onOpenConfig: (evt) => this.openConfig(evt.detail), showActionButtons: this.showActionButtons, onSave: evt => this.handleConfiguratorEvent(evt, 'SAVE'), onCancel: evt => this.handleConfiguratorEvent(evt, 'CANCEL'), resourceID: this._resourceID, customContainerId: this.customContainerId })), h("div", { id: `${this.customContainerId}` }, h("slot", { name: "SnkConfigContainerSlot" }), h("slot", { name: "DETAIL_GRID_HEADER_CUSTOM_ELEMENTS" }), h("slot", { name: "DETAIL_GRID_TASKBAR_CUSTOM_ELEMENTS" }), h("slot", { name: "DETAIL_TASKBAR_CUSTOM_ELEMENTS" }))));
|
|
384
387
|
}
|
|
385
388
|
static get is() { return "snk-crud"; }
|
|
386
389
|
static get encapsulation() { return "scoped"; }
|
|
@@ -737,6 +740,24 @@ export class SnkCrud {
|
|
|
737
740
|
"reflect": false,
|
|
738
741
|
"defaultValue": "true"
|
|
739
742
|
},
|
|
743
|
+
"enableGridInsert": {
|
|
744
|
+
"type": "boolean",
|
|
745
|
+
"mutable": false,
|
|
746
|
+
"complexType": {
|
|
747
|
+
"original": "boolean",
|
|
748
|
+
"resolved": "boolean",
|
|
749
|
+
"references": {}
|
|
750
|
+
},
|
|
751
|
+
"required": false,
|
|
752
|
+
"optional": true,
|
|
753
|
+
"docs": {
|
|
754
|
+
"tags": [],
|
|
755
|
+
"text": "Ativa inser\u00E7\u00E3o de registros no modo grade."
|
|
756
|
+
},
|
|
757
|
+
"attribute": "enable-grid-insert",
|
|
758
|
+
"reflect": false,
|
|
759
|
+
"defaultValue": "false"
|
|
760
|
+
},
|
|
740
761
|
"domainMessagesBuilder": {
|
|
741
762
|
"type": "string",
|
|
742
763
|
"mutable": false,
|
|
@@ -27,6 +27,7 @@ export class SnkGuidesViewer {
|
|
|
27
27
|
this.resourceID = undefined;
|
|
28
28
|
this.detailTaskbarCustomContainerId = undefined;
|
|
29
29
|
this.formLegacyConfigName = undefined;
|
|
30
|
+
this.enableGridInsert = false;
|
|
30
31
|
this.getCustomTitle = undefined;
|
|
31
32
|
this._hasToCreateFieldSearch = true;
|
|
32
33
|
this._breadcrumbItems = [];
|
|
@@ -96,7 +97,7 @@ export class SnkGuidesViewer {
|
|
|
96
97
|
this._container.focus();
|
|
97
98
|
}
|
|
98
99
|
exitViewer() {
|
|
99
|
-
if (this.dataUnit.isDirty()) {
|
|
100
|
+
if (!this.enableGridInsert && this.dataUnit.isDirty()) {
|
|
100
101
|
this.dataUnit.cancelEdition({ after: () => this.exit.emit() });
|
|
101
102
|
}
|
|
102
103
|
else {
|
|
@@ -205,10 +206,13 @@ export class SnkGuidesViewer {
|
|
|
205
206
|
const invisibleButtons = this.getInvisibleButtons();
|
|
206
207
|
this._taskbarProcessor = new TaskbarProcessor({
|
|
207
208
|
"snkGuideViewer.regular": btnsRegularMode,
|
|
208
|
-
"snkGuideViewer.finish_edition": ["CANCEL", "SAVE"],
|
|
209
|
+
"snkGuideViewer.finish_edition": ["CANCEL", "SAVE", this.handleAddGridMode()],
|
|
209
210
|
});
|
|
210
211
|
this._taskbarProcessor.process(taskbarId, this.taskbarManager, this.dataState, disabledButtons, invisibleButtons);
|
|
211
212
|
}
|
|
213
|
+
handleAddGridMode() {
|
|
214
|
+
return this.enableGridInsert ? TaskbarElement.GRID_MODE : "";
|
|
215
|
+
}
|
|
212
216
|
getInvisibleButtons() {
|
|
213
217
|
const invisibleButtons = [];
|
|
214
218
|
if (this.dataState && this.dataState.selectionInfo.mode === SelectionMode.ALL_RECORDS)
|
|
@@ -803,6 +807,24 @@ export class SnkGuidesViewer {
|
|
|
803
807
|
"attribute": "form-legacy-config-name",
|
|
804
808
|
"reflect": false
|
|
805
809
|
},
|
|
810
|
+
"enableGridInsert": {
|
|
811
|
+
"type": "boolean",
|
|
812
|
+
"mutable": false,
|
|
813
|
+
"complexType": {
|
|
814
|
+
"original": "boolean",
|
|
815
|
+
"resolved": "boolean",
|
|
816
|
+
"references": {}
|
|
817
|
+
},
|
|
818
|
+
"required": false,
|
|
819
|
+
"optional": true,
|
|
820
|
+
"docs": {
|
|
821
|
+
"tags": [],
|
|
822
|
+
"text": "Ativa inser\u00E7\u00E3o de registros no modo grade."
|
|
823
|
+
},
|
|
824
|
+
"attribute": "enable-grid-insert",
|
|
825
|
+
"reflect": false,
|
|
826
|
+
"defaultValue": "false"
|
|
827
|
+
},
|
|
806
828
|
"getCustomTitle": {
|
|
807
829
|
"type": "unknown",
|
|
808
830
|
"mutable": false,
|
|
@@ -479,7 +479,14 @@ export class SnkDataUnit {
|
|
|
479
479
|
}
|
|
480
480
|
handleRecordsRemoved(action) {
|
|
481
481
|
var _a, _b;
|
|
482
|
-
|
|
482
|
+
const cachedRecords = action.payload.cachedRecords;
|
|
483
|
+
let removeFinishMsg;
|
|
484
|
+
if ((cachedRecords === null || cachedRecords === void 0 ? void 0 : cachedRecords.length) > 1) {
|
|
485
|
+
removeFinishMsg = this.getMessage("snkDataUnit.removeAllInfo", { size: cachedRecords.length });
|
|
486
|
+
}
|
|
487
|
+
else {
|
|
488
|
+
removeFinishMsg = this.getMessage("snkDataUnit.removeInfo", action.payload.cachedRecords[0]);
|
|
489
|
+
}
|
|
483
490
|
if (removeFinishMsg != undefined) {
|
|
484
491
|
this.showSuccessMessage(removeFinishMsg);
|
|
485
492
|
}
|
|
@@ -490,14 +497,6 @@ export class SnkDataUnit {
|
|
|
490
497
|
this.dataUnit.gotoPage(page);
|
|
491
498
|
}
|
|
492
499
|
}
|
|
493
|
-
buildRemoveFinishMessage(action) {
|
|
494
|
-
const records = action.payload.records;
|
|
495
|
-
if (!records || !records.length)
|
|
496
|
-
return undefined;
|
|
497
|
-
if ((records === null || records === void 0 ? void 0 : records.length) > 1)
|
|
498
|
-
return this.getMessage('snkDataUnit.removeAllInfo', { size: records.length });
|
|
499
|
-
return this.getMessage('snkDataUnit.removeInfo', records);
|
|
500
|
-
}
|
|
501
500
|
/**
|
|
502
501
|
* Conforme mecanismo de mensagens, é possível customizar as mensagens dos blocos de construção
|
|
503
502
|
* através de um pequeno modulo na estrutura da aplicação:
|
|
@@ -541,19 +540,26 @@ export class SnkDataUnit {
|
|
|
541
540
|
return await this._application.getDataUnit(this.entityName, cacheName, null, this.configName, this.resourceID);
|
|
542
541
|
}
|
|
543
542
|
}
|
|
544
|
-
|
|
545
|
-
|
|
543
|
+
updateMetadataWithRMP() {
|
|
544
|
+
this.fillFieldsWithRmp(this.dataUnit.metadata);
|
|
545
|
+
this.fillFieldsWithRmPrecision(this.dataUnit.metadata);
|
|
546
|
+
const dataUnitUpdatedMetadata = this.handleDULinksOnMetadataLoaded(this.dataUnit.metadata);
|
|
547
|
+
this.dataUnit.metadata = dataUnitUpdatedMetadata;
|
|
548
|
+
}
|
|
549
|
+
async loadDataUnit() {
|
|
550
|
+
var _a, _b;
|
|
546
551
|
if (this.dataUnit == null && this._application && this.entityName) {
|
|
547
552
|
this.dataUnit = await this.getDataUnitParentOrChild();
|
|
548
553
|
}
|
|
549
554
|
if (this.dataUnit) {
|
|
550
555
|
this.dataUnit.pageSize = this.pageSize;
|
|
551
556
|
this.dataUnit.unsubscribe(this._dataUnitObserver);
|
|
552
|
-
this.dataUnit.addInterceptor(this);
|
|
553
557
|
this.dataUnit.subscribe(this._dataUnitObserver);
|
|
554
|
-
if (
|
|
555
|
-
|
|
556
|
-
|
|
558
|
+
if ((_a = this.dataUnit) === null || _a === void 0 ? void 0 : _a.metadata) {
|
|
559
|
+
this.updateMetadataWithRMP();
|
|
560
|
+
}
|
|
561
|
+
this.dataUnit.addInterceptor(this);
|
|
562
|
+
if ((_b = this.dataUnit.records) === null || _b === void 0 ? void 0 : _b.length) {
|
|
557
563
|
const { records } = this.getMetadataByRow(this.dataUnit);
|
|
558
564
|
this.dataUnit.records = records;
|
|
559
565
|
}
|
|
@@ -641,7 +647,7 @@ export class SnkDataUnit {
|
|
|
641
647
|
}
|
|
642
648
|
}
|
|
643
649
|
async componentDidLoad() {
|
|
644
|
-
await this.loadDataUnit(
|
|
650
|
+
await this.loadDataUnit();
|
|
645
651
|
this.handlerLinkFields();
|
|
646
652
|
}
|
|
647
653
|
render() {
|
package/dist/collection/components/snk-filter-bar/filter-item/editors/snk-filter-checkbox-list.js
CHANGED
|
@@ -19,7 +19,7 @@ export class SnkFilterCheckboxList {
|
|
|
19
19
|
this.valueChanged.emit((_b = this.config) === null || _b === void 0 ? void 0 : _b.value);
|
|
20
20
|
}
|
|
21
21
|
renderOptions() {
|
|
22
|
-
return this.optionsList.map(option => (h("ez-check", { label: option.label,
|
|
22
|
+
return this.optionsList.map(option => (h("ez-check", { label: option.label, onEzChange: (event) => this.handleToggleCheck(option, event.detail), value: !!this.isChecked(option.name) })));
|
|
23
23
|
}
|
|
24
24
|
isChecked(itemName) {
|
|
25
25
|
var _a;
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { ApplicationContext, ElementIDUtils,
|
|
1
|
+
import { ApplicationContext, ElementIDUtils, ObjectUtils, ErrorException } from '@sankhyalabs/core';
|
|
2
2
|
import { EzScrollDirection } from '@sankhyalabs/ezui/dist/collection/components/ez-scroller/EzScrollDirection';
|
|
3
3
|
import { h, Host } from '@stencil/core';
|
|
4
4
|
import { ConfigStorage } from '../../lib/configs/ConfigStorage';
|
|
@@ -27,6 +27,7 @@ export class SnkFilterBar {
|
|
|
27
27
|
this._filtersComparator = (a, b) => {
|
|
28
28
|
return this._calculateSortIndex(b) - this._calculateSortIndex(a);
|
|
29
29
|
};
|
|
30
|
+
this.customFilterBarConfig = undefined;
|
|
30
31
|
this.dataUnit = undefined;
|
|
31
32
|
this.title = undefined;
|
|
32
33
|
this.configName = undefined;
|
|
@@ -337,20 +338,23 @@ export class SnkFilterBar {
|
|
|
337
338
|
}
|
|
338
339
|
}
|
|
339
340
|
async loadConfigFromStorage(clearCache) {
|
|
340
|
-
|
|
341
|
-
|
|
341
|
+
try {
|
|
342
|
+
if (clearCache) {
|
|
343
|
+
await ConfigStorage.deleteFilterBarConfigCache(this.configName, this.resourceID);
|
|
344
|
+
}
|
|
345
|
+
let config;
|
|
346
|
+
if (this.customFilterBarConfig) {
|
|
347
|
+
config = await this.customFilterBarConfig(this.configName, this.resourceID, { contextURI: this.dataUnit.name });
|
|
348
|
+
}
|
|
349
|
+
else {
|
|
350
|
+
config = await ConfigStorage.loadFilterBarConfig(this.configName, this.resourceID, { contextURI: this.dataUnit.name });
|
|
351
|
+
}
|
|
352
|
+
this.filterConfig = config.map(item => this.normalizeItem(item));
|
|
353
|
+
this.filterConfig.sort((a, b) => this._filtersComparator(a, b));
|
|
354
|
+
}
|
|
355
|
+
catch (e) {
|
|
356
|
+
throw new ErrorException(this.getMessage("snkFilterBar.failToLoadConfig"), e);
|
|
342
357
|
}
|
|
343
|
-
return new Promise(accept => {
|
|
344
|
-
ConfigStorage.loadFilterBarConfig(this.configName, this.resourceID, { contextURI: this.dataUnit.name })
|
|
345
|
-
.then((filters) => {
|
|
346
|
-
accept();
|
|
347
|
-
this.filterConfig = filters.map(item => this.normalizeItem(item));
|
|
348
|
-
this.filterConfig.sort((a, b) => this._filtersComparator(a, b));
|
|
349
|
-
})
|
|
350
|
-
.catch(reason => {
|
|
351
|
-
throw new ErrorException(this.getMessage("snkFilterBar.failToLoadConfig"), reason);
|
|
352
|
-
});
|
|
353
|
-
});
|
|
354
358
|
}
|
|
355
359
|
attachDataUnit() {
|
|
356
360
|
if (this.dataUnit == undefined) {
|
|
@@ -477,6 +481,32 @@ export class SnkFilterBar {
|
|
|
477
481
|
}
|
|
478
482
|
static get properties() {
|
|
479
483
|
return {
|
|
484
|
+
"customFilterBarConfig": {
|
|
485
|
+
"type": "unknown",
|
|
486
|
+
"mutable": false,
|
|
487
|
+
"complexType": {
|
|
488
|
+
"original": "(configName: string, resourceId: string, options: any) => Promise<Array<SnkFilterItemConfig>>",
|
|
489
|
+
"resolved": "(configName: string, resourceId: string, options: any) => Promise<SnkFilterItemConfig[]>",
|
|
490
|
+
"references": {
|
|
491
|
+
"Promise": {
|
|
492
|
+
"location": "global"
|
|
493
|
+
},
|
|
494
|
+
"Array": {
|
|
495
|
+
"location": "global"
|
|
496
|
+
},
|
|
497
|
+
"SnkFilterItemConfig": {
|
|
498
|
+
"location": "import",
|
|
499
|
+
"path": "./filter-item/snk-filter-item"
|
|
500
|
+
}
|
|
501
|
+
}
|
|
502
|
+
},
|
|
503
|
+
"required": false,
|
|
504
|
+
"optional": true,
|
|
505
|
+
"docs": {
|
|
506
|
+
"tags": [],
|
|
507
|
+
"text": "Loader customizado para carregar as configura\u00E7\u00F5es"
|
|
508
|
+
}
|
|
509
|
+
},
|
|
480
510
|
"dataUnit": {
|
|
481
511
|
"type": "unknown",
|
|
482
512
|
"mutable": true,
|