@sankhyalabs/ezui 2.0.10 → 2.2.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 (125) hide show
  1. package/dist/cjs/ez-button.cjs.entry.js +11 -0
  2. package/dist/cjs/ez-calendar.cjs.entry.js +2 -1
  3. package/dist/cjs/ez-card-item.cjs.entry.js +7 -0
  4. package/dist/cjs/ez-check.cjs.entry.js +10 -0
  5. package/dist/cjs/ez-chip.cjs.entry.js +7 -0
  6. package/dist/cjs/ez-collapsible-box.cjs.entry.js +4 -0
  7. package/dist/cjs/ez-combo-box.cjs.entry.js +6 -0
  8. package/dist/cjs/ez-date-input.cjs.entry.js +9 -0
  9. package/dist/cjs/ez-date-time-input.cjs.entry.js +9 -0
  10. package/dist/cjs/ez-filter-input.cjs.entry.js +7 -0
  11. package/dist/cjs/ez-form.cjs.entry.js +14 -4
  12. package/dist/cjs/ez-grid.cjs.entry.js +9 -1
  13. package/dist/cjs/ez-number-input.cjs.entry.js +6 -0
  14. package/dist/cjs/ez-radio-button.cjs.entry.js +6 -0
  15. package/dist/cjs/ez-search.cjs.entry.js +7 -0
  16. package/dist/cjs/ez-tabselector.cjs.entry.js +24 -4
  17. package/dist/cjs/ez-text-area.cjs.entry.js +7 -0
  18. package/dist/cjs/ez-text-edit.cjs.entry.js +7 -0
  19. package/dist/cjs/ez-text-input.cjs.entry.js +6 -0
  20. package/dist/cjs/ez-time-input.cjs.entry.js +6 -0
  21. package/dist/cjs/ez-upload.cjs.entry.js +4 -0
  22. package/dist/cjs/ez-view-stack.cjs.entry.js +4 -0
  23. package/dist/collection/components/ez-button/ez-button.js +12 -1
  24. package/dist/collection/components/ez-calendar/ez-calendar.js +2 -1
  25. package/dist/collection/components/ez-card-item/ez-card-item.js +8 -1
  26. package/dist/collection/components/ez-check/ez-check.js +11 -1
  27. package/dist/collection/components/ez-chip/ez-chip.js +8 -1
  28. package/dist/collection/components/ez-collapsible-box/ez-collapsible-box.js +4 -0
  29. package/dist/collection/components/ez-combo-box/ez-combo-box.js +7 -1
  30. package/dist/collection/components/ez-date-input/ez-date-input.js +10 -1
  31. package/dist/collection/components/ez-date-time-input/ez-date-time-input.js +10 -1
  32. package/dist/collection/components/ez-filter-input/ez-filter-input.js +7 -0
  33. package/dist/collection/components/ez-form/ez-form.js +13 -3
  34. package/dist/collection/components/ez-form/structure/FormSheet.js +2 -2
  35. package/dist/collection/components/ez-grid/ez-grid.js +11 -2
  36. package/dist/collection/components/ez-number-input/ez-number-input.js +7 -1
  37. package/dist/collection/components/ez-radio-button/ez-radio-button.js +6 -0
  38. package/dist/collection/components/ez-search/ez-search.js +7 -0
  39. package/dist/collection/components/ez-tabselector/ez-tabselector.js +24 -4
  40. package/dist/collection/components/ez-text-area/ez-text-area.js +7 -0
  41. package/dist/collection/components/ez-text-edit/ez-text-edit.js +9 -2
  42. package/dist/collection/components/ez-text-input/ez-text-input.js +7 -1
  43. package/dist/collection/components/ez-time-input/ez-time-input.js +7 -1
  44. package/dist/collection/components/ez-upload/ez-upload.js +4 -0
  45. package/dist/collection/components/ez-view-stack/ez-view-stack.js +4 -0
  46. package/dist/custom-elements/index.js +161 -11
  47. package/dist/esm/ez-button.entry.js +12 -1
  48. package/dist/esm/ez-calendar.entry.js +2 -1
  49. package/dist/esm/ez-card-item.entry.js +8 -1
  50. package/dist/esm/ez-check.entry.js +11 -1
  51. package/dist/esm/ez-chip.entry.js +8 -1
  52. package/dist/esm/ez-collapsible-box.entry.js +4 -0
  53. package/dist/esm/ez-combo-box.entry.js +7 -1
  54. package/dist/esm/ez-date-input.entry.js +10 -1
  55. package/dist/esm/ez-date-time-input.entry.js +10 -1
  56. package/dist/esm/ez-filter-input.entry.js +7 -0
  57. package/dist/esm/ez-form.entry.js +15 -5
  58. package/dist/esm/ez-grid.entry.js +11 -3
  59. package/dist/esm/ez-number-input.entry.js +7 -1
  60. package/dist/esm/ez-radio-button.entry.js +6 -0
  61. package/dist/esm/ez-search.entry.js +7 -0
  62. package/dist/esm/ez-tabselector.entry.js +24 -4
  63. package/dist/esm/ez-text-area.entry.js +7 -0
  64. package/dist/esm/ez-text-edit.entry.js +9 -2
  65. package/dist/esm/ez-text-input.entry.js +7 -1
  66. package/dist/esm/ez-time-input.entry.js +7 -1
  67. package/dist/esm/ez-upload.entry.js +4 -0
  68. package/dist/esm/ez-view-stack.entry.js +4 -0
  69. package/dist/ezui/ezui.esm.js +1 -1
  70. package/dist/ezui/p-019c7fc4.entry.js +1 -0
  71. package/dist/ezui/p-04fab1e9.entry.js +1 -0
  72. package/dist/ezui/p-107aff56.entry.js +1 -0
  73. package/dist/ezui/p-3cfefc57.entry.js +1 -0
  74. package/dist/ezui/p-4b2595f4.entry.js +1 -0
  75. package/dist/ezui/p-587e8dca.entry.js +1 -0
  76. package/dist/ezui/p-6700360e.entry.js +1 -0
  77. package/dist/ezui/p-6a8e7fb2.entry.js +1 -0
  78. package/dist/ezui/p-74e6c2a9.entry.js +1 -0
  79. package/dist/ezui/{p-d0b8330e.entry.js → p-77b7b623.entry.js} +2 -2
  80. package/dist/ezui/p-7b8d1f1c.entry.js +1 -0
  81. package/dist/ezui/p-88d0fc06.entry.js +1 -0
  82. package/dist/ezui/p-8c874b58.entry.js +1 -0
  83. package/dist/ezui/p-8eae779b.entry.js +1 -0
  84. package/dist/ezui/p-9d57e44a.entry.js +1 -0
  85. package/dist/ezui/p-a595dd4e.entry.js +1 -0
  86. package/dist/ezui/p-a713a1aa.entry.js +1 -0
  87. package/dist/ezui/p-b484a0b3.entry.js +1 -0
  88. package/dist/ezui/p-c55f63c6.entry.js +1 -0
  89. package/dist/ezui/p-dff2b725.entry.js +1 -0
  90. package/dist/ezui/p-e38c4efe.entry.js +1 -0
  91. package/dist/ezui/p-fe578dc0.entry.js +1 -0
  92. package/dist/types/components/ez-button/ez-button.d.ts +2 -0
  93. package/dist/types/components/ez-card-item/ez-card-item.d.ts +2 -0
  94. package/dist/types/components/ez-check/ez-check.d.ts +2 -0
  95. package/dist/types/components/ez-chip/ez-chip.d.ts +1 -0
  96. package/dist/types/components/ez-collapsible-box/ez-collapsible-box.d.ts +1 -0
  97. package/dist/types/components/ez-form/ez-form.d.ts +3 -0
  98. package/dist/types/components/ez-form/structure/FormSheet.d.ts +1 -0
  99. package/dist/types/components/ez-grid/ez-grid.d.ts +3 -0
  100. package/dist/types/components/ez-radio-button/ez-radio-button.d.ts +1 -0
  101. package/dist/types/components/ez-tabselector/ez-tabselector.d.ts +3 -1
  102. package/dist/types/components/ez-text-edit/ez-text-edit.d.ts +1 -0
  103. package/dist/types/components/ez-view-stack/ez-view-stack.d.ts +1 -0
  104. package/package.json +1 -1
  105. package/dist/ezui/p-00d35755.entry.js +0 -1
  106. package/dist/ezui/p-0bd0afcf.entry.js +0 -1
  107. package/dist/ezui/p-0c7203d5.entry.js +0 -1
  108. package/dist/ezui/p-11e137bb.entry.js +0 -1
  109. package/dist/ezui/p-1a17b0f5.entry.js +0 -1
  110. package/dist/ezui/p-1d054ad5.entry.js +0 -1
  111. package/dist/ezui/p-2ccad880.entry.js +0 -1
  112. package/dist/ezui/p-43bb6a59.entry.js +0 -1
  113. package/dist/ezui/p-56688470.entry.js +0 -1
  114. package/dist/ezui/p-5bdb1a41.entry.js +0 -1
  115. package/dist/ezui/p-63d567cc.entry.js +0 -1
  116. package/dist/ezui/p-659616e4.entry.js +0 -1
  117. package/dist/ezui/p-744eb735.entry.js +0 -1
  118. package/dist/ezui/p-7f9196f6.entry.js +0 -1
  119. package/dist/ezui/p-9b9ebf95.entry.js +0 -1
  120. package/dist/ezui/p-a15171b4.entry.js +0 -1
  121. package/dist/ezui/p-ac296141.entry.js +0 -1
  122. package/dist/ezui/p-e697ffd5.entry.js +0 -1
  123. package/dist/ezui/p-efa32bcc.entry.js +0 -1
  124. package/dist/ezui/p-f27c364b.entry.js +0 -1
  125. package/dist/ezui/p-fe75f477.entry.js +0 -1
@@ -1,6 +1,6 @@
1
1
  import { HTMLElement as HTMLElement$1, createEvent, h, Host, forceUpdate, proxyCustomElement } from '@stencil/core/internal/client';
2
2
  export { setAssetPath, setPlatformOptions } from '@stencil/core/internal/client';
3
- import { FloatingManager, DateUtils as DateUtils$1, TimeFormatter, UserInterface, Action, WaitingChangeException, ApplicationContext, DataUnitAction, DataUnit, ObjectUtils as ObjectUtils$1, StringUtils as StringUtils$1, NumberUtils as NumberUtils$1, DataType, SortMode, UserAgentUtils, MaskFormatter } from '@sankhyalabs/core';
3
+ import { FloatingManager, ElementIDUtils, StringUtils as StringUtils$1, DateUtils as DateUtils$1, TimeFormatter, UserInterface, Action, WaitingChangeException, ApplicationContext, DataUnitAction, DataUnit, ObjectUtils as ObjectUtils$1, NumberUtils as NumberUtils$1, DataType, SortMode, UserAgentUtils, MaskFormatter } from '@sankhyalabs/core';
4
4
 
5
5
  var DialogType;
6
6
  (function (DialogType) {
@@ -346,6 +346,15 @@ let EzButton$1 = class extends HTMLElement$1 {
346
346
  async setBlur() {
347
347
  this._button.blur();
348
348
  }
349
+ componentDidLoad() {
350
+ if (this._element) {
351
+ ElementIDUtils.addIDInfo(this._element);
352
+ }
353
+ if (this._button) {
354
+ const dataInfo = { id: 'ezButton_internal_button' };
355
+ ElementIDUtils.addIDInfo(this._button, null, dataInfo);
356
+ }
357
+ }
349
358
  getIconSize(sizeParam = "medium") {
350
359
  const sizeList = ["small", "medium", "large"];
351
360
  const sizeLowerCase = this.size && this.size.toLowerCase();
@@ -389,6 +398,7 @@ let EzButton$1 = class extends HTMLElement$1 {
389
398
  return (h("button", { class: this.getIconSize(""), type: "button", disabled: !this.enabled, ref: (el) => this._button = el }, h("slot", { name: "leftIcon", onSlotchange: (ev) => { this.handleSlotChange(ev); } }), this.label, h("slot", { name: "rightIcon", onSlotchange: (ev) => { this.handleSlotChange(ev); } })));
390
399
  }
391
400
  }
401
+ get _element() { return this; }
392
402
  static get style() { return ezButtonCss; }
393
403
  };
394
404
 
@@ -568,6 +578,7 @@ let EzCalendar$1 = class extends HTMLElement$1 {
568
578
  const date = new Date();
569
579
  date.setTime(firstDate.getTime());
570
580
  date.setDate(date.getDate() + offset + index);
581
+ let dataDayMonth = `${date.getMonth() + 1}-${date.getDate()}-${date.getFullYear()}`;
571
582
  let classNames = "calendar__cell";
572
583
  if (this._currentPosition.getMonth() != date.getMonth()) {
573
584
  classNames += " calendar__cell--secondary";
@@ -575,7 +586,7 @@ let EzCalendar$1 = class extends HTMLElement$1 {
575
586
  else if (this.isSelectedDate(date)) {
576
587
  classNames += " calendar__cell--selected";
577
588
  }
578
- return h("div", { class: classNames, onClick: () => this.selectDate(date) }, date.getDate());
589
+ return h("div", { "data-day-month": dataDayMonth, class: classNames, onClick: () => this.selectDate(date) }, date.getDate());
579
590
  })))), h("div", { class: "calendar__footer" }, h("button", { class: "calendar__btn-today", onClick: () => this.selectDate(new Date()) }, this._todayLabel))), (this.time || this.showSeconds) &&
580
591
  h("div", { class: "calendar-time" }, h("div", { class: "calendar-time__header" }, h("div", null, "H"), h("div", { class: "separatorTime" }, ":"), h("div", null, "M"), this.showSeconds &&
581
592
  h("div", { class: "separatorTime" }, ":"), this.showSeconds &&
@@ -621,6 +632,11 @@ let EzCardItem$1 = class extends HTMLElement$1 {
621
632
  componentWillRender() {
622
633
  this.createDetailList();
623
634
  }
635
+ componentDidLoad() {
636
+ var _a, _b;
637
+ const dataInfo = { id: StringUtils$1.toCamelCase(((_a = this.item) === null || _a === void 0 ? void 0 : _a.key) || ((_b = this.item) === null || _b === void 0 ? void 0 : _b.title) || "") };
638
+ ElementIDUtils.addIDInfo(this._element, null, dataInfo);
639
+ }
624
640
  createDetailList() {
625
641
  var _a, _b, _c;
626
642
  this._details = { detailsLeft: [], detailsRight: [] };
@@ -645,6 +661,7 @@ let EzCardItem$1 = class extends HTMLElement$1 {
645
661
  return this.buildDetailContent(detail);
646
662
  }))))));
647
663
  }
664
+ get _element() { return this; }
648
665
  static get style() { return ezCardItemCss; }
649
666
  };
650
667
 
@@ -683,6 +700,14 @@ let EzCheck$1 = class extends HTMLElement$1 {
683
700
  async setFocus() {
684
701
  this._inputElem.focus();
685
702
  }
703
+ componentDidLoad() {
704
+ if (this._inputElem) {
705
+ ElementIDUtils.addIDInfo(this._inputElem, 'input');
706
+ }
707
+ if (this._element) {
708
+ ElementIDUtils.addIDInfo(this._element, 'input');
709
+ }
710
+ }
686
711
  changeValue() {
687
712
  if (!this.enabled) {
688
713
  return;
@@ -704,6 +729,7 @@ let EzCheck$1 = class extends HTMLElement$1 {
704
729
  render() {
705
730
  return (h(Host, null, h("input", { type: "checkbox", ref: (el) => this._inputElem = el, class: this.getInputClasses(), checked: this.value === true, onChange: () => { this.changeValue(); }, indeterminate: this.indeterminate, disabled: !this.enabled }), this.label ? h("label", { class: this.getLabelClasses(), onClick: () => { this.changeValue(); }, title: this.label }, this.label) : undefined));
706
731
  }
732
+ get _element() { return this; }
707
733
  static get style() { return ezCheckCss; }
708
734
  };
709
735
 
@@ -794,14 +820,20 @@ let EzChip$1 = class extends HTMLElement$1 {
794
820
  // Lifecycle web component
795
821
  //---------------------------------------------
796
822
  componentDidLoad() {
823
+ if (this._element) {
824
+ ElementIDUtils.addIDInfo(this._element, 'ezChip');
825
+ }
797
826
  if (this._containerElem) {
798
827
  this.observeValue();
799
828
  this.observeEnabled();
829
+ this._containerElem.setAttribute("data-element-id", 'ezChip_internal_button');
830
+ ElementIDUtils.addIDInfo(this._containerElem);
800
831
  }
801
832
  }
802
833
  render() {
803
834
  return (h("button", { onClick: (ev) => this.handleClick(ev), class: "label__container" + (this.removePosition === "left" ? " label__container--row-reverse" : ""), ref: (el) => this._containerElem = el }, h("div", { class: "label__content" }, h("slot", { name: "leftIcon", onSlotchange: (ev) => { this.handleSlotChange(ev); } }), h("label", { class: "lbl " + (this.value ? "lbl--active " : ""), ref: (el) => this._labelElem = el, title: this.label }, this.formatLabel()), h("slot", { name: "rightIcon", onSlotchange: (ev) => { this.handleSlotChange(ev); } })), this.mode !== 'action' && this.removePosition && h("ez-icon", { class: "btn-close", size: "small", "icon-name": "close" })));
804
835
  }
836
+ get _element() { return this; }
805
837
  static get watchers() { return {
806
838
  "value": ["observeValue"],
807
839
  "enabled": ["observeEnabled"]
@@ -927,6 +959,9 @@ let EzCollapsibleBox$1 = class extends HTMLElement$1 {
927
959
  };
928
960
  return styledLabel;
929
961
  }
962
+ componentDidLoad() {
963
+ ElementIDUtils.addIDInfo(this._hostElement);
964
+ }
930
965
  render() {
931
966
  return (h("div", { class: "collapsible-box" }, h("div", { class: "collapsible-box__header" }, h("button", Object.assign({}, (!this._activeEditText ? { onClick: () => { this.showHide(); } } : null), { class: "collapsible-box__title" +
932
967
  (this.iconPlacement === "right" ? " collapsible-box__title--icon-right" : "") +
@@ -1296,6 +1331,12 @@ let EzComboBox$1 = class extends HTMLElement$1 {
1296
1331
  componentDidLoad() {
1297
1332
  CSSVarsUtils.applyVarsTextInput(this.el, this._textInput);
1298
1333
  this.setInputValue(false);
1334
+ if (this.el) {
1335
+ ElementIDUtils.addIDInfo(this.el, 'input');
1336
+ if (this._textInput) {
1337
+ ElementIDUtils.addIDInfo(this._textInput, 'internal_input', { id: this.el.getAttribute("data-element-id") });
1338
+ }
1339
+ }
1299
1340
  }
1300
1341
  //---------------------------------------------
1301
1342
  // Event handlers
@@ -1547,6 +1588,15 @@ let EzDateInput$1 = class extends HTMLElement$1 {
1547
1588
  componentDidLoad() {
1548
1589
  CSSVarsUtils.applyVarsTextInput(this._elem, this._textInput);
1549
1590
  this.setInputValue();
1591
+ if (this._elem) {
1592
+ ElementIDUtils.addIDInfo(this._elem, 'input');
1593
+ if (this._textInput) {
1594
+ ElementIDUtils.addIDInfo(this._textInput, 'internal_input', { id: this._elem.getAttribute("data-element-id") });
1595
+ }
1596
+ if (this._calendar) {
1597
+ ElementIDUtils.addIDInfo(this._calendar, 'internal_calendar', { id: this._elem.getAttribute("data-element-id") });
1598
+ }
1599
+ }
1550
1600
  }
1551
1601
  render() {
1552
1602
  return (h(Host, null, h("ez-text-input", { 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 }, h("button", { disabled: !this.enabled, tabindex: -1, class: "btn-open-cal", onClick: () => this.showCalendar(), slot: "leftIcon" })), h("ez-calendar", { onEzChange: (event) => { this.hideCalendar(); event.stopPropagation(); }, floating: true, ref: elem => this._calendar = elem })));
@@ -1753,6 +1803,15 @@ let EzDateTimeInput$1 = class extends HTMLElement$1 {
1753
1803
  componentDidLoad() {
1754
1804
  CSSVarsUtils.applyVarsTextInput(this._elem, this._textInput);
1755
1805
  this.setInputValue();
1806
+ if (this._elem) {
1807
+ ElementIDUtils.addIDInfo(this._elem, 'input');
1808
+ if (this._textInput) {
1809
+ ElementIDUtils.addIDInfo(this._textInput, 'internal_input', { id: this._elem.getAttribute("data-element-id") });
1810
+ }
1811
+ if (this._calendar) {
1812
+ ElementIDUtils.addIDInfo(this._calendar, 'internal_calendar', { id: this._elem.getAttribute("data-element-id") });
1813
+ }
1814
+ }
1756
1815
  }
1757
1816
  render() {
1758
1817
  return (h(Host, null, h("ez-text-input", { ref: elem => this._textInput = elem, "data-slave-mode": "true", label: this.label, restrict: "0123456789/: ", enabled: this.enabled, errorMessage: this.errorMessage, mode: this.mode, onKeyDown: event => { this.handleKeyDown(event); }, onBlur: () => this.handleBlur(), onInput: (evt) => this.handleInput(evt), onFocus: () => this.handleFocus(), onClick: () => this.handleClick() }, h("button", { disabled: !this.enabled, tabindex: -1, class: "btn-open-cal", onClick: () => this.showCalendar(), slot: "leftIcon" })), h("ez-calendar", { onEzChange: (event) => { this.changeValue(this._calendar.value); event.stopPropagation(); }, floating: true, ref: elem => this._calendar = elem, time: true, showSeconds: this.showSeconds })));
@@ -1967,6 +2026,12 @@ let EzFilterInput$1 = class extends HTMLElement$1 {
1967
2026
  }
1968
2027
  componentDidLoad() {
1969
2028
  CSSVarsUtils.applyVarsTextInput(this._elem, this._textInput);
2029
+ if (this._elem) {
2030
+ ElementIDUtils.addIDInfo(this._elem, 'input');
2031
+ if (this._textInput) {
2032
+ ElementIDUtils.addIDInfo(this._textInput, 'internal_input', { id: this._elem.getAttribute("data-element-id") });
2033
+ }
2034
+ }
1970
2035
  }
1971
2036
  render() {
1972
2037
  return (h("ez-text-input", { ref: elem => this._textInput = elem, label: this.label, onEzChange: evt => this.changeValue(evt), value: this.value, enabled: this.enabled, errorMessage: this.errorMessage, restrict: this.restrict, loading: this.loading, mode: this.mode }, h("ez-icon", { slot: "leftIcon", iconName: "search" })));
@@ -2103,8 +2168,8 @@ const FormItem = ({ source }) => {
2103
2168
  }
2104
2169
  };
2105
2170
 
2106
- const FormSheet = ({ store, source }) => {
2107
- return (h("div", { class: "dynamic-content ez-box__container" },
2171
+ const FormSheet = ({ store, source, dataElementId }) => {
2172
+ return (h("div", { class: "dynamic-content ez-box__container", "data-element-id": dataElementId },
2108
2173
  h("div", { class: "ez-row ez-padding-vertical--small" }, source.items.map(item => h(FormItem, { store: store, source: item })))));
2109
2174
  };
2110
2175
 
@@ -2918,9 +2983,11 @@ let EzForm$1 = class extends HTMLElement$1 {
2918
2983
  const tabs = allSheets.map((sheet, index) => {
2919
2984
  return { tabKey: sheet.name, label: sheet.label, index };
2920
2985
  });
2921
- result.push(h("ez-tabselector", { tabs: tabs, onEzChange: (evt) => this._store.dispatch(changeTab(evt.detail)), selectedTab: currentSheet.name }));
2986
+ const idTabSelector = `${this._dataElementIdEzForm}_internal_tabSelector`;
2987
+ result.push(h("ez-tabselector", { tabs: this.buildIdTabSelector(tabs), onEzChange: (evt) => this._store.dispatch(changeTab(evt.detail)), selectedTab: currentSheet.name, "data-element-id": idTabSelector }));
2922
2988
  }
2923
- result.push(h(FormSheet, { store: this._store, source: currentSheet }));
2989
+ const idFormSheet = `${this._dataElementIdEzForm}_${StringUtils$1.toCamelCase(currentSheet.label)}`;
2990
+ result.push(h(FormSheet, { store: this._store, source: currentSheet, dataElementId: idFormSheet }));
2924
2991
  return result;
2925
2992
  }
2926
2993
  processMetadata() {
@@ -2983,6 +3050,8 @@ let EzForm$1 = class extends HTMLElement$1 {
2983
3050
  this._store.subscribe(() => forceUpdate(this));
2984
3051
  this._staticFields = Array.from(this._element.querySelectorAll("[data-field-name]"));
2985
3052
  this.processMetadata();
3053
+ const dataInfo = { dataUnit: this.dataUnit };
3054
+ this._dataElementIdEzForm = ElementIDUtils.addIDInfo(this._element, null, dataInfo);
2986
3055
  }
2987
3056
  componentDidRender() {
2988
3057
  this._dataBinder.bind(Array.from(this._element.querySelectorAll("[data-field-name]")));
@@ -2993,6 +3062,12 @@ let EzForm$1 = class extends HTMLElement$1 {
2993
3062
  this.dataUnit.removeInterceptor(this);
2994
3063
  this._dataBinder.onDisconnectedCallback();
2995
3064
  }
3065
+ buildIdTabSelector(tabs) {
3066
+ if (tabs) {
3067
+ tabs.forEach(tab => tab["data-element-id"] = `${this._dataElementIdEzForm}_${StringUtils$1.toCamelCase(tab.label)}`);
3068
+ }
3069
+ return tabs;
3070
+ }
2996
3071
  render() {
2997
3072
  return (h(Host, null, this.isStatic() ? null : this.getDynamicContent()));
2998
3073
  }
@@ -118344,6 +118419,13 @@ let EzGrid$1 = class extends HTMLElement$1 {
118344
118419
  if (this.config) {
118345
118420
  this.observeConfig(this.config);
118346
118421
  }
118422
+ this.buildDataElementId();
118423
+ }
118424
+ buildDataElementId() {
118425
+ const dataInfo = { dataUnit: this.dataUnit };
118426
+ const dataElementIdEzGrid = ElementIDUtils.addIDInfo(this._element, null, dataInfo);
118427
+ const dtInfo = { id: `${dataElementIdEzGrid}_ezGrid_pagination` };
118428
+ ElementIDUtils.addIDInfo(this._refPaginationControl, null, dtInfo);
118347
118429
  }
118348
118430
  previousPage() {
118349
118431
  if (this.dataUnit) {
@@ -118370,9 +118452,10 @@ let EzGrid$1 = class extends HTMLElement$1 {
118370
118452
  this._gridController.setColumnsState(config.columns);
118371
118453
  }
118372
118454
  render() {
118373
- return (h(Host, null, h("div", { class: "ez-box ez-box--shadow ez-padding--medium grid-header" }, h("div", { class: "grid-header__container" }, h("slot", { name: "leftButtons" })), h("div", { class: "grid-header__container" }, this.getPaginationControl())), h("div", { class: "grid__container ez-grid", ref: elem => this._container = elem }), h("div", { class: "grid__footer" })));
118455
+ return (h(Host, null, h("div", { class: "ez-box ez-box--shadow ez-padding--medium grid-header" }, h("div", { class: "grid-header__container" }, h("slot", { name: "leftButtons" })), h("div", { class: "grid-header__container", ref: ref => this._refPaginationControl = ref }, this.getPaginationControl())), h("div", { class: "grid__container ez-grid", ref: elem => this._container = elem }), h("div", { class: "grid__footer" })));
118374
118456
  }
118375
118457
  static get assetsDirs() { return ["../assets"]; }
118458
+ get _element() { return this; }
118376
118459
  static get watchers() { return {
118377
118460
  "config": ["observeConfig"]
118378
118461
  }; }
@@ -119201,6 +119284,12 @@ let EzNumberInput$1 = class extends HTMLElement$1 {
119201
119284
  componentDidLoad() {
119202
119285
  CSSVarsUtils.applyVarsTextInput(this._elem, this._textInput);
119203
119286
  this.setInputValue();
119287
+ if (this._elem) {
119288
+ ElementIDUtils.addIDInfo(this._elem, 'input');
119289
+ if (this._textInput) {
119290
+ ElementIDUtils.addIDInfo(this._textInput, 'internal_input', { id: this._elem.getAttribute("data-element-id") });
119291
+ }
119292
+ }
119204
119293
  }
119205
119294
  render() {
119206
119295
  return (h("ez-text-input", { ref: elem => this._textInput = elem, "data-slave-mode": "true", label: this.label, onBlur: () => this.handleBlur(), onInput: () => this.handleInput(), restrict: this.precision > 0 ? "0123456789-,." : "0123456789-", enabled: this.enabled, errorMessage: this.errorMessage, mode: this.mode }));
@@ -119426,6 +119515,11 @@ let EzRadioButton$1 = class extends HTMLElement$1 {
119426
119515
  */
119427
119516
  this.direction = "vertical";
119428
119517
  }
119518
+ componentDidLoad() {
119519
+ if (this.hostElement) {
119520
+ ElementIDUtils.addIDInfo(this.hostElement, 'input');
119521
+ }
119522
+ }
119429
119523
  componentWillLoad() {
119430
119524
  this._options = this.options;
119431
119525
  const optionsTags = this.hostElement.querySelectorAll("ez-radio-button-option");
@@ -119694,6 +119788,12 @@ let EzSearch$1 = class extends HTMLElement$1 {
119694
119788
  }
119695
119789
  componentDidLoad() {
119696
119790
  CSSVarsUtils.applyVarsTextInput(this._elem, this._comboElement);
119791
+ if (this._elem) {
119792
+ ElementIDUtils.addIDInfo(this._elem, 'input');
119793
+ if (this._comboElement) {
119794
+ ElementIDUtils.addIDInfo(this._comboElement, 'internal_input', { id: this._elem.getAttribute("data-element-id") });
119795
+ }
119796
+ }
119697
119797
  }
119698
119798
  render() {
119699
119799
  return (h("ez-combo-box", { ref: elem => this._comboElement = elem, value: this.value, label: this.label, enabled: this.enabled, errorMessage: this.errorMessage, optionLoader: this.optionLoader, searchMode: true, onEzChange: event => this.onComboChange(event), showSelectedValue: this.showSelectedValue, showOptionValue: this.showOptionValue, suppressEmptyOption: this.suppressEmptyOption, mode: this.mode }));
@@ -119780,6 +119880,7 @@ let EzTabselector$1 = class extends HTMLElement$1 {
119780
119880
  this.setFocusedBtn(false, tab.index);
119781
119881
  }
119782
119882
  componentWillRender() {
119883
+ ElementIDUtils.addIDInfo(this._hostElem);
119783
119884
  if (!this._processedTabs) {
119784
119885
  this._processedTabs = [];
119785
119886
  if (this.tabs) {
@@ -119787,6 +119888,7 @@ let EzTabselector$1 = class extends HTMLElement$1 {
119787
119888
  this.tabs.split(",").forEach((label) => {
119788
119889
  label = label.trim();
119789
119890
  this._processedTabs.push({ label, tabKey: label, index: this._processedTabs.length });
119891
+ this.buildElementIdTab(this._processedTabs);
119790
119892
  });
119791
119893
  }
119792
119894
  }
@@ -119802,9 +119904,20 @@ let EzTabselector$1 = class extends HTMLElement$1 {
119802
119904
  this._hostElem.appendChild(content);
119803
119905
  }
119804
119906
  this._processedTabs.push(tab);
119907
+ this.buildElementIdTab(this._processedTabs);
119805
119908
  });
119806
119909
  }
119807
119910
  }
119911
+ componentDidRender() {
119912
+ this.updateScroll();
119913
+ }
119914
+ componentDidLoad() {
119915
+ this._hostElem.shadowRoot.querySelectorAll('button[name="tab-button"]').forEach((elem) => {
119916
+ const elemIdTabSelector = this._hostElem.getAttribute("data-element-id");
119917
+ const dataInfo = { id: `${elemIdTabSelector}_${StringUtils$1.toCamelCase(elem.id)}` };
119918
+ ElementIDUtils.addIDInfo(elem, null, dataInfo);
119919
+ });
119920
+ }
119808
119921
  handleSlotChange(ev) {
119809
119922
  const slot = ev.target;
119810
119923
  const content = slot.assignedElements()[0];
@@ -119830,9 +119943,6 @@ let EzTabselector$1 = class extends HTMLElement$1 {
119830
119943
  container.scrollLeft = lastTab.offsetLeft + lastTab.offsetWidth;
119831
119944
  }
119832
119945
  }
119833
- componentDidRender() {
119834
- this.updateScroll();
119835
- }
119836
119946
  updateScroll() {
119837
119947
  const container = this._scrollContainer;
119838
119948
  if (container) {
@@ -119893,6 +120003,15 @@ let EzTabselector$1 = class extends HTMLElement$1 {
119893
120003
  }
119894
120004
  });
119895
120005
  }
120006
+ buildElementIdTab(tabs) {
120007
+ tabs.forEach(tab => {
120008
+ if (!tab.hasOwnProperty("data-element-id")) {
120009
+ const elemIdTabSelector = this._hostElem.getAttribute("data-element-id");
120010
+ const dataElementID = `${elemIdTabSelector}_${StringUtils$1.toCamelCase(tab.tabKey)}`;
120011
+ tab["data-element-id"] = dataElementID;
120012
+ }
120013
+ });
120014
+ }
119896
120015
  render() {
119897
120016
  return (h(Host, null, h("button", { class: "backward-button", ref: (el) => this._backwardButton = el, onClick: () => this.scrollBackward() }), h("div", { class: "scroll", ref: (el) => this._scrollContainer = el, onScroll: () => this.domScrollHandler(), onKeyDown: (ev) => this.setFocusedParam(ev) }, this._processedTabs.map((tab, index) => {
119898
120017
  const labelStyle = { "min-width": this.getTextWidth(tab.label) };
@@ -119902,7 +120021,7 @@ let EzTabselector$1 = class extends HTMLElement$1 {
119902
120021
  this.selectedTab = tab.tabKey;
119903
120022
  this.selectedIndex = index;
119904
120023
  }
119905
- return h("button", { id: tabId, class: `tab${isSelected ? " is-active" : ""}`, onClick: () => this.handleTabClick(tab), style: labelStyle }, tab.leftIcon && h("ez-icon", { iconName: tab.leftIcon, class: "left-icon" }), h("span", { class: "tab-label", title: tab.label }, tab.label), tab.rightIcon && h("ez-icon", { iconName: tab.rightIcon, class: "right-icon" }), h("slot", { name: tabId, onSlotchange: (ev) => { this.handleSlotChange(ev); } }));
120024
+ return h("button", { id: tabId, name: "tab-button", class: `tab${isSelected ? " is-active" : ""}`, onClick: () => this.handleTabClick(tab), style: labelStyle }, tab.leftIcon && h("ez-icon", { iconName: tab.leftIcon, class: "left-icon" }), h("span", { class: "tab-label", title: tab.label }, tab.label), tab.rightIcon && h("ez-icon", { iconName: tab.rightIcon, class: "right-icon" }), h("slot", { name: tabId, onSlotchange: (ev) => { this.handleSlotChange(ev); } }));
119906
120025
  })), h("button", { class: "forward-button", ref: (el) => this._forwardButton = el, onClick: () => this.scrollFoward() })));
119907
120026
  }
119908
120027
  get _hostElem() { return this; }
@@ -120052,6 +120171,12 @@ let EzTextArea$1 = class extends HTMLElement$1 {
120052
120171
  this.observeErrorMessage();
120053
120172
  this.adjustFloatingLabel();
120054
120173
  this.observeMode();
120174
+ if (this._hostElement) {
120175
+ ElementIDUtils.addIDInfo(this._hostElement, 'input');
120176
+ if (this._inputElem) {
120177
+ ElementIDUtils.addIDInfo(this._inputElem, 'internal_input', { id: this._hostElement.getAttribute("data-element-id") });
120178
+ }
120179
+ }
120055
120180
  }
120056
120181
  render() {
120057
120182
  return (h(Host, null, h("div", { class: "textarea", ref: (el) => this._container = el }, this.label && this.mode != "slim" ?
@@ -120153,6 +120278,12 @@ let EzTextEdit$1 = class extends HTMLElement$1 {
120153
120278
  componentDidLoad() {
120154
120279
  this.applyFocusSelect();
120155
120280
  this.setNewValue(this.value);
120281
+ if (this._element) {
120282
+ ElementIDUtils.addIDInfo(this._element, 'input');
120283
+ if (this._inputElement) {
120284
+ ElementIDUtils.addIDInfo(this._inputElement, 'internal_input', { id: this._element.getAttribute("data-element-id") });
120285
+ }
120286
+ }
120156
120287
  }
120157
120288
  componentDidRender() {
120158
120289
  this.setStyledInput();
@@ -120160,6 +120291,7 @@ let EzTextEdit$1 = class extends HTMLElement$1 {
120160
120291
  render() {
120161
120292
  return (h(Host, null, h("span", { class: "text-edit__hidden-value", ref: elem => this._valueBasis = elem }), h("ez-text-input", { onInput: () => { this.calcSizeInput(this._newValue); }, class: "text-edit__form-input", value: this._newValue, ref: (elem) => this._inputElement = elem, mode: "slim", onEzChange: (evt) => this.setNewValue(evt === null || evt === void 0 ? void 0 : evt.detail), noBorder: true }), h("ez-button", { class: "text-edit__icon-check", mode: "icon", iconName: "check", size: "small", onClick: () => { this.handleSaveEdition(); } }), h("ez-button", { class: "text-edit__icon-close", mode: "icon", iconName: "close", size: "small", onClick: () => { this.cancelEdition.emit(); } })));
120162
120293
  }
120294
+ get _element() { return this; }
120163
120295
  static get style() { return ezTextEditCss; }
120164
120296
  };
120165
120297
 
@@ -120373,6 +120505,12 @@ let EzTextInput$1 = class extends HTMLElement$1 {
120373
120505
  this.observeMask();
120374
120506
  this.adjustFloatingLabel();
120375
120507
  this.adjustBorderInput();
120508
+ if (this._hostElement) {
120509
+ ElementIDUtils.addIDInfo(this._hostElement, 'input');
120510
+ if (this._inputElem) {
120511
+ ElementIDUtils.addIDInfo(this._inputElem, 'internal_input', { id: this._hostElement.getAttribute("data-element-id") });
120512
+ }
120513
+ }
120376
120514
  }
120377
120515
  componentWillLoad() {
120378
120516
  this.observeMask();
@@ -120544,6 +120682,12 @@ let EzTimeInput$1 = class extends HTMLElement$1 {
120544
120682
  //---------------------------------------------
120545
120683
  componentDidLoad() {
120546
120684
  CSSVarsUtils.applyVarsTextInput(this._elem, this._textInput);
120685
+ if (this._elem) {
120686
+ ElementIDUtils.addIDInfo(this._elem, 'input');
120687
+ if (this._textInput) {
120688
+ ElementIDUtils.addIDInfo(this._textInput, 'internal_input', { id: this._elem.getAttribute("data-element-id") });
120689
+ }
120690
+ }
120547
120691
  }
120548
120692
  componentWillLoad() {
120549
120693
  this.observeShowSeconds();
@@ -120981,6 +121125,9 @@ let EzUpload$1 = class extends HTMLElement$1 {
120981
121125
  this._dropZone.style.background = "";
120982
121126
  });
120983
121127
  }
121128
+ if (this._host) {
121129
+ ElementIDUtils.addIDInfo(this._host, 'input');
121130
+ }
120984
121131
  }
120985
121132
  componentWillRender() {
120986
121133
  if (this.value) {
@@ -121090,6 +121237,9 @@ let EzViewStack$1 = class extends HTMLElement$1 {
121090
121237
  });
121091
121238
  }
121092
121239
  }
121240
+ componentDidLoad() {
121241
+ ElementIDUtils.addIDInfo(this._hostElem);
121242
+ }
121093
121243
  disconectCallback() {
121094
121244
  this._hostElem = null;
121095
121245
  this._elemList = null;
@@ -1,4 +1,5 @@
1
- import { r as registerInstance, h } from './index-7bc778b3.js';
1
+ import { r as registerInstance, h, g as getElement } from './index-7bc778b3.js';
2
+ import { ElementIDUtils } from '@sankhyalabs/core';
2
3
 
3
4
  const ezButtonCss = ":host{--ez-button--min-width:100px;--ez-button--width:'auto';--ez-button--height:42px;--ez-button__icon--width:18px;--ez-button__inline__icon--padding:12px;--ez-button--padding-top:0px;--ez-button--padding-bottom:0px;--ez-button--padding-right:var(--space--large, 24px);--ez-button--padding-left:var(--space--large, 24px);--ez-button--color:var(--title--primary, #FFF);--ez-button--font-size:var(--text--medium, 14px);--ez-button--font-family:var(--font-pattern, Arial);--ez-button--font-weight:var(--text-weight--large);--ez-button--background-color:var(--background--medium, #c0c0c0);--ez-button--border-radius:var(--border--radius-large, 12px);--ez-button--border:none;--ez-button--justify-content:center;--ez-button--hover-color:var(--color--primary-600);--ez-button--hover--background-color:var(--background--medium, var(--ez-button--background-color));--ez-button--disabled-color:var(--text--disable);--ez-button--disabled--background-color:var(--color--disable-secondary);--ez-button--focus--border:var(--border--xlarge, 4px solid) var(--color--primary-300);--ez-button--focus--box-shadow:none;--ez-button--active-color:var(--color--primary-700);--ez-button--active--background-color:var(--background--strong);--ez-button--link-color:var(--color--primary, '#008561');--ez-button--link--hover-color:var(--color--primary-700, '#1C1D22');--ez-button--link--small--font-size:var(--text--small, 12px);--ez-button--link--medium--font-size:var(--text--medium, 14px);--ez-button--link--large--font-size:var(--text--large, 16px)}ez-icon{--ez-icon--color:inherit}button{position:relative;display:flex;align-items:center;margin:0;cursor:pointer;transition:background-color 0.2s linear;white-space:nowrap;min-width:var(--ez-button--min-width);width:var(--ez-button--width);height:var(--ez-button--height);font-family:var(--ez-button--font-family);font-size:var(--ez-button--font-size);font-weight:var(--ez-button--font-weight);padding:var(--ez-button--padding-top) var(--ez-button--padding-right) var(--ez-button--padding-bottom) var(--ez-button--padding-left);border-radius:var(--ez-button--border-radius);background-color:var(--ez-button--background-color);color:var(--ez-button--color);fill:var(--ez-button--color);border:var(--ez-button--border);justify-content:var(--ez-button--justify-content)}button:focus{outline:var(--ez-button--focus--border);box-shadow:var(--ez-button--focus--box-shadow)}button:hover{outline:none;background-color:var(--ez-button--hover--background-color);color:var(--ez-button--hover-color);fill:var(--ez-button--hover-color);--ez-icon--color:var(--ez-button--hover-color)}button:active{outline:none;box-shadow:none;background-color:var(--ez-button--active--background-color);color:var(--ez-button--active-color);fill:var(--ez-button--active-color);--ez-icon--color:var(--ez-button--active-color)}button:disabled{background-color:var(--ez-button--disabled--background-color);color:var(--ez-button--disabled-color);fill:var(--ez-button--disabled-color);border:none;--ez-icon--color:var(--ez-button--disabled-color);cursor:no-drop}.small{height:32px;--ez-button--font-size:var(--text--small, 12px)}.medium{height:42px}.large{height:46px}.btn-icon{padding:0px}.btn-icon--medium{width:42px;min-width:42px;height:42px}.btn-icon--small{width:32px;min-width:32px;height:32px}.btn-icon--large{width:46px;min-width:46px;height:46px}.label-icon{display:flex;flex-direction:column;align-items:center;color:var(--ez-button--color)}.label-icon:hover{color:var(--ez-button--hover-color);fill:var(--ez-button--hover-color);--ez-icon--color:var(--ez-button--hover-color)}.label-icon:active{color:var(--ez-button--active-color);fill:var(--ez-button--active-color);--ez-icon--color:var(--ez-button--active-color)}.label-icon label{max-width:150px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;cursor:pointer;font-family:var(--ez-button--font-family);font-size:var(--ez-button--font-size);font-weight:var(--ez-button--font-weight);user-select:none}button:disabled+label{max-width:150px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;cursor:pointer;font-family:var(--ez-button--font-family);font-size:var(--ez-button--font-size);font-weight:var(--ez-button--font-weight);color:var(--ez-button--disabled-color);cursor:no-drop}div.label-icon{cursor:pointer}div.label-icon,button:disabled{cursor:no-drop}a{font-family:var(--ez-button--font-family);font-weight:var(--ez-button--font-weight);color:var(--ez-button--link-color);cursor:pointer;display:flex;align-items:center;justify-content:center;}a:hover{color:var(--ez-button--link--hover-color)}a.small{font-size:var(--ez-button--link--small--font-size);line-height:var(--ez-button--link--small--font-size)}a.medium{font-size:var(--ez-button--link--medium--font-size);line-height:var(--ez-button--link--medium--font-size)}a.large{font-size:var(--ez-button--link--large--font-size);line-height:var(--ez-button--link--large--font-size)}";
4
5
 
@@ -26,6 +27,15 @@ let EzButton = class {
26
27
  async setBlur() {
27
28
  this._button.blur();
28
29
  }
30
+ componentDidLoad() {
31
+ if (this._element) {
32
+ ElementIDUtils.addIDInfo(this._element);
33
+ }
34
+ if (this._button) {
35
+ const dataInfo = { id: 'ezButton_internal_button' };
36
+ ElementIDUtils.addIDInfo(this._button, null, dataInfo);
37
+ }
38
+ }
29
39
  getIconSize(sizeParam = "medium") {
30
40
  const sizeList = ["small", "medium", "large"];
31
41
  const sizeLowerCase = this.size && this.size.toLowerCase();
@@ -69,6 +79,7 @@ let EzButton = class {
69
79
  return (h("button", { class: this.getIconSize(""), type: "button", disabled: !this.enabled, ref: (el) => this._button = el }, h("slot", { name: "leftIcon", onSlotchange: (ev) => { this.handleSlotChange(ev); } }), this.label, h("slot", { name: "rightIcon", onSlotchange: (ev) => { this.handleSlotChange(ev); } })));
70
80
  }
71
81
  }
82
+ get _element() { return getElement(this); }
72
83
  };
73
84
  EzButton.style = ezButtonCss;
74
85
 
@@ -175,6 +175,7 @@ let EzCalendar = class {
175
175
  const date = new Date();
176
176
  date.setTime(firstDate.getTime());
177
177
  date.setDate(date.getDate() + offset + index);
178
+ let dataDayMonth = `${date.getMonth() + 1}-${date.getDate()}-${date.getFullYear()}`;
178
179
  let classNames = "calendar__cell";
179
180
  if (this._currentPosition.getMonth() != date.getMonth()) {
180
181
  classNames += " calendar__cell--secondary";
@@ -182,7 +183,7 @@ let EzCalendar = class {
182
183
  else if (this.isSelectedDate(date)) {
183
184
  classNames += " calendar__cell--selected";
184
185
  }
185
- return h("div", { class: classNames, onClick: () => this.selectDate(date) }, date.getDate());
186
+ return h("div", { "data-day-month": dataDayMonth, class: classNames, onClick: () => this.selectDate(date) }, date.getDate());
186
187
  })))), h("div", { class: "calendar__footer" }, h("button", { class: "calendar__btn-today", onClick: () => this.selectDate(new Date()) }, this._todayLabel))), (this.time || this.showSeconds) &&
187
188
  h("div", { class: "calendar-time" }, h("div", { class: "calendar-time__header" }, h("div", null, "H"), h("div", { class: "separatorTime" }, ":"), h("div", null, "M"), this.showSeconds &&
188
189
  h("div", { class: "separatorTime" }, ":"), this.showSeconds &&
@@ -1,4 +1,5 @@
1
- import { r as registerInstance, c as createEvent, h, H as Host } from './index-7bc778b3.js';
1
+ import { r as registerInstance, c as createEvent, h, H as Host, g as getElement } from './index-7bc778b3.js';
2
+ import { StringUtils, ElementIDUtils } from '@sankhyalabs/core';
2
3
 
3
4
  const ezCardItemCss = ":host{--ez-card-item--font-size:var(--text--medium, 14px);--ez-card-item--font-family:var(--font-pattern, Arial);--ez-card-item--font-weight:var(--text-weight--medium, 400);--ez-card-item--font-weight-large:var(--text-weight--large, 600);--ez-card-item--color:var(--title--primary, #2B3A54);--ez-card-item__key--color:var(--text--primary, #626e82);--ez-card-item__detail-label--color:var(--text--secondary, #A2ABB9);--ez-card-item__detail--padding-bottom:var(--space--extra-small, 3px);--ez-card-item__title--padding-bottom:var(--space--extra-small, 3px);--ez-card-item__highlight--color:var(--color--primary-300, #E2F4EF);width:100%;display:flex;cursor:pointer}.card-item{display:flex;flex-direction:column;width:100%;cursor:pointer;padding:12px;z-index:0;position:relative}.card-item:hover{background:#F0F3F7;border-radius:12px}.card-item__title{display:flex;align-items:center;line-height:18px;cursor:pointer;font-size:var(--ez-card-item--font-size);font-family:var(--ez-card-item--font-family);font-weight:var(--ez-card-item--font-weight-large);color:var(--ez-card-item--color);padding-bottom:var(--ez-card-item__title--padding-bottom);gap:var(--space--small, 6px)}.card-item__key{color:var(--ez-card-item__key--color)}.card-item__details{display:flex;cursor:pointer;justify-content:space-between;gap:var(--space--small, 6px)}.card-item__details-left{cursor:pointer;width:50%}.card-item__details-right{width:50%;cursor:pointer}.card-item__detail:not(:last-child){cursor:pointer;padding-bottom:var(--ez-card-item__detail--padding-bottom)}.card-item__detail-label{cursor:pointer;font-size:var(--ez-card-item--font-size);font-family:var(--ez-card-item--font-family);font-weight:var(--ez-card-item--font-weight);color:var(--ez-card-item__detail-label--color)}.card-item__detail-value{cursor:pointer;font-size:var(--ez-card-item--font-size);font-family:var(--ez-card-item--font-family);font-weight:var(--ez-card-item--font-weight);color:var(--ez-card-item--color)}.card-item__highlight{position:relative;border-radius:8px;z-index:-1;background-color:var(--ez-card-item__highlight--color);outline:2px solid var(--ez-card-item__highlight--color);box-shadow:-4px 0px 0px 0px var(--ez-card-item__highlight--color), \n 4px 0px 0px 0px var(--ez-card-item__highlight--color)}";
4
5
 
@@ -10,6 +11,11 @@ let EzCardItem = class {
10
11
  componentWillRender() {
11
12
  this.createDetailList();
12
13
  }
14
+ componentDidLoad() {
15
+ var _a, _b;
16
+ const dataInfo = { id: StringUtils.toCamelCase(((_a = this.item) === null || _a === void 0 ? void 0 : _a.key) || ((_b = this.item) === null || _b === void 0 ? void 0 : _b.title) || "") };
17
+ ElementIDUtils.addIDInfo(this._element, null, dataInfo);
18
+ }
13
19
  createDetailList() {
14
20
  var _a, _b, _c;
15
21
  this._details = { detailsLeft: [], detailsRight: [] };
@@ -34,6 +40,7 @@ let EzCardItem = class {
34
40
  return this.buildDetailContent(detail);
35
41
  }))))));
36
42
  }
43
+ get _element() { return getElement(this); }
37
44
  };
38
45
  EzCardItem.style = ezCardItemCss;
39
46
 
@@ -1,4 +1,5 @@
1
- import { r as registerInstance, c as createEvent, h, H as Host } from './index-7bc778b3.js';
1
+ import { r as registerInstance, c as createEvent, h, H as Host, g as getElement } from './index-7bc778b3.js';
2
+ import { ElementIDUtils } from '@sankhyalabs/core';
2
3
  import { C as CheckMode } from './CheckMode-bdb2ec19.js';
3
4
 
4
5
  const ezCheckCss = ":host{--ez-check--box--width:18px;--ez-check--box--height:18px;--ez-check--width:calc(var(--ez-check--box--width) + var(--ez-check--outter-gap, 14px));--ez-check--height:calc(var(--ez-check--box--width) + var(--ez-check--outter-gap, 14px));--ez-check--border-radius:var(--border--radius-small);--ez-check--checked--background-color:var(--color--primary-200);--ez-check--focus--background-color:var(--color--strokes, #FFFFFF);--ez-check--hover--background-color:var(--background--medium);--ez-check--checked--disabled--background-color:var(--color--disable-secondary);--ez-check--border:var(--border--medium) var(--title--primary);--ez-check--disabled--border:var(--border--medium) var(--color--strokes);--ez-check--checked--border:var(--border--medium) var(--color--primary);--ez-check--checked--hover--background-color:var(--color--primary-200);--ez-check--checked--focus--background-color:var(--color--primary-300, #FFFFFF);--ez-check--check--image:url('data:image/svg+xml;utf8,<svg width=\"8\" height=\"7\" viewBox=\"0 0 8 7\" version=\"1.1\" xmlns=\"http://www.w3.org/2000/svg\"><path d=\"M7.70002 0.398999L7.48502 0.207997C7.31524 0.0598858 7.09376 -0.0150438 6.86894 -0.000430025C6.64411 0.0141838 6.43419 0.117153 6.28502 0.285997L2.70002 4.332L1.61802 3.384C1.44837 3.23576 1.22697 3.16067 1.00214 3.17509C0.77732 3.18952 0.567332 3.2923 0.418019 3.461L0.229019 3.674C0.0752361 3.84797 -0.00437434 4.07521 0.00721192 4.30713C0.0187982 4.53904 0.120661 4.75722 0.291019 4.915L2.27402 6.762C2.35832 6.8432 2.45842 6.90618 2.56811 6.94702C2.67779 6.98787 2.79471 7.00571 2.91159 6.99942C3.02846 6.99314 3.14279 6.96287 3.24747 6.91049C3.35214 6.85812 3.44492 6.78477 3.52002 6.695L7.79102 1.638C7.94063 1.46048 8.01486 1.23149 7.99786 0.999963C7.98085 0.768436 7.87396 0.552749 7.70002 0.398999Z\"/></svg>');--ez-check--indeterminate--image:url('data:image/svg+xml;utf8,<svg width=\"10\" height=\"2\" viewBox=\"0 0 10 2\" version=\"1.1\" xmlns=\"http://www.w3.org/2000/svg\"><path d=\"m 1,0 h 8 c 0.554,0 1,0.446 1,1 0,0.554 -0.446,1 -1,1 H 1 C 0.446,2 0,1.554 0,1 0,0.446 0.446,0 1,0 Z\" /></svg>');--ez-check--check--background-color:var(--color--primary);--ez-check--check--disabled--background-color:var(--color--strokes);--ez-switch--slider--width:34px;--ez-switch--slider--height:14px;--ez-switch--pin--width:19px;--ez-switch--pin--height:19px;--ez-switch--focus--width:32px;--ez-switch--focus--height:32px;--ez-switch--background-color:var(--color--strokes);--ez-switch--disabled--background-color:var(--color--disable-secondary);--ez-switch--disabled--checked--background-color:var(--color--primary-300);--ez-switch--checked--background-color:var(--color--primary);--ez-switch--pin--background-color:var(--background--xlight);--ez-switch--pin--disabled--background-color:var(--color--disable-primary);--ez-switch--pin--checked--background-color:var(--background--xlight);--ez-switch--pin--checked--disabled--background-color:#E8F7F4;--ez-switch--pin--focus--background-color:var(--text--disable);--ez-switch--pin--checked--focus--background-color:var(--color--primary);--ez-switch--pin--border-color:var(--text--primary);--ez-switch--pin--disabled--border-color:var(--text--secondary);--ez-check--label--font-size:var(--text--medium, 14px);--ez-check--label--font-family:var(--font-pattern, Arial);--ez-check--label--color:var(--title--primary, #000);--ez-check--label--disabled--color:var(--text--disable, #AFB6C0);display:flex;width:100%;align-items:center;margin:0}input.regular-mode{display:flex;flex-wrap:wrap;align-items:center;justify-content:center;box-sizing:border-box;-webkit-appearance:none;appearance:none;cursor:pointer;border-radius:50%;position:relative;width:var(--ez-check--width);height:var(--ez-check--height)}input.regular-mode:enabled:hover{background-color:var(--ez-check--hover--background-color)}input.regular-mode:enabled:focus{outline:none;background-color:var(--ez-check--focus--background-color)}input.regular-mode:disabled{cursor:auto;background:none}input.regular-mode::before{box-sizing:border-box;content:\"\";display:block;width:var(--ez-check--box--width);height:var(--ez-check--box--height);border-radius:var(--ez-check--border-radius);border:var(--ez-check--border)}input.regular-mode:disabled::before{border:var(--ez-check--disabled--border)}input.regular-mode:checked:enabled:hover,input.regular-mode:indeterminate:enabled:hover{background-color:var(--ez-check--checked--hover--background-color)}input.regular-mode:checked:enabled:focus,input.regular-mode:indeterminate:enabled:focus{background-color:var(--ez-check--checked--focus--background-color)}input.regular-mode:checked::before,input.regular-mode:indeterminate::before{border:var(--ez-check--checked--border);background-color:var(--ez-check--checked--background-color)}input.regular-mode:disabled:before{border:var(--ez-check--disabled--border);background-color:var(--ez-check--checked--disabled--background-color)}input.regular-mode:checked::after,input.regular-mode:indeterminate:after{display:flex;position:absolute;content:\"\";background-color:var(--ez-check--check--background-color);width:8px;height:7px;-webkit-mask-image:var(--ez-check--check--image);mask-image:var(--ez-check--check--image)}input.regular-mode:indeterminate:after{display:flex;position:absolute;content:\"\";background-color:var(--ez-check--check--background-color);width:10px;height:2px;-webkit-mask-image:var(--ez-check--indeterminate--image);mask-image:var(--ez-check--indeterminate--image)}input.regular-mode:checked:disabled::after,input.regular-mode:indeterminate:disabled::after{background-color:var(--ez-check--check--disabled--background-color)}input.switch-mode{flex-shrink:0;-webkit-appearance:none;appearance:none;position:relative;outline:none;cursor:pointer;border-radius:20px;border:var(--border--small, 1px solid) var(--ez-switch--pin--border-color, #626e82);transition:background-color var(--transition);width:var(--ez-switch--slider--width);height:var(--ez-switch--slider--height);background-color:var(--ez-switch--background-color)}input.switch-mode:disabled{background-color:var(--ez-switch--disabled--background-color);border:var(--border--small, 1px solid) var(--ez-switch--pin--disabled--border-color, #a2abb9)}input.switch-mode:checked:disabled{background-color:var(--ez-switch--disabled--checked--background-color)}input.switch-mode::after{content:\"\";display:block;position:absolute;box-shadow:var(--shadow);transition:transform var(--transition);transition:background-color var(--transition);transition:border-color var(--transition);transform:translateX(-2px) translateY(-4px);border-radius:50%;border:var(--border--small, 1px solid) var(--ez-switch--pin--border-color, #626e82);width:var(--ez-switch--pin--width);height:var(--ez-switch--pin--height);background-color:var(--ez-switch--pin--background-color)}input.switch-mode:disabled::after{background-color:var(--ez-switch--pin--disabled--background-color);border:var(--border--small, 1px solid) var(--ez-switch--pin--disabled--border-color, #a2abb9)}input.switch-mode:checked{transition:background-color var(--transition), border var(--transition);background-color:var(--ez-switch--checked--background-color);border:var(--border--small, 1px solid) var(--color--primary, #008561)}input.switch-mode::before{display:block;content:\"\";display:block;position:absolute;border-radius:50%;opacity:0;width:var(--ez-switch--focus--width);height:var(--ez-switch--focus--height);top:calc((var(--ez-switch--slider--height) - var(--ez-switch--focus--height)) / 2);left:calc((var(--ez-switch--pin--width) - var(--ez-switch--focus--width) - 2px) / 2);background-color:var(--ez-switch--pin--focus--background-color)}input.switch-mode:focus::before{opacity:0.24;transition:opacity var(--transition)}input.switch-mode:checked:focus::before{background-color:var(--ez-switch--pin--checked--focus--background-color);transform:translateX(calc(var(--ez-switch--slider--width) - var(--ez-switch--pin--width) + 2px))}input.switch-mode:checked::after{transition:transform var(--transition);transition:background-color var(--transition);transition:border-color var(--transition);transform:translateX(calc(var(--ez-switch--slider--width) - var(--ez-switch--pin--width))) translateY(-4px);box-shadow:var(--shadow);background-color:var(--ez-switch--pin--checked--background-color);border:var(--border--small, 1px solid) var(--color--primary, #008561)}input.switch-mode:checked:disabled::after{background-color:var(--ez-switch--pin--checked--disabled--background-color)}.label{flex-shrink:1;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;color:var(--ez-check--label--color);font-size:var(--ez-check--label--font-size);font-family:var(--ez-check--label--font-family);cursor:default;padding-left:var(--space--small)}.label--disabled{color:var(--ez-check--label--disabled--color)}";
@@ -34,6 +35,14 @@ let EzCheck = class {
34
35
  async setFocus() {
35
36
  this._inputElem.focus();
36
37
  }
38
+ componentDidLoad() {
39
+ if (this._inputElem) {
40
+ ElementIDUtils.addIDInfo(this._inputElem, 'input');
41
+ }
42
+ if (this._element) {
43
+ ElementIDUtils.addIDInfo(this._element, 'input');
44
+ }
45
+ }
37
46
  changeValue() {
38
47
  if (!this.enabled) {
39
48
  return;
@@ -55,6 +64,7 @@ let EzCheck = class {
55
64
  render() {
56
65
  return (h(Host, null, h("input", { type: "checkbox", ref: (el) => this._inputElem = el, class: this.getInputClasses(), checked: this.value === true, onChange: () => { this.changeValue(); }, indeterminate: this.indeterminate, disabled: !this.enabled }), this.label ? h("label", { class: this.getLabelClasses(), onClick: () => { this.changeValue(); }, title: this.label }, this.label) : undefined));
57
66
  }
67
+ get _element() { return getElement(this); }
58
68
  };
59
69
  EzCheck.style = ezCheckCss;
60
70
 
@@ -1,4 +1,5 @@
1
- import { r as registerInstance, c as createEvent, h } from './index-7bc778b3.js';
1
+ import { r as registerInstance, c as createEvent, h, g as getElement } from './index-7bc778b3.js';
2
+ import { ElementIDUtils } from '@sankhyalabs/core';
2
3
 
3
4
  const ezChipCss = ":host{--ez-label-chip--height:30px;--ez-label-chip__label--font-size:var(--text--medium, 14px);--ez-label-chip__label--font-family:var(--font-pattern, Arial);--ez-label-chip__label--font-weight:var(--text-weight--medium, 400);--ez-label-chip__label--space--medium:var(--space--medium, 12px);--ez-label-chip__label--title--primary:var(--title--primary, #2B3A54);--ez-label-chip__label--text--primary:var(--text--primary, #626e82);--ez-label-chip__label__container--border-radius:var(--border--radius-large, 24px);--ez-label-chip__label__container--border:1px solid;--ez-label-chip__label__container--border-color-strokes:var(--color--strokes, #DCE0E8);--ez-label-chip__label__container--color-primary:var(--color--primary, #008561);--ez-label-chip__label__container-color--disable-secondary:var(--color--disable-secondary, #F2F5F8);--ez-label-chip__label__container--background-color:var(--color--primary-300);--ez-label-chip__label__container--border-color:#0085610F;--ez-label-chip__label__container--default--border-color--active:var(--color--primary, #007a5a);--ez-label-chip__label__container--default--background-color--hover:var(--color--primary-300, #f2faf8);--ez-label-chip__label__container--default--color--hover:var(--color--primary, #f2faf8);--ez-label-chip__label__container--text--disabled:var(--text--disable, #AFB6C0);--ez-label-chip__label__container--default--border-color--active:var(--color--primary)}.lbl{display:flex;white-space:nowrap;align-items:center;cursor:pointer;user-select:none;color:var(--ez-label-chip__label--title--primary);height:var(--ez-label-chip--height);font-family:var(--ez-label-chip__label--font-family);font-size:var(--ez-label-chip__label--font-size);font-weight:var(--ez-label-chip__label--font-weight)}.lbl--active{color:var(--ez-label-chip__label__container--default--color--hover)}.lbl--disabled{color:var(--ez-label-chip__label__container--text--disabled)}.label__container{cursor:pointer;width:max-content;display:flex;flex-wrap:wrap;align-items:center;background-color:#FFFFFF;color:var(--ez-label-chip__label--text--primary);fill:var(--ez-label-chip__label--text--primary);--ez-icon--color:var(--ez-label-chip__label--text--primary);border:var(--ez-label-chip__label__container--border);border-radius:var(--ez-label-chip__label__container--border-radius);border-color:var(--ez-label-chip__label__container--border-color-strokes);padding-right:var(--ez-label-chip__label--space--medium);padding-left:var(--ez-label-chip__label--space--medium);outline-color:var(--ez-label-chip__label__container--default--border-color--active)}.label__content{display:flex;align-items:center;flex-wrap:wrap;--ez-icon--color:var(--ez-label-chip__label--text--primary)}.label__container--disabled{cursor:default;border-color:var(--ez-label-chip__label__container-color--disable-secondary);background-color:var(--ez-label-chip__label__container-color--disable-secondary);fill:var(--ez-label-chip__label__container--text--disabled);color:var(--ez-label-chip__label__container--text--disabled);--ez-icon--color:var(--ez-label-chip__label__container--text--disabled)}.label__container--active{border-color:var(--ez-label-chip__label__container--default--background-color--hover);background-color:var(--ez-label-chip__label__container--default--background-color--hover);color:var(--ez-label-chip__label__container--default--color--hover);fill:var(--ez-label-chip__label__container--default--color--hover);--ez-icon--color:var(--ez-label-chip__label__container--default--color--hover)}.label__container:hover{border-color:var(--ez-label-chip__label__container--default--border-color--active)}.label__container--disabled:hover{cursor:default;border:var(--ez-label-chip__label__container--border);border-color:var(--ez-label-chip__label__container-color--disable-secondary);background-color:var(--ez-label-chip__label__container-color--disable-secondary);fill:var(--ez-label-chip__label__container--text--disabled);color:var(--ez-label-chip__label__container--text--disabled);--ez-icon--color:var(--ez-label-chip__label__container--text--disabled)}.label__content__icon{display:flex;cursor:pointer;color:var(--ez-label-chip__label--text--primary);fill:var(--ez-label-chip__label--text--primary);--ez-icon--color:var(--ez-label-chip__label--text--primary)}.label__container--row-reverse{flex-direction:row-reverse}.label__container .btn-close{padding:0px 0px 0px 8px}.label__container--row-reverse .btn-close{padding:0px 8px 0px 0px}.cursor-disable{cursor:default}ez-icon{--ez-icon--color:inherit}";
4
5
 
@@ -85,14 +86,20 @@ let EzChip = class {
85
86
  // Lifecycle web component
86
87
  //---------------------------------------------
87
88
  componentDidLoad() {
89
+ if (this._element) {
90
+ ElementIDUtils.addIDInfo(this._element, 'ezChip');
91
+ }
88
92
  if (this._containerElem) {
89
93
  this.observeValue();
90
94
  this.observeEnabled();
95
+ this._containerElem.setAttribute("data-element-id", 'ezChip_internal_button');
96
+ ElementIDUtils.addIDInfo(this._containerElem);
91
97
  }
92
98
  }
93
99
  render() {
94
100
  return (h("button", { onClick: (ev) => this.handleClick(ev), class: "label__container" + (this.removePosition === "left" ? " label__container--row-reverse" : ""), ref: (el) => this._containerElem = el }, h("div", { class: "label__content" }, h("slot", { name: "leftIcon", onSlotchange: (ev) => { this.handleSlotChange(ev); } }), h("label", { class: "lbl " + (this.value ? "lbl--active " : ""), ref: (el) => this._labelElem = el, title: this.label }, this.formatLabel()), h("slot", { name: "rightIcon", onSlotchange: (ev) => { this.handleSlotChange(ev); } })), this.mode !== 'action' && this.removePosition && h("ez-icon", { class: "btn-close", size: "small", "icon-name": "close" })));
95
101
  }
102
+ get _element() { return getElement(this); }
96
103
  static get watchers() { return {
97
104
  "value": ["observeValue"],
98
105
  "enabled": ["observeEnabled"]
@@ -1,4 +1,5 @@
1
1
  import { r as registerInstance, c as createEvent, h, g as getElement } from './index-7bc778b3.js';
2
+ import { ElementIDUtils } from '@sankhyalabs/core';
2
3
  import { A as ApplicationUtils } from './ApplicationUtils-205ac4bc.js';
3
4
  import './DialogType-4059dc4d.js';
4
5
  import './CheckMode-bdb2ec19.js';
@@ -115,6 +116,9 @@ let EzCollapsibleBox = class {
115
116
  };
116
117
  return styledLabel;
117
118
  }
119
+ componentDidLoad() {
120
+ ElementIDUtils.addIDInfo(this._hostElement);
121
+ }
118
122
  render() {
119
123
  return (h("div", { class: "collapsible-box" }, h("div", { class: "collapsible-box__header" }, h("button", Object.assign({}, (!this._activeEditText ? { onClick: () => { this.showHide(); } } : null), { class: "collapsible-box__title" +
120
124
  (this.iconPlacement === "right" ? " collapsible-box__title--icon-right" : "") +
@@ -1,5 +1,5 @@
1
1
  import { r as registerInstance, c as createEvent, h, H as Host, g as getElement } from './index-7bc778b3.js';
2
- import { FloatingManager } from '@sankhyalabs/core';
2
+ import { FloatingManager, ElementIDUtils } from '@sankhyalabs/core';
3
3
  import { A as ApplicationUtils } from './ApplicationUtils-205ac4bc.js';
4
4
  import { C as CSSVarsUtils } from './CSSVarsUtils-00f67f32.js';
5
5
  import './DialogType-4059dc4d.js';
@@ -355,6 +355,12 @@ let EzComboBox = class {
355
355
  componentDidLoad() {
356
356
  CSSVarsUtils.applyVarsTextInput(this.el, this._textInput);
357
357
  this.setInputValue(false);
358
+ if (this.el) {
359
+ ElementIDUtils.addIDInfo(this.el, 'input');
360
+ if (this._textInput) {
361
+ ElementIDUtils.addIDInfo(this._textInput, 'internal_input', { id: this.el.getAttribute("data-element-id") });
362
+ }
363
+ }
358
364
  }
359
365
  //---------------------------------------------
360
366
  // Event handlers