@genexus/genexus-ide-ui 0.0.99 → 0.0.100

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 (183) hide show
  1. package/dist/cjs/ch-icon_5.cjs.entry.js +3 -2
  2. package/dist/cjs/ch-icon_5.cjs.entry.js.map +1 -1
  3. package/dist/cjs/genexus-ide-ui.cjs.js +1 -1
  4. package/dist/cjs/gx-ide-dashboard-home.cjs.entry.js +2 -2
  5. package/dist/cjs/gx-ide-dashboard-home.cjs.entry.js.map +1 -1
  6. package/dist/cjs/{gx-ide-recent-news.cjs.entry.js → gx-ide-empty-state_2.cjs.entry.js} +64 -2
  7. package/dist/cjs/gx-ide-empty-state_2.cjs.entry.js.map +1 -0
  8. package/dist/cjs/gx-ide-import-from-design.cjs.entry.js +2 -9
  9. package/dist/cjs/gx-ide-import-from-design.cjs.entry.js.map +1 -1
  10. package/dist/cjs/gx-ide-start-page.cjs.entry.js +9 -5
  11. package/dist/cjs/gx-ide-start-page.cjs.entry.js.map +1 -1
  12. package/dist/cjs/gx-ide-status-buttons_2.cjs.entry.js +41 -27
  13. package/dist/cjs/gx-ide-status-buttons_2.cjs.entry.js.map +1 -1
  14. package/dist/cjs/gxg-card_2.cjs.entry.js +10 -5
  15. package/dist/cjs/gxg-card_2.cjs.entry.js.map +1 -1
  16. package/dist/cjs/gxg-combo-box_2.cjs.entry.js +62 -24
  17. package/dist/cjs/gxg-combo-box_2.cjs.entry.js.map +1 -1
  18. package/dist/cjs/gxg-list-box_2.cjs.entry.js +28 -3
  19. package/dist/cjs/gxg-list-box_2.cjs.entry.js.map +1 -1
  20. package/dist/cjs/gxg-menu-item.cjs.entry.js +1 -1
  21. package/dist/cjs/gxg-menu-item.cjs.entry.js.map +1 -1
  22. package/dist/cjs/gxg-pill.cjs.entry.js +5 -5
  23. package/dist/cjs/gxg-pill.cjs.entry.js.map +1 -1
  24. package/dist/cjs/gxg-pills.cjs.entry.js +1 -1
  25. package/dist/cjs/gxg-pills.cjs.entry.js.map +1 -1
  26. package/dist/cjs/gxg-tab_4.cjs.entry.js +97 -17
  27. package/dist/cjs/gxg-tab_4.cjs.entry.js.map +1 -1
  28. package/dist/cjs/gxg-window-v2.cjs.entry.js +28 -0
  29. package/dist/cjs/gxg-window-v2.cjs.entry.js.map +1 -0
  30. package/dist/cjs/loader.cjs.js +1 -1
  31. package/dist/collection/collection-manifest.json +3 -1
  32. package/dist/collection/components/_helpers/empty-state/gx-ide-empty-state.css +40 -0
  33. package/dist/collection/components/_helpers/empty-state/gx-ide-empty-state.js +180 -0
  34. package/dist/collection/components/_helpers/empty-state/gx-ide-empty-state.js.map +1 -0
  35. package/dist/collection/components/_helpers/list-selector/list-selector-item/list-selector-item.js +1 -1
  36. package/dist/collection/components/_helpers/list-selector/list-selector.js +1 -1
  37. package/dist/collection/components/dashboard-home/dashboard-home.css +5 -0
  38. package/dist/collection/components/dashboard-home/dashboard-home.js +1 -1
  39. package/dist/collection/components/dashboard-home/dashboard-home.js.map +1 -1
  40. package/dist/collection/components/import-from-design/import-from-design.js +3 -12
  41. package/dist/collection/components/import-from-design/import-from-design.js.map +1 -1
  42. package/dist/collection/components/start-page/recent-news.css +1 -1
  43. package/dist/collection/components/start-page/start-page.css +4 -0
  44. package/dist/collection/components/start-page/start-page.js +8 -4
  45. package/dist/collection/components/start-page/start-page.js.map +1 -1
  46. package/dist/components/card.js +11 -5
  47. package/dist/components/card.js.map +1 -1
  48. package/dist/components/combo-box.js +62 -24
  49. package/dist/components/combo-box.js.map +1 -1
  50. package/dist/components/gx-ide-dashboard-home.js +2 -2
  51. package/dist/components/gx-ide-dashboard-home.js.map +1 -1
  52. package/dist/components/gx-ide-empty-state.d.ts +11 -0
  53. package/dist/components/gx-ide-empty-state.js +8 -0
  54. package/dist/components/gx-ide-empty-state.js.map +1 -0
  55. package/dist/components/gx-ide-empty-state2.js +126 -0
  56. package/dist/components/gx-ide-empty-state2.js.map +1 -0
  57. package/dist/components/gx-ide-import-from-design.js +3 -11
  58. package/dist/components/gx-ide-import-from-design.js.map +1 -1
  59. package/dist/components/gx-ide-start-page.js +21 -11
  60. package/dist/components/gx-ide-start-page.js.map +1 -1
  61. package/dist/components/gxg-menu-item.js +1 -1
  62. package/dist/components/gxg-menu-item.js.map +1 -1
  63. package/dist/components/gxg-pills.js +1 -1
  64. package/dist/components/gxg-pills.js.map +1 -1
  65. package/dist/components/gxg-top-state-bar2.js +46 -30
  66. package/dist/components/gxg-top-state-bar2.js.map +1 -1
  67. package/dist/components/gxg-window-v2.js +44 -0
  68. package/dist/components/gxg-window-v2.js.map +1 -0
  69. package/dist/components/icon2.js +3 -2
  70. package/dist/components/icon2.js.map +1 -1
  71. package/dist/components/list-box.js +27 -1
  72. package/dist/components/list-box.js.map +1 -1
  73. package/dist/components/pill.js +5 -5
  74. package/dist/components/pill.js.map +1 -1
  75. package/dist/components/recent-news.js +1 -1
  76. package/dist/components/recent-news.js.map +1 -1
  77. package/dist/components/tab-bar.js +17 -9
  78. package/dist/components/tab-bar.js.map +1 -1
  79. package/dist/components/tab-button.js +11 -4
  80. package/dist/components/tab-button.js.map +1 -1
  81. package/dist/components/tab.js +6 -3
  82. package/dist/components/tab.js.map +1 -1
  83. package/dist/components/tabs.js +73 -4
  84. package/dist/components/tabs.js.map +1 -1
  85. package/dist/esm/ch-icon_5.entry.js +3 -2
  86. package/dist/esm/ch-icon_5.entry.js.map +1 -1
  87. package/dist/esm/genexus-ide-ui.js +1 -1
  88. package/dist/esm/gx-ide-dashboard-home.entry.js +2 -2
  89. package/dist/esm/gx-ide-dashboard-home.entry.js.map +1 -1
  90. package/dist/esm/{gx-ide-recent-news.entry.js → gx-ide-empty-state_2.entry.js} +64 -3
  91. package/dist/esm/gx-ide-empty-state_2.entry.js.map +1 -0
  92. package/dist/esm/gx-ide-import-from-design.entry.js +2 -9
  93. package/dist/esm/gx-ide-import-from-design.entry.js.map +1 -1
  94. package/dist/esm/gx-ide-start-page.entry.js +9 -5
  95. package/dist/esm/gx-ide-start-page.entry.js.map +1 -1
  96. package/dist/esm/gx-ide-status-buttons_2.entry.js +41 -27
  97. package/dist/esm/gx-ide-status-buttons_2.entry.js.map +1 -1
  98. package/dist/esm/gxg-card_2.entry.js +10 -5
  99. package/dist/esm/gxg-card_2.entry.js.map +1 -1
  100. package/dist/esm/gxg-combo-box_2.entry.js +62 -24
  101. package/dist/esm/gxg-combo-box_2.entry.js.map +1 -1
  102. package/dist/esm/gxg-list-box_2.entry.js +27 -2
  103. package/dist/esm/gxg-list-box_2.entry.js.map +1 -1
  104. package/dist/esm/gxg-menu-item.entry.js +1 -1
  105. package/dist/esm/gxg-menu-item.entry.js.map +1 -1
  106. package/dist/esm/gxg-pill.entry.js +5 -5
  107. package/dist/esm/gxg-pill.entry.js.map +1 -1
  108. package/dist/esm/gxg-pills.entry.js +1 -1
  109. package/dist/esm/gxg-pills.entry.js.map +1 -1
  110. package/dist/esm/gxg-tab_4.entry.js +97 -17
  111. package/dist/esm/gxg-tab_4.entry.js.map +1 -1
  112. package/dist/esm/gxg-window-v2.entry.js +24 -0
  113. package/dist/esm/gxg-window-v2.entry.js.map +1 -0
  114. package/dist/esm/loader.js +1 -1
  115. package/dist/genexus-ide-ui/genexus-ide-ui.css +74 -7
  116. package/dist/genexus-ide-ui/genexus-ide-ui.esm.js +1 -1
  117. package/dist/genexus-ide-ui/genexus-ide-ui.esm.js.map +1 -1
  118. package/dist/genexus-ide-ui/icon-assets/mercury/tests/balanza-path.svg +3 -0
  119. package/dist/genexus-ide-ui/icon-assets/mercury/tests/balanza-stroke.svg +9 -0
  120. package/dist/genexus-ide-ui/icon-assets/mercury/tests/folder-2.svg +3 -0
  121. package/dist/genexus-ide-ui/{p-b8fc93f4.entry.js → p-2c8afaa6.entry.js} +147 -112
  122. package/dist/genexus-ide-ui/p-2c8afaa6.entry.js.map +1 -0
  123. package/dist/genexus-ide-ui/{p-5ca84a03.entry.js → p-4e155cd5.entry.js} +27 -4
  124. package/dist/genexus-ide-ui/p-4e155cd5.entry.js.map +1 -0
  125. package/dist/genexus-ide-ui/p-4fc6d6a7.entry.js +24 -0
  126. package/dist/genexus-ide-ui/p-4fc6d6a7.entry.js.map +1 -0
  127. package/dist/genexus-ide-ui/p-54e4b362.entry.js +270 -0
  128. package/dist/genexus-ide-ui/p-54e4b362.entry.js.map +1 -0
  129. package/dist/genexus-ide-ui/{p-73aa4e69.entry.js → p-71f8aba2.entry.js} +13 -13
  130. package/dist/genexus-ide-ui/{p-73aa4e69.entry.js.map → p-71f8aba2.entry.js.map} +1 -1
  131. package/dist/genexus-ide-ui/{p-545291ad.entry.js → p-7dc3a137.entry.js} +4 -3
  132. package/dist/genexus-ide-ui/{p-545291ad.entry.js.map → p-7dc3a137.entry.js.map} +1 -1
  133. package/dist/genexus-ide-ui/{p-f186adfd.entry.js → p-85639fa5.entry.js} +100 -22
  134. package/dist/genexus-ide-ui/p-85639fa5.entry.js.map +1 -0
  135. package/dist/genexus-ide-ui/{p-30365c44.entry.js → p-a3e07b86.entry.js} +6 -7
  136. package/dist/genexus-ide-ui/p-a3e07b86.entry.js.map +1 -0
  137. package/dist/genexus-ide-ui/{p-9c6c5a61.entry.js → p-a592930e.entry.js} +37 -32
  138. package/dist/genexus-ide-ui/p-a592930e.entry.js.map +1 -0
  139. package/dist/genexus-ide-ui/p-b0e539fe.entry.js +41 -0
  140. package/dist/genexus-ide-ui/p-b0e539fe.entry.js.map +1 -0
  141. package/dist/genexus-ide-ui/{p-a439149b.entry.js → p-bff2603a.entry.js} +8 -3
  142. package/dist/genexus-ide-ui/p-bff2603a.entry.js.map +1 -0
  143. package/dist/genexus-ide-ui/{p-050bc199.entry.js → p-e0924e3f.entry.js} +96 -6
  144. package/dist/genexus-ide-ui/p-e0924e3f.entry.js.map +1 -0
  145. package/dist/genexus-ide-ui/{p-58cad79d.entry.js → p-e240361a.entry.js} +58 -68
  146. package/dist/genexus-ide-ui/p-e240361a.entry.js.map +1 -0
  147. package/dist/genexus-ide-ui/{p-e585f550.entry.js → p-e3925761.entry.js} +4 -5
  148. package/dist/genexus-ide-ui/{p-e585f550.entry.js.map → p-e3925761.entry.js.map} +1 -1
  149. package/dist/node_modules/@genexus/gemini/dist/collection/components/card/card.css +13 -1
  150. package/dist/node_modules/@genexus/gemini/dist/collection/components/pills/pill.css +16 -51
  151. package/dist/node_modules/@genexus/gemini/dist/collection/components/pills/pills.css +1 -8
  152. package/dist/node_modules/@genexus/gemini/dist/collection/components/tab/tab.css +7 -0
  153. package/dist/node_modules/@genexus/gemini/dist/collection/components/tab-bar/tab-bar.css +18 -0
  154. package/dist/node_modules/@genexus/gemini/dist/collection/components/tab-button/tab-button.css +17 -0
  155. package/dist/node_modules/@genexus/gemini/dist/collection/components/tabs/tabs.css +64 -13
  156. package/dist/node_modules/@genexus/gemini/dist/collection/components/top-state-bar/gxg-top-state-bar.css +120 -43
  157. package/dist/node_modules/@genexus/gemini/dist/collection/components/window-v2/window.css +3 -0
  158. package/dist/types/components/_helpers/empty-state/gx-ide-empty-state.d.ts +34 -0
  159. package/dist/types/components/import-from-design/import-from-design.d.ts +1 -3
  160. package/dist/types/components.d.ts +61 -0
  161. package/package.json +3 -3
  162. package/dist/cjs/gx-ide-recent-news.cjs.entry.js.map +0 -1
  163. package/dist/cjs/reposition-scroll-86d8fac5.js +0 -33
  164. package/dist/cjs/reposition-scroll-86d8fac5.js.map +0 -1
  165. package/dist/components/reposition-scroll.js +0 -31
  166. package/dist/components/reposition-scroll.js.map +0 -1
  167. package/dist/esm/gx-ide-recent-news.entry.js.map +0 -1
  168. package/dist/esm/reposition-scroll-cfff7017.js +0 -31
  169. package/dist/esm/reposition-scroll-cfff7017.js.map +0 -1
  170. package/dist/genexus-ide-ui/p-050bc199.entry.js.map +0 -1
  171. package/dist/genexus-ide-ui/p-30365c44.entry.js.map +0 -1
  172. package/dist/genexus-ide-ui/p-3e87257c.entry.js +0 -41
  173. package/dist/genexus-ide-ui/p-3e87257c.entry.js.map +0 -1
  174. package/dist/genexus-ide-ui/p-58cad79d.entry.js.map +0 -1
  175. package/dist/genexus-ide-ui/p-5ca84a03.entry.js.map +0 -1
  176. package/dist/genexus-ide-ui/p-9c6c5a61.entry.js.map +0 -1
  177. package/dist/genexus-ide-ui/p-a439149b.entry.js.map +0 -1
  178. package/dist/genexus-ide-ui/p-b8fc93f4.entry.js.map +0 -1
  179. package/dist/genexus-ide-ui/p-efa273d7.js +0 -27
  180. package/dist/genexus-ide-ui/p-efa273d7.js.map +0 -1
  181. package/dist/genexus-ide-ui/p-f186adfd.entry.js.map +0 -1
  182. package/dist/genexus-ide-ui/p-f5034221.entry.js +0 -258
  183. package/dist/genexus-ide-ui/p-f5034221.entry.js.map +0 -1
@@ -1 +0,0 @@
1
- {"version":3,"names":["mutationObserverRemoved","target","ref","observer","MutationObserver","mutationsList","mutation","type","removedNodesArray","Array","from","removedNodes","removedNode","nodeType","Node","ELEMENT_NODE","removedItem","observe","childList","comboBoxCss","GxgComboBox","constructor","hostRef","this","parts","input","clearButton","toggleButton","componentDidLoadFlag","userTyped","formMessageLogic","detectClickOutsideCombo","detectClickOutsideComboFunc","bind","detectMouseScroll","detectMouseScrollFunc","attachExportParts","part","el","getAttribute","exportPartsResult","exportParts","length","exportparts","mutationRemoveObserver","_mo","inputHandler","e","value","sanitizeString","detail","filteredItems","filterList","strict","keyDownHandler","code","KK","ARROW_DOWN","ARROW_UP","preventDefault","newItem","getNewItem","repositionScroll","itemsContainer","selectedItem","altKey","showList","ENTER","preventEnterPropagation","listIsOpen","stopPropagation","hideList","showAllItems","SPACE","ESCAPE","TAB","handleValueChangeFormText","evaluatePopOver","popOver","setAttribute","text","caseSensitive","toLowerCase","enabledItems","getEnabledItems","forEach","item","itemText","textContent","toLocaleLowerCase","disabled","includes","push","hidden","cleanup","myObserver","unobserve","document","body","removeEventListener","disconnect","setup","setIndexes","setInitialValue","allItems","getAllItems","i","index","getFilteredItems","allItemsNodeList","querySelectorAll","getItemByValue","find","clearSelectedItem","selected","undefined","clearIcon","getValueByText","direction","indexInFiltered","findIndex","setSelectedItem","replace","trim","firstItem","innerText","inputTextIcon","icon","toString","toggleListButtonClickHandler","toggleList","focus","inputTextClickHandler","disableFilter","toolTip","fixedIcon","label","labelPosition","minWidth","maxWidth","listMaxHeight","placeholder","disableClear","listPosition","centerLabel","labelWidth","required","validationStatus","validationMessage","cursorEnd","informationMessage","inputTextValue","noMatch","lastAllowedValue","slottedContent","selectionProgramatic","lastSetValueByUser","componentDidUpdate","itemsContainerIsOverflowing","itemsContainerBottomOverflows","componentWillLoad","componentDidLoad","resizeObserver","disconnectedCallback","open","close","getValueByIndex","foundItem","filter","setValueByIndex","selectInputText","inputText","itemSelectedHandler","event","itemDidLoadHandler","keyDownComboItemHandler","onValueChanged","newValue","setTimeout","valueChanged","emit","setIcon","listIsOpenHandler","isOpen","addEventListener","opened","repositionItemsContainer","showPopover","closed","hidePopover","toggled","selectedItemHandler","removedItemHandler","comboMainContainer","shadowRoot","querySelector","x","y","comboMainContainerArea","getBoundingClientRect","left","right","top","bottom","screenX","screenY","clientX","clientY","clearCombo","ResizeObserver","entries","inputTextWidth","clientWidth","style","width","inputTextBoundingClient","inputTextY","inputTextHeight","height","inputTextX","viewportHeight","window","innerHeight","comboBottom","itemsContainerHeight","clientHeight","result","itOverflows","render","h","Host","class","tooltip","large","state","mainContainer","center","searchItemsContainer","onInput","onKeyDown","onClick","iconPosition","readonly","preventValueChangedEmit","tabindex","small","maxHeight","formTooltipLogic","delegatesFocus","comboBoxItemCss","GxgComboBoxItem","innerHTML","clickHandler","itemSelected","exactMatch","iconColor","itemDidLoad","iconColorHandler","commonClassesNames","container","color","size"],"sources":["node_modules/@genexus/gemini/dist/collection/common/mo-removed.js","node_modules/@genexus/gemini/dist/collection/components/combo-box/combo-box.css?tag=gxg-combo-box&encapsulation=shadow","node_modules/@genexus/gemini/dist/collection/components/combo-box/combo-box.js","node_modules/@genexus/gemini/dist/collection/components/combo-box-item/combo-box-item.css?tag=gxg-combo-box-item&encapsulation=shadow","node_modules/@genexus/gemini/dist/collection/components/combo-box-item/combo-box-item.js"],"sourcesContent":["export function mutationObserverRemoved(target, ref) {\n const observer = new MutationObserver((mutationsList) => {\n for (const mutation of mutationsList) {\n if (mutation.type === \"childList\") {\n const removedNodesArray = Array.from(mutation.removedNodes);\n for (const removedNode of removedNodesArray) {\n if (removedNode.nodeType === Node.ELEMENT_NODE) {\n ref.removedItem = removedNode;\n }\n }\n }\n }\n });\n observer.observe(target, { childList: true });\n return observer; // Return the observer instance if needed\n}\n//# sourceMappingURL=mo-removed.js.map\n","/*! normalize.css v8.0.1 | MIT License | github.com/necolas/normalize.css */\n/* Document\n ========================================================================== */\n/**\n * 1. Correct the line height in all browsers.\n * 2. Prevent adjustments of font size after orientation changes in iOS.\n */\nhtml {\n line-height: 1.15;\n /* 1 */\n -webkit-text-size-adjust: 100%;\n /* 2 */\n}\n\n/* Sections\n ========================================================================== */\n/**\n * Remove the margin in all browsers.\n */\nbody {\n margin: 0;\n}\n\n/**\n * Render the `main` element consistently in IE.\n */\nmain {\n display: block;\n}\n\n/**\n * Correct the font size and margin on `h1` elements within `section` and\n * `article` contexts in Chrome, Firefox, and Safari.\n */\nh1 {\n font-size: 2em;\n margin: 0.67em 0;\n}\n\n/* Grouping content\n ========================================================================== */\n/**\n * 1. Add the correct box sizing in Firefox.\n * 2. Show the overflow in Edge and IE.\n */\nhr {\n box-sizing: content-box;\n /* 1 */\n height: 0;\n /* 1 */\n overflow: visible;\n /* 2 */\n}\n\n/**\n * 1. Correct the inheritance and scaling of font size in all browsers.\n * 2. Correct the odd `em` font sizing in all browsers.\n */\npre {\n font-family: monospace, monospace;\n /* 1 */\n font-size: 1em;\n /* 2 */\n}\n\n/* Text-level semantics\n ========================================================================== */\n/**\n * Remove the gray background on active links in IE 10.\n */\na {\n background-color: transparent;\n}\n\n/**\n * 1. Remove the bottom border in Chrome 57-\n * 2. Add the correct text decoration in Chrome, Edge, IE, Opera, and Safari.\n */\nabbr[title] {\n border-bottom: none;\n /* 1 */\n text-decoration: underline;\n /* 2 */\n text-decoration: underline dotted;\n /* 2 */\n}\n\n/**\n * Add the correct font weight in Chrome, Edge, and Safari.\n */\nb,\nstrong {\n font-weight: bolder;\n}\n\n/**\n * 1. Correct the inheritance and scaling of font size in all browsers.\n * 2. Correct the odd `em` font sizing in all browsers.\n */\ncode,\nkbd,\nsamp {\n font-family: monospace, monospace;\n /* 1 */\n font-size: 1em;\n /* 2 */\n}\n\n/**\n * Add the correct font size in all browsers.\n */\nsmall {\n font-size: 80%;\n}\n\n/**\n * Prevent `sub` and `sup` elements from affecting the line height in\n * all browsers.\n */\nsub,\nsup {\n font-size: 75%;\n line-height: 0;\n position: relative;\n vertical-align: baseline;\n}\n\nsub {\n bottom: -0.25em;\n}\n\nsup {\n top: -0.5em;\n}\n\n/* Embedded content\n ========================================================================== */\n/**\n * Remove the border on images inside links in IE 10.\n */\nimg {\n border-style: none;\n}\n\n/* Forms\n ========================================================================== */\n/**\n * 1. Change the font styles in all browsers.\n * 2. Remove the margin in Firefox and Safari.\n */\nbutton,\ninput,\noptgroup,\nselect,\ntextarea {\n font-family: inherit;\n /* 1 */\n font-size: 100%;\n /* 1 */\n line-height: 1.15;\n /* 1 */\n margin: 0;\n /* 2 */\n}\n\n/**\n * Show the overflow in IE.\n * 1. Show the overflow in Edge.\n */\nbutton,\ninput {\n /* 1 */\n overflow: visible;\n}\n\n/**\n * Remove the inheritance of text transform in Edge, Firefox, and IE.\n * 1. Remove the inheritance of text transform in Firefox.\n */\nbutton,\nselect {\n /* 1 */\n text-transform: none;\n}\n\n/**\n * Correct the inability to style clickable types in iOS and Safari.\n */\nbutton,\n[type=button],\n[type=reset],\n[type=submit] {\n -webkit-appearance: button;\n}\n\n/**\n * Remove the inner border and padding in Firefox.\n */\nbutton::-moz-focus-inner,\n[type=button]::-moz-focus-inner,\n[type=reset]::-moz-focus-inner,\n[type=submit]::-moz-focus-inner {\n border-style: none;\n padding: 0;\n}\n\n/**\n * Restore the focus styles unset by the previous rule.\n */\nbutton:-moz-focusring,\n[type=button]:-moz-focusring,\n[type=reset]:-moz-focusring,\n[type=submit]:-moz-focusring {\n outline: 1px dotted ButtonText;\n}\n\n/**\n * Correct the padding in Firefox.\n */\nfieldset {\n padding: 0.35em 0.75em 0.625em;\n}\n\n/**\n * 1. Correct the text wrapping in Edge and IE.\n * 2. Correct the color inheritance from `fieldset` elements in IE.\n * 3. Remove the padding so developers are not caught out when they zero out\n * `fieldset` elements in all browsers.\n */\nlegend {\n box-sizing: border-box;\n /* 1 */\n color: inherit;\n /* 2 */\n display: table;\n /* 1 */\n max-width: 100%;\n /* 1 */\n padding: 0;\n /* 3 */\n white-space: normal;\n /* 1 */\n}\n\n/**\n * Add the correct vertical alignment in Chrome, Firefox, and Opera.\n */\nprogress {\n vertical-align: baseline;\n}\n\n/**\n * Remove the default vertical scrollbar in IE 10+.\n */\ntextarea {\n overflow: auto;\n}\n\n/**\n * 1. Add the correct box sizing in IE 10.\n * 2. Remove the padding in IE 10.\n */\n[type=checkbox],\n[type=radio] {\n box-sizing: border-box;\n /* 1 */\n padding: 0;\n /* 2 */\n}\n\n/**\n * Correct the cursor style of increment and decrement buttons in Chrome.\n */\n[type=number]::-webkit-inner-spin-button,\n[type=number]::-webkit-outer-spin-button {\n height: auto;\n}\n\n/**\n * 1. Correct the odd appearance in Chrome and Safari.\n * 2. Correct the outline style in Safari.\n */\n[type=search] {\n -webkit-appearance: textfield;\n /* 1 */\n outline-offset: -2px;\n /* 2 */\n}\n\n/**\n * Remove the inner padding in Chrome and Safari on macOS.\n */\n[type=search]::-webkit-search-decoration {\n -webkit-appearance: none;\n}\n\n/**\n * 1. Correct the inability to style clickable types in iOS and Safari.\n * 2. Change font properties to `inherit` in Safari.\n */\n::-webkit-file-upload-button {\n -webkit-appearance: button;\n /* 1 */\n font: inherit;\n /* 2 */\n}\n\n/* Interactive\n ========================================================================== */\n/*\n * Add the correct display in Edge, IE 10+, and Firefox.\n */\ndetails {\n display: block;\n}\n\n/*\n * Add the correct display in all browsers.\n */\nsummary {\n display: list-item;\n}\n\n/* Misc\n ========================================================================== */\n/**\n * Add the correct display in IE 10+.\n */\ntemplate {\n display: none;\n}\n\n/**\n * Add the correct display in IE 10.\n */\n[hidden] {\n display: none;\n}\n\n:root {\n --ui-animaton-speed: 0.2s;\n}\n\n/*ALIGNMENT*/\n/*Ellipsis*/\n/*****************************************************\nTYPOGRAPHY\n*****************************************************/\n/*Title 01 (Positive)*/\n.gxg-title-01 {\n font-family: var(--ds-base-font-family-primary);\n font-weight: var(--ds-title-01-font-weight);\n font-size: var(--ds-title-01-font-size);\n letter-spacing: var(--ds-base-font-letter-spacing--comfortable);\n color: var(--ds-base-font-color);\n text-align: start;\n line-height: var(--ds-base-font-line-height--comfortable);\n}\n\n/*Title 01 (Negative)*/\n.gxg-title-01--negative {\n font-family: var(--ds-base-font-family-primary);\n font-weight: var(--ds-title-01-font-weight);\n font-size: var(--ds-title-01-font-size);\n letter-spacing: var(--ds-base-font-letter-spacing--comfortable);\n color: var(--ds-base-font-color);\n text-align: start;\n line-height: var(--ds-base-font-line-height--comfortable);\n color: var(--ds-base-font-color--negative);\n}\n\n/*Title 02 (Positive)*/\n.gxg-title-02 {\n font-family: var(--ds-base-font-family-primary);\n font-weight: var(--ds-title-02-font-weight);\n font-size: var(--ds-title-02-font-size);\n letter-spacing: var(--ds-base-font-letter-spacing--regular);\n color: var(--ds-base-font-color);\n text-align: start;\n text-transform: uppercase;\n line-height: var(--ds-base-font-line-height--comfortable);\n}\n\n.gxg-title-02--negative {\n font-family: var(--ds-base-font-family-primary);\n font-weight: var(--ds-title-02-font-weight);\n font-size: var(--ds-title-02-font-size);\n letter-spacing: var(--ds-base-font-letter-spacing--regular);\n color: var(--ds-base-font-color);\n text-align: start;\n text-transform: uppercase;\n line-height: var(--ds-base-font-line-height--comfortable);\n color: var(--color-on-primary);\n}\n\n/*Title 03*/\n.gxg-title-03 {\n font-family: var(--ds-base-font-family-primary);\n font-weight: var(--ds-title-03-font-weight);\n font-size: var(--ds-title-03-font-size);\n letter-spacing: var(--ds-base-font-letter-spacing--regular);\n color: var(--ds-base-font-color);\n text-align: start;\n text-transform: uppercase;\n line-height: var(--ds-base-font-line-height--comfortable);\n}\n\n.gxg-title-03--negative {\n font-family: var(--ds-base-font-family-primary);\n font-weight: var(--ds-title-03-font-weight);\n font-size: var(--ds-title-03-font-size);\n letter-spacing: var(--ds-base-font-letter-spacing--regular);\n color: var(--ds-base-font-color);\n text-align: start;\n text-transform: uppercase;\n line-height: var(--ds-base-font-line-height--comfortable);\n color: var(--ds-base-font-color--negative);\n}\n\n/*Title 04*/\n.gxg-title-04 {\n font-family: var(--ds-base-font-family-primary);\n font-weight: var(--ds-title-04-font-weight);\n font-size: var(--ds-title-04-font-size);\n letter-spacing: var(--ds-base-font-letter-spacing--comfortable);\n color: var(--ds-base-font-color);\n text-align: start;\n line-height: var(--ds-base-font-line-height--comfortable);\n}\n\n.gxg-title-04--negative {\n font-family: var(--ds-base-font-family-primary);\n font-weight: var(--ds-title-04-font-weight);\n font-size: var(--ds-title-04-font-size);\n letter-spacing: var(--ds-base-font-letter-spacing--comfortable);\n color: var(--ds-base-font-color);\n text-align: start;\n line-height: var(--ds-base-font-line-height--comfortable);\n color: var(--ds-base-font-color--negative);\n}\n\n/*Title 05*/\n.gxg-title-05 {\n font-family: var(--ds-base-font-family-primary);\n font-weight: var(--ds-title-05-font-weight);\n font-size: var(--ds-title-05-font-size);\n letter-spacing: var(--ds-base-font-letter-spacing--regular);\n color: var(--ds-base-font-color);\n text-align: start;\n line-height: var(--ds-base-font-line-height--comfortable);\n}\n\n.gxg-title-05--negative {\n font-family: var(--ds-base-font-family-primary);\n font-weight: var(--ds-title-05-font-weight);\n font-size: var(--ds-title-05-font-size);\n letter-spacing: var(--ds-base-font-letter-spacing--regular);\n color: var(--ds-base-font-color);\n text-align: start;\n line-height: var(--ds-base-font-line-height--comfortable);\n color: var(--ds-base-font-color--negative);\n}\n\n/*Text*/\n.gxg-text {\n font-family: var(--ds-base-font-family-primary);\n font-size: var(--ds-base-font-size);\n color: var(--ds-base-font-size-color);\n font-weight: var(--ds-base-font-size-weight);\n line-height: var(--ds-base-font-line-height--comfortable);\n}\n\n.gxg-text--negative {\n font-family: var(--ds-base-font-family-primary);\n font-size: var(--ds-base-font-size);\n color: var(--ds-base-font-size-color);\n font-weight: var(--ds-base-font-size-weight);\n line-height: var(--ds-base-font-line-height--comfortable);\n color: var(--ds-base-font-color--negative);\n}\n\n.gxg-text--gray {\n font-family: var(--ds-base-font-family-primary);\n font-size: var(--ds-base-font-size);\n color: var(--ds-base-font-size-color);\n font-weight: var(--ds-base-font-size-weight);\n line-height: var(--ds-base-font-line-height--comfortable);\n color: var(--ds-base-font-color--dimmed);\n}\n\n/*Quote*/\n.gxg-quote {\n font-family: var(--ds-base-font-family-primary);\n font-size: var(--ds-base-font-size);\n color: var(--ds-base-font-size-color);\n font-weight: var(--ds-base-font-size-weight);\n line-height: var(--ds-base-font-line-height--comfortable);\n font-style: italic;\n}\n\n.gxg-quote--negative {\n color: var(--ds-base-font-color--negative);\n}\n\n/*Link*/\n.gxg-link {\n line-height: unset;\n font-family: var(--ds-base-font-family-primary);\n font-size: var(--ds-base-font-size);\n color: var(--ds-base-font-size-color);\n font-weight: var(--ds-base-font-size-weight);\n line-height: var(--ds-base-font-line-height--comfortable);\n color: var(--ds-base-font-color--link);\n text-decoration: underline;\n cursor: pointer;\n display: inline-block;\n}\n.gxg-link:hover {\n color: var(--ds-base-font-color--link-hover);\n}\n.gxg-link:active {\n color: var(--ds-base-font-color--link-active);\n}\n\n.gxg-link-gray {\n line-height: unset;\n font-family: var(--ds-base-font-family-primary);\n font-size: var(--ds-base-font-size);\n color: var(--ds-base-font-size-color);\n font-weight: var(--ds-base-font-size-weight);\n line-height: var(--ds-base-font-line-height--comfortable);\n color: var(--ds-base-font-color--link);\n text-decoration: underline;\n cursor: pointer;\n display: inline-block;\n color: var(--ds-base-font-color--dimmed);\n}\n.gxg-link-gray:hover {\n line-height: unset;\n font-family: var(--ds-base-font-family-primary);\n font-size: var(--ds-base-font-size);\n color: var(--ds-base-font-size-color);\n font-weight: var(--ds-base-font-size-weight);\n line-height: var(--ds-base-font-line-height--comfortable);\n color: var(--ds-base-font-color--link);\n text-decoration: underline;\n cursor: pointer;\n display: inline-block;\n color: var(--ds-base-font-color--dimmed);\n filter: brightness(1.4);\n}\n\n/*Alerts*/\n.gxg-alert-error {\n font-family: var(--ds-base-font-family-primary);\n font-size: var(--ds-base-font-size);\n color: var(--ds-base-font-size-color);\n font-weight: var(--ds-base-font-size-weight);\n line-height: var(--ds-base-font-line-height--comfortable);\n color: var(--ds-base-font-color--error);\n display: inline-block;\n}\n\n.gxg-alert-warning {\n font-family: var(--ds-base-font-family-primary);\n font-size: var(--ds-base-font-size);\n color: var(--ds-base-font-size-color);\n font-weight: var(--ds-base-font-size-weight);\n line-height: var(--ds-base-font-line-height--comfortable);\n color: var(--ds-base-font-color--warning);\n display: inline-block;\n}\n\n.gxg-alert-success {\n font-family: var(--ds-base-font-family-primary);\n font-size: var(--ds-base-font-size);\n color: var(--ds-base-font-size-color);\n font-weight: var(--ds-base-font-size-weight);\n line-height: var(--ds-base-font-line-height--comfortable);\n color: var(--ds-base-font-color--success);\n display: inline-block;\n}\n\n/*Tab*/\n.gxg-tab--disabled {\n color: var(--color-primary-disabled);\n pointer-events: none;\n}\n.gxg-tab--disabled[disabled] {\n color: var(--color-primary-disabled);\n pointer-events: none;\n}\n\n/*Label*/\n.gxg-label {\n font-family: var(--ds-base-font-family-primary);\n font-weight: var(--gxg-label-font-weight);\n font-size: var(--gxg-label-font-size);\n color: var(--gxg-label-color);\n text-align: center;\n line-height: 1.455em;\n display: flex;\n align-items: center;\n}\n.gxg-label:hover {\n color: var(--color-primary-hover);\n}\n.gxg-label:focus {\n color: var(--color-primary-active);\n}\n.gxg-label:active {\n color: var(--color-primary-active);\n}\n.gxg-label[disabled] {\n color: var(--color-primary-disabled);\n}\n\n.gxg-label--negative {\n color: var(--color-on-primary);\n}\n.gxg-label--negative[disabled] {\n color: var(--color-on-disabled);\n}\n\n/*****************************************************\nGXG-BUTTON and GXG-BUTTON-GROUP COMMON STYLES\n*****************************************************/\n/*****************************************************\nFORM ELEMENTS\n*****************************************************/\n.gxg-scrollbar {\n /* Track */\n /* Handle */\n /* Handle on hover */\n}\n.gxg-scrollbar::-webkit-scrollbar {\n width: var(--gxg-scrollbar-width);\n height: var(--gxg-scrollbar-width);\n}\n.gxg-scrollbar::-webkit-scrollbar-track {\n background-color: var(--gxg-scrollbar-track-background);\n border-radius: var(--gxg-scrollbar-track-border-radius);\n}\n.gxg-scrollbar::-webkit-scrollbar-thumb {\n background-color: var(--gxg-scrollbar-track-thumb-background);\n border-radius: var(--gxg-scrollbar-track-thumb-radius);\n}\n.gxg-scrollbar::-webkit-scrollbar-thumb:hover {\n background-color: var(--gxg-scrollbar-track-thumb-hover-background);\n}\n.gxg-scrollbar::-webkit-scrollbar-corner {\n background: rgba(0, 0, 0, 0);\n}\n\n/*--- Elevation ---*/\n/*Warning*/\n:host(.gxg-validation--warning) .form-element {\n border-color: var(--ds-border-color--warning);\n}\n:host(.gxg-validation--warning) .form-element:focus {\n outline-color: var(--ds-border-color--warning);\n border-color: var(--ds-border-color--warning);\n}\n:host(.gxg-validation--warning) .form-element:focus + .checkmark {\n --checkmark-border-color: var(--ds-border-color--warning);\n}\n\n/*Error*/\n:host(.gxg-validation--error) .form-element {\n border-color: var(--ds-border-color--error);\n}\n:host(.gxg-validation--error) .form-element:focus {\n outline-color: var(--ds-border-color--error);\n border-color: var(--ds-border-color--error);\n}\n:host(.gxg-validation--error) .form-element:focus + .checkmark {\n --checkmark-border-color: var(--ds-border-color--error);\n}\n\n/*Success*/\n:host(.gxg-validation--success) .form-element {\n border-color: var(--ds-border-color--success);\n}\n:host(.gxg-validation--success) .form-element:focus {\n outline-color: var(--ds-border-color--success);\n border-color: var(--ds-border-color--success);\n}\n:host(.gxg-validation--success) .form-element:focus + .checkmark {\n --checkmark-border-color: var(--ds-border-color--success);\n}\n\n/*Tooltip*/\n.tooltip-outer-wrapper {\n display: grid;\n grid-template-columns: 0fr;\n transition: grid-template-columns var(--timing-02);\n}\n\n:host(.tooltip--visible) .tooltip-outer-wrapper {\n grid-template-columns: 1fr;\n}\n\n.tooltip-inner-wrapper {\n --margin-inline-start: 6px;\n overflow: hidden;\n transition: 150ms width;\n width: 0;\n}\n.tooltip-inner-wrapper gxg-icon {\n display: flex;\n position: relative !important;\n top: 0 !important;\n transform: none !important;\n margin-inline-start: var(--margin-inline-start);\n box-sizing: border-box;\n}\n.tooltip-inner-wrapper--visible {\n width: calc(var(--ds-icon-size-box--small) + var(--margin-inline-start));\n}\n.tooltip-inner-wrapper--hidden {\n display: none;\n}\n\n:host {\n font-family: var(--ds-base-font-family-primary);\n display: block;\n}\n:host .main-container {\n width: 100%;\n position: relative;\n /*POSITION TOP*/\n}\n:host .main-container .outer-wrapper {\n display: flex;\n align-items: center;\n}\n:host .main-container .search-container {\n flex: 1;\n position: relative;\n}\n:host .main-container .search-container .buttons-wrapper {\n position: absolute;\n display: flex;\n align-items: center;\n height: 100%;\n top: 0;\n inset-inline-end: var(--gxg-combo-box-items-buttons-wrapper--iie);\n}\n:host .main-container .items-container {\n color: var(--gxg-combo-box-items-container_color);\n font-size: var(--gxg-combo-box-items-container_font-size);\n border: var(--ds-border-common-styles);\n border-radius: var(--ds-form-control-border-radius);\n border-top-left-radius: 0;\n border-top-right-radius: 0;\n border-top-width: 0;\n overflow-y: auto;\n overscroll-behavior: contain;\n background-color: var(--gxg-combo-box-items-container_background-color);\n position: fixed;\n width: inherit;\n box-sizing: border-box;\n z-index: 999;\n box-sizing: border-box;\n padding: var(--gxg-combo-box-items-container_padding);\n /*popover*/\n}\n:host .main-container .items-container--not-popover {\n display: none;\n}\n:host .main-container .items-container--show {\n display: block;\n}\n:host .main-container .items-container--no-match {\n display: none;\n}\n:host .main-container .items-container .no-ocurrences-found {\n font-size: var(--gxg-combo-box-no-occurrences_font-size);\n color: var(--gxg-combo-box-no-occurrences_color);\n padding: var(--gxg-combo-box-no-occurrences_padding);\n background-color: var(--gxg-combo-box-no-occurrences_background-color);\n}\n:host .main-container .items-container .no-ocurrences-found span {\n display: block;\n color: var(--gxg-combo-box-no-occurrences_command-color);\n}\n:host .main-container .items-container.exact-match {\n overflow-y: hidden;\n}\n:host .main-container .items-container--popover {\n padding: 0;\n margin: 0;\n}\n:host .main-container .items-container--above {\n transform: translateY(calc(-100% - 24px));\n border-top-width: 1px;\n border-bottom-width: 0;\n border-top-left-radius: var(--ds-form-control-border-radius);\n border-top-right-radius: var(--ds-form-control-border-radius);\n border-bottom-right-radius: 0;\n border-bottom-left-radius: 0;\n}\n:host .search-and-items-container {\n flex: 1;\n}\n\n/*label position*/\n:host([label-position=start]) .main-container {\n display: flex;\n flex-direction: row;\n}\n:host([label-position=start]) .main-container .outer-wrapper {\n flex: 1;\n}\n\n/*scrollbar*/\n.items-container {\n /* Track */\n /* Handle */\n /* Handle on hover */\n}\n.items-container::-webkit-scrollbar {\n width: var(--gxg-scrollbar-width);\n height: var(--gxg-scrollbar-width);\n}\n.items-container::-webkit-scrollbar-track {\n background-color: var(--gxg-scrollbar-track-background);\n border-radius: var(--gxg-scrollbar-track-border-radius);\n}\n.items-container::-webkit-scrollbar-thumb {\n background-color: var(--gxg-scrollbar-track-thumb-background);\n border-radius: var(--gxg-scrollbar-track-thumb-radius);\n}\n.items-container::-webkit-scrollbar-thumb:hover {\n background-color: var(--gxg-scrollbar-track-thumb-hover-background);\n}\n.items-container::-webkit-scrollbar-corner {\n background: rgba(0, 0, 0, 0);\n}\n\n/*********************************************\nVALIDATION\n**********************************************/\n.messages-wrapper {\n margin-top: var(--spacing-comp-02);\n display: flex;\n gap: var(--spacing-comp-01);\n flex-direction: column;\n}","import { Host, h } from \"@stencil/core\";\nimport { formMessageLogic, formTooltipLogic } from \"../../common/form\";\nimport { repositionScroll } from \"../../common/reposition-scroll\";\nimport { KeyboardKeys as KK } from \"../../common/types\";\nimport { exportParts } from \"../../common/export-parts\";\nimport state from \"../store\";\nimport { mutationObserverRemoved } from \"../../common/mo-removed\";\nexport class GxgComboBox {\n constructor() {\n this.popOver = false;\n this.toolTip = false;\n this.preventEnterPropagation = false;\n this.fixedIcon = undefined;\n this.disabled = false;\n this.label = undefined;\n this.labelPosition = \"above\";\n this.minWidth = \"0\";\n this.maxWidth = \"100%\";\n this.listMaxHeight = \"244px\";\n this.placeholder = \"Search item\";\n this.disableFilter = false;\n this.disableClear = false;\n this.strict = false;\n this.value = undefined;\n this.caseSensitive = false;\n this.listPosition = \"below\";\n this.text = undefined;\n this.centerLabel = false;\n this.labelWidth = undefined;\n this.required = false;\n this.validationStatus = \"indeterminate\";\n this.validationMessage = undefined;\n this.cursorEnd = false;\n this.informationMessage = undefined;\n this.inputTextValue = \"\";\n this.listIsOpen = false;\n this.inputTextIcon = undefined;\n this.noMatch = false;\n this.lastAllowedValue = undefined;\n this.slottedContent = null;\n this.selectionProgramatic = true;\n this.lastSetValueByUser = undefined;\n this.myObserver = null;\n this.selectedItem = undefined;\n this.removedItem = undefined;\n }\n parts = {\n input: \"input\",\n clearButton: \"clear-button\",\n toggleButton: \"toggle-button\"\n };\n exportparts;\n _mo;\n componentDidLoadFlag = false;\n /**\n * This event is triggered when the combo box value changes.\n */\n valueChanged;\n /**\n * This event is triggered when the combo dropdown is opened\n */\n opened;\n /**\n * This event is triggered when the combo dropdown has closed\n */\n closed;\n /**\n * This event is triggered when the combo dropdown has toggled (opened/closed)\n */\n toggled;\n inputText;\n el;\n mainContainer;\n itemsContainer;\n searchItemsContainer;\n userTyped = false;\n formMessageLogic = formMessageLogic;\n detectClickOutsideCombo = this.detectClickOutsideComboFunc.bind(this);\n detectMouseScroll = this.detectMouseScrollFunc.bind(this);\n componentDidUpdate() {\n const itemsContainerIsOverflowing = this.itemsContainerBottomOverflows();\n itemsContainerIsOverflowing\n ? (this.listPosition = \"above\")\n : (this.listPosition = \"below\");\n }\n componentWillLoad() {\n this.setup();\n this.attachExportParts();\n this.mutationRemoveObserver();\n }\n attachExportParts = () => {\n const part = this.el.getAttribute(\"part\");\n const exportPartsResult = exportParts(part, this.parts);\n exportPartsResult.length && (this.exportparts = exportPartsResult);\n };\n mutationRemoveObserver = () => {\n this._mo = mutationObserverRemoved(this.el, this);\n };\n componentDidLoad() {\n this.resizeObserver();\n this.componentDidLoadFlag = true;\n this.evaluatePopOver();\n }\n disconnectedCallback() {\n this.cleanup();\n }\n /*********************************\n METHODS\n *********************************/\n async open() {\n this.listIsOpen = true;\n }\n async close() {\n this.listIsOpen = false;\n }\n async getValueByIndex(index) {\n const enabledItems = this.getEnabledItems();\n const foundItem = enabledItems.filter(item => item.index === index)[0];\n return foundItem?.value;\n }\n async setValueByIndex(index) {\n const enabledItems = this.getEnabledItems();\n const foundItem = enabledItems.filter(item => item.index === index)[0];\n if (foundItem && foundItem.value) {\n this.value = foundItem.value;\n return true;\n }\n return false;\n }\n async selectInputText() {\n this.inputText.selectInputText();\n }\n /*********************************\n LISTEN\n *********************************/\n itemSelectedHandler(event) {\n this.value = event.detail.value;\n this.inputText.focus();\n }\n itemDidLoadHandler() {\n this.setIndexes();\n //this.setInitialValue();\n }\n keyDownComboItemHandler(event) {\n event.stopPropagation();\n if (event.detail === \"ArrowUp\") {\n this.inputText.focus();\n }\n else if (event.detail === \"Tab\" || event.detail === \"Escape\") {\n this.listIsOpen = false;\n this.inputText.focus();\n }\n }\n /*********************************\n HANDLERS\n *********************************/\n inputHandler = (e) => {\n this.userTyped = true;\n const value = this.sanitizeString(e.detail);\n const filteredItems = this.filterList(value);\n if (!this.strict) {\n this.value = value;\n }\n else if (filteredItems.length === 1) {\n /*on strict mode, only set value if there is an exact match*/\n this.value = filteredItems[0].value;\n }\n };\n keyDownHandler = (e) => {\n if (e.code === KK.ARROW_DOWN || e.code === KK.ARROW_UP) {\n e.preventDefault();\n }\n let newItem;\n if (e.code === KK.ARROW_DOWN) {\n newItem = this.getNewItem(\"next\");\n newItem?.value && (this.value = newItem?.value);\n repositionScroll(this.itemsContainer, this.selectedItem, KK.ARROW_DOWN);\n e.altKey && this.showList();\n }\n else if (e.code === KK.ARROW_UP) {\n newItem = this.getNewItem(\"prev\");\n newItem?.value && (this.value = newItem?.value);\n repositionScroll(this.itemsContainer, this.selectedItem, KK.ARROW_UP);\n }\n else if (e.code === KK.ENTER) {\n if (this.preventEnterPropagation && this.listIsOpen) {\n e.stopPropagation();\n }\n this.hideList();\n this.showAllItems();\n }\n else if (e.code === KK.SPACE) {\n this.showList();\n }\n else if (e.code === KK.ESCAPE) {\n this.showAllItems();\n this.hideList();\n }\n else if (e.code === KK.TAB && this.showList) {\n this.hideList();\n }\n };\n handleValueChangeFormText = e => {\n this.value = e.detail;\n };\n /********************************\n WATCH\n *********************************/\n onValueChanged(newValue) {\n setTimeout(() => {\n if (this.componentDidLoadFlag) {\n this.valueChanged.emit(newValue);\n }\n this.clearSelectedItem();\n let value;\n let newItem = undefined;\n if (this.userTyped) {\n value = this.getValueByText(newValue);\n }\n else {\n !this.listIsOpen && this.showAllItems();\n value = newValue;\n }\n newItem = this.getItemByValue(value);\n if (newItem) {\n this.setSelectedItem(newItem);\n this.setIcon(newItem.icon);\n newItem?.textContent && (this.text = newItem.textContent);\n }\n else {\n //this.setIcon(undefined);\n if (this.strict) {\n this.text = undefined;\n this.value = undefined;\n }\n else {\n this.text = newValue;\n }\n }\n this.userTyped = false;\n }, 20);\n }\n listIsOpenHandler(open) {\n let isOpen = false;\n if (open) {\n //list is open\n isOpen = true;\n document.addEventListener(\"click\", this.detectClickOutsideCombo, true);\n document.addEventListener(\"scroll\", this.detectMouseScroll, true);\n this.opened.emit();\n //Reposition .items-container, since it has fixed position\n this.repositionItemsContainer();\n if (this.popOver) {\n this.itemsContainer.showPopover();\n }\n }\n else {\n //list is closed\n document.removeEventListener(\"click\", this.detectClickOutsideCombo, true);\n document.removeEventListener(\"scroll\", this.detectMouseScroll, true);\n this.closed.emit();\n if (this.popOver) {\n this.itemsContainer.hidePopover();\n }\n }\n this.toggled.emit(isOpen);\n }\n selectedItemHandler(newItem) {\n newItem && (newItem.selected = true);\n }\n removedItemHandler(removedItem) {\n const value = removedItem.value;\n if (value === this.value) {\n /*The removed item was the one selected on the combo. Re-evaluation of new value is needed*/\n this.setup();\n }\n }\n /*********************************\n PRIVATE METHODS\n *********************************/\n evaluatePopOver = () => {\n if (this.popOver) {\n this.itemsContainer.setAttribute(\"popover\", \"\");\n }\n };\n filterList = (text) => {\n text = this.sanitizeString(text);\n !this.caseSensitive && (text = text.toLowerCase());\n const enabledItems = this.getEnabledItems();\n const filteredItems = [];\n if (enabledItems.length) {\n enabledItems.forEach(item => {\n const itemText = !this.caseSensitive\n ? item.textContent.toLocaleLowerCase()\n : item.textContent;\n if (!item.disabled && itemText.includes(text)) {\n filteredItems.push(item);\n item.hidden = false;\n }\n else {\n item.hidden = true;\n }\n });\n }\n if (filteredItems.length >= 1) {\n this.showList();\n }\n else {\n this.hideList();\n }\n return filteredItems;\n };\n showAllItems = () => {\n const enabledItems = this.getEnabledItems();\n enabledItems?.forEach(item => {\n item?.hidden && (item.hidden = false);\n });\n };\n cleanup = () => {\n this.myObserver.unobserve(document.body);\n document.removeEventListener(\"click\", this.detectClickOutsideCombo, true);\n document.removeEventListener(\"scroll\", this.detectMouseScroll, true);\n this._mo.disconnect();\n };\n setup = () => {\n this.setIndexes();\n this.setInitialValue();\n };\n setIndexes = () => {\n const allItems = this.getAllItems();\n allItems.forEach((item, i) => {\n item.index = i;\n });\n };\n getEnabledItems = () => {\n const enabledItems = [];\n const allItems = this.getAllItems();\n allItems.forEach(item => {\n !item.disabled && enabledItems.push(item);\n });\n return enabledItems;\n };\n getFilteredItems = () => {\n const enabledItems = this.getEnabledItems();\n const filteredItems = [];\n enabledItems.forEach(item => {\n !item.hidden && filteredItems.push(item);\n });\n return filteredItems;\n };\n getAllItems = () => {\n const allItems = [];\n const allItemsNodeList = this.el.querySelectorAll(\"gxg-combo-box-item\");\n allItemsNodeList.forEach(item => {\n allItems.push(item);\n });\n return allItems;\n };\n getItemByValue = (value) => {\n let item;\n if (value) {\n const enabledItems = this.getEnabledItems();\n item = enabledItems.find(item => {\n return !item.disabled && item?.value && item.value === value;\n });\n }\n return item;\n };\n clearSelectedItem = () => {\n const enabledItems = this.getEnabledItems();\n enabledItems?.forEach(item => {\n item.selected && (item.selected = false);\n });\n this.selectedItem = undefined;\n this.clearIcon();\n };\n getValueByText = (text) => {\n !this.caseSensitive && (text = text.toLowerCase());\n const enabledItems = this.getEnabledItems();\n const item = enabledItems?.find(item => {\n const itemText = !this.caseSensitive\n ? item.textContent.toLocaleLowerCase()\n : item.textContent;\n return !item.disabled && itemText === text;\n });\n return item?.value;\n };\n getNewItem = (direction) => {\n const filteredItems = this.getFilteredItems();\n const indexInFiltered = filteredItems?.findIndex(item => {\n return item.selected;\n });\n if (direction === \"next\") {\n if (indexInFiltered === -1) {\n /*no selectedItem at the time*/\n return filteredItems[0];\n }\n return filteredItems[indexInFiltered + 1];\n }\n else if (direction === \"prev\") {\n if (indexInFiltered !== -1) {\n return filteredItems[indexInFiltered - 1];\n }\n }\n };\n setSelectedItem = (item) => {\n if (item) {\n this.selectedItem && (this.selectedItem.selected = false);\n item.selected = true;\n this.selectedItem = item;\n return true;\n }\n return false;\n };\n sanitizeString = (value) => {\n if (typeof value === \"string\") {\n return value.replace(/\\s+/g, \" \").trim();\n }\n return value;\n };\n setInitialValue = () => {\n const firstItem = this.getEnabledItems()[0];\n if (!this.value || this.removedItem !== undefined) {\n if (firstItem) {\n this.value = firstItem.value;\n this.text = firstItem.innerText;\n }\n else {\n if (this.strict) {\n this.value = undefined;\n }\n }\n }\n else {\n const item = this.getItemByValue(this.value);\n if (item) {\n this.text = item.innerText;\n this.inputTextIcon = item.icon;\n item.selected = true;\n }\n else {\n if (this.strict) {\n this.value = undefined;\n }\n else {\n this.text = this.value.toString();\n }\n }\n }\n };\n toggleListButtonClickHandler = () => {\n if (!this.disabled) {\n this.showAllItems();\n this.toggleList();\n this.focus();\n }\n };\n inputTextClickHandler = () => {\n if (!this.disabled) {\n this.disableFilter && this.toggleList();\n }\n };\n toggleList = () => {\n if (!this.disabled) {\n this.listIsOpen = !this.listIsOpen;\n }\n };\n showList = () => {\n if (!this.disabled) {\n this.listIsOpen = true;\n }\n };\n hideList = () => {\n if (!this.disabled) {\n this.listIsOpen = false;\n }\n };\n clearIcon = () => {\n if (!this.disabled) {\n this.inputTextIcon = null;\n }\n };\n setIcon(icon) {\n if (icon) {\n this.inputTextIcon = icon;\n }\n else {\n this.inputTextIcon = null;\n }\n }\n focus() {\n this.inputText.focus();\n }\n detectClickOutsideComboFunc(event) {\n const comboMainContainer = this.el.shadowRoot.querySelector(\".main-container\");\n const x = event.x;\n const y = event.y;\n //Contextual menu coordinates\n const comboMainContainerArea = comboMainContainer.getBoundingClientRect();\n if ((x > comboMainContainerArea.left &&\n x < comboMainContainerArea.right &&\n y > comboMainContainerArea.top &&\n y < comboMainContainerArea.bottom) ||\n (event.screenX === 0 &&\n event.screenY === 0 &&\n event.clientX === 0 &&\n event.clientY === 0)) {\n //Click happened inside the combo\n }\n else {\n this.listIsOpen = false;\n //Click happened outside the combo\n }\n }\n detectMouseScrollFunc() {\n this.listIsOpen = false;\n }\n clearCombo() {\n if (!this.disabled) {\n this.value = undefined;\n this.listIsOpen = true;\n this.focus();\n }\n }\n resizeObserver() {\n this.myObserver = new ResizeObserver(entries => {\n entries.forEach(() => {\n this.repositionItemsContainer();\n });\n });\n this.myObserver.observe(document.body);\n this.myObserver.observe(this.el);\n }\n repositionItemsContainer() {\n //redefine .main-container width\n const inputText = this.inputText;\n const inputTextWidth = inputText.clientWidth;\n this.itemsContainer.style.width = inputTextWidth + \"px\";\n //redefine .items-container \"top\" value\n const inputTextBoundingClient = inputText.getBoundingClientRect();\n const inputTextY = inputTextBoundingClient.y;\n const inputTextHeight = inputTextBoundingClient.height;\n this.itemsContainer.style.top = inputTextY + inputTextHeight + \"px\";\n if (this.popOver) {\n //redefine .items-container \"left\" value\n const inputTextX = inputTextBoundingClient.x;\n this.itemsContainer.style.left = inputTextX + \"px\";\n }\n }\n itemsContainerBottomOverflows() {\n const viewportHeight = window.innerHeight;\n const comboBottom = this.el.getBoundingClientRect().bottom;\n const itemsContainerHeight = this.itemsContainer.clientHeight;\n const result = comboBottom + itemsContainerHeight;\n const itOverflows = true ? result > viewportHeight : false;\n return itOverflows;\n }\n render() {\n const clearIcon = this.value && !this.disableFilter && !this.disableClear;\n return (h(Host, { class: {\n \"gxg-combo-box--disabled\": this.disableFilter,\n tooltip: this.toolTip,\n large: state.large\n }, style: { maxWidth: this.maxWidth, minWidth: this.minWidth }, exportParts: this.exportparts ? this.exportparts : null }, h(\"div\", { class: {\n \"main-container\": true\n }, ref: el => (this.mainContainer = el) }, this.label ? (h(\"gxg-label\", { labelPosition: this.labelPosition, center: this.centerLabel, width: this.labelWidth }, this.label)) : null, h(\"div\", { class: \"outer-wrapper\" }, h(\"div\", { class: \"search-and-items-container\", ref: el => (this.searchItemsContainer = el) }, h(\"div\", { class: { \"search-container\": true } }, h(\"gxg-form-text\", { placeholder: this.placeholder, onInput: this.inputHandler.bind(this), onKeyDown: this.keyDownHandler, onClick: this.inputTextClickHandler, value: this.text, icon: this.fixedIcon || this.inputTextIcon, iconPosition: \"start\", readonly: this.disableFilter, ref: el => (this.inputText = el), validationStatus: this.validationStatus, disabled: this.disabled, onValueChanged: this.handleValueChangeFormText, cursorEnd: this.cursorEnd, preventValueChangedEmit: true, class: {\n \"icon-end--double\": clearIcon,\n \"icon-end\": !clearIcon\n }, part: this.parts.input }), h(\"div\", { class: \"buttons-wrapper\" }, clearIcon ? (h(\"gxg-button\", { class: { \"button-icon delete-icon\": true }, icon: \"menus/delete\", type: \"tertiary\", onClick: () => this.clearCombo(), tabindex: \"-1\", disabled: this.disabled, part: this.parts.clearButton, small: true })) : null, h(\"gxg-button\", { class: { \"button-icon\": true }, icon: \"navigation/arrow-down\", type: \"tertiary\", onClick: this.toggleListButtonClickHandler, disabled: this.disabled, tabindex: \"-1\", part: this.parts.toggleButton, small: true }))), h(\"div\", { class: {\n \"items-container\": true,\n \"items-container--not-popover\": !this.popOver,\n \"items-container--show\": this.listIsOpen && !this.popOver,\n \"items-container--popover\": this.popOver,\n \"items-container--no-match\": this.noMatch,\n \"items-container--below\": this.listPosition === \"below\",\n \"items-container--above\": this.listPosition === \"above\"\n }, style: { maxHeight: this.listMaxHeight }, ref: el => (this.itemsContainer = el) }, h(\"slot\", null), false && this.strict ? (h(\"div\", { class: \"no-ocurrences-found\" }, \"No occurrences found\", h(\"span\", null, \"ctrl/cmd + backspace to erase\"))) : null)), this.toolTip ? formTooltipLogic(this, false) : null)), !this.toolTip ? formMessageLogic(this) : null));\n }\n static get is() { return \"gxg-combo-box\"; }\n static get encapsulation() { return \"shadow\"; }\n static get delegatesFocus() { return true; }\n static get originalStyleUrls() {\n return {\n \"$\": [\"combo-box.scss\"]\n };\n }\n static get styleUrls() {\n return {\n \"$\": [\"combo-box.css\"]\n };\n }\n static get properties() {\n return {\n \"popOver\": {\n \"type\": \"boolean\",\n \"mutable\": false,\n \"complexType\": {\n \"original\": \"boolean\",\n \"resolved\": \"boolean\",\n \"references\": {}\n },\n \"required\": false,\n \"optional\": false,\n \"docs\": {\n \"tags\": [],\n \"text\": \"The presence of this attribute applies the popover attribute to the list of items. This is useful if the combo-box is wrapped inside a \\\"@container\\\" responsive container, since at the time of writing, fixed positioned elements that are inside a \\\"@container\\\" container, are relative to the container, not the viewport.\"\n },\n \"attribute\": \"pop-over\",\n \"reflect\": false,\n \"defaultValue\": \"false\"\n },\n \"toolTip\": {\n \"type\": \"boolean\",\n \"mutable\": false,\n \"complexType\": {\n \"original\": \"boolean\",\n \"resolved\": \"boolean\",\n \"references\": {}\n },\n \"required\": false,\n \"optional\": false,\n \"docs\": {\n \"tags\": [],\n \"text\": \"The presence of this attribute displays a tooltip message, instead of a block message below the control\"\n },\n \"attribute\": \"tool-tip\",\n \"reflect\": false,\n \"defaultValue\": \"false\"\n },\n \"preventEnterPropagation\": {\n \"type\": \"boolean\",\n \"mutable\": false,\n \"complexType\": {\n \"original\": \"boolean\",\n \"resolved\": \"boolean\",\n \"references\": {}\n },\n \"required\": false,\n \"optional\": false,\n \"docs\": {\n \"tags\": [],\n \"text\": \"If true, it will prevent Enter key propagation only when the list is open. This prop. was created to prevent issues with ch-shortcuts, when an Enter key has to fire a callback on another element (such as a button) but it has to be ignored when the list is open, since an Enter key on a list-box-item, has to select the item only.\"\n },\n \"attribute\": \"prevent-enter-propagation\",\n \"reflect\": false,\n \"defaultValue\": \"false\"\n },\n \"fixedIcon\": {\n \"type\": \"string\",\n \"mutable\": false,\n \"complexType\": {\n \"original\": \"string\",\n \"resolved\": \"string\",\n \"references\": {}\n },\n \"required\": false,\n \"optional\": false,\n \"docs\": {\n \"tags\": [],\n \"text\": \"A fixed icon that will show on the combo, ignoring the combo-box-item's icons.\"\n },\n \"attribute\": \"fixed-icon\",\n \"reflect\": false\n },\n \"disabled\": {\n \"type\": \"boolean\",\n \"mutable\": false,\n \"complexType\": {\n \"original\": \"boolean\",\n \"resolved\": \"boolean\",\n \"references\": {}\n },\n \"required\": false,\n \"optional\": false,\n \"docs\": {\n \"tags\": [],\n \"text\": \"The presence of this attribute makes the input disabled\"\n },\n \"attribute\": \"disabled\",\n \"reflect\": false,\n \"defaultValue\": \"false\"\n },\n \"label\": {\n \"type\": \"string\",\n \"mutable\": false,\n \"complexType\": {\n \"original\": \"string\",\n \"resolved\": \"string\",\n \"references\": {}\n },\n \"required\": false,\n \"optional\": false,\n \"docs\": {\n \"tags\": [],\n \"text\": \"The combo label\"\n },\n \"attribute\": \"label\",\n \"reflect\": false,\n \"defaultValue\": \"undefined\"\n },\n \"labelPosition\": {\n \"type\": \"string\",\n \"mutable\": false,\n \"complexType\": {\n \"original\": \"LabelPosition\",\n \"resolved\": \"\\\"above\\\" | \\\"below\\\" | \\\"end\\\" | \\\"start\\\"\",\n \"references\": {\n \"LabelPosition\": {\n \"location\": \"import\",\n \"path\": \"../../common/types\",\n \"id\": \"src/common/types.ts::LabelPosition\"\n }\n }\n },\n \"required\": false,\n \"optional\": false,\n \"docs\": {\n \"tags\": [],\n \"text\": \"The input label\"\n },\n \"attribute\": \"label-position\",\n \"reflect\": true,\n \"defaultValue\": \"\\\"above\\\"\"\n },\n \"minWidth\": {\n \"type\": \"string\",\n \"mutable\": false,\n \"complexType\": {\n \"original\": \"string\",\n \"resolved\": \"string\",\n \"references\": {}\n },\n \"required\": false,\n \"optional\": false,\n \"docs\": {\n \"tags\": [],\n \"text\": \"The combo min-width\"\n },\n \"attribute\": \"min-width\",\n \"reflect\": false,\n \"defaultValue\": \"\\\"0\\\"\"\n },\n \"maxWidth\": {\n \"type\": \"string\",\n \"mutable\": false,\n \"complexType\": {\n \"original\": \"string\",\n \"resolved\": \"string\",\n \"references\": {}\n },\n \"required\": false,\n \"optional\": false,\n \"docs\": {\n \"tags\": [],\n \"text\": \"The combo max-width\"\n },\n \"attribute\": \"max-width\",\n \"reflect\": false,\n \"defaultValue\": \"\\\"100%\\\"\"\n },\n \"listMaxHeight\": {\n \"type\": \"string\",\n \"mutable\": false,\n \"complexType\": {\n \"original\": \"string\",\n \"resolved\": \"string\",\n \"references\": {}\n },\n \"required\": false,\n \"optional\": false,\n \"docs\": {\n \"tags\": [],\n \"text\": \"The combo list max height\"\n },\n \"attribute\": \"list-max-height\",\n \"reflect\": false,\n \"defaultValue\": \"\\\"244px\\\"\"\n },\n \"placeholder\": {\n \"type\": \"string\",\n \"mutable\": false,\n \"complexType\": {\n \"original\": \"string\",\n \"resolved\": \"string\",\n \"references\": {}\n },\n \"required\": false,\n \"optional\": false,\n \"docs\": {\n \"tags\": [],\n \"text\": \"The combo placeholder\"\n },\n \"attribute\": \"placeholder\",\n \"reflect\": false,\n \"defaultValue\": \"\\\"Search item\\\"\"\n },\n \"disableFilter\": {\n \"type\": \"boolean\",\n \"mutable\": false,\n \"complexType\": {\n \"original\": \"boolean\",\n \"resolved\": \"boolean\",\n \"references\": {}\n },\n \"required\": false,\n \"optional\": false,\n \"docs\": {\n \"tags\": [],\n \"text\": \"The presence of this attribute disables the filter\"\n },\n \"attribute\": \"disable-filter\",\n \"reflect\": false,\n \"defaultValue\": \"false\"\n },\n \"disableClear\": {\n \"type\": \"boolean\",\n \"mutable\": false,\n \"complexType\": {\n \"original\": \"boolean\",\n \"resolved\": \"boolean\",\n \"references\": {}\n },\n \"required\": false,\n \"optional\": false,\n \"docs\": {\n \"tags\": [],\n \"text\": \"The presence of this attribute disables the clear button\"\n },\n \"attribute\": \"disable-clear\",\n \"reflect\": false,\n \"defaultValue\": \"false\"\n },\n \"strict\": {\n \"type\": \"boolean\",\n \"mutable\": false,\n \"complexType\": {\n \"original\": \"boolean\",\n \"resolved\": \"boolean\",\n \"references\": {}\n },\n \"required\": false,\n \"optional\": false,\n \"docs\": {\n \"tags\": [],\n \"text\": \"If this attribute is present, \\\"value\\\" will only return something if a comboItem is selected, otherwise it will return undefined.\\nif this attribute is not present, \\\"value\\\" will return the value of the actual comboItem, or whatever text the comboItem has.\"\n },\n \"attribute\": \"strict\",\n \"reflect\": false,\n \"defaultValue\": \"false\"\n },\n \"value\": {\n \"type\": \"any\",\n \"mutable\": false,\n \"complexType\": {\n \"original\": \"ComboBoxItemValue\",\n \"resolved\": \"any\",\n \"references\": {\n \"ComboBoxItemValue\": {\n \"location\": \"import\",\n \"path\": \"../combo-box-item/combo-box-item\",\n \"id\": \"src/components/combo-box-item/combo-box-item.tsx::ComboBoxItemValue\"\n }\n }\n },\n \"required\": false,\n \"optional\": false,\n \"docs\": {\n \"tags\": [],\n \"text\": \"The current combo box item value\"\n },\n \"attribute\": \"value\",\n \"reflect\": false\n },\n \"caseSensitive\": {\n \"type\": \"boolean\",\n \"mutable\": false,\n \"complexType\": {\n \"original\": \"boolean\",\n \"resolved\": \"boolean\",\n \"references\": {}\n },\n \"required\": false,\n \"optional\": false,\n \"docs\": {\n \"tags\": [],\n \"text\": \"The presence of this attribute with make the filter search for values with case sensitive distinction\"\n },\n \"attribute\": \"case-sensitive\",\n \"reflect\": false,\n \"defaultValue\": \"false\"\n },\n \"listPosition\": {\n \"type\": \"string\",\n \"mutable\": false,\n \"complexType\": {\n \"original\": \"ListPosition\",\n \"resolved\": \"\\\"above\\\" | \\\"below\\\"\",\n \"references\": {\n \"ListPosition\": {\n \"location\": \"local\",\n \"path\": \"/home/circleci/repo/src/components/combo-box/combo-box.tsx\",\n \"id\": \"src/components/combo-box/combo-box.tsx::ListPosition\"\n }\n }\n },\n \"required\": false,\n \"optional\": false,\n \"docs\": {\n \"tags\": [],\n \"text\": \"The container 'items container' position\"\n },\n \"attribute\": \"list-position\",\n \"reflect\": false,\n \"defaultValue\": \"\\\"below\\\"\"\n },\n \"centerLabel\": {\n \"type\": \"boolean\",\n \"mutable\": false,\n \"complexType\": {\n \"original\": \"boolean\",\n \"resolved\": \"boolean\",\n \"references\": {}\n },\n \"required\": false,\n \"optional\": false,\n \"docs\": {\n \"tags\": [],\n \"text\": \"Centers the label\"\n },\n \"attribute\": \"center-label\",\n \"reflect\": false,\n \"defaultValue\": \"false\"\n },\n \"labelWidth\": {\n \"type\": \"any\",\n \"mutable\": false,\n \"complexType\": {\n \"original\": \"any\",\n \"resolved\": \"any\",\n \"references\": {}\n },\n \"required\": false,\n \"optional\": false,\n \"docs\": {\n \"tags\": [],\n \"text\": \"The label width\"\n },\n \"attribute\": \"label-width\",\n \"reflect\": false\n },\n \"required\": {\n \"type\": \"boolean\",\n \"mutable\": false,\n \"complexType\": {\n \"original\": \"boolean\",\n \"resolved\": \"boolean\",\n \"references\": {}\n },\n \"required\": false,\n \"optional\": false,\n \"docs\": {\n \"tags\": [],\n \"text\": \"The presence of this attribute makes the commbo required\"\n },\n \"attribute\": \"required\",\n \"reflect\": true,\n \"defaultValue\": \"false\"\n },\n \"validationStatus\": {\n \"type\": \"string\",\n \"mutable\": true,\n \"complexType\": {\n \"original\": \"ValidationStatus\",\n \"resolved\": \"\\\"error\\\" | \\\"indeterminate\\\" | \\\"success\\\" | \\\"warning\\\"\",\n \"references\": {\n \"ValidationStatus\": {\n \"location\": \"import\",\n \"path\": \"../../common/types\",\n \"id\": \"src/common/types.ts::ValidationStatus\"\n }\n }\n },\n \"required\": false,\n \"optional\": false,\n \"docs\": {\n \"tags\": [],\n \"text\": \"The validation status\"\n },\n \"attribute\": \"validation-status\",\n \"reflect\": false,\n \"defaultValue\": \"\\\"indeterminate\\\"\"\n },\n \"validationMessage\": {\n \"type\": \"string\",\n \"mutable\": false,\n \"complexType\": {\n \"original\": \"string\",\n \"resolved\": \"string\",\n \"references\": {}\n },\n \"required\": false,\n \"optional\": false,\n \"docs\": {\n \"tags\": [],\n \"text\": \"The message to display when validation fails (error)\"\n },\n \"attribute\": \"validation-message\",\n \"reflect\": false\n },\n \"cursorEnd\": {\n \"type\": \"boolean\",\n \"mutable\": false,\n \"complexType\": {\n \"original\": \"boolean\",\n \"resolved\": \"boolean\",\n \"references\": {}\n },\n \"required\": false,\n \"optional\": false,\n \"docs\": {\n \"tags\": [],\n \"text\": \"If true, it will position the cursor at the end when the input is focused.\"\n },\n \"attribute\": \"cursor-end\",\n \"reflect\": false,\n \"defaultValue\": \"false\"\n },\n \"informationMessage\": {\n \"type\": \"string\",\n \"mutable\": false,\n \"complexType\": {\n \"original\": \"string\",\n \"resolved\": \"string\",\n \"references\": {}\n },\n \"required\": false,\n \"optional\": false,\n \"docs\": {\n \"tags\": [],\n \"text\": \"An informative message to help the user filling the information\"\n },\n \"attribute\": \"information-message\",\n \"reflect\": false\n }\n };\n }\n static get states() {\n return {\n \"text\": {},\n \"inputTextValue\": {},\n \"listIsOpen\": {},\n \"inputTextIcon\": {},\n \"noMatch\": {},\n \"lastAllowedValue\": {},\n \"slottedContent\": {},\n \"selectionProgramatic\": {},\n \"lastSetValueByUser\": {},\n \"myObserver\": {},\n \"selectedItem\": {},\n \"removedItem\": {}\n };\n }\n static get events() {\n return [{\n \"method\": \"valueChanged\",\n \"name\": \"valueChanged\",\n \"bubbles\": true,\n \"cancelable\": true,\n \"composed\": true,\n \"docs\": {\n \"tags\": [],\n \"text\": \"This event is triggered when the combo box value changes.\"\n },\n \"complexType\": {\n \"original\": \"ComboBoxItemValue\",\n \"resolved\": \"any\",\n \"references\": {\n \"ComboBoxItemValue\": {\n \"location\": \"import\",\n \"path\": \"../combo-box-item/combo-box-item\",\n \"id\": \"src/components/combo-box-item/combo-box-item.tsx::ComboBoxItemValue\"\n }\n }\n }\n }, {\n \"method\": \"opened\",\n \"name\": \"opened\",\n \"bubbles\": true,\n \"cancelable\": true,\n \"composed\": true,\n \"docs\": {\n \"tags\": [],\n \"text\": \"This event is triggered when the combo dropdown is opened\"\n },\n \"complexType\": {\n \"original\": \"any\",\n \"resolved\": \"any\",\n \"references\": {}\n }\n }, {\n \"method\": \"closed\",\n \"name\": \"closed\",\n \"bubbles\": true,\n \"cancelable\": true,\n \"composed\": true,\n \"docs\": {\n \"tags\": [],\n \"text\": \"This event is triggered when the combo dropdown has closed\"\n },\n \"complexType\": {\n \"original\": \"any\",\n \"resolved\": \"any\",\n \"references\": {}\n }\n }, {\n \"method\": \"toggled\",\n \"name\": \"toggled\",\n \"bubbles\": true,\n \"cancelable\": true,\n \"composed\": true,\n \"docs\": {\n \"tags\": [],\n \"text\": \"This event is triggered when the combo dropdown has toggled (opened/closed)\"\n },\n \"complexType\": {\n \"original\": \"boolean\",\n \"resolved\": \"boolean\",\n \"references\": {}\n }\n }];\n }\n static get methods() {\n return {\n \"open\": {\n \"complexType\": {\n \"signature\": \"() => Promise<void>\",\n \"parameters\": [],\n \"references\": {\n \"Promise\": {\n \"location\": \"global\",\n \"id\": \"global::Promise\"\n }\n },\n \"return\": \"Promise<void>\"\n },\n \"docs\": {\n \"text\": \"*******************************\\nMETHODS\\n*******************************\",\n \"tags\": []\n }\n },\n \"close\": {\n \"complexType\": {\n \"signature\": \"() => Promise<void>\",\n \"parameters\": [],\n \"references\": {\n \"Promise\": {\n \"location\": \"global\",\n \"id\": \"global::Promise\"\n }\n },\n \"return\": \"Promise<void>\"\n },\n \"docs\": {\n \"text\": \"\",\n \"tags\": []\n }\n },\n \"getValueByIndex\": {\n \"complexType\": {\n \"signature\": \"(index: number) => Promise<string>\",\n \"parameters\": [{\n \"name\": \"index\",\n \"type\": \"number\",\n \"docs\": \"\"\n }],\n \"references\": {\n \"Promise\": {\n \"location\": \"global\",\n \"id\": \"global::Promise\"\n }\n },\n \"return\": \"Promise<string>\"\n },\n \"docs\": {\n \"text\": \"\",\n \"tags\": []\n }\n },\n \"setValueByIndex\": {\n \"complexType\": {\n \"signature\": \"(index: number) => Promise<boolean>\",\n \"parameters\": [{\n \"name\": \"index\",\n \"type\": \"number\",\n \"docs\": \"\"\n }],\n \"references\": {\n \"Promise\": {\n \"location\": \"global\",\n \"id\": \"global::Promise\"\n }\n },\n \"return\": \"Promise<boolean>\"\n },\n \"docs\": {\n \"text\": \"\",\n \"tags\": []\n }\n },\n \"selectInputText\": {\n \"complexType\": {\n \"signature\": \"() => Promise<void>\",\n \"parameters\": [],\n \"references\": {\n \"Promise\": {\n \"location\": \"global\",\n \"id\": \"global::Promise\"\n }\n },\n \"return\": \"Promise<void>\"\n },\n \"docs\": {\n \"text\": \"\",\n \"tags\": []\n }\n }\n };\n }\n static get elementRef() { return \"el\"; }\n static get watchers() {\n return [{\n \"propName\": \"value\",\n \"methodName\": \"onValueChanged\"\n }, {\n \"propName\": \"listIsOpen\",\n \"methodName\": \"listIsOpenHandler\"\n }, {\n \"propName\": \"selectedItem\",\n \"methodName\": \"selectedItemHandler\"\n }, {\n \"propName\": \"removedItem\",\n \"methodName\": \"removedItemHandler\"\n }];\n }\n static get listeners() {\n return [{\n \"name\": \"itemSelected\",\n \"method\": \"itemSelectedHandler\",\n \"target\": undefined,\n \"capture\": false,\n \"passive\": false\n }, {\n \"name\": \"itemDidLoad\",\n \"method\": \"itemDidLoadHandler\",\n \"target\": undefined,\n \"capture\": false,\n \"passive\": false\n }, {\n \"name\": \"keyDownComboItem\",\n \"method\": \"keyDownComboItemHandler\",\n \"target\": undefined,\n \"capture\": false,\n \"passive\": false\n }];\n }\n}\n//# sourceMappingURL=combo-box.js.map\n",":host(.gxg--disabled) .form-element,\n:host(.gxg--disabled.form-element) {\n pointer-events: none;\n background-color: var(--ds-background-color-disabled) !important;\n color: var(--ds-color--disabled) !important;\n border-color: var(--ds-border-color-disabled) !important;\n cursor: default !important;\n}\n\n:host {\n --ds-icon-size--small: var(--gxg-combo-box-item_icon-size);\n display: block;\n cursor: pointer;\n box-sizing: border-box;\n display: flex;\n align-items: center;\n font-size: inherit;\n color: inherit;\n opacity: 1;\n overflow: hidden;\n border-radius: var(--gxg-combo-box-item_border-radius);\n}\n:host .container {\n display: flex;\n align-items: center;\n padding: var(--gxg-combo-box-item_padding);\n width: 100%;\n height: var(--ds-list-item-height--spaced);\n box-sizing: border-box;\n /*items with icon are this tall*/\n gap: var(--gxg-combo-box-item_container-gap);\n}\n:host gxg-icon {\n flex-shrink: 0;\n --gxg-icon-color: var(--gxg-combo-box-item--active_icon-color);\n}\n\n.description {\n white-space: nowrap;\n width: 100%;\n overflow: hidden;\n text-overflow: ellipsis;\n}\n\n:host(.no-icon) .container {\n padding-inline-start: var(--gxg-combo-box-item_container-no-icon-pis);\n}\n\n:host([hidden]) {\n display: none;\n}\n\n:host(.display-none) {\n display: none;\n}\n\n:host(:hover) {\n background-color: var(--ds-item-background-color--hover);\n}\n:host(:hover) .container {\n color: var(--gxg-combo-box-item_container-color--hover);\n}\n\n:host([selected]) {\n background-color: var(--ds-item-background-color--selected);\n color: var(--gxg-combo-box-item--selected_color);\n}\n\n:host([selected]:hover) {\n background-color: var(--ds-item-background-color--selected-hover);\n color: var(--gxg-combo-box-item--selected_color);\n}","import { Host, h } from \"@stencil/core\";\nimport state from \"../store\";\nimport { commonClassesNames } from \"../../common/classesNames\";\nexport class GxgComboBoxItem {\n constructor() {\n this.icon = undefined;\n this.value = undefined;\n this.index = undefined;\n this.disabled = false;\n this.selected = false;\n this.exactMatch = false;\n this.hidden = false;\n this.iconColor = undefined;\n }\n el;\n /**\n * This event is triggered when the user clicks on an item. event.detail contains the item index, item value, and item icon.\n */\n itemSelected;\n /**\n * This event is fired when the item has loaded\n */\n itemDidLoad;\n /**\n * This event is for internal use. This event is triggered when the user presses keyboard \"arrow up\" on the first item. This event is caputred on \"combo\" component\n * and then focus is set on \"search\" input.\n */\n keyDownPressed;\n componentWillLoad() {\n this.setup();\n this.disabled ? (this.iconColor = \"ondisabled\") : (this.iconColor = \"auto\");\n }\n componentDidLoad() {\n this.itemDidLoad.emit({\n el: this.el,\n index: this.index,\n value: this.value,\n icon: this.icon\n });\n }\n /*********************************\n WATCH\n *********************************/\n setup = () => {\n if (!this.value) {\n this.value = this.el.innerHTML;\n }\n };\n clickHandler = () => {\n this.itemSelected.emit({\n el: this.el,\n index: this.index,\n value: this.value,\n icon: this.icon\n });\n };\n iconColorHandler() {\n if (this.disabled) {\n return \"disabled\";\n }\n else if (this.selected) {\n return \"primary-enabled\";\n }\n else {\n return \"auto\";\n }\n }\n render() {\n return (h(Host, { onClick: this.clickHandler, class: {\n large: state.large,\n \"no-icon\": !this.icon,\n [commonClassesNames[\"DISABLED_CLASS\"]]: this.disabled\n } }, h(\"div\", { class: { container: true, \"form-element\": true } }, this.icon ? (h(\"gxg-icon\", { color: this.iconColorHandler(), size: \"small\", type: this.icon })) : null, h(\"div\", { class: \"description\" }, h(\"slot\", null)))));\n }\n static get is() { return \"gxg-combo-box-item\"; }\n static get encapsulation() { return \"shadow\"; }\n static get originalStyleUrls() {\n return {\n \"$\": [\"combo-box-item.scss\"]\n };\n }\n static get styleUrls() {\n return {\n \"$\": [\"combo-box-item.css\"]\n };\n }\n static get properties() {\n return {\n \"icon\": {\n \"type\": \"string\",\n \"mutable\": false,\n \"complexType\": {\n \"original\": \"string\",\n \"resolved\": \"string\",\n \"references\": {}\n },\n \"required\": false,\n \"optional\": false,\n \"docs\": {\n \"tags\": [],\n \"text\": \"Any icon that belongs to Gemini icon library: https://gx-gemini.netlify.app/?path=/story/icons\"\n },\n \"attribute\": \"icon\",\n \"reflect\": false,\n \"defaultValue\": \"undefined\"\n },\n \"value\": {\n \"type\": \"any\",\n \"mutable\": false,\n \"complexType\": {\n \"original\": \"ComboBoxItemValue\",\n \"resolved\": \"any\",\n \"references\": {\n \"ComboBoxItemValue\": {\n \"location\": \"local\",\n \"path\": \"/home/circleci/repo/src/components/combo-box-item/combo-box-item.tsx\",\n \"id\": \"src/components/combo-box-item/combo-box-item.tsx::ComboBoxItemValue\"\n }\n }\n },\n \"required\": false,\n \"optional\": false,\n \"docs\": {\n \"tags\": [],\n \"text\": \"The item value. If value is not provided, an automatic value will be generated with the innerText.\"\n },\n \"attribute\": \"value\",\n \"reflect\": false\n },\n \"index\": {\n \"type\": \"number\",\n \"mutable\": false,\n \"complexType\": {\n \"original\": \"number\",\n \"resolved\": \"number\",\n \"references\": {}\n },\n \"required\": false,\n \"optional\": false,\n \"docs\": {\n \"tags\": [],\n \"text\": \"(This prop is for internal use).\"\n },\n \"attribute\": \"index\",\n \"reflect\": true\n },\n \"disabled\": {\n \"type\": \"boolean\",\n \"mutable\": false,\n \"complexType\": {\n \"original\": \"boolean\",\n \"resolved\": \"boolean\",\n \"references\": {}\n },\n \"required\": false,\n \"optional\": false,\n \"docs\": {\n \"tags\": [],\n \"text\": \"The presence of this attribute makes this combo-item disabled and not interactive.\"\n },\n \"attribute\": \"disabled\",\n \"reflect\": false,\n \"defaultValue\": \"false\"\n },\n \"selected\": {\n \"type\": \"boolean\",\n \"mutable\": false,\n \"complexType\": {\n \"original\": \"boolean\",\n \"resolved\": \"boolean\",\n \"references\": {}\n },\n \"required\": false,\n \"optional\": false,\n \"docs\": {\n \"tags\": [],\n \"text\": \"The presence of this attribute makes this combo-item selected.\"\n },\n \"attribute\": \"selected\",\n \"reflect\": true,\n \"defaultValue\": \"false\"\n },\n \"exactMatch\": {\n \"type\": \"boolean\",\n \"mutable\": false,\n \"complexType\": {\n \"original\": \"boolean\",\n \"resolved\": \"boolean\",\n \"references\": {}\n },\n \"required\": false,\n \"optional\": false,\n \"docs\": {\n \"tags\": [],\n \"text\": \"True if the text typed on the combo box input is equal to this combo box item text\"\n },\n \"attribute\": \"exact-match\",\n \"reflect\": true,\n \"defaultValue\": \"false\"\n },\n \"hidden\": {\n \"type\": \"boolean\",\n \"mutable\": false,\n \"complexType\": {\n \"original\": \"boolean\",\n \"resolved\": \"boolean\",\n \"references\": {}\n },\n \"required\": false,\n \"optional\": false,\n \"docs\": {\n \"tags\": [],\n \"text\": \"This property hides the combo box item\"\n },\n \"attribute\": \"hidden\",\n \"reflect\": true,\n \"defaultValue\": \"false\"\n }\n };\n }\n static get states() {\n return {\n \"iconColor\": {}\n };\n }\n static get events() {\n return [{\n \"method\": \"itemSelected\",\n \"name\": \"itemSelected\",\n \"bubbles\": true,\n \"cancelable\": true,\n \"composed\": true,\n \"docs\": {\n \"tags\": [],\n \"text\": \"This event is triggered when the user clicks on an item. event.detail contains the item index, item value, and item icon.\"\n },\n \"complexType\": {\n \"original\": \"ItemInformation\",\n \"resolved\": \"{ el: HTMLGxgComboBoxItemElement; index: number; value: any; icon?: string; }\",\n \"references\": {\n \"ItemInformation\": {\n \"location\": \"local\",\n \"path\": \"/home/circleci/repo/src/components/combo-box-item/combo-box-item.tsx\",\n \"id\": \"src/components/combo-box-item/combo-box-item.tsx::ItemInformation\"\n }\n }\n }\n }, {\n \"method\": \"itemDidLoad\",\n \"name\": \"itemDidLoad\",\n \"bubbles\": true,\n \"cancelable\": true,\n \"composed\": true,\n \"docs\": {\n \"tags\": [],\n \"text\": \"This event is fired when the item has loaded\"\n },\n \"complexType\": {\n \"original\": \"ItemInformation\",\n \"resolved\": \"{ el: HTMLGxgComboBoxItemElement; index: number; value: any; icon?: string; }\",\n \"references\": {\n \"ItemInformation\": {\n \"location\": \"local\",\n \"path\": \"/home/circleci/repo/src/components/combo-box-item/combo-box-item.tsx\",\n \"id\": \"src/components/combo-box-item/combo-box-item.tsx::ItemInformation\"\n }\n }\n }\n }, {\n \"method\": \"keyDownPressed\",\n \"name\": \"keyDownPressed\",\n \"bubbles\": true,\n \"cancelable\": true,\n \"composed\": true,\n \"docs\": {\n \"tags\": [],\n \"text\": \"This event is for internal use. This event is triggered when the user presses keyboard \\\"arrow up\\\" on the first item. This event is caputred on \\\"combo\\\" component\\nand then focus is set on \\\"search\\\" input.\"\n },\n \"complexType\": {\n \"original\": \"any\",\n \"resolved\": \"any\",\n \"references\": {}\n }\n }];\n }\n static get elementRef() { return \"el\"; }\n}\n//# sourceMappingURL=combo-box-item.js.map\n"],"mappings":"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"}
@@ -1,27 +0,0 @@
1
- import { K as s } from "./p-a78773a3.js";
2
-
3
- const repositionScroll = (o, t, c) => {
4
- const n = o;
5
- const f = n?.scrollHeight > n?.clientHeight;
6
- if (f && t) {
7
- const o = n.scrollTop;
8
- if (c === s.ARROW_UP) {
9
- const s = n.getBoundingClientRect().top;
10
- const c = t.getBoundingClientRect().top;
11
- if (c < s) {
12
- const t = s - c;
13
- n.scrollTo(0, o - t);
14
- }
15
- } else if (c === s.ARROW_DOWN) {
16
- const s = n.getBoundingClientRect().bottom;
17
- const c = t.getBoundingClientRect().bottom;
18
- if (c > s) {
19
- const t = c - s;
20
- n.scrollTo(0, o + t);
21
- }
22
- }
23
- }
24
- };
25
-
26
- export { repositionScroll as r };
27
- //# sourceMappingURL=p-efa273d7.js.map
@@ -1 +0,0 @@
1
- {"version":3,"names":["repositionScroll","scollableElementRef","activeItem","direction","scrollableElement","hasVerticalScrollbar","scrollHeight","clientHeight","scrollableElementScrollTop","scrollTop","KK","ARROW_UP","scrollableElementTop","getBoundingClientRect","top","selectedItemTop","offset","scrollTo","ARROW_DOWN","scrollableElementBottom","bottom","selectedItemBottom"],"sources":["node_modules/@genexus/gemini/dist/collection/common/reposition-scroll.js"],"sourcesContent":["import { KeyboardKeys as KK } from \"./types\";\nexport const repositionScroll = (scollableElementRef, activeItem, direction) => {\n const scrollableElement = scollableElementRef;\n const hasVerticalScrollbar = scrollableElement?.scrollHeight > scrollableElement?.clientHeight;\n if (hasVerticalScrollbar && activeItem) {\n const scrollableElementScrollTop = scrollableElement.scrollTop;\n if (direction === KK.ARROW_UP) {\n const scrollableElementTop = scrollableElement.getBoundingClientRect()\n .top;\n const selectedItemTop = activeItem.getBoundingClientRect().top;\n if (selectedItemTop < scrollableElementTop) {\n const offset = scrollableElementTop - selectedItemTop;\n scrollableElement.scrollTo(0, scrollableElementScrollTop - offset);\n }\n }\n else if (direction === KK.ARROW_DOWN) {\n const scrollableElementBottom = scrollableElement.getBoundingClientRect()\n .bottom;\n const selectedItemBottom = activeItem.getBoundingClientRect().bottom;\n if (selectedItemBottom > scrollableElementBottom) {\n const offset = selectedItemBottom - scrollableElementBottom;\n scrollableElement.scrollTo(0, scrollableElementScrollTop + offset);\n }\n }\n }\n};\n//# sourceMappingURL=reposition-scroll.js.map\n"],"mappings":";;AACY,MAACA,mBAAmB,CAACC,GAAqBC,GAAYC;EAC9D,MAAMC,IAAoBH;EAC1B,MAAMI,IAAuBD,GAAmBE,eAAeF,GAAmBG;EAClF,IAAIF,KAAwBH,GAAY;IACpC,MAAMM,IAA6BJ,EAAkBK;IACrD,IAAIN,MAAcO,EAAGC,UAAU;MAC3B,MAAMC,IAAuBR,EAAkBS,wBAC1CC;MACL,MAAMC,IAAkBb,EAAWW,wBAAwBC;MAC3D,IAAIC,IAAkBH,GAAsB;QACxC,MAAMI,IAASJ,IAAuBG;QACtCX,EAAkBa,SAAS,GAAGT,IAA6BQ;AAC3E;AACA,WACa,IAAIb,MAAcO,EAAGQ,YAAY;MAClC,MAAMC,IAA0Bf,EAAkBS,wBAC7CO;MACL,MAAMC,IAAqBnB,EAAWW,wBAAwBO;MAC9D,IAAIC,IAAqBF,GAAyB;QAC9C,MAAMH,IAASK,IAAqBF;QACpCf,EAAkBa,SAAS,GAAGT,IAA6BQ;AAC3E;AACA;AACA;AAAA"}
@@ -1 +0,0 @@
1
- {"version":3,"names":["tabCss","GxgTab","constructor","hostRef","this","tab","undefined","noPadding","flexContainer","flex","overflowAuto","flexDirection","isSelected","render","h","Host","class","open","large","state","mercury","container","part","tabBarCss","GxgTabBar","parts","buttonMenu","lastAddedOrRemovedTabBarButtonWidth","evaluateMenuButtonsTabIndex","menuCollapsed","disableTabIndex","enableTabIndex","setFocus","tabBarMenuToggleButton","focus","menuButtons","el","querySelectorAll","length","attachExportParts","getAttribute","exportPartsResult","exportParts","exportparts","allButtons","forEach","button","removeAttribute","setAttribute","hidden","appendedButtons","tabBarMenuHeight","tabBarMenuWidth","tabBarMenuCollapsed","tabBarMenuPosition","displayBorder","scrollable","rtl","detectClickOutsideTabBarMenu","bind","openMenu","event","stopPropagation","document","addEventListener","tabBarMenuCollapsedHandler","appendTabButtons","numberOfButtons","i","appendTabItemsToMenu","tabActivatedHandler","PrevOrNextTabHandler","e","tabEnabledButtons","allTabButtons","tabButton","disabled","push","arrowPressed","detail","targetButton","target","clickedButtonIndex","findIndex","destinationTab","tabButtonClick","gxgTabsPosition","parentElement","position","buttonHeight","children","item","clientHeight","sizeReference","offsetWidth","offsetHeight","tabBarWidth","tabBar","tabButtons","lastTabButton","classList","add","menuFirstButton","remove","componentWillLoad","componentDidLoad","dirHtml","getElementsByTagName","dirBody","myObserver","ResizeObserver","entries","observe","setIndexToTabButtons","index","toString","renderTabBarMenu","onClick","type","icon","ref","x","y","tabBarMenuClientRect","tabBarMenu","getBoundingClientRect","left","right","top","bottom","disconnectedCallback","removeEventListener","nav","name","style","tabButtonCss","GxgTabButton","tabLabel","borderAbove","buttonClickHandler","isSelectedHandler","newValue","hiddenHandler","parseInt","tabActivated","emit","buttonKeyDownHandler","key","PrevOrNextTab","originTab","preventDefault","printIcon","size","color","onKeyDown","delegatesFocus","tabsCss","GxgTabs","getTab","querySelector","height","maxHeight","minWidth","tabBarBorder","noBorder","buttonsBorderAbove","noBackground","activeTab","updateActiveChildren","configureTabs","tagName","child","tabs","setActiveTab","tabEl","setFirstActiveTab","allTabs","Array","from","firstEnabledTab","find"],"sources":["node_modules/@genexus/gemini/dist/collection/components/tab/tab.css?tag=gxg-tab&encapsulation=shadow","node_modules/@genexus/gemini/dist/collection/components/tab/tab.js","node_modules/@genexus/gemini/dist/collection/components/tab-bar/tab-bar.css?tag=gxg-tab-bar&encapsulation=shadow","node_modules/@genexus/gemini/dist/collection/components/tab-bar/tab-bar.js","node_modules/@genexus/gemini/dist/collection/components/tab-button/tab-button.css?tag=gxg-tab-button&encapsulation=shadow","node_modules/@genexus/gemini/dist/collection/components/tab-button/tab-button.js","node_modules/@genexus/gemini/dist/collection/components/tabs/tabs.css?tag=gxg-tabs&encapsulation=shadow","node_modules/@genexus/gemini/dist/collection/components/tabs/tabs.js"],"sourcesContent":[":root {\n --ui-animaton-speed: 0.2s;\n}\n\n/*ALIGNMENT*/\n/*Ellipsis*/\n/*****************************************************\nTYPOGRAPHY\n*****************************************************/\n/*Title 01 (Positive)*/\n.gxg-title-01 {\n font-family: var(--ds-base-font-family-primary);\n font-weight: var(--ds-title-01-font-weight);\n font-size: var(--ds-title-01-font-size);\n letter-spacing: var(--ds-base-font-letter-spacing--comfortable);\n color: var(--ds-base-font-color);\n text-align: start;\n line-height: var(--ds-base-font-line-height--comfortable);\n}\n\n/*Title 01 (Negative)*/\n.gxg-title-01--negative {\n font-family: var(--ds-base-font-family-primary);\n font-weight: var(--ds-title-01-font-weight);\n font-size: var(--ds-title-01-font-size);\n letter-spacing: var(--ds-base-font-letter-spacing--comfortable);\n color: var(--ds-base-font-color);\n text-align: start;\n line-height: var(--ds-base-font-line-height--comfortable);\n color: var(--ds-base-font-color--negative);\n}\n\n/*Title 02 (Positive)*/\n.gxg-title-02 {\n font-family: var(--ds-base-font-family-primary);\n font-weight: var(--ds-title-02-font-weight);\n font-size: var(--ds-title-02-font-size);\n letter-spacing: var(--ds-base-font-letter-spacing--regular);\n color: var(--ds-base-font-color);\n text-align: start;\n text-transform: uppercase;\n line-height: var(--ds-base-font-line-height--comfortable);\n}\n\n.gxg-title-02--negative {\n font-family: var(--ds-base-font-family-primary);\n font-weight: var(--ds-title-02-font-weight);\n font-size: var(--ds-title-02-font-size);\n letter-spacing: var(--ds-base-font-letter-spacing--regular);\n color: var(--ds-base-font-color);\n text-align: start;\n text-transform: uppercase;\n line-height: var(--ds-base-font-line-height--comfortable);\n color: var(--color-on-primary);\n}\n\n/*Title 03*/\n.gxg-title-03 {\n font-family: var(--ds-base-font-family-primary);\n font-weight: var(--ds-title-03-font-weight);\n font-size: var(--ds-title-03-font-size);\n letter-spacing: var(--ds-base-font-letter-spacing--regular);\n color: var(--ds-base-font-color);\n text-align: start;\n text-transform: uppercase;\n line-height: var(--ds-base-font-line-height--comfortable);\n}\n\n.gxg-title-03--negative {\n font-family: var(--ds-base-font-family-primary);\n font-weight: var(--ds-title-03-font-weight);\n font-size: var(--ds-title-03-font-size);\n letter-spacing: var(--ds-base-font-letter-spacing--regular);\n color: var(--ds-base-font-color);\n text-align: start;\n text-transform: uppercase;\n line-height: var(--ds-base-font-line-height--comfortable);\n color: var(--ds-base-font-color--negative);\n}\n\n/*Title 04*/\n.gxg-title-04 {\n font-family: var(--ds-base-font-family-primary);\n font-weight: var(--ds-title-04-font-weight);\n font-size: var(--ds-title-04-font-size);\n letter-spacing: var(--ds-base-font-letter-spacing--comfortable);\n color: var(--ds-base-font-color);\n text-align: start;\n line-height: var(--ds-base-font-line-height--comfortable);\n}\n\n.gxg-title-04--negative {\n font-family: var(--ds-base-font-family-primary);\n font-weight: var(--ds-title-04-font-weight);\n font-size: var(--ds-title-04-font-size);\n letter-spacing: var(--ds-base-font-letter-spacing--comfortable);\n color: var(--ds-base-font-color);\n text-align: start;\n line-height: var(--ds-base-font-line-height--comfortable);\n color: var(--ds-base-font-color--negative);\n}\n\n/*Title 05*/\n.gxg-title-05 {\n font-family: var(--ds-base-font-family-primary);\n font-weight: var(--ds-title-05-font-weight);\n font-size: var(--ds-title-05-font-size);\n letter-spacing: var(--ds-base-font-letter-spacing--regular);\n color: var(--ds-base-font-color);\n text-align: start;\n line-height: var(--ds-base-font-line-height--comfortable);\n}\n\n.gxg-title-05--negative {\n font-family: var(--ds-base-font-family-primary);\n font-weight: var(--ds-title-05-font-weight);\n font-size: var(--ds-title-05-font-size);\n letter-spacing: var(--ds-base-font-letter-spacing--regular);\n color: var(--ds-base-font-color);\n text-align: start;\n line-height: var(--ds-base-font-line-height--comfortable);\n color: var(--ds-base-font-color--negative);\n}\n\n/*Text*/\n.gxg-text {\n font-family: var(--ds-base-font-family-primary);\n font-size: var(--ds-base-font-size);\n color: var(--ds-base-font-size-color);\n font-weight: var(--ds-base-font-size-weight);\n line-height: var(--ds-base-font-line-height--comfortable);\n}\n\n.gxg-text--negative {\n font-family: var(--ds-base-font-family-primary);\n font-size: var(--ds-base-font-size);\n color: var(--ds-base-font-size-color);\n font-weight: var(--ds-base-font-size-weight);\n line-height: var(--ds-base-font-line-height--comfortable);\n color: var(--ds-base-font-color--negative);\n}\n\n.gxg-text--gray {\n font-family: var(--ds-base-font-family-primary);\n font-size: var(--ds-base-font-size);\n color: var(--ds-base-font-size-color);\n font-weight: var(--ds-base-font-size-weight);\n line-height: var(--ds-base-font-line-height--comfortable);\n color: var(--ds-base-font-color--dimmed);\n}\n\n/*Quote*/\n.gxg-quote {\n font-family: var(--ds-base-font-family-primary);\n font-size: var(--ds-base-font-size);\n color: var(--ds-base-font-size-color);\n font-weight: var(--ds-base-font-size-weight);\n line-height: var(--ds-base-font-line-height--comfortable);\n font-style: italic;\n}\n\n.gxg-quote--negative {\n color: var(--ds-base-font-color--negative);\n}\n\n/*Link*/\n.gxg-link {\n line-height: unset;\n font-family: var(--ds-base-font-family-primary);\n font-size: var(--ds-base-font-size);\n color: var(--ds-base-font-size-color);\n font-weight: var(--ds-base-font-size-weight);\n line-height: var(--ds-base-font-line-height--comfortable);\n color: var(--ds-base-font-color--link);\n text-decoration: underline;\n cursor: pointer;\n display: inline-block;\n}\n.gxg-link:hover {\n color: var(--ds-base-font-color--link-hover);\n}\n.gxg-link:active {\n color: var(--ds-base-font-color--link-active);\n}\n\n.gxg-link-gray {\n line-height: unset;\n font-family: var(--ds-base-font-family-primary);\n font-size: var(--ds-base-font-size);\n color: var(--ds-base-font-size-color);\n font-weight: var(--ds-base-font-size-weight);\n line-height: var(--ds-base-font-line-height--comfortable);\n color: var(--ds-base-font-color--link);\n text-decoration: underline;\n cursor: pointer;\n display: inline-block;\n color: var(--ds-base-font-color--dimmed);\n}\n.gxg-link-gray:hover {\n line-height: unset;\n font-family: var(--ds-base-font-family-primary);\n font-size: var(--ds-base-font-size);\n color: var(--ds-base-font-size-color);\n font-weight: var(--ds-base-font-size-weight);\n line-height: var(--ds-base-font-line-height--comfortable);\n color: var(--ds-base-font-color--link);\n text-decoration: underline;\n cursor: pointer;\n display: inline-block;\n color: var(--ds-base-font-color--dimmed);\n filter: brightness(1.4);\n}\n\n/*Alerts*/\n.gxg-alert-error {\n font-family: var(--ds-base-font-family-primary);\n font-size: var(--ds-base-font-size);\n color: var(--ds-base-font-size-color);\n font-weight: var(--ds-base-font-size-weight);\n line-height: var(--ds-base-font-line-height--comfortable);\n color: var(--ds-base-font-color--error);\n display: inline-block;\n}\n\n.gxg-alert-warning {\n font-family: var(--ds-base-font-family-primary);\n font-size: var(--ds-base-font-size);\n color: var(--ds-base-font-size-color);\n font-weight: var(--ds-base-font-size-weight);\n line-height: var(--ds-base-font-line-height--comfortable);\n color: var(--ds-base-font-color--warning);\n display: inline-block;\n}\n\n.gxg-alert-success {\n font-family: var(--ds-base-font-family-primary);\n font-size: var(--ds-base-font-size);\n color: var(--ds-base-font-size-color);\n font-weight: var(--ds-base-font-size-weight);\n line-height: var(--ds-base-font-line-height--comfortable);\n color: var(--ds-base-font-color--success);\n display: inline-block;\n}\n\n/*Tab*/\n.gxg-tab--disabled {\n color: var(--color-primary-disabled);\n pointer-events: none;\n}\n.gxg-tab--disabled[disabled] {\n color: var(--color-primary-disabled);\n pointer-events: none;\n}\n\n/*Label*/\n.gxg-label {\n font-family: var(--ds-base-font-family-primary);\n font-weight: var(--gxg-label-font-weight);\n font-size: var(--gxg-label-font-size);\n color: var(--gxg-label-color);\n text-align: center;\n line-height: 1.455em;\n display: flex;\n align-items: center;\n}\n.gxg-label:hover {\n color: var(--color-primary-hover);\n}\n.gxg-label:focus {\n color: var(--color-primary-active);\n}\n.gxg-label:active {\n color: var(--color-primary-active);\n}\n.gxg-label[disabled] {\n color: var(--color-primary-disabled);\n}\n\n.gxg-label--negative {\n color: var(--color-on-primary);\n}\n.gxg-label--negative[disabled] {\n color: var(--color-on-disabled);\n}\n\n/*****************************************************\nGXG-BUTTON and GXG-BUTTON-GROUP COMMON STYLES\n*****************************************************/\n/*****************************************************\nFORM ELEMENTS\n*****************************************************/\n.gxg-scrollbar {\n /* Track */\n /* Handle */\n /* Handle on hover */\n}\n.gxg-scrollbar::-webkit-scrollbar {\n width: var(--gxg-scrollbar-width);\n height: var(--gxg-scrollbar-width);\n}\n.gxg-scrollbar::-webkit-scrollbar-track {\n background-color: var(--gxg-scrollbar-track-background);\n border-radius: var(--gxg-scrollbar-track-border-radius);\n}\n.gxg-scrollbar::-webkit-scrollbar-thumb {\n background-color: var(--gxg-scrollbar-track-thumb-background);\n border-radius: var(--gxg-scrollbar-track-thumb-radius);\n}\n.gxg-scrollbar::-webkit-scrollbar-thumb:hover {\n background-color: var(--gxg-scrollbar-track-thumb-hover-background);\n}\n.gxg-scrollbar::-webkit-scrollbar-corner {\n background: rgba(0, 0, 0, 0);\n}\n\n:host {\n height: 100%;\n overflow-y: auto;\n display: block;\n}\n:host .container {\n font-family: var(--ds-base-font-family-primary);\n font-size: var(--ds-base-font-size);\n color: var(--ds-base-font-size-color);\n font-weight: var(--ds-base-font-size-weight);\n line-height: var(--ds-base-font-line-height--comfortable);\n /* Track */\n /* Handle */\n /* Handle on hover */\n font-size: var(--gxg-tab-font-size);\n color: var(--gxg-tab-color);\n height: 100%;\n width: 100%;\n box-sizing: border-box;\n padding-block-start: var(--gxg-tab-vertical-padding);\n padding-inline-end: var(--gxg-tab-horizontal-padding);\n padding-block-end: var(--gxg-tab-vertical-padding);\n padding-inline-start: var(--gxg-tab-horizontal-padding);\n overflow-y: auto;\n background-color: var(--gxg-tab-background-color);\n}\n:host .container::-webkit-scrollbar {\n width: var(--gxg-scrollbar-width);\n height: var(--gxg-scrollbar-width);\n}\n:host .container::-webkit-scrollbar-track {\n background-color: var(--gxg-scrollbar-track-background);\n border-radius: var(--gxg-scrollbar-track-border-radius);\n}\n:host .container::-webkit-scrollbar-thumb {\n background-color: var(--gxg-scrollbar-track-thumb-background);\n border-radius: var(--gxg-scrollbar-track-thumb-radius);\n}\n:host .container::-webkit-scrollbar-thumb:hover {\n background-color: var(--gxg-scrollbar-track-thumb-hover-background);\n}\n:host .container::-webkit-scrollbar-corner {\n background: rgba(0, 0, 0, 0);\n}\n\n:host(.not-selected) {\n display: none;\n}\n\n:host(.no-padding) .container {\n padding: 0;\n}\n\n:host(.flex) {\n display: flex;\n}\n\n:host(.overflow-auto) {\n overflow: auto;\n}\n\n.container--flex {\n display: flex;\n}\n.container--flex.flex-column {\n flex-direction: column;\n}\n.container--flex.flex-row {\n flex-direction: row;\n}","import { h, Host } from \"@stencil/core\";\nimport state from \"../store\";\nexport class GxgTab {\n constructor() {\n this.tab = undefined;\n this.noPadding = false;\n this.flexContainer = false;\n this.flex = false;\n this.overflowAuto = false;\n this.flexDirection = \"column\";\n this.isSelected = false;\n }\n el;\n render() {\n return (h(Host, { class: {\n \"overflow-auto\": this.overflowAuto,\n flex: this.flex && this.isSelected,\n open: this.isSelected,\n \"not-selected\": !this.isSelected,\n \"no-padding\": this.noPadding,\n large: state.large,\n mercury: state.mercury,\n } }, h(\"div\", { class: {\n container: true,\n \"container--flex\": this.flexContainer,\n \"flex-column\": this.flexDirection === \"column\",\n \"flex-row\": this.flexDirection === \"row\",\n }, part: \"container\" }, h(\"slot\", null))));\n }\n static get is() { return \"gxg-tab\"; }\n static get encapsulation() { return \"shadow\"; }\n static get originalStyleUrls() {\n return {\n \"$\": [\"tab.scss\"]\n };\n }\n static get styleUrls() {\n return {\n \"$\": [\"tab.css\"]\n };\n }\n static get properties() {\n return {\n \"tab\": {\n \"type\": \"string\",\n \"mutable\": false,\n \"complexType\": {\n \"original\": \"string\",\n \"resolved\": \"string\",\n \"references\": {}\n },\n \"required\": false,\n \"optional\": false,\n \"docs\": {\n \"tags\": [],\n \"text\": \"The tab id. Should match the \\\"tab\\\" value of the correlative \\\"gxg-tab\\\"\"\n },\n \"attribute\": \"tab\",\n \"reflect\": false\n },\n \"noPadding\": {\n \"type\": \"boolean\",\n \"mutable\": false,\n \"complexType\": {\n \"original\": \"boolean\",\n \"resolved\": \"boolean\",\n \"references\": {}\n },\n \"required\": false,\n \"optional\": false,\n \"docs\": {\n \"tags\": [],\n \"text\": \"The presence of this attribute removes the tab .container padding\"\n },\n \"attribute\": \"no-padding\",\n \"reflect\": false,\n \"defaultValue\": \"false\"\n },\n \"flexContainer\": {\n \"type\": \"boolean\",\n \"mutable\": false,\n \"complexType\": {\n \"original\": \"boolean\",\n \"resolved\": \"boolean\",\n \"references\": {}\n },\n \"required\": false,\n \"optional\": false,\n \"docs\": {\n \"tags\": [],\n \"text\": \"The presence of this attribute makes the container display flex\"\n },\n \"attribute\": \"flex-container\",\n \"reflect\": false,\n \"defaultValue\": \"false\"\n },\n \"flex\": {\n \"type\": \"boolean\",\n \"mutable\": false,\n \"complexType\": {\n \"original\": \"boolean\",\n \"resolved\": \"boolean\",\n \"references\": {}\n },\n \"required\": false,\n \"optional\": false,\n \"docs\": {\n \"tags\": [],\n \"text\": \"The presence of this attribute makes the display of the tab 'flex' only when is open\"\n },\n \"attribute\": \"flex\",\n \"reflect\": false,\n \"defaultValue\": \"false\"\n },\n \"overflowAuto\": {\n \"type\": \"boolean\",\n \"mutable\": false,\n \"complexType\": {\n \"original\": \"boolean\",\n \"resolved\": \"boolean\",\n \"references\": {}\n },\n \"required\": false,\n \"optional\": false,\n \"docs\": {\n \"tags\": [],\n \"text\": \"The presence of this attribute makes the .container overflow property set to 'auto'\"\n },\n \"attribute\": \"overflow-auto\",\n \"reflect\": false,\n \"defaultValue\": \"false\"\n },\n \"flexDirection\": {\n \"type\": \"string\",\n \"mutable\": false,\n \"complexType\": {\n \"original\": \"TabContainerFlexDirection\",\n \"resolved\": \"\\\"column\\\" | \\\"row\\\"\",\n \"references\": {\n \"TabContainerFlexDirection\": {\n \"location\": \"local\",\n \"path\": \"/home/circleci/repo/src/components/tab/tab.tsx\",\n \"id\": \"src/components/tab/tab.tsx::TabContainerFlexDirection\"\n }\n }\n },\n \"required\": false,\n \"optional\": false,\n \"docs\": {\n \"tags\": [],\n \"text\": \"The container flex-direction, if container is flex.\"\n },\n \"attribute\": \"flex-direction\",\n \"reflect\": false,\n \"defaultValue\": \"\\\"column\\\"\"\n },\n \"isSelected\": {\n \"type\": \"boolean\",\n \"mutable\": false,\n \"complexType\": {\n \"original\": \"boolean\",\n \"resolved\": \"boolean\",\n \"references\": {}\n },\n \"required\": false,\n \"optional\": false,\n \"docs\": {\n \"tags\": [],\n \"text\": \"The selected tab\"\n },\n \"attribute\": \"is-selected\",\n \"reflect\": true,\n \"defaultValue\": \"false\"\n }\n };\n }\n static get elementRef() { return \"el\"; }\n}\n//# sourceMappingURL=tab.js.map\n",":root {\n --ui-animaton-speed: 0.2s;\n}\n\n/*ALIGNMENT*/\n/*Ellipsis*/\n/*****************************************************\nTYPOGRAPHY\n*****************************************************/\n/*Title 01 (Positive)*/\n.gxg-title-01 {\n font-family: var(--ds-base-font-family-primary);\n font-weight: var(--ds-title-01-font-weight);\n font-size: var(--ds-title-01-font-size);\n letter-spacing: var(--ds-base-font-letter-spacing--comfortable);\n color: var(--ds-base-font-color);\n text-align: start;\n line-height: var(--ds-base-font-line-height--comfortable);\n}\n\n/*Title 01 (Negative)*/\n.gxg-title-01--negative {\n font-family: var(--ds-base-font-family-primary);\n font-weight: var(--ds-title-01-font-weight);\n font-size: var(--ds-title-01-font-size);\n letter-spacing: var(--ds-base-font-letter-spacing--comfortable);\n color: var(--ds-base-font-color);\n text-align: start;\n line-height: var(--ds-base-font-line-height--comfortable);\n color: var(--ds-base-font-color--negative);\n}\n\n/*Title 02 (Positive)*/\n.gxg-title-02 {\n font-family: var(--ds-base-font-family-primary);\n font-weight: var(--ds-title-02-font-weight);\n font-size: var(--ds-title-02-font-size);\n letter-spacing: var(--ds-base-font-letter-spacing--regular);\n color: var(--ds-base-font-color);\n text-align: start;\n text-transform: uppercase;\n line-height: var(--ds-base-font-line-height--comfortable);\n}\n\n.gxg-title-02--negative {\n font-family: var(--ds-base-font-family-primary);\n font-weight: var(--ds-title-02-font-weight);\n font-size: var(--ds-title-02-font-size);\n letter-spacing: var(--ds-base-font-letter-spacing--regular);\n color: var(--ds-base-font-color);\n text-align: start;\n text-transform: uppercase;\n line-height: var(--ds-base-font-line-height--comfortable);\n color: var(--color-on-primary);\n}\n\n/*Title 03*/\n.gxg-title-03 {\n font-family: var(--ds-base-font-family-primary);\n font-weight: var(--ds-title-03-font-weight);\n font-size: var(--ds-title-03-font-size);\n letter-spacing: var(--ds-base-font-letter-spacing--regular);\n color: var(--ds-base-font-color);\n text-align: start;\n text-transform: uppercase;\n line-height: var(--ds-base-font-line-height--comfortable);\n}\n\n.gxg-title-03--negative {\n font-family: var(--ds-base-font-family-primary);\n font-weight: var(--ds-title-03-font-weight);\n font-size: var(--ds-title-03-font-size);\n letter-spacing: var(--ds-base-font-letter-spacing--regular);\n color: var(--ds-base-font-color);\n text-align: start;\n text-transform: uppercase;\n line-height: var(--ds-base-font-line-height--comfortable);\n color: var(--ds-base-font-color--negative);\n}\n\n/*Title 04*/\n.gxg-title-04 {\n font-family: var(--ds-base-font-family-primary);\n font-weight: var(--ds-title-04-font-weight);\n font-size: var(--ds-title-04-font-size);\n letter-spacing: var(--ds-base-font-letter-spacing--comfortable);\n color: var(--ds-base-font-color);\n text-align: start;\n line-height: var(--ds-base-font-line-height--comfortable);\n}\n\n.gxg-title-04--negative {\n font-family: var(--ds-base-font-family-primary);\n font-weight: var(--ds-title-04-font-weight);\n font-size: var(--ds-title-04-font-size);\n letter-spacing: var(--ds-base-font-letter-spacing--comfortable);\n color: var(--ds-base-font-color);\n text-align: start;\n line-height: var(--ds-base-font-line-height--comfortable);\n color: var(--ds-base-font-color--negative);\n}\n\n/*Title 05*/\n.gxg-title-05 {\n font-family: var(--ds-base-font-family-primary);\n font-weight: var(--ds-title-05-font-weight);\n font-size: var(--ds-title-05-font-size);\n letter-spacing: var(--ds-base-font-letter-spacing--regular);\n color: var(--ds-base-font-color);\n text-align: start;\n line-height: var(--ds-base-font-line-height--comfortable);\n}\n\n.gxg-title-05--negative {\n font-family: var(--ds-base-font-family-primary);\n font-weight: var(--ds-title-05-font-weight);\n font-size: var(--ds-title-05-font-size);\n letter-spacing: var(--ds-base-font-letter-spacing--regular);\n color: var(--ds-base-font-color);\n text-align: start;\n line-height: var(--ds-base-font-line-height--comfortable);\n color: var(--ds-base-font-color--negative);\n}\n\n/*Text*/\n.gxg-text {\n font-family: var(--ds-base-font-family-primary);\n font-size: var(--ds-base-font-size);\n color: var(--ds-base-font-size-color);\n font-weight: var(--ds-base-font-size-weight);\n line-height: var(--ds-base-font-line-height--comfortable);\n}\n\n.gxg-text--negative {\n font-family: var(--ds-base-font-family-primary);\n font-size: var(--ds-base-font-size);\n color: var(--ds-base-font-size-color);\n font-weight: var(--ds-base-font-size-weight);\n line-height: var(--ds-base-font-line-height--comfortable);\n color: var(--ds-base-font-color--negative);\n}\n\n.gxg-text--gray {\n font-family: var(--ds-base-font-family-primary);\n font-size: var(--ds-base-font-size);\n color: var(--ds-base-font-size-color);\n font-weight: var(--ds-base-font-size-weight);\n line-height: var(--ds-base-font-line-height--comfortable);\n color: var(--ds-base-font-color--dimmed);\n}\n\n/*Quote*/\n.gxg-quote {\n font-family: var(--ds-base-font-family-primary);\n font-size: var(--ds-base-font-size);\n color: var(--ds-base-font-size-color);\n font-weight: var(--ds-base-font-size-weight);\n line-height: var(--ds-base-font-line-height--comfortable);\n font-style: italic;\n}\n\n.gxg-quote--negative {\n color: var(--ds-base-font-color--negative);\n}\n\n/*Link*/\n.gxg-link {\n line-height: unset;\n font-family: var(--ds-base-font-family-primary);\n font-size: var(--ds-base-font-size);\n color: var(--ds-base-font-size-color);\n font-weight: var(--ds-base-font-size-weight);\n line-height: var(--ds-base-font-line-height--comfortable);\n color: var(--ds-base-font-color--link);\n text-decoration: underline;\n cursor: pointer;\n display: inline-block;\n}\n.gxg-link:hover {\n color: var(--ds-base-font-color--link-hover);\n}\n.gxg-link:active {\n color: var(--ds-base-font-color--link-active);\n}\n\n.gxg-link-gray {\n line-height: unset;\n font-family: var(--ds-base-font-family-primary);\n font-size: var(--ds-base-font-size);\n color: var(--ds-base-font-size-color);\n font-weight: var(--ds-base-font-size-weight);\n line-height: var(--ds-base-font-line-height--comfortable);\n color: var(--ds-base-font-color--link);\n text-decoration: underline;\n cursor: pointer;\n display: inline-block;\n color: var(--ds-base-font-color--dimmed);\n}\n.gxg-link-gray:hover {\n line-height: unset;\n font-family: var(--ds-base-font-family-primary);\n font-size: var(--ds-base-font-size);\n color: var(--ds-base-font-size-color);\n font-weight: var(--ds-base-font-size-weight);\n line-height: var(--ds-base-font-line-height--comfortable);\n color: var(--ds-base-font-color--link);\n text-decoration: underline;\n cursor: pointer;\n display: inline-block;\n color: var(--ds-base-font-color--dimmed);\n filter: brightness(1.4);\n}\n\n/*Alerts*/\n.gxg-alert-error {\n font-family: var(--ds-base-font-family-primary);\n font-size: var(--ds-base-font-size);\n color: var(--ds-base-font-size-color);\n font-weight: var(--ds-base-font-size-weight);\n line-height: var(--ds-base-font-line-height--comfortable);\n color: var(--ds-base-font-color--error);\n display: inline-block;\n}\n\n.gxg-alert-warning {\n font-family: var(--ds-base-font-family-primary);\n font-size: var(--ds-base-font-size);\n color: var(--ds-base-font-size-color);\n font-weight: var(--ds-base-font-size-weight);\n line-height: var(--ds-base-font-line-height--comfortable);\n color: var(--ds-base-font-color--warning);\n display: inline-block;\n}\n\n.gxg-alert-success {\n font-family: var(--ds-base-font-family-primary);\n font-size: var(--ds-base-font-size);\n color: var(--ds-base-font-size-color);\n font-weight: var(--ds-base-font-size-weight);\n line-height: var(--ds-base-font-line-height--comfortable);\n color: var(--ds-base-font-color--success);\n display: inline-block;\n}\n\n/*Tab*/\n.gxg-tab--disabled {\n color: var(--color-primary-disabled);\n pointer-events: none;\n}\n.gxg-tab--disabled[disabled] {\n color: var(--color-primary-disabled);\n pointer-events: none;\n}\n\n/*Label*/\n.gxg-label {\n font-family: var(--ds-base-font-family-primary);\n font-weight: var(--gxg-label-font-weight);\n font-size: var(--gxg-label-font-size);\n color: var(--gxg-label-color);\n text-align: center;\n line-height: 1.455em;\n display: flex;\n align-items: center;\n}\n.gxg-label:hover {\n color: var(--color-primary-hover);\n}\n.gxg-label:focus {\n color: var(--color-primary-active);\n}\n.gxg-label:active {\n color: var(--color-primary-active);\n}\n.gxg-label[disabled] {\n color: var(--color-primary-disabled);\n}\n\n.gxg-label--negative {\n color: var(--color-on-primary);\n}\n.gxg-label--negative[disabled] {\n color: var(--color-on-disabled);\n}\n\n/*****************************************************\nGXG-BUTTON and GXG-BUTTON-GROUP COMMON STYLES\n*****************************************************/\n/*****************************************************\nFORM ELEMENTS\n*****************************************************/\n.gxg-scrollbar {\n /* Track */\n /* Handle */\n /* Handle on hover */\n}\n.gxg-scrollbar::-webkit-scrollbar {\n width: var(--gxg-scrollbar-width);\n height: var(--gxg-scrollbar-width);\n}\n.gxg-scrollbar::-webkit-scrollbar-track {\n background-color: var(--gxg-scrollbar-track-background);\n border-radius: var(--gxg-scrollbar-track-border-radius);\n}\n.gxg-scrollbar::-webkit-scrollbar-thumb {\n background-color: var(--gxg-scrollbar-track-thumb-background);\n border-radius: var(--gxg-scrollbar-track-thumb-radius);\n}\n.gxg-scrollbar::-webkit-scrollbar-thumb:hover {\n background-color: var(--gxg-scrollbar-track-thumb-hover-background);\n}\n.gxg-scrollbar::-webkit-scrollbar-corner {\n background: rgba(0, 0, 0, 0);\n}\n\n:host {\n --tabBarMenuHeight: 0;\n --tabBarMenuWidth: 0;\n display: inline-flex;\n text-align: right;\n position: relative;\n display: flex;\n justify-content: space-between;\n}\n:host .nav {\n display: flex;\n justify-content: space-between;\n width: 100%;\n background-color: var(--gxg-tab-bar-background-color);\n}\n:host .nav--border {\n border-bottom: var(--ds-border-common-styles);\n}\n:host .tab-bar {\n list-style-type: none;\n padding-inline-start: 0;\n display: flex !important;\n margin-bottom: 0;\n margin-top: 0;\n}\n:host .tab-bar__menu {\n display: flex;\n align-items: center;\n}\n:host .tab-bar__menu-button {\n padding-right: 4px;\n transform: scale(0.9);\n}\n:host .tab-bar-menu {\n border-radius: var(--border-width-md);\n box-shadow: var(--box-shadow-01);\n height: var(--tabBarMenuHeight);\n position: absolute;\n z-index: 10;\n background-color: var(--color-on-primary);\n right: 0;\n margin: 0;\n padding: 0;\n list-style: none;\n display: inline-flex;\n flex-direction: column;\n overflow: hidden;\n transition-property: height;\n transition-duration: var(--ui-animaton-speed);\n transition-timing-function: ease;\n}\n:host .tab-bar-menu.bottom {\n bottom: 0;\n}\n:host .tab-bar-menu.right {\n bottom: 0;\n rotate: 90deg;\n transform-origin: top right;\n transform: translateX(100%);\n height: auto !important;\n width: var(--tabBarMenuHeight);\n}\n:host .tab-bar-menu--collapsed {\n height: 0;\n}\n:host .tab-bar-menu--collapsed.right {\n width: 0;\n}\n\n/*Scrollable*/\n:host([scrollable]) .nav {\n width: 100%;\n overflow-y: auto;\n /* Track */\n /* Handle */\n /* Handle on hover */\n}\n:host([scrollable]) .nav::-webkit-scrollbar {\n width: var(--gxg-scrollbar-width);\n height: var(--gxg-scrollbar-width);\n}\n:host([scrollable]) .nav::-webkit-scrollbar-track {\n background-color: var(--gxg-scrollbar-track-background);\n border-radius: var(--gxg-scrollbar-track-border-radius);\n}\n:host([scrollable]) .nav::-webkit-scrollbar-thumb {\n background-color: var(--gxg-scrollbar-track-thumb-background);\n border-radius: var(--gxg-scrollbar-track-thumb-radius);\n}\n:host([scrollable]) .nav::-webkit-scrollbar-thumb:hover {\n background-color: var(--gxg-scrollbar-track-thumb-hover-background);\n}\n:host([scrollable]) .nav::-webkit-scrollbar-corner {\n background: rgba(0, 0, 0, 0);\n}\n\n:host(.gxg-tab-bar--hidden) {\n display: none;\n}\n\n:host(.rtl) .tab-bar-menu {\n left: 0;\n right: auto;\n}","import { h, Host } from \"@stencil/core\";\nimport state from \"../store\";\nimport { exportParts } from \"../../common/export-parts\";\nexport class GxgTabBar {\n parts = {\n buttonMenu: \"button-menu\"\n };\n exportparts;\n constructor() {\n this.hidden = false;\n this.appendedButtons = 0;\n this.tabBarMenuHeight = \"auto\";\n this.tabBarMenuWidth = \"auto\";\n this.tabBarMenuCollapsed = true;\n this.tabBarMenuPosition = undefined;\n this.displayBorder = false;\n this.scrollable = false;\n this.rtl = false;\n this.detectClickOutsideTabBarMenu =\n this.detectClickOutsideTabBarMenu.bind(this);\n }\n el;\n tabBar;\n tabBarMenu;\n tabBarMenuToggleButton;\n lastAddedOrRemovedTabBarButtonWidth = 0;\n openMenu(event) {\n event.stopPropagation();\n this.tabBarMenuCollapsed = false;\n document.addEventListener(\"click\", this.detectClickOutsideTabBarMenu);\n }\n tabBarMenuCollapsedHandler(menuCollapsed) {\n this.evaluateMenuButtonsTabIndex(menuCollapsed);\n this.setFocus(menuCollapsed);\n }\n evaluateMenuButtonsTabIndex = (menuCollapsed) => {\n if (menuCollapsed) {\n this.disableTabIndex();\n }\n else {\n this.enableTabIndex();\n }\n };\n setFocus = (menuCollapsed) => {\n if (menuCollapsed) {\n this.tabBarMenuToggleButton.focus();\n }\n else {\n const menuButtons = this.el.querySelectorAll(\"[slot=tab-menu]\");\n if (menuButtons.length) {\n menuButtons[0].focus();\n }\n }\n };\n async appendTabButtons() {\n if (!this.scrollable) {\n const numberOfButtons = this.el.querySelectorAll(\"gxg-tab-button\").length;\n for (let i = 0; i <= numberOfButtons; i++) {\n this.appendTabItemsToMenu();\n }\n }\n }\n tabActivatedHandler() {\n this.tabBarMenuCollapsed = true;\n }\n PrevOrNextTabHandler(e) {\n const tabEnabledButtons = [];\n const allTabButtons = this.el.querySelectorAll(\"gxg-tab-button\");\n if (allTabButtons) {\n allTabButtons.forEach(tabButton => {\n if (!tabButton.disabled && !tabButton.hidden) {\n tabEnabledButtons.push(tabButton);\n }\n });\n }\n const arrowPressed = e.detail[\"arrowPressed\"];\n const targetButton = e.target;\n const clickedButtonIndex = tabEnabledButtons.findIndex(button => {\n return button === targetButton;\n });\n let destinationTab;\n if (arrowPressed === \"ArrowLeft\" && clickedButtonIndex !== -1) {\n destinationTab = tabEnabledButtons[clickedButtonIndex - 1];\n }\n else if (arrowPressed === \"ArrowRight\" && clickedButtonIndex !== -1) {\n destinationTab = tabEnabledButtons[clickedButtonIndex + 1];\n }\n if (destinationTab) {\n destinationTab.tabButtonClick();\n }\n }\n appendTabItemsToMenu() {\n //This function appends tab-buttons into a tab-menu, as long as the tab-buttons are too tight\n const gxgTabsPosition = this.el.parentElement\n .position;\n const buttonHeight = this.el.children.item(0).clientHeight;\n let sizeReference;\n if (gxgTabsPosition === \"top\" || gxgTabsPosition === \"bottom\") {\n sizeReference = this.el.parentElement.offsetWidth;\n }\n else if (gxgTabsPosition === \"right\" || gxgTabsPosition === \"left\") {\n sizeReference = this.el.parentElement.offsetHeight;\n }\n const tabBarWidth = this.tabBar.offsetWidth;\n if (tabBarWidth + 20 > sizeReference) {\n const tabButtons = this.el.querySelectorAll(\"gxg-tab-button[slot='tab-bar']\");\n //get the last item of the nodeList\n const lastTabButton = tabButtons[tabButtons.length - 1];\n if (lastTabButton) {\n this.lastAddedOrRemovedTabBarButtonWidth = lastTabButton.offsetWidth;\n //add \"menu-button\" class to button component, in order to stylize the buttons inside the menu differently\n lastTabButton.classList.add(\"menu-button\");\n lastTabButton.setAttribute(\"slot\", \"tab-menu\");\n this.appendedButtons++;\n }\n //}\n }\n else if (tabBarWidth + 20 + this.lastAddedOrRemovedTabBarButtonWidth <\n sizeReference) {\n const menuButtons = this.el.querySelectorAll(\"[slot=tab-menu]\");\n const menuFirstButton = menuButtons[0];\n if (menuFirstButton) {\n menuFirstButton.classList.remove(\"menu-button\");\n menuFirstButton.setAttribute(\"slot\", \"tab-bar\");\n this.lastAddedOrRemovedTabBarButtonWidth = menuFirstButton.offsetWidth;\n this.appendedButtons--;\n }\n }\n if (gxgTabsPosition === \"right\" || gxgTabsPosition === \"left\") {\n this.tabBarMenuHeight = this.appendedButtons * buttonHeight + \"px\";\n }\n this.evaluateMenuButtonsTabIndex(this.tabBarMenuCollapsed);\n }\n componentWillLoad() {\n this.attachExportParts();\n }\n attachExportParts = () => {\n const part = this.el.getAttribute(\"part\");\n const exportPartsResult = exportParts(part, this.parts);\n exportPartsResult.length && (this.exportparts = exportPartsResult);\n };\n componentDidLoad() {\n //Reading Direction\n const dirHtml = document\n .getElementsByTagName(\"html\")[0]\n .getAttribute(\"dir\");\n const dirBody = document\n .getElementsByTagName(\"body\")[0]\n .getAttribute(\"dir\");\n if (dirHtml === \"rtl\" || dirBody === \"rtl\") {\n this.rtl = true;\n }\n if (!this.scrollable) {\n const myObserver = new ResizeObserver(entries => {\n entries.forEach(() => {\n //get any button space between text and button border\n this.appendTabItemsToMenu();\n });\n });\n myObserver.observe(this.el.parentElement);\n //Collapse buttons if they dont't fit in the available space already\n const numberOfButtons = this.el.querySelectorAll(\"gxg-tab-button\").length;\n for (let i = 0; i <= numberOfButtons; i++) {\n this.appendTabItemsToMenu();\n }\n }\n //Tabbar menu on bottom\n const gxgTabsPosition = this.el.parentElement.getAttribute(\"position\");\n if (gxgTabsPosition === \"bottom\") {\n this.tabBarMenuPosition = \"bottom\";\n }\n //Tabbar menu on right\n if (gxgTabsPosition === \"right\") {\n this.tabBarMenuPosition = \"right\";\n }\n this.setIndexToTabButtons();\n }\n setIndexToTabButtons() {\n const tabButtons = this.el.querySelectorAll(\"gxg-tab-button\");\n tabButtons.forEach((tabButton, index) => {\n tabButton.setAttribute(\"data-index\", index.toString());\n });\n }\n renderTabBarMenu() {\n if (this.appendedButtons > 0) {\n return (h(\"div\", { class: \"tab-bar__menu\" }, h(\"gxg-button\", { class: \"tab-bar__menu-button\", onClick: this.openMenu.bind(this), type: \"tertiary\", icon: \"gemini-tools/show-more-vertical\", ref: el => (this.tabBarMenuToggleButton = el), part: this.parts.buttonMenu })));\n }\n }\n detectClickOutsideTabBarMenu(event) {\n const x = event.x;\n const y = event.y;\n //card main container coordinates\n const tabBarMenuClientRect = this.tabBarMenu.getBoundingClientRect();\n if (x > tabBarMenuClientRect.left &&\n x < tabBarMenuClientRect.right &&\n y > tabBarMenuClientRect.top &&\n y < tabBarMenuClientRect.bottom) {\n //Click happened inside the menu\n }\n else {\n //Click happened outside the menu\n this.tabBarMenuCollapsed = true;\n }\n }\n disconnectedCallback() {\n document.removeEventListener(\"click\", this.detectClickOutsideTabBarMenu);\n }\n enableTabIndex = () => {\n const allButtons = this.el.querySelectorAll(\"gxg-tab-button\");\n allButtons.forEach(button => {\n button.removeAttribute(\"tabindex\");\n });\n };\n disableTabIndex = () => {\n const menuButtons = this.el.querySelectorAll(\"[slot=tab-menu]\");\n menuButtons.forEach(button => {\n button.setAttribute(\"tabindex\", \"-1\");\n });\n };\n render() {\n return (h(Host, { class: {\n rtl: this.rtl,\n \"gxg-tab-bar\": true,\n \"gxg-tab-bar--hidden\": this.hidden,\n mercury: state.mercury\n }, exportParts: this.exportparts ? this.exportparts : null }, h(\"nav\", { class: {\n nav: true,\n \"nav--border\": this.displayBorder\n } }, h(\"ul\", { class: \"tab-bar\", ref: el => (this.tabBar = el) }, h(\"slot\", { name: \"tab-bar\" })), this.renderTabBarMenu(), h(\"ul\", { class: {\n \"tab-bar-menu\": true,\n \"tab-bar-menu--collapsed\": this.tabBarMenuCollapsed,\n top: this.tabBarMenuPosition === \"top\",\n right: this.tabBarMenuPosition === \"right\",\n bottom: this.tabBarMenuPosition === \"bottom\",\n left: this.tabBarMenuPosition === \"left\"\n }, style: {\n \"--tabBarMenuHeight\": this.tabBarMenuHeight,\n \"--tabBarMenuWidth\": this.tabBarMenuWidth\n }, ref: el => (this.tabBarMenu = el) }, h(\"slot\", { name: \"tab-menu\" })))));\n }\n static get is() { return \"gxg-tab-bar\"; }\n static get encapsulation() { return \"shadow\"; }\n static get originalStyleUrls() {\n return {\n \"$\": [\"tab-bar.scss\"]\n };\n }\n static get styleUrls() {\n return {\n \"$\": [\"tab-bar.css\"]\n };\n }\n static get properties() {\n return {\n \"hidden\": {\n \"type\": \"boolean\",\n \"mutable\": false,\n \"complexType\": {\n \"original\": \"boolean\",\n \"resolved\": \"boolean\",\n \"references\": {}\n },\n \"required\": false,\n \"optional\": false,\n \"docs\": {\n \"tags\": [],\n \"text\": \"Hides the tab-bar\"\n },\n \"attribute\": \"hidden\",\n \"reflect\": false,\n \"defaultValue\": \"false\"\n },\n \"displayBorder\": {\n \"type\": \"boolean\",\n \"mutable\": false,\n \"complexType\": {\n \"original\": \"boolean\",\n \"resolved\": \"boolean\",\n \"references\": {}\n },\n \"required\": false,\n \"optional\": false,\n \"docs\": {\n \"tags\": [],\n \"text\": \"The presence of this attribute displays a border-bottom line on the tab bar\"\n },\n \"attribute\": \"display-border\",\n \"reflect\": false,\n \"defaultValue\": \"false\"\n },\n \"scrollable\": {\n \"type\": \"boolean\",\n \"mutable\": false,\n \"complexType\": {\n \"original\": \"boolean\",\n \"resolved\": \"boolean\",\n \"references\": {}\n },\n \"required\": false,\n \"optional\": false,\n \"docs\": {\n \"tags\": [],\n \"text\": \"The presence of this attribute with display a scrollbar if the buttons total width is greater than the tab-bar width.\"\n },\n \"attribute\": \"scrollable\",\n \"reflect\": true,\n \"defaultValue\": \"false\"\n }\n };\n }\n static get states() {\n return {\n \"appendedButtons\": {},\n \"tabBarMenuHeight\": {},\n \"tabBarMenuWidth\": {},\n \"tabBarMenuCollapsed\": {},\n \"tabBarMenuPosition\": {},\n \"rtl\": {}\n };\n }\n static get methods() {\n return {\n \"appendTabButtons\": {\n \"complexType\": {\n \"signature\": \"() => Promise<void>\",\n \"parameters\": [],\n \"references\": {\n \"Promise\": {\n \"location\": \"global\",\n \"id\": \"global::Promise\"\n }\n },\n \"return\": \"Promise<void>\"\n },\n \"docs\": {\n \"text\": \"\",\n \"tags\": []\n }\n }\n };\n }\n static get elementRef() { return \"el\"; }\n static get watchers() {\n return [{\n \"propName\": \"tabBarMenuCollapsed\",\n \"methodName\": \"tabBarMenuCollapsedHandler\"\n }];\n }\n static get listeners() {\n return [{\n \"name\": \"tabActivated\",\n \"method\": \"tabActivatedHandler\",\n \"target\": undefined,\n \"capture\": false,\n \"passive\": false\n }, {\n \"name\": \"PrevOrNextTab\",\n \"method\": \"PrevOrNextTabHandler\",\n \"target\": undefined,\n \"capture\": false,\n \"passive\": false\n }];\n }\n}\n//# sourceMappingURL=tab-bar.js.map\n",":root {\n --ui-animaton-speed: 0.2s;\n}\n\n/*ALIGNMENT*/\n/*Ellipsis*/\n/*****************************************************\nTYPOGRAPHY\n*****************************************************/\n/*Title 01 (Positive)*/\n.gxg-title-01 {\n font-family: var(--ds-base-font-family-primary);\n font-weight: var(--ds-title-01-font-weight);\n font-size: var(--ds-title-01-font-size);\n letter-spacing: var(--ds-base-font-letter-spacing--comfortable);\n color: var(--ds-base-font-color);\n text-align: start;\n line-height: var(--ds-base-font-line-height--comfortable);\n}\n\n/*Title 01 (Negative)*/\n.gxg-title-01--negative {\n font-family: var(--ds-base-font-family-primary);\n font-weight: var(--ds-title-01-font-weight);\n font-size: var(--ds-title-01-font-size);\n letter-spacing: var(--ds-base-font-letter-spacing--comfortable);\n color: var(--ds-base-font-color);\n text-align: start;\n line-height: var(--ds-base-font-line-height--comfortable);\n color: var(--ds-base-font-color--negative);\n}\n\n/*Title 02 (Positive)*/\n.gxg-title-02 {\n font-family: var(--ds-base-font-family-primary);\n font-weight: var(--ds-title-02-font-weight);\n font-size: var(--ds-title-02-font-size);\n letter-spacing: var(--ds-base-font-letter-spacing--regular);\n color: var(--ds-base-font-color);\n text-align: start;\n text-transform: uppercase;\n line-height: var(--ds-base-font-line-height--comfortable);\n}\n\n.gxg-title-02--negative {\n font-family: var(--ds-base-font-family-primary);\n font-weight: var(--ds-title-02-font-weight);\n font-size: var(--ds-title-02-font-size);\n letter-spacing: var(--ds-base-font-letter-spacing--regular);\n color: var(--ds-base-font-color);\n text-align: start;\n text-transform: uppercase;\n line-height: var(--ds-base-font-line-height--comfortable);\n color: var(--color-on-primary);\n}\n\n/*Title 03*/\n.gxg-title-03 {\n font-family: var(--ds-base-font-family-primary);\n font-weight: var(--ds-title-03-font-weight);\n font-size: var(--ds-title-03-font-size);\n letter-spacing: var(--ds-base-font-letter-spacing--regular);\n color: var(--ds-base-font-color);\n text-align: start;\n text-transform: uppercase;\n line-height: var(--ds-base-font-line-height--comfortable);\n}\n\n.gxg-title-03--negative {\n font-family: var(--ds-base-font-family-primary);\n font-weight: var(--ds-title-03-font-weight);\n font-size: var(--ds-title-03-font-size);\n letter-spacing: var(--ds-base-font-letter-spacing--regular);\n color: var(--ds-base-font-color);\n text-align: start;\n text-transform: uppercase;\n line-height: var(--ds-base-font-line-height--comfortable);\n color: var(--ds-base-font-color--negative);\n}\n\n/*Title 04*/\n.gxg-title-04 {\n font-family: var(--ds-base-font-family-primary);\n font-weight: var(--ds-title-04-font-weight);\n font-size: var(--ds-title-04-font-size);\n letter-spacing: var(--ds-base-font-letter-spacing--comfortable);\n color: var(--ds-base-font-color);\n text-align: start;\n line-height: var(--ds-base-font-line-height--comfortable);\n}\n\n.gxg-title-04--negative {\n font-family: var(--ds-base-font-family-primary);\n font-weight: var(--ds-title-04-font-weight);\n font-size: var(--ds-title-04-font-size);\n letter-spacing: var(--ds-base-font-letter-spacing--comfortable);\n color: var(--ds-base-font-color);\n text-align: start;\n line-height: var(--ds-base-font-line-height--comfortable);\n color: var(--ds-base-font-color--negative);\n}\n\n/*Title 05*/\n.gxg-title-05 {\n font-family: var(--ds-base-font-family-primary);\n font-weight: var(--ds-title-05-font-weight);\n font-size: var(--ds-title-05-font-size);\n letter-spacing: var(--ds-base-font-letter-spacing--regular);\n color: var(--ds-base-font-color);\n text-align: start;\n line-height: var(--ds-base-font-line-height--comfortable);\n}\n\n.gxg-title-05--negative {\n font-family: var(--ds-base-font-family-primary);\n font-weight: var(--ds-title-05-font-weight);\n font-size: var(--ds-title-05-font-size);\n letter-spacing: var(--ds-base-font-letter-spacing--regular);\n color: var(--ds-base-font-color);\n text-align: start;\n line-height: var(--ds-base-font-line-height--comfortable);\n color: var(--ds-base-font-color--negative);\n}\n\n/*Text*/\n.gxg-text {\n font-family: var(--ds-base-font-family-primary);\n font-size: var(--ds-base-font-size);\n color: var(--ds-base-font-size-color);\n font-weight: var(--ds-base-font-size-weight);\n line-height: var(--ds-base-font-line-height--comfortable);\n}\n\n.gxg-text--negative {\n font-family: var(--ds-base-font-family-primary);\n font-size: var(--ds-base-font-size);\n color: var(--ds-base-font-size-color);\n font-weight: var(--ds-base-font-size-weight);\n line-height: var(--ds-base-font-line-height--comfortable);\n color: var(--ds-base-font-color--negative);\n}\n\n.gxg-text--gray {\n font-family: var(--ds-base-font-family-primary);\n font-size: var(--ds-base-font-size);\n color: var(--ds-base-font-size-color);\n font-weight: var(--ds-base-font-size-weight);\n line-height: var(--ds-base-font-line-height--comfortable);\n color: var(--ds-base-font-color--dimmed);\n}\n\n/*Quote*/\n.gxg-quote {\n font-family: var(--ds-base-font-family-primary);\n font-size: var(--ds-base-font-size);\n color: var(--ds-base-font-size-color);\n font-weight: var(--ds-base-font-size-weight);\n line-height: var(--ds-base-font-line-height--comfortable);\n font-style: italic;\n}\n\n.gxg-quote--negative {\n color: var(--ds-base-font-color--negative);\n}\n\n/*Link*/\n.gxg-link {\n line-height: unset;\n font-family: var(--ds-base-font-family-primary);\n font-size: var(--ds-base-font-size);\n color: var(--ds-base-font-size-color);\n font-weight: var(--ds-base-font-size-weight);\n line-height: var(--ds-base-font-line-height--comfortable);\n color: var(--ds-base-font-color--link);\n text-decoration: underline;\n cursor: pointer;\n display: inline-block;\n}\n.gxg-link:hover {\n color: var(--ds-base-font-color--link-hover);\n}\n.gxg-link:active {\n color: var(--ds-base-font-color--link-active);\n}\n\n.gxg-link-gray {\n line-height: unset;\n font-family: var(--ds-base-font-family-primary);\n font-size: var(--ds-base-font-size);\n color: var(--ds-base-font-size-color);\n font-weight: var(--ds-base-font-size-weight);\n line-height: var(--ds-base-font-line-height--comfortable);\n color: var(--ds-base-font-color--link);\n text-decoration: underline;\n cursor: pointer;\n display: inline-block;\n color: var(--ds-base-font-color--dimmed);\n}\n.gxg-link-gray:hover {\n line-height: unset;\n font-family: var(--ds-base-font-family-primary);\n font-size: var(--ds-base-font-size);\n color: var(--ds-base-font-size-color);\n font-weight: var(--ds-base-font-size-weight);\n line-height: var(--ds-base-font-line-height--comfortable);\n color: var(--ds-base-font-color--link);\n text-decoration: underline;\n cursor: pointer;\n display: inline-block;\n color: var(--ds-base-font-color--dimmed);\n filter: brightness(1.4);\n}\n\n/*Alerts*/\n.gxg-alert-error {\n font-family: var(--ds-base-font-family-primary);\n font-size: var(--ds-base-font-size);\n color: var(--ds-base-font-size-color);\n font-weight: var(--ds-base-font-size-weight);\n line-height: var(--ds-base-font-line-height--comfortable);\n color: var(--ds-base-font-color--error);\n display: inline-block;\n}\n\n.gxg-alert-warning {\n font-family: var(--ds-base-font-family-primary);\n font-size: var(--ds-base-font-size);\n color: var(--ds-base-font-size-color);\n font-weight: var(--ds-base-font-size-weight);\n line-height: var(--ds-base-font-line-height--comfortable);\n color: var(--ds-base-font-color--warning);\n display: inline-block;\n}\n\n.gxg-alert-success {\n font-family: var(--ds-base-font-family-primary);\n font-size: var(--ds-base-font-size);\n color: var(--ds-base-font-size-color);\n font-weight: var(--ds-base-font-size-weight);\n line-height: var(--ds-base-font-line-height--comfortable);\n color: var(--ds-base-font-color--success);\n display: inline-block;\n}\n\n/*Tab*/\n.gxg-tab--disabled {\n color: var(--color-primary-disabled);\n pointer-events: none;\n}\n.gxg-tab--disabled[disabled] {\n color: var(--color-primary-disabled);\n pointer-events: none;\n}\n\n/*Label*/\n.gxg-label {\n font-family: var(--ds-base-font-family-primary);\n font-weight: var(--gxg-label-font-weight);\n font-size: var(--gxg-label-font-size);\n color: var(--gxg-label-color);\n text-align: center;\n line-height: 1.455em;\n display: flex;\n align-items: center;\n}\n.gxg-label:hover {\n color: var(--color-primary-hover);\n}\n.gxg-label:focus {\n color: var(--color-primary-active);\n}\n.gxg-label:active {\n color: var(--color-primary-active);\n}\n.gxg-label[disabled] {\n color: var(--color-primary-disabled);\n}\n\n.gxg-label--negative {\n color: var(--color-on-primary);\n}\n.gxg-label--negative[disabled] {\n color: var(--color-on-disabled);\n}\n\n/*****************************************************\nGXG-BUTTON and GXG-BUTTON-GROUP COMMON STYLES\n*****************************************************/\n/*****************************************************\nFORM ELEMENTS\n*****************************************************/\n.gxg-scrollbar {\n /* Track */\n /* Handle */\n /* Handle on hover */\n}\n.gxg-scrollbar::-webkit-scrollbar {\n width: var(--gxg-scrollbar-width);\n height: var(--gxg-scrollbar-width);\n}\n.gxg-scrollbar::-webkit-scrollbar-track {\n background-color: var(--gxg-scrollbar-track-background);\n border-radius: var(--gxg-scrollbar-track-border-radius);\n}\n.gxg-scrollbar::-webkit-scrollbar-thumb {\n background-color: var(--gxg-scrollbar-track-thumb-background);\n border-radius: var(--gxg-scrollbar-track-thumb-radius);\n}\n.gxg-scrollbar::-webkit-scrollbar-thumb:hover {\n background-color: var(--gxg-scrollbar-track-thumb-hover-background);\n}\n.gxg-scrollbar::-webkit-scrollbar-corner {\n background: rgba(0, 0, 0, 0);\n}\n\n:host {\n display: block;\n align-self: center !important;\n line-height: 0;\n}\n:host .tab-button {\n display: flex;\n align-items: center;\n justify-content: center;\n font-size: var(--gxg-tab-button-font-size);\n font-weight: var(--gxg-tab-button-font-weight);\n font-family: inherit;\n text-transform: var(--gxg-tab-button-font-text-transform);\n color: var(--gxg-tab-button-color);\n letter-spacing: var(--letter-spacing-regular);\n padding-top: 0;\n padding-inline-end: var(--gxg-tab-button-horizontal-padding);\n padding-bottom: 0;\n padding-inline-start: var(--gxg-tab-button-horizontal-padding);\n margin-top: 0;\n margin-right: 0;\n margin-bottom: 0;\n margin-left: 0;\n border: 0;\n width: 100%;\n height: var(--gxg-tab-button-height);\n position: relative;\n -webkit-box-shadow: none;\n -moz-box-shadow: none;\n box-shadow: none;\n background-color: transparent;\n}\n:host .tab-button:focus-visible {\n outline: var(--ds-focus-border-width) solid var(--ds-border-color-control--focused);\n outline-offset: -1px;\n outline-offset: -2px;\n}\n:host .tab-button:after {\n content: \"\";\n width: 100%;\n height: var(--gxg-tab-button-line-height);\n left: 0;\n bottom: 0;\n position: absolute;\n background-color: transparent;\n}\n:host .tab-button:hover {\n cursor: pointer;\n}\n:host .tab-button:hover:focus-visible {\n outline-color: var(--gxg-tab-button-line-background-color-hover);\n}\n:host .tab-button:hover:after {\n background-color: var(--gxg-tab-button-line-background-color-hover);\n}\n:host .tab-button:active:focus-visible {\n outline-color: var(--gxg-tab-button-line-background-color-active);\n}\n:host .tab-button:active:after {\n background-color: var(--gxg-tab-button-line-background-color-active);\n}\n:host .tab-button[disabled] {\n color: var(--ds-color-disabled);\n pointer-events: none;\n}\n:host .tab-button[disabled]:after {\n background-color: var(--ds-background-color-disabled);\n}\n:host .tab-button[disabled] gxg-icon {\n --gxg-icon-color: var(--ds-icon-color-disabled);\n}\n:host .tab-button--selected {\n color: var(--gxg-tab-button-color--selected);\n font-weight: var(--gxg-tab-button-font-weight-selected);\n}\n:host .tab-button--selected:after {\n background-color: var(--gxg-tab-button-line-background-color);\n}\n:host .tab-button--text-icon gxg-icon {\n margin-right: var(--spacing-comp-02);\n}\n:host .tab-button--hidden {\n display: none;\n}\n:host .tab-button--border-above:after {\n top: 0;\n bottom: auto;\n}\n:host .tab-button gxg-icon {\n --gxg-icon-color: var(--gxg-tab-button-icon-color);\n}\n:host .tab-button__text {\n display: inline-block;\n}\n\n:host([slot=tab-menu]) .tab-button {\n padding-left: 0;\n padding-right: 0;\n}\n\n:host(.menu-button) {\n width: 100%;\n box-sizing: border-box;\n}\n:host(.menu-button) .tab-button {\n padding: 0 var(--gxg-tab-menu-button-padding);\n min-height: calc(var(--gxg-tab-menu-button-min-height) * 0.85);\n justify-content: flex-start;\n}\n:host(.menu-button) .tab-button:after {\n display: none;\n}\n:host(.menu-button) .tab-button__text {\n font-size: var(--gxg-tab-menu-button-font-size);\n}\n:host(.menu-button) gxg-icon {\n transform: scale(0.85);\n}\n\n:host(.menu-button:hover) {\n background: var(--ds-item-background-color--hover);\n}","import { h, Host } from \"@stencil/core\";\nimport state from \"../store\";\nimport { exportParts } from \"../../common/export-parts\";\nexport class GxgTabButton {\n constructor() {\n this.hidden = false;\n this.tabLabel = null;\n this.tab = null;\n this.isSelected = false;\n this.disabled = false;\n this.icon = null;\n this.borderAbove = false;\n }\n parts = {\n button: \"button\"\n };\n exportparts;\n el;\n tabButton;\n //Events\n tabActivated;\n PrevOrNextTab;\n async tabButtonClick() {\n this.buttonClickHandler();\n this.tabButton.focus();\n }\n isSelectedHandler(newValue) {\n if (newValue) {\n this.el.removeAttribute(\"tabindex\");\n }\n else {\n this.el.setAttribute(\"tabindex\", \"-1\");\n }\n }\n hiddenHandler(hidden) {\n if (hidden) {\n this.el.setAttribute(\"tabindex\", \"-1\");\n }\n else {\n this.el.removeAttribute(\"tabindex\");\n }\n }\n buttonClickHandler() {\n this.isSelected = true;\n const index = parseInt(this.el.getAttribute(\"data-index\"), 10);\n this.tabActivated.emit({\n tab: this.tab,\n index: index\n });\n }\n buttonKeyDownHandler(e) {\n if (e.key === \"ArrowRight\" || e.key === \"ArrowLeft\") {\n this.PrevOrNextTab.emit({\n originTab: this.tab,\n arrowPressed: e.key\n });\n }\n else if (e.key === \"ArrowUp\" || e.key === \"ArrowDown\") {\n e.preventDefault();\n }\n }\n printIcon() {\n if (this.icon !== null) {\n if (this.disabled) {\n return (h(\"gxg-icon\", { size: \"small\", color: \"disabled\", type: this.icon, part: \"icon\" }));\n }\n return h(\"gxg-icon\", { size: \"small\", type: this.icon, part: \"icon\" });\n }\n }\n componentWillLoad() {\n this.attachExportParts();\n this.hiddenHandler(this.hidden);\n }\n attachExportParts = () => {\n const part = this.el.getAttribute(\"part\");\n const exportPartsResult = exportParts(part, this.parts);\n exportPartsResult.length && (this.exportparts = exportPartsResult);\n };\n componentDidLoad() {\n //Set the active tab for this tab-button if this is selected by default\n if (this.isSelected) {\n this.tabActivated.emit();\n }\n }\n render() {\n return (h(Host, { class: {\n large: state.large,\n mercury: state.mercury\n }, exportParts: this.exportparts ? this.exportparts : null }, h(\"li\", { class: \"tab-item\" }, h(\"button\", { disabled: this.disabled, class: {\n \"tab-button\": true,\n \"tab-button--hidden\": this.hidden,\n \"tab-button--selected\": this.isSelected === true,\n \"tab-button--text-icon\": this.tabLabel !== null && this.icon !== null,\n large: state.large,\n \"tab-button--border-above\": this.borderAbove\n }, onClick: this.buttonClickHandler.bind(this), onKeyDown: this.buttonKeyDownHandler.bind(this), ref: el => (this.tabButton = el), part: this.parts.button }, this.printIcon(), h(\"span\", { class: \"tab-button__text\", part: \"button-text\" }, this.tabLabel)), h(\"slot\", null))));\n }\n static get is() { return \"gxg-tab-button\"; }\n static get encapsulation() { return \"shadow\"; }\n static get delegatesFocus() { return true; }\n static get originalStyleUrls() {\n return {\n \"$\": [\"tab-button.scss\"]\n };\n }\n static get styleUrls() {\n return {\n \"$\": [\"tab-button.css\"]\n };\n }\n static get properties() {\n return {\n \"hidden\": {\n \"type\": \"boolean\",\n \"mutable\": false,\n \"complexType\": {\n \"original\": \"boolean\",\n \"resolved\": \"boolean\",\n \"references\": {}\n },\n \"required\": false,\n \"optional\": false,\n \"docs\": {\n \"tags\": [],\n \"text\": \"Hides the tab button\"\n },\n \"attribute\": \"hidden\",\n \"reflect\": false,\n \"defaultValue\": \"false\"\n },\n \"tabLabel\": {\n \"type\": \"string\",\n \"mutable\": false,\n \"complexType\": {\n \"original\": \"string\",\n \"resolved\": \"string\",\n \"references\": {}\n },\n \"required\": false,\n \"optional\": false,\n \"docs\": {\n \"tags\": [],\n \"text\": \"The button label\"\n },\n \"attribute\": \"tab-label\",\n \"reflect\": false,\n \"defaultValue\": \"null\"\n },\n \"tab\": {\n \"type\": \"string\",\n \"mutable\": false,\n \"complexType\": {\n \"original\": \"string\",\n \"resolved\": \"string\",\n \"references\": {}\n },\n \"required\": false,\n \"optional\": false,\n \"docs\": {\n \"tags\": [],\n \"text\": \"The tab id. Must be unique, and match the \\\"tab\\\" value of the correlative \\\"gxg-tab\\\" element\"\n },\n \"attribute\": \"tab\",\n \"reflect\": true,\n \"defaultValue\": \"null\"\n },\n \"isSelected\": {\n \"type\": \"boolean\",\n \"mutable\": false,\n \"complexType\": {\n \"original\": \"boolean\",\n \"resolved\": \"boolean\",\n \"references\": {}\n },\n \"required\": false,\n \"optional\": false,\n \"docs\": {\n \"tags\": [],\n \"text\": \"Provide this attribute to make this button selected by default\"\n },\n \"attribute\": \"is-selected\",\n \"reflect\": false,\n \"defaultValue\": \"false\"\n },\n \"disabled\": {\n \"type\": \"boolean\",\n \"mutable\": false,\n \"complexType\": {\n \"original\": \"boolean\",\n \"resolved\": \"boolean\",\n \"references\": {}\n },\n \"required\": false,\n \"optional\": false,\n \"docs\": {\n \"tags\": [],\n \"text\": \"Provide this attribute to make this button disabled\"\n },\n \"attribute\": \"disabled\",\n \"reflect\": false,\n \"defaultValue\": \"false\"\n },\n \"icon\": {\n \"type\": \"string\",\n \"mutable\": false,\n \"complexType\": {\n \"original\": \"string\",\n \"resolved\": \"string\",\n \"references\": {}\n },\n \"required\": false,\n \"optional\": false,\n \"docs\": {\n \"tags\": [],\n \"text\": \"(Optional) provide an icon to this button\"\n },\n \"attribute\": \"icon\",\n \"reflect\": false,\n \"defaultValue\": \"null\"\n },\n \"borderAbove\": {\n \"type\": \"boolean\",\n \"mutable\": false,\n \"complexType\": {\n \"original\": \"boolean\",\n \"resolved\": \"boolean\",\n \"references\": {}\n },\n \"required\": false,\n \"optional\": false,\n \"docs\": {\n \"tags\": [],\n \"text\": \"Displays the border above\"\n },\n \"attribute\": \"border-above\",\n \"reflect\": true,\n \"defaultValue\": \"false\"\n }\n };\n }\n static get events() {\n return [{\n \"method\": \"tabActivated\",\n \"name\": \"tabActivated\",\n \"bubbles\": true,\n \"cancelable\": true,\n \"composed\": true,\n \"docs\": {\n \"tags\": [],\n \"text\": \"\"\n },\n \"complexType\": {\n \"original\": \"any\",\n \"resolved\": \"any\",\n \"references\": {}\n }\n }, {\n \"method\": \"PrevOrNextTab\",\n \"name\": \"PrevOrNextTab\",\n \"bubbles\": true,\n \"cancelable\": true,\n \"composed\": true,\n \"docs\": {\n \"tags\": [],\n \"text\": \"\"\n },\n \"complexType\": {\n \"original\": \"any\",\n \"resolved\": \"any\",\n \"references\": {}\n }\n }];\n }\n static get methods() {\n return {\n \"tabButtonClick\": {\n \"complexType\": {\n \"signature\": \"() => Promise<void>\",\n \"parameters\": [],\n \"references\": {\n \"Promise\": {\n \"location\": \"global\",\n \"id\": \"global::Promise\"\n }\n },\n \"return\": \"Promise<void>\"\n },\n \"docs\": {\n \"text\": \"\",\n \"tags\": []\n }\n }\n };\n }\n static get elementRef() { return \"el\"; }\n static get watchers() {\n return [{\n \"propName\": \"isSelected\",\n \"methodName\": \"isSelectedHandler\"\n }, {\n \"propName\": \"hidden\",\n \"methodName\": \"hiddenHandler\"\n }];\n }\n}\n//# sourceMappingURL=tab-button.js.map\n",":root {\n --ui-animaton-speed: 0.2s;\n}\n\n/*ALIGNMENT*/\n/*Ellipsis*/\n/*****************************************************\nTYPOGRAPHY\n*****************************************************/\n/*Title 01 (Positive)*/\n.gxg-title-01 {\n font-family: var(--ds-base-font-family-primary);\n font-weight: var(--ds-title-01-font-weight);\n font-size: var(--ds-title-01-font-size);\n letter-spacing: var(--ds-base-font-letter-spacing--comfortable);\n color: var(--ds-base-font-color);\n text-align: start;\n line-height: var(--ds-base-font-line-height--comfortable);\n}\n\n/*Title 01 (Negative)*/\n.gxg-title-01--negative {\n font-family: var(--ds-base-font-family-primary);\n font-weight: var(--ds-title-01-font-weight);\n font-size: var(--ds-title-01-font-size);\n letter-spacing: var(--ds-base-font-letter-spacing--comfortable);\n color: var(--ds-base-font-color);\n text-align: start;\n line-height: var(--ds-base-font-line-height--comfortable);\n color: var(--ds-base-font-color--negative);\n}\n\n/*Title 02 (Positive)*/\n.gxg-title-02 {\n font-family: var(--ds-base-font-family-primary);\n font-weight: var(--ds-title-02-font-weight);\n font-size: var(--ds-title-02-font-size);\n letter-spacing: var(--ds-base-font-letter-spacing--regular);\n color: var(--ds-base-font-color);\n text-align: start;\n text-transform: uppercase;\n line-height: var(--ds-base-font-line-height--comfortable);\n}\n\n.gxg-title-02--negative {\n font-family: var(--ds-base-font-family-primary);\n font-weight: var(--ds-title-02-font-weight);\n font-size: var(--ds-title-02-font-size);\n letter-spacing: var(--ds-base-font-letter-spacing--regular);\n color: var(--ds-base-font-color);\n text-align: start;\n text-transform: uppercase;\n line-height: var(--ds-base-font-line-height--comfortable);\n color: var(--color-on-primary);\n}\n\n/*Title 03*/\n.gxg-title-03 {\n font-family: var(--ds-base-font-family-primary);\n font-weight: var(--ds-title-03-font-weight);\n font-size: var(--ds-title-03-font-size);\n letter-spacing: var(--ds-base-font-letter-spacing--regular);\n color: var(--ds-base-font-color);\n text-align: start;\n text-transform: uppercase;\n line-height: var(--ds-base-font-line-height--comfortable);\n}\n\n.gxg-title-03--negative {\n font-family: var(--ds-base-font-family-primary);\n font-weight: var(--ds-title-03-font-weight);\n font-size: var(--ds-title-03-font-size);\n letter-spacing: var(--ds-base-font-letter-spacing--regular);\n color: var(--ds-base-font-color);\n text-align: start;\n text-transform: uppercase;\n line-height: var(--ds-base-font-line-height--comfortable);\n color: var(--ds-base-font-color--negative);\n}\n\n/*Title 04*/\n.gxg-title-04 {\n font-family: var(--ds-base-font-family-primary);\n font-weight: var(--ds-title-04-font-weight);\n font-size: var(--ds-title-04-font-size);\n letter-spacing: var(--ds-base-font-letter-spacing--comfortable);\n color: var(--ds-base-font-color);\n text-align: start;\n line-height: var(--ds-base-font-line-height--comfortable);\n}\n\n.gxg-title-04--negative {\n font-family: var(--ds-base-font-family-primary);\n font-weight: var(--ds-title-04-font-weight);\n font-size: var(--ds-title-04-font-size);\n letter-spacing: var(--ds-base-font-letter-spacing--comfortable);\n color: var(--ds-base-font-color);\n text-align: start;\n line-height: var(--ds-base-font-line-height--comfortable);\n color: var(--ds-base-font-color--negative);\n}\n\n/*Title 05*/\n.gxg-title-05 {\n font-family: var(--ds-base-font-family-primary);\n font-weight: var(--ds-title-05-font-weight);\n font-size: var(--ds-title-05-font-size);\n letter-spacing: var(--ds-base-font-letter-spacing--regular);\n color: var(--ds-base-font-color);\n text-align: start;\n line-height: var(--ds-base-font-line-height--comfortable);\n}\n\n.gxg-title-05--negative {\n font-family: var(--ds-base-font-family-primary);\n font-weight: var(--ds-title-05-font-weight);\n font-size: var(--ds-title-05-font-size);\n letter-spacing: var(--ds-base-font-letter-spacing--regular);\n color: var(--ds-base-font-color);\n text-align: start;\n line-height: var(--ds-base-font-line-height--comfortable);\n color: var(--ds-base-font-color--negative);\n}\n\n/*Text*/\n.gxg-text {\n font-family: var(--ds-base-font-family-primary);\n font-size: var(--ds-base-font-size);\n color: var(--ds-base-font-size-color);\n font-weight: var(--ds-base-font-size-weight);\n line-height: var(--ds-base-font-line-height--comfortable);\n}\n\n.gxg-text--negative {\n font-family: var(--ds-base-font-family-primary);\n font-size: var(--ds-base-font-size);\n color: var(--ds-base-font-size-color);\n font-weight: var(--ds-base-font-size-weight);\n line-height: var(--ds-base-font-line-height--comfortable);\n color: var(--ds-base-font-color--negative);\n}\n\n.gxg-text--gray {\n font-family: var(--ds-base-font-family-primary);\n font-size: var(--ds-base-font-size);\n color: var(--ds-base-font-size-color);\n font-weight: var(--ds-base-font-size-weight);\n line-height: var(--ds-base-font-line-height--comfortable);\n color: var(--ds-base-font-color--dimmed);\n}\n\n/*Quote*/\n.gxg-quote {\n font-family: var(--ds-base-font-family-primary);\n font-size: var(--ds-base-font-size);\n color: var(--ds-base-font-size-color);\n font-weight: var(--ds-base-font-size-weight);\n line-height: var(--ds-base-font-line-height--comfortable);\n font-style: italic;\n}\n\n.gxg-quote--negative {\n color: var(--ds-base-font-color--negative);\n}\n\n/*Link*/\n.gxg-link {\n line-height: unset;\n font-family: var(--ds-base-font-family-primary);\n font-size: var(--ds-base-font-size);\n color: var(--ds-base-font-size-color);\n font-weight: var(--ds-base-font-size-weight);\n line-height: var(--ds-base-font-line-height--comfortable);\n color: var(--ds-base-font-color--link);\n text-decoration: underline;\n cursor: pointer;\n display: inline-block;\n}\n.gxg-link:hover {\n color: var(--ds-base-font-color--link-hover);\n}\n.gxg-link:active {\n color: var(--ds-base-font-color--link-active);\n}\n\n.gxg-link-gray {\n line-height: unset;\n font-family: var(--ds-base-font-family-primary);\n font-size: var(--ds-base-font-size);\n color: var(--ds-base-font-size-color);\n font-weight: var(--ds-base-font-size-weight);\n line-height: var(--ds-base-font-line-height--comfortable);\n color: var(--ds-base-font-color--link);\n text-decoration: underline;\n cursor: pointer;\n display: inline-block;\n color: var(--ds-base-font-color--dimmed);\n}\n.gxg-link-gray:hover {\n line-height: unset;\n font-family: var(--ds-base-font-family-primary);\n font-size: var(--ds-base-font-size);\n color: var(--ds-base-font-size-color);\n font-weight: var(--ds-base-font-size-weight);\n line-height: var(--ds-base-font-line-height--comfortable);\n color: var(--ds-base-font-color--link);\n text-decoration: underline;\n cursor: pointer;\n display: inline-block;\n color: var(--ds-base-font-color--dimmed);\n filter: brightness(1.4);\n}\n\n/*Alerts*/\n.gxg-alert-error {\n font-family: var(--ds-base-font-family-primary);\n font-size: var(--ds-base-font-size);\n color: var(--ds-base-font-size-color);\n font-weight: var(--ds-base-font-size-weight);\n line-height: var(--ds-base-font-line-height--comfortable);\n color: var(--ds-base-font-color--error);\n display: inline-block;\n}\n\n.gxg-alert-warning {\n font-family: var(--ds-base-font-family-primary);\n font-size: var(--ds-base-font-size);\n color: var(--ds-base-font-size-color);\n font-weight: var(--ds-base-font-size-weight);\n line-height: var(--ds-base-font-line-height--comfortable);\n color: var(--ds-base-font-color--warning);\n display: inline-block;\n}\n\n.gxg-alert-success {\n font-family: var(--ds-base-font-family-primary);\n font-size: var(--ds-base-font-size);\n color: var(--ds-base-font-size-color);\n font-weight: var(--ds-base-font-size-weight);\n line-height: var(--ds-base-font-line-height--comfortable);\n color: var(--ds-base-font-color--success);\n display: inline-block;\n}\n\n/*Tab*/\n.gxg-tab--disabled {\n color: var(--color-primary-disabled);\n pointer-events: none;\n}\n.gxg-tab--disabled[disabled] {\n color: var(--color-primary-disabled);\n pointer-events: none;\n}\n\n/*Label*/\n.gxg-label {\n font-family: var(--ds-base-font-family-primary);\n font-weight: var(--gxg-label-font-weight);\n font-size: var(--gxg-label-font-size);\n color: var(--gxg-label-color);\n text-align: center;\n line-height: 1.455em;\n display: flex;\n align-items: center;\n}\n.gxg-label:hover {\n color: var(--color-primary-hover);\n}\n.gxg-label:focus {\n color: var(--color-primary-active);\n}\n.gxg-label:active {\n color: var(--color-primary-active);\n}\n.gxg-label[disabled] {\n color: var(--color-primary-disabled);\n}\n\n.gxg-label--negative {\n color: var(--color-on-primary);\n}\n.gxg-label--negative[disabled] {\n color: var(--color-on-disabled);\n}\n\n/*****************************************************\nGXG-BUTTON and GXG-BUTTON-GROUP COMMON STYLES\n*****************************************************/\n/*****************************************************\nFORM ELEMENTS\n*****************************************************/\n.gxg-scrollbar {\n /* Track */\n /* Handle */\n /* Handle on hover */\n}\n.gxg-scrollbar::-webkit-scrollbar {\n width: var(--gxg-scrollbar-width);\n height: var(--gxg-scrollbar-width);\n}\n.gxg-scrollbar::-webkit-scrollbar-track {\n background-color: var(--gxg-scrollbar-track-background);\n border-radius: var(--gxg-scrollbar-track-border-radius);\n}\n.gxg-scrollbar::-webkit-scrollbar-thumb {\n background-color: var(--gxg-scrollbar-track-thumb-background);\n border-radius: var(--gxg-scrollbar-track-thumb-radius);\n}\n.gxg-scrollbar::-webkit-scrollbar-thumb:hover {\n background-color: var(--gxg-scrollbar-track-thumb-hover-background);\n}\n.gxg-scrollbar::-webkit-scrollbar-corner {\n background: rgba(0, 0, 0, 0);\n}\n\n:host {\n display: block;\n height: auto;\n background: var(--color-background);\n border-radius: var(--border-width-md);\n box-shadow: var(--box-shadow-01);\n position: relative;\n font-family: var(--ds-base-font-family-primary);\n}\n\n.main-container {\n height: 100%;\n max-height: 100%;\n display: flex;\n flex-direction: column;\n justify-content: space-between;\n border-width: var(--gxg-tabs-border-width);\n border-style: solid;\n border-color: var(--gxg-tabs-border-color);\n border-radius: var(--gxg-tabs-border-radius);\n overflow: hidden;\n}\n.main-container--no-border {\n border: none;\n}\n\n.tabs-container {\n height: 100%;\n overflow-y: auto;\n}\n\n:host([position=left]) .tab-bar-container {\n transform: rotate(-90deg) translate(-100%, 0);\n transform-origin: left top;\n position: absolute;\n z-index: 10;\n}\n:host([position=left]) .tabs-container {\n height: 100%;\n width: calc(100% - 32px);\n margin-left: 32px;\n}\n\n:host([position=right]) .tab-bar-container {\n transform: rotate(-90deg) translate(-100%, 0);\n transform-origin: left top;\n position: absolute;\n z-index: 10;\n left: calc(100% - 32px);\n}\n:host([position=right]) .tabs-container {\n height: 100%;\n width: calc(100% - 32px);\n}","import { Host, h } from \"@stencil/core\";\nexport class GxgTabs {\n constructor() {\n this.position = \"top\";\n this.height = \"100%\";\n this.maxHeight = \"100%\";\n this.minWidth = \"200px\";\n this.tabBarBorder = false;\n this.noBorder = false;\n this.buttonsBorderAbove = false;\n this.noBackground = false;\n this.noPadding = false;\n this.activeTab = \"\";\n }\n el;\n tabActivatedHandler(event) {\n event.stopPropagation();\n this.updateActiveChildren(event.target.tab, \"gxg-tab-button\");\n this.updateActiveChildren(event.target.tab, \"gxg-tab\");\n }\n componentWillLoad() {\n this.configureTabs();\n }\n updateActiveChildren(activeTab, tagName) {\n let children;\n if (tagName === \"gxg-tab\") {\n children = this.el.querySelectorAll(\":scope > gxg-tab\");\n }\n else if (tagName === \"gxg-tab-button\") {\n const tabBar = this.el.querySelector(\":scope > gxg-tab-bar\");\n children = tabBar.querySelectorAll(\":scope > gxg-tab-button\");\n }\n for (const child of children) {\n child.isSelected = activeTab === child.tab;\n }\n }\n configureTabs() {\n const tabs = this.el.querySelectorAll(\"gxg-tab\");\n if (this.noPadding) {\n tabs.forEach(tab => {\n tab.noPadding = true;\n });\n }\n if (this.buttonsBorderAbove) {\n const tabButtons = this.el.querySelectorAll(\"gxg-tab-button\");\n tabButtons.forEach(tabButton => (tabButton.borderAbove = true));\n }\n }\n async setActiveTab(tab) {\n if (tab) {\n const tabEl = this.getTab(tab);\n if (!tabEl?.disabled) {\n this.updateActiveChildren(tab, \"gxg-tab-button\");\n this.updateActiveChildren(tab, \"gxg-tab\");\n }\n }\n }\n /**\n * Sets the first tab that is not disabled and hidden as the active tab\n */\n async setFirstActiveTab() {\n const allTabs = Array.from(this.el.querySelectorAll(\"gxg-tab-button\"));\n const firstEnabledTab = allTabs.find(tab => !tab.hidden && !tab.disabled);\n if (firstEnabledTab && firstEnabledTab.tab) {\n this.updateActiveChildren(firstEnabledTab.tab, \"gxg-tab-button\");\n this.updateActiveChildren(firstEnabledTab.tab, \"gxg-tab\");\n }\n }\n getTab = (tab) => {\n return this.el.querySelector(`gxg-tab-button[key=${tab}]`);\n };\n render() {\n return (h(Host, { style: {\n height: this.height,\n maxHeight: this.maxHeight,\n minWidth: this.minWidth\n } }, h(\"div\", { class: {\n \"main-container\": true,\n \"main-container--no-border\": this.noBorder\n } }, this.position === \"bottom\"\n ? [\n h(\"div\", { class: \"tabs-container\" }, h(\"slot\", null)),\n h(\"div\", { class: \"tab-bar-container\" }, h(\"slot\", { name: \"tab-bar-container\" }))\n ]\n : [\n h(\"div\", { class: \"tab-bar-container\" }, h(\"slot\", { name: \"tab-bar-container\" })),\n h(\"div\", { class: \"tabs-container\" }, h(\"slot\", null))\n ])));\n }\n static get is() { return \"gxg-tabs\"; }\n static get encapsulation() { return \"shadow\"; }\n static get originalStyleUrls() {\n return {\n \"$\": [\"tabs.scss\"]\n };\n }\n static get styleUrls() {\n return {\n \"$\": [\"tabs.css\"]\n };\n }\n static get properties() {\n return {\n \"position\": {\n \"type\": \"string\",\n \"mutable\": false,\n \"complexType\": {\n \"original\": \"TabsPosition\",\n \"resolved\": \"\\\"bottom\\\" | \\\"left\\\" | \\\"right\\\" | \\\"top\\\"\",\n \"references\": {\n \"TabsPosition\": {\n \"location\": \"local\",\n \"path\": \"/home/circleci/repo/src/components/tabs/tabs.tsx\",\n \"id\": \"src/components/tabs/tabs.tsx::TabsPosition\"\n }\n }\n },\n \"required\": false,\n \"optional\": false,\n \"docs\": {\n \"tags\": [],\n \"text\": \"\"\n },\n \"attribute\": \"position\",\n \"reflect\": false,\n \"defaultValue\": \"\\\"top\\\"\"\n },\n \"height\": {\n \"type\": \"string\",\n \"mutable\": false,\n \"complexType\": {\n \"original\": \"string\",\n \"resolved\": \"string\",\n \"references\": {}\n },\n \"required\": false,\n \"optional\": false,\n \"docs\": {\n \"tags\": [],\n \"text\": \"\"\n },\n \"attribute\": \"height\",\n \"reflect\": true,\n \"defaultValue\": \"\\\"100%\\\"\"\n },\n \"maxHeight\": {\n \"type\": \"string\",\n \"mutable\": false,\n \"complexType\": {\n \"original\": \"string\",\n \"resolved\": \"string\",\n \"references\": {}\n },\n \"required\": false,\n \"optional\": false,\n \"docs\": {\n \"tags\": [],\n \"text\": \"\"\n },\n \"attribute\": \"max-height\",\n \"reflect\": false,\n \"defaultValue\": \"\\\"100%\\\"\"\n },\n \"minWidth\": {\n \"type\": \"string\",\n \"mutable\": false,\n \"complexType\": {\n \"original\": \"string\",\n \"resolved\": \"string\",\n \"references\": {}\n },\n \"required\": false,\n \"optional\": false,\n \"docs\": {\n \"tags\": [],\n \"text\": \"\"\n },\n \"attribute\": \"min-width\",\n \"reflect\": false,\n \"defaultValue\": \"\\\"200px\\\"\"\n },\n \"tabBarBorder\": {\n \"type\": \"boolean\",\n \"mutable\": false,\n \"complexType\": {\n \"original\": \"boolean\",\n \"resolved\": \"boolean\",\n \"references\": {}\n },\n \"required\": false,\n \"optional\": false,\n \"docs\": {\n \"tags\": [],\n \"text\": \"\"\n },\n \"attribute\": \"tab-bar-border\",\n \"reflect\": false,\n \"defaultValue\": \"false\"\n },\n \"noBorder\": {\n \"type\": \"boolean\",\n \"mutable\": false,\n \"complexType\": {\n \"original\": \"boolean\",\n \"resolved\": \"boolean\",\n \"references\": {}\n },\n \"required\": false,\n \"optional\": false,\n \"docs\": {\n \"tags\": [],\n \"text\": \"\"\n },\n \"attribute\": \"no-border\",\n \"reflect\": false,\n \"defaultValue\": \"false\"\n },\n \"buttonsBorderAbove\": {\n \"type\": \"boolean\",\n \"mutable\": false,\n \"complexType\": {\n \"original\": \"boolean\",\n \"resolved\": \"boolean\",\n \"references\": {}\n },\n \"required\": false,\n \"optional\": false,\n \"docs\": {\n \"tags\": [],\n \"text\": \"\"\n },\n \"attribute\": \"buttons-border-above\",\n \"reflect\": false,\n \"defaultValue\": \"false\"\n },\n \"noBackground\": {\n \"type\": \"boolean\",\n \"mutable\": false,\n \"complexType\": {\n \"original\": \"boolean\",\n \"resolved\": \"boolean\",\n \"references\": {}\n },\n \"required\": false,\n \"optional\": false,\n \"docs\": {\n \"tags\": [],\n \"text\": \"The presence of this attribute removes the background color (only for mercury)\"\n },\n \"attribute\": \"no-background\",\n \"reflect\": true,\n \"defaultValue\": \"false\"\n },\n \"noPadding\": {\n \"type\": \"boolean\",\n \"mutable\": false,\n \"complexType\": {\n \"original\": \"boolean\",\n \"resolved\": \"boolean\",\n \"references\": {}\n },\n \"required\": false,\n \"optional\": false,\n \"docs\": {\n \"tags\": [],\n \"text\": \"The presence of this attribute removes each tab .container padding\"\n },\n \"attribute\": \"no-padding\",\n \"reflect\": false,\n \"defaultValue\": \"false\"\n }\n };\n }\n static get states() {\n return {\n \"activeTab\": {}\n };\n }\n static get methods() {\n return {\n \"setActiveTab\": {\n \"complexType\": {\n \"signature\": \"(tab: string) => Promise<void>\",\n \"parameters\": [{\n \"name\": \"tab\",\n \"type\": \"string\",\n \"docs\": \"\"\n }],\n \"references\": {\n \"Promise\": {\n \"location\": \"global\",\n \"id\": \"global::Promise\"\n }\n },\n \"return\": \"Promise<void>\"\n },\n \"docs\": {\n \"text\": \"\",\n \"tags\": []\n }\n },\n \"setFirstActiveTab\": {\n \"complexType\": {\n \"signature\": \"() => Promise<void>\",\n \"parameters\": [],\n \"references\": {\n \"Promise\": {\n \"location\": \"global\",\n \"id\": \"global::Promise\"\n }\n },\n \"return\": \"Promise<void>\"\n },\n \"docs\": {\n \"text\": \"Sets the first tab that is not disabled and hidden as the active tab\",\n \"tags\": []\n }\n }\n };\n }\n static get elementRef() { return \"el\"; }\n static get listeners() {\n return [{\n \"name\": \"tabActivated\",\n \"method\": \"tabActivatedHandler\",\n \"target\": undefined,\n \"capture\": false,\n \"passive\": false\n }];\n }\n}\n//# sourceMappingURL=tabs.js.map\n"],"mappings":"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"}