@ukic/web-components 3.6.0 → 3.7.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (115) hide show
  1. package/README.md +2 -1
  2. package/dist/cjs/core.cjs.js +1 -1
  3. package/dist/cjs/ic-button_3.cjs.entry.js +1 -1
  4. package/dist/cjs/ic-button_3.cjs.entry.js.map +1 -1
  5. package/dist/cjs/ic-input-component-container_3.cjs.entry.js +39 -47
  6. package/dist/cjs/ic-input-component-container_3.cjs.entry.js.map +1 -1
  7. package/dist/cjs/ic-navigation-item.cjs.entry.js +3 -10
  8. package/dist/cjs/ic-navigation-item.cjs.entry.js.map +1 -1
  9. package/dist/cjs/ic-search-bar.cjs.entry.js +2 -2
  10. package/dist/cjs/ic-search-bar.cjs.entry.js.map +1 -1
  11. package/dist/cjs/ic-select.cjs.entry.js +2 -2
  12. package/dist/cjs/ic-select.cjs.entry.js.map +1 -1
  13. package/dist/cjs/ic-side-navigation.cjs.entry.js +2 -2
  14. package/dist/cjs/ic-side-navigation.cjs.entry.js.map +1 -1
  15. package/dist/cjs/ic-toggle-button-group.cjs.entry.js +15 -4
  16. package/dist/cjs/ic-toggle-button-group.cjs.entry.js.map +1 -1
  17. package/dist/cjs/ic-toggle-button.cjs.entry.js +13 -4
  18. package/dist/cjs/ic-toggle-button.cjs.entry.js.map +1 -1
  19. package/dist/cjs/loader.cjs.js +1 -1
  20. package/dist/collection/components/ic-checkbox-group/ic-checkbox-group.stories.js +5 -3
  21. package/dist/collection/components/ic-loading-indicator/ic-loading-indicator.css +5 -0
  22. package/dist/collection/components/ic-menu/ic-menu.js +108 -47
  23. package/dist/collection/components/ic-menu/ic-menu.js.map +1 -1
  24. package/dist/collection/components/ic-navigation-item/ic-navigation-item.js +3 -10
  25. package/dist/collection/components/ic-navigation-item/ic-navigation-item.js.map +1 -1
  26. package/dist/collection/components/ic-radio-group/ic-radio-group.stories.js +5 -3
  27. package/dist/collection/components/ic-search-bar/ic-search-bar.js +2 -2
  28. package/dist/collection/components/ic-search-bar/ic-search-bar.js.map +1 -1
  29. package/dist/collection/components/ic-select/ic-select.js +2 -2
  30. package/dist/collection/components/ic-select/ic-select.js.map +1 -1
  31. package/dist/collection/components/ic-select/ic-select_(multi).stories.js +7 -5
  32. package/dist/collection/components/ic-select/ic-select_(searchable).stories.js +7 -5
  33. package/dist/collection/components/ic-select/ic-select_(single).stories.js +7 -5
  34. package/dist/collection/components/ic-side-navigation/ic-side-navigation.js +2 -2
  35. package/dist/collection/components/ic-side-navigation/ic-side-navigation.js.map +1 -1
  36. package/dist/collection/components/ic-side-navigation/ic-side-navigation.stories.js +31 -4
  37. package/dist/collection/components/ic-text-field/ic-text-field.stories.js +5 -10
  38. package/dist/collection/components/ic-toggle-button/ic-toggle-button.css +17 -0
  39. package/dist/collection/components/ic-toggle-button/ic-toggle-button.js +32 -3
  40. package/dist/collection/components/ic-toggle-button/ic-toggle-button.js.map +1 -1
  41. package/dist/collection/components/ic-toggle-button/ic-toggle-button.stories.js +7 -0
  42. package/dist/collection/components/ic-toggle-button-group/ic-toggle-button-group.css +7 -0
  43. package/dist/collection/components/ic-toggle-button-group/ic-toggle-button-group.js +36 -3
  44. package/dist/collection/components/ic-toggle-button-group/ic-toggle-button-group.js.map +1 -1
  45. package/dist/collection/components/ic-toggle-button-group/ic-toggle-button-group.stories.js +17 -0
  46. package/dist/components/ic-loading-indicator2.js +1 -1
  47. package/dist/components/ic-loading-indicator2.js.map +1 -1
  48. package/dist/components/ic-menu2.js +42 -47
  49. package/dist/components/ic-menu2.js.map +1 -1
  50. package/dist/components/ic-navigation-item.js +3 -10
  51. package/dist/components/ic-navigation-item.js.map +1 -1
  52. package/dist/components/ic-search-bar.js +2 -2
  53. package/dist/components/ic-search-bar.js.map +1 -1
  54. package/dist/components/ic-select.js +2 -2
  55. package/dist/components/ic-select.js.map +1 -1
  56. package/dist/components/ic-side-navigation.js +2 -2
  57. package/dist/components/ic-side-navigation.js.map +1 -1
  58. package/dist/components/ic-tab-panel.js.map +1 -1
  59. package/dist/components/ic-text-field.js.map +1 -1
  60. package/dist/components/ic-toggle-button-group.js +17 -4
  61. package/dist/components/ic-toggle-button-group.js.map +1 -1
  62. package/dist/components/ic-toggle-button.js +14 -4
  63. package/dist/components/ic-toggle-button.js.map +1 -1
  64. package/dist/core/core.esm.js +1 -1
  65. package/dist/core/core.esm.js.map +1 -1
  66. package/dist/core/{p-7b9e10a0.entry.js → p-018eaee0.entry.js} +2 -2
  67. package/dist/core/p-018eaee0.entry.js.map +1 -0
  68. package/dist/core/{p-57309502.entry.js → p-02132a4c.entry.js} +2 -2
  69. package/dist/core/p-02132a4c.entry.js.map +1 -0
  70. package/dist/core/{p-4935b899.entry.js → p-152ddde9.entry.js} +2 -2
  71. package/dist/core/{p-4935b899.entry.js.map → p-152ddde9.entry.js.map} +1 -1
  72. package/dist/core/{p-b730963a.entry.js → p-182b7037.entry.js} +2 -2
  73. package/dist/core/p-182b7037.entry.js.map +1 -0
  74. package/dist/core/p-543b90c5.entry.js +2 -0
  75. package/dist/core/p-543b90c5.entry.js.map +1 -0
  76. package/dist/core/p-6b52e47f.entry.js +2 -0
  77. package/dist/core/p-6b52e47f.entry.js.map +1 -0
  78. package/dist/core/{p-e29ba8bd.entry.js → p-ab1103e1.entry.js} +2 -2
  79. package/dist/core/p-ab1103e1.entry.js.map +1 -0
  80. package/dist/core/{p-cd42b7c0.entry.js → p-d85b438a.entry.js} +2 -2
  81. package/dist/core/{p-cd42b7c0.entry.js.map → p-d85b438a.entry.js.map} +1 -1
  82. package/dist/esm/core.js +1 -1
  83. package/dist/esm/ic-button_3.entry.js +1 -1
  84. package/dist/esm/ic-button_3.entry.js.map +1 -1
  85. package/dist/esm/ic-input-component-container_3.entry.js +39 -47
  86. package/dist/esm/ic-input-component-container_3.entry.js.map +1 -1
  87. package/dist/esm/ic-navigation-item.entry.js +3 -10
  88. package/dist/esm/ic-navigation-item.entry.js.map +1 -1
  89. package/dist/esm/ic-search-bar.entry.js +2 -2
  90. package/dist/esm/ic-search-bar.entry.js.map +1 -1
  91. package/dist/esm/ic-select.entry.js +2 -2
  92. package/dist/esm/ic-select.entry.js.map +1 -1
  93. package/dist/esm/ic-side-navigation.entry.js +2 -2
  94. package/dist/esm/ic-side-navigation.entry.js.map +1 -1
  95. package/dist/esm/ic-toggle-button-group.entry.js +15 -4
  96. package/dist/esm/ic-toggle-button-group.entry.js.map +1 -1
  97. package/dist/esm/ic-toggle-button.entry.js +13 -4
  98. package/dist/esm/ic-toggle-button.entry.js.map +1 -1
  99. package/dist/esm/loader.js +1 -1
  100. package/dist/types/components/ic-menu/ic-menu.d.ts +12 -4
  101. package/dist/types/components/ic-toggle-button/ic-toggle-button.d.ts +4 -0
  102. package/dist/types/components/ic-toggle-button-group/ic-toggle-button-group.d.ts +5 -0
  103. package/dist/types/components.d.ts +19 -0
  104. package/hydrate/index.js +82 -72
  105. package/hydrate/index.mjs +82 -72
  106. package/package.json +2 -2
  107. package/vscode-data.json +8 -0
  108. package/dist/core/p-57309502.entry.js.map +0 -1
  109. package/dist/core/p-7b9e10a0.entry.js.map +0 -1
  110. package/dist/core/p-9caa9e7b.entry.js +0 -2
  111. package/dist/core/p-9caa9e7b.entry.js.map +0 -1
  112. package/dist/core/p-b730963a.entry.js.map +0 -1
  113. package/dist/core/p-d7c8f10d.entry.js +0 -2
  114. package/dist/core/p-d7c8f10d.entry.js.map +0 -1
  115. package/dist/core/p-e29ba8bd.entry.js.map +0 -1
@@ -0,0 +1,2 @@
1
+ import{r as i,h as t,H as e,g as s,c as n,F as c}from"./p-8e4e97b4.js";import{r as o,a as r,t as a,L as l,U as h,X as u,b as d,J as p}from"./p-70abcb2b.js";import{C as m}from"./p-c2e091d7.js";import{c as f}from"./p-68a5aaff.js";const b="ic-input-component-container{display:flex;border:var(--ic-border-width) solid\n var(--border-color, var(--ic-architectural-400));border-radius:var(--ic-border-radius);transition:var(--ic-easing-transition-slow);height:2.5rem;min-height:2.5rem;width:var(--input-width, 20rem);padding:var(--ic-space-1px);background-color:var(--input-bg-color, var(--ic-color-background-primary));box-sizing:border-box;fill:var(--ic-architectural-400);outline:none}ic-input-component-container.ic-input-component-container-full-width{width:100%}ic-input-component-container.ic-input-component-container-disabled,ic-input-component-container.ic-input-component-container-disabled:hover{border:var(--ic-border-width) dashed\n var(--border-color-disabled, var(--ic-color-border-neutral-disabled))}ic-input-component-container.ic-input-component-container-readonly,ic-input-component-container.ic-input-component-container-small.ic-input-component-container-readonly,ic-input-component-container.ic-input-component-container-large.ic-input-component-container-readonly{height:auto;background:transparent}ic-input-component-container.ic-input-component-container-readonly,ic-input-component-container.ic-input-component-container-readonly:hover{border:none;padding:0}ic-input-component-container.ic-input-component-container-error{border:var(--ic-space-xxxs) solid\n var(--border-color-error, var(--ic-color-border-error));padding:0}ic-input-component-container.ic-input-component-container-error:hover{border:var(--ic-space-xxxs) solid\n var(--border-color-error-hover, var(--ic-color-border-error-hover))}ic-input-component-container.ic-input-component-container-error:focus-within{border:var(--ic-space-xxxs) solid\n var(--border-color-error-pressed, var(--ic-color-border-error-pressed))}ic-input-component-container.ic-input-component-container-warning{border:var(--ic-space-xxxs) solid\n var(--border-color-warning, var(--ic-color-border-warning));padding:0}ic-input-component-container.ic-input-component-container-warning:hover{border:var(--ic-space-xxxs) solid\n var(--border-color-warning-hover, var(--ic-color-border-warning-hover))}ic-input-component-container.ic-input-component-container-warning:focus-within{border:var(--ic-space-xxxs) solid\n var(--border-color-warning-pressed, var(--ic-color-border-warning-pressed))}ic-input-component-container.ic-input-component-container-success{border:var(--ic-space-xxxs) solid\n var(--border-color-success, var(--ic-color-border-success));padding:0}ic-input-component-container.ic-input-component-container-success:hover{border:var(--ic-space-xxxs) solid\n var(--border-color-success-hover, var(--ic-color-border-success-hover))}ic-input-component-container.ic-input-component-container-success:focus-within{border:var(--ic-space-xxxs) solid\n var(--border-color-success-pressed, var(--ic-color-border-success-pressed))}ic-input-component-container.ic-input-component-container-small{height:var(--ic-space-xl);min-height:var(--ic-space-xl)}ic-input-component-container.ic-input-component-container-large{height:var(--ic-space-xxl);min-height:var(--ic-space-xxl)}ic-input-component-container.ic-input-component-container-multiline{height:auto}ic-input-component-container .icon-container{margin-top:var(--ic-space-xxs);margin-left:0.438rem;display:flex;align-items:center}ic-input-component-container.ic-input-component-container-multiline .icon-container,ic-input-component-container.ic-input-component-container-multiline.ic-input-component-container-small .icon-container{margin-top:0.375rem;display:block}ic-input-component-container.ic-input-component-container-readonly .icon-container{margin-left:-0.313rem}ic-input-component-container.ic-input-component-container-disabled ::-moz-placeholder{display:none}ic-input-component-container.ic-input-component-container-disabled ::placeholder{display:none}ic-input-component-container .inline-success{margin:var(--ic-space-xs) 0.375rem;display:flex;align-items:center}ic-input-component-container .inline-success>svg{fill:var(--ic-input-component-container-success-icon-inline-color);height:1.25rem;width:1.25rem}ic-input-component-container:hover{border:var(--ic-input-component-container-hover-border);border-color:var(--border-color-hover, var(--ic-color-border-neutral-hover));color:var(--ic-action-monochrome-hover-dark)}ic-input-component-container:focus{border:var(--ic-border-pressed);border-color:var(\n --border-color-pressed,\n var(--ic-color-border-neutral-pressed)\n )}.focus-indicator{display:flex;width:100%;margin:-0.125rem;padding:0.125rem;border-radius:var(--ic-border-radius);transition:var(--ic-easing-transition-fast)}.focus-indicator:focus-within,.focus-indicator-enabled{box-shadow:var(--ic-border-focus)}.focus-indicator.ic-input-component-container-dark:focus-within{box-shadow:var(--ic-border-focus)}@media (forced-colors: active){ic-input-component-container,.focus-indicator{transition:none}ic-input-component-container:focus-within{border:var(--ic-border-width) solid Highlight;outline:0.125rem solid Highlight}ic-input-component-container.ic-input-component-container-disabled,ic-input-component-container.ic-input-component-container-disabled:hover{border:var(--ic-border-width) dashed GrayText}}";const v=b;const g=class{constructor(t){i(this,t);this.disabled=false;this.fullWidth=false;this.multiLine=false;this.readonly=false;this.size="medium";this.validationInline=false;this.validationStatus=""}watchDisabledHandler(){o(this.disabled,this.el)}componentWillLoad(){o(this.disabled,this.el)}componentDidLoad(){this.hostMutationObserver=new MutationObserver((i=>r(i,"left-icon",this)));this.hostMutationObserver.observe(this.el,{childList:true})}render(){const{size:i,validationStatus:s,disabled:n,readonly:c,multiLine:o,fullWidth:r,validationInline:u}=this;return t(e,{key:"fc70461ae7d3922f07aa5a85209e376d42bfc451",class:{[`ic-input-component-container-${i}`]:true,[`ic-input-component-container-${s}`]:s!==""&&!n&&!c,"ic-input-component-container-disabled":!!n,"ic-input-component-container-readonly":!!c,"ic-input-component-container-multiline":!!o,"ic-input-component-container-full-width":!!r},"aria-disabled":n?"true":null},t("div",{key:"20934b81740e6c907bff86cc706d3aafe3a790df",class:"focus-indicator"},a(this.el,"left-icon")&&t("div",{key:"3577416fc719a575372188c43a78ac945b1b1526",class:"icon-container"},t("slot",{key:"36ee3e5c85ec77c69f88c2b74d272bdb6ee42ca1",name:"left-icon"})),t("slot",{key:"e0a79f50c8ba34c0d989e2402df8b00587c5878f"}),u&&s===l.Success&&t("span",{key:"b156fb5bb6fcfec8c6dec6febdeea6d2adc7e009",class:"inline-success",innerHTML:h})))}get el(){return s(this)}static get watchers(){return{disabled:["watchDisabledHandler"]}}};g.style=v;const x="ic-input-container .component-container{display:flex;flex-direction:column}";const y=x;const w=class{constructor(t){i(this,t);this.disabled=false;this.readonly=false}render(){return t(e,{key:"49cd31d8dca09cc4b2f49e0b2e7829bb1771a5d6"},t("div",{key:"bb0e3a80161a86b40e0dc424264e71cf6c95c88a",class:{["component-container"]:true,["disabled"]:!!this.disabled,["readonly"]:!!this.readonly}},t("slot",{key:"4916ff0aebd6632d6e6f5daaa3c318e1e696ff2f"})))}};w.style=y;const k='html.sc-ic-menu{line-height:1.15;-webkit-text-size-adjust:100%}body.sc-ic-menu{margin:0}main.sc-ic-menu{display:block}h1.sc-ic-menu{font-size:2em;margin:0.67em 0}hr.sc-ic-menu{box-sizing:content-box;height:0;overflow:visible}pre.sc-ic-menu{font-family:monospace, monospace;font-size:1em}a.sc-ic-menu{background-color:transparent}abbr[title].sc-ic-menu{border-bottom:none;text-decoration:underline;-webkit-text-decoration:underline dotted;text-decoration:underline dotted}b.sc-ic-menu,strong.sc-ic-menu{font-weight:bolder}code.sc-ic-menu,kbd.sc-ic-menu,samp.sc-ic-menu{font-family:monospace, monospace;font-size:1em}small.sc-ic-menu{font-size:80%}sub.sc-ic-menu,sup.sc-ic-menu{font-size:75%;line-height:0;position:relative;vertical-align:baseline}sub.sc-ic-menu{bottom:-0.25em}sup.sc-ic-menu{top:-0.5em}img.sc-ic-menu{border-style:none}button.sc-ic-menu,input.sc-ic-menu,optgroup.sc-ic-menu,select.sc-ic-menu,textarea.sc-ic-menu{font-family:inherit;font-size:100%;line-height:1.15;margin:0}button.sc-ic-menu,input.sc-ic-menu{overflow:visible}button.sc-ic-menu,select.sc-ic-menu{text-transform:none}button.sc-ic-menu,[type="button"].sc-ic-menu,[type="reset"].sc-ic-menu,[type="submit"].sc-ic-menu{-webkit-appearance:button}button.sc-ic-menu::-moz-focus-inner,[type="button"].sc-ic-menu::-moz-focus-inner,[type="reset"].sc-ic-menu::-moz-focus-inner,[type="submit"].sc-ic-menu::-moz-focus-inner{border-style:none;padding:0}button.sc-ic-menu:-moz-focusring,[type="button"].sc-ic-menu:-moz-focusring,[type="reset"].sc-ic-menu:-moz-focusring,[type="submit"].sc-ic-menu:-moz-focusring{outline:1px dotted ButtonText}fieldset.sc-ic-menu{padding:0.35em 0.75em 0.625em}legend.sc-ic-menu{box-sizing:border-box;color:inherit;display:table;max-width:100%;padding:0;white-space:normal}progress.sc-ic-menu{vertical-align:baseline}textarea.sc-ic-menu{overflow:auto}[type="checkbox"].sc-ic-menu,[type="radio"].sc-ic-menu{box-sizing:border-box;padding:0}[type="number"].sc-ic-menu::-webkit-inner-spin-button,[type="number"].sc-ic-menu::-webkit-outer-spin-button{height:auto}[type="search"].sc-ic-menu{-webkit-appearance:textfield;outline-offset:-2px}[type="search"].sc-ic-menu::-webkit-search-decoration{-webkit-appearance:none}.sc-ic-menu::-webkit-file-upload-button{-webkit-appearance:button;font:inherit}details.sc-ic-menu{display:block}summary.sc-ic-menu{display:list-item}template.sc-ic-menu{display:none}[hidden].sc-ic-menu{display:none}html.sc-ic-menu,body.sc-ic-menu,div.sc-ic-menu,span.sc-ic-menu,applet.sc-ic-menu,object.sc-ic-menu,iframe.sc-ic-menu,h1.sc-ic-menu,h2.sc-ic-menu,h3.sc-ic-menu,h4.sc-ic-menu,h5.sc-ic-menu,h6.sc-ic-menu,p.sc-ic-menu,blockquote.sc-ic-menu,pre.sc-ic-menu,a.sc-ic-menu,abbr.sc-ic-menu,acronym.sc-ic-menu,address.sc-ic-menu,big.sc-ic-menu,cite.sc-ic-menu,code.sc-ic-menu,del.sc-ic-menu,dfn.sc-ic-menu,em.sc-ic-menu,img.sc-ic-menu,ins.sc-ic-menu,kbd.sc-ic-menu,q.sc-ic-menu,s.sc-ic-menu,samp.sc-ic-menu,small.sc-ic-menu,strike.sc-ic-menu,strong.sc-ic-menu,sub.sc-ic-menu,sup.sc-ic-menu,tt.sc-ic-menu,var.sc-ic-menu,b.sc-ic-menu,u.sc-ic-menu,i.sc-ic-menu,center.sc-ic-menu,dl.sc-ic-menu,dt.sc-ic-menu,dd.sc-ic-menu,ol.sc-ic-menu,ul.sc-ic-menu,li.sc-ic-menu,fieldset.sc-ic-menu,form.sc-ic-menu,label.sc-ic-menu,legend.sc-ic-menu,table.sc-ic-menu,caption.sc-ic-menu,tbody.sc-ic-menu,tfoot.sc-ic-menu,thead.sc-ic-menu,tr.sc-ic-menu,th.sc-ic-menu,td.sc-ic-menu,article.sc-ic-menu,aside.sc-ic-menu,canvas.sc-ic-menu,details.sc-ic-menu,embed.sc-ic-menu,figure.sc-ic-menu,figcaption.sc-ic-menu,footer.sc-ic-menu,header.sc-ic-menu,hgroup.sc-ic-menu,menu.sc-ic-menu,nav.sc-ic-menu,output.sc-ic-menu,ruby.sc-ic-menu,section.sc-ic-menu,summary.sc-ic-menu,time.sc-ic-menu,mark.sc-ic-menu,audio.sc-ic-menu,video.sc-ic-menu{margin:0;padding:0;border:0;font-size:100%;font-style:inherit;vertical-align:baseline}@media (prefers-reduced-motion: no-preference){.ic-menu-open.sc-ic-menu-h .menu.sc-ic-menu{transition:max-height var(--ic-transition-duration-slow)}}.sc-ic-menu-h{max-height:0;width:var(--menu-width, var(--input-width, 20rem));color:var(--menu-item-text-color, var(--ic-menu-list-option-text-color));--ic-typography-color:var(\n --menu-item-text-color,\n var(--ic-menu-list-option-text-color)\n );background-color:var(\n --menu-bg-color,\n var(--ic-menu-list-option-background-color)\n );position:relative;z-index:var(--ic-z-index-menu);box-sizing:border-box;box-shadow:var(--ic-elevation-overlay);border-radius:var(--ic-border-radius)}.ic-menu-open.sc-ic-menu-h:not(.ic-menu-no-focus):focus-within{box-shadow:var(--ic-border-focus);outline:var(--ic-hc-focus-outline)}.ic-select-select-all-focused.sc-ic-menu-h{box-shadow:var(--ic-elevation-overlay) !important}#retry-button.sc-ic-menu::part(button){height:var(--ic-space-lg)}.small.sc-ic-menu #retry-button.sc-ic-menu::part(button){height:var(--ic-space-md)}.on-dialog.sc-ic-menu-h{inset:auto !important}.menu.sc-ic-menu{text-decoration:none;list-style-type:none;border-radius:1px;background-color:var(\n --menu-bg-color,\n var(--ic-menu-list-option-background-color)\n );visibility:hidden;max-height:0;overflow-y:hidden}.menu.sc-ic-menu:has(+.option-bar).sc-ic-menu{border-radius:0 0 1px 1px}.menu-scroll.sc-ic-menu{overflow-y:auto}.menu.sc-ic-menu:focus-visible{outline:none}.ic-menu-open.sc-ic-menu-h{max-height:none;display:flex;flex-direction:column-reverse;border:var(--ic-border-width) solid\n var(--menu-border-color, var(--ic-menu-border-color));transition:box-shadow var(--ic-easing-transition-fast)}.ic-menu-open.sc-ic-menu-h .menu.sc-ic-menu{visibility:visible;max-height:calc(var(--ic-space-xl) * 10 + var(--ic-space-xxxs))}.ic-menu-open.sc-ic-menu-h .option-bar.sc-ic-menu{visibility:visible}.ic-menu-open.sc-ic-menu-h .select-all-button.sc-ic-menu{display:block}.ic-menu-full-width.sc-ic-menu-h{width:100%}.option.sc-ic-menu{padding:var(--ic-space-xs) calc(var(--ic-space-xs) - var(--ic-space-1px));cursor:pointer;display:flex;align-items:center}.loading-option.sc-ic-menu p.sc-ic-menu{margin-bottom:0 !important}.option.sc-ic-menu:not(.loading-option){justify-content:space-between}.ic-menu-small.sc-ic-menu-h .option.sc-ic-menu{padding:var(--ic-space-xxs) calc(var(--ic-space-xs) - var(--ic-space-1px))}.ic-menu-large.sc-ic-menu-h .option.sc-ic-menu{padding:var(--ic-space-sm) calc(var(--ic-space-xs) - var(--ic-space-1px))}.option.sc-ic-menu:last-child{border-radius:0 0 1px 1px}.sc-ic-menu:not(.menu:has(+.option-bar)).sc-ic-menu .option.sc-ic-menu:first-child{border-radius:1px 1px 0 0}.option.sc-ic-menu:not(.disabled-option):hover{background-color:var(--ic-menu-list-option-hover-background-color)}.option.sc-ic-menu:not(.disabled-option):active{background-color:var(--ic-menu-list-option-pressed-background-color)}.option.sc-ic-menu:focus-visible{outline:var(--ic-hc-focus-outline)}.option.sc-ic-menu:not(.disabled-option) .option-description.sc-ic-menu{--ic-typography-color:var(\n --menu-item-desc-text-color,\n var(--ic-menu-list-option-description-text-color)\n )}.option.sc-ic-menu .option-label.sc-ic-menu{display:flex;flex-direction:row;align-items:top}.option.sc-ic-menu .option-label.sc-ic-menu ic-typography.sc-ic-menu{max-width:100%;word-wrap:break-word}.option.sc-ic-menu .option-element.sc-ic-menu{margin-top:var(--ic-space-xxs)}.option.sc-ic-menu .option-icon.sc-ic-menu{height:var(--ic-space-md);width:var(--ic-space-md);margin-top:var(--ic-space-xxs);margin-right:var(--ic-space-xxxs)}.option-text-container.sc-ic-menu{pointer-events:none;width:100%}.option-text-container.show-check-icon.sc-ic-menu{width:calc(var(--ic-space-lg) * 10 + var(--ic-space-xl))}.option.loading-option.sc-ic-menu .option-text-container.sc-ic-menu{margin-left:calc(var(--ic-space-xs) + var(--ic-space-xxxs));color:var(--ic-menu-loading-list-option-text-color);--ic-typography-color:var(--ic-menu-loading-list-option-text-color)}.error-icon-svg.sc-ic-menu{height:var(--ic-space-md);width:var(--ic-space-md);fill:var(--ic-atoms-status-icon-error);align-self:center;display:flex;margin-right:calc(var(--ic-space-xxs) * 1.2)}.loading-error-info.sc-ic-menu{display:flex}.check-icon.sc-ic-menu{height:var(--ic-space-lg);min-width:var(--ic-space-lg);width:var(--ic-space-lg);margin-left:var(--ic-space-xs);pointer-events:none}.focused-option.sc-ic-menu .check-icon.sc-ic-menu *.sc-ic-menu{fill:currentcolor}.option-group-title.sc-ic-menu{padding:var(--ic-space-lg) calc(var(--ic-space-xs) - var(--ic-space-1px))\n var(--ic-space-xs);--ic-typography-color:var(--ic-menu-option-group-label-text-color)}.ic-menu-small.sc-ic-menu-h .option-group-title.sc-ic-menu{padding:var(--ic-space-sm) calc(var(--ic-space-xs) - var(--ic-space-1px))\n var(--ic-space-xxs)}.last-recommended-option.sc-ic-menu{border-bottom:var(--ic-menu-last-recommended-option-border)}.disabled-option.sc-ic-menu{color:var(--ic-atoms-list-option-text-disabled-light);--ic-typography-color:var(--ic-atoms-list-option-text-disabled-light);cursor:default;pointer-events:none}.focused-option.sc-ic-menu,.focused-option.sc-ic-menu .option-description.sc-ic-menu{background-color:var(--ic-color-focus-inner) !important;color:var(--ic-atoms-list-option-text-focused-light) !important;--ic-typography-color:var(\n --ic-atoms-list-option-text-focused-light\n ) !important}.no-results.sc-ic-menu-h li.sc-ic-menu{cursor:no-drop}.no-results.sc-ic-menu-h li.sc-ic-menu:hover{background-color:transparent}.option-bar.sc-ic-menu{padding:var(--ic-space-xxs) var(--ic-space-xs);display:flex;align-items:center;justify-content:space-between;background-color:var(--ic-menu-option-bar-background-color);visibility:hidden;border-bottom:var(--ic-border-width) solid\n var(--ic-menu-option-bar-divider-color);border-radius:1px 1px 0 0}.option-bar.sc-ic-menu p.sc-ic-menu{margin-bottom:0 !important}.ic-menu-large.sc-ic-menu-h .option-bar.sc-ic-menu{padding:var(--ic-space-xs)}.select-all-button.sc-ic-menu{display:none}.select-all-button.sc-ic-menu:focus{z-index:calc(var(--ic-z-index-menu) + 1)}@media (forced-colors: active){.focused-option.sc-ic-menu:focus{outline:none;border:0.125rem solid transparent}.disabled-option.sc-ic-menu{color:GrayText;--ic-typography-color:GrayText}}';const z=k;const L=class{constructor(e){i(this,e);this.icClear=n(this,"icClear",7);this.menuKeyPress=n(this,"menuKeyPress",7);this.menuOptionId=n(this,"menuOptionId",7);this.menuOptionSelect=n(this,"menuOptionSelect",7);this.menuOptionSelectAll=n(this,"menuOptionSelectAll",7);this.menuStateChange=n(this,"menuStateChange",7);this.retryButtonClicked=n(this,"retryButtonClicked",7);this.timeoutBlur=n(this,"timeoutBlur",7);this.ungroupedOptionsSet=n(this,"ungroupedOptionsSet",7);this.ACTIVE_DESCENDANT="aria-activedescendant";this.CLEAR_BUTTON_ID="clear-button";this.SEARCH_BAR_TAG="IC-SEARCH-BAR";this.disabledOptionSelected=false;this.hasPreviouslyBlurred=false;this.hasTimedOut=false;this.isLoading=false;this.lastOptionSelected=null;this.lastOptionFocused=null;this.multiOptionClicked=null;this.preventClickOpen=false;this.preventMenuFocus=false;this.shiftPressed=false;this.ungroupedOptions=[];this.focusFromSearchKeypress=false;this.initialOptionsListRender=false;this.keyboardNav=false;this.preventIncorrectTabOrder=false;this.popperProps={};this.activationType="automatic";this.autofocusOnSelected=true;this.closeOnSelect=true;this.fullWidth=false;this.labelField="label";this.multiSelect=false;this.searchableSelect=false;this.searchBar=false;this.searchMode="navigation";this.selectOnEnter=false;this.size="medium";this.valueField="value";this.handleClearListener=()=>{this.optionHighlighted=""};this.handleSubmitSearch=()=>{const i=this.options.findIndex((i=>i[this.valueField]===this.optionHighlighted));this.setInputValue(i)};this.handleMenuChange=(i,t)=>{var e;this.menuStateChange.emit({open:i,focusInput:t});if(!i){if(t!==false){(e=this.inputEl)===null||e===void 0?void 0:e.focus();this.preventClickOpen=false}if(this.multiSelect){this.optionHighlighted=undefined;this.multiOptionClicked=null}}};this.setNextOptionValue=i=>{if(this.ungroupedOptions[i+1]){this.menuOptionSelect.emit({value:this.ungroupedOptions[i+1][this.valueField],optionId:this.getOptionId(this.ungroupedOptions[i+1][this.valueField])})}else{this.menuOptionSelect.emit({value:this.ungroupedOptions[0][this.valueField],optionId:this.getOptionId(this.ungroupedOptions[0][this.valueField])})}};this.setPreviousOptionValue=i=>{if(this.ungroupedOptions[i-1]){this.menuOptionSelect.emit({value:this.ungroupedOptions[i-1][this.valueField],optionId:this.getOptionId(this.ungroupedOptions[i-1][this.valueField])})}else{this.menuOptionSelect.emit({value:this.ungroupedOptions[this.ungroupedOptions.length-1][this.valueField],optionId:this.getOptionId(this.ungroupedOptions[this.ungroupedOptions.length-1][this.valueField])})}};this.arrowBehaviour=i=>{i.preventDefault();this.handleMenuChange(true)};this.getMenuOptions=()=>this.searchBar?this.options:this.ungroupedOptions;this.setHighlightedOption=i=>{const t=this.getMenuOptions();t[i]&&!t[i].timedOut&&(this.optionHighlighted=t[i][this.valueField]||undefined)};this.autoSetInputValueKeyboardOpen=i=>{const t=this.ungroupedOptions.findIndex((i=>i[this.valueField]===this.value));this.keyboardNav=false;switch(i.key){case"ArrowDown":this.keyboardNav=true;this.arrowBehaviour(i);this.setNextOptionValue(t);break;case"ArrowUp":this.keyboardNav=true;this.arrowBehaviour(i);this.setPreviousOptionValue(t);break;case" ":case"Enter":if(i.target.id!==this.CLEAR_BUTTON_ID){this.handleMenuChange(true)}break}};this.selectHighlightedOption=(i,t)=>{if(!this.isLoading&&!this.hasTimedOut){this.keyboardNav=true}const e=this.searchBar||this.searchableSelect||this.open;if(e){if(t>=0){if(i[t]!==undefined){if(this.searchBar&&i[t].disabled===true){this.disabledOptionSelected=true}else{this.setInputValue(t)}}}else{this.setInputValue(t)}}else{this.handleMenuChange(true)}};this.isOptionSelected=i=>{const t=this.getMenuOptions();return this.value?this.value.includes(t[i][this.valueField]):false};this.deselectSelectedOptions=i=>{const t=this.getMenuOptions();if(this.value){const e=this.value.map((i=>t.findIndex((t=>t[this.valueField]===i))));e.forEach((t=>!i.includes(t)&&this.setInputValue(t)))}};this.manualSetInputValueKeyboardOpen=i=>{const t=this.getMenuOptions();const e=i.shiftKey||i.metaKey||i.ctrlKey;const s=this.getOptionHighlightedIndex();const n=t.findIndex((i=>i[this.valueField]===this.multiOptionClicked));const c=i=>{var t;return(t=Array.from(this.host.querySelectorAll("li"))[i])===null||t===void 0?void 0:t.id};if(i.key===" "&&this.multiSelect){this.handleOptionSelect(i,s)}else{switch(i.key){case"ArrowDown":this.keyboardNav=true;this.arrowBehaviour(i);if(this.multiOptionClicked){this.setHighlightedOption(n);this.multiOptionClicked=null}else{this.handleSingleShiftSelect(i,s,t);if(s<t.length-1){this.setHighlightedOption(s+1);this.menuOptionId.emit({optionId:c(s+1)});this.handleSingleShiftSelect(i,s+1,t)}else{this.setHighlightedOption(0);this.menuOptionId.emit({optionId:c(0)});this.handleSingleShiftSelect(i,0,t)}if(this.multiSelect&&this.shiftPressed){this.deselectSelectedOptions([s,this.getOptionHighlightedIndex()]);this.shiftPressed=false}}this.lastOptionFocused=this.getOptionHighlightedIndex();this.preventIncorrectTabOrder=false;this.focusFromSearchKeypress=false;break;case"ArrowUp":this.keyboardNav=true;this.arrowBehaviour(i);if(this.multiOptionClicked){this.setHighlightedOption(n);this.multiOptionClicked=null}else{this.handleSingleShiftSelect(i,s,t);if(s<=0||s>t.length+1){this.setHighlightedOption(t.length-1);this.menuOptionId.emit({optionId:c(t.length-1)});this.handleSingleShiftSelect(i,t.length-1,t)}else{this.setHighlightedOption(s-1);this.menuOptionId.emit({optionId:c(s-1)});this.handleSingleShiftSelect(i,s-1,t)}if(this.multiSelect&&this.shiftPressed){this.deselectSelectedOptions([s,this.getOptionHighlightedIndex()]);this.shiftPressed=false}}this.lastOptionFocused=this.getOptionHighlightedIndex();this.preventIncorrectTabOrder=false;this.focusFromSearchKeypress=false;break;case"Home":{const t=0;this.keyboardNav=true;i.preventDefault();this.arrowBehaviour(i);this.setHighlightedOption(t);this.menuOptionId.emit({optionId:c(t)});if(i.shiftKey&&i.ctrlKey){this.handleMultipleShiftSelect(t)}this.lastOptionFocused=t;this.lastOptionSelected=t;break}case"End":{const e=t.length-1;this.keyboardNav=true;i.preventDefault();this.arrowBehaviour(i);this.setHighlightedOption(e);this.menuOptionId.emit({optionId:c(e)});if(i.shiftKey&&i.ctrlKey){this.handleMultipleShiftSelect(e)}this.lastOptionFocused=e;this.lastOptionSelected=e;break}case" ":if(!e){this.keyboardNav=false}if(this.searchBar||this.searchableSelect){break}else{if(i.target.id!==this.CLEAR_BUTTON_ID){this.handleMenuChange(true)}}break;case"Enter":i.preventDefault();if(!e){this.keyboardNav=false}this.handleOptionSelect(i,s);break;case"Escape":if(this.open){i.stopImmediatePropagation()}this.handleMenuChange(false);this.menuOptionId.emit({optionId:undefined});break;case"a":if(u()&&i.metaKey||!u()&&i.ctrlKey){this.emitSelectAllEvents();this.lastOptionFocused=null;this.lastOptionSelected=null}break;case"Shift":case"Tab":if(i.key==="Shift"){this.shiftPressed=true}if(this.searchBar){this.keyboardNav=true}if(this.multiSelect){if(this.open&&!i.shiftKey&&this.selectAllButton){i.preventDefault();this.selectAllButton.focus();this.preventMenuFocus=true;this.preventClickOpen=true;this.optionHighlighted=undefined}}else{this.preventIncorrectTabOrder=true}break;default:if(!e){this.keyboardNav=false}this.focusOnSearchOrSelectInput(t,s)}}};this.setInputValue=i=>{const t=this.getMenuOptions();if(t[i]!==undefined){this.menuOptionSelect.emit({value:t[i][this.valueField]});if(this.closeOnSelect){this.optionHighlighted=undefined;this.menuOptionId.emit({optionId:undefined})}}if(this.closeOnSelect){if(!this.hasTimedOut){this.handleMenuChange(false)}else{this.parentEl.setFocus()}}};this.handleOptionClick=i=>{const{value:t,label:e}=i.target.dataset;if(this.multiSelect){const e=this.getMenuOptions();const s=e.findIndex((i=>i.value===t));this.handleOptionSelect(i,s,true);this.multiOptionClicked=t||null}else{this.menuOptionSelect.emit({value:t,label:e});this.handleMenuChange(false)}this.optionHighlighted=undefined};this.handleRetry=()=>{this.retryButtonClicked.emit({value:this.value})};this.handleRetryKeyDown=i=>{if(i.key==="Enter"||i.key===" "){i.preventDefault();this.retryButtonClicked.emit({value:this.value,keyPressed:i.key})}};this.handleBlur=i=>{var t,e,s,n;if(i.relatedTarget!==this.inputEl){if(i.relatedTarget===this.selectAllButton){(t=this.menu)===null||t===void 0?void 0:t.removeAttribute(this.ACTIVE_DESCENDANT)}if(!(((e=this.menu)===null||e===void 0?void 0:e.contains(i.relatedTarget))||i.relatedTarget===this.selectAllButton)){this.handleMenuChange(false,this.hasPreviouslyBlurred);(s=this.menu)===null||s===void 0?void 0:s.removeAttribute(this.ACTIVE_DESCENDANT);this.lastOptionFocused=null;this.lastOptionSelected=null}}else{this.handleMenuChange(false);this.preventClickOpen=true;(n=this.menu)===null||n===void 0?void 0:n.removeAttribute(this.ACTIVE_DESCENDANT);this.lastOptionFocused=null;this.lastOptionSelected=null}if(!this.searchBar)this.hasPreviouslyBlurred=!!i.relatedTarget};this.handleMouseDown=i=>{i.preventDefault()};this.handleMenuKeyDown=i=>{if(this.activationType==="automatic"){this.autoSetValueOnMenuKeyDown(i)}else if(this.activationType==="manual"&&!this.searchBar){this.manualSetInputValueKeyboardOpen(i)}};this.handleMenuKeyUp=i=>{if(i.key==="Tab"&&i.shiftKey){this.preventClickOpen=false}if(i.key==="Enter"&&this.disabledOptionSelected){this.disabledOptionSelected=false;i.stopImmediatePropagation()}if(i.key==="Shift"){this.shiftPressed=false}};this.handleSelectAllClick=()=>{var i;this.keyboardNav=false;(i=this.menu)===null||i===void 0?void 0:i.focus();this.emitSelectAllEvents();this.lastOptionFocused=null;this.lastOptionSelected=null};this.handleSelectAllBlur=i=>{var t;this.host.classList.remove("ic-select-select-all-focused");if(!((t=this.menu)===null||t===void 0?void 0:t.contains(i.relatedTarget))){this.handleMenuChange(false,false)}};this.handleSelectAllFocus=()=>{this.host.classList.add("ic-select-select-all-focused");this.lastOptionFocused=null;this.lastOptionSelected=null};this.handleSelectAllMouseDown=i=>{i.preventDefault()};this.handleSingleShiftSelect=(i,t,e)=>{if(this.multiSelect&&i.shiftKey&&!this.isOptionSelected(t)){this.selectHighlightedOption(e,t);this.lastOptionSelected=t}};this.handleMultipleShiftSelect=(i,t=false,e=null)=>{this.shiftPressed=false;const s=e===null?this.getFirstOptionInSelection(t):e;if(s!==null){const t=[];if(s<i){for(let e=s;e<i+1;e++){t.push(e)}}else{for(let e=s;e>i-1;e--){t.push(e)}}t.forEach((i=>!this.isOptionSelected(i)&&this.setInputValue(i)));this.deselectSelectedOptions(t)}};this.handleOptionSelect=(i,t,e=false)=>{const s=this.getMenuOptions();const n=this.getFirstOptionInSelection(e);if(i.shiftKey&&n!==null){this.handleMultipleShiftSelect(t,e,n)}else{this.selectHighlightedOption(s,t)}this.lastOptionFocused=t;this.lastOptionSelected=t};this.getFirstOptionInSelection=i=>i&&this.lastOptionFocused!==null?this.lastOptionFocused:this.lastOptionSelected!==null?this.lastOptionSelected:null;this.emitSelectAllEvents=()=>{var i,t;this.menuOptionSelectAll.emit({select:!this.value||!(((i=this.value)===null||i===void 0?void 0:i.length)===this.ungroupedOptions.length)});if(((t=this.value)===null||t===void 0?void 0:t.length)===this.ungroupedOptions.length){this.icClear.emit()}};this.emitMenuKeyPress=(i,t)=>{this.menuKeyPress.emit({isNavKey:i,key:t})};this.autoSetValueOnMenuKeyDown=i=>{var t,e;i.cancelBubble=true;const s=this.ungroupedOptions.findIndex((i=>i[this.valueField]===this.value));const n=!!this.inputEl&&this.inputEl.tagName==="INPUT";this.keyboardNav=false;switch(i.key){case" ":i.preventDefault();break;case"ArrowUp":if(!this.hasTimedOut){i.preventDefault();this.setPreviousOptionValue(s);this.keyboardNav=true}break;case"ArrowDown":if(!this.hasTimedOut){i.preventDefault();this.setNextOptionValue(s);this.keyboardNav=true}break;case"Home":this.menuOptionSelect.emit({value:this.ungroupedOptions[0][this.valueField]});this.keyboardNav=true;break;case"End":this.menuOptionSelect.emit({value:this.ungroupedOptions[this.ungroupedOptions.length-1][this.valueField]});this.keyboardNav=true;break;case"Enter":!this.hasTimedOut&&this.handleMenuChange(false);break;case"Escape":this.handleMenuChange(false);break;case"Backspace":if(n){(t=this.inputEl)===null||t===void 0?void 0:t.focus()}break;case"Shift":break;default:if(n&&i.key!=="Tab"&&!this.hasTimedOut){(e=this.inputEl)===null||e===void 0?void 0:e.focus()}if(i.key.length===1){this.keyboardNav=true}break}this.emitMenuKeyPress(this.keyboardNav,i.key)};this.getOptionId=i=>`${this.menuId}-${i}`;this.getOptionAriaLabel=(i,t)=>{let e=i[this.labelField];if(i.description){e=`${e}, ${i.description}`}if(i.element){e=`${e}, ${i.element.ariaLabel}`}if(t){return`${e}, ${t[this.labelField]} group`}else{return e}};this.getSortedOptions=i=>{let t=[];if(i.sort){t=i.sort(((i,t)=>i.recommended&&!t.recommended?-1:0))}return t};this.getOptionHighlightedIndex=()=>{const i=this.getMenuOptions();return i.findIndex((i=>i[this.valueField]===this.optionHighlighted))};this.isManualMode=this.activationType==="manual";this.scrollToSelected=i=>{var t;const e=this.selectOnEnter?this.host.querySelector(`li[data-value="${this.optionHighlighted}"]`):i.querySelector(".option[aria-selected='true']");if(e){const s=e.offsetTop+e.offsetHeight;if(s>i.scrollTop+i.offsetHeight||s<i.scrollTop+i.offsetHeight){i.scrollTop=e.offsetTop}(t=this.menu)===null||t===void 0?void 0:t.setAttribute(this.ACTIVE_DESCENDANT,e.id);e.focus()}};this.loadUngroupedOptions=()=>{if(this.options.length>0&&this.options.map){this.options.map((i=>{if(i.children){i.children.map((i=>!i.disabled&&this.ungroupedOptions.push(i)))}else if(!i.disabled){this.ungroupedOptions.push(i)}}))}this.ungroupedOptions=this.getSortedOptions(this.ungroupedOptions);this.ungroupedOptionsSet.emit({options:this.ungroupedOptions})};this.setMenuScrollbar=()=>{var i;let t=0;this.host.querySelectorAll(".option, .option-group-title").forEach((i=>t+=i.clientHeight));if(t>=320){(i=this.menu)===null||i===void 0?void 0:i.classList.add("menu-scroll")}};this.handleTimeoutBlur=i=>{this.timeoutBlur.emit({ev:i})};this.optionContent=(i,e)=>{var s;const n=!!i[this.valueField]&&!!this.value&&e&&((s=this.parentEl)===null||s===void 0?void 0:s.tagName)!==this.SEARCH_BAR_TAG;return t(c,null,i.loading&&t("ic-loading-indicator",{size:"icon"}),t("div",{class:{"option-text-container":true,"show-check-icon":n}},t("div",{class:"option-label"},i.icon&&t("div",{class:"option-icon",innerHTML:i.icon,"aria-hidden":"true"}),t("ic-typography",{variant:"body","aria-hidden":"true"},i[this.labelField])),i.description&&t("ic-typography",{id:`${this.getOptionId(i[this.valueField])}-description`,class:"option-description",variant:"caption","aria-hidden":"true"},t("p",null,i.description)),i.element&&t("div",{class:"option-element",innerHTML:i.element.component,"aria-hidden":"true"})),n&&t("span",{class:"check-icon",innerHTML:m}))};this.displayOption=(i,e,s,n)=>{const{open:o,keyboardNav:r,isManualMode:a,initialOptionsListRender:l,optionHighlighted:h,options:u}=this;return t("li",{id:this.getOptionId(i[this.valueField]),class:{option:true,"focused-option":a?(r||l)&&i[this.valueField]===h:r&&e,"last-recommended-option":!!(i.recommended&&u[s+1]&&!u[s+1].recommended),"disabled-option":!!i.disabled,"loading-option":!!i.loading,timeout:!!i.timedOut},role:"option",tabindex:o&&(e||i[this.valueField]===h)&&r?"0":"-1","aria-label":this.getOptionAriaLabel(i,n),"aria-selected":e?"true":"false","aria-disabled":i.disabled?"true":"false",onClick:!i.timedOut&&!i.loading?this.handleOptionClick:undefined,onBlur:this.handleBlur,onMouseDown:this.handleMouseDown,"data-value":i[this.valueField],"data-label":i[this.labelField]},i.timedOut?t(c,null,t("div",{class:"loading-error-info"},t("svg",{class:"error-icon-svg","aria-labelledby":"error-title",xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 24 24",fill:"#000000"},t("title",{id:"error-title"},"Error"),t("g",{id:"close-octagon"},t("path",{id:"Vector",d:"M8.77 3L3.5 8.27V15.73L8.77 21H16.23L21.5 15.73V8.27L16.23 3M8.91 7L12.5 10.59L16.09 7L17.5 8.41L13.91 12L17.5 15.59L16.09 17L12.5 13.41L8.91 17L7.5 15.59L11.09 12L7.5 8.41"}))),t("ic-typography",{variant:"label"},i[this.labelField])),t("ic-button",{size:"small",variant:"tertiary",onClick:this.handleRetry,onKeyDown:this.handleRetryKeyDown,onBlur:this.handleTimeoutBlur,id:"retry-button"},"Retry")):this.optionContent(i,e))}}watchOpenHandler(){if(!this.open&&this.popperInstance){this.popperInstance.destroy();this.popperInstance=null}}watchOptionsHandler(i){this.hasTimedOut=i.some((i=>i.timedOut));this.isLoading=i.some((i=>i.loading));this.ungroupedOptions=[];this.loadUngroupedOptions()}connectedCallback(){if(this.searchBar){if(this.searchMode==="navigation")this.setHighlightedOption(0);this.initialOptionsListRender=true}}disconnectedCallback(){var i,t,e;(i=this.popperInstance)===null||i===void 0?void 0:i.destroy();(t=this.parentEl)===null||t===void 0?void 0:t.removeEventListener("icClear",this.handleClearListener);(e=this.parentEl)===null||e===void 0?void 0:e.removeEventListener("icSubmitSearch",this.handleSubmitSearch)}componentWillLoad(){var i,t,e,s;this.loadUngroupedOptions();(i=this.parentEl)===null||i===void 0?void 0:i.addEventListener("icClear",this.handleClearListener);(t=this.parentEl)===null||t===void 0?void 0:t.addEventListener("icSubmitSearch",this.handleSubmitSearch);this.hasTimedOut=(e=this.options)===null||e===void 0?void 0:e.some((i=>i.timedOut));this.isLoading=(s=this.options)===null||s===void 0?void 0:s.some((i=>i.loading))}componentDidLoad(){if(this.searchBar&&this.parentEl.disableAutoFiltering){this.focusFromSearchKeypress=true}d([{prop:this.open,propName:"open"},{prop:this.options,propName:"options"},{prop:this.menuId,propName:"menu-id"},{prop:this.inputLabel,propName:"input-label"}],"Menu")}componentDidUpdate(){const i=this.options.some((i=>i[this.valueField]===this.value));if(this.menu&&this.open&&this.options.length!==0&&!this.preventMenuFocus){if(this.value&&this.keyboardNav&&i&&this.autofocusOnSelected&&!this.searchableSelect){this.scrollToSelected(this.menu)}else if(this.selectOnEnter){this.menu.focus()}else if(!!this.optionHighlighted&&!this.focusFromSearchKeypress&&!this.preventIncorrectTabOrder){const i=this.host.querySelector(`li[data-value="${this.optionHighlighted}"]`);if(i){this.menu.setAttribute(this.ACTIVE_DESCENDANT,i.id);i.focus()}}else if(this.inputEl&&this.inputEl.tagName!=="INPUT"){this.menu.focus()}}if(this.menu&&this.open&&!this.value&&this.selectOnEnter){this.scrollToSelected(this.menu)}this.preventMenuFocus=false}componentDidRender(){if(this.open&&!this.popperInstance&&this.anchorEl){this.initPopperJs(this.anchorEl)}if(this.open&&!!this.options.length){this.setMenuScrollbar()}}async handleClickOpen(){if(!this.preventClickOpen){this.menuStateChange.emit({open:!this.open});this.keyboardNav=false}this.preventClickOpen=false}async handleKeyboardOpen(i){if(this.activationType==="automatic"){this.autoSetInputValueKeyboardOpen(i)}else{this.manualSetInputValueKeyboardOpen(i)}}async handleSetFirstOption(){this.setHighlightedOption(0)}async initPopperJs(i){this.popperInstance=f(i,this.host,Object.assign({placement:"bottom-start",modifiers:[{name:"offset",options:{offset:[0,7]}},{name:"flip",options:{fallbackPlacements:["top-start"],rootBoundary:"viewport"}}]},this.popperProps))}async setExternalPopperProps(i){this.popperProps=i}focusOnSearchOrSelectInput(i,t){if(!i[t])return;if(this.searchBar){this.parentEl.setFocus();if(this.searchMode==="navigation")this.setHighlightedOption(0)}if(this.searchableSelect){this.parentEl.setFocus()}this.focusFromSearchKeypress=true}render(){const{inputLabel:i,options:s,menuId:n,value:c,fullWidth:o,hasTimedOut:r,isLoading:a,size:l,open:h,inputEl:u,keyboardNav:d,parentEl:m,SEARCH_BAR_TAG:f,multiSelect:b}=this;const v=`${(c===null||c===void 0?void 0:c.length)===this.ungroupedOptions.length?"Clear":"Select"} all`;const g=this.host.classList.contains("no-results");return t(e,{key:"bce19ee8d7929f03d2de173ad6f2b639cd2fbf2c",class:{"ic-menu-full-width":!!o,"ic-menu-no-focus":(u===null||u===void 0?void 0:u.tagName)==="INPUT"&&(m===null||m===void 0?void 0:m.tagName)!==f||r||a,[`ic-menu-${l}`]:true,"ic-menu-open":h&&s.length!==0,"ic-menu-multiple":b}},s.length!==0&&t("ul",{key:"edbb9d969dd8218a45c6d012abf8964fc2acd0a7",id:n,class:"menu",role:"listbox","aria-label":`${i} pop-up`,"aria-multiselectable":b?"true":"false",tabindex:h&&!d&&((u===null||u===void 0?void 0:u.tagName)!=="INPUT"||(m===null||m===void 0?void 0:m.tagName)===f)?"0":"-1",ref:i=>this.menu=i,onKeyDown:this.handleMenuKeyDown,onKeyUp:this.handleMenuKeyUp,onBlur:this.handleBlur},this.getSortedOptions(s).map(((i,e)=>{if(i.children){if(i.children.length>0){return t("div",null,t("ic-typography",{class:"option-group-title",role:"presentation",variant:"subtitle-small"},t("p",null,i[this.labelField])),i.children.map((t=>t.label&&this.displayOption(t,b?c===null||c===void 0?void 0:c.includes(t[this.valueField]):t[this.valueField]===c,e,i))))}else{return null}}else{return i.label&&this.displayOption(i,b?c===null||c===void 0?void 0:c.includes(i[this.valueField]):i[this.valueField]===c,e)}}))),s.length!==0&&b&&!a&&!r&&!g&&t("div",{key:"317f18bd8ff88fadf840ccc5666bf7ae7a6b1e65",class:"option-bar"},t("ic-typography",{key:"32e28e814c9c3d4ac243e2d45cb2487a99a900ba"},t("p",{key:"6ed28e350ad356ef669b4b6b9f3d8718a7274782"},`${c?c.length:0}/${p(this.options)} selected`)),t("ic-button",{key:"e66e1b04732d26ebbc05751eadc49968c11ac92c",class:"select-all-button","aria-label":`${v} options for ${i}`,ref:i=>this.selectAllButton=i,variant:"tertiary",onClick:this.handleSelectAllClick,onMouseDown:this.handleSelectAllMouseDown,onBlur:this.handleSelectAllBlur,onFocus:this.handleSelectAllFocus,size:l==="small"?"small":"medium"},v)))}get host(){return s(this)}static get watchers(){return{open:["watchOpenHandler"],options:["watchOptionsHandler"]}}};L.style=z;export{g as ic_input_component_container,w as ic_input_container,L as ic_menu};
2
+ //# sourceMappingURL=p-543b90c5.entry.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["icInputComponentContainerCss","IcInputComponentContainerStyle0","InputComponentContainer","constructor","hostRef","this","disabled","fullWidth","multiLine","readonly","size","validationInline","validationStatus","watchDisabledHandler","removeDisabledFalse","el","componentWillLoad","componentDidLoad","hostMutationObserver","MutationObserver","mutationList","renderDynamicChildSlots","observe","childList","render","h","Host","key","class","slotHasContent","name","IcInformationStatus","Success","innerHTML","successIcon","icInputContainerCss","IcInputContainerStyle0","InputContainer","icMenuCss","IcMenuStyle0","Menu","ACTIVE_DESCENDANT","CLEAR_BUTTON_ID","SEARCH_BAR_TAG","disabledOptionSelected","hasPreviouslyBlurred","hasTimedOut","isLoading","lastOptionSelected","lastOptionFocused","multiOptionClicked","preventClickOpen","preventMenuFocus","shiftPressed","ungroupedOptions","focusFromSearchKeypress","initialOptionsListRender","keyboardNav","preventIncorrectTabOrder","popperProps","activationType","autofocusOnSelected","closeOnSelect","labelField","multiSelect","searchableSelect","searchBar","searchMode","selectOnEnter","valueField","handleClearListener","optionHighlighted","handleSubmitSearch","highlightedOptionIndex","options","findIndex","option","setInputValue","handleMenuChange","open","focusInput","menuStateChange","emit","_a","inputEl","focus","undefined","setNextOptionValue","selectedOptionIndex","menuOptionSelect","value","optionId","getOptionId","setPreviousOptionValue","length","arrowBehaviour","event","preventDefault","getMenuOptions","setHighlightedOption","highlightedIndex","menuOptions","timedOut","autoSetInputValueKeyboardOpen","target","id","selectHighlightedOption","isOpen","isOptionSelected","index","includes","deselectSelectedOptions","optionsToKeepSelected","selectedOptionIndexes","map","forEach","manualSetInputValueKeyboardOpen","isKeyboardCombination","shiftKey","metaKey","ctrlKey","getOptionHighlightedIndex","clickedMultiOptionIndex","Array","from","host","querySelectorAll","handleOptionSelect","handleSingleShiftSelect","menuOptionId","startOptionIndex","handleMultipleShiftSelect","endOptionIndex","stopImmediatePropagation","isMacDevice","emitSelectAllEvents","selectAllButton","focusOnSearchOrSelectInput","parentEl","setFocus","handleOptionClick","label","dataset","handleRetry","retryButtonClicked","handleRetryKeyDown","ev","keyPressed","handleBlur","relatedTarget","menu","removeAttribute","_b","contains","_c","_d","handleMouseDown","handleMenuKeyDown","autoSetValueOnMenuKeyDown","handleMenuKeyUp","handleSelectAllClick","handleSelectAllBlur","classList","remove","handleSelectAllFocus","add","handleSelectAllMouseDown","optionToSelectIndex","lastOptionInSelection","useFocusForSelection","firstOptionSelected","firstOptionInSelection","getFirstOptionInSelection","optionsToSelect","i","push","optionIndex","menuOptionSelectAll","select","icClear","emitMenuKeyPress","isNavKey","menuKeyPress","cancelBubble","isSearchableSelect","tagName","menuId","getOptionAriaLabel","parentOption","ariaLabel","description","element","getSortedOptions","sorted","sort","optionA","optionB","recommended","isManualMode","scrollToSelected","selectedOption","querySelector","elTop","offsetTop","offsetHeight","scrollTop","setAttribute","loadUngroupedOptions","children","ungroupedOptionsSet","setMenuScrollbar","optionsHeight","clientHeight","handleTimeoutBlur","timeoutBlur","optionContent","selected","showCheckIcon","Fragment","loading","icon","variant","component","Check","displayOption","timeout","role","tabindex","onClick","onBlur","onMouseDown","xmlns","viewBox","fill","d","onKeyDown","watchOpenHandler","popperInstance","destroy","watchOptionsHandler","newOptions","some","opt","connectedCallback","disconnectedCallback","removeEventListener","addEventListener","disableAutoFiltering","onComponentRequiredPropUndefined","prop","propName","inputLabel","componentDidUpdate","inputValueInOptions","highlightedEl","componentDidRender","anchorEl","initPopperJs","handleClickOpen","handleKeyboardOpen","handleSetFirstOption","anchor","createPopper","Object","assign","placement","modifiers","offset","fallbackPlacements","rootBoundary","setExternalPopperProps","props","selectAllButtonText","hasNoResults","ref","onKeyUp","childOption","getOptionsWithoutGroupTitlesCount","onFocus"],"sources":["src/components/ic-input-component-container/ic-input-component-container.css?tag=ic-input-component-container","src/components/ic-input-component-container/ic-input-component-container.tsx","src/components/ic-input-container/ic-input-container.css?tag=ic-input-container","src/components/ic-input-container/ic-input-container.tsx","src/components/ic-menu/ic-menu.css?tag=ic-menu&encapsulation=scoped","src/components/ic-menu/ic-menu.tsx"],"sourcesContent":["ic-input-component-container {\n /**\n * @prop --border-color: Border colour of the input component container\n * @prop --border-color-hover: Border colour of the input component container on hover\n * @prop --border-color-pressed: Border colour of the input component container when pressed\n * @prop --border-color-disabled: Border colour of the input component container when disabled\n * @prop --border-color-error: Border colour of the error variant for input component container\n * @prop --border-color-error-hover: Border colour of the error hover variant for input component container\n * @prop --border-color-error-pressed: Border colour of the error pressed variant for input component container\n * @prop --border-color-warning: Border colour of the warning variant for input component container\n * @prop --border-color-warning-hover: Border colour of the warning hover variant for input component container\n * @prop --border-color-warning-pressed: Border colour of the warning pressed variant for input component container\n * @prop --border-color-success: Border colour of the success variant for input component container\n * @prop --border-color-success-hover: Border colour of the success hover variant for input component container\n * @prop --border-color-success-pressed: Border colour of the success pressed variant for input component container\n */\n\n display: flex;\n border: var(--ic-border-width) solid\n var(--border-color, var(--ic-architectural-400));\n border-radius: var(--ic-border-radius);\n transition: var(--ic-easing-transition-slow);\n height: 2.5rem;\n min-height: 2.5rem;\n width: var(--input-width, 20rem);\n padding: var(--ic-space-1px);\n background-color: var(--input-bg-color, var(--ic-color-background-primary));\n box-sizing: border-box;\n fill: var(--ic-architectural-400);\n outline: none;\n}\n\nic-input-component-container.ic-input-component-container-full-width {\n width: 100%;\n}\n\nic-input-component-container.ic-input-component-container-disabled,\nic-input-component-container.ic-input-component-container-disabled:hover {\n border: var(--ic-border-width) dashed\n var(--border-color-disabled, var(--ic-color-border-neutral-disabled));\n}\n\nic-input-component-container.ic-input-component-container-readonly,\nic-input-component-container.ic-input-component-container-small.ic-input-component-container-readonly,\nic-input-component-container.ic-input-component-container-large.ic-input-component-container-readonly {\n height: auto;\n background: transparent;\n}\n\nic-input-component-container.ic-input-component-container-readonly,\nic-input-component-container.ic-input-component-container-readonly:hover {\n border: none;\n padding: 0;\n}\n\nic-input-component-container.ic-input-component-container-error {\n border: var(--ic-space-xxxs) solid\n var(--border-color-error, var(--ic-color-border-error));\n padding: 0;\n}\n\nic-input-component-container.ic-input-component-container-error:hover {\n border: var(--ic-space-xxxs) solid\n var(--border-color-error-hover, var(--ic-color-border-error-hover));\n}\n\nic-input-component-container.ic-input-component-container-error:focus-within {\n border: var(--ic-space-xxxs) solid\n var(--border-color-error-pressed, var(--ic-color-border-error-pressed));\n}\n\nic-input-component-container.ic-input-component-container-warning {\n border: var(--ic-space-xxxs) solid\n var(--border-color-warning, var(--ic-color-border-warning));\n padding: 0;\n}\n\nic-input-component-container.ic-input-component-container-warning:hover {\n border: var(--ic-space-xxxs) solid\n var(--border-color-warning-hover, var(--ic-color-border-warning-hover));\n}\n\nic-input-component-container.ic-input-component-container-warning:focus-within {\n border: var(--ic-space-xxxs) solid\n var(--border-color-warning-pressed, var(--ic-color-border-warning-pressed));\n}\n\nic-input-component-container.ic-input-component-container-success {\n border: var(--ic-space-xxxs) solid\n var(--border-color-success, var(--ic-color-border-success));\n padding: 0;\n}\n\nic-input-component-container.ic-input-component-container-success:hover {\n border: var(--ic-space-xxxs) solid\n var(--border-color-success-hover, var(--ic-color-border-success-hover));\n}\n\nic-input-component-container.ic-input-component-container-success:focus-within {\n border: var(--ic-space-xxxs) solid\n var(--border-color-success-pressed, var(--ic-color-border-success-pressed));\n}\n\nic-input-component-container.ic-input-component-container-small {\n height: var(--ic-space-xl);\n min-height: var(--ic-space-xl);\n}\n\nic-input-component-container.ic-input-component-container-large {\n height: var(--ic-space-xxl);\n min-height: var(--ic-space-xxl);\n}\n\nic-input-component-container.ic-input-component-container-multiline {\n height: auto;\n}\n\nic-input-component-container .icon-container {\n margin-top: var(--ic-space-xxs);\n margin-left: 0.438rem;\n display: flex;\n align-items: center;\n}\n\nic-input-component-container.ic-input-component-container-multiline\n .icon-container,\nic-input-component-container.ic-input-component-container-multiline.ic-input-component-container-small\n .icon-container {\n margin-top: 0.375rem;\n display: block;\n}\n\nic-input-component-container.ic-input-component-container-readonly\n .icon-container {\n margin-left: -0.313rem;\n}\n\nic-input-component-container.ic-input-component-container-disabled\n ::placeholder {\n display: none;\n}\n\nic-input-component-container .inline-success {\n margin: var(--ic-space-xs) 0.375rem;\n display: flex;\n align-items: center;\n}\n\nic-input-component-container .inline-success > svg {\n fill: var(--ic-input-component-container-success-icon-inline-color);\n height: 1.25rem;\n width: 1.25rem;\n}\n\nic-input-component-container:hover {\n border: var(--ic-input-component-container-hover-border);\n border-color: var(--border-color-hover, var(--ic-color-border-neutral-hover));\n color: var(--ic-action-monochrome-hover-dark);\n}\n\nic-input-component-container:focus {\n border: var(--ic-border-pressed);\n border-color: var(\n --border-color-pressed,\n var(--ic-color-border-neutral-pressed)\n );\n}\n\n.focus-indicator {\n display: flex;\n width: 100%;\n margin: -0.125rem;\n padding: 0.125rem;\n border-radius: var(--ic-border-radius);\n transition: var(--ic-easing-transition-fast);\n}\n\n.focus-indicator:focus-within,\n.focus-indicator-enabled {\n box-shadow: var(--ic-border-focus);\n}\n\n.focus-indicator.ic-input-component-container-dark:focus-within {\n box-shadow: var(--ic-border-focus);\n}\n\n@media (forced-colors: active) {\n /* Styles here only apply to Forced Colors Mode */\n ic-input-component-container,\n .focus-indicator {\n transition: none;\n }\n\n ic-input-component-container:focus-within {\n border: var(--ic-border-width) solid Highlight;\n outline: 0.125rem solid Highlight;\n }\n\n ic-input-component-container.ic-input-component-container-disabled,\n ic-input-component-container.ic-input-component-container-disabled:hover {\n border: var(--ic-border-width) dashed GrayText;\n }\n}\n","import { Component, Element, Host, Prop, Watch, h } from \"@stencil/core\";\n\nimport {\n IcInformationStatus,\n IcInformationStatusOrEmpty,\n IcSizes,\n} from \"../../utils/types\";\nimport successIcon from \"../../assets/success-icon.svg\";\nimport {\n removeDisabledFalse,\n renderDynamicChildSlots,\n slotHasContent,\n} from \"../../utils/helpers\";\n\n/**\n * @slot left-icon - Content will be placed to the left of the input.\n */\n@Component({\n tag: \"ic-input-component-container\",\n styleUrl: \"ic-input-component-container.css\",\n})\nexport class InputComponentContainer {\n private hostMutationObserver: MutationObserver;\n @Element() el: HTMLIcInputComponentContainerElement;\n\n /**\n * If `true`, the disabled state will be set.\n */\n @Prop() disabled?: boolean = false;\n @Watch(\"disabled\")\n watchDisabledHandler(): void {\n removeDisabledFalse(this.disabled, this.el);\n }\n\n /**\n * If `true`, the input component container will fill the width of the container it is in.\n */\n @Prop() fullWidth?: boolean = false;\n\n /**\n * If `true`, the input component container will allow for multiple lines.\n */\n @Prop() multiLine?: boolean = false;\n\n /**\n * If `true`, the readonly state will be set.\n */\n @Prop() readonly?: boolean = false;\n\n /**\n * The size of the input component container component.\n */\n @Prop() size?: IcSizes = \"medium\";\n\n /**\n * If `true`, the validation will display inline.\n */\n @Prop() validationInline?: boolean = false;\n\n /**\n * The validation status of the input component container - e.g. 'error' | 'warning' | 'success'.\n */\n @Prop() validationStatus?: IcInformationStatusOrEmpty = \"\";\n\n componentWillLoad(): void {\n removeDisabledFalse(this.disabled, this.el);\n }\n\n componentDidLoad(): void {\n this.hostMutationObserver = new MutationObserver((mutationList) =>\n renderDynamicChildSlots(mutationList, \"left-icon\", this)\n );\n this.hostMutationObserver.observe(this.el, { childList: true });\n }\n\n render() {\n const {\n size,\n validationStatus,\n disabled,\n readonly,\n multiLine,\n fullWidth,\n validationInline,\n } = this;\n\n return (\n <Host\n class={{\n [`ic-input-component-container-${size}`]: true,\n [`ic-input-component-container-${validationStatus}`]:\n validationStatus !== \"\" && !disabled && !readonly,\n \"ic-input-component-container-disabled\": !!disabled,\n \"ic-input-component-container-readonly\": !!readonly,\n \"ic-input-component-container-multiline\": !!multiLine,\n \"ic-input-component-container-full-width\": !!fullWidth,\n }}\n aria-disabled={disabled ? \"true\" : null}\n >\n <div class=\"focus-indicator\">\n {slotHasContent(this.el, \"left-icon\") && (\n <div class=\"icon-container\">\n <slot name=\"left-icon\" />\n </div>\n )}\n <slot></slot>\n\n {validationInline &&\n validationStatus === IcInformationStatus.Success && (\n <span class=\"inline-success\" innerHTML={successIcon} />\n )}\n </div>\n </Host>\n );\n }\n}\n","ic-input-container .component-container {\n display: flex;\n flex-direction: column;\n}\n","import { Component, Host, Prop, h } from \"@stencil/core\";\n\n@Component({\n tag: \"ic-input-container\",\n styleUrl: \"ic-input-container.css\",\n})\nexport class InputContainer {\n /**\n * If `true`, the disabled state will be set.\n */\n @Prop() disabled?: boolean = false;\n\n /**\n * If `true`, the readonly state will be set.\n */\n @Prop() readonly?: boolean = false;\n\n render() {\n return (\n <Host>\n <div\n class={{\n [\"component-container\"]: true,\n [\"disabled\"]: !!this.disabled,\n [\"readonly\"]: !!this.readonly,\n }}\n >\n <slot></slot>\n </div>\n </Host>\n );\n }\n}\n","@import \"../../global/normalize.css\";\n\n/**\n * @prop --ic-z-index-menu: z-index of menu\n */\n\n@media (prefers-reduced-motion: no-preference) {\n :host(.ic-menu-open) .menu {\n transition: max-height var(--ic-transition-duration-slow);\n }\n}\n\n:host {\n max-height: 0;\n width: var(--menu-width, var(--input-width, 20rem));\n color: var(--menu-item-text-color, var(--ic-menu-list-option-text-color));\n\n --ic-typography-color: var(\n --menu-item-text-color,\n var(--ic-menu-list-option-text-color)\n );\n\n background-color: var(\n --menu-bg-color,\n var(--ic-menu-list-option-background-color)\n );\n position: relative;\n z-index: var(--ic-z-index-menu);\n box-sizing: border-box;\n box-shadow: var(--ic-elevation-overlay);\n border-radius: var(--ic-border-radius);\n}\n\n:host(.ic-menu-open:not(.ic-menu-no-focus):focus-within) {\n box-shadow: var(--ic-border-focus);\n outline: var(--ic-hc-focus-outline);\n}\n\n:host(.ic-select-select-all-focused) {\n box-shadow: var(--ic-elevation-overlay) !important;\n}\n\n#retry-button::part(button) {\n height: var(--ic-space-lg);\n}\n\n.small #retry-button::part(button) {\n height: var(--ic-space-md);\n}\n\n:host(.on-dialog) {\n inset: auto !important;\n}\n\n.menu {\n text-decoration: none;\n list-style-type: none;\n border-radius: 1px;\n background-color: var(\n --menu-bg-color,\n var(--ic-menu-list-option-background-color)\n );\n visibility: hidden;\n max-height: 0;\n overflow-y: hidden;\n}\n\n.menu:has(+ .option-bar) {\n border-radius: 0 0 1px 1px;\n}\n\n.menu-scroll {\n overflow-y: auto;\n}\n\n.menu:focus-visible {\n outline: none;\n}\n\n:host(.ic-menu-open) {\n max-height: none;\n display: flex;\n flex-direction: column-reverse;\n border: var(--ic-border-width) solid\n var(--menu-border-color, var(--ic-menu-border-color));\n transition: box-shadow var(--ic-easing-transition-fast);\n}\n\n:host(.ic-menu-open) .menu {\n visibility: visible;\n max-height: calc(var(--ic-space-xl) * 10 + var(--ic-space-xxxs));\n}\n\n:host(.ic-menu-open) .option-bar {\n visibility: visible;\n}\n\n:host(.ic-menu-open) .select-all-button {\n display: block;\n}\n\n:host(.ic-menu-full-width) {\n width: 100%;\n}\n\n.option {\n padding: var(--ic-space-xs) calc(var(--ic-space-xs) - var(--ic-space-1px));\n cursor: pointer;\n display: flex;\n align-items: center;\n}\n\n.loading-option p {\n margin-bottom: 0 !important;\n}\n\n.option:not(.loading-option) {\n justify-content: space-between;\n}\n\n:host(.ic-menu-small) .option {\n padding: var(--ic-space-xxs) calc(var(--ic-space-xs) - var(--ic-space-1px));\n}\n\n:host(.ic-menu-large) .option {\n padding: var(--ic-space-sm) calc(var(--ic-space-xs) - var(--ic-space-1px));\n}\n\n.option:last-child {\n border-radius: 0 0 1px 1px;\n}\n\n:not(.menu:has(+ .option-bar)) .option:first-child {\n border-radius: 1px 1px 0 0;\n}\n\n.option:not(.disabled-option):hover {\n background-color: var(--ic-menu-list-option-hover-background-color);\n}\n\n.option:not(.disabled-option):active {\n background-color: var(--ic-menu-list-option-pressed-background-color);\n}\n\n.option:focus-visible {\n outline: var(--ic-hc-focus-outline);\n}\n\n.option:not(.disabled-option) .option-description {\n --ic-typography-color: var(\n --menu-item-desc-text-color,\n var(--ic-menu-list-option-description-text-color)\n );\n}\n\n.option .option-label {\n display: flex;\n flex-direction: row;\n align-items: top;\n}\n\n.option .option-label ic-typography {\n max-width: 100%;\n word-wrap: break-word;\n}\n\n.option .option-element {\n margin-top: var(--ic-space-xxs);\n}\n\n.option .option-icon {\n height: var(--ic-space-md);\n width: var(--ic-space-md);\n margin-top: var(--ic-space-xxs);\n margin-right: var(--ic-space-xxxs);\n}\n\n.option-text-container {\n pointer-events: none;\n width: 100%;\n}\n\n.option-text-container.show-check-icon {\n width: calc(var(--ic-space-lg) * 10 + var(--ic-space-xl));\n}\n\n.option.loading-option .option-text-container {\n margin-left: calc(var(--ic-space-xs) + var(--ic-space-xxxs));\n color: var(--ic-menu-loading-list-option-text-color);\n\n --ic-typography-color: var(--ic-menu-loading-list-option-text-color);\n}\n\n.error-icon-svg {\n height: var(--ic-space-md);\n width: var(--ic-space-md);\n fill: var(--ic-atoms-status-icon-error);\n align-self: center;\n display: flex;\n margin-right: calc(var(--ic-space-xxs) * 1.2);\n}\n\n.loading-error-info {\n display: flex;\n}\n\n.check-icon {\n height: var(--ic-space-lg);\n min-width: var(--ic-space-lg);\n width: var(--ic-space-lg);\n margin-left: var(--ic-space-xs);\n pointer-events: none;\n}\n\n.focused-option .check-icon * {\n fill: currentcolor;\n}\n\n.option-group-title {\n padding: var(--ic-space-lg) calc(var(--ic-space-xs) - var(--ic-space-1px))\n var(--ic-space-xs);\n\n --ic-typography-color: var(--ic-menu-option-group-label-text-color);\n}\n\n:host(.ic-menu-small) .option-group-title {\n padding: var(--ic-space-sm) calc(var(--ic-space-xs) - var(--ic-space-1px))\n var(--ic-space-xxs);\n}\n\n.last-recommended-option {\n border-bottom: var(--ic-menu-last-recommended-option-border);\n}\n\n.disabled-option {\n color: var(--ic-atoms-list-option-text-disabled-light);\n\n --ic-typography-color: var(--ic-atoms-list-option-text-disabled-light);\n\n cursor: default;\n pointer-events: none;\n}\n\n.focused-option,\n.focused-option .option-description {\n background-color: var(--ic-color-focus-inner) !important;\n color: var(--ic-atoms-list-option-text-focused-light) !important;\n\n --ic-typography-color: var(\n --ic-atoms-list-option-text-focused-light\n ) !important;\n}\n\n:host(.no-results) li {\n cursor: no-drop;\n}\n\n:host(.no-results) li:hover {\n background-color: transparent;\n}\n\n.option-bar {\n padding: var(--ic-space-xxs) var(--ic-space-xs);\n display: flex;\n align-items: center;\n justify-content: space-between;\n background-color: var(--ic-menu-option-bar-background-color);\n visibility: hidden;\n border-bottom: var(--ic-border-width) solid\n var(--ic-menu-option-bar-divider-color);\n border-radius: 1px 1px 0 0;\n}\n\n.option-bar p {\n margin-bottom: 0 !important;\n}\n\n:host(.ic-menu-large) .option-bar {\n padding: var(--ic-space-xs);\n}\n\n.select-all-button {\n display: none;\n}\n\n.select-all-button:focus {\n z-index: calc(var(--ic-z-index-menu) + 1);\n}\n\n@media (forced-colors: active) {\n .focused-option:focus {\n outline: none;\n border: 0.125rem solid transparent;\n }\n\n .disabled-option {\n color: GrayText;\n\n --ic-typography-color: GrayText;\n }\n}\n","import {\n Component,\n Element,\n Event,\n EventEmitter,\n h,\n Host,\n Prop,\n Method,\n State,\n Watch,\n Fragment,\n} from \"@stencil/core\";\nimport {\n createPopper,\n Instance as PopperInstance,\n Options,\n} from \"@popperjs/core\";\n\nimport {\n IcActivationTypes,\n IcMenuOption,\n IcSizes,\n IcMultiValueEventDetail,\n} from \"../../utils/types\";\nimport Check from \"../../assets/check-icon.svg\";\nimport {\n getOptionsWithoutGroupTitlesCount,\n isMacDevice,\n onComponentRequiredPropUndefined,\n} from \"../../utils/helpers\";\nimport {\n IcOptionSelectEventDetail,\n IcMenuChangeEventDetail,\n IcMenuOptionIdEventDetail,\n} from \"./ic-menu.types\";\nimport { IcSearchBarSearchModes } from \"../ic-search-bar/ic-search-bar.types\";\n\n@Component({\n tag: \"ic-menu\",\n styleUrl: \"ic-menu.css\",\n scoped: true,\n})\n// eslint-disable-next-line @typescript-eslint/no-unused-vars\nexport class Menu {\n private ACTIVE_DESCENDANT = \"aria-activedescendant\";\n private CLEAR_BUTTON_ID = \"clear-button\";\n private SEARCH_BAR_TAG = \"IC-SEARCH-BAR\";\n private disabledOptionSelected = false;\n private hasPreviouslyBlurred = false;\n private hasTimedOut = false;\n private isLoading = false;\n private lastOptionSelected: number | null = null; // Index of last option selected\n private lastOptionFocused: number | null = null; // Index of last option focused\n private menu?: HTMLUListElement;\n private multiOptionClicked: string | null = null;\n private popperInstance: PopperInstance | null;\n private preventClickOpen = false; // Prevents menu re-opening immediately after it is closed on blur when clicking input.\n private preventMenuFocus = false; // (When multiple) ensures focus moves straight to select all button from menu.\n private selectAllButton?: HTMLIcButtonElement;\n private shiftPressed = false;\n private ungroupedOptions: IcMenuOption[] = [];\n\n @Element() host: HTMLIcMenuElement;\n\n @State() focusFromSearchKeypress = false;\n @State() initialOptionsListRender = false;\n @State() keyboardNav = false;\n @State() optionHighlighted?: string;\n @State() preventIncorrectTabOrder = false;\n @State() menuOptions: IcMenuOption[];\n @State() popperProps: Partial<Options> = {};\n\n /**\n * Determines whether options manually set as values (by pressing 'Enter') when they receive focus using keyboard navigation.\n */\n @Prop() activationType: IcActivationTypes = \"automatic\";\n\n /**\n * The reference to an anchor element the menu will position itself from when rendered.\n */\n @Prop() anchorEl?: HTMLElement;\n\n /**\n * @internal If `true`, autofocus will be applied on selected item when menu is open.\n */\n @Prop() autofocusOnSelected = true;\n\n /**\n * If `true`, the menu will close when an option is selected.\n */\n @Prop() closeOnSelect = true;\n\n /**\n * If `true`, the menu will fill the width of the container.\n */\n @Prop() fullWidth = false;\n\n /**\n * The reference to the input element.\n */\n @Prop() inputEl?: HTMLElement;\n\n /**\n * The label for the input element.\n */\n @Prop() inputLabel!: string;\n\n /**\n * The custom name for the label field for IcMenuOption.\n */\n @Prop() labelField = \"label\";\n\n /**\n * The ID of the menu.\n */\n @Prop() menuId!: string;\n\n /**\n * @internal - flag to specify if menu is in a ic-select multiple.\n */\n @Prop() multiSelect = false;\n\n /**\n * If `true`, the menu will be displayed open.\n */\n @Prop({ reflect: true }) open!: boolean;\n @Watch(\"open\")\n watchOpenHandler(): void {\n if (!this.open && this.popperInstance) {\n this.popperInstance.destroy();\n this.popperInstance = null;\n }\n }\n\n /**\n * @internal - The parent element if ic-menu is nested inside another component.\n */\n @Prop() parentEl?: HTMLElement;\n\n /**\n * @internal - flag to specify if menu is in a searchable ic-select.\n */\n @Prop() searchableSelect = false;\n\n /**\n * @internal - flag to specify if menu is in a ic-search-bar.\n */\n @Prop() searchBar = false;\n\n /**\n * Specify the mode search bar uses to search. `navigation` allows for quick lookups of a set of values, `query` allows for more general searches.\n */\n @Prop() searchMode: IcSearchBarSearchModes = \"navigation\";\n\n /**\n * @internal If `true`, the icOptionSelect event will be fired on enter instead of ArrowUp and ArrowDown.\n */\n @Prop() selectOnEnter: boolean = false;\n\n /**\n * The size of the menu.\n */\n @Prop() size: IcSizes = \"medium\";\n\n /**\n * The possible menu selection options.\n */\n @Prop() options!: IcMenuOption[];\n @Watch(\"options\")\n watchOptionsHandler(newOptions: IcMenuOption[]): void {\n this.hasTimedOut = newOptions.some((opt) => opt.timedOut);\n this.isLoading = newOptions.some((opt) => opt.loading);\n this.ungroupedOptions = [];\n this.loadUngroupedOptions();\n }\n\n /**\n * The value of the currently selected option - or array of values (if multiple options allowed).\n */\n @Prop() value!: string | string[];\n\n /**\n * The custom name for the value field for IcMenuOption.\n */\n @Prop() valueField = \"value\";\n\n /**\n * Emitted when the clear all button is clicked.\n */\n @Event() icClear: EventEmitter<void>;\n\n /**\n * @internal Emitted when key is pressed while menu is open.\n */\n @Event() menuKeyPress: EventEmitter<{ isNavKey: boolean; key: string }>;\n\n /**\n * @internal Emitted when an option has been highlighted.\n */\n @Event() menuOptionId: EventEmitter<IcMenuOptionIdEventDetail>;\n\n /**\n * @internal Emitted when an option is selected.\n */\n @Event() menuOptionSelect!: EventEmitter<IcOptionSelectEventDetail>;\n\n /**\n * @internal Emitted when all options are selected or deselected.\n */\n @Event() menuOptionSelectAll!: EventEmitter<{ select: boolean }>;\n\n /**\n * @internal Emitted when state of menu changes (i.e. open or closed).\n */\n @Event() menuStateChange!: EventEmitter<IcMenuChangeEventDetail>;\n\n /**\n * @internal Emitted when the retry button is clicked.\n */\n @Event() retryButtonClicked: EventEmitter<IcMultiValueEventDetail>;\n\n /**\n * @internal Emitted when the timeout menu loses focus.\n */\n @Event() timeoutBlur: EventEmitter<{ ev: FocusEvent }>;\n\n /**\n * @internal Emitted when the ungrouped options have been set.\n */\n @Event() ungroupedOptionsSet: EventEmitter<{ options: IcMenuOption[] }>;\n\n connectedCallback(): void {\n if (this.searchBar) {\n if (this.searchMode === \"navigation\") this.setHighlightedOption(0);\n this.initialOptionsListRender = true;\n }\n }\n\n disconnectedCallback(): void {\n this.popperInstance?.destroy();\n this.parentEl?.removeEventListener(\"icClear\", this.handleClearListener);\n this.parentEl?.removeEventListener(\n \"icSubmitSearch\",\n this.handleSubmitSearch\n );\n }\n\n componentWillLoad(): void {\n this.loadUngroupedOptions();\n this.parentEl?.addEventListener(\"icClear\", this.handleClearListener);\n this.parentEl?.addEventListener(\"icSubmitSearch\", this.handleSubmitSearch);\n this.hasTimedOut = this.options?.some((opt) => opt.timedOut);\n this.isLoading = this.options?.some((opt) => opt.loading);\n }\n\n componentDidLoad(): void {\n if (\n this.searchBar &&\n (this.parentEl as HTMLIcSearchBarElement).disableAutoFiltering\n ) {\n this.focusFromSearchKeypress = true;\n }\n\n onComponentRequiredPropUndefined(\n [\n { prop: this.open, propName: \"open\" },\n { prop: this.options, propName: \"options\" },\n { prop: this.menuId, propName: \"menu-id\" },\n { prop: this.inputLabel, propName: \"input-label\" },\n //NOTE: no check for value, input-el or anchor-el as otherwise get console errors on first load of select component\n ],\n \"Menu\"\n );\n }\n\n componentDidUpdate(): void {\n const inputValueInOptions = this.options.some(\n (option) => option[this.valueField] === this.value\n );\n\n if (\n this.menu &&\n this.open &&\n this.options.length !== 0 &&\n !this.preventMenuFocus\n ) {\n if (\n this.value &&\n this.keyboardNav &&\n inputValueInOptions &&\n this.autofocusOnSelected &&\n !this.searchableSelect\n ) {\n this.scrollToSelected(this.menu);\n } else if (this.selectOnEnter) {\n this.menu.focus();\n } else if (\n !!this.optionHighlighted &&\n !this.focusFromSearchKeypress &&\n !this.preventIncorrectTabOrder\n ) {\n const highlightedEl = this.host.querySelector(\n `li[data-value=\"${this.optionHighlighted}\"]`\n ) as HTMLElement;\n\n if (highlightedEl) {\n this.menu.setAttribute(this.ACTIVE_DESCENDANT, highlightedEl.id);\n highlightedEl.focus();\n }\n } else if (this.inputEl && this.inputEl.tagName !== \"INPUT\") {\n this.menu.focus();\n }\n }\n\n if (this.menu && this.open && !this.value && this.selectOnEnter) {\n this.scrollToSelected(this.menu);\n }\n\n this.preventMenuFocus = false;\n }\n\n componentDidRender(): void {\n if (this.open && !this.popperInstance && this.anchorEl) {\n this.initPopperJs(this.anchorEl);\n }\n\n if (this.open && !!this.options.length) {\n this.setMenuScrollbar();\n }\n }\n\n /**\n * @internal If menu is opened with the mouse, emit menuStateChange custom event.\n */\n @Method()\n async handleClickOpen(): Promise<void> {\n if (!this.preventClickOpen) {\n this.menuStateChange.emit({ open: !this.open });\n this.keyboardNav = false;\n }\n this.preventClickOpen = false;\n }\n\n /**\n * Used alongside activationType\n * If menu is opened via keyboard navigation (i.e. Enter, ArrowUp or ArrowDown), emit optionSelect custom event.\n * @param {KeyboardEvent} event The keyboard event which is available when handleKeyboardOpen is invoked.\n */\n @Method()\n async handleKeyboardOpen(event: KeyboardEvent): Promise<void> {\n if (this.activationType === \"automatic\") {\n this.autoSetInputValueKeyboardOpen(event);\n } else {\n this.manualSetInputValueKeyboardOpen(event);\n }\n }\n\n /**\n * @internal Used to highlight the first option in the menu.\n */\n @Method()\n async handleSetFirstOption(): Promise<void> {\n this.setHighlightedOption(0);\n }\n\n /**\n * @internal Used to initialize popperJS with an anchor element.\n * 5/12/2023: Tested with Floating UI, however, discovered inconsistent\n * boundary behaviour so sticking with PopperJS.\n */\n @Method()\n async initPopperJs(anchor: HTMLElement): Promise<void> {\n // Placements set to \"-start\" to accommodate for custom menu width - menu should always be aligned to the left\n this.popperInstance = createPopper(anchor, this.host, {\n placement: \"bottom-start\",\n modifiers: [\n {\n name: \"offset\",\n options: {\n offset: [0, 7],\n },\n },\n {\n name: \"flip\",\n options: {\n fallbackPlacements: [\"top-start\"],\n rootBoundary: \"viewport\",\n },\n },\n ],\n ...this.popperProps,\n });\n }\n\n /**\n * @internal This method allows props to be added to the PopperJS createPopper instance outside of the menu\n * @param props object - createPopper props set externally\n */\n @Method()\n async setExternalPopperProps<T extends Partial<Options>>(props: T) {\n this.popperProps = props;\n }\n\n private handleClearListener = (): void => {\n this.optionHighlighted = \"\";\n };\n\n private handleSubmitSearch = (): void => {\n const highlightedOptionIndex = this.options.findIndex(\n (option) => option[this.valueField] === this.optionHighlighted\n );\n\n this.setInputValue(highlightedOptionIndex);\n };\n\n private handleMenuChange = (open: boolean, focusInput?: boolean): void => {\n this.menuStateChange.emit({ open, focusInput });\n\n if (!open) {\n if (focusInput !== false) {\n this.inputEl?.focus();\n this.preventClickOpen = false;\n }\n\n // Reset optionHighlighted so previously highlighted option doesn't get reselected when Enter pressed\n if (this.multiSelect) {\n this.optionHighlighted = undefined;\n this.multiOptionClicked = null;\n }\n }\n };\n\n private setNextOptionValue = (selectedOptionIndex: number): void => {\n if (this.ungroupedOptions[selectedOptionIndex + 1]) {\n this.menuOptionSelect.emit({\n value: this.ungroupedOptions[selectedOptionIndex + 1][this.valueField],\n optionId: this.getOptionId(\n this.ungroupedOptions[selectedOptionIndex + 1][this.valueField]\n ),\n });\n } else {\n this.menuOptionSelect.emit({\n value: this.ungroupedOptions[0][this.valueField],\n optionId: this.getOptionId(this.ungroupedOptions[0][this.valueField]),\n });\n }\n };\n\n private setPreviousOptionValue = (selectedOptionIndex: number): void => {\n if (this.ungroupedOptions[selectedOptionIndex - 1]) {\n this.menuOptionSelect.emit({\n value: this.ungroupedOptions[selectedOptionIndex - 1][this.valueField],\n optionId: this.getOptionId(\n this.ungroupedOptions[selectedOptionIndex - 1][this.valueField]\n ),\n });\n } else {\n this.menuOptionSelect.emit({\n value:\n this.ungroupedOptions[this.ungroupedOptions.length - 1][\n this.valueField\n ],\n optionId: this.getOptionId(\n this.ungroupedOptions[this.ungroupedOptions.length - 1][\n this.valueField\n ]\n ),\n });\n }\n };\n\n // Open menu when up or down arrow keys are pressed\n private arrowBehaviour = (event: KeyboardEvent): void => {\n event.preventDefault();\n this.handleMenuChange(true);\n };\n\n private getMenuOptions = () =>\n this.searchBar ? this.options : this.ungroupedOptions;\n\n // Set option that is focused and so should show focus state\n private setHighlightedOption = (highlightedIndex: number): void => {\n const menuOptions = this.getMenuOptions();\n\n menuOptions[highlightedIndex] &&\n !menuOptions[highlightedIndex].timedOut &&\n (this.optionHighlighted =\n menuOptions[highlightedIndex][this.valueField] || undefined);\n };\n\n // Determines keyboard behaviour when selection is automatic\n // (i.e. you don't have to press Enter select an option - just focus on it)\n // and menu is closed\n private autoSetInputValueKeyboardOpen = (event: KeyboardEvent) => {\n const selectedOptionIndex = this.ungroupedOptions.findIndex(\n (option) => option[this.valueField] === this.value\n );\n\n this.keyboardNav = false;\n\n switch (event.key) {\n case \"ArrowDown\":\n this.keyboardNav = true;\n this.arrowBehaviour(event);\n this.setNextOptionValue(selectedOptionIndex);\n break;\n case \"ArrowUp\":\n this.keyboardNav = true;\n this.arrowBehaviour(event);\n this.setPreviousOptionValue(selectedOptionIndex);\n break;\n case \" \":\n case \"Enter\":\n if ((event.target as HTMLElement).id !== this.CLEAR_BUTTON_ID) {\n this.handleMenuChange(true);\n }\n break;\n }\n };\n\n private selectHighlightedOption = (\n options: IcMenuOption[],\n highlightedOptionIndex: number\n ) => {\n if (!this.isLoading && !this.hasTimedOut) {\n this.keyboardNav = true;\n }\n\n const isOpen: boolean =\n this.searchBar || this.searchableSelect || this.open;\n\n if (isOpen) {\n if (highlightedOptionIndex >= 0) {\n if (options[highlightedOptionIndex] !== undefined) {\n if (\n this.searchBar &&\n options[highlightedOptionIndex].disabled === true\n ) {\n this.disabledOptionSelected = true;\n } else {\n this.setInputValue(highlightedOptionIndex);\n }\n }\n } else {\n this.setInputValue(highlightedOptionIndex);\n }\n } else {\n this.handleMenuChange(true);\n }\n };\n\n // Check if option is selected based on the index of the option\n private isOptionSelected = (index: number) => {\n const menuOptions = this.getMenuOptions();\n\n return this.value\n ? this.value.includes(menuOptions[index][this.valueField])\n : false;\n };\n\n // Deselect currently selected options when shift pressed, but keep certain options selected\n private deselectSelectedOptions = (optionsToKeepSelected: number[]) => {\n const menuOptions = this.getMenuOptions();\n\n if (this.value) {\n const selectedOptionIndexes = (this.value as string[]).map((value) => {\n return menuOptions.findIndex(\n (option) => option[this.valueField] === value\n );\n });\n\n // Call setInputValue (which toggles the selected state) on options that need to be deselected\n selectedOptionIndexes.forEach(\n (index) =>\n !optionsToKeepSelected.includes(index) && this.setInputValue(index)\n );\n }\n };\n\n // Determines keyboard behaviour when selection is manual (i.e. when you have to press Enter to select an option)\n private manualSetInputValueKeyboardOpen = (event: KeyboardEvent) => {\n const menuOptions = this.getMenuOptions();\n\n // For preventing focus disappearing on currently focused option when Shift / Cmd / Ctrl pressed\n // (i.e. when user is likely in the middle of executing a keyboard combination to select options)\n const isKeyboardCombination =\n event.shiftKey || event.metaKey || event.ctrlKey;\n\n const highlightedOptionIndex = this.getOptionHighlightedIndex();\n\n const clickedMultiOptionIndex = menuOptions.findIndex(\n (option) => option[this.valueField] === this.multiOptionClicked\n );\n\n const getOptionId = (index: number): string =>\n Array.from(this.host.querySelectorAll(\"li\"))[index]?.id;\n\n // Space press should be equivalent to Enter when multi-select\n if (event.key === \" \" && this.multiSelect) {\n this.handleOptionSelect(event, highlightedOptionIndex);\n } else {\n switch (event.key) {\n case \"ArrowDown\":\n this.keyboardNav = true;\n this.arrowBehaviour(event);\n if (this.multiOptionClicked) {\n // Set focus to option last clicked\n // Prevents it resetting to the top of the menu when user switches to using keyboard\n this.setHighlightedOption(clickedMultiOptionIndex);\n this.multiOptionClicked = null;\n } else {\n this.handleSingleShiftSelect(\n event,\n highlightedOptionIndex,\n menuOptions\n );\n\n if (highlightedOptionIndex < menuOptions.length - 1) {\n this.setHighlightedOption(highlightedOptionIndex + 1);\n this.menuOptionId.emit({\n optionId: getOptionId(highlightedOptionIndex + 1),\n });\n\n this.handleSingleShiftSelect(\n event,\n highlightedOptionIndex + 1,\n menuOptions\n );\n } else {\n this.setHighlightedOption(0);\n this.menuOptionId.emit({\n optionId: getOptionId(0),\n });\n\n this.handleSingleShiftSelect(event, 0, menuOptions);\n }\n\n // Deselect currently selected options if arrow was pressed for first time after shift is held\n if (this.multiSelect && this.shiftPressed) {\n this.deselectSelectedOptions([\n highlightedOptionIndex,\n this.getOptionHighlightedIndex(),\n ]);\n this.shiftPressed = false;\n }\n }\n this.lastOptionFocused = this.getOptionHighlightedIndex();\n this.preventIncorrectTabOrder = false;\n this.focusFromSearchKeypress = false;\n break;\n case \"ArrowUp\":\n this.keyboardNav = true;\n this.arrowBehaviour(event);\n if (this.multiOptionClicked) {\n // Set focus to option last clicked\n // Prevents it resetting to the bottom of the menu when user switches to using keyboard\n this.setHighlightedOption(clickedMultiOptionIndex);\n this.multiOptionClicked = null;\n } else {\n this.handleSingleShiftSelect(\n event,\n highlightedOptionIndex,\n menuOptions\n );\n\n if (\n highlightedOptionIndex <= 0 ||\n highlightedOptionIndex > menuOptions.length + 1\n ) {\n this.setHighlightedOption(menuOptions.length - 1);\n this.menuOptionId.emit({\n optionId: getOptionId(menuOptions.length - 1),\n });\n\n this.handleSingleShiftSelect(\n event,\n menuOptions.length - 1,\n menuOptions\n );\n } else {\n this.setHighlightedOption(highlightedOptionIndex - 1);\n this.menuOptionId.emit({\n optionId: getOptionId(highlightedOptionIndex - 1),\n });\n\n this.handleSingleShiftSelect(\n event,\n highlightedOptionIndex - 1,\n menuOptions\n );\n }\n\n // Deselect currently selected options if arrow was pressed for first time after shift is held\n if (this.multiSelect && this.shiftPressed) {\n this.deselectSelectedOptions([\n highlightedOptionIndex,\n this.getOptionHighlightedIndex(),\n ]);\n this.shiftPressed = false;\n }\n }\n\n this.lastOptionFocused = this.getOptionHighlightedIndex();\n this.preventIncorrectTabOrder = false;\n this.focusFromSearchKeypress = false;\n break;\n case \"Home\": {\n const startOptionIndex = 0;\n\n this.keyboardNav = true;\n event.preventDefault();\n this.arrowBehaviour(event);\n this.setHighlightedOption(startOptionIndex);\n this.menuOptionId.emit({\n optionId: getOptionId(startOptionIndex),\n });\n\n if (event.shiftKey && event.ctrlKey) {\n this.handleMultipleShiftSelect(startOptionIndex);\n }\n\n this.lastOptionFocused = startOptionIndex;\n this.lastOptionSelected = startOptionIndex;\n break;\n }\n case \"End\": {\n const endOptionIndex = menuOptions.length - 1;\n\n this.keyboardNav = true;\n event.preventDefault();\n this.arrowBehaviour(event);\n this.setHighlightedOption(endOptionIndex);\n this.menuOptionId.emit({\n optionId: getOptionId(endOptionIndex),\n });\n\n if (event.shiftKey && event.ctrlKey) {\n this.handleMultipleShiftSelect(endOptionIndex);\n }\n\n this.lastOptionFocused = endOptionIndex;\n this.lastOptionSelected = endOptionIndex;\n break;\n }\n case \" \":\n if (!isKeyboardCombination) {\n this.keyboardNav = false;\n }\n if (this.searchBar || this.searchableSelect) {\n break;\n } else {\n if ((event.target as HTMLElement).id !== this.CLEAR_BUTTON_ID) {\n this.handleMenuChange(true);\n }\n }\n break;\n case \"Enter\":\n event.preventDefault();\n if (!isKeyboardCombination) {\n this.keyboardNav = false;\n }\n this.handleOptionSelect(event, highlightedOptionIndex);\n break;\n case \"Escape\":\n if (this.open) {\n event.stopImmediatePropagation();\n }\n this.handleMenuChange(false);\n this.menuOptionId.emit({ optionId: undefined });\n break;\n case \"a\":\n // Checks if Cmd (meta) key is pressed if Mac device (while excluding meta key on Windows)\n // Otherwise, if a different OS, checks Ctrl key\n if (\n (isMacDevice() && event.metaKey) ||\n (!isMacDevice() && event.ctrlKey)\n ) {\n this.emitSelectAllEvents();\n this.lastOptionFocused = null;\n this.lastOptionSelected = null;\n }\n break;\n case \"Shift\":\n case \"Tab\":\n if (event.key === \"Shift\") {\n this.shiftPressed = true;\n }\n if (this.searchBar) {\n this.keyboardNav = true;\n }\n if (this.multiSelect) {\n if (this.open && !event.shiftKey && this.selectAllButton) {\n event.preventDefault();\n this.selectAllButton.focus(); // Move focus to select all button instead of focused option\n this.preventMenuFocus = true;\n this.preventClickOpen = true;\n this.optionHighlighted = undefined; // Stop any option focus states showing when focus moved to select all button\n }\n } else {\n this.preventIncorrectTabOrder = true;\n }\n break;\n default:\n if (!isKeyboardCombination) {\n this.keyboardNav = false;\n }\n this.focusOnSearchOrSelectInput(menuOptions, highlightedOptionIndex);\n }\n }\n };\n\n private setInputValue = (highlightedOptionIndex: number) => {\n const menuOptions = this.getMenuOptions();\n\n if (menuOptions[highlightedOptionIndex] !== undefined) {\n this.menuOptionSelect.emit({\n value: menuOptions[highlightedOptionIndex][this.valueField],\n });\n\n if (this.closeOnSelect) {\n this.optionHighlighted = undefined;\n this.menuOptionId.emit({ optionId: undefined });\n }\n }\n\n if (this.closeOnSelect) {\n if (!this.hasTimedOut) {\n this.handleMenuChange(false);\n } else {\n (this.parentEl as HTMLIcSearchBarElement).setFocus();\n }\n }\n };\n\n private handleOptionClick = (event: MouseEvent): void => {\n const { value, label } = (event.target as HTMLLIElement).dataset;\n\n if (this.multiSelect) {\n const menuOptions = this.getMenuOptions();\n const selectedOptionIndex = menuOptions.findIndex(\n (option) => option.value === value\n );\n\n this.handleOptionSelect(event, selectedOptionIndex, true);\n this.multiOptionClicked = value || null;\n } else {\n this.menuOptionSelect.emit({ value, label });\n this.handleMenuChange(false);\n }\n\n this.optionHighlighted = undefined;\n };\n\n private handleRetry = (): void => {\n this.retryButtonClicked.emit({ value: this.value });\n };\n\n private handleRetryKeyDown = (ev: KeyboardEvent): void => {\n if (ev.key === \"Enter\" || ev.key === \" \") {\n ev.preventDefault();\n this.retryButtonClicked.emit({ value: this.value, keyPressed: ev.key });\n }\n };\n\n private handleBlur = (event: FocusEvent): void => {\n if (event.relatedTarget !== this.inputEl) {\n if (event.relatedTarget === this.selectAllButton) {\n this.menu?.removeAttribute(this.ACTIVE_DESCENDANT);\n }\n\n if (\n !(\n this.menu?.contains(event.relatedTarget as HTMLElement) ||\n event.relatedTarget === this.selectAllButton\n )\n ) {\n this.handleMenuChange(false, this.hasPreviouslyBlurred);\n this.menu?.removeAttribute(this.ACTIVE_DESCENDANT);\n this.lastOptionFocused = null;\n this.lastOptionSelected = null;\n }\n } else {\n this.handleMenuChange(false);\n this.preventClickOpen = true;\n this.menu?.removeAttribute(this.ACTIVE_DESCENDANT);\n this.lastOptionFocused = null;\n this.lastOptionSelected = null;\n }\n if (!this.searchBar) this.hasPreviouslyBlurred = !!event.relatedTarget;\n };\n\n private handleMouseDown = (event: Event): void => {\n event.preventDefault();\n };\n\n private handleMenuKeyDown = (event: KeyboardEvent) => {\n if (this.activationType === \"automatic\") {\n this.autoSetValueOnMenuKeyDown(event);\n } else if (this.activationType === \"manual\" && !this.searchBar) {\n this.manualSetInputValueKeyboardOpen(event);\n }\n };\n\n private handleMenuKeyUp = (event: KeyboardEvent): void => {\n if (event.key === \"Tab\" && event.shiftKey) {\n this.preventClickOpen = false;\n }\n if (event.key === \"Enter\" && this.disabledOptionSelected) {\n this.disabledOptionSelected = false;\n event.stopImmediatePropagation();\n }\n\n if (event.key === \"Shift\") {\n this.shiftPressed = false;\n }\n };\n\n private handleSelectAllClick = () => {\n this.keyboardNav = false;\n this.menu?.focus();\n this.emitSelectAllEvents();\n this.lastOptionFocused = null;\n this.lastOptionSelected = null;\n };\n\n private handleSelectAllBlur = (event: FocusEvent) => {\n this.host.classList.remove(\"ic-select-select-all-focused\");\n if (!this.menu?.contains(event.relatedTarget as HTMLElement)) {\n this.handleMenuChange(false, false);\n }\n };\n\n private handleSelectAllFocus = () => {\n this.host.classList.add(\"ic-select-select-all-focused\");\n this.lastOptionFocused = null;\n this.lastOptionSelected = null;\n };\n\n // Fix for Safari - select all button click was causing menu to close\n private handleSelectAllMouseDown = (event: Event) => {\n event.preventDefault();\n };\n\n // When shift key is being used to select contiguous options one by one on a multi-select\n // I.e. holding shift and pressing up and down arrow keys\n private handleSingleShiftSelect = (\n event: KeyboardEvent,\n optionToSelectIndex: number,\n options: IcMenuOption[]\n ) => {\n if (\n this.multiSelect &&\n event.shiftKey &&\n !this.isOptionSelected(optionToSelectIndex)\n ) {\n this.selectHighlightedOption(options, optionToSelectIndex);\n this.lastOptionSelected = optionToSelectIndex;\n }\n };\n\n // When shift key is being used to select multiple options at once on a multi-select\n // I.e. holding shift when selecting another option\n private handleMultipleShiftSelect = (\n lastOptionInSelection: number,\n useFocusForSelection = false,\n firstOptionSelected: number | null = null\n ) => {\n this.shiftPressed = false;\n\n const firstOptionInSelection =\n firstOptionSelected === null\n ? this.getFirstOptionInSelection(useFocusForSelection)\n : firstOptionSelected;\n if (firstOptionInSelection !== null) {\n const optionsToSelect = [];\n\n if (firstOptionInSelection < lastOptionInSelection) {\n for (\n let i = firstOptionInSelection;\n i < lastOptionInSelection + 1;\n i++\n ) {\n optionsToSelect.push(i);\n }\n } else {\n for (\n let i = firstOptionInSelection;\n i > lastOptionInSelection - 1;\n i--\n ) {\n optionsToSelect.push(i);\n }\n }\n\n optionsToSelect.forEach(\n (optionIndex) =>\n !this.isOptionSelected(optionIndex) && this.setInputValue(optionIndex)\n );\n this.deselectSelectedOptions(optionsToSelect);\n }\n };\n\n private handleOptionSelect = (\n event: KeyboardEvent | MouseEvent,\n optionIndex: number,\n useFocusForSelection = false\n ) => {\n const menuOptions = this.getMenuOptions();\n const firstOptionInSelection =\n this.getFirstOptionInSelection(useFocusForSelection);\n if (event.shiftKey && firstOptionInSelection !== null) {\n this.handleMultipleShiftSelect(\n optionIndex,\n useFocusForSelection,\n firstOptionInSelection\n );\n } else {\n this.selectHighlightedOption(menuOptions, optionIndex);\n }\n\n this.lastOptionFocused = optionIndex;\n this.lastOptionSelected = optionIndex;\n };\n\n private getFirstOptionInSelection = (\n useFocusForSelection: boolean\n ): number | null => {\n return useFocusForSelection && this.lastOptionFocused !== null\n ? this.lastOptionFocused\n : this.lastOptionSelected !== null\n ? this.lastOptionSelected\n : null;\n };\n\n private emitSelectAllEvents = () => {\n // Select all if there is either no value or not all options are selected\n // 'true' means select all, 'false' means clear all\n this.menuOptionSelectAll.emit({\n select:\n !this.value || !(this.value?.length === this.ungroupedOptions.length),\n });\n // Emit clear event if all options are selected\n if (this.value?.length === this.ungroupedOptions.length) {\n this.icClear.emit();\n }\n };\n\n private emitMenuKeyPress = (isNavKey: boolean, key: string) => {\n this.menuKeyPress.emit({ isNavKey: isNavKey, key: key });\n };\n\n // Determines keyboard behaviour when selection is automatic\n // (i.e. you don't have to press Enter select an option - just focus on it)\n // and menu is focused\n private autoSetValueOnMenuKeyDown = (event: KeyboardEvent): void => {\n event.cancelBubble = true;\n const selectedOptionIndex = this.ungroupedOptions.findIndex(\n (option) => option[this.valueField] === this.value\n );\n\n const isSearchableSelect =\n !!this.inputEl && this.inputEl.tagName === \"INPUT\";\n\n this.keyboardNav = false;\n\n switch (event.key) {\n case \" \":\n event.preventDefault();\n break;\n case \"ArrowUp\":\n if (!this.hasTimedOut) {\n event.preventDefault();\n this.setPreviousOptionValue(selectedOptionIndex);\n this.keyboardNav = true;\n }\n break;\n case \"ArrowDown\":\n if (!this.hasTimedOut) {\n event.preventDefault();\n this.setNextOptionValue(selectedOptionIndex);\n this.keyboardNav = true;\n }\n break;\n case \"Home\":\n this.menuOptionSelect.emit({\n value: this.ungroupedOptions[0][this.valueField],\n });\n this.keyboardNav = true;\n break;\n case \"End\":\n this.menuOptionSelect.emit({\n value:\n this.ungroupedOptions[this.ungroupedOptions.length - 1][\n this.valueField\n ],\n });\n this.keyboardNav = true;\n break;\n case \"Enter\":\n !this.hasTimedOut && this.handleMenuChange(false);\n break;\n case \"Escape\":\n this.handleMenuChange(false);\n break;\n case \"Backspace\":\n if (isSearchableSelect) {\n this.inputEl?.focus();\n }\n break;\n case \"Shift\":\n break;\n default:\n if (isSearchableSelect && event.key !== \"Tab\" && !this.hasTimedOut) {\n this.inputEl?.focus();\n }\n if (event.key.length === 1) {\n this.keyboardNav = true;\n }\n break;\n }\n this.emitMenuKeyPress(this.keyboardNav, event.key);\n };\n\n private getOptionId = (value: string): string => {\n return `${this.menuId}-${value}`;\n };\n\n private getOptionAriaLabel = (\n option: IcMenuOption,\n parentOption?: IcMenuOption\n ): string => {\n let ariaLabel = option[this.labelField];\n\n if (option.description) {\n ariaLabel = `${ariaLabel}, ${option.description}`;\n }\n\n if (option.element) {\n ariaLabel = `${ariaLabel}, ${option.element.ariaLabel}`;\n }\n\n if (parentOption) {\n return `${ariaLabel}, ${parentOption[this.labelField]} group`;\n } else {\n return ariaLabel;\n }\n };\n\n private getSortedOptions = (options: IcMenuOption[]): IcMenuOption[] => {\n let sorted: IcMenuOption[] = [];\n if (options.sort) {\n sorted = options.sort((optionA, optionB) =>\n optionA.recommended && !optionB.recommended ? -1 : 0\n );\n }\n return sorted;\n };\n\n private getOptionHighlightedIndex = () => {\n const menuOptions = this.getMenuOptions();\n\n return menuOptions.findIndex(\n (option) => option[this.valueField] === this.optionHighlighted\n );\n };\n\n private isManualMode = this.activationType === \"manual\";\n\n private scrollToSelected = (menu: HTMLUListElement) => {\n const selectedOption = this.selectOnEnter\n ? (this.host.querySelector(\n `li[data-value=\"${this.optionHighlighted}\"]`\n ) as HTMLElement)\n : (menu.querySelector(\".option[aria-selected='true']\") as HTMLElement);\n\n if (selectedOption) {\n const elTop = selectedOption.offsetTop + selectedOption.offsetHeight;\n if (\n elTop > menu.scrollTop + menu.offsetHeight ||\n elTop < menu.scrollTop + menu.offsetHeight\n ) {\n menu.scrollTop = selectedOption.offsetTop;\n }\n // 'aria-activedescendant' affects screen reader focus\n // https://www.w3.org/TR/2017/WD-wai-aria-practices-1.1-20170628/#kbd_focus_activedescendant\n this.menu?.setAttribute(this.ACTIVE_DESCENDANT, selectedOption.id);\n selectedOption.focus();\n }\n };\n\n // Set 'ungroupedOptions' variable and emit its value\n // - this is all the options with disabled options and group titles removed\n private loadUngroupedOptions = () => {\n if (this.options.length > 0 && this.options.map) {\n this.options.map((option) => {\n if (option.children) {\n option.children.map(\n (option) => !option.disabled && this.ungroupedOptions.push(option)\n );\n } else if (!option.disabled) {\n this.ungroupedOptions.push(option);\n }\n });\n }\n this.ungroupedOptions = this.getSortedOptions(this.ungroupedOptions);\n this.ungroupedOptionsSet.emit({ options: this.ungroupedOptions });\n };\n\n private setMenuScrollbar = () => {\n let optionsHeight = 0;\n this.host\n .querySelectorAll(\".option, .option-group-title\")\n .forEach((option) => (optionsHeight += option.clientHeight));\n\n if (optionsHeight >= 320) {\n this.menu?.classList.add(\"menu-scroll\");\n }\n };\n\n private handleTimeoutBlur = (ev: FocusEvent) => {\n this.timeoutBlur.emit({ ev });\n };\n\n private focusOnSearchOrSelectInput(\n menuOptions: IcMenuOption[],\n highlightedOptionIndex: number\n ) {\n if (!menuOptions[highlightedOptionIndex]) return;\n\n if (this.searchBar) {\n (this.parentEl as HTMLIcSearchBarElement).setFocus();\n if (this.searchMode === \"navigation\") this.setHighlightedOption(0);\n }\n\n if (this.searchableSelect) {\n (this.parentEl as HTMLIcSelectElement).setFocus();\n }\n\n this.focusFromSearchKeypress = true;\n }\n\n private optionContent = (option: IcMenuOption, selected: boolean) => {\n const showCheckIcon =\n !!option[this.valueField] &&\n !!this.value &&\n selected &&\n this.parentEl?.tagName !== this.SEARCH_BAR_TAG;\n\n return (\n <Fragment>\n {option.loading && <ic-loading-indicator size=\"icon\" />}\n <div\n class={{\n \"option-text-container\": true,\n \"show-check-icon\": showCheckIcon,\n }}\n >\n <div class=\"option-label\">\n {option.icon && (\n <div\n class=\"option-icon\"\n innerHTML={option.icon}\n aria-hidden=\"true\"\n ></div>\n )}\n <ic-typography variant=\"body\" aria-hidden=\"true\">\n {option[this.labelField]}\n </ic-typography>\n </div>\n {option.description && (\n <ic-typography\n id={`${this.getOptionId(option[this.valueField])}-description`}\n class=\"option-description\"\n variant=\"caption\"\n aria-hidden=\"true\"\n >\n <p>{option.description}</p>\n </ic-typography>\n )}\n {option.element && (\n <div\n class=\"option-element\"\n innerHTML={option.element.component}\n aria-hidden=\"true\"\n ></div>\n )}\n </div>\n {showCheckIcon && <span class=\"check-icon\" innerHTML={Check} />}\n </Fragment>\n );\n };\n\n private displayOption = (\n option: IcMenuOption,\n selected: boolean,\n index: number,\n parentOption?: IcMenuOption\n ): HTMLLIElement => {\n const {\n open,\n keyboardNav,\n isManualMode,\n initialOptionsListRender,\n optionHighlighted,\n options,\n } = this;\n\n return (\n <li\n id={this.getOptionId(option[this.valueField])}\n class={{\n option: true,\n \"focused-option\": isManualMode\n ? (keyboardNav || initialOptionsListRender) &&\n option[this.valueField] === optionHighlighted\n : keyboardNav && selected,\n \"last-recommended-option\": !!(\n option.recommended &&\n options[index + 1] &&\n !options[index + 1].recommended\n ),\n \"disabled-option\": !!option.disabled,\n \"loading-option\": !!option.loading,\n timeout: !!option.timedOut,\n }}\n role=\"option\"\n tabindex={\n open &&\n (selected || option[this.valueField] === optionHighlighted) &&\n keyboardNav\n ? \"0\"\n : \"-1\"\n }\n aria-label={this.getOptionAriaLabel(option, parentOption)}\n aria-selected={selected ? \"true\" : \"false\"}\n aria-disabled={option.disabled ? \"true\" : \"false\"}\n onClick={\n !option.timedOut && !option.loading\n ? this.handleOptionClick\n : undefined\n }\n onBlur={this.handleBlur}\n onMouseDown={this.handleMouseDown}\n data-value={option[this.valueField]}\n data-label={option[this.labelField]}\n >\n {option.timedOut ? (\n <Fragment>\n <div class=\"loading-error-info\">\n <svg\n class=\"error-icon-svg\"\n aria-labelledby=\"error-title\"\n xmlns=\"http://www.w3.org/2000/svg\"\n viewBox=\"0 0 24 24\"\n fill=\"#000000\"\n >\n <title id=\"error-title\">Error</title>\n <g id=\"close-octagon\">\n <path\n id=\"Vector\"\n d=\"M8.77 3L3.5 8.27V15.73L8.77 21H16.23L21.5 15.73V8.27L16.23 3M8.91 7L12.5 10.59L16.09 7L17.5 8.41L13.91 12L17.5 15.59L16.09 17L12.5 13.41L8.91 17L7.5 15.59L11.09 12L7.5 8.41\"\n />\n </g>\n </svg>\n <ic-typography variant=\"label\">\n {option[this.labelField]}\n </ic-typography>\n </div>\n <ic-button\n size=\"small\"\n variant=\"tertiary\"\n onClick={this.handleRetry}\n onKeyDown={this.handleRetryKeyDown}\n onBlur={this.handleTimeoutBlur}\n id=\"retry-button\"\n >\n Retry\n </ic-button>\n </Fragment>\n ) : (\n this.optionContent(option, selected)\n )}\n </li>\n );\n };\n\n render() {\n const {\n inputLabel,\n options,\n menuId,\n value,\n fullWidth,\n hasTimedOut,\n isLoading,\n size,\n open,\n inputEl,\n keyboardNav,\n parentEl,\n SEARCH_BAR_TAG,\n multiSelect,\n } = this;\n\n const selectAllButtonText = `${\n value?.length === this.ungroupedOptions.length ? \"Clear\" : \"Select\"\n } all`;\n\n const hasNoResults = this.host.classList.contains(\"no-results\");\n\n return (\n <Host\n class={{\n \"ic-menu-full-width\": !!fullWidth,\n \"ic-menu-no-focus\":\n (inputEl?.tagName === \"INPUT\" &&\n parentEl?.tagName !== SEARCH_BAR_TAG) ||\n hasTimedOut ||\n isLoading,\n [`ic-menu-${size}`]: true,\n \"ic-menu-open\": open && options.length !== 0,\n \"ic-menu-multiple\": multiSelect,\n }}\n >\n {options.length !== 0 && (\n <ul\n id={menuId}\n class=\"menu\"\n role=\"listbox\"\n aria-label={`${inputLabel} pop-up`}\n aria-multiselectable={multiSelect ? \"true\" : \"false\"}\n tabindex={\n open &&\n !keyboardNav &&\n (inputEl?.tagName !== \"INPUT\" ||\n parentEl?.tagName === SEARCH_BAR_TAG)\n ? \"0\"\n : \"-1\"\n }\n ref={(el) => (this.menu = el)}\n onKeyDown={this.handleMenuKeyDown}\n onKeyUp={this.handleMenuKeyUp}\n onBlur={this.handleBlur}\n >\n {this.getSortedOptions(options).map((option, index) => {\n if (option.children) {\n if (option.children.length > 0) {\n return (\n <div>\n <ic-typography\n class=\"option-group-title\"\n role=\"presentation\"\n variant=\"subtitle-small\"\n >\n <p>{option[this.labelField]}</p>\n </ic-typography>\n {option.children.map(\n (childOption) =>\n childOption.label &&\n this.displayOption(\n childOption,\n multiSelect\n ? value?.includes(childOption[this.valueField])\n : childOption[this.valueField] === value,\n index,\n option\n )\n )}\n </div>\n );\n } else {\n return null;\n }\n } else {\n // Display option only if it has a label (rather than displaying an empty space)\n return (\n option.label &&\n this.displayOption(\n option,\n multiSelect\n ? value?.includes(option[this.valueField])\n : option[this.valueField] === value,\n index\n )\n );\n }\n })}\n </ul>\n )}\n {options.length !== 0 &&\n multiSelect &&\n !isLoading &&\n !hasTimedOut &&\n !hasNoResults && (\n <div class=\"option-bar\">\n <ic-typography>\n <p>{`${\n value ? value.length : 0\n }/${getOptionsWithoutGroupTitlesCount(\n this.options\n )} selected`}</p>\n </ic-typography>\n <ic-button\n class=\"select-all-button\"\n aria-label={`${selectAllButtonText} options for ${inputLabel}`}\n ref={(el) => (this.selectAllButton = el)}\n variant=\"tertiary\"\n onClick={this.handleSelectAllClick}\n onMouseDown={this.handleSelectAllMouseDown}\n onBlur={this.handleSelectAllBlur}\n onFocus={this.handleSelectAllFocus}\n size={size === \"small\" ? \"small\" : \"medium\"}\n >\n {selectAllButtonText}\n </ic-button>\n </div>\n )}\n </Host>\n );\n }\n}\n"],"mappings":"oOAAA,MAAMA,EAA+B,soKACrC,MAAAC,EAAeD,E,MCoBFE,EAAuB,MAJpC,WAAAC,CAAAC,G,UAWUC,KAAAC,SAAqB,MASrBD,KAAAE,UAAsB,MAKtBF,KAAAG,UAAsB,MAKtBH,KAAAI,SAAqB,MAKrBJ,KAAAK,KAAiB,SAKjBL,KAAAM,iBAA6B,MAK7BN,KAAAO,iBAAgD,E,CAhCxD,oBAAAC,GACEC,EAAoBT,KAAKC,SAAUD,KAAKU,G,CAiC1C,iBAAAC,GACEF,EAAoBT,KAAKC,SAAUD,KAAKU,G,CAG1C,gBAAAE,GACEZ,KAAKa,qBAAuB,IAAIC,kBAAkBC,GAChDC,EAAwBD,EAAc,YAAaf,QAErDA,KAAKa,qBAAqBI,QAAQjB,KAAKU,GAAI,CAAEQ,UAAW,M,CAG1D,MAAAC,GACE,MAAMd,KACJA,EAAIE,iBACJA,EAAgBN,SAChBA,EAAQG,SACRA,EAAQD,UACRA,EAASD,UACTA,EAASI,iBACTA,GACEN,KAEJ,OACEoB,EAACC,EAAI,CAAAC,IAAA,2CACHC,MAAO,CACL,CAAC,gCAAgClB,KAAS,KAC1C,CAAC,gCAAgCE,KAC/BA,IAAqB,KAAON,IAAaG,EAC3C,0CAA2CH,EAC3C,0CAA2CG,EAC3C,2CAA4CD,EAC5C,4CAA6CD,GAC9C,gBACcD,EAAW,OAAS,MAEnCmB,EAAA,OAAAE,IAAA,2CAAKC,MAAM,mBACRC,EAAexB,KAAKU,GAAI,cACvBU,EAAA,OAAAE,IAAA,2CAAKC,MAAM,kBACTH,EAAA,QAAAE,IAAA,2CAAMG,KAAK,eAGfL,EAAA,QAAAE,IAAA,6CAEChB,GACCC,IAAqBmB,EAAoBC,SACvCP,EAAA,QAAAE,IAAA,2CAAMC,MAAM,iBAAiBK,UAAWC,K,qGC7GtD,MAAMC,EAAsB,8EAC5B,MAAAC,EAAeD,E,MCKFE,EAAc,MAJ3B,WAAAlC,CAAAC,G,UAQUC,KAAAC,SAAqB,MAKrBD,KAAAI,SAAqB,K,CAE7B,MAAAe,GACE,OACEC,EAACC,EAAI,CAAAC,IAAA,4CACHF,EAAA,OAAAE,IAAA,2CACEC,MAAO,CACL,CAAC,uBAAwB,KACzB,CAAC,cAAevB,KAAKC,SACrB,CAAC,cAAeD,KAAKI,WAGvBgB,EAAA,QAAAE,IAAA,8C,aC3BV,MAAMW,EAAY,+5TAClB,MAAAC,EAAeD,E,MC2CFE,EAAI,MANjB,WAAArC,CAAAC,G,ubAOUC,KAAAoC,kBAAoB,wBACpBpC,KAAAqC,gBAAkB,eAClBrC,KAAAsC,eAAiB,gBACjBtC,KAAAuC,uBAAyB,MACzBvC,KAAAwC,qBAAuB,MACvBxC,KAAAyC,YAAc,MACdzC,KAAA0C,UAAY,MACZ1C,KAAA2C,mBAAoC,KACpC3C,KAAA4C,kBAAmC,KAEnC5C,KAAA6C,mBAAoC,KAEpC7C,KAAA8C,iBAAmB,MACnB9C,KAAA+C,iBAAmB,MAEnB/C,KAAAgD,aAAe,MACfhD,KAAAiD,iBAAmC,GAIlCjD,KAAAkD,wBAA0B,MAC1BlD,KAAAmD,yBAA2B,MAC3BnD,KAAAoD,YAAc,MAEdpD,KAAAqD,yBAA2B,MAE3BrD,KAAAsD,YAAgC,GAKjCtD,KAAAuD,eAAoC,YAUpCvD,KAAAwD,oBAAsB,KAKtBxD,KAAAyD,cAAgB,KAKhBzD,KAAAE,UAAY,MAeZF,KAAA0D,WAAa,QAUb1D,KAAA2D,YAAc,MAsBd3D,KAAA4D,iBAAmB,MAKnB5D,KAAA6D,UAAY,MAKZ7D,KAAA8D,WAAqC,aAKrC9D,KAAA+D,cAAyB,MAKzB/D,KAAAK,KAAgB,SAsBhBL,KAAAgE,WAAa,QA2NbhE,KAAAiE,oBAAsB,KAC5BjE,KAAKkE,kBAAoB,EAAE,EAGrBlE,KAAAmE,mBAAqB,KAC3B,MAAMC,EAAyBpE,KAAKqE,QAAQC,WACzCC,GAAWA,EAAOvE,KAAKgE,cAAgBhE,KAAKkE,oBAG/ClE,KAAKwE,cAAcJ,EAAuB,EAGpCpE,KAAAyE,iBAAmB,CAACC,EAAeC,K,MACzC3E,KAAK4E,gBAAgBC,KAAK,CAAEH,OAAMC,eAElC,IAAKD,EAAM,CACT,GAAIC,IAAe,MAAO,EACxBG,EAAA9E,KAAK+E,WAAO,MAAAD,SAAA,SAAAA,EAAEE,QACdhF,KAAK8C,iBAAmB,K,CAI1B,GAAI9C,KAAK2D,YAAa,CACpB3D,KAAKkE,kBAAoBe,UACzBjF,KAAK6C,mBAAqB,I,IAKxB7C,KAAAkF,mBAAsBC,IAC5B,GAAInF,KAAKiD,iBAAiBkC,EAAsB,GAAI,CAClDnF,KAAKoF,iBAAiBP,KAAK,CACzBQ,MAAOrF,KAAKiD,iBAAiBkC,EAAsB,GAAGnF,KAAKgE,YAC3DsB,SAAUtF,KAAKuF,YACbvF,KAAKiD,iBAAiBkC,EAAsB,GAAGnF,KAAKgE,c,KAGnD,CACLhE,KAAKoF,iBAAiBP,KAAK,CACzBQ,MAAOrF,KAAKiD,iBAAiB,GAAGjD,KAAKgE,YACrCsB,SAAUtF,KAAKuF,YAAYvF,KAAKiD,iBAAiB,GAAGjD,KAAKgE,c,GAKvDhE,KAAAwF,uBAA0BL,IAChC,GAAInF,KAAKiD,iBAAiBkC,EAAsB,GAAI,CAClDnF,KAAKoF,iBAAiBP,KAAK,CACzBQ,MAAOrF,KAAKiD,iBAAiBkC,EAAsB,GAAGnF,KAAKgE,YAC3DsB,SAAUtF,KAAKuF,YACbvF,KAAKiD,iBAAiBkC,EAAsB,GAAGnF,KAAKgE,c,KAGnD,CACLhE,KAAKoF,iBAAiBP,KAAK,CACzBQ,MACErF,KAAKiD,iBAAiBjD,KAAKiD,iBAAiBwC,OAAS,GACnDzF,KAAKgE,YAETsB,SAAUtF,KAAKuF,YACbvF,KAAKiD,iBAAiBjD,KAAKiD,iBAAiBwC,OAAS,GACnDzF,KAAKgE,c,GAQPhE,KAAA0F,eAAkBC,IACxBA,EAAMC,iBACN5F,KAAKyE,iBAAiB,KAAK,EAGrBzE,KAAA6F,eAAiB,IACvB7F,KAAK6D,UAAY7D,KAAKqE,QAAUrE,KAAKiD,iBAG/BjD,KAAA8F,qBAAwBC,IAC9B,MAAMC,EAAchG,KAAK6F,iBAEzBG,EAAYD,KACTC,EAAYD,GAAkBE,WAC9BjG,KAAKkE,kBACJ8B,EAAYD,GAAkB/F,KAAKgE,aAAeiB,UAAU,EAM1DjF,KAAAkG,8BAAiCP,IACvC,MAAMR,EAAsBnF,KAAKiD,iBAAiBqB,WAC/CC,GAAWA,EAAOvE,KAAKgE,cAAgBhE,KAAKqF,QAG/CrF,KAAKoD,YAAc,MAEnB,OAAQuC,EAAMrE,KACZ,IAAK,YACHtB,KAAKoD,YAAc,KACnBpD,KAAK0F,eAAeC,GACpB3F,KAAKkF,mBAAmBC,GACxB,MACF,IAAK,UACHnF,KAAKoD,YAAc,KACnBpD,KAAK0F,eAAeC,GACpB3F,KAAKwF,uBAAuBL,GAC5B,MACF,IAAK,IACL,IAAK,QACH,GAAKQ,EAAMQ,OAAuBC,KAAOpG,KAAKqC,gBAAiB,CAC7DrC,KAAKyE,iBAAiB,K,CAExB,M,EAIEzE,KAAAqG,wBAA0B,CAChChC,EACAD,KAEA,IAAKpE,KAAK0C,YAAc1C,KAAKyC,YAAa,CACxCzC,KAAKoD,YAAc,I,CAGrB,MAAMkD,EACJtG,KAAK6D,WAAa7D,KAAK4D,kBAAoB5D,KAAK0E,KAElD,GAAI4B,EAAQ,CACV,GAAIlC,GAA0B,EAAG,CAC/B,GAAIC,EAAQD,KAA4Ba,UAAW,CACjD,GACEjF,KAAK6D,WACLQ,EAAQD,GAAwBnE,WAAa,KAC7C,CACAD,KAAKuC,uBAAyB,I,KACzB,CACLvC,KAAKwE,cAAcJ,E,OAGlB,CACLpE,KAAKwE,cAAcJ,E,MAEhB,CACLpE,KAAKyE,iBAAiB,K,GAKlBzE,KAAAuG,iBAAoBC,IAC1B,MAAMR,EAAchG,KAAK6F,iBAEzB,OAAO7F,KAAKqF,MACRrF,KAAKqF,MAAMoB,SAAST,EAAYQ,GAAOxG,KAAKgE,aAC5C,KAAK,EAIHhE,KAAA0G,wBAA2BC,IACjC,MAAMX,EAAchG,KAAK6F,iBAEzB,GAAI7F,KAAKqF,MAAO,CACd,MAAMuB,EAAyB5G,KAAKqF,MAAmBwB,KAAKxB,GACnDW,EAAY1B,WAChBC,GAAWA,EAAOvE,KAAKgE,cAAgBqB,MAK5CuB,EAAsBE,SACnBN,IACEG,EAAsBF,SAASD,IAAUxG,KAAKwE,cAAcgC,I,GAM7DxG,KAAA+G,gCAAmCpB,IACzC,MAAMK,EAAchG,KAAK6F,iBAIzB,MAAMmB,EACJrB,EAAMsB,UAAYtB,EAAMuB,SAAWvB,EAAMwB,QAE3C,MAAM/C,EAAyBpE,KAAKoH,4BAEpC,MAAMC,EAA0BrB,EAAY1B,WACzCC,GAAWA,EAAOvE,KAAKgE,cAAgBhE,KAAK6C,qBAG/C,MAAM0C,EAAeiB,IAAa,IAAA1B,EAChC,OAAAA,EAAAwC,MAAMC,KAAKvH,KAAKwH,KAAKC,iBAAiB,OAAOjB,MAAM,MAAA1B,SAAA,SAAAA,EAAEsB,EAAE,EAGzD,GAAIT,EAAMrE,MAAQ,KAAOtB,KAAK2D,YAAa,CACzC3D,KAAK0H,mBAAmB/B,EAAOvB,E,KAC1B,CACL,OAAQuB,EAAMrE,KACZ,IAAK,YACHtB,KAAKoD,YAAc,KACnBpD,KAAK0F,eAAeC,GACpB,GAAI3F,KAAK6C,mBAAoB,CAG3B7C,KAAK8F,qBAAqBuB,GAC1BrH,KAAK6C,mBAAqB,I,KACrB,CACL7C,KAAK2H,wBACHhC,EACAvB,EACA4B,GAGF,GAAI5B,EAAyB4B,EAAYP,OAAS,EAAG,CACnDzF,KAAK8F,qBAAqB1B,EAAyB,GACnDpE,KAAK4H,aAAa/C,KAAK,CACrBS,SAAUC,EAAYnB,EAAyB,KAGjDpE,KAAK2H,wBACHhC,EACAvB,EAAyB,EACzB4B,E,KAEG,CACLhG,KAAK8F,qBAAqB,GAC1B9F,KAAK4H,aAAa/C,KAAK,CACrBS,SAAUC,EAAY,KAGxBvF,KAAK2H,wBAAwBhC,EAAO,EAAGK,E,CAIzC,GAAIhG,KAAK2D,aAAe3D,KAAKgD,aAAc,CACzChD,KAAK0G,wBAAwB,CAC3BtC,EACApE,KAAKoH,8BAEPpH,KAAKgD,aAAe,K,EAGxBhD,KAAK4C,kBAAoB5C,KAAKoH,4BAC9BpH,KAAKqD,yBAA2B,MAChCrD,KAAKkD,wBAA0B,MAC/B,MACF,IAAK,UACHlD,KAAKoD,YAAc,KACnBpD,KAAK0F,eAAeC,GACpB,GAAI3F,KAAK6C,mBAAoB,CAG3B7C,KAAK8F,qBAAqBuB,GAC1BrH,KAAK6C,mBAAqB,I,KACrB,CACL7C,KAAK2H,wBACHhC,EACAvB,EACA4B,GAGF,GACE5B,GAA0B,GAC1BA,EAAyB4B,EAAYP,OAAS,EAC9C,CACAzF,KAAK8F,qBAAqBE,EAAYP,OAAS,GAC/CzF,KAAK4H,aAAa/C,KAAK,CACrBS,SAAUC,EAAYS,EAAYP,OAAS,KAG7CzF,KAAK2H,wBACHhC,EACAK,EAAYP,OAAS,EACrBO,E,KAEG,CACLhG,KAAK8F,qBAAqB1B,EAAyB,GACnDpE,KAAK4H,aAAa/C,KAAK,CACrBS,SAAUC,EAAYnB,EAAyB,KAGjDpE,KAAK2H,wBACHhC,EACAvB,EAAyB,EACzB4B,E,CAKJ,GAAIhG,KAAK2D,aAAe3D,KAAKgD,aAAc,CACzChD,KAAK0G,wBAAwB,CAC3BtC,EACApE,KAAKoH,8BAEPpH,KAAKgD,aAAe,K,EAIxBhD,KAAK4C,kBAAoB5C,KAAKoH,4BAC9BpH,KAAKqD,yBAA2B,MAChCrD,KAAKkD,wBAA0B,MAC/B,MACF,IAAK,OAAQ,CACX,MAAM2E,EAAmB,EAEzB7H,KAAKoD,YAAc,KACnBuC,EAAMC,iBACN5F,KAAK0F,eAAeC,GACpB3F,KAAK8F,qBAAqB+B,GAC1B7H,KAAK4H,aAAa/C,KAAK,CACrBS,SAAUC,EAAYsC,KAGxB,GAAIlC,EAAMsB,UAAYtB,EAAMwB,QAAS,CACnCnH,KAAK8H,0BAA0BD,E,CAGjC7H,KAAK4C,kBAAoBiF,EACzB7H,KAAK2C,mBAAqBkF,EAC1B,K,CAEF,IAAK,MAAO,CACV,MAAME,EAAiB/B,EAAYP,OAAS,EAE5CzF,KAAKoD,YAAc,KACnBuC,EAAMC,iBACN5F,KAAK0F,eAAeC,GACpB3F,KAAK8F,qBAAqBiC,GAC1B/H,KAAK4H,aAAa/C,KAAK,CACrBS,SAAUC,EAAYwC,KAGxB,GAAIpC,EAAMsB,UAAYtB,EAAMwB,QAAS,CACnCnH,KAAK8H,0BAA0BC,E,CAGjC/H,KAAK4C,kBAAoBmF,EACzB/H,KAAK2C,mBAAqBoF,EAC1B,K,CAEF,IAAK,IACH,IAAKf,EAAuB,CAC1BhH,KAAKoD,YAAc,K,CAErB,GAAIpD,KAAK6D,WAAa7D,KAAK4D,iBAAkB,CAC3C,K,KACK,CACL,GAAK+B,EAAMQ,OAAuBC,KAAOpG,KAAKqC,gBAAiB,CAC7DrC,KAAKyE,iBAAiB,K,EAG1B,MACF,IAAK,QACHkB,EAAMC,iBACN,IAAKoB,EAAuB,CAC1BhH,KAAKoD,YAAc,K,CAErBpD,KAAK0H,mBAAmB/B,EAAOvB,GAC/B,MACF,IAAK,SACH,GAAIpE,KAAK0E,KAAM,CACbiB,EAAMqC,0B,CAERhI,KAAKyE,iBAAiB,OACtBzE,KAAK4H,aAAa/C,KAAK,CAAES,SAAUL,YACnC,MACF,IAAK,IAGH,GACGgD,KAAiBtC,EAAMuB,UACtBe,KAAiBtC,EAAMwB,QACzB,CACAnH,KAAKkI,sBACLlI,KAAK4C,kBAAoB,KACzB5C,KAAK2C,mBAAqB,I,CAE5B,MACF,IAAK,QACL,IAAK,MACH,GAAIgD,EAAMrE,MAAQ,QAAS,CACzBtB,KAAKgD,aAAe,I,CAEtB,GAAIhD,KAAK6D,UAAW,CAClB7D,KAAKoD,YAAc,I,CAErB,GAAIpD,KAAK2D,YAAa,CACpB,GAAI3D,KAAK0E,OAASiB,EAAMsB,UAAYjH,KAAKmI,gBAAiB,CACxDxC,EAAMC,iBACN5F,KAAKmI,gBAAgBnD,QACrBhF,KAAK+C,iBAAmB,KACxB/C,KAAK8C,iBAAmB,KACxB9C,KAAKkE,kBAAoBe,S,MAEtB,CACLjF,KAAKqD,yBAA2B,I,CAElC,MACF,QACE,IAAK2D,EAAuB,CAC1BhH,KAAKoD,YAAc,K,CAErBpD,KAAKoI,2BAA2BpC,EAAa5B,G,GAK7CpE,KAAAwE,cAAiBJ,IACvB,MAAM4B,EAAchG,KAAK6F,iBAEzB,GAAIG,EAAY5B,KAA4Ba,UAAW,CACrDjF,KAAKoF,iBAAiBP,KAAK,CACzBQ,MAAOW,EAAY5B,GAAwBpE,KAAKgE,cAGlD,GAAIhE,KAAKyD,cAAe,CACtBzD,KAAKkE,kBAAoBe,UACzBjF,KAAK4H,aAAa/C,KAAK,CAAES,SAAUL,W,EAIvC,GAAIjF,KAAKyD,cAAe,CACtB,IAAKzD,KAAKyC,YAAa,CACrBzC,KAAKyE,iBAAiB,M,KACjB,CACJzE,KAAKqI,SAAoCC,U,IAKxCtI,KAAAuI,kBAAqB5C,IAC3B,MAAMN,MAAEA,EAAKmD,MAAEA,GAAW7C,EAAMQ,OAAyBsC,QAEzD,GAAIzI,KAAK2D,YAAa,CACpB,MAAMqC,EAAchG,KAAK6F,iBACzB,MAAMV,EAAsBa,EAAY1B,WACrCC,GAAWA,EAAOc,QAAUA,IAG/BrF,KAAK0H,mBAAmB/B,EAAOR,EAAqB,MACpDnF,KAAK6C,mBAAqBwC,GAAS,I,KAC9B,CACLrF,KAAKoF,iBAAiBP,KAAK,CAAEQ,QAAOmD,UACpCxI,KAAKyE,iBAAiB,M,CAGxBzE,KAAKkE,kBAAoBe,SAAS,EAG5BjF,KAAA0I,YAAc,KACpB1I,KAAK2I,mBAAmB9D,KAAK,CAAEQ,MAAOrF,KAAKqF,OAAQ,EAG7CrF,KAAA4I,mBAAsBC,IAC5B,GAAIA,EAAGvH,MAAQ,SAAWuH,EAAGvH,MAAQ,IAAK,CACxCuH,EAAGjD,iBACH5F,KAAK2I,mBAAmB9D,KAAK,CAAEQ,MAAOrF,KAAKqF,MAAOyD,WAAYD,EAAGvH,K,GAI7DtB,KAAA+I,WAAcpD,I,YACpB,GAAIA,EAAMqD,gBAAkBhJ,KAAK+E,QAAS,CACxC,GAAIY,EAAMqD,gBAAkBhJ,KAAKmI,gBAAiB,EAChDrD,EAAA9E,KAAKiJ,QAAI,MAAAnE,SAAA,SAAAA,EAAEoE,gBAAgBlJ,KAAKoC,kB,CAGlC,OAEI+G,EAAAnJ,KAAKiJ,QAAI,MAAAE,SAAA,SAAAA,EAAEC,SAASzD,EAAMqD,iBAC1BrD,EAAMqD,gBAAkBhJ,KAAKmI,iBAE/B,CACAnI,KAAKyE,iBAAiB,MAAOzE,KAAKwC,uBAClC6G,EAAArJ,KAAKiJ,QAAI,MAAAI,SAAA,SAAAA,EAAEH,gBAAgBlJ,KAAKoC,mBAChCpC,KAAK4C,kBAAoB,KACzB5C,KAAK2C,mBAAqB,I,MAEvB,CACL3C,KAAKyE,iBAAiB,OACtBzE,KAAK8C,iBAAmB,MACxBwG,EAAAtJ,KAAKiJ,QAAI,MAAAK,SAAA,SAAAA,EAAEJ,gBAAgBlJ,KAAKoC,mBAChCpC,KAAK4C,kBAAoB,KACzB5C,KAAK2C,mBAAqB,I,CAE5B,IAAK3C,KAAK6D,UAAW7D,KAAKwC,uBAAyBmD,EAAMqD,aAAa,EAGhEhJ,KAAAuJ,gBAAmB5D,IACzBA,EAAMC,gBAAgB,EAGhB5F,KAAAwJ,kBAAqB7D,IAC3B,GAAI3F,KAAKuD,iBAAmB,YAAa,CACvCvD,KAAKyJ,0BAA0B9D,E,MAC1B,GAAI3F,KAAKuD,iBAAmB,WAAavD,KAAK6D,UAAW,CAC9D7D,KAAK+G,gCAAgCpB,E,GAIjC3F,KAAA0J,gBAAmB/D,IACzB,GAAIA,EAAMrE,MAAQ,OAASqE,EAAMsB,SAAU,CACzCjH,KAAK8C,iBAAmB,K,CAE1B,GAAI6C,EAAMrE,MAAQ,SAAWtB,KAAKuC,uBAAwB,CACxDvC,KAAKuC,uBAAyB,MAC9BoD,EAAMqC,0B,CAGR,GAAIrC,EAAMrE,MAAQ,QAAS,CACzBtB,KAAKgD,aAAe,K,GAIhBhD,KAAA2J,qBAAuB,K,MAC7B3J,KAAKoD,YAAc,OACnB0B,EAAA9E,KAAKiJ,QAAI,MAAAnE,SAAA,SAAAA,EAAEE,QACXhF,KAAKkI,sBACLlI,KAAK4C,kBAAoB,KACzB5C,KAAK2C,mBAAqB,IAAI,EAGxB3C,KAAA4J,oBAAuBjE,I,MAC7B3F,KAAKwH,KAAKqC,UAAUC,OAAO,gCAC3B,MAAKhF,EAAA9E,KAAKiJ,QAAI,MAAAnE,SAAA,SAAAA,EAAEsE,SAASzD,EAAMqD,gBAA+B,CAC5DhJ,KAAKyE,iBAAiB,MAAO,M,GAIzBzE,KAAA+J,qBAAuB,KAC7B/J,KAAKwH,KAAKqC,UAAUG,IAAI,gCACxBhK,KAAK4C,kBAAoB,KACzB5C,KAAK2C,mBAAqB,IAAI,EAIxB3C,KAAAiK,yBAA4BtE,IAClCA,EAAMC,gBAAgB,EAKhB5F,KAAA2H,wBAA0B,CAChChC,EACAuE,EACA7F,KAEA,GACErE,KAAK2D,aACLgC,EAAMsB,WACLjH,KAAKuG,iBAAiB2D,GACvB,CACAlK,KAAKqG,wBAAwBhC,EAAS6F,GACtClK,KAAK2C,mBAAqBuH,C,GAMtBlK,KAAA8H,0BAA4B,CAClCqC,EACAC,EAAuB,MACvBC,EAAqC,QAErCrK,KAAKgD,aAAe,MAEpB,MAAMsH,EACJD,IAAwB,KACpBrK,KAAKuK,0BAA0BH,GAC/BC,EACN,GAAIC,IAA2B,KAAM,CACnC,MAAME,EAAkB,GAExB,GAAIF,EAAyBH,EAAuB,CAClD,IACE,IAAIM,EAAIH,EACRG,EAAIN,EAAwB,EAC5BM,IACA,CACAD,EAAgBE,KAAKD,E,MAElB,CACL,IACE,IAAIA,EAAIH,EACRG,EAAIN,EAAwB,EAC5BM,IACA,CACAD,EAAgBE,KAAKD,E,EAIzBD,EAAgB1D,SACb6D,IACE3K,KAAKuG,iBAAiBoE,IAAgB3K,KAAKwE,cAAcmG,KAE9D3K,KAAK0G,wBAAwB8D,E,GAIzBxK,KAAA0H,mBAAqB,CAC3B/B,EACAgF,EACAP,EAAuB,SAEvB,MAAMpE,EAAchG,KAAK6F,iBACzB,MAAMyE,EACJtK,KAAKuK,0BAA0BH,GACjC,GAAIzE,EAAMsB,UAAYqD,IAA2B,KAAM,CACrDtK,KAAK8H,0BACH6C,EACAP,EACAE,E,KAEG,CACLtK,KAAKqG,wBAAwBL,EAAa2E,E,CAG5C3K,KAAK4C,kBAAoB+H,EACzB3K,KAAK2C,mBAAqBgI,CAAW,EAG/B3K,KAAAuK,0BACNH,GAEOA,GAAwBpK,KAAK4C,oBAAsB,KACtD5C,KAAK4C,kBACL5C,KAAK2C,qBAAuB,KAC5B3C,KAAK2C,mBACL,KAGE3C,KAAAkI,oBAAsB,K,QAG5BlI,KAAK4K,oBAAoB/F,KAAK,CAC5BgG,QACG7K,KAAKqF,WAAWP,EAAA9E,KAAKqF,SAAK,MAAAP,SAAA,SAAAA,EAAEW,UAAWzF,KAAKiD,iBAAiBwC,UAGlE,KAAI0D,EAAAnJ,KAAKqF,SAAK,MAAA8D,SAAA,SAAAA,EAAE1D,UAAWzF,KAAKiD,iBAAiBwC,OAAQ,CACvDzF,KAAK8K,QAAQjG,M,GAIT7E,KAAA+K,iBAAmB,CAACC,EAAmB1J,KAC7CtB,KAAKiL,aAAapG,KAAK,CAAEmG,SAAUA,EAAU1J,IAAKA,GAAM,EAMlDtB,KAAAyJ,0BAA6B9D,I,QACnCA,EAAMuF,aAAe,KACrB,MAAM/F,EAAsBnF,KAAKiD,iBAAiBqB,WAC/CC,GAAWA,EAAOvE,KAAKgE,cAAgBhE,KAAKqF,QAG/C,MAAM8F,IACFnL,KAAK+E,SAAW/E,KAAK+E,QAAQqG,UAAY,QAE7CpL,KAAKoD,YAAc,MAEnB,OAAQuC,EAAMrE,KACZ,IAAK,IACHqE,EAAMC,iBACN,MACF,IAAK,UACH,IAAK5F,KAAKyC,YAAa,CACrBkD,EAAMC,iBACN5F,KAAKwF,uBAAuBL,GAC5BnF,KAAKoD,YAAc,I,CAErB,MACF,IAAK,YACH,IAAKpD,KAAKyC,YAAa,CACrBkD,EAAMC,iBACN5F,KAAKkF,mBAAmBC,GACxBnF,KAAKoD,YAAc,I,CAErB,MACF,IAAK,OACHpD,KAAKoF,iBAAiBP,KAAK,CACzBQ,MAAOrF,KAAKiD,iBAAiB,GAAGjD,KAAKgE,cAEvChE,KAAKoD,YAAc,KACnB,MACF,IAAK,MACHpD,KAAKoF,iBAAiBP,KAAK,CACzBQ,MACErF,KAAKiD,iBAAiBjD,KAAKiD,iBAAiBwC,OAAS,GACnDzF,KAAKgE,cAGXhE,KAAKoD,YAAc,KACnB,MACF,IAAK,SACFpD,KAAKyC,aAAezC,KAAKyE,iBAAiB,OAC3C,MACF,IAAK,SACHzE,KAAKyE,iBAAiB,OACtB,MACF,IAAK,YACH,GAAI0G,EAAoB,EACtBrG,EAAA9E,KAAK+E,WAAO,MAAAD,SAAA,SAAAA,EAAEE,O,CAEhB,MACF,IAAK,QACH,MACF,QACE,GAAImG,GAAsBxF,EAAMrE,MAAQ,QAAUtB,KAAKyC,YAAa,EAClE0G,EAAAnJ,KAAK+E,WAAO,MAAAoE,SAAA,SAAAA,EAAEnE,O,CAEhB,GAAIW,EAAMrE,IAAImE,SAAW,EAAG,CAC1BzF,KAAKoD,YAAc,I,CAErB,MAEJpD,KAAK+K,iBAAiB/K,KAAKoD,YAAauC,EAAMrE,IAAI,EAG5CtB,KAAAuF,YAAeF,GACd,GAAGrF,KAAKqL,UAAUhG,IAGnBrF,KAAAsL,mBAAqB,CAC3B/G,EACAgH,KAEA,IAAIC,EAAYjH,EAAOvE,KAAK0D,YAE5B,GAAIa,EAAOkH,YAAa,CACtBD,EAAY,GAAGA,MAAcjH,EAAOkH,a,CAGtC,GAAIlH,EAAOmH,QAAS,CAClBF,EAAY,GAAGA,MAAcjH,EAAOmH,QAAQF,W,CAG9C,GAAID,EAAc,CAChB,MAAO,GAAGC,MAAcD,EAAavL,KAAK0D,mB,KACrC,CACL,OAAO8H,C,GAIHxL,KAAA2L,iBAAoBtH,IAC1B,IAAIuH,EAAyB,GAC7B,GAAIvH,EAAQwH,KAAM,CAChBD,EAASvH,EAAQwH,MAAK,CAACC,EAASC,IAC9BD,EAAQE,cAAgBD,EAAQC,aAAe,EAAI,G,CAGvD,OAAOJ,CAAM,EAGP5L,KAAAoH,0BAA4B,KAClC,MAAMpB,EAAchG,KAAK6F,iBAEzB,OAAOG,EAAY1B,WAChBC,GAAWA,EAAOvE,KAAKgE,cAAgBhE,KAAKkE,mBAC9C,EAGKlE,KAAAiM,aAAejM,KAAKuD,iBAAmB,SAEvCvD,KAAAkM,iBAAoBjD,I,MAC1B,MAAMkD,EAAiBnM,KAAK+D,cACvB/D,KAAKwH,KAAK4E,cACT,kBAAkBpM,KAAKkE,uBAExB+E,EAAKmD,cAAc,iCAExB,GAAID,EAAgB,CAClB,MAAME,EAAQF,EAAeG,UAAYH,EAAeI,aACxD,GACEF,EAAQpD,EAAKuD,UAAYvD,EAAKsD,cAC9BF,EAAQpD,EAAKuD,UAAYvD,EAAKsD,aAC9B,CACAtD,EAAKuD,UAAYL,EAAeG,S,EAIlCxH,EAAA9E,KAAKiJ,QAAI,MAAAnE,SAAA,SAAAA,EAAE2H,aAAazM,KAAKoC,kBAAmB+J,EAAe/F,IAC/D+F,EAAenH,O,GAMXhF,KAAA0M,qBAAuB,KAC7B,GAAI1M,KAAKqE,QAAQoB,OAAS,GAAKzF,KAAKqE,QAAQwC,IAAK,CAC/C7G,KAAKqE,QAAQwC,KAAKtC,IAChB,GAAIA,EAAOoI,SAAU,CACnBpI,EAAOoI,SAAS9F,KACbtC,IAAYA,EAAOtE,UAAYD,KAAKiD,iBAAiByH,KAAKnG,I,MAExD,IAAKA,EAAOtE,SAAU,CAC3BD,KAAKiD,iBAAiByH,KAAKnG,E,KAIjCvE,KAAKiD,iBAAmBjD,KAAK2L,iBAAiB3L,KAAKiD,kBACnDjD,KAAK4M,oBAAoB/H,KAAK,CAAER,QAASrE,KAAKiD,kBAAmB,EAG3DjD,KAAA6M,iBAAmB,K,MACzB,IAAIC,EAAgB,EACpB9M,KAAKwH,KACFC,iBAAiB,gCACjBX,SAASvC,GAAYuI,GAAiBvI,EAAOwI,eAEhD,GAAID,GAAiB,IAAK,EACxBhI,EAAA9E,KAAKiJ,QAAI,MAAAnE,SAAA,SAAAA,EAAE+E,UAAUG,IAAI,c,GAIrBhK,KAAAgN,kBAAqBnE,IAC3B7I,KAAKiN,YAAYpI,KAAK,CAAEgE,MAAK,EAqBvB7I,KAAAkN,cAAgB,CAAC3I,EAAsB4I,K,MAC7C,MAAMC,IACF7I,EAAOvE,KAAKgE,eACZhE,KAAKqF,OACP8H,KACArI,EAAA9E,KAAKqI,YAAQ,MAAAvD,SAAA,SAAAA,EAAEsG,WAAYpL,KAAKsC,eAElC,OACElB,EAACiM,EAAQ,KACN9I,EAAO+I,SAAWlM,EAAA,wBAAsBf,KAAK,SAC9Ce,EAAA,OACEG,MAAO,CACL,wBAAyB,KACzB,kBAAmB6L,IAGrBhM,EAAA,OAAKG,MAAM,gBACRgD,EAAOgJ,MACNnM,EAAA,OACEG,MAAM,cACNK,UAAW2C,EAAOgJ,KAAI,cACV,SAGhBnM,EAAA,iBAAeoM,QAAQ,OAAM,cAAa,QACvCjJ,EAAOvE,KAAK0D,cAGhBa,EAAOkH,aACNrK,EAAA,iBACEgF,GAAI,GAAGpG,KAAKuF,YAAYhB,EAAOvE,KAAKgE,2BACpCzC,MAAM,qBACNiM,QAAQ,UAAS,cACL,QAEZpM,EAAA,SAAImD,EAAOkH,cAGdlH,EAAOmH,SACNtK,EAAA,OACEG,MAAM,iBACNK,UAAW2C,EAAOmH,QAAQ+B,UAAS,cACvB,UAIjBL,GAAiBhM,EAAA,QAAMG,MAAM,aAAaK,UAAW8L,IAC7C,EAIP1N,KAAA2N,cAAgB,CACtBpJ,EACA4I,EACA3G,EACA+E,KAEA,MAAM7G,KACJA,EAAItB,YACJA,EAAW6I,aACXA,EAAY9I,yBACZA,EAAwBe,kBACxBA,EAAiBG,QACjBA,GACErE,KAEJ,OACEoB,EAAA,MACEgF,GAAIpG,KAAKuF,YAAYhB,EAAOvE,KAAKgE,aACjCzC,MAAO,CACLgD,OAAQ,KACR,iBAAkB0H,GACb7I,GAAeD,IAChBoB,EAAOvE,KAAKgE,cAAgBE,EAC5Bd,GAAe+J,EACnB,6BACE5I,EAAOyH,aACP3H,EAAQmC,EAAQ,KACfnC,EAAQmC,EAAQ,GAAGwF,aAEtB,oBAAqBzH,EAAOtE,SAC5B,mBAAoBsE,EAAO+I,QAC3BM,UAAWrJ,EAAO0B,UAEpB4H,KAAK,SACLC,SACEpJ,IACCyI,GAAY5I,EAAOvE,KAAKgE,cAAgBE,IACzCd,EACI,IACA,KAAI,aAEEpD,KAAKsL,mBAAmB/G,EAAQgH,GAAa,gBAC1C4B,EAAW,OAAS,QAAO,gBAC3B5I,EAAOtE,SAAW,OAAS,QAC1C8N,SACGxJ,EAAO0B,WAAa1B,EAAO+I,QACxBtN,KAAKuI,kBACLtD,UAEN+I,OAAQhO,KAAK+I,WACbkF,YAAajO,KAAKuJ,gBAAe,aACrBhF,EAAOvE,KAAKgE,YAAW,aACvBO,EAAOvE,KAAK0D,aAEvBa,EAAO0B,SACN7E,EAACiM,EAAQ,KACPjM,EAAA,OAAKG,MAAM,sBACTH,EAAA,OACEG,MAAM,iBAAgB,kBACN,cAChB2M,MAAM,6BACNC,QAAQ,YACRC,KAAK,WAELhN,EAAA,SAAOgF,GAAG,eAAa,SACvBhF,EAAA,KAAGgF,GAAG,iBACJhF,EAAA,QACEgF,GAAG,SACHiI,EAAE,mLAIRjN,EAAA,iBAAeoM,QAAQ,SACpBjJ,EAAOvE,KAAK0D,cAGjBtC,EAAA,aACEf,KAAK,QACLmN,QAAQ,WACRO,QAAS/N,KAAK0I,YACd4F,UAAWtO,KAAK4I,mBAChBoF,OAAQhO,KAAKgN,kBACb5G,GAAG,gBAAc,UAMrBpG,KAAKkN,cAAc3I,EAAQ4I,GAE1B,C,CAvuCT,gBAAAoB,GACE,IAAKvO,KAAK0E,MAAQ1E,KAAKwO,eAAgB,CACrCxO,KAAKwO,eAAeC,UACpBzO,KAAKwO,eAAiB,I,EAuC1B,mBAAAE,CAAoBC,GAClB3O,KAAKyC,YAAckM,EAAWC,MAAMC,GAAQA,EAAI5I,WAChDjG,KAAK0C,UAAYiM,EAAWC,MAAMC,GAAQA,EAAIvB,UAC9CtN,KAAKiD,iBAAmB,GACxBjD,KAAK0M,sB,CA0DP,iBAAAoC,GACE,GAAI9O,KAAK6D,UAAW,CAClB,GAAI7D,KAAK8D,aAAe,aAAc9D,KAAK8F,qBAAqB,GAChE9F,KAAKmD,yBAA2B,I,EAIpC,oBAAA4L,G,WACEjK,EAAA9E,KAAKwO,kBAAc,MAAA1J,SAAA,SAAAA,EAAE2J,WACrBtF,EAAAnJ,KAAKqI,YAAQ,MAAAc,SAAA,SAAAA,EAAE6F,oBAAoB,UAAWhP,KAAKiE,sBACnDoF,EAAArJ,KAAKqI,YAAQ,MAAAgB,SAAA,SAAAA,EAAE2F,oBACb,iBACAhP,KAAKmE,mB,CAIT,iBAAAxD,G,YACEX,KAAK0M,wBACL5H,EAAA9E,KAAKqI,YAAQ,MAAAvD,SAAA,SAAAA,EAAEmK,iBAAiB,UAAWjP,KAAKiE,sBAChDkF,EAAAnJ,KAAKqI,YAAQ,MAAAc,SAAA,SAAAA,EAAE8F,iBAAiB,iBAAkBjP,KAAKmE,oBACvDnE,KAAKyC,aAAc4G,EAAArJ,KAAKqE,WAAO,MAAAgF,SAAA,SAAAA,EAAEuF,MAAMC,GAAQA,EAAI5I,WACnDjG,KAAK0C,WAAY4G,EAAAtJ,KAAKqE,WAAO,MAAAiF,SAAA,SAAAA,EAAEsF,MAAMC,GAAQA,EAAIvB,S,CAGnD,gBAAA1M,GACE,GACEZ,KAAK6D,WACJ7D,KAAKqI,SAAoC6G,qBAC1C,CACAlP,KAAKkD,wBAA0B,I,CAGjCiM,EACE,CACE,CAAEC,KAAMpP,KAAK0E,KAAM2K,SAAU,QAC7B,CAAED,KAAMpP,KAAKqE,QAASgL,SAAU,WAChC,CAAED,KAAMpP,KAAKqL,OAAQgE,SAAU,WAC/B,CAAED,KAAMpP,KAAKsP,WAAYD,SAAU,gBAGrC,O,CAIJ,kBAAAE,GACE,MAAMC,EAAsBxP,KAAKqE,QAAQuK,MACtCrK,GAAWA,EAAOvE,KAAKgE,cAAgBhE,KAAKqF,QAG/C,GACErF,KAAKiJ,MACLjJ,KAAK0E,MACL1E,KAAKqE,QAAQoB,SAAW,IACvBzF,KAAK+C,iBACN,CACA,GACE/C,KAAKqF,OACLrF,KAAKoD,aACLoM,GACAxP,KAAKwD,sBACJxD,KAAK4D,iBACN,CACA5D,KAAKkM,iBAAiBlM,KAAKiJ,K,MACtB,GAAIjJ,KAAK+D,cAAe,CAC7B/D,KAAKiJ,KAAKjE,O,MACL,KACHhF,KAAKkE,oBACNlE,KAAKkD,0BACLlD,KAAKqD,yBACN,CACA,MAAMoM,EAAgBzP,KAAKwH,KAAK4E,cAC9B,kBAAkBpM,KAAKkE,uBAGzB,GAAIuL,EAAe,CACjBzP,KAAKiJ,KAAKwD,aAAazM,KAAKoC,kBAAmBqN,EAAcrJ,IAC7DqJ,EAAczK,O,OAEX,GAAIhF,KAAK+E,SAAW/E,KAAK+E,QAAQqG,UAAY,QAAS,CAC3DpL,KAAKiJ,KAAKjE,O,EAId,GAAIhF,KAAKiJ,MAAQjJ,KAAK0E,OAAS1E,KAAKqF,OAASrF,KAAK+D,cAAe,CAC/D/D,KAAKkM,iBAAiBlM,KAAKiJ,K,CAG7BjJ,KAAK+C,iBAAmB,K,CAG1B,kBAAA2M,GACE,GAAI1P,KAAK0E,OAAS1E,KAAKwO,gBAAkBxO,KAAK2P,SAAU,CACtD3P,KAAK4P,aAAa5P,KAAK2P,S,CAGzB,GAAI3P,KAAK0E,QAAU1E,KAAKqE,QAAQoB,OAAQ,CACtCzF,KAAK6M,kB,EAQT,qBAAMgD,GACJ,IAAK7P,KAAK8C,iBAAkB,CAC1B9C,KAAK4E,gBAAgBC,KAAK,CAAEH,MAAO1E,KAAK0E,OACxC1E,KAAKoD,YAAc,K,CAErBpD,KAAK8C,iBAAmB,K,CAS1B,wBAAMgN,CAAmBnK,GACvB,GAAI3F,KAAKuD,iBAAmB,YAAa,CACvCvD,KAAKkG,8BAA8BP,E,KAC9B,CACL3F,KAAK+G,gCAAgCpB,E,EAQzC,0BAAMoK,GACJ/P,KAAK8F,qBAAqB,E,CAS5B,kBAAM8J,CAAaI,GAEjBhQ,KAAKwO,eAAiByB,EAAaD,EAAQhQ,KAAKwH,KAAI0I,OAAAC,OAAA,CAClDC,UAAW,eACXC,UAAW,CACT,CACE5O,KAAM,SACN4C,QAAS,CACPiM,OAAQ,CAAC,EAAG,KAGhB,CACE7O,KAAM,OACN4C,QAAS,CACPkM,mBAAoB,CAAC,aACrBC,aAAc,eAIjBxQ,KAAKsD,a,CASZ,4BAAMmN,CAAmDC,GACvD1Q,KAAKsD,YAAcoN,C,CAuzBb,0BAAAtI,CACNpC,EACA5B,GAEA,IAAK4B,EAAY5B,GAAyB,OAE1C,GAAIpE,KAAK6D,UAAW,CACjB7D,KAAKqI,SAAoCC,WAC1C,GAAItI,KAAK8D,aAAe,aAAc9D,KAAK8F,qBAAqB,E,CAGlE,GAAI9F,KAAK4D,iBAAkB,CACxB5D,KAAKqI,SAAiCC,U,CAGzCtI,KAAKkD,wBAA0B,I,CAoJjC,MAAA/B,GACE,MAAMmO,WACJA,EAAUjL,QACVA,EAAOgH,OACPA,EAAMhG,MACNA,EAAKnF,UACLA,EAASuC,YACTA,EAAWC,UACXA,EAASrC,KACTA,EAAIqE,KACJA,EAAIK,QACJA,EAAO3B,YACPA,EAAWiF,SACXA,EAAQ/F,eACRA,EAAcqB,YACdA,GACE3D,KAEJ,MAAM2Q,EAAsB,IAC1BtL,IAAK,MAALA,SAAK,SAALA,EAAOI,UAAWzF,KAAKiD,iBAAiBwC,OAAS,QAAU,eAG7D,MAAMmL,EAAe5Q,KAAKwH,KAAKqC,UAAUT,SAAS,cAElD,OACEhI,EAACC,EAAI,CAAAC,IAAA,2CACHC,MAAO,CACL,uBAAwBrB,EACxB,oBACG6E,IAAO,MAAPA,SAAO,SAAPA,EAASqG,WAAY,UACpB/C,IAAQ,MAARA,SAAQ,SAARA,EAAU+C,WAAY9I,GACxBG,GACAC,EACF,CAAC,WAAWrC,KAAS,KACrB,eAAgBqE,GAAQL,EAAQoB,SAAW,EAC3C,mBAAoB9B,IAGrBU,EAAQoB,SAAW,GAClBrE,EAAA,MAAAE,IAAA,2CACE8E,GAAIiF,EACJ9J,MAAM,OACNsM,KAAK,UAAS,aACF,GAAGyB,WAAmB,uBACZ3L,EAAc,OAAS,QAC7CmK,SACEpJ,IACCtB,KACA2B,IAAO,MAAPA,SAAO,SAAPA,EAASqG,WAAY,UACpB/C,IAAQ,MAARA,SAAQ,SAARA,EAAU+C,WAAY9I,GACpB,IACA,KAENuO,IAAMnQ,GAAQV,KAAKiJ,KAAOvI,EAC1B4N,UAAWtO,KAAKwJ,kBAChBsH,QAAS9Q,KAAK0J,gBACdsE,OAAQhO,KAAK+I,YAEZ/I,KAAK2L,iBAAiBtH,GAASwC,KAAI,CAACtC,EAAQiC,KAC3C,GAAIjC,EAAOoI,SAAU,CACnB,GAAIpI,EAAOoI,SAASlH,OAAS,EAAG,CAC9B,OACErE,EAAA,WACEA,EAAA,iBACEG,MAAM,qBACNsM,KAAK,eACLL,QAAQ,kBAERpM,EAAA,SAAImD,EAAOvE,KAAK0D,cAEjBa,EAAOoI,SAAS9F,KACdkK,GACCA,EAAYvI,OACZxI,KAAK2N,cACHoD,EACApN,EACI0B,IAAK,MAALA,SAAK,SAALA,EAAOoB,SAASsK,EAAY/Q,KAAKgE,aACjC+M,EAAY/Q,KAAKgE,cAAgBqB,EACrCmB,EACAjC,K,KAKL,CACL,OAAO,I,MAEJ,CAEL,OACEA,EAAOiE,OACPxI,KAAK2N,cACHpJ,EACAZ,EACI0B,IAAK,MAALA,SAAK,SAALA,EAAOoB,SAASlC,EAAOvE,KAAKgE,aAC5BO,EAAOvE,KAAKgE,cAAgBqB,EAChCmB,E,MAOXnC,EAAQoB,SAAW,GAClB9B,IACCjB,IACAD,IACAmO,GACCxP,EAAA,OAAAE,IAAA,2CAAKC,MAAM,cACTH,EAAA,iBAAAE,IAAA,4CACEF,EAAA,KAAAE,IAAA,4CAAI,GACF+D,EAAQA,EAAMI,OAAS,KACrBuL,EACFhR,KAAKqE,sBAGTjD,EAAA,aAAAE,IAAA,2CACEC,MAAM,oBAAmB,aACb,GAAGoP,iBAAmCrB,IAClDuB,IAAMnQ,GAAQV,KAAKmI,gBAAkBzH,EACrC8M,QAAQ,WACRO,QAAS/N,KAAK2J,qBACdsE,YAAajO,KAAKiK,yBAClB+D,OAAQhO,KAAK4J,oBACbqH,QAASjR,KAAK+J,qBACd1J,KAAMA,IAAS,QAAU,QAAU,UAElCsQ,I","ignoreList":[]}
@@ -0,0 +1,2 @@
1
+ import{r as t,c as e,h as o,H as i,g as n}from"./p-8e4e97b4.js";import{r}from"./p-70abcb2b.js";const s='/*! normalize.css v8.0.1 | MIT License | github.com/necolas/normalize.css */html{line-height:1.15;-webkit-text-size-adjust:100%;}body{margin:0}main{display:block}h1{font-size:2em;margin:0.67em 0}hr{box-sizing:content-box;height:0;overflow:visible;}pre{font-family:monospace, monospace;font-size:1em;}a{background-color:transparent}abbr[title]{border-bottom:none;text-decoration:underline;-webkit-text-decoration:underline dotted;text-decoration:underline dotted;}b,strong{font-weight:bolder}code,kbd,samp{font-family:monospace, monospace;font-size:1em;}small{font-size:80%}sub,sup{font-size:75%;line-height:0;position:relative;vertical-align:baseline}sub{bottom:-0.25em}sup{top:-0.5em}img{border-style:none}button,input,optgroup,select,textarea{font-family:inherit;font-size:100%;line-height:1.15;margin:0;}button,input{overflow:visible}button,select{text-transform:none}button,[type="button"],[type="reset"],[type="submit"]{-webkit-appearance:button}button::-moz-focus-inner,[type="button"]::-moz-focus-inner,[type="reset"]::-moz-focus-inner,[type="submit"]::-moz-focus-inner{border-style:none;padding:0}button:-moz-focusring,[type="button"]:-moz-focusring,[type="reset"]:-moz-focusring,[type="submit"]:-moz-focusring{outline:1px dotted ButtonText}fieldset{padding:0.35em 0.75em 0.625em}legend{box-sizing:border-box;color:inherit;display:table;max-width:100%;padding:0;white-space:normal;}progress{vertical-align:baseline}textarea{overflow:auto}[type="checkbox"],[type="radio"]{box-sizing:border-box;padding:0;}[type="number"]::-webkit-inner-spin-button,[type="number"]::-webkit-outer-spin-button{height:auto}[type="search"]{-webkit-appearance:textfield;outline-offset:-2px;}[type="search"]::-webkit-search-decoration{-webkit-appearance:none}::-webkit-file-upload-button{-webkit-appearance:button;font:inherit;}details{display:block}summary{display:list-item}template{display:none}[hidden]{display:none}html,body,div,span,applet,object,iframe,h1,h2,h3,h4,h5,h6,p,blockquote,pre,a,abbr,acronym,address,big,cite,code,del,dfn,em,img,ins,kbd,q,s,samp,small,strike,strong,sub,sup,tt,var,b,u,i,center,dl,dt,dd,ol,ul,li,fieldset,form,label,legend,table,caption,tbody,tfoot,thead,tr,th,td,article,aside,canvas,details,embed,figure,figcaption,footer,header,hgroup,menu,nav,output,ruby,section,summary,time,mark,audio,video{margin:0;padding:0;border:0;font-size:100%;font-style:inherit;vertical-align:baseline}:root{display:block}:host{display:flex;flex-direction:row;width:-moz-fit-content;width:fit-content;min-width:-moz-min-content;min-width:min-content;border:var(--ic-border-width) solid var(--ic-toggle-button-unselected-border);border-radius:var(--ic-border-radius)}:host(.ic-toggle-button-group-full-width){width:100%;max-width:100%}:host(.ic-toggle-button-group-loading){min-width:-moz-max-content;min-width:max-content}:host(:focus){box-shadow:var(--ic-border-focus);border-radius:var(--ic-border-radius);transition:var(--ic-transition-duration-fast);outline:none}::slotted(ic-toggle-button){flex-grow:1;width:-moz-min-content;width:min-content;--toggle-button-border:none !important;--toggle-button-border-hover:none !important;--toggle-button-border-active:none !important}::slotted(ic-toggle-button:not(:last-of-type)){border-right:var(--ic-border-width) solid\n var(--ic-toggle-button-unselected-border)}:host(.ic-toggle-button-group-disabled){border:var(--ic-space-1px) dashed\n var(--ic-toggle-button-unselected-border-disabled);pointer-events:none}:host(.ic-toggle-button-group-disabled) ::slotted(ic-toggle-button:not(:last-of-type)){border-right:var(--ic-space-1px) dashed\n var(--ic-toggle-button-unselected-border-disabled)}:host(.ic-toggle-button-group-monochrome){border:var(--ic-border-width) solid\n var(--ic-toggle-button-unselected-border-monochrome)}:host(.ic-toggle-button-group-monochrome) ::slotted(ic-toggle-button:not(:last-of-type)){border-right:var(--ic-border-width) solid\n var(--ic-toggle-button-unselected-border-monochrome)}:host(.ic-toggle-button-group-disabled.ic-toggle-button-group-monochrome){border:var(--ic-border-width) dashed\n var(--ic-toggle-button-unselected-border-disabled-monochrome)}:host(.ic-toggle-button-group-disabled.ic-toggle-button-group-monochrome) ::slotted(ic-toggle-button:not(:last-of-type)){border-right:var(--ic-border-width) solid\n var(--ic-toggle-button-unselected-border-disabled-monochrome)}:host(.ic-toggle-button-group-hide-outline){--ic-toggle-button-unselected-border:transparent;--ic-toggle-button-unselected-border-disabled:transparent;--ic-toggle-button-unselected-border-monochrome:transparent;--ic-toggle-button-unselected-border-disabled-monochrome:transparent}';const a=s;const l="IC-TOGGLE-BUTTON-GROUP";const d=class{constructor(o){t(this,o);this.icChange=e(this,"icChange",7);this.lastKeyPressed={key:null,shift:false};this.accessibleLabel="Toggle button group";this.disabled=false;this.fullWidth=false;this.loading=false;this.monochrome=false;this.outline=true;this.selectMethod="manual";this.selectType="single";this.size="medium";this.theme="inherit";this.tooltipPlacement="bottom";this.variant="default";this.keyListener=t=>{this.lastKeyPressed={key:t.key,shift:t.shiftKey}};this.handleHostFocus=({target:t,relatedTarget:e})=>{var o;if(this.loading||this.disabled)return;const i=t;const n=e;const r=Array.from((i===null||i===void 0?void 0:i.querySelectorAll("ic-toggle-button"))||[]);const s=r.every((t=>!t.checked));const{shift:a}=this.lastKeyPressed;if((s||this.selectType!=="single")&&!a||s&&a&&(n===null||n===void 0?void 0:n.tagName)==l){(o=r[0])===null||o===void 0?void 0:o.focus()}else if(!a||(n===null||n===void 0?void 0:n.tagName)==l){r.filter((t=>t.checked))[0].focus()}};this.handleKeyDown=({key:t})=>{if(t!=="ArrowDown"&&t!=="ArrowRight"&&t!=="ArrowLeft"&&t!=="ArrowUp")return;const e=this.getAllToggleButtons();const o=e[this.getNextItemToSelect(e.indexOf(e.filter((t=>t===document.activeElement))[0]),t==="ArrowDown"||t==="ArrowRight")];if(this.selectMethod==="auto"){o.checked=true;this.selectHandler(new CustomEvent("icToggleChecked",{detail:{checked:o.checked}}),o)}else{o.focus()}};this.getNextItemToSelect=(t,e)=>{const o=this.getAllToggleButtons();const i=o.length-1;if(t<1){t=0}let n=e?t+1:t-1;if(n<0){n=i}else if(n>i){n=0}if(o[n].disabled){n=this.getNextItemToSelect(n,e)}return n};this.getAllToggleButtons=()=>Array.from(this.el.querySelectorAll("ic-toggle-button"))}watchDisabledHandler(){this.getAllToggleButtons().forEach((t=>{t.disabled=this.disabled}));r(this.disabled,this.el)}watchFullWidthHandler(){this.getAllToggleButtons().forEach((t=>{t.fullWidth=this.fullWidth}))}watchLoadingHandler(){this.getAllToggleButtons().forEach((t=>{t.loading=this.loading}))}watchMonochromeHandler(){this.getAllToggleButtons().forEach((t=>{t.monochrome=this.monochrome}))}watchOutlineHandler(){this.getAllToggleButtons().forEach((t=>{t.outline=this.outline}))}watchSizeHandler(){this.getAllToggleButtons().forEach((t=>{t.size=this.size}))}watchThemeHandler(){this.getAllToggleButtons().forEach((t=>{t.theme=this.theme}))}watchTooltipPlacementHandler(){this.getAllToggleButtons().forEach((t=>{t.tooltipPlacement=this.tooltipPlacement}))}watchVariantHandler(){this.getAllToggleButtons().forEach((t=>{t.variant=this.variant}))}selectHandler(t,e){const o=this.getAllToggleButtons();let i=t.target;if(e)e.focus();if(this.selectType==="single"){if(!i&&e){i=e}o.forEach((t=>{if(t.id!==i.id&&t.checked){t.checked=false}}));this.icChange.emit({checked:t.detail.checked,selectedOption:i})}else{const t=o.filter((t=>t.checked&&!t.disabled));this.icChange.emit({checked:t.map((t=>t.checked)),toggledOptions:t.map((t=>({toggleButton:t}))),selectedOption:i})}}componentWillLoad(){if(this.selectType==="multi")this.selectMethod="manual";document.addEventListener("keydown",this.keyListener);r(this.disabled,this.el)}componentDidLoad(){this.getAllToggleButtons().forEach(((t,e)=>{var o,i,n;const r=(n=(i=(o=t.shadowRoot)===null||o===void 0?void 0:o.querySelector("ic-button"))===null||i===void 0?void 0:i.shadowRoot)===null||n===void 0?void 0:n.querySelector("button");if(r){const t=r.getAttribute("aria-label");const e=t?`${t}, `:"";r.setAttribute("aria-label",`${e}${this.accessibleLabel}`)}t.id=e.toString();t.tabIndex=-1;t.addEventListener("keydown",(t=>{this.handleKeyDown(t)}));t.classList.add("expand-toggle-group-child")}))}disconnectedCallback(){document===null||document===void 0?void 0:document.removeEventListener("keydown",this.keyListener)}render(){const{accessibleLabel:t,disabled:e,fullWidth:n,loading:r,monochrome:s,outline:a,theme:l}=this;return o(i,{key:"b76a2d77d20894bcbf3bd350945e8953c9c690ef",role:"group","aria-label":t,tabindex:0,class:{"ic-toggle-button-group-disabled":e,"ic-toggle-button-group-full-width":n,"ic-toggle-button-group-loading":r,"ic-toggle-button-group-monochrome":s,"ic-toggle-button-group-hide-outline":!a,[`ic-theme-${l}`]:l!=="inherit"},onFocus:this.handleHostFocus},o("slot",{key:"755e5420c42800c0d436adf366afe611edd8e529"}))}get el(){return n(this)}static get watchers(){return{disabled:["watchDisabledHandler"],fullWidth:["watchFullWidthHandler"],loading:["watchLoadingHandler"],monochrome:["watchMonochromeHandler"],outline:["watchOutlineHandler"],size:["watchSizeHandler"],theme:["watchThemeHandler"],tooltipPlacement:["watchTooltipPlacementHandler"],variant:["watchVariantHandler"]}}};d.style=a;export{d as ic_toggle_button_group};
2
+ //# sourceMappingURL=p-6b52e47f.entry.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["icToggleButtonGroupCss","IcToggleButtonGroupStyle0","TOGGLE_GROUP","ToggleButtonGroup","constructor","hostRef","this","lastKeyPressed","key","shift","accessibleLabel","disabled","fullWidth","loading","monochrome","outline","selectMethod","selectType","size","theme","tooltipPlacement","variant","keyListener","ev","shiftKey","handleHostFocus","target","relatedTarget","el","relEl","toggleButtons","Array","from","querySelectorAll","noToggleButtonsChecked","every","checked","tagName","_a","focus","filter","handleKeyDown","toggleButtonOptions","getAllToggleButtons","targetToggle","getNextItemToSelect","indexOf","document","activeElement","selectHandler","CustomEvent","detail","currentItem","movingDown","numToggles","length","nextItem","watchDisabledHandler","forEach","removeDisabledFalse","watchFullWidthHandler","watchLoadingHandler","watchMonochromeHandler","watchOutlineHandler","watchSizeHandler","watchThemeHandler","watchTooltipPlacementHandler","watchVariantHandler","tabTarget","allToggles","clickedToggle","id","icChange","emit","selectedOption","toggledOptions","map","opt","toggleButton","componentWillLoad","addEventListener","componentDidLoad","i","btn","_c","_b","shadowRoot","querySelector","btnAriaLabel","getAttribute","aria","setAttribute","toString","tabIndex","classList","add","disconnectedCallback","removeEventListener","render","h","Host","role","tabindex","class","onFocus"],"sources":["src/components/ic-toggle-button-group/ic-toggle-button-group.css?tag=ic-toggle-button-group&encapsulation=shadow","src/components/ic-toggle-button-group/ic-toggle-button-group.tsx"],"sourcesContent":["@import \"../../global/normalize.css\";\n\n/* PARENT HOST */\n\n:root {\n display: block;\n}\n\n:host {\n display: flex;\n flex-direction: row;\n width: fit-content;\n min-width: min-content;\n border: var(--ic-border-width) solid var(--ic-toggle-button-unselected-border);\n border-radius: var(--ic-border-radius);\n}\n\n:host(.ic-toggle-button-group-full-width) {\n width: 100%;\n max-width: 100%;\n}\n\n:host(.ic-toggle-button-group-loading) {\n min-width: max-content;\n}\n\n:host(:focus) {\n box-shadow: var(--ic-border-focus);\n border-radius: var(--ic-border-radius);\n transition: var(--ic-transition-duration-fast);\n outline: none;\n}\n\n/* CHILDREN SLOTTED */\n\n::slotted(ic-toggle-button) {\n flex-grow: 1;\n width: min-content;\n\n --toggle-button-border: none !important;\n --toggle-button-border-hover: none !important;\n --toggle-button-border-active: none !important;\n}\n\n::slotted(ic-toggle-button:not(:last-of-type)) {\n border-right: var(--ic-border-width) solid\n var(--ic-toggle-button-unselected-border);\n}\n\n/* DISABLED */\n:host(.ic-toggle-button-group-disabled) {\n border: var(--ic-space-1px) dashed\n var(--ic-toggle-button-unselected-border-disabled);\n pointer-events: none;\n}\n\n:host(.ic-toggle-button-group-disabled)\n ::slotted(ic-toggle-button:not(:last-of-type)) {\n border-right: var(--ic-space-1px) dashed\n var(--ic-toggle-button-unselected-border-disabled);\n}\n\n:host(.ic-toggle-button-group-monochrome) {\n border: var(--ic-border-width) solid\n var(--ic-toggle-button-unselected-border-monochrome);\n}\n\n:host(.ic-toggle-button-group-monochrome)\n ::slotted(ic-toggle-button:not(:last-of-type)) {\n border-right: var(--ic-border-width) solid\n var(--ic-toggle-button-unselected-border-monochrome);\n}\n\n:host(.ic-toggle-button-group-disabled.ic-toggle-button-group-monochrome) {\n border: var(--ic-border-width) dashed\n var(--ic-toggle-button-unselected-border-disabled-monochrome);\n}\n\n:host(.ic-toggle-button-group-disabled.ic-toggle-button-group-monochrome)\n ::slotted(ic-toggle-button:not(:last-of-type)) {\n border-right: var(--ic-border-width) solid\n var(--ic-toggle-button-unselected-border-disabled-monochrome);\n}\n\n:host(.ic-toggle-button-group-hide-outline) {\n --ic-toggle-button-unselected-border: transparent;\n --ic-toggle-button-unselected-border-disabled: transparent;\n --ic-toggle-button-unselected-border-monochrome: transparent;\n --ic-toggle-button-unselected-border-disabled-monochrome: transparent;\n}\n","import {\n Component,\n Host,\n h,\n Prop,\n Listen,\n Element,\n Event,\n EventEmitter,\n State,\n Watch,\n} from \"@stencil/core\";\nimport {\n IcSizes,\n IcSelectTypes,\n IcSelectMethodTypes,\n IcThemeMode,\n IcButtonTooltipPlacement,\n IcIconPlacementOptions,\n} from \"../../utils/types\";\nimport { IcChangeEventDetail } from \"./ic-toggle-button-group.types\";\nimport { removeDisabledFalse } from \"../../utils/helpers\";\n\ninterface lastKey {\n key: string | null;\n shift: boolean;\n}\n\nconst TOGGLE_GROUP = \"IC-TOGGLE-BUTTON-GROUP\";\n\n@Component({\n tag: \"ic-toggle-button-group\",\n styleUrl: \"ic-toggle-button-group.css\",\n shadow: true,\n})\nexport class ToggleButtonGroup {\n @Element() el: HTMLIcToggleButtonGroupElement;\n\n @State() lastKeyPressed: lastKey = {\n key: null,\n shift: false,\n };\n\n /**\n * The accessible label of the toggle button group component to provide context for screen reader users.\n */\n @Prop() accessibleLabel = \"Toggle button group\";\n\n /**\n * If `true`, the toggle button group will be set to the disabled state.\n */\n @Prop() disabled = false;\n @Watch(\"disabled\")\n watchDisabledHandler(): void {\n this.getAllToggleButtons().forEach((el) => {\n el.disabled = this.disabled;\n });\n removeDisabledFalse(this.disabled, this.el);\n }\n\n /**\n * If `true`, the toggle button group will fill the width of the container.\n */\n @Prop() fullWidth = false;\n @Watch(\"fullWidth\")\n watchFullWidthHandler(): void {\n this.getAllToggleButtons().forEach((el) => {\n el.fullWidth = this.fullWidth;\n });\n }\n\n /**\n * The placement of the icons in relation to the toggle button labels.\n */\n @Prop() iconPlacement?: IcIconPlacementOptions;\n\n /**\n * If `true`, the toggle button group will be in loading state.\n */\n @Prop() loading = false;\n @Watch(\"loading\")\n watchLoadingHandler(): void {\n this.getAllToggleButtons().forEach((el) => {\n el.loading = this.loading;\n });\n }\n\n /**\n * If `true`, the toggle button group will display as black in the light theme, and white in dark theme.\n */\n @Prop() monochrome = false;\n @Watch(\"monochrome\")\n watchMonochromeHandler(): void {\n this.getAllToggleButtons().forEach((el) => {\n el.monochrome = this.monochrome;\n });\n }\n\n /**\n * If `true`, the toggle button group will display with an outline.\n */\n @Prop() outline = true;\n @Watch(\"outline\")\n watchOutlineHandler(): void {\n this.getAllToggleButtons().forEach((el) => {\n el.outline = this.outline;\n });\n }\n\n /**\n * If `auto`, controls are toggled automatically when navigated to. If `manual`, the controls must be actioned to change their toggled state. The value of this prop is ignored if `selectType` is set to`multi`.\n */\n @Prop({ mutable: true }) selectMethod: IcSelectMethodTypes = \"manual\";\n\n /**\n * Sets whether single or multiple options can be toggled. If `multi`, then the `selectMethod` is always `manual`.\n */\n @Prop() selectType: IcSelectTypes = \"single\";\n\n /**\n * The size of the toggle buttons to be displayed. This does not affect the font size of the accessible label.\n */\n @Prop() size: IcSizes = \"medium\";\n @Watch(\"size\")\n watchSizeHandler(): void {\n this.getAllToggleButtons().forEach((el) => {\n el.size = this.size;\n });\n }\n\n /**\n * Sets the theme color to the dark or light theme color. \"inherit\" will set the color based on the system settings or ic-theme component.\n */\n @Prop() theme: IcThemeMode = \"inherit\";\n @Watch(\"theme\")\n watchThemeHandler(): void {\n this.getAllToggleButtons().forEach((el) => {\n el.theme = this.theme;\n });\n }\n\n /**\n * The position of the tooltip in relation to the toggle buttons.\n */\n @Prop() tooltipPlacement: IcButtonTooltipPlacement = \"bottom\";\n @Watch(\"tooltipPlacement\")\n watchTooltipPlacementHandler(): void {\n this.getAllToggleButtons().forEach((el) => {\n el.tooltipPlacement = this.tooltipPlacement;\n });\n }\n\n /**\n * The variant of the toggle button.\n */\n @Prop({ reflect: true }) variant: \"default\" | \"icon\" = \"default\";\n @Watch(\"variant\")\n watchVariantHandler(): void {\n this.getAllToggleButtons().forEach((el) => {\n el.variant = this.variant;\n });\n }\n\n /**\n * Emitted when a toggle button is selected.\n */\n @Event() icChange: EventEmitter<IcChangeEventDetail>;\n\n @Listen(\"icToggleChecked\")\n selectHandler(ev: CustomEvent, tabTarget?: HTMLIcToggleButtonElement): void {\n const allToggles = this.getAllToggleButtons();\n let clickedToggle = ev.target as HTMLIcToggleButtonElement;\n\n if (tabTarget) tabTarget.focus(); // tabTarget used in proxySelectHandler\n\n if (this.selectType === \"single\") {\n if (!clickedToggle && tabTarget) {\n clickedToggle = tabTarget;\n }\n allToggles.forEach((el) => {\n if (el.id !== clickedToggle.id && el.checked) {\n el.checked = false;\n }\n });\n\n this.icChange.emit({\n checked: ev.detail.checked,\n selectedOption: clickedToggle,\n });\n } else {\n const toggledOptions = allToggles.filter(\n (el) => el.checked && !el.disabled\n );\n\n this.icChange.emit({\n checked: toggledOptions.map((opt) => opt.checked),\n toggledOptions: toggledOptions.map((opt) => ({\n toggleButton: opt,\n })),\n selectedOption: clickedToggle,\n });\n }\n }\n\n componentWillLoad(): void {\n if (this.selectType === \"multi\") this.selectMethod = \"manual\";\n if (this.selectMethod === \"auto\") this.selectType === \"single\";\n document.addEventListener(\"keydown\", this.keyListener);\n removeDisabledFalse(this.disabled, this.el);\n }\n\n componentDidLoad(): void {\n this.getAllToggleButtons().forEach((el, i) => {\n const btn = el.shadowRoot\n ?.querySelector(\"ic-button\")\n ?.shadowRoot?.querySelector(\"button\");\n if (btn) {\n const btnAriaLabel = btn.getAttribute(\"aria-label\");\n const aria = btnAriaLabel ? `${btnAriaLabel}, ` : \"\";\n btn.setAttribute(\"aria-label\", `${aria}${this.accessibleLabel}`);\n }\n\n el.id = i.toString();\n el.tabIndex = -1;\n el.addEventListener(\"keydown\", (ev) => {\n this.handleKeyDown(ev);\n });\n el.classList.add(\"expand-toggle-group-child\");\n });\n }\n\n disconnectedCallback(): void {\n document?.removeEventListener(\"keydown\", this.keyListener);\n }\n\n private keyListener = (ev: KeyboardEvent) => {\n this.lastKeyPressed = {\n key: ev.key,\n shift: ev.shiftKey,\n };\n };\n\n private handleHostFocus = ({ target, relatedTarget }: FocusEvent) => {\n if (this.loading || this.disabled) return;\n\n const el = target as HTMLIcToggleButtonGroupElement | null;\n const relEl = relatedTarget as HTMLIcToggleButtonElement | null;\n const toggleButtons = Array.from(\n el?.querySelectorAll(\"ic-toggle-button\") || []\n );\n const noToggleButtonsChecked = toggleButtons.every((el) => !el.checked);\n const { shift } = this.lastKeyPressed;\n if (\n ((noToggleButtonsChecked || this.selectType !== \"single\") && !shift) ||\n (noToggleButtonsChecked && shift && relEl?.tagName == TOGGLE_GROUP)\n ) {\n toggleButtons[0]?.focus();\n } else if (!shift || relEl?.tagName == TOGGLE_GROUP) {\n // if checked is true and selectMethod is \"single\", focus that toggle\n toggleButtons.filter((el) => el.checked)[0].focus();\n }\n };\n\n private handleKeyDown = ({ key }: KeyboardEvent) => {\n if (\n key !== \"ArrowDown\" &&\n key !== \"ArrowRight\" &&\n key !== \"ArrowLeft\" &&\n key !== \"ArrowUp\"\n )\n return;\n\n const toggleButtonOptions = this.getAllToggleButtons();\n const targetToggle =\n toggleButtonOptions[\n this.getNextItemToSelect(\n toggleButtonOptions.indexOf(\n toggleButtonOptions.filter((el) => el === document.activeElement)[0]\n ),\n key === \"ArrowDown\" || key === \"ArrowRight\"\n )\n ];\n\n if (this.selectMethod === \"auto\") {\n // trigger selectHandler when unable to add 'target'\n targetToggle.checked = true;\n this.selectHandler(\n new CustomEvent(\"icToggleChecked\", {\n detail: {\n checked: targetToggle.checked,\n },\n }),\n targetToggle\n );\n } else {\n targetToggle.focus();\n }\n };\n\n private getNextItemToSelect = (currentItem: number, movingDown: boolean) => {\n const toggleButtonOptions = this.getAllToggleButtons();\n const numToggles = toggleButtonOptions.length - 1;\n\n if (currentItem < 1) {\n currentItem = 0;\n }\n\n let nextItem = movingDown ? currentItem + 1 : currentItem - 1;\n if (nextItem < 0) {\n nextItem = numToggles;\n } else if (nextItem > numToggles) {\n nextItem = 0;\n }\n\n if (toggleButtonOptions[nextItem].disabled) {\n nextItem = this.getNextItemToSelect(nextItem, movingDown);\n }\n\n return nextItem;\n };\n\n private getAllToggleButtons = () =>\n Array.from(this.el.querySelectorAll(\"ic-toggle-button\"));\n\n render() {\n const {\n accessibleLabel,\n disabled,\n fullWidth,\n loading,\n monochrome,\n outline,\n theme,\n } = this;\n\n return (\n <Host\n role=\"group\"\n aria-label={accessibleLabel}\n tabindex={0}\n class={{\n \"ic-toggle-button-group-disabled\": disabled,\n \"ic-toggle-button-group-full-width\": fullWidth,\n \"ic-toggle-button-group-loading\": loading,\n \"ic-toggle-button-group-monochrome\": monochrome,\n \"ic-toggle-button-group-hide-outline\": !outline,\n [`ic-theme-${theme}`]: theme !== \"inherit\",\n }}\n onFocus={this.handleHostFocus}\n >\n <slot></slot>\n </Host>\n );\n }\n}\n"],"mappings":"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","ignoreList":[]}
@@ -1,2 +1,2 @@
1
- import{r as t,c as o,h as e,H as n,g as c}from"./p-8e4e97b4.js";import{r,R as i,b as g,i as a}from"./p-70abcb2b.js";const l='/*! normalize.css v8.0.1 | MIT License | github.com/necolas/normalize.css */html{line-height:1.15;-webkit-text-size-adjust:100%;}body{margin:0}main{display:block}h1{font-size:2em;margin:0.67em 0}hr{box-sizing:content-box;height:0;overflow:visible;}pre{font-family:monospace, monospace;font-size:1em;}a{background-color:transparent}abbr[title]{border-bottom:none;text-decoration:underline;-webkit-text-decoration:underline dotted;text-decoration:underline dotted;}b,strong{font-weight:bolder}code,kbd,samp{font-family:monospace, monospace;font-size:1em;}small{font-size:80%}sub,sup{font-size:75%;line-height:0;position:relative;vertical-align:baseline}sub{bottom:-0.25em}sup{top:-0.5em}img{border-style:none}button,input,optgroup,select,textarea{font-family:inherit;font-size:100%;line-height:1.15;margin:0;}button,input{overflow:visible}button,select{text-transform:none}button,[type="button"],[type="reset"],[type="submit"]{-webkit-appearance:button}button::-moz-focus-inner,[type="button"]::-moz-focus-inner,[type="reset"]::-moz-focus-inner,[type="submit"]::-moz-focus-inner{border-style:none;padding:0}button:-moz-focusring,[type="button"]:-moz-focusring,[type="reset"]:-moz-focusring,[type="submit"]:-moz-focusring{outline:1px dotted ButtonText}fieldset{padding:0.35em 0.75em 0.625em}legend{box-sizing:border-box;color:inherit;display:table;max-width:100%;padding:0;white-space:normal;}progress{vertical-align:baseline}textarea{overflow:auto}[type="checkbox"],[type="radio"]{box-sizing:border-box;padding:0;}[type="number"]::-webkit-inner-spin-button,[type="number"]::-webkit-outer-spin-button{height:auto}[type="search"]{-webkit-appearance:textfield;outline-offset:-2px;}[type="search"]::-webkit-search-decoration{-webkit-appearance:none}::-webkit-file-upload-button{-webkit-appearance:button;font:inherit;}details{display:block}summary{display:list-item}template{display:none}[hidden]{display:none}html,body,div,span,applet,object,iframe,h1,h2,h3,h4,h5,h6,p,blockquote,pre,a,abbr,acronym,address,big,cite,code,del,dfn,em,img,ins,kbd,q,s,samp,small,strike,strong,sub,sup,tt,var,b,u,i,center,dl,dt,dd,ol,ul,li,fieldset,form,label,legend,table,caption,tbody,tfoot,thead,tr,th,td,article,aside,canvas,details,embed,figure,figcaption,footer,header,hgroup,menu,nav,output,ruby,section,summary,time,mark,audio,video{margin:0;padding:0;border:0;font-size:100%;font-style:inherit;vertical-align:baseline}:host{--toggle-button-border:var(--ic-toggle-button-unselected-border);--toggle-button-text-colour:var(--ic-toggle-button-unselected-text);--toggle-button-border-hover:var(--ic-toggle-button-unselected-border-hover);--toggle-button-text-colour-hover:var(\n --ic-toggle-button-unselected-text-hover\n );--toggle-button-border-active:var(\n --ic-toggle-button-unselected-border-pressed\n );--toggle-button-text-colour-active:var(\n --ic-toggle-button-unselected-text-pressed\n )}:host(:not(.expand-toggle-group-child)){display:inline-block;border-radius:var(--ic-border-radius);border:var(--ic-border-width) solid var(--toggle-button-border)}:host(.ic-toggle-button-full-width:not(.expand-toggle-group-child)){width:100%}:host(.ic-toggle-button-checked){--toggle-button-border:var(--ic-toggle-button-selected-border);--toggle-button-text-colour:var(--ic-toggle-button-selected-text);--toggle-button-border-hover:var(--ic-toggle-button-selected-border-hover);--toggle-button-text-colour-hover:var(--ic-toggle-button-selected-text);--toggle-button-border-active:var(\n --ic-toggle-button-selected-border-pressed\n );--toggle-button-text-colour-active:var(--ic-toggle-button-selected-text)}:host(.ic-toggle-button-monochrome){--toggle-button-border:var(--ic-toggle-button-unselected-border-monochrome);--toggle-button-text-colour:var(\n --ic-toggle-button-unselected-text-monochrome\n );--toggle-button-border-hover:var(\n --ic-toggle-button-unselected-border-hover-monochrome\n );--toggle-button-text-colour-hover:var(\n --ic-toggle-button-unselected-text-monochrome\n );--toggle-button-border-active:var(\n --ic-toggle-button-unselected-border-pressed-monochrome\n );--toggle-button-text-colour-active:var(\n --ic-toggle-button-unselected-text-monochrome\n )}:host(.ic-toggle-button-monochrome.ic-toggle-button-checked){--toggle-button-border:var(--ic-toggle-button-selected-border-monochrome);--toggle-button-text-colour:var(--ic-toggle-button-selected-text-monochrome);--toggle-button-border-hover:var(\n --ic-toggle-button-selected-border-hover-monochrome\n );--toggle-button-text-colour-hover:var(\n --ic-toggle-button-selected-text-monochrome\n );--toggle-button-border-active:var(\n --ic-toggle-button-selected-border-pressed-monochrome\n );--toggle-button-text-colour-active:var(\n --ic-toggle-button-selected-text-monochrome\n )}:host(.ic-toggle-button-disabled){--toggle-button-border:var(--ic-toggle-button-unselected-border-disabled);--toggle-button-text-colour:var(--ic-toggle-button-unselected-text-disabled)}:host(.ic-toggle-button-disabled.ic-toggle-button-monochrome){--toggle-button-border:var(\n --ic-toggle-button-unselected-border-disabled-monochrome\n );--toggle-button-text-colour:var(\n --ic-toggle-button-unselected-text-disabled-monochrome\n )}:host(.ic-toggle-button-disabled.ic-toggle-button-checked){--toggle-button-border:var(--ic-toggle-button-selected-border-disabled);--toggle-button-text-colour:var(--ic-toggle-button-selected-text-disabled)}:host(.ic-toggle-button-disabled.ic-toggle-button-checked.ic-toggle-button-monochrome){--toggle-button-border:var(\n --ic-toggle-button-selected-border-disabled-monochrome\n );--toggle-button-text-colour:var(\n --ic-toggle-button-selected-text-disabled-monochrome\n )}:host(.expand-toggle-group-child) ::part(button){width:100%}:host(.expand-toggle-group-child:not(.ic-toggle-button-loading)) ::part(button){min-height:inherit;height:auto}:host ic-button{--icon-width:var(--ic-space-lg);--icon-height:var(--ic-space-lg)}:host(.expand-toggle-group-child) ic-button{min-width:100%;min-height:100%;height:100%}:host(.expand-toggle-group-child) ::part(button):focus,:host(.expand-toggle-group-child.ic-toggle-button-checked) ::part(button):focus{box-shadow:inset 0 0 0 var(--ic-space-xxxs) var(--ic-action-default),\n var(--ic-border-focus)}:host(.expand-toggle-group-child.ic-toggle-button-light) ::part(button):focus,:host(.expand-toggle-group-child.ic-toggle-button-dark) ::part(button):focus{box-shadow:inset 0 0 0 var(--ic-space-xxxs) var(--ic-action-monochrome-dark),\n var(--ic-border-focus)}:host(:focus){z-index:1}:host ::part(button){border:none;color:var(--toggle-button-text-colour)}:host ::part(button):hover{color:var(--toggle-button-text-colour-hover);background-color:var(--ic-toggle-button-unselected-background-hover)}:host ::part(button):active{color:var(--toggle-button-text-colour-active);background-color:var(--ic-toggle-button-unselected-background-pressed)}:host ::part(button):focus{border:var(--ic-border-width) solid var(--toggle-button-border)}:host ::part(button):hover:focus{border:var(--ic-border-width) solid var(--toggle-button-border-hover)}:host ::part(button):active:focus{border:var(--ic-border-width) solid var(--toggle-button-border-active)}:host(.ic-toggle-button-disabled) ::part(button){color:var(--toggle-button-text-colour)}:host(:not(.expand-toggle-group-child)):has(ic-button:hover){border:var(--ic-border-width) solid var(--toggle-button-border-hover)}:host(:not(.expand-toggle-group-child)):has(ic-button:active){border:var(--ic-border-width) solid var(--toggle-button-border-active)}:host(:not(.expand-toggle-group-child).ic-toggle-button-disabled){border:var(--ic-border-width) dashed var(--toggle-button-border)}:host(.ic-toggle-button-checked) ::part(button){background-color:var(--ic-toggle-button-selected-background);box-shadow:inset 0 0 0 var(--ic-space-xxxs)\n var(--ic-toggle-button-selected-text)}:host(.ic-toggle-button-checked) ::part(button):focus{box-shadow:inset 0 0 0 var(--ic-space-xxxs)\n var(--ic-toggle-button-selected-border-focus),\n var(--ic-border-focus)}:host(.ic-toggle-button-checked) ::part(button):hover{background-color:var(--ic-toggle-button-selected-background-hover)}:host(.ic-toggle-button-checked) ::part(button):active,:host(.ic-toggle-button-icon.ic-toggle-button-checked) ::part(button):active{background-color:var(--ic-toggle-button-selected-background-pressed)}:host(.ic-toggle-button-monochrome) ::part(button):hover{background-color:var(\n --ic-toggle-button-unselected-background-hover-monochrome\n )}:host(.ic-toggle-button-monochrome) ::part(button):active{background-color:var(\n --ic-toggle-button-unselected-background-pressed-monochrome\n )}:host(.ic-toggle-button-monochrome.ic-toggle-button-checked) ::part(button){background-color:var(--ic-toggle-button-selected-background-monochrome)}:host(.ic-toggle-button-monochrome.ic-toggle-button-checked) ::part(button):hover{background-color:var(\n --ic-toggle-button-selected-background-hover-monochrome\n )}:host(.ic-toggle-button-monochrome.ic-toggle-button-checked) ::part(button):active,:host(.ic-toggle-button-icon.ic-toggle-button-monochrome.ic-toggle-button-checked) ::part(button):active{background-color:var(\n --ic-toggle-button-selected-background-pressed-monochrome\n )}:host(.ic-toggle-button-monochrome.ic-toggle-button-checked) ::part(button):focus{box-shadow:inset 0 0 0 var(--ic-space-xxxs)\n var(--ic-toggle-button-selected-text),\n var(--ic-border-focus)}:host(.ic-toggle-button-disabled.ic-toggle-button-checked) ::part(button),:host(.ic-toggle-button-icon.ic-toggle-button-disabled.ic-toggle-button-checked) ::part(button){background-color:transparent}:host(.ic-toggle-button-disabled.ic-toggle-button-checked) ::part(button),:host(.ic-toggle-button-icon.ic-toggle-button-disabled.ic-toggle-button-checked) ::part(button)::before{background-image:radial-gradient(\n var(--ic-toggle-button-selected-background-disabled) 95%,\n white 20%\n );background-repeat:no-repeat}:host(.ic-toggle-button-disabled.ic-toggle-button-checked.ic-toggle-button-monochrome) ::part(button),:host(.ic-toggle-button-icon.ic-toggle-button-disabled.ic-toggle-button-checked.ic-toggle-button-monochrome) ::part(button)::before{background-image:radial-gradient(\n var(--ic-toggle-button-selected-background-disabled-monochrome) 95%,\n white 20%\n );background-repeat:no-repeat}:host(.ic-toggle-button-icon) ::part(button){height:calc(var(--ic-space-xl) + var(--ic-space-xs));width:calc(var(--ic-space-xl) + var(--ic-space-xs))}:host(.ic-toggle-button-icon) ::part(button):active{background-color:var(--ic-action-default-bg-pressed)}:host(.ic-toggle-button-icon.ic-toggle-button-dark) ::part(button):active{background-color:var(--ic-action-dark-bg-pressed)}:host(.ic-toggle-button-icon.ic-toggle-button-light) ::part(button):active{background-color:var(--ic-action-light-bg-pressed)}:host(.ic-toggle-button-icon.ic-toggle-button-small) ::part(button){height:var(--ic-space-xl);width:var(--ic-space-xl)}:host(.ic-toggle-button-icon.ic-toggle-button-large) ::part(button){height:var(--ic-space-xxl);width:var(--ic-space-xxl)}:host(.ic-toggle-button-checked.ic-toggle-button-loading) ::part(button){--loading-button-background:var(\n --ic-toggle-button-selected-background-pressed\n );background-color:var(--ic-toggle-button-selected-background-pressed)}:host(.ic-toggle-button-loading) ::part(button){--loading-button-background:var(\n --ic-toggle-button-unselected-background-pressed\n );background-color:var(--ic-toggle-button-unselected-background-pressed)}:host(.ic-toggle-button-checked.ic-toggle-button-loading) ::part(ic-loading-container){--inner-color:var(--ic-toggle-button-loading-bar)}:host(.ic-toggle-button-loading) ::part(ic-loading-container){--inner-color:var(--ic-toggle-button-selected-loading-bar)}:host(.ic-toggle-button-checked.ic-toggle-button-loading.ic-toggle-button-monochrome) ::part(button){--loading-button-background:var(\n --ic-toggle-button-selected-background-pressed-monochrome\n );background-color:var(\n --ic-toggle-button-selected-background-pressed-monochrome\n )}:host(.ic-toggle-button-loading.ic-toggle-button-monochrome) ::part(button){--loading-button-background:var(\n --ic-toggle-button-unselected-background-pressed-monochrome\n );background-color:var(\n --ic-toggle-button-unselected-background-pressed-monochrome\n )}@media (forced-colors: active){:host(.ic-toggle-button-checked) ::part(button),:host(.ic-toggle-button-checked) ::part(button):hover{background-color:Highlight}:host(.ic-toggle-button-checked.ic-toggle-button-light) ::part(button),:host(.ic-toggle-button-checked.ic-toggle-button-light) ::part(button):hover{background-color:Highlight}:host(.ic-toggle-button-checked.ic-toggle-button-dark) ::part(button),:host(.ic-toggle-button-checked.ic-toggle-button-dark) ::part(button):hover{background-color:Highlight}:host(.ic-toggle-button-checked.ic-toggle-button-disabled) ::part(button){background-color:GrayText}:host(.ic-toggle-button-checked.ic-toggle-button-loading) ::part(button),:host(.ic-toggle-button-checked.ic-toggle-button-loading) ::part(button):hover{--loading-button-background:Highlight}}';const b=l;const d=["loading","disabled","full-width","icon-placement","variant","size","theme","monochrome"];const u=class{constructor(e){t(this,e);this.icToggleChecked=o(this,"icToggleChecked",7);this.checked=false;this.disabled=false;this.fullWidth=false;this.iconPlacement="left";this.loading=false;this.monochrome=false;this.size="medium";this.theme="inherit";this.tooltipPlacement="bottom";this.variant="default";this.handleFocus=t=>{t.stopImmediatePropagation()};this.handleClick=()=>{if(!this.loading&&!this.disabled){this.icToggleChecked.emit({checked:this.checked})}}}watchDisabledHandler(){r(this.disabled,this.el)}componentWillLoad(){var t;r(this.disabled,this.el);if(!i(this.el))return;const o=(t=this.el.parentElement)===null||t===void 0?void 0:t.attributes;if(!o)return;for(let t=0;t<d.length;t++){const e=o.getNamedItem(d[t]);if(!e)continue;switch(e.name){case d[0]:this.loading=e.value!=="false";break;case d[1]:this.disabled=e.value!=="false";break;case d[2]:this.fullWidth=e.value!=="false";break;case d[3]:this.iconPlacement=e.value;break;case d[4]:this.variant=e.value;break;case d[5]:this.size=e.value;break;case d[6]:this.theme=e.value;break;case d[7]:this.monochrome=e.value!=="false";break}}}componentDidLoad(){g([{prop:this.variant==="icon"?this.accessibleLabel:this.label,propName:this.variant==="icon"?"accessible-label":"label"}],"Toggle button")}handleHostClick(t){if(this.disabled){t.stopImmediatePropagation()}else if(!this.loading){this.checked=!this.checked}}render(){const{accessibleLabel:t,checked:o,disabled:c,fullWidth:r,iconPlacement:i,monochrome:g,label:l,loading:b,size:d,theme:u,tooltipPlacement:s,variant:h}=this;const p=h==="icon";return e(n,{key:"64acdb10437030311b26805c7a5b4fb4e53a7641",class:{"ic-toggle-button-checked":o,"ic-toggle-button-disabled":c,"ic-toggle-button-icon":p,"ic-toggle-button-loading":b,"ic-toggle-button-monochrome":g,"ic-toggle-button-full-width":r,[`ic-toggle-button-${d}`]:true,[`ic-theme-${u}`]:u!=="inherit"},onFocus:this.handleFocus},e("ic-button",{key:"7ec9db00accaa2e67f4797534f4ad2b304da6397","aria-pressed":`${o}`,variant:p?"icon":"secondary",onClick:this.handleClick,title:t,"aria-label":`${t?t:l}, ${o?"ticked":"unticked"}`,disabled:c,size:d,fullWidth:r,loading:b,tooltipPlacement:s},!p&&l,e("slot",{key:"e84bac663f0dababe84c49180fbeabaaff23c24d"}),a(this.el,"icon")&&e("slot",{key:"ee8b32317edb8d9f0dfcbdb0daa106a53bcf26d4",name:"icon",slot:`${i}-icon`}),a(this.el,"badge")&&e("slot",{key:"baa79552fb587d8f1167874dc55f47bbf9cf711b",name:"badge",slot:"badge"})))}static get delegatesFocus(){return true}get el(){return c(this)}static get watchers(){return{disabled:["watchDisabledHandler"]}}};u.style=b;export{u as ic_toggle_button};
2
- //# sourceMappingURL=p-e29ba8bd.entry.js.map
1
+ import{r as t,c as o,h as e,H as n,g as c}from"./p-8e4e97b4.js";import{r,R as i,b as g,i as a}from"./p-70abcb2b.js";const l='/*! normalize.css v8.0.1 | MIT License | github.com/necolas/normalize.css */html{line-height:1.15;-webkit-text-size-adjust:100%;}body{margin:0}main{display:block}h1{font-size:2em;margin:0.67em 0}hr{box-sizing:content-box;height:0;overflow:visible;}pre{font-family:monospace, monospace;font-size:1em;}a{background-color:transparent}abbr[title]{border-bottom:none;text-decoration:underline;-webkit-text-decoration:underline dotted;text-decoration:underline dotted;}b,strong{font-weight:bolder}code,kbd,samp{font-family:monospace, monospace;font-size:1em;}small{font-size:80%}sub,sup{font-size:75%;line-height:0;position:relative;vertical-align:baseline}sub{bottom:-0.25em}sup{top:-0.5em}img{border-style:none}button,input,optgroup,select,textarea{font-family:inherit;font-size:100%;line-height:1.15;margin:0;}button,input{overflow:visible}button,select{text-transform:none}button,[type="button"],[type="reset"],[type="submit"]{-webkit-appearance:button}button::-moz-focus-inner,[type="button"]::-moz-focus-inner,[type="reset"]::-moz-focus-inner,[type="submit"]::-moz-focus-inner{border-style:none;padding:0}button:-moz-focusring,[type="button"]:-moz-focusring,[type="reset"]:-moz-focusring,[type="submit"]:-moz-focusring{outline:1px dotted ButtonText}fieldset{padding:0.35em 0.75em 0.625em}legend{box-sizing:border-box;color:inherit;display:table;max-width:100%;padding:0;white-space:normal;}progress{vertical-align:baseline}textarea{overflow:auto}[type="checkbox"],[type="radio"]{box-sizing:border-box;padding:0;}[type="number"]::-webkit-inner-spin-button,[type="number"]::-webkit-outer-spin-button{height:auto}[type="search"]{-webkit-appearance:textfield;outline-offset:-2px;}[type="search"]::-webkit-search-decoration{-webkit-appearance:none}::-webkit-file-upload-button{-webkit-appearance:button;font:inherit;}details{display:block}summary{display:list-item}template{display:none}[hidden]{display:none}html,body,div,span,applet,object,iframe,h1,h2,h3,h4,h5,h6,p,blockquote,pre,a,abbr,acronym,address,big,cite,code,del,dfn,em,img,ins,kbd,q,s,samp,small,strike,strong,sub,sup,tt,var,b,u,i,center,dl,dt,dd,ol,ul,li,fieldset,form,label,legend,table,caption,tbody,tfoot,thead,tr,th,td,article,aside,canvas,details,embed,figure,figcaption,footer,header,hgroup,menu,nav,output,ruby,section,summary,time,mark,audio,video{margin:0;padding:0;border:0;font-size:100%;font-style:inherit;vertical-align:baseline}:host{--toggle-button-border:var(--ic-toggle-button-unselected-border);--toggle-button-text-colour:var(--ic-toggle-button-unselected-text);--toggle-button-border-hover:var(--ic-toggle-button-unselected-border-hover);--toggle-button-text-colour-hover:var(\n --ic-toggle-button-unselected-text-hover\n );--toggle-button-border-active:var(\n --ic-toggle-button-unselected-border-pressed\n );--toggle-button-text-colour-active:var(\n --ic-toggle-button-unselected-text-pressed\n )}:host(:not(.expand-toggle-group-child)){display:inline-block;border-radius:var(--ic-border-radius);border:var(--ic-border-width) solid var(--toggle-button-border)}:host(.ic-toggle-button-full-width:not(.expand-toggle-group-child)){width:100%}:host(.ic-toggle-button-checked){--toggle-button-border:var(--ic-toggle-button-selected-border);--toggle-button-text-colour:var(--ic-toggle-button-selected-text);--toggle-button-border-hover:var(--ic-toggle-button-selected-border-hover);--toggle-button-text-colour-hover:var(--ic-toggle-button-selected-text);--toggle-button-border-active:var(\n --ic-toggle-button-selected-border-pressed\n );--toggle-button-text-colour-active:var(--ic-toggle-button-selected-text)}:host(.ic-toggle-button-monochrome){--toggle-button-border:var(--ic-toggle-button-unselected-border-monochrome);--toggle-button-text-colour:var(\n --ic-toggle-button-unselected-text-monochrome\n );--toggle-button-border-hover:var(\n --ic-toggle-button-unselected-border-hover-monochrome\n );--toggle-button-text-colour-hover:var(\n --ic-toggle-button-unselected-text-monochrome\n );--toggle-button-border-active:var(\n --ic-toggle-button-unselected-border-pressed-monochrome\n );--toggle-button-text-colour-active:var(\n --ic-toggle-button-unselected-text-monochrome\n )}:host(.ic-toggle-button-monochrome.ic-toggle-button-checked){--toggle-button-border:var(--ic-toggle-button-selected-border-monochrome);--toggle-button-text-colour:var(--ic-toggle-button-selected-text-monochrome);--toggle-button-border-hover:var(\n --ic-toggle-button-selected-border-hover-monochrome\n );--toggle-button-text-colour-hover:var(\n --ic-toggle-button-selected-text-monochrome\n );--toggle-button-border-active:var(\n --ic-toggle-button-selected-border-pressed-monochrome\n );--toggle-button-text-colour-active:var(\n --ic-toggle-button-selected-text-monochrome\n )}:host(.ic-toggle-button-disabled){--toggle-button-border:var(--ic-toggle-button-unselected-border-disabled);--toggle-button-text-colour:var(--ic-toggle-button-unselected-text-disabled)}:host(.ic-toggle-button-disabled.ic-toggle-button-monochrome){--toggle-button-border:var(\n --ic-toggle-button-unselected-border-disabled-monochrome\n );--toggle-button-text-colour:var(\n --ic-toggle-button-unselected-text-disabled-monochrome\n )}:host(.ic-toggle-button-disabled.ic-toggle-button-checked){--toggle-button-border:var(--ic-toggle-button-selected-border-disabled);--toggle-button-text-colour:var(--ic-toggle-button-selected-text-disabled)}:host(.ic-toggle-button-disabled.ic-toggle-button-checked.ic-toggle-button-monochrome){--toggle-button-border:var(\n --ic-toggle-button-selected-border-disabled-monochrome\n );--toggle-button-text-colour:var(\n --ic-toggle-button-selected-text-disabled-monochrome\n )}:host(.expand-toggle-group-child) ::part(button){width:100%}:host(.expand-toggle-group-child:not(.ic-toggle-button-loading)) ::part(button){min-height:inherit;height:auto}:host ic-button{--icon-width:var(--ic-space-lg);--icon-height:var(--ic-space-lg)}:host(.expand-toggle-group-child) ic-button{min-width:100%;min-height:100%;height:100%}:host(.expand-toggle-group-child) ::part(button):focus,:host(.expand-toggle-group-child.ic-toggle-button-checked) ::part(button):focus{box-shadow:inset 0 0 0 var(--ic-space-xxxs) var(--ic-action-default),\n var(--ic-border-focus)}:host(.expand-toggle-group-child.ic-toggle-button-light) ::part(button):focus,:host(.expand-toggle-group-child.ic-toggle-button-dark) ::part(button):focus{box-shadow:inset 0 0 0 var(--ic-space-xxxs) var(--ic-action-monochrome-dark),\n var(--ic-border-focus)}:host(:focus){z-index:1}:host ::part(button){border:none;color:var(--toggle-button-text-colour)}:host ::part(button):hover{color:var(--toggle-button-text-colour-hover);background-color:var(--ic-toggle-button-unselected-background-hover)}:host ::part(button):active{color:var(--toggle-button-text-colour-active);background-color:var(--ic-toggle-button-unselected-background-pressed)}:host ::part(button):focus{border:var(--ic-border-width) solid var(--toggle-button-border)}:host ::part(button):hover:focus{border:var(--ic-border-width) solid var(--toggle-button-border-hover)}:host ::part(button):active:focus{border:var(--ic-border-width) solid var(--toggle-button-border-active)}:host(.ic-toggle-button-disabled) ::part(button){color:var(--toggle-button-text-colour)}:host(:not(.expand-toggle-group-child)):has(ic-button:hover){border:var(--ic-border-width) solid var(--toggle-button-border-hover)}:host(:not(.expand-toggle-group-child)):has(ic-button:active){border:var(--ic-border-width) solid var(--toggle-button-border-active)}:host(:not(.expand-toggle-group-child).ic-toggle-button-disabled){border:var(--ic-border-width) dashed var(--toggle-button-border)}:host(.ic-toggle-button-checked) ::part(button){background-color:var(--ic-toggle-button-selected-background);box-shadow:inset 0 0 0 var(--ic-space-xxxs)\n var(--ic-toggle-button-selected-text)}:host(.ic-toggle-button-checked) ::part(button):focus{box-shadow:inset 0 0 0 var(--ic-space-xxxs)\n var(--ic-toggle-button-selected-border-focus),\n var(--ic-border-focus)}:host(.ic-toggle-button-checked) ::part(button):hover{background-color:var(--ic-toggle-button-selected-background-hover)}:host(.ic-toggle-button-checked) ::part(button):active,:host(.ic-toggle-button-icon.ic-toggle-button-checked) ::part(button):active{background-color:var(--ic-toggle-button-selected-background-pressed)}:host(.ic-toggle-button-monochrome) ::part(button):hover{background-color:var(\n --ic-toggle-button-unselected-background-hover-monochrome\n )}:host(.ic-toggle-button-monochrome) ::part(button):active{background-color:var(\n --ic-toggle-button-unselected-background-pressed-monochrome\n )}:host(.ic-toggle-button-monochrome.ic-toggle-button-checked) ::part(button){background-color:var(--ic-toggle-button-selected-background-monochrome)}:host(.ic-toggle-button-monochrome.ic-toggle-button-checked) ::part(button):hover{background-color:var(\n --ic-toggle-button-selected-background-hover-monochrome\n )}:host(.ic-toggle-button-monochrome.ic-toggle-button-checked) ::part(button):active,:host(.ic-toggle-button-icon.ic-toggle-button-monochrome.ic-toggle-button-checked) ::part(button):active{background-color:var(\n --ic-toggle-button-selected-background-pressed-monochrome\n )}:host(.ic-toggle-button-monochrome.ic-toggle-button-checked) ::part(button):focus{box-shadow:inset 0 0 0 var(--ic-space-xxxs)\n var(--ic-toggle-button-selected-text),\n var(--ic-border-focus)}:host(.ic-toggle-button-disabled.ic-toggle-button-checked) ::part(button),:host(.ic-toggle-button-icon.ic-toggle-button-disabled.ic-toggle-button-checked) ::part(button){background-color:transparent}:host(.ic-toggle-button-disabled.ic-toggle-button-checked) ::part(button),:host(.ic-toggle-button-icon.ic-toggle-button-disabled.ic-toggle-button-checked) ::part(button)::before{background-image:radial-gradient(\n var(--ic-toggle-button-selected-background-disabled) 95%,\n white 20%\n );background-repeat:no-repeat}:host(.ic-toggle-button-disabled.ic-toggle-button-checked.ic-toggle-button-monochrome) ::part(button),:host(.ic-toggle-button-icon.ic-toggle-button-disabled.ic-toggle-button-checked.ic-toggle-button-monochrome) ::part(button)::before{background-image:radial-gradient(\n var(--ic-toggle-button-selected-background-disabled-monochrome) 95%,\n white 20%\n );background-repeat:no-repeat}:host(.ic-toggle-button-icon) ::part(button){height:calc(var(--ic-space-xl) + var(--ic-space-xs));width:calc(var(--ic-space-xl) + var(--ic-space-xs))}:host(.ic-toggle-button-icon) ::part(button):active{background-color:var(--ic-action-default-bg-pressed)}:host(.ic-toggle-button-icon.ic-toggle-button-dark) ::part(button):active{background-color:var(--ic-action-dark-bg-pressed)}:host(.ic-toggle-button-icon.ic-toggle-button-light) ::part(button):active{background-color:var(--ic-action-light-bg-pressed)}:host(.ic-toggle-button-icon.ic-toggle-button-small) ::part(button){height:var(--ic-space-xl);width:var(--ic-space-xl)}:host(.ic-toggle-button-icon.ic-toggle-button-large) ::part(button){height:var(--ic-space-xxl);width:var(--ic-space-xxl)}:host(.ic-toggle-button-checked.ic-toggle-button-loading) ::part(button){--loading-button-background:var(\n --ic-toggle-button-selected-background-pressed\n );background-color:var(--ic-toggle-button-selected-background-pressed)}:host(.ic-toggle-button-loading) ::part(button){--loading-button-background:var(\n --ic-toggle-button-unselected-background-pressed\n );background-color:var(--ic-toggle-button-unselected-background-pressed)}:host(.ic-toggle-button-checked.ic-toggle-button-loading) ::part(ic-loading-container){--inner-color:var(--ic-toggle-button-loading-bar)}:host(.ic-toggle-button-loading) ::part(ic-loading-container){--inner-color:var(--ic-toggle-button-selected-loading-bar)}:host(.ic-toggle-button-checked.ic-toggle-button-loading.ic-toggle-button-monochrome) ::part(button){--loading-button-background:var(\n --ic-toggle-button-selected-background-pressed-monochrome\n );background-color:var(\n --ic-toggle-button-selected-background-pressed-monochrome\n )}:host(.ic-toggle-button-loading.ic-toggle-button-monochrome) ::part(button){--loading-button-background:var(\n --ic-toggle-button-unselected-background-pressed-monochrome\n );background-color:var(\n --ic-toggle-button-unselected-background-pressed-monochrome\n )}:host(.ic-toggle-button-hide-outline){--toggle-button-border:transparent !important;--toggle-button-border-hover:transparent !important;--toggle-button-border-active:transparent !important}:host(.ic-toggle-button-hide-outline) ::part(button):focus{border:none}:host(.expand-toggle-group-child.ic-toggle-button-hide-outline) ::part(button):focus,:host(.expand-toggle-group-child.ic-toggle-button-hide-outline.ic-toggle-button-checked) ::part(button):focus{box-shadow:var(--ic-border-focus)}@media (forced-colors: active){:host(.ic-toggle-button-checked) ::part(button),:host(.ic-toggle-button-checked) ::part(button):hover{background-color:Highlight}:host(.ic-toggle-button-checked.ic-toggle-button-light) ::part(button),:host(.ic-toggle-button-checked.ic-toggle-button-light) ::part(button):hover{background-color:Highlight}:host(.ic-toggle-button-checked.ic-toggle-button-dark) ::part(button),:host(.ic-toggle-button-checked.ic-toggle-button-dark) ::part(button):hover{background-color:Highlight}:host(.ic-toggle-button-checked.ic-toggle-button-disabled) ::part(button){background-color:GrayText}:host(.ic-toggle-button-checked.ic-toggle-button-loading) ::part(button),:host(.ic-toggle-button-checked.ic-toggle-button-loading) ::part(button):hover{--loading-button-background:Highlight}}';const b=l;const d=["loading","disabled","full-width","icon-placement","variant","size","theme","monochrome","outline"];const u=class{constructor(e){t(this,e);this.icToggleChecked=o(this,"icToggleChecked",7);this.checked=false;this.disabled=false;this.fullWidth=false;this.iconPlacement="left";this.loading=false;this.monochrome=false;this.outline=true;this.size="medium";this.theme="inherit";this.tooltipPlacement="bottom";this.variant="default";this.handleFocus=t=>{t.stopImmediatePropagation()};this.handleClick=()=>{if(!this.loading&&!this.disabled){this.icToggleChecked.emit({checked:this.checked})}}}watchDisabledHandler(){r(this.disabled,this.el)}componentWillLoad(){var t;r(this.disabled,this.el);if(!i(this.el))return;const o=(t=this.el.parentElement)===null||t===void 0?void 0:t.attributes;if(!o)return;for(let t=0;t<d.length;t++){const e=o.getNamedItem(d[t]);if(!e)continue;switch(e.name){case d[0]:this.loading=e.value!=="false";break;case d[1]:this.disabled=e.value!=="false";break;case d[2]:this.fullWidth=e.value!=="false";break;case d[3]:this.iconPlacement=e.value;break;case d[4]:this.variant=e.value;break;case d[5]:this.size=e.value;break;case d[6]:this.theme=e.value;break;case d[7]:this.monochrome=e.value!=="false";break;case d[8]:this.outline=e.value!=="false";break}}}componentDidLoad(){g([{prop:this.variant==="icon"?this.accessibleLabel:this.label,propName:this.variant==="icon"?"accessible-label":"label"}],"Toggle button")}handleHostClick(t){if(this.disabled){t.stopImmediatePropagation()}else if(!this.loading){this.checked=!this.checked}}render(){const{accessibleLabel:t,checked:o,disabled:c,fullWidth:r,iconPlacement:i,monochrome:g,label:l,loading:b,outline:d,size:u,theme:s,tooltipPlacement:h,variant:p}=this;const m=p==="icon";return e(n,{key:"f2118b4a93ef348f3df18806e1e8e50d6583aadb",class:{"ic-toggle-button-checked":o,"ic-toggle-button-disabled":c,"ic-toggle-button-icon":m,"ic-toggle-button-loading":b,"ic-toggle-button-monochrome":g,"ic-toggle-button-full-width":r,"ic-toggle-button-hide-outline":!d,[`ic-toggle-button-${u}`]:true,[`ic-theme-${s}`]:s!=="inherit"},onFocus:this.handleFocus},e("ic-button",{key:"ad1c3c331cb9d900a8c815aa3e1fce192111d7a3","aria-pressed":`${o}`,variant:m?"icon":"secondary",onClick:this.handleClick,title:t,"aria-label":`${t?t:l}, ${o?"ticked":"unticked"}`,disabled:c,size:u,fullWidth:r,loading:b,tooltipPlacement:h},!m&&l,e("slot",{key:"4fa14905c645f54646c70aa054d2c7f47254c77d"}),a(this.el,"icon")&&e("slot",{key:"ea79cad11be50ce8a6a35a6cf8e743237e349d2c",name:"icon",slot:`${i}-icon`}),a(this.el,"badge")&&e("slot",{key:"dc96229f6178198a47c7f597179e069208e49acb",name:"badge",slot:"badge"})))}static get delegatesFocus(){return true}get el(){return c(this)}static get watchers(){return{disabled:["watchDisabledHandler"]}}};u.style=b;export{u as ic_toggle_button};
2
+ //# sourceMappingURL=p-ab1103e1.entry.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["icToggleButtonCss","IcToggleButtonStyle0","TRACKED_ATTRIBUTES","ToggleButton","constructor","hostRef","this","checked","disabled","fullWidth","iconPlacement","loading","monochrome","outline","size","theme","tooltipPlacement","variant","handleFocus","ev","stopImmediatePropagation","handleClick","icToggleChecked","emit","watchDisabledHandler","removeDisabledFalse","el","componentWillLoad","isSlottedInGroup","parentAttributes","_a","parentElement","attributes","i","length","attribute","getNamedItem","name","value","componentDidLoad","onComponentRequiredPropUndefined","prop","accessibleLabel","label","propName","handleHostClick","e","render","iconVariant","h","Host","key","class","onFocus","onClick","title","isSlotUsed","slot"],"sources":["src/components/ic-toggle-button/ic-toggle-button.css?tag=ic-toggle-button&encapsulation=shadow","src/components/ic-toggle-button/ic-toggle-button.tsx"],"sourcesContent":["@import \"../../global/normalize.css\";\n\n/* VARIABLES FOR IC-TOGGLE-BUTTON-GROUP */\n:host {\n --toggle-button-border: var(--ic-toggle-button-unselected-border);\n --toggle-button-text-colour: var(--ic-toggle-button-unselected-text);\n --toggle-button-border-hover: var(--ic-toggle-button-unselected-border-hover);\n --toggle-button-text-colour-hover: var(\n --ic-toggle-button-unselected-text-hover\n );\n --toggle-button-border-active: var(\n --ic-toggle-button-unselected-border-pressed\n );\n --toggle-button-text-colour-active: var(\n --ic-toggle-button-unselected-text-pressed\n );\n}\n\n:host(:not(.expand-toggle-group-child)) {\n display: inline-block;\n border-radius: var(--ic-border-radius);\n border: var(--ic-border-width) solid var(--toggle-button-border);\n}\n\n:host(.ic-toggle-button-full-width:not(.expand-toggle-group-child)) {\n width: 100%;\n}\n\n:host(.ic-toggle-button-checked) {\n --toggle-button-border: var(--ic-toggle-button-selected-border);\n --toggle-button-text-colour: var(--ic-toggle-button-selected-text);\n --toggle-button-border-hover: var(--ic-toggle-button-selected-border-hover);\n --toggle-button-text-colour-hover: var(--ic-toggle-button-selected-text);\n --toggle-button-border-active: var(\n --ic-toggle-button-selected-border-pressed\n );\n --toggle-button-text-colour-active: var(--ic-toggle-button-selected-text);\n}\n\n:host(.ic-toggle-button-monochrome) {\n --toggle-button-border: var(--ic-toggle-button-unselected-border-monochrome);\n --toggle-button-text-colour: var(\n --ic-toggle-button-unselected-text-monochrome\n );\n --toggle-button-border-hover: var(\n --ic-toggle-button-unselected-border-hover-monochrome\n );\n --toggle-button-text-colour-hover: var(\n --ic-toggle-button-unselected-text-monochrome\n );\n --toggle-button-border-active: var(\n --ic-toggle-button-unselected-border-pressed-monochrome\n );\n --toggle-button-text-colour-active: var(\n --ic-toggle-button-unselected-text-monochrome\n );\n}\n\n:host(.ic-toggle-button-monochrome.ic-toggle-button-checked) {\n --toggle-button-border: var(--ic-toggle-button-selected-border-monochrome);\n --toggle-button-text-colour: var(--ic-toggle-button-selected-text-monochrome);\n --toggle-button-border-hover: var(\n --ic-toggle-button-selected-border-hover-monochrome\n );\n --toggle-button-text-colour-hover: var(\n --ic-toggle-button-selected-text-monochrome\n );\n --toggle-button-border-active: var(\n --ic-toggle-button-selected-border-pressed-monochrome\n );\n --toggle-button-text-colour-active: var(\n --ic-toggle-button-selected-text-monochrome\n );\n}\n\n:host(.ic-toggle-button-disabled) {\n --toggle-button-border: var(--ic-toggle-button-unselected-border-disabled);\n --toggle-button-text-colour: var(--ic-toggle-button-unselected-text-disabled);\n}\n\n:host(.ic-toggle-button-disabled.ic-toggle-button-monochrome) {\n --toggle-button-border: var(\n --ic-toggle-button-unselected-border-disabled-monochrome\n );\n --toggle-button-text-colour: var(\n --ic-toggle-button-unselected-text-disabled-monochrome\n );\n}\n\n:host(.ic-toggle-button-disabled.ic-toggle-button-checked) {\n --toggle-button-border: var(--ic-toggle-button-selected-border-disabled);\n --toggle-button-text-colour: var(--ic-toggle-button-selected-text-disabled);\n}\n\n:host(.ic-toggle-button-disabled.ic-toggle-button-checked.ic-toggle-button-monochrome) {\n --toggle-button-border: var(\n --ic-toggle-button-selected-border-disabled-monochrome\n );\n --toggle-button-text-colour: var(\n --ic-toggle-button-selected-text-disabled-monochrome\n );\n}\n\n:host(.expand-toggle-group-child) ::part(button) {\n width: 100%;\n}\n\n:host(.expand-toggle-group-child:not(.ic-toggle-button-loading))\n ::part(button) {\n min-height: inherit;\n height: auto;\n}\n\n:host ic-button {\n --icon-width: var(--ic-space-lg);\n --icon-height: var(--ic-space-lg);\n}\n\n:host(.expand-toggle-group-child) ic-button {\n min-width: 100%;\n min-height: 100%;\n height: 100%;\n}\n\n:host(.expand-toggle-group-child) ::part(button):focus,\n:host(.expand-toggle-group-child.ic-toggle-button-checked)\n ::part(button):focus {\n box-shadow: inset 0 0 0 var(--ic-space-xxxs) var(--ic-action-default),\n var(--ic-border-focus);\n}\n\n:host(.expand-toggle-group-child.ic-toggle-button-light) ::part(button):focus,\n:host(.expand-toggle-group-child.ic-toggle-button-dark) ::part(button):focus {\n box-shadow: inset 0 0 0 var(--ic-space-xxxs) var(--ic-action-monochrome-dark),\n var(--ic-border-focus);\n}\n\n:host(:focus) {\n z-index: 1;\n}\n\n:host ::part(button) {\n border: none;\n color: var(--toggle-button-text-colour);\n}\n\n:host ::part(button):hover {\n color: var(--toggle-button-text-colour-hover);\n background-color: var(--ic-toggle-button-unselected-background-hover);\n}\n\n:host ::part(button):active {\n color: var(--toggle-button-text-colour-active);\n background-color: var(--ic-toggle-button-unselected-background-pressed);\n}\n\n:host ::part(button):focus {\n border: var(--ic-border-width) solid var(--toggle-button-border);\n}\n\n:host ::part(button):hover:focus {\n border: var(--ic-border-width) solid var(--toggle-button-border-hover);\n}\n\n:host ::part(button):active:focus {\n border: var(--ic-border-width) solid var(--toggle-button-border-active);\n}\n\n:host(.ic-toggle-button-disabled) ::part(button) {\n color: var(--toggle-button-text-colour);\n}\n\n:host(:not(.expand-toggle-group-child)):has(ic-button:hover) {\n border: var(--ic-border-width) solid var(--toggle-button-border-hover);\n}\n\n:host(:not(.expand-toggle-group-child)):has(ic-button:active) {\n border: var(--ic-border-width) solid var(--toggle-button-border-active);\n}\n\n:host(:not(.expand-toggle-group-child).ic-toggle-button-disabled) {\n border: var(--ic-border-width) dashed var(--toggle-button-border);\n}\n\n:host(.ic-toggle-button-checked) ::part(button) {\n background-color: var(--ic-toggle-button-selected-background);\n box-shadow: inset 0 0 0 var(--ic-space-xxxs)\n var(--ic-toggle-button-selected-text);\n}\n\n:host(.ic-toggle-button-checked) ::part(button):focus {\n box-shadow: inset 0 0 0 var(--ic-space-xxxs)\n var(--ic-toggle-button-selected-border-focus),\n var(--ic-border-focus);\n}\n\n:host(.ic-toggle-button-checked) ::part(button):hover {\n background-color: var(--ic-toggle-button-selected-background-hover);\n}\n\n:host(.ic-toggle-button-checked) ::part(button):active,\n:host(.ic-toggle-button-icon.ic-toggle-button-checked) ::part(button):active {\n background-color: var(--ic-toggle-button-selected-background-pressed);\n}\n\n:host(.ic-toggle-button-monochrome) ::part(button):hover {\n background-color: var(\n --ic-toggle-button-unselected-background-hover-monochrome\n );\n}\n\n:host(.ic-toggle-button-monochrome) ::part(button):active {\n background-color: var(\n --ic-toggle-button-unselected-background-pressed-monochrome\n );\n}\n\n:host(.ic-toggle-button-monochrome.ic-toggle-button-checked) ::part(button) {\n background-color: var(--ic-toggle-button-selected-background-monochrome);\n}\n\n:host(.ic-toggle-button-monochrome.ic-toggle-button-checked)\n ::part(button):hover {\n background-color: var(\n --ic-toggle-button-selected-background-hover-monochrome\n );\n}\n\n:host(.ic-toggle-button-monochrome.ic-toggle-button-checked)\n ::part(button):active,\n:host(.ic-toggle-button-icon.ic-toggle-button-monochrome.ic-toggle-button-checked)\n ::part(button):active {\n background-color: var(\n --ic-toggle-button-selected-background-pressed-monochrome\n );\n}\n\n:host(.ic-toggle-button-monochrome.ic-toggle-button-checked)\n ::part(button):focus {\n box-shadow: inset 0 0 0 var(--ic-space-xxxs)\n var(--ic-toggle-button-selected-text),\n var(--ic-border-focus);\n}\n\n:host(.ic-toggle-button-disabled.ic-toggle-button-checked) ::part(button),\n:host(.ic-toggle-button-icon.ic-toggle-button-disabled.ic-toggle-button-checked)\n ::part(button) {\n background-color: transparent;\n}\n\n:host(.ic-toggle-button-disabled.ic-toggle-button-checked) ::part(button),\n:host(.ic-toggle-button-icon.ic-toggle-button-disabled.ic-toggle-button-checked)\n ::part(button)::before {\n background-image: radial-gradient(\n var(--ic-toggle-button-selected-background-disabled) 95%,\n white 20%\n );\n background-repeat: no-repeat;\n}\n\n:host(.ic-toggle-button-disabled.ic-toggle-button-checked.ic-toggle-button-monochrome)\n ::part(button),\n:host(.ic-toggle-button-icon.ic-toggle-button-disabled.ic-toggle-button-checked.ic-toggle-button-monochrome)\n ::part(button)::before {\n background-image: radial-gradient(\n var(--ic-toggle-button-selected-background-disabled-monochrome) 95%,\n white 20%\n );\n background-repeat: no-repeat;\n}\n\n:host(.ic-toggle-button-icon) ::part(button) {\n height: calc(var(--ic-space-xl) + var(--ic-space-xs));\n width: calc(var(--ic-space-xl) + var(--ic-space-xs));\n}\n\n:host(.ic-toggle-button-icon) ::part(button):active {\n background-color: var(--ic-action-default-bg-pressed);\n}\n\n:host(.ic-toggle-button-icon.ic-toggle-button-dark) ::part(button):active {\n background-color: var(--ic-action-dark-bg-pressed);\n}\n\n:host(.ic-toggle-button-icon.ic-toggle-button-light) ::part(button):active {\n background-color: var(--ic-action-light-bg-pressed);\n}\n\n:host(.ic-toggle-button-icon.ic-toggle-button-small) ::part(button) {\n height: var(--ic-space-xl);\n width: var(--ic-space-xl);\n}\n\n:host(.ic-toggle-button-icon.ic-toggle-button-large) ::part(button) {\n height: var(--ic-space-xxl);\n width: var(--ic-space-xxl);\n}\n\n:host(.ic-toggle-button-checked.ic-toggle-button-loading) ::part(button) {\n --loading-button-background: var(\n --ic-toggle-button-selected-background-pressed\n );\n\n background-color: var(--ic-toggle-button-selected-background-pressed);\n}\n\n:host(.ic-toggle-button-loading) ::part(button) {\n --loading-button-background: var(\n --ic-toggle-button-unselected-background-pressed\n );\n\n background-color: var(--ic-toggle-button-unselected-background-pressed);\n}\n\n:host(.ic-toggle-button-checked.ic-toggle-button-loading)\n ::part(ic-loading-container) {\n --inner-color: var(--ic-toggle-button-loading-bar);\n}\n\n:host(.ic-toggle-button-loading) ::part(ic-loading-container) {\n --inner-color: var(--ic-toggle-button-selected-loading-bar);\n}\n\n:host(.ic-toggle-button-checked.ic-toggle-button-loading.ic-toggle-button-monochrome)\n ::part(button) {\n --loading-button-background: var(\n --ic-toggle-button-selected-background-pressed-monochrome\n );\n\n background-color: var(\n --ic-toggle-button-selected-background-pressed-monochrome\n );\n}\n\n:host(.ic-toggle-button-loading.ic-toggle-button-monochrome) ::part(button) {\n --loading-button-background: var(\n --ic-toggle-button-unselected-background-pressed-monochrome\n );\n\n background-color: var(\n --ic-toggle-button-unselected-background-pressed-monochrome\n );\n}\n\n:host(.ic-toggle-button-hide-outline) {\n --toggle-button-border: transparent !important;\n --toggle-button-border-hover: transparent !important;\n --toggle-button-border-active: transparent !important;\n}\n\n:host(.ic-toggle-button-hide-outline) ::part(button):focus {\n border: none;\n}\n\n:host(.expand-toggle-group-child.ic-toggle-button-hide-outline)\n ::part(button):focus,\n:host(.expand-toggle-group-child.ic-toggle-button-hide-outline.ic-toggle-button-checked)\n ::part(button):focus {\n box-shadow: var(--ic-border-focus);\n}\n\n@media (forced-colors: active) {\n :host(.ic-toggle-button-checked) ::part(button),\n :host(.ic-toggle-button-checked) ::part(button):hover {\n background-color: Highlight;\n }\n\n :host(.ic-toggle-button-checked.ic-toggle-button-light) ::part(button),\n :host(.ic-toggle-button-checked.ic-toggle-button-light) ::part(button):hover {\n background-color: Highlight;\n }\n\n :host(.ic-toggle-button-checked.ic-toggle-button-dark) ::part(button),\n :host(.ic-toggle-button-checked.ic-toggle-button-dark) ::part(button):hover {\n background-color: Highlight;\n }\n\n :host(.ic-toggle-button-checked.ic-toggle-button-disabled) ::part(button) {\n background-color: GrayText;\n }\n\n :host(.ic-toggle-button-checked.ic-toggle-button-loading) ::part(button),\n :host(.ic-toggle-button-checked.ic-toggle-button-loading)\n ::part(button):hover {\n --loading-button-background: Highlight;\n }\n}\n","import {\n Component,\n Element,\n Host,\n Prop,\n Event,\n EventEmitter,\n Listen,\n h,\n Watch,\n} from \"@stencil/core\";\nimport {\n isSlotUsed,\n onComponentRequiredPropUndefined,\n removeDisabledFalse,\n isSlottedInGroup,\n} from \"../../utils/helpers\";\nimport {\n IcSizes,\n IcThemeMode,\n IcIconPlacementOptions,\n IcButtonTooltipPlacement,\n} from \"../../utils/types\";\n\nconst TRACKED_ATTRIBUTES = [\n \"loading\",\n \"disabled\",\n \"full-width\",\n \"icon-placement\",\n \"variant\",\n \"size\",\n \"theme\",\n \"monochrome\",\n \"outline\",\n];\n\n/**\n * @slot icon - Content will be displayed alongside the toggle button label.\n * @slot badge - Badge component overlaying the top right of the toggle button.\n */\n\n@Component({\n tag: \"ic-toggle-button\",\n styleUrl: \"ic-toggle-button.css\",\n shadow: {\n delegatesFocus: true,\n },\n})\nexport class ToggleButton {\n @Element() el: HTMLIcToggleButtonElement;\n\n /**\n * The accessible label that will be applied to the toggle button. This is required for the icon variant of toggle buttons.\n */\n @Prop() accessibleLabel?: string;\n\n /**\n * If `true`, the toggle button will be in a checked state.\n */\n @Prop({ mutable: true, reflect: true }) checked = false;\n\n /**\n * If `true`, the toggle button will be in disabled state.\n */\n @Prop({ mutable: true }) disabled = false;\n @Watch(\"disabled\")\n watchDisabledHandler(): void {\n removeDisabledFalse(this.disabled, this.el);\n }\n\n /**\n * If `true`, the toggle button will fill the width of the container.\n */\n @Prop({ mutable: true }) fullWidth = false;\n\n /**\n * The placement of the icon in relation to the toggle button label.\n */\n @Prop() iconPlacement: IcIconPlacementOptions = \"left\";\n\n /**\n * The label to display in the toggle button. This is required for the default variant of toggle buttons.\n */\n @Prop() label?: string;\n\n /**\n * If `true`, the toggle button will be in loading state.\n */\n @Prop({ mutable: true }) loading = false;\n\n /**\n * If `true`, the toggle button will display as black in the light theme, and white in dark theme.\n */\n @Prop({ mutable: true }) monochrome = false;\n\n /**\n * If `true`, the toggle button will display with an outline.\n */\n @Prop({ mutable: true }) outline = true;\n\n /**\n * The size of the toggle button to be displayed.\n */\n @Prop({ mutable: true }) size: IcSizes = \"medium\";\n\n /**\n * Sets the theme color to the dark or light theme color. \"inherit\" will set the color based on the system settings or ic-theme component.\n */\n @Prop({ mutable: true }) theme: IcThemeMode = \"inherit\";\n\n /**\n * The position of the tooltip in relation to the toggle button.\n */\n @Prop() tooltipPlacement: IcButtonTooltipPlacement = \"bottom\";\n\n /**\n * The variant of the toggle button.\n */\n @Prop({ reflect: true, mutable: true }) variant: \"default\" | \"icon\" =\n \"default\";\n\n /**\n * Emitted when the user clicks a toggle button.\n */\n @Event() icToggleChecked: EventEmitter<{\n checked: boolean;\n }>;\n\n componentWillLoad(): void {\n removeDisabledFalse(this.disabled, this.el);\n\n if (!isSlottedInGroup(this.el)) return;\n\n const parentAttributes = this.el.parentElement?.attributes;\n if (!parentAttributes) return;\n\n for (let i = 0; i < TRACKED_ATTRIBUTES.length; i++) {\n const attribute = parentAttributes.getNamedItem(TRACKED_ATTRIBUTES[i]);\n if (!attribute) continue;\n\n switch (attribute.name) {\n case TRACKED_ATTRIBUTES[0]:\n this.loading = attribute.value !== \"false\";\n break;\n case TRACKED_ATTRIBUTES[1]:\n this.disabled = attribute.value !== \"false\";\n break;\n case TRACKED_ATTRIBUTES[2]:\n this.fullWidth = attribute.value !== \"false\";\n break;\n case TRACKED_ATTRIBUTES[3]:\n this.iconPlacement = attribute.value as IcIconPlacementOptions;\n break;\n case TRACKED_ATTRIBUTES[4]:\n this.variant = attribute.value as \"default\" | \"icon\";\n break;\n case TRACKED_ATTRIBUTES[5]:\n this.size = attribute.value as IcSizes;\n break;\n case TRACKED_ATTRIBUTES[6]:\n this.theme = attribute.value as IcThemeMode;\n break;\n case TRACKED_ATTRIBUTES[7]:\n this.monochrome = attribute.value !== \"false\";\n break;\n case TRACKED_ATTRIBUTES[8]:\n this.outline = attribute.value !== \"false\";\n break;\n }\n }\n }\n\n componentDidLoad(): void {\n onComponentRequiredPropUndefined(\n [\n {\n prop: this.variant === \"icon\" ? this.accessibleLabel : this.label,\n propName: this.variant === \"icon\" ? \"accessible-label\" : \"label\",\n },\n ],\n \"Toggle button\"\n );\n }\n\n @Listen(\"click\", { capture: true })\n handleHostClick(e: Event): void {\n if (this.disabled) {\n e.stopImmediatePropagation();\n } else if (!this.loading) {\n this.checked = !this.checked;\n }\n }\n\n private handleFocus = (ev: FocusEvent) => {\n ev.stopImmediatePropagation();\n };\n\n private handleClick = () => {\n if (!this.loading && !this.disabled) {\n this.icToggleChecked.emit({\n checked: this.checked,\n });\n }\n };\n\n render() {\n const {\n accessibleLabel,\n checked,\n disabled,\n fullWidth,\n iconPlacement,\n monochrome,\n label,\n loading,\n outline,\n size,\n theme,\n tooltipPlacement,\n variant,\n } = this;\n\n const iconVariant = variant === \"icon\";\n\n return (\n <Host\n class={{\n \"ic-toggle-button-checked\": checked,\n \"ic-toggle-button-disabled\": disabled,\n \"ic-toggle-button-icon\": iconVariant,\n \"ic-toggle-button-loading\": loading,\n \"ic-toggle-button-monochrome\": monochrome,\n \"ic-toggle-button-full-width\": fullWidth,\n \"ic-toggle-button-hide-outline\": !outline,\n [`ic-toggle-button-${size}`]: true,\n [`ic-theme-${theme}`]: theme !== \"inherit\",\n }}\n onFocus={this.handleFocus}\n >\n <ic-button\n aria-pressed={`${checked}`}\n variant={iconVariant ? \"icon\" : \"secondary\"}\n onClick={this.handleClick}\n title={accessibleLabel}\n aria-label={`${accessibleLabel ? accessibleLabel : label}, ${\n checked ? \"ticked\" : \"unticked\"\n }`}\n disabled={disabled}\n size={size}\n fullWidth={fullWidth}\n loading={loading}\n tooltipPlacement={tooltipPlacement}\n >\n {!iconVariant && label}\n <slot />\n {isSlotUsed(this.el, \"icon\") && (\n <slot name=\"icon\" slot={`${iconPlacement}-icon`}></slot>\n )}\n {isSlotUsed(this.el, \"badge\") && (\n <slot name=\"badge\" slot=\"badge\"></slot>\n )}\n </ic-button>\n </Host>\n );\n }\n}\n"],"mappings":"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","ignoreList":[]}