@sankhyalabs/sankhyablocks 2.8.0 → 2.10.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/{ConfigStorage-91953f29.js → ConfigStorage-8b5e3261.js} +1 -1
- package/dist/cjs/snk-application.cjs.entry.js +20 -9
- package/dist/cjs/snk-config-options.cjs.entry.js +2 -6
- package/dist/cjs/snk-configurator_3.cjs.entry.js +1 -1
- package/dist/cjs/snk-data-exporter_8.cjs.entry.js +1 -1
- package/dist/cjs/snk-data-unit.cjs.entry.js +49 -10
- package/dist/cjs/snk-form-config.cjs.entry.js +1 -1
- package/dist/cjs/snk-form.cjs.entry.js +1 -1
- package/dist/collection/components/snk-application/snk-application.js +16 -10
- package/dist/collection/components/snk-crud/snk-crud.js +1 -1
- package/dist/collection/components/snk-data-unit/snk-data-unit.js +49 -10
- package/dist/collection/components/snk-form/snk-form.js +1 -1
- package/dist/collection/components/snk-form/subcomponents/snk-config-options/snk-config-options.js +3 -7
- package/dist/collection/components/snk-form/subcomponents/snk-field-config/snk-field-config.js +1 -1
- package/dist/collection/components/snk-form/subcomponents/snk-form-config/snk-form-config.js +2 -2
- package/dist/collection/lib/http/data-fetcher/fetchers/dataunit-fetcher.js +15 -4
- package/dist/collection/lib/http/data-fetcher/fetchers/form-config-fetcher.js +1 -1
- package/dist/components/ConfigStorage.js +1 -1
- package/dist/components/snk-application2.js +19 -8
- package/dist/components/snk-config-options2.js +2 -6
- package/dist/components/snk-data-unit.js +49 -10
- package/dist/esm/{ConfigStorage-b59461d8.js → ConfigStorage-4654f57b.js} +1 -1
- package/dist/esm/snk-application.entry.js +20 -9
- package/dist/esm/snk-config-options.entry.js +2 -6
- package/dist/esm/snk-configurator_3.entry.js +1 -1
- package/dist/esm/snk-data-exporter_8.entry.js +1 -1
- package/dist/esm/snk-data-unit.entry.js +49 -10
- package/dist/esm/snk-form-config.entry.js +1 -1
- package/dist/esm/snk-form.entry.js +1 -1
- package/dist/sankhyablocks/{p-1a2533d0.entry.js → p-3cb9f3ad.entry.js} +1 -1
- package/dist/sankhyablocks/{p-772f1c44.entry.js → p-4ca32c86.entry.js} +1 -1
- package/dist/sankhyablocks/{p-68fcc226.entry.js → p-6617d349.entry.js} +1 -1
- package/dist/sankhyablocks/{p-395b45a7.js → p-93d8ea09.js} +1 -1
- package/dist/sankhyablocks/{p-f5246cd6.entry.js → p-9d474bc0.entry.js} +1 -1
- package/dist/sankhyablocks/p-b84c7c61.entry.js +90 -0
- package/dist/sankhyablocks/p-c32cfc29.entry.js +1 -0
- package/dist/sankhyablocks/{p-48d7ba04.entry.js → p-fc77347c.entry.js} +1 -1
- package/dist/sankhyablocks/sankhyablocks.esm.js +1 -1
- package/dist/types/components/snk-application/snk-application.d.ts +3 -3
- package/dist/types/components/snk-crud/snk-crud.d.ts +1 -1
- package/dist/types/components/snk-data-unit/snk-data-unit.d.ts +6 -0
- package/dist/types/components/snk-form/snk-form.d.ts +1 -1
- package/dist/types/components/snk-form/subcomponents/snk-config-options/snk-config-options.d.ts +1 -1
- package/dist/types/components/snk-form/subcomponents/snk-field-config/snk-field-config.d.ts +1 -1
- package/dist/types/components/snk-form/subcomponents/snk-form-config/snk-form-config.d.ts +1 -1
- package/dist/types/components.d.ts +3 -3
- package/dist/types/lib/configs/ConfigStorage.d.ts +1 -1
- package/dist/types/lib/http/data-fetcher/fetchers/dataunit-fetcher.d.ts +1 -1
- package/dist/types/lib/http/data-fetcher/fetchers/form-config-fetcher.d.ts +1 -1
- package/package.json +1 -1
- package/dist/sankhyablocks/p-3480f2fa.entry.js +0 -1
- package/dist/sankhyablocks/p-43eff4d3.entry.js +0 -83
|
@@ -31,6 +31,13 @@ export default class DataUnitFetcher {
|
|
|
31
31
|
type
|
|
32
32
|
expression
|
|
33
33
|
}
|
|
34
|
+
},
|
|
35
|
+
children{
|
|
36
|
+
name
|
|
37
|
+
links{
|
|
38
|
+
source
|
|
39
|
+
target
|
|
40
|
+
}
|
|
34
41
|
}
|
|
35
42
|
children{
|
|
36
43
|
name
|
|
@@ -41,9 +48,9 @@ export default class DataUnitFetcher {
|
|
|
41
48
|
}
|
|
42
49
|
}
|
|
43
50
|
}`);
|
|
44
|
-
this.templateByQuery.set("fetchData", gql `query($dataunit: String! $limit: Int $offset:Int $filters: [InputFilter!] $sort: [InputSort!]) {
|
|
51
|
+
this.templateByQuery.set("fetchData", gql `query($dataunit: String! $limit: Int $offset:Int $filters: [InputFilter!] $sort: [InputSort!] $parentRecordId: String) {
|
|
45
52
|
$queryAlias$: fetchDataUnit(name: $dataunit){
|
|
46
|
-
data(limit: $limit offset: $offset filters: $filters sort: $sort){
|
|
53
|
+
data(limit: $limit offset: $offset filters: $filters sort: $sort parentRecordId: $parentRecordId){
|
|
47
54
|
limit
|
|
48
55
|
offset
|
|
49
56
|
total
|
|
@@ -80,8 +87,8 @@ export default class DataUnitFetcher {
|
|
|
80
87
|
}
|
|
81
88
|
}`);
|
|
82
89
|
}
|
|
83
|
-
getDataUnit(entityName, resourceID) {
|
|
84
|
-
const dataUnit = new DataUnit(`dd://${entityName}/${resourceID}`);
|
|
90
|
+
getDataUnit(entityName, resourceID, parentDataUnit) {
|
|
91
|
+
const dataUnit = parentDataUnit != undefined ? parentDataUnit.getChildDataunit(`dd://${entityName}/${resourceID}`) : new DataUnit(`dd://${entityName}/${resourceID}`);
|
|
85
92
|
dataUnit.metadataLoader = (dataUnit) => this.loadMetadata(dataUnit);
|
|
86
93
|
dataUnit.dataLoader = (dataUnit, request) => this.loadData(dataUnit, request);
|
|
87
94
|
dataUnit.saveLoader = (dataUnit, changes) => this.saveData(dataUnit, changes);
|
|
@@ -144,6 +151,7 @@ export default class DataUnitFetcher {
|
|
|
144
151
|
const variables = { dataunit: dataUnit.name, sort, filters };
|
|
145
152
|
variables.limit = limit;
|
|
146
153
|
variables.offset = offset;
|
|
154
|
+
variables.parentRecordId = request.parentRecordId;
|
|
147
155
|
if (!StringUtils.isEmpty(quickFilter === null || quickFilter === void 0 ? void 0 : quickFilter.term)) {
|
|
148
156
|
if (variables.filter === undefined) {
|
|
149
157
|
variables.filter = [];
|
|
@@ -211,6 +219,9 @@ export default class DataUnitFetcher {
|
|
|
211
219
|
if (change.sourceId) {
|
|
212
220
|
reqChange.sourceId = change.sourceId;
|
|
213
221
|
}
|
|
222
|
+
if (record.__parent__record__id__) {
|
|
223
|
+
reqChange.parentRecordId = record.__parent__record__id__;
|
|
224
|
+
}
|
|
214
225
|
return reqChange;
|
|
215
226
|
});
|
|
216
227
|
return new Promise((resolve, reject) => {
|
|
@@ -42,7 +42,7 @@ export class FormConfigFetcher extends ResourceFetcher {
|
|
|
42
42
|
}
|
|
43
43
|
config.fields = fields === null || fields === void 0 ? void 0 : fields.map((field) => {
|
|
44
44
|
if ("readonly" in field) {
|
|
45
|
-
const readOnly = field['readonly'];
|
|
45
|
+
const readOnly = field['readonly'] === true;
|
|
46
46
|
delete field['readonly'];
|
|
47
47
|
field.readOnly = readOnly;
|
|
48
48
|
}
|
|
@@ -104,7 +104,7 @@ class FormConfigFetcher extends ResourceFetcher {
|
|
|
104
104
|
}
|
|
105
105
|
config.fields = fields === null || fields === void 0 ? void 0 : fields.map((field) => {
|
|
106
106
|
if ("readonly" in field) {
|
|
107
|
-
const readOnly = field['readonly'];
|
|
107
|
+
const readOnly = field['readonly'] === true;
|
|
108
108
|
delete field['readonly'];
|
|
109
109
|
field.readOnly = readOnly;
|
|
110
110
|
}
|
|
@@ -238,6 +238,13 @@ class DataUnitFetcher {
|
|
|
238
238
|
type
|
|
239
239
|
expression
|
|
240
240
|
}
|
|
241
|
+
},
|
|
242
|
+
children{
|
|
243
|
+
name
|
|
244
|
+
links{
|
|
245
|
+
source
|
|
246
|
+
target
|
|
247
|
+
}
|
|
241
248
|
}
|
|
242
249
|
children{
|
|
243
250
|
name
|
|
@@ -248,9 +255,9 @@ class DataUnitFetcher {
|
|
|
248
255
|
}
|
|
249
256
|
}
|
|
250
257
|
}`);
|
|
251
|
-
this.templateByQuery.set("fetchData", dist.gql `query($dataunit: String! $limit: Int $offset:Int $filters: [InputFilter!] $sort: [InputSort!]) {
|
|
258
|
+
this.templateByQuery.set("fetchData", dist.gql `query($dataunit: String! $limit: Int $offset:Int $filters: [InputFilter!] $sort: [InputSort!] $parentRecordId: String) {
|
|
252
259
|
$queryAlias$: fetchDataUnit(name: $dataunit){
|
|
253
|
-
data(limit: $limit offset: $offset filters: $filters sort: $sort){
|
|
260
|
+
data(limit: $limit offset: $offset filters: $filters sort: $sort parentRecordId: $parentRecordId){
|
|
254
261
|
limit
|
|
255
262
|
offset
|
|
256
263
|
total
|
|
@@ -287,8 +294,8 @@ class DataUnitFetcher {
|
|
|
287
294
|
}
|
|
288
295
|
}`);
|
|
289
296
|
}
|
|
290
|
-
getDataUnit(entityName, resourceID) {
|
|
291
|
-
const dataUnit = new DataUnit(`dd://${entityName}/${resourceID}`);
|
|
297
|
+
getDataUnit(entityName, resourceID, parentDataUnit) {
|
|
298
|
+
const dataUnit = parentDataUnit != undefined ? parentDataUnit.getChildDataunit(`dd://${entityName}/${resourceID}`) : new DataUnit(`dd://${entityName}/${resourceID}`);
|
|
292
299
|
dataUnit.metadataLoader = (dataUnit) => this.loadMetadata(dataUnit);
|
|
293
300
|
dataUnit.dataLoader = (dataUnit, request) => this.loadData(dataUnit, request);
|
|
294
301
|
dataUnit.saveLoader = (dataUnit, changes) => this.saveData(dataUnit, changes);
|
|
@@ -351,6 +358,7 @@ class DataUnitFetcher {
|
|
|
351
358
|
const variables = { dataunit: dataUnit.name, sort, filters };
|
|
352
359
|
variables.limit = limit;
|
|
353
360
|
variables.offset = offset;
|
|
361
|
+
variables.parentRecordId = request.parentRecordId;
|
|
354
362
|
if (!StringUtils.isEmpty(quickFilter === null || quickFilter === void 0 ? void 0 : quickFilter.term)) {
|
|
355
363
|
if (variables.filter === undefined) {
|
|
356
364
|
variables.filter = [];
|
|
@@ -418,6 +426,9 @@ class DataUnitFetcher {
|
|
|
418
426
|
if (change.sourceId) {
|
|
419
427
|
reqChange.sourceId = change.sourceId;
|
|
420
428
|
}
|
|
429
|
+
if (record.__parent__record__id__) {
|
|
430
|
+
reqChange.parentRecordId = record.__parent__record__id__;
|
|
431
|
+
}
|
|
421
432
|
return reqChange;
|
|
422
433
|
});
|
|
423
434
|
return new Promise((resolve, reject) => {
|
|
@@ -916,13 +927,13 @@ const SnkApplication = /*@__PURE__*/ proxyCustomElement(class extends HTMLElemen
|
|
|
916
927
|
* Cria o DataUnit a partir do nome da entidade. É possível armazená-lo no cache
|
|
917
928
|
* passando o dataUnitName, assim, se mais de uma chamada for feita, o mesmo DataUnit será usado.
|
|
918
929
|
*/
|
|
919
|
-
async createDataunit(entityName, dataUnitName) {
|
|
930
|
+
async createDataunit(entityName, dataUnitName, parentDataUnit) {
|
|
920
931
|
return new Promise((resolve, reject) => {
|
|
921
932
|
const duPromisses = this.getDuPromissesStack(dataUnitName);
|
|
922
933
|
const waitingDu = duPromisses.length > 0;
|
|
923
934
|
duPromisses.push(new PendingPromise(resolve, reject));
|
|
924
935
|
if (!waitingDu) {
|
|
925
|
-
const dataUnit = this.dataUnitFetcher.getDataUnit(entityName, this.resourceID);
|
|
936
|
+
const dataUnit = this.dataUnitFetcher.getDataUnit(entityName, this.resourceID, parentDataUnit);
|
|
926
937
|
dataUnit.loadMetadata().then(() => {
|
|
927
938
|
if (dataUnitName) {
|
|
928
939
|
this._duCache.set(dataUnitName, dataUnit);
|
|
@@ -941,14 +952,14 @@ const SnkApplication = /*@__PURE__*/ proxyCustomElement(class extends HTMLElemen
|
|
|
941
952
|
/**
|
|
942
953
|
* Obtem um DataUnit do cache ou cria um caso ainda não tenha sido criado.
|
|
943
954
|
*/
|
|
944
|
-
async getDataUnit(entityName, dataUnitName) {
|
|
955
|
+
async getDataUnit(entityName, dataUnitName, parentDataUnit) {
|
|
945
956
|
return new Promise((resolve, reject) => {
|
|
946
957
|
const dataUnit = this._duCache.get(dataUnitName);
|
|
947
958
|
if (dataUnit) {
|
|
948
959
|
resolve(dataUnit);
|
|
949
960
|
}
|
|
950
961
|
else {
|
|
951
|
-
this.createDataunit(entityName, dataUnitName).then(dataUnit => {
|
|
962
|
+
this.createDataunit(entityName, dataUnitName, parentDataUnit).then(dataUnit => {
|
|
952
963
|
resolve(dataUnit);
|
|
953
964
|
}).catch(reason => reject(reason));
|
|
954
965
|
}
|
|
@@ -182,8 +182,7 @@ const SnkConfigOptions = /*@__PURE__*/ proxyCustomElement(class extends HTMLElem
|
|
|
182
182
|
return this._application.executeSearch(searchArgument, this.fieldConfig.name, this.dataUnit);
|
|
183
183
|
}
|
|
184
184
|
}
|
|
185
|
-
buildField(
|
|
186
|
-
const { config, descriptor } = field;
|
|
185
|
+
buildField(descriptor, config) {
|
|
187
186
|
const { name, label, readOnly, required, defaultValue } = config;
|
|
188
187
|
const { userInterface, properties } = descriptor;
|
|
189
188
|
const allowDefault = properties === null || properties === void 0 ? void 0 : properties.allowDefault;
|
|
@@ -226,10 +225,7 @@ const SnkConfigOptions = /*@__PURE__*/ proxyCustomElement(class extends HTMLElem
|
|
|
226
225
|
h("ez-combo-box", { label: this.getMessage("snkConfigOptions.label.valueDefault"), enabled: this.isAllowDefault(), onEzChange: (evt) => { var _a; this.fieldConfig.defaultValue.value = (_a = evt.detail) === null || _a === void 0 ? void 0 : _a.value; this.configOptionsChanged.emit(this.fieldConfig); }, value: this.fieldConfig.defaultValue.value, options: this.buildOptions() })
|
|
227
226
|
:
|
|
228
227
|
((_b = this._fieldProperties) === null || _b === void 0 ? void 0 : _b.userInterface) &&
|
|
229
|
-
this.buildField({
|
|
230
|
-
descriptor: this._fieldProperties,
|
|
231
|
-
config: this.fieldConfig
|
|
232
|
-
}))), h("div", { class: "ez-row ez-padding--medium config-options__switch-row" }, h("div", { class: "ez-col ez-col--sd-12 ez-col--tb-4 ez-padding--small" }, h("ez-check", { mode: CheckMode.SWITCH, label: this.getMessage("snkConfigOptions.label.clearDuplicate"), value: this.fieldConfig.cleanOnCopy, onEzChange: (evt) => { this.fieldConfig.cleanOnCopy = evt.detail; this.configOptionsChanged.emit(this.fieldConfig); } })), h("div", { class: "ez-col ez-col--sd-12 ez-col--tb-4 ez-padding--small" }, h("ez-check", { mode: CheckMode.SWITCH, label: this.getMessage("snkConfigOptions.label.requiredField"), enabled: this.getEnabledByProperty("required"), value: this.getValueByProperty("required"), onEzChange: (evt) => { this.fieldConfig.required = evt.detail; this.configOptionsChanged.emit(this.fieldConfig); } })), h("div", { class: "ez-col ez-col--sd-12 ez-col--tb-4 ez-padding--small" }, h("ez-check", { mode: CheckMode.SWITCH, label: this.getMessage("snkConfigOptions.label.protectedField"), enabled: this.getEnabledByProperty("readOnly"), value: this.getValueByProperty("readOnly"), onEzChange: (evt) => { this.fieldConfig.readOnly = evt.detail; this.configOptionsChanged.emit(this.fieldConfig); } }))))));
|
|
228
|
+
this.buildField(this._fieldProperties, this.fieldConfig))), h("div", { class: "ez-row ez-padding--medium config-options__switch-row" }, h("div", { class: "ez-col ez-col--sd-12 ez-col--tb-4 ez-padding--small" }, h("ez-check", { mode: CheckMode.SWITCH, label: this.getMessage("snkConfigOptions.label.clearDuplicate"), value: this.fieldConfig.cleanOnCopy, onEzChange: (evt) => { this.fieldConfig.cleanOnCopy = evt.detail; this.configOptionsChanged.emit(this.fieldConfig); } })), h("div", { class: "ez-col ez-col--sd-12 ez-col--tb-4 ez-padding--small" }, h("ez-check", { mode: CheckMode.SWITCH, label: this.getMessage("snkConfigOptions.label.requiredField"), enabled: this.getEnabledByProperty("required"), value: this.getValueByProperty("required"), onEzChange: (evt) => { this.fieldConfig.required = evt.detail; this.configOptionsChanged.emit(this.fieldConfig); } })), h("div", { class: "ez-col ez-col--sd-12 ez-col--tb-4 ez-padding--small" }, h("ez-check", { mode: CheckMode.SWITCH, label: this.getMessage("snkConfigOptions.label.protectedField"), enabled: this.getEnabledByProperty("readOnly"), value: this.getValueByProperty("readOnly"), onEzChange: (evt) => { this.fieldConfig.readOnly = evt.detail; this.configOptionsChanged.emit(this.fieldConfig); } }))))));
|
|
233
229
|
}
|
|
234
230
|
get _element() { return this; }
|
|
235
231
|
static get style() { return snkConfigOptionsCss; }
|
|
@@ -9,10 +9,10 @@ const SnkDataUnit$1 = /*@__PURE__*/ proxyCustomElement(class extends HTMLElement
|
|
|
9
9
|
constructor() {
|
|
10
10
|
super();
|
|
11
11
|
this.__registerHost();
|
|
12
|
-
this.dataStateChange = createEvent(this, "dataStateChange",
|
|
13
|
-
this.dataUnitReady = createEvent(this, "dataUnitReady",
|
|
14
|
-
this.insertionMode = createEvent(this, "insertionMode",
|
|
15
|
-
this.cancelEdition = createEvent(this, "cancelEdition",
|
|
12
|
+
this.dataStateChange = createEvent(this, "dataStateChange", 3);
|
|
13
|
+
this.dataUnitReady = createEvent(this, "dataUnitReady", 3);
|
|
14
|
+
this.insertionMode = createEvent(this, "insertionMode", 3);
|
|
15
|
+
this.cancelEdition = createEvent(this, "cancelEdition", 3);
|
|
16
16
|
this._onDataUnitResolve = [];
|
|
17
17
|
/**
|
|
18
18
|
* Determina quantas linhas são retornadas por página.
|
|
@@ -26,12 +26,13 @@ const SnkDataUnit$1 = /*@__PURE__*/ proxyCustomElement(class extends HTMLElement
|
|
|
26
26
|
copyMode: false,
|
|
27
27
|
isDirty: this.dataUnit.isDirty(),
|
|
28
28
|
hasDirtyRecords: this.dataUnit.hasDirtyRecords(),
|
|
29
|
-
selectedRecords: this.dataUnit.getSelectedRecords()
|
|
29
|
+
selectedRecords: this.dataUnit.getSelectedRecords(),
|
|
30
|
+
selectedRecord: this.dataUnit.getSelectedRecord()
|
|
30
31
|
};
|
|
31
|
-
this.dataUnit.records.forEach(
|
|
32
|
-
if (
|
|
32
|
+
this.dataUnit.records.forEach(record => {
|
|
33
|
+
if (record.__record__id__.startsWith('NEW_')) {
|
|
33
34
|
duState.insertionMode = true;
|
|
34
|
-
duState.copyMode || (duState.copyMode =
|
|
35
|
+
duState.copyMode || (duState.copyMode = record['__record__source__id__'] != undefined);
|
|
35
36
|
}
|
|
36
37
|
});
|
|
37
38
|
this.dataState = duState;
|
|
@@ -85,6 +86,7 @@ const SnkDataUnit$1 = /*@__PURE__*/ proxyCustomElement(class extends HTMLElement
|
|
|
85
86
|
}
|
|
86
87
|
}
|
|
87
88
|
observeDataUnit() {
|
|
89
|
+
this.handlerLinkFields();
|
|
88
90
|
this.dataUnitReady.emit(this.dataUnit);
|
|
89
91
|
}
|
|
90
92
|
/**
|
|
@@ -230,11 +232,21 @@ const SnkDataUnit$1 = /*@__PURE__*/ proxyCustomElement(class extends HTMLElement
|
|
|
230
232
|
}
|
|
231
233
|
return OperationMap.CLEAN;
|
|
232
234
|
}
|
|
235
|
+
async getDataUnitParentOrChild() {
|
|
236
|
+
var _a;
|
|
237
|
+
const cacheName = this.dataUnitName ? this.dataUnitName : this.entityName;
|
|
238
|
+
if (this._parentSnkDataUnit) {
|
|
239
|
+
this._parentDataUnit = await ((_a = this._parentSnkDataUnit) === null || _a === void 0 ? void 0 : _a.getDataUnit());
|
|
240
|
+
return await this._application.getDataUnit(this.entityName, undefined, this._parentDataUnit);
|
|
241
|
+
}
|
|
242
|
+
else {
|
|
243
|
+
return await this._application.getDataUnit(this.entityName, cacheName);
|
|
244
|
+
}
|
|
245
|
+
}
|
|
233
246
|
async loadDataUnit() {
|
|
234
247
|
if (!this.dataUnit) {
|
|
235
248
|
if (this._application && this.entityName) {
|
|
236
|
-
|
|
237
|
-
this.dataUnit = await this._application.getDataUnit(this.entityName, cacheName);
|
|
249
|
+
this.dataUnit = await this.getDataUnitParentOrChild();
|
|
238
250
|
this.dataUnit.pageSize = this.pageSize;
|
|
239
251
|
this.dataUnit.unsubscribe(this._dataUnitObserver);
|
|
240
252
|
this.dataUnit.addInterceptor(this);
|
|
@@ -246,12 +258,39 @@ const SnkDataUnit$1 = /*@__PURE__*/ proxyCustomElement(class extends HTMLElement
|
|
|
246
258
|
}
|
|
247
259
|
}
|
|
248
260
|
}
|
|
261
|
+
getParentSnkDataUnit() {
|
|
262
|
+
let currentElement = this.element;
|
|
263
|
+
while (currentElement.parentNode) {
|
|
264
|
+
if (currentElement.parentNode.nodeName === 'SNK-DATA-UNIT') {
|
|
265
|
+
return currentElement.parentNode;
|
|
266
|
+
}
|
|
267
|
+
currentElement = currentElement.parentNode;
|
|
268
|
+
}
|
|
269
|
+
return;
|
|
270
|
+
}
|
|
271
|
+
handlerLinkFields() {
|
|
272
|
+
var _a, _b;
|
|
273
|
+
const metadata = Object.assign({}, this.dataUnit.metadata);
|
|
274
|
+
if (!this._parentDataUnit)
|
|
275
|
+
return;
|
|
276
|
+
const child = this._parentDataUnit.getChildInfo(this.entityName);
|
|
277
|
+
if (!child)
|
|
278
|
+
return;
|
|
279
|
+
const fieldsLink = (_a = child === null || child === void 0 ? void 0 : child.links) === null || _a === void 0 ? void 0 : _a.map(link => link.target);
|
|
280
|
+
(_b = metadata === null || metadata === void 0 ? void 0 : metadata.fields) === null || _b === void 0 ? void 0 : _b.forEach(field => {
|
|
281
|
+
if (fieldsLink === null || fieldsLink === void 0 ? void 0 : fieldsLink.includes(field.name)) {
|
|
282
|
+
field.visible = false;
|
|
283
|
+
}
|
|
284
|
+
});
|
|
285
|
+
this.dataUnit.metadata = metadata;
|
|
286
|
+
}
|
|
249
287
|
//---------------------------------------------
|
|
250
288
|
// Lifecycle web component
|
|
251
289
|
//---------------------------------------------
|
|
252
290
|
componentWillLoad() {
|
|
253
291
|
this._application = ApplicationContext.getContextValue("__SNK__APPLICATION__");
|
|
254
292
|
this._application.getAllAccess().then(access => this._permissions = access);
|
|
293
|
+
this._parentSnkDataUnit = this.getParentSnkDataUnit();
|
|
255
294
|
}
|
|
256
295
|
componentDidLoad() {
|
|
257
296
|
this.loadDataUnit();
|
|
@@ -6795,7 +6795,7 @@ class FormConfigFetcher extends ResourceFetcher {
|
|
|
6795
6795
|
}
|
|
6796
6796
|
config.fields = fields === null || fields === void 0 ? void 0 : fields.map((field) => {
|
|
6797
6797
|
if ("readonly" in field) {
|
|
6798
|
-
const readOnly = field['readonly'];
|
|
6798
|
+
const readOnly = field['readonly'] === true;
|
|
6799
6799
|
delete field['readonly'];
|
|
6800
6800
|
field.readOnly = readOnly;
|
|
6801
6801
|
}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { r as registerInstance, c as createEvent, h, g as getElement } from './index-a77b6f35.js';
|
|
2
2
|
import { WaitingChangeException, WarningException, ErrorException, ObjectUtils, DataType, DataUnit, StringUtils, ChangeOperation, DateUtils, DependencyType, ElementIDUtils, ApplicationContext, ErrorTracking } from '@sankhyalabs/core';
|
|
3
|
-
import { d as dist, D as DataFetcher, R as ResourceFetcher, U as UrlUtils, F as FormConfigFetcher, G as GridConfigFetcher, C as ConfigStorage } from './ConfigStorage-
|
|
3
|
+
import { d as dist, D as DataFetcher, R as ResourceFetcher, U as UrlUtils, F as FormConfigFetcher, G as GridConfigFetcher, C as ConfigStorage } from './ConfigStorage-4654f57b.js';
|
|
4
4
|
import { ApplicationUtils } from '@sankhyalabs/ezui/dist/collection/utils';
|
|
5
5
|
import { S as SnkMessageBuilder } from './SnkMessageBuilder-4a060599.js';
|
|
6
6
|
import './_commonjsHelpers-9943807e.js';
|
|
@@ -237,6 +237,13 @@ class DataUnitFetcher {
|
|
|
237
237
|
type
|
|
238
238
|
expression
|
|
239
239
|
}
|
|
240
|
+
},
|
|
241
|
+
children{
|
|
242
|
+
name
|
|
243
|
+
links{
|
|
244
|
+
source
|
|
245
|
+
target
|
|
246
|
+
}
|
|
240
247
|
}
|
|
241
248
|
children{
|
|
242
249
|
name
|
|
@@ -247,9 +254,9 @@ class DataUnitFetcher {
|
|
|
247
254
|
}
|
|
248
255
|
}
|
|
249
256
|
}`);
|
|
250
|
-
this.templateByQuery.set("fetchData", dist.gql `query($dataunit: String! $limit: Int $offset:Int $filters: [InputFilter!] $sort: [InputSort!]) {
|
|
257
|
+
this.templateByQuery.set("fetchData", dist.gql `query($dataunit: String! $limit: Int $offset:Int $filters: [InputFilter!] $sort: [InputSort!] $parentRecordId: String) {
|
|
251
258
|
$queryAlias$: fetchDataUnit(name: $dataunit){
|
|
252
|
-
data(limit: $limit offset: $offset filters: $filters sort: $sort){
|
|
259
|
+
data(limit: $limit offset: $offset filters: $filters sort: $sort parentRecordId: $parentRecordId){
|
|
253
260
|
limit
|
|
254
261
|
offset
|
|
255
262
|
total
|
|
@@ -286,8 +293,8 @@ class DataUnitFetcher {
|
|
|
286
293
|
}
|
|
287
294
|
}`);
|
|
288
295
|
}
|
|
289
|
-
getDataUnit(entityName, resourceID) {
|
|
290
|
-
const dataUnit = new DataUnit(`dd://${entityName}/${resourceID}`);
|
|
296
|
+
getDataUnit(entityName, resourceID, parentDataUnit) {
|
|
297
|
+
const dataUnit = parentDataUnit != undefined ? parentDataUnit.getChildDataunit(`dd://${entityName}/${resourceID}`) : new DataUnit(`dd://${entityName}/${resourceID}`);
|
|
291
298
|
dataUnit.metadataLoader = (dataUnit) => this.loadMetadata(dataUnit);
|
|
292
299
|
dataUnit.dataLoader = (dataUnit, request) => this.loadData(dataUnit, request);
|
|
293
300
|
dataUnit.saveLoader = (dataUnit, changes) => this.saveData(dataUnit, changes);
|
|
@@ -350,6 +357,7 @@ class DataUnitFetcher {
|
|
|
350
357
|
const variables = { dataunit: dataUnit.name, sort, filters };
|
|
351
358
|
variables.limit = limit;
|
|
352
359
|
variables.offset = offset;
|
|
360
|
+
variables.parentRecordId = request.parentRecordId;
|
|
353
361
|
if (!StringUtils.isEmpty(quickFilter === null || quickFilter === void 0 ? void 0 : quickFilter.term)) {
|
|
354
362
|
if (variables.filter === undefined) {
|
|
355
363
|
variables.filter = [];
|
|
@@ -417,6 +425,9 @@ class DataUnitFetcher {
|
|
|
417
425
|
if (change.sourceId) {
|
|
418
426
|
reqChange.sourceId = change.sourceId;
|
|
419
427
|
}
|
|
428
|
+
if (record.__parent__record__id__) {
|
|
429
|
+
reqChange.parentRecordId = record.__parent__record__id__;
|
|
430
|
+
}
|
|
420
431
|
return reqChange;
|
|
421
432
|
});
|
|
422
433
|
return new Promise((resolve, reject) => {
|
|
@@ -914,13 +925,13 @@ const SnkApplication = class {
|
|
|
914
925
|
* Cria o DataUnit a partir do nome da entidade. É possível armazená-lo no cache
|
|
915
926
|
* passando o dataUnitName, assim, se mais de uma chamada for feita, o mesmo DataUnit será usado.
|
|
916
927
|
*/
|
|
917
|
-
async createDataunit(entityName, dataUnitName) {
|
|
928
|
+
async createDataunit(entityName, dataUnitName, parentDataUnit) {
|
|
918
929
|
return new Promise((resolve, reject) => {
|
|
919
930
|
const duPromisses = this.getDuPromissesStack(dataUnitName);
|
|
920
931
|
const waitingDu = duPromisses.length > 0;
|
|
921
932
|
duPromisses.push(new PendingPromise(resolve, reject));
|
|
922
933
|
if (!waitingDu) {
|
|
923
|
-
const dataUnit = this.dataUnitFetcher.getDataUnit(entityName, this.resourceID);
|
|
934
|
+
const dataUnit = this.dataUnitFetcher.getDataUnit(entityName, this.resourceID, parentDataUnit);
|
|
924
935
|
dataUnit.loadMetadata().then(() => {
|
|
925
936
|
if (dataUnitName) {
|
|
926
937
|
this._duCache.set(dataUnitName, dataUnit);
|
|
@@ -939,14 +950,14 @@ const SnkApplication = class {
|
|
|
939
950
|
/**
|
|
940
951
|
* Obtem um DataUnit do cache ou cria um caso ainda não tenha sido criado.
|
|
941
952
|
*/
|
|
942
|
-
async getDataUnit(entityName, dataUnitName) {
|
|
953
|
+
async getDataUnit(entityName, dataUnitName, parentDataUnit) {
|
|
943
954
|
return new Promise((resolve, reject) => {
|
|
944
955
|
const dataUnit = this._duCache.get(dataUnitName);
|
|
945
956
|
if (dataUnit) {
|
|
946
957
|
resolve(dataUnit);
|
|
947
958
|
}
|
|
948
959
|
else {
|
|
949
|
-
this.createDataunit(entityName, dataUnitName).then(dataUnit => {
|
|
960
|
+
this.createDataunit(entityName, dataUnitName, parentDataUnit).then(dataUnit => {
|
|
950
961
|
resolve(dataUnit);
|
|
951
962
|
}).catch(reason => reject(reason));
|
|
952
963
|
}
|
|
@@ -181,8 +181,7 @@ const SnkConfigOptions = class {
|
|
|
181
181
|
return this._application.executeSearch(searchArgument, this.fieldConfig.name, this.dataUnit);
|
|
182
182
|
}
|
|
183
183
|
}
|
|
184
|
-
buildField(
|
|
185
|
-
const { config, descriptor } = field;
|
|
184
|
+
buildField(descriptor, config) {
|
|
186
185
|
const { name, label, readOnly, required, defaultValue } = config;
|
|
187
186
|
const { userInterface, properties } = descriptor;
|
|
188
187
|
const allowDefault = properties === null || properties === void 0 ? void 0 : properties.allowDefault;
|
|
@@ -225,10 +224,7 @@ const SnkConfigOptions = class {
|
|
|
225
224
|
h("ez-combo-box", { label: this.getMessage("snkConfigOptions.label.valueDefault"), enabled: this.isAllowDefault(), onEzChange: (evt) => { var _a; this.fieldConfig.defaultValue.value = (_a = evt.detail) === null || _a === void 0 ? void 0 : _a.value; this.configOptionsChanged.emit(this.fieldConfig); }, value: this.fieldConfig.defaultValue.value, options: this.buildOptions() })
|
|
226
225
|
:
|
|
227
226
|
((_b = this._fieldProperties) === null || _b === void 0 ? void 0 : _b.userInterface) &&
|
|
228
|
-
this.buildField({
|
|
229
|
-
descriptor: this._fieldProperties,
|
|
230
|
-
config: this.fieldConfig
|
|
231
|
-
}))), h("div", { class: "ez-row ez-padding--medium config-options__switch-row" }, h("div", { class: "ez-col ez-col--sd-12 ez-col--tb-4 ez-padding--small" }, h("ez-check", { mode: CheckMode.SWITCH, label: this.getMessage("snkConfigOptions.label.clearDuplicate"), value: this.fieldConfig.cleanOnCopy, onEzChange: (evt) => { this.fieldConfig.cleanOnCopy = evt.detail; this.configOptionsChanged.emit(this.fieldConfig); } })), h("div", { class: "ez-col ez-col--sd-12 ez-col--tb-4 ez-padding--small" }, h("ez-check", { mode: CheckMode.SWITCH, label: this.getMessage("snkConfigOptions.label.requiredField"), enabled: this.getEnabledByProperty("required"), value: this.getValueByProperty("required"), onEzChange: (evt) => { this.fieldConfig.required = evt.detail; this.configOptionsChanged.emit(this.fieldConfig); } })), h("div", { class: "ez-col ez-col--sd-12 ez-col--tb-4 ez-padding--small" }, h("ez-check", { mode: CheckMode.SWITCH, label: this.getMessage("snkConfigOptions.label.protectedField"), enabled: this.getEnabledByProperty("readOnly"), value: this.getValueByProperty("readOnly"), onEzChange: (evt) => { this.fieldConfig.readOnly = evt.detail; this.configOptionsChanged.emit(this.fieldConfig); } }))))));
|
|
227
|
+
this.buildField(this._fieldProperties, this.fieldConfig))), h("div", { class: "ez-row ez-padding--medium config-options__switch-row" }, h("div", { class: "ez-col ez-col--sd-12 ez-col--tb-4 ez-padding--small" }, h("ez-check", { mode: CheckMode.SWITCH, label: this.getMessage("snkConfigOptions.label.clearDuplicate"), value: this.fieldConfig.cleanOnCopy, onEzChange: (evt) => { this.fieldConfig.cleanOnCopy = evt.detail; this.configOptionsChanged.emit(this.fieldConfig); } })), h("div", { class: "ez-col ez-col--sd-12 ez-col--tb-4 ez-padding--small" }, h("ez-check", { mode: CheckMode.SWITCH, label: this.getMessage("snkConfigOptions.label.requiredField"), enabled: this.getEnabledByProperty("required"), value: this.getValueByProperty("required"), onEzChange: (evt) => { this.fieldConfig.required = evt.detail; this.configOptionsChanged.emit(this.fieldConfig); } })), h("div", { class: "ez-col ez-col--sd-12 ez-col--tb-4 ez-padding--small" }, h("ez-check", { mode: CheckMode.SWITCH, label: this.getMessage("snkConfigOptions.label.protectedField"), enabled: this.getEnabledByProperty("readOnly"), value: this.getValueByProperty("readOnly"), onEzChange: (evt) => { this.fieldConfig.readOnly = evt.detail; this.configOptionsChanged.emit(this.fieldConfig); } }))))));
|
|
232
228
|
}
|
|
233
229
|
get _element() { return getElement(this); }
|
|
234
230
|
};
|
|
@@ -4,7 +4,7 @@ import { c as VIEW_MODE, A as ACTION_CONFIG } from './constants-babe1a08.js';
|
|
|
4
4
|
import { A as AuthorizationConfig } from './AuthorizationConfig-dcbd207a.js';
|
|
5
5
|
import { UserInterface } from '@sankhyalabs/core/dist/dataunit/metadata/UnitMetadata';
|
|
6
6
|
import { T as TaskbarProcessor } from './taskbar-processor-c2a99aba.js';
|
|
7
|
-
import { C as ConfigStorage } from './ConfigStorage-
|
|
7
|
+
import { C as ConfigStorage } from './ConfigStorage-4654f57b.js';
|
|
8
8
|
import { s as store } from './index-d89e384f.js';
|
|
9
9
|
import './_commonjsHelpers-9943807e.js';
|
|
10
10
|
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { r as registerInstance, h, H as Host, g as getElement, c as createEvent } from './index-a77b6f35.js';
|
|
2
2
|
import { ObjectUtils, ApplicationContext, ElementIDUtils, DataType, StringUtils, ErrorException, FloatingManager, ArrayUtils } from '@sankhyalabs/core';
|
|
3
3
|
import { ApplicationUtils, CheckMode, DialogType } from '@sankhyalabs/ezui/dist/collection/utils';
|
|
4
|
-
import { D as DataFetcher, C as ConfigStorage } from './ConfigStorage-
|
|
4
|
+
import { D as DataFetcher, C as ConfigStorage } from './ConfigStorage-4654f57b.js';
|
|
5
5
|
import { F as FilterItemType } from './filter-item-type.enum-a79b2fa8.js';
|
|
6
6
|
import { ModalAction, ModalButtonStatus } from '@sankhyalabs/ezui/dist/collection/components/ez-modal-container';
|
|
7
7
|
import { toString } from '@sankhyalabs/core/dist/dataunit/metadata/DataType';
|
|
@@ -8,10 +8,10 @@ const snkDataUnitCss = ".sc-snk-data-unit-h{display:flex;flex-direction:column;h
|
|
|
8
8
|
const SnkDataUnit = class {
|
|
9
9
|
constructor(hostRef) {
|
|
10
10
|
registerInstance(this, hostRef);
|
|
11
|
-
this.dataStateChange = createEvent(this, "dataStateChange",
|
|
12
|
-
this.dataUnitReady = createEvent(this, "dataUnitReady",
|
|
13
|
-
this.insertionMode = createEvent(this, "insertionMode",
|
|
14
|
-
this.cancelEdition = createEvent(this, "cancelEdition",
|
|
11
|
+
this.dataStateChange = createEvent(this, "dataStateChange", 3);
|
|
12
|
+
this.dataUnitReady = createEvent(this, "dataUnitReady", 3);
|
|
13
|
+
this.insertionMode = createEvent(this, "insertionMode", 3);
|
|
14
|
+
this.cancelEdition = createEvent(this, "cancelEdition", 3);
|
|
15
15
|
this._onDataUnitResolve = [];
|
|
16
16
|
/**
|
|
17
17
|
* Determina quantas linhas são retornadas por página.
|
|
@@ -25,12 +25,13 @@ const SnkDataUnit = class {
|
|
|
25
25
|
copyMode: false,
|
|
26
26
|
isDirty: this.dataUnit.isDirty(),
|
|
27
27
|
hasDirtyRecords: this.dataUnit.hasDirtyRecords(),
|
|
28
|
-
selectedRecords: this.dataUnit.getSelectedRecords()
|
|
28
|
+
selectedRecords: this.dataUnit.getSelectedRecords(),
|
|
29
|
+
selectedRecord: this.dataUnit.getSelectedRecord()
|
|
29
30
|
};
|
|
30
|
-
this.dataUnit.records.forEach(
|
|
31
|
-
if (
|
|
31
|
+
this.dataUnit.records.forEach(record => {
|
|
32
|
+
if (record.__record__id__.startsWith('NEW_')) {
|
|
32
33
|
duState.insertionMode = true;
|
|
33
|
-
duState.copyMode || (duState.copyMode =
|
|
34
|
+
duState.copyMode || (duState.copyMode = record['__record__source__id__'] != undefined);
|
|
34
35
|
}
|
|
35
36
|
});
|
|
36
37
|
this.dataState = duState;
|
|
@@ -84,6 +85,7 @@ const SnkDataUnit = class {
|
|
|
84
85
|
}
|
|
85
86
|
}
|
|
86
87
|
observeDataUnit() {
|
|
88
|
+
this.handlerLinkFields();
|
|
87
89
|
this.dataUnitReady.emit(this.dataUnit);
|
|
88
90
|
}
|
|
89
91
|
/**
|
|
@@ -229,11 +231,21 @@ const SnkDataUnit = class {
|
|
|
229
231
|
}
|
|
230
232
|
return OperationMap.CLEAN;
|
|
231
233
|
}
|
|
234
|
+
async getDataUnitParentOrChild() {
|
|
235
|
+
var _a;
|
|
236
|
+
const cacheName = this.dataUnitName ? this.dataUnitName : this.entityName;
|
|
237
|
+
if (this._parentSnkDataUnit) {
|
|
238
|
+
this._parentDataUnit = await ((_a = this._parentSnkDataUnit) === null || _a === void 0 ? void 0 : _a.getDataUnit());
|
|
239
|
+
return await this._application.getDataUnit(this.entityName, undefined, this._parentDataUnit);
|
|
240
|
+
}
|
|
241
|
+
else {
|
|
242
|
+
return await this._application.getDataUnit(this.entityName, cacheName);
|
|
243
|
+
}
|
|
244
|
+
}
|
|
232
245
|
async loadDataUnit() {
|
|
233
246
|
if (!this.dataUnit) {
|
|
234
247
|
if (this._application && this.entityName) {
|
|
235
|
-
|
|
236
|
-
this.dataUnit = await this._application.getDataUnit(this.entityName, cacheName);
|
|
248
|
+
this.dataUnit = await this.getDataUnitParentOrChild();
|
|
237
249
|
this.dataUnit.pageSize = this.pageSize;
|
|
238
250
|
this.dataUnit.unsubscribe(this._dataUnitObserver);
|
|
239
251
|
this.dataUnit.addInterceptor(this);
|
|
@@ -245,12 +257,39 @@ const SnkDataUnit = class {
|
|
|
245
257
|
}
|
|
246
258
|
}
|
|
247
259
|
}
|
|
260
|
+
getParentSnkDataUnit() {
|
|
261
|
+
let currentElement = this.element;
|
|
262
|
+
while (currentElement.parentNode) {
|
|
263
|
+
if (currentElement.parentNode.nodeName === 'SNK-DATA-UNIT') {
|
|
264
|
+
return currentElement.parentNode;
|
|
265
|
+
}
|
|
266
|
+
currentElement = currentElement.parentNode;
|
|
267
|
+
}
|
|
268
|
+
return;
|
|
269
|
+
}
|
|
270
|
+
handlerLinkFields() {
|
|
271
|
+
var _a, _b;
|
|
272
|
+
const metadata = Object.assign({}, this.dataUnit.metadata);
|
|
273
|
+
if (!this._parentDataUnit)
|
|
274
|
+
return;
|
|
275
|
+
const child = this._parentDataUnit.getChildInfo(this.entityName);
|
|
276
|
+
if (!child)
|
|
277
|
+
return;
|
|
278
|
+
const fieldsLink = (_a = child === null || child === void 0 ? void 0 : child.links) === null || _a === void 0 ? void 0 : _a.map(link => link.target);
|
|
279
|
+
(_b = metadata === null || metadata === void 0 ? void 0 : metadata.fields) === null || _b === void 0 ? void 0 : _b.forEach(field => {
|
|
280
|
+
if (fieldsLink === null || fieldsLink === void 0 ? void 0 : fieldsLink.includes(field.name)) {
|
|
281
|
+
field.visible = false;
|
|
282
|
+
}
|
|
283
|
+
});
|
|
284
|
+
this.dataUnit.metadata = metadata;
|
|
285
|
+
}
|
|
248
286
|
//---------------------------------------------
|
|
249
287
|
// Lifecycle web component
|
|
250
288
|
//---------------------------------------------
|
|
251
289
|
componentWillLoad() {
|
|
252
290
|
this._application = ApplicationContext.getContextValue("__SNK__APPLICATION__");
|
|
253
291
|
this._application.getAllAccess().then(access => this._permissions = access);
|
|
292
|
+
this._parentSnkDataUnit = this.getParentSnkDataUnit();
|
|
254
293
|
}
|
|
255
294
|
componentDidLoad() {
|
|
256
295
|
this.loadDataUnit();
|
|
@@ -3,7 +3,7 @@ import { d as draggable_bundle } from './draggable.bundle-41d56f06.js';
|
|
|
3
3
|
import { ObjectUtils, ElementIDUtils, ArrayUtils, ApplicationContext } from '@sankhyalabs/core';
|
|
4
4
|
import { ApplicationUtils, DialogType } from '@sankhyalabs/ezui/dist/collection/utils';
|
|
5
5
|
import { C as CONFIG_EVENTS, T as TAB_NAMES, A as ACTION_CONFIG, D as DEFAULT_TYPE } from './constants-babe1a08.js';
|
|
6
|
-
import { a as UserConfigType, C as ConfigStorage } from './ConfigStorage-
|
|
6
|
+
import { a as UserConfigType, C as ConfigStorage } from './ConfigStorage-4654f57b.js';
|
|
7
7
|
import './_commonjsHelpers-9943807e.js';
|
|
8
8
|
|
|
9
9
|
const snkFormConfigCss = ".sc-snk-form-config-h{--snk-form-config__title--font-pattern:var(--font-pattern, \"Roboto\");--snk-form-config__title--weight--large:var(--text-weight--large, 600);display:flex;flex-direction:column;position:absolute;top:0;left:0;width:100%;height:100%;z-index:var(--more-visible, 2);background-color:var(--background--xlight)}.form-config__title.sc-snk-form-config{display:flex;margin:0;line-height:1.3;font-family:var(--snk-form-config__title--font-pattern);font-weight:var(--snk-form-config__title--weight--large)}.form-config__header-container.sc-snk-form-config{display:flex}.form-config__field-container.sc-snk-form-config{width:32%;padding:6px}.form-config__hide-content.sc-snk-form-config{display:none}ez-icon.sc-snk-form-config .left-icon.sc-snk-form-config{--ez-icon--color:var(--text--disable)}.ez-box__label-counter.sc-snk-form-config{font-weight:var(--text-weight--extra-small);margin-top:-7px}.form-config__btn-options.sc-snk-form-config{--ez-button--min-width:300px;--ez-button--background-color:#FFFFFF}[data-draggable-parent].sc-snk-form-config{position:relative}.form-config__field-config--selected.sc-snk-form-config{position:static}.form-config__field-config--dragged.sc-snk-form-config .draggable-mirror.sc-snk-form-config{z-index:var(--more-visible, 2)}.form-config__config-options.sc-snk-form-config{position:relative;margin-top:-3px;min-width:100%;z-index:1}.form-config__tab-container.sc-snk-form-config,.form-config__fields-available.sc-snk-form-config{position:relative;height:100%;max-height:calc(100vh - 92px)}.form-config__tab-container.sc-snk-form-config .ez-box__container.sc-snk-form-config,.form-config__fields-available.sc-snk-form-config .ez-box__container.sc-snk-form-config{align-content:flex-start;height:100%}.form-config__fields-available.sc-snk-form-config [data-draggable-parent].sc-snk-form-config{align-content:flex-start;overflow-y:auto;height:100%;max-height:calc(100% - 122px)}.form-config__tab-content.sc-snk-form-config{align-content:flex-start;overflow-y:auto;height:auto;max-height:calc(100% - 128px)}[data-draggable-element].sc-snk-form-config{cursor:grab}.form-config__actions-button.sc-snk-form-config{--ez-actions-button__btn-action--min-width:235px}.form-config__add-group.sc-snk-form-config{position:relative;min-height:120px;margin-bottom:10px}.form-config__add-group-container.sc-snk-form-config{position:absolute;display:flex;flex-wrap:wrap;width:100%;box-sizing:border-box;border-radius:var(--border--radius-medium, 12px);background-color:var(--background--medium, #d2dce9);padding:var(--space--small, 6px)}.form-config__add-group-content.sc-snk-form-config{width:100%;display:flex;flex-wrap:wrap;justify-content:center;align-items:center;box-sizing:border-box;border:2px dashed var(--color-strokes, #DCE0E8);border-radius:var(--border--radius-small, 6px)}.form-config__add-group-label.sc-snk-form-config{display:flex;justify-content:center;box-sizing:border-box;padding:var(--space--large, 24px)}.form-config__btn-add-group.sc-snk-form-config{position:relative;padding:var(--space--large, 24px) var(--space--medium, 12px) 0}.form-config__btn-add-group-container.sc-snk-form-config{padding:var(--space--medium, 12px);border-radius:var(--border--radius-medium, 12px);border:2px solid var(--color-strokes, #DCE0E8);background-color:var(--background--body, #fafcff)}.form-config__left-icon--eye-off.sc-snk-form-config{padding-top:var(--space--medium, 8px)}ez-collapsible-box.draggable-mirror.sc-snk-form-config{display:table;background-color:#FFFFFF}ez-collapsible-box.sc-snk-form-config{margin-bottom:10px}@media screen and (min-width: 480px){.form-config__field-config--selected.sc-snk-form-config .ez-flex.form-config__config-options.sc-snk-form-config{min-width:calc(300% + 12px)}.form-config__field-config--selected.sc-snk-form-config:nth-child(3n+2) .ez-flex.form-config__config-options.sc-snk-form-config{transform:translate(calc(100% / 3 * -1))}.form-config__field-config--selected.sc-snk-form-config:nth-child(3n+3) .ez-flex.form-config__config-options.sc-snk-form-config{transform:translate(calc(100% / 3 * -2))}}";
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { r as registerInstance, c as createEvent, h, g as getElement } from './index-a77b6f35.js';
|
|
2
2
|
import { DateUtils, ObjectUtils, ElementIDUtils, ApplicationContext } from '@sankhyalabs/core';
|
|
3
3
|
import { T as TaskbarProcessor } from './taskbar-processor-c2a99aba.js';
|
|
4
|
-
import { C as ConfigStorage } from './ConfigStorage-
|
|
4
|
+
import { C as ConfigStorage } from './ConfigStorage-4654f57b.js';
|
|
5
5
|
import './_commonjsHelpers-9943807e.js';
|
|
6
6
|
|
|
7
7
|
const snkFormCss = ".sc-snk-form-h{display:block}.snk-form.sc-snk-form{position:relative;padding:var(--space--large);padding-top:var(--space--medium)}.snk-form__header.sc-snk-form{position:relative;padding-top:var(--space--medium);padding-bottom:var(--space--medium);margin-bottom:var(--space--medium)}.snk-form__header--fixed.sc-snk-form{position:sticky;top:0;background:var(--background--body);z-index:var(--more-visible, 2);padding-left:var(--space--large);padding-right:var(--space--large);margin-left:calc(var(--space--large) * -1);margin-right:calc(var(--space--large) * -1);width:calc(100% + (var(--space--large) * 2))}.snk-form__form--hidden.sc-snk-form{display:none}";
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{r as i,c as e,h as t,H as l,g as s}from"./p-a77dd79a.js";import{UserInterface as n,ObjectUtils as o,StringUtils as a,ApplicationContext as d,ElementIDUtils as r}from"@sankhyalabs/core";import{DataType as u,getConvertedValue as h}from"@sankhyalabs/core/dist/dataunit/metadata/DataType";import{CheckMode as c}from"@sankhyalabs/ezui/dist/collection/utils";import{V as v,D as p,a as b}from"./p-6673c77c.js";const g=class{constructor(t){i(this,t),this.configOptionsChanged=e(this,"configOptionsChanged",7),this.fieldConfig={}}onConfigDefault(i){null!=i&&(this._defaultType=i,this.fieldConfig.defaultValue={type:this._defaultType},this.configOptionsChanged.emit(this.fieldConfig))}buildOptions(){var i,e,t;let l=null===(t=null===(i=this.dataUnit)||void 0===i?void 0:i.getField(null===(e=this.fieldConfig)||void 0===e?void 0:e.name))||void 0===t?void 0:t.userInterface;return l===n.SEARCH&&(l=n.INTEGERNUMBER),v.UserInterface[l]}enabledValueDefault(){var i,e,t;const l=null===(i=this.dataUnit)||void 0===i?void 0:i.getField(null===(e=this.fieldConfig)||void 0===e?void 0:e.name),s=null===(t=null==l?void 0:l.properties)||void 0===t?void 0:t.allowDefault,o=v.UserInterface.hasOwnProperty(null==l?void 0:l.userInterface)||(null==l?void 0:l.userInterface)===n.SEARCH;return!(null!=s&&"true"!==s||!o)}isAllowDefault(){var i,e;const t=null===(e=null===(i=this._fieldProperties)||void 0===i?void 0:i.properties)||void 0===e?void 0:e.allowDefault;return null==t||"true"===t}loadDefaultValue(){var i;null==this.fieldConfig?(this._defaultType=p.fixed,this.fieldConfig={defaultValue:{type:this._defaultType}}):null==(null===(i=this.fieldConfig.defaultValue)||void 0===i?void 0:i.type)?(this._defaultType=p.fixed,this.fieldConfig.defaultValue={type:this._defaultType}):this._defaultType=this.fieldConfig.defaultValue.type}getFieldProperties(i){var e;if(null!=i)return null===(e=this.dataUnit)||void 0===e?void 0:e.getField(i)}getMessage(i,e){return this._application.messagesBuilder.getMessage(i,e)}getDefaultType(){var i;return null!==(i=this.fieldConfig.defaultValue.type)&&void 0!==i?i:p.fixed}getEnabledByProperty(i){const e=this._fieldProperties;return null==e||!0!==e[i]}getValueByProperty(i){const e=this._fieldProperties;return null!=e&&!0===e[i]||this.fieldConfig[i]}getValidatedValue(i){var e,t;if(null==i)return;const l=null===(e=this.dataUnit)||void 0===e?void 0:e.getField(null===(t=this.fieldConfig)||void 0===t?void 0:t.name),s=null==l?void 0:l.dataType;if(null==s)return;const n=null!=(null==i?void 0:i.waitmessage)?void 0:s!==u.OBJECT&&s!==u.DATE&&"object"==typeof i?i.value:i;return s===u.OBJECT?JSON.stringify(n):n}buildInputDefault({value:i,enabled:e,label:l,name:s,required:a,userInterface:d},r,u){let h,c=0,v=0;const p=null==d||null==b[d]?b.DEFAULT:b[d];if(d===n.OPTIONSELECTOR){const i=null==r?void 0:r.options;if("string"==typeof i){const e=o.stringToObject(i);h=Object.keys(e).map((i=>({value:i,label:e[i]})))}else h=i}else d===n.DECIMALNUMBER&&(c=Number((null==r?void 0:r.precision)||2),v=Number((null==r?void 0:r.prettyPrecision)||c));return t(p,Object.assign({value:i,enabled:e,label:l,"data-field-name":s,key:s,onEzChange:i=>this.onChange(null==i?void 0:i.detail)},this.getConditionalAttributes(d,a,h,c,v,u)))}getConditionalAttributes(i,e,t,l,s,o){switch(i){case n.SEARCH:return{suppressEmptyOption:e,optionLoader:i=>this.onSearch(i)};case n.OPTIONSELECTOR:return{suppressEmptyOption:e,options:t};case n.CHECKBOX:case n.SWITCH:return{mode:o};case n.INTEGERNUMBER:case n.DECIMALNUMBER:return{precision:l,prettyPrecision:s,onEzStartChange:i=>this.onChange(null==i?void 0:i.detail)};case n.DATE:case n.DATETIME:case n.TIME:return{onEzStartChange:i=>this.onChange(null==i?void 0:i.detail)};default:return{}}}onChange(i){this.fieldConfig.defaultValue.value=this.getValidatedValue(i),this.configOptionsChanged.emit(this.fieldConfig)}onSearch(i){if(null!=this._application&&null!=this.fieldConfig)return this._application.executeSearch(i,this.fieldConfig.name,this.dataUnit)}buildField(i){const{
|
|
1
|
+
import{r as i,c as e,h as t,H as l,g as s}from"./p-a77dd79a.js";import{UserInterface as n,ObjectUtils as o,StringUtils as a,ApplicationContext as d,ElementIDUtils as r}from"@sankhyalabs/core";import{DataType as u,getConvertedValue as h}from"@sankhyalabs/core/dist/dataunit/metadata/DataType";import{CheckMode as c}from"@sankhyalabs/ezui/dist/collection/utils";import{V as v,D as p,a as b}from"./p-6673c77c.js";const g=class{constructor(t){i(this,t),this.configOptionsChanged=e(this,"configOptionsChanged",7),this.fieldConfig={}}onConfigDefault(i){null!=i&&(this._defaultType=i,this.fieldConfig.defaultValue={type:this._defaultType},this.configOptionsChanged.emit(this.fieldConfig))}buildOptions(){var i,e,t;let l=null===(t=null===(i=this.dataUnit)||void 0===i?void 0:i.getField(null===(e=this.fieldConfig)||void 0===e?void 0:e.name))||void 0===t?void 0:t.userInterface;return l===n.SEARCH&&(l=n.INTEGERNUMBER),v.UserInterface[l]}enabledValueDefault(){var i,e,t;const l=null===(i=this.dataUnit)||void 0===i?void 0:i.getField(null===(e=this.fieldConfig)||void 0===e?void 0:e.name),s=null===(t=null==l?void 0:l.properties)||void 0===t?void 0:t.allowDefault,o=v.UserInterface.hasOwnProperty(null==l?void 0:l.userInterface)||(null==l?void 0:l.userInterface)===n.SEARCH;return!(null!=s&&"true"!==s||!o)}isAllowDefault(){var i,e;const t=null===(e=null===(i=this._fieldProperties)||void 0===i?void 0:i.properties)||void 0===e?void 0:e.allowDefault;return null==t||"true"===t}loadDefaultValue(){var i;null==this.fieldConfig?(this._defaultType=p.fixed,this.fieldConfig={defaultValue:{type:this._defaultType}}):null==(null===(i=this.fieldConfig.defaultValue)||void 0===i?void 0:i.type)?(this._defaultType=p.fixed,this.fieldConfig.defaultValue={type:this._defaultType}):this._defaultType=this.fieldConfig.defaultValue.type}getFieldProperties(i){var e;if(null!=i)return null===(e=this.dataUnit)||void 0===e?void 0:e.getField(i)}getMessage(i,e){return this._application.messagesBuilder.getMessage(i,e)}getDefaultType(){var i;return null!==(i=this.fieldConfig.defaultValue.type)&&void 0!==i?i:p.fixed}getEnabledByProperty(i){const e=this._fieldProperties;return null==e||!0!==e[i]}getValueByProperty(i){const e=this._fieldProperties;return null!=e&&!0===e[i]||this.fieldConfig[i]}getValidatedValue(i){var e,t;if(null==i)return;const l=null===(e=this.dataUnit)||void 0===e?void 0:e.getField(null===(t=this.fieldConfig)||void 0===t?void 0:t.name),s=null==l?void 0:l.dataType;if(null==s)return;const n=null!=(null==i?void 0:i.waitmessage)?void 0:s!==u.OBJECT&&s!==u.DATE&&"object"==typeof i?i.value:i;return s===u.OBJECT?JSON.stringify(n):n}buildInputDefault({value:i,enabled:e,label:l,name:s,required:a,userInterface:d},r,u){let h,c=0,v=0;const p=null==d||null==b[d]?b.DEFAULT:b[d];if(d===n.OPTIONSELECTOR){const i=null==r?void 0:r.options;if("string"==typeof i){const e=o.stringToObject(i);h=Object.keys(e).map((i=>({value:i,label:e[i]})))}else h=i}else d===n.DECIMALNUMBER&&(c=Number((null==r?void 0:r.precision)||2),v=Number((null==r?void 0:r.prettyPrecision)||c));return t(p,Object.assign({value:i,enabled:e,label:l,"data-field-name":s,key:s,onEzChange:i=>this.onChange(null==i?void 0:i.detail)},this.getConditionalAttributes(d,a,h,c,v,u)))}getConditionalAttributes(i,e,t,l,s,o){switch(i){case n.SEARCH:return{suppressEmptyOption:e,optionLoader:i=>this.onSearch(i)};case n.OPTIONSELECTOR:return{suppressEmptyOption:e,options:t};case n.CHECKBOX:case n.SWITCH:return{mode:o};case n.INTEGERNUMBER:case n.DECIMALNUMBER:return{precision:l,prettyPrecision:s,onEzStartChange:i=>this.onChange(null==i?void 0:i.detail)};case n.DATE:case n.DATETIME:case n.TIME:return{onEzStartChange:i=>this.onChange(null==i?void 0:i.detail)};default:return{}}}onChange(i){this.fieldConfig.defaultValue.value=this.getValidatedValue(i),this.configOptionsChanged.emit(this.fieldConfig)}onSearch(i){if(null!=this._application&&null!=this.fieldConfig)return this._application.executeSearch(i,this.fieldConfig.name,this.dataUnit)}buildField(i,e){const{name:t,label:l,readOnly:s,required:o,defaultValue:d}=e,{userInterface:r,properties:u}=i;let v,p=a.getBooleanValue(null==u?void 0:u.allowDefault,!s);r===n.FILE&&(p=!1),p&&(v=null==d?void 0:d.value,null!=v&&(v=h(null==i?void 0:i.dataType,v)));const b={value:v,enabled:p,label:l,name:t,required:o,userInterface:r};switch(r){case n.SWITCH:return this.buildInputDefault(b,void 0,c.SWITCH);case n.CHECKBOX:return this.buildInputDefault(b,void 0,c.REGULAR);case n.OPTIONSELECTOR:case n.DECIMALNUMBER:return this.buildInputDefault(b,u);default:return this.buildInputDefault(b)}}componentWillLoad(){var i;this.loadDefaultValue(),this._application=d.getContextValue("__SNK__APPLICATION__"),this._fieldProperties=this.getFieldProperties(null===(i=this.fieldConfig)||void 0===i?void 0:i.name)}componentDidLoad(){r.addIDInfo(this._element,this.fieldConfig.name)}render(){var i,e;return t(l,null,t("div",{id:this.idConfig},t("div",{class:"ez-row ez-padding--medium"},t("div",{class:"ez-col ez-col--sd-12 ez-col--tb-4 ez-padding--small"},t("ez-text-input",{label:this.getMessage("snkConfigOptions.label.nameField"),value:null===(i=this.fieldConfig)||void 0===i?void 0:i.label,onEzChange:i=>{this.fieldConfig.label=i.detail,this.configOptionsChanged.emit(this.fieldConfig)}})),t("div",{class:"ez-col ez-col--sd-12 ez-col--tb-4 ez-padding--small"},t("ez-combo-box",{label:this.getMessage("snkConfigOptions.label.typeValueDefault"),suppressEmptyOption:!0,enabled:this.enabledValueDefault(),onEzChange:i=>{var e;return this.onConfigDefault(null===(e=i.detail)||void 0===e?void 0:e.value)},value:this.getDefaultType()},t("option",{value:p.fixed},this.getMessage("snkConfigOptions.options.valueFixed")),t("option",{value:p.variable},this.getMessage("snkConfigOptions.options.variable")))),t("div",{class:"ez-col ez-col--sd-12 ez-col--tb-4 ez-padding--small"},this._defaultType===p.variable?t("ez-combo-box",{label:this.getMessage("snkConfigOptions.label.valueDefault"),enabled:this.isAllowDefault(),onEzChange:i=>{var e;this.fieldConfig.defaultValue.value=null===(e=i.detail)||void 0===e?void 0:e.value,this.configOptionsChanged.emit(this.fieldConfig)},value:this.fieldConfig.defaultValue.value,options:this.buildOptions()}):(null===(e=this._fieldProperties)||void 0===e?void 0:e.userInterface)&&this.buildField(this._fieldProperties,this.fieldConfig))),t("div",{class:"ez-row ez-padding--medium config-options__switch-row"},t("div",{class:"ez-col ez-col--sd-12 ez-col--tb-4 ez-padding--small"},t("ez-check",{mode:c.SWITCH,label:this.getMessage("snkConfigOptions.label.clearDuplicate"),value:this.fieldConfig.cleanOnCopy,onEzChange:i=>{this.fieldConfig.cleanOnCopy=i.detail,this.configOptionsChanged.emit(this.fieldConfig)}})),t("div",{class:"ez-col ez-col--sd-12 ez-col--tb-4 ez-padding--small"},t("ez-check",{mode:c.SWITCH,label:this.getMessage("snkConfigOptions.label.requiredField"),enabled:this.getEnabledByProperty("required"),value:this.getValueByProperty("required"),onEzChange:i=>{this.fieldConfig.required=i.detail,this.configOptionsChanged.emit(this.fieldConfig)}})),t("div",{class:"ez-col ez-col--sd-12 ez-col--tb-4 ez-padding--small"},t("ez-check",{mode:c.SWITCH,label:this.getMessage("snkConfigOptions.label.protectedField"),enabled:this.getEnabledByProperty("readOnly"),value:this.getValueByProperty("readOnly"),onEzChange:i=>{this.fieldConfig.readOnly=i.detail,this.configOptionsChanged.emit(this.fieldConfig)}})))))}get _element(){return s(this)}};g.style=".sc-snk-config-options-h{width:100%;border:2px solid var(--color--secondary-200);border-radius:15px}.config-options__switch-row.sc-snk-config-options{margin-top:-30px}";export{g as snk_config_options}
|