@sankhyalabs/sankhyablocks 8.15.0-dev.67 → 8.15.0-dev.69
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/loader.cjs.js +1 -1
- package/dist/cjs/sankhyablocks.cjs.js +1 -1
- package/dist/cjs/snk-attach.cjs.entry.js +20 -18
- package/dist/cjs/snk-crud.cjs.entry.js +50 -0
- package/dist/cjs/snk-detail-view.cjs.entry.js +41 -2
- package/dist/cjs/snk-form-view.cjs.entry.js +31 -0
- package/dist/cjs/snk-form.cjs.entry.js +26 -1
- package/dist/cjs/snk-grid.cjs.entry.js +46 -0
- package/dist/cjs/{snk-guides-viewer-545dd904.js → snk-guides-viewer-66dd6949.js} +19 -3
- package/dist/cjs/snk-guides-viewer.cjs.entry.js +1 -1
- package/dist/cjs/snk-simple-crud.cjs.entry.js +49 -1
- package/dist/collection/components/snk-attach/snk-attach.js +20 -18
- package/dist/collection/components/snk-crud/interfaces/PropsCustomEditor.js +1 -0
- package/dist/collection/components/snk-crud/interfaces/PropsCustomRender.js +1 -0
- package/dist/collection/components/snk-crud/snk-crud.js +102 -0
- package/dist/collection/components/snk-crud/subcomponents/snk-detail-view/snk-detail-view.js +135 -0
- package/dist/collection/components/snk-crud/subcomponents/snk-form-view.js +82 -0
- package/dist/collection/components/snk-crud/subcomponents/snk-guides-viewer.js +73 -3
- package/dist/collection/components/snk-form/snk-form.js +52 -1
- package/dist/collection/components/snk-grid/snk-grid.js +104 -0
- package/dist/collection/components/snk-simple-crud/snk-simple-crud.js +101 -1
- package/dist/components/snk-attach2.js +20 -18
- package/dist/components/snk-crud.js +52 -0
- package/dist/components/snk-detail-view2.js +68 -5
- package/dist/components/snk-form-view2.js +33 -0
- package/dist/components/snk-form.js +27 -1
- package/dist/components/snk-grid2.js +48 -0
- package/dist/components/snk-simple-crud2.js +51 -1
- package/dist/esm/loader.js +1 -1
- package/dist/esm/sankhyablocks.js +1 -1
- package/dist/esm/snk-attach.entry.js +20 -18
- package/dist/esm/snk-crud.entry.js +50 -0
- package/dist/esm/snk-detail-view.entry.js +41 -2
- package/dist/esm/snk-form-view.entry.js +31 -0
- package/dist/esm/snk-form.entry.js +26 -1
- package/dist/esm/snk-grid.entry.js +46 -0
- package/dist/esm/{snk-guides-viewer-081bcf90.js → snk-guides-viewer-11cf8dc7.js} +19 -3
- package/dist/esm/snk-guides-viewer.entry.js +1 -1
- package/dist/esm/snk-simple-crud.entry.js +49 -1
- package/dist/sankhyablocks/p-188e1432.entry.js +1 -0
- package/dist/sankhyablocks/{p-8171e586.entry.js → p-19ba2e08.entry.js} +1 -1
- package/dist/sankhyablocks/p-1db45d26.entry.js +1 -0
- package/dist/sankhyablocks/p-2c9ea7b6.entry.js +1 -0
- package/dist/sankhyablocks/p-50e72d6c.js +1 -0
- package/dist/sankhyablocks/p-5201ab24.entry.js +1 -0
- package/dist/sankhyablocks/p-a6c4b656.entry.js +1 -0
- package/dist/sankhyablocks/p-aa9c4099.entry.js +1 -0
- package/dist/sankhyablocks/{p-af3e1265.entry.js → p-b68918fc.entry.js} +1 -1
- package/dist/sankhyablocks/sankhyablocks.esm.js +1 -1
- package/dist/types/components/snk-crud/interfaces/PropsCustomEditor.d.ts +4 -0
- package/dist/types/components/snk-crud/interfaces/PropsCustomRender.d.ts +4 -0
- package/dist/types/components/snk-crud/snk-crud.d.ts +14 -0
- package/dist/types/components/snk-crud/subcomponents/snk-detail-view/snk-detail-view.d.ts +23 -0
- package/dist/types/components/snk-crud/subcomponents/snk-form-view.d.ts +15 -2
- package/dist/types/components/snk-crud/subcomponents/snk-guides-viewer.d.ts +13 -0
- package/dist/types/components/snk-form/snk-form.d.ts +8 -0
- package/dist/types/components/snk-grid/snk-grid.d.ts +19 -0
- package/dist/types/components/snk-simple-crud/snk-simple-crud.d.ts +13 -2
- package/dist/types/components.d.ts +76 -0
- package/package.json +1 -1
- package/dist/sankhyablocks/p-1122030d.js +0 -1
- package/dist/sankhyablocks/p-24880828.entry.js +0 -1
- package/dist/sankhyablocks/p-33f695d6.entry.js +0 -1
- package/dist/sankhyablocks/p-39f8ebb3.entry.js +0 -1
- package/dist/sankhyablocks/p-e4e044cf.entry.js +0 -1
- package/dist/sankhyablocks/p-ecc666ef.entry.js +0 -1
- package/dist/sankhyablocks/p-ee1d9c09.entry.js +0 -1
@@ -87,6 +87,8 @@ const SnkGrid = class {
|
|
87
87
|
index.registerInstance(this, hostRef);
|
88
88
|
this.actionClick = index.createEvent(this, "actionClick", 7);
|
89
89
|
this.gridDoubleClick = index.createEvent(this, "gridDoubleClick", 7);
|
90
|
+
this._customEditors = new Map();
|
91
|
+
this._customRenders = new Map();
|
90
92
|
this._topTaskbarProcessor = new fieldSearch.TaskbarProcessor({
|
91
93
|
"snkGridTopTaskbar.regular": ["FORM_MODE", "CONFIGURATOR", "INSERT"],
|
92
94
|
"snkGridTopTaskbar.regular.secondary": ["FORM_MODE", "CONFIGURATOR", "INSERT"],
|
@@ -185,6 +187,30 @@ const SnkGrid = class {
|
|
185
187
|
async findColumn() {
|
186
188
|
await fieldSearch.openFieldSearch(this._moreOptions, this._columnSearch);
|
187
189
|
}
|
190
|
+
/**
|
191
|
+
* Registra um editor customizado para campos da grade e formulário
|
192
|
+
*/
|
193
|
+
async addCustomEditor(fieldName, customEditor, detailContext) {
|
194
|
+
if (this._grid) {
|
195
|
+
this._grid.addCustomEditor(fieldName, customEditor, detailContext);
|
196
|
+
return;
|
197
|
+
}
|
198
|
+
const newCustomEditors = new Map(this._customEditors);
|
199
|
+
newCustomEditors.set(fieldName, { customEditor, detailContext });
|
200
|
+
this._customEditors = newCustomEditors;
|
201
|
+
}
|
202
|
+
/**
|
203
|
+
* Registra um render customizado para colunas da grid.
|
204
|
+
*/
|
205
|
+
async addGridCustomRender(fieldName, customRender, detailContext) {
|
206
|
+
if (this._grid) {
|
207
|
+
this._grid.addGridCustomRender(fieldName, customRender, detailContext);
|
208
|
+
return;
|
209
|
+
}
|
210
|
+
const newCustomRenders = new Map(this._customRenders);
|
211
|
+
newCustomRenders.set(fieldName, { customRender, detailContext });
|
212
|
+
this._customRenders = newCustomRenders;
|
213
|
+
}
|
188
214
|
/**
|
189
215
|
* Registra um formatador de valores para uma coluna da grid.
|
190
216
|
*/
|
@@ -283,6 +309,24 @@ const SnkGrid = class {
|
|
283
309
|
this.columnFilterDataSource.setDataUnit(this._dataUnit);
|
284
310
|
}
|
285
311
|
}
|
312
|
+
setCustomRenders() {
|
313
|
+
if (!this._grid) {
|
314
|
+
return;
|
315
|
+
}
|
316
|
+
for (const [fieldName, customRenderProps] of this._customRenders) {
|
317
|
+
this._grid.addGridCustomRender(fieldName, customRenderProps.customRender, customRenderProps.detailContext);
|
318
|
+
this._customRenders.delete(fieldName);
|
319
|
+
}
|
320
|
+
}
|
321
|
+
setCustomEditors() {
|
322
|
+
if (!this._grid) {
|
323
|
+
return;
|
324
|
+
}
|
325
|
+
for (const [fieldName, customEditorProps] of this._customEditors) {
|
326
|
+
this._grid.addCustomEditor(fieldName, customEditorProps.customEditor, customEditorProps.detailContext);
|
327
|
+
this._customEditors.delete(fieldName);
|
328
|
+
}
|
329
|
+
}
|
286
330
|
componentWillLoad() {
|
287
331
|
this._application = core.ApplicationContext.getContextValue("__SNK__APPLICATION__");
|
288
332
|
//TODO: substituir pelo metodo nativo closest
|
@@ -320,6 +364,8 @@ const SnkGrid = class {
|
|
320
364
|
componentDidRender() {
|
321
365
|
this._rmPrecisionCustomValueFormatter.setGrid(this._grid);
|
322
366
|
this.loadGridCustomFormatters(this._dataUnit.metadata.fields);
|
367
|
+
this.setCustomRenders();
|
368
|
+
this.setCustomEditors();
|
323
369
|
}
|
324
370
|
async handleDataStateChange(evt) {
|
325
371
|
this._dataState = evt.detail;
|
@@ -49,6 +49,8 @@ const SnkGuidesViewer = class {
|
|
49
49
|
this._formEditorConfigManager = undefined;
|
50
50
|
this._formEditorDataUnit = undefined;
|
51
51
|
this._fieldToGetFocus = undefined;
|
52
|
+
this._customEditors = undefined;
|
53
|
+
this._customRenders = undefined;
|
52
54
|
this._fieldsProps = {};
|
53
55
|
}
|
54
56
|
observeDataUnit() {
|
@@ -80,6 +82,19 @@ const SnkGuidesViewer = class {
|
|
80
82
|
async findField() {
|
81
83
|
await fieldSearch.openFieldSearch(this._moreOptions, this._fieldSearch);
|
82
84
|
}
|
85
|
+
/**
|
86
|
+
* Registra um editor customizado para campos da grade e formulário
|
87
|
+
*/
|
88
|
+
async addCustomEditor(fieldName, customEditor) {
|
89
|
+
this._customEditors = Object.assign(Object.assign({}, this._customEditors), { [fieldName]: customEditor });
|
90
|
+
}
|
91
|
+
/**
|
92
|
+
* Registra um render customizado para colunas da grid.
|
93
|
+
*/
|
94
|
+
async addGridCustomRender(fieldName, customRender) {
|
95
|
+
this._customRenders = Object.assign(Object.assign({}, this._customRenders), { [fieldName]: customRender });
|
96
|
+
}
|
97
|
+
;
|
83
98
|
/**
|
84
99
|
* Altera/adiciona uma propriedade nos metadados do campo.
|
85
100
|
*/
|
@@ -231,7 +246,7 @@ const SnkGuidesViewer = class {
|
|
231
246
|
if (sheet == undefined) {
|
232
247
|
return;
|
233
248
|
}
|
234
|
-
return index.h("snk-form-view", { levelPath: params.levelPath, label: sheet.label, name: formName, fields: sheet.fields, formMetadata: params.formMetadata, dataUnit: params.dataUnit, recordsValidator: params.recordsValidator, contracted: (cardConfig === null || cardConfig === void 0 ? void 0 : cardConfig.presentation) === "CONTRACTED", fixed: cardConfig === null || cardConfig === void 0 ? void 0 : cardConfig.fixed, summaryFields: (_b = (_a = params.formConfig) === null || _a === void 0 ? void 0 : _a.summary) === null || _b === void 0 ? void 0 : _b.get(formName), fieldToFocus: params.fieldToFocus, key: formName, onSnkRequestClearFieldToFocus: _ => { var _a; return (_a = params.onRequestClearFieldToFocus) === null || _a === void 0 ? void 0 : _a.call(params); }, fieldsProps: params.fieldsProps });
|
249
|
+
return index.h("snk-form-view", { levelPath: params.levelPath, label: sheet.label, name: formName, fields: sheet.fields, formMetadata: params.formMetadata, dataUnit: params.dataUnit, recordsValidator: params.recordsValidator, contracted: (cardConfig === null || cardConfig === void 0 ? void 0 : cardConfig.presentation) === "CONTRACTED", fixed: cardConfig === null || cardConfig === void 0 ? void 0 : cardConfig.fixed, summaryFields: (_b = (_a = params.formConfig) === null || _a === void 0 ? void 0 : _a.summary) === null || _b === void 0 ? void 0 : _b.get(formName), fieldToFocus: params.fieldToFocus, key: formName, onSnkRequestClearFieldToFocus: _ => { var _a; return (_a = params.onRequestClearFieldToFocus) === null || _a === void 0 ? void 0 : _a.call(params); }, customEditors: params.propsCustomEditor, fieldsProps: params.fieldsProps });
|
235
250
|
})));
|
236
251
|
}
|
237
252
|
wrapDetail(levels, content) {
|
@@ -273,14 +288,14 @@ const SnkGuidesViewer = class {
|
|
273
288
|
else {
|
274
289
|
detailBranch = this.selectedGuide;
|
275
290
|
}
|
276
|
-
content = this.wrapDetail(levels, index.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 }));
|
291
|
+
content = this.wrapDetail(levels, index.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 }));
|
277
292
|
}
|
278
293
|
else {
|
279
294
|
const cardId = this.selectedGuide.id;
|
280
295
|
const sheet = this._masterFormMetadata.getSheet(cardId);
|
281
296
|
if (sheet) {
|
282
297
|
const cardConfig = (_c = (_b = this.masterFormConfig) === null || _b === void 0 ? void 0 : _b.cardsState) === null || _c === void 0 ? void 0 : _c.get(cardId);
|
283
|
-
content = index.h("snk-form-view", { ref: ref => this._mainForm = ref, fixed: cardConfig === null || cardConfig === void 0 ? void 0 : cardConfig.fixed, summaryFields: (_e = (_d = this.masterFormConfig) === null || _d === void 0 ? void 0 : _d.summary) === null || _e === void 0 ? void 0 : _e.get(cardId), name: cardId, label: sheet.label, fields: sheet.fields, dataUnit: this.dataUnit, formMetadata: this._masterFormMetadata, recordsValidator: this.recordsValidator, fieldToFocus: this._fieldToGetFocus, key: guideId, onSnkRequestClearFieldToFocus: _ => this.clearFieldToFocusHandler(), fieldsProps: this._fieldsProps }, this.presentationMode == index$1.PresentationMode.SECONDARY && this.buildTaskBar());
|
298
|
+
content = index.h("snk-form-view", { ref: ref => this._mainForm = ref, fixed: cardConfig === null || cardConfig === void 0 ? void 0 : cardConfig.fixed, summaryFields: (_e = (_d = this.masterFormConfig) === null || _d === void 0 ? void 0 : _d.summary) === null || _e === void 0 ? void 0 : _e.get(cardId), name: cardId, label: sheet.label, fields: sheet.fields, dataUnit: this.dataUnit, formMetadata: this._masterFormMetadata, recordsValidator: this.recordsValidator, fieldToFocus: this._fieldToGetFocus, key: guideId, onSnkRequestClearFieldToFocus: _ => this.clearFieldToFocusHandler(), customEditors: this._customEditors, fieldsProps: this._fieldsProps }, this.presentationMode == index$1.PresentationMode.SECONDARY && this.buildTaskBar());
|
284
299
|
}
|
285
300
|
}
|
286
301
|
return content;
|
@@ -487,6 +502,7 @@ const SnkGuidesViewer = class {
|
|
487
502
|
recordsValidator: this.recordsValidator,
|
488
503
|
fieldToFocus: this._fieldToGetFocus,
|
489
504
|
onRequestClearFieldToFocus: this.clearFieldToFocusHandler.bind(this),
|
505
|
+
propsCustomEditor: this._customEditors,
|
490
506
|
fieldsProps: this._fieldsProps
|
491
507
|
}), this.getContent())), index.h("snk-configurator", { ref: (ref) => this._snkConfigurator = ref, viewMode: this.getConfigViewMode(), onConfigSelected: (evt) => this.changeConfigViewMode(evt.detail), messagesBuilder: this.messagesBuilder, onOpenConfig: (evt) => this.openConfig(evt.detail), resourceID: this.resourceID })));
|
492
508
|
}
|
@@ -2,7 +2,7 @@
|
|
2
2
|
|
3
3
|
Object.defineProperty(exports, '__esModule', { value: true });
|
4
4
|
|
5
|
-
const snkGuidesViewer = require('./snk-guides-viewer-
|
5
|
+
const snkGuidesViewer = require('./snk-guides-viewer-66dd6949.js');
|
6
6
|
require('./index-f9e81701.js');
|
7
7
|
require('@sankhyalabs/core');
|
8
8
|
require('./SnkFormConfigManager-7b222c78.js');
|
@@ -100,6 +100,8 @@ const SnkSimpleCrud = class {
|
|
100
100
|
this._multiSelectionListDataSource = new IExporterProvider.SnkMultiSelectionListDataSource();
|
101
101
|
this._keyDownHandler = (event) => this.keyDownListener(event);
|
102
102
|
this._formConfigFetcher = new formConfigFetcher.FormConfigFetcher();
|
103
|
+
this._customEditors = new Map();
|
104
|
+
this._customRenders = new Map();
|
103
105
|
this._taskbarProcessor = new fieldSearch.TaskbarProcessor({
|
104
106
|
"snkSimpleCrudTaskbar.form_regular": this.getButtons(false, [taskbarElements.TaskbarElement.GRID_MODE]),
|
105
107
|
"snkSimpleCrudTaskbar.grid_regular": this.getButtons(false, [taskbarElements.TaskbarElement.DATA_EXPORTER, taskbarElements.TaskbarElement.FORM_MODE]),
|
@@ -136,6 +138,31 @@ const SnkSimpleCrud = class {
|
|
136
138
|
this.ignoreReadOnlyFormFields = false;
|
137
139
|
this.autoLoad = undefined;
|
138
140
|
}
|
141
|
+
/**
|
142
|
+
* Registra um editor customizado para campos da grade e formulário.
|
143
|
+
*/
|
144
|
+
async addCustomEditor(fieldName, customEditor) {
|
145
|
+
if (this._grid && this._form) {
|
146
|
+
this._grid.addCustomEditor(fieldName, customEditor);
|
147
|
+
this._form.addCustomEditor(fieldName, customEditor);
|
148
|
+
return;
|
149
|
+
}
|
150
|
+
const newCustomEditors = new Map(this._customEditors);
|
151
|
+
newCustomEditors.set(fieldName, customEditor);
|
152
|
+
this._customEditors = newCustomEditors;
|
153
|
+
}
|
154
|
+
/**
|
155
|
+
* Registra um render customizado para colunas da grid.
|
156
|
+
*/
|
157
|
+
async addGridCustomRender(fieldName, customRender) {
|
158
|
+
if (this._grid) {
|
159
|
+
this._grid.addGridCustomRender(fieldName, customRender);
|
160
|
+
return;
|
161
|
+
}
|
162
|
+
const newCustomRenders = new Map(this._customRenders);
|
163
|
+
newCustomRenders.set(fieldName, customRender);
|
164
|
+
this._customRenders = newCustomRenders;
|
165
|
+
}
|
139
166
|
handleResourceIDChanged(newValue, oldValue) {
|
140
167
|
if (core.StringUtils.isEmpty(newValue)) {
|
141
168
|
return;
|
@@ -363,6 +390,8 @@ const SnkSimpleCrud = class {
|
|
363
390
|
this._rmPrecisionCustomValueFormatter.setGrid(this._grid);
|
364
391
|
this.addGridCustomValueFormattters();
|
365
392
|
this.setFieldsProps();
|
393
|
+
this.setCustomRenders();
|
394
|
+
this.setCustomEditors();
|
366
395
|
}
|
367
396
|
componentWillLoad() {
|
368
397
|
this.processMetadata();
|
@@ -373,6 +402,25 @@ const SnkSimpleCrud = class {
|
|
373
402
|
componentDidLoad() {
|
374
403
|
utils.CSSVarsUtils.applyVarsGrid(this._element, this._grid);
|
375
404
|
}
|
405
|
+
setCustomRenders() {
|
406
|
+
if (!this._grid) {
|
407
|
+
return;
|
408
|
+
}
|
409
|
+
for (const [fieldName, customRender] of this._customRenders) {
|
410
|
+
this._grid.addGridCustomRender(fieldName, customRender);
|
411
|
+
this._customRenders.delete(fieldName);
|
412
|
+
}
|
413
|
+
}
|
414
|
+
setCustomEditors() {
|
415
|
+
if (!this._grid || !this._form) {
|
416
|
+
return;
|
417
|
+
}
|
418
|
+
for (const [fieldName, customEditor] of this._customEditors) {
|
419
|
+
this._grid.addCustomEditor(fieldName, customEditor);
|
420
|
+
this._form.addCustomEditor(fieldName, customEditor);
|
421
|
+
this._customEditors.delete(fieldName);
|
422
|
+
}
|
423
|
+
}
|
376
424
|
configDatasource() {
|
377
425
|
this._multiSelectionListDataSource.setApplication(this.application);
|
378
426
|
this._multiSelectionListDataSource.setDataUnit(this.dataUnit);
|
@@ -723,7 +771,7 @@ const SnkSimpleCrud = class {
|
|
723
771
|
}
|
724
772
|
return (index$1.h("snk-data-unit", { ref: ref => this._snkDataUnit = ref, class: "simple-crud__container", dataUnit: this.dataUnit, useCancelConfirm: this.useCancelConfirm, onDataStateChange: evt => this.onDataStateChange(evt), onCancelEdition: this.handleCancelEdit.bind(this), pageSize: this.getPageSize(), onInsertionMode: () => this.goToView(constants.VIEW_MODE.FORM), onDataUnitReady: (evt) => this.dataUnitReady.emit(evt.detail), ignoreSaveMessage: this._currentViewMode === constants.VIEW_MODE.GRID, onMessagesBuilderUpdated: evt => this.messagesBuilder = evt.detail, onDataUnitFieldsHidded: this.updateFormConfig.bind(this) }, index$1.h("header", null, index$1.h("slot", { name: "snkSimpleCrudHeader" })), index$1.h("section", { class: "ez-box ez-box--shadow simple-crud__container-section" }, index$1.h("snk-taskbar", { class: "ez-box ez-box--shadow ez-padding--medium", dataUnit: this.dataUnit, primaryButton: ((_a = this.dataState) === null || _a === void 0 ? void 0 : _a.isDirty) ? "SAVE" : "INSERT", "data-element-id": "grid_left", messagesBuilder: this.messagesBuilder, buttons: this._taskbarProcessor.buttons, actionsList: this.getActionsList(), disabledButtons: this._taskbarProcessor.disabledButtons, customButtons: this._taskbarProcessor.customButtons, "data-exporter-store-key": this.getDataExporterStoreKey(), slot: "leftButtons", presentationMode: index.PresentationMode.SECONDARY }, index$1.h("slot", { name: "TASKBAR_CUSTOM_ELEMENTS" })), index$1.h("ez-view-stack", { ref: (ref) => this._viewStack = ref, "data-element-id": "simple-crud" }, index$1.h("stack-item", null, index$1.h("ez-grid", { class: "ez-margin-bottom--large", ref: ref => this._grid = ref, dataUnit: this.dataUnit, config: this.gridConfig, "no-header": true, multipleSelection: this.multipleSelection, onEzDoubleClick: () => this.goToView(constants.VIEW_MODE.FORM), onConfigChange: evt => this.gridConfigChangeHandler(evt), columnfilterDataSource: this.dataUnit.name && this.dataUnit.name.includes(dataunitFetcher.InMemoryLoader.IN_MEMORY_DATA_UNIT_NAME)
|
725
773
|
? undefined
|
726
|
-
: this._multiSelectionListDataSource, useEnterLikeTab: this.useEnterLikeTab }, index$1.h("div", { slot: "footer" }, index$1.h("slot", { name: "snkSimpleCrudFooter" })))), index$1.h("stack-item", null, index$1.h("ez-form", { ref: ref => this._form = ref, class: `ez-margin-top--large ${this.handleShowFormConfig() ? "simple-crud__form--hidden" : ""}`, dataUnit: this.dataUnit, config: this.getFormConfig(), fieldToFocus: this._fieldToGetFocus, onEzFormSetFields: (evt) => this.handleFormSetFields(evt.detail), onEzFormRequestClearFieldToFocus: this.clearFieldToFocusHandler.bind(this) }), this.handleShowFormConfig() && index$1.h("snk-form-config", { messagesBuilder: this.messagesBuilder, dataUnit: this.dataUnit, configManager: this._formConfigManager, onConfigClose: () => this.closeFormConfig() })), this.messagesBuilder && index$1.h("snk-configurator", { ref: (ref) => this._snkConfigurator = ref, viewMode: this._currentViewMode, messagesBuilder: this.messagesBuilder, onConfigSelected: (evt) => this.goToView(evt.detail), onOpenConfig: (evt) => this.openConfig(evt.detail), showActionButtons: this.showConfiguratorButtons, onSave: evt => this.handleConfiguratorEvent(evt, 'SAVE'), onCancel: evt => this.handleConfiguratorEvent(evt, 'CANCEL'), resourceID: this.resolveResourceID(), customContainerId: this._customContainerId })), index$1.h("div", { id: `${this._customContainerId}` }, index$1.h("slot", { name: "SnkConfigContainerSlot" }))), index$1.h("ez-modal", { modalSize: "small", closeEsc: false, closeOutsideClick: false, opened: this._showPopUpGridConfig, onEzCloseModal: () => this.closeGridConfig() }, index$1.h("snk-grid-config", { ref: ref => this._snkGridConfig = ref, config: this.gridConfig, "data-element-id": this._element.getAttribute(core.ElementIDUtils.DATA_ELEMENT_ID_ATTRIBUTE_NAME), selectedIndex: 0, configName: this.configName, onConfigChange: (evt) => this.modalConfigChangeHandler(evt), onConfigCancel: () => this.closeGridConfig(), resourceID: this.resolveResourceID() }))));
|
774
|
+
: this._multiSelectionListDataSource, useEnterLikeTab: this.useEnterLikeTab }, index$1.h("div", { slot: "footer" }, index$1.h("slot", { name: "snkSimpleCrudFooter" })))), index$1.h("stack-item", null, index$1.h("ez-form", { ref: (ref) => this._form = ref, class: `ez-margin-top--large ${this.handleShowFormConfig() ? "simple-crud__form--hidden" : ""}`, dataUnit: this.dataUnit, config: this.getFormConfig(), fieldToFocus: this._fieldToGetFocus, onEzFormSetFields: (evt) => this.handleFormSetFields(evt.detail), onEzFormRequestClearFieldToFocus: this.clearFieldToFocusHandler.bind(this) }), this.handleShowFormConfig() && index$1.h("snk-form-config", { messagesBuilder: this.messagesBuilder, dataUnit: this.dataUnit, configManager: this._formConfigManager, onConfigClose: () => this.closeFormConfig() })), this.messagesBuilder && index$1.h("snk-configurator", { ref: (ref) => this._snkConfigurator = ref, viewMode: this._currentViewMode, messagesBuilder: this.messagesBuilder, onConfigSelected: (evt) => this.goToView(evt.detail), onOpenConfig: (evt) => this.openConfig(evt.detail), showActionButtons: this.showConfiguratorButtons, onSave: evt => this.handleConfiguratorEvent(evt, 'SAVE'), onCancel: evt => this.handleConfiguratorEvent(evt, 'CANCEL'), resourceID: this.resolveResourceID(), customContainerId: this._customContainerId })), index$1.h("div", { id: `${this._customContainerId}` }, index$1.h("slot", { name: "SnkConfigContainerSlot" }))), index$1.h("ez-modal", { modalSize: "small", closeEsc: false, closeOutsideClick: false, opened: this._showPopUpGridConfig, onEzCloseModal: () => this.closeGridConfig() }, index$1.h("snk-grid-config", { ref: ref => this._snkGridConfig = ref, config: this.gridConfig, "data-element-id": this._element.getAttribute(core.ElementIDUtils.DATA_ELEMENT_ID_ATTRIBUTE_NAME), selectedIndex: 0, configName: this.configName, onConfigChange: (evt) => this.modalConfigChangeHandler(evt), onConfigCancel: () => this.closeGridConfig(), resourceID: this.resolveResourceID() }))));
|
727
775
|
}
|
728
776
|
get _element() { return index$1.getElement(this); }
|
729
777
|
static get watchers() { return {
|
@@ -41,7 +41,7 @@ export class SnkAttach {
|
|
41
41
|
this.crudConfig = undefined;
|
42
42
|
}
|
43
43
|
async initAttach() {
|
44
|
-
var _a, _b, _c, _d
|
44
|
+
var _a, _b, _c, _d;
|
45
45
|
await this.loadAttachmentDataUnit();
|
46
46
|
this.returnToGridMode();
|
47
47
|
if (this.fetcherType === "AnexoSistema") {
|
@@ -55,7 +55,8 @@ export class SnkAttach {
|
|
55
55
|
if (hasMoreOneItem)
|
56
56
|
return;
|
57
57
|
}
|
58
|
-
|
58
|
+
await this._currentDataUnit.loadMetadata();
|
59
|
+
await this._currentDataUnit.loadData(undefined, undefined, true, this.registerKey);
|
59
60
|
}
|
60
61
|
/**
|
61
62
|
* Conforme mecanismo de mensagens, é possível customizar as mensagens dos blocos de construção
|
@@ -94,14 +95,14 @@ export class SnkAttach {
|
|
94
95
|
if (this._crudElement)
|
95
96
|
this._crudElement.goToView(VIEW_MODE.GRID);
|
96
97
|
}
|
97
|
-
loadAttachmentDataUnit() {
|
98
|
+
async loadAttachmentDataUnit() {
|
98
99
|
try {
|
99
100
|
switch (this.fetcherType) {
|
100
101
|
case "AnexoSistema":
|
101
|
-
this.loadAnexoSistema();
|
102
|
+
await this.loadAnexoSistema();
|
102
103
|
break;
|
103
104
|
case "Attach":
|
104
|
-
this.loadAttach();
|
105
|
+
await this.loadAttach();
|
105
106
|
break;
|
106
107
|
default:
|
107
108
|
this._currentFetcher = this.fetcher;
|
@@ -113,12 +114,13 @@ export class SnkAttach {
|
|
113
114
|
throw new Error('There was an error while creating the data unit');
|
114
115
|
}
|
115
116
|
}
|
116
|
-
loadAnexoSistema() {
|
117
|
-
|
117
|
+
async loadAnexoSistema() {
|
118
|
+
var _a;
|
119
|
+
this._currentDataUnit = new DataUnitFetcher().getDataUnit(RESOURCE_ID, DATA_UNIT_NAME);
|
120
|
+
this._currentFetcher = new AnexoSistemaFetcher(this.entityName, this.registerKey, (_a = this._currentDataUnit) === null || _a === void 0 ? void 0 : _a.name);
|
118
121
|
if (!this._currentDataUnit.metadata) {
|
119
|
-
this._currentDataUnit
|
120
|
-
|
121
|
-
.then(() => this.crudConfig = Object.assign({}, anexoSistemaCrudConfig));
|
122
|
+
await this._currentDataUnit.loadMetadata();
|
123
|
+
this.crudConfig = Object.assign({}, anexoSistemaCrudConfig);
|
122
124
|
}
|
123
125
|
this.initDataUnitLoaders();
|
124
126
|
this._currentDataUnit.addFilterProvider({
|
@@ -127,10 +129,11 @@ export class SnkAttach {
|
|
127
129
|
this._currentDataUnit.addInterceptor({
|
128
130
|
interceptAction: (action) => this._currentDataUnitBuilder.getInterceptions(this._currentDataUnit, action, this._crudElement)
|
129
131
|
});
|
130
|
-
this._currentDataUnit.loadData()
|
132
|
+
await this._currentDataUnit.loadData();
|
133
|
+
this.disableEditFieldsNotInForm();
|
131
134
|
}
|
132
|
-
loadAttach() {
|
133
|
-
|
135
|
+
async loadAttach() {
|
136
|
+
this._currentFetcher = new AttachFetcher();
|
134
137
|
this._currentDataUnit = new DataUnit(InMemoryLoader.IN_MEMORY_DATA_UNIT_NAME);
|
135
138
|
this.initDataUnitLoaders();
|
136
139
|
this._currentDataUnit.addInterceptor({
|
@@ -144,11 +147,10 @@ export class SnkAttach {
|
|
144
147
|
}
|
145
148
|
});
|
146
149
|
if (!this._currentDataUnit.metadata) {
|
147
|
-
|
148
|
-
|
149
|
-
|
150
|
-
|
151
|
-
});
|
150
|
+
await this._currentDataUnit.loadMetadata();
|
151
|
+
this.crudConfig = Object.assign({}, attachCrudConfig);
|
152
|
+
await this._currentDataUnit.loadData(undefined, undefined, true, this.registerKey);
|
153
|
+
this.disableEditFieldsNotInForm();
|
152
154
|
}
|
153
155
|
}
|
154
156
|
initDataUnitLoaders() {
|
@@ -0,0 +1 @@
|
|
1
|
+
export {};
|
@@ -0,0 +1 @@
|
|
1
|
+
export {};
|
@@ -13,6 +13,8 @@ export class SnkCrud {
|
|
13
13
|
constructor() {
|
14
14
|
this._keyDownHandler = async (event) => this.keyDownListener(event);
|
15
15
|
this._viewHistory = [];
|
16
|
+
this._customEditors = new Map();
|
17
|
+
this._customRenders = new Map();
|
16
18
|
this._dataUnit = undefined;
|
17
19
|
this._dataState = undefined;
|
18
20
|
this.attachmentRegisterKey = undefined;
|
@@ -71,6 +73,31 @@ export class SnkCrud {
|
|
71
73
|
async getFilterBar() {
|
72
74
|
return await this._snkGrid.getFilterBar();
|
73
75
|
}
|
76
|
+
/**
|
77
|
+
* Registra um editor customizado para campos da grade e formulário.
|
78
|
+
*/
|
79
|
+
async addCustomEditor(fieldName, customEditor) {
|
80
|
+
if (this._guidesViewer && this._snkGrid) {
|
81
|
+
this._guidesViewer.addCustomEditor(fieldName, customEditor);
|
82
|
+
this._snkGrid.addCustomEditor(fieldName, customEditor);
|
83
|
+
return;
|
84
|
+
}
|
85
|
+
const newCustomEditors = new Map(this._customEditors);
|
86
|
+
newCustomEditors.set(fieldName, customEditor);
|
87
|
+
this._customEditors = newCustomEditors;
|
88
|
+
}
|
89
|
+
/**
|
90
|
+
* Registra um render customizado para colunas da grid.
|
91
|
+
*/
|
92
|
+
async addGridCustomRender(fieldName, customRender) {
|
93
|
+
if (this._snkGrid) {
|
94
|
+
this._snkGrid.addGridCustomRender(fieldName, customRender);
|
95
|
+
return;
|
96
|
+
}
|
97
|
+
const newCustomRenders = new Map(this._customRenders);
|
98
|
+
newCustomRenders.set(fieldName, customRender);
|
99
|
+
this._customRenders = newCustomRenders;
|
100
|
+
}
|
74
101
|
/**
|
75
102
|
* Registra um formatador de valores para uma coluna da grid.
|
76
103
|
*/
|
@@ -142,6 +169,29 @@ export class SnkCrud {
|
|
142
169
|
const joinedPrimaryKeys = recordCriteria.map(({ value }) => value).join('_');
|
143
170
|
return joinedPrimaryKeys;
|
144
171
|
}
|
172
|
+
setCustomRenders() {
|
173
|
+
if (!this._snkGrid) {
|
174
|
+
return;
|
175
|
+
}
|
176
|
+
for (const [fieldName, customRender] of this._customRenders) {
|
177
|
+
this._snkGrid.addGridCustomRender(fieldName, customRender);
|
178
|
+
this._customRenders.delete(fieldName);
|
179
|
+
}
|
180
|
+
}
|
181
|
+
setCustomEditors() {
|
182
|
+
if (!this._snkGrid || !this._guidesViewer) {
|
183
|
+
return;
|
184
|
+
}
|
185
|
+
for (const [fieldName, customEditor] of this._customEditors) {
|
186
|
+
this._guidesViewer.addCustomEditor(fieldName, customEditor);
|
187
|
+
this._snkGrid.addCustomEditor(fieldName, customEditor);
|
188
|
+
this._customEditors.delete(fieldName);
|
189
|
+
}
|
190
|
+
}
|
191
|
+
componentDidRender() {
|
192
|
+
this.setCustomRenders();
|
193
|
+
this.setCustomEditors();
|
194
|
+
}
|
145
195
|
componentWillLoad() {
|
146
196
|
this._application = ApplicationContext.getContextValue("__SNK__APPLICATION__");
|
147
197
|
let parent = this._element.parentElement;
|
@@ -829,6 +879,58 @@ export class SnkCrud {
|
|
829
879
|
"tags": []
|
830
880
|
}
|
831
881
|
},
|
882
|
+
"addCustomEditor": {
|
883
|
+
"complexType": {
|
884
|
+
"signature": "(fieldName: string, customEditor: ICustomEditor) => Promise<void>",
|
885
|
+
"parameters": [{
|
886
|
+
"tags": [],
|
887
|
+
"text": ""
|
888
|
+
}, {
|
889
|
+
"tags": [],
|
890
|
+
"text": ""
|
891
|
+
}],
|
892
|
+
"references": {
|
893
|
+
"Promise": {
|
894
|
+
"location": "global"
|
895
|
+
},
|
896
|
+
"ICustomEditor": {
|
897
|
+
"location": "import",
|
898
|
+
"path": "@sankhyalabs/ezui/dist/types/utils"
|
899
|
+
}
|
900
|
+
},
|
901
|
+
"return": "Promise<void>"
|
902
|
+
},
|
903
|
+
"docs": {
|
904
|
+
"text": "Registra um editor customizado para campos da grade e formul\u00E1rio.",
|
905
|
+
"tags": []
|
906
|
+
}
|
907
|
+
},
|
908
|
+
"addGridCustomRender": {
|
909
|
+
"complexType": {
|
910
|
+
"signature": "(fieldName: string, customRender: ICustomRender) => Promise<void>",
|
911
|
+
"parameters": [{
|
912
|
+
"tags": [],
|
913
|
+
"text": ""
|
914
|
+
}, {
|
915
|
+
"tags": [],
|
916
|
+
"text": ""
|
917
|
+
}],
|
918
|
+
"references": {
|
919
|
+
"Promise": {
|
920
|
+
"location": "global"
|
921
|
+
},
|
922
|
+
"ICustomRender": {
|
923
|
+
"location": "import",
|
924
|
+
"path": "@sankhyalabs/ezui/dist/types/utils"
|
925
|
+
}
|
926
|
+
},
|
927
|
+
"return": "Promise<void>"
|
928
|
+
},
|
929
|
+
"docs": {
|
930
|
+
"text": "Registra um render customizado para colunas da grid.",
|
931
|
+
"tags": []
|
932
|
+
}
|
933
|
+
},
|
832
934
|
"addCustomValueFormatter": {
|
833
935
|
"complexType": {
|
834
936
|
"signature": "(columnName: string, customFormatter: ICustomFormatter) => Promise<void>",
|
package/dist/collection/components/snk-crud/subcomponents/snk-detail-view/snk-detail-view.js
CHANGED
@@ -26,6 +26,8 @@ export class SnkDetailView {
|
|
26
26
|
this.branchGuide = undefined;
|
27
27
|
this.canEdit = true;
|
28
28
|
this.taskbarCustomContainerId = undefined;
|
29
|
+
this.customEditors = undefined;
|
30
|
+
this.customRenders = undefined;
|
29
31
|
}
|
30
32
|
observeDataUnit(newDataUnit, oldDataUnit) {
|
31
33
|
newDataUnit === null || newDataUnit === void 0 ? void 0 : newDataUnit.subscribe(this.dataUnitActionHandler.bind(this));
|
@@ -93,10 +95,38 @@ export class SnkDetailView {
|
|
93
95
|
this._snkGrid.scrollIntoView({ behavior: "smooth", block: "start" });
|
94
96
|
}
|
95
97
|
}
|
98
|
+
/**
|
99
|
+
* Registra um editor customizado para campos da grade e formulário.
|
100
|
+
*/
|
101
|
+
async addCustomEditor(fieldName, customEditor) {
|
102
|
+
var _a;
|
103
|
+
const detailContext = this.normalizeBranchGuideId((_a = this.branchGuide) === null || _a === void 0 ? void 0 : _a.id);
|
104
|
+
this._snkGrid.addCustomEditor(fieldName, customEditor, detailContext);
|
105
|
+
this._snkFormView.addCustomEditor(fieldName, customEditor, detailContext);
|
106
|
+
}
|
107
|
+
async observerPropsCustomEditor(newValue) {
|
108
|
+
for (const fieldName in newValue) {
|
109
|
+
await this.addCustomEditor(fieldName, newValue[fieldName]);
|
110
|
+
}
|
111
|
+
}
|
112
|
+
/**
|
113
|
+
* Registra um render customizado para colunas da grid.
|
114
|
+
*/
|
115
|
+
async addGridCustomRender(fieldName, customRender) {
|
116
|
+
var _a;
|
117
|
+
const detailContext = this.normalizeBranchGuideId((_a = this.branchGuide) === null || _a === void 0 ? void 0 : _a.id);
|
118
|
+
await this._snkGrid.addGridCustomRender(fieldName, customRender, detailContext);
|
119
|
+
}
|
96
120
|
onContentCardChanged(evt) {
|
97
121
|
SnkGuidesViewer.updateContentCard(evt.detail.formName, evt.detail.cardConfig, evt.detail.propertyChanged, this.formConfigManager).then(() => forceUpdate(this));
|
98
122
|
evt.stopPropagation();
|
99
123
|
}
|
124
|
+
async observeCustomRenders(newValue) {
|
125
|
+
for (const field in newValue) {
|
126
|
+
const customRender = newValue[field];
|
127
|
+
await this.addGridCustomRender(field, customRender);
|
128
|
+
}
|
129
|
+
}
|
100
130
|
updateLabel() {
|
101
131
|
const guideItemPathSize = this.guideItemPath ? this.guideItemPath.length : 0;
|
102
132
|
if (guideItemPathSize > 0) {
|
@@ -199,6 +229,10 @@ export class SnkDetailView {
|
|
199
229
|
this.messagesBuilder = new SnkMessageBuilder(this.entityName);
|
200
230
|
}
|
201
231
|
}
|
232
|
+
async componentDidLoad() {
|
233
|
+
await this.observerPropsCustomEditor(this.customEditors);
|
234
|
+
await this.observeCustomRenders(this.customRenders);
|
235
|
+
}
|
202
236
|
async dataUnitActionHandler(action) {
|
203
237
|
if (action.type === Action.FIELD_INVALIDATED) {
|
204
238
|
this.addErrorBadgeToBranchGuide();
|
@@ -208,6 +242,9 @@ export class SnkDetailView {
|
|
208
242
|
this.branchGuide = Object.assign(Object.assign({}, this.branchGuide), { badge: 'error' });
|
209
243
|
this.snkDetailGuidesChange.emit(new GuideBuilder(this.branchGuide, this._formMetadata, this.dataUnit));
|
210
244
|
}
|
245
|
+
normalizeBranchGuideId(id) {
|
246
|
+
return id === null || id === void 0 ? void 0 : id.replace(/child\[(.*?)\]/g, '$1').replace(/::/g, '>');
|
247
|
+
}
|
211
248
|
render() {
|
212
249
|
this.updateLabel();
|
213
250
|
//const cardConfig: IFormCardConfig = this._cardsState?.get(this.selectedForm);
|
@@ -469,6 +506,46 @@ export class SnkDetailView {
|
|
469
506
|
},
|
470
507
|
"attribute": "taskbar-custom-container-id",
|
471
508
|
"reflect": false
|
509
|
+
},
|
510
|
+
"customEditors": {
|
511
|
+
"type": "unknown",
|
512
|
+
"mutable": false,
|
513
|
+
"complexType": {
|
514
|
+
"original": "PropsCustomEditor",
|
515
|
+
"resolved": "PropsCustomEditor",
|
516
|
+
"references": {
|
517
|
+
"PropsCustomEditor": {
|
518
|
+
"location": "import",
|
519
|
+
"path": "../../interfaces/PropsCustomEditor"
|
520
|
+
}
|
521
|
+
}
|
522
|
+
},
|
523
|
+
"required": false,
|
524
|
+
"optional": false,
|
525
|
+
"docs": {
|
526
|
+
"tags": [],
|
527
|
+
"text": "Registra um editor customizado para campos da grade e formul\u00E1rio."
|
528
|
+
}
|
529
|
+
},
|
530
|
+
"customRenders": {
|
531
|
+
"type": "unknown",
|
532
|
+
"mutable": false,
|
533
|
+
"complexType": {
|
534
|
+
"original": "PropsCustomRender",
|
535
|
+
"resolved": "PropsCustomRender",
|
536
|
+
"references": {
|
537
|
+
"PropsCustomRender": {
|
538
|
+
"location": "import",
|
539
|
+
"path": "../../interfaces/PropsCustomRender"
|
540
|
+
}
|
541
|
+
}
|
542
|
+
},
|
543
|
+
"required": false,
|
544
|
+
"optional": false,
|
545
|
+
"docs": {
|
546
|
+
"tags": [],
|
547
|
+
"text": "Render customizados da grade."
|
548
|
+
}
|
472
549
|
}
|
473
550
|
};
|
474
551
|
}
|
@@ -601,6 +678,58 @@ export class SnkDetailView {
|
|
601
678
|
"text": "",
|
602
679
|
"tags": []
|
603
680
|
}
|
681
|
+
},
|
682
|
+
"addCustomEditor": {
|
683
|
+
"complexType": {
|
684
|
+
"signature": "(fieldName: string, customEditor: ICustomEditor) => Promise<void>",
|
685
|
+
"parameters": [{
|
686
|
+
"tags": [],
|
687
|
+
"text": ""
|
688
|
+
}, {
|
689
|
+
"tags": [],
|
690
|
+
"text": ""
|
691
|
+
}],
|
692
|
+
"references": {
|
693
|
+
"Promise": {
|
694
|
+
"location": "global"
|
695
|
+
},
|
696
|
+
"ICustomEditor": {
|
697
|
+
"location": "import",
|
698
|
+
"path": "@sankhyalabs/ezui/dist/types/utils"
|
699
|
+
}
|
700
|
+
},
|
701
|
+
"return": "Promise<void>"
|
702
|
+
},
|
703
|
+
"docs": {
|
704
|
+
"text": "Registra um editor customizado para campos da grade e formul\u00E1rio.",
|
705
|
+
"tags": []
|
706
|
+
}
|
707
|
+
},
|
708
|
+
"addGridCustomRender": {
|
709
|
+
"complexType": {
|
710
|
+
"signature": "(fieldName: string, customRender: ICustomRender) => Promise<void>",
|
711
|
+
"parameters": [{
|
712
|
+
"tags": [],
|
713
|
+
"text": ""
|
714
|
+
}, {
|
715
|
+
"tags": [],
|
716
|
+
"text": ""
|
717
|
+
}],
|
718
|
+
"references": {
|
719
|
+
"Promise": {
|
720
|
+
"location": "global"
|
721
|
+
},
|
722
|
+
"ICustomRender": {
|
723
|
+
"location": "import",
|
724
|
+
"path": "@sankhyalabs/ezui/dist/types/utils"
|
725
|
+
}
|
726
|
+
},
|
727
|
+
"return": "Promise<void>"
|
728
|
+
},
|
729
|
+
"docs": {
|
730
|
+
"text": "Registra um render customizado para colunas da grid.",
|
731
|
+
"tags": []
|
732
|
+
}
|
604
733
|
}
|
605
734
|
};
|
606
735
|
}
|
@@ -611,6 +740,12 @@ export class SnkDetailView {
|
|
611
740
|
}, {
|
612
741
|
"propName": "dataState",
|
613
742
|
"methodName": "observerDataState"
|
743
|
+
}, {
|
744
|
+
"propName": "customEditors",
|
745
|
+
"methodName": "observerPropsCustomEditor"
|
746
|
+
}, {
|
747
|
+
"propName": "customRenders",
|
748
|
+
"methodName": "observeCustomRenders"
|
614
749
|
}];
|
615
750
|
}
|
616
751
|
static get listeners() {
|