@sankhyalabs/ezui 2.14.0-develop.1 → 2.14.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.
Files changed (90) hide show
  1. package/dist/cjs/ez-filter-input_3.cjs.entry.js +14 -3
  2. package/dist/cjs/ez-form-view.cjs.entry.js +140 -0
  3. package/dist/cjs/ez-form.cjs.entry.js +184 -325
  4. package/dist/cjs/ezui.cjs.js +1 -1
  5. package/dist/cjs/loader.cjs.js +1 -1
  6. package/dist/collection/collection-manifest.json +1 -0
  7. package/dist/collection/components/ez-form/{structure/FormMetadata.js → FormMetadata.js} +38 -53
  8. package/dist/collection/components/ez-form/ez-form.css +1 -1
  9. package/dist/collection/components/ez-form/ez-form.js +16 -20
  10. package/dist/collection/components/ez-form/interfaces/IDefaultConfig.js +1 -0
  11. package/dist/collection/components/ez-form/interfaces/IFieldConfig.js +1 -0
  12. package/dist/collection/components/ez-form/interfaces/IFormConfig.js +1 -0
  13. package/dist/collection/components/ez-form/interfaces/IFormSheetMetadata.js +1 -0
  14. package/dist/collection/components/ez-form/interfaces/IInvalidField.js +1 -0
  15. package/dist/collection/components/ez-form/interfaces/IRecordValidator.js +1 -0
  16. package/dist/collection/components/ez-form/interfaces/ITabConfig.js +1 -0
  17. package/dist/collection/components/ez-form/interfaces/IValidationResult.js +1 -0
  18. package/dist/collection/components/ez-form/interfaces/index.js +1 -0
  19. package/dist/collection/components/ez-form-view/ez-form-view.css +6 -0
  20. package/dist/collection/components/ez-form-view/ez-form-view.js +71 -0
  21. package/dist/collection/components/ez-form-view/fieldbuilder/FieldBuilder.js +26 -0
  22. package/dist/collection/components/{ez-form/fieldbuilder/tpl → ez-form-view/fieldbuilder/templates}/CheckBox.tpl.js +4 -4
  23. package/dist/collection/components/{ez-form/fieldbuilder/tpl → ez-form-view/fieldbuilder/templates}/ComboBox.tpl.js +2 -2
  24. package/dist/collection/components/{ez-form/fieldbuilder/tpl → ez-form-view/fieldbuilder/templates}/DateInput.tpl.js +1 -1
  25. package/dist/collection/components/{ez-form/fieldbuilder/tpl → ez-form-view/fieldbuilder/templates}/NumberInput.tpl.js +3 -3
  26. package/dist/collection/components/ez-form-view/interfaces/IFormViewField.js +1 -0
  27. package/dist/collection/components/ez-form-view/interfaces/index.js +1 -0
  28. package/dist/collection/components/ez-tree/ez-tree.js +3 -3
  29. package/dist/collection/components/ez-tree/types/Tree.js +11 -0
  30. package/dist/custom-elements/index.d.ts +6 -0
  31. package/dist/custom-elements/index.js +334 -329
  32. package/dist/esm/ez-filter-input_3.entry.js +14 -3
  33. package/dist/esm/ez-form-view.entry.js +136 -0
  34. package/dist/esm/ez-form.entry.js +186 -327
  35. package/dist/esm/ezui.js +1 -1
  36. package/dist/esm/loader.js +1 -1
  37. package/dist/ezui/ezui.esm.js +1 -1
  38. package/dist/ezui/p-97d2d2f6.entry.js +1 -0
  39. package/dist/ezui/p-a47b3526.entry.js +1 -0
  40. package/dist/ezui/p-ba03ac61.entry.js +1 -0
  41. package/dist/types/components/ez-form/DataBinder.d.ts +1 -1
  42. package/dist/types/components/ez-form/{structure/FormMetadata.d.ts → FormMetadata.d.ts} +2 -5
  43. package/dist/types/components/ez-form/ez-form.d.ts +4 -3
  44. package/dist/types/components/ez-form/interfaces/IDefaultConfig.d.ts +5 -0
  45. package/dist/types/components/ez-form/interfaces/IFieldConfig.d.ts +13 -0
  46. package/dist/types/components/ez-form/interfaces/IFormConfig.d.ts +7 -0
  47. package/dist/types/components/ez-form/interfaces/IFormSheetMetadata.d.ts +9 -0
  48. package/dist/types/components/ez-form/interfaces/IInvalidField.d.ts +4 -0
  49. package/dist/types/components/ez-form/interfaces/IRecordValidator.d.ts +6 -0
  50. package/dist/types/components/ez-form/interfaces/ITabConfig.d.ts +5 -0
  51. package/dist/types/components/ez-form/interfaces/IValidationResult.d.ts +8 -0
  52. package/dist/types/components/ez-form/interfaces/index.d.ts +8 -0
  53. package/dist/types/components/ez-form/store/form.slice.d.ts +2 -2
  54. package/dist/types/components/ez-form-view/fieldbuilder/FieldBuilder.d.ts +2 -0
  55. package/dist/types/components/ez-form-view/fieldbuilder/templates/CheckBox.tpl.d.ts +3 -0
  56. package/dist/types/components/ez-form-view/fieldbuilder/templates/ComboBox.tpl.d.ts +2 -0
  57. package/dist/types/components/ez-form-view/fieldbuilder/templates/DateInput.tpl.d.ts +4 -0
  58. package/dist/types/components/ez-form-view/fieldbuilder/templates/FileInput.tpl.d.ts +2 -0
  59. package/dist/types/components/ez-form-view/fieldbuilder/templates/NumberInput.tpl.d.ts +3 -0
  60. package/dist/types/components/ez-form-view/fieldbuilder/templates/SearchInput.tpl.d.ts +2 -0
  61. package/dist/types/components/ez-form-view/fieldbuilder/templates/TextArea.tpl.d.ts +2 -0
  62. package/dist/types/components/ez-form-view/fieldbuilder/templates/TextInput.tpl.d.ts +2 -0
  63. package/dist/types/components/ez-form-view/interfaces/IFormViewField.d.ts +10 -0
  64. package/dist/types/components/ez-form-view/interfaces/index.d.ts +1 -0
  65. package/dist/types/components/ez-tree/types/Tree.d.ts +1 -0
  66. package/dist/types/components.d.ts +26 -3
  67. package/package.json +1 -1
  68. package/react/components.d.ts +1 -0
  69. package/react/components.js +1 -0
  70. package/react/components.js.map +1 -1
  71. package/dist/collection/components/ez-form/fieldbuilder/FieldBuilder.js +0 -48
  72. package/dist/collection/components/ez-form/structure/FormItem.js +0 -11
  73. package/dist/collection/components/ez-form/structure/FormSheet.js +0 -6
  74. package/dist/ezui/p-6500a260.entry.js +0 -1
  75. package/dist/ezui/p-6c45dc64.entry.js +0 -1
  76. package/dist/types/components/ez-form/fieldbuilder/FieldBuilder.d.ts +0 -2
  77. package/dist/types/components/ez-form/fieldbuilder/tpl/CheckBox.tpl.d.ts +0 -3
  78. package/dist/types/components/ez-form/fieldbuilder/tpl/ComboBox.tpl.d.ts +0 -6
  79. package/dist/types/components/ez-form/fieldbuilder/tpl/DateInput.tpl.d.ts +0 -15
  80. package/dist/types/components/ez-form/fieldbuilder/tpl/FileInput.tpl.d.ts +0 -5
  81. package/dist/types/components/ez-form/fieldbuilder/tpl/NumberInput.tpl.d.ts +0 -7
  82. package/dist/types/components/ez-form/fieldbuilder/tpl/SearchInput.tpl.d.ts +0 -6
  83. package/dist/types/components/ez-form/fieldbuilder/tpl/TextArea.tpl.d.ts +0 -5
  84. package/dist/types/components/ez-form/fieldbuilder/tpl/TextInput.tpl.d.ts +0 -5
  85. package/dist/types/components/ez-form/structure/FormItem.d.ts +0 -9
  86. package/dist/types/components/ez-form/structure/FormSheet.d.ts +0 -10
  87. /package/dist/collection/components/{ez-form/fieldbuilder/tpl → ez-form-view/fieldbuilder/templates}/FileInput.tpl.js +0 -0
  88. /package/dist/collection/components/{ez-form/fieldbuilder/tpl → ez-form-view/fieldbuilder/templates}/SearchInput.tpl.js +0 -0
  89. /package/dist/collection/components/{ez-form/fieldbuilder/tpl → ez-form-view/fieldbuilder/templates}/TextArea.tpl.js +0 -0
  90. /package/dist/collection/components/{ez-form/fieldbuilder/tpl → ez-form-view/fieldbuilder/templates}/TextInput.tpl.js +0 -0
@@ -267,6 +267,17 @@ class Tree extends Node {
267
267
  }
268
268
  });
269
269
  }
270
+ updateItem(item) {
271
+ if (item == undefined) {
272
+ return;
273
+ }
274
+ const node = this.getNode(item.id);
275
+ if (node == undefined) {
276
+ return;
277
+ }
278
+ Object.keys(item).forEach(attrib => node.item[attrib] = item[attrib]);
279
+ this._changeCallback();
280
+ }
270
281
  async open(path) {
271
282
  return new Promise(async (resolve) => {
272
283
  await this.walk(this, path, node => node.item.expanded = true);
@@ -440,7 +451,7 @@ let EzTree = class {
440
451
  if (expanded) {
441
452
  this.ezOpenItem.emit(item);
442
453
  }
443
- forceUpdate(this);
454
+ this._tree.updateItem(item);
444
455
  }
445
456
  previousLevel() {
446
457
  var _a;
@@ -449,7 +460,7 @@ let EzTree = class {
449
460
  }
450
461
  if (this.value.expanded) {
451
462
  this.value.expanded = false;
452
- forceUpdate(this);
463
+ this._tree.updateItem(this.value);
453
464
  }
454
465
  else {
455
466
  const node = this._tree.getNode(this.value.id);
@@ -472,7 +483,7 @@ let EzTree = class {
472
483
  }
473
484
  else {
474
485
  this.value.expanded = true;
475
- forceUpdate(this);
486
+ this._tree.updateItem(this.value);
476
487
  }
477
488
  }
478
489
  indexOf(id) {
@@ -0,0 +1,136 @@
1
+ import { h, r as registerInstance, H as Host, g as getElement } from './index-c5203f95.js';
2
+ import { UserInterface, ElementIDUtils } from '@sankhyalabs/core';
3
+ import { C as CheckMode } from './CheckMode-bdb2ec19.js';
4
+
5
+ const buildSwitch = (field) => {
6
+ return buildField(field.name, field.label, field.readOnly, true);
7
+ };
8
+ const buildCheckBox = (field) => {
9
+ return buildField(field.name, field.label, field.readOnly, false);
10
+ };
11
+ function buildField(fieldName, fieldLabel, readOnly, switchMode = false) {
12
+ return (h("div", { class: "ez-col ez-col--sd-12 ez-col--tb-3 ez-align--middle ez-padding-horizontal--small ez-padding-bottom--large" },
13
+ h("ez-check", { enabled: !readOnly, label: fieldLabel, mode: switchMode ? CheckMode.SWITCH : CheckMode.REGULAR, "data-field-name": fieldName, key: fieldName })));
14
+ }
15
+
16
+ const buildComboBox = ({ name, label, readOnly, required, props }) => {
17
+ const prop = props === null || props === void 0 ? void 0 : props.options;
18
+ let options;
19
+ if (typeof prop === "string") {
20
+ const parsed = JSON.parse(prop);
21
+ options = Object.keys(parsed).map(key => { return { value: key, label: parsed[key] }; });
22
+ }
23
+ else {
24
+ options = prop;
25
+ }
26
+ return (h("div", { class: "ez-col ez-col--sd-12 ez-col--tb-3 ez-padding-horizontal--small" },
27
+ h("ez-combo-box", { enabled: !readOnly, suppressEmptyOption: required, label: label, "data-field-name": name, key: name, options: options })));
28
+ };
29
+
30
+ const buildDate = ({ name, label, readOnly }) => {
31
+ return (h("div", { class: "ez-col ez-col--sd-12 ez-col--tb-3 ez-padding-horizontal--small" },
32
+ h("ez-date-input", { enabled: !readOnly, label: label, "data-field-name": name, key: name })));
33
+ };
34
+ const buildTime = ({ name, label, readOnly }) => {
35
+ return (h("div", { class: "ez-col ez-col--sd-12 ez-col--tb-3 ez-padding-horizontal--small" },
36
+ h("ez-time-input", { enabled: !readOnly, label: label, "data-field-name": name, key: name })));
37
+ };
38
+ const buildDateTime = ({ name, label, readOnly }) => {
39
+ return (h("div", { class: "ez-col ez-col--sd-12 ez-col--tb-3 ez-padding-horizontal--small" },
40
+ h("ez-date-time-input", { enabled: !readOnly, label: label, "data-field-name": name, key: name })));
41
+ };
42
+
43
+ const buildFile = ({ name, label, readOnly }) => {
44
+ return (h("div", { class: "ez-col ez-col--sd-12 ez-padding-horizontal--small" },
45
+ h("ez-upload", { enabled: !readOnly, label: label, "data-field-name": name, key: name })));
46
+ };
47
+
48
+ const buildDecimal = ({ name, label, readOnly, props }) => {
49
+ const precision = Number((props === null || props === void 0 ? void 0 : props.precision) || 2);
50
+ const prettyPrecision = Number((props === null || props === void 0 ? void 0 : props.prettyPrecision) || precision);
51
+ return buildNumeric(name, label, readOnly, precision, prettyPrecision);
52
+ };
53
+ const buildInteger = ({ name, label, readOnly }) => {
54
+ return buildNumeric(name, label, readOnly, 0, 0);
55
+ };
56
+ function buildNumeric(fieldName, fieldLabel, readOnly, precision, prettyPrecision) {
57
+ return (h("div", { class: "ez-col ez-col--sd-12 ez-col--tb-3 ez-padding-horizontal--small" },
58
+ h("ez-number-input", { enabled: !readOnly, label: fieldLabel, precision: precision, prettyPrecision: prettyPrecision, "data-field-name": fieldName, key: fieldName })));
59
+ }
60
+
61
+ const buildSearch = ({ name, label, readOnly, required }) => {
62
+ return (h("div", { class: "ez-col ez-col--sd-12 ez-col--tb-3 ez-padding-horizontal--small" },
63
+ h("ez-search", { enabled: !readOnly, suppressEmptyOption: required, label: label, "data-field-name": name, key: name })));
64
+ };
65
+
66
+ const buildTextArea = ({ name, label, readOnly }) => {
67
+ return (h("div", { class: "ez-col ez-col--sd-12 ez-padding-horizontal--small", key: name },
68
+ h("ez-text-area", { enabled: !readOnly, label: label, "data-field-name": name })));
69
+ };
70
+
71
+ const buildTextInput = ({ name, label, readOnly }) => {
72
+ return (h("div", { class: "ez-col ez-col--sd-12 ez-col--tb-3 ez-padding-horizontal--small" },
73
+ h("ez-text-input", { label: label, "data-field-name": name, key: name, enabled: !readOnly })));
74
+ };
75
+
76
+ const uiBuilders = new Map();
77
+ uiBuilders.set(UserInterface.CHECKBOX, buildCheckBox);
78
+ uiBuilders.set(UserInterface.SWITCH, buildSwitch);
79
+ uiBuilders.set(UserInterface.OPTIONSELECTOR, buildComboBox);
80
+ uiBuilders.set(UserInterface.DATE, buildDate);
81
+ uiBuilders.set(UserInterface.TIME, buildTime);
82
+ uiBuilders.set(UserInterface.DATETIME, buildDateTime);
83
+ uiBuilders.set(UserInterface.FILE, buildFile);
84
+ uiBuilders.set(UserInterface.DECIMALNUMBER, buildDecimal);
85
+ uiBuilders.set(UserInterface.INTEGERNUMBER, buildInteger);
86
+ uiBuilders.set(UserInterface.SEARCH, buildSearch);
87
+ uiBuilders.set(UserInterface.LONGTEXT, buildTextArea);
88
+ const fieldBuilder = (field) => {
89
+ const builder = uiBuilders.get(field.userInterface) || buildTextInput;
90
+ const label = field.required ? `${field.label} (obrigatório) *` : field.label;
91
+ return builder(Object.assign(Object.assign({}, field), { label }));
92
+ };
93
+
94
+ const ezFormViewCss = ".sc-ez-form-view-h{display:flex;flex-direction:row;flex-wrap:wrap;width:100%}";
95
+
96
+ let EzFormView = class {
97
+ constructor(hostRef) {
98
+ registerInstance(this, hostRef);
99
+ }
100
+ groupFields(fields) {
101
+ const result = new Map();
102
+ fields.forEach(item => {
103
+ const groupLabel = item.group;
104
+ if (groupLabel) {
105
+ let groupFields = result.get(groupLabel);
106
+ if (groupFields == undefined) {
107
+ groupFields = [];
108
+ result.set(groupLabel, groupFields);
109
+ }
110
+ groupFields.push(item);
111
+ }
112
+ else {
113
+ result.set(item.name, item);
114
+ }
115
+ });
116
+ return result;
117
+ }
118
+ render() {
119
+ ElementIDUtils.addIDInfoIfNotExists(this._element, 'ezFormView');
120
+ if (this.fields == undefined) {
121
+ return;
122
+ }
123
+ return (h(Host, null, Array.from(this.groupFields(this.fields).entries()).map(([label, value]) => {
124
+ if (Array.isArray(value)) {
125
+ return (h("ez-collapsible-box", { id: `group-${label}`, label: label, "header-size": "large", key: label }, value.map(fi => fieldBuilder(fi))));
126
+ }
127
+ else {
128
+ return fieldBuilder(value);
129
+ }
130
+ })));
131
+ }
132
+ get _element() { return getElement(this); }
133
+ };
134
+ EzFormView.style = ezFormViewCss;
135
+
136
+ export { EzFormView as ez_form_view };