@sankhyalabs/sankhyablocks 6.6.0 → 6.6.2
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/SnkMultiSelectionListDataSource-804ff4c7.js +34 -0
- package/dist/cjs/snk-grid.cjs.entry.js +2 -30
- package/dist/cjs/snk-personalized-filter-editor.cjs.entry.js +1 -1
- package/dist/cjs/snk-simple-crud.cjs.entry.js +42 -13
- package/dist/collection/components/snk-filter-bar/filter-item/editors/snk-personalized-filter-editor/snk-personalized-filter-editor.js +1 -1
- package/dist/collection/components/snk-simple-crud/snk-simple-crud.js +10 -2
- package/dist/collection/lib/dataUnit/InMemoryLoader.js +25 -4
- package/dist/components/{taskbar-processor.js → SnkMultiSelectionListDataSource.js} +32 -1
- package/dist/components/snk-detail-view2.js +1 -1
- package/dist/components/snk-grid2.js +4 -33
- package/dist/components/snk-personalized-filter-editor.js +1 -1
- package/dist/components/snk-simple-crud2.js +34 -6
- package/dist/esm/SnkMultiSelectionListDataSource-892f37f9.js +32 -0
- package/dist/esm/snk-grid.entry.js +4 -32
- package/dist/esm/snk-personalized-filter-editor.entry.js +1 -1
- package/dist/esm/snk-simple-crud.entry.js +34 -5
- package/dist/sankhyablocks/p-18de3bbd.entry.js +1 -0
- package/dist/sankhyablocks/{p-b6f9f702.entry.js → p-26ad62b9.entry.js} +1 -1
- package/dist/sankhyablocks/p-4c8d0516.entry.js +1 -0
- package/dist/sankhyablocks/p-fa9d3f73.js +1 -0
- package/dist/sankhyablocks/sankhyablocks.esm.js +1 -1
- package/dist/types/components/snk-simple-crud/snk-simple-crud.d.ts +3 -0
- package/dist/types/lib/dataUnit/InMemoryLoader.d.ts +3 -1
- package/package.json +1 -1
- package/dist/sankhyablocks/p-7c50ded4.entry.js +0 -1
- package/dist/sankhyablocks/p-7f37b801.entry.js +0 -1
@@ -0,0 +1,34 @@
|
|
1
|
+
'use strict';
|
2
|
+
|
3
|
+
const core = require('@sankhyalabs/core');
|
4
|
+
|
5
|
+
class SnkMultiSelectionListDataSource {
|
6
|
+
setDataUnit(dataUnit) {
|
7
|
+
this._dataUnit = dataUnit;
|
8
|
+
}
|
9
|
+
setApplication(application) {
|
10
|
+
this._application = application;
|
11
|
+
}
|
12
|
+
formatLabel(fieldName, value) {
|
13
|
+
const { userInterface } = this._dataUnit.getField(fieldName);
|
14
|
+
if (userInterface === core.UserInterface.DATETIME) {
|
15
|
+
return core.DateUtils.formatDate(this._dataUnit.valueFromString(fieldName, value));
|
16
|
+
}
|
17
|
+
return String(this._dataUnit.getFormattedValue(fieldName, value));
|
18
|
+
}
|
19
|
+
fetchData(filterTerm, fieldName) {
|
20
|
+
return new Promise(resolve => {
|
21
|
+
this._application.executeSelectDistinct(this._dataUnit, fieldName, filterTerm).then(result => {
|
22
|
+
resolve(result.map(item => {
|
23
|
+
const field = this._dataUnit.getField(fieldName);
|
24
|
+
if (field.userInterface === core.UserInterface.SEARCH) {
|
25
|
+
return Object.assign(Object.assign({}, JSON.parse(item)), { check: true });
|
26
|
+
}
|
27
|
+
return { value: item, label: this.formatLabel(fieldName, item), check: true };
|
28
|
+
}));
|
29
|
+
});
|
30
|
+
});
|
31
|
+
}
|
32
|
+
}
|
33
|
+
|
34
|
+
exports.SnkMultiSelectionListDataSource = SnkMultiSelectionListDataSource;
|
@@ -10,6 +10,7 @@ const ConfigStorage = require('./ConfigStorage-0a738cdc.js');
|
|
10
10
|
const index$1 = require('./index-0e663819.js');
|
11
11
|
const taskbarProcessor = require('./taskbar-processor-bce3f499.js');
|
12
12
|
const index$2 = require('./index-102ba62d.js');
|
13
|
+
const SnkMultiSelectionListDataSource = require('./SnkMultiSelectionListDataSource-804ff4c7.js');
|
13
14
|
const DataUnit = require('@sankhyalabs/core/dist/dataunit/DataUnit');
|
14
15
|
require('./form-config-fetcher-92bc8fe7.js');
|
15
16
|
require('./DataFetcher-a9d0228f.js');
|
@@ -18,35 +19,6 @@ require('./resource-fetcher-2979b54b.js');
|
|
18
19
|
require('./filter-bar-config-fetcher-75219599.js');
|
19
20
|
require('./filter-item-type.enum-aa823a00.js');
|
20
21
|
|
21
|
-
class SnkMultiSelectionListDataSource {
|
22
|
-
setDataUnit(dataUnit) {
|
23
|
-
this._dataUnit = dataUnit;
|
24
|
-
}
|
25
|
-
setApplication(application) {
|
26
|
-
this._application = application;
|
27
|
-
}
|
28
|
-
formatLabel(fieldName, value) {
|
29
|
-
const { userInterface } = this._dataUnit.getField(fieldName);
|
30
|
-
if (userInterface === core.UserInterface.DATETIME) {
|
31
|
-
return core.DateUtils.formatDate(this._dataUnit.valueFromString(fieldName, value));
|
32
|
-
}
|
33
|
-
return String(this._dataUnit.getFormattedValue(fieldName, value));
|
34
|
-
}
|
35
|
-
fetchData(filterTerm, fieldName) {
|
36
|
-
return new Promise(resolve => {
|
37
|
-
this._application.executeSelectDistinct(this._dataUnit, fieldName, filterTerm).then(result => {
|
38
|
-
resolve(result.map(item => {
|
39
|
-
const field = this._dataUnit.getField(fieldName);
|
40
|
-
if (field.userInterface === core.UserInterface.SEARCH) {
|
41
|
-
return Object.assign(Object.assign({}, JSON.parse(item)), { check: true });
|
42
|
-
}
|
43
|
-
return { value: item, label: this.formatLabel(fieldName, item), check: true };
|
44
|
-
}));
|
45
|
-
});
|
46
|
-
});
|
47
|
-
}
|
48
|
-
}
|
49
|
-
|
50
22
|
const snkGridCss = ".snk-grid__container.sc-snk-grid{display:flex;height:100%;width:100%}.snk-grid__header.sc-snk-grid{display:flex;flex-wrap:nowrap;width:100%}.snk-grid__filter-bar.sc-snk-grid{width:100%}.snk-grid__header-divider.sc-snk-grid{margin-bottom:var(--space--medium)}.snk-grid__table.sc-snk-grid{min-height:300px}.snk-grid-container__without-shadow.sc-snk-grid{--ezgrid__container--shadow:unset}";
|
51
23
|
|
52
24
|
const SnkGrid = class {
|
@@ -54,7 +26,7 @@ const SnkGrid = class {
|
|
54
26
|
index.registerInstance(this, hostRef);
|
55
27
|
this.actionClick = index.createEvent(this, "actionClick", 7);
|
56
28
|
this.gridDoubleClick = index.createEvent(this, "gridDoubleClick", 7);
|
57
|
-
this._multiSelectionListDataSource = new SnkMultiSelectionListDataSource();
|
29
|
+
this._multiSelectionListDataSource = new SnkMultiSelectionListDataSource.SnkMultiSelectionListDataSource();
|
58
30
|
this._topTaskbarProcessor = new taskbarProcessor.TaskbarProcessor({
|
59
31
|
"snkGridTopTaskbar.regular": ["FORM_MODE", "CONFIGURATOR", "INSERT"],
|
60
32
|
"snkGridTopTaskbar.regular.secondary": ["FORM_MODE", "CONFIGURATOR", "INSERT"],
|
@@ -185,7 +185,7 @@ const SnkFilterPersonalized = class {
|
|
185
185
|
buildModeModalFooter() {
|
186
186
|
if (this.presentationMode !== presentationMode.EPresentationMode.MODAL)
|
187
187
|
return;
|
188
|
-
return (index.h("div", { class: "ez-flex ez-flex--justify-end grow ez-margin-top--medium" }, index.h("ez-button", { class: "ez-button--tertiary", size: "medium", label: this.getMessage('snkPersonalizedFilter.footerActions.clear'), onClick: this.handleClearFilters.bind(this) }), index.h("ez-button", { class: "ez-button--secondary", size: "medium", label: this.getMessage('snkPersonalizedFilter.footerActions.create'), onClick: () => this.addFilter.emit() })));
|
188
|
+
return (index.h("div", { class: "ez-flex ez-flex--justify-end grow ez-margin-top--medium ez-margin-bottom--small" }, index.h("ez-button", { class: "ez-button--tertiary ez-margin-right--small", size: "medium", label: this.getMessage('snkPersonalizedFilter.footerActions.clear'), onClick: this.handleClearFilters.bind(this) }), index.h("ez-button", { class: "ez-button--secondary ez-margin-right--small", size: "medium", label: this.getMessage('snkPersonalizedFilter.footerActions.create'), onClick: () => this.addFilter.emit() })));
|
189
189
|
}
|
190
190
|
buildContainerFiltersCreated() {
|
191
191
|
if (this.items.length) {
|
@@ -4,12 +4,14 @@ Object.defineProperty(exports, '__esModule', { value: true });
|
|
4
4
|
|
5
5
|
const index = require('./index-f9e81701.js');
|
6
6
|
const core = require('@sankhyalabs/core');
|
7
|
-
const constants = require('./constants-d187e03e.js');
|
7
|
+
const constants$1 = require('./constants-d187e03e.js');
|
8
8
|
const taskbarElements = require('./taskbar-elements-b98dd6e9.js');
|
9
9
|
require('./DataFetcher-a9d0228f.js');
|
10
10
|
require('./pesquisa-fetcher-954b74c3.js');
|
11
11
|
const index$1 = require('./index-0e663819.js');
|
12
12
|
const taskbarProcessor = require('./taskbar-processor-bce3f499.js');
|
13
|
+
const constants = require('@sankhyalabs/ezui/dist/collection/utils/constants');
|
14
|
+
const SnkMultiSelectionListDataSource = require('./SnkMultiSelectionListDataSource-804ff4c7.js');
|
13
15
|
require('./index-102ba62d.js');
|
14
16
|
require('./_commonjsHelpers-537d719a.js');
|
15
17
|
|
@@ -19,7 +21,7 @@ class InMemoryLoader {
|
|
19
21
|
this.metadata = metadata;
|
20
22
|
this._dataUnit = new core.DataUnit("InMemoryDataUnit");
|
21
23
|
this._dataUnit.metadataLoader = () => this.metadaLoader();
|
22
|
-
this._dataUnit.dataLoader = (
|
24
|
+
this._dataUnit.dataLoader = (dataUnit, request) => this.dataLoader(dataUnit, request);
|
23
25
|
this._dataUnit.saveLoader = (_dataUnit, changes) => this.saveLoader(_dataUnit, changes);
|
24
26
|
this._dataUnit.removeLoader = (_dataUnit, recordIds) => this.removeLoader(_dataUnit, recordIds);
|
25
27
|
this.dataUnit.loadMetadata().then(() => this.dataUnit.loadData());
|
@@ -56,8 +58,9 @@ class InMemoryLoader {
|
|
56
58
|
metadaLoader() {
|
57
59
|
return Promise.resolve(this._metadata);
|
58
60
|
}
|
59
|
-
dataLoader(
|
60
|
-
|
61
|
+
dataLoader(dataUnit, request) {
|
62
|
+
const filters = this.getColumnFilters(dataUnit);
|
63
|
+
let records = this.applyFilters(filters);
|
61
64
|
if (request.sort) {
|
62
65
|
request.sort.forEach(sort => {
|
63
66
|
records = records.sort((recordA, recordB) => {
|
@@ -70,6 +73,25 @@ class InMemoryLoader {
|
|
70
73
|
}
|
71
74
|
return Promise.resolve({ records: records });
|
72
75
|
}
|
76
|
+
applyFilters(filters) {
|
77
|
+
let records = [...this._records];
|
78
|
+
filters.forEach(filter => {
|
79
|
+
records = records.filter(record => { var _a; return filter.values.includes((_a = record[filter.column]) === null || _a === void 0 ? void 0 : _a.toString()); });
|
80
|
+
});
|
81
|
+
return records;
|
82
|
+
}
|
83
|
+
getColumnFilters(dataUnit) {
|
84
|
+
var _a, _b;
|
85
|
+
const allFilters = (_a = dataUnit.getFilters()) !== null && _a !== void 0 ? _a : [];
|
86
|
+
const columnFilters = (_b = allFilters.filter(filter => { var _a; return (_a = filter.name) === null || _a === void 0 ? void 0 : _a.includes(constants.DISTINCT_FILTER_NAME_PREFIX); })) !== null && _b !== void 0 ? _b : [];
|
87
|
+
return columnFilters.map(filter => {
|
88
|
+
var _a, _b;
|
89
|
+
return {
|
90
|
+
column: (_b = (_a = filter.name) === null || _a === void 0 ? void 0 : _a.replace(constants.DISTINCT_FILTER_NAME_PREFIX, "")) !== null && _b !== void 0 ? _b : "",
|
91
|
+
values: filter.params.map(param => param.value),
|
92
|
+
};
|
93
|
+
});
|
94
|
+
}
|
73
95
|
getSortFn(type) {
|
74
96
|
switch (type) {
|
75
97
|
case core.DataType.NUMBER:
|
@@ -135,6 +157,7 @@ const SnkSimpleCrud = class {
|
|
135
157
|
this.actionClick = index.createEvent(this, "actionClick", 7);
|
136
158
|
this.REGULAR_DEFAULT_BTNS = ["INSERT", "REFRESH", "PREVIOUS", "NEXT", "DIVIDER"];
|
137
159
|
this.REGULAR_SELECTED_BTNS = ["INSERT", "REFRESH", "PREVIOUS", "NEXT", "DIVIDER", "CLONE", "REMOVE", "DIVIDER"];
|
160
|
+
this._multiSelectionListDataSource = new SnkMultiSelectionListDataSource.SnkMultiSelectionListDataSource();
|
138
161
|
this._taskbarProcessor = new taskbarProcessor.TaskbarProcessor({
|
139
162
|
"snkSimpleCrudTaskbar.form_regular": this.resolveInMemoryBtns(this.REGULAR_DEFAULT_BTNS).concat(taskbarElements.TaskbarElement.GRID_MODE),
|
140
163
|
"snkSimpleCrudTaskbar.grid_regular": this.resolveInMemoryBtns(this.REGULAR_DEFAULT_BTNS).concat(taskbarElements.TaskbarElement.FORM_MODE),
|
@@ -142,11 +165,11 @@ const SnkSimpleCrud = class {
|
|
142
165
|
"snkSimpleCrudTaskbar.grid_selected": this.resolveInMemoryBtns(this.REGULAR_SELECTED_BTNS).concat(taskbarElements.TaskbarElement.FORM_MODE),
|
143
166
|
"snkSimpleCrudTaskbar.finish_edition": ["CANCEL", "SAVE"]
|
144
167
|
});
|
145
|
-
this._currentViewMode = constants.VIEW_MODE.GRID;
|
168
|
+
this._currentViewMode = constants$1.VIEW_MODE.GRID;
|
146
169
|
this._config = undefined;
|
147
170
|
this.dataState = undefined;
|
148
171
|
this.dataUnit = undefined;
|
149
|
-
this.mode = constants.SIMPLE_CRUD_MODE.SERVER;
|
172
|
+
this.mode = constants$1.SIMPLE_CRUD_MODE.SERVER;
|
150
173
|
this.gridConfig = undefined;
|
151
174
|
this.formConfig = undefined;
|
152
175
|
this.multipleSelection = undefined;
|
@@ -156,7 +179,7 @@ const SnkSimpleCrud = class {
|
|
156
179
|
}
|
157
180
|
resolveInMemoryBtns(taskbarButtons) {
|
158
181
|
const newTaskBarConfig = [...taskbarButtons];
|
159
|
-
if (this.mode === constants.SIMPLE_CRUD_MODE.IN_MEMORY) {
|
182
|
+
if (this.mode === constants$1.SIMPLE_CRUD_MODE.IN_MEMORY) {
|
160
183
|
newTaskBarConfig.splice(1, 1);
|
161
184
|
}
|
162
185
|
return newTaskBarConfig;
|
@@ -173,15 +196,15 @@ const SnkSimpleCrud = class {
|
|
173
196
|
actionClickListener(evt) {
|
174
197
|
const act = evt.detail;
|
175
198
|
if (act === taskbarElements.TaskbarElement.GRID_MODE) {
|
176
|
-
this.goToView(constants.VIEW_MODE.GRID);
|
199
|
+
this.goToView(constants$1.VIEW_MODE.GRID);
|
177
200
|
}
|
178
201
|
else if (act === taskbarElements.TaskbarElement.FORM_MODE) {
|
179
|
-
this.goToView(constants.VIEW_MODE.FORM);
|
202
|
+
this.goToView(constants$1.VIEW_MODE.FORM);
|
180
203
|
}
|
181
204
|
evt.stopPropagation();
|
182
205
|
}
|
183
206
|
onModeChange() {
|
184
|
-
if (this.mode == constants.SIMPLE_CRUD_MODE.IN_MEMORY) {
|
207
|
+
if (this.mode == constants$1.SIMPLE_CRUD_MODE.IN_MEMORY) {
|
185
208
|
this.initInMemoryDataUnit();
|
186
209
|
}
|
187
210
|
}
|
@@ -196,6 +219,12 @@ const SnkSimpleCrud = class {
|
|
196
219
|
componentWillLoad() {
|
197
220
|
this.processMetadata();
|
198
221
|
this.onModeChange();
|
222
|
+
this.configDatasource();
|
223
|
+
}
|
224
|
+
configDatasource() {
|
225
|
+
const application = core.ApplicationContext.getContextValue("__SNK__APPLICATION__");
|
226
|
+
this._multiSelectionListDataSource.setApplication(application);
|
227
|
+
this._multiSelectionListDataSource.setDataUnit(this.dataUnit);
|
199
228
|
}
|
200
229
|
getTaskBarId() {
|
201
230
|
var _a, _b, _c;
|
@@ -205,9 +234,9 @@ const SnkSimpleCrud = class {
|
|
205
234
|
if (((_b = this.dataState) === null || _b === void 0 ? void 0 : _b.selectionInfo) &&
|
206
235
|
!this.dataState.selectionInfo.isAllRecords() &&
|
207
236
|
((_c = this.dataState.selectionInfo.records) === null || _c === void 0 ? void 0 : _c.length) > 0) {
|
208
|
-
return this._currentViewMode === constants.VIEW_MODE.GRID ? "snkSimpleCrudTaskbar.grid_selected" : "snkSimpleCrudTaskbar.form_selected";
|
237
|
+
return this._currentViewMode === constants$1.VIEW_MODE.GRID ? "snkSimpleCrudTaskbar.grid_selected" : "snkSimpleCrudTaskbar.form_selected";
|
209
238
|
}
|
210
|
-
return this._currentViewMode === constants.VIEW_MODE.GRID ? "snkSimpleCrudTaskbar.grid_regular" : "snkSimpleCrudTaskbar.form_regular";
|
239
|
+
return this._currentViewMode === constants$1.VIEW_MODE.GRID ? "snkSimpleCrudTaskbar.grid_regular" : "snkSimpleCrudTaskbar.form_regular";
|
211
240
|
}
|
212
241
|
initInMemoryDataUnit() {
|
213
242
|
this._inMemoryLoader = new InMemoryLoader(this._metadata);
|
@@ -281,7 +310,7 @@ const SnkSimpleCrud = class {
|
|
281
310
|
}
|
282
311
|
render() {
|
283
312
|
var _a;
|
284
|
-
return (index.h("snk-data-unit", { class: "simple-crud__container", dataUnit: this.dataUnit, useCancelConfirm: this.useCancelConfirm, onDataStateChange: evt => this.onDataStateChange(evt), onInsertionMode: () => this.goToView(constants.VIEW_MODE.FORM), onDataUnitReady: (evt) => this.dataUnitReady.emit(evt.detail), onMessagesBuilderUpdated: evt => this.messagesBuilder = evt.detail }, index.h("header", null, index.h("slot", { name: "snkSimpleCrudHeader" })), index.h("section", { class: "ez-flex ez-box ez-box--shadow" }, index.h("snk-taskbar", { class: "ez-box ez-box--shadow ez-padding--medium ez-margin-bottom--large", 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, disabledButtons: this._taskbarProcessor.disabledButtons, customButtons: this._taskbarProcessor.customButtons, slot: "leftButtons", presentationMode: index$1.PresentationMode.SECONDARY }), index.h("ez-view-stack", { class: "ez-flex ez-flex--column", ref: (ref) => this._viewStack = ref, "data-element-id": "simple-crud" }, index.h("stack-item", null, index.h("ez-grid", { dataUnit: this.dataUnit, config: this.gridConfig, "no-header": true, multipleSelection: this.multipleSelection, onEzDoubleClick: () => this.goToView(constants.VIEW_MODE.FORM) }, index.h("div", { slot: "footer" }, index.h("slot", { name: "snkSimpleCrudFooter" })))), index.h("stack-item", null, index.h("ez-form", { dataUnit: this.dataUnit, config: this.formConfig }))))));
|
313
|
+
return (index.h("snk-data-unit", { class: "simple-crud__container", dataUnit: this.dataUnit, useCancelConfirm: this.useCancelConfirm, onDataStateChange: evt => this.onDataStateChange(evt), onInsertionMode: () => this.goToView(constants$1.VIEW_MODE.FORM), onDataUnitReady: (evt) => this.dataUnitReady.emit(evt.detail), onMessagesBuilderUpdated: evt => this.messagesBuilder = evt.detail }, index.h("header", null, index.h("slot", { name: "snkSimpleCrudHeader" })), index.h("section", { class: "ez-flex ez-box ez-box--shadow" }, index.h("snk-taskbar", { class: "ez-box ez-box--shadow ez-padding--medium ez-margin-bottom--large", 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, disabledButtons: this._taskbarProcessor.disabledButtons, customButtons: this._taskbarProcessor.customButtons, slot: "leftButtons", presentationMode: index$1.PresentationMode.SECONDARY }), index.h("ez-view-stack", { class: "ez-flex ez-flex--column", ref: (ref) => this._viewStack = ref, "data-element-id": "simple-crud" }, index.h("stack-item", null, index.h("ez-grid", { dataUnit: this.dataUnit, config: this.gridConfig, "no-header": true, multipleSelection: this.multipleSelection, onEzDoubleClick: () => this.goToView(constants$1.VIEW_MODE.FORM), columnfilterDataSource: this._multiSelectionListDataSource }, index.h("div", { slot: "footer" }, index.h("slot", { name: "snkSimpleCrudFooter" })))), index.h("stack-item", null, index.h("ez-form", { dataUnit: this.dataUnit, config: this.formConfig }))))));
|
285
314
|
}
|
286
315
|
get _element() { return index.getElement(this); }
|
287
316
|
static get watchers() { return {
|
@@ -173,7 +173,7 @@ export class SnkFilterPersonalized {
|
|
173
173
|
buildModeModalFooter() {
|
174
174
|
if (this.presentationMode !== EPresentationMode.MODAL)
|
175
175
|
return;
|
176
|
-
return (h("div", { class: "ez-flex ez-flex--justify-end grow ez-margin-top--medium" }, h("ez-button", { class: "ez-button--tertiary", size: "medium", label: this.getMessage('snkPersonalizedFilter.footerActions.clear'), onClick: this.handleClearFilters.bind(this) }), h("ez-button", { class: "ez-button--secondary", size: "medium", label: this.getMessage('snkPersonalizedFilter.footerActions.create'), onClick: () => this.addFilter.emit() })));
|
176
|
+
return (h("div", { class: "ez-flex ez-flex--justify-end grow ez-margin-top--medium ez-margin-bottom--small" }, h("ez-button", { class: "ez-button--tertiary ez-margin-right--small", size: "medium", label: this.getMessage('snkPersonalizedFilter.footerActions.clear'), onClick: this.handleClearFilters.bind(this) }), h("ez-button", { class: "ez-button--secondary ez-margin-right--small", size: "medium", label: this.getMessage('snkPersonalizedFilter.footerActions.create'), onClick: () => this.addFilter.emit() })));
|
177
177
|
}
|
178
178
|
buildContainerFiltersCreated() {
|
179
179
|
if (this.items.length) {
|
@@ -1,14 +1,16 @@
|
|
1
|
-
import { DataType, ObjectUtils, UserInterface } from '@sankhyalabs/core';
|
1
|
+
import { ApplicationContext, DataType, ObjectUtils, UserInterface } from '@sankhyalabs/core';
|
2
2
|
import { h } from '@stencil/core';
|
3
3
|
import { VIEW_MODE, SIMPLE_CRUD_MODE } from '../../lib/utils/constants';
|
4
4
|
import { TaskbarElement } from '../snk-taskbar/elements/taskbar-elements';
|
5
5
|
import { PresentationMode } from '../../lib';
|
6
6
|
import TaskbarProcessor from '../snk-taskbar/processor/taskbar-processor';
|
7
7
|
import InMemoryLoader from '../../lib/dataUnit/InMemoryLoader';
|
8
|
+
import SnkMultiSelectionListDataSource from '../snk-grid/filtercolumn/SnkMultiSelectionListDataSource';
|
8
9
|
export class SnkSimpleCrud {
|
9
10
|
constructor() {
|
10
11
|
this.REGULAR_DEFAULT_BTNS = ["INSERT", "REFRESH", "PREVIOUS", "NEXT", "DIVIDER"];
|
11
12
|
this.REGULAR_SELECTED_BTNS = ["INSERT", "REFRESH", "PREVIOUS", "NEXT", "DIVIDER", "CLONE", "REMOVE", "DIVIDER"];
|
13
|
+
this._multiSelectionListDataSource = new SnkMultiSelectionListDataSource();
|
12
14
|
this._taskbarProcessor = new TaskbarProcessor({
|
13
15
|
"snkSimpleCrudTaskbar.form_regular": this.resolveInMemoryBtns(this.REGULAR_DEFAULT_BTNS).concat(TaskbarElement.GRID_MODE),
|
14
16
|
"snkSimpleCrudTaskbar.grid_regular": this.resolveInMemoryBtns(this.REGULAR_DEFAULT_BTNS).concat(TaskbarElement.FORM_MODE),
|
@@ -70,6 +72,12 @@ export class SnkSimpleCrud {
|
|
70
72
|
componentWillLoad() {
|
71
73
|
this.processMetadata();
|
72
74
|
this.onModeChange();
|
75
|
+
this.configDatasource();
|
76
|
+
}
|
77
|
+
configDatasource() {
|
78
|
+
const application = ApplicationContext.getContextValue("__SNK__APPLICATION__");
|
79
|
+
this._multiSelectionListDataSource.setApplication(application);
|
80
|
+
this._multiSelectionListDataSource.setDataUnit(this.dataUnit);
|
73
81
|
}
|
74
82
|
getTaskBarId() {
|
75
83
|
var _a, _b, _c;
|
@@ -155,7 +163,7 @@ export class SnkSimpleCrud {
|
|
155
163
|
}
|
156
164
|
render() {
|
157
165
|
var _a;
|
158
|
-
return (h("snk-data-unit", { class: "simple-crud__container", dataUnit: this.dataUnit, useCancelConfirm: this.useCancelConfirm, onDataStateChange: evt => this.onDataStateChange(evt), onInsertionMode: () => this.goToView(VIEW_MODE.FORM), onDataUnitReady: (evt) => this.dataUnitReady.emit(evt.detail), onMessagesBuilderUpdated: evt => this.messagesBuilder = evt.detail }, h("header", null, h("slot", { name: "snkSimpleCrudHeader" })), h("section", { class: "ez-flex ez-box ez-box--shadow" }, h("snk-taskbar", { class: "ez-box ez-box--shadow ez-padding--medium ez-margin-bottom--large", 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, disabledButtons: this._taskbarProcessor.disabledButtons, customButtons: this._taskbarProcessor.customButtons, slot: "leftButtons", presentationMode: PresentationMode.SECONDARY }), h("ez-view-stack", { class: "ez-flex ez-flex--column", ref: (ref) => this._viewStack = ref, "data-element-id": "simple-crud" }, h("stack-item", null, h("ez-grid", { dataUnit: this.dataUnit, config: this.gridConfig, "no-header": true, multipleSelection: this.multipleSelection, onEzDoubleClick: () => this.goToView(VIEW_MODE.FORM) }, h("div", { slot: "footer" }, h("slot", { name: "snkSimpleCrudFooter" })))), h("stack-item", null, h("ez-form", { dataUnit: this.dataUnit, config: this.formConfig }))))));
|
166
|
+
return (h("snk-data-unit", { class: "simple-crud__container", dataUnit: this.dataUnit, useCancelConfirm: this.useCancelConfirm, onDataStateChange: evt => this.onDataStateChange(evt), onInsertionMode: () => this.goToView(VIEW_MODE.FORM), onDataUnitReady: (evt) => this.dataUnitReady.emit(evt.detail), onMessagesBuilderUpdated: evt => this.messagesBuilder = evt.detail }, h("header", null, h("slot", { name: "snkSimpleCrudHeader" })), h("section", { class: "ez-flex ez-box ez-box--shadow" }, h("snk-taskbar", { class: "ez-box ez-box--shadow ez-padding--medium ez-margin-bottom--large", 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, disabledButtons: this._taskbarProcessor.disabledButtons, customButtons: this._taskbarProcessor.customButtons, slot: "leftButtons", presentationMode: PresentationMode.SECONDARY }), h("ez-view-stack", { class: "ez-flex ez-flex--column", ref: (ref) => this._viewStack = ref, "data-element-id": "simple-crud" }, h("stack-item", null, h("ez-grid", { dataUnit: this.dataUnit, config: this.gridConfig, "no-header": true, multipleSelection: this.multipleSelection, onEzDoubleClick: () => this.goToView(VIEW_MODE.FORM), columnfilterDataSource: this._multiSelectionListDataSource }, h("div", { slot: "footer" }, h("slot", { name: "snkSimpleCrudFooter" })))), h("stack-item", null, h("ez-form", { dataUnit: this.dataUnit, config: this.formConfig }))))));
|
159
167
|
}
|
160
168
|
static get is() { return "snk-simple-crud"; }
|
161
169
|
static get encapsulation() { return "scoped"; }
|
@@ -1,11 +1,12 @@
|
|
1
|
-
import { ChangeOperation, DataType, DataUnit, SortMode, StringUtils } from
|
1
|
+
import { ChangeOperation, DataType, DataUnit, SortMode, StringUtils, } from '@sankhyalabs/core';
|
2
|
+
import { DISTINCT_FILTER_NAME_PREFIX } from "@sankhyalabs/ezui/dist/collection/utils/constants";
|
2
3
|
export default class InMemoryLoader {
|
3
4
|
constructor(metadata, records) {
|
4
5
|
this.records = records || [];
|
5
6
|
this.metadata = metadata;
|
6
7
|
this._dataUnit = new DataUnit("InMemoryDataUnit");
|
7
8
|
this._dataUnit.metadataLoader = () => this.metadaLoader();
|
8
|
-
this._dataUnit.dataLoader = (
|
9
|
+
this._dataUnit.dataLoader = (dataUnit, request) => this.dataLoader(dataUnit, request);
|
9
10
|
this._dataUnit.saveLoader = (_dataUnit, changes) => this.saveLoader(_dataUnit, changes);
|
10
11
|
this._dataUnit.removeLoader = (_dataUnit, recordIds) => this.removeLoader(_dataUnit, recordIds);
|
11
12
|
this.dataUnit.loadMetadata().then(() => this.dataUnit.loadData());
|
@@ -42,8 +43,9 @@ export default class InMemoryLoader {
|
|
42
43
|
metadaLoader() {
|
43
44
|
return Promise.resolve(this._metadata);
|
44
45
|
}
|
45
|
-
dataLoader(
|
46
|
-
|
46
|
+
dataLoader(dataUnit, request) {
|
47
|
+
const filters = this.getColumnFilters(dataUnit);
|
48
|
+
let records = this.applyFilters(filters);
|
47
49
|
if (request.sort) {
|
48
50
|
request.sort.forEach(sort => {
|
49
51
|
records = records.sort((recordA, recordB) => {
|
@@ -56,6 +58,25 @@ export default class InMemoryLoader {
|
|
56
58
|
}
|
57
59
|
return Promise.resolve({ records: records });
|
58
60
|
}
|
61
|
+
applyFilters(filters) {
|
62
|
+
let records = [...this._records];
|
63
|
+
filters.forEach(filter => {
|
64
|
+
records = records.filter(record => { var _a; return filter.values.includes((_a = record[filter.column]) === null || _a === void 0 ? void 0 : _a.toString()); });
|
65
|
+
});
|
66
|
+
return records;
|
67
|
+
}
|
68
|
+
getColumnFilters(dataUnit) {
|
69
|
+
var _a, _b;
|
70
|
+
const allFilters = (_a = dataUnit.getFilters()) !== null && _a !== void 0 ? _a : [];
|
71
|
+
const columnFilters = (_b = allFilters.filter(filter => { var _a; return (_a = filter.name) === null || _a === void 0 ? void 0 : _a.includes(DISTINCT_FILTER_NAME_PREFIX); })) !== null && _b !== void 0 ? _b : [];
|
72
|
+
return columnFilters.map(filter => {
|
73
|
+
var _a, _b;
|
74
|
+
return {
|
75
|
+
column: (_b = (_a = filter.name) === null || _a === void 0 ? void 0 : _a.replace(DISTINCT_FILTER_NAME_PREFIX, "")) !== null && _b !== void 0 ? _b : "",
|
76
|
+
values: filter.params.map(param => param.value),
|
77
|
+
};
|
78
|
+
});
|
79
|
+
}
|
59
80
|
getSortFn(type) {
|
60
81
|
switch (type) {
|
61
82
|
case DataType.NUMBER:
|
@@ -1,3 +1,5 @@
|
|
1
|
+
import { UserInterface, DateUtils } from '@sankhyalabs/core';
|
2
|
+
|
1
3
|
class TaskbarProcessor {
|
2
4
|
constructor(defaultButtons) {
|
3
5
|
this._defaultButtons = defaultButtons;
|
@@ -44,4 +46,33 @@ class TaskbarProcessor {
|
|
44
46
|
}
|
45
47
|
}
|
46
48
|
|
47
|
-
|
49
|
+
class SnkMultiSelectionListDataSource {
|
50
|
+
setDataUnit(dataUnit) {
|
51
|
+
this._dataUnit = dataUnit;
|
52
|
+
}
|
53
|
+
setApplication(application) {
|
54
|
+
this._application = application;
|
55
|
+
}
|
56
|
+
formatLabel(fieldName, value) {
|
57
|
+
const { userInterface } = this._dataUnit.getField(fieldName);
|
58
|
+
if (userInterface === UserInterface.DATETIME) {
|
59
|
+
return DateUtils.formatDate(this._dataUnit.valueFromString(fieldName, value));
|
60
|
+
}
|
61
|
+
return String(this._dataUnit.getFormattedValue(fieldName, value));
|
62
|
+
}
|
63
|
+
fetchData(filterTerm, fieldName) {
|
64
|
+
return new Promise(resolve => {
|
65
|
+
this._application.executeSelectDistinct(this._dataUnit, fieldName, filterTerm).then(result => {
|
66
|
+
resolve(result.map(item => {
|
67
|
+
const field = this._dataUnit.getField(fieldName);
|
68
|
+
if (field.userInterface === UserInterface.SEARCH) {
|
69
|
+
return Object.assign(Object.assign({}, JSON.parse(item)), { check: true });
|
70
|
+
}
|
71
|
+
return { value: item, label: this.formatLabel(fieldName, item), check: true };
|
72
|
+
}));
|
73
|
+
});
|
74
|
+
});
|
75
|
+
}
|
76
|
+
}
|
77
|
+
|
78
|
+
export { SnkMultiSelectionListDataSource as S, TaskbarProcessor as T };
|
@@ -7,7 +7,7 @@ import { ElementIDUtils } from '@sankhyalabs/core';
|
|
7
7
|
import { P as PresentationMode } from './index2.js';
|
8
8
|
import { T as TaskbarElement, d as defineCustomElement$2 } from './snk-taskbar2.js';
|
9
9
|
import { V as VIEW_MODE } from './constants.js';
|
10
|
-
import { T as TaskbarProcessor } from './
|
10
|
+
import { T as TaskbarProcessor } from './SnkMultiSelectionListDataSource.js';
|
11
11
|
import { d as defineCustomElement$r } from './snk-actions-button2.js';
|
12
12
|
import { d as defineCustomElement$q } from './snk-attach2.js';
|
13
13
|
import { d as defineCustomElement$p } from './snk-config-options2.js';
|
@@ -1,10 +1,10 @@
|
|
1
1
|
import { proxyCustomElement, HTMLElement, createEvent, h } from '@stencil/core/internal/client';
|
2
|
-
import {
|
3
|
-
import { UserInterface
|
2
|
+
import { ElementIDUtils, ApplicationContext, DataType } from '@sankhyalabs/core';
|
3
|
+
import { UserInterface } from '@sankhyalabs/core/dist/dataunit/metadata/UnitMetadata';
|
4
4
|
import { d as defineCustomElement$1, T as TaskbarElement } from './snk-taskbar2.js';
|
5
5
|
import { C as ConfigStorage } from './ConfigStorage.js';
|
6
6
|
import { P as PresentationMode } from './index2.js';
|
7
|
-
import { T as TaskbarProcessor } from './
|
7
|
+
import { S as SnkMultiSelectionListDataSource, T as TaskbarProcessor } from './SnkMultiSelectionListDataSource.js';
|
8
8
|
import { s as store } from './index3.js';
|
9
9
|
import { SelectionMode } from '@sankhyalabs/core/dist/dataunit/DataUnit';
|
10
10
|
import { d as defineCustomElement$f } from './snk-actions-button2.js';
|
@@ -22,35 +22,6 @@ import { d as defineCustomElement$4 } from './snk-personalized-filter2.js';
|
|
22
22
|
import { d as defineCustomElement$3 } from './snk-select-box2.js';
|
23
23
|
import { d as defineCustomElement$2 } from './snk-simple-bar2.js';
|
24
24
|
|
25
|
-
class SnkMultiSelectionListDataSource {
|
26
|
-
setDataUnit(dataUnit) {
|
27
|
-
this._dataUnit = dataUnit;
|
28
|
-
}
|
29
|
-
setApplication(application) {
|
30
|
-
this._application = application;
|
31
|
-
}
|
32
|
-
formatLabel(fieldName, value) {
|
33
|
-
const { userInterface } = this._dataUnit.getField(fieldName);
|
34
|
-
if (userInterface === UserInterface.DATETIME) {
|
35
|
-
return DateUtils.formatDate(this._dataUnit.valueFromString(fieldName, value));
|
36
|
-
}
|
37
|
-
return String(this._dataUnit.getFormattedValue(fieldName, value));
|
38
|
-
}
|
39
|
-
fetchData(filterTerm, fieldName) {
|
40
|
-
return new Promise(resolve => {
|
41
|
-
this._application.executeSelectDistinct(this._dataUnit, fieldName, filterTerm).then(result => {
|
42
|
-
resolve(result.map(item => {
|
43
|
-
const field = this._dataUnit.getField(fieldName);
|
44
|
-
if (field.userInterface === UserInterface.SEARCH) {
|
45
|
-
return Object.assign(Object.assign({}, JSON.parse(item)), { check: true });
|
46
|
-
}
|
47
|
-
return { value: item, label: this.formatLabel(fieldName, item), check: true };
|
48
|
-
}));
|
49
|
-
});
|
50
|
-
});
|
51
|
-
}
|
52
|
-
}
|
53
|
-
|
54
25
|
const snkGridCss = ".snk-grid__container.sc-snk-grid{display:flex;height:100%;width:100%}.snk-grid__header.sc-snk-grid{display:flex;flex-wrap:nowrap;width:100%}.snk-grid__filter-bar.sc-snk-grid{width:100%}.snk-grid__header-divider.sc-snk-grid{margin-bottom:var(--space--medium)}.snk-grid__table.sc-snk-grid{min-height:300px}.snk-grid-container__without-shadow.sc-snk-grid{--ezgrid__container--shadow:unset}";
|
55
26
|
|
56
27
|
const SnkGrid = /*@__PURE__*/ proxyCustomElement(class extends HTMLElement {
|
@@ -185,7 +156,7 @@ const SnkGrid = /*@__PURE__*/ proxyCustomElement(class extends HTMLElement {
|
|
185
156
|
id: `${mergedFrom ? (mergedFrom + ".") : ""}${descriptionField}`,
|
186
157
|
width: 200,
|
187
158
|
type: DataType.TEXT,
|
188
|
-
userInterface: UserInterface
|
159
|
+
userInterface: UserInterface.LONGTEXT
|
189
160
|
};
|
190
161
|
columnsMetadata.push(descriptionColumn);
|
191
162
|
}
|
@@ -182,7 +182,7 @@ const SnkFilterPersonalized = /*@__PURE__*/ proxyCustomElement(class extends HTM
|
|
182
182
|
buildModeModalFooter() {
|
183
183
|
if (this.presentationMode !== EPresentationMode.MODAL)
|
184
184
|
return;
|
185
|
-
return (h("div", { class: "ez-flex ez-flex--justify-end grow ez-margin-top--medium" }, h("ez-button", { class: "ez-button--tertiary", size: "medium", label: this.getMessage('snkPersonalizedFilter.footerActions.clear'), onClick: this.handleClearFilters.bind(this) }), h("ez-button", { class: "ez-button--secondary", size: "medium", label: this.getMessage('snkPersonalizedFilter.footerActions.create'), onClick: () => this.addFilter.emit() })));
|
185
|
+
return (h("div", { class: "ez-flex ez-flex--justify-end grow ez-margin-top--medium ez-margin-bottom--small" }, h("ez-button", { class: "ez-button--tertiary ez-margin-right--small", size: "medium", label: this.getMessage('snkPersonalizedFilter.footerActions.clear'), onClick: this.handleClearFilters.bind(this) }), h("ez-button", { class: "ez-button--secondary ez-margin-right--small", size: "medium", label: this.getMessage('snkPersonalizedFilter.footerActions.create'), onClick: () => this.addFilter.emit() })));
|
186
186
|
}
|
187
187
|
buildContainerFiltersCreated() {
|
188
188
|
if (this.items.length) {
|
@@ -1,11 +1,12 @@
|
|
1
1
|
import { proxyCustomElement, HTMLElement, createEvent, h } from '@stencil/core/internal/client';
|
2
|
-
import { DataUnit, StringUtils, SortMode, DataType, ChangeOperation, ObjectUtils, UserInterface } from '@sankhyalabs/core';
|
2
|
+
import { DataUnit, StringUtils, SortMode, DataType, ChangeOperation, ObjectUtils, ApplicationContext, UserInterface } from '@sankhyalabs/core';
|
3
3
|
import { V as VIEW_MODE, S as SIMPLE_CRUD_MODE } from './constants.js';
|
4
4
|
import { T as TaskbarElement, d as defineCustomElement$1 } from './snk-taskbar2.js';
|
5
5
|
import './DataFetcher.js';
|
6
6
|
import './pesquisa-fetcher.js';
|
7
7
|
import { P as PresentationMode } from './index2.js';
|
8
|
-
import { T as TaskbarProcessor } from './
|
8
|
+
import { S as SnkMultiSelectionListDataSource, T as TaskbarProcessor } from './SnkMultiSelectionListDataSource.js';
|
9
|
+
import { DISTINCT_FILTER_NAME_PREFIX } from '@sankhyalabs/ezui/dist/collection/utils/constants';
|
9
10
|
import { d as defineCustomElement$5 } from './snk-actions-button2.js';
|
10
11
|
import { d as defineCustomElement$4 } from './snk-data-exporter2.js';
|
11
12
|
import { d as defineCustomElement$3 } from './snk-data-unit2.js';
|
@@ -17,7 +18,7 @@ class InMemoryLoader {
|
|
17
18
|
this.metadata = metadata;
|
18
19
|
this._dataUnit = new DataUnit("InMemoryDataUnit");
|
19
20
|
this._dataUnit.metadataLoader = () => this.metadaLoader();
|
20
|
-
this._dataUnit.dataLoader = (
|
21
|
+
this._dataUnit.dataLoader = (dataUnit, request) => this.dataLoader(dataUnit, request);
|
21
22
|
this._dataUnit.saveLoader = (_dataUnit, changes) => this.saveLoader(_dataUnit, changes);
|
22
23
|
this._dataUnit.removeLoader = (_dataUnit, recordIds) => this.removeLoader(_dataUnit, recordIds);
|
23
24
|
this.dataUnit.loadMetadata().then(() => this.dataUnit.loadData());
|
@@ -54,8 +55,9 @@ class InMemoryLoader {
|
|
54
55
|
metadaLoader() {
|
55
56
|
return Promise.resolve(this._metadata);
|
56
57
|
}
|
57
|
-
dataLoader(
|
58
|
-
|
58
|
+
dataLoader(dataUnit, request) {
|
59
|
+
const filters = this.getColumnFilters(dataUnit);
|
60
|
+
let records = this.applyFilters(filters);
|
59
61
|
if (request.sort) {
|
60
62
|
request.sort.forEach(sort => {
|
61
63
|
records = records.sort((recordA, recordB) => {
|
@@ -68,6 +70,25 @@ class InMemoryLoader {
|
|
68
70
|
}
|
69
71
|
return Promise.resolve({ records: records });
|
70
72
|
}
|
73
|
+
applyFilters(filters) {
|
74
|
+
let records = [...this._records];
|
75
|
+
filters.forEach(filter => {
|
76
|
+
records = records.filter(record => { var _a; return filter.values.includes((_a = record[filter.column]) === null || _a === void 0 ? void 0 : _a.toString()); });
|
77
|
+
});
|
78
|
+
return records;
|
79
|
+
}
|
80
|
+
getColumnFilters(dataUnit) {
|
81
|
+
var _a, _b;
|
82
|
+
const allFilters = (_a = dataUnit.getFilters()) !== null && _a !== void 0 ? _a : [];
|
83
|
+
const columnFilters = (_b = allFilters.filter(filter => { var _a; return (_a = filter.name) === null || _a === void 0 ? void 0 : _a.includes(DISTINCT_FILTER_NAME_PREFIX); })) !== null && _b !== void 0 ? _b : [];
|
84
|
+
return columnFilters.map(filter => {
|
85
|
+
var _a, _b;
|
86
|
+
return {
|
87
|
+
column: (_b = (_a = filter.name) === null || _a === void 0 ? void 0 : _a.replace(DISTINCT_FILTER_NAME_PREFIX, "")) !== null && _b !== void 0 ? _b : "",
|
88
|
+
values: filter.params.map(param => param.value),
|
89
|
+
};
|
90
|
+
});
|
91
|
+
}
|
71
92
|
getSortFn(type) {
|
72
93
|
switch (type) {
|
73
94
|
case DataType.NUMBER:
|
@@ -134,6 +155,7 @@ const SnkSimpleCrud = /*@__PURE__*/ proxyCustomElement(class extends HTMLElement
|
|
134
155
|
this.actionClick = createEvent(this, "actionClick", 7);
|
135
156
|
this.REGULAR_DEFAULT_BTNS = ["INSERT", "REFRESH", "PREVIOUS", "NEXT", "DIVIDER"];
|
136
157
|
this.REGULAR_SELECTED_BTNS = ["INSERT", "REFRESH", "PREVIOUS", "NEXT", "DIVIDER", "CLONE", "REMOVE", "DIVIDER"];
|
158
|
+
this._multiSelectionListDataSource = new SnkMultiSelectionListDataSource();
|
137
159
|
this._taskbarProcessor = new TaskbarProcessor({
|
138
160
|
"snkSimpleCrudTaskbar.form_regular": this.resolveInMemoryBtns(this.REGULAR_DEFAULT_BTNS).concat(TaskbarElement.GRID_MODE),
|
139
161
|
"snkSimpleCrudTaskbar.grid_regular": this.resolveInMemoryBtns(this.REGULAR_DEFAULT_BTNS).concat(TaskbarElement.FORM_MODE),
|
@@ -195,6 +217,12 @@ const SnkSimpleCrud = /*@__PURE__*/ proxyCustomElement(class extends HTMLElement
|
|
195
217
|
componentWillLoad() {
|
196
218
|
this.processMetadata();
|
197
219
|
this.onModeChange();
|
220
|
+
this.configDatasource();
|
221
|
+
}
|
222
|
+
configDatasource() {
|
223
|
+
const application = ApplicationContext.getContextValue("__SNK__APPLICATION__");
|
224
|
+
this._multiSelectionListDataSource.setApplication(application);
|
225
|
+
this._multiSelectionListDataSource.setDataUnit(this.dataUnit);
|
198
226
|
}
|
199
227
|
getTaskBarId() {
|
200
228
|
var _a, _b, _c;
|
@@ -280,7 +308,7 @@ const SnkSimpleCrud = /*@__PURE__*/ proxyCustomElement(class extends HTMLElement
|
|
280
308
|
}
|
281
309
|
render() {
|
282
310
|
var _a;
|
283
|
-
return (h("snk-data-unit", { class: "simple-crud__container", dataUnit: this.dataUnit, useCancelConfirm: this.useCancelConfirm, onDataStateChange: evt => this.onDataStateChange(evt), onInsertionMode: () => this.goToView(VIEW_MODE.FORM), onDataUnitReady: (evt) => this.dataUnitReady.emit(evt.detail), onMessagesBuilderUpdated: evt => this.messagesBuilder = evt.detail }, h("header", null, h("slot", { name: "snkSimpleCrudHeader" })), h("section", { class: "ez-flex ez-box ez-box--shadow" }, h("snk-taskbar", { class: "ez-box ez-box--shadow ez-padding--medium ez-margin-bottom--large", 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, disabledButtons: this._taskbarProcessor.disabledButtons, customButtons: this._taskbarProcessor.customButtons, slot: "leftButtons", presentationMode: PresentationMode.SECONDARY }), h("ez-view-stack", { class: "ez-flex ez-flex--column", ref: (ref) => this._viewStack = ref, "data-element-id": "simple-crud" }, h("stack-item", null, h("ez-grid", { dataUnit: this.dataUnit, config: this.gridConfig, "no-header": true, multipleSelection: this.multipleSelection, onEzDoubleClick: () => this.goToView(VIEW_MODE.FORM) }, h("div", { slot: "footer" }, h("slot", { name: "snkSimpleCrudFooter" })))), h("stack-item", null, h("ez-form", { dataUnit: this.dataUnit, config: this.formConfig }))))));
|
311
|
+
return (h("snk-data-unit", { class: "simple-crud__container", dataUnit: this.dataUnit, useCancelConfirm: this.useCancelConfirm, onDataStateChange: evt => this.onDataStateChange(evt), onInsertionMode: () => this.goToView(VIEW_MODE.FORM), onDataUnitReady: (evt) => this.dataUnitReady.emit(evt.detail), onMessagesBuilderUpdated: evt => this.messagesBuilder = evt.detail }, h("header", null, h("slot", { name: "snkSimpleCrudHeader" })), h("section", { class: "ez-flex ez-box ez-box--shadow" }, h("snk-taskbar", { class: "ez-box ez-box--shadow ez-padding--medium ez-margin-bottom--large", 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, disabledButtons: this._taskbarProcessor.disabledButtons, customButtons: this._taskbarProcessor.customButtons, slot: "leftButtons", presentationMode: PresentationMode.SECONDARY }), h("ez-view-stack", { class: "ez-flex ez-flex--column", ref: (ref) => this._viewStack = ref, "data-element-id": "simple-crud" }, h("stack-item", null, h("ez-grid", { dataUnit: this.dataUnit, config: this.gridConfig, "no-header": true, multipleSelection: this.multipleSelection, onEzDoubleClick: () => this.goToView(VIEW_MODE.FORM), columnfilterDataSource: this._multiSelectionListDataSource }, h("div", { slot: "footer" }, h("slot", { name: "snkSimpleCrudFooter" })))), h("stack-item", null, h("ez-form", { dataUnit: this.dataUnit, config: this.formConfig }))))));
|
284
312
|
}
|
285
313
|
get _element() { return this; }
|
286
314
|
static get watchers() { return {
|
@@ -0,0 +1,32 @@
|
|
1
|
+
import { UserInterface, DateUtils } from '@sankhyalabs/core';
|
2
|
+
|
3
|
+
class SnkMultiSelectionListDataSource {
|
4
|
+
setDataUnit(dataUnit) {
|
5
|
+
this._dataUnit = dataUnit;
|
6
|
+
}
|
7
|
+
setApplication(application) {
|
8
|
+
this._application = application;
|
9
|
+
}
|
10
|
+
formatLabel(fieldName, value) {
|
11
|
+
const { userInterface } = this._dataUnit.getField(fieldName);
|
12
|
+
if (userInterface === UserInterface.DATETIME) {
|
13
|
+
return DateUtils.formatDate(this._dataUnit.valueFromString(fieldName, value));
|
14
|
+
}
|
15
|
+
return String(this._dataUnit.getFormattedValue(fieldName, value));
|
16
|
+
}
|
17
|
+
fetchData(filterTerm, fieldName) {
|
18
|
+
return new Promise(resolve => {
|
19
|
+
this._application.executeSelectDistinct(this._dataUnit, fieldName, filterTerm).then(result => {
|
20
|
+
resolve(result.map(item => {
|
21
|
+
const field = this._dataUnit.getField(fieldName);
|
22
|
+
if (field.userInterface === UserInterface.SEARCH) {
|
23
|
+
return Object.assign(Object.assign({}, JSON.parse(item)), { check: true });
|
24
|
+
}
|
25
|
+
return { value: item, label: this.formatLabel(fieldName, item), check: true };
|
26
|
+
}));
|
27
|
+
});
|
28
|
+
});
|
29
|
+
}
|
30
|
+
}
|
31
|
+
|
32
|
+
export { SnkMultiSelectionListDataSource as S };
|
@@ -1,11 +1,12 @@
|
|
1
1
|
import { r as registerInstance, c as createEvent, h, g as getElement } from './index-a7d3d3f1.js';
|
2
|
-
import {
|
3
|
-
import { UserInterface
|
2
|
+
import { ElementIDUtils, ApplicationContext, DataType } from '@sankhyalabs/core';
|
3
|
+
import { UserInterface } from '@sankhyalabs/core/dist/dataunit/metadata/UnitMetadata';
|
4
4
|
import { T as TaskbarElement } from './taskbar-elements-2c761819.js';
|
5
5
|
import { C as ConfigStorage } from './ConfigStorage-9f4d2e67.js';
|
6
6
|
import { P as PresentationMode } from './index-1564817d.js';
|
7
7
|
import { T as TaskbarProcessor } from './taskbar-processor-94402e6e.js';
|
8
8
|
import { s as store } from './index-bdf75557.js';
|
9
|
+
import { S as SnkMultiSelectionListDataSource } from './SnkMultiSelectionListDataSource-892f37f9.js';
|
9
10
|
import { SelectionMode } from '@sankhyalabs/core/dist/dataunit/DataUnit';
|
10
11
|
import './form-config-fetcher-cac8cd96.js';
|
11
12
|
import './DataFetcher-b3d8b2d5.js';
|
@@ -14,35 +15,6 @@ import './resource-fetcher-02642924.js';
|
|
14
15
|
import './filter-bar-config-fetcher-bd2070a3.js';
|
15
16
|
import './filter-item-type.enum-5028ed3f.js';
|
16
17
|
|
17
|
-
class SnkMultiSelectionListDataSource {
|
18
|
-
setDataUnit(dataUnit) {
|
19
|
-
this._dataUnit = dataUnit;
|
20
|
-
}
|
21
|
-
setApplication(application) {
|
22
|
-
this._application = application;
|
23
|
-
}
|
24
|
-
formatLabel(fieldName, value) {
|
25
|
-
const { userInterface } = this._dataUnit.getField(fieldName);
|
26
|
-
if (userInterface === UserInterface.DATETIME) {
|
27
|
-
return DateUtils.formatDate(this._dataUnit.valueFromString(fieldName, value));
|
28
|
-
}
|
29
|
-
return String(this._dataUnit.getFormattedValue(fieldName, value));
|
30
|
-
}
|
31
|
-
fetchData(filterTerm, fieldName) {
|
32
|
-
return new Promise(resolve => {
|
33
|
-
this._application.executeSelectDistinct(this._dataUnit, fieldName, filterTerm).then(result => {
|
34
|
-
resolve(result.map(item => {
|
35
|
-
const field = this._dataUnit.getField(fieldName);
|
36
|
-
if (field.userInterface === UserInterface.SEARCH) {
|
37
|
-
return Object.assign(Object.assign({}, JSON.parse(item)), { check: true });
|
38
|
-
}
|
39
|
-
return { value: item, label: this.formatLabel(fieldName, item), check: true };
|
40
|
-
}));
|
41
|
-
});
|
42
|
-
});
|
43
|
-
}
|
44
|
-
}
|
45
|
-
|
46
18
|
const snkGridCss = ".snk-grid__container.sc-snk-grid{display:flex;height:100%;width:100%}.snk-grid__header.sc-snk-grid{display:flex;flex-wrap:nowrap;width:100%}.snk-grid__filter-bar.sc-snk-grid{width:100%}.snk-grid__header-divider.sc-snk-grid{margin-bottom:var(--space--medium)}.snk-grid__table.sc-snk-grid{min-height:300px}.snk-grid-container__without-shadow.sc-snk-grid{--ezgrid__container--shadow:unset}";
|
47
19
|
|
48
20
|
const SnkGrid = class {
|
@@ -176,7 +148,7 @@ const SnkGrid = class {
|
|
176
148
|
id: `${mergedFrom ? (mergedFrom + ".") : ""}${descriptionField}`,
|
177
149
|
width: 200,
|
178
150
|
type: DataType.TEXT,
|
179
|
-
userInterface: UserInterface
|
151
|
+
userInterface: UserInterface.LONGTEXT
|
180
152
|
};
|
181
153
|
columnsMetadata.push(descriptionColumn);
|
182
154
|
}
|
@@ -181,7 +181,7 @@ const SnkFilterPersonalized = class {
|
|
181
181
|
buildModeModalFooter() {
|
182
182
|
if (this.presentationMode !== EPresentationMode.MODAL)
|
183
183
|
return;
|
184
|
-
return (h("div", { class: "ez-flex ez-flex--justify-end grow ez-margin-top--medium" }, h("ez-button", { class: "ez-button--tertiary", size: "medium", label: this.getMessage('snkPersonalizedFilter.footerActions.clear'), onClick: this.handleClearFilters.bind(this) }), h("ez-button", { class: "ez-button--secondary", size: "medium", label: this.getMessage('snkPersonalizedFilter.footerActions.create'), onClick: () => this.addFilter.emit() })));
|
184
|
+
return (h("div", { class: "ez-flex ez-flex--justify-end grow ez-margin-top--medium ez-margin-bottom--small" }, h("ez-button", { class: "ez-button--tertiary ez-margin-right--small", size: "medium", label: this.getMessage('snkPersonalizedFilter.footerActions.clear'), onClick: this.handleClearFilters.bind(this) }), h("ez-button", { class: "ez-button--secondary ez-margin-right--small", size: "medium", label: this.getMessage('snkPersonalizedFilter.footerActions.create'), onClick: () => this.addFilter.emit() })));
|
185
185
|
}
|
186
186
|
buildContainerFiltersCreated() {
|
187
187
|
if (this.items.length) {
|
@@ -1,11 +1,13 @@
|
|
1
1
|
import { r as registerInstance, c as createEvent, h, g as getElement } from './index-a7d3d3f1.js';
|
2
|
-
import { DataUnit, StringUtils, SortMode, DataType, ChangeOperation, ObjectUtils, UserInterface } from '@sankhyalabs/core';
|
2
|
+
import { DataUnit, StringUtils, SortMode, DataType, ChangeOperation, ObjectUtils, ApplicationContext, UserInterface } from '@sankhyalabs/core';
|
3
3
|
import { c as VIEW_MODE, S as SIMPLE_CRUD_MODE } from './constants-3644f1b6.js';
|
4
4
|
import { T as TaskbarElement } from './taskbar-elements-2c761819.js';
|
5
5
|
import './DataFetcher-b3d8b2d5.js';
|
6
6
|
import './pesquisa-fetcher-bd6af0e3.js';
|
7
7
|
import { P as PresentationMode } from './index-1564817d.js';
|
8
8
|
import { T as TaskbarProcessor } from './taskbar-processor-94402e6e.js';
|
9
|
+
import { DISTINCT_FILTER_NAME_PREFIX } from '@sankhyalabs/ezui/dist/collection/utils/constants';
|
10
|
+
import { S as SnkMultiSelectionListDataSource } from './SnkMultiSelectionListDataSource-892f37f9.js';
|
9
11
|
import './index-bdf75557.js';
|
10
12
|
import './_commonjsHelpers-9943807e.js';
|
11
13
|
|
@@ -15,7 +17,7 @@ class InMemoryLoader {
|
|
15
17
|
this.metadata = metadata;
|
16
18
|
this._dataUnit = new DataUnit("InMemoryDataUnit");
|
17
19
|
this._dataUnit.metadataLoader = () => this.metadaLoader();
|
18
|
-
this._dataUnit.dataLoader = (
|
20
|
+
this._dataUnit.dataLoader = (dataUnit, request) => this.dataLoader(dataUnit, request);
|
19
21
|
this._dataUnit.saveLoader = (_dataUnit, changes) => this.saveLoader(_dataUnit, changes);
|
20
22
|
this._dataUnit.removeLoader = (_dataUnit, recordIds) => this.removeLoader(_dataUnit, recordIds);
|
21
23
|
this.dataUnit.loadMetadata().then(() => this.dataUnit.loadData());
|
@@ -52,8 +54,9 @@ class InMemoryLoader {
|
|
52
54
|
metadaLoader() {
|
53
55
|
return Promise.resolve(this._metadata);
|
54
56
|
}
|
55
|
-
dataLoader(
|
56
|
-
|
57
|
+
dataLoader(dataUnit, request) {
|
58
|
+
const filters = this.getColumnFilters(dataUnit);
|
59
|
+
let records = this.applyFilters(filters);
|
57
60
|
if (request.sort) {
|
58
61
|
request.sort.forEach(sort => {
|
59
62
|
records = records.sort((recordA, recordB) => {
|
@@ -66,6 +69,25 @@ class InMemoryLoader {
|
|
66
69
|
}
|
67
70
|
return Promise.resolve({ records: records });
|
68
71
|
}
|
72
|
+
applyFilters(filters) {
|
73
|
+
let records = [...this._records];
|
74
|
+
filters.forEach(filter => {
|
75
|
+
records = records.filter(record => { var _a; return filter.values.includes((_a = record[filter.column]) === null || _a === void 0 ? void 0 : _a.toString()); });
|
76
|
+
});
|
77
|
+
return records;
|
78
|
+
}
|
79
|
+
getColumnFilters(dataUnit) {
|
80
|
+
var _a, _b;
|
81
|
+
const allFilters = (_a = dataUnit.getFilters()) !== null && _a !== void 0 ? _a : [];
|
82
|
+
const columnFilters = (_b = allFilters.filter(filter => { var _a; return (_a = filter.name) === null || _a === void 0 ? void 0 : _a.includes(DISTINCT_FILTER_NAME_PREFIX); })) !== null && _b !== void 0 ? _b : [];
|
83
|
+
return columnFilters.map(filter => {
|
84
|
+
var _a, _b;
|
85
|
+
return {
|
86
|
+
column: (_b = (_a = filter.name) === null || _a === void 0 ? void 0 : _a.replace(DISTINCT_FILTER_NAME_PREFIX, "")) !== null && _b !== void 0 ? _b : "",
|
87
|
+
values: filter.params.map(param => param.value),
|
88
|
+
};
|
89
|
+
});
|
90
|
+
}
|
69
91
|
getSortFn(type) {
|
70
92
|
switch (type) {
|
71
93
|
case DataType.NUMBER:
|
@@ -131,6 +153,7 @@ const SnkSimpleCrud = class {
|
|
131
153
|
this.actionClick = createEvent(this, "actionClick", 7);
|
132
154
|
this.REGULAR_DEFAULT_BTNS = ["INSERT", "REFRESH", "PREVIOUS", "NEXT", "DIVIDER"];
|
133
155
|
this.REGULAR_SELECTED_BTNS = ["INSERT", "REFRESH", "PREVIOUS", "NEXT", "DIVIDER", "CLONE", "REMOVE", "DIVIDER"];
|
156
|
+
this._multiSelectionListDataSource = new SnkMultiSelectionListDataSource();
|
134
157
|
this._taskbarProcessor = new TaskbarProcessor({
|
135
158
|
"snkSimpleCrudTaskbar.form_regular": this.resolveInMemoryBtns(this.REGULAR_DEFAULT_BTNS).concat(TaskbarElement.GRID_MODE),
|
136
159
|
"snkSimpleCrudTaskbar.grid_regular": this.resolveInMemoryBtns(this.REGULAR_DEFAULT_BTNS).concat(TaskbarElement.FORM_MODE),
|
@@ -192,6 +215,12 @@ const SnkSimpleCrud = class {
|
|
192
215
|
componentWillLoad() {
|
193
216
|
this.processMetadata();
|
194
217
|
this.onModeChange();
|
218
|
+
this.configDatasource();
|
219
|
+
}
|
220
|
+
configDatasource() {
|
221
|
+
const application = ApplicationContext.getContextValue("__SNK__APPLICATION__");
|
222
|
+
this._multiSelectionListDataSource.setApplication(application);
|
223
|
+
this._multiSelectionListDataSource.setDataUnit(this.dataUnit);
|
195
224
|
}
|
196
225
|
getTaskBarId() {
|
197
226
|
var _a, _b, _c;
|
@@ -277,7 +306,7 @@ const SnkSimpleCrud = class {
|
|
277
306
|
}
|
278
307
|
render() {
|
279
308
|
var _a;
|
280
|
-
return (h("snk-data-unit", { class: "simple-crud__container", dataUnit: this.dataUnit, useCancelConfirm: this.useCancelConfirm, onDataStateChange: evt => this.onDataStateChange(evt), onInsertionMode: () => this.goToView(VIEW_MODE.FORM), onDataUnitReady: (evt) => this.dataUnitReady.emit(evt.detail), onMessagesBuilderUpdated: evt => this.messagesBuilder = evt.detail }, h("header", null, h("slot", { name: "snkSimpleCrudHeader" })), h("section", { class: "ez-flex ez-box ez-box--shadow" }, h("snk-taskbar", { class: "ez-box ez-box--shadow ez-padding--medium ez-margin-bottom--large", 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, disabledButtons: this._taskbarProcessor.disabledButtons, customButtons: this._taskbarProcessor.customButtons, slot: "leftButtons", presentationMode: PresentationMode.SECONDARY }), h("ez-view-stack", { class: "ez-flex ez-flex--column", ref: (ref) => this._viewStack = ref, "data-element-id": "simple-crud" }, h("stack-item", null, h("ez-grid", { dataUnit: this.dataUnit, config: this.gridConfig, "no-header": true, multipleSelection: this.multipleSelection, onEzDoubleClick: () => this.goToView(VIEW_MODE.FORM) }, h("div", { slot: "footer" }, h("slot", { name: "snkSimpleCrudFooter" })))), h("stack-item", null, h("ez-form", { dataUnit: this.dataUnit, config: this.formConfig }))))));
|
309
|
+
return (h("snk-data-unit", { class: "simple-crud__container", dataUnit: this.dataUnit, useCancelConfirm: this.useCancelConfirm, onDataStateChange: evt => this.onDataStateChange(evt), onInsertionMode: () => this.goToView(VIEW_MODE.FORM), onDataUnitReady: (evt) => this.dataUnitReady.emit(evt.detail), onMessagesBuilderUpdated: evt => this.messagesBuilder = evt.detail }, h("header", null, h("slot", { name: "snkSimpleCrudHeader" })), h("section", { class: "ez-flex ez-box ez-box--shadow" }, h("snk-taskbar", { class: "ez-box ez-box--shadow ez-padding--medium ez-margin-bottom--large", 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, disabledButtons: this._taskbarProcessor.disabledButtons, customButtons: this._taskbarProcessor.customButtons, slot: "leftButtons", presentationMode: PresentationMode.SECONDARY }), h("ez-view-stack", { class: "ez-flex ez-flex--column", ref: (ref) => this._viewStack = ref, "data-element-id": "simple-crud" }, h("stack-item", null, h("ez-grid", { dataUnit: this.dataUnit, config: this.gridConfig, "no-header": true, multipleSelection: this.multipleSelection, onEzDoubleClick: () => this.goToView(VIEW_MODE.FORM), columnfilterDataSource: this._multiSelectionListDataSource }, h("div", { slot: "footer" }, h("slot", { name: "snkSimpleCrudFooter" })))), h("stack-item", null, h("ez-form", { dataUnit: this.dataUnit, config: this.formConfig }))))));
|
281
310
|
}
|
282
311
|
get _element() { return getElement(this); }
|
283
312
|
static get watchers() { return {
|
@@ -0,0 +1 @@
|
|
1
|
+
import{r as i,c as t,h as s,g as e}from"./p-d2d301a6.js";import{ElementIDUtils as d,ApplicationContext as r,DataType as a}from"@sankhyalabs/core";import{UserInterface as n}from"@sankhyalabs/core/dist/dataunit/metadata/UnitMetadata";import{T as o}from"./p-a2493d11.js";import{C as l}from"./p-801b8858.js";import{P as h}from"./p-5534e08c.js";import{T as u}from"./p-c2beb95c.js";import{s as c}from"./p-6dc031de.js";import{S as v}from"./p-fa9d3f73.js";import{SelectionMode as g}from"@sankhyalabs/core/dist/dataunit/DataUnit";import"./p-2ea933b2.js";import"./p-41d92871.js";import"./p-112455b1.js";import"./p-79f78e10.js";import"./p-3d45107f.js";import"./p-584d7212.js";const m=class{constructor(s){i(this,s),this.actionClick=t(this,"actionClick",7),this.gridDoubleClick=t(this,"gridDoubleClick",7),this._multiSelectionListDataSource=new v,this._topTaskbarProcessor=new u({"snkGridTopTaskbar.regular":["FORM_MODE","CONFIGURATOR","INSERT"],"snkGridTopTaskbar.regular.secondary":["FORM_MODE","CONFIGURATOR","INSERT"],"snkGridTopTaskbar.finish_edition":["CANCEL","SAVE"],"snkGridTopTaskbar.finish_edition.secondary":[]}),this._headerTaskbarProcessor=new u({"snkGridHeaderTaskbar.unselected":["REFRESH","DATA_EXPORTER","ACTIONS_BUTTON"],"snkGridHeaderTaskbar.selected":["UPDATE","CLONE","REMOVE","MORE_OPTIONS","DIVIDER","ATTACH","REFRESH","DATA_EXPORTER","ACTIONS_BUTTON"],"snkGridHeaderTaskbar.detail.unselected":["REFRESH"],"snkGridHeaderTaskbar.detail.selected":["UPDATE","ATTACH","CLONE","REMOVE","MORE_OPTIONS","DIVIDER","REFRESH"]}),this._dataUnit=void 0,this._dataState=void 0,this._gridConfig=void 0,this._popUpGridConfig=!1,this.configName=void 0,this.selectionToastConfig=void 0,this.actionsList=void 0,this.isDetail=void 0,this.taskbarManager=void 0,this.statusResolver=void 0,this.multipleSelection=void 0,this.presentationMode=h.PRIMARY,this.messagesBuilder=void 0}async showConfig(){null!=this._grid&&this.openGridConfig()}async hideConfig(){null!=this._grid&&this.closeGridConfig()}async setConfig(i){this.setGridConfig(i)}async reloadFilterBar(){var i;null===(i=this._snkFilterBar)||void 0===i||i.reload()}openGridConfig(){this._grid.getColumnsState().then((i=>{this._snkGridConfig.columns=i.filter((i=>i.name)),this._snkGridConfig.selectedIndex=0,this._popUpGridConfig=!0}))}closeGridConfig(){this._popUpGridConfig=!1}setGridConfig(i){this._gridConfig=i}loadConfig(){l.get().then((i=>{i.loadGridConfig(this.configName).then((i=>{this.setGridConfig(i)})).catch((i=>{console.warn(i)}))}))}gridConfigChangeHandler(i){l.saveGridConfig(i.detail,this.configName),i.stopPropagation()}modalConfigChangeHandler(i){const t=i.detail;this._grid.setColumnsState(t.columns).then((()=>{this.setGridConfig(t),this.closeGridConfig(),this.dataExporterProviderStore()})),i.stopPropagation()}buildColumnsMetadata(i){const t=[];return null==i||i.forEach((i=>{var s,e;if(i.hidden&&"RECDESP"!==i.name)return;const d=null===(s=this._dataUnit)||void 0===s?void 0:s.getField(i.name);if(t.push({label:i.label,id:i.name,width:i.width,type:null==d?void 0:d.dataType,userInterface:null==d?void 0:d.userInterface}),null!=(null===(e=null==d?void 0:d.properties)||void 0===e?void 0:e.DESCRIPTIONFIELD)){const i=d.properties.mergedFrom;t.push({label:d.properties.DESCRIPTIONENTITY,id:`${i?i+".":""}${d.properties.ENTITYNAME}.${d.properties.DESCRIPTIONFIELD}`,width:200,type:a.TEXT,userInterface:n.LONGTEXT})}})),t||[]}getPaginationInfo(){var i;return null===(i=this._dataUnit)||void 0===i?void 0:i.getPaginationInfo()}getExporterOffset(i){if(null==i)return;const t=i.firstRecord;return t>0?t-1:t}async dataExporterProviderStore(){var i;const t=await(null===(i=this._snkDataUnit)||void 0===i?void 0:i.getSelectedRecordsIDsInfo()),s={getFilters:()=>{var i;return null===(i=this._dataUnit)||void 0===i?void 0:i.getAppliedFilters()},getColumnsMetadata:async()=>{var i;const t=await(null===(i=this._grid)||void 0===i?void 0:i.getColumnsState());return this.buildColumnsMetadata(t)},getOrders:()=>{var i;return null===(i=this._dataUnit)||void 0===i?void 0:i.getSort()},getResourceURI:()=>{var i;return null===(i=this._dataUnit)||void 0===i?void 0:i.name},getSelectedNumber:()=>{var i,t;return null===(t=null===(i=this._dataState)||void 0===i?void 0:i.selectionInfo)||void 0===t?void 0:t.length},getTotalRecords:()=>{var i,t,s;const{total:e}=(null===(i=this._dataUnit)||void 0===i?void 0:i.getPaginationInfo())||{};return null!=e?e:null===(s=null===(t=this._dataUnit)||void 0===t?void 0:t.records)||void 0===s?void 0:s.length},getSelectedIDs:()=>t||[],getOffset:()=>this.getExporterOffset(this.getPaginationInfo()),getLimit:()=>{var i;return null===(i=this._dataUnit)||void 0===i?void 0:i.pageSize},getRecordID:()=>{var i,t,s;return null===(s=null===(t=null===(i=this._dataUnit)||void 0===i?void 0:i.records)||void 0===t?void 0:t[0])||void 0===s?void 0:s.__record__id__}};c.set("exporterProviders",Object.assign(Object.assign({},c.get("exporterProviders")),{[this.configName]:s}))}addElementID(){d.addIDInfo(this._element,null,{dataUnit:this._dataUnit})}finshLoading(){this._dataUnitLoadLockerResolver=this._dataUnit.addLoadingLocker(),this.addElementID(),this._multiSelectionListDataSource.setApplication(this._application),this._multiSelectionListDataSource.setDataUnit(this._dataUnit)}componentWillLoad(){this._application=r.getContextValue("__SNK__APPLICATION__");let i=this._element.parentElement;for(;i;){if("SNK-DATA-UNIT"===i.tagName.toUpperCase()){this._snkDataUnit=i,this._dataUnit=this._snkDataUnit.dataUnit,this._dataUnit?this.finshLoading():this._snkDataUnit.addEventListener("dataUnitReady",(i=>{this._dataUnit=i.detail,this.finshLoading()})),this.messagesBuilder||(this.messagesBuilder=this._snkDataUnit.messagesBuilder),this._snkDataUnit.addEventListener("dataStateChange",(i=>{this._dataState=i.detail}));break}i=i.parentElement}this.loadConfig()}getHeaderDisabledButtons(){var i;const t=[];return(null===(i=this._dataState)||void 0===i?void 0:i.selectionInfo)&&(this._dataState.selectionInfo.length>1&&t.push(o.CLONE,"ATTACH"),this._dataState.selectionInfo.isAllRecords()&&t.push("REMOVE")),t}getInvisibleButtons(){let i=[];return this._dataUnit&&0!==this._dataUnit.records.length||i.push("DATA_EXPORTER"),this._dataState&&this._dataState.selectionInfo.mode===g.ALL_RECORDS&&i.push("ACTIONS_BUTTON"),i}componentWillRender(){var i;const t=this.getInvisibleButtons();let s;s=this._dataState&&(null===(i=this._dataState.selectionInfo)||void 0===i?void 0:i.length)?this.isDetail?"snkGridHeaderTaskbar.detail.selected":"snkGridHeaderTaskbar.selected":this.isDetail?"snkGridHeaderTaskbar.detail.unselected":"snkGridHeaderTaskbar.unselected",this._headerTaskbarProcessor.process(s,this.taskbarManager,this._dataState,this.getHeaderDisabledButtons(),t),this._topTaskbarProcessor.process(this.getTopTaskBarId(this.presentationMode===h.SECONDARY?".secondary":""),this.taskbarManager,this._dataState,void 0,t),this.dataExporterProviderStore()}getTopTaskBarId(i){var t;return(null===(t=this._dataState)||void 0===t?void 0:t.isDirty)?`snkGridTopTaskbar.finish_edition${i}`:`snkGridTopTaskbar.regular${i}`}getPrimaryButton(){return this.presentationMode===h.PRIMARY?"INSERT":""}onEzGridReady(){var i;null===(i=this._dataUnitLoadLockerResolver)||void 0===i||i.call(this),this._dataUnitLoadLockerResolver=void 0}render(){var i,t;if(this._dataUnit)return s("div",{class:"snk-grid__container ez-flex ez-flex--column ez-flex-item--auto ez-padding--large"},s("div",{class:"snk-grid__header ez-margin-bottom--medium"},s("snk-filter-bar",{ref:i=>this._snkFilterBar=i,dataUnit:this._dataUnit,"data-element-id":"gridFilter",class:"snk-grid__filter-bar ez-align--top",configName:this.configName,messagesBuilder:this.messagesBuilder}),(null===(t=null===(i=this._snkFilterBar)||void 0===i?void 0:i.filterConfig)||void 0===t?void 0:t.length)>0&&s("hr",{class:"ez-divider-vertical ez-divider--dark ez-margin-left--medium snk-grid__header-divider"}),s("snk-taskbar",{class:"ez-padding-left--medium","data-element-id":"grid_top",key:"topTaskbar",configName:this.configName,dataUnit:this._dataUnit,messagesBuilder:this.messagesBuilder,buttons:this._topTaskbarProcessor.buttons,disabledButtons:this._topTaskbarProcessor.disabledButtons,customButtons:this._topTaskbarProcessor.customButtons,primaryButton:this.getPrimaryButton()})),s("ez-grid",{ref:i=>this._grid=i,class:(this.presentationMode===h.SECONDARY?"snk-grid-container__without-shadow ":"")+"snk-grid__table","data-element-id":"embedded",dataUnit:this._dataUnit,key:"grid-"+this._snkDataUnit.entityName,config:this._gridConfig,onConfigChange:i=>{this.gridConfigChangeHandler(i)},onEzDoubleClick:()=>this.gridDoubleClick.emit(),statusResolver:this.statusResolver,multipleSelection:this.multipleSelection,onComponentReady:()=>this.onEzGridReady(),columnfilterDataSource:this._multiSelectionListDataSource,selectionToastConfig:this.selectionToastConfig},s("snk-taskbar",{dataUnit:this._dataUnit,configName:this.configName,messagesBuilder:this.messagesBuilder,"data-element-id":"grid_left",buttons:this._headerTaskbarProcessor.buttons,disabledButtons:this._headerTaskbarProcessor.disabledButtons,customButtons:this._headerTaskbarProcessor.customButtons,slot:"leftButtons",actionsList:this.actionsList})),s("div",{class:"ez-col ez-col--sd-12"},s("slot",{name:"SnkGridFooter"})),s("ez-modal",{modalSize:"small",closeEsc:!1,closeOutsideClick:!1,opened:this._popUpGridConfig,onEzCloseModal:()=>this.closeGridConfig()},s("snk-grid-config",{ref:i=>this._snkGridConfig=i,config:this._gridConfig,"data-element-id":this._element.getAttribute(d.DATA_ELEMENT_ID_ATTRIBUTE_NAME),application:this._application,selectedIndex:0,configName:this.configName,onConfigChange:i=>this.modalConfigChangeHandler(i),onConfigCancel:()=>this.closeGridConfig()})))}get _element(){return e(this)}};m.style=".snk-grid__container.sc-snk-grid{display:flex;height:100%;width:100%}.snk-grid__header.sc-snk-grid{display:flex;flex-wrap:nowrap;width:100%}.snk-grid__filter-bar.sc-snk-grid{width:100%}.snk-grid__header-divider.sc-snk-grid{margin-bottom:var(--space--medium)}.snk-grid__table.sc-snk-grid{min-height:300px}.snk-grid-container__without-shadow.sc-snk-grid{--ezgrid__container--shadow:unset}";export{m as snk_grid}
|
@@ -1 +1 @@
|
|
1
|
-
import{r as e,c as i,h as t,F as s,H as l,g as r}from"./p-d2d301a6.js";import{ElementIDUtils as a,UserInterface as n,ApplicationContext as o}from"@sankhyalabs/core";import{F as d}from"./p-584d7212.js";import{E as h}from"./p-1a68fb59.js";import{EzScrollDirection as c}from"@sankhyalabs/ezui/dist/collection/components/ez-scroller/EzScrollDirection";import{CheckMode as
|
1
|
+
import{r as e,c as i,h as t,F as s,H as l,g as r}from"./p-d2d301a6.js";import{ElementIDUtils as a,UserInterface as n,ApplicationContext as o}from"@sankhyalabs/core";import{F as d}from"./p-584d7212.js";import{E as h}from"./p-1a68fb59.js";import{EzScrollDirection as c}from"@sankhyalabs/ezui/dist/collection/components/ez-scroller/EzScrollDirection";import{CheckMode as m}from"@sankhyalabs/ezui/dist/collection/utils";const z=class{constructor(t){e(this,t),this.deleteFilter=i(this,"deleteFilter",7),this.editFilter=i(this,"editFilter",7),this.addFilter=i(this,"addFilter",7),this.valueChanged=i(this,"valueChanged",7),this.originalItems=[],this.messagesBuilder=void 0,this.presentationMode=h.MODAL,this.config=void 0,this.value=void 0,this.items=[]}async show(){const e=document.querySelector("#param_0");e&&e.setFocus()}configWatcher(e){this.items=this.originalItems=e.groupedItems||[]}getMessage(e,i){var t;return this.messagesBuilder?this.messagesBuilder.getMessage(e,i):(null===(t=this._application)||void 0===t?void 0:t.messagesBuilder)?this._application.messagesBuilder.getMessage(e,i):void 0}getItemContent(e){var i,s;const l=!!(null===(s=null===(i=e.props)||void 0===i?void 0:i.personalizedFilter)||void 0===s?void 0:s.parameters.length);return t("div",{class:this.isModalMode()?"":"SnkFilterPersonalized_list-item--chip"},t("li",{class:this.isModalMode()?"SnkFilterPersonalized_list-item--modal":""},t("div",{class:"ez-flex ez-flex--align-items-center ez-margin-right--small ez-size-width--full"},t((()=>t("ez-check",Object.assign({class:"SnkFilterPersonalized_checkbox",id:`param_${e.id}`,key:e.id,compact:!0,value:e.visible,label:e.label,onEzChange:({detail:i})=>this.handleItemChange.bind(this)(i,e.id)},{[a.DATA_ELEMENT_ID_ATTRIBUTE_NAME]:`${a.getInternalIDInfo(`checkboxFilter_${e.id}`)}`}))),null),this.buildModalListActions(e,l))),e.visible&&l&&t("div",{class:"ez-row ez-padding--small"},this.getFormField(e)))}buildModalListActions(e,i){if(this.isModalMode())return this.isModalMode()?t("div",{class:"SnkFilterPersonalized_list-actions"},t("ez-button",{size:"small",mode:"icon",iconName:"edit",title:this.getMessage("snkPersonalizedFilter.listActions.edit"),onClick:()=>this.editFilter.emit(e.id)}),t("ez-button",{size:"small",mode:"icon",iconName:"delete",title:this.getMessage("snkPersonalizedFilter.listActions.delete"),onClick:this.handleDeleteFilter.bind(this,e)})):i&&t("ez-badge",Object.assign({class:"ez-badge--warning-subtle ez-margin-right--small",label:this.getMessage("snkPersonalizedFilter.info.badgeVariable"),size:"medium"},{[a.DATA_ELEMENT_ID_ATTRIBUTE_NAME]:`${a.getInternalIDInfo(`variableBadge_${e.id}`)}`}))}isModalMode(){return this.presentationMode===h.MODAL}doSearch(e,i,t){return new Promise(((s,l)=>{this._application.executePreparedSearch(e,i,t.searchContext).then((e=>{s(e)})).catch((e=>{l(e)}))}))}getFormField(e){var i,s;return(null===(s=null===(i=null==e?void 0:e.props)||void 0===i?void 0:i.personalizedFilter)||void 0===s?void 0:s.parameters).map(((i,s)=>{var l,r,a;const o=Object.assign(Object.assign({},i),{id:e.id}),d=null===(l=e.value)||void 0===l?void 0:l[s],h="param_"+s;switch(i.userInterface){case n.SEARCH:return t("ez-search",{id:h,suppressEmptyOption:!0,value:d,onEzChange:e=>this.handleFilterItemChange(e.detail,o),label:i.label,optionLoader:({mode:e,argument:t})=>this.doSearch(e,t,i)});case n.SWITCH:case n.CHECKBOX:return t("ez-check",{id:h,class:"ez-padding-bottom--medium",mode:n.SWITCH===i.userInterface?m.SWITCH:m.REGULAR,value:d,label:i.label,onEzChange:e=>this.handleFilterItemChange(e.detail,o)});case n.DECIMALNUMBER:return t("ez-number-input",{id:h,label:i.label,value:d,precision:(null===(r=i.props)||void 0===r?void 0:r.precision)||2,onEzChange:e=>this.handleFilterItemChange(e.detail,o)});case n.INTEGERNUMBER:return t("ez-number-input",{id:h,label:i.label,value:d,precision:null===(a=i.props)||void 0===a?void 0:a.precision,onEzChange:e=>this.handleFilterItemChange(e.detail,o)});case n.OPTIONSELECTOR:return t("ez-combo-box",{id:h,label:i.label,value:d,options:i.options,onEzChange:e=>this.handleFilterItemChange(e.detail,o)});case n.DATE:return t("ez-date-input",{id:h,label:i.label,value:this.parseDate(d),onEzChange:e=>this.handleFilterItemChange(e.detail,o)});case n.DATETIME:return t("ez-date-time-input",{id:h,label:i.label,value:this.parseDate(d),onEzChange:e=>this.handleFilterItemChange(e.detail,o)});default:return t("ez-text-input",{id:h,label:i.label,value:d,onEzChange:e=>this.handleFilterItemChange(e.detail,o)})}}))}parseDate(e){if("string"==typeof e){let i=new Date(e);return i.setMinutes(i.getMinutes()+i.getTimezoneOffset()),i}return e}getVisibleCount(e){return e.reduce(((e,i)=>i.visible?e+1:e),0)}handleItemChange(e,i){this.items=this.originalItems=this.originalItems.map((t=>{const s=t.id===i?e:t.visible;return Object.assign(Object.assign({},t),{visible:s,active:s})})),this.emitChange()}handleSearchFilterList({detail:e=""}){this.items=e?this.originalItems.filter((i=>i.label.toLowerCase().includes(e.toLowerCase()))):this.originalItems}handleFilterItemChange(e,i){var t;const s=this.items.find((({id:e})=>e===i.id)),{parameters:l=[]}=(null===(t=s.props)||void 0===t?void 0:t.personalizedFilter)||{},r=l.findIndex((e=>e.name===i.name));l[r]=i,s.props.personalizedFilter.parameters=l,s.value||(s.value=[]),s.value[r]=e;const a=[...this.items,s];this.items=Array.from(new Set(a)),this.emitChange()}handleClearFilters(){this.emitChange(!0)}emitChange(e=!1){e&&(this.items=this.originalItems);const i=this.items.map((i=>Object.assign(Object.assign({},i),{visible:!e&&i.visible}))),t=this.getVisibleCount(i);this.valueChanged.emit({value:t,items:i})}handleDeleteFilter(e){this._application.confirm(this.getMessage("snkPersonalizedFilter.deleteConfirm.title"),this.getMessage("snkPersonalizedFilter.deleteConfirm.message",{filterName:e.label})).then((i=>{i&&(this.deleteFilter.emit(e),this.items=this.originalItems=this.originalItems.filter((i=>i.id!==e.id)),this.emitChange())}))}componentDidLoad(){this._element&&a.addIDInfoIfNotExists(this._element,"filterContentEditor")}componentWillLoad(){var e;this._application=o.getContextValue("__SNK__APPLICATION__"),this.items=this.originalItems=(null===(e=this.config)||void 0===e?void 0:e.groupedItems)||[]}buildModeModalHeader(){if(this.presentationMode===h.MODAL)return t("div",{class:"ez-margin-bottom--medium"},t(s,null,t("ez-filter-input",Object.assign({label:this.config.label,onEzChange:this.handleSearchFilterList.bind(this)},{[a.DATA_ELEMENT_ID_ATTRIBUTE_NAME]:`${a.getInternalIDInfo("filterSearch")}`})),t("span",{class:"ez-text ez-title--small ez-title--primary"}," ",this.config.detailTitle," ")))}buildModeModalFooter(){if(this.presentationMode===h.MODAL)return t("div",{class:"ez-flex ez-flex--justify-end grow ez-margin-top--medium ez-margin-bottom--small"},t("ez-button",{class:"ez-button--tertiary ez-margin-right--small",size:"medium",label:this.getMessage("snkPersonalizedFilter.footerActions.clear"),onClick:this.handleClearFilters.bind(this)}),t("ez-button",{class:"ez-button--secondary ez-margin-right--small",size:"medium",label:this.getMessage("snkPersonalizedFilter.footerActions.create"),onClick:()=>this.addFilter.emit()}))}buildContainerFiltersCreated(){return this.items.length?t("ez-scroller",{class:"SnkFilterPersonalized_list-scroller",direction:c.VERTICAL},t("ul",{class:"SnkFilterPersonalized_list-container "+(this.isModalMode()?"":"SnkFilterPersonalized_list-container-chip")},this.items.map((e=>this.getItemContent(e))))):t("div",{class:"ez-margin--auto"},t("span",{class:"ez-text ez-text--secondary ez-text--small"},this.getMessage("snkPersonalizedFilter.info.noDataFound")))}render(){if(this.config&&this.config.type===d.PERSONALIZED)return t(l,null,this.buildModeModalHeader(),this.buildContainerFiltersCreated(),this.buildModeModalFooter())}get _element(){return r(this)}static get watchers(){return{config:["configWatcher"]}}};z.style=".sc-snk-personalized-filter-editor-h{--snk-filter-personalized__max-height:21;--snk-filter-personalized__max-width:21.5}.SnkFilterPersonalized_list-container.sc-snk-personalized-filter-editor{margin:0;padding:0;list-style:none;display:flex;flex-direction:column}.SnkFilterPersonalized_list-container-chip.sc-snk-personalized-filter-editor{width:400px}.SnkFilterPersonalized_list-scroller.sc-snk-personalized-filter-editor{display:block;max-height:calc(var(--space--2xl) * var(--snk-filter-personalized__max-height));cursor:auto;--ez-scroller__max-height:300px}.SnkFilterPersonalized_checkbox.sc-snk-personalized-filter-editor{display:grid;grid-template-columns:auto auto;justify-content:start}.SnkFilterPersonalized_list-container.sc-snk-personalized-filter-editor:has(.SnkFilterPersonalized_list-item--chip){gap:var(--space--small, 6px);max-width:calc(var(--space--md) * var(--snk-filter-personalized__max-width))}.SnkFilterPersonalized_list-item--modal.sc-snk-personalized-filter-editor{display:flex;border-radius:var(--border--radius-regular)}.SnkFilterPersonalized_list-item--modal.sc-snk-personalized-filter-editor:hover{background-color:var(--background--medium, #f0f3f7)}.SnkFilterPersonalized_list-actions.sc-snk-personalized-filter-editor{display:none;align-items:center}.SnkFilterPersonalized_list-item--modal.sc-snk-personalized-filter-editor:hover .SnkFilterPersonalized_list-actions.sc-snk-personalized-filter-editor{display:flex}.SnkFilterPersonalized_list-item--chip.sc-snk-personalized-filter-editor{display:flex;flex-direction:column;border:var(--border--small, 1px solid) var(--color-strokes, #DCE0E8);border-radius:var(--border--radius-regular)}.SnkFilterPersonalized_list-item--chip.sc-snk-personalized-filter-editor .sc-snk-personalized-filter-editor:first-of-type{gap:var(--space--3xs)}";export{z as snk_personalized_filter_editor}
|
@@ -0,0 +1 @@
|
|
1
|
+
import{r as t,c as s,h as i,g as e}from"./p-d2d301a6.js";import{DataUnit as r,StringUtils as a,SortMode as n,DataType as o,ChangeOperation as h,ObjectUtils as d,ApplicationContext as l,UserInterface as u}from"@sankhyalabs/core";import{c as m,S as c}from"./p-4a78e118.js";import{T as p}from"./p-a2493d11.js";import"./p-41d92871.js";import"./p-11028eba.js";import{P as v}from"./p-5534e08c.js";import{T as g}from"./p-c2beb95c.js";import{DISTINCT_FILTER_NAME_PREFIX as b}from"@sankhyalabs/ezui/dist/collection/utils/constants";import{S as k}from"./p-fa9d3f73.js";import"./p-6dc031de.js";import"./p-112455b1.js";class f{constructor(t,s){this.records=s||[],this.metadata=t,this._dataUnit=new r("InMemoryDataUnit"),this._dataUnit.metadataLoader=()=>this.metadaLoader(),this._dataUnit.dataLoader=(t,s)=>this.dataLoader(t,s),this._dataUnit.saveLoader=(t,s)=>this.saveLoader(t,s),this._dataUnit.removeLoader=(t,s)=>this.removeLoader(t,s),this.dataUnit.loadMetadata().then((()=>this.dataUnit.loadData()))}get dataUnit(){return this._dataUnit}get records(){return this._records}set records(t){this._records=null==t?void 0:t.map((t=>(t.__record__id__||(t.__record__id__=this.generateUniqueId()),t))),this._dataUnit&&(this._dataUnit.records=[...this._records])}get metadata(){return this._metadata}set metadata(t){this._metadata=t,this._dataUnit&&(this._dataUnit.metadata=this._metadata)}generateUniqueId(){return a.generateUUID()}metadaLoader(){return Promise.resolve(this._metadata)}dataLoader(t,s){const i=this.getColumnFilters(t);let e=this.applyFilters(i);return s.sort&&s.sort.forEach((t=>{e=e.sort(((s,i)=>{const e=s[t.field],r=i[t.field];return this.getSortFn(t.dataType)(e,r)*(t.mode==n.ASC?1:-1)}))})),Promise.resolve({records:e})}applyFilters(t){let s=[...this._records];return t.forEach((t=>{s=s.filter((s=>{var i;return t.values.includes(null===(i=s[t.column])||void 0===i?void 0:i.toString())}))})),s}getColumnFilters(t){var s,i;const e=null!==(i=(null!==(s=t.getFilters())&&void 0!==s?s:[]).filter((t=>{var s;return null===(s=t.name)||void 0===s?void 0:s.includes(b)})))&&void 0!==i?i:[];return e.map((t=>{var s,i;return{column:null!==(i=null===(s=t.name)||void 0===s?void 0:s.replace(b,""))&&void 0!==i?i:"",values:t.params.map((t=>t.value))}}))}getSortFn(t){switch(t){case o.NUMBER:return this.sortNumber;case o.DATE:return this.sortDate;case o.OBJECT:return this.sortObject;default:return a.compare}}sortObject(t,s){return a.compare(t.label,s.label)}sortNumber(t,s){return t-s}sortDate(t,s){let i=t.getTime(),e=s.getTime();return i===e?0:i<e?-1:1}saveLoader(t,s){return new Promise((t=>{let i=[];s.forEach((t=>{let{record:s,updatingFields:e,operation:r}=t,a=!1;r!==h.INSERT&&r!==h.COPY||(s.__old__id__=s.__record__id__,s.__record__id__=this.generateUniqueId(),a=!0);const n=Object.assign(Object.assign({},s),e);if(a)this.records.push(n);else{const t=this.records.findIndex((t=>t.__record__id__==n.__record__id__));this.records[t]=n}i.push(n)})),t(i)}))}removeLoader(t,s){return new Promise((t=>{this._records=this._records.filter((t=>!s.includes(t.__record__id__))),t(s)}))}}const S=class{constructor(i){t(this,i),this.dataStateChange=s(this,"dataStateChange",3),this.dataUnitReady=s(this,"dataUnitReady",3),this.actionClick=s(this,"actionClick",7),this.REGULAR_DEFAULT_BTNS=["INSERT","REFRESH","PREVIOUS","NEXT","DIVIDER"],this.REGULAR_SELECTED_BTNS=["INSERT","REFRESH","PREVIOUS","NEXT","DIVIDER","CLONE","REMOVE","DIVIDER"],this._multiSelectionListDataSource=new k,this._taskbarProcessor=new g({"snkSimpleCrudTaskbar.form_regular":this.resolveInMemoryBtns(this.REGULAR_DEFAULT_BTNS).concat(p.GRID_MODE),"snkSimpleCrudTaskbar.grid_regular":this.resolveInMemoryBtns(this.REGULAR_DEFAULT_BTNS).concat(p.FORM_MODE),"snkSimpleCrudTaskbar.form_selected":this.resolveInMemoryBtns(this.REGULAR_SELECTED_BTNS).concat(p.GRID_MODE),"snkSimpleCrudTaskbar.grid_selected":this.resolveInMemoryBtns(this.REGULAR_SELECTED_BTNS).concat(p.FORM_MODE),"snkSimpleCrudTaskbar.finish_edition":["CANCEL","SAVE"]}),this._currentViewMode=m.GRID,this._config=void 0,this.dataState=void 0,this.dataUnit=void 0,this.mode=c.SERVER,this.gridConfig=void 0,this.formConfig=void 0,this.multipleSelection=void 0,this.useCancelConfirm=!0,this.taskbarManager=void 0,this.messagesBuilder=void 0}resolveInMemoryBtns(t){const s=[...t];return this.mode===c.IN_MEMORY&&s.splice(1,1),s}async goToView(t){this._currentViewMode=t,this._viewStack&&this._viewStack.show(t)}actionClickListener(t){const s=t.detail;s===p.GRID_MODE?this.goToView(m.GRID):s===p.FORM_MODE&&this.goToView(m.FORM),t.stopPropagation()}onModeChange(){this.mode==c.IN_MEMORY&&this.initInMemoryDataUnit()}observeDataState(t,s){d.objectToString(s)!=d.objectToString(t)&&this.dataStateChange.emit(t)}componentWillRender(){this._taskbarProcessor.process(this.getTaskBarId(),this.taskbarManager,this.dataState,this.getTaskBarDisabledButtons())}componentWillLoad(){this.processMetadata(),this.onModeChange(),this.configDatasource()}configDatasource(){const t=l.getContextValue("__SNK__APPLICATION__");this._multiSelectionListDataSource.setApplication(t),this._multiSelectionListDataSource.setDataUnit(this.dataUnit)}getTaskBarId(){var t,s,i;return(null===(t=this.dataState)||void 0===t?void 0:t.isDirty)?"snkSimpleCrudTaskbar.finish_edition":(null===(s=this.dataState)||void 0===s?void 0:s.selectionInfo)&&!this.dataState.selectionInfo.isAllRecords()&&(null===(i=this.dataState.selectionInfo.records)||void 0===i?void 0:i.length)>0?this._currentViewMode===m.GRID?"snkSimpleCrudTaskbar.grid_selected":"snkSimpleCrudTaskbar.form_selected":this._currentViewMode===m.GRID?"snkSimpleCrudTaskbar.grid_regular":"snkSimpleCrudTaskbar.form_regular"}initInMemoryDataUnit(){this._inMemoryLoader=new f(this._metadata),this.dataUnit=this._inMemoryLoader.dataUnit,this.dataUnitReady.emit(this.dataUnit)}setMetadata(t){return this._inMemoryLoader?this._inMemoryLoader.metadata=t:this.dataUnit&&(this.dataUnit.metadata=t),Promise.resolve()}setRecords(t){return this._inMemoryLoader?this._inMemoryLoader.records=t:this.dataUnit&&(this.dataUnit.records=t),Promise.resolve()}getRecords(){return Promise.resolve(this.dataUnit.records)}processMetadata(){const t=this._element.querySelectorAll("snk-field-metadata"),s=[],i={fields:[],emptyConfig:!1};t.forEach((t=>{const e={name:t.getAttribute("name")||t.getAttribute("label"),label:t.getAttribute("label"),dataType:o[t.getAttribute("dataType")]||o.TEXT,userInterface:u[t.getAttribute("userInterface")]||u.SHORTTEXT,readOnly:"true"==t.getAttribute("readOnly"),required:"true"==t.getAttribute("required"),tab:t.getAttribute("tab")||void 0,visible:"false"!=t.getAttribute("visible")};i.fields.push({name:e.name,tab:e.tab,visible:e.visible}),s.push(e)})),s.length>0&&(this.formConfig||(this.formConfig=i),this._metadata={name:"SimpleCrud",label:"SimpleCrud",fields:s})}onDataStateChange(t){this.dataState=Object.assign({},t.detail)}getTaskBarDisabledButtons(){var t,s;const i=[];return(null===(t=this.dataState)||void 0===t?void 0:t.hasNext)||i.push(p.NEXT),(null===(s=this.dataState)||void 0===s?void 0:s.hasPrevious)||i.push(p.PREVIOUS),i}render(){var t;return i("snk-data-unit",{class:"simple-crud__container",dataUnit:this.dataUnit,useCancelConfirm:this.useCancelConfirm,onDataStateChange:t=>this.onDataStateChange(t),onInsertionMode:()=>this.goToView(m.FORM),onDataUnitReady:t=>this.dataUnitReady.emit(t.detail),onMessagesBuilderUpdated:t=>this.messagesBuilder=t.detail},i("header",null,i("slot",{name:"snkSimpleCrudHeader"})),i("section",{class:"ez-flex ez-box ez-box--shadow"},i("snk-taskbar",{class:"ez-box ez-box--shadow ez-padding--medium ez-margin-bottom--large",dataUnit:this.dataUnit,primaryButton:(null===(t=this.dataState)||void 0===t?void 0:t.isDirty)?"SAVE":"INSERT","data-element-id":"grid_left",messagesBuilder:this.messagesBuilder,buttons:this._taskbarProcessor.buttons,disabledButtons:this._taskbarProcessor.disabledButtons,customButtons:this._taskbarProcessor.customButtons,slot:"leftButtons",presentationMode:v.SECONDARY}),i("ez-view-stack",{class:"ez-flex ez-flex--column",ref:t=>this._viewStack=t,"data-element-id":"simple-crud"},i("stack-item",null,i("ez-grid",{dataUnit:this.dataUnit,config:this.gridConfig,"no-header":!0,multipleSelection:this.multipleSelection,onEzDoubleClick:()=>this.goToView(m.FORM),columnfilterDataSource:this._multiSelectionListDataSource},i("div",{slot:"footer"},i("slot",{name:"snkSimpleCrudFooter"})))),i("stack-item",null,i("ez-form",{dataUnit:this.dataUnit,config:this.formConfig})))))}get _element(){return e(this)}static get watchers(){return{mode:["onModeChange"],dataState:["observeDataState"]}}};S.style=".sc-snk-simple-crud-h{display:flex;height:100%;width:100%}.simple-crud__container.sc-snk-simple-crud{display:grid;grid-template-rows:auto;row-gap:12px;height:100%;width:100%}ez-grid.sc-snk-simple-crud{--ez-grid__container--shadow:none;min-height:300px}ez-form.sc-snk-simple-crud{min-height:300px}";export{S as snk_simple_crud}
|
@@ -0,0 +1 @@
|
|
1
|
+
import{UserInterface as t,DateUtils as e}from"@sankhyalabs/core";class s{setDataUnit(t){this._dataUnit=t}setApplication(t){this._application=t}formatLabel(s,a){const{userInterface:i}=this._dataUnit.getField(s);return i===t.DATETIME?e.formatDate(this._dataUnit.valueFromString(s,a)):String(this._dataUnit.getFormattedValue(s,a))}fetchData(e,s){return new Promise((a=>{this._application.executeSelectDistinct(this._dataUnit,s,e).then((e=>{a(e.map((e=>this._dataUnit.getField(s).userInterface===t.SEARCH?Object.assign(Object.assign({},JSON.parse(e)),{check:!0}):{value:e,label:this.formatLabel(s,e),check:!0})))}))}))}}export{s as S}
|
@@ -1 +1 @@
|
|
1
|
-
import{p as e,b as t}from"./p-d2d301a6.js";export{s as setNonce}from"./p-d2d301a6.js";(()=>{const t=import.meta.url,a={};return""!==t&&(a.resourcesUrl=new URL(".",t).href),e(a)})().then((e=>t(JSON.parse('[["p-118e769b",[[1,"teste-pesquisa"]]],["p-40a5d35e",[[0,"snk-filter-modal",{"getMessage":[16],"configName":[1025,"config-name"],"filters":[1040],"applyFilters":[16],"closeModal":[16],"addPersonalizedFilter":[16],"editPersonalizedFilter":[16]}]]],["p-ac8d1cd6",[[2,"snk-actions-form",{"action":[16],"applyParameters":[16],"dataUnit":[32],"openPopup":[64]}]]],["p-9531fd46",[[2,"snk-client-confirm",{"titleMessage":[1,"title-message"],"message":[1],"accept":[16],"cancel":[16],"openPopup":[64]}]]],["p-de69b4b0",[[2,"snk-entity-list",{"config":[1040],"rightListSlotBuilder":[1040],"maxHeightList":[1,"max-height-list"],"_searchValue":[32],"_ezListSource":[32],"reloadList":[64]}]]],["p-eb636e15",[[0,"snk-filter-binary-select",{"value":[1544],"config":[16],"presentationMode":[2,"presentation-mode"],"resetValues":[64]},[[0,"ezChange","ezChangeListener"]]]]],["p-a1e1b305",[[4,"snk-filter-list",{"label":[1],"iconName":[1,"icon-name"],"items":[16],"getMessage":[16],"emptyText":[1,"empty-text"],"findFilterText":[1,"find-filter-text"],"buttonClass":[1,"button-class"],"_filterArgument":[32],"_showAll":[32],"hideDetail":[64]},[[2,"keydown","keyDownHandler"]]]]],["p-cb37982f",[[0,"snk-filter-multi-select",{"value":[1544],"config":[16],"show":[64]},[[0,"ezChange","ezChangeListener"]]]]],["p-e3a82e1c",[[0,"snk-filter-number",{"config":[16],"value":[2],"show":[64]},[[0,"ezChange","ezChangeListener"]]]]],["p-959e0835",[[0,"snk-filter-period",{"config":[16],"getMessage":[16],"value":[8],"presentationMode":[2,"presentation-mode"],"show":[64]},[[0,"ezChange","ezChangeListener"]]]]],["p-fe49067d",[[0,"snk-filter-search",{"config":[16],"value":[16],"show":[64]},[[0,"ezChange","ezChangeListener"]]]]],["p-96a89d58",[[0,"snk-filter-text",{"config":[16],"value":[1]},[[0,"ezChange","ezChangeListener"]]]]],["p-b6f9f702",[[2,"snk-personalized-filter-editor",{"messagesBuilder":[1040],"presentationMode":[2,"presentation-mode"],"config":[16],"value":[1040],"items":[32],"show":[64]}]]],["p-88a40b96",[[0,"snk-filter-modal-item",{"filterItem":[1040],"configName":[1025,"config-name"]}]]],["p-d9586ead",[[2,"snk-expression-item",{"expression":[16],"canRemove":[516,"can-remove"],"messagesBuilder":[1040],"entityURI":[1025,"entity-u-r-i"],"_showValueVariable":[32],"_fieldSelected":[32],"_optionNotNull":[32]}],[2,"snk-filter-field-search",{"searchable":[4],"fieldsDataSource":[16],"breadcrumbItems":[32],"linkItems":[32],"fieldItems":[32],"searchEmpty":[32],"groupEmpty":[32],"show":[64],"applyFilter":[64]}],[0,"snk-filter-param-config",{"messagesBuilder":[1040],"_opened":[32],"_configType":[32],"_expressionItem":[32],"_informedInstance":[32],"_canSave":[32],"open":[64],"close":[64]}]]],["p-f8ce17d3",[[2,"snk-expression-group",{"parentTop":[1026,"parent-top"],"group":[1040],"messagesBuilder":[1040],"filterId":[1025,"filter-id"],"entityURI":[1025,"entity-u-r-i"],"_conditionOperator":[32],"_group":[32],"_selfTop":[32],"canAddExpression":[32],"_showDashes":[32],"getExpressionGroup":[64]},[[8,"ezExpressionLayoutChanged","todoCompletedHandler"]]]]],["p-86e10ecc",[[2,"snk-personalized-filter",{"messagesBuilder":[1040],"entityUri":[1025,"entity-uri"],"filterId":[1025,"filter-id"],"configName":[1025,"config-name"],"_filterAssistentMode":[32],"_filterAssistent":[32],"createPersonalizedFilter":[64]}]]],["p-5e06e139",[[2,"snk-detail-view",{"formConfigManager":[1040],"dataUnitName":[1,"data-unit-name"],"guideItemPath":[16],"entityName":[1,"entity-name"],"label":[1],"dataUnit":[1040],"selectedForm":[1025,"selected-form"],"dataState":[1040],"messagesBuilder":[1040],"branchGuide":[16],"_disabledButtons":[32],"attachmentRegisterKey":[32],"changeViewMode":[64],"configGrid":[64],"showUp":[64]},[[0,"snkContentCardChanged","onContentCardChanged"]]]]],["p-befbc9ee",[[6,"snk-configurator",{"showActionButtons":[4,"show-action-buttons"],"configName":[1,"config-name"],"viewMode":[2,"view-mode"],"messagesBuilder":[1040],"_opened":[32],"_permissions":[32],"open":[64],"close":[64]}]]],["p-247a8b36",[[2,"snk-pesquisa",{"searchLoader":[16],"selectItem":[16],"argument":[1025],"_itemList":[32],"_startLoading":[32]}]]],["p-fdc262aa",[[2,"snk-attach",{"registerKey":[1,"register-key"],"entityName":[1,"entity-name"],"messagesBuilder":[1040],"dataUnit":[32],"crudConfig":[32]}]]],["p-25df01a1",[[0,"snk-filter-detail",{"config":[1040],"getMessage":[16],"show":[64]}]]],["p-775e60f5",[[2,"snk-filter-bar",{"dataUnit":[1040],"configName":[1,"config-name"],"filterConfig":[1040],"messagesBuilder":[1040],"allowDefault":[32],"scrollerLocked":[32],"showPersonalizedFilter":[32],"personalizedFilterId":[32],"reload":[64]},[[0,"filterChange","filterChangeListener"]]]]],["p-d2f7dbd8",[[2,"snk-config-options",{"fieldConfig":[16],"idConfig":[513,"id-config"],"dataUnit":[16],"messagesBuilder":[1040],"_defaultType":[32]}]]],["p-f30526a7",[[2,"snk-field-config",{"isConfigActive":[16],"fieldConfig":[16],"modeInsertion":[516,"mode-insertion"],"dataUnit":[16],"messagesBuilder":[1040]}]]],["p-d3ec3586",[[6,"snk-tab-config",{"selectedIndex":[1538,"selected-index"],"selectedTab":[1537,"selected-tab"],"tabs":[1],"tabItems":[16],"messagesBuilder":[1040],"_processedTabs":[32],"_activeEditText":[32],"_activeEditTextIndex":[32],"_actionsHide":[32],"_actionsShow":[32]}]]],["p-6504ccfe",[[2,"snk-form-config",{"dataUnit":[16],"configManager":[16],"messagesBuilder":[1040],"_formConfigOptions":[32],"_fieldConfigSelected":[32],"_layoutFormConfig":[32],"_fieldsAvailable":[32],"_formConfig":[32],"_formConfigChanged":[32],"_optionFormConfigSelected":[32],"_optionFormConfigChanged":[32],"_tempGroups":[32]}]]],["p-838f8234",[[1,"snk-select-box",{"selectedOption":[1,"selected-option"]}]]],["p-ad69e220",[[2,"snk-grid-config",{"selectedIndex":[1026,"selected-index"],"application":[16],"columns":[1040],"config":[1040],"configName":[1,"config-name"]}]]],["p-30134b16",[[0,"snk-filter-item",{"config":[1040],"getMessage":[16],"detailIsVisible":[32],"showUp":[64],"hideDetail":[64]},[[2,"click","clickListener"],[2,"mousedown","mouseDownListener"],[0,"filterChange","filterChangeListener"]]]]],["p-d881cab2",[[2,"snk-data-unit",{"dataState":[1040],"messagesBuilder":[1040],"dataUnitName":[1,"data-unit-name"],"entityName":[1,"entity-name"],"pageSize":[2,"page-size"],"dataUnit":[1040],"beforeSave":[16],"afterSave":[16],"useCancelConfirm":[4,"use-cancel-confirm"],"getDataUnit":[64],"getSelectedRecordsIDsInfo":[64]}]]],["p-219f888d",[[0,"snk-exporter-email-sender",{"getMessage":[16],"_config":[32],"_opened":[32],"_currentStep":[32],"open":[64],"close":[64]}]]],["p-402db136",[[2,"snk-data-exporter",{"provider":[16],"messagesBuilder":[1040],"_items":[32],"_showDropdown":[32],"_releasedToExport":[32]}]]],["p-c6380ea2",[[6,"snk-taskbar",{"configName":[1,"config-name"],"buttons":[1],"customButtons":[16],"actionsList":[16],"primaryButton":[1,"primary-button"],"disabledButtons":[16],"dataUnit":[16],"presentationMode":[1537,"presentation-mode"],"messagesBuilder":[1040],"_permissions":[32]}]]],["p-7f37b801",[[6,"snk-grid",{"configName":[1,"config-name"],"selectionToastConfig":[16],"actionsList":[16],"isDetail":[4,"is-detail"],"taskbarManager":[16],"statusResolver":[16],"multipleSelection":[4,"multiple-selection"],"presentationMode":[1,"presentation-mode"],"messagesBuilder":[1040],"_dataUnit":[32],"_dataState":[32],"_gridConfig":[32],"_popUpGridConfig":[32],"showConfig":[64],"hideConfig":[64],"setConfig":[64],"reloadFilterBar":[64]}]]],["p-ca29b093",[[2,"snk-guides-viewer",{"_guideBuilders":[16],"dataUnit":[16],"dataState":[16],"configName":[1,"config-name"],"entityPath":[1,"entity-path"],"actionsList":[16],"recordsValidator":[16],"masterFormConfig":[1040],"selectedGuide":[16],"taskbarManager":[16],"messagesBuilder":[1040],"presentationMode":[1,"presentation-mode"],"_breadcrumbItems":[32],"_guides":[32],"_formEditorConfigManager":[32],"_formEditorDataUnit":[32],"showFormConfig":[64]},[[2,"actionClick","onActionClick"],[0,"snkContentCardChanged","onContentCardChanged"]]]]],["p-7c10486f",[[6,"snk-crud",{"configName":[1025,"config-name"],"selectionToastConfig":[16],"showActionButtons":[4,"show-action-buttons"],"actionsList":[16],"taskbarManager":[16],"recordsValidator":[16],"statusResolver":[16],"multipleSelection":[4,"multiple-selection"],"presentationMode":[1,"presentation-mode"],"messagesBuilder":[1040],"_dataUnit":[32],"_dataState":[32],"attachmentRegisterKey":[32],"_currentViewMode":[32],"goToView":[64],"openConfigurator":[64],"closeConfigurator":[64],"reloadFilterBar":[64]}]]],["p-33fa83b0",[[2,"snk-form",{"configName":[1,"config-name"],"recordsValidator":[16],"messagesBuilder":[1040],"_dataUnit":[32],"_dataState":[32],"_showFormConfig":[32],"_configManager":[32],"showConfig":[64],"hideConfig":[64]}]]],["p-c2d3e4fb",[[2,"snk-application",{"messagesBuilder":[1040],"configName":[1,"config-name"],"isUserSup":[64],"initOnboarding":[64],"hasAccess":[64],"getAllAccess":[64],"getStringParam":[64],"getIntParam":[64],"getFloatParam":[64],"getBooleanParam":[64],"getDateParam":[64],"showPopUp":[64],"showModal":[64],"closeModal":[64],"closePopUp":[64],"temOpcional":[64],"getConfig":[64],"saveConfig":[64],"getAttributeFromHTMLWrapper":[64],"openApp":[64],"webConnection":[64],"createDataunit":[64],"updateDataunitCache":[64],"getDataUnit":[64],"addClientEvent":[64],"removeClientEvent":[64],"hasClientEvent":[64],"getResourceID":[64],"getUserID":[64],"alert":[64],"error":[64],"success":[64],"message":[64],"confirm":[64],"info":[64],"loadGridConfig":[64],"loadTotals":[64],"executeSearch":[64],"executePreparedSearch":[64],"isDebugMode":[64],"getAppLabel":[64],"addSearchListener":[64],"importScript":[64],"getApplicationPath":[64],"executeSelectDistinct":[64]}]]],["p-7c50ded4",[[6,"snk-simple-crud",{"dataState":[16],"dataUnit":[16],"mode":[2],"gridConfig":[16],"formConfig":[16],"multipleSelection":[4,"multiple-selection"],"useCancelConfirm":[4,"use-cancel-confirm"],"taskbarManager":[16],"messagesBuilder":[1040],"_currentViewMode":[32],"_config":[32],"goToView":[64],"setMetadata":[64],"setRecords":[64],"getRecords":[64]},[[0,"actionClick","actionClickListener"]]]]],["p-26b0ce3e",[[2,"snk-form-summary",{"fixed":[1540],"contracted":[1540],"summary":[16]}]]],["p-216f081a",[[6,"snk-form-view",{"levelPath":[1,"level-path"],"label":[1],"name":[1],"fields":[16],"formMetadata":[8,"form-metadata"],"dataUnit":[16],"contracted":[4],"fixed":[1540],"summaryFields":[16],"canExpand":[4,"can-expand"],"canFix":[4,"can-fix"],"recordsValidator":[16],"showUp":[64]}]]],["p-c7c4ed56",[[2,"snk-actions-button",{"_items":[32],"_showDropdown":[32],"_actions":[32],"_isOrderActions":[32]}]]],["p-88aa931b",[[6,"snk-simple-bar",{"label":[1],"breadcrumbItens":[16],"messagesBuilder":[1040]}]]]]'),e)));
|
1
|
+
import{p as e,b as t}from"./p-d2d301a6.js";export{s as setNonce}from"./p-d2d301a6.js";(()=>{const t=import.meta.url,a={};return""!==t&&(a.resourcesUrl=new URL(".",t).href),e(a)})().then((e=>t(JSON.parse('[["p-118e769b",[[1,"teste-pesquisa"]]],["p-40a5d35e",[[0,"snk-filter-modal",{"getMessage":[16],"configName":[1025,"config-name"],"filters":[1040],"applyFilters":[16],"closeModal":[16],"addPersonalizedFilter":[16],"editPersonalizedFilter":[16]}]]],["p-ac8d1cd6",[[2,"snk-actions-form",{"action":[16],"applyParameters":[16],"dataUnit":[32],"openPopup":[64]}]]],["p-9531fd46",[[2,"snk-client-confirm",{"titleMessage":[1,"title-message"],"message":[1],"accept":[16],"cancel":[16],"openPopup":[64]}]]],["p-de69b4b0",[[2,"snk-entity-list",{"config":[1040],"rightListSlotBuilder":[1040],"maxHeightList":[1,"max-height-list"],"_searchValue":[32],"_ezListSource":[32],"reloadList":[64]}]]],["p-eb636e15",[[0,"snk-filter-binary-select",{"value":[1544],"config":[16],"presentationMode":[2,"presentation-mode"],"resetValues":[64]},[[0,"ezChange","ezChangeListener"]]]]],["p-a1e1b305",[[4,"snk-filter-list",{"label":[1],"iconName":[1,"icon-name"],"items":[16],"getMessage":[16],"emptyText":[1,"empty-text"],"findFilterText":[1,"find-filter-text"],"buttonClass":[1,"button-class"],"_filterArgument":[32],"_showAll":[32],"hideDetail":[64]},[[2,"keydown","keyDownHandler"]]]]],["p-cb37982f",[[0,"snk-filter-multi-select",{"value":[1544],"config":[16],"show":[64]},[[0,"ezChange","ezChangeListener"]]]]],["p-e3a82e1c",[[0,"snk-filter-number",{"config":[16],"value":[2],"show":[64]},[[0,"ezChange","ezChangeListener"]]]]],["p-959e0835",[[0,"snk-filter-period",{"config":[16],"getMessage":[16],"value":[8],"presentationMode":[2,"presentation-mode"],"show":[64]},[[0,"ezChange","ezChangeListener"]]]]],["p-fe49067d",[[0,"snk-filter-search",{"config":[16],"value":[16],"show":[64]},[[0,"ezChange","ezChangeListener"]]]]],["p-96a89d58",[[0,"snk-filter-text",{"config":[16],"value":[1]},[[0,"ezChange","ezChangeListener"]]]]],["p-26ad62b9",[[2,"snk-personalized-filter-editor",{"messagesBuilder":[1040],"presentationMode":[2,"presentation-mode"],"config":[16],"value":[1040],"items":[32],"show":[64]}]]],["p-88a40b96",[[0,"snk-filter-modal-item",{"filterItem":[1040],"configName":[1025,"config-name"]}]]],["p-d9586ead",[[2,"snk-expression-item",{"expression":[16],"canRemove":[516,"can-remove"],"messagesBuilder":[1040],"entityURI":[1025,"entity-u-r-i"],"_showValueVariable":[32],"_fieldSelected":[32],"_optionNotNull":[32]}],[2,"snk-filter-field-search",{"searchable":[4],"fieldsDataSource":[16],"breadcrumbItems":[32],"linkItems":[32],"fieldItems":[32],"searchEmpty":[32],"groupEmpty":[32],"show":[64],"applyFilter":[64]}],[0,"snk-filter-param-config",{"messagesBuilder":[1040],"_opened":[32],"_configType":[32],"_expressionItem":[32],"_informedInstance":[32],"_canSave":[32],"open":[64],"close":[64]}]]],["p-f8ce17d3",[[2,"snk-expression-group",{"parentTop":[1026,"parent-top"],"group":[1040],"messagesBuilder":[1040],"filterId":[1025,"filter-id"],"entityURI":[1025,"entity-u-r-i"],"_conditionOperator":[32],"_group":[32],"_selfTop":[32],"canAddExpression":[32],"_showDashes":[32],"getExpressionGroup":[64]},[[8,"ezExpressionLayoutChanged","todoCompletedHandler"]]]]],["p-86e10ecc",[[2,"snk-personalized-filter",{"messagesBuilder":[1040],"entityUri":[1025,"entity-uri"],"filterId":[1025,"filter-id"],"configName":[1025,"config-name"],"_filterAssistentMode":[32],"_filterAssistent":[32],"createPersonalizedFilter":[64]}]]],["p-5e06e139",[[2,"snk-detail-view",{"formConfigManager":[1040],"dataUnitName":[1,"data-unit-name"],"guideItemPath":[16],"entityName":[1,"entity-name"],"label":[1],"dataUnit":[1040],"selectedForm":[1025,"selected-form"],"dataState":[1040],"messagesBuilder":[1040],"branchGuide":[16],"_disabledButtons":[32],"attachmentRegisterKey":[32],"changeViewMode":[64],"configGrid":[64],"showUp":[64]},[[0,"snkContentCardChanged","onContentCardChanged"]]]]],["p-befbc9ee",[[6,"snk-configurator",{"showActionButtons":[4,"show-action-buttons"],"configName":[1,"config-name"],"viewMode":[2,"view-mode"],"messagesBuilder":[1040],"_opened":[32],"_permissions":[32],"open":[64],"close":[64]}]]],["p-247a8b36",[[2,"snk-pesquisa",{"searchLoader":[16],"selectItem":[16],"argument":[1025],"_itemList":[32],"_startLoading":[32]}]]],["p-fdc262aa",[[2,"snk-attach",{"registerKey":[1,"register-key"],"entityName":[1,"entity-name"],"messagesBuilder":[1040],"dataUnit":[32],"crudConfig":[32]}]]],["p-25df01a1",[[0,"snk-filter-detail",{"config":[1040],"getMessage":[16],"show":[64]}]]],["p-775e60f5",[[2,"snk-filter-bar",{"dataUnit":[1040],"configName":[1,"config-name"],"filterConfig":[1040],"messagesBuilder":[1040],"allowDefault":[32],"scrollerLocked":[32],"showPersonalizedFilter":[32],"personalizedFilterId":[32],"reload":[64]},[[0,"filterChange","filterChangeListener"]]]]],["p-d2f7dbd8",[[2,"snk-config-options",{"fieldConfig":[16],"idConfig":[513,"id-config"],"dataUnit":[16],"messagesBuilder":[1040],"_defaultType":[32]}]]],["p-f30526a7",[[2,"snk-field-config",{"isConfigActive":[16],"fieldConfig":[16],"modeInsertion":[516,"mode-insertion"],"dataUnit":[16],"messagesBuilder":[1040]}]]],["p-d3ec3586",[[6,"snk-tab-config",{"selectedIndex":[1538,"selected-index"],"selectedTab":[1537,"selected-tab"],"tabs":[1],"tabItems":[16],"messagesBuilder":[1040],"_processedTabs":[32],"_activeEditText":[32],"_activeEditTextIndex":[32],"_actionsHide":[32],"_actionsShow":[32]}]]],["p-6504ccfe",[[2,"snk-form-config",{"dataUnit":[16],"configManager":[16],"messagesBuilder":[1040],"_formConfigOptions":[32],"_fieldConfigSelected":[32],"_layoutFormConfig":[32],"_fieldsAvailable":[32],"_formConfig":[32],"_formConfigChanged":[32],"_optionFormConfigSelected":[32],"_optionFormConfigChanged":[32],"_tempGroups":[32]}]]],["p-838f8234",[[1,"snk-select-box",{"selectedOption":[1,"selected-option"]}]]],["p-ad69e220",[[2,"snk-grid-config",{"selectedIndex":[1026,"selected-index"],"application":[16],"columns":[1040],"config":[1040],"configName":[1,"config-name"]}]]],["p-30134b16",[[0,"snk-filter-item",{"config":[1040],"getMessage":[16],"detailIsVisible":[32],"showUp":[64],"hideDetail":[64]},[[2,"click","clickListener"],[2,"mousedown","mouseDownListener"],[0,"filterChange","filterChangeListener"]]]]],["p-d881cab2",[[2,"snk-data-unit",{"dataState":[1040],"messagesBuilder":[1040],"dataUnitName":[1,"data-unit-name"],"entityName":[1,"entity-name"],"pageSize":[2,"page-size"],"dataUnit":[1040],"beforeSave":[16],"afterSave":[16],"useCancelConfirm":[4,"use-cancel-confirm"],"getDataUnit":[64],"getSelectedRecordsIDsInfo":[64]}]]],["p-219f888d",[[0,"snk-exporter-email-sender",{"getMessage":[16],"_config":[32],"_opened":[32],"_currentStep":[32],"open":[64],"close":[64]}]]],["p-402db136",[[2,"snk-data-exporter",{"provider":[16],"messagesBuilder":[1040],"_items":[32],"_showDropdown":[32],"_releasedToExport":[32]}]]],["p-c6380ea2",[[6,"snk-taskbar",{"configName":[1,"config-name"],"buttons":[1],"customButtons":[16],"actionsList":[16],"primaryButton":[1,"primary-button"],"disabledButtons":[16],"dataUnit":[16],"presentationMode":[1537,"presentation-mode"],"messagesBuilder":[1040],"_permissions":[32]}]]],["p-18de3bbd",[[6,"snk-grid",{"configName":[1,"config-name"],"selectionToastConfig":[16],"actionsList":[16],"isDetail":[4,"is-detail"],"taskbarManager":[16],"statusResolver":[16],"multipleSelection":[4,"multiple-selection"],"presentationMode":[1,"presentation-mode"],"messagesBuilder":[1040],"_dataUnit":[32],"_dataState":[32],"_gridConfig":[32],"_popUpGridConfig":[32],"showConfig":[64],"hideConfig":[64],"setConfig":[64],"reloadFilterBar":[64]}]]],["p-ca29b093",[[2,"snk-guides-viewer",{"_guideBuilders":[16],"dataUnit":[16],"dataState":[16],"configName":[1,"config-name"],"entityPath":[1,"entity-path"],"actionsList":[16],"recordsValidator":[16],"masterFormConfig":[1040],"selectedGuide":[16],"taskbarManager":[16],"messagesBuilder":[1040],"presentationMode":[1,"presentation-mode"],"_breadcrumbItems":[32],"_guides":[32],"_formEditorConfigManager":[32],"_formEditorDataUnit":[32],"showFormConfig":[64]},[[2,"actionClick","onActionClick"],[0,"snkContentCardChanged","onContentCardChanged"]]]]],["p-7c10486f",[[6,"snk-crud",{"configName":[1025,"config-name"],"selectionToastConfig":[16],"showActionButtons":[4,"show-action-buttons"],"actionsList":[16],"taskbarManager":[16],"recordsValidator":[16],"statusResolver":[16],"multipleSelection":[4,"multiple-selection"],"presentationMode":[1,"presentation-mode"],"messagesBuilder":[1040],"_dataUnit":[32],"_dataState":[32],"attachmentRegisterKey":[32],"_currentViewMode":[32],"goToView":[64],"openConfigurator":[64],"closeConfigurator":[64],"reloadFilterBar":[64]}]]],["p-33fa83b0",[[2,"snk-form",{"configName":[1,"config-name"],"recordsValidator":[16],"messagesBuilder":[1040],"_dataUnit":[32],"_dataState":[32],"_showFormConfig":[32],"_configManager":[32],"showConfig":[64],"hideConfig":[64]}]]],["p-c2d3e4fb",[[2,"snk-application",{"messagesBuilder":[1040],"configName":[1,"config-name"],"isUserSup":[64],"initOnboarding":[64],"hasAccess":[64],"getAllAccess":[64],"getStringParam":[64],"getIntParam":[64],"getFloatParam":[64],"getBooleanParam":[64],"getDateParam":[64],"showPopUp":[64],"showModal":[64],"closeModal":[64],"closePopUp":[64],"temOpcional":[64],"getConfig":[64],"saveConfig":[64],"getAttributeFromHTMLWrapper":[64],"openApp":[64],"webConnection":[64],"createDataunit":[64],"updateDataunitCache":[64],"getDataUnit":[64],"addClientEvent":[64],"removeClientEvent":[64],"hasClientEvent":[64],"getResourceID":[64],"getUserID":[64],"alert":[64],"error":[64],"success":[64],"message":[64],"confirm":[64],"info":[64],"loadGridConfig":[64],"loadTotals":[64],"executeSearch":[64],"executePreparedSearch":[64],"isDebugMode":[64],"getAppLabel":[64],"addSearchListener":[64],"importScript":[64],"getApplicationPath":[64],"executeSelectDistinct":[64]}]]],["p-4c8d0516",[[6,"snk-simple-crud",{"dataState":[16],"dataUnit":[16],"mode":[2],"gridConfig":[16],"formConfig":[16],"multipleSelection":[4,"multiple-selection"],"useCancelConfirm":[4,"use-cancel-confirm"],"taskbarManager":[16],"messagesBuilder":[1040],"_currentViewMode":[32],"_config":[32],"goToView":[64],"setMetadata":[64],"setRecords":[64],"getRecords":[64]},[[0,"actionClick","actionClickListener"]]]]],["p-26b0ce3e",[[2,"snk-form-summary",{"fixed":[1540],"contracted":[1540],"summary":[16]}]]],["p-216f081a",[[6,"snk-form-view",{"levelPath":[1,"level-path"],"label":[1],"name":[1],"fields":[16],"formMetadata":[8,"form-metadata"],"dataUnit":[16],"contracted":[4],"fixed":[1540],"summaryFields":[16],"canExpand":[4,"can-expand"],"canFix":[4,"can-fix"],"recordsValidator":[16],"showUp":[64]}]]],["p-c7c4ed56",[[2,"snk-actions-button",{"_items":[32],"_showDropdown":[32],"_actions":[32],"_isOrderActions":[32]}]]],["p-88aa931b",[[6,"snk-simple-bar",{"label":[1],"breadcrumbItens":[16],"messagesBuilder":[1040]}]]]]'),e)));
|
@@ -8,6 +8,7 @@ import InMemoryLoader from '../../lib/dataUnit/InMemoryLoader';
|
|
8
8
|
import { IFormConfig } from '@sankhyalabs/ezui/dist/types/utils/form/interfaces';
|
9
9
|
import { SnkMessageBuilder } from '../../lib/message/SnkMessageBuilder';
|
10
10
|
import { IGridConfig } from '@sankhyalabs/ezui/dist/types/components/ez-grid/controller/EzGridController';
|
11
|
+
import SnkMultiSelectionListDataSource from '../snk-grid/filtercolumn/SnkMultiSelectionListDataSource';
|
11
12
|
export declare class SnkSimpleCrud {
|
12
13
|
private readonly REGULAR_DEFAULT_BTNS;
|
13
14
|
private readonly REGULAR_SELECTED_BTNS;
|
@@ -15,6 +16,7 @@ export declare class SnkSimpleCrud {
|
|
15
16
|
_snkGrid: HTMLSnkGridElement;
|
16
17
|
_inMemoryLoader: InMemoryLoader;
|
17
18
|
_metadata: UnitMetadata;
|
19
|
+
_multiSelectionListDataSource: SnkMultiSelectionListDataSource;
|
18
20
|
private _element;
|
19
21
|
_currentViewMode: VIEW_MODE;
|
20
22
|
_config: {};
|
@@ -60,6 +62,7 @@ export declare class SnkSimpleCrud {
|
|
60
62
|
observeDataState(newValue: DataState, oldValue: DataState): void;
|
61
63
|
componentWillRender(): void;
|
62
64
|
componentWillLoad(): void;
|
65
|
+
configDatasource(): void;
|
63
66
|
getTaskBarId(): string;
|
64
67
|
initInMemoryDataUnit(): void;
|
65
68
|
setMetadata(metadata: UnitMetadata): Promise<void>;
|
@@ -1,4 +1,4 @@
|
|
1
|
-
import { DataUnit, Record, UnitMetadata } from
|
1
|
+
import { DataUnit, Record, UnitMetadata } from '@sankhyalabs/core';
|
2
2
|
export default class InMemoryLoader {
|
3
3
|
private _dataUnit;
|
4
4
|
private _records;
|
@@ -12,6 +12,8 @@ export default class InMemoryLoader {
|
|
12
12
|
private generateUniqueId;
|
13
13
|
private metadaLoader;
|
14
14
|
private dataLoader;
|
15
|
+
private applyFilters;
|
16
|
+
private getColumnFilters;
|
15
17
|
private getSortFn;
|
16
18
|
private sortObject;
|
17
19
|
private sortNumber;
|
package/package.json
CHANGED
@@ -1 +0,0 @@
|
|
1
|
-
import{r as t,c as s,h as i,g as e}from"./p-d2d301a6.js";import{DataUnit as r,StringUtils as a,SortMode as n,DataType as h,ChangeOperation as o,ObjectUtils as d,UserInterface as l}from"@sankhyalabs/core";import{c as u,S as m}from"./p-4a78e118.js";import{T as c}from"./p-a2493d11.js";import"./p-41d92871.js";import"./p-11028eba.js";import{P as p}from"./p-5534e08c.js";import{T as g}from"./p-c2beb95c.js";import"./p-6dc031de.js";import"./p-112455b1.js";class b{constructor(t,s){this.records=s||[],this.metadata=t,this._dataUnit=new r("InMemoryDataUnit"),this._dataUnit.metadataLoader=()=>this.metadaLoader(),this._dataUnit.dataLoader=(t,s)=>this.dataLoader(t,s),this._dataUnit.saveLoader=(t,s)=>this.saveLoader(t,s),this._dataUnit.removeLoader=(t,s)=>this.removeLoader(t,s),this.dataUnit.loadMetadata().then((()=>this.dataUnit.loadData()))}get dataUnit(){return this._dataUnit}get records(){return this._records}set records(t){this._records=null==t?void 0:t.map((t=>(t.__record__id__||(t.__record__id__=this.generateUniqueId()),t))),this._dataUnit&&(this._dataUnit.records=[...this._records])}get metadata(){return this._metadata}set metadata(t){this._metadata=t,this._dataUnit&&(this._dataUnit.metadata=this._metadata)}generateUniqueId(){return a.generateUUID()}metadaLoader(){return Promise.resolve(this._metadata)}dataLoader(t,s){let i=[...this._records];return s.sort&&s.sort.forEach((t=>{i=i.sort(((s,i)=>{const e=s[t.field],r=i[t.field];return this.getSortFn(t.dataType)(e,r)*(t.mode==n.ASC?1:-1)}))})),Promise.resolve({records:i})}getSortFn(t){switch(t){case h.NUMBER:return this.sortNumber;case h.DATE:return this.sortDate;case h.OBJECT:return this.sortObject;default:return a.compare}}sortObject(t,s){return a.compare(t.label,s.label)}sortNumber(t,s){return t-s}sortDate(t,s){let i=t.getTime(),e=s.getTime();return i===e?0:i<e?-1:1}saveLoader(t,s){return new Promise((t=>{let i=[];s.forEach((t=>{let{record:s,updatingFields:e,operation:r}=t,a=!1;r!==o.INSERT&&r!==o.COPY||(s.__old__id__=s.__record__id__,s.__record__id__=this.generateUniqueId(),a=!0);const n=Object.assign(Object.assign({},s),e);if(a)this.records.push(n);else{const t=this.records.findIndex((t=>t.__record__id__==n.__record__id__));this.records[t]=n}i.push(n)})),t(i)}))}removeLoader(t,s){return new Promise((t=>{this._records=this._records.filter((t=>!s.includes(t.__record__id__))),t(s)}))}}const k=class{constructor(i){t(this,i),this.dataStateChange=s(this,"dataStateChange",3),this.dataUnitReady=s(this,"dataUnitReady",3),this.actionClick=s(this,"actionClick",7),this.REGULAR_DEFAULT_BTNS=["INSERT","REFRESH","PREVIOUS","NEXT","DIVIDER"],this.REGULAR_SELECTED_BTNS=["INSERT","REFRESH","PREVIOUS","NEXT","DIVIDER","CLONE","REMOVE","DIVIDER"],this._taskbarProcessor=new g({"snkSimpleCrudTaskbar.form_regular":this.resolveInMemoryBtns(this.REGULAR_DEFAULT_BTNS).concat(c.GRID_MODE),"snkSimpleCrudTaskbar.grid_regular":this.resolveInMemoryBtns(this.REGULAR_DEFAULT_BTNS).concat(c.FORM_MODE),"snkSimpleCrudTaskbar.form_selected":this.resolveInMemoryBtns(this.REGULAR_SELECTED_BTNS).concat(c.GRID_MODE),"snkSimpleCrudTaskbar.grid_selected":this.resolveInMemoryBtns(this.REGULAR_SELECTED_BTNS).concat(c.FORM_MODE),"snkSimpleCrudTaskbar.finish_edition":["CANCEL","SAVE"]}),this._currentViewMode=u.GRID,this._config=void 0,this.dataState=void 0,this.dataUnit=void 0,this.mode=m.SERVER,this.gridConfig=void 0,this.formConfig=void 0,this.multipleSelection=void 0,this.useCancelConfirm=!0,this.taskbarManager=void 0,this.messagesBuilder=void 0}resolveInMemoryBtns(t){const s=[...t];return this.mode===m.IN_MEMORY&&s.splice(1,1),s}async goToView(t){this._currentViewMode=t,this._viewStack&&this._viewStack.show(t)}actionClickListener(t){const s=t.detail;s===c.GRID_MODE?this.goToView(u.GRID):s===c.FORM_MODE&&this.goToView(u.FORM),t.stopPropagation()}onModeChange(){this.mode==m.IN_MEMORY&&this.initInMemoryDataUnit()}observeDataState(t,s){d.objectToString(s)!=d.objectToString(t)&&this.dataStateChange.emit(t)}componentWillRender(){this._taskbarProcessor.process(this.getTaskBarId(),this.taskbarManager,this.dataState,this.getTaskBarDisabledButtons())}componentWillLoad(){this.processMetadata(),this.onModeChange()}getTaskBarId(){var t,s,i;return(null===(t=this.dataState)||void 0===t?void 0:t.isDirty)?"snkSimpleCrudTaskbar.finish_edition":(null===(s=this.dataState)||void 0===s?void 0:s.selectionInfo)&&!this.dataState.selectionInfo.isAllRecords()&&(null===(i=this.dataState.selectionInfo.records)||void 0===i?void 0:i.length)>0?this._currentViewMode===u.GRID?"snkSimpleCrudTaskbar.grid_selected":"snkSimpleCrudTaskbar.form_selected":this._currentViewMode===u.GRID?"snkSimpleCrudTaskbar.grid_regular":"snkSimpleCrudTaskbar.form_regular"}initInMemoryDataUnit(){this._inMemoryLoader=new b(this._metadata),this.dataUnit=this._inMemoryLoader.dataUnit,this.dataUnitReady.emit(this.dataUnit)}setMetadata(t){return this._inMemoryLoader?this._inMemoryLoader.metadata=t:this.dataUnit&&(this.dataUnit.metadata=t),Promise.resolve()}setRecords(t){return this._inMemoryLoader?this._inMemoryLoader.records=t:this.dataUnit&&(this.dataUnit.records=t),Promise.resolve()}getRecords(){return Promise.resolve(this.dataUnit.records)}processMetadata(){const t=this._element.querySelectorAll("snk-field-metadata"),s=[],i={fields:[],emptyConfig:!1};t.forEach((t=>{const e={name:t.getAttribute("name")||t.getAttribute("label"),label:t.getAttribute("label"),dataType:h[t.getAttribute("dataType")]||h.TEXT,userInterface:l[t.getAttribute("userInterface")]||l.SHORTTEXT,readOnly:"true"==t.getAttribute("readOnly"),required:"true"==t.getAttribute("required"),tab:t.getAttribute("tab")||void 0,visible:"false"!=t.getAttribute("visible")};i.fields.push({name:e.name,tab:e.tab,visible:e.visible}),s.push(e)})),s.length>0&&(this.formConfig||(this.formConfig=i),this._metadata={name:"SimpleCrud",label:"SimpleCrud",fields:s})}onDataStateChange(t){this.dataState=Object.assign({},t.detail)}getTaskBarDisabledButtons(){var t,s;const i=[];return(null===(t=this.dataState)||void 0===t?void 0:t.hasNext)||i.push(c.NEXT),(null===(s=this.dataState)||void 0===s?void 0:s.hasPrevious)||i.push(c.PREVIOUS),i}render(){var t;return i("snk-data-unit",{class:"simple-crud__container",dataUnit:this.dataUnit,useCancelConfirm:this.useCancelConfirm,onDataStateChange:t=>this.onDataStateChange(t),onInsertionMode:()=>this.goToView(u.FORM),onDataUnitReady:t=>this.dataUnitReady.emit(t.detail),onMessagesBuilderUpdated:t=>this.messagesBuilder=t.detail},i("header",null,i("slot",{name:"snkSimpleCrudHeader"})),i("section",{class:"ez-flex ez-box ez-box--shadow"},i("snk-taskbar",{class:"ez-box ez-box--shadow ez-padding--medium ez-margin-bottom--large",dataUnit:this.dataUnit,primaryButton:(null===(t=this.dataState)||void 0===t?void 0:t.isDirty)?"SAVE":"INSERT","data-element-id":"grid_left",messagesBuilder:this.messagesBuilder,buttons:this._taskbarProcessor.buttons,disabledButtons:this._taskbarProcessor.disabledButtons,customButtons:this._taskbarProcessor.customButtons,slot:"leftButtons",presentationMode:p.SECONDARY}),i("ez-view-stack",{class:"ez-flex ez-flex--column",ref:t=>this._viewStack=t,"data-element-id":"simple-crud"},i("stack-item",null,i("ez-grid",{dataUnit:this.dataUnit,config:this.gridConfig,"no-header":!0,multipleSelection:this.multipleSelection,onEzDoubleClick:()=>this.goToView(u.FORM)},i("div",{slot:"footer"},i("slot",{name:"snkSimpleCrudFooter"})))),i("stack-item",null,i("ez-form",{dataUnit:this.dataUnit,config:this.formConfig})))))}get _element(){return e(this)}static get watchers(){return{mode:["onModeChange"],dataState:["observeDataState"]}}};k.style=".sc-snk-simple-crud-h{display:flex;height:100%;width:100%}.simple-crud__container.sc-snk-simple-crud{display:grid;grid-template-rows:auto;row-gap:12px;height:100%;width:100%}ez-grid.sc-snk-simple-crud{--ez-grid__container--shadow:none;min-height:300px}ez-form.sc-snk-simple-crud{min-height:300px}";export{k as snk_simple_crud}
|
@@ -1 +0,0 @@
|
|
1
|
-
import{r as i,c as t,h as s,g as e}from"./p-d2d301a6.js";import{UserInterface as r,DateUtils as a,ElementIDUtils as d,ApplicationContext as n,DataType as o}from"@sankhyalabs/core";import{UserInterface as h}from"@sankhyalabs/core/dist/dataunit/metadata/UnitMetadata";import{T as l}from"./p-a2493d11.js";import{C as c}from"./p-801b8858.js";import{P as u}from"./p-5534e08c.js";import{T as v}from"./p-c2beb95c.js";import{s as g}from"./p-6dc031de.js";import{SelectionMode as m}from"@sankhyalabs/core/dist/dataunit/DataUnit";import"./p-2ea933b2.js";import"./p-41d92871.js";import"./p-112455b1.js";import"./p-79f78e10.js";import"./p-3d45107f.js";import"./p-584d7212.js";class f{setDataUnit(i){this._dataUnit=i}setApplication(i){this._application=i}formatLabel(i,t){const{userInterface:s}=this._dataUnit.getField(i);return s===r.DATETIME?a.formatDate(this._dataUnit.valueFromString(i,t)):String(this._dataUnit.getFormattedValue(i,t))}fetchData(i,t){return new Promise((s=>{this._application.executeSelectDistinct(this._dataUnit,t,i).then((i=>{s(i.map((i=>this._dataUnit.getField(t).userInterface===r.SEARCH?Object.assign(Object.assign({},JSON.parse(i)),{check:!0}):{value:i,label:this.formatLabel(t,i),check:!0})))}))}))}}const k=class{constructor(s){i(this,s),this.actionClick=t(this,"actionClick",7),this.gridDoubleClick=t(this,"gridDoubleClick",7),this._multiSelectionListDataSource=new f,this._topTaskbarProcessor=new v({"snkGridTopTaskbar.regular":["FORM_MODE","CONFIGURATOR","INSERT"],"snkGridTopTaskbar.regular.secondary":["FORM_MODE","CONFIGURATOR","INSERT"],"snkGridTopTaskbar.finish_edition":["CANCEL","SAVE"],"snkGridTopTaskbar.finish_edition.secondary":[]}),this._headerTaskbarProcessor=new v({"snkGridHeaderTaskbar.unselected":["REFRESH","DATA_EXPORTER","ACTIONS_BUTTON"],"snkGridHeaderTaskbar.selected":["UPDATE","CLONE","REMOVE","MORE_OPTIONS","DIVIDER","ATTACH","REFRESH","DATA_EXPORTER","ACTIONS_BUTTON"],"snkGridHeaderTaskbar.detail.unselected":["REFRESH"],"snkGridHeaderTaskbar.detail.selected":["UPDATE","ATTACH","CLONE","REMOVE","MORE_OPTIONS","DIVIDER","REFRESH"]}),this._dataUnit=void 0,this._dataState=void 0,this._gridConfig=void 0,this._popUpGridConfig=!1,this.configName=void 0,this.selectionToastConfig=void 0,this.actionsList=void 0,this.isDetail=void 0,this.taskbarManager=void 0,this.statusResolver=void 0,this.multipleSelection=void 0,this.presentationMode=u.PRIMARY,this.messagesBuilder=void 0}async showConfig(){null!=this._grid&&this.openGridConfig()}async hideConfig(){null!=this._grid&&this.closeGridConfig()}async setConfig(i){this.setGridConfig(i)}async reloadFilterBar(){var i;null===(i=this._snkFilterBar)||void 0===i||i.reload()}openGridConfig(){this._grid.getColumnsState().then((i=>{this._snkGridConfig.columns=i.filter((i=>i.name)),this._snkGridConfig.selectedIndex=0,this._popUpGridConfig=!0}))}closeGridConfig(){this._popUpGridConfig=!1}setGridConfig(i){this._gridConfig=i}loadConfig(){c.get().then((i=>{i.loadGridConfig(this.configName).then((i=>{this.setGridConfig(i)})).catch((i=>{console.warn(i)}))}))}gridConfigChangeHandler(i){c.saveGridConfig(i.detail,this.configName),i.stopPropagation()}modalConfigChangeHandler(i){const t=i.detail;this._grid.setColumnsState(t.columns).then((()=>{this.setGridConfig(t),this.closeGridConfig(),this.dataExporterProviderStore()})),i.stopPropagation()}buildColumnsMetadata(i){const t=[];return null==i||i.forEach((i=>{var s,e;if(i.hidden&&"RECDESP"!==i.name)return;const r=null===(s=this._dataUnit)||void 0===s?void 0:s.getField(i.name);if(t.push({label:i.label,id:i.name,width:i.width,type:null==r?void 0:r.dataType,userInterface:null==r?void 0:r.userInterface}),null!=(null===(e=null==r?void 0:r.properties)||void 0===e?void 0:e.DESCRIPTIONFIELD)){const i=r.properties.mergedFrom;t.push({label:r.properties.DESCRIPTIONENTITY,id:`${i?i+".":""}${r.properties.ENTITYNAME}.${r.properties.DESCRIPTIONFIELD}`,width:200,type:o.TEXT,userInterface:h.LONGTEXT})}})),t||[]}getPaginationInfo(){var i;return null===(i=this._dataUnit)||void 0===i?void 0:i.getPaginationInfo()}getExporterOffset(i){if(null==i)return;const t=i.firstRecord;return t>0?t-1:t}async dataExporterProviderStore(){var i;const t=await(null===(i=this._snkDataUnit)||void 0===i?void 0:i.getSelectedRecordsIDsInfo()),s={getFilters:()=>{var i;return null===(i=this._dataUnit)||void 0===i?void 0:i.getAppliedFilters()},getColumnsMetadata:async()=>{var i;const t=await(null===(i=this._grid)||void 0===i?void 0:i.getColumnsState());return this.buildColumnsMetadata(t)},getOrders:()=>{var i;return null===(i=this._dataUnit)||void 0===i?void 0:i.getSort()},getResourceURI:()=>{var i;return null===(i=this._dataUnit)||void 0===i?void 0:i.name},getSelectedNumber:()=>{var i,t;return null===(t=null===(i=this._dataState)||void 0===i?void 0:i.selectionInfo)||void 0===t?void 0:t.length},getTotalRecords:()=>{var i,t,s;const{total:e}=(null===(i=this._dataUnit)||void 0===i?void 0:i.getPaginationInfo())||{};return null!=e?e:null===(s=null===(t=this._dataUnit)||void 0===t?void 0:t.records)||void 0===s?void 0:s.length},getSelectedIDs:()=>t||[],getOffset:()=>this.getExporterOffset(this.getPaginationInfo()),getLimit:()=>{var i;return null===(i=this._dataUnit)||void 0===i?void 0:i.pageSize},getRecordID:()=>{var i,t,s;return null===(s=null===(t=null===(i=this._dataUnit)||void 0===i?void 0:i.records)||void 0===t?void 0:t[0])||void 0===s?void 0:s.__record__id__}};g.set("exporterProviders",Object.assign(Object.assign({},g.get("exporterProviders")),{[this.configName]:s}))}addElementID(){d.addIDInfo(this._element,null,{dataUnit:this._dataUnit})}finshLoading(){this._dataUnitLoadLockerResolver=this._dataUnit.addLoadingLocker(),this.addElementID(),this._multiSelectionListDataSource.setApplication(this._application),this._multiSelectionListDataSource.setDataUnit(this._dataUnit)}componentWillLoad(){this._application=n.getContextValue("__SNK__APPLICATION__");let i=this._element.parentElement;for(;i;){if("SNK-DATA-UNIT"===i.tagName.toUpperCase()){this._snkDataUnit=i,this._dataUnit=this._snkDataUnit.dataUnit,this._dataUnit?this.finshLoading():this._snkDataUnit.addEventListener("dataUnitReady",(i=>{this._dataUnit=i.detail,this.finshLoading()})),this.messagesBuilder||(this.messagesBuilder=this._snkDataUnit.messagesBuilder),this._snkDataUnit.addEventListener("dataStateChange",(i=>{this._dataState=i.detail}));break}i=i.parentElement}this.loadConfig()}getHeaderDisabledButtons(){var i;const t=[];return(null===(i=this._dataState)||void 0===i?void 0:i.selectionInfo)&&(this._dataState.selectionInfo.length>1&&t.push(l.CLONE,"ATTACH"),this._dataState.selectionInfo.isAllRecords()&&t.push("REMOVE")),t}getInvisibleButtons(){let i=[];return this._dataUnit&&0!==this._dataUnit.records.length||i.push("DATA_EXPORTER"),this._dataState&&this._dataState.selectionInfo.mode===m.ALL_RECORDS&&i.push("ACTIONS_BUTTON"),i}componentWillRender(){var i;const t=this.getInvisibleButtons();let s;s=this._dataState&&(null===(i=this._dataState.selectionInfo)||void 0===i?void 0:i.length)?this.isDetail?"snkGridHeaderTaskbar.detail.selected":"snkGridHeaderTaskbar.selected":this.isDetail?"snkGridHeaderTaskbar.detail.unselected":"snkGridHeaderTaskbar.unselected",this._headerTaskbarProcessor.process(s,this.taskbarManager,this._dataState,this.getHeaderDisabledButtons(),t),this._topTaskbarProcessor.process(this.getTopTaskBarId(this.presentationMode===u.SECONDARY?".secondary":""),this.taskbarManager,this._dataState,void 0,t),this.dataExporterProviderStore()}getTopTaskBarId(i){var t;return(null===(t=this._dataState)||void 0===t?void 0:t.isDirty)?`snkGridTopTaskbar.finish_edition${i}`:`snkGridTopTaskbar.regular${i}`}getPrimaryButton(){return this.presentationMode===u.PRIMARY?"INSERT":""}onEzGridReady(){var i;null===(i=this._dataUnitLoadLockerResolver)||void 0===i||i.call(this),this._dataUnitLoadLockerResolver=void 0}render(){var i,t;if(this._dataUnit)return s("div",{class:"snk-grid__container ez-flex ez-flex--column ez-flex-item--auto ez-padding--large"},s("div",{class:"snk-grid__header ez-margin-bottom--medium"},s("snk-filter-bar",{ref:i=>this._snkFilterBar=i,dataUnit:this._dataUnit,"data-element-id":"gridFilter",class:"snk-grid__filter-bar ez-align--top",configName:this.configName,messagesBuilder:this.messagesBuilder}),(null===(t=null===(i=this._snkFilterBar)||void 0===i?void 0:i.filterConfig)||void 0===t?void 0:t.length)>0&&s("hr",{class:"ez-divider-vertical ez-divider--dark ez-margin-left--medium snk-grid__header-divider"}),s("snk-taskbar",{class:"ez-padding-left--medium","data-element-id":"grid_top",key:"topTaskbar",configName:this.configName,dataUnit:this._dataUnit,messagesBuilder:this.messagesBuilder,buttons:this._topTaskbarProcessor.buttons,disabledButtons:this._topTaskbarProcessor.disabledButtons,customButtons:this._topTaskbarProcessor.customButtons,primaryButton:this.getPrimaryButton()})),s("ez-grid",{ref:i=>this._grid=i,class:(this.presentationMode===u.SECONDARY?"snk-grid-container__without-shadow ":"")+"snk-grid__table","data-element-id":"embedded",dataUnit:this._dataUnit,key:"grid-"+this._snkDataUnit.entityName,config:this._gridConfig,onConfigChange:i=>{this.gridConfigChangeHandler(i)},onEzDoubleClick:()=>this.gridDoubleClick.emit(),statusResolver:this.statusResolver,multipleSelection:this.multipleSelection,onComponentReady:()=>this.onEzGridReady(),columnfilterDataSource:this._multiSelectionListDataSource,selectionToastConfig:this.selectionToastConfig},s("snk-taskbar",{dataUnit:this._dataUnit,configName:this.configName,messagesBuilder:this.messagesBuilder,"data-element-id":"grid_left",buttons:this._headerTaskbarProcessor.buttons,disabledButtons:this._headerTaskbarProcessor.disabledButtons,customButtons:this._headerTaskbarProcessor.customButtons,slot:"leftButtons",actionsList:this.actionsList})),s("div",{class:"ez-col ez-col--sd-12"},s("slot",{name:"SnkGridFooter"})),s("ez-modal",{modalSize:"small",closeEsc:!1,closeOutsideClick:!1,opened:this._popUpGridConfig,onEzCloseModal:()=>this.closeGridConfig()},s("snk-grid-config",{ref:i=>this._snkGridConfig=i,config:this._gridConfig,"data-element-id":this._element.getAttribute(d.DATA_ELEMENT_ID_ATTRIBUTE_NAME),application:this._application,selectedIndex:0,configName:this.configName,onConfigChange:i=>this.modalConfigChangeHandler(i),onConfigCancel:()=>this.closeGridConfig()})))}get _element(){return e(this)}};k.style=".snk-grid__container.sc-snk-grid{display:flex;height:100%;width:100%}.snk-grid__header.sc-snk-grid{display:flex;flex-wrap:nowrap;width:100%}.snk-grid__filter-bar.sc-snk-grid{width:100%}.snk-grid__header-divider.sc-snk-grid{margin-bottom:var(--space--medium)}.snk-grid__table.sc-snk-grid{min-height:300px}.snk-grid-container__without-shadow.sc-snk-grid{--ezgrid__container--shadow:unset}";export{k as snk_grid}
|