@sankhyalabs/sankhyablocks 8.16.0-dev.39 → 8.16.0-dev.40

Sign up to get free protection for your applications and to get access to all the features.
Files changed (63) hide show
  1. package/dist/cjs/index-f9e81701.js +8 -28
  2. package/dist/cjs/loader.cjs.js +1 -1
  3. package/dist/cjs/sankhyablocks.cjs.js +1 -1
  4. package/dist/cjs/{snk-form-config.cjs.entry.js → snk-config-options_3.cjs.entry.js} +363 -1
  5. package/dist/cjs/{snk-filter-bar.cjs.entry.js → snk-filter-bar_4.cjs.entry.js} +685 -0
  6. package/dist/cjs/snk-simple-crud.cjs.entry.js +3 -1
  7. package/dist/collection/collection-manifest.json +11 -31
  8. package/dist/collection/components/snk-simple-crud/snk-simple-crud.js +3 -1
  9. package/dist/collection/sw.js +46 -0
  10. package/dist/components/snk-simple-crud2.js +3 -1
  11. package/dist/esm/{SnkFormConfigManager-139f09fa.js → SnkFormConfigManager-f1a0fc92.js} +1 -1
  12. package/dist/esm/{constants-8457af36.js → constants-7302ee87.js} +1 -1
  13. package/dist/esm/index-a7d3d3f1.js +8 -28
  14. package/dist/esm/loader.js +1 -1
  15. package/dist/esm/sankhyablocks.js +1 -1
  16. package/dist/esm/snk-actions-button_4.entry.js +1 -1
  17. package/dist/esm/snk-attach.entry.js +1 -1
  18. package/dist/esm/{snk-form-config.entry.js → snk-config-options_3.entry.js} +364 -4
  19. package/dist/esm/snk-configurator.entry.js +1 -1
  20. package/dist/esm/snk-crud.entry.js +1 -1
  21. package/dist/esm/snk-data-exporter.entry.js +1 -1
  22. package/dist/esm/snk-detail-view.entry.js +3 -3
  23. package/dist/esm/snk-field-config.entry.js +1 -1
  24. package/dist/esm/{snk-filter-bar.entry.js → snk-filter-bar_4.entry.js} +684 -2
  25. package/dist/esm/{snk-guides-viewer-c1ef991c.js → snk-guides-viewer-2f4dcdc5.js} +2 -2
  26. package/dist/esm/snk-guides-viewer.entry.js +3 -3
  27. package/dist/esm/snk-simple-crud.entry.js +5 -3
  28. package/dist/esm/snk-tab-config.entry.js +1 -1
  29. package/dist/sankhyablocks/p-052213ba.entry.js +1 -0
  30. package/dist/sankhyablocks/{p-11a0a7ac.entry.js → p-0b6cd238.entry.js} +1 -1
  31. package/dist/sankhyablocks/p-0e320bd2.entry.js +1 -0
  32. package/dist/sankhyablocks/{p-281bc322.entry.js → p-275de842.entry.js} +1 -1
  33. package/dist/sankhyablocks/{p-8eb67fa4.entry.js → p-2d3f9482.entry.js} +1 -1
  34. package/dist/sankhyablocks/{p-7663f597.entry.js → p-41793e17.entry.js} +1 -1
  35. package/dist/sankhyablocks/{p-1b6d51bf.entry.js → p-5e51e833.entry.js} +1 -1
  36. package/dist/sankhyablocks/{p-d3341910.entry.js → p-72c10005.entry.js} +1 -1
  37. package/dist/sankhyablocks/{p-11cc69fc.js → p-7bd9683d.js} +1 -1
  38. package/dist/sankhyablocks/{p-95df461f.entry.js → p-8b4fc28f.entry.js} +1 -1
  39. package/dist/sankhyablocks/{p-b0ef4383.js → p-95ce311a.js} +1 -1
  40. package/dist/sankhyablocks/{p-5ea74956.entry.js → p-ab1645fb.entry.js} +1 -1
  41. package/dist/sankhyablocks/{p-47f79aa0.entry.js → p-cefb0ee1.entry.js} +1 -1
  42. package/dist/sankhyablocks/p-fa6c5826.entry.js +1 -0
  43. package/dist/sankhyablocks/{p-afbb070d.js → p-fadc8339.js} +1 -1
  44. package/dist/sankhyablocks/sankhyablocks.esm.js +1 -1
  45. package/package.json +3 -2
  46. package/dist/cjs/snk-config-options.cjs.entry.js +0 -239
  47. package/dist/cjs/snk-filter-item.cjs.entry.js +0 -312
  48. package/dist/cjs/snk-filter-list.cjs.entry.js +0 -152
  49. package/dist/cjs/snk-filter-modal.cjs.entry.js +0 -249
  50. package/dist/cjs/snk-form.cjs.entry.js +0 -144
  51. package/dist/esm/snk-config-options.entry.js +0 -235
  52. package/dist/esm/snk-filter-item.entry.js +0 -308
  53. package/dist/esm/snk-filter-list.entry.js +0 -148
  54. package/dist/esm/snk-filter-modal.entry.js +0 -245
  55. package/dist/esm/snk-form.entry.js +0 -140
  56. package/dist/sankhyablocks/p-06898e5a.entry.js +0 -1
  57. package/dist/sankhyablocks/p-3b60db06.entry.js +0 -1
  58. package/dist/sankhyablocks/p-60b29483.entry.js +0 -1
  59. package/dist/sankhyablocks/p-70a4af56.entry.js +0 -1
  60. package/dist/sankhyablocks/p-b9679243.entry.js +0 -1
  61. package/dist/sankhyablocks/p-d3f53df2.entry.js +0 -1
  62. package/dist/sankhyablocks/p-e8763234.entry.js +0 -1
  63. package/dist/sankhyablocks/p-feba9d4b.entry.js +0 -1
@@ -1,14 +1,374 @@
1
1
  import { r as registerInstance, c as createEvent, h, H as Host, g as getElement } from './index-a7d3d3f1.js';
2
+ import { UserInterface, ObjectUtils, StringUtils, ApplicationContext, ElementIDUtils, ArrayUtils } from '@sankhyalabs/core';
3
+ import { DataType, getConvertedValue } from '@sankhyalabs/core/dist/dataunit/metadata/DataType';
4
+ import { CheckMode, ApplicationUtils, DialogType } from '@sankhyalabs/ezui/dist/collection/utils';
5
+ import { c as VARS_BY_TYPE, D as DEFAULT_TYPE, d as TAGS_BY_TYPE, C as CONFIG_EVENTS, a as CONFIG_SORTABLE_EVENTS, b as TAB_NAMES, A as ACTION_CONFIG } from './constants-7302ee87.js';
6
+ import { S as SnkFormConfigManager } from './SnkFormConfigManager-f1a0fc92.js';
7
+ import { R as ResourceIDUtils } from './ResourceIDUtils-a114189a.js';
2
8
  import { S as Sortable } from './Sortable-83960219.js';
3
- import { ObjectUtils, ElementIDUtils, ArrayUtils, ApplicationContext } from '@sankhyalabs/core';
4
- import { ApplicationUtils, DialogType } from '@sankhyalabs/ezui/dist/collection/utils';
5
- import { C as CONFIG_EVENTS, a as CONFIG_SORTABLE_EVENTS, T as TAB_NAMES, A as ACTION_CONFIG, D as DEFAULT_TYPE } from './constants-8457af36.js';
6
9
  import { U as UserConfigType } from './form-config-fetcher-adbe5d34.js';
7
10
  import { buildFormConfigFromDataUnit } from '@sankhyalabs/ezui/dist/collection/utils/form';
11
+ import './ConfigStorage-7b36d041.js';
12
+ import './filter-item-type.enum-d45e026f.js';
8
13
  import './DataFetcher-a9c598f2.js';
9
14
  import './PrintUtils-3e4ff0f5.js';
10
15
  import '@sankhyalabs/core/dist/dataunit/metadata/UnitMetadata';
11
16
 
17
+ const snkConfigOptionsCss = ".sc-snk-config-options-h{--snk-config-options--border:2px solid var(--color--secondary-200, #D2D3DA);width:100%;border-radius:15px;border:var(--snk-config-options--border)}.config-options__switch-row.sc-snk-config-options{margin-top:-30px}";
18
+
19
+ const SnkConfigOptions = class {
20
+ constructor(hostRef) {
21
+ registerInstance(this, hostRef);
22
+ this.configOptionsChanged = createEvent(this, "configOptionsChanged", 7);
23
+ this._defaultType = undefined;
24
+ this.fieldConfig = {};
25
+ this.idConfig = undefined;
26
+ this.dataUnit = undefined;
27
+ this.messagesBuilder = undefined;
28
+ }
29
+ onConfigDefault(optionSelected) {
30
+ if (optionSelected != undefined) {
31
+ this._defaultType = optionSelected;
32
+ this.fieldConfig.defaultValue = {
33
+ type: this._defaultType
34
+ };
35
+ this.configOptionsChanged.emit(this.fieldConfig);
36
+ }
37
+ }
38
+ buildOptions() {
39
+ var _a, _b, _c;
40
+ let interfaceField = (_c = (_a = this.dataUnit) === null || _a === void 0 ? void 0 : _a.getField((_b = this.fieldConfig) === null || _b === void 0 ? void 0 : _b.name)) === null || _c === void 0 ? void 0 : _c.userInterface;
41
+ if (interfaceField === UserInterface.SEARCH) {
42
+ interfaceField = UserInterface.INTEGERNUMBER;
43
+ }
44
+ return VARS_BY_TYPE.UserInterface[interfaceField];
45
+ }
46
+ enabledValueDefault() {
47
+ var _a, _b, _c;
48
+ const field = (_a = this.dataUnit) === null || _a === void 0 ? void 0 : _a.getField((_b = this.fieldConfig) === null || _b === void 0 ? void 0 : _b.name);
49
+ const allowDefault = (_c = field === null || field === void 0 ? void 0 : field.properties) === null || _c === void 0 ? void 0 : _c.allowDefault;
50
+ const hasVariableVar = VARS_BY_TYPE.UserInterface.hasOwnProperty(field === null || field === void 0 ? void 0 : field.userInterface)
51
+ || (field === null || field === void 0 ? void 0 : field.userInterface) === UserInterface.SEARCH;
52
+ if ((allowDefault == undefined || allowDefault === "true") && hasVariableVar) {
53
+ return true;
54
+ }
55
+ return false;
56
+ }
57
+ isAllowDefault() {
58
+ var _a, _b;
59
+ const allowDefault = (_b = (_a = this._fieldProperties) === null || _a === void 0 ? void 0 : _a.properties) === null || _b === void 0 ? void 0 : _b.allowDefault;
60
+ if (allowDefault == undefined) {
61
+ return true;
62
+ }
63
+ return allowDefault === "true";
64
+ }
65
+ loadDefaultValue() {
66
+ var _a;
67
+ if (this.fieldConfig == undefined) {
68
+ this._defaultType = DEFAULT_TYPE.fixed;
69
+ this.fieldConfig = {
70
+ defaultValue: {
71
+ type: this._defaultType
72
+ }
73
+ };
74
+ }
75
+ else if (((_a = this.fieldConfig.defaultValue) === null || _a === void 0 ? void 0 : _a.type) == undefined) {
76
+ this._defaultType = DEFAULT_TYPE.fixed;
77
+ this.fieldConfig.defaultValue = {
78
+ type: this._defaultType
79
+ };
80
+ }
81
+ else {
82
+ this._defaultType = this.fieldConfig.defaultValue.type;
83
+ }
84
+ }
85
+ getFieldProperties(field) {
86
+ var _a;
87
+ if (field != undefined) {
88
+ return (_a = this.dataUnit) === null || _a === void 0 ? void 0 : _a.getField(field);
89
+ }
90
+ }
91
+ getMessage(key, params) {
92
+ return this.messagesBuilder.getMessage(key, params);
93
+ }
94
+ getDefaultType() {
95
+ var _a;
96
+ return (_a = this.fieldConfig.defaultValue.type) !== null && _a !== void 0 ? _a : DEFAULT_TYPE.fixed;
97
+ }
98
+ getEnabledByProperty(attribName, propertyName) {
99
+ const fieldDescriptor = this._fieldProperties;
100
+ if (fieldDescriptor == undefined) {
101
+ return true;
102
+ }
103
+ const fieldProperties = fieldDescriptor.properties || {};
104
+ return fieldProperties.hasOwnProperty(propertyName) ? fieldProperties[propertyName] !== "S" : fieldDescriptor[attribName] !== true;
105
+ }
106
+ getValueByProperty(property) {
107
+ const properties = this._fieldProperties;
108
+ if (properties != undefined && properties[property] === true) {
109
+ return true;
110
+ }
111
+ return this.fieldConfig[property];
112
+ }
113
+ getValidatedValue(fieldValue) {
114
+ var _a, _b;
115
+ if (fieldValue == undefined) {
116
+ return;
117
+ }
118
+ const field = (_a = this.dataUnit) === null || _a === void 0 ? void 0 : _a.getField((_b = this.fieldConfig) === null || _b === void 0 ? void 0 : _b.name);
119
+ const dataType = field === null || field === void 0 ? void 0 : field.dataType;
120
+ if (dataType == undefined) {
121
+ return;
122
+ }
123
+ const value = (fieldValue === null || fieldValue === void 0 ? void 0 : fieldValue.waitmessage) != undefined ? undefined :
124
+ dataType !== DataType.OBJECT && dataType !== DataType.DATE
125
+ && typeof fieldValue === "object"
126
+ ? fieldValue.value
127
+ : fieldValue;
128
+ return dataType === DataType.OBJECT ? JSON.stringify(value) : value;
129
+ }
130
+ buildInputDefault({ value, enabled, label, name, required, userInterface }, properties = undefined, mode = undefined) {
131
+ let options;
132
+ let precision = 0;
133
+ let prettyPrecision = 0;
134
+ const TagName = userInterface == undefined || TAGS_BY_TYPE[userInterface] == undefined
135
+ ? TAGS_BY_TYPE.DEFAULT
136
+ : TAGS_BY_TYPE[userInterface];
137
+ if (userInterface === UserInterface.OPTIONSELECTOR) {
138
+ const prop = properties === null || properties === void 0 ? void 0 : properties.options;
139
+ if (typeof prop === "string") {
140
+ const parsed = ObjectUtils.stringToObject(prop);
141
+ options = Object.keys(parsed).map(key => { return { value: key, label: parsed[key] }; });
142
+ }
143
+ else {
144
+ options = prop;
145
+ }
146
+ }
147
+ else if (userInterface === UserInterface.DECIMALNUMBER) {
148
+ precision = Number((properties === null || properties === void 0 ? void 0 : properties.precision) || 2);
149
+ prettyPrecision = Number((properties === null || properties === void 0 ? void 0 : properties.prettyPrecision) || precision);
150
+ }
151
+ return h(TagName, Object.assign({ value: value, enabled: enabled, label: label, "data-field-name": name, key: name, onEzChange: (evt) => this.onChange(evt === null || evt === void 0 ? void 0 : evt.detail) }, (this.getConditionalAttributes(userInterface, required, options, precision, prettyPrecision, mode))));
152
+ }
153
+ getConditionalAttributes(userInterface, required, options, precision, prettyPrecision, mode) {
154
+ switch (userInterface) {
155
+ case UserInterface.SEARCH:
156
+ return {
157
+ suppressEmptyOption: required,
158
+ optionLoader: (searchArgument) => this.onSearch(searchArgument)
159
+ };
160
+ case UserInterface.OPTIONSELECTOR:
161
+ return {
162
+ suppressEmptyOption: required,
163
+ options
164
+ };
165
+ case UserInterface.CHECKBOX:
166
+ case UserInterface.SWITCH:
167
+ return {
168
+ mode
169
+ };
170
+ case UserInterface.INTEGERNUMBER:
171
+ case UserInterface.DECIMALNUMBER:
172
+ return {
173
+ precision,
174
+ prettyPrecision,
175
+ onEzStartChange: (evt) => this.onChange(evt === null || evt === void 0 ? void 0 : evt.detail)
176
+ };
177
+ case UserInterface.DATE:
178
+ case UserInterface.DATETIME:
179
+ case UserInterface.TIME:
180
+ return {
181
+ onEzStartChange: (evt) => this.onChange(evt === null || evt === void 0 ? void 0 : evt.detail)
182
+ };
183
+ default:
184
+ return {};
185
+ }
186
+ }
187
+ onChange(fieldValue) {
188
+ this.fieldConfig.defaultValue.value = this.getValidatedValue(fieldValue);
189
+ this.configOptionsChanged.emit(this.fieldConfig);
190
+ }
191
+ onSearch(searchArgument) {
192
+ if (this._application != undefined && this.fieldConfig != undefined) {
193
+ return this._application.executeSearch(searchArgument, this.fieldConfig.name, this.dataUnit);
194
+ }
195
+ }
196
+ buildField(descriptor, config) {
197
+ const { name, label, readOnly, required, defaultValue } = config;
198
+ const { userInterface, properties } = descriptor;
199
+ const allowDefault = properties === null || properties === void 0 ? void 0 : properties.allowDefault;
200
+ let value;
201
+ let enabled = StringUtils.getBooleanValue(allowDefault, !readOnly);
202
+ if (userInterface === UserInterface.FILE) {
203
+ enabled = false;
204
+ }
205
+ if (enabled) {
206
+ value = defaultValue === null || defaultValue === void 0 ? void 0 : defaultValue.value;
207
+ if (value != undefined) {
208
+ value = getConvertedValue(descriptor === null || descriptor === void 0 ? void 0 : descriptor.dataType, value);
209
+ }
210
+ }
211
+ const configField = { value, enabled, label, name, required, userInterface };
212
+ switch (userInterface) {
213
+ case UserInterface.SWITCH:
214
+ return this.buildInputDefault(configField, undefined, CheckMode.SWITCH);
215
+ case UserInterface.CHECKBOX:
216
+ return this.buildInputDefault(configField, undefined, CheckMode.REGULAR);
217
+ case UserInterface.OPTIONSELECTOR:
218
+ case UserInterface.DECIMALNUMBER:
219
+ return this.buildInputDefault(configField, properties);
220
+ default:
221
+ return this.buildInputDefault(configField);
222
+ }
223
+ }
224
+ componentWillLoad() {
225
+ var _a;
226
+ this.loadDefaultValue();
227
+ this._application = ApplicationContext.getContextValue("__SNK__APPLICATION__");
228
+ this._fieldProperties = this.getFieldProperties((_a = this.fieldConfig) === null || _a === void 0 ? void 0 : _a.name);
229
+ }
230
+ componentDidLoad() {
231
+ ElementIDUtils.addIDInfo(this._element, this.fieldConfig.name);
232
+ }
233
+ render() {
234
+ var _a, _b;
235
+ return (h(Host, null, h("div", { id: this.idConfig }, h("div", { class: "ez-row ez-padding--medium" }, h("div", { class: "ez-col ez-col--sd-12 ez-col--tb-4 ez-padding--small" }, h("ez-text-input", { label: this.getMessage("snkConfigOptions.label.nameField"), value: (_a = this.fieldConfig) === null || _a === void 0 ? void 0 : _a.label, onEzChange: (evt) => { this.fieldConfig.label = 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-combo-box", { label: this.getMessage("snkConfigOptions.label.typeValueDefault"), suppressEmptyOption: true, enabled: this.enabledValueDefault(), onEzChange: (evt) => { var _a; return this.onConfigDefault((_a = evt.detail) === null || _a === void 0 ? void 0 : _a.value); }, value: this.getDefaultType() }, h("option", { value: DEFAULT_TYPE.fixed }, this.getMessage("snkConfigOptions.options.valueFixed")), h("option", { value: DEFAULT_TYPE.variable }, this.getMessage("snkConfigOptions.options.variable")))), h("div", { class: "ez-col ez-col--sd-12 ez-col--tb-4 ez-padding--small" }, this._defaultType === DEFAULT_TYPE.variable ?
236
+ 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() })
237
+ :
238
+ ((_b = this._fieldProperties) === null || _b === void 0 ? void 0 : _b.userInterface) &&
239
+ 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", "systemRequired"), 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", "systemReadOnly"), value: this.getValueByProperty("readOnly"), onEzChange: (evt) => { this.fieldConfig.readOnly = evt.detail; this.configOptionsChanged.emit(this.fieldConfig); } }))))));
240
+ }
241
+ get _element() { return getElement(this); }
242
+ };
243
+ SnkConfigOptions.style = snkConfigOptionsCss;
244
+
245
+ const snkFormCss = ".sc-snk-form-h{--snk-form__header--min-height:94px;display:block}.snk-form__form--hidden.sc-snk-form{display:none}";
246
+
247
+ const SnkForm = class {
248
+ constructor(hostRef) {
249
+ registerInstance(this, hostRef);
250
+ this.exit = createEvent(this, "exit", 7);
251
+ this.actionClick = createEvent(this, "actionClick", 7);
252
+ this.formItemsReady = createEvent(this, "formItemsReady", 7);
253
+ this._customEditors = new Map();
254
+ this._dataUnit = undefined;
255
+ this._dataState = undefined;
256
+ this._showFormConfig = false;
257
+ this._configManager = undefined;
258
+ this.configName = undefined;
259
+ this.recordsValidator = undefined;
260
+ this.messagesBuilder = undefined;
261
+ this.formLegacyConfigName = undefined;
262
+ this.resourceID = undefined;
263
+ }
264
+ /**
265
+ * Exibe a janela de configurações do formulário.
266
+ */
267
+ async showConfig() {
268
+ this._showFormConfig = true;
269
+ }
270
+ /**
271
+ * Fecha a janela de configurações do formulário.
272
+ */
273
+ async hideConfig() {
274
+ this._showFormConfig = false;
275
+ }
276
+ /**
277
+ * Registra um editor customizado para campos da grade e formulário.
278
+ */
279
+ async addCustomEditor(fieldName, customEditor) {
280
+ if (this._form) {
281
+ this._form.addCustomEditor(fieldName, customEditor);
282
+ return;
283
+ }
284
+ const newCustomEditors = new Map(this._customEditors);
285
+ newCustomEditors.set(fieldName, customEditor);
286
+ this._customEditors = newCustomEditors;
287
+ }
288
+ /**
289
+ * Altera/adiciona uma propriedade nos metadados do campo.
290
+ */
291
+ async setFieldProp(fieldName, propName, value) {
292
+ await this._form.setFieldProp(fieldName, propName, value);
293
+ }
294
+ closeConfig() {
295
+ this.hideConfig();
296
+ }
297
+ dataunitReady() {
298
+ const dataInfo = { dataUnit: this._dataUnit };
299
+ ElementIDUtils.addIDInfo(this._element, null, dataInfo);
300
+ }
301
+ setCustomEditors() {
302
+ if (!this._form) {
303
+ return;
304
+ }
305
+ for (const [fieldName, customEditor] of this._customEditors) {
306
+ this._form.addCustomEditor(fieldName, customEditor);
307
+ this._customEditors.delete(fieldName);
308
+ }
309
+ }
310
+ async componentDidRender() {
311
+ this.setCustomEditors();
312
+ }
313
+ async componentWillLoad() {
314
+ let parent = this._element.parentElement;
315
+ while (parent) {
316
+ if (parent.tagName.toUpperCase() === "SNK-DATA-UNIT") {
317
+ this._snkDataUnit = parent;
318
+ this._dataUnit = this._snkDataUnit.dataUnit;
319
+ this._dataState = this._snkDataUnit.dataState;
320
+ if (this._dataUnit) {
321
+ this.dataunitReady();
322
+ }
323
+ else {
324
+ this._snkDataUnit.addEventListener("dataUnitReady", (evt) => {
325
+ this._dataUnit = evt.detail;
326
+ });
327
+ }
328
+ this._snkDataUnit.addEventListener("dataStateChange", this.handleDataStateChange.bind(this));
329
+ break;
330
+ }
331
+ parent = parent.parentElement;
332
+ }
333
+ if (this.resourceID == undefined) {
334
+ this.resourceID = await ResourceIDUtils.getResourceID();
335
+ }
336
+ this._configManager = new SnkFormConfigManager(this.configName, this.resourceID, undefined, this._dataUnit);
337
+ this.addFormLegacyConfig();
338
+ await this._configManager.loadConfig();
339
+ }
340
+ async handleDataStateChange(evt) {
341
+ var _a;
342
+ this._dataState = evt.detail;
343
+ const fieldsWithRmPrecision = await this._snkDataUnit.getFieldsWithRmPrecision();
344
+ for (const field of fieldsWithRmPrecision || []) {
345
+ if (!field) {
346
+ continue;
347
+ }
348
+ const rmPrecision = (_a = this._dataState.rowMetadata) === null || _a === void 0 ? void 0 : _a.getProp('rm_precision', field);
349
+ if (!rmPrecision && rmPrecision !== 0) {
350
+ continue;
351
+ }
352
+ await this.setFieldProp(field, 'precision', rmPrecision);
353
+ await this.setFieldProp(field, 'prettyPrecision', rmPrecision);
354
+ }
355
+ }
356
+ addFormLegacyConfig() {
357
+ if (this.formLegacyConfigName) {
358
+ this._configManager.addFormLegacyConfig(this.formLegacyConfigName);
359
+ }
360
+ }
361
+ render() {
362
+ if (!this._dataUnit || !this._dataState) {
363
+ return undefined;
364
+ }
365
+ return (h("section", null, h("div", { class: "ez-row" }, h("div", { class: "ez-col ez-col--sd-12" }, h("ez-form", { ref: (ref) => this._form = ref, key: "ezForm" + this._snkDataUnit.entityName, "data-element-id": "embedded", dataUnit: this._dataUnit, config: this._configManager.getConfig(this._dataUnit), recordsValidator: this.recordsValidator, class: this._showFormConfig ? 'snk-form__form--hidden' : '' }), this._showFormConfig &&
366
+ h("snk-form-config", { messagesBuilder: this.messagesBuilder, dataUnit: this._dataUnit, configManager: this._configManager, onConfigClose: () => this.closeConfig() })))));
367
+ }
368
+ get _element() { return getElement(this); }
369
+ };
370
+ SnkForm.style = snkFormCss;
371
+
12
372
  const snkFormConfigCss = ".sc-snk-form-config-h{--snk-form-config--z-index:var(--more-visible, 2);--snk-form-config--background-color:var(--background--xlight, #fff);--snk-form-config__icon--color:var(--text--disable, #AFB6C0);--snk-form-config__label-counter--font-weight:var(--text-weight--extra-small, 200);--snk-form-config__add-group-container--border-radius:var(--border--radius-medium, 12px);--snk-form-config__add-group-container--background-color:var(--background--medium, #d2dce9);--snk-form-config__add-group-container--padding:var(--space--small, 6px);--snk-form-config__add-group-content--border:2px dashed var(--color-strokes, #DCE0E8);--snk-form-config__add-group-content--border-radius:var(--border--radius-small, 6px);--snk-form-config__add-group-label--padding:var(--space--large, 24px);--snk-form-config__btn-add-group--padding:var(--space--large, 24px) var(--space--medium, 12px) 0;--snk-form-config__btn-add-group-container--padding:var(--space--medium, 12px);--snk-form-config__btn-add-group-container--border-radius:var(--border--radius-medium, 12px);--snk-form-config__btn-add-group-container--border:2px solid var(--color-strokes, #DCE0E8);--snk-form-config__btn-add-group-container--background-color:var(--background--body, #fafcff);display:flex;flex-direction:column;position:fixed;top:0;left:0;width:100%;height:100%;z-index:var(--snk-form-config--z-index);background-color:var(--snk-form-config--background-color)}div.sc-snk-form-config:focus-visible,div.sc-snk-form-config:focus{outline:none}.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(--snk-form-config__icon--color)}.ez-box__label-counter.sc-snk-form-config{margin-top:-7px;font-weight:var(--snk-form-config__label-counter--font-weight)}.form-config__btn-options.sc-snk-form-config{--ez-button--min-width:300px;--ez-button--background-color:var(--snk-form-config--background-color)}[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(--snk-form-config--z-index)}.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(--snk-form-config__add-group-container--border-radius);background-color:var(--snk-form-config__add-group-container--background-color);padding:var(--snk-form-config__add-group-container--padding)}.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:var(--snk-form-config__add-group-content--border);border-radius:var(--snk-form-config__add-group-content--border-radius)}.form-config__add-group-label.sc-snk-form-config{display:flex;justify-content:center;box-sizing:border-box;padding:var(--snk-form-config__add-group-label--padding)}.form-config__btn-add-group.sc-snk-form-config{position:relative;padding:var(--snk-form-config__btn-add-group--padding)}.form-config__btn-add-group-container.sc-snk-form-config{padding:var(--snk-form-config__btn-add-group-container--padding);border-radius:var(--snk-form-config__btn-add-group-container--border-radius);border:var(--snk-form-config__btn-add-group-container--border);background-color:var(--snk-form-config__btn-add-group-container--background-color)}ez-collapsible-box.draggable-mirror.sc-snk-form-config{display:table;background-color:var(--snk-form-config--background-color)}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{left:calc(100% / 1 * -1)}.form-config__field-config--selected.sc-snk-form-config:nth-child(3n+3) .ez-flex.form-config__config-options.sc-snk-form-config{left:calc(100% / 1 * -2)}}";
13
373
 
14
374
  const CONTAINER_ID = {
@@ -1007,4 +1367,4 @@ const SnkFormConfig = class {
1007
1367
  };
1008
1368
  SnkFormConfig.style = snkFormConfigCss;
1009
1369
 
1010
- export { SnkFormConfig as snk_form_config };
1370
+ export { SnkConfigOptions as snk_config_options, SnkForm as snk_form, SnkFormConfig as snk_form_config };
@@ -1,6 +1,6 @@
1
1
  import { r as registerInstance, c as createEvent, h, g as getElement } from './index-a7d3d3f1.js';
2
2
  import { ApplicationContext } from '@sankhyalabs/core';
3
- import { d as VIEW_MODE } from './constants-8457af36.js';
3
+ import { V as VIEW_MODE } from './constants-7302ee87.js';
4
4
  import { A as AuthorizationConfig } from './AuthorizationConfig-dcbd207a.js';
5
5
 
6
6
  const snkConfiguratorCss = ".sc-snk-configurator-h{--snk-configurator__button-close--padding-left:var(--space--medium, 12px);--snk-configurator__title--color:var(--title--primary, #2B3A54);--snk-configurator__title--font-family:var(--font-pattern, \"Roboto\");--snk-configurator__title--font-size:var(--title--large, 20px);--snk-configurator__title--font-weight:var(--text-weight--extra-large, 700);--snk-configurator__subtitle--color:var(--title--primary, #2B3A54);--snk-configurator__subtitle--font-family:var(--font-pattern, \"Roboto\");--snk-configurator__subtitle--font-size:var(--text--medium, 14px);--snk-configurator__subtitle--font-weight:var(--text-weight--large, 600);--snk-configurator__scrollbar--color-default:var(--scrollbar--default, #626e82);--snk-configurator__scrollbar--color-background:var(--scrollbar--background, #E5EAF0);--snk-configurator__scrollbar--color-hover:var(--scrollbar--hover, #2B3A54);--snk-configurator__scrollbar--color-clicked:var(--scrollbar--clicked, #a2abb9);--snk-configurator__scrollbar--border-radius:var(--border--radius-small, 6px);--snk-configurator__scrollbar--width:var(--space--medium, 12px)}.snk-configurator.sc-snk-configurator{display:grid;grid-template-rows:auto 1fr auto;max-height:100%;width:100%}.snk-configurator__collsable-box-action.sc-snk-configurator{width:100%}.snk-configurator__action-buttons.sc-snk-configurator{display:flex;flex-direction:row;justify-content:flex-end;gap:var(--space--medium)}.snk-configurator__outline.sc-snk-configurator{display:flex;flex-direction:column;gap:var(--space--small);margin-top:var(--space--small);margin-bottom:var(--space--large)}@media screen and (min-width: 480px){.snk-configurator.sc-snk-configurator{width:359px;max-width:359px}}.snk-configurator__button-config.sc-snk-configurator{--ez-button--min-width:100%}.snk-configurator__header.sc-snk-configurator{display:flex;justify-content:space-between;align-items:center;width:100%}.snk-configurator__title.sc-snk-configurator{display:flex;margin:0;line-height:normal;letter-spacing:0em;text-align:left;color:var(--snk-configurator__title--color);font-size:var(--snk-configurator__title--font-size);font-family:var(--snk-configurator__title--font-family);font-weight:var(--snk-configurator__title--font-weight)}.snk-configurator__subtitle.sc-snk-configurator{display:flex;margin:0;padding-top:var(--space--medium);padding-bottom:var(--space--small);color:var(--snk-configurator__subtitle--color);font-size:var(--snk-configurator__subtitle--font-size);font-family:var(--snk-configurator__subtitle--font-family);font-weight:var(--snk-configurator__subtitle--font-weight)}.snk-configurator__button-close.sc-snk-configurator{padding-left:var(--snk-configurator__button-close--padding-left)}.snk-configurator__main.sc-snk-configurator{overflow-y:auto;scrollbar-width:thin;margin:var(--space--medium) 0;scrollbar-color:var(--snk-configurator__scrollbar--color-clicked) var(--snk-configurator__scrollbar--color-background)}.snk-configurator__main.sc-snk-configurator::-webkit-scrollbar{background-color:var(--snk-configurator__scrollbar--color-background);width:var(--snk-configurator__scrollbar--width);max-width:var(--snk-configurator__scrollbar--width);min-width:var(--snk-configurator__scrollbar--width)}.snk-configurator__main.sc-snk-configurator::-webkit-scrollbar-track{background-color:var(--snk-configurator__scrollbar--color-background);border-radius:var(--snk-configurator__scrollbar--border-radius)}.snk-configurator__main.sc-snk-configurator::-webkit-scrollbar-thumb{background-color:var(--snk-configurator__scrollbar--color-default);border-radius:var(--snk-configurator__scrollbar--border-radius)}.snk-configurator__main.sc-snk-configurator::-webkit-scrollbar-thumb:vertical:hover,.snk-configurator__main.sc-snk-configurator::-webkit-scrollbar-thumb:horizontal:hover{background-color:var(--snk-configurator__scrollbar--color-hover)}.snk-configurator__main.sc-snk-configurator::-webkit-scrollbar-thumb:vertical:active,.snk-configurator__main.sc-snk-configurator::-webkit-scrollbar-thumb:horizontal:active{background-color:var(--snk-configurator__scrollbar--color-clicked)}";
@@ -10,7 +10,7 @@ import '@sankhyalabs/core/dist/dataunit/metadata/UnitMetadata';
10
10
  import './dataunit-fetcher-fd58c640.js';
11
11
  import './filter-item-type.enum-d45e026f.js';
12
12
  import './form-config-fetcher-adbe5d34.js';
13
- import { d as VIEW_MODE } from './constants-8457af36.js';
13
+ import { V as VIEW_MODE } from './constants-7302ee87.js';
14
14
  import { A as AutorizationType } from './auth-fetcher-749d880f.js';
15
15
  import './index-bdf75557.js';
16
16
  import './PrintUtils-3e4ff0f5.js';
@@ -2,7 +2,7 @@ import { r as registerInstance, h, H as Host, g as getElement } from './index-a7
2
2
  import { ApplicationContext, ObjectUtils, UserInterface, DataType, ElementIDUtils } from '@sankhyalabs/core';
3
3
  import { ApplicationUtils, DialogType } from '@sankhyalabs/ezui/dist/collection/utils';
4
4
  import { D as DataExporterOption, a as DataExporterType, b as DataExporterFormat } from './index-3aa4977a.js';
5
- import { R as REPORT_LAUNCHER_RESOURCE_ID } from './constants-8457af36.js';
5
+ import { R as REPORT_LAUNCHER_RESOURCE_ID } from './constants-7302ee87.js';
6
6
  import { D as DataFetcher } from './DataFetcher-a9c598f2.js';
7
7
  import { S as SnkDataUnit } from './snk-data-unit-590225b5.js';
8
8
  import './pesquisa-fetcher-50fc7e6b.js';
@@ -1,6 +1,6 @@
1
1
  import { r as registerInstance, c as createEvent, f as forceUpdate, h, H as Host } from './index-a7d3d3f1.js';
2
2
  import { Action } from '@sankhyalabs/core';
3
- import { S as SnkFormConfigManager } from './SnkFormConfigManager-139f09fa.js';
3
+ import { S as SnkFormConfigManager } from './SnkFormConfigManager-f1a0fc92.js';
4
4
  import { FormMetadata, buildFormMetadata } from '@sankhyalabs/ezui/dist/collection/utils/form';
5
5
  import './DataFetcher-a9c598f2.js';
6
6
  import './pesquisa-fetcher-50fc7e6b.js';
@@ -12,8 +12,8 @@ import './dataunit-fetcher-fd58c640.js';
12
12
  import './filter-item-type.enum-d45e026f.js';
13
13
  import './form-config-fetcher-adbe5d34.js';
14
14
  import { T as TaskbarElement } from './taskbar-elements-d59867f1.js';
15
- import { d as VIEW_MODE } from './constants-8457af36.js';
16
- import { S as SnkGuidesViewer } from './snk-guides-viewer-c1ef991c.js';
15
+ import { V as VIEW_MODE } from './constants-7302ee87.js';
16
+ import { S as SnkGuidesViewer } from './snk-guides-viewer-2f4dcdc5.js';
17
17
  import { S as SnkMessageBuilder } from './SnkMessageBuilder-6fff4a4c.js';
18
18
  import './ConfigStorage-7b36d041.js';
19
19
  import './PrintUtils-3e4ff0f5.js';
@@ -1,6 +1,6 @@
1
1
  import { r as registerInstance, c as createEvent, h, H as Host, g as getElement } from './index-a7d3d3f1.js';
2
2
  import { ElementIDUtils } from '@sankhyalabs/core';
3
- import { A as ACTION_CONFIG } from './constants-8457af36.js';
3
+ import { A as ACTION_CONFIG } from './constants-7302ee87.js';
4
4
 
5
5
  const snkFieldConfigCss = ".sc-snk-field-config-h{--snk-field-config--height:42px;--snk-field-config--width:100%;--snk-field-config__icon--width:48px;--snk-field-config-slim--height:32px;--snk-field-config--border-radius:var(--border--radius-medium, 12px);--snk-field-config--font-size:var(--text--medium, 14px);--snk-field-config--font-family:var(--font-pattern, Arial);--snk-field-config--font-weight:var(--text-weight--medium, 400);--snk-field-config--color:var(--title--primary, #000);--snk-field-config--padding-left:var(--space--medium, 6px);--snk-field-config__input--background-color:var(--background--medium, #e0e0e0);--snk-field-config__input--border:var(--border--medium, 2px solid);--snk-field-config__input--border-color:var(--background--xlight, #fff);--snk-field-config__required--color:var(--color--error, #FF0000);--snk-field-config__label--gap:var(--space--extra-small, 3px);--snk-field-config__transition--visibility:var(--transition, 0.2s linear);--snk-field-config__transition--opacity:var(--transition, 0.15s linear);--snk-field-config__config-popover--z-index:var(--more-visible, 2);--snk-field-config__config-outer-arrow--background-color:var(--color--secondary-200, #D2D3DA);--snk-field-config__draggable--padding-right:var(--space--small, 6px);display:flex;flex-wrap:wrap;position:relative;width:var(--snk-field-config--width)}.field-config.sc-snk-field-config{width:100%;box-sizing:border-box;display:flex;align-items:center;padding-left:var(--snk-field-config--padding-left);font-weight:var(--snk-field-config--font-weight);height:var(--snk-field-config--height);border-radius:var(--snk-field-config--border-radius);font-family:var(--snk-field-config--font-family);font-size:var(--snk-field-config--font-size);border:var(--snk-field-config__input--border);border-color:var(--snk-field-config__input--border-color);background-color:var(--snk-field-config__input--background-color);color:var(--snk-field-config--color)}.field-config__config-popover.sc-snk-field-config{width:40px;margin-left:auto;z-index:var(--snk-field-config__config-popover--z-index)}.field-config__label.sc-snk-field-config{display:flex;flex-direction:row-reverse;line-height:calc(var(--snk-field-config--font-size) + 2px);gap:var(--snk-field-config__label--gap)}.field-config__label-text.sc-snk-field-config{overflow:hidden;-webkit-hyphens:auto;-ms-hyphens:auto;hyphens:auto;height:auto;-webkit-box-orient:vertical;-webkit-line-clamp:2;line-clamp:2;display:-webkit-box;-o-text-overflow:ellipsis;text-overflow:ellipsis;word-break:break-word}.field-config__label-required.sc-snk-field-config{color:var(--snk-field-config__required--color)}.field-config__add.sc-snk-field-config{display:flex;margin-left:auto;visibility:hidden;opacity:0;transition:visibility var(--snk-field-config__transition--visibility), opacity var(--snk-field-config__transition--opacity)}.field-config__options.sc-snk-field-config{display:flex;margin-left:auto;visibility:hidden;opacity:0;transition:visibility var(--snk-field-config__transition--visibility), opacity var(--snk-field-config__transition--opacity)}.field-config__options--is-active.sc-snk-field-config{display:flex;visibility:visible;opacity:1}.field-config__remove-icon.sc-snk-field-config{margin-right:-15px}.field-config.sc-snk-field-config:hover .field-config__options.sc-snk-field-config{display:flex;visibility:visible;opacity:1}.field-config.sc-snk-field-config:hover .field-config__add.sc-snk-field-config{visibility:visible;opacity:1}.field-config__draggable.sc-snk-field-config{padding-right:var(--snk-field-config__draggable--padding-right)}.field-config__config-outer-arrow.sc-snk-field-config{clip-path:polygon(50% 0, 90% 100%, 10% 100%);border-radius:0.25em 0 0 0;width:30px;height:15px;padding-top:3px;border-bottom:1px solid #FFFFFF;background-color:var(--snk-field-config__config-outer-arrow--background-color)}.field-config__config-inner-arrow.sc-snk-field-config{background-color:#FFFFFF;clip-path:polygon(50% 0, 90% 100%, 10% 100%);border-radius:0.25em 0 0 0;width:30px;height:15px}.ez-box__container.sc-snk-field-config ez-collapsible-box.sc-snk-field-config{--snk-collapsible-box__header--padding-left:6px}ez-icon.sc-snk-field-config{--snk-icon--color:var(--snk-field-config--color)}ez-popover.sc-snk-field-config{--snk-popover__box--background-color:transparent;--snk-popover__box--box-shadow:none}.field-config__options.sc-snk-field-config ez-button.sc-snk-field-config{--snk-button--background-color:transparent;--snk-button--focus--border:none;--snk-button--focus--box-shadow:none}@media screen and (min-width: 1200px){.field-config__label.sc-snk-field-config{flex-direction:row}}";
6
6