@sankhyalabs/sankhyablocks 8.16.0-dev.97 → 8.16.0-dev.98
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/{ClientSideExporterProvider-9bd6fa5a.js → ClientSideExporterProvider-cc82b68a.js} +2 -3
- package/dist/cjs/{ConfigStorage-6b633b10.js → ConfigStorage-2235f35e.js} +1 -1
- package/dist/cjs/{pesquisa-fetcher-30cab386.js → ISave-62fbb1dd.js} +8 -0
- package/dist/cjs/{SnkFormConfigManager-d680be08.js → SnkFormConfigManager-6637cd6b.js} +2 -2
- package/dist/cjs/{auth-fetcher-24ba4135.js → auth-fetcher-abad589f.js} +1 -1
- package/dist/cjs/{form-config-fetcher-e0a512c3.js → form-config-fetcher-db332748.js} +14 -0
- package/dist/cjs/index-f9e81701.js +2 -2
- package/dist/cjs/loader.cjs.js +1 -1
- package/dist/cjs/pesquisa-grid_2.cjs.entry.js +3 -4
- package/dist/cjs/sankhyablocks.cjs.js +1 -1
- package/dist/cjs/{snk-actions-button_5.cjs.entry.js → snk-actions-button_7.cjs.entry.js} +63 -4
- package/dist/cjs/snk-application.cjs.entry.js +48 -5
- package/dist/cjs/snk-attach.cjs.entry.js +3 -4
- package/dist/cjs/snk-config-options_3.cjs.entry.js +3 -3
- package/dist/cjs/snk-configurator.cjs.entry.js +8 -1
- package/dist/cjs/snk-crud.cjs.entry.js +5 -5
- package/dist/cjs/snk-data-exporter.cjs.entry.js +2 -3
- package/dist/cjs/snk-detail-view.cjs.entry.js +5 -6
- package/dist/cjs/snk-filter-bar_4.cjs.entry.js +2 -2
- package/dist/cjs/snk-filter-modal-item.cjs.entry.js +2 -2
- package/dist/cjs/snk-grid.cjs.entry.js +4 -5
- package/dist/cjs/{snk-guides-viewer-c588a295.js → snk-guides-viewer-0e4f3b1a.js} +3 -4
- package/dist/cjs/snk-guides-viewer.cjs.entry.js +5 -6
- package/dist/cjs/snk-personalized-filter.cjs.entry.js +2 -2
- package/dist/cjs/snk-pesquisa.cjs.entry.js +9 -10
- package/dist/cjs/snk-simple-crud.cjs.entry.js +7 -7
- package/dist/collection/collection-manifest.json +2 -0
- package/dist/collection/components/snk-application/snk-application.js +41 -0
- package/dist/collection/components/snk-configurator/snk-configurator.js +26 -1
- package/dist/collection/components/snk-crud/snk-crud.js +20 -1
- package/dist/collection/components/snk-layout-form-config/snk-layout-form-config.css +3 -0
- package/dist/collection/components/snk-layout-form-config/snk-layout-form-config.js +73 -0
- package/dist/collection/components/snk-layout-form-config/snk-view-representation/snk-view-representation.css +78 -0
- package/dist/collection/components/snk-layout-form-config/snk-view-representation/snk-view-representation.js +57 -0
- package/dist/collection/components/snk-simple-crud/snk-simple-crud.js +20 -1
- package/dist/collection/lib/configs/LayoutFormConfig.js +25 -0
- package/dist/collection/lib/http/data-fetcher/fetchers/form-config-fetcher.js +14 -0
- package/dist/components/form-config-fetcher.js +14 -0
- package/dist/components/index.d.ts +2 -0
- package/dist/components/index.js +2 -0
- package/dist/components/snk-application2.js +45 -0
- package/dist/components/snk-attach2.js +34 -22
- package/dist/components/snk-configurator2.js +22 -2
- package/dist/components/snk-crud.js +76 -62
- package/dist/components/snk-detail-view2.js +105 -83
- package/dist/components/snk-layout-form-config.d.ts +11 -0
- package/dist/components/snk-layout-form-config.js +6 -0
- package/dist/components/snk-layout-form-config2.js +73 -0
- package/dist/components/snk-simple-crud2.js +33 -19
- package/dist/components/snk-view-representation.d.ts +11 -0
- package/dist/components/snk-view-representation.js +6 -0
- package/dist/components/snk-view-representation2.js +41 -0
- package/dist/esm/{ClientSideExporterProvider-e42c5a48.js → ClientSideExporterProvider-8191676b.js} +2 -3
- package/dist/esm/{ConfigStorage-e5c1f4c0.js → ConfigStorage-9bd805d6.js} +1 -1
- package/dist/esm/{pesquisa-fetcher-e26c3295.js → ISave-7d546dce.js} +9 -1
- package/dist/esm/{SnkFormConfigManager-1efd102b.js → SnkFormConfigManager-fbc6a9a8.js} +2 -2
- package/dist/esm/{auth-fetcher-9987c66e.js → auth-fetcher-07d33333.js} +1 -1
- package/dist/esm/{form-config-fetcher-34becd23.js → form-config-fetcher-ac17cff4.js} +14 -0
- package/dist/esm/index-a7d3d3f1.js +2 -2
- package/dist/esm/loader.js +1 -1
- package/dist/esm/pesquisa-grid_2.entry.js +2 -3
- package/dist/esm/sankhyablocks.js +1 -1
- package/dist/esm/{snk-actions-button_5.entry.js → snk-actions-button_7.entry.js} +63 -6
- package/dist/esm/snk-application.entry.js +47 -4
- package/dist/esm/snk-attach.entry.js +3 -4
- package/dist/esm/snk-config-options_3.entry.js +3 -3
- package/dist/esm/snk-configurator.entry.js +8 -1
- package/dist/esm/snk-crud.entry.js +5 -5
- package/dist/esm/snk-data-exporter.entry.js +2 -3
- package/dist/esm/snk-detail-view.entry.js +5 -6
- package/dist/esm/snk-filter-bar_4.entry.js +2 -2
- package/dist/esm/snk-filter-modal-item.entry.js +2 -2
- package/dist/esm/snk-grid.entry.js +4 -5
- package/dist/esm/{snk-guides-viewer-c38641c5.js → snk-guides-viewer-80a8709c.js} +3 -4
- package/dist/esm/snk-guides-viewer.entry.js +5 -6
- package/dist/esm/snk-personalized-filter.entry.js +2 -2
- package/dist/esm/snk-pesquisa.entry.js +2 -3
- package/dist/esm/snk-simple-crud.entry.js +7 -7
- package/dist/sankhyablocks/p-01512409.js +26 -0
- package/dist/sankhyablocks/p-02c6dc9f.entry.js +1 -0
- package/dist/sankhyablocks/{p-6c43fcde.entry.js → p-0bcd4757.entry.js} +1 -1
- package/dist/sankhyablocks/{p-ef076eea.js → p-108fee57.js} +2 -2
- package/dist/sankhyablocks/{p-3fcb90d6.js → p-13f17dab.js} +1 -1
- package/dist/sankhyablocks/{p-d3b9b377.entry.js → p-340e2447.entry.js} +1 -1
- package/dist/sankhyablocks/p-35fcf37e.js +1 -0
- package/dist/sankhyablocks/p-3a36d4b3.entry.js +1 -0
- package/dist/sankhyablocks/{p-a77bdadc.js → p-48729c8c.js} +1 -1
- package/dist/sankhyablocks/p-513af002.entry.js +1 -0
- package/dist/sankhyablocks/{p-e5657d22.entry.js → p-6c0afbce.entry.js} +1 -1
- package/dist/sankhyablocks/p-950e3cbe.entry.js +1 -0
- package/dist/sankhyablocks/p-9907cf67.entry.js +1 -0
- package/dist/sankhyablocks/p-af58c9d7.entry.js +1 -0
- package/dist/sankhyablocks/p-c5acb7ba.entry.js +11 -0
- package/dist/sankhyablocks/p-c7c6eab7.entry.js +1 -0
- package/dist/sankhyablocks/{p-3ce68be5.js → p-cb9d725a.js} +1 -1
- package/dist/sankhyablocks/p-d1f04e2c.js +1 -0
- package/dist/sankhyablocks/p-d2065bb4.entry.js +1 -0
- package/dist/sankhyablocks/p-dc617b0c.entry.js +1 -0
- package/dist/sankhyablocks/p-e5d8891d.entry.js +1 -0
- package/dist/sankhyablocks/{p-e66bcb5c.entry.js → p-f467153c.entry.js} +1 -1
- package/dist/sankhyablocks/p-f861bfcb.entry.js +1 -0
- package/dist/sankhyablocks/sankhyablocks.esm.js +1 -1
- package/dist/types/components/snk-application/snk-application.d.ts +10 -0
- package/dist/types/components/snk-configurator/snk-configurator.d.ts +6 -0
- package/dist/types/components/snk-crud/snk-crud.d.ts +4 -0
- package/dist/types/components/snk-layout-form-config/snk-layout-form-config.d.ts +15 -0
- package/dist/types/components/snk-layout-form-config/snk-view-representation/snk-view-representation.d.ts +10 -0
- package/dist/types/components/snk-simple-crud/snk-simple-crud.d.ts +4 -0
- package/dist/types/components.d.ts +69 -1
- package/dist/types/lib/configs/LayoutFormConfig.d.ts +11 -0
- package/dist/types/lib/http/data-fetcher/fetchers/form-config-fetcher.d.ts +6 -0
- package/package.json +1 -1
- package/react/components.d.ts +2 -0
- package/react/components.js +2 -0
- package/react/components.js.map +1 -1
- package/dist/cjs/ISave-e91b70a7.js +0 -9
- package/dist/esm/ISave-d8c8bc59.js +0 -9
- package/dist/sankhyablocks/p-04acdc3a.entry.js +0 -1
- package/dist/sankhyablocks/p-04b96ffe.js +0 -1
- package/dist/sankhyablocks/p-05fda408.entry.js +0 -1
- package/dist/sankhyablocks/p-17af0b1c.entry.js +0 -1
- package/dist/sankhyablocks/p-21749402.js +0 -1
- package/dist/sankhyablocks/p-22ddc147.js +0 -26
- package/dist/sankhyablocks/p-27d12f8f.entry.js +0 -1
- package/dist/sankhyablocks/p-3bab7e9c.entry.js +0 -1
- package/dist/sankhyablocks/p-4b01cbad.entry.js +0 -11
- package/dist/sankhyablocks/p-4c9adf1c.entry.js +0 -1
- package/dist/sankhyablocks/p-6b898a51.entry.js +0 -1
- package/dist/sankhyablocks/p-9523fc40.entry.js +0 -1
- package/dist/sankhyablocks/p-99ab1e1d.entry.js +0 -1
- package/dist/sankhyablocks/p-a18de25e.js +0 -1
- package/dist/sankhyablocks/p-be2e5f36.entry.js +0 -1
- package/dist/sankhyablocks/p-d571e243.entry.js +0 -1
|
@@ -11,6 +11,7 @@ export class SnkConfigurator {
|
|
|
11
11
|
this.resourceID = undefined;
|
|
12
12
|
this.viewMode = VIEW_MODE.GRID;
|
|
13
13
|
this.customContainerId = undefined;
|
|
14
|
+
this.layoutFormConfig = false;
|
|
14
15
|
this.messagesBuilder = undefined;
|
|
15
16
|
}
|
|
16
17
|
/**
|
|
@@ -71,6 +72,12 @@ export class SnkConfigurator {
|
|
|
71
72
|
var _a;
|
|
72
73
|
return (_a = this.messagesBuilder) === null || _a === void 0 ? void 0 : _a.getMessage(key, {});
|
|
73
74
|
}
|
|
75
|
+
handleSave() {
|
|
76
|
+
if (this.layoutFormConfig) {
|
|
77
|
+
this._snkLayoutFormConfig.save();
|
|
78
|
+
}
|
|
79
|
+
this.save.emit();
|
|
80
|
+
}
|
|
74
81
|
componentWillLoad() {
|
|
75
82
|
this._application = ApplicationContext.getContextValue('__SNK__APPLICATION__');
|
|
76
83
|
if (this._application) {
|
|
@@ -94,7 +101,7 @@ export class SnkConfigurator {
|
|
|
94
101
|
insideCustomElementsContainer === null || insideCustomElementsContainer === void 0 ? void 0 : insideCustomElementsContainer.appendChild(configuratorCustomElement);
|
|
95
102
|
}
|
|
96
103
|
render() {
|
|
97
|
-
return (h("ez-modal", { ref: (element) => (this.modal = element), opened: this._opened, "close-esc": false, "close-outside-click": false, "modal-size": "small", scrim: "light" }, h("div", { class: "snk-configurator" }, h("div", { class: "snk-configurator__header" }, h("label", { class: "snk-configurator__title" }, this.getMessage('snkConfigurator.titleConfigurations')), h("div", { class: "snk-configurator__button-close" }, h("ez-button", { mode: "icon", iconName: "close", size: "medium", onClick: () => this.closeConfig() }))), h("div", { class: "snk-configurator__main" }, h("ez-collapsible-box", { boxBordered: true, label: "Modo de visualiza\u00E7\u00E3o ", headerSize: "medium", class: "snk-configurator__collapsable-box" }, h("ez-radio-button", { value: this.getViewModeValue().toString(), onEzChange: (evt) => this.onViewModeChanged(evt), enabled: this.enableModeConfig() }, h("ez-radio-button-option", { label: this.getMessage('snkConfigurator.labelGrid'), value: VIEW_MODE.GRID }), h("ez-radio-button-option", { label: this.getMessage('snkConfigurator.labelForm'), value: VIEW_MODE.FORM })), h("div", { class: "snk-configurator__collsable-box-action" }, h("ez-button", { label: this.viewMode === VIEW_MODE.GRID ? this.getMessage('snkConfigurator.labelConfigGrid') : this.getMessage('snkConfigurator.labelConfigForm'), class: "snk-configurator__button-config ez-button--secondary", onClick: () => this.onClickOpenConfig(), id: "openConfigurator" }))), h("div", { id: "slotContainer", class: "snk-configurator__outline" })), this.showActionButtons && (h("div", { class: "snk-configurator__action-buttons" }, h("ez-button", { label: "Cancelar", onClick: () => this.cancel.emit() }), h("ez-button", { label: "Salvar", onClick: () => this.
|
|
104
|
+
return (h("ez-modal", { ref: (element) => (this.modal = element), opened: this._opened, "close-esc": false, "close-outside-click": false, "modal-size": "small", scrim: "light" }, h("div", { class: "snk-configurator" }, h("div", { class: "snk-configurator__header" }, h("label", { class: "snk-configurator__title" }, this.getMessage('snkConfigurator.titleConfigurations')), h("div", { class: "snk-configurator__button-close" }, h("ez-button", { mode: "icon", iconName: "close", size: "medium", onClick: () => this.closeConfig() }))), h("div", { class: "snk-configurator__main" }, h("ez-collapsible-box", { boxBordered: true, label: "Modo de visualiza\u00E7\u00E3o ", headerSize: "medium", class: "snk-configurator__collapsable-box" }, h("ez-radio-button", { value: this.getViewModeValue().toString(), onEzChange: (evt) => this.onViewModeChanged(evt), enabled: this.enableModeConfig() }, h("ez-radio-button-option", { label: this.getMessage('snkConfigurator.labelGrid'), value: VIEW_MODE.GRID }), h("ez-radio-button-option", { label: this.getMessage('snkConfigurator.labelForm'), value: VIEW_MODE.FORM })), h("div", { class: "snk-configurator__collsable-box-action" }, h("ez-button", { label: this.viewMode === VIEW_MODE.GRID ? this.getMessage('snkConfigurator.labelConfigGrid') : this.getMessage('snkConfigurator.labelConfigForm'), class: "snk-configurator__button-config ez-button--secondary", onClick: () => this.onClickOpenConfig(), id: "openConfigurator" }))), this.layoutFormConfig && h("ez-collapsible-box", { boxBordered: true, value: true, label: "Layout do formul\u00E1rio", headerSize: "medium", class: "snk-configurator__collapsable-box ez-margin-top--medium" }, h("div", { class: 'ez-flex ez-flex--column ez-size-width--full' }, h("snk-layout-form-config", { ref: (ref) => this._snkLayoutFormConfig = ref }))), h("div", { id: "slotContainer", class: "snk-configurator__outline" })), this.showActionButtons && (h("div", { class: "snk-configurator__action-buttons" }, h("ez-button", { label: "Cancelar", onClick: () => this.cancel.emit() }), h("ez-button", { label: "Salvar", onClick: () => this.handleSave(), class: "ez-button--primary" }))))));
|
|
98
105
|
}
|
|
99
106
|
static get is() { return "snk-configurator"; }
|
|
100
107
|
static get encapsulation() { return "scoped"; }
|
|
@@ -202,6 +209,24 @@ export class SnkConfigurator {
|
|
|
202
209
|
"attribute": "custom-container-id",
|
|
203
210
|
"reflect": false
|
|
204
211
|
},
|
|
212
|
+
"layoutFormConfig": {
|
|
213
|
+
"type": "boolean",
|
|
214
|
+
"mutable": false,
|
|
215
|
+
"complexType": {
|
|
216
|
+
"original": "boolean",
|
|
217
|
+
"resolved": "boolean",
|
|
218
|
+
"references": {}
|
|
219
|
+
},
|
|
220
|
+
"required": false,
|
|
221
|
+
"optional": false,
|
|
222
|
+
"docs": {
|
|
223
|
+
"tags": [],
|
|
224
|
+
"text": "Define se o LayoutFormConfig ser\u00E1 exibido no configurador."
|
|
225
|
+
},
|
|
226
|
+
"attribute": "layout-form-config",
|
|
227
|
+
"reflect": false,
|
|
228
|
+
"defaultValue": "false"
|
|
229
|
+
},
|
|
205
230
|
"messagesBuilder": {
|
|
206
231
|
"type": "unknown",
|
|
207
232
|
"mutable": true,
|
|
@@ -47,6 +47,7 @@ export class SnkCrud {
|
|
|
47
47
|
this.ignoreReadOnlyFormFields = undefined;
|
|
48
48
|
this.setCustomFormTitle = undefined;
|
|
49
49
|
this.strategyExporter = ExporterStrategy.SERVER_SIDE;
|
|
50
|
+
this.layoutFormConfig = false;
|
|
50
51
|
this.customContainerId = `SNK-CRUD-CUSTOM-CONTAINER-${StringUtils.generateUUID()}`;
|
|
51
52
|
}
|
|
52
53
|
/**
|
|
@@ -382,7 +383,7 @@ export class SnkCrud {
|
|
|
382
383
|
return;
|
|
383
384
|
}
|
|
384
385
|
this._snkDataUnit.ignoreSaveMessage = (this._currentViewMode === VIEW_MODE.GRID && !this.enableGridInsert);
|
|
385
|
-
return (h(Host, null, h("ez-view-stack", { ref: (ref) => this._viewStack = ref, "data-element-id": "crud" }, h("stack-item", { class: 'ez-flex ez-flex--column ez-size-height--full ez-size-width--full ez-padding--medium' }, h("snk-grid", { ref: (ref) => this._snkGrid = ref, class: 'ez-flex ez-flex--column ez-size-height--full ez-size-width--full', filterBarTitle: this.filterBarTitle, "data-element-id": "crud_grid", configName: this.configName, onGridDoubleClick: () => this.gridToForm(true), taskbarManager: this.taskbarManager, onActionClick: evt => this.executeAction(evt.detail), messagesBuilder: this.messagesBuilder, actionsList: this.actionsList, statusResolver: this.statusResolver, multipleSelection: this.multipleSelection, presentationMode: this.presentationMode, recordsValidator: this.recordsValidator, selectionToastConfig: this.selectionToastConfig, useEnterLikeTab: this.useEnterLikeTab, canEdit: this._canEdit, resourceID: this._resourceID, disablePersonalizedFilter: this.disablePersonalizedFilter, gridLegacyConfigName: this.gridLegacyConfigName, filterBarLegacyConfigName: this.filterBarLegacyConfigName, autoLoad: this.autoLoad, autoFocus: this.autoFocus, enableGridInsert: this.enableGridInsert, enableLockManagerTaskbarClick: this.enableLockManagerTaskbarClick, enableLockManagerLoadingComp: this.enableLockManagerLoadingComp, strategyExporter: this.strategyExporter }, h("slot", { name: "GRID_TASKBAR_CUSTOM_ELEMENTS" }), h("slot", { name: "GRID_HEADER_CUSTOM_ELEMENTS" }), h("slot", { name: "SnkGridHeader" }), h("slot", { name: "SnkGridFooter" }), h("slot", { name: "SnkGridTaskBar" }))), h("stack-item", null, h("snk-guides-viewer", { ref: ref => this._guidesViewer = ref, entityPath: this._snkDataUnit.entityName, messagesBuilder: this.messagesBuilder, onExit: () => this.setViewMode(VIEW_MODE.GRID), dataState: this._dataState, dataUnit: this._dataUnit, actionsList: this.actionsList, taskbarManager: this.taskbarManager, configName: this.configName, onActionClick: evt => this.executeAction(evt.detail), presentationMode: this.presentationMode, "data-element-id": "crud_form", canEdit: this._canEdit, recordsValidator: this.recordsValidator, resourceID: this._resourceID, detailTaskbarCustomContainerId: this.customContainerId, formLegacyConfigName: this.formLegacyConfigName, enableGridInsert: this.enableGridInsert, getCustomTitle: this.setCustomFormTitle, ignoreReadOnlyFormFields: this.ignoreReadOnlyFormFields }, h("slot", { name: "GUIDES_VIEWER_TASKBAR_CUSTOM_ELEMENTS" }), h("slot", { name: "SnkFormTaskBar" }))), h("stack-item", null, h("snk-attach", { registerKey: this.attachmentRegisterKey, messagesBuilder: this.messagesBuilder, entityName: this._snkDataUnit.entityName, onBack: this.backView.bind(this) })), h("snk-configurator", { ref: (ref) => this._snkConfigurator = ref, viewMode: this._currentViewMode, messagesBuilder: this.messagesBuilder, onConfigSelected: (evt) => this.setViewMode(evt.detail), onOpenConfig: (evt) => this.openConfig(evt.detail), showActionButtons: this.showActionButtons, onSave: evt => this.handleConfiguratorEvent(evt, 'SAVE'), onCancel: evt => this.handleConfiguratorEvent(evt, 'CANCEL'), resourceID: this._resourceID, customContainerId: this.customContainerId })), h("div", { id: `${this.customContainerId}` }, h("slot", { name: "SnkConfigContainerSlot" }), h("slot", { name: "DETAIL_GRID_HEADER_CUSTOM_ELEMENTS" }), h("slot", { name: "DETAIL_GRID_TASKBAR_CUSTOM_ELEMENTS" }), h("slot", { name: "DETAIL_TASKBAR_CUSTOM_ELEMENTS" }))));
|
|
386
|
+
return (h(Host, null, h("ez-view-stack", { ref: (ref) => this._viewStack = ref, "data-element-id": "crud" }, h("stack-item", { class: 'ez-flex ez-flex--column ez-size-height--full ez-size-width--full ez-padding--medium' }, h("snk-grid", { ref: (ref) => this._snkGrid = ref, class: 'ez-flex ez-flex--column ez-size-height--full ez-size-width--full', filterBarTitle: this.filterBarTitle, "data-element-id": "crud_grid", configName: this.configName, onGridDoubleClick: () => this.gridToForm(true), taskbarManager: this.taskbarManager, onActionClick: evt => this.executeAction(evt.detail), messagesBuilder: this.messagesBuilder, actionsList: this.actionsList, statusResolver: this.statusResolver, multipleSelection: this.multipleSelection, presentationMode: this.presentationMode, recordsValidator: this.recordsValidator, selectionToastConfig: this.selectionToastConfig, useEnterLikeTab: this.useEnterLikeTab, canEdit: this._canEdit, resourceID: this._resourceID, disablePersonalizedFilter: this.disablePersonalizedFilter, gridLegacyConfigName: this.gridLegacyConfigName, filterBarLegacyConfigName: this.filterBarLegacyConfigName, autoLoad: this.autoLoad, autoFocus: this.autoFocus, enableGridInsert: this.enableGridInsert, enableLockManagerTaskbarClick: this.enableLockManagerTaskbarClick, enableLockManagerLoadingComp: this.enableLockManagerLoadingComp, strategyExporter: this.strategyExporter }, h("slot", { name: "GRID_TASKBAR_CUSTOM_ELEMENTS" }), h("slot", { name: "GRID_HEADER_CUSTOM_ELEMENTS" }), h("slot", { name: "SnkGridHeader" }), h("slot", { name: "SnkGridFooter" }), h("slot", { name: "SnkGridTaskBar" }))), h("stack-item", null, h("snk-guides-viewer", { ref: ref => this._guidesViewer = ref, entityPath: this._snkDataUnit.entityName, messagesBuilder: this.messagesBuilder, onExit: () => this.setViewMode(VIEW_MODE.GRID), dataState: this._dataState, dataUnit: this._dataUnit, actionsList: this.actionsList, taskbarManager: this.taskbarManager, configName: this.configName, onActionClick: evt => this.executeAction(evt.detail), presentationMode: this.presentationMode, "data-element-id": "crud_form", canEdit: this._canEdit, recordsValidator: this.recordsValidator, resourceID: this._resourceID, detailTaskbarCustomContainerId: this.customContainerId, formLegacyConfigName: this.formLegacyConfigName, enableGridInsert: this.enableGridInsert, getCustomTitle: this.setCustomFormTitle, ignoreReadOnlyFormFields: this.ignoreReadOnlyFormFields }, h("slot", { name: "GUIDES_VIEWER_TASKBAR_CUSTOM_ELEMENTS" }), h("slot", { name: "SnkFormTaskBar" }))), h("stack-item", null, h("snk-attach", { registerKey: this.attachmentRegisterKey, messagesBuilder: this.messagesBuilder, entityName: this._snkDataUnit.entityName, onBack: this.backView.bind(this) })), h("snk-configurator", { ref: (ref) => this._snkConfigurator = ref, viewMode: this._currentViewMode, messagesBuilder: this.messagesBuilder, onConfigSelected: (evt) => this.setViewMode(evt.detail), onOpenConfig: (evt) => this.openConfig(evt.detail), showActionButtons: this.showActionButtons, onSave: evt => this.handleConfiguratorEvent(evt, 'SAVE'), onCancel: evt => this.handleConfiguratorEvent(evt, 'CANCEL'), resourceID: this._resourceID, customContainerId: this.customContainerId, layoutFormConfig: this.layoutFormConfig })), h("div", { id: `${this.customContainerId}` }, h("slot", { name: "SnkConfigContainerSlot" }), h("slot", { name: "DETAIL_GRID_HEADER_CUSTOM_ELEMENTS" }), h("slot", { name: "DETAIL_GRID_TASKBAR_CUSTOM_ELEMENTS" }), h("slot", { name: "DETAIL_TASKBAR_CUSTOM_ELEMENTS" }))));
|
|
386
387
|
}
|
|
387
388
|
static get is() { return "snk-crud"; }
|
|
388
389
|
static get encapsulation() { return "scoped"; }
|
|
@@ -864,6 +865,24 @@ export class SnkCrud {
|
|
|
864
865
|
"attribute": "strategy-exporter",
|
|
865
866
|
"reflect": false,
|
|
866
867
|
"defaultValue": "ExporterStrategy.SERVER_SIDE"
|
|
868
|
+
},
|
|
869
|
+
"layoutFormConfig": {
|
|
870
|
+
"type": "boolean",
|
|
871
|
+
"mutable": false,
|
|
872
|
+
"complexType": {
|
|
873
|
+
"original": "boolean",
|
|
874
|
+
"resolved": "boolean",
|
|
875
|
+
"references": {}
|
|
876
|
+
},
|
|
877
|
+
"required": false,
|
|
878
|
+
"optional": false,
|
|
879
|
+
"docs": {
|
|
880
|
+
"tags": [],
|
|
881
|
+
"text": "Define se o LayoutFormConfig ser\u00E1 exibido no configurador."
|
|
882
|
+
},
|
|
883
|
+
"attribute": "layout-form-config",
|
|
884
|
+
"reflect": false,
|
|
885
|
+
"defaultValue": "false"
|
|
867
886
|
}
|
|
868
887
|
};
|
|
869
888
|
}
|
|
@@ -0,0 +1,73 @@
|
|
|
1
|
+
import { h } from '@stencil/core';
|
|
2
|
+
import { FormConfigFetcher } from '../../lib';
|
|
3
|
+
import { ApplicationContext } from '@sankhyalabs/core';
|
|
4
|
+
import { FormLayout } from '@sankhyalabs/ezui/dist/collection/utils';
|
|
5
|
+
const FORM_COL_CONFIG_PREFIX = 'formColCfg.';
|
|
6
|
+
export class SnkLayoutFormConfig {
|
|
7
|
+
constructor() {
|
|
8
|
+
this._formConfigFetcher = new FormConfigFetcher();
|
|
9
|
+
this.layoutType = FormLayout.CASCADE;
|
|
10
|
+
}
|
|
11
|
+
/**
|
|
12
|
+
* Salva o tipo de layout escolhido. Sem retorno.
|
|
13
|
+
*/
|
|
14
|
+
async save() {
|
|
15
|
+
this._LayoutFormConfigSingleton.setConfig(this.layoutType);
|
|
16
|
+
this._formConfigFetcher.saveLayoutFormConfig(FORM_COL_CONFIG_PREFIX + this._resourceID, { config: this.layoutType, newConfig: true });
|
|
17
|
+
}
|
|
18
|
+
async componentWillLoad() {
|
|
19
|
+
const _application = ApplicationContext.getContextValue("__SNK__APPLICATION__");
|
|
20
|
+
this._LayoutFormConfigSingleton = await (_application === null || _application === void 0 ? void 0 : _application.getLayoutFormConfig());
|
|
21
|
+
this._resourceID = await (_application === null || _application === void 0 ? void 0 : _application.getResourceID());
|
|
22
|
+
this.setLayoutInit();
|
|
23
|
+
}
|
|
24
|
+
setLayoutInit() {
|
|
25
|
+
if (!this._LayoutFormConfigSingleton)
|
|
26
|
+
return;
|
|
27
|
+
const { config } = this._LayoutFormConfigSingleton;
|
|
28
|
+
this.layoutType = Number(config) in FormLayout ? Number(config) : FormLayout.CASCADE;
|
|
29
|
+
}
|
|
30
|
+
toggleLayout(key) {
|
|
31
|
+
this.layoutType = key;
|
|
32
|
+
}
|
|
33
|
+
render() {
|
|
34
|
+
return (h("div", { class: "ez-flex ez-flex--column" }, h("div", { class: "ez-margin-bottom--small" }, h("ez-check", { label: "Layout em cascata", class: "ez-margin-bottom--small", onEzChange: () => this.toggleLayout(FormLayout.CASCADE), value: this.layoutType === FormLayout.CASCADE }), h("snk-view-representation", { mode: FormLayout.CASCADE }), h("label", { class: "ez-label ez-margin--small ez-flex ez-text--medium" }, "Todos os campos ser\u00E3o organizados em uma coluna \u00FAnica.")), h("div", null, h("ez-check", { label: "Layout lado a lado", class: "ez-margin-bottom--small", onEzChange: () => this.toggleLayout(FormLayout.SIDE_BY_SIDE), value: this.layoutType === FormLayout.SIDE_BY_SIDE }), h("snk-view-representation", { mode: FormLayout.SIDE_BY_SIDE }), h("label", { class: "ez-label ez-margin--small ez-flex ez-text--medium" }, "Todos os campos ser\u00E3o dispostos lado a lado, ajustando-se automaticamente \u00E0 largura da tela."))));
|
|
35
|
+
}
|
|
36
|
+
static get is() { return "snk-layout-form-config"; }
|
|
37
|
+
static get encapsulation() { return "scoped"; }
|
|
38
|
+
static get originalStyleUrls() {
|
|
39
|
+
return {
|
|
40
|
+
"$": ["snk-layout-form-config.css"]
|
|
41
|
+
};
|
|
42
|
+
}
|
|
43
|
+
static get styleUrls() {
|
|
44
|
+
return {
|
|
45
|
+
"$": ["snk-layout-form-config.css"]
|
|
46
|
+
};
|
|
47
|
+
}
|
|
48
|
+
static get states() {
|
|
49
|
+
return {
|
|
50
|
+
"layoutType": {}
|
|
51
|
+
};
|
|
52
|
+
}
|
|
53
|
+
static get methods() {
|
|
54
|
+
return {
|
|
55
|
+
"save": {
|
|
56
|
+
"complexType": {
|
|
57
|
+
"signature": "() => Promise<void>",
|
|
58
|
+
"parameters": [],
|
|
59
|
+
"references": {
|
|
60
|
+
"Promise": {
|
|
61
|
+
"location": "global"
|
|
62
|
+
}
|
|
63
|
+
},
|
|
64
|
+
"return": "Promise<void>"
|
|
65
|
+
},
|
|
66
|
+
"docs": {
|
|
67
|
+
"text": "Salva o tipo de layout escolhido. Sem retorno.",
|
|
68
|
+
"tags": []
|
|
69
|
+
}
|
|
70
|
+
}
|
|
71
|
+
};
|
|
72
|
+
}
|
|
73
|
+
}
|
|
@@ -0,0 +1,78 @@
|
|
|
1
|
+
:host {
|
|
2
|
+
display: block;
|
|
3
|
+
}
|
|
4
|
+
|
|
5
|
+
.svg-container {
|
|
6
|
+
display: flex;
|
|
7
|
+
width: 185px;
|
|
8
|
+
height: 125px;
|
|
9
|
+
border-radius: 8px;
|
|
10
|
+
background-color: #f7f7f7;
|
|
11
|
+
padding: 10px 12px;
|
|
12
|
+
box-sizing: border-box;
|
|
13
|
+
position: relative;
|
|
14
|
+
}
|
|
15
|
+
|
|
16
|
+
.svg-container__background{
|
|
17
|
+
display: flex;
|
|
18
|
+
flex-direction: column;
|
|
19
|
+
width: 100%;
|
|
20
|
+
}
|
|
21
|
+
|
|
22
|
+
.svg-container__header {
|
|
23
|
+
display: flex;
|
|
24
|
+
gap: 2px;
|
|
25
|
+
margin-bottom: 12px;
|
|
26
|
+
}
|
|
27
|
+
|
|
28
|
+
.svg-container__circle {
|
|
29
|
+
width: 9px;
|
|
30
|
+
height: 9px;
|
|
31
|
+
border-radius: 50%;
|
|
32
|
+
}
|
|
33
|
+
|
|
34
|
+
.svg-container__circle--red {
|
|
35
|
+
background-color: #ed7678;
|
|
36
|
+
}
|
|
37
|
+
|
|
38
|
+
.svg-container__circle--yellow {
|
|
39
|
+
background-color: #eddb76;
|
|
40
|
+
}
|
|
41
|
+
|
|
42
|
+
.svg-container__circle--green {
|
|
43
|
+
background-color: #7ad08e;
|
|
44
|
+
}
|
|
45
|
+
|
|
46
|
+
.svg-container__section{
|
|
47
|
+
width: 100%;
|
|
48
|
+
}
|
|
49
|
+
|
|
50
|
+
.svg-container__collumn {
|
|
51
|
+
width: 100%;
|
|
52
|
+
display: flex;
|
|
53
|
+
flex-direction: column;
|
|
54
|
+
}
|
|
55
|
+
|
|
56
|
+
.svg-container__inline {
|
|
57
|
+
display: flex;
|
|
58
|
+
flex-direction: row;
|
|
59
|
+
gap: 6px;
|
|
60
|
+
}
|
|
61
|
+
|
|
62
|
+
.svg-container__line {
|
|
63
|
+
height: 13px;
|
|
64
|
+
border-radius: 4px;
|
|
65
|
+
background-color: #d9d9d9;
|
|
66
|
+
margin-bottom: 4px;
|
|
67
|
+
}
|
|
68
|
+
|
|
69
|
+
.svg-container__line--short {
|
|
70
|
+
width: 39.68px;
|
|
71
|
+
height: 7px;
|
|
72
|
+
border-radius: 3.5px;
|
|
73
|
+
}
|
|
74
|
+
|
|
75
|
+
.svg-container__line--long {
|
|
76
|
+
width: 100%;
|
|
77
|
+
}
|
|
78
|
+
|
|
@@ -0,0 +1,57 @@
|
|
|
1
|
+
import { h } from '@stencil/core';
|
|
2
|
+
import { FormLayout } from '@sankhyalabs/ezui/dist/collection/utils';
|
|
3
|
+
export class SnkViewRepresentation {
|
|
4
|
+
constructor() {
|
|
5
|
+
this.mode = FormLayout.SIDE_BY_SIDE;
|
|
6
|
+
}
|
|
7
|
+
renderCascadeLayout() {
|
|
8
|
+
return (h("div", { class: "svg-container__collumn" }, [...Array(3)].map(() => (h("div", { class: "svg-container__section" }, h("div", { class: "svg-container__line svg-container__line--short" }), h("div", { class: "svg-container__line svg-container__line--long" }))))));
|
|
9
|
+
}
|
|
10
|
+
renderSideBySideLayout() {
|
|
11
|
+
return (h("div", { class: "svg-container__inline" }, [...Array(2)].map(() => this.renderCascadeLayout())));
|
|
12
|
+
}
|
|
13
|
+
render() {
|
|
14
|
+
return (h("div", { class: "svg-container ez-margin-left--small" }, h("div", { class: "svg-container__background" }, h("div", { class: "svg-container__header" }, h("div", { class: "svg-container__circle svg-container__circle--red" }), h("div", { class: "svg-container__circle svg-container__circle--yellow" }), h("div", { class: "svg-container__circle svg-container__circle--green" })), this.mode === FormLayout.CASCADE
|
|
15
|
+
? this.renderCascadeLayout()
|
|
16
|
+
: this.renderSideBySideLayout())));
|
|
17
|
+
}
|
|
18
|
+
static get is() { return "snk-view-representation"; }
|
|
19
|
+
static get encapsulation() { return "scoped"; }
|
|
20
|
+
static get originalStyleUrls() {
|
|
21
|
+
return {
|
|
22
|
+
"$": ["snk-view-representation.css"]
|
|
23
|
+
};
|
|
24
|
+
}
|
|
25
|
+
static get styleUrls() {
|
|
26
|
+
return {
|
|
27
|
+
"$": ["snk-view-representation.css"]
|
|
28
|
+
};
|
|
29
|
+
}
|
|
30
|
+
static get properties() {
|
|
31
|
+
return {
|
|
32
|
+
"mode": {
|
|
33
|
+
"type": "any",
|
|
34
|
+
"mutable": false,
|
|
35
|
+
"complexType": {
|
|
36
|
+
"original": "FormLayout",
|
|
37
|
+
"resolved": "FormLayout",
|
|
38
|
+
"references": {
|
|
39
|
+
"FormLayout": {
|
|
40
|
+
"location": "import",
|
|
41
|
+
"path": "@sankhyalabs/ezui/dist/collection/utils"
|
|
42
|
+
}
|
|
43
|
+
}
|
|
44
|
+
},
|
|
45
|
+
"required": false,
|
|
46
|
+
"optional": false,
|
|
47
|
+
"docs": {
|
|
48
|
+
"tags": [],
|
|
49
|
+
"text": "Define o layout do componente: 'CASCADE' ou 'SIDE_BY_SIDE'"
|
|
50
|
+
},
|
|
51
|
+
"attribute": "mode",
|
|
52
|
+
"reflect": false,
|
|
53
|
+
"defaultValue": "FormLayout.SIDE_BY_SIDE"
|
|
54
|
+
}
|
|
55
|
+
};
|
|
56
|
+
}
|
|
57
|
+
}
|
|
@@ -61,6 +61,7 @@ export class SnkSimpleCrud {
|
|
|
61
61
|
this.ignoreReadOnlyFormFields = false;
|
|
62
62
|
this.autoFocus = true;
|
|
63
63
|
this.domainMessagesBuilder = undefined;
|
|
64
|
+
this.layoutFormConfig = false;
|
|
64
65
|
this.autoLoad = undefined;
|
|
65
66
|
this.outlineMode = false;
|
|
66
67
|
}
|
|
@@ -753,7 +754,7 @@ export class SnkSimpleCrud {
|
|
|
753
754
|
}
|
|
754
755
|
return (h("snk-data-unit", { ref: ref => this._snkDataUnit = ref, class: "simple-crud__container", dataUnit: this.dataUnit, useCancelConfirm: this.useCancelConfirm, onDataStateChange: evt => this.onDataStateChange(evt), onCancelEdition: this.handleCancelEdit.bind(this), pageSize: this.getPageSize(), onInsertionMode: this.handleDataUnitOnInsertionMode.bind(this), onDataUnitReady: (evt) => this.dataUnitReady.emit(evt.detail), ignoreSaveMessage: this._currentViewMode === VIEW_MODE.GRID, onMessagesBuilderUpdated: evt => this.messagesBuilder = evt.detail, onDataUnitFieldsHidded: this.updateFormConfig.bind(this), domainMessagesBuilder: this.domainMessagesBuilder }, h("header", null, h("slot", { name: "snkSimpleCrudHeader" })), h("section", { class: `ez-box ${this.outlineMode ? 'ez-box--outline' : 'ez-box--shadow'} simple-crud__container-section` }, h("ez-view-stack", { ref: (ref) => this._viewStack = ref, "data-element-id": "simple-crud" }, h("stack-item", null, h("ez-grid", { class: "ez-margin-bottom--large", ref: ref => this._grid = ref, dataUnit: this.dataUnit, config: this.gridConfig, "no-header": true, multipleSelection: this.multipleSelection, onEzDoubleClick: () => this.goToView(VIEW_MODE.FORM), onConfigChange: evt => this.gridConfigChangeHandler(evt), columnfilterDataSource: this.dataUnit.name && this.dataUnit.name.includes(InMemoryLoader.IN_MEMORY_DATA_UNIT_NAME)
|
|
755
756
|
? undefined
|
|
756
|
-
: this._multiSelectionListDataSource, useEnterLikeTab: this.useEnterLikeTab, autoFocus: this.autoFocus, enableGridInsert: this.enableGridInsert, enableContinuousInsert: this.enableContinuousInsert, enableLockManagerTaskbarClick: this.enableLockManagerTaskbarClick, enableLockManagerLoadingComp: this.enableLockManagerLoadingComp, outlineMode: this.outlineMode }, this.renderTaskbarContent(), h("div", { slot: "footer" }, h("slot", { name: "snkSimpleCrudFooter" })))), h("stack-item", null, this.renderTaskbarContent(), h("ez-form", { ref: (ref) => this._form = ref, class: `ez-margin-top--large`, dataUnit: this.dataUnit, config: this.getFormConfig(), fieldToFocus: this._fieldToGetFocus, onEzFormSetFields: (evt) => this.handleFormSetFields(evt.detail), onEzFormRequestClearFieldToFocus: this.clearFieldToFocusHandler.bind(this) }), h("snk-simple-form-config", { ref: (ref) => this._snkSimpleFormConfig = ref, dataUnit: this.dataUnit, onSnkConfigSaved: this.handleFormConfigSaved.bind(this), configName: (_a = this.formLegacyConfigName) !== null && _a !== void 0 ? _a : this.configName })), this.messagesBuilder && h("snk-configurator", { ref: (ref) => this._snkConfigurator = ref, viewMode: this._currentViewMode, messagesBuilder: this.messagesBuilder, onConfigSelected: (evt) => this.goToView(evt.detail), onOpenConfig: (evt) => this.openConfig(evt.detail), showActionButtons: this.showConfiguratorButtons, onSave: evt => this.handleConfiguratorEvent(evt, 'SAVE'), onCancel: evt => this.handleConfiguratorEvent(evt, 'CANCEL'), resourceID: this.resolveResourceID(), customContainerId: this._customContainerId })), h("div", { id: `${this._customContainerId}` }, h("slot", { name: "SnkConfigContainerSlot" }))), h("ez-modal", { modalSize: "small", closeEsc: false, closeOutsideClick: false, opened: this._showPopUpGridConfig, onEzCloseModal: () => this.closeGridConfig() }, h("snk-grid-config", { ref: ref => this._snkGridConfig = ref, config: this.gridConfig, "data-element-id": this._element.getAttribute(ElementIDUtils.DATA_ELEMENT_ID_ATTRIBUTE_NAME), selectedIndex: 0, configName: this.configName, onConfigChange: (evt) => this.modalConfigChangeHandler(evt), onConfigCancel: () => this.closeGridConfig(), resourceID: this.resolveResourceID() }))));
|
|
757
|
+
: this._multiSelectionListDataSource, useEnterLikeTab: this.useEnterLikeTab, autoFocus: this.autoFocus, enableGridInsert: this.enableGridInsert, enableContinuousInsert: this.enableContinuousInsert, enableLockManagerTaskbarClick: this.enableLockManagerTaskbarClick, enableLockManagerLoadingComp: this.enableLockManagerLoadingComp, outlineMode: this.outlineMode }, this.renderTaskbarContent(), h("div", { slot: "footer" }, h("slot", { name: "snkSimpleCrudFooter" })))), h("stack-item", null, this.renderTaskbarContent(), h("ez-form", { ref: (ref) => this._form = ref, class: `ez-margin-top--large`, dataUnit: this.dataUnit, config: this.getFormConfig(), fieldToFocus: this._fieldToGetFocus, onEzFormSetFields: (evt) => this.handleFormSetFields(evt.detail), onEzFormRequestClearFieldToFocus: this.clearFieldToFocusHandler.bind(this) }), h("snk-simple-form-config", { ref: (ref) => this._snkSimpleFormConfig = ref, dataUnit: this.dataUnit, onSnkConfigSaved: this.handleFormConfigSaved.bind(this), configName: (_a = this.formLegacyConfigName) !== null && _a !== void 0 ? _a : this.configName })), this.messagesBuilder && h("snk-configurator", { ref: (ref) => this._snkConfigurator = ref, viewMode: this._currentViewMode, messagesBuilder: this.messagesBuilder, onConfigSelected: (evt) => this.goToView(evt.detail), onOpenConfig: (evt) => this.openConfig(evt.detail), showActionButtons: this.showConfiguratorButtons, onSave: evt => this.handleConfiguratorEvent(evt, 'SAVE'), onCancel: evt => this.handleConfiguratorEvent(evt, 'CANCEL'), resourceID: this.resolveResourceID(), customContainerId: this._customContainerId, layoutFormConfig: this.layoutFormConfig })), h("div", { id: `${this._customContainerId}` }, h("slot", { name: "SnkConfigContainerSlot" }))), h("ez-modal", { modalSize: "small", closeEsc: false, closeOutsideClick: false, opened: this._showPopUpGridConfig, onEzCloseModal: () => this.closeGridConfig() }, h("snk-grid-config", { ref: ref => this._snkGridConfig = ref, config: this.gridConfig, "data-element-id": this._element.getAttribute(ElementIDUtils.DATA_ELEMENT_ID_ATTRIBUTE_NAME), selectedIndex: 0, configName: this.configName, onConfigChange: (evt) => this.modalConfigChangeHandler(evt), onConfigCancel: () => this.closeGridConfig(), resourceID: this.resolveResourceID() }))));
|
|
757
758
|
}
|
|
758
759
|
static get is() { return "snk-simple-crud"; }
|
|
759
760
|
static get encapsulation() { return "scoped"; }
|
|
@@ -1233,6 +1234,24 @@ export class SnkSimpleCrud {
|
|
|
1233
1234
|
"attribute": "domain-messages-builder",
|
|
1234
1235
|
"reflect": false
|
|
1235
1236
|
},
|
|
1237
|
+
"layoutFormConfig": {
|
|
1238
|
+
"type": "boolean",
|
|
1239
|
+
"mutable": false,
|
|
1240
|
+
"complexType": {
|
|
1241
|
+
"original": "boolean",
|
|
1242
|
+
"resolved": "boolean",
|
|
1243
|
+
"references": {}
|
|
1244
|
+
},
|
|
1245
|
+
"required": false,
|
|
1246
|
+
"optional": false,
|
|
1247
|
+
"docs": {
|
|
1248
|
+
"tags": [],
|
|
1249
|
+
"text": "Define se o LayoutFormConfig ser\u00E1 exibido no configurador."
|
|
1250
|
+
},
|
|
1251
|
+
"attribute": "layout-form-config",
|
|
1252
|
+
"reflect": false,
|
|
1253
|
+
"defaultValue": "false"
|
|
1254
|
+
},
|
|
1236
1255
|
"autoLoad": {
|
|
1237
1256
|
"type": "boolean",
|
|
1238
1257
|
"mutable": false,
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
export class LayoutFormConfig {
|
|
2
|
+
constructor() {
|
|
3
|
+
this._config = null;
|
|
4
|
+
this.listeners = [];
|
|
5
|
+
}
|
|
6
|
+
static getInstance() {
|
|
7
|
+
if (!LayoutFormConfig.instance) {
|
|
8
|
+
LayoutFormConfig.instance = new LayoutFormConfig();
|
|
9
|
+
}
|
|
10
|
+
return LayoutFormConfig.instance;
|
|
11
|
+
}
|
|
12
|
+
get config() {
|
|
13
|
+
return this._config;
|
|
14
|
+
}
|
|
15
|
+
setConfig(newConfig) {
|
|
16
|
+
this._config = newConfig;
|
|
17
|
+
this.notifyListeners();
|
|
18
|
+
}
|
|
19
|
+
onConfigChange(listener) {
|
|
20
|
+
this.listeners.push(listener);
|
|
21
|
+
}
|
|
22
|
+
notifyListeners() {
|
|
23
|
+
this.listeners.forEach(listener => listener(this._config));
|
|
24
|
+
}
|
|
25
|
+
}
|
|
@@ -220,6 +220,20 @@ export class FormConfigFetcher extends ResourceFetcher {
|
|
|
220
220
|
const rawFields = (_c = (_b = (_a = config === null || config === void 0 ? void 0 : config.formConfig) === null || _a === void 0 ? void 0 : _a.layout) === null || _b === void 0 ? void 0 : _b.field) !== null && _c !== void 0 ? _c : [];
|
|
221
221
|
return { emptyConfig: false, fields: Array.isArray(rawFields) ? rawFields : [rawFields] };
|
|
222
222
|
}
|
|
223
|
+
async fetchLayoutFormConfig(configName) {
|
|
224
|
+
const payload = { 'requestBody': { 'config': { 'chave': configName, 'tipo': 'T' } } };
|
|
225
|
+
const response = await DataFetcher.get().callServiceBroker('SystemUtilsSP.getConf', JSON.stringify(payload));
|
|
226
|
+
if (ObjectUtils.isEmpty(response))
|
|
227
|
+
return undefined;
|
|
228
|
+
return response.config;
|
|
229
|
+
}
|
|
230
|
+
async saveLayoutFormConfig(configName, config) {
|
|
231
|
+
const payload = { 'requestBody': { 'config': Object.assign(Object.assign({}, config), { 'chave': configName, 'tipo': 'T' }) } };
|
|
232
|
+
const response = await DataFetcher.get().callServiceBroker('SystemUtilsSP.saveConf', JSON.stringify(payload));
|
|
233
|
+
if (ObjectUtils.isEmpty(response))
|
|
234
|
+
return undefined;
|
|
235
|
+
return response;
|
|
236
|
+
}
|
|
223
237
|
}
|
|
224
238
|
export var UserConfigType;
|
|
225
239
|
(function (UserConfigType) {
|
|
@@ -282,6 +282,20 @@ class FormConfigFetcher extends ResourceFetcher {
|
|
|
282
282
|
const rawFields = (_c = (_b = (_a = config === null || config === void 0 ? void 0 : config.formConfig) === null || _a === void 0 ? void 0 : _a.layout) === null || _b === void 0 ? void 0 : _b.field) !== null && _c !== void 0 ? _c : [];
|
|
283
283
|
return { emptyConfig: false, fields: Array.isArray(rawFields) ? rawFields : [rawFields] };
|
|
284
284
|
}
|
|
285
|
+
async fetchLayoutFormConfig(configName) {
|
|
286
|
+
const payload = { 'requestBody': { 'config': { 'chave': configName, 'tipo': 'T' } } };
|
|
287
|
+
const response = await DataFetcher.get().callServiceBroker('SystemUtilsSP.getConf', JSON.stringify(payload));
|
|
288
|
+
if (ObjectUtils.isEmpty(response))
|
|
289
|
+
return undefined;
|
|
290
|
+
return response.config;
|
|
291
|
+
}
|
|
292
|
+
async saveLayoutFormConfig(configName, config) {
|
|
293
|
+
const payload = { 'requestBody': { 'config': Object.assign(Object.assign({}, config), { 'chave': configName, 'tipo': 'T' }) } };
|
|
294
|
+
const response = await DataFetcher.get().callServiceBroker('SystemUtilsSP.saveConf', JSON.stringify(payload));
|
|
295
|
+
if (ObjectUtils.isEmpty(response))
|
|
296
|
+
return undefined;
|
|
297
|
+
return response;
|
|
298
|
+
}
|
|
285
299
|
}
|
|
286
300
|
var UserConfigType;
|
|
287
301
|
(function (UserConfigType) {
|
|
@@ -42,6 +42,7 @@ export { SnkFormView as SnkFormView } from '../types/components/snk-crud/subcomp
|
|
|
42
42
|
export { SnkGrid as SnkGrid } from '../types/components/snk-grid/snk-grid';
|
|
43
43
|
export { SnkGridConfig as SnkGridConfig } from '../types/components/snk-grid-config/snk-grid-config';
|
|
44
44
|
export { SnkGuidesViewer as SnkGuidesViewer } from '../types/components/snk-crud/subcomponents/snk-guides-viewer';
|
|
45
|
+
export { SnkLayoutFormConfig as SnkLayoutFormConfig } from '../types/components/snk-layout-form-config/snk-layout-form-config';
|
|
45
46
|
export { SnkPersonalizedFilter as SnkPersonalizedFilter } from '../types/components/snk-personalized-filter/snk-personalized-filter';
|
|
46
47
|
export { SnkFilterPersonalized as SnkPersonalizedFilterEditor } from '../types/components/snk-filter-bar/filter-item/editors/snk-personalized-filter-editor/snk-personalized-filter-editor';
|
|
47
48
|
export { SnkPesquisa as SnkPesquisa } from '../types/components/snk-pesquisa/snk-pesquisa';
|
|
@@ -52,6 +53,7 @@ export { SnkSimpleCrud as SnkSimpleCrud } from '../types/components/snk-simple-c
|
|
|
52
53
|
export { SnkSimpleFormConfig as SnkSimpleFormConfig } from '../types/components/snk-simple-form-config/snk-simple-form-config';
|
|
53
54
|
export { SnkTabConfig as SnkTabConfig } from '../types/components/snk-form-config/subcomponents/snk-tab-config/snk-tab-config';
|
|
54
55
|
export { SnkTaskbar as SnkTaskbar } from '../types/components/snk-taskbar/snk-taskbar';
|
|
56
|
+
export { SnkViewRepresentation as SnkViewRepresentation } from '../types/components/snk-layout-form-config/snk-view-representation/snk-view-representation';
|
|
55
57
|
export { TaskbarActionsButton as TaskbarActionsButton } from '../types/components/snk-taskbar/elements/taskbar-actions-button/taskbar-actions-button';
|
|
56
58
|
export { TestePesquisa as TestePesquisa } from '../types/components/teste-pesquisa/teste-pesquisa';
|
|
57
59
|
|
package/dist/components/index.js
CHANGED
|
@@ -42,6 +42,7 @@ export { SnkFormView, defineCustomElement as defineCustomElementSnkFormView } fr
|
|
|
42
42
|
export { SnkGrid, defineCustomElement as defineCustomElementSnkGrid } from './snk-grid.js';
|
|
43
43
|
export { SnkGridConfig, defineCustomElement as defineCustomElementSnkGridConfig } from './snk-grid-config.js';
|
|
44
44
|
export { SnkGuidesViewer, defineCustomElement as defineCustomElementSnkGuidesViewer } from './snk-guides-viewer.js';
|
|
45
|
+
export { SnkLayoutFormConfig, defineCustomElement as defineCustomElementSnkLayoutFormConfig } from './snk-layout-form-config.js';
|
|
45
46
|
export { SnkPersonalizedFilter, defineCustomElement as defineCustomElementSnkPersonalizedFilter } from './snk-personalized-filter.js';
|
|
46
47
|
export { SnkPersonalizedFilterEditor, defineCustomElement as defineCustomElementSnkPersonalizedFilterEditor } from './snk-personalized-filter-editor.js';
|
|
47
48
|
export { SnkPesquisa, defineCustomElement as defineCustomElementSnkPesquisa } from './snk-pesquisa.js';
|
|
@@ -52,5 +53,6 @@ export { SnkSimpleCrud, defineCustomElement as defineCustomElementSnkSimpleCrud
|
|
|
52
53
|
export { SnkSimpleFormConfig, defineCustomElement as defineCustomElementSnkSimpleFormConfig } from './snk-simple-form-config.js';
|
|
53
54
|
export { SnkTabConfig, defineCustomElement as defineCustomElementSnkTabConfig } from './snk-tab-config.js';
|
|
54
55
|
export { SnkTaskbar, defineCustomElement as defineCustomElementSnkTaskbar } from './snk-taskbar.js';
|
|
56
|
+
export { SnkViewRepresentation, defineCustomElement as defineCustomElementSnkViewRepresentation } from './snk-view-representation.js';
|
|
55
57
|
export { TaskbarActionsButton, defineCustomElement as defineCustomElementTaskbarActionsButton } from './taskbar-actions-button.js';
|
|
56
58
|
export { TestePesquisa, defineCustomElement as defineCustomElementTestePesquisa } from './teste-pesquisa.js';
|
|
@@ -8,6 +8,8 @@ import { P as PreloadManager, D as DataUnitFetcher } from './dataunit-fetcher.js
|
|
|
8
8
|
import { a as PesquisaFetcher } from './ISave.js';
|
|
9
9
|
import { S as SnkMessageBuilder } from './SnkMessageBuilder.js';
|
|
10
10
|
import { T as TEMPLATES_SKELETON } from './constants.js';
|
|
11
|
+
import './filter-item-type.enum.js';
|
|
12
|
+
import { F as FormConfigFetcher } from './form-config-fetcher.js';
|
|
11
13
|
import { d as defineCustomElement$3 } from './pesquisa-grid2.js';
|
|
12
14
|
import { d as defineCustomElement$2 } from './pesquisa-tree2.js';
|
|
13
15
|
import { d as defineCustomElement$1 } from './snk-pesquisa2.js';
|
|
@@ -377,6 +379,32 @@ class RequestListenerFactory {
|
|
|
377
379
|
}
|
|
378
380
|
}
|
|
379
381
|
|
|
382
|
+
class LayoutFormConfig {
|
|
383
|
+
constructor() {
|
|
384
|
+
this._config = null;
|
|
385
|
+
this.listeners = [];
|
|
386
|
+
}
|
|
387
|
+
static getInstance() {
|
|
388
|
+
if (!LayoutFormConfig.instance) {
|
|
389
|
+
LayoutFormConfig.instance = new LayoutFormConfig();
|
|
390
|
+
}
|
|
391
|
+
return LayoutFormConfig.instance;
|
|
392
|
+
}
|
|
393
|
+
get config() {
|
|
394
|
+
return this._config;
|
|
395
|
+
}
|
|
396
|
+
setConfig(newConfig) {
|
|
397
|
+
this._config = newConfig;
|
|
398
|
+
this.notifyListeners();
|
|
399
|
+
}
|
|
400
|
+
onConfigChange(listener) {
|
|
401
|
+
this.listeners.push(listener);
|
|
402
|
+
}
|
|
403
|
+
notifyListeners() {
|
|
404
|
+
this.listeners.forEach(listener => listener(this._config));
|
|
405
|
+
}
|
|
406
|
+
}
|
|
407
|
+
|
|
380
408
|
const snkApplicationCss = ".sc-snk-application-h{--scrim-z-index:var(--elevation--100, 100);display:flex;flex-direction:column;height:100%}.sc-snk-application-h>.loading-hidden.sc-snk-application{display:none;pointer-events:none}.skeleton-content-left.sc-snk-application{width:300px;padding-right:5px}.skeleton-content.sc-snk-application{height:calc(100vh - 310px)}.spinner.sc-snk-application{height:100vh;gap:10px}.spinner.sc-snk-application>.spin.sc-snk-application{animation-name:spin;animation-duration:5000ms;animation-iteration-count:infinite;animation-timing-function:linear}@keyframes spin{from{transform:rotate(0deg)}to{transform:rotate(360deg)}}";
|
|
381
409
|
|
|
382
410
|
const SnkApplication = /*@__PURE__*/ proxyCustomElement(class extends HTMLElement {
|
|
@@ -397,6 +425,8 @@ const SnkApplication = /*@__PURE__*/ proxyCustomElement(class extends HTMLElemen
|
|
|
397
425
|
this._pendingActions = new Map;
|
|
398
426
|
this._loadPkParameter = null;
|
|
399
427
|
this._isLoadedByPk = false;
|
|
428
|
+
this._formConfigFetcher = new FormConfigFetcher();
|
|
429
|
+
this._LayoutFormConfigSingleton = LayoutFormConfig.getInstance();
|
|
400
430
|
this._applicationReady = false;
|
|
401
431
|
this._templateSkeleton = TEMPLATES_SKELETON.GRID;
|
|
402
432
|
this._activeScrimWindow = false;
|
|
@@ -471,6 +501,14 @@ const SnkApplication = /*@__PURE__*/ proxyCustomElement(class extends HTMLElemen
|
|
|
471
501
|
async getKeyboardManager() {
|
|
472
502
|
return Promise.resolve(this._keyboardManager);
|
|
473
503
|
}
|
|
504
|
+
/**
|
|
505
|
+
* Obtém o notificador de Layout de formulario.
|
|
506
|
+
*
|
|
507
|
+
* @return {LayoutFormConfig} the Configurador de Layout do Formulario
|
|
508
|
+
*/
|
|
509
|
+
async getLayoutFormConfig() {
|
|
510
|
+
return Promise.resolve(this._LayoutFormConfigSingleton);
|
|
511
|
+
}
|
|
474
512
|
/**
|
|
475
513
|
* Obtém `true` caso o usuário logado seja o SUP.
|
|
476
514
|
*/
|
|
@@ -1384,6 +1422,12 @@ const SnkApplication = /*@__PURE__*/ proxyCustomElement(class extends HTMLElemen
|
|
|
1384
1422
|
ConfigStorage.preload(this.applicationResourceID, this.configName, legacyConfig);
|
|
1385
1423
|
document.addEventListener("click", () => Workspace.applicationClick());
|
|
1386
1424
|
this._waitingAppReady.forEach(resolve => resolve());
|
|
1425
|
+
this.setLayoutFormConfig();
|
|
1426
|
+
}
|
|
1427
|
+
async setLayoutFormConfig() {
|
|
1428
|
+
const response = await this._formConfigFetcher.fetchLayoutFormConfig('formColCfg.' + this.applicationResourceID);
|
|
1429
|
+
const config = isNaN(Number(response === null || response === void 0 ? void 0 : response.config)) ? null : Number(response === null || response === void 0 ? void 0 : response.config);
|
|
1430
|
+
this._LayoutFormConfigSingleton.setConfig(config);
|
|
1387
1431
|
}
|
|
1388
1432
|
connectedCallback() {
|
|
1389
1433
|
this._isBrowserTypeElectron = UserAgentUtils.isElectron();
|
|
@@ -1564,6 +1608,7 @@ const SnkApplication = /*@__PURE__*/ proxyCustomElement(class extends HTMLElemen
|
|
|
1564
1608
|
"_templateSkeleton": [32],
|
|
1565
1609
|
"_activeScrimWindow": [32],
|
|
1566
1610
|
"getKeyboardManager": [64],
|
|
1611
|
+
"getLayoutFormConfig": [64],
|
|
1567
1612
|
"isUserSup": [64],
|
|
1568
1613
|
"addPendingAction": [64],
|
|
1569
1614
|
"callServiceBroker": [64],
|