@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
@@ -271,6 +271,17 @@ class Tree extends Node {
271
271
  }
272
272
  });
273
273
  }
274
+ updateItem(item) {
275
+ if (item == undefined) {
276
+ return;
277
+ }
278
+ const node = this.getNode(item.id);
279
+ if (node == undefined) {
280
+ return;
281
+ }
282
+ Object.keys(item).forEach(attrib => node.item[attrib] = item[attrib]);
283
+ this._changeCallback();
284
+ }
274
285
  async open(path) {
275
286
  return new Promise(async (resolve) => {
276
287
  await this.walk(this, path, node => node.item.expanded = true);
@@ -444,7 +455,7 @@ let EzTree = class {
444
455
  if (expanded) {
445
456
  this.ezOpenItem.emit(item);
446
457
  }
447
- index.forceUpdate(this);
458
+ this._tree.updateItem(item);
448
459
  }
449
460
  previousLevel() {
450
461
  var _a;
@@ -453,7 +464,7 @@ let EzTree = class {
453
464
  }
454
465
  if (this.value.expanded) {
455
466
  this.value.expanded = false;
456
- index.forceUpdate(this);
467
+ this._tree.updateItem(this.value);
457
468
  }
458
469
  else {
459
470
  const node = this._tree.getNode(this.value.id);
@@ -476,7 +487,7 @@ let EzTree = class {
476
487
  }
477
488
  else {
478
489
  this.value.expanded = true;
479
- index.forceUpdate(this);
490
+ this._tree.updateItem(this.value);
480
491
  }
481
492
  }
482
493
  indexOf(id) {
@@ -0,0 +1,140 @@
1
+ 'use strict';
2
+
3
+ Object.defineProperty(exports, '__esModule', { value: true });
4
+
5
+ const index = require('./index-5e208fa5.js');
6
+ const core = require('@sankhyalabs/core');
7
+ const CheckMode = require('./CheckMode-ecb90b87.js');
8
+
9
+ const buildSwitch = (field) => {
10
+ return buildField(field.name, field.label, field.readOnly, true);
11
+ };
12
+ const buildCheckBox = (field) => {
13
+ return buildField(field.name, field.label, field.readOnly, false);
14
+ };
15
+ function buildField(fieldName, fieldLabel, readOnly, switchMode = false) {
16
+ return (index.h("div", { class: "ez-col ez-col--sd-12 ez-col--tb-3 ez-align--middle ez-padding-horizontal--small ez-padding-bottom--large" },
17
+ index.h("ez-check", { enabled: !readOnly, label: fieldLabel, mode: switchMode ? CheckMode.CheckMode.SWITCH : CheckMode.CheckMode.REGULAR, "data-field-name": fieldName, key: fieldName })));
18
+ }
19
+
20
+ const buildComboBox = ({ name, label, readOnly, required, props }) => {
21
+ const prop = props === null || props === void 0 ? void 0 : props.options;
22
+ let options;
23
+ if (typeof prop === "string") {
24
+ const parsed = JSON.parse(prop);
25
+ options = Object.keys(parsed).map(key => { return { value: key, label: parsed[key] }; });
26
+ }
27
+ else {
28
+ options = prop;
29
+ }
30
+ return (index.h("div", { class: "ez-col ez-col--sd-12 ez-col--tb-3 ez-padding-horizontal--small" },
31
+ index.h("ez-combo-box", { enabled: !readOnly, suppressEmptyOption: required, label: label, "data-field-name": name, key: name, options: options })));
32
+ };
33
+
34
+ const buildDate = ({ name, label, readOnly }) => {
35
+ return (index.h("div", { class: "ez-col ez-col--sd-12 ez-col--tb-3 ez-padding-horizontal--small" },
36
+ index.h("ez-date-input", { enabled: !readOnly, label: label, "data-field-name": name, key: name })));
37
+ };
38
+ const buildTime = ({ name, label, readOnly }) => {
39
+ return (index.h("div", { class: "ez-col ez-col--sd-12 ez-col--tb-3 ez-padding-horizontal--small" },
40
+ index.h("ez-time-input", { enabled: !readOnly, label: label, "data-field-name": name, key: name })));
41
+ };
42
+ const buildDateTime = ({ name, label, readOnly }) => {
43
+ return (index.h("div", { class: "ez-col ez-col--sd-12 ez-col--tb-3 ez-padding-horizontal--small" },
44
+ index.h("ez-date-time-input", { enabled: !readOnly, label: label, "data-field-name": name, key: name })));
45
+ };
46
+
47
+ const buildFile = ({ name, label, readOnly }) => {
48
+ return (index.h("div", { class: "ez-col ez-col--sd-12 ez-padding-horizontal--small" },
49
+ index.h("ez-upload", { enabled: !readOnly, label: label, "data-field-name": name, key: name })));
50
+ };
51
+
52
+ const buildDecimal = ({ name, label, readOnly, props }) => {
53
+ const precision = Number((props === null || props === void 0 ? void 0 : props.precision) || 2);
54
+ const prettyPrecision = Number((props === null || props === void 0 ? void 0 : props.prettyPrecision) || precision);
55
+ return buildNumeric(name, label, readOnly, precision, prettyPrecision);
56
+ };
57
+ const buildInteger = ({ name, label, readOnly }) => {
58
+ return buildNumeric(name, label, readOnly, 0, 0);
59
+ };
60
+ function buildNumeric(fieldName, fieldLabel, readOnly, precision, prettyPrecision) {
61
+ return (index.h("div", { class: "ez-col ez-col--sd-12 ez-col--tb-3 ez-padding-horizontal--small" },
62
+ index.h("ez-number-input", { enabled: !readOnly, label: fieldLabel, precision: precision, prettyPrecision: prettyPrecision, "data-field-name": fieldName, key: fieldName })));
63
+ }
64
+
65
+ const buildSearch = ({ name, label, readOnly, required }) => {
66
+ return (index.h("div", { class: "ez-col ez-col--sd-12 ez-col--tb-3 ez-padding-horizontal--small" },
67
+ index.h("ez-search", { enabled: !readOnly, suppressEmptyOption: required, label: label, "data-field-name": name, key: name })));
68
+ };
69
+
70
+ const buildTextArea = ({ name, label, readOnly }) => {
71
+ return (index.h("div", { class: "ez-col ez-col--sd-12 ez-padding-horizontal--small", key: name },
72
+ index.h("ez-text-area", { enabled: !readOnly, label: label, "data-field-name": name })));
73
+ };
74
+
75
+ const buildTextInput = ({ name, label, readOnly }) => {
76
+ return (index.h("div", { class: "ez-col ez-col--sd-12 ez-col--tb-3 ez-padding-horizontal--small" },
77
+ index.h("ez-text-input", { label: label, "data-field-name": name, key: name, enabled: !readOnly })));
78
+ };
79
+
80
+ const uiBuilders = new Map();
81
+ uiBuilders.set(core.UserInterface.CHECKBOX, buildCheckBox);
82
+ uiBuilders.set(core.UserInterface.SWITCH, buildSwitch);
83
+ uiBuilders.set(core.UserInterface.OPTIONSELECTOR, buildComboBox);
84
+ uiBuilders.set(core.UserInterface.DATE, buildDate);
85
+ uiBuilders.set(core.UserInterface.TIME, buildTime);
86
+ uiBuilders.set(core.UserInterface.DATETIME, buildDateTime);
87
+ uiBuilders.set(core.UserInterface.FILE, buildFile);
88
+ uiBuilders.set(core.UserInterface.DECIMALNUMBER, buildDecimal);
89
+ uiBuilders.set(core.UserInterface.INTEGERNUMBER, buildInteger);
90
+ uiBuilders.set(core.UserInterface.SEARCH, buildSearch);
91
+ uiBuilders.set(core.UserInterface.LONGTEXT, buildTextArea);
92
+ const fieldBuilder = (field) => {
93
+ const builder = uiBuilders.get(field.userInterface) || buildTextInput;
94
+ const label = field.required ? `${field.label} (obrigatório) *` : field.label;
95
+ return builder(Object.assign(Object.assign({}, field), { label }));
96
+ };
97
+
98
+ const ezFormViewCss = ".sc-ez-form-view-h{display:flex;flex-direction:row;flex-wrap:wrap;width:100%}";
99
+
100
+ let EzFormView = class {
101
+ constructor(hostRef) {
102
+ index.registerInstance(this, hostRef);
103
+ }
104
+ groupFields(fields) {
105
+ const result = new Map();
106
+ fields.forEach(item => {
107
+ const groupLabel = item.group;
108
+ if (groupLabel) {
109
+ let groupFields = result.get(groupLabel);
110
+ if (groupFields == undefined) {
111
+ groupFields = [];
112
+ result.set(groupLabel, groupFields);
113
+ }
114
+ groupFields.push(item);
115
+ }
116
+ else {
117
+ result.set(item.name, item);
118
+ }
119
+ });
120
+ return result;
121
+ }
122
+ render() {
123
+ core.ElementIDUtils.addIDInfoIfNotExists(this._element, 'ezFormView');
124
+ if (this.fields == undefined) {
125
+ return;
126
+ }
127
+ return (index.h(index.Host, null, Array.from(this.groupFields(this.fields).entries()).map(([label, value]) => {
128
+ if (Array.isArray(value)) {
129
+ return (index.h("ez-collapsible-box", { id: `group-${label}`, label: label, "header-size": "large", key: label }, value.map(fi => fieldBuilder(fi))));
130
+ }
131
+ else {
132
+ return fieldBuilder(value);
133
+ }
134
+ })));
135
+ }
136
+ get _element() { return index.getElement(this); }
137
+ };
138
+ EzFormView.style = ezFormViewCss;
139
+
140
+ exports.ez_form_view = EzFormView;