@sankhyalabs/sankhyablocks 8.2.0 → 8.3.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/cjs/auth-fetcher-d407c31c.js +34 -0
- package/dist/cjs/loader.cjs.js +1 -1
- package/dist/cjs/sankhyablocks.cjs.js +1 -1
- package/dist/cjs/snk-application.cjs.entry.js +4 -31
- package/dist/cjs/snk-crud.cjs.entry.js +7 -3
- package/dist/cjs/snk-data-exporter.cjs.entry.js +1 -1
- package/dist/cjs/{snk-data-unit-d5109a08.js → snk-data-unit-e89e07bd.js} +4 -3
- package/dist/cjs/snk-data-unit.cjs.entry.js +1 -1
- package/dist/cjs/snk-detail-view.cjs.entry.js +6 -15
- package/dist/cjs/snk-grid.cjs.entry.js +4 -1
- package/dist/cjs/{snk-guides-viewer-8c9693aa.js → snk-guides-viewer-8518c61b.js} +2 -3
- package/dist/cjs/snk-guides-viewer.cjs.entry.js +1 -1
- package/dist/cjs/snk-simple-crud.cjs.entry.js +3 -9
- package/dist/collection/components/snk-crud/snk-crud.js +26 -5
- package/dist/collection/components/snk-crud/subcomponents/snk-detail-view/snk-detail-view.js +24 -14
- package/dist/collection/components/snk-crud/subcomponents/snk-guides-viewer.js +20 -3
- package/dist/collection/components/snk-data-unit/snk-data-unit.js +21 -3
- package/dist/collection/components/snk-grid/snk-grid.js +60 -2
- package/dist/collection/components/snk-simple-crud/snk-simple-crud.js +21 -9
- package/dist/components/auth-fetcher.js +32 -0
- package/dist/components/snk-application2.js +1 -29
- package/dist/components/snk-crud.js +8 -3
- package/dist/components/snk-data-unit2.js +5 -3
- package/dist/components/snk-detail-view2.js +10 -17
- package/dist/components/snk-grid2.js +7 -1
- package/dist/components/snk-simple-crud2.js +4 -9
- package/dist/esm/auth-fetcher-c53e0d6c.js +32 -0
- package/dist/esm/loader.js +1 -1
- package/dist/esm/sankhyablocks.js +1 -1
- package/dist/esm/snk-application.entry.js +2 -29
- package/dist/esm/snk-crud.entry.js +7 -3
- package/dist/esm/snk-data-exporter.entry.js +1 -1
- package/dist/esm/{snk-data-unit-3a0bbfcb.js → snk-data-unit-8c4d944d.js} +4 -3
- package/dist/esm/snk-data-unit.entry.js +1 -1
- package/dist/esm/snk-detail-view.entry.js +6 -15
- package/dist/esm/snk-grid.entry.js +4 -1
- package/dist/esm/{snk-guides-viewer-a6d39c18.js → snk-guides-viewer-cdecff6e.js} +2 -3
- package/dist/esm/snk-guides-viewer.entry.js +1 -1
- package/dist/esm/snk-simple-crud.entry.js +3 -9
- package/dist/sankhyablocks/{p-3d6f91c2.entry.js → p-0848ee4d.entry.js} +1 -1
- package/dist/sankhyablocks/p-0bd9c412.js +1 -0
- package/dist/sankhyablocks/p-10b2aedc.entry.js +1 -0
- package/dist/sankhyablocks/p-1f63dcd4.entry.js +1 -0
- package/dist/sankhyablocks/p-216b2102.entry.js +1 -0
- package/dist/sankhyablocks/p-564efc43.js +1 -0
- package/dist/sankhyablocks/p-6e06175e.entry.js +1 -0
- package/dist/sankhyablocks/p-8f3652bf.entry.js +11 -0
- package/dist/sankhyablocks/p-b04fb9d4.js +1 -0
- package/dist/sankhyablocks/p-c32b9d7c.entry.js +1 -0
- package/dist/sankhyablocks/{p-2d883fe9.entry.js → p-ff7383b0.entry.js} +1 -1
- package/dist/sankhyablocks/sankhyablocks.esm.js +1 -1
- package/dist/types/components/snk-crud/snk-crud.d.ts +5 -0
- package/dist/types/components/snk-crud/subcomponents/snk-detail-view/snk-detail-view.d.ts +5 -0
- package/dist/types/components/snk-crud/subcomponents/snk-guides-viewer.d.ts +4 -0
- package/dist/types/components/snk-data-unit/snk-data-unit.d.ts +4 -0
- package/dist/types/components/snk-grid/snk-grid.d.ts +13 -0
- package/dist/types/components/snk-simple-crud/snk-simple-crud.d.ts +4 -0
- package/dist/types/components.d.ts +64 -0
- package/package.json +1 -1
- package/dist/sankhyablocks/p-15aba6fb.entry.js +0 -11
- package/dist/sankhyablocks/p-21e7c08e.entry.js +0 -1
- package/dist/sankhyablocks/p-2861d44f.entry.js +0 -1
- package/dist/sankhyablocks/p-4f4cd005.entry.js +0 -1
- package/dist/sankhyablocks/p-5df17074.js +0 -1
- package/dist/sankhyablocks/p-9edad923.js +0 -1
- package/dist/sankhyablocks/p-c945318c.entry.js +0 -1
- package/dist/sankhyablocks/p-ccbfb1cf.entry.js +0 -1
@@ -3,7 +3,7 @@ import { ApplicationContext, ElementIDUtils } from '@sankhyalabs/core';
|
|
3
3
|
import { TaskbarElement } from '../snk-taskbar/elements/taskbar-elements';
|
4
4
|
import { PresentationMode } from '../../lib';
|
5
5
|
import { VIEW_MODE } from '../../lib/utils/constants';
|
6
|
-
|
6
|
+
import { AutorizationType } from '../../lib/http/data-fetcher/fetchers/auth-fetcher';
|
7
7
|
/**
|
8
8
|
* É possível customizar as mensagens dos blocos de construção através de um pequeno modulo na estrutura da aplicação:
|
9
9
|
* - Criar um arquivo no seguinte caminho: /messages/appmessages.msg.js.
|
@@ -16,6 +16,7 @@ export class SnkCrud {
|
|
16
16
|
this._dataState = undefined;
|
17
17
|
this.attachmentRegisterKey = undefined;
|
18
18
|
this._currentViewMode = VIEW_MODE.GRID;
|
19
|
+
this._canEdit = undefined;
|
19
20
|
this.configName = undefined;
|
20
21
|
this.selectionToastConfig = undefined;
|
21
22
|
this.showActionButtons = false;
|
@@ -26,6 +27,7 @@ export class SnkCrud {
|
|
26
27
|
this.multipleSelection = true;
|
27
28
|
this.presentationMode = PresentationMode.PRIMARY;
|
28
29
|
this.messagesBuilder = undefined;
|
30
|
+
this.useEnterLikeTab = false;
|
29
31
|
}
|
30
32
|
/**
|
31
33
|
* Usado para alternar a visão entre GRID e FORM externamente.
|
@@ -109,7 +111,7 @@ export class SnkCrud {
|
|
109
111
|
}
|
110
112
|
componentWillLoad() {
|
111
113
|
const application = ApplicationContext.getContextValue("__SNK__APPLICATION__");
|
112
|
-
|
114
|
+
application.hasAccess(AutorizationType.UPDATE).then(canEdit => this._canEdit = canEdit);
|
113
115
|
let parent = this._element.parentElement;
|
114
116
|
while (parent) {
|
115
117
|
if (parent.tagName.toUpperCase() === "SNK-DATA-UNIT") {
|
@@ -156,8 +158,8 @@ export class SnkCrud {
|
|
156
158
|
this.configuratorCancel.emit();
|
157
159
|
}
|
158
160
|
render() {
|
159
|
-
|
160
|
-
return (h("ez-view-stack", { ref: (ref) => this._viewStack = ref, "data-element-id": "crud" }, h("stack-item", null, h("snk-grid", { ref: (ref) => this._snkGrid = ref, "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, selectionToastConfig: this.selectionToastConfig }, 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" }, 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') }, h("div", { slot: "SnkConfigContainerSlot" }, h("slot", { name: "SnkConfigContainerSlot" })))));
|
161
|
+
this._snkDataUnit.ignoreSaveMessage = this._currentViewMode === VIEW_MODE.GRID;
|
162
|
+
return (h("ez-view-stack", { ref: (ref) => this._viewStack = ref, "data-element-id": "crud" }, h("stack-item", null, h("snk-grid", { ref: (ref) => this._snkGrid = ref, "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, selectionToastConfig: this.selectionToastConfig, useEnterLikeTab: this.useEnterLikeTab, canEdit: this._canEdit }, 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 }, 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') }, h("div", { slot: "SnkConfigContainerSlot" }, h("slot", { name: "SnkConfigContainerSlot" })))));
|
161
163
|
}
|
162
164
|
static get is() { return "snk-crud"; }
|
163
165
|
static get encapsulation() { return "scoped"; }
|
@@ -375,6 +377,24 @@ export class SnkCrud {
|
|
375
377
|
"tags": [],
|
376
378
|
"text": "Respons\u00E1vel por flexibilizar e padronizar o uso de mensagens nos blocos de constru\u00E7\u00E3o."
|
377
379
|
}
|
380
|
+
},
|
381
|
+
"useEnterLikeTab": {
|
382
|
+
"type": "boolean",
|
383
|
+
"mutable": false,
|
384
|
+
"complexType": {
|
385
|
+
"original": "boolean",
|
386
|
+
"resolved": "boolean",
|
387
|
+
"references": {}
|
388
|
+
},
|
389
|
+
"required": false,
|
390
|
+
"optional": false,
|
391
|
+
"docs": {
|
392
|
+
"tags": [],
|
393
|
+
"text": "Quando verdadeiro, o ENTER far\u00E1 a navega\u00E7\u00E3o como se fosse a tecla TAB na grade."
|
394
|
+
},
|
395
|
+
"attribute": "use-enter-like-tab",
|
396
|
+
"reflect": false,
|
397
|
+
"defaultValue": "false"
|
378
398
|
}
|
379
399
|
};
|
380
400
|
}
|
@@ -383,7 +403,8 @@ export class SnkCrud {
|
|
383
403
|
"_dataUnit": {},
|
384
404
|
"_dataState": {},
|
385
405
|
"attachmentRegisterKey": {},
|
386
|
-
"_currentViewMode": {}
|
406
|
+
"_currentViewMode": {},
|
407
|
+
"_canEdit": {}
|
387
408
|
};
|
388
409
|
}
|
389
410
|
static get events() {
|
package/dist/collection/components/snk-crud/subcomponents/snk-detail-view/snk-detail-view.js
CHANGED
@@ -10,6 +10,7 @@ import { GuideBuilder } from '../GuideBuilder';
|
|
10
10
|
export class SnkDetailView {
|
11
11
|
constructor() {
|
12
12
|
this._disabledButtons = undefined;
|
13
|
+
this._currentView = undefined;
|
13
14
|
this.attachmentRegisterKey = undefined;
|
14
15
|
this.formConfigManager = undefined;
|
15
16
|
this.dataUnitName = undefined;
|
@@ -21,12 +22,8 @@ export class SnkDetailView {
|
|
21
22
|
this.dataState = undefined;
|
22
23
|
this.messagesBuilder = undefined;
|
23
24
|
this.branchGuide = undefined;
|
25
|
+
this.canEdit = true;
|
24
26
|
}
|
25
|
-
// /**
|
26
|
-
// * Define se a edição está habilitada na grid.
|
27
|
-
// */
|
28
|
-
// @Prop()
|
29
|
-
// canEdit: boolean = true;
|
30
27
|
observerDataState(newValue, oldValue) {
|
31
28
|
const openInsertion = !(oldValue === null || oldValue === void 0 ? void 0 : oldValue.insertionMode) && (newValue === null || newValue === void 0 ? void 0 : newValue.insertionMode);
|
32
29
|
const closeInsertion = (oldValue === null || oldValue === void 0 ? void 0 : oldValue.insertionMode) && !(newValue === null || newValue === void 0 ? void 0 : newValue.insertionMode);
|
@@ -139,10 +136,8 @@ export class SnkDetailView {
|
|
139
136
|
updateViewStack(viewStack) {
|
140
137
|
var _a, _b;
|
141
138
|
this._viewStack = viewStack;
|
142
|
-
|
143
|
-
(_b = (_a = this._viewStack) === null || _a === void 0 ? void 0 : _a.show) === null || _b === void 0 ? void 0 : _b.call(_a, this.
|
144
|
-
// this._currentView = this.selectedForm ? 1 : 0;
|
145
|
-
// this._viewStack?.show?.(this._currentView);
|
139
|
+
this._currentView = this.selectedForm ? 1 : 0;
|
140
|
+
(_b = (_a = this._viewStack) === null || _a === void 0 ? void 0 : _a.show) === null || _b === void 0 ? void 0 : _b.call(_a, this._currentView);
|
146
141
|
}
|
147
142
|
getFormFields() {
|
148
143
|
if (this.selectedForm && this._formMetadata) {
|
@@ -197,11 +192,7 @@ export class SnkDetailView {
|
|
197
192
|
render() {
|
198
193
|
this.updateLabel();
|
199
194
|
//const cardConfig: IFormCardConfig = this._cardsState?.get(this.selectedForm);
|
200
|
-
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),
|
201
|
-
// ignoreSaveMessage={this._currentView === VIEW_MODE.GRID}
|
202
|
-
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-flex 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 ez-size-height--full", ref: (ref) => this._snkGrid = ref, configName: this._configName, messagesBuilder: this.messagesBuilder, onGridDoubleClick: () => this.emitSwitchEvent(VIEW_MODE.FORM), onActionClick: (evt) => this.executeActionHandler(evt), presentationMode: PresentationMode.SECONDARY,
|
203
|
-
// canEdit={this.canEdit}
|
204
|
-
isDetail: true }))), 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 }, 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: PresentationMode.SECONDARY, onActionClick: evt => this.executeActionHandler(evt), dataUnit: this.dataUnit }))), h("stack-item", null, h("snk-attach", { registerKey: this.attachmentRegisterKey, messagesBuilder: this.messagesBuilder, entityName: this.entityName, onBack: this.handleAttachBack.bind(this) }))))));
|
195
|
+
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-flex 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 ez-size-height--full", ref: (ref) => this._snkGrid = ref, configName: this._configName, messagesBuilder: this.messagesBuilder, onGridDoubleClick: () => this.emitSwitchEvent(VIEW_MODE.FORM), onActionClick: (evt) => this.executeActionHandler(evt), presentationMode: PresentationMode.SECONDARY, canEdit: this.canEdit, isDetail: true }))), 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 }, 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: PresentationMode.SECONDARY, onActionClick: evt => this.executeActionHandler(evt), dataUnit: this.dataUnit }))), h("stack-item", null, h("snk-attach", { registerKey: this.attachmentRegisterKey, messagesBuilder: this.messagesBuilder, entityName: this.entityName, onBack: this.handleAttachBack.bind(this) }))))));
|
205
196
|
}
|
206
197
|
static get is() { return "snk-detail-view"; }
|
207
198
|
static get encapsulation() { return "scoped"; }
|
@@ -407,12 +398,31 @@ export class SnkDetailView {
|
|
407
398
|
"tags": [],
|
408
399
|
"text": ""
|
409
400
|
}
|
401
|
+
},
|
402
|
+
"canEdit": {
|
403
|
+
"type": "boolean",
|
404
|
+
"mutable": false,
|
405
|
+
"complexType": {
|
406
|
+
"original": "boolean",
|
407
|
+
"resolved": "boolean",
|
408
|
+
"references": {}
|
409
|
+
},
|
410
|
+
"required": false,
|
411
|
+
"optional": false,
|
412
|
+
"docs": {
|
413
|
+
"tags": [],
|
414
|
+
"text": "Define se a edi\u00E7\u00E3o est\u00E1 habilitada na grid."
|
415
|
+
},
|
416
|
+
"attribute": "can-edit",
|
417
|
+
"reflect": false,
|
418
|
+
"defaultValue": "true"
|
410
419
|
}
|
411
420
|
};
|
412
421
|
}
|
413
422
|
static get states() {
|
414
423
|
return {
|
415
424
|
"_disabledButtons": {},
|
425
|
+
"_currentView": {},
|
416
426
|
"attachmentRegisterKey": {}
|
417
427
|
};
|
418
428
|
}
|
@@ -21,6 +21,7 @@ export class SnkGuidesViewer {
|
|
21
21
|
this.selectedGuide = undefined;
|
22
22
|
this.taskbarManager = undefined;
|
23
23
|
this.messagesBuilder = undefined;
|
24
|
+
this.canEdit = true;
|
24
25
|
this.presentationMode = undefined;
|
25
26
|
this._breadcrumbItems = [];
|
26
27
|
this._guides = undefined;
|
@@ -223,9 +224,7 @@ export class SnkGuidesViewer {
|
|
223
224
|
else {
|
224
225
|
detailBranch = this.selectedGuide;
|
225
226
|
}
|
226
|
-
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}`,
|
227
|
-
// canEdit={this.canEdit}
|
228
|
-
onSnkSwitchGuide: evt => this._guideNavigator.selectGuide(evt.detail) }));
|
227
|
+
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) }));
|
229
228
|
}
|
230
229
|
else {
|
231
230
|
const cardId = this.selectedGuide.id;
|
@@ -549,6 +548,24 @@ export class SnkGuidesViewer {
|
|
549
548
|
"text": "Respons\u00E1vel por flexibilizar e padronizar o uso de mensagens nos blocos de constru\u00E7\u00E3o."
|
550
549
|
}
|
551
550
|
},
|
551
|
+
"canEdit": {
|
552
|
+
"type": "boolean",
|
553
|
+
"mutable": false,
|
554
|
+
"complexType": {
|
555
|
+
"original": "boolean",
|
556
|
+
"resolved": "boolean",
|
557
|
+
"references": {}
|
558
|
+
},
|
559
|
+
"required": false,
|
560
|
+
"optional": false,
|
561
|
+
"docs": {
|
562
|
+
"tags": [],
|
563
|
+
"text": "Define se a edi\u00E7\u00E3o est\u00E1 habilitada na grid."
|
564
|
+
},
|
565
|
+
"attribute": "can-edit",
|
566
|
+
"reflect": false,
|
567
|
+
"defaultValue": "true"
|
568
|
+
},
|
552
569
|
"presentationMode": {
|
553
570
|
"type": "string",
|
554
571
|
"mutable": false,
|
@@ -11,9 +11,9 @@ export class SnkDataUnit {
|
|
11
11
|
const duState = this.buildDataState();
|
12
12
|
this.dataState = duState;
|
13
13
|
if (action.type === Action.DATA_SAVED) {
|
14
|
-
|
15
|
-
|
16
|
-
|
14
|
+
if (this.ignoreSaveMessage) {
|
15
|
+
return;
|
16
|
+
}
|
17
17
|
const msg = this.getMessage("snkDataUnit.saveInfo", action.payload.records[0]);
|
18
18
|
if (msg != undefined) {
|
19
19
|
this.showSuccessMessage(msg);
|
@@ -59,6 +59,7 @@ export class SnkDataUnit {
|
|
59
59
|
this.beforeSave = undefined;
|
60
60
|
this.afterSave = undefined;
|
61
61
|
this.useCancelConfirm = true;
|
62
|
+
this.ignoreSaveMessage = undefined;
|
62
63
|
this.configName = undefined;
|
63
64
|
}
|
64
65
|
observePageSize() {
|
@@ -590,6 +591,23 @@ export class SnkDataUnit {
|
|
590
591
|
"reflect": false,
|
591
592
|
"defaultValue": "true"
|
592
593
|
},
|
594
|
+
"ignoreSaveMessage": {
|
595
|
+
"type": "boolean",
|
596
|
+
"mutable": false,
|
597
|
+
"complexType": {
|
598
|
+
"original": "boolean",
|
599
|
+
"resolved": "boolean",
|
600
|
+
"references": {}
|
601
|
+
},
|
602
|
+
"required": false,
|
603
|
+
"optional": false,
|
604
|
+
"docs": {
|
605
|
+
"tags": [],
|
606
|
+
"text": "Respons\u00E1vel por evitar a mensagem de sucesso ao salvar."
|
607
|
+
},
|
608
|
+
"attribute": "ignore-save-message",
|
609
|
+
"reflect": false
|
610
|
+
},
|
593
611
|
"configName": {
|
594
612
|
"type": "string",
|
595
613
|
"mutable": false,
|
@@ -8,7 +8,6 @@ import TaskbarProcessor from '../snk-taskbar/processor/taskbar-processor';
|
|
8
8
|
import store from "../../lib/store";
|
9
9
|
import SnkMultiSelectionListDataSource from './filtercolumn/SnkMultiSelectionListDataSource';
|
10
10
|
import { SelectionMode } from '@sankhyalabs/core/dist/dataunit/DataUnit';
|
11
|
-
// import { IRecordValidator } from '@sankhyalabs/ezui/dist/types/utils/form/interfaces';
|
12
11
|
export class SnkGrid {
|
13
12
|
constructor() {
|
14
13
|
this._multiSelectionListDataSource = new SnkMultiSelectionListDataSource();
|
@@ -37,6 +36,9 @@ export class SnkGrid {
|
|
37
36
|
this.multipleSelection = undefined;
|
38
37
|
this.presentationMode = PresentationMode.PRIMARY;
|
39
38
|
this.messagesBuilder = undefined;
|
39
|
+
this.useEnterLikeTab = false;
|
40
|
+
this.recordsValidator = undefined;
|
41
|
+
this.canEdit = true;
|
40
42
|
}
|
41
43
|
/**
|
42
44
|
* Exibe a janela de configurações da grade.
|
@@ -305,7 +307,7 @@ export class SnkGrid {
|
|
305
307
|
return undefined;
|
306
308
|
}
|
307
309
|
return (h("div", { class: "snk-grid__container ez-flex ez-flex--column ez-flex-item--auto ez-padding--large" }, h("div", { class: "snk-grid__header ez-margin-bottom--medium" }, h("snk-filter-bar", { ref: (ref) => this._snkFilterBar = ref, dataUnit: this._dataUnit, "data-element-id": "gridFilter", class: "snk-grid__filter-bar ez-align--top", configName: this.configName, messagesBuilder: this.messagesBuilder }), ((_b = (_a = this._snkFilterBar) === null || _a === void 0 ? void 0 : _a.filterConfig) === null || _b === void 0 ? void 0 : _b.length) > 0 &&
|
308
|
-
h("hr", { class: "ez-divider-vertical ez-divider--dark ez-margin-left--medium snk-grid__header-divider" }), h("snk-taskbar", { class: "ez-padding-left--medium", "data-element-id": "grid_top", key: "topTaskbar", configName: this.configName, dataUnit: this._dataUnit, messagesBuilder: this.messagesBuilder, buttons: this._topTaskbarProcessor.buttons, disabledButtons: this._topTaskbarProcessor.disabledButtons, customButtons: this._topTaskbarProcessor.customButtons, primaryButton: this.getPrimaryButton() })), h("ez-grid", { ref: ref => this._grid = ref, class: (this.presentationMode === PresentationMode.SECONDARY ? "snk-grid-container__without-shadow " : "") + "snk-grid__table", "data-element-id": "embedded", dataUnit: this._dataUnit, key: "grid-" + this._snkDataUnit.entityName, config: this._gridConfig, onConfigChange: (evt) => { this.gridConfigChangeHandler(evt); }, onEzDoubleClick: () => this.gridDoubleClick.emit(), statusResolver: this.statusResolver, multipleSelection: this.multipleSelection, onComponentReady: () => this.onEzGridReady(), columnfilterDataSource: this._multiSelectionListDataSource, selectionToastConfig: this.selectionToastConfig }, h("snk-taskbar", { dataUnit: this._dataUnit, configName: this.configName, messagesBuilder: this.messagesBuilder, "data-element-id": "grid_left", buttons: this._headerTaskbarProcessor.buttons, disabledButtons: this._headerTaskbarProcessor.disabledButtons, customButtons: this._headerTaskbarProcessor.customButtons, slot: "leftButtons", actionsList: this.actionsList })), h("div", { class: "ez-col ez-col--sd-12" }, h("slot", { name: "SnkGridFooter" })), h("ez-modal", { modalSize: "small", closeEsc: false, closeOutsideClick: false, opened: this._popUpGridConfig, 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), application: this._application, selectedIndex: 0, configName: this.configName, onConfigChange: (evt) => this.modalConfigChangeHandler(evt), onConfigCancel: () => this.closeGridConfig() }))));
|
310
|
+
h("hr", { class: "ez-divider-vertical ez-divider--dark ez-margin-left--medium snk-grid__header-divider" }), h("snk-taskbar", { class: "ez-padding-left--medium", "data-element-id": "grid_top", key: "topTaskbar", configName: this.configName, dataUnit: this._dataUnit, messagesBuilder: this.messagesBuilder, buttons: this._topTaskbarProcessor.buttons, disabledButtons: this._topTaskbarProcessor.disabledButtons, customButtons: this._topTaskbarProcessor.customButtons, primaryButton: this.getPrimaryButton() })), h("ez-grid", { ref: ref => this._grid = ref, class: (this.presentationMode === PresentationMode.SECONDARY ? "snk-grid-container__without-shadow " : "") + "snk-grid__table", "data-element-id": "embedded", dataUnit: this._dataUnit, key: "grid-" + this._snkDataUnit.entityName, config: this._gridConfig, onConfigChange: (evt) => { this.gridConfigChangeHandler(evt); }, onEzDoubleClick: () => this.gridDoubleClick.emit(), statusResolver: this.statusResolver, multipleSelection: this.multipleSelection, onComponentReady: () => this.onEzGridReady(), columnfilterDataSource: this._multiSelectionListDataSource, selectionToastConfig: this.selectionToastConfig, useEnterLikeTab: this.useEnterLikeTab, recordsValidator: this.recordsValidator, canEdit: this.canEdit }, h("snk-taskbar", { dataUnit: this._dataUnit, configName: this.configName, messagesBuilder: this.messagesBuilder, "data-element-id": "grid_left", buttons: this._headerTaskbarProcessor.buttons, disabledButtons: this._headerTaskbarProcessor.disabledButtons, customButtons: this._headerTaskbarProcessor.customButtons, slot: "leftButtons", actionsList: this.actionsList })), h("div", { class: "ez-col ez-col--sd-12" }, h("slot", { name: "SnkGridFooter" })), h("ez-modal", { modalSize: "small", closeEsc: false, closeOutsideClick: false, opened: this._popUpGridConfig, 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), application: this._application, selectedIndex: 0, configName: this.configName, onConfigChange: (evt) => this.modalConfigChangeHandler(evt), onConfigCancel: () => this.closeGridConfig() }))));
|
309
311
|
}
|
310
312
|
static get is() { return "snk-grid"; }
|
311
313
|
static get encapsulation() { return "scoped"; }
|
@@ -501,6 +503,62 @@ export class SnkGrid {
|
|
501
503
|
"tags": [],
|
502
504
|
"text": "Respons\u00E1vel por flexibilizar e padronizar o uso de mensagens nos blocos de constru\u00E7\u00E3o."
|
503
505
|
}
|
506
|
+
},
|
507
|
+
"useEnterLikeTab": {
|
508
|
+
"type": "boolean",
|
509
|
+
"mutable": false,
|
510
|
+
"complexType": {
|
511
|
+
"original": "boolean",
|
512
|
+
"resolved": "boolean",
|
513
|
+
"references": {}
|
514
|
+
},
|
515
|
+
"required": false,
|
516
|
+
"optional": false,
|
517
|
+
"docs": {
|
518
|
+
"tags": [],
|
519
|
+
"text": "Quando verdadeiro, o ENTER far\u00E1 a navega\u00E7\u00E3o como se fosse a tecla TAB na grade."
|
520
|
+
},
|
521
|
+
"attribute": "use-enter-like-tab",
|
522
|
+
"reflect": false,
|
523
|
+
"defaultValue": "false"
|
524
|
+
},
|
525
|
+
"recordsValidator": {
|
526
|
+
"type": "unknown",
|
527
|
+
"mutable": false,
|
528
|
+
"complexType": {
|
529
|
+
"original": "IRecordValidator",
|
530
|
+
"resolved": "IRecordValidator",
|
531
|
+
"references": {
|
532
|
+
"IRecordValidator": {
|
533
|
+
"location": "import",
|
534
|
+
"path": "@sankhyalabs/ezui/dist/types/utils/form/interfaces"
|
535
|
+
}
|
536
|
+
}
|
537
|
+
},
|
538
|
+
"required": false,
|
539
|
+
"optional": false,
|
540
|
+
"docs": {
|
541
|
+
"tags": [],
|
542
|
+
"text": "Validador respons\u00E1vel por checar a integridade das informa\u00E7\u00F5es do registro."
|
543
|
+
}
|
544
|
+
},
|
545
|
+
"canEdit": {
|
546
|
+
"type": "boolean",
|
547
|
+
"mutable": false,
|
548
|
+
"complexType": {
|
549
|
+
"original": "boolean",
|
550
|
+
"resolved": "boolean",
|
551
|
+
"references": {}
|
552
|
+
},
|
553
|
+
"required": false,
|
554
|
+
"optional": false,
|
555
|
+
"docs": {
|
556
|
+
"tags": [],
|
557
|
+
"text": "Define se a edi\u00E7\u00E3o est\u00E1 habilitada na grid."
|
558
|
+
},
|
559
|
+
"attribute": "can-edit",
|
560
|
+
"reflect": false,
|
561
|
+
"defaultValue": "true"
|
504
562
|
}
|
505
563
|
};
|
506
564
|
}
|
@@ -11,11 +11,6 @@ export class SnkSimpleCrud {
|
|
11
11
|
this.REGULAR_DEFAULT_BTNS = ["INSERT", "REFRESH", "PREVIOUS", "NEXT", "DIVIDER"];
|
12
12
|
this.REGULAR_SELECTED_BTNS = ["INSERT", "REFRESH", "PREVIOUS", "NEXT", "DIVIDER", "CLONE", "REMOVE", "DIVIDER"];
|
13
13
|
this._multiSelectionListDataSource = new SnkMultiSelectionListDataSource();
|
14
|
-
// /**
|
15
|
-
// * Quando verdadeiro, o ENTER fará a navegação como se fosse a tecla TAB na grade.
|
16
|
-
// */
|
17
|
-
// @Prop()
|
18
|
-
// useEnterLikeTab: boolean = false;
|
19
14
|
this._taskbarProcessor = new TaskbarProcessor({
|
20
15
|
"snkSimpleCrudTaskbar.form_regular": this.resolveInMemoryBtns(this.REGULAR_DEFAULT_BTNS).concat(TaskbarElement.GRID_MODE),
|
21
16
|
"snkSimpleCrudTaskbar.grid_regular": this.resolveInMemoryBtns(this.REGULAR_DEFAULT_BTNS).concat(TaskbarElement.FORM_MODE),
|
@@ -34,6 +29,7 @@ export class SnkSimpleCrud {
|
|
34
29
|
this.useCancelConfirm = true;
|
35
30
|
this.taskbarManager = undefined;
|
36
31
|
this.messagesBuilder = undefined;
|
32
|
+
this.useEnterLikeTab = false;
|
37
33
|
}
|
38
34
|
resolveInMemoryBtns(taskbarButtons) {
|
39
35
|
const newTaskBarConfig = [...taskbarButtons];
|
@@ -178,11 +174,9 @@ export class SnkSimpleCrud {
|
|
178
174
|
}
|
179
175
|
render() {
|
180
176
|
var _a;
|
181
|
-
return (h("snk-data-unit", { class: "simple-crud__container", dataUnit: this.dataUnit, useCancelConfirm: this.useCancelConfirm, onDataStateChange: evt => this.onDataStateChange(evt), onCancelEdition: this.handleCancelEdit.bind(this), onInsertionMode: () => this.goToView(VIEW_MODE.FORM), onDataUnitReady: (evt) => this.dataUnitReady.emit(evt.detail),
|
182
|
-
// ignoreSaveMessage={this._currentViewMode === VIEW_MODE.GRID}
|
183
|
-
onMessagesBuilderUpdated: evt => this.messagesBuilder = evt.detail }, h("header", null, h("slot", { name: "snkSimpleCrudHeader" })), h("section", { class: "ez-flex ez-box ez-box--shadow" }, h("snk-taskbar", { class: "ez-box ez-box--shadow ez-padding--medium ez-margin-bottom--large", dataUnit: this.dataUnit, primaryButton: ((_a = this.dataState) === null || _a === void 0 ? void 0 : _a.isDirty) ? "SAVE" : "INSERT", "data-element-id": "grid_left", messagesBuilder: this.messagesBuilder, buttons: this._taskbarProcessor.buttons, disabledButtons: this._taskbarProcessor.disabledButtons, customButtons: this._taskbarProcessor.customButtons, slot: "leftButtons", presentationMode: PresentationMode.SECONDARY }), h("ez-view-stack", { class: "ez-flex ez-flex--column", ref: (ref) => this._viewStack = ref, "data-element-id": "simple-crud" }, h("stack-item", null, h("ez-grid", { dataUnit: this.dataUnit, config: this.gridConfig, "no-header": true, multipleSelection: this.multipleSelection, onEzDoubleClick: () => this.goToView(VIEW_MODE.FORM), columnfilterDataSource: this.dataUnit.name.includes(InMemoryLoader.IN_MEMORY_DATA_UNIT_NAME)
|
177
|
+
return (h("snk-data-unit", { class: "simple-crud__container", dataUnit: this.dataUnit, useCancelConfirm: this.useCancelConfirm, onDataStateChange: evt => this.onDataStateChange(evt), onCancelEdition: this.handleCancelEdit.bind(this), onInsertionMode: () => this.goToView(VIEW_MODE.FORM), onDataUnitReady: (evt) => this.dataUnitReady.emit(evt.detail), ignoreSaveMessage: this._currentViewMode === VIEW_MODE.GRID, onMessagesBuilderUpdated: evt => this.messagesBuilder = evt.detail }, h("header", null, h("slot", { name: "snkSimpleCrudHeader" })), h("section", { class: "ez-flex ez-box ez-box--shadow" }, h("snk-taskbar", { class: "ez-box ez-box--shadow ez-padding--medium ez-margin-bottom--large", dataUnit: this.dataUnit, primaryButton: ((_a = this.dataState) === null || _a === void 0 ? void 0 : _a.isDirty) ? "SAVE" : "INSERT", "data-element-id": "grid_left", messagesBuilder: this.messagesBuilder, buttons: this._taskbarProcessor.buttons, disabledButtons: this._taskbarProcessor.disabledButtons, customButtons: this._taskbarProcessor.customButtons, slot: "leftButtons", presentationMode: PresentationMode.SECONDARY }), h("ez-view-stack", { class: "ez-flex ez-flex--column", ref: (ref) => this._viewStack = ref, "data-element-id": "simple-crud" }, h("stack-item", null, h("ez-grid", { dataUnit: this.dataUnit, config: this.gridConfig, "no-header": true, multipleSelection: this.multipleSelection, onEzDoubleClick: () => this.goToView(VIEW_MODE.FORM), columnfilterDataSource: this.dataUnit.name.includes(InMemoryLoader.IN_MEMORY_DATA_UNIT_NAME)
|
184
178
|
? undefined
|
185
|
-
: this._multiSelectionListDataSource }, h("div", { slot: "footer" }, h("slot", { name: "snkSimpleCrudFooter" })))), h("stack-item", null, h("ez-form", { dataUnit: this.dataUnit, config: this.formConfig }))))));
|
179
|
+
: this._multiSelectionListDataSource, useEnterLikeTab: this.useEnterLikeTab }, h("div", { slot: "footer" }, h("slot", { name: "snkSimpleCrudFooter" })))), h("stack-item", null, h("ez-form", { dataUnit: this.dataUnit, config: this.formConfig }))))));
|
186
180
|
}
|
187
181
|
static get is() { return "snk-simple-crud"; }
|
188
182
|
static get encapsulation() { return "scoped"; }
|
@@ -375,6 +369,24 @@ export class SnkSimpleCrud {
|
|
375
369
|
"tags": [],
|
376
370
|
"text": "Respons\u00E1vel por flexibilizar e padronizar o uso de mensagens nos blocos de constru\u00E7\u00E3o."
|
377
371
|
}
|
372
|
+
},
|
373
|
+
"useEnterLikeTab": {
|
374
|
+
"type": "boolean",
|
375
|
+
"mutable": false,
|
376
|
+
"complexType": {
|
377
|
+
"original": "boolean",
|
378
|
+
"resolved": "boolean",
|
379
|
+
"references": {}
|
380
|
+
},
|
381
|
+
"required": false,
|
382
|
+
"optional": false,
|
383
|
+
"docs": {
|
384
|
+
"tags": [],
|
385
|
+
"text": "Quando verdadeiro, o ENTER far\u00E1 a navega\u00E7\u00E3o como se fosse a tecla TAB na grade."
|
386
|
+
},
|
387
|
+
"attribute": "use-enter-like-tab",
|
388
|
+
"reflect": false,
|
389
|
+
"defaultValue": "false"
|
378
390
|
}
|
379
391
|
};
|
380
392
|
}
|
@@ -0,0 +1,32 @@
|
|
1
|
+
import { ObjectUtils } from '@sankhyalabs/core';
|
2
|
+
import { R as ResourceFetcher } from './resource-fetcher.js';
|
3
|
+
|
4
|
+
class AuthFetcher extends ResourceFetcher {
|
5
|
+
getData(resourceID) {
|
6
|
+
const completePath = `cfg://auth/${resourceID}`;
|
7
|
+
return new Promise((resolve, reject) => {
|
8
|
+
this.loadResource(completePath)
|
9
|
+
.then((loadedResource) => {
|
10
|
+
let auth = ObjectUtils.stringToObject(loadedResource);
|
11
|
+
if (auth && typeof (auth) === 'object') {
|
12
|
+
resolve(auth);
|
13
|
+
}
|
14
|
+
}).catch((error) => {
|
15
|
+
reject(error);
|
16
|
+
});
|
17
|
+
});
|
18
|
+
}
|
19
|
+
}
|
20
|
+
var AutorizationType;
|
21
|
+
(function (AutorizationType) {
|
22
|
+
AutorizationType["INSERT"] = "I";
|
23
|
+
AutorizationType["UPDATE"] = "A";
|
24
|
+
AutorizationType["REMOVE"] = "E";
|
25
|
+
AutorizationType["SHOW"] = "C";
|
26
|
+
AutorizationType["CONFIG"] = "F";
|
27
|
+
AutorizationType["CONFIG_NUMBER"] = "N";
|
28
|
+
AutorizationType["CLONE"] = "D";
|
29
|
+
AutorizationType["CONFIG_GRID"] = "G";
|
30
|
+
})(AutorizationType || (AutorizationType = {}));
|
31
|
+
|
32
|
+
export { AutorizationType as A, AuthFetcher as a };
|
@@ -5,7 +5,7 @@ import { ApplicationUtils } from '@sankhyalabs/ezui/dist/collection/utils';
|
|
5
5
|
import { P as PesquisaFetcher } from './pesquisa-fetcher.js';
|
6
6
|
import { G as GridConfigFetcher, C as ConfigStorage } from './ConfigStorage.js';
|
7
7
|
import { D as DataUnitFetcher } from './dataunit-fetcher.js';
|
8
|
-
import {
|
8
|
+
import { A as AutorizationType, a as AuthFetcher } from './auth-fetcher.js';
|
9
9
|
import { S as SnkMessageBuilder } from './SnkMessageBuilder.js';
|
10
10
|
import { d as defineCustomElement$1 } from './snk-pesquisa2.js';
|
11
11
|
|
@@ -226,34 +226,6 @@ class ParametersFetcher {
|
|
226
226
|
|
227
227
|
const _0x5b7870=_0x2202;(function(_0x42e134,_0x5d9727){const _0x185c97=_0x2202,_0x5854c7=_0x42e134();while(!![]){try{const _0x129d35=parseInt(_0x185c97(0x18f))/0x1*(-parseInt(_0x185c97(0x183))/0x2)+-parseInt(_0x185c97(0x191))/0x3+parseInt(_0x185c97(0x17d))/0x4*(-parseInt(_0x185c97(0x185))/0x5)+parseInt(_0x185c97(0x184))/0x6*(-parseInt(_0x185c97(0x182))/0x7)+parseInt(_0x185c97(0x17b))/0x8+parseInt(_0x185c97(0x18c))/0x9+parseInt(_0x185c97(0x17f))/0xa;if(_0x129d35===_0x5d9727)break;else _0x5854c7['push'](_0x5854c7['shift']());}catch(_0x4becb4){_0x5854c7['push'](_0x5854c7['shift']());}}}(_0xdfb1,0x44ac7));function _0x2202(_0x2eac1f,_0x170d27){const _0xdfb1b4=_0xdfb1();return _0x2202=function(_0x2202d7,_0x224df5){_0x2202d7=_0x2202d7-0x17a;let _0x4d54a9=_0xdfb1b4[_0x2202d7];return _0x4d54a9;},_0x2202(_0x2eac1f,_0x170d27);}function _0xdfb1(){const _0x2b9dc4=['true','863GKWjmo','parse','56355fjjjAm','isSup','putAccess','4324480sjuCdS','hasOwnProperty','239748okvJLB','name','6055770tXeRaU','actions','forEach','7RPRvzn','1042CHxkUw','2988126NIwRMm','20MTNzmH','authorizationSf','item','string','hasAccess','isArray','Objeto\x20não\x20pode\x20ser\x20indefinido.','3071943fWslZp','parseFromJSON'];_0xdfb1=function(){return _0x2b9dc4;};return _0xdfb1();}class MGEAuthorization{[_0x5b7870(0x18d)](_0x37e96b){const _0x580407=_0x5b7870;_0x37e96b=utxt(_0x37e96b[_0x580407(0x186)]);typeof _0x37e96b==_0x580407(0x188)&&(_0x37e96b=JSON[_0x580407(0x190)](_0x37e96b));if(_0x37e96b==undefined)throw Error(_0x580407(0x18b));const _0x291d34=new MGEAuthorizationData(_0x37e96b[_0x580407(0x192)]==='S'||_0x37e96b[_0x580407(0x192)]===!![]);return Array[_0x580407(0x18a)](_0x37e96b[_0x580407(0x187)])&&_0x37e96b[_0x580407(0x187)][_0x580407(0x181)](_0x58a748=>_0x291d34['putAccess'](_0x58a748[_0x580407(0x17e)],String(_0x58a748['status'])==_0x580407(0x18e))),_0x291d34;}}class MGEAuthorizationData{constructor(_0x51ec5d){const _0x2c8472=_0x5b7870;this['isSup']=_0x51ec5d,this[_0x2c8472(0x180)]={};}[_0x5b7870(0x17a)](_0x5bd0f2,_0x2ef465){const _0x40d701=_0x5b7870;this[_0x40d701(0x180)][_0x5bd0f2]=_0x2ef465;}[_0x5b7870(0x189)](_0x4fd772){const _0x3707c1=_0x5b7870;if(this[_0x3707c1(0x192)])return !![];let _0x25e60a=!![];return this[_0x3707c1(0x180)][_0x3707c1(0x17c)](_0x4fd772)&&(_0x25e60a=this['actions'][_0x4fd772]),_0x25e60a;}['isUserSup'](){return this['isSup'];}}
|
228
228
|
|
229
|
-
class AuthFetcher extends ResourceFetcher {
|
230
|
-
getData(resourceID) {
|
231
|
-
const completePath = `cfg://auth/${resourceID}`;
|
232
|
-
return new Promise((resolve, reject) => {
|
233
|
-
this.loadResource(completePath)
|
234
|
-
.then((loadedResource) => {
|
235
|
-
let auth = ObjectUtils.stringToObject(loadedResource);
|
236
|
-
if (auth && typeof (auth) === 'object') {
|
237
|
-
resolve(auth);
|
238
|
-
}
|
239
|
-
}).catch((error) => {
|
240
|
-
reject(error);
|
241
|
-
});
|
242
|
-
});
|
243
|
-
}
|
244
|
-
}
|
245
|
-
var AutorizationType;
|
246
|
-
(function (AutorizationType) {
|
247
|
-
AutorizationType["INSERT"] = "I";
|
248
|
-
AutorizationType["UPDATE"] = "A";
|
249
|
-
AutorizationType["REMOVE"] = "E";
|
250
|
-
AutorizationType["SHOW"] = "C";
|
251
|
-
AutorizationType["CONFIG"] = "F";
|
252
|
-
AutorizationType["CONFIG_NUMBER"] = "N";
|
253
|
-
AutorizationType["CLONE"] = "D";
|
254
|
-
AutorizationType["CONFIG_GRID"] = "G";
|
255
|
-
})(AutorizationType || (AutorizationType = {}));
|
256
|
-
|
257
229
|
const snkApplicationCss = ".sc-snk-application-h{display:flex;flex-direction:column;height:100%}";
|
258
230
|
|
259
231
|
const SnkApplication = /*@__PURE__*/ proxyCustomElement(class extends HTMLElement {
|
@@ -5,6 +5,7 @@ import './DataFetcher.js';
|
|
5
5
|
import './pesquisa-fetcher.js';
|
6
6
|
import { P as PresentationMode } from './index2.js';
|
7
7
|
import { V as VIEW_MODE } from './constants.js';
|
8
|
+
import { A as AutorizationType } from './auth-fetcher.js';
|
8
9
|
import { d as defineCustomElement$v } from './snk-actions-button2.js';
|
9
10
|
import { d as defineCustomElement$u } from './snk-attach2.js';
|
10
11
|
import { d as defineCustomElement$t } from './snk-config-options2.js';
|
@@ -48,6 +49,7 @@ const SnkCrud$1 = /*@__PURE__*/ proxyCustomElement(class extends HTMLElement {
|
|
48
49
|
this._dataState = undefined;
|
49
50
|
this.attachmentRegisterKey = undefined;
|
50
51
|
this._currentViewMode = VIEW_MODE.GRID;
|
52
|
+
this._canEdit = undefined;
|
51
53
|
this.configName = undefined;
|
52
54
|
this.selectionToastConfig = undefined;
|
53
55
|
this.showActionButtons = false;
|
@@ -58,6 +60,7 @@ const SnkCrud$1 = /*@__PURE__*/ proxyCustomElement(class extends HTMLElement {
|
|
58
60
|
this.multipleSelection = true;
|
59
61
|
this.presentationMode = PresentationMode.PRIMARY;
|
60
62
|
this.messagesBuilder = undefined;
|
63
|
+
this.useEnterLikeTab = false;
|
61
64
|
}
|
62
65
|
/**
|
63
66
|
* Usado para alternar a visão entre GRID e FORM externamente.
|
@@ -141,7 +144,7 @@ const SnkCrud$1 = /*@__PURE__*/ proxyCustomElement(class extends HTMLElement {
|
|
141
144
|
}
|
142
145
|
componentWillLoad() {
|
143
146
|
const application = ApplicationContext.getContextValue("__SNK__APPLICATION__");
|
144
|
-
|
147
|
+
application.hasAccess(AutorizationType.UPDATE).then(canEdit => this._canEdit = canEdit);
|
145
148
|
let parent = this._element.parentElement;
|
146
149
|
while (parent) {
|
147
150
|
if (parent.tagName.toUpperCase() === "SNK-DATA-UNIT") {
|
@@ -188,8 +191,8 @@ const SnkCrud$1 = /*@__PURE__*/ proxyCustomElement(class extends HTMLElement {
|
|
188
191
|
this.configuratorCancel.emit();
|
189
192
|
}
|
190
193
|
render() {
|
191
|
-
|
192
|
-
return (h("ez-view-stack", { ref: (ref) => this._viewStack = ref, "data-element-id": "crud" }, h("stack-item", null, h("snk-grid", { ref: (ref) => this._snkGrid = ref, "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, selectionToastConfig: this.selectionToastConfig }, 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" }, 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') }, h("div", { slot: "SnkConfigContainerSlot" }, h("slot", { name: "SnkConfigContainerSlot" })))));
|
194
|
+
this._snkDataUnit.ignoreSaveMessage = this._currentViewMode === VIEW_MODE.GRID;
|
195
|
+
return (h("ez-view-stack", { ref: (ref) => this._viewStack = ref, "data-element-id": "crud" }, h("stack-item", null, h("snk-grid", { ref: (ref) => this._snkGrid = ref, "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, selectionToastConfig: this.selectionToastConfig, useEnterLikeTab: this.useEnterLikeTab, canEdit: this._canEdit }, 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 }, 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') }, h("div", { slot: "SnkConfigContainerSlot" }, h("slot", { name: "SnkConfigContainerSlot" })))));
|
193
196
|
}
|
194
197
|
get _element() { return this; }
|
195
198
|
static get watchers() { return {
|
@@ -207,10 +210,12 @@ const SnkCrud$1 = /*@__PURE__*/ proxyCustomElement(class extends HTMLElement {
|
|
207
210
|
"multipleSelection": [4, "multiple-selection"],
|
208
211
|
"presentationMode": [1, "presentation-mode"],
|
209
212
|
"messagesBuilder": [1040],
|
213
|
+
"useEnterLikeTab": [4, "use-enter-like-tab"],
|
210
214
|
"_dataUnit": [32],
|
211
215
|
"_dataState": [32],
|
212
216
|
"attachmentRegisterKey": [32],
|
213
217
|
"_currentViewMode": [32],
|
218
|
+
"_canEdit": [32],
|
214
219
|
"goToView": [64],
|
215
220
|
"openConfigurator": [64],
|
216
221
|
"closeConfigurator": [64],
|
@@ -21,9 +21,9 @@ const SnkDataUnit = /*@__PURE__*/ proxyCustomElement(class extends HTMLElement {
|
|
21
21
|
const duState = this.buildDataState();
|
22
22
|
this.dataState = duState;
|
23
23
|
if (action.type === Action.DATA_SAVED) {
|
24
|
-
|
25
|
-
|
26
|
-
|
24
|
+
if (this.ignoreSaveMessage) {
|
25
|
+
return;
|
26
|
+
}
|
27
27
|
const msg = this.getMessage("snkDataUnit.saveInfo", action.payload.records[0]);
|
28
28
|
if (msg != undefined) {
|
29
29
|
this.showSuccessMessage(msg);
|
@@ -69,6 +69,7 @@ const SnkDataUnit = /*@__PURE__*/ proxyCustomElement(class extends HTMLElement {
|
|
69
69
|
this.beforeSave = undefined;
|
70
70
|
this.afterSave = undefined;
|
71
71
|
this.useCancelConfirm = true;
|
72
|
+
this.ignoreSaveMessage = undefined;
|
72
73
|
this.configName = undefined;
|
73
74
|
}
|
74
75
|
observePageSize() {
|
@@ -433,6 +434,7 @@ const SnkDataUnit = /*@__PURE__*/ proxyCustomElement(class extends HTMLElement {
|
|
433
434
|
"beforeSave": [16],
|
434
435
|
"afterSave": [16],
|
435
436
|
"useCancelConfirm": [4, "use-cancel-confirm"],
|
437
|
+
"ignoreSaveMessage": [4, "ignore-save-message"],
|
436
438
|
"configName": [1, "config-name"],
|
437
439
|
"getDataUnit": [64],
|
438
440
|
"getSelectedRecordsIDsInfo": [64]
|