@sankhyalabs/ezui 7.1.0-dev.2 → 7.1.0-dev.20

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 (117) hide show
  1. package/dist/cjs/ez-chip.cjs.entry.js +1 -1
  2. package/dist/cjs/ez-combo-box-list_4.cjs.entry.js +1 -1
  3. package/dist/cjs/ez-date-input.cjs.entry.js +10 -3
  4. package/dist/cjs/ez-dialog.cjs.entry.js +1 -1
  5. package/dist/cjs/ez-form-view.cjs.entry.js +3 -2
  6. package/dist/cjs/ez-form.cjs.entry.js +13 -3
  7. package/dist/cjs/ez-grid.cjs.entry.js +7 -3
  8. package/dist/cjs/ez-modal-container.cjs.entry.js +15 -16
  9. package/dist/cjs/ez-modal.cjs.entry.js +1 -1
  10. package/dist/cjs/ez-number-input.cjs.entry.js +2 -0
  11. package/dist/cjs/ez-popup.cjs.entry.js +19 -7
  12. package/dist/cjs/ez-search-plus.cjs.entry.js +16 -2
  13. package/dist/cjs/ez-search.cjs.entry.js +28 -24
  14. package/dist/cjs/ez-split-button.cjs.entry.js +1 -1
  15. package/dist/cjs/ez-text-input.cjs.entry.js +1 -1
  16. package/dist/cjs/ez-tooltip.cjs.entry.js +13 -2
  17. package/dist/cjs/ez-tree.cjs.entry.js +154 -7
  18. package/dist/cjs/ezui.cjs.js +1 -1
  19. package/dist/cjs/loader.cjs.js +1 -1
  20. package/dist/cjs/{purify-47a2f27b.js → purify-b30a5718.js} +41 -12
  21. package/dist/cjs/{search-column-9aa090ec.js → search-column-8bfee733.js} +1 -1
  22. package/dist/collection/components/ez-chip/ez-chip.css +3 -0
  23. package/dist/collection/components/ez-date-input/ez-date-input.js +28 -3
  24. package/dist/collection/components/ez-dialog/ez-dialog.css +6 -1
  25. package/dist/collection/components/ez-form-view/fieldbuilder/templates/CheckBox.tpl.js +1 -1
  26. package/dist/collection/components/ez-form-view/fieldbuilder/templates/SearchInput.tpl.js +3 -1
  27. package/dist/collection/components/ez-grid/controller/ag-grid/AgGridController.js +5 -1
  28. package/dist/collection/components/ez-modal/ez-modal.css +3 -0
  29. package/dist/collection/components/ez-modal-container/ez-modal-container.css +4 -9
  30. package/dist/collection/components/ez-modal-container/ez-modal-container.js +32 -15
  31. package/dist/collection/components/ez-number-input/ez-number-input.js +16 -0
  32. package/dist/collection/components/ez-popup/ez-popup.css +9 -4
  33. package/dist/collection/components/ez-popup/ez-popup.js +24 -7
  34. package/dist/collection/components/ez-search/ez-search.js +41 -19
  35. package/dist/collection/components/ez-search-plus/ez-search-plus.js +16 -2
  36. package/dist/collection/components/ez-split-button/ez-split-button.css +7 -2
  37. package/dist/collection/components/ez-text-input/ez-text-input.css +3 -3
  38. package/dist/collection/components/ez-tooltip/ez-tooltip.js +13 -2
  39. package/dist/collection/components/ez-tree/ez-tree.css +4 -0
  40. package/dist/collection/components/ez-tree/ez-tree.js +185 -6
  41. package/dist/collection/components/ez-tree/subcomponents/TreeItem.js +4 -1
  42. package/dist/collection/components/ez-tree/types/Node.js +7 -0
  43. package/dist/collection/components/ez-tree/types/Tree.js +19 -0
  44. package/dist/collection/components/ez-tree/types/UpdateItemConfig.js +1 -0
  45. package/dist/collection/utils/form/DataBinder.js +1 -1
  46. package/dist/collection/utils/form/FormMetadata.js +12 -2
  47. package/dist/custom-elements/index.js +337 -97
  48. package/dist/esm/ez-chip.entry.js +1 -1
  49. package/dist/esm/ez-combo-box-list_4.entry.js +1 -1
  50. package/dist/esm/ez-date-input.entry.js +10 -3
  51. package/dist/esm/ez-dialog.entry.js +1 -1
  52. package/dist/esm/ez-form-view.entry.js +3 -2
  53. package/dist/esm/ez-form.entry.js +13 -3
  54. package/dist/esm/ez-grid.entry.js +7 -3
  55. package/dist/esm/ez-modal-container.entry.js +15 -16
  56. package/dist/esm/ez-modal.entry.js +1 -1
  57. package/dist/esm/ez-number-input.entry.js +2 -0
  58. package/dist/esm/ez-popup.entry.js +19 -7
  59. package/dist/esm/ez-search-plus.entry.js +16 -2
  60. package/dist/esm/ez-search.entry.js +23 -19
  61. package/dist/esm/ez-split-button.entry.js +1 -1
  62. package/dist/esm/ez-text-input.entry.js +1 -1
  63. package/dist/esm/ez-tooltip.entry.js +13 -2
  64. package/dist/esm/ez-tree.entry.js +154 -7
  65. package/dist/esm/ezui.js +1 -1
  66. package/dist/esm/loader.js +1 -1
  67. package/dist/esm/{purify-dc6814bf.js → purify-9357603c.js} +41 -12
  68. package/dist/esm/{search-column-83562552.js → search-column-c00119ae.js} +1 -1
  69. package/dist/ezui/ezui.esm.js +1 -1
  70. package/dist/ezui/p-19cf13bc.entry.js +1 -0
  71. package/dist/ezui/p-2854f087.entry.js +1 -0
  72. package/dist/ezui/p-294f54fe.entry.js +1 -0
  73. package/dist/ezui/{p-d66bf34e.entry.js → p-377768bd.entry.js} +2 -2
  74. package/dist/ezui/{p-2ba2d792.entry.js → p-44ad16df.entry.js} +1 -1
  75. package/dist/ezui/p-4f0632b4.js +1 -0
  76. package/dist/ezui/p-7b999377.entry.js +1 -0
  77. package/dist/ezui/{p-0e49c0ff.entry.js → p-8d626d2b.entry.js} +1 -1
  78. package/dist/ezui/p-96b33264.entry.js +1 -0
  79. package/dist/ezui/{p-c943f7c4.entry.js → p-adaa2a81.entry.js} +1 -1
  80. package/dist/ezui/{p-f958dcb1.entry.js → p-c82acfc6.entry.js} +1 -1
  81. package/dist/ezui/p-cd6f5783.entry.js +1 -0
  82. package/dist/ezui/p-cfa26133.entry.js +1 -0
  83. package/dist/ezui/p-da585ff3.entry.js +1 -0
  84. package/dist/ezui/p-df316d40.entry.js +1 -0
  85. package/dist/ezui/p-dff9862b.js +3 -0
  86. package/dist/ezui/p-eca050b4.entry.js +1 -0
  87. package/dist/ezui/p-f34ec732.entry.js +1 -0
  88. package/dist/ezui/p-ff4bde07.entry.js +1 -0
  89. package/dist/types/components/ez-date-input/ez-date-input.d.ts +5 -1
  90. package/dist/types/components/ez-modal-container/ez-modal-container.d.ts +6 -2
  91. package/dist/types/components/ez-number-input/ez-number-input.d.ts +4 -0
  92. package/dist/types/components/ez-popup/ez-popup.d.ts +3 -0
  93. package/dist/types/components/ez-search/ez-search.d.ts +5 -6
  94. package/dist/types/components/ez-search-plus/ez-search-plus.d.ts +1 -0
  95. package/dist/types/components/ez-tooltip/ez-tooltip.d.ts +3 -0
  96. package/dist/types/components/ez-tree/ez-tree.d.ts +20 -1
  97. package/dist/types/components/ez-tree/types/Node.d.ts +1 -0
  98. package/dist/types/components/ez-tree/types/Tree.d.ts +1 -0
  99. package/dist/types/components/ez-tree/types/UpdateItemConfig.d.ts +4 -0
  100. package/dist/types/components.d.ts +42 -1
  101. package/dist/types/utils/form/interfaces/IFormSheetMetadata.d.ts +1 -0
  102. package/dist/types/utils/form/interfaces/ITabConfig.d.ts +1 -0
  103. package/package.json +1 -1
  104. package/dist/ezui/p-02f6e3b0.entry.js +0 -1
  105. package/dist/ezui/p-0b333f09.entry.js +0 -1
  106. package/dist/ezui/p-191cfbc8.entry.js +0 -1
  107. package/dist/ezui/p-1bfef8e5.entry.js +0 -1
  108. package/dist/ezui/p-228a4d2f.js +0 -3
  109. package/dist/ezui/p-2df50161.entry.js +0 -1
  110. package/dist/ezui/p-4e1df756.entry.js +0 -1
  111. package/dist/ezui/p-623161e2.js +0 -1
  112. package/dist/ezui/p-7f8c1fce.entry.js +0 -1
  113. package/dist/ezui/p-8bb3aeb0.entry.js +0 -1
  114. package/dist/ezui/p-ba7e908a.entry.js +0 -1
  115. package/dist/ezui/p-bd6146c5.entry.js +0 -1
  116. package/dist/ezui/p-d0e6911e.entry.js +0 -1
  117. package/dist/ezui/p-e46a4d06.entry.js +0 -1
@@ -40,6 +40,8 @@
40
40
  --ez-label-chip__label__container--default--border-color--active: var(--color--ocean-green-200);
41
41
  /*@doc Define a cor da borda quando o componente está ativo e na variação secundária.*/
42
42
  --ez-label-chip__label__container--secondary--border-color--active: var(--color--gray-200);
43
+ /*@doc Define a margem do chip.*/
44
+ --ez-label-chip__label__container--margin: 0px;
43
45
  }
44
46
 
45
47
  .label__text {
@@ -76,6 +78,7 @@
76
78
  border-radius: var(--ez-label-chip__label__container--border-radius);
77
79
  padding: 0 var(--ez-label-chip__horizontal-padding);
78
80
  outline-color: var(--ez-label-chip__label__container--default--border-color--active);
81
+ margin: var(--ez-label-chip__label__container--margin);
79
82
  }
80
83
 
81
84
  .label__container[data-size="default"] {
@@ -88,9 +88,12 @@ export class EzDateInput {
88
88
  this._changePending = false;
89
89
  }
90
90
  }
91
- hideCalendar() {
91
+ async handleChangeCalendar(event) {
92
92
  this.changeValue(this._calendar.value);
93
+ this.ezInput.emit(this._calendar.value);
93
94
  this._popover.hide();
95
+ await this.setFocus();
96
+ event.stopPropagation();
94
97
  }
95
98
  handleBlur() {
96
99
  if (!this._changePending) {
@@ -139,10 +142,13 @@ export class EzDateInput {
139
142
  if ((currentValue === null || currentValue === void 0 ? void 0 : currentValue.getTime()) !== (newValueValidated === null || newValueValidated === void 0 ? void 0 : newValueValidated.getTime())) {
140
143
  this._changePending = true;
141
144
  this._focused = true;
145
+ this.ezInput.emit(newValueValidated);
142
146
  this.ezStartChange.emit({ waitmessage: "", blocking: false });
143
147
  }
144
148
  if (event['data'] === "H" || event['data'] === "h") {
145
- this.changeValue(new Date());
149
+ const currentDate = new Date();
150
+ this.ezInput.emit(currentDate);
151
+ this.changeValue(currentDate);
146
152
  }
147
153
  }
148
154
  setInputValue() {
@@ -168,7 +174,7 @@ export class EzDateInput {
168
174
  }
169
175
  render() {
170
176
  ElementIDUtils.addIDInfoIfNotExists(this._elem, 'input');
171
- return (h(Host, null, h("ez-text-input", { "data-element-id": ElementIDUtils.getInternalIDInfo("textInput"), ref: elem => this._textInput = elem, "data-slave-mode": "true", label: this.label, onBlur: () => this.handleBlur(), onInput: (evt) => this.handleInput(evt), restrict: "0123456789/", enabled: this.enabled, errorMessage: this.errorMessage, mode: this.mode, canShowError: this.canShowError, alternativePlaceholder: this.alternativePlaceholder }, h("button", { disabled: !this.enabled, tabindex: -1, class: "btn-open-cal", onClick: () => { var _a; return (_a = this._popover) === null || _a === void 0 ? void 0 : _a.showUnder(this._textInput); }, slot: "leftIcon" })), h("ez-popover-plus", { ref: elem => this._popover = elem, anchorElement: this._textInput, autoClose: true, boxWidth: 'fit-content', overlayType: 'none', "data-element-id": this._elem.getAttribute("data-element-id"), onEzVisibilityChange: (event) => event.stopPropagation() }, h("ez-calendar", { ref: elem => this._calendar = elem, "data-element-id": ElementIDUtils.getInternalIDInfo("calendar"), onEzChange: (event) => { this.hideCalendar(); event.stopPropagation(); } }))));
177
+ return (h(Host, null, h("ez-text-input", { "data-element-id": ElementIDUtils.getInternalIDInfo("textInput"), ref: elem => this._textInput = elem, "data-slave-mode": "true", label: this.label, onBlur: () => this.handleBlur(), onInput: (evt) => this.handleInput(evt), restrict: "0123456789/", enabled: this.enabled, errorMessage: this.errorMessage, mode: this.mode, canShowError: this.canShowError, alternativePlaceholder: this.alternativePlaceholder }, h("button", { disabled: !this.enabled, tabindex: -1, class: "btn-open-cal", onClick: () => { var _a; return (_a = this._popover) === null || _a === void 0 ? void 0 : _a.showUnder(this._textInput); }, slot: "leftIcon" })), h("ez-popover-plus", { ref: elem => this._popover = elem, anchorElement: this._textInput, autoClose: true, boxWidth: 'fit-content', overlayType: 'none', "data-element-id": this._elem.getAttribute("data-element-id"), onEzVisibilityChange: (event) => event.stopPropagation() }, h("ez-calendar", { ref: elem => this._calendar = elem, "data-element-id": ElementIDUtils.getInternalIDInfo("calendar"), onEzChange: (event) => this.handleChangeCalendar(event), value: this.value }))));
172
178
  }
173
179
  static get is() { return "ez-date-input"; }
174
180
  static get encapsulation() { return "shadow"; }
@@ -383,6 +389,25 @@ export class EzDateInput {
383
389
  "resolved": "void",
384
390
  "references": {}
385
391
  }
392
+ }, {
393
+ "method": "ezInput",
394
+ "name": "ezInput",
395
+ "bubbles": true,
396
+ "cancelable": true,
397
+ "composed": true,
398
+ "docs": {
399
+ "tags": [],
400
+ "text": "Emitido quando o usu\u00E1rio digita uma data v\u00E1lida no campo."
401
+ },
402
+ "complexType": {
403
+ "original": "Date",
404
+ "resolved": "Date",
405
+ "references": {
406
+ "Date": {
407
+ "location": "global"
408
+ }
409
+ }
410
+ }
386
411
  }];
387
412
  }
388
413
  static get methods() {
@@ -8,9 +8,11 @@
8
8
  /*@doc Define a cor de fundo do botão de fechar.*/
9
9
  --dialog__btn__close--background-color: var(--title--primary, #2b3a54);
10
10
  /*@doc Define o espaçamento direito do botão de negação.*/
11
- --dialog__btn__no--padding-right: var(--space--large, 24px);
11
+ --dialog__btn__no--padding-right: var(--space--8, 8px);
12
12
  /*@doc Contém a imagem do ícone de fechamento.*/
13
13
  --dialog__btn__close__image: url('data:image/svg+xml;utf8,<svg width="12" height="12" viewBox="0 0 12 12" xmlns="http://www.w3.org/2000/svg%22%3E<path d="M 7.0060773,5.995511 11.461972,1.5397722 c 0.132856,-0.1328413 0.207547,-0.3130253 0.207547,-0.5009046 0,-0.18786999 -0.07469,-0.3680541 -0.207547,-0.5009048 -0.132857,-0.13284126 -0.31302,-0.20748126 -0.500927,-0.20748126 -0.187812,0 -0.36807,0.07464 -0.500926,0.20748126 L 6.0042244,4.9937015 1.5482921,0.5379628 C 1.4154357,0.40512154 1.2352533,0.33048154 1.0473657,0.33048154 c -0.18787813,0 -0.36807,0.07464 -0.50092647,0.20748126 -0.13285646,0.1328507 -0.20749026,0.31303481 -0.20749026,0.5009048 0,0.1878793 0.0746338,0.3680633 0.20749026,0.5009046 L 5.0023715,5.995511 0.54643923,10.452213 c -0.0676086,0.06534 -0.12151598,0.14352 -0.15859681,0.229916 -0.0370714,0.08639 -0.0565645,0.1794 -0.0573369,0.27335 -7.724e-4,0.09404 0.0171873,0.187331 0.0528423,0.274293 0.0356455,0.08705 0.0882688,0.166087 0.15479148,0.23256 0.0665321,0.06648 0.14562277,0.11897 0.2326735,0.154567 0.0870507,0.0356 0.18031463,0.05344 0.2743433,0.05259 0.094029,-8.5e-4 0.1869528,-0.02049 0.2733331,-0.0576 0.08639,-0.0372 0.1645078,-0.09121 0.2298029,-0.158817 L 6.0042244,6.9973204 10.460119,11.453078 c 0.132856,0.132851 0.313114,0.207444 0.500926,0.207444 0.187907,0 0.36807,-0.07459 0.500927,-0.207444 0.132856,-0.13285 0.207547,-0.313006 0.207547,-0.500904 0,-0.187898 -0.07469,-0.368054 -0.207547,-0.500905 z"/></svg>');
14
+ /*@doc Define a largura mínima dos botões.*/
15
+ --dialog__btn__min-width: 80px;
14
16
 
15
17
  /* Título */
16
18
  /*@doc Define o estilo da mensagem exibida no título.*/
@@ -245,6 +247,7 @@ h2 {
245
247
 
246
248
  .button__cancel {
247
249
  padding-right: var(--dialog__btn__no--padding-right);
250
+ --ez-button--min-width: var(--dialog__btn__min-width);
248
251
  }
249
252
 
250
253
  .button__confirm{
@@ -252,6 +255,7 @@ h2 {
252
255
  --ez-button--color: var(--color--inverted);
253
256
  --ez-button--hover--background-color: var(--color--primary-600);
254
257
  --ez-button--hover-color: var(--color--inverted);
258
+ --ez-button--min-width: var(--dialog__btn__min-width);
255
259
  }
256
260
 
257
261
  .button__confirm--danger{
@@ -259,6 +263,7 @@ h2 {
259
263
  --ez-button--color: var(--color--inverted);
260
264
  --ez-button--hover--background-color: var(--color-alert--error-900, #a10020);
261
265
  --ez-button--hover-color: var(--color--inverted);
266
+ --ez-button--min-width: var(--dialog__btn__min-width);
262
267
  }
263
268
 
264
269
  .button__confirm--container {
@@ -7,5 +7,5 @@ export const buildCheckBox = (field) => {
7
7
  return buildField(field.name, field.label, field.readOnly, field.contextName, false);
8
8
  };
9
9
  function buildField(fieldName, fieldLabel, readOnly, contextName, switchMode) {
10
- return (h("div", { class: "ez-col ez-col--sd-12 ez-align--middle ez-padding-bottom--large" }, h("ez-check", { enabled: !readOnly, label: fieldLabel, mode: switchMode ? CheckMode.SWITCH : CheckMode.REGULAR, "data-field-name": fieldName, "data-context-name": contextName, key: fieldName })));
10
+ return (h("div", { class: "ez-col ez-col--sd-12 ez-align--middle ez-padding-top--medium ez-padding-bottom--medium" }, h("ez-check", { enabled: !readOnly, label: fieldLabel, mode: switchMode ? CheckMode.SWITCH : CheckMode.REGULAR, "data-field-name": fieldName, "data-context-name": contextName, key: fieldName })));
11
11
  }
@@ -1,5 +1,7 @@
1
1
  import { h } from "@stencil/core";
2
+ import { StringUtils } from "@sankhyalabs/core";
2
3
  export const buildSearch = ({ name, label, readOnly, required, contextName, canShowError, optionLoader, props }) => {
3
4
  var _a;
4
- return (h("div", { class: "ez-col ez-col--sd-12" }, h("ez-search", { class: "ez-input__no-margin", enabled: !readOnly, suppressEmptyOption: required, label: label, "data-field-name": name, "data-context-name": contextName, key: name, canShowError: canShowError, optionLoader: optionLoader, ignoreLimitCharsToSearch: (_a = props === null || props === void 0 ? void 0 : props.ignoreLimitCharsToSearch) !== null && _a !== void 0 ? _a : false })));
5
+ const hasDescriptionField = !StringUtils.isEmpty(props === null || props === void 0 ? void 0 : props.DESCRIPTIONFIELD);
6
+ return (h("div", { class: "ez-col ez-col--sd-12" }, h("ez-search", { class: "ez-input__no-margin", enabled: !readOnly, suppressEmptyOption: required, label: label, "data-field-name": name, "data-context-name": contextName, key: name, canShowError: canShowError, optionLoader: optionLoader, ignoreLimitCharsToSearch: (_a = props === null || props === void 0 ? void 0 : props.ignoreLimitCharsToSearch) !== null && _a !== void 0 ? _a : false, hideDescriptionInput: !hasDescriptionField })));
5
7
  };
@@ -763,7 +763,7 @@ export default class AgGridController {
763
763
  const colDefsWithConfigs = this.getColsDefWithConfigApplied(colDefs, this._lastColsConfig);
764
764
  this._gridOptions.api.setColumnDefs(colDefsWithConfigs);
765
765
  }
766
- getColsDefWithConfigApplied(colDefs, colsConfig) {
766
+ getColsDefWithConfigApplied(colDefs, colsConfig = []) {
767
767
  //Cria map de colunas existentes na config e seu índice
768
768
  const orderMap = colsConfig.reduce((map, col, index) => {
769
769
  map[col.name] = index;
@@ -1022,6 +1022,10 @@ export default class AgGridController {
1022
1022
  let cellStyle = this.getInitCellStyle();
1023
1023
  const primitiveUIType = (_a = source === null || source === void 0 ? void 0 : source.props) === null || _a === void 0 ? void 0 : _a.get("PRIMITIVETUIYPE");
1024
1024
  const uitype = source === null || source === void 0 ? void 0 : source.userInterface;
1025
+ if (uitype === UserInterface.SEARCH) {
1026
+ cellStyle['text-align'] = 'left';
1027
+ return cellStyle;
1028
+ }
1025
1029
  switch (primitiveUIType !== null && primitiveUIType !== void 0 ? primitiveUIType : uitype) {
1026
1030
  case UserInterface.DECIMALNUMBER:
1027
1031
  case UserInterface.INTEGERNUMBER:
@@ -6,6 +6,8 @@
6
6
  /*@doc Define o padding entre o conteúdo e o modal */
7
7
  --ez-modal-content-padding: 24px;
8
8
  display: block;
9
+ /*@doc Define a largura mínima do conteúdo do modal */
10
+ --ez-modal-content-min-width: auto;
9
11
  }
10
12
 
11
13
  .modal {
@@ -73,6 +75,7 @@
73
75
  flex-wrap: wrap;
74
76
  box-sizing: border-box;
75
77
  max-height: 100%;
78
+ min-width: var(--ez-modal-content-min-width);
76
79
  height: 100%;
77
80
  overflow-y: auto;
78
81
  background-color: rgb(255, 255, 255);
@@ -1,8 +1,8 @@
1
1
  :host {
2
2
  --ez-modal-container-overflow-y: auto;
3
3
  --ez-modal-container-overflow-x: hidden;
4
- display: grid;
5
- grid-template-rows: 0 auto 1fr auto 0;
4
+ display: flex;
5
+ flex-direction: column;
6
6
  width: 100%;
7
7
  height: 100%;
8
8
  }
@@ -23,6 +23,7 @@
23
23
  overflow-y: var(--ez-modal-container-overflow-y);
24
24
  overflow-x: var(--ez-modal-container-overflow-x);
25
25
  outline: none;
26
+ flex: 1 1 auto;
26
27
  }
27
28
 
28
29
  .ez-modal-container__content::-webkit-scrollbar {
@@ -35,7 +36,7 @@
35
36
  display: flex;
36
37
  flex-direction: row;
37
38
  justify-content: flex-end;
38
- gap: var(--space--medium);
39
+ gap: var(--space--8, 8px);
39
40
  width: 100%;
40
41
  padding-top: var(--space--small, 6px);
41
42
  }
@@ -55,9 +56,3 @@
55
56
  .ez-modal-container__close-icon {
56
57
  --icon--color: var(--title--primary, #2B3A54)
57
58
  }
58
-
59
- .ez-modal-container__focus-ctrl {
60
- height: 0px;
61
- background-color: transparent;
62
- border: none;
63
- }
@@ -13,6 +13,7 @@ export class EzModalContainer {
13
13
  this.cancelButtonStatus = undefined;
14
14
  this.okButtonStatus = undefined;
15
15
  this.showCloseButton = true;
16
+ this.autoFocus = false;
16
17
  }
17
18
  async handleEzModalAction(event) {
18
19
  var _a;
@@ -26,18 +27,25 @@ export class EzModalContainer {
26
27
  okIsVisible() {
27
28
  return (this.okButtonStatus !== ModalButtonStatus.HIDDEN && this.okButtonLabel != undefined);
28
29
  }
30
+ emitOkAction() {
31
+ this.ezModalAction.emit(ModalAction.OK);
32
+ }
29
33
  async componentWillLoad() {
30
34
  this.i18n = await initI18n();
31
35
  }
36
+ connectedCallback() {
37
+ this._keyboardManager = new KeyboardManager({ propagate: false, element: this._element })
38
+ .bind("Enter", () => this.emitOkAction())
39
+ .bind("Escape", () => this.closeModal())
40
+ .bind("Esc", () => this.closeModal());
41
+ }
32
42
  componentDidLoad() {
33
43
  window.requestAnimationFrame(() => {
34
44
  this.ezModalAction.emit(ModalAction.LOAD);
35
- this._modalRef.focus();
45
+ if (this.autoFocus) {
46
+ this._modalRef.focus();
47
+ }
36
48
  });
37
- this._keyboardManager = new KeyboardManager({ propagate: false, element: this._element })
38
- .bind("Enter", this.ezModalAction.emit.bind(ModalAction.OK))
39
- .bind("Escape", () => this.closeModal())
40
- .bind("Esc", () => this.closeModal());
41
49
  }
42
50
  disconnectedCallback() {
43
51
  var _a;
@@ -46,17 +54,8 @@ export class EzModalContainer {
46
54
  closeModal() {
47
55
  this.ezModalAction.emit("CLOSE");
48
56
  }
49
- focusLast() {
50
- if (this._okButton == undefined) {
51
- return;
52
- }
53
- this._okButton.setFocus();
54
- }
55
- focusFirst() {
56
- this._closeButton.focus();
57
- }
58
57
  render() {
59
- return (h(Host, null, h("button", { class: "ez-modal-container__focus-ctrl", onFocusin: () => this.focusLast() }), h("div", { ref: ref => this._modalRef = ref, tabIndex: -1, class: "ez-modal-container__header-container" }, this.showTitleBar && (h("div", { class: "ez-modal-container__header ez-margin-bottom--medium" }, h("div", { class: "ez-col ez-align--middle ez-modal-container__title" }, h("h2", { class: "ez-text ez-title--large ez-title--primary ez-text--bold ez-margin-vertical--extra-small" }, this.modalTitle), this.modalSubTitle && (h("div", { class: "ez-text ez-text--medium ez-text--primary ez-margin-vertical--extra-small" }, this.modalSubTitle))), (this.showCloseButton && h("button", { ref: ref => this._closeButton = ref, class: "ez-modal-container__close-button", onClick: () => this.ezModalAction.emit(ModalAction.CLOSE), "aria-label": this.i18n("app.close") }, h("ez-icon", { class: "ez-modal-container__close-icon", size: "medium", iconName: "close" })))))), h("div", { tabIndex: -1, class: "ez-modal-container__content" }, h("slot", null)), h("div", { tabIndex: -1, class: "ez-modal-container__footer" }, this.cancelIsVisible() && (h("ez-button", { label: this.cancelButtonLabel || this.i18n("app.cancel"), enabled: this.cancelButtonStatus !== ModalButtonStatus.DISABLED, onClick: () => this.ezModalAction.emit(ModalAction.CANCEL) })), this.okIsVisible() && (h("ez-button", { ref: ref => this._okButton = ref, class: "ez-button--primary", label: this.okButtonLabel || this.i18n("app.ok"), enabled: this.okButtonStatus !== ModalButtonStatus.DISABLED, onClick: () => this.ezModalAction.emit(ModalAction.OK) }))), h("button", { class: "ez-modal-container__focus-ctrl", onFocusin: () => this.focusFirst() })));
58
+ return (h(Host, null, h("header", { ref: ref => this._modalRef = ref, tabIndex: -1, class: "ez-modal-container__header-container" }, this.showTitleBar && (h("div", { class: "ez-modal-container__header ez-margin-bottom--medium" }, h("div", { class: "ez-col ez-align--middle ez-modal-container__title" }, h("h2", { class: "ez-text ez-title--large ez-title--primary ez-text--bold ez-margin-vertical--extra-small" }, this.modalTitle), this.modalSubTitle && (h("div", { class: "ez-text ez-text--medium ez-text--primary ez-margin-vertical--extra-small" }, this.modalSubTitle))), (this.showCloseButton && h("button", { ref: ref => this._closeButton = ref, class: "ez-modal-container__close-button", onClick: () => this.ezModalAction.emit(ModalAction.CLOSE), "aria-label": this.i18n("app.close") }, h("ez-icon", { class: "ez-modal-container__close-icon", size: "medium", iconName: "close" })))))), h("main", { tabIndex: -1, class: "ez-modal-container__content" }, h("slot", null)), h("footer", { tabIndex: -1, class: "ez-modal-container__footer" }, this.cancelIsVisible() && (h("ez-button", { label: this.cancelButtonLabel || this.i18n("app.cancel"), isDisabled: this.cancelButtonStatus === ModalButtonStatus.DISABLED, onClick: () => this.ezModalAction.emit(ModalAction.CANCEL) })), this.okIsVisible() && (h("ez-button", { ref: ref => this._okButton = ref, class: "ez-button--primary", label: this.okButtonLabel || this.i18n("app.ok"), isDisabled: this.okButtonStatus === ModalButtonStatus.DISABLED, onClick: () => this.emitOkAction() })))));
60
59
  }
61
60
  static get is() { return "ez-modal-container"; }
62
61
  static get encapsulation() { return "scoped"; }
@@ -209,6 +208,24 @@ export class EzModalContainer {
209
208
  "attribute": "show-close-button",
210
209
  "reflect": false,
211
210
  "defaultValue": "true"
211
+ },
212
+ "autoFocus": {
213
+ "type": "boolean",
214
+ "mutable": false,
215
+ "complexType": {
216
+ "original": "boolean",
217
+ "resolved": "boolean",
218
+ "references": {}
219
+ },
220
+ "required": false,
221
+ "optional": true,
222
+ "docs": {
223
+ "tags": [],
224
+ "text": "Se true o modal container receber\u00E1 o foco ao ser renderizado."
225
+ },
226
+ "attribute": "auto-focus",
227
+ "reflect": false,
228
+ "defaultValue": "false"
212
229
  }
213
230
  };
214
231
  }
@@ -149,6 +149,7 @@ export class EzNumberInput {
149
149
  if (parsedNumber !== this.value) {
150
150
  this._focused = true;
151
151
  this._changePending = true;
152
+ this.ezInput.emit(parsedNumber);
152
153
  this.ezStartChange.emit({ waitmessage: "", blocking: false });
153
154
  }
154
155
  }
@@ -446,6 +447,21 @@ export class EzNumberInput {
446
447
  "resolved": "void",
447
448
  "references": {}
448
449
  }
450
+ }, {
451
+ "method": "ezInput",
452
+ "name": "ezInput",
453
+ "bubbles": true,
454
+ "cancelable": true,
455
+ "composed": true,
456
+ "docs": {
457
+ "tags": [],
458
+ "text": "Emitido quando o usu\u00E1rio digita no campo."
459
+ },
460
+ "complexType": {
461
+ "original": "number",
462
+ "resolved": "number",
463
+ "references": {}
464
+ }
449
465
  }];
450
466
  }
451
467
  static get methods() {
@@ -38,7 +38,7 @@
38
38
  }
39
39
 
40
40
  .popup__container {
41
- width: 100%;
41
+ width: auto;
42
42
  max-height: 90%;
43
43
  height: 100%;
44
44
  display: flex;
@@ -54,7 +54,6 @@
54
54
  margin: 0;
55
55
  border: none;
56
56
  position: unset;
57
- gap: var(--space--16, 16px);
58
57
  }
59
58
 
60
59
  .popup__container--auto {
@@ -72,20 +71,21 @@
72
71
  }
73
72
 
74
73
  .popup__expandable-content {
74
+ flex-grow: 1;
75
75
  box-sizing: border-box;
76
76
  width: 100%;
77
- flex: 1;
78
77
  font-family: var(--font--pattern, "Roboto");
79
78
  font-size: var(--font-size--default, 14px);
80
79
  color: var(--title--primary, #00281D);
81
80
  font-weight: var(--font-weight--regular, 400);
82
- line-height: var(--line-height--24, 24px);
83
81
  }
84
82
 
85
83
  .popup__header {
84
+ flex-shrink: 0;
86
85
  width: 100%;
87
86
  display: flex;
88
87
  align-items: center;
88
+ margin-bottom: var(--space--16, 16px);
89
89
  }
90
90
 
91
91
  .popup__title {
@@ -115,12 +115,17 @@
115
115
  }
116
116
 
117
117
  .popup__footer {
118
+ flex-shrink: 0;
118
119
  display: flex;
119
120
  width: 100%;
120
121
  flex-direction: row-reverse;
121
122
  gap: var(--space--8, 8px);
122
123
  }
123
124
 
125
+ .popup_margin-top {
126
+ margin-top: var(--space--16, 16px);
127
+ }
128
+
124
129
  /* //////// GRID SYSTEM //////// */
125
130
 
126
131
  .row {
@@ -3,12 +3,17 @@ import { h, Host } from "@stencil/core";
3
3
  import initI18n from '../../utils/i18n';
4
4
  export class EzPopup {
5
5
  constructor() {
6
+ this.handleFooterSlotChange = (event) => {
7
+ const slot = event.target;
8
+ this._hasFooterSlotContent = slot.assignedElements().length > 0;
9
+ };
10
+ this._hasFooterSlotContent = false;
6
11
  this.size = "medium";
7
12
  this.opened = false;
8
13
  this.useHeader = true;
9
14
  this.heightMode = "full";
10
15
  this.ezTitle = undefined;
11
- this.enabledScroll = false;
16
+ this.enabledScroll = true;
12
17
  this.autoClose = true;
13
18
  this.footerButtons = [];
14
19
  }
@@ -59,6 +64,7 @@ export class EzPopup {
59
64
  }
60
65
  }
61
66
  getGridSize() {
67
+ var _a;
62
68
  const _sizeClasses = {
63
69
  "x-small": "col--sd-3 ez-popup__size-limit--x-small",
64
70
  "small": "col--sd-5",
@@ -71,16 +77,13 @@ export class EzPopup {
71
77
  if (!this.size || !_sizeClasses.hasOwnProperty(this.size)) {
72
78
  return _sizeClasses["medium"];
73
79
  }
74
- return _sizeClasses[this.size] || _sizeClasses["medium"];
80
+ return (_a = _sizeClasses[this.size]) !== null && _a !== void 0 ? _a : _sizeClasses["medium"];
75
81
  }
76
82
  getDialogClass() {
77
83
  let className = 'popup__container';
78
84
  if (this.heightMode === 'auto') {
79
85
  className += ' popup__container--auto';
80
86
  }
81
- if (this.enabledScroll) {
82
- className += ' popup__overflow-y--auto';
83
- }
84
87
  className += ` ${this.getGridSize()}`;
85
88
  return className;
86
89
  }
@@ -141,9 +144,18 @@ export class EzPopup {
141
144
  };
142
145
  }
143
146
  }
147
+ renderFooterButtons() {
148
+ return this.footerButtons.slice(0, 3).map((buttonProps, index) => (h("ez-button", Object.assign({ key: index }, this.handleDefaultPropsButtonsByIndex(index), buttonProps))));
149
+ }
144
150
  render() {
145
151
  return (h(Host, null, this.opened && (h("div", { class: "overlay", tabIndex: -1, onClick: this.handleAutoClose.bind(this) }, h("dialog", { ref: ref => this._popupRef = ref, class: this.getDialogClass() }, this.useHeader &&
146
- h("header", { class: "popup__header" }, !!this.ezTitle && h("h1", { class: "popup__title" }, this.ezTitle), h("ez-button", { class: this.ezTitle ? "btn-close" : "btn-close btn-close--solo", variant: "tertiary", mode: "icon", iconName: "close", size: "small", onClick: this.closePopup.bind(this) })), h("main", { class: "popup__expandable-content" }, h("slot", null)), this.footerButtons.length > 0 && (h("footer", { class: "popup__footer" }, this.footerButtons.slice(0, 3).map((buttonProps, index) => (h("ez-button", Object.assign({ key: index }, this.handleDefaultPropsButtonsByIndex(index), buttonProps)))))))))));
152
+ h("header", { class: "popup__header" }, !!this.ezTitle && h("h1", { class: "popup__title" }, this.ezTitle), h("ez-button", { class: this.ezTitle ? "btn-close" : "btn-close btn-close--solo", variant: "tertiary", mode: "icon", iconName: "close", size: "small", onClick: this.closePopup.bind(this) })), h("main", { class: {
153
+ "popup__expandable-content": true,
154
+ "popup__overflow-y--auto": this.enabledScroll
155
+ } }, h("slot", null)), h("footer", { class: {
156
+ "popup__footer": true,
157
+ "popup_margin-top": this.footerButtons.length > 0 || this._hasFooterSlotContent
158
+ } }, this.footerButtons.length > 0 && (this.renderFooterButtons()), h("slot", { name: 'footer', onSlotchange: this.handleFooterSlotChange })))))));
147
159
  }
148
160
  static get is() { return "ez-popup"; }
149
161
  static get encapsulation() { return "shadow"; }
@@ -264,7 +276,7 @@ export class EzPopup {
264
276
  },
265
277
  "attribute": "enabled-scroll",
266
278
  "reflect": false,
267
- "defaultValue": "false"
279
+ "defaultValue": "true"
268
280
  },
269
281
  "autoClose": {
270
282
  "type": "boolean",
@@ -313,6 +325,11 @@ export class EzPopup {
313
325
  }
314
326
  };
315
327
  }
328
+ static get states() {
329
+ return {
330
+ "_hasFooterSlotContent": {}
331
+ };
332
+ }
316
333
  static get events() {
317
334
  return [{
318
335
  "method": "ezClosePopup",
@@ -1,7 +1,7 @@
1
1
  import { h, Host } from "@stencil/core";
2
2
  import CSSVarsUtils from "../../utils/CSSVarsUtils";
3
3
  import { ElementIDUtils, ObjectUtils, StringUtils } from "@sankhyalabs/core";
4
- import { ApplicationUtils } from "../../utils";
4
+ import { ApplicationUtils, SearchMode } from "../../utils";
5
5
  import { replaceHighlight, replaceQuotes } from "./utils/searchFormatters";
6
6
  import initI18n from '../../utils/i18n';
7
7
  export class EzSearch {
@@ -43,6 +43,7 @@ export class EzSearch {
43
43
  this.alternativePlaceholder = undefined;
44
44
  this.showMore = undefined;
45
45
  this.suppressInputPersist = false;
46
+ this.hideDescriptionInput = false;
46
47
  }
47
48
  observeErrorMessage() {
48
49
  var _a;
@@ -350,7 +351,7 @@ export class EzSearch {
350
351
  }
351
352
  }
352
353
  async loadDescriptionValue(argument) {
353
- var _a, _b;
354
+ var _a, _b, _c;
354
355
  if (argument == undefined) {
355
356
  return;
356
357
  }
@@ -358,21 +359,30 @@ export class EzSearch {
358
359
  this.loadOptionValue(argument);
359
360
  return;
360
361
  }
362
+ const searchMode = this.hideDescriptionInput ? SearchMode.LOAD_DESCRIPTION : SearchMode.PREDICTIVE;
361
363
  const searchArgument = {
362
- mode: SearchMode.PREDICTIVE,
364
+ mode: searchMode,
363
365
  argument
364
366
  };
365
- const source = await ((_b = this.optionLoader) === null || _b === void 0 ? void 0 : _b.call(this, searchArgument, this.contextProperties));
366
- if (source == undefined) {
367
- return;
368
- }
369
- if (source instanceof Promise) {
370
- source.then((result) => {
371
- this.setDescriptionValue(result);
372
- });
367
+ try {
368
+ const source = await ((_b = this.optionLoader) === null || _b === void 0 ? void 0 : _b.call(this, searchArgument, this.contextProperties));
369
+ if (source == undefined) {
370
+ return;
371
+ }
372
+ if (source instanceof Promise) {
373
+ source.then((result) => {
374
+ this.setDescriptionValue(result);
375
+ });
376
+ }
377
+ else {
378
+ this.setDescriptionValue(source);
379
+ }
373
380
  }
374
- else {
375
- this.setDescriptionValue(source);
381
+ catch (error) {
382
+ if (((_c = error === null || error === void 0 ? void 0 : error.constructor) === null || _c === void 0 ? void 0 : _c.name) === "WarningException") {
383
+ this.errorMessage = error.message;
384
+ }
385
+ throw error;
376
386
  }
377
387
  }
378
388
  setDescriptionValue(source) {
@@ -1107,6 +1117,24 @@ export class EzSearch {
1107
1117
  "attribute": "suppress-input-persist",
1108
1118
  "reflect": false,
1109
1119
  "defaultValue": "false"
1120
+ },
1121
+ "hideDescriptionInput": {
1122
+ "type": "boolean",
1123
+ "mutable": true,
1124
+ "complexType": {
1125
+ "original": "boolean",
1126
+ "resolved": "boolean",
1127
+ "references": {}
1128
+ },
1129
+ "required": false,
1130
+ "optional": false,
1131
+ "docs": {
1132
+ "tags": [],
1133
+ "text": "Se true o campo de descri\u00E7\u00E3o n\u00E3o ser\u00E1 exibido."
1134
+ },
1135
+ "attribute": "hide-description-input",
1136
+ "reflect": true,
1137
+ "defaultValue": "false"
1110
1138
  }
1111
1139
  };
1112
1140
  }
@@ -1247,9 +1275,3 @@ export class EzSearch {
1247
1275
  }];
1248
1276
  }
1249
1277
  }
1250
- var SearchMode;
1251
- (function (SearchMode) {
1252
- SearchMode["ADVANCED"] = "ADVANCED";
1253
- SearchMode["PRELOAD"] = "PRELOAD";
1254
- SearchMode["PREDICTIVE"] = "PREDICTIVE";
1255
- })(SearchMode || (SearchMode = {}));
@@ -6,6 +6,7 @@ export class EzSearchPlus {
6
6
  constructor() {
7
7
  this.SEARCH_DESCRIPTION_TIMEOUT = 300;
8
8
  this.INTERVAL_TO_RETRY_ASYNC_VALUE = 100;
9
+ this._ignoreNextValue = false;
9
10
  this.value = undefined;
10
11
  this.enabled = true;
11
12
  this.disableCodeInput = false;
@@ -38,6 +39,11 @@ export class EzSearchPlus {
38
39
  this.showLoading = true;
39
40
  }
40
41
  async observeValue(newValue, oldValue) {
42
+ var _a;
43
+ if (this._ignoreNextValue) {
44
+ this._ignoreNextValue = false;
45
+ return;
46
+ }
41
47
  const newNormalizedValue = this.normalizeValueToCodeValue(newValue);
42
48
  const oldNormalizedValue = this.normalizeValueToCodeValue(oldValue);
43
49
  if (newNormalizedValue === oldNormalizedValue) {
@@ -57,12 +63,17 @@ export class EzSearchPlus {
57
63
  }
58
64
  }
59
65
  catch (err) {
60
- this.value = undefined;
66
+ this._ignoreNextValue = true;
67
+ this.clearSearch();
61
68
  console.warn("[EzSearchPlus] Erro ao obter descrição do registro.", err);
69
+ if (((_a = err === null || err === void 0 ? void 0 : err.constructor) === null || _a === void 0 ? void 0 : _a.name) === "WarningException") {
70
+ this.errorMessage = err.message;
71
+ }
62
72
  throw err;
63
73
  }
64
74
  this.value = this.buildCurrentValue();
65
75
  this.ezChange.emit(this.value);
76
+ this.errorMessage = null;
66
77
  }
67
78
  canShowLoadSpinDescription() {
68
79
  return this.isLoadingDescription;
@@ -141,8 +152,11 @@ export class EzSearchPlus {
141
152
  }
142
153
  clearSearch() {
143
154
  this.value = null;
155
+ this.codeValue = null;
144
156
  this.descriptionValue = null;
145
- this._textInputDescriptionValue.value = null;
157
+ if (!this.hideDescriptionInput) {
158
+ this._textInputDescriptionValue.value = null;
159
+ }
146
160
  }
147
161
  getCodLabel() {
148
162
  var _a;
@@ -42,7 +42,7 @@
42
42
  /*@doc Define a família da fonte do label.*/
43
43
  --ez-split-button--font-family: var(--font-pattern, Arial);
44
44
  /*@doc Define o peso da fonte do label.*/
45
- --ez-split-button--font-weight: var(--font-weight--regular,400);
45
+ --ez-split-button--font-weight: var(--font-weight--medium, 500);
46
46
  /*@doc Define o raio da borda do botão.*/
47
47
  --ez-split-button--border-radius: var(--border--radius-24, 24px);
48
48
  /*@doc Define a cor do texto e do ícone quando o cursor está sobre o botão.*/
@@ -137,7 +137,12 @@
137
137
  .ez-split-button.medium {
138
138
  --ez-split-button--height: var(--space--32, 32px);
139
139
  }
140
-
140
+
141
+ .ez-split-button.small {
142
+ --ez-split-button--height: var(--space--32, 32px);
143
+ --ez-split-button--font-size: var(--text--small, 12px);
144
+ }
145
+
141
146
  ez-icon {
142
147
  --ez-icon--color: inherit;
143
148
  }