xv-webcomponents 1.3.55-qa.0 → 1.3.56-qa.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 (75) hide show
  1. package/dist/cjs/{index-BNc1Ov5g.js → index-SeExY50a.js} +2 -17
  2. package/dist/cjs/{index-BNc1Ov5g.js.map → index-SeExY50a.js.map} +1 -1
  3. package/dist/cjs/index.cjs.js +1 -1
  4. package/dist/cjs/loader.cjs.js +1 -1
  5. package/dist/cjs/xv-accordion-v2_45.cjs.entry.js +283 -194
  6. package/dist/cjs/xv-accordion-v2_45.cjs.entry.js.map +1 -1
  7. package/dist/cjs/xv-webcomponents.cjs.js +1 -1
  8. package/dist/collection/components/xv-button/xv-button.js +2 -40
  9. package/dist/collection/components/xv-button/xv-button.js.map +1 -1
  10. package/dist/collection/components/xv-header/xv-header.css +185 -235
  11. package/dist/collection/components/xv-header/xv-header.js +269 -160
  12. package/dist/collection/components/xv-header/xv-header.js.map +1 -1
  13. package/dist/collection/components/xv-image-viewer/xv-image-viewer.js +1 -1
  14. package/dist/collection/components/xv-link/xv-link.js +1 -1
  15. package/dist/collection/components/xv-mega-menu/xv-mega-menu.js +2 -2
  16. package/dist/collection/components/xv-modal/xv-modal.js +1 -1
  17. package/dist/collection/components/xv-notification/xv-notification.js +1 -1
  18. package/dist/collection/components/xv-number-input/xv-number-input.js +2 -2
  19. package/dist/collection/components/xv-overflow-menu/_vars.js +0 -1
  20. package/dist/collection/components/xv-overflow-menu/_vars.js.map +1 -1
  21. package/dist/collection/components/xv-overflow-menu/xv-overflow-menu-item/xv-overflow-menu-item.css +0 -8
  22. package/dist/collection/components/xv-overflow-menu/xv-overflow-menu-item/xv-overflow-menu-item.js +4 -25
  23. package/dist/collection/components/xv-overflow-menu/xv-overflow-menu-item/xv-overflow-menu-item.js.map +1 -1
  24. package/dist/collection/components/xv-overflow-menu/xv-overflow-menu.css +0 -3
  25. package/dist/collection/components/xv-overflow-menu/xv-overflow-menu.js +4 -4
  26. package/dist/collection/components/xv-overflow-menu/xv-overflow-menu.js.map +1 -1
  27. package/dist/collection/components/xv-pagination/xv-pagination.js +1 -1
  28. package/dist/collection/components/xv-progress-indicator/xv-progress-indicator-item/xv-progress-indicator-item.js +1 -1
  29. package/dist/collection/components/xv-progress-indicator/xv-progress-indicator.js +1 -1
  30. package/dist/collection/components/xv-radio/xv-radio.js +2 -2
  31. package/dist/collection/components/xv-slider/xv-slider.js +1 -1
  32. package/dist/collection/components/xv-table/xv-table-cell/xv-table-cell.js +1 -1
  33. package/dist/collection/components/xv-table/xv-table-expand/xv-table-expand.js +1 -1
  34. package/dist/collection/components/xv-table/xv-table-row/xv-table-row.js +1 -1
  35. package/dist/collection/components/xv-table/xv-table.js +1 -1
  36. package/dist/collection/components/xv-tabs/xv-tab/xv-tab.js +1 -1
  37. package/dist/collection/components/xv-tabs/xv-tabs.css +3 -0
  38. package/dist/collection/components/xv-tabs/xv-tabs.js +27 -3
  39. package/dist/collection/components/xv-tabs/xv-tabs.js.map +1 -1
  40. package/dist/collection/components/xv-tag/xv-tag.js +1 -1
  41. package/dist/collection/components/xv-tag/xv-tag.js.map +1 -1
  42. package/dist/collection/components/xv-tag-combobox/xv-tag-combobox.js +3 -2
  43. package/dist/collection/components/xv-tag-combobox/xv-tag-combobox.js.map +1 -1
  44. package/dist/collection/components/xv-text-input/xv-text-input.js +2 -2
  45. package/dist/collection/components/xv-textarea/xv-textarea.js +2 -2
  46. package/dist/collection/components/xv-tile/xv-tile.js +2 -2
  47. package/dist/collection/components/xv-toggle/xv-toggle.js +1 -1
  48. package/dist/collection/components/xv-toggle-tip/xv-toggle-tip.css +1 -0
  49. package/dist/collection/components/xv-toggle-tip/xv-toggle-tip.js +1 -1
  50. package/dist/collection/components/xv-tooltip/xv-tooltip.js +2 -2
  51. package/dist/esm/{index-_tZy78IZ.js → index-ZFbwGttR.js} +3 -17
  52. package/dist/esm/{index-_tZy78IZ.js.map → index-ZFbwGttR.js.map} +1 -1
  53. package/dist/esm/index.js +1 -1
  54. package/dist/esm/loader.js +1 -1
  55. package/dist/esm/xv-accordion-v2_45.entry.js +283 -194
  56. package/dist/esm/xv-accordion-v2_45.entry.js.map +1 -1
  57. package/dist/esm/xv-webcomponents.js +1 -1
  58. package/dist/types/components/xv-button/xv-button.d.ts +0 -4
  59. package/dist/types/components/xv-header/xv-header.d.ts +47 -36
  60. package/dist/types/components/xv-overflow-menu/_vars.d.ts +1 -2
  61. package/dist/types/components/xv-overflow-menu/xv-overflow-menu-item/xv-overflow-menu-item.d.ts +0 -1
  62. package/dist/types/components/xv-overflow-menu/xv-overflow-menu.d.ts +1 -1
  63. package/dist/types/components/xv-tabs/xv-tabs.d.ts +4 -0
  64. package/dist/types/components.d.ts +20 -26
  65. package/dist/xv-webcomponents/index.esm.js +1 -1
  66. package/dist/xv-webcomponents/p-5cec8d20.entry.js +2 -0
  67. package/dist/xv-webcomponents/p-5cec8d20.entry.js.map +1 -0
  68. package/dist/xv-webcomponents/p-ZFbwGttR.js +2 -0
  69. package/dist/xv-webcomponents/{p-_tZy78IZ.js.map → p-ZFbwGttR.js.map} +1 -1
  70. package/dist/xv-webcomponents/xv-webcomponents.esm.js +1 -1
  71. package/package.json +1 -1
  72. package/dist/collection/components/xv-header/user-magnifying-glass-regular-full.svg +0 -1
  73. package/dist/xv-webcomponents/p-_tZy78IZ.js +0 -2
  74. package/dist/xv-webcomponents/p-aeb519d3.entry.js +0 -2
  75. package/dist/xv-webcomponents/p-aeb519d3.entry.js.map +0 -1
@@ -42,7 +42,7 @@ export class XvTableRow {
42
42
  }
43
43
  }
44
44
  render() {
45
- return (h(Host, { key: 'ddaf7558958efb14b255f9bb4eba0f55ee6afc57' }, this.variant !== undefined && (h("xv-table-v2-cell", { key: 'bbd0b771f69fea0b752995b8914ff781d502c786', class: "cell-control" }, this.variant === 'checkbox' && (h("xv-checkbox-v2", { key: '0ef948bc26c7ba61fab37b81b55fc3b88f80fda1', name: this.name, partial: this.partial, checked: this.checked || this.partial, disabled: this.disabled, required: this.required, readonly: this.readonly, onEventChange: this.checkHandle })), this.variant === 'radio' && (h("input", { key: '2aca519d79784e26855fb9e63e268de51742242e', type: "radio", name: this.name, checked: this.checked || this.partial, disabled: this.disabled, required: this.required, readonly: this.readonly })))), h("slot", { key: '5fca9c696e28605ae2d5d5fad35b23bf0db044eb' })));
45
+ return (h(Host, { key: 'cddf0d200527519f0a28d537ffb3c17c3fc8056e' }, this.variant !== undefined && (h("xv-table-v2-cell", { key: '74058aab7fbbefa23747272bf556f1c5ac3a897c', class: "cell-control" }, this.variant === 'checkbox' && (h("xv-checkbox-v2", { key: 'd13fe98367c1fbb7749fdb56242758f76a5f5b21', name: this.name, partial: this.partial, checked: this.checked || this.partial, disabled: this.disabled, required: this.required, readonly: this.readonly, onEventChange: this.checkHandle })), this.variant === 'radio' && (h("input", { key: '03f9caeaa2421e98586812972098cf6d1272d3a4', type: "radio", name: this.name, checked: this.checked || this.partial, disabled: this.disabled, required: this.required, readonly: this.readonly })))), h("slot", { key: 'b61ec75d949c9ee81c56f56be345f2603ab72c81' })));
46
46
  }
47
47
  componentWillLoad() {
48
48
  this.setInitialAttrs();
@@ -31,7 +31,7 @@ export class XvTable {
31
31
  .join(' ') + ' repeat(auto-fit, minmax(0, 1fr))');
32
32
  }
33
33
  render() {
34
- return (h(Host, { key: '44bc704eeaa933a6ada6f72a44134fb9f31605ff', class: { batchVisible: !!this.selectedCount } }, h("slot", { key: 'fed31f6f7371444b10f442370701f21bce5db86a', name: "title" }, !!this.el.title && h("h2", { key: 'e67ffc4ede9b83b7388d429834cb855ae8f406d8', class: "xv-table-title" }, this.el.title)), h("slot", { key: 'f827de955c11d9a001f60e8cd96bc353d50292e5', name: "toolbar" }), h("div", { key: '33161ad1f4ef71786066a5b907c46df5cc32e2ec', class: "xv-table" }, h("div", { key: '6850cb6d234ee331d9a4d5c323b73eb39af6cbfb', class: "batch-actions" }, h(Fragment, { key: '035cfa2ad27313e6186c9d4e936f996d9f20ea37' }, h("div", { key: '98875c9c8f6043d94b06687bb2575a3d52f9e63c', class: "batch-actions_content" }, h("slot", { key: '1da60621f9fc19f7e4edb833ca08b875bf5f53a4', name: "batch" })), h("p", { key: '4a0dddcb8ec857ece2d27fc7f293d353a4e82b6b', class: "batch-actions_count" }, !!this.selectedCount && `${this.selectedCount} ${this.selectedCount === 1 ? 'Position ausgewählt' : 'Positionen ausgewählt'}`))), h("div", { key: 'cde524996dc244aa6779862c561c0798cbd0989c', class: "xv-table_wrapper" }, h("slot", { key: 'c5adf99e089991104592681711033158dfc6627e' }), h("slot", { key: '2a9c0dc805cbe805772b39c8dbfcff3b5a19b2c1', name: "footer" })), !!this.loading && (h("div", { key: '381d6e295f91654eeafce7ef221a940905cba5e3', class: "xv-table_loading" }, h("xv-loader-v2", { key: 'f43b0c1bd43ee4094350ee026c5ad2de2b0b9049', size: SIZE_VAR.LG }))))));
34
+ return (h(Host, { key: '7716cc675c8843b9ef2456dabd1007802ea12fed', class: { batchVisible: !!this.selectedCount } }, h("slot", { key: 'ad22e90ce3d5800a6a986b009c3005904e1f7e57', name: "title" }, !!this.el.title && h("h2", { key: '16050528fb7c64b1c133756e30978eb69b5d3f9c', class: "xv-table-title" }, this.el.title)), h("slot", { key: '07031a85052e40799133c9d158a2872c4432eb27', name: "toolbar" }), h("div", { key: '199e19a9cce2673706023010da12fd0b2bf4bca6', class: "xv-table" }, h("div", { key: '56b95d0b115cfc5897a37c1976e030f183fc8754', class: "batch-actions" }, h(Fragment, { key: 'bb5b2f489a22b45bbb2717c9064f9d1c5c010dab' }, h("div", { key: '6f2c54560d44e3aee5c41af8910754c885113bed', class: "batch-actions_content" }, h("slot", { key: '58cdeb009bce437a46d242be2011af15cd0dce25', name: "batch" })), h("p", { key: 'a7981b13ae1db2a677788aa7c9b3f917675606d7', class: "batch-actions_count" }, !!this.selectedCount && `${this.selectedCount} ${this.selectedCount === 1 ? 'Position ausgewählt' : 'Positionen ausgewählt'}`))), h("div", { key: 'f1ae8bd6bea1507caac3e38493f24b3025934aac', class: "xv-table_wrapper" }, h("slot", { key: 'a241c060c564fcc3bfd2fbe0f7538db14996b825' }), h("slot", { key: '691818c0985242cc5a46cbc7edb08c768483f88a', name: "footer" })), !!this.loading && (h("div", { key: 'e9a6ba7d7ac61981e25b873838a7211e15c9bd17', class: "xv-table_loading" }, h("xv-loader-v2", { key: 'e02aae10086eb72a6be3adbdadf3d42328cd1935', size: SIZE_VAR.LG }))))));
35
35
  }
36
36
  componentWillLoad() {
37
37
  this.setColsSizeTemplate();
@@ -6,7 +6,7 @@ export class XvTab {
6
6
  this.loading = false;
7
7
  }
8
8
  render() {
9
- return (h(Host, { key: '79c789ace42aeb97e09f0b2732ff7af103c73e2f', disabled: this.disabled, name: this.name }, this.loading ? h("xv-loader-v2", { size: SIZE_VAR.LG }) : h("slot", null)));
9
+ return (h(Host, { key: '45576975c3fc396278b128e1896436f825ec3b47', disabled: this.disabled, name: this.name }, this.loading ? h("xv-loader-v2", { size: SIZE_VAR.LG }) : h("slot", null)));
10
10
  }
11
11
  static get is() { return "xv-tab-v2"; }
12
12
  static get encapsulation() { return "shadow"; }
@@ -102,6 +102,9 @@
102
102
  display: flex;
103
103
  flex-wrap: nowrap;
104
104
  }
105
+ :host(.xv-tabs) .tab-headers[hidden] {
106
+ visibility: hidden;
107
+ }
105
108
  :host(.xv-tabs) .tab-headers_container {
106
109
  display: flex;
107
110
  flex: 1 1 auto;
@@ -11,6 +11,10 @@ export class XvTabs {
11
11
  * Variant of tabs from TABS_VATIANT enum
12
12
  */
13
13
  this.variant = TABS_VATIANT.DEFAULT;
14
+ /**
15
+ * Is hide tabs when only one tab present
16
+ */
17
+ this.hideSingleTab = false;
14
18
  /**
15
19
  * local variable for tab labels collection
16
20
  */
@@ -72,14 +76,14 @@ export class XvTabs {
72
76
  this.handleTabClick(nextTab.getAttribute('name') || nextIdx);
73
77
  }
74
78
  render() {
75
- var _a, _b, _c;
79
+ var _a, _b, _c, _d;
76
80
  if (this.loading) {
77
81
  return (h(Host, { class: "xv-tabs", variant: this.variant }, h("xv-loader-v2", { size: SIZE_VAR.XL })));
78
82
  }
79
- return (h(Host, { class: "xv-tabs", variant: this.variant }, h("div", { class: "tab-headers", role: "tablist" }, h("button", { hidden: !this.showArrows || !((_a = this.tabElements) === null || _a === void 0 ? void 0 : _a.length), "aria-label": "Previous", class: "tab-headers_btn prev", onClick: () => this.setTab(-1) }), h("div", { class: "tab-headers_container" }, ((_b = this.tabElements) === null || _b === void 0 ? void 0 : _b.length) ? this.tabElements.map((tab, index) => (h("button", { role: "tab", disabled: !!tab.getAttribute('disabled') || !!(tab === null || tab === void 0 ? void 0 : tab.disabled), class: {
83
+ return (h(Host, { class: "xv-tabs", variant: this.variant }, h("div", { class: "tab-headers", hidden: this.hideSingleTab && ((_a = this.tabElements) === null || _a === void 0 ? void 0 : _a.length) === 1, role: "tablist" }, h("button", { hidden: !this.showArrows || !((_b = this.tabElements) === null || _b === void 0 ? void 0 : _b.length), "aria-label": "Previous", class: "tab-headers_btn prev", onClick: () => this.setTab(-1) }), h("div", { class: "tab-headers_container" }, ((_c = this.tabElements) === null || _c === void 0 ? void 0 : _c.length) ? this.tabElements.map((tab, index) => (h("button", { role: "tab", disabled: !!tab.getAttribute('disabled') || !!(tab === null || tab === void 0 ? void 0 : tab.disabled), class: {
80
84
  'tab-headers_tab': true,
81
85
  active: (tab.getAttribute('name') || `${index}`) === `${this.active}`,
82
- }, onClick: () => this.handleTabClick(tab.getAttribute('name') || `${index}`) }, tab.getAttribute('label') || `Tab ${index + 1}`))) : this.emptyMessage && h("p", { class: "xv-tabs_empty" }, this.emptyMessage)), h("button", { "aria-label": "Next", hidden: !this.showArrows || !((_c = this.tabElements) === null || _c === void 0 ? void 0 : _c.length), class: "tab-headers_btn next", onClick: () => this.setTab(1) })), h("div", { class: "tab-content-wrapper", role: "tabpanel", tabindex: -1 }, h("slot", { onSlotchange: this.collectTabs }))));
86
+ }, onClick: () => this.handleTabClick(tab.getAttribute('name') || `${index}`) }, tab.getAttribute('label') || `Tab ${index + 1}`))) : this.emptyMessage && h("p", { class: "xv-tabs_empty" }, this.emptyMessage)), h("button", { "aria-label": "Next", hidden: !this.showArrows || !((_d = this.tabElements) === null || _d === void 0 ? void 0 : _d.length), class: "tab-headers_btn next", onClick: () => this.setTab(1) })), h("div", { class: "tab-content-wrapper", role: "tabpanel", tabindex: -1 }, h("slot", { onSlotchange: this.collectTabs }))));
83
87
  }
84
88
  componentDidRender() {
85
89
  this.updateTabClasses();
@@ -181,6 +185,26 @@ export class XvTabs {
181
185
  "getter": false,
182
186
  "setter": false,
183
187
  "reflect": false
188
+ },
189
+ "hideSingleTab": {
190
+ "type": "boolean",
191
+ "attribute": "hide-single-tab",
192
+ "mutable": false,
193
+ "complexType": {
194
+ "original": "boolean",
195
+ "resolved": "boolean",
196
+ "references": {}
197
+ },
198
+ "required": false,
199
+ "optional": false,
200
+ "docs": {
201
+ "tags": [],
202
+ "text": "Is hide tabs when only one tab present"
203
+ },
204
+ "getter": false,
205
+ "setter": false,
206
+ "reflect": false,
207
+ "defaultValue": "false"
184
208
  }
185
209
  };
186
210
  }
@@ -1 +1 @@
1
- {"version":3,"file":"xv-tabs.js","sourceRoot":"","sources":["../../../src/components/xv-tabs/xv-tabs.tsx"],"names":[],"mappings":"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","sourcesContent":["import { Component, Host, h, Element, Prop, Event, EventEmitter, State, Listen } from '@stencil/core';\nimport { TAB_TAGS, TABS_VATIANT } from './_vars';\nimport { SIZE_VAR } from '../../types/enum';\n\n@Component({\n tag: 'xv-tabs-v2',\n styleUrl: 'xv-tabs.scss',\n shadow: true,\n})\nexport class XvTabs {\n @Element() el: HTMLElement;\n /**\n * Index of active tab\n */\n @Prop({ reflect: true, mutable: true }) active: number | string = 0;\n /**\n * Emit event to outside\n */\n @Event() activeChange: EventEmitter<number | string>;\n /**\n * Show loader\n */\n @Prop({ reflect: true }) loading?: boolean;\n /**\n * Variant of tabs from TABS_VATIANT enum\n */\n @Prop() variant: TABS_VATIANT = TABS_VATIANT.DEFAULT;\n /**\n * Message when have no tabs\n */\n @Prop() emptyMessage?: string;\n /**\n * local variable for tab labels collection\n */\n @State() tabElements: HTMLElement[] = [];\n /**\n * Is show arrows for scroll\n */\n @State() showArrows: boolean = false;\n\n @Listen('resize', { target: 'window' })\n updateArrowVisibility() {\n const container = this.el.shadowRoot?.querySelector('.tab-headers_container') as HTMLElement | null;\n if (!container) return;\n\n this.showArrows = container.scrollWidth > container.clientWidth;\n }\n\n private collectTabs = () => {\n const newTabs = Array.from(this.el.querySelectorAll(TAB_TAGS.TAB));\n if (!this.tabElements.length || newTabs.length !== this.tabElements.length) {\n this.tabElements = newTabs;\n this.tabElements.forEach((tab) => {\n if (tab.hasAttribute('name') && !this.active) {\n this.active = tab.getAttribute('name');\n }\n })\n\n setTimeout(() => this.updateArrowVisibility(), 100);\n }\n }\n\n private updateTabClasses() {\n this.tabElements.forEach((tab, i) => {\n tab.classList.toggle(\n 'active',\n (tab.getAttribute('name') || `${i}`) === `${this.active}`\n );\n });\n }\n\n private handleTabClick(active: string | number) {\n if (active === this.active) return;\n\n this.active = active;\n this.activeChange.emit(Number(this.active) || this.active);\n this.scrollToActiveTab();\n }\n\n private scrollToActiveTab() {\n if (!this.showArrows) return;\n\n // wait next JS tik\n setTimeout(() => {\n this.el.shadowRoot\n .querySelector('.tab-headers_tab.active')\n .scrollIntoView({ behavior: 'smooth', inline: 'center', block: 'nearest' });\n });\n }\n\n private setTab(count: number = 1) {\n const currentIdx = this.tabElements.findIndex(\n (tab, i) =>\n (tab.getAttribute('name') || `${i}`) === `${this.active}`\n );\n const nextIdx = currentIdx + count;\n\n if (nextIdx < 0 || nextIdx >= this.tabElements.length) return;\n\n const nextTab = this.tabElements[nextIdx];\n\n if (!nextTab || nextTab.hasAttribute('disabled')) return;\n\n this.handleTabClick(nextTab.getAttribute('name') || nextIdx);\n }\n\n render() {\n if (this.loading) {\n return (\n <Host class=\"xv-tabs\" variant={this.variant}>\n <xv-loader-v2 size={SIZE_VAR.XL} />\n </Host>\n )\n }\n\n return (\n <Host class=\"xv-tabs\" variant={this.variant}>\n <div class=\"tab-headers\" role=\"tablist\">\n <button\n hidden={!this.showArrows || !this.tabElements?.length}\n aria-label=\"Previous\"\n class=\"tab-headers_btn prev\"\n onClick={() => this.setTab(-1)}\n />\n <div class=\"tab-headers_container\">\n {this.tabElements?.length ? this.tabElements.map((tab, index) => (\n <button\n role=\"tab\"\n disabled={!!tab.getAttribute('disabled') || !!(tab as any)?.disabled}\n class={{\n 'tab-headers_tab': true,\n active: (tab.getAttribute('name') || `${index}`) === `${this.active}`,\n }}\n onClick={() => this.handleTabClick(tab.getAttribute('name') || `${index}`)}\n >\n {tab.getAttribute('label') || `Tab ${index + 1}`}\n </button>\n )) : this.emptyMessage && <p class=\"xv-tabs_empty\">{this.emptyMessage}</p>}\n </div>\n <button\n aria-label=\"Next\"\n hidden={!this.showArrows || !this.tabElements?.length}\n class=\"tab-headers_btn next\"\n onClick={() => this.setTab(1)}\n />\n </div>\n\n <div\n class=\"tab-content-wrapper\"\n role=\"tabpanel\"\n tabindex={-1}\n >\n <slot onSlotchange={this.collectTabs} />\n </div>\n </Host>\n );\n }\n\n componentDidRender() {\n this.updateTabClasses();\n }\n}\n"]}
1
+ {"version":3,"file":"xv-tabs.js","sourceRoot":"","sources":["../../../src/components/xv-tabs/xv-tabs.tsx"],"names":[],"mappings":"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","sourcesContent":["import { Component, Host, h, Element, Prop, Event, EventEmitter, State, Listen } from '@stencil/core';\nimport { TAB_TAGS, TABS_VATIANT } from './_vars';\nimport { SIZE_VAR } from '../../types/enum';\n\n@Component({\n tag: 'xv-tabs-v2',\n styleUrl: 'xv-tabs.scss',\n shadow: true,\n})\nexport class XvTabs {\n @Element() el: HTMLElement;\n /**\n * Index of active tab\n */\n @Prop({ reflect: true, mutable: true }) active: number | string = 0;\n /**\n * Emit event to outside\n */\n @Event() activeChange: EventEmitter<number | string>;\n /**\n * Show loader\n */\n @Prop({ reflect: true }) loading?: boolean;\n /**\n * Variant of tabs from TABS_VATIANT enum\n */\n @Prop() variant: TABS_VATIANT = TABS_VATIANT.DEFAULT;\n /**\n * Message when have no tabs\n */\n @Prop() emptyMessage?: string;\n /**\n * Is hide tabs when only one tab present\n */\n @Prop() hideSingleTab: boolean = false;\n /**\n * local variable for tab labels collection\n */\n @State() tabElements: HTMLElement[] = [];\n /**\n * Is show arrows for scroll\n */\n @State() showArrows: boolean = false;\n\n @Listen('resize', { target: 'window' })\n updateArrowVisibility() {\n const container = this.el.shadowRoot?.querySelector('.tab-headers_container') as HTMLElement | null;\n if (!container) return;\n\n this.showArrows = container.scrollWidth > container.clientWidth;\n }\n\n private collectTabs = () => {\n const newTabs = Array.from(this.el.querySelectorAll(TAB_TAGS.TAB));\n if (!this.tabElements.length || newTabs.length !== this.tabElements.length) {\n this.tabElements = newTabs;\n this.tabElements.forEach((tab) => {\n if (tab.hasAttribute('name') && !this.active) {\n this.active = tab.getAttribute('name');\n }\n })\n\n setTimeout(() => this.updateArrowVisibility(), 100);\n }\n }\n\n private updateTabClasses() {\n this.tabElements.forEach((tab, i) => {\n tab.classList.toggle(\n 'active',\n (tab.getAttribute('name') || `${i}`) === `${this.active}`\n );\n });\n }\n\n private handleTabClick(active: string | number) {\n if (active === this.active) return;\n\n this.active = active;\n this.activeChange.emit(Number(this.active) || this.active);\n this.scrollToActiveTab();\n }\n\n private scrollToActiveTab() {\n if (!this.showArrows) return;\n\n // wait next JS tik\n setTimeout(() => {\n this.el.shadowRoot\n .querySelector('.tab-headers_tab.active')\n .scrollIntoView({ behavior: 'smooth', inline: 'center', block: 'nearest' });\n });\n }\n\n private setTab(count: number = 1) {\n const currentIdx = this.tabElements.findIndex(\n (tab, i) =>\n (tab.getAttribute('name') || `${i}`) === `${this.active}`\n );\n const nextIdx = currentIdx + count;\n\n if (nextIdx < 0 || nextIdx >= this.tabElements.length) return;\n\n const nextTab = this.tabElements[nextIdx];\n\n if (!nextTab || nextTab.hasAttribute('disabled')) return;\n\n this.handleTabClick(nextTab.getAttribute('name') || nextIdx);\n }\n\n render() {\n if (this.loading) {\n return (\n <Host class=\"xv-tabs\" variant={this.variant}>\n <xv-loader-v2 size={SIZE_VAR.XL} />\n </Host>\n )\n }\n\n return (\n <Host class=\"xv-tabs\" variant={this.variant}>\n <div class=\"tab-headers\" hidden={this.hideSingleTab && this.tabElements?.length === 1} role=\"tablist\">\n <button\n hidden={!this.showArrows || !this.tabElements?.length}\n aria-label=\"Previous\"\n class=\"tab-headers_btn prev\"\n onClick={() => this.setTab(-1)}\n />\n <div class=\"tab-headers_container\">\n {this.tabElements?.length ? this.tabElements.map((tab, index) => (\n <button\n role=\"tab\"\n disabled={!!tab.getAttribute('disabled') || !!(tab as any)?.disabled}\n class={{\n 'tab-headers_tab': true,\n active: (tab.getAttribute('name') || `${index}`) === `${this.active}`,\n }}\n onClick={() => this.handleTabClick(tab.getAttribute('name') || `${index}`)}\n >\n {tab.getAttribute('label') || `Tab ${index + 1}`}\n </button>\n )) : this.emptyMessage && <p class=\"xv-tabs_empty\">{this.emptyMessage}</p>}\n </div>\n <button\n aria-label=\"Next\"\n hidden={!this.showArrows || !this.tabElements?.length}\n class=\"tab-headers_btn next\"\n onClick={() => this.setTab(1)}\n />\n </div>\n\n <div\n class=\"tab-content-wrapper\"\n role=\"tabpanel\"\n tabindex={-1}\n >\n <slot onSlotchange={this.collectTabs} />\n </div>\n </Host>\n );\n }\n\n componentDidRender() {\n this.updateTabClasses();\n }\n}\n"]}
@@ -13,7 +13,7 @@ export class XvTag {
13
13
  this.closeClick.emit(e);
14
14
  }
15
15
  render() {
16
- return (h(Host, { key: '74f61c1fe142e238955dbd6eed10f3faab729054', style: { color: this.color, background: this.bg }, class: `xv-tag ${this.disabled ? 'disabled' : ''} ${this.size}` }, h("div", { key: '1bf40a32f47a8b731993f4435ebcf4b1e80e1434', class: "xv-tag_content", part: "details-content" }, h("slot", { key: '4459c6433668f01b52d01e6a0edb4ef4e212b8d0' })), this.closeable && (h("button", { key: '27d66ee3508fd03fb64905f1ab82b6172bff4b9a', onClick: this.closeHandler.bind(this), class: "xv-tag_close" }))));
16
+ return (h(Host, { key: '39ecc255f5a885f4cd9550e9820a4bdb3049c2e5', style: { color: this.color, background: this.bg }, class: `xv-tag ${this.disabled ? 'disabled' : ''} ${this.size}` }, h("div", { key: '207b75ac857070e38803f48786ae0c726e8ee5fa', class: "xv-tag_content" }, h("slot", { key: 'd429ab65a7aac955ade0259275755bff4a9f7fef' })), this.closeable && (h("button", { key: '68562a9802ec6496d66730bc2388226c35872e43', onClick: this.closeHandler.bind(this), class: "xv-tag_close" }))));
17
17
  }
18
18
  static get is() { return "xv-tag-v2"; }
19
19
  static get encapsulation() { return "shadow"; }
@@ -1 +1 @@
1
- {"version":3,"file":"xv-tag.js","sourceRoot":"","sources":["../../../src/components/xv-tag/xv-tag.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE,KAAK,EAAgB,MAAM,eAAe,CAAC;AAO9E,MAAM,OAAO,KAAK;IALlB;QAMU,SAAI,GAAuB,IAAI,CAAC;QAChC,UAAK,GAAW,EAAE,CAAC;QACnB,OAAE,GAAW,EAAE,CAAC;QAChB,aAAQ,GAAY,KAAK,CAAC;QAC1B,cAAS,GAAY,KAAK,CAAC;KAwBpC;IArBC,YAAY,CAAC,CAAe;QAC1B,IAAI,IAAI,CAAC,QAAQ;YAAE,OAAO;QAE1B,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAC1B,CAAC;IAED,MAAM;QACJ,OAAO,CACL,EAAC,IAAI,qDACH,KAAK,EAAE,EAAE,KAAK,EAAE,IAAI,CAAC,KAAK,EAAE,UAAU,EAAE,IAAI,CAAC,EAAE,EAAE,EACjD,KAAK,EAAE,UAAU,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,EAAE,IAAI,IAAI,CAAC,IAAI,EAAE;YAE/D,4DAAK,KAAK,EAAC,gBAAgB,EAAC,IAAI,EAAC,iBAAiB;gBAChD,8DAAa,CACT;YACL,IAAI,CAAC,SAAS,IAAI,CACjB,+DAAQ,OAAO,EAAE,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,KAAK,EAAC,cAAc,GAAU,CAC9E,CACI,CACR,CAAC;IACJ,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CACF","sourcesContent":["import { Component, Host, h, Prop, Event, EventEmitter } from '@stencil/core';\n\n@Component({\n tag: 'xv-tag-v2',\n styleUrl: 'xv-tag.scss',\n shadow: true,\n})\nexport class XvTag {\n @Prop() size: 'sm' | 'md' | 'lg' = 'md';\n @Prop() color: string = '';\n @Prop() bg: string = '';\n @Prop() disabled: boolean = false;\n @Prop() closeable: boolean = false;\n @Event() closeClick: EventEmitter<PointerEvent>;\n\n closeHandler(e: PointerEvent) {\n if (this.disabled) return;\n\n this.closeClick.emit(e);\n }\n\n render() {\n return (\n <Host\n style={{ color: this.color, background: this.bg }}\n class={`xv-tag ${this.disabled ? 'disabled' : ''} ${this.size}`}\n >\n <div class=\"xv-tag_content\" part=\"details-content\">\n <slot></slot>\n </div>\n {this.closeable && (\n <button onClick={this.closeHandler.bind(this)} class=\"xv-tag_close\"></button>\n )}\n </Host>\n );\n }\n}\n"]}
1
+ {"version":3,"file":"xv-tag.js","sourceRoot":"","sources":["../../../src/components/xv-tag/xv-tag.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE,KAAK,EAAgB,MAAM,eAAe,CAAC;AAO9E,MAAM,OAAO,KAAK;IALlB;QAMU,SAAI,GAAuB,IAAI,CAAC;QAChC,UAAK,GAAW,EAAE,CAAC;QACnB,OAAE,GAAW,EAAE,CAAC;QAChB,aAAQ,GAAY,KAAK,CAAC;QAC1B,cAAS,GAAY,KAAK,CAAC;KAwBpC;IArBC,YAAY,CAAC,CAAe;QAC1B,IAAI,IAAI,CAAC,QAAQ;YAAE,OAAO;QAE1B,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAC1B,CAAC;IAED,MAAM;QACJ,OAAO,CACL,EAAC,IAAI,qDACH,KAAK,EAAE,EAAE,KAAK,EAAE,IAAI,CAAC,KAAK,EAAE,UAAU,EAAE,IAAI,CAAC,EAAE,EAAE,EACjD,KAAK,EAAE,UAAU,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,EAAE,IAAI,IAAI,CAAC,IAAI,EAAE;YAE/D,4DAAK,KAAK,EAAC,gBAAgB;gBACzB,8DAAa,CACT;YACL,IAAI,CAAC,SAAS,IAAI,CACjB,+DAAQ,OAAO,EAAE,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,KAAK,EAAC,cAAc,GAAU,CAC9E,CACI,CACR,CAAC;IACJ,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CACF","sourcesContent":["import { Component, Host, h, Prop, Event, EventEmitter } from '@stencil/core';\n\n@Component({\n tag: 'xv-tag-v2',\n styleUrl: 'xv-tag.scss',\n shadow: true,\n})\nexport class XvTag {\n @Prop() size: 'sm' | 'md' | 'lg' = 'md';\n @Prop() color: string = '';\n @Prop() bg: string = '';\n @Prop() disabled: boolean = false;\n @Prop() closeable: boolean = false;\n @Event() closeClick: EventEmitter<PointerEvent>;\n\n closeHandler(e: PointerEvent) {\n if (this.disabled) return;\n\n this.closeClick.emit(e);\n }\n\n render() {\n return (\n <Host\n style={{ color: this.color, background: this.bg }}\n class={`xv-tag ${this.disabled ? 'disabled' : ''} ${this.size}`}\n >\n <div class=\"xv-tag_content\">\n <slot></slot>\n </div>\n {this.closeable && (\n <button onClick={this.closeHandler.bind(this)} class=\"xv-tag_close\"></button>\n )}\n </Host>\n );\n }\n}\n"]}
@@ -96,6 +96,7 @@ export class XvTagCombobox {
96
96
  }
97
97
  watchOptions() {
98
98
  this.normalizedOptions = this.normalizeOptions(this.options);
99
+ console.log('this.normalizedOptions', this.normalizedOptions);
99
100
  this.recomputeFiltered();
100
101
  }
101
102
  watchValue() {
@@ -232,12 +233,12 @@ export class XvTagCombobox {
232
233
  const suggestionsVisible = this.open && this.filtered.length > 0;
233
234
  const ariaOwns = suggestionsVisible ? `${this.uid}-listbox` : undefined;
234
235
  const activedesc = this.highlighted >= 0 ? this.optionId(this.highlighted) : undefined;
235
- return (h(Host, { key: '73b7f8f3b2c173185db38d6fd00973a922e61bf3', class: "xv-combobox", part: "root", size: this.size }, this.label && h("label", { key: '23ca2f8f403f78902f5b412b5cf34f7e2542bd36', class: "label" }, this.label), h("div", { key: '30618eb3737c340bebbc93818007a7c708189db9', class: {
236
+ return (h(Host, { key: '248844f1d19bfd8dc9782bbff94b16712ca155ad', class: "xv-combobox", part: "root", size: this.size }, this.label && h("label", { key: 'e8c36dfdc570481a7a746c753056f2e03503588e', class: "label" }, this.label), h("div", { key: '5add00e0c9147d07abbe7927445b4762bab7f4c1', class: {
236
237
  'control': true,
237
238
  'control--disabled': this.disabled,
238
239
  'control--error': !!this.error,
239
240
  'control--readonly': !!this.readonly,
240
- }, onClick: () => this.blockClick() }, h("div", { key: 'b02bd6865fe0a6c7c99ecc172443dc0396bee8bd', class: "control-chips", role: "list" }, this.selected.map((s, i) => (h("xv-tag-v2", { role: "listitem", part: "chip", "data-value": s.value, size: this.COMPARE_TAG_SIZE[this.size], disabled: this.disabled, bg: (s === null || s === void 0 ? void 0 : s.bg) || 'var(--layer-accent-01, #F7F7F7)', color: (s === null || s === void 0 ? void 0 : s.color) || 'var(--text-primary, #333)', closeable: !this.readonly, onCloseClick: ({ detail }) => this.removeTag(i, detail) }, s.label))), h("input", { key: '18b809eb63ee1502a3959af3d892aa6ff5efe56a', ref: (el) => (this.inputEl = el), class: "control-input", readonly: this.readonly, placeholder: this.selected.length ? '' : this.placeholder, value: this.inputValue, onInput: (e) => this.onInput(e), onKeyDown: (e) => this.onKeyDown(e), onFocus: () => { this.onOpen(); this.recomputeFiltered(); }, "aria-autocomplete": "list", "aria-expanded": this.open ? 'true' : 'false', "aria-controls": ariaOwns, "aria-activedescendant": activedesc, disabled: this.disabled }))), this.error && typeof this.error === 'string' && (h("p", { key: 'c843e3ffa9ac3169d903249f9f47096afbeabe26', class: "message message--error" }, this.error)), this.warning && typeof this.warning === 'string' && (h("p", { key: '6fab432a22f905d6fe72f96235df656fc4e1966a', class: "message message--warning" }, this.warning)), suggestionsVisible && (h("ul", { key: 'c695431acea8f9711169d075c579ec68c2e40edb', id: `${this.uid}-listbox`, class: "suggestions", role: "listbox", part: "listbox" }, this.filtered.map((opt, idx) => (h("li", { id: this.optionId(idx), class: { 'suggestions-opt': true, 'suggestions-opt--highlight': idx === this.highlighted }, role: "option", "aria-selected": idx === this.highlighted, onMouseEnter: () => this.onOptionMouseEnter(idx), onMouseDown: (ev) => ev.preventDefault(), onClick: () => this.selectOption(opt) }, h("div", { class: "suggestions-opt-content" }, opt.bg ? h("span", { class: "suggestions-opt-content--color", style: { background: opt.bg } }) : null, h("span", { class: "suggestions-opt-content--label" }, this.highlightLabel(opt.label).map((seg, i) => typeof seg === 'string' ? h("span", { key: i }, seg) : h("strong", { key: i }, seg.match)))))))))));
241
+ }, onClick: () => this.blockClick() }, h("div", { key: '9399260d3ff5cef212284a2a98ad7908dd79765f', class: "control-chips", role: "list" }, this.selected.map((s, i) => (h("xv-tag-v2", { role: "listitem", part: "chip", "data-value": s.value, size: this.COMPARE_TAG_SIZE[this.size], disabled: this.disabled, bg: (s === null || s === void 0 ? void 0 : s.bg) || 'var(--layer-accent-01, #F7F7F7)', color: (s === null || s === void 0 ? void 0 : s.color) || 'var(--text-primary, #333)', closeable: !this.readonly, onCloseClick: ({ detail }) => this.removeTag(i, detail) }, s.label))), h("input", { key: 'e486c5f99aa56da911715dbe798895384766b9f4', ref: (el) => (this.inputEl = el), class: "control-input", readonly: this.readonly, placeholder: this.selected.length ? '' : this.placeholder, value: this.inputValue, onInput: (e) => this.onInput(e), onKeyDown: (e) => this.onKeyDown(e), onFocus: () => { this.onOpen(); this.recomputeFiltered(); }, "aria-autocomplete": "list", "aria-expanded": this.open ? 'true' : 'false', "aria-controls": ariaOwns, "aria-activedescendant": activedesc, disabled: this.disabled }))), this.error && typeof this.error === 'string' && (h("p", { key: '538a321bb0dcebf87705fee5ee848c6062578896', class: "message message--error" }, this.error)), this.warning && typeof this.warning === 'string' && (h("p", { key: '9a6740243b2b175b7b16b7854ece3726446f234c', class: "message message--warning" }, this.warning)), suggestionsVisible && (h("ul", { key: 'f1d25020b463835e62a326bf79bfbd57093311e2', id: `${this.uid}-listbox`, class: "suggestions", role: "listbox", part: "listbox" }, this.filtered.map((opt, idx) => (h("li", { id: this.optionId(idx), class: { 'suggestions-opt': true, 'suggestions-opt--highlight': idx === this.highlighted }, role: "option", "aria-selected": idx === this.highlighted, onMouseEnter: () => this.onOptionMouseEnter(idx), onMouseDown: (ev) => ev.preventDefault(), onClick: () => this.selectOption(opt) }, h("div", { class: "suggestions-opt-content" }, opt.bg ? h("span", { class: "suggestions-opt-content--color", style: { background: opt.bg } }) : null, h("span", { class: "suggestions-opt-content--label" }, this.highlightLabel(opt.label).map((seg, i) => typeof seg === 'string' ? h("span", { key: i }, seg) : h("strong", { key: i }, seg.match)))))))))));
241
242
  }
242
243
  static get is() { return "xv-tag-combobox"; }
243
244
  static get encapsulation() { return "shadow"; }
@@ -1 +1 @@
1
- {"version":3,"file":"xv-tag-combobox.js","sourceRoot":"","sources":["../../../src/components/xv-tag-combobox/xv-tag-combobox.tsx"],"names":[],"mappings":"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","sourcesContent":["import {\n Component,\n h,\n Prop,\n State,\n Event,\n EventEmitter,\n Element,\n Watch,\n Method, Host,\n} from '@stencil/core';\nimport { TagComboboxOpt, TagComboboxOptIn } from './xv-tag-combobox.config';\nimport { SIZE_VAR } from '../../types/enum';\n\n\n@Component({\n tag: 'xv-tag-combobox',\n styleUrl: 'xv-tag-combobox.scss',\n shadow: true,\n})\nexport class XvTagCombobox {\n @Element() host!: HTMLElement;\n // props\n @Prop() options: TagComboboxOptIn[] = [];\n @Prop() label: string = '';\n @Prop() size: SIZE_VAR = SIZE_VAR.MD;\n @Prop() placeholder: string = '';\n @Prop() allowCreate: boolean = true;\n @Prop() maxSuggestions: number = 200;\n @Prop() disabled: boolean = false;\n @Prop() readonly: boolean = false;\n @Prop() error: string | boolean = false;\n @Prop() warning: string | boolean = false;\n // initial selected values (strings). If you want controlled component, set this prop externally and listen to change.\n @Prop() value: string[] = [];\n // events\n @Event() valueChange!: EventEmitter<string[]>;\n @Event() inputChange!: EventEmitter<string>;\n // internal state\n @State() normalizedOptions: TagComboboxOpt[] = [];\n @State() selected: TagComboboxOpt[] = [];\n @State() inputValue: string = '';\n @State() open: boolean = false;\n @State() filtered: TagComboboxOpt[] = [];\n @State() highlighted: number = -1;\n\n private inputEl?: HTMLInputElement;\n private uid = 'xv' + Math.random().toString(36).slice(2, 9);\n private readonly COMPARE_TAG_SIZE: Record<SIZE_VAR, 'sm' | 'md' | 'lg'> = {\n [SIZE_VAR.XS]: 'sm',\n [SIZE_VAR.SM]: 'sm',\n [SIZE_VAR.MD]: 'sm',\n [SIZE_VAR.LG]: 'md',\n [SIZE_VAR.XL]: 'lg',\n };\n\n componentWillLoad() {\n this.normalizedOptions = this.normalizeOptions(this.options);\n this.selected = this.valueToOpts(this.value);\n this.recomputeFiltered();\n this.onDocumentClick = this.onDocumentClick.bind(this);\n window.addEventListener('click', this.onDocumentClick);\n }\n\n disconnectedCallback() {\n window.removeEventListener('click', this.onDocumentClick);\n }\n\n @Watch('options')\n watchOptions() {\n this.normalizedOptions = this.normalizeOptions(this.options);\n this.recomputeFiltered();\n }\n\n @Watch('value')\n watchValue() {\n // external control\n this.selected = this.valueToOpts(this.value);\n this.recomputeFiltered();\n }\n\n private normalizeOptions(arr: TagComboboxOptIn[]): TagComboboxOpt[] {\n return (arr || [])\n .map((o) => typeof o === 'string' ? { label: o, value: o } : o);\n }\n\n private valueToOpts(vals: string[]): TagComboboxOpt[] {\n const n = this.normalizedOptions;\n return (vals || []).map(v => n.find(o => o.value === v) || { label: v, value: v });\n }\n\n private emitChange() {\n this.valueChange.emit(this.selected.map(s => s.value));\n }\n\n private onDocumentClick(ev: MouseEvent) {\n const path = ev.composedPath ? ev.composedPath() : (ev as any).path;\n if (!path) return;\n const inside = path.some((el: any) => el === this.host);\n if (!inside) {\n this.open = false;\n this.highlighted = -1;\n }\n }\n\n private recomputeFiltered() {\n const q = (this.inputValue || '').trim().toLowerCase();\n const selectedValues = new Set(this.selected.map(s => s.value));\n const candidates = this.normalizedOptions.filter(o => !selectedValues.has(o.value));\n if (!q) {\n this.filtered = candidates.slice(0, this.maxSuggestions);\n return;\n }\n\n // boost prefix matches\n const starts = candidates.filter(o => o.label.toLowerCase().startsWith(q));\n const contains = candidates.filter(o => !o.label.toLowerCase().startsWith(q) && o.label.toLowerCase().includes(q));\n this.filtered = [...starts, ...contains].slice(0, this.maxSuggestions);\n }\n\n private onInput(e: Event) {\n const t = e.target as HTMLInputElement;\n this.inputValue = t.value;\n this.inputChange.emit(this.inputValue);\n this.open = true;\n this.highlighted = -1;\n this.recomputeFiltered();\n }\n\n private selectOption(opt: TagComboboxOpt) {\n if (this.disabled) return;\n if (!this.selected.find(s => s.value === opt.value)) {\n this.selected = [...this.selected, opt];\n this.emitChange();\n }\n this.inputValue = '';\n this.open = false;\n this.recomputeFiltered();\n // focus again to allow quick add\n requestAnimationFrame(() => this.inputEl?.focus());\n }\n\n private createFromInput() {\n const raw = (this.inputValue || '').trim();\n if (!raw) return;\n // if option exists with same label/value, use it\n const existing = this.normalizedOptions.find(o => o.label.toLowerCase() === raw.toLowerCase() || o.value === raw);\n const opt = existing || { label: raw, value: raw };\n this.selectOption(opt);\n }\n\n private removeTag(idx: number, e?: PointerEvent) {\n e?.preventDefault();\n if (this.disabled) return;\n this.selected = this.selected.filter((_, i) => i !== idx);\n this.emitChange();\n this.recomputeFiltered();\n // keep input focused\n this.inputEl?.focus();\n }\n\n private onKeyDown = (ev: KeyboardEvent) => {\n if (this.disabled || this.readonly) return;\n const key = ev.key;\n if (key === 'ArrowDown') {\n ev.preventDefault();\n if (!this.open) this.open = true;\n this.highlighted = Math.min(this.highlighted + 1, this.filtered.length - 1);\n if (this.highlighted < 0) this.highlighted = 0;\n this.scrollHighlightedIntoView();\n } else if (key === 'ArrowUp') {\n ev.preventDefault();\n this.highlighted = Math.max(this.highlighted - 1, 0);\n this.scrollHighlightedIntoView();\n } else if (key === 'Enter') {\n ev.preventDefault();\n if (this.open && this.highlighted >= 0 && this.highlighted < this.filtered.length) {\n this.selectOption(this.filtered[this.highlighted]);\n } else if (this.inputValue.trim() && this.allowCreate) {\n this.createFromInput();\n }\n } else if (key === ',' ) {\n // create tag on comma\n if (this.inputValue.trim()) {\n ev.preventDefault();\n if (this.allowCreate) this.createFromInput();\n }\n } else if (key === 'Escape') {\n this.open = false;\n this.highlighted = -1;\n } else if (key === 'Backspace' && !this.inputValue) {\n // remove last tag\n if (this.selected.length) {\n ev.preventDefault();\n this.removeTag(this.selected.length - 1);\n }\n } else if (key === 'Tab') {\n // if suggestion highlighted -> accept it on tab\n if (this.open && this.highlighted >= 0 && this.filtered[this.highlighted]) {\n this.selectOption(this.filtered[this.highlighted]);\n }\n }\n };\n\n private scrollHighlightedIntoView() {\n requestAnimationFrame(() => {\n const id = `${this.uid}-opt-${this.highlighted}`;\n const el = this.host.shadowRoot?.getElementById(id);\n if (el && el.scrollIntoView) {\n el.scrollIntoView({ block: 'nearest' });\n }\n });\n }\n\n private onOptionMouseEnter(index: number) {\n this.highlighted = index;\n }\n\n private optionId(index: number) {\n return `${this.uid}-opt-${index}`;\n }\n\n private highlightLabel(label: string) {\n const q = (this.inputValue || '').trim();\n if (!q) return [label];\n const idx = label.toLowerCase().indexOf(q.toLowerCase());\n if (idx === -1) return [label];\n return [\n label.slice(0, idx),\n { match: label.slice(idx, idx + q.length) },\n label.slice(idx + q.length),\n ];\n }\n\n private onOpen() {\n if (this.disabled || this.readonly) return;\n this.open = true;\n }\n\n private blockClick() {\n if (this.disabled || this.readonly) return;\n this.inputEl?.focus();\n this.onOpen();\n }\n\n // public methods\n @Method()\n async focusInput() {\n this.inputEl?.focus();\n }\n\n @Method()\n async clear() {\n this.selected = [];\n this.emitChange();\n }\n\n render() {\n const suggestionsVisible = this.open && this.filtered.length > 0;\n const ariaOwns = suggestionsVisible ? `${this.uid}-listbox` : undefined;\n const activedesc = this.highlighted >= 0 ? this.optionId(this.highlighted) : undefined;\n\n return (\n <Host class=\"xv-combobox\" part=\"root\" size={this.size}>\n {this.label && <label class=\"label\">{this.label}</label>}\n <div\n class={{\n 'control': true,\n 'control--disabled': this.disabled,\n 'control--error': !!this.error,\n 'control--readonly': !!this.readonly,\n }}\n onClick={() => this.blockClick()}\n >\n <div class=\"control-chips\" role=\"list\">\n {this.selected.map((s, i) => (\n <xv-tag-v2\n role=\"listitem\"\n part=\"chip\"\n data-value={s.value}\n size={this.COMPARE_TAG_SIZE[this.size]}\n disabled={this.disabled}\n bg={s?.bg || 'var(--layer-accent-01, #F7F7F7)'}\n color={s?.color || 'var(--text-primary, #333)'}\n closeable={!this.readonly}\n onCloseClick={({ detail }) => this.removeTag(i, detail)}>{s.label}</xv-tag-v2>\n ))}\n\n <input\n ref={(el) => (this.inputEl = el as HTMLInputElement)}\n class=\"control-input\"\n readonly={this.readonly}\n placeholder={this.selected.length ? '' : this.placeholder}\n value={this.inputValue}\n onInput={(e) => this.onInput(e)}\n onKeyDown={(e) => this.onKeyDown(e as KeyboardEvent)}\n onFocus={() => { this.onOpen(); this.recomputeFiltered(); }}\n aria-autocomplete=\"list\"\n aria-expanded={this.open ? 'true' : 'false'}\n aria-controls={ariaOwns}\n aria-activedescendant={activedesc}\n disabled={this.disabled}\n />\n </div>\n </div>\n {this.error && typeof this.error === 'string' && (\n <p class=\"message message--error\">{this.error}</p>\n )}\n {this.warning && typeof this.warning === 'string' && (\n <p class=\"message message--warning\">{this.warning}</p>\n )}\n\n {suggestionsVisible && (\n <ul id={`${this.uid}-listbox`} class=\"suggestions\" role=\"listbox\" part=\"listbox\">\n {this.filtered.map((opt, idx) => (\n <li\n id={this.optionId(idx)}\n class={{ 'suggestions-opt': true, 'suggestions-opt--highlight': idx === this.highlighted }}\n role=\"option\"\n aria-selected={idx === this.highlighted}\n onMouseEnter={() => this.onOptionMouseEnter(idx)}\n onMouseDown={(ev) => ev.preventDefault()}\n onClick={() => this.selectOption(opt)}\n >\n <div class=\"suggestions-opt-content\">\n {opt.bg ? <span class=\"suggestions-opt-content--color\" style={{ background: opt.bg }} /> : null}\n <span class=\"suggestions-opt-content--label\">\n {this.highlightLabel(opt.label).map((seg: any, i: number) =>\n typeof seg === 'string' ? <span key={i}>{seg}</span> : <strong key={i}>{seg.match}</strong>\n )}\n </span>\n </div>\n </li>\n ))}\n </ul>\n )}\n </Host>\n );\n }\n}\n"]}
1
+ {"version":3,"file":"xv-tag-combobox.js","sourceRoot":"","sources":["../../../src/components/xv-tag-combobox/xv-tag-combobox.tsx"],"names":[],"mappings":"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","sourcesContent":["import {\n Component,\n h,\n Prop,\n State,\n Event,\n EventEmitter,\n Element,\n Watch,\n Method, Host,\n} from '@stencil/core';\nimport { TagComboboxOpt, TagComboboxOptIn } from './xv-tag-combobox.config';\nimport { SIZE_VAR } from '../../types/enum';\n\n\n@Component({\n tag: 'xv-tag-combobox',\n styleUrl: 'xv-tag-combobox.scss',\n shadow: true,\n})\nexport class XvTagCombobox {\n @Element() host!: HTMLElement;\n // props\n @Prop() options: TagComboboxOptIn[] = [];\n @Prop() label: string = '';\n @Prop() size: SIZE_VAR = SIZE_VAR.MD;\n @Prop() placeholder: string = '';\n @Prop() allowCreate: boolean = true;\n @Prop() maxSuggestions: number = 200;\n @Prop() disabled: boolean = false;\n @Prop() readonly: boolean = false;\n @Prop() error: string | boolean = false;\n @Prop() warning: string | boolean = false;\n // initial selected values (strings). If you want controlled component, set this prop externally and listen to change.\n @Prop() value: string[] = [];\n // events\n @Event() valueChange!: EventEmitter<string[]>;\n @Event() inputChange!: EventEmitter<string>;\n // internal state\n @State() normalizedOptions: TagComboboxOpt[] = [];\n @State() selected: TagComboboxOpt[] = [];\n @State() inputValue: string = '';\n @State() open: boolean = false;\n @State() filtered: TagComboboxOpt[] = [];\n @State() highlighted: number = -1;\n\n private inputEl?: HTMLInputElement;\n private uid = 'xv' + Math.random().toString(36).slice(2, 9);\n private readonly COMPARE_TAG_SIZE: Record<SIZE_VAR, 'sm' | 'md' | 'lg'> = {\n [SIZE_VAR.XS]: 'sm',\n [SIZE_VAR.SM]: 'sm',\n [SIZE_VAR.MD]: 'sm',\n [SIZE_VAR.LG]: 'md',\n [SIZE_VAR.XL]: 'lg',\n };\n\n componentWillLoad() {\n this.normalizedOptions = this.normalizeOptions(this.options);\n this.selected = this.valueToOpts(this.value);\n this.recomputeFiltered();\n this.onDocumentClick = this.onDocumentClick.bind(this);\n window.addEventListener('click', this.onDocumentClick);\n }\n\n disconnectedCallback() {\n window.removeEventListener('click', this.onDocumentClick);\n }\n\n @Watch('options')\n watchOptions() {\n this.normalizedOptions = this.normalizeOptions(this.options);\n console.log('this.normalizedOptions', this.normalizedOptions);\n this.recomputeFiltered();\n }\n\n @Watch('value')\n watchValue() {\n // external control\n this.selected = this.valueToOpts(this.value);\n this.recomputeFiltered();\n }\n\n private normalizeOptions(arr: TagComboboxOptIn[]): TagComboboxOpt[] {\n return (arr || [])\n .map((o) => typeof o === 'string' ? { label: o, value: o } : o);\n }\n\n private valueToOpts(vals: string[]): TagComboboxOpt[] {\n const n = this.normalizedOptions;\n return (vals || []).map(v => n.find(o => o.value === v) || { label: v, value: v });\n }\n\n private emitChange() {\n this.valueChange.emit(this.selected.map(s => s.value));\n }\n\n private onDocumentClick(ev: MouseEvent) {\n const path = ev.composedPath ? ev.composedPath() : (ev as any).path;\n if (!path) return;\n const inside = path.some((el: any) => el === this.host);\n if (!inside) {\n this.open = false;\n this.highlighted = -1;\n }\n }\n\n private recomputeFiltered() {\n const q = (this.inputValue || '').trim().toLowerCase();\n const selectedValues = new Set(this.selected.map(s => s.value));\n const candidates = this.normalizedOptions.filter(o => !selectedValues.has(o.value));\n if (!q) {\n this.filtered = candidates.slice(0, this.maxSuggestions);\n return;\n }\n\n // boost prefix matches\n const starts = candidates.filter(o => o.label.toLowerCase().startsWith(q));\n const contains = candidates.filter(o => !o.label.toLowerCase().startsWith(q) && o.label.toLowerCase().includes(q));\n this.filtered = [...starts, ...contains].slice(0, this.maxSuggestions);\n }\n\n private onInput(e: Event) {\n const t = e.target as HTMLInputElement;\n this.inputValue = t.value;\n this.inputChange.emit(this.inputValue);\n this.open = true;\n this.highlighted = -1;\n this.recomputeFiltered();\n }\n\n private selectOption(opt: TagComboboxOpt) {\n if (this.disabled) return;\n if (!this.selected.find(s => s.value === opt.value)) {\n this.selected = [...this.selected, opt];\n this.emitChange();\n }\n this.inputValue = '';\n this.open = false;\n this.recomputeFiltered();\n // focus again to allow quick add\n requestAnimationFrame(() => this.inputEl?.focus());\n }\n\n private createFromInput() {\n const raw = (this.inputValue || '').trim();\n if (!raw) return;\n // if option exists with same label/value, use it\n const existing = this.normalizedOptions.find(o => o.label.toLowerCase() === raw.toLowerCase() || o.value === raw);\n const opt = existing || { label: raw, value: raw };\n this.selectOption(opt);\n }\n\n private removeTag(idx: number, e?: PointerEvent) {\n e?.preventDefault();\n if (this.disabled) return;\n this.selected = this.selected.filter((_, i) => i !== idx);\n this.emitChange();\n this.recomputeFiltered();\n // keep input focused\n this.inputEl?.focus();\n }\n\n private onKeyDown = (ev: KeyboardEvent) => {\n if (this.disabled || this.readonly) return;\n const key = ev.key;\n if (key === 'ArrowDown') {\n ev.preventDefault();\n if (!this.open) this.open = true;\n this.highlighted = Math.min(this.highlighted + 1, this.filtered.length - 1);\n if (this.highlighted < 0) this.highlighted = 0;\n this.scrollHighlightedIntoView();\n } else if (key === 'ArrowUp') {\n ev.preventDefault();\n this.highlighted = Math.max(this.highlighted - 1, 0);\n this.scrollHighlightedIntoView();\n } else if (key === 'Enter') {\n ev.preventDefault();\n if (this.open && this.highlighted >= 0 && this.highlighted < this.filtered.length) {\n this.selectOption(this.filtered[this.highlighted]);\n } else if (this.inputValue.trim() && this.allowCreate) {\n this.createFromInput();\n }\n } else if (key === ',' ) {\n // create tag on comma\n if (this.inputValue.trim()) {\n ev.preventDefault();\n if (this.allowCreate) this.createFromInput();\n }\n } else if (key === 'Escape') {\n this.open = false;\n this.highlighted = -1;\n } else if (key === 'Backspace' && !this.inputValue) {\n // remove last tag\n if (this.selected.length) {\n ev.preventDefault();\n this.removeTag(this.selected.length - 1);\n }\n } else if (key === 'Tab') {\n // if suggestion highlighted -> accept it on tab\n if (this.open && this.highlighted >= 0 && this.filtered[this.highlighted]) {\n this.selectOption(this.filtered[this.highlighted]);\n }\n }\n };\n\n private scrollHighlightedIntoView() {\n requestAnimationFrame(() => {\n const id = `${this.uid}-opt-${this.highlighted}`;\n const el = this.host.shadowRoot?.getElementById(id);\n if (el && el.scrollIntoView) {\n el.scrollIntoView({ block: 'nearest' });\n }\n });\n }\n\n private onOptionMouseEnter(index: number) {\n this.highlighted = index;\n }\n\n private optionId(index: number) {\n return `${this.uid}-opt-${index}`;\n }\n\n private highlightLabel(label: string) {\n const q = (this.inputValue || '').trim();\n if (!q) return [label];\n const idx = label.toLowerCase().indexOf(q.toLowerCase());\n if (idx === -1) return [label];\n return [\n label.slice(0, idx),\n { match: label.slice(idx, idx + q.length) },\n label.slice(idx + q.length),\n ];\n }\n\n private onOpen() {\n if (this.disabled || this.readonly) return;\n this.open = true;\n }\n\n private blockClick() {\n if (this.disabled || this.readonly) return;\n this.inputEl?.focus();\n this.onOpen();\n }\n\n // public methods\n @Method()\n async focusInput() {\n this.inputEl?.focus();\n }\n\n @Method()\n async clear() {\n this.selected = [];\n this.emitChange();\n }\n\n render() {\n const suggestionsVisible = this.open && this.filtered.length > 0;\n const ariaOwns = suggestionsVisible ? `${this.uid}-listbox` : undefined;\n const activedesc = this.highlighted >= 0 ? this.optionId(this.highlighted) : undefined;\n\n return (\n <Host class=\"xv-combobox\" part=\"root\" size={this.size}>\n {this.label && <label class=\"label\">{this.label}</label>}\n <div\n class={{\n 'control': true,\n 'control--disabled': this.disabled,\n 'control--error': !!this.error,\n 'control--readonly': !!this.readonly,\n }}\n onClick={() => this.blockClick()}\n >\n <div class=\"control-chips\" role=\"list\">\n {this.selected.map((s, i) => (\n <xv-tag-v2\n role=\"listitem\"\n part=\"chip\"\n data-value={s.value}\n size={this.COMPARE_TAG_SIZE[this.size]}\n disabled={this.disabled}\n bg={s?.bg || 'var(--layer-accent-01, #F7F7F7)'}\n color={s?.color || 'var(--text-primary, #333)'}\n closeable={!this.readonly}\n onCloseClick={({ detail }) => this.removeTag(i, detail)}>{s.label}</xv-tag-v2>\n ))}\n\n <input\n ref={(el) => (this.inputEl = el as HTMLInputElement)}\n class=\"control-input\"\n readonly={this.readonly}\n placeholder={this.selected.length ? '' : this.placeholder}\n value={this.inputValue}\n onInput={(e) => this.onInput(e)}\n onKeyDown={(e) => this.onKeyDown(e as KeyboardEvent)}\n onFocus={() => { this.onOpen(); this.recomputeFiltered(); }}\n aria-autocomplete=\"list\"\n aria-expanded={this.open ? 'true' : 'false'}\n aria-controls={ariaOwns}\n aria-activedescendant={activedesc}\n disabled={this.disabled}\n />\n </div>\n </div>\n {this.error && typeof this.error === 'string' && (\n <p class=\"message message--error\">{this.error}</p>\n )}\n {this.warning && typeof this.warning === 'string' && (\n <p class=\"message message--warning\">{this.warning}</p>\n )}\n\n {suggestionsVisible && (\n <ul id={`${this.uid}-listbox`} class=\"suggestions\" role=\"listbox\" part=\"listbox\">\n {this.filtered.map((opt, idx) => (\n <li\n id={this.optionId(idx)}\n class={{ 'suggestions-opt': true, 'suggestions-opt--highlight': idx === this.highlighted }}\n role=\"option\"\n aria-selected={idx === this.highlighted}\n onMouseEnter={() => this.onOptionMouseEnter(idx)}\n onMouseDown={(ev) => ev.preventDefault()}\n onClick={() => this.selectOption(opt)}\n >\n <div class=\"suggestions-opt-content\">\n {opt.bg ? <span class=\"suggestions-opt-content--color\" style={{ background: opt.bg }} /> : null}\n <span class=\"suggestions-opt-content--label\">\n {this.highlightLabel(opt.label).map((seg: any, i: number) =>\n typeof seg === 'string' ? <span key={i}>{seg}</span> : <strong key={i}>{seg.match}</strong>\n )}\n </span>\n </div>\n </li>\n ))}\n </ul>\n )}\n </Host>\n );\n }\n}\n"]}
@@ -23,13 +23,13 @@ export class XvTextInput {
23
23
  };
24
24
  }
25
25
  render() {
26
- return (h(Host, { key: 'b7ac2fc8abb526f0864df25f90fd014755c787f4', class: { disabled: !!this.disabled } }, h("label", { key: '4fd3f638e7510aab545dbb96c6059e2eae9f8485', class: "control" }, this.label && h("span", { key: '055e86d1a3cec4d496f25c1516d21de1067b5916', class: "control_label" }, this.label), h("div", { key: 'b50aafe2d21747fba93d2173b7e60305b12fd885', class: {
26
+ return (h(Host, { key: 'b4b7cc7c90c57e840102729dc32704c41bf2c734', class: { disabled: !!this.disabled } }, h("label", { key: 'b92cb0583c9f0b0889f76ccfa84ab71f4c01a8fe', class: "control" }, this.label && h("span", { key: '6d997a6a353774faeb2d66e91e60a55d4093fe8e', class: "control_label" }, this.label), h("div", { key: 'ad336acc8bb808b7ba5d2e8e13f3a2a911b9b776', class: {
27
27
  'control_input': true,
28
28
  readonly: !!this.readonly,
29
29
  [this.size]: true,
30
30
  error: !!this.error,
31
31
  warning: !!this.warning,
32
- } }, h("input", { key: 'c0f40ea2f9a536f32b9dd0af3953b0ba76051916', autocomplete: this.autocomplete, type: (this.type === 'password' && this.isPasswordVisible && 'text') || this.type, placeholder: this.placeholder, disabled: this.disabled, readonly: this.readonly, onInput: this.handleInput, name: this.name, value: this.value }), h("div", { key: '5f1210d23214a6d8ef2783aec66e0eadd057dd67', class: "control_input__icons" }, this.loading && h("xv-loader-v2", { key: 'bb328aae07e73388c2a8609a653e166e9dac0795', size: SIZE_VAR.XS }), !!this.error ? (h("span", { class: "status-icon error", "aria-hidden": "true" }, "!")) : !!this.warning ? (h("span", { class: "status-icon warning", "aria-hidden": "true" }, "\u26A0")) : null, this.type === 'password' && (h("button", { key: '2e3c869461670799716a2cb4032a697d28012364', onClick: this.togglePassword, disabled: this.disabled, class: "status-icon" }, h("svg", { key: '3ec47c7797457d97b86c6945c81c6be4f1e8da18', xmlns: "http://www.w3.org/2000/svg", viewBox: "0 0 640 512", width: 16, height: 16 }, this.isPasswordVisible ? (h("path", { fill: "currentColor", d: "M38.8 5.1C28.4-3.1 13.3-1.2 5.1 9.2S-1.2 34.7 9.2 42.9l592 464c10.4 8.2 25.5 6.3 33.7-4.1s6.3-25.5-4.1-33.7L525.6 386.7c39.6-40.6 66.4-86.1 79.9-118.4c3.3-7.9 3.3-16.7 0-24.6c-14.9-35.7-46.2-87.7-93-131.1C465.5 68.8 400.8 32 320 32c-68.2 0-125 26.3-169.3 60.8L38.8 5.1zm151 118.3C226 97.7 269.5 80 320 80c65.2 0 118.8 29.6 159.9 67.7C518.4 183.5 545 226 558.6 256c-12.6 28-36.6 66.8-70.9 100.9l-53.8-42.2c9.1-17.6 14.2-37.5 14.2-58.7c0-70.7-57.3-128-128-128c-32.2 0-61.7 11.9-84.2 31.5l-46.1-36.1zM394.9 284.2l-81.5-63.9c4.2-8.5 6.6-18.2 6.6-28.3c0-5.5-.7-10.9-2-16c.7 0 1.3 0 2 0c44.2 0 80 35.8 80 80c0 9.9-1.8 19.4-5.1 28.2zm9.4 130.3C378.8 425.4 350.7 432 320 432c-65.2 0-118.8-29.6-159.9-67.7C121.6 328.5 95 286 81.4 256c8.3-18.4 21.5-41.5 39.4-64.8L83.1 161.5C60.3 191.2 44 220.8 34.5 243.7c-3.3 7.9-3.3 16.7 0 24.6c14.9 35.7 46.2 87.7 93 131.1C174.5 443.2 239.2 480 320 480c47.8 0 89.9-12.9 126.2-32.5l-41.9-33zM192 256c0 70.7 57.3 128 128 128c13.3 0 26.1-2 38.2-5.8L302 334c-23.5-5.4-43.1-21.2-53.7-42.3l-56.1-44.2c-.2 2.8-.3 5.6-.3 8.5z" })) : (h("path", { fill: "currentColor", d: "M288 80c-65.2 0-118.8 29.6-159.9 67.7C89.6 183.5 63 226 49.4 256c13.6 30 40.2 72.5 78.6 108.3C169.2 402.4 222.8 432 288 432s118.8-29.6 159.9-67.7C486.4 328.5 513 286 526.6 256c-13.6-30-40.2-72.5-78.6-108.3C406.8 109.6 353.2 80 288 80zM95.4 112.6C142.5 68.8 207.2 32 288 32s145.5 36.8 192.6 80.6c46.8 43.5 78.1 95.4 93 131.1c3.3 7.9 3.3 16.7 0 24.6c-14.9 35.7-46.2 87.7-93 131.1C433.5 443.2 368.8 480 288 480s-145.5-36.8-192.6-80.6C48.6 356 17.3 304 2.5 268.3c-3.3-7.9-3.3-16.7 0-24.6C17.3 208 48.6 156 95.4 112.6zM288 336c44.2 0 80-35.8 80-80s-35.8-80-80-80c-.7 0-1.3 0-2 0c1.3 5.1 2 10.5 2 16c0 35.3-28.7 64-64 64c-5.5 0-10.9-.7-16-2c0 .7 0 1.3 0 2c0 44.2 35.8 80 80 80zm0-208a128 128 0 1 1 0 256 128 128 0 1 1 0-256z" })))))))), this.helper && h("p", { key: '8a874e87b481e6e4eac8614f6f5747e680bc314b', class: "message" }, this.helper), typeof this.error === 'string' ? (h("p", { class: "message error" }, this.error)) : typeof this.warning === 'string' ? (h("p", { class: "message warning" }, this.warning)) : null));
32
+ } }, h("input", { key: '278d092fb96f89df8dc0fb39437ad7396b501dad', autocomplete: this.autocomplete, type: (this.type === 'password' && this.isPasswordVisible && 'text') || this.type, placeholder: this.placeholder, disabled: this.disabled, readonly: this.readonly, onInput: this.handleInput, name: this.name, value: this.value }), h("div", { key: '6e1fd43277d83b7daa0d070bed4f2b0b59fa7bb9', class: "control_input__icons" }, this.loading && h("xv-loader-v2", { key: 'db021043efe93ef1a9fda937c22350a38b51fa3d', size: SIZE_VAR.XS }), !!this.error ? (h("span", { class: "status-icon error", "aria-hidden": "true" }, "!")) : !!this.warning ? (h("span", { class: "status-icon warning", "aria-hidden": "true" }, "\u26A0")) : null, this.type === 'password' && (h("button", { key: '1b40b117be9b186e146481f27f93ee9af986401f', onClick: this.togglePassword, disabled: this.disabled, class: "status-icon" }, h("svg", { key: '123f9e9df7a4ec3f1262171bc18061831b2ffc3e', xmlns: "http://www.w3.org/2000/svg", viewBox: "0 0 640 512", width: 16, height: 16 }, this.isPasswordVisible ? (h("path", { fill: "currentColor", d: "M38.8 5.1C28.4-3.1 13.3-1.2 5.1 9.2S-1.2 34.7 9.2 42.9l592 464c10.4 8.2 25.5 6.3 33.7-4.1s6.3-25.5-4.1-33.7L525.6 386.7c39.6-40.6 66.4-86.1 79.9-118.4c3.3-7.9 3.3-16.7 0-24.6c-14.9-35.7-46.2-87.7-93-131.1C465.5 68.8 400.8 32 320 32c-68.2 0-125 26.3-169.3 60.8L38.8 5.1zm151 118.3C226 97.7 269.5 80 320 80c65.2 0 118.8 29.6 159.9 67.7C518.4 183.5 545 226 558.6 256c-12.6 28-36.6 66.8-70.9 100.9l-53.8-42.2c9.1-17.6 14.2-37.5 14.2-58.7c0-70.7-57.3-128-128-128c-32.2 0-61.7 11.9-84.2 31.5l-46.1-36.1zM394.9 284.2l-81.5-63.9c4.2-8.5 6.6-18.2 6.6-28.3c0-5.5-.7-10.9-2-16c.7 0 1.3 0 2 0c44.2 0 80 35.8 80 80c0 9.9-1.8 19.4-5.1 28.2zm9.4 130.3C378.8 425.4 350.7 432 320 432c-65.2 0-118.8-29.6-159.9-67.7C121.6 328.5 95 286 81.4 256c8.3-18.4 21.5-41.5 39.4-64.8L83.1 161.5C60.3 191.2 44 220.8 34.5 243.7c-3.3 7.9-3.3 16.7 0 24.6c14.9 35.7 46.2 87.7 93 131.1C174.5 443.2 239.2 480 320 480c47.8 0 89.9-12.9 126.2-32.5l-41.9-33zM192 256c0 70.7 57.3 128 128 128c13.3 0 26.1-2 38.2-5.8L302 334c-23.5-5.4-43.1-21.2-53.7-42.3l-56.1-44.2c-.2 2.8-.3 5.6-.3 8.5z" })) : (h("path", { fill: "currentColor", d: "M288 80c-65.2 0-118.8 29.6-159.9 67.7C89.6 183.5 63 226 49.4 256c13.6 30 40.2 72.5 78.6 108.3C169.2 402.4 222.8 432 288 432s118.8-29.6 159.9-67.7C486.4 328.5 513 286 526.6 256c-13.6-30-40.2-72.5-78.6-108.3C406.8 109.6 353.2 80 288 80zM95.4 112.6C142.5 68.8 207.2 32 288 32s145.5 36.8 192.6 80.6c46.8 43.5 78.1 95.4 93 131.1c3.3 7.9 3.3 16.7 0 24.6c-14.9 35.7-46.2 87.7-93 131.1C433.5 443.2 368.8 480 288 480s-145.5-36.8-192.6-80.6C48.6 356 17.3 304 2.5 268.3c-3.3-7.9-3.3-16.7 0-24.6C17.3 208 48.6 156 95.4 112.6zM288 336c44.2 0 80-35.8 80-80s-35.8-80-80-80c-.7 0-1.3 0-2 0c1.3 5.1 2 10.5 2 16c0 35.3-28.7 64-64 64c-5.5 0-10.9-.7-16-2c0 .7 0 1.3 0 2c0 44.2 35.8 80 80 80zm0-208a128 128 0 1 1 0 256 128 128 0 1 1 0-256z" })))))))), this.helper && h("p", { key: '58728928ba761cf58f7dd3c80b68fe3aa3ac7058', class: "message" }, this.helper), typeof this.error === 'string' ? (h("p", { class: "message error" }, this.error)) : typeof this.warning === 'string' ? (h("p", { class: "message warning" }, this.warning)) : null));
33
33
  }
34
34
  static get is() { return "xv-text-input-v2"; }
35
35
  static get encapsulation() { return "shadow"; }
@@ -20,12 +20,12 @@ export class XvTextarea {
20
20
  this.value && this.internals.setFormValue(this.value);
21
21
  }
22
22
  render() {
23
- return (h(Host, { key: '278ce03e01193151058c7ab86cf9c7b94da77f02', class: { disabled: !!this.disabled } }, h("label", { key: '89277f6fa10fd15b37d2578dc9ae16969b8c1c36', class: "control" }, (this.label || this.max) && (h("p", { key: '8cf09ab7e699e0c74a8aaaa084e7f72e30862e48', class: "control_label" }, h("span", { key: 'e837104ab0163e1679f19e6be6914bc3a97915d1' }, this.label, this.info && h("xv-tooltip-v2", { key: 'cd50c872d5b6fdaa5a532bb9409c73c91d97d617', message: this.info })), this.max !== undefined && !this.counterHide && (h("span", { key: '1ec09ba02ddead5156c05c5b1da95d47b65dcd92', class: "control_label__count" }, this.value.length || 0, "/", this.max)))), h("div", { key: '9e1d8a3cc58b89a26d8946dd154edeb0f709e714', class: {
23
+ return (h(Host, { key: 'f0a5fa2a78a5c5636be60f73c33238e9f6b807fa', class: { disabled: !!this.disabled } }, h("label", { key: 'c9fefb7f9010d21bde9d7882111ae104d335fa75', class: "control" }, (this.label || this.max) && (h("p", { key: 'e384704f9e756c1ce17633efb1511608db54570f', class: "control_label" }, h("span", { key: 'f96021e67d6da90b6b6aa441aa04810468ca7bdc' }, this.label, this.info && h("xv-tooltip-v2", { key: '8d433d7fb077cbd43e72f9336e12e20dce831417', message: this.info })), this.max !== undefined && !this.counterHide && (h("span", { key: 'ff65f36243750bcfd40cd10ff147ab07b80fbf34', class: "control_label__count" }, this.value.length || 0, "/", this.max)))), h("div", { key: '925a665ad37af81f92c93df21a26da3f024dabb1', class: {
24
24
  'control_input': true,
25
25
  readonly: !!this.readonly,
26
26
  error: !!this.error,
27
27
  warning: this.warning !== undefined,
28
- } }, h("textarea", { key: '2bcbaff35a48e81a794f66c0a82291245e81f685', class: { 'no-resize': !!this.noResize }, name: this.name, rows: this.rows, value: this.value, maxLength: this.max, disabled: this.disabled, readOnly: this.readonly, placeholder: this.placeholder, onInput: this.onInput }), h("div", { key: 'e7750201c01667bba000c095fa3ac2813c2c5c51', class: "control_input__icons" }, this._renderIcon()))), this.helper && h("p", { key: '5c0803941b8d25b9952aafa53328c63eaaaed667', class: "message" }, this.helper), typeof this.error === 'string' ? (h("p", { class: "message error" }, this.error)) : typeof this.warning === 'string' ? (h("p", { class: "message warning" }, this.warning)) : null));
28
+ } }, h("textarea", { key: '2759a04b5e1feb74d453723cb4bcf2f9f372db62', class: { 'no-resize': !!this.noResize }, name: this.name, rows: this.rows, value: this.value, maxLength: this.max, disabled: this.disabled, readOnly: this.readonly, placeholder: this.placeholder, onInput: this.onInput }), h("div", { key: '8382cc4eddd6cab1040f986fb280ee27b5843e9a', class: "control_input__icons" }, this._renderIcon()))), this.helper && h("p", { key: '7266da6a80e0a3d4668c818cd81068eebf2257e7', class: "message" }, this.helper), typeof this.error === 'string' ? (h("p", { class: "message error" }, this.error)) : typeof this.warning === 'string' ? (h("p", { class: "message warning" }, this.warning)) : null));
29
29
  }
30
30
  _renderIcon() {
31
31
  if (this.loading)
@@ -28,7 +28,7 @@ export class XvTile {
28
28
  this.checked = !this.checked;
29
29
  }
30
30
  render() {
31
- return (h(Host, { key: '787f49efda5c9d8a0fc34d59e1eb5c7842808658', class: "xv-tile--host" }, h("label", { key: '6854ef4d21584ec709bc69068a4a626a4224bb90', class: {
31
+ return (h(Host, { key: '4cc80f2f28de04a904e0328409867d925baafa94', class: "xv-tile--host" }, h("label", { key: 'c7e334b1b8399b73ca18f6ef5ec825e4e2a9a141', class: {
32
32
  [this.el.className]: !!this.el.className,
33
33
  'xv-tile': true,
34
34
  [`xv-tile--variant-${this.variant}`]: !!this.variant,
@@ -36,7 +36,7 @@ export class XvTile {
36
36
  'xv-tile--disabled': !!this.disabled,
37
37
  'selected': !!this.checked,
38
38
  'xv-tile--error': !!this.error,
39
- } }, h("div", { key: '06b61f4e131ce400a1a482b6e64df86292744bd0', class: "xv-tile_content" }, this.label && h("p", { key: '29da4319c98b74a43825f35fa77b33159b080f0a', class: "xv-tile_content__title" }, this.label), h("slot", { key: '550e8fa547e59f3d2f793c45eec115062b45b0cf' })), this.variant === 'selectable' && (h("div", { key: 'de7b125c4e586794993c66e193b594888740f46f', class: "xv-tile_control" }, this.multiple ? (h("input", { type: "checkbox", disabled: this.disabled, onChange: this.handleChange, name: this.name, value: this.value, checked: this.checked })) : (h("input", { type: "radio", disabled: this.disabled, onChange: this.handleChange, name: this.name, value: this.value, checked: this.checked })))), (this.variant === 'clickable' || this.variant === 'expandable') && (h("div", { key: 'd92593c956965bafbc444d9169a570fa1d5d8d4f', class: "xv-tile_footer" }, h("button", { key: 'd89a9bbf552a20715e97daaeb8fbef582d09e950', class: { 'xv-tile_footer__icon': true, [`icon--${this.variant}`]: true, open: this.checked } }))), h("div", { key: '1dffa9f6b8389fdb3bec9cfbe77201e822ccc54d', class: { 'xv-tile_expandable': true, open: this.checked } }, h("slot", { key: '571470cde7a3aa434f6f7dec00a5e5f627cc7842', name: "expandable" })))));
39
+ } }, h("div", { key: '6ed2d0c29b40fb3097973ba3aa1b2d35b3738961', class: "xv-tile_content" }, this.label && h("p", { key: '0e7619751eb383ab27babe8b3199cf873f6aef36', class: "xv-tile_content__title" }, this.label), h("slot", { key: 'd5c2b6b0ccc45c0649aaee04118e0f301d179c67' })), this.variant === 'selectable' && (h("div", { key: '7be9998819c2a414fba48149f135d65ec8b2adcd', class: "xv-tile_control" }, this.multiple ? (h("input", { type: "checkbox", disabled: this.disabled, onChange: this.handleChange, name: this.name, value: this.value, checked: this.checked })) : (h("input", { type: "radio", disabled: this.disabled, onChange: this.handleChange, name: this.name, value: this.value, checked: this.checked })))), (this.variant === 'clickable' || this.variant === 'expandable') && (h("div", { key: '08716e30404eafc9c72a7ec6836912ba3bad332b', class: "xv-tile_footer" }, h("button", { key: '55cae2eed31ea2becb45ca048f62d014ed3238dd', class: { 'xv-tile_footer__icon': true, [`icon--${this.variant}`]: true, open: this.checked } }))), h("div", { key: '3b18c8e2cc66268cca0c501059dca6e3b171aa32', class: { 'xv-tile_expandable': true, open: this.checked } }, h("slot", { key: '72e2493d598126ee8b61e60503cd107823b761e2', name: "expandable" })))));
40
40
  }
41
41
  static get is() { return "xv-tile"; }
42
42
  static get originalStyleUrls() {
@@ -15,7 +15,7 @@ export class XvToggle {
15
15
  };
16
16
  }
17
17
  render() {
18
- return (h(Host, { key: '7dca5b745e245914a48eb84a9673f49189083f90', class: { 'xv-toggle': true, disabled: this.disabled, readonly: !!this.readonly, block: !!this.block } }, this.label && h("span", { key: 'c0b05af07ea7f111c9c183dc7deb3b6a5fb748c2', class: "label" }, this.label), h("label", { key: '6a0e01c43981ec333b068019e3411646b95d864a', class: "control" }, h("slot", { key: '08d931f4abeda534d79231593f055da2bca0f3e1', name: "before" }), h("div", { key: '18f1d9048f4b453eda4535065794d6da44039a4e', class: "control_input" }, h("input", { key: '289701543837c30367ce3cf484fc0015db00c3ae', type: "checkbox", readonly: this.readonly, name: this.name, value: this.value, checked: this.checked, disabled: this.disabled || this.readonly, onChange: this.onChange }), h("span", { key: 'fcda82cefd0e7e14e503644167a57d2ec957e99f', class: "toggle" })), h("slot", { key: '5b306070d1bc0895fc6bb82c1020ac59f0b99a50', name: "after" }))));
18
+ return (h(Host, { key: 'a91bab2e1cb3b326aacdffebd7484133d3022b9c', class: { 'xv-toggle': true, disabled: this.disabled, readonly: !!this.readonly, block: !!this.block } }, this.label && h("span", { key: '4d7bd057beb626b5a9604a4208dc6e9fd3544991', class: "label" }, this.label), h("label", { key: 'af5d7f7f1e8715207ff9fa970e9e3203af77c5c2', class: "control" }, h("slot", { key: 'f50eea57a567ad02add4d6c472a26f353c8fe5e4', name: "before" }), h("div", { key: '6cbff8947c2311feb34d40ec6c86931011749013', class: "control_input" }, h("input", { key: '94225b2886d94d6d71b1f3f614288493eef8b931', type: "checkbox", readonly: this.readonly, name: this.name, value: this.value, checked: this.checked, disabled: this.disabled || this.readonly, onChange: this.onChange }), h("span", { key: 'a9aa76bf5184cb5847af7fcbd5f1afb45e2d8e3f', class: "toggle" })), h("slot", { key: '1edcb5d43fe633c4290034f714b784def32af4b9', name: "after" }))));
19
19
  }
20
20
  static get is() { return "xv-toggle"; }
21
21
  static get encapsulation() { return "shadow"; }
@@ -186,6 +186,7 @@
186
186
  :host .popover .popover-content ::slotted([slot=footer]) {
187
187
  font-size: 0.75rem;
188
188
  color: var(--text-inverse);
189
+ opacity: 0.8;
189
190
  }
190
191
 
191
192
  :host(:not([open])) .popover {
@@ -67,7 +67,7 @@ export class XvToggleTip {
67
67
  }
68
68
  ;
69
69
  render() {
70
- return (h(Host, { key: '5171b5fe96dc31c842c2adf107acb5eef5927de9', class: "xv-toggle-tip" }, h("div", { key: 'f6ba7c3694716073a34c9ce1620eab0ef751c1b7', class: { 'trigger': true, 'trigger--block': this.block }, role: "button", tabindex: "0", "aria-expanded": this.open ? 'true' : 'false', "aria-controls": "popover", onClick: () => this.setPopover(!this.open), ref: (el) => (this.triggerEl = el) }, h("slot", { key: '62c3ebea7442b64bfaddb3679532b400717c5611', name: "trigger" }, h("svg", { key: 'dd117bcaf6487ad5349debbf2ce6cf19a329c544', class: "trigger_icon", xmlns: "http://www.w3.org/2000/svg", viewBox: "0 0 512 512", width: 16, height: 16 }, h("path", { key: '2f27e732beac9895bf7e3bbba3df43dccb7700da', fill: "currentColor", d: "M256 48a208 208 0 1 1 0 416 208 208 0 1 1 0-416zm0 464A256 256 0 1 0 256 0a256 256 0 1 0 0 512zM216 336c-13.3 0-24 10.7-24 24s10.7 24 24 24l80 0c13.3 0 24-10.7 24-24s-10.7-24-24-24l-8 0 0-88c0-13.3-10.7-24-24-24l-48 0c-13.3 0-24 10.7-24 24s10.7 24 24 24l24 0 0 64-24 0zm40-144a32 32 0 1 0 0-64 32 32 0 1 0 0 64z" })))), h("div", { key: '148067fda853955dbe6c39e31fee9b0ada584455', class: { popover: true, autoSize: !!this.autoSize }, role: "tooltip", tabindex: "-1", ref: (el) => (this.popoverEl = el) }, h("div", { key: '40385c0da9f2f607c5cfa85f77a397c93306139a', class: "popover-tip", part: "tip", "data-popper-arrow": "" }), h("div", { key: '9b58161ac56979314f3d8d7f10de56406f436513', class: "popover-content" }, h("slot", { key: 'fa5d5d88ca36908c4911fb55d9073acaafe46bd3', name: "header" }), h("slot", { key: 'd5b93a4d937fd6f69b3fe7a199a57420900ab39c', name: "body" }), h("slot", { key: '4f7a1a005de7b02cee74bfe05f48cdc4b799ef11', name: "footer" })))));
70
+ return (h(Host, { key: '3c739d4705b36559629165525c0dda77c272c24e', class: "xv-toggle-tip" }, h("div", { key: '1fc3ee89a209d6a1b5d039d895b34ea84a4b4e6d', class: { 'trigger': true, 'trigger--block': this.block }, role: "button", tabindex: "0", "aria-expanded": this.open ? 'true' : 'false', "aria-controls": "popover", onClick: () => this.setPopover(!this.open), ref: (el) => (this.triggerEl = el) }, h("slot", { key: 'b36abdded7eddca0515a37f9016793fdab1b1393', name: "trigger" }, h("svg", { key: '0faddc6bdb33f18d9f733afee20a8919cf643c34', class: "trigger_icon", xmlns: "http://www.w3.org/2000/svg", viewBox: "0 0 512 512", width: 16, height: 16 }, h("path", { key: 'a69e4b476e1708f6f69eee3a0e51a9bc4f8e3d94', fill: "currentColor", d: "M256 48a208 208 0 1 1 0 416 208 208 0 1 1 0-416zm0 464A256 256 0 1 0 256 0a256 256 0 1 0 0 512zM216 336c-13.3 0-24 10.7-24 24s10.7 24 24 24l80 0c13.3 0 24-10.7 24-24s-10.7-24-24-24l-8 0 0-88c0-13.3-10.7-24-24-24l-48 0c-13.3 0-24 10.7-24 24s10.7 24 24 24l24 0 0 64-24 0zm40-144a32 32 0 1 0 0-64 32 32 0 1 0 0 64z" })))), h("div", { key: 'f146c31db8cb603bca3e15870e6eebdda3254aeb', class: { popover: true, autoSize: !!this.autoSize }, role: "tooltip", tabindex: "-1", ref: (el) => (this.popoverEl = el) }, h("div", { key: 'a781e59259726f1ee196a972b32cc01df889259f', class: "popover-tip", part: "tip", "data-popper-arrow": "" }), h("div", { key: '3f5047e2528a4381b97fab2b8cc4c955ec6bdb70', class: "popover-content" }, h("slot", { key: '15bb742151b348040106bfbe92aa8a3f1fe34072', name: "header" }), h("slot", { key: '2056830e6f0081037ed2fc916a751f42585d9540', name: "body" }), h("slot", { key: '92f903d1edebf0984151cfbc18d2d4eb355f1b0f', name: "footer" })))));
71
71
  }
72
72
  disconnectedCallback() {
73
73
  this.destroyPopper();
@@ -38,11 +38,11 @@ export class XvTooltip {
38
38
  this.destroyTooltip();
39
39
  }
40
40
  render() {
41
- return (h(Host, { key: '3bdd48e32d7906129686db2f363c5c7c7b2dca76', role: "tooltip", class: {
41
+ return (h(Host, { key: '5d248dd7c9a1fc5fbd701a8ae0e1d4a98498af11', role: "tooltip", class: {
42
42
  'xv-tooltip-wrapper': true,
43
43
  [`xv-tooltip-wrapper__block`]: !!this.block,
44
44
  [`xv-tooltip-wrapper__dashed`]: !!this.dashed,
45
- } }, h("slot", { key: '98af48ae7bc3e94b2322da630271659c9f6ecf19' }, h("svg", { key: '01a313e3a7f5a35331369adfee947b56deed8977', xmlns: "http://www.w3.org/2000/svg", viewBox: "0 0 512 512", width: 16, height: 16 }, h("path", { key: 'b0d2f6af6ec092d474fd6bb12bcb7b66240cf4ef', fill: "currentColor", d: "M256 48a208 208 0 1 1 0 416 208 208 0 1 1 0-416zm0 464A256 256 0 1 0 256 0a256 256 0 1 0 0 512zM216 336c-13.3 0-24 10.7-24 24s10.7 24 24 24l80 0c13.3 0 24-10.7 24-24s-10.7-24-24-24l-8 0 0-88c0-13.3-10.7-24-24-24l-48 0c-13.3 0-24 10.7-24 24s10.7 24 24 24l24 0 0 64-24 0zm40-144a32 32 0 1 0 0-64 32 32 0 1 0 0 64z" })))));
45
+ } }, h("slot", { key: '662d38b57fb3a3a5c0f961229fc5dfede0e2a5c1' }, h("svg", { key: '3215343915c59224f12b4bfaf14127e25903f902', xmlns: "http://www.w3.org/2000/svg", viewBox: "0 0 512 512", width: 16, height: 16 }, h("path", { key: 'cb7ab241f253ccc4a1103e1fda592db328cf91a4', fill: "currentColor", d: "M256 48a208 208 0 1 1 0 416 208 208 0 1 1 0-416zm0 464A256 256 0 1 0 256 0a256 256 0 1 0 0 512zM216 336c-13.3 0-24 10.7-24 24s10.7 24 24 24l80 0c13.3 0 24-10.7 24-24s-10.7-24-24-24l-8 0 0-88c0-13.3-10.7-24-24-24l-48 0c-13.3 0-24 10.7-24 24s10.7 24 24 24l24 0 0 64-24 0zm40-144a32 32 0 1 0 0-64 32 32 0 1 0 0 64z" })))));
46
46
  }
47
47
  static get is() { return "xv-tooltip-v2"; }
48
48
  static get originalStyleUrls() {
@@ -11,20 +11,6 @@ function uidGenerator() {
11
11
  * @param [thisObject] The context object for the given callback function.
12
12
  */
13
13
  const forEach = (a, predicate, thisObject) => Array.prototype.forEach.call(a, predicate, thisObject);
14
- /**
15
- * Debounce the current function for some delay.
16
- * @param func The delayed function.
17
- * @param [delay = 500] The time to function delay call.
18
- */
19
- const debounce = (func, delay = 500) => {
20
- let timeoutId;
21
- return function (...args) {
22
- clearTimeout(timeoutId);
23
- timeoutId = setTimeout(() => {
24
- func.apply(this, args);
25
- }, delay);
26
- };
27
- };
28
14
  const setAttr = (node, name, value) => {
29
15
  if (typeof value === 'string') {
30
16
  !node.hasAttribute(name) && node.setAttribute(name, value);
@@ -49,7 +35,7 @@ const getMetaNav = () => {
49
35
  }
50
36
  };
51
37
 
52
- export { format as a, debounce as d, forEach as f, getMetaNav as g, setAttr as s, uidGenerator as u };
53
- //# sourceMappingURL=index-_tZy78IZ.js.map
38
+ export { format as a, forEach as f, getMetaNav as g, setAttr as s, uidGenerator as u };
39
+ //# sourceMappingURL=index-ZFbwGttR.js.map
54
40
 
55
- //# sourceMappingURL=index-_tZy78IZ.js.map
41
+ //# sourceMappingURL=index-ZFbwGttR.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index-_tZy78IZ.js","sources":["src/utils/utils.ts"],"sourcesContent":["export function format(first?: string, middle?: string, last?: string): string {\n return (first || '') + (middle ? ` ${middle}` : '') + (last ? ` ${last}` : '');\n}\n\nexport function uidGenerator() {\n return \"10000000-1000-4000-8000-100000000000\".replace(/[018]/g, c =>\n (+c ^ crypto.getRandomValues(new Uint8Array(1))[0] & 15 >> +c / 4).toString(16)\n );\n}\n\n/**\n * Walks through the given DOM collection and runs the given callback.\n * @param a A DOM collection.\n * @param predicate The callback function.\n * @param [thisObject] The context object for the given callback function.\n */\nexport const forEach = (\n a: NodeListOf<Node> | HTMLCollectionOf<Element>,\n predicate: (search: Element, index?: number) => void,\n thisObject?: any\n) => Array.prototype.forEach.call(a, predicate, thisObject);\n\n/**\n * Debounce the current function for some delay.\n * @param func The delayed function.\n * @param [delay = 500] The time to function delay call.\n */\nexport const debounce = (func: Function, delay: number = 500) => {\n let timeoutId: ReturnType<typeof setTimeout>;\n return function (...args: any[]) {\n clearTimeout(timeoutId);\n timeoutId = setTimeout(() => {\n func.apply(this, args);\n }, delay);\n };\n};\n\nexport const checkTag = <T extends Element, G = T>(element: T, tag: string) => {\n if (element?.tagName !== tag) return undefined;\n return element as unknown as G;\n};\n\nexport const setAttr = (node: Element, name: string, value: string | boolean) => {\n if (typeof value === 'string') {\n !node.hasAttribute(name) && node.setAttribute(name, value);\n return node;\n }\n\n if (value) {\n !node.hasAttribute(name) && node.setAttribute(name, '');\n } else {\n node.hasAttribute(name) && node.removeAttribute(name);\n }\n\n return node;\n};\n\nexport const getMetaNav = (): any => {\n try {\n const metaNavRaw = localStorage.getItem('metaNav');\n\n return metaNavRaw ? JSON.parse(metaNavRaw) : {};\n } catch (e) {\n console.warn('Could not parse metaNav from localStorage:', e);\n return {};\n }\n};\n"],"names":[],"mappings":"SAAgB,MAAM,CAAC,KAAc,EAAE,MAAe,EAAE,IAAa,EAAA;AACnE,IAAA,OAAO,CAAC,KAAK,IAAI,EAAE,KAAK,MAAM,GAAG,CAAI,CAAA,EAAA,MAAM,EAAE,GAAG,EAAE,CAAC,IAAI,IAAI,GAAG,CAAI,CAAA,EAAA,IAAI,EAAE,GAAG,EAAE,CAAC;AAChF;SAEgB,YAAY,GAAA;AAC1B,IAAA,OAAO,sCAAsC,CAAC,OAAO,CAAC,QAAQ,EAAE,CAAC,IAC/D,CAAC,CAAC,CAAC,GAAG,MAAM,CAAC,eAAe,CAAC,IAAI,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,EAAE,IAAI,CAAC,CAAC,GAAG,CAAC,EAAE,QAAQ,CAAC,EAAE,CAAC,CAChF;AACH;AAEA;;;;;AAKG;AACU,MAAA,OAAO,GAAG,CACrB,CAA+C,EAC/C,SAAoD,EACpD,UAAgB,KACb,KAAK,CAAC,SAAS,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,EAAE,SAAS,EAAE,UAAU;AAE1D;;;;AAIG;AACU,MAAA,QAAQ,GAAG,CAAC,IAAc,EAAE,KAAA,GAAgB,GAAG,KAAI;AAC9D,IAAA,IAAI,SAAwC;IAC5C,OAAO,UAAU,GAAG,IAAW,EAAA;QAC7B,YAAY,CAAC,SAAS,CAAC;AACvB,QAAA,SAAS,GAAG,UAAU,CAAC,MAAK;AAC1B,YAAA,IAAI,CAAC,KAAK,CAAC,IAAI,EAAE,IAAI,CAAC;SACvB,EAAE,KAAK,CAAC;AACX,KAAC;AACH;AAOa,MAAA,OAAO,GAAG,CAAC,IAAa,EAAE,IAAY,EAAE,KAAuB,KAAI;AAC9E,IAAA,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE;AAC7B,QAAA,CAAC,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,IAAI,IAAI,CAAC,YAAY,CAAC,IAAI,EAAE,KAAK,CAAC;AAC1D,QAAA,OAAO,IAAI;;IAGb,IAAI,KAAK,EAAE;AACT,QAAA,CAAC,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,IAAI,IAAI,CAAC,YAAY,CAAC,IAAI,EAAE,EAAE,CAAC;;SAClD;AACL,QAAA,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,IAAI,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC;;AAGvD,IAAA,OAAO,IAAI;AACb;AAEO,MAAM,UAAU,GAAG,MAAU;AAClC,IAAA,IAAI;QACF,MAAM,UAAU,GAAG,YAAY,CAAC,OAAO,CAAC,SAAS,CAAC;AAElD,QAAA,OAAO,UAAU,GAAG,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC,GAAG,EAAE;;IAC/C,OAAO,CAAC,EAAE;AACV,QAAA,OAAO,CAAC,IAAI,CAAC,4CAA4C,EAAE,CAAC,CAAC;AAC7D,QAAA,OAAO,EAAE;;AAEb;;;;"}
1
+ {"version":3,"file":"index-ZFbwGttR.js","sources":["src/utils/utils.ts"],"sourcesContent":["export function format(first?: string, middle?: string, last?: string): string {\n return (first || '') + (middle ? ` ${middle}` : '') + (last ? ` ${last}` : '');\n}\n\nexport function uidGenerator() {\n return \"10000000-1000-4000-8000-100000000000\".replace(/[018]/g, c =>\n (+c ^ crypto.getRandomValues(new Uint8Array(1))[0] & 15 >> +c / 4).toString(16)\n );\n}\n\n/**\n * Walks through the given DOM collection and runs the given callback.\n * @param a A DOM collection.\n * @param predicate The callback function.\n * @param [thisObject] The context object for the given callback function.\n */\nexport const forEach = (\n a: NodeListOf<Node> | HTMLCollectionOf<Element>,\n predicate: (search: Element, index?: number) => void,\n thisObject?: any\n) => Array.prototype.forEach.call(a, predicate, thisObject);\n\n/**\n * Debounce the current function for some delay.\n * @param func The delayed function.\n * @param [delay = 500] The time to function delay call.\n */\nexport const debounce = (func: Function, delay: number = 500) => {\n let timeoutId: ReturnType<typeof setTimeout>;\n return function (...args: any[]) {\n clearTimeout(timeoutId);\n timeoutId = setTimeout(() => {\n func.apply(this, args);\n }, delay);\n };\n};\n\nexport const checkTag = <T extends Element, G = T>(element: T, tag: string) => {\n if (element?.tagName !== tag) return undefined;\n return element as unknown as G;\n};\n\nexport const setAttr = (node: Element, name: string, value: string | boolean) => {\n if (typeof value === 'string') {\n !node.hasAttribute(name) && node.setAttribute(name, value);\n return node;\n }\n\n if (value) {\n !node.hasAttribute(name) && node.setAttribute(name, '');\n } else {\n node.hasAttribute(name) && node.removeAttribute(name);\n }\n\n return node;\n};\n\nexport const getMetaNav = (): any => {\n try {\n const metaNavRaw = localStorage.getItem('metaNav');\n\n return metaNavRaw ? JSON.parse(metaNavRaw) : {};\n } catch (e) {\n console.warn('Could not parse metaNav from localStorage:', e);\n return {};\n }\n};\n"],"names":[],"mappings":"SAAgB,MAAM,CAAC,KAAc,EAAE,MAAe,EAAE,IAAa,EAAA;AACnE,IAAA,OAAO,CAAC,KAAK,IAAI,EAAE,KAAK,MAAM,GAAG,CAAI,CAAA,EAAA,MAAM,EAAE,GAAG,EAAE,CAAC,IAAI,IAAI,GAAG,CAAI,CAAA,EAAA,IAAI,EAAE,GAAG,EAAE,CAAC;AAChF;SAEgB,YAAY,GAAA;AAC1B,IAAA,OAAO,sCAAsC,CAAC,OAAO,CAAC,QAAQ,EAAE,CAAC,IAC/D,CAAC,CAAC,CAAC,GAAG,MAAM,CAAC,eAAe,CAAC,IAAI,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,EAAE,IAAI,CAAC,CAAC,GAAG,CAAC,EAAE,QAAQ,CAAC,EAAE,CAAC,CAChF;AACH;AAEA;;;;;AAKG;AACU,MAAA,OAAO,GAAG,CACrB,CAA+C,EAC/C,SAAoD,EACpD,UAAgB,KACb,KAAK,CAAC,SAAS,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,EAAE,SAAS,EAAE,UAAU;AAsB7C,MAAA,OAAO,GAAG,CAAC,IAAa,EAAE,IAAY,EAAE,KAAuB,KAAI;AAC9E,IAAA,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE;AAC7B,QAAA,CAAC,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,IAAI,IAAI,CAAC,YAAY,CAAC,IAAI,EAAE,KAAK,CAAC;AAC1D,QAAA,OAAO,IAAI;;IAGb,IAAI,KAAK,EAAE;AACT,QAAA,CAAC,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,IAAI,IAAI,CAAC,YAAY,CAAC,IAAI,EAAE,EAAE,CAAC;;SAClD;AACL,QAAA,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,IAAI,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC;;AAGvD,IAAA,OAAO,IAAI;AACb;AAEO,MAAM,UAAU,GAAG,MAAU;AAClC,IAAA,IAAI;QACF,MAAM,UAAU,GAAG,YAAY,CAAC,OAAO,CAAC,SAAS,CAAC;AAElD,QAAA,OAAO,UAAU,GAAG,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC,GAAG,EAAE;;IAC/C,OAAO,CAAC,EAAE;AACV,QAAA,OAAO,CAAC,IAAI,CAAC,4CAA4C,EAAE,CAAC,CAAC;AAC7D,QAAA,OAAO,EAAE;;AAEb;;;;"}
package/dist/esm/index.js CHANGED
@@ -1,4 +1,4 @@
1
- export { a as format } from './index-_tZy78IZ.js';
1
+ export { a as format } from './index-ZFbwGttR.js';
2
2
  //# sourceMappingURL=index.js.map
3
3
 
4
4
  //# sourceMappingURL=index.js.map