@sankhyalabs/sankhyablocks 8.16.0-dev.96 → 8.16.0-dev.98
Sign up to get free protection for your applications and to get access to all the features.
- 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 +8 -8
- 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-65964889.js → snk-guides-viewer-0e4f3b1a.js} +4 -5
- 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-crud/subcomponents/snk-detail-view/snk-detail-view.css +10 -1
- package/dist/collection/components/snk-crud/subcomponents/snk-detail-view/snk-detail-view.js +25 -1
- package/dist/collection/components/snk-crud/subcomponents/snk-guides-viewer.js +1 -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 +110 -86
- 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 +8 -8
- 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-9e43d0ca.js → snk-guides-viewer-80a8709c.js} +4 -5
- 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-crud/subcomponents/snk-detail-view/snk-detail-view.d.ts +5 -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 +77 -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-05fda408.entry.js +0 -1
- package/dist/sankhyablocks/p-1a8295af.entry.js +0 -1
- package/dist/sankhyablocks/p-1e48864c.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-3d424ae9.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-a18de25e.js +0 -1
- package/dist/sankhyablocks/p-be2e5f36.entry.js +0 -1
- package/dist/sankhyablocks/p-d571e243.entry.js +0 -1
@@ -18,6 +18,8 @@ import { SnkErrorHandler } from "./errorhandler/snk-error-handler";
|
|
18
18
|
import RequestListenerFactory from "./request-listener/RequestListenerFactory";
|
19
19
|
import PreloadManager from "../../lib/http/data-fetcher/fetchers/data-unit/cache/PreloadManager";
|
20
20
|
import { TEMPLATES_SKELETON } from "../../lib/utils/constants";
|
21
|
+
import { LayoutFormConfig } from "../../lib/configs/LayoutFormConfig";
|
22
|
+
import { FormConfigFetcher } from "../../lib";
|
21
23
|
/**
|
22
24
|
* É possível customizar as mensagens dos blocos de construção através de um pequeno modulo na estrutura da aplicação:
|
23
25
|
* - Criar um arquivo no seguinte caminho: /messages/appmessages.msg.js.
|
@@ -37,6 +39,8 @@ export class SnkApplication {
|
|
37
39
|
this._pendingActions = new Map;
|
38
40
|
this._loadPkParameter = null;
|
39
41
|
this._isLoadedByPk = false;
|
42
|
+
this._formConfigFetcher = new FormConfigFetcher();
|
43
|
+
this._LayoutFormConfigSingleton = LayoutFormConfig.getInstance();
|
40
44
|
this._applicationReady = false;
|
41
45
|
this._templateSkeleton = TEMPLATES_SKELETON.GRID;
|
42
46
|
this._activeScrimWindow = false;
|
@@ -111,6 +115,14 @@ export class SnkApplication {
|
|
111
115
|
async getKeyboardManager() {
|
112
116
|
return Promise.resolve(this._keyboardManager);
|
113
117
|
}
|
118
|
+
/**
|
119
|
+
* Obtém o notificador de Layout de formulario.
|
120
|
+
*
|
121
|
+
* @return {LayoutFormConfig} the Configurador de Layout do Formulario
|
122
|
+
*/
|
123
|
+
async getLayoutFormConfig() {
|
124
|
+
return Promise.resolve(this._LayoutFormConfigSingleton);
|
125
|
+
}
|
114
126
|
/**
|
115
127
|
* Obtém `true` caso o usuário logado seja o SUP.
|
116
128
|
*/
|
@@ -1026,6 +1038,12 @@ export class SnkApplication {
|
|
1026
1038
|
ConfigStorage.preload(this.applicationResourceID, this.configName, legacyConfig);
|
1027
1039
|
document.addEventListener("click", () => Workspace.applicationClick());
|
1028
1040
|
this._waitingAppReady.forEach(resolve => resolve());
|
1041
|
+
this.setLayoutFormConfig();
|
1042
|
+
}
|
1043
|
+
async setLayoutFormConfig() {
|
1044
|
+
const response = await this._formConfigFetcher.fetchLayoutFormConfig('formColCfg.' + this.applicationResourceID);
|
1045
|
+
const config = isNaN(Number(response === null || response === void 0 ? void 0 : response.config)) ? null : Number(response === null || response === void 0 ? void 0 : response.config);
|
1046
|
+
this._LayoutFormConfigSingleton.setConfig(config);
|
1029
1047
|
}
|
1030
1048
|
connectedCallback() {
|
1031
1049
|
this._isBrowserTypeElectron = UserAgentUtils.isElectron();
|
@@ -1379,6 +1397,29 @@ export class SnkApplication {
|
|
1379
1397
|
}]
|
1380
1398
|
}
|
1381
1399
|
},
|
1400
|
+
"getLayoutFormConfig": {
|
1401
|
+
"complexType": {
|
1402
|
+
"signature": "() => Promise<LayoutFormConfig>",
|
1403
|
+
"parameters": [],
|
1404
|
+
"references": {
|
1405
|
+
"Promise": {
|
1406
|
+
"location": "global"
|
1407
|
+
},
|
1408
|
+
"LayoutFormConfig": {
|
1409
|
+
"location": "import",
|
1410
|
+
"path": "../../lib/configs/LayoutFormConfig"
|
1411
|
+
}
|
1412
|
+
},
|
1413
|
+
"return": "Promise<LayoutFormConfig>"
|
1414
|
+
},
|
1415
|
+
"docs": {
|
1416
|
+
"text": "Obt\u00E9m o notificador de Layout de formulario.",
|
1417
|
+
"tags": [{
|
1418
|
+
"name": "return",
|
1419
|
+
"text": "the Configurador de Layout do Formulario"
|
1420
|
+
}]
|
1421
|
+
}
|
1422
|
+
},
|
1382
1423
|
"isUserSup": {
|
1383
1424
|
"complexType": {
|
1384
1425
|
"signature": "() => Promise<boolean>",
|
@@ -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
|
}
|
package/dist/collection/components/snk-crud/subcomponents/snk-detail-view/snk-detail-view.js
CHANGED
@@ -28,6 +28,7 @@ export class SnkDetailView {
|
|
28
28
|
this.taskbarCustomContainerId = undefined;
|
29
29
|
this.customEditors = undefined;
|
30
30
|
this.customRenders = undefined;
|
31
|
+
this.presentationMode = PresentationMode.SECONDARY;
|
31
32
|
}
|
32
33
|
observeDataUnit(newDataUnit, oldDataUnit) {
|
33
34
|
newDataUnit === null || newDataUnit === void 0 ? void 0 : newDataUnit.subscribe(this.dataUnitActionHandler.bind(this));
|
@@ -247,7 +248,7 @@ export class SnkDetailView {
|
|
247
248
|
render() {
|
248
249
|
this.updateLabel();
|
249
250
|
//const cardConfig: IFormCardConfig = this._cardsState?.get(this.selectedForm);
|
250
|
-
return (h(Host, null, h("snk-data-unit", { ref: (el) => this._snkDataUnit = el, dataUnitName: `${this.dataUnitName}`, onDataUnitReady: evt => this.dataUnitReadyHandler(evt), entityName: this.entityName, onDataStateChange: this.handleDataStateChange.bind(this), ignoreSaveMessage: this._currentView === VIEW_MODE.GRID, messagesBuilder: this.messagesBuilder, configName: this._configName }, h("ez-view-stack", { ref: (ref) => this.updateViewStack(ref) }, h("stack-item", null, h("div", { class: "ez-box ez-box--shadow grid-container" }, h("div", { class: "ez-
|
251
|
+
return (h(Host, null, h("snk-data-unit", { ref: (el) => this._snkDataUnit = el, dataUnitName: `${this.dataUnitName}`, onDataUnitReady: evt => this.dataUnitReadyHandler(evt), entityName: this.entityName, onDataStateChange: this.handleDataStateChange.bind(this), ignoreSaveMessage: this._currentView === VIEW_MODE.GRID, messagesBuilder: this.messagesBuilder, configName: this._configName }, h("ez-view-stack", { ref: (ref) => this.updateViewStack(ref) }, h("stack-item", null, h("div", { class: "ez-box ez-box--shadow grid-container" }, h("div", { class: "ez-title--primary ez-size-width--full ez-padding--large detail-header" }, h("div", { class: "ez-flex ez-text ez-text--bold ez-flex--justify-start ez-flex--align-items-center" }, this._levelPath ? h("span", { class: "level-path" }, this._levelPath + " /") : undefined, this.label)), h("snk-grid", { class: "ez-size-width--full", ref: (ref) => this._snkGrid = ref, configName: this._configName, messagesBuilder: this.messagesBuilder, onGridDoubleClick: () => this.emitSwitchEvent(VIEW_MODE.FORM), onActionClick: (evt) => this.executeActionHandler(evt), presentationMode: this.presentationMode, canEdit: this.canEdit, isDetail: true, taskbarCustomContainerId: this.taskbarCustomContainerId, gridHeaderCustomSlotId: "DETAIL_GRID_HEADER_CUSTOM_ELEMENTS", topTaskbarCustomSlotId: "DETAIL_GRID_TASKBAR_CUSTOM_ELEMENTS", outlineMode: false }))), h("stack-item", null, h("snk-form-view", { ref: (ref) => this._snkFormView = ref, canExpand: false, canFix: false, name: this.selectedForm, formMetadata: this._formMetadata, dataUnit: this.dataUnit, fields: this.getFormFields(), label: this.label, levelPath: this._levelPath, onFormItemsReady: ({ detail: formItems }) => this.formItemsReady.emit(formItems) }, h("snk-taskbar", { key: "guideViewerTaskbar", class: "form-taskbar", "data-element-id": "guideViewer", configName: this._configName, messagesBuilder: this.messagesBuilder, disabledButtons: this._disabledButtons, buttons: "INSERT,PREVIOUS,NEXT,DIVIDER,CLONE,REMOVE,MORE_OPTIONS,DIVIDER,GRID_MODE,CONFIGURATOR", primaryButton: "INSERT", presentationMode: this.presentationMode, onActionClick: evt => this.executeActionHandler(evt), dataUnit: this.dataUnit, resourceID: this.resourceID, customContainerId: this.taskbarCustomContainerId, customSlotId: "DETAIL_TASKBAR_CUSTOM_ELEMENTS" }, h("slot", { name: "DETAIL_TASKBAR_CUSTOM_ELEMENTS" })))), h("stack-item", null, h("snk-attach", { registerKey: this.attachmentRegisterKey, messagesBuilder: this.messagesBuilder, entityName: this.entityName, onBack: this.handleAttachBack.bind(this) }))))));
|
251
252
|
}
|
252
253
|
static get is() { return "snk-detail-view"; }
|
253
254
|
static get encapsulation() { return "scoped"; }
|
@@ -545,6 +546,29 @@ export class SnkDetailView {
|
|
545
546
|
"tags": [],
|
546
547
|
"text": "Render customizados da grade."
|
547
548
|
}
|
549
|
+
},
|
550
|
+
"presentationMode": {
|
551
|
+
"type": "string",
|
552
|
+
"mutable": false,
|
553
|
+
"complexType": {
|
554
|
+
"original": "PresentationMode",
|
555
|
+
"resolved": "PresentationMode.PRIMARY | PresentationMode.SECONDARY | PresentationMode.SINGLE_TASKBAR",
|
556
|
+
"references": {
|
557
|
+
"PresentationMode": {
|
558
|
+
"location": "import",
|
559
|
+
"path": "../../../../lib"
|
560
|
+
}
|
561
|
+
}
|
562
|
+
},
|
563
|
+
"required": false,
|
564
|
+
"optional": false,
|
565
|
+
"docs": {
|
566
|
+
"tags": [],
|
567
|
+
"text": "Altera o modo de apresenta\u00E7\u00E3o dos bot\u00F5es do snk-taskbar."
|
568
|
+
},
|
569
|
+
"attribute": "presentation-mode",
|
570
|
+
"reflect": false,
|
571
|
+
"defaultValue": "PresentationMode.SECONDARY"
|
548
572
|
}
|
549
573
|
};
|
550
574
|
}
|
@@ -284,7 +284,7 @@ export class SnkGuidesViewer {
|
|
284
284
|
else {
|
285
285
|
detailBranch = this.selectedGuide;
|
286
286
|
}
|
287
|
-
content = this.wrapDetail(levels, h("snk-detail-view", { ref: (ref) => this._currentDetail = ref, dataUnitName: this.getDataUnitName(levels, childEntityName), onSnkDetailGuidesChange: (evt) => this.updateGuide(evt.detail), entityName: childEntityName, selectedForm: formName, branchGuide: detailBranch, guideItemPath: this._breadcrumbItems, key: `detail${detailId}`, canEdit: this.canEdit, onSnkSwitchGuide: evt => this._guideNavigator.selectGuide(evt.detail), resourceID: this.resourceID, taskbarCustomContainerId: this.detailTaskbarCustomContainerId, customEditors: this._customEditors, customRenders: this._customRenders }));
|
287
|
+
content = this.wrapDetail(levels, h("snk-detail-view", { ref: (ref) => this._currentDetail = ref, dataUnitName: this.getDataUnitName(levels, childEntityName), onSnkDetailGuidesChange: (evt) => this.updateGuide(evt.detail), entityName: childEntityName, selectedForm: formName, branchGuide: detailBranch, guideItemPath: this._breadcrumbItems, key: `detail${detailId}`, canEdit: this.canEdit, onSnkSwitchGuide: evt => this._guideNavigator.selectGuide(evt.detail), resourceID: this.resourceID, taskbarCustomContainerId: this.detailTaskbarCustomContainerId, customEditors: this._customEditors, customRenders: this._customRenders, presentationMode: this.presentationMode }));
|
288
288
|
}
|
289
289
|
else {
|
290
290
|
const cardId = this.selectedGuide.id;
|
@@ -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
|
|