@ukic/canary-web-components 2.0.0-canary.17 → 2.0.0-canary.18

Sign up to get free protection for your applications and to get access to all the features.
Files changed (128) hide show
  1. package/dist/cjs/core.cjs.js +1 -1
  2. package/dist/cjs/ic-back-to-top.cjs.entry.js +2 -1
  3. package/dist/cjs/ic-back-to-top.cjs.entry.js.map +1 -1
  4. package/dist/cjs/ic-button_3.cjs.entry.js.map +1 -1
  5. package/dist/cjs/ic-checkbox.cjs.entry.js +17 -5
  6. package/dist/cjs/ic-checkbox.cjs.entry.js.map +1 -1
  7. package/dist/cjs/ic-data-table.cjs.entry.js +32 -28
  8. package/dist/cjs/ic-data-table.cjs.entry.js.map +1 -1
  9. package/dist/cjs/ic-empty-state_2.cjs.entry.js +67 -113
  10. package/dist/cjs/ic-empty-state_2.cjs.entry.js.map +1 -1
  11. package/dist/cjs/ic-navigation-item.cjs.entry.js +1 -1
  12. package/dist/cjs/ic-navigation-item.cjs.entry.js.map +1 -1
  13. package/dist/cjs/ic-radio-option.cjs.entry.js +1 -1
  14. package/dist/cjs/ic-radio-option.cjs.entry.js.map +1 -1
  15. package/dist/cjs/ic-section-container.cjs.entry.js +1 -1
  16. package/dist/cjs/ic-section-container.cjs.entry.js.map +1 -1
  17. package/dist/cjs/ic-stepper.cjs.entry.js +29 -8
  18. package/dist/cjs/ic-stepper.cjs.entry.js.map +1 -1
  19. package/dist/cjs/ic-tab-context.cjs.entry.js +8 -0
  20. package/dist/cjs/ic-tab-context.cjs.entry.js.map +1 -1
  21. package/dist/cjs/ic-tab.cjs.entry.js.map +1 -1
  22. package/dist/cjs/ic-toast.cjs.entry.js +6 -0
  23. package/dist/cjs/ic-toast.cjs.entry.js.map +1 -1
  24. package/dist/cjs/ic-toggle-button-group.cjs.entry.js +1 -1
  25. package/dist/cjs/ic-toggle-button-group.cjs.entry.js.map +1 -1
  26. package/dist/cjs/loader.cjs.js +1 -1
  27. package/dist/collection/components/ic-data-table/ic-data-table.css +0 -4
  28. package/dist/collection/components/ic-data-table/ic-data-table.js +34 -29
  29. package/dist/collection/components/ic-data-table/ic-data-table.js.map +1 -1
  30. package/dist/collection/components/ic-data-table/story-data.js +22 -0
  31. package/dist/collection/components/ic-data-table/story-data.js.map +1 -1
  32. package/dist/collection/components/ic-pagination-bar/ic-pagination-bar.js +67 -113
  33. package/dist/collection/components/ic-pagination-bar/ic-pagination-bar.js.map +1 -1
  34. package/dist/components/ic-back-to-top.js +2 -1
  35. package/dist/components/ic-back-to-top.js.map +1 -1
  36. package/dist/components/ic-button2.js.map +1 -1
  37. package/dist/components/ic-checkbox.js +23 -7
  38. package/dist/components/ic-checkbox.js.map +1 -1
  39. package/dist/components/ic-data-table.js +32 -28
  40. package/dist/components/ic-data-table.js.map +1 -1
  41. package/dist/components/ic-navigation-item.js +1 -1
  42. package/dist/components/ic-navigation-item.js.map +1 -1
  43. package/dist/components/ic-pagination-bar2.js +67 -113
  44. package/dist/components/ic-pagination-bar2.js.map +1 -1
  45. package/dist/components/ic-radio-option.js +1 -1
  46. package/dist/components/ic-radio-option.js.map +1 -1
  47. package/dist/components/ic-section-container2.js +1 -1
  48. package/dist/components/ic-section-container2.js.map +1 -1
  49. package/dist/components/ic-stepper.js +32 -8
  50. package/dist/components/ic-stepper.js.map +1 -1
  51. package/dist/components/ic-tab-context.js +9 -0
  52. package/dist/components/ic-tab-context.js.map +1 -1
  53. package/dist/components/ic-tab.js.map +1 -1
  54. package/dist/components/ic-toast.js +9 -1
  55. package/dist/components/ic-toast.js.map +1 -1
  56. package/dist/components/ic-toggle-button-group.js +1 -1
  57. package/dist/components/ic-toggle-button-group.js.map +1 -1
  58. package/dist/core/core.esm.js +1 -1
  59. package/dist/core/core.esm.js.map +1 -1
  60. package/dist/core/p-06e0b5b6.entry.js +2 -0
  61. package/dist/core/p-06e0b5b6.entry.js.map +1 -0
  62. package/dist/core/p-303dc008.entry.js.map +1 -1
  63. package/dist/core/{p-952b1f46.entry.js → p-4c92a3dd.entry.js} +2 -2
  64. package/dist/core/p-4c92a3dd.entry.js.map +1 -0
  65. package/dist/core/p-52d5a3a5.entry.js.map +1 -1
  66. package/dist/core/{p-5a5a52d3.entry.js → p-5dfd9074.entry.js} +2 -2
  67. package/dist/core/p-5dfd9074.entry.js.map +1 -0
  68. package/dist/core/{p-e79e0292.entry.js → p-6358925c.entry.js} +2 -2
  69. package/dist/core/p-6358925c.entry.js.map +1 -0
  70. package/dist/core/p-79fa2f57.entry.js +2 -0
  71. package/dist/core/p-79fa2f57.entry.js.map +1 -0
  72. package/dist/core/{p-bbb1ce94.entry.js → p-8237cd57.entry.js} +2 -2
  73. package/dist/core/p-8237cd57.entry.js.map +1 -0
  74. package/dist/core/{p-d79bfead.entry.js → p-90992051.entry.js} +2 -2
  75. package/dist/core/{p-d79bfead.entry.js.map → p-90992051.entry.js.map} +1 -1
  76. package/dist/core/{p-356b8a4c.entry.js → p-9f3cf053.entry.js} +2 -2
  77. package/dist/core/{p-356b8a4c.entry.js.map → p-9f3cf053.entry.js.map} +1 -1
  78. package/dist/core/{p-940de102.entry.js → p-a0aa587b.entry.js} +2 -2
  79. package/dist/core/p-a0aa587b.entry.js.map +1 -0
  80. package/dist/core/p-d08f4fa7.entry.js +2 -0
  81. package/dist/core/p-d08f4fa7.entry.js.map +1 -0
  82. package/dist/core/p-dbbce628.entry.js +2 -0
  83. package/dist/core/p-dbbce628.entry.js.map +1 -0
  84. package/dist/esm/core.js +1 -1
  85. package/dist/esm/ic-back-to-top.entry.js +2 -1
  86. package/dist/esm/ic-back-to-top.entry.js.map +1 -1
  87. package/dist/esm/ic-button_3.entry.js.map +1 -1
  88. package/dist/esm/ic-checkbox.entry.js +17 -5
  89. package/dist/esm/ic-checkbox.entry.js.map +1 -1
  90. package/dist/esm/ic-data-table.entry.js +32 -28
  91. package/dist/esm/ic-data-table.entry.js.map +1 -1
  92. package/dist/esm/ic-empty-state_2.entry.js +67 -113
  93. package/dist/esm/ic-empty-state_2.entry.js.map +1 -1
  94. package/dist/esm/ic-navigation-item.entry.js +1 -1
  95. package/dist/esm/ic-navigation-item.entry.js.map +1 -1
  96. package/dist/esm/ic-radio-option.entry.js +1 -1
  97. package/dist/esm/ic-radio-option.entry.js.map +1 -1
  98. package/dist/esm/ic-section-container.entry.js +1 -1
  99. package/dist/esm/ic-section-container.entry.js.map +1 -1
  100. package/dist/esm/ic-stepper.entry.js +29 -8
  101. package/dist/esm/ic-stepper.entry.js.map +1 -1
  102. package/dist/esm/ic-tab-context.entry.js +8 -0
  103. package/dist/esm/ic-tab-context.entry.js.map +1 -1
  104. package/dist/esm/ic-tab.entry.js.map +1 -1
  105. package/dist/esm/ic-toast.entry.js +6 -0
  106. package/dist/esm/ic-toast.entry.js.map +1 -1
  107. package/dist/esm/ic-toggle-button-group.entry.js +1 -1
  108. package/dist/esm/ic-toggle-button-group.entry.js.map +1 -1
  109. package/dist/esm/loader.js +1 -1
  110. package/dist/types/components/ic-data-table/ic-data-table.d.ts +8 -5
  111. package/dist/types/components/ic-data-table/story-data.d.ts +1 -0
  112. package/dist/types/components/ic-pagination-bar/ic-pagination-bar.d.ts +7 -8
  113. package/dist/types/components.d.ts +2 -2
  114. package/hydrate/index.js +170 -161
  115. package/package.json +3 -3
  116. package/dist/core/p-20f244ad.entry.js +0 -2
  117. package/dist/core/p-20f244ad.entry.js.map +0 -1
  118. package/dist/core/p-53aeca18.entry.js +0 -2
  119. package/dist/core/p-53aeca18.entry.js.map +0 -1
  120. package/dist/core/p-5a5a52d3.entry.js.map +0 -1
  121. package/dist/core/p-940de102.entry.js.map +0 -1
  122. package/dist/core/p-952b1f46.entry.js.map +0 -1
  123. package/dist/core/p-b94ef8de.entry.js +0 -2
  124. package/dist/core/p-b94ef8de.entry.js.map +0 -1
  125. package/dist/core/p-bbb1ce94.entry.js.map +0 -1
  126. package/dist/core/p-bda7d350.entry.js +0 -2
  127. package/dist/core/p-bda7d350.entry.js.map +0 -1
  128. package/dist/core/p-e79e0292.entry.js.map +0 -1
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@ukic/canary-web-components",
3
- "version": "2.0.0-canary.17",
3
+ "version": "2.0.0-canary.18",
4
4
  "description": "A web component UI library compiled with StencilJS",
5
5
  "main": "dist/index.cjs.js",
6
6
  "module": "./dist/index.js",
@@ -43,7 +43,7 @@
43
43
  "dependencies": {
44
44
  "@popperjs/core": "^2.11.2",
45
45
  "@stencil/core": "^4.9.0",
46
- "@ukic/web-components": "^2.22.0"
46
+ "@ukic/web-components": "^2.23.0"
47
47
  },
48
48
  "peerDependencies": {
49
49
  "@ukic/fonts": "^2.3.0"
@@ -89,5 +89,5 @@
89
89
  "webpack": "^5.76.0"
90
90
  },
91
91
  "license": "MIT",
92
- "gitHead": "d514f0b7ea02cad6e1f5f13aba34b7e8a3c162dd"
92
+ "gitHead": "fc202d5fde5e93c4e744747d115d83d09901cf79"
93
93
  }
@@ -1,2 +0,0 @@
1
- import{r as t,h as i,g as e}from"./p-8455d1bb.js";import{o,a as n}from"./p-1b4f852c.js";import"./p-fd186591.js";const a=`<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 16 16" aria-hidden="true">\n <path d="M0 8L1.41 9.41L7 3.83V16H9V3.83L14.58 9.42L16 8L8 0L0 8Z"/>\n</svg>\n`;const r='/*! 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{display:block;position:absolute;right:0}.positioning{position:fixed;right:var(--ic-space-md);bottom:var(--ic-space-md);transition:visibility 0s linear var(--ic-transition-duration-slow),\n opacity var(--ic-transition-duration-slow);z-index:var(--ic-z-index-back-to-top)}button{height:2.5rem;align-items:center;padding:var(--ic-space-xs) var(--ic-space-md) var(--ic-space-xs)\n var(--ic-space-sm);margin:0;gap:var(--ic-space-xs);display:flex;background-color:var(--ic-architectural-white);border:var(--ic-border-width) solid var(--ic-action-default);outline-width:inherit;box-sizing:border-box;box-shadow:var(--ic-elevation-overlay);border-radius:5rem;text-decoration:none;visibility:hidden;opacity:0;cursor:pointer}button:hover{text-decoration:none;background-color:var(--ic-action-default-bg-hover-no-alpha);border:var(--ic-border-width) solid var(--ic-action-default-hover)}button:active{text-decoration:none;background-color:var(--ic-action-default-bg-active-no-alpha);border:var(--ic-border-width) solid var(--ic-action-default-active)}button:focus{box-shadow:var(--ic-border-focus)}.ic-back-to-top-link.show{visibility:visible;opacity:1;transition:visibility 0s linear 0s,\n opacity var(--ic-transition-duration-slow),\n box-shadow var(--ic-easing-transition-fast)}.ic-back-to-top-link.by-footer{position:relative;right:var(--ic-space-md);bottom:3.5rem}.ic-back-to-top-link.offset-banner{margin-bottom:var(--ic-space-lg)}.ic-back-to-top-icon{fill:var(--ic-action-default);padding-left:var(--ic-space-xxs);padding-top:var(--ic-space-xxxs)}.ic-back-to-top-icon>svg{height:var(--ic-space-md);width:var(--ic-space-md);display:inline-block}.ic-back-to-top-link span{color:var(--ic-action-default)}.ic-back-to-top-link:hover .ic-back-to-top-icon{fill:var(--ic-action-default-hover)}.ic-back-to-top-link:hover span{color:var(--ic-action-default-hover)}@media (forced-colors: active){.ic-back-to-top-icon{fill:currentcolor}}';const s="Back to top";const c=class{constructor(e){t(this,e);this.topObserver=null;this.setTargetElVisible=t=>{this.targetElVisible=t};this.setFooterVisible=t=>{this.checkForClassificationBanner();this.footerVisible=typeof window!=="undefined"&&window.scrollY===0?false:t};this.targetElObserverCallback=t=>{this.setTargetElVisible(t[0].isIntersecting)};this.footerObserverCallback=t=>{this.setFooterVisible(t[0].isIntersecting)};this.findTargetEl=t=>{let i=null;if(t===null||t===undefined){console.log("Error: No target ID specified for back to top component - defaulting to top of page")}else{i=document.querySelector(`${t.startsWith("#")?"":"#"}${t}`);if(i===null){console.log(`Error: Back to top target element '${t}' not found - defaulting to top of page`)}}return i};this.createTopObserver=t=>{this.targetEl=this.findTargetEl(t);let i;if(this.topObserver!==null){const t=document.querySelector("#ic-back-to-top-target");if(t!==null){this.topObserver.unobserve(t);t.remove()}}if(this.targetEl===null){i=document.body;this.targetEl=i.firstElementChild;this.isTargetElNull=true}else{i=this.targetEl.parentNode;this.isTargetElNull=false}const e=document.createElement("div");e.setAttribute("id","ic-back-to-top-target");i.insertBefore(e,this.targetEl);const o=getComputedStyle(this.targetEl).marginTop;this.topObserver=new IntersectionObserver(this.targetElObserverCallback,{threshold:[0],rootMargin:`${o} 0px 0px 0px`});this.topObserver.observe(e)};this.handleClick=()=>{if(this.isTargetElNull){window.scrollTo(0,0)}else{this.targetEl.scrollIntoView()}};this.checkForClassificationBanner=()=>{const t=document.querySelectorAll("ic-classification-banner:not([inline='true'])");this.bannerOffset=t.length>0};this.buildButton=()=>{const{bannerOffset:t,targetElVisible:e,footerVisible:o,variant:n}=this;return i("button",{class:{["ic-back-to-top-link"]:true,["offset-banner"]:t,["show"]:!e,["by-footer"]:o,["positioning"]:n!=="icon"},"aria-label":s,onClick:this.handleClick},i("span",{class:"ic-back-to-top-icon",innerHTML:a}),this.variant!=="icon"&&i("ic-typography",{variant:"subtitle-small"},i("span",null,s)))};this.bannerOffset=false;this.footerVisible=false;this.targetElVisible=true;this.target=undefined;this.variant="default"}watchPropHandler(t,i){o(i,t,(()=>{this.createTopObserver(t)}))}componentWillLoad(){this.createTopObserver(this.target);this.checkForClassificationBanner();let t=document.querySelectorAll("ic-footer");if(t.length===0){t=document.querySelectorAll("footer")}if(t.length){const i=t[t.length-1];const e=this.bannerOffset?.15:0;const o=new IntersectionObserver(this.footerObserverCallback,{threshold:[e]});o.observe(i)}}componentDidLoad(){n([{prop:this.target,propName:"target"}],"Back to Top")}render(){const{variant:t,buildButton:e}=this;return t==="icon"?i("ic-tooltip",{label:s,placement:"top",class:"positioning"},e()):e()}static get delegatesFocus(){return true}get el(){return e(this)}static get watchers(){return{target:["watchPropHandler"]}}};c.style=r;export{c as ic_back_to_top};
2
- //# sourceMappingURL=p-20f244ad.entry.js.map
@@ -1 +0,0 @@
1
- {"version":3,"names":["icBackToTopCss","backToTopLabel","BackToTop","constructor","hostRef","this","topObserver","setTargetElVisible","visible","targetElVisible","setFooterVisible","checkForClassificationBanner","footerVisible","window","scrollY","targetElObserverCallback","entries","isIntersecting","footerObserverCallback","findTargetEl","target","targetElement","undefined","console","log","document","querySelector","startsWith","createTopObserver","targetEl","objParent","observedEl","unobserve","remove","body","firstElementChild","isTargetElNull","parentNode","objBackToTopTargetEl","createElement","setAttribute","insertBefore","marginTop","getComputedStyle","IntersectionObserver","threshold","rootMargin","observe","handleClick","scrollTo","scrollIntoView","banners","querySelectorAll","bannerOffset","length","buildButton","variant","h","class","onClick","innerHTML","ArrowUpward","watchPropHandler","newValue","oldValue","onComponentPropUndefinedChange","componentWillLoad","footers","footerEl","footerObserver","componentDidLoad","onComponentRequiredPropUndefined","prop","propName","render","label","placement","delegatesFocus"],"sources":["../web-components/dist/collection/components/ic-back-to-top/ic-back-to-top.css?tag=ic-back-to-top&encapsulation=shadow","../web-components/dist/collection/components/ic-back-to-top/ic-back-to-top.js"],"sourcesContent":["/*! normalize.css v8.0.1 | MIT License | github.com/necolas/normalize.css */\n\n/* Document\n ========================================================================== */\n\n/**\n * 1. Correct the line height in all browsers.\n * 2. Prevent adjustments of font size after orientation changes in iOS.\n */\n\nhtml {\n line-height: 1.15; /* 1 */\n -webkit-text-size-adjust: 100%; /* 2 */\n}\n\n/* Sections\n ========================================================================== */\n\n/**\n * Remove the margin in all browsers.\n */\n\nbody {\n margin: 0;\n}\n\n/**\n * Render the `main` element consistently in IE.\n */\n\nmain {\n display: block;\n}\n\n/**\n * Correct the font size and margin on `h1` elements within `section` and\n * `article` contexts in Chrome, Firefox, and Safari.\n */\n\nh1 {\n font-size: 2em;\n margin: 0.67em 0;\n}\n\n/* Grouping content\n ========================================================================== */\n\n/**\n * 1. Add the correct box sizing in Firefox.\n * 2. Show the overflow in Edge and IE.\n */\n\nhr {\n box-sizing: content-box; /* 1 */\n height: 0; /* 1 */\n overflow: visible; /* 2 */\n}\n\n/**\n * 1. Correct the inheritance and scaling of font size in all browsers.\n * 2. Correct the odd `em` font sizing in all browsers.\n */\n\npre {\n font-family: monospace, monospace; /* 1 */\n font-size: 1em; /* 2 */\n}\n\n/* Text-level semantics\n ========================================================================== */\n\n/**\n * Remove the gray background on active links in IE 10.\n */\n\na {\n background-color: transparent;\n}\n\n/**\n * 1. Remove the bottom border in Chrome 57-\n * 2. Add the correct text decoration in Chrome, Edge, IE, Opera, and Safari.\n */\n\nabbr[title] {\n border-bottom: none; /* 1 */\n text-decoration: underline; /* 2 */\n -webkit-text-decoration: underline dotted;\n text-decoration: underline dotted; /* 2 */\n}\n\n/**\n * Add the correct font weight in Chrome, Edge, and Safari.\n */\n\nb,\nstrong {\n font-weight: bolder;\n}\n\n/**\n * 1. Correct the inheritance and scaling of font size in all browsers.\n * 2. Correct the odd `em` font sizing in all browsers.\n */\n\ncode,\nkbd,\nsamp {\n font-family: monospace, monospace; /* 1 */\n font-size: 1em; /* 2 */\n}\n\n/**\n * Add the correct font size in all browsers.\n */\n\nsmall {\n font-size: 80%;\n}\n\n/**\n * Prevent `sub` and `sup` elements from affecting the line height in\n * all browsers.\n */\n\nsub,\nsup {\n font-size: 75%;\n line-height: 0;\n position: relative;\n vertical-align: baseline;\n}\n\nsub {\n bottom: -0.25em;\n}\n\nsup {\n top: -0.5em;\n}\n\n/* Embedded content\n ========================================================================== */\n\n/**\n * Remove the border on images inside links in IE 10.\n */\n\nimg {\n border-style: none;\n}\n\n/* Forms\n ========================================================================== */\n\n/**\n * 1. Change the font styles in all browsers.\n * 2. Remove the margin in Firefox and Safari.\n */\n\nbutton,\ninput,\noptgroup,\nselect,\ntextarea {\n font-family: inherit; /* 1 */\n font-size: 100%; /* 1 */\n line-height: 1.15; /* 1 */\n margin: 0; /* 2 */\n}\n\n/**\n * Show the overflow in IE.\n * 1. Show the overflow in Edge.\n */\n\nbutton,\ninput {\n /* 1 */\n overflow: visible;\n}\n\n/**\n * Remove the inheritance of text transform in Edge, Firefox, and IE.\n * 1. Remove the inheritance of text transform in Firefox.\n */\n\nbutton,\nselect {\n /* 1 */\n text-transform: none;\n}\n\n/**\n * Correct the inability to style clickable types in iOS and Safari.\n */\n\nbutton,\n[type=\"button\"],\n[type=\"reset\"],\n[type=\"submit\"] {\n -webkit-appearance: button;\n}\n\n/**\n * Remove the inner border and padding in Firefox.\n */\n\nbutton::-moz-focus-inner,\n[type=\"button\"]::-moz-focus-inner,\n[type=\"reset\"]::-moz-focus-inner,\n[type=\"submit\"]::-moz-focus-inner {\n border-style: none;\n padding: 0;\n}\n\n/**\n * Restore the focus styles unset by the previous rule.\n */\n\nbutton:-moz-focusring,\n[type=\"button\"]:-moz-focusring,\n[type=\"reset\"]:-moz-focusring,\n[type=\"submit\"]:-moz-focusring {\n outline: 1px dotted ButtonText;\n}\n\n/**\n * Correct the padding in Firefox.\n */\n\nfieldset {\n padding: 0.35em 0.75em 0.625em;\n}\n\n/**\n * 1. Correct the text wrapping in Edge and IE.\n * 2. Correct the color inheritance from `fieldset` elements in IE.\n * 3. Remove the padding so developers are not caught out when they zero out\n * `fieldset` elements in all browsers.\n */\n\nlegend {\n box-sizing: border-box; /* 1 */\n color: inherit; /* 2 */\n display: table; /* 1 */\n max-width: 100%; /* 1 */\n padding: 0; /* 3 */\n white-space: normal; /* 1 */\n}\n\n/**\n * Add the correct vertical alignment in Chrome, Firefox, and Opera.\n */\n\nprogress {\n vertical-align: baseline;\n}\n\n/**\n * Remove the default vertical scrollbar in IE 10+.\n */\n\ntextarea {\n overflow: auto;\n}\n\n/**\n * 1. Add the correct box sizing in IE 10.\n * 2. Remove the padding in IE 10.\n */\n\n[type=\"checkbox\"],\n[type=\"radio\"] {\n box-sizing: border-box; /* 1 */\n padding: 0; /* 2 */\n}\n\n/**\n * Correct the cursor style of increment and decrement buttons in Chrome.\n */\n\n[type=\"number\"]::-webkit-inner-spin-button,\n[type=\"number\"]::-webkit-outer-spin-button {\n height: auto;\n}\n\n/**\n * 1. Correct the odd appearance in Chrome and Safari.\n * 2. Correct the outline style in Safari.\n */\n\n[type=\"search\"] {\n -webkit-appearance: textfield; /* 1 */\n outline-offset: -2px; /* 2 */\n}\n\n/**\n * Remove the inner padding in Chrome and Safari on macOS.\n */\n\n[type=\"search\"]::-webkit-search-decoration {\n -webkit-appearance: none;\n}\n\n/**\n * 1. Correct the inability to style clickable types in iOS and Safari.\n * 2. Change font properties to `inherit` in Safari.\n */\n\n::-webkit-file-upload-button {\n -webkit-appearance: button; /* 1 */\n font: inherit; /* 2 */\n}\n\n/* Interactive\n ========================================================================== */\n\n/*\n * Add the correct display in Edge, IE 10+, and Firefox.\n */\n\ndetails {\n display: block;\n}\n\n/*\n * Add the correct display in all browsers.\n */\n\nsummary {\n display: list-item;\n}\n\n/* Misc\n ========================================================================== */\n\n/**\n * Add the correct display in IE 10+.\n */\n\ntemplate {\n display: none;\n}\n\n/**\n * Add the correct display in IE 10.\n */\n\n[hidden] {\n display: none;\n}\n\nhtml,\nbody,\ndiv,\nspan,\napplet,\nobject,\niframe,\nh1,\nh2,\nh3,\nh4,\nh5,\nh6,\np,\nblockquote,\npre,\na,\nabbr,\nacronym,\naddress,\nbig,\ncite,\ncode,\ndel,\ndfn,\nem,\nimg,\nins,\nkbd,\nq,\ns,\nsamp,\nsmall,\nstrike,\nstrong,\nsub,\nsup,\ntt,\nvar,\nb,\nu,\ni,\ncenter,\ndl,\ndt,\ndd,\nol,\nul,\nli,\nfieldset,\nform,\nlabel,\nlegend,\ntable,\ncaption,\ntbody,\ntfoot,\nthead,\ntr,\nth,\ntd,\narticle,\naside,\ncanvas,\ndetails,\nembed,\nfigure,\nfigcaption,\nfooter,\nheader,\nhgroup,\nmenu,\nnav,\noutput,\nruby,\nsection,\nsummary,\ntime,\nmark,\naudio,\nvideo {\n margin: 0;\n padding: 0;\n border: 0;\n font-size: 100%;\n font-style: inherit;\n vertical-align: baseline;\n}\n\n\n/**\n * @prop --ic-z-index-back-to-top: z-index of back to top\n */\n\n:host {\n display: block;\n position: absolute;\n right: 0;\n}\n\n.positioning {\n position: fixed;\n right: var(--ic-space-md);\n bottom: var(--ic-space-md);\n transition: visibility 0s linear var(--ic-transition-duration-slow),\n opacity var(--ic-transition-duration-slow);\n z-index: var(--ic-z-index-back-to-top);\n}\n\nbutton {\n height: 2.5rem;\n align-items: center;\n padding: var(--ic-space-xs) var(--ic-space-md) var(--ic-space-xs)\n var(--ic-space-sm);\n margin: 0;\n gap: var(--ic-space-xs);\n display: flex;\n background-color: var(--ic-architectural-white);\n border: var(--ic-border-width) solid var(--ic-action-default);\n outline-width: inherit;\n box-sizing: border-box;\n box-shadow: var(--ic-elevation-overlay);\n border-radius: 5rem;\n text-decoration: none;\n visibility: hidden;\n opacity: 0;\n cursor: pointer;\n}\n\nbutton:hover {\n text-decoration: none;\n background-color: var(--ic-action-default-bg-hover-no-alpha);\n border: var(--ic-border-width) solid var(--ic-action-default-hover);\n}\n\nbutton:active {\n text-decoration: none;\n background-color: var(--ic-action-default-bg-active-no-alpha);\n border: var(--ic-border-width) solid var(--ic-action-default-active);\n}\n\nbutton:focus {\n box-shadow: var(--ic-border-focus);\n}\n\n.ic-back-to-top-link.show {\n visibility: visible;\n opacity: 1;\n transition: visibility 0s linear 0s,\n opacity var(--ic-transition-duration-slow),\n box-shadow var(--ic-easing-transition-fast);\n}\n\n.ic-back-to-top-link.by-footer {\n position: relative;\n right: var(--ic-space-md);\n bottom: 3.5rem;\n}\n\n.ic-back-to-top-link.offset-banner {\n margin-bottom: var(--ic-space-lg);\n}\n\n.ic-back-to-top-icon {\n fill: var(--ic-action-default);\n padding-left: var(--ic-space-xxs);\n padding-top: var(--ic-space-xxxs);\n}\n\n.ic-back-to-top-icon > svg {\n height: var(--ic-space-md);\n width: var(--ic-space-md);\n display: inline-block;\n}\n\n.ic-back-to-top-link span {\n color: var(--ic-action-default);\n}\n\n.ic-back-to-top-link:hover .ic-back-to-top-icon {\n fill: var(--ic-action-default-hover);\n}\n\n.ic-back-to-top-link:hover span {\n color: var(--ic-action-default-hover);\n}\n\n@media (forced-colors: active) {\n .ic-back-to-top-icon {\n fill: currentcolor;\n }\n}\n","import { h } from \"@stencil/core\";\nimport ArrowUpward from \"./assets/ArrowUpward.svg\";\nimport { onComponentPropUndefinedChange, onComponentRequiredPropUndefined, } from \"../../utils/helpers\";\nconst backToTopLabel = \"Back to top\";\nexport class BackToTop {\n constructor() {\n this.topObserver = null;\n this.setTargetElVisible = (visible) => {\n this.targetElVisible = visible;\n };\n this.setFooterVisible = (visible) => {\n this.checkForClassificationBanner();\n this.footerVisible =\n typeof window !== \"undefined\" && window.scrollY === 0 ? false : visible;\n };\n this.targetElObserverCallback = (entries) => {\n this.setTargetElVisible(entries[0].isIntersecting);\n };\n this.footerObserverCallback = (entries) => {\n this.setFooterVisible(entries[0].isIntersecting);\n };\n this.findTargetEl = (target) => {\n let targetElement = null;\n if (target === null || target === undefined) {\n console.log(\"Error: No target ID specified for back to top component - defaulting to top of page\");\n }\n else {\n targetElement = document.querySelector(`${target.startsWith(\"#\") ? \"\" : \"#\"}${target}`);\n if (targetElement === null) {\n console.log(`Error: Back to top target element '${target}' not found - defaulting to top of page`);\n }\n }\n return targetElement;\n };\n this.createTopObserver = (target) => {\n this.targetEl = this.findTargetEl(target);\n let objParent;\n //remove old element & observer\n if (this.topObserver !== null) {\n const observedEl = document.querySelector(\"#ic-back-to-top-target\");\n if (observedEl !== null) {\n this.topObserver.unobserve(observedEl);\n observedEl.remove();\n }\n }\n if (this.targetEl === null) {\n objParent = document.body;\n this.targetEl = objParent.firstElementChild;\n this.isTargetElNull = true;\n }\n else {\n objParent = this.targetEl.parentNode;\n this.isTargetElNull = false;\n }\n //insert a new 0px height element before specified target that can be used to determine when page is scrolled\n const objBackToTopTargetEl = document.createElement(\"div\");\n objBackToTopTargetEl.setAttribute(\"id\", \"ic-back-to-top-target\");\n objParent.insertBefore(objBackToTopTargetEl, this.targetEl);\n // resize observer needs to factor in any top margin on the target el\n const marginTop = getComputedStyle(this.targetEl).marginTop;\n this.topObserver = new IntersectionObserver(this.targetElObserverCallback, {\n threshold: [0],\n rootMargin: `${marginTop} 0px 0px 0px`,\n });\n this.topObserver.observe(objBackToTopTargetEl);\n };\n this.handleClick = () => {\n if (this.isTargetElNull) {\n window.scrollTo(0, 0);\n }\n else {\n this.targetEl.scrollIntoView();\n }\n };\n this.checkForClassificationBanner = () => {\n //adjust position for classification banner at bottom\n const banners = document.querySelectorAll(\"ic-classification-banner:not([inline='true'])\");\n this.bannerOffset = banners.length > 0;\n };\n this.buildButton = () => {\n const { bannerOffset, targetElVisible, footerVisible, variant } = this;\n return (h(\"button\", { class: {\n [\"ic-back-to-top-link\"]: true,\n [\"offset-banner\"]: bannerOffset,\n [\"show\"]: !targetElVisible,\n [\"by-footer\"]: footerVisible,\n [\"positioning\"]: variant !== \"icon\",\n }, \"aria-label\": backToTopLabel, onClick: this.handleClick }, h(\"span\", { class: \"ic-back-to-top-icon\", innerHTML: ArrowUpward }), this.variant !== \"icon\" && (h(\"ic-typography\", { variant: \"subtitle-small\" }, h(\"span\", null, backToTopLabel)))));\n };\n this.bannerOffset = false;\n this.footerVisible = false;\n this.targetElVisible = true;\n this.target = undefined;\n this.variant = \"default\";\n }\n watchPropHandler(newValue, oldValue) {\n //added for gatsby rehydration issue where prop is initially undefined but then changes to actual value\n onComponentPropUndefinedChange(oldValue, newValue, () => {\n this.createTopObserver(newValue);\n });\n }\n componentWillLoad() {\n this.createTopObserver(this.target);\n this.checkForClassificationBanner();\n //observer for when footer scrolls into view\n let footers = document.querySelectorAll(\"ic-footer\");\n if (footers.length === 0) {\n footers = document.querySelectorAll(\"footer\");\n }\n if (footers.length) {\n const footerEl = footers[footers.length - 1];\n const threshold = this.bannerOffset ? 0.15 : 0;\n const footerObserver = new IntersectionObserver(this.footerObserverCallback, { threshold: [threshold] });\n footerObserver.observe(footerEl);\n }\n }\n componentDidLoad() {\n onComponentRequiredPropUndefined([{ prop: this.target, propName: \"target\" }], \"Back to Top\");\n }\n render() {\n const { variant, buildButton } = this;\n return variant === \"icon\" ? (h(\"ic-tooltip\", { label: backToTopLabel, placement: \"top\", class: \"positioning\" }, buildButton())) : (buildButton());\n }\n static get is() { return \"ic-back-to-top\"; }\n static get encapsulation() { return \"shadow\"; }\n static get delegatesFocus() { return true; }\n static get originalStyleUrls() {\n return {\n \"$\": [\"ic-back-to-top.css\"]\n };\n }\n static get styleUrls() {\n return {\n \"$\": [\"ic-back-to-top.css\"]\n };\n }\n static get properties() {\n return {\n \"target\": {\n \"type\": \"string\",\n \"mutable\": false,\n \"complexType\": {\n \"original\": \"string\",\n \"resolved\": \"string\",\n \"references\": {}\n },\n \"required\": true,\n \"optional\": false,\n \"docs\": {\n \"tags\": [],\n \"text\": \"The ID of the element to jump back to when the link is clicked.\"\n },\n \"attribute\": \"target\",\n \"reflect\": false\n },\n \"variant\": {\n \"type\": \"string\",\n \"mutable\": false,\n \"complexType\": {\n \"original\": \"IcBackToTopVariants\",\n \"resolved\": \"\\\"default\\\" | \\\"icon\\\"\",\n \"references\": {\n \"IcBackToTopVariants\": {\n \"location\": \"import\",\n \"path\": \"./ic-back-to-top.types\",\n \"id\": \"src/components/ic-back-to-top/ic-back-to-top.types.ts::IcBackToTopVariants\"\n }\n }\n },\n \"required\": false,\n \"optional\": false,\n \"docs\": {\n \"tags\": [],\n \"text\": \"The variant of the button to render\"\n },\n \"attribute\": \"variant\",\n \"reflect\": false,\n \"defaultValue\": \"\\\"default\\\"\"\n }\n };\n }\n static get states() {\n return {\n \"bannerOffset\": {},\n \"footerVisible\": {},\n \"targetElVisible\": {}\n };\n }\n static get elementRef() { return \"el\"; }\n static get watchers() {\n return [{\n \"propName\": \"target\",\n \"methodName\": \"watchPropHandler\"\n }];\n }\n}\n//# sourceMappingURL=ic-back-to-top.js.map\n"],"mappings":"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"}
@@ -1,2 +0,0 @@
1
- import{r as t,h as i,H as e,g as s,c as a}from"./p-8455d1bb.js";import{i as n,a as h}from"./p-1b4f852c.js";import{w as l,x as o}from"./p-20d4ded5.js";import"./p-fd186591.js";const r=":host{gap:var(--ic-space-xs);padding:var(--ic-space-xs)}:host,.action-area{display:flex;flex-direction:column}.action-area{gap:var(--ic-space-md)}:host ::slotted(svg),:host ::slotted(img){border-radius:var(--ic-space-xxs)}:host(.right),:host(.right) .action-area{align-items:flex-end;text-align:right}:host(.center),:host(.center) .action-area{align-items:center;text-align:center}:host(.image-default) ::slotted(svg),:host(.image-default) ::slotted(img){height:calc(3 * var(--ic-space-lg)) !important;width:calc(3 * var(--ic-space-lg)) !important}:host(.image-small) ::slotted(svg),:host(.image-small) ::slotted(img){height:var(--ic-space-xxl) !important;width:var(--ic-space-xxl) !important}:host(.image-large) ::slotted(svg),:host(.image-large) ::slotted(img){height:calc(4 * var(--ic-space-xl)) !important;width:calc(4 * var(--ic-space-xl)) !important}";const c=class{constructor(i){t(this,i);this.aligned="left";this.body=undefined;this.bodyMaxLines=undefined;this.heading=undefined;this.imageSize="default";this.subheading=undefined}componentDidLoad(){!n(this.el,"heading")&&h([{prop:this.heading,propName:"heading"}],"Empty State")}render(){const{aligned:t,body:s,bodyMaxLines:a,heading:h,imageSize:l,subheading:o}=this;return i(e,{class:{[`${t}`]:true,[`image-${l}`]:n(this.el,"image")}},n(this.el,"image")&&i("slot",{name:"image"}),i("div",null,i("slot",{name:"heading"},i("ic-typography",{variant:"h4"},h)),i("slot",{name:"subheading"},i("ic-typography",{variant:"subtitle-small"},o)),i("slot",{name:"body"},i("ic-typography",{maxLines:a},s))),n(this.el,"actions")&&i("div",{class:"action-area"},i("slot",{name:"actions"})))}get el(){return s(this)}};c.style=r;const p=":host(){display:block}.pagination-bar{height:3.5rem;display:flex;align-items:center;justify-content:flex-end;gap:var(--ic-space-xl);padding:var(--ic-space-xs) var(--ic-space-md);box-sizing:border-box}.pagination-bar-left{justify-content:flex-start}.item-controls{display:flex;align-items:center;gap:var(--ic-space-xl)}.pagination-bar-space-between .item-controls{margin-right:auto}.items-per-page-holder{display:flex;align-items:center;gap:var(--ic-space-xs)}.items-per-page-input{--input-width:5rem}.pagination-controls{display:flex;align-items:center;gap:var(--ic-space-xl)}.pagination-controls-wrap{flex-direction:column;align-items:flex-end;gap:var(--ic-space-xs)}.pagination-bar-space-between .pagination-controls{margin-left:auto}.go-to-page-holder{display:flex;align-items:center;gap:var(--ic-space-xs)}.go-to-page-input{--input-width:var(--ic-space-xl)}.go-to-page-button{--min-width:var(--ic-space-xl)}.pagination-text-default,.pagination-text-dark,.pagination-text-light{white-space:nowrap}.pagination-text-light{color:var(--ic-color-white-text)}@media screen and (max-width: 768px){.pagination-bar{flex-direction:column;align-items:flex-end;height:-moz-fit-content;height:fit-content;gap:var(--ic-space-xs)}.pagination-bar-left{align-items:flex-start}}@media screen and (max-width: 320px){.item-controls,.pagination-controls{flex-direction:column;align-items:flex-end;gap:var(--ic-space-xs)}.pagination-bar-left .item-controls,.pagination-bar-left .pagination-controls,.pagination-bar-space-between .item-controls,.pagination-bar-space-between .pagination-controls{align-items:flex-start}}";const g=class{constructor(i){t(this,i);this.icPageChange=a(this,"icPageChange",7);this.icItemsPerPageChange=a(this,"icItemsPerPageChange",7);this.PAGE_INPUT_FIELD_ID="go-to-page-input";this.INVALID_PAGE_ERROR="Please enter a valid page";this.NAN_ERROR="Please enter a number";this.resizeObserver=null;this.changeItemsPerPage=()=>{this.setItemsPerPage(Number(this.pageDropdownEl.value))};this.changePage=t=>{this.currentPage=t;this.lowerBound=t!==1?(t-1)*this.itemsPerPage+1:t;this.setUpperBound()};this.focusElFromLabel=t=>{var i;(i=this.paginationBarEl.querySelector(t))===null||i===void 0?void 0:i.setFocus()};this.goToPage=()=>{const t=this.pageInputEl;const i=Number(t.value);if(i<=this.totalPages&&i>0){this.changePage(i);this.paginationEl.setCurrentPage(i);this.currentPage=i;t.value="";this.icPageChange.emit({value:i});this.pageInputTooltipEl.displayTooltip(false,false);t.validationStatus=""}else{this.setInputError(t,this.INVALID_PAGE_ERROR)}};this.goToPageLabelClickHandler=()=>{this.focusElFromLabel("ic-text-field")};this.handleBlur=()=>{const t=this.pageInputEl;if(Number(t.value)<=this.totalPages&&Number(t.value)>0||t.value===""){t.validationStatus=""}this.pageInputTooltipEl.displayTooltip(false,false)};this.handleFocus=()=>{if(this.pageInputEl.validationStatus==="error"){this.pageInputTooltipEl.displayTooltip(true,true)}};this.handleInputChange=()=>{const t=this.pageInputEl;const i=parseInt(t.value);if(i>this.totalPages||i<=0){this.setInputError(t,this.INVALID_PAGE_ERROR);this.pageInputTooltipEl.displayTooltip(true,true)}};this.handleKeydown=t=>{const i=this.pageInputTooltipEl;const e=this.pageInputEl;if(t.key==="Enter"){if(e.validationStatus==="error"){i.displayTooltip(true,true)}else{this.goToPage()}}else{i.displayTooltip(false,false);e.validationStatus=""}};this.handleKeyUp=t=>{const i=this.pageInputEl;const e=parseInt(i.value);if(Number.isNaN(e)&&t.key!=="Backspace"&&t.key!=="Enter"&&t.key!=="Tab"&&t.key!=="Shift"){this.setInputError(i,this.NAN_ERROR,false);this.pageInputTooltipEl.displayTooltip(true,false)}};this.itemsPerPageLabelClickHandler=()=>{this.focusElFromLabel("ic-select")};this.paginationShouldWrap=()=>{if(this.type==="simple"){if(this.paginationEl.clientHeight>63){this.paginationWrapped=true}else{this.paginationWrapped=false}}};this.resizeObserverCallback=t=>{if(t-this.paginationWidth>50||t-this.paginationWidth<-50){this.paginationWidth=t;this.paginationShouldWrap()}};this.runResizeObserver=()=>{this.resizeObserver=new ResizeObserver((()=>{const t=this.paginationBarEl.clientWidth;this.resizeObserverCallback(t)}));this.resizeObserver.observe(this.paginationBarEl)};this.setDisplayedItemsPerPageOptions=()=>{if(this.itemsPerPageOptions===undefined||this.itemsPerPageOptions===null){this.displayedItemsPerPageOptions=this.totalItems<=100?[{label:"10",value:"10"},{label:"25",value:"25"},{label:"50",value:"50"}]:[{label:"25",value:"25"},{label:"100",value:"100"},{label:"1000",value:"1000"}]}else{this.displayedItemsPerPageOptions=this.itemsPerPageOptions.slice(0,3)}};this.setGoToPageInputStyles=()=>{var t,i;const e=(t=this.el.shadowRoot)===null||t===void 0?void 0:t.querySelector(`.${this.PAGE_INPUT_FIELD_ID}`);if(e!==undefined){const t=(i=e===null||e===void 0?void 0:e.shadowRoot)===null||i===void 0?void 0:i.querySelector("input");if(t!==undefined){t.style.textAlign="center";t.style.padding="0"}}};this.setInputError=(t,i,e=true)=>{this.inputError=i;t.validationStatus="error";if(e)t.setFocus()};this.setItemsPerPage=t=>{if(this.itemsPerPage!==t){this.itemsPerPage=t;this.itemsPerPageString=t.toString();this.icItemsPerPageChange.emit({value:this.itemsPerPage})}this.setNumberPages();this.setUpperBound();if(this.currentPage>this.totalPages){this.paginationEl.setCurrentPage(this.totalPages);this.currentPage=this.totalPages}this.icPageChange.emit({value:this.currentPage})};this.setNumberPages=()=>{const t=this.itemsPerPage;if(this.totalItems<=t){this.totalPages=1}else{this.totalPages=Math.ceil(this.totalItems/t)}};this.setPaginationBarContent=()=>{this.setDisplayedItemsPerPageOptions();this.trimItemsPerPageOptions();this.updateItemsPerPage()};this.setUpperBound=()=>{this.upperBound=Math.min(this.lowerBound+this.itemsPerPage-1,this.totalItems)};this.trimItemsPerPageOptions=()=>{this.displayedItemsPerPageOptions.push({label:"All",value:String(this.totalItems)});for(let t=0;t<this.displayedItemsPerPageOptions.length-1;t++){if(this.totalItems<=Number(this.displayedItemsPerPageOptions[t].value)){this.displayedItemsPerPageOptions.splice(t,this.displayedItemsPerPageOptions.length-(t+1))}}};this.updateItemsPerPage=()=>{let t=this.itemsPerPage;let i=false;let e=0;for(let s=0;s<this.displayedItemsPerPageOptions.length;s++){e=Number(this.displayedItemsPerPageOptions[s].value);if(this.itemsPerPage<=e){t=e;i=true;s=this.displayedItemsPerPageOptions.length}}if(!i&&this.itemsPerPage>e){t=e}this.setItemsPerPage(t)};this.capitalizedItemLabel=undefined;this.capitalizedPageLabel=undefined;this.currentPage=1;this.displayedItemsPerPageOptions=undefined;this.inputError="Please enter a valid page";this.itemsPerPage=0;this.itemsPerPageString="0";this.lowerBound=1;this.lowerCaseItemLabel=undefined;this.lowerCasePageLabel=undefined;this.paginationWidth=undefined;this.paginationWrapped=false;this.totalPages=undefined;this.upperBound=undefined;this.alignment="right";this.appearance="default";this.itemLabel="Item";this.itemsPerPageOptions=undefined;this.type="simple";this.rangeLabelType="page";this.pageLabel="Page";this.showGoToPageControl=false;this.hideRangeLabel=false;this.showItemsPerPageControl=false;this.totalItems=undefined}watchItemLabelHandler(){this.capitalizedItemLabel=l(this.itemLabel);this.lowerCaseItemLabel=this.itemLabel.toLowerCase()}watchItemsPerPageOptionsHandler(){this.setPaginationBarContent()}watchPageLabelHandler(){this.capitalizedPageLabel=l(this.pageLabel);this.lowerCasePageLabel=this.pageLabel.toLowerCase()}watchTotalItemsHandler(){this.setPaginationBarContent()}disconnectedCallback(){if(this.resizeObserver!==null){this.resizeObserver.disconnect()}}componentWillLoad(){this.watchPageLabelHandler();this.watchItemLabelHandler();this.setPaginationBarContent()}componentDidLoad(){this.paginationWidth=this.paginationBarEl.clientWidth;o(this.runResizeObserver);this.setGoToPageInputStyles();this.paginationShouldWrap()}pageChangeHandler(t){const i=t.detail.value;this.changePage(i)}render(){const{appearance:t,alignment:e,displayedItemsPerPageOptions:s,PAGE_INPUT_FIELD_ID:a,type:n,rangeLabelType:h,hideRangeLabel:l,showItemsPerPageControl:o,showGoToPageControl:r,pageLabel:c,capitalizedPageLabel:p,lowerCasePageLabel:g,capitalizedItemLabel:d,lowerCaseItemLabel:m,totalPages:u,currentPage:f,itemsPerPageString:b}=this;return i("div",{class:{["pagination-bar"]:true,[`pagination-bar-${e}`]:true},ref:t=>this.paginationBarEl=t},(!l||o)&&i("div",{class:"item-controls"},o&&i("div",{class:"items-per-page-holder"},i("ic-typography",{class:{[`pagination-text-${t}`]:true,["items-per-page-control-label"]:true},variant:"label",onClick:this.itemsPerPageLabelClickHandler},d,"s per ",g),i("ic-select",{small:true,label:"items-per-page-input",class:"items-per-page-input",hideLabel:true,options:s,value:b,onIcChange:this.changeItemsPerPage,ref:t=>this.pageDropdownEl=t})),!l&&h==="data"?i("ic-typography",{class:{[`pagination-text-${t}`]:true,["item-pagination-label"]:true},variant:"label","aria-live":"polite"},this.upperBound===0&&`0 ${m}s`,this.upperBound>0&&`${this.lowerBound} - ${this.upperBound} of ${this.totalItems} ${m}${this.totalItems>1?"s":""}`):!l&&i("ic-typography",{class:{[`pagination-text-${t}`]:true,["page-pagination-label"]:true},variant:"label","aria-live":"polite"},p," ",f," of ",u)),i("div",{class:{["pagination-controls"]:true,["pagination-controls-wrap"]:this.paginationWrapped}},i("div",{class:"pagination-holder"},i("ic-pagination",{appearance:t,type:n,pages:u,label:c,ref:t=>this.paginationEl=t})),r&&i("div",{class:"go-to-page-holder"},i("ic-typography",{class:{[`pagination-text-${t}`]:true},variant:"label",onClick:this.goToPageLabelClickHandler},"Go to ",g),i("ic-tooltip",{label:this.inputError,target:`#${a}`,disableHover:true,disableClick:true,ref:t=>this.pageInputTooltipEl=t},i("ic-text-field",{type:"number",size:"small",label:a,class:a,id:a,hideLabel:true,onKeyDown:this.handleKeydown,onKeyUp:this.handleKeyUp,onInput:this.handleInputChange,max:u,min:"1",validationInlineInternal:true,onBlur:this.handleBlur,onFocus:this.handleFocus,ref:t=>this.pageInputEl=t})),i("ic-button",{appearance:t,variant:"secondary",onClick:this.goToPage,size:"small",class:"go-to-page-button"},"Go"))))}get el(){return s(this)}static get watchers(){return{itemLabel:["watchItemLabelHandler"],itemsPerPageOptions:["watchItemsPerPageOptionsHandler"],pageLabel:["watchPageLabelHandler"],totalItems:["watchTotalItemsHandler"]}}};g.style=p;export{c as ic_empty_state,g as ic_pagination_bar};
2
- //# sourceMappingURL=p-53aeca18.entry.js.map
@@ -1 +0,0 @@
1
- {"version":3,"names":["icEmptyStateCss","EmptyState","constructor","hostRef","this","aligned","body","undefined","bodyMaxLines","heading","imageSize","subheading","componentDidLoad","isSlotUsed","el","onComponentRequiredPropUndefined","prop","propName","render","h","Host","class","name","variant","maxLines","icPaginationBarCss","PaginationBar","PAGE_INPUT_FIELD_ID","INVALID_PAGE_ERROR","NAN_ERROR","resizeObserver","changeItemsPerPage","setItemsPerPage","Number","pageDropdownEl","value","changePage","page","currentPage","lowerBound","itemsPerPage","setUpperBound","focusElFromLabel","_a","paginationBarEl","querySelector","setFocus","goToPage","input","pageInputEl","totalPages","paginationEl","setCurrentPage","icPageChange","emit","pageInputTooltipEl","displayTooltip","validationStatus","setInputError","goToPageLabelClickHandler","handleBlur","textField","handleFocus","handleInputChange","inputValue","parseInt","handleKeydown","ev","tooltip","key","handleKeyUp","isNaN","itemsPerPageLabelClickHandler","paginationShouldWrap","type","clientHeight","paginationWrapped","resizeObserverCallback","currSize","paginationWidth","runResizeObserver","ResizeObserver","clientWidth","observe","setDisplayedItemsPerPageOptions","itemsPerPageOptions","displayedItemsPerPageOptions","totalItems","label","slice","setGoToPageInputStyles","shadowRoot","_b","style","textAlign","padding","error","focus","inputError","newValue","itemsPerPageString","toString","icItemsPerPageChange","setNumberPages","numItemsPerPage","Math","ceil","setPaginationBarContent","trimItemsPerPageOptions","updateItemsPerPage","upperBound","min","push","String","i","length","splice","newItemsPerPage","updated","lastOptionValue","watchItemLabelHandler","capitalizedItemLabel","capitalize","itemLabel","lowerCaseItemLabel","toLowerCase","watchItemsPerPageOptionsHandler","watchPageLabelHandler","capitalizedPageLabel","pageLabel","lowerCasePageLabel","watchTotalItemsHandler","disconnectedCallback","disconnect","componentWillLoad","checkResizeObserver","pageChangeHandler","detail","appearance","alignment","rangeLabelType","hideRangeLabel","showItemsPerPageControl","showGoToPageControl","ref","onClick","small","hideLabel","options","onIcChange","pages","target","disableHover","disableClick","size","id","onKeyDown","onKeyUp","onInput","max","validationInlineInternal","onBlur","onFocus"],"sources":["../web-components/dist/collection/components/ic-empty-state/ic-empty-state.css?tag=ic-empty-state&encapsulation=shadow","../web-components/dist/collection/components/ic-empty-state/ic-empty-state.js","src/components/ic-pagination-bar/ic-pagination-bar.css?tag=ic-pagination-bar&encapsulation=shadow","src/components/ic-pagination-bar/ic-pagination-bar.tsx"],"sourcesContent":[":host {\n gap: var(--ic-space-xs);\n padding: var(--ic-space-xs);\n}\n\n:host,\n.action-area {\n display: flex;\n flex-direction: column;\n}\n\n.action-area {\n gap: var(--ic-space-md);\n}\n\n:host ::slotted(svg),\n:host ::slotted(img) {\n border-radius: var(--ic-space-xxs);\n}\n\n:host(.right),\n:host(.right) .action-area {\n align-items: flex-end;\n text-align: right;\n}\n\n:host(.center),\n:host(.center) .action-area {\n align-items: center;\n text-align: center;\n}\n\n:host(.image-default) ::slotted(svg),\n:host(.image-default) ::slotted(img) {\n height: calc(3 * var(--ic-space-lg)) !important;\n width: calc(3 * var(--ic-space-lg)) !important;\n}\n\n:host(.image-small) ::slotted(svg),\n:host(.image-small) ::slotted(img) {\n height: var(--ic-space-xxl) !important;\n width: var(--ic-space-xxl) !important;\n}\n\n:host(.image-large) ::slotted(svg),\n:host(.image-large) ::slotted(img) {\n height: calc(4 * var(--ic-space-xl)) !important;\n width: calc(4 * var(--ic-space-xl)) !important;\n}\n","import { h, Host } from \"@stencil/core\";\nimport { isSlotUsed, onComponentRequiredPropUndefined, } from \"../../utils/helpers\";\n/**\n * @slot image - Content is placed at the top above all other content.\n * @slot actions - Content is placed at the bottom below all other content.\n * @slot heading - Content will be rendered in place of the heading prop.\n * @slot subheading - Content will be rendered in place of the subheading prop.\n * @slot body - Content will be rendered in place of the body prop.\n */\nexport class EmptyState {\n constructor() {\n this.aligned = \"left\";\n this.body = undefined;\n this.bodyMaxLines = undefined;\n this.heading = undefined;\n this.imageSize = \"default\";\n this.subheading = undefined;\n }\n componentDidLoad() {\n !isSlotUsed(this.el, \"heading\") &&\n onComponentRequiredPropUndefined([{ prop: this.heading, propName: \"heading\" }], \"Empty State\");\n }\n render() {\n const { aligned, body, bodyMaxLines, heading, imageSize, subheading } = this;\n return (h(Host, { class: {\n [`${aligned}`]: true,\n [`image-${imageSize}`]: isSlotUsed(this.el, \"image\"),\n } }, isSlotUsed(this.el, \"image\") && h(\"slot\", { name: \"image\" }), h(\"div\", null, h(\"slot\", { name: \"heading\" }, h(\"ic-typography\", { variant: \"h4\" }, heading)), h(\"slot\", { name: \"subheading\" }, h(\"ic-typography\", { variant: \"subtitle-small\" }, subheading)), h(\"slot\", { name: \"body\" }, h(\"ic-typography\", { maxLines: bodyMaxLines }, body))), isSlotUsed(this.el, \"actions\") && (h(\"div\", { class: \"action-area\" }, h(\"slot\", { name: \"actions\" })))));\n }\n static get is() { return \"ic-empty-state\"; }\n static get encapsulation() { return \"shadow\"; }\n static get originalStyleUrls() {\n return {\n \"$\": [\"ic-empty-state.css\"]\n };\n }\n static get styleUrls() {\n return {\n \"$\": [\"ic-empty-state.css\"]\n };\n }\n static get properties() {\n return {\n \"aligned\": {\n \"type\": \"string\",\n \"mutable\": false,\n \"complexType\": {\n \"original\": \"IcEmptyStateAlignment\",\n \"resolved\": \"\\\"center\\\" | \\\"left\\\" | \\\"right\\\"\",\n \"references\": {\n \"IcEmptyStateAlignment\": {\n \"location\": \"import\",\n \"path\": \"./ic-empty-state.types\",\n \"id\": \"src/components/ic-empty-state/ic-empty-state.types.ts::IcEmptyStateAlignment\"\n }\n }\n },\n \"required\": false,\n \"optional\": true,\n \"docs\": {\n \"tags\": [],\n \"text\": \"The alignment of the empty state container.\"\n },\n \"attribute\": \"aligned\",\n \"reflect\": false,\n \"defaultValue\": \"\\\"left\\\"\"\n },\n \"body\": {\n \"type\": \"string\",\n \"mutable\": false,\n \"complexType\": {\n \"original\": \"string\",\n \"resolved\": \"string\",\n \"references\": {}\n },\n \"required\": false,\n \"optional\": true,\n \"docs\": {\n \"tags\": [],\n \"text\": \"The body text rendered in the empty state container.\"\n },\n \"attribute\": \"body\",\n \"reflect\": false\n },\n \"bodyMaxLines\": {\n \"type\": \"number\",\n \"mutable\": false,\n \"complexType\": {\n \"original\": \"number\",\n \"resolved\": \"number\",\n \"references\": {}\n },\n \"required\": false,\n \"optional\": true,\n \"docs\": {\n \"tags\": [],\n \"text\": \"The number of lines of body text to display before truncating.\"\n },\n \"attribute\": \"body-max-lines\",\n \"reflect\": false\n },\n \"heading\": {\n \"type\": \"string\",\n \"mutable\": false,\n \"complexType\": {\n \"original\": \"string\",\n \"resolved\": \"string\",\n \"references\": {}\n },\n \"required\": false,\n \"optional\": true,\n \"docs\": {\n \"tags\": [],\n \"text\": \"The title rendered in the empty state container.\"\n },\n \"attribute\": \"heading\",\n \"reflect\": false\n },\n \"imageSize\": {\n \"type\": \"string\",\n \"mutable\": false,\n \"complexType\": {\n \"original\": \"IcSizes\",\n \"resolved\": \"\\\"default\\\" | \\\"large\\\" | \\\"small\\\"\",\n \"references\": {\n \"IcSizes\": {\n \"location\": \"import\",\n \"path\": \"../../utils/types\",\n \"id\": \"src/utils/types.ts::IcSizes\"\n }\n }\n },\n \"required\": false,\n \"optional\": true,\n \"docs\": {\n \"tags\": [],\n \"text\": \"The size of the image or icon used in the image slot.\"\n },\n \"attribute\": \"image-size\",\n \"reflect\": false,\n \"defaultValue\": \"\\\"default\\\"\"\n },\n \"subheading\": {\n \"type\": \"string\",\n \"mutable\": false,\n \"complexType\": {\n \"original\": \"string\",\n \"resolved\": \"string\",\n \"references\": {}\n },\n \"required\": false,\n \"optional\": true,\n \"docs\": {\n \"tags\": [],\n \"text\": \"The subtitle rendered in the empty state container.\"\n },\n \"attribute\": \"subheading\",\n \"reflect\": false\n }\n };\n }\n static get elementRef() { return \"el\"; }\n}\n//# sourceMappingURL=ic-empty-state.js.map\n",":host() {\n display: block;\n}\n\n.pagination-bar {\n height: 3.5rem;\n display: flex;\n align-items: center;\n justify-content: flex-end;\n gap: var(--ic-space-xl);\n padding: var(--ic-space-xs) var(--ic-space-md);\n box-sizing: border-box;\n}\n\n.pagination-bar-left {\n justify-content: flex-start;\n}\n\n.item-controls {\n display: flex;\n align-items: center;\n gap: var(--ic-space-xl);\n}\n\n.pagination-bar-space-between .item-controls {\n margin-right: auto;\n}\n\n.items-per-page-holder {\n display: flex;\n align-items: center;\n gap: var(--ic-space-xs);\n}\n\n.items-per-page-input {\n --input-width: 5rem;\n}\n\n.pagination-controls {\n display: flex;\n align-items: center;\n gap: var(--ic-space-xl);\n}\n\n.pagination-controls-wrap {\n flex-direction: column;\n align-items: flex-end;\n gap: var(--ic-space-xs);\n}\n\n.pagination-bar-space-between .pagination-controls {\n margin-left: auto;\n}\n\n.go-to-page-holder {\n display: flex;\n align-items: center;\n gap: var(--ic-space-xs);\n}\n\n.go-to-page-input {\n --input-width: var(--ic-space-xl);\n}\n\n.go-to-page-button {\n --min-width: var(--ic-space-xl);\n}\n\n.pagination-text-default,\n.pagination-text-dark,\n.pagination-text-light {\n white-space: nowrap;\n}\n\n.pagination-text-light {\n color: var(--ic-color-white-text);\n}\n\n@media screen and (max-width: 768px) {\n .pagination-bar {\n flex-direction: column;\n align-items: flex-end;\n height: fit-content;\n gap: var(--ic-space-xs);\n }\n\n .pagination-bar-left {\n align-items: flex-start;\n }\n}\n\n@media screen and (max-width: 320px) {\n .item-controls,\n .pagination-controls {\n flex-direction: column;\n align-items: flex-end;\n gap: var(--ic-space-xs);\n }\n\n .pagination-bar-left .item-controls,\n .pagination-bar-left .pagination-controls,\n .pagination-bar-space-between .item-controls,\n .pagination-bar-space-between .pagination-controls {\n align-items: flex-start;\n }\n}\n","import {\n Component,\n Prop,\n Element,\n Event,\n EventEmitter,\n State,\n Listen,\n h,\n Watch,\n} from \"@stencil/core\";\nimport { IcThemeForeground } from \"@ukic/web-components/dist/types/interface\";\nimport { checkResizeObserver, capitalize } from \"../../utils/helpers\";\nimport {\n IcPaginationAlignmentOptions,\n IcPaginationLabelTypes,\n IcPaginationTypes,\n} from \"@ukic/web-components/dist/types/components/ic-pagination/ic-pagination.types\";\n\n@Component({\n tag: \"ic-pagination-bar\",\n styleUrl: \"ic-pagination-bar.css\",\n shadow: true,\n})\nexport class PaginationBar {\n private PAGE_INPUT_FIELD_ID = \"go-to-page-input\";\n\n private INVALID_PAGE_ERROR = \"Please enter a valid page\";\n private NAN_ERROR = \"Please enter a number\";\n\n private resizeObserver: ResizeObserver = null;\n private pageDropdownEl: HTMLIcSelectElement;\n private pageInputEl: HTMLIcTextFieldElement;\n private pageInputTooltipEl: HTMLIcTooltipElement;\n private paginationBarEl: HTMLElement;\n private paginationEl: HTMLIcPaginationElement;\n\n @Element() el: HTMLIcPaginationBarElement;\n\n @State() capitalizedItemLabel: string;\n\n @State() capitalizedPageLabel: string;\n\n @State() currentPage: number = 1;\n\n @State() displayedItemsPerPageOptions?: {\n label: string;\n value: string;\n }[];\n\n @State() inputError: string = \"Please enter a valid page\";\n\n @State() itemsPerPage: number = 0;\n\n @State() itemsPerPageString: string = \"0\";\n\n @State() lowerBound: number = 1;\n\n @State() lowerCaseItemLabel: string;\n\n @State() lowerCasePageLabel: string;\n\n @State() paginationWidth: number;\n\n @State() paginationWrapped: boolean = false;\n\n @State() totalPages: number;\n\n @State() upperBound: number;\n\n /**\n * Sets the alignment of the items in the pagination bar.\n */\n @Prop() alignment?: IcPaginationAlignmentOptions = \"right\";\n\n /**\n * Sets the styling for the items in the pagination bar.\n */\n @Prop() appearance?: IcThemeForeground = \"default\";\n\n /**\n * The text which will be used in place of 'Item' on the pagination bar.\n */\n @Prop() itemLabel?: string = \"Item\";\n\n @Watch(\"itemLabel\")\n watchItemLabelHandler(): void {\n this.capitalizedItemLabel = capitalize(this.itemLabel);\n this.lowerCaseItemLabel = this.itemLabel.toLowerCase();\n }\n\n /**\n * The options which will be displayed for 'items per page' select input. Set a maximum of 4 options including a required 'All' option with value equal to total number of items.\n */\n @Prop() itemsPerPageOptions?: {\n label: string;\n value: string;\n }[];\n\n @Watch(\"itemsPerPageOptions\")\n watchItemsPerPageOptionsHandler(): void {\n this.setPaginationBarContent();\n }\n\n /**\n * Whether the displayed pagination is simple or complex.\n */\n @Prop() type?: IcPaginationTypes = \"simple\";\n\n /**\n * Whether total number of items and current item range or total number of pages and current page is displayed.\n */\n @Prop() rangeLabelType?: IcPaginationLabelTypes = \"page\";\n\n /**\n * The text which will be used in place of 'Page' on the pagination bar.\n */\n @Prop() pageLabel?: string = \"Page\";\n\n @Watch(\"pageLabel\")\n watchPageLabelHandler(): void {\n this.capitalizedPageLabel = capitalize(this.pageLabel);\n this.lowerCasePageLabel = this.pageLabel.toLowerCase();\n }\n\n /**\n * If `true`, the 'go to page' control should be displayed.\n */\n @Prop() showGoToPageControl?: boolean = false;\n\n /**\n * If `true`, the number of total items and current item range or number of total pages and current page will be hidden.\n */\n @Prop() hideRangeLabel?: boolean = false;\n\n /**\n * If `true`, the select input to control 'items per page' should be displayed.\n */\n @Prop() showItemsPerPageControl?: boolean = false;\n\n /**\n * Total number of items to be displayed across all pages.\n */\n @Prop() totalItems!: number;\n\n @Watch(\"totalItems\")\n watchTotalItemsHandler(): void {\n this.setPaginationBarContent();\n }\n\n /**\n * Emitted when a page is navigated to via the 'go to' input.\n */\n @Event() icPageChange: EventEmitter<{ value: number }>;\n\n /**\n * Emitted when the items per page option is changed.\n */\n @Event() icItemsPerPageChange: EventEmitter<{ value: number }>;\n\n disconnectedCallback(): void {\n if (this.resizeObserver !== null) {\n this.resizeObserver.disconnect();\n }\n }\n\n componentWillLoad(): void {\n this.watchPageLabelHandler();\n this.watchItemLabelHandler();\n this.setPaginationBarContent();\n }\n\n componentDidLoad(): void {\n this.paginationWidth = this.paginationBarEl.clientWidth;\n checkResizeObserver(this.runResizeObserver);\n this.setGoToPageInputStyles();\n this.paginationShouldWrap();\n }\n\n @Listen(\"icPageChange\")\n pageChangeHandler(ev: CustomEvent): void {\n const page = ev.detail.value;\n this.changePage(page);\n }\n\n private changeItemsPerPage = () => {\n this.setItemsPerPage(Number(this.pageDropdownEl.value));\n };\n\n private changePage = (page: number) => {\n this.currentPage = page;\n this.lowerBound = page !== 1 ? (page - 1) * this.itemsPerPage + 1 : page;\n this.setUpperBound();\n };\n\n private focusElFromLabel = (el: \"ic-select\" | \"ic-text-field\") => {\n this.paginationBarEl.querySelector(el)?.setFocus();\n };\n\n private goToPage = () => {\n const input = this.pageInputEl;\n const page = Number(input.value);\n if (page <= this.totalPages && page > 0) {\n this.changePage(page);\n this.paginationEl.setCurrentPage(page);\n this.currentPage = page;\n input.value = \"\";\n this.icPageChange.emit({ value: page });\n this.pageInputTooltipEl.displayTooltip(false, false);\n input.validationStatus = \"\";\n } else {\n this.setInputError(input, this.INVALID_PAGE_ERROR);\n }\n };\n\n private goToPageLabelClickHandler = () => {\n this.focusElFromLabel(\"ic-text-field\");\n };\n\n private handleBlur = () => {\n const textField = this.pageInputEl;\n if (\n (Number(textField.value) <= this.totalPages &&\n Number(textField.value) > 0) ||\n textField.value === \"\"\n ) {\n textField.validationStatus = \"\";\n }\n this.pageInputTooltipEl.displayTooltip(false, false);\n };\n\n private handleFocus = () => {\n if (this.pageInputEl.validationStatus === \"error\") {\n this.pageInputTooltipEl.displayTooltip(true, true);\n }\n };\n\n private handleInputChange = () => {\n const textField = this.pageInputEl;\n const inputValue = parseInt(textField.value);\n\n if (inputValue > this.totalPages || inputValue <= 0) {\n this.setInputError(textField, this.INVALID_PAGE_ERROR);\n this.pageInputTooltipEl.displayTooltip(true, true);\n }\n };\n\n private handleKeydown = (ev: KeyboardEvent) => {\n const tooltip = this.pageInputTooltipEl;\n const textField = this.pageInputEl;\n\n if (ev.key === \"Enter\") {\n if (textField.validationStatus === \"error\") {\n tooltip.displayTooltip(true, true);\n } else {\n this.goToPage();\n }\n } else {\n tooltip.displayTooltip(false, false);\n textField.validationStatus = \"\";\n }\n };\n\n private handleKeyUp = (ev: KeyboardEvent) => {\n const textField = this.pageInputEl;\n const inputValue = parseInt(textField.value);\n\n if (\n Number.isNaN(inputValue) &&\n ev.key !== \"Backspace\" &&\n ev.key !== \"Enter\" &&\n ev.key !== \"Tab\" &&\n ev.key !== \"Shift\"\n ) {\n this.setInputError(textField, this.NAN_ERROR, false);\n this.pageInputTooltipEl.displayTooltip(true, false);\n }\n };\n\n private itemsPerPageLabelClickHandler = () => {\n this.focusElFromLabel(\"ic-select\");\n };\n\n private paginationShouldWrap = () => {\n if (this.type === \"simple\") {\n if (this.paginationEl.clientHeight > 63) {\n this.paginationWrapped = true;\n } else {\n this.paginationWrapped = false;\n }\n }\n };\n\n private resizeObserverCallback = (currSize: number) => {\n if (\n currSize - this.paginationWidth > 50 ||\n currSize - this.paginationWidth < -50\n ) {\n this.paginationWidth = currSize;\n this.paginationShouldWrap();\n }\n };\n\n private runResizeObserver = () => {\n this.resizeObserver = new ResizeObserver(() => {\n const currSize = this.paginationBarEl.clientWidth;\n this.resizeObserverCallback(currSize);\n });\n\n this.resizeObserver.observe(this.paginationBarEl);\n };\n\n private setDisplayedItemsPerPageOptions = () => {\n if (\n this.itemsPerPageOptions === undefined ||\n this.itemsPerPageOptions === null\n ) {\n this.displayedItemsPerPageOptions =\n this.totalItems <= 100\n ? [\n { label: \"10\", value: \"10\" },\n { label: \"25\", value: \"25\" },\n { label: \"50\", value: \"50\" },\n ]\n : [\n { label: \"25\", value: \"25\" },\n { label: \"100\", value: \"100\" },\n { label: \"1000\", value: \"1000\" },\n ];\n } else {\n this.displayedItemsPerPageOptions = this.itemsPerPageOptions.slice(0, 3);\n }\n };\n\n private setGoToPageInputStyles = () => {\n const textField = this.el.shadowRoot?.querySelector(\n `.${this.PAGE_INPUT_FIELD_ID}`\n );\n if (textField !== undefined) {\n const input = textField?.shadowRoot?.querySelector(\"input\");\n if (input !== undefined) {\n input.style.textAlign = \"center\";\n input.style.padding = \"0\";\n }\n }\n };\n\n private setInputError = (\n el: HTMLIcTextFieldElement,\n error: string,\n focus = true\n ) => {\n this.inputError = error;\n el.validationStatus = \"error\";\n if (focus) el.setFocus();\n };\n\n private setItemsPerPage = (newValue: number) => {\n if (this.itemsPerPage !== newValue) {\n this.itemsPerPage = newValue;\n this.itemsPerPageString = newValue.toString();\n this.icItemsPerPageChange.emit({ value: this.itemsPerPage });\n }\n this.setNumberPages();\n this.setUpperBound();\n if (this.currentPage > this.totalPages) {\n this.paginationEl.setCurrentPage(this.totalPages);\n this.currentPage = this.totalPages;\n }\n this.icPageChange.emit({ value: this.currentPage });\n };\n\n private setNumberPages = () => {\n const numItemsPerPage = this.itemsPerPage;\n if (this.totalItems <= numItemsPerPage) {\n this.totalPages = 1;\n } else {\n this.totalPages = Math.ceil(this.totalItems / numItemsPerPage);\n }\n };\n\n private setPaginationBarContent = (): void => {\n this.setDisplayedItemsPerPageOptions();\n this.trimItemsPerPageOptions();\n this.updateItemsPerPage();\n };\n\n private setUpperBound = () => {\n this.upperBound = Math.min(\n this.lowerBound + this.itemsPerPage - 1,\n this.totalItems\n );\n };\n\n private trimItemsPerPageOptions = () => {\n this.displayedItemsPerPageOptions.push({\n label: \"All\",\n value: String(this.totalItems),\n });\n\n for (let i = 0; i < this.displayedItemsPerPageOptions.length - 1; i++) {\n if (\n this.totalItems <= Number(this.displayedItemsPerPageOptions[i].value)\n ) {\n this.displayedItemsPerPageOptions.splice(\n i,\n this.displayedItemsPerPageOptions.length - (i + 1)\n );\n }\n }\n };\n\n private updateItemsPerPage = () => {\n let newItemsPerPage = this.itemsPerPage;\n let updated = false;\n let lastOptionValue = 0;\n for (let i = 0; i < this.displayedItemsPerPageOptions.length; i++) {\n lastOptionValue = Number(this.displayedItemsPerPageOptions[i].value);\n if (this.itemsPerPage <= lastOptionValue) {\n newItemsPerPage = lastOptionValue;\n updated = true;\n i = this.displayedItemsPerPageOptions.length;\n }\n }\n if (!updated && this.itemsPerPage > lastOptionValue) {\n newItemsPerPage = lastOptionValue;\n }\n this.setItemsPerPage(newItemsPerPage);\n };\n\n render() {\n const {\n appearance,\n alignment,\n displayedItemsPerPageOptions,\n PAGE_INPUT_FIELD_ID,\n type,\n rangeLabelType,\n hideRangeLabel,\n showItemsPerPageControl,\n showGoToPageControl,\n pageLabel,\n capitalizedPageLabel,\n lowerCasePageLabel,\n capitalizedItemLabel,\n lowerCaseItemLabel,\n totalPages,\n currentPage,\n itemsPerPageString,\n } = this;\n\n return (\n <div\n class={{\n [\"pagination-bar\"]: true,\n [`pagination-bar-${alignment}`]: true,\n }}\n ref={(el) => (this.paginationBarEl = el)}\n >\n {(!hideRangeLabel || showItemsPerPageControl) && (\n <div class=\"item-controls\">\n {showItemsPerPageControl && (\n <div class=\"items-per-page-holder\">\n <ic-typography\n class={{\n [`pagination-text-${appearance}`]: true,\n [\"items-per-page-control-label\"]: true,\n }}\n variant=\"label\"\n onClick={this.itemsPerPageLabelClickHandler}\n >\n {capitalizedItemLabel}s per {lowerCasePageLabel}\n </ic-typography>\n <ic-select\n small\n label=\"items-per-page-input\"\n class=\"items-per-page-input\"\n hideLabel\n options={displayedItemsPerPageOptions}\n value={itemsPerPageString}\n onIcChange={this.changeItemsPerPage}\n ref={(el: HTMLIcSelectElement) => (this.pageDropdownEl = el)}\n ></ic-select>\n </div>\n )}\n {!hideRangeLabel && rangeLabelType === \"data\" ? (\n <ic-typography\n class={{\n [`pagination-text-${appearance}`]: true,\n [\"item-pagination-label\"]: true,\n }}\n variant=\"label\"\n aria-live=\"polite\"\n >\n {this.upperBound === 0 && `0 ${lowerCaseItemLabel}s`}\n {this.upperBound > 0 &&\n `${this.lowerBound} - ${this.upperBound} of ${\n this.totalItems\n } ${lowerCaseItemLabel}${this.totalItems > 1 ? \"s\" : \"\"}`}\n </ic-typography>\n ) : (\n !hideRangeLabel && (\n <ic-typography\n class={{\n [`pagination-text-${appearance}`]: true,\n [\"page-pagination-label\"]: true,\n }}\n variant=\"label\"\n aria-live=\"polite\"\n >\n {capitalizedPageLabel} {currentPage} of {totalPages}\n </ic-typography>\n )\n )}\n </div>\n )}\n <div\n class={{\n [\"pagination-controls\"]: true,\n [\"pagination-controls-wrap\"]: this.paginationWrapped,\n }}\n >\n <div class=\"pagination-holder\">\n <ic-pagination\n appearance={appearance}\n type={type}\n pages={totalPages}\n label={pageLabel}\n ref={(el: HTMLIcPaginationElement) => (this.paginationEl = el)}\n ></ic-pagination>\n </div>\n {showGoToPageControl && (\n <div class=\"go-to-page-holder\">\n <ic-typography\n class={{ [`pagination-text-${appearance}`]: true }}\n variant=\"label\"\n onClick={this.goToPageLabelClickHandler}\n >\n Go to {lowerCasePageLabel}\n </ic-typography>\n <ic-tooltip\n label={this.inputError}\n target={`#${PAGE_INPUT_FIELD_ID}`}\n disableHover\n disableClick\n ref={(el: HTMLIcTooltipElement) =>\n (this.pageInputTooltipEl = el)\n }\n >\n <ic-text-field\n type=\"number\"\n size=\"small\"\n label={PAGE_INPUT_FIELD_ID}\n class={PAGE_INPUT_FIELD_ID}\n id={PAGE_INPUT_FIELD_ID}\n hideLabel\n onKeyDown={this.handleKeydown}\n onKeyUp={this.handleKeyUp}\n onInput={this.handleInputChange}\n max={totalPages}\n min=\"1\"\n validationInlineInternal\n onBlur={this.handleBlur}\n onFocus={this.handleFocus}\n ref={(el: HTMLIcTextFieldElement) => (this.pageInputEl = el)}\n ></ic-text-field>\n </ic-tooltip>\n <ic-button\n appearance={appearance}\n variant=\"secondary\"\n onClick={this.goToPage}\n size=\"small\"\n class=\"go-to-page-button\"\n >\n Go\n </ic-button>\n </div>\n )}\n </div>\n </div>\n );\n }\n}\n"],"mappings":"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"}
@@ -1 +0,0 @@
1
- {"version":3,"names":["icRadioOptionCss","ADDITIONAL_FIELD","TEXT_FIELD_SELECTOR","RadioOption","constructor","hostRef","this","defaultRadioValue","hasAdditionalField","skipFocus","handleClick","disabled","radioElement","focus","value","el","querySelector","icCheck","emit","radioOptionSelect","swallowClick","event","stopPropagation","handleFormReset","selected","initiallySelected","additionalFieldDisplay","dynamicText","form","undefined","formaction","formenctype","formmethod","formnovalidate","formtarget","groupLabel","label","name","watchSelectedHandler","icSelectedChange","disconnectedCallback","removeFormResetListener","componentWillLoad","isSlotUsed","textField","hiddenInput","addFormResetListener","removeDisabledFalse","componentDidLoad","onComponentRequiredPropUndefined","prop","propName","componentWillRender","hasSlot","componentDidRender","textfield","setAttribute","removeAttribute","textfieldValueHandler","detail","stopImmediatePropagation","setFocus","_a","setTabIndex","tabIndex","render","id","isPropDefined","h","Host","onClick","class","role","tabindex","type","checked","ref","variant","htmlFor","hidden","delegatesFocus"],"sources":["../web-components/dist/collection/components/ic-radio-option/ic-radio-option.css?tag=ic-radio-option&encapsulation=shadow","../web-components/dist/collection/components/ic-radio-option/ic-radio-option.js"],"sourcesContent":["/*! normalize.css v8.0.1 | MIT License | github.com/necolas/normalize.css */\n\n/* Document\n ========================================================================== */\n\n/**\n * 1. Correct the line height in all browsers.\n * 2. Prevent adjustments of font size after orientation changes in iOS.\n */\n\nhtml {\n line-height: 1.15; /* 1 */\n -webkit-text-size-adjust: 100%; /* 2 */\n}\n\n/* Sections\n ========================================================================== */\n\n/**\n * Remove the margin in all browsers.\n */\n\nbody {\n margin: 0;\n}\n\n/**\n * Render the `main` element consistently in IE.\n */\n\nmain {\n display: block;\n}\n\n/**\n * Correct the font size and margin on `h1` elements within `section` and\n * `article` contexts in Chrome, Firefox, and Safari.\n */\n\nh1 {\n font-size: 2em;\n margin: 0.67em 0;\n}\n\n/* Grouping content\n ========================================================================== */\n\n/**\n * 1. Add the correct box sizing in Firefox.\n * 2. Show the overflow in Edge and IE.\n */\n\nhr {\n box-sizing: content-box; /* 1 */\n height: 0; /* 1 */\n overflow: visible; /* 2 */\n}\n\n/**\n * 1. Correct the inheritance and scaling of font size in all browsers.\n * 2. Correct the odd `em` font sizing in all browsers.\n */\n\npre {\n font-family: monospace, monospace; /* 1 */\n font-size: 1em; /* 2 */\n}\n\n/* Text-level semantics\n ========================================================================== */\n\n/**\n * Remove the gray background on active links in IE 10.\n */\n\na {\n background-color: transparent;\n}\n\n/**\n * 1. Remove the bottom border in Chrome 57-\n * 2. Add the correct text decoration in Chrome, Edge, IE, Opera, and Safari.\n */\n\nabbr[title] {\n border-bottom: none; /* 1 */\n text-decoration: underline; /* 2 */\n -webkit-text-decoration: underline dotted;\n text-decoration: underline dotted; /* 2 */\n}\n\n/**\n * Add the correct font weight in Chrome, Edge, and Safari.\n */\n\nb,\nstrong {\n font-weight: bolder;\n}\n\n/**\n * 1. Correct the inheritance and scaling of font size in all browsers.\n * 2. Correct the odd `em` font sizing in all browsers.\n */\n\ncode,\nkbd,\nsamp {\n font-family: monospace, monospace; /* 1 */\n font-size: 1em; /* 2 */\n}\n\n/**\n * Add the correct font size in all browsers.\n */\n\nsmall {\n font-size: 80%;\n}\n\n/**\n * Prevent `sub` and `sup` elements from affecting the line height in\n * all browsers.\n */\n\nsub,\nsup {\n font-size: 75%;\n line-height: 0;\n position: relative;\n vertical-align: baseline;\n}\n\nsub {\n bottom: -0.25em;\n}\n\nsup {\n top: -0.5em;\n}\n\n/* Embedded content\n ========================================================================== */\n\n/**\n * Remove the border on images inside links in IE 10.\n */\n\nimg {\n border-style: none;\n}\n\n/* Forms\n ========================================================================== */\n\n/**\n * 1. Change the font styles in all browsers.\n * 2. Remove the margin in Firefox and Safari.\n */\n\nbutton,\ninput,\noptgroup,\nselect,\ntextarea {\n font-family: inherit; /* 1 */\n font-size: 100%; /* 1 */\n line-height: 1.15; /* 1 */\n margin: 0; /* 2 */\n}\n\n/**\n * Show the overflow in IE.\n * 1. Show the overflow in Edge.\n */\n\nbutton,\ninput {\n /* 1 */\n overflow: visible;\n}\n\n/**\n * Remove the inheritance of text transform in Edge, Firefox, and IE.\n * 1. Remove the inheritance of text transform in Firefox.\n */\n\nbutton,\nselect {\n /* 1 */\n text-transform: none;\n}\n\n/**\n * Correct the inability to style clickable types in iOS and Safari.\n */\n\nbutton,\n[type=\"button\"],\n[type=\"reset\"],\n[type=\"submit\"] {\n -webkit-appearance: button;\n}\n\n/**\n * Remove the inner border and padding in Firefox.\n */\n\nbutton::-moz-focus-inner,\n[type=\"button\"]::-moz-focus-inner,\n[type=\"reset\"]::-moz-focus-inner,\n[type=\"submit\"]::-moz-focus-inner {\n border-style: none;\n padding: 0;\n}\n\n/**\n * Restore the focus styles unset by the previous rule.\n */\n\nbutton:-moz-focusring,\n[type=\"button\"]:-moz-focusring,\n[type=\"reset\"]:-moz-focusring,\n[type=\"submit\"]:-moz-focusring {\n outline: 1px dotted ButtonText;\n}\n\n/**\n * Correct the padding in Firefox.\n */\n\nfieldset {\n padding: 0.35em 0.75em 0.625em;\n}\n\n/**\n * 1. Correct the text wrapping in Edge and IE.\n * 2. Correct the color inheritance from `fieldset` elements in IE.\n * 3. Remove the padding so developers are not caught out when they zero out\n * `fieldset` elements in all browsers.\n */\n\nlegend {\n box-sizing: border-box; /* 1 */\n color: inherit; /* 2 */\n display: table; /* 1 */\n max-width: 100%; /* 1 */\n padding: 0; /* 3 */\n white-space: normal; /* 1 */\n}\n\n/**\n * Add the correct vertical alignment in Chrome, Firefox, and Opera.\n */\n\nprogress {\n vertical-align: baseline;\n}\n\n/**\n * Remove the default vertical scrollbar in IE 10+.\n */\n\ntextarea {\n overflow: auto;\n}\n\n/**\n * 1. Add the correct box sizing in IE 10.\n * 2. Remove the padding in IE 10.\n */\n\n[type=\"checkbox\"],\n[type=\"radio\"] {\n box-sizing: border-box; /* 1 */\n padding: 0; /* 2 */\n}\n\n/**\n * Correct the cursor style of increment and decrement buttons in Chrome.\n */\n\n[type=\"number\"]::-webkit-inner-spin-button,\n[type=\"number\"]::-webkit-outer-spin-button {\n height: auto;\n}\n\n/**\n * 1. Correct the odd appearance in Chrome and Safari.\n * 2. Correct the outline style in Safari.\n */\n\n[type=\"search\"] {\n -webkit-appearance: textfield; /* 1 */\n outline-offset: -2px; /* 2 */\n}\n\n/**\n * Remove the inner padding in Chrome and Safari on macOS.\n */\n\n[type=\"search\"]::-webkit-search-decoration {\n -webkit-appearance: none;\n}\n\n/**\n * 1. Correct the inability to style clickable types in iOS and Safari.\n * 2. Change font properties to `inherit` in Safari.\n */\n\n::-webkit-file-upload-button {\n -webkit-appearance: button; /* 1 */\n font: inherit; /* 2 */\n}\n\n/* Interactive\n ========================================================================== */\n\n/*\n * Add the correct display in Edge, IE 10+, and Firefox.\n */\n\ndetails {\n display: block;\n}\n\n/*\n * Add the correct display in all browsers.\n */\n\nsummary {\n display: list-item;\n}\n\n/* Misc\n ========================================================================== */\n\n/**\n * Add the correct display in IE 10+.\n */\n\ntemplate {\n display: none;\n}\n\n/**\n * Add the correct display in IE 10.\n */\n\n[hidden] {\n display: none;\n}\n\nhtml,\nbody,\ndiv,\nspan,\napplet,\nobject,\niframe,\nh1,\nh2,\nh3,\nh4,\nh5,\nh6,\np,\nblockquote,\npre,\na,\nabbr,\nacronym,\naddress,\nbig,\ncite,\ncode,\ndel,\ndfn,\nem,\nimg,\nins,\nkbd,\nq,\ns,\nsamp,\nsmall,\nstrike,\nstrong,\nsub,\nsup,\ntt,\nvar,\nb,\nu,\ni,\ncenter,\ndl,\ndt,\ndd,\nol,\nul,\nli,\nfieldset,\nform,\nlabel,\nlegend,\ntable,\ncaption,\ntbody,\ntfoot,\nthead,\ntr,\nth,\ntd,\narticle,\naside,\ncanvas,\ndetails,\nembed,\nfigure,\nfigcaption,\nfooter,\nheader,\nhgroup,\nmenu,\nnav,\noutput,\nruby,\nsection,\nsummary,\ntime,\nmark,\naudio,\nvideo {\n margin: 0;\n padding: 0;\n border: 0;\n font-size: 100%;\n font-style: inherit;\n vertical-align: baseline;\n}\n\n\n:host {\n display: flex;\n flex-direction: column;\n width: -moz-fit-content;\n width: fit-content;\n}\n\n:host([additional-field-display=\"static\"]) ::slotted(ic-text-field) {\n margin-top: calc(var(--ic-space-sm) / 2);\n margin-left: var(--ic-space-xl);\n}\n\n/* The label turns grey when disabled */\n:host(.disabled) {\n color: var(--ic-architectural-200);\n}\n\n/* Focus states */\n\n.container input:focus + span.checkmark,\n:host(:focus) .container input:checked + span.checkmark {\n box-shadow: var(--ic-border-focus);\n}\n\n/* The container */\n.container {\n display: grid;\n grid-template-columns: min-content auto;\n position: relative;\n cursor: pointer;\n align-items: center;\n margin: var(--ic-space-xxs) 0 var(--ic-space-xxs) var(--ic-space-xxs);\n}\n\n.container.disabled,\n.container.disabled input:disabled {\n cursor: default;\n}\n\n/* Hide the browser's default radio button */\n.container input {\n -webkit-appearance: none;\n -moz-appearance: none;\n appearance: none;\n display: inline-block;\n position: absolute;\n cursor: pointer;\n height: var(--ic-space-lg);\n width: var(--ic-space-lg);\n border-radius: 50%;\n border: none;\n}\n\n/* Create a custom radio button */\n.checkmark {\n display: block;\n position: relative;\n top: 0;\n left: 0;\n height: var(--ic-space-lg);\n width: var(--ic-space-lg);\n background-color: var(--ic-architectural-white);\n border: var(--ic-border-default);\n border-radius: 50%;\n transition: var(--ic-easing-transition-fast);\n box-sizing: border-box;\n}\n\n/* Show the indicator (dot/circle) when checked */\n.container input:checked ~ .checkmark::after {\n display: inline-block;\n}\n\n/* On mouse-over, add a light blue background color */\n.container:hover input ~ .checkmark {\n background-color: var(--ic-action-default-bg-hover-no-alpha);\n box-shadow: 0 0 0 0.25rem var(--ic-action-default-bg-hover);\n border: var(--ic-border-width) solid var(--ic-action-default);\n}\n\n/* When pressed, adds the active colours */\n.container:active input ~ .checkmark {\n background-color: var(--ic-action-default-bg-active-no-alpha);\n border: var(--ic-border-width) solid var(--ic-action-default-active);\n box-shadow: 0 0 0 0.25rem var(--ic-action-default-bg-active);\n}\n\n/* When pressed, adds the active colours */\n.container:active input:checked ~ .checkmark {\n background-color: var(--ic-action-default-bg-active);\n border: 0.125rem solid var(--ic-action-default-active);\n box-shadow: 0 0 0 0.25rem var(--ic-action-default-bg-active);\n}\n\n/* When pressed and selected, adds the active colours */\n.container:active input:checked ~ .checkmark::after {\n background-color: var(--ic-action-default-active);\n}\n\n/* When the radio button is checked */\n.container input:checked ~ .checkmark {\n border: 0.125rem solid var(--ic-action-default);\n}\n\n/* When the radio button is checked and disabled */\n.container input:checked:disabled ~ .checkmark {\n background-color: var(--ic-architectural-white);\n border: 0.125rem solid var(--ic-architectural-200);\n}\n\n/* When the radio button is disabled */\n.container input:disabled ~ .checkmark {\n border: var(--ic-border-width) dashed var(--ic-architectural-200);\n}\n\n/* When the radio button is disabled */\n.container input:disabled ~ .checkmark::after {\n background: var(--ic-architectural-200);\n}\n\n/* On mouse-over inactive */\n.container:hover input:disabled ~ .checkmark {\n background-color: var(--ic-architectural-white);\n box-shadow: none;\n border: 0.125rem solid none;\n}\n\n.container:active input:disabled ~ .checkmark::after {\n background-color: var(--ic-architectural-200);\n}\n\n/* Style the indicator (dot/circle) */\n.container .checkmark::after {\n content: \"\";\n position: absolute;\n display: none;\n top: calc(50% - var(--ic-space-xs));\n left: calc(50% - var(--ic-space-xs));\n width: var(--ic-space-md);\n height: var(--ic-space-md);\n border-radius: 50%;\n background: var(--ic-action-default);\n}\n\n.radio-label {\n margin-left: var(--ic-space-md);\n}\n\n.additional-field-wrapper {\n margin-left: var(--ic-space-xs);\n}\n\n/* The line */\n.branch-corner {\n color: var(--ic-action-default);\n height: var(--ic-space-md);\n width: var(--ic-space-xl);\n border-radius: 0 0 0 0.188rem;\n border-bottom: 0.125rem solid var(--ic-action-default);\n border-left: 0.125rem solid var(--ic-action-default);\n margin-left: calc(-1 * var(--ic-space-1px));\n}\n\n/* The dynamic container */\n.dynamic-container {\n display: flex;\n position: relative;\n margin: var(--ic-space-xxxs) 0 var(--ic-space-xxs) var(--ic-space-md);\n gap: var(--ic-space-xs);\n}\n\n.dynamic-container.hidden {\n display: none;\n}\n\n.dynamic-text {\n color: var(--ic-action-default);\n margin-top: calc(var(--ic-space-sm) / 2);\n margin-bottom: var(--ic-space-xs);\n border-radius: 2%;\n}\n\n@media (max-width: 576px) {\n ::slotted(ic-text-field) {\n --input-width: 100%;\n }\n}\n\n@media (forced-colors: active) {\n /* Styles here only apply to Forced Colors Mode */\n\n .container input:checked ~ .checkmark,\n .container:active input:checked ~ .checkmark {\n border-color: Highlight;\n }\n\n .container input:checked ~ .checkmark::after,\n .container:active input:checked ~ .checkmark::after {\n background-color: Highlight;\n }\n\n .container input:disabled ~ .checkmark,\n .container input:checked:disabled ~ .checkmark {\n border-color: GrayText;\n }\n\n .container input:disabled ~ .checkmark::after,\n .container:active input:disabled ~ .checkmark::after {\n background-color: GrayText;\n }\n}\n","import { Host, h, } from \"@stencil/core\";\nimport { onComponentRequiredPropUndefined, addFormResetListener, removeFormResetListener, removeDisabledFalse, isPropDefined, isSlotUsed, } from \"../../utils/helpers\";\nconst ADDITIONAL_FIELD = \"additional-field\";\nconst TEXT_FIELD_SELECTOR = \"ic-text-field\";\n/**\n * @slot additional-field - Content to displayed alongside a radio option.\n */\nexport class RadioOption {\n constructor() {\n this.defaultRadioValue = \"\";\n this.hasAdditionalField = false;\n this.skipFocus = false;\n this.handleClick = () => {\n if (!this.disabled) {\n if (this.skipFocus === false) {\n this.radioElement.focus();\n }\n this.skipFocus = false;\n if (this.hasAdditionalField) {\n this.value =\n this.el.querySelector(TEXT_FIELD_SELECTOR).value ||\n this.defaultRadioValue;\n }\n this.icCheck.emit({\n value: this.value,\n });\n this.radioOptionSelect.emit({\n value: this.value,\n });\n }\n };\n this.swallowClick = (event) => {\n event.stopPropagation();\n };\n this.handleFormReset = () => {\n this.skipFocus = true;\n this.selected = this.initiallySelected;\n };\n this.additionalFieldDisplay = \"static\";\n this.disabled = false;\n this.dynamicText = \"This selection requires additional answers\";\n this.form = undefined;\n this.formaction = undefined;\n this.formenctype = undefined;\n this.formmethod = undefined;\n this.formnovalidate = undefined;\n this.formtarget = undefined;\n this.groupLabel = undefined;\n this.label = undefined;\n this.name = undefined;\n this.value = undefined;\n this.selected = false;\n this.initiallySelected = this.selected;\n }\n watchSelectedHandler() {\n this.icSelectedChange.emit();\n }\n disconnectedCallback() {\n removeFormResetListener(this.el, this.handleFormReset);\n }\n componentWillLoad() {\n if (isSlotUsed(this.el, ADDITIONAL_FIELD)) {\n this.hasAdditionalField = true;\n const textField = this.el.querySelector(TEXT_FIELD_SELECTOR);\n if (textField)\n textField.hiddenInput = false;\n }\n this.defaultRadioValue = this.value;\n addFormResetListener(this.el, this.handleFormReset);\n removeDisabledFalse(this.disabled, this.el);\n }\n componentDidLoad() {\n onComponentRequiredPropUndefined([{ prop: this.value, propName: \"value\" }], \"Radio Option\");\n }\n componentWillRender() {\n const hasSlot = isSlotUsed(this.el, ADDITIONAL_FIELD);\n if (hasSlot && !this.hasAdditionalField) {\n this.hasAdditionalField = true;\n const textField = this.el.querySelector(TEXT_FIELD_SELECTOR);\n if (textField)\n textField.hiddenInput = false;\n }\n else if (!hasSlot && this.hasAdditionalField) {\n this.hasAdditionalField = false;\n }\n }\n componentDidRender() {\n if (this.additionalFieldDisplay === \"static\") {\n const textfield = this.el.querySelector(TEXT_FIELD_SELECTOR);\n if (!this.selected) {\n textfield === null || textfield === void 0 ? void 0 : textfield.setAttribute(\"disabled\", \"\");\n }\n else {\n textfield === null || textfield === void 0 ? void 0 : textfield.removeAttribute(\"disabled\");\n }\n }\n }\n textfieldValueHandler(event) {\n if (this.selected) {\n this.value = event.detail.value || this.defaultRadioValue;\n this.icCheck.emit({\n value: this.value,\n });\n this.radioOptionSelect.emit({\n value: this.value,\n });\n }\n event.stopImmediatePropagation();\n }\n /**\n * Sets focus on the radio option.\n */\n async setFocus() {\n var _a;\n (_a = this.radioElement) === null || _a === void 0 ? void 0 : _a.focus();\n }\n /**\n * @internal Sets the tabIndex of the radio option.\n */\n async setTabIndex(value) {\n this.radioElement.tabIndex = value;\n }\n render() {\n const { additionalFieldDisplay, disabled, dynamicText, form, formaction, formenctype, formmethod, formnovalidate, formtarget, groupLabel, handleClick, hasAdditionalField, label, name, selected, swallowClick, value, } = this;\n const id = `ic-radio-option-${isPropDefined(label) || value}-${groupLabel}`;\n return (h(Host, { onClick: handleClick, class: { disabled } }, h(\"div\", { class: { [\"container\"]: true, disabled } }, h(\"div\", null, h(\"input\", { role: \"radio\", tabindex: selected ? \"0\" : \"-1\", type: \"radio\", name: name, id: id, value: value, disabled: disabled ? true : null, checked: selected, ref: (el) => (this.radioElement = el), form: form, formaction: formaction, formenctype: formenctype, formmethod: formmethod, formnovalidate: formnovalidate, formtarget: formtarget }), h(\"span\", { class: \"checkmark\" })), h(\"ic-typography\", { class: \"radio-label\", variant: \"body\" }, h(\"label\", { htmlFor: id }, label))), hasAdditionalField && (h(\"div\", { onClick: swallowClick, class: {\n \"dynamic-container\": true,\n hidden: additionalFieldDisplay === \"dynamic\" && !selected,\n } }, additionalFieldDisplay === \"dynamic\" && (h(\"div\", { class: \"branch-corner\" })), h(\"div\", null, additionalFieldDisplay === \"dynamic\" && (h(\"ic-typography\", { variant: \"caption\" }, h(\"p\", { class: \"dynamic-text\" }, dynamicText))), h(\"div\", { class: {\n \"additional-field-wrapper\": additionalFieldDisplay === \"static\",\n } }, h(\"slot\", { name: ADDITIONAL_FIELD })))))));\n }\n static get is() { return \"ic-radio-option\"; }\n static get encapsulation() { return \"shadow\"; }\n static get delegatesFocus() { return true; }\n static get originalStyleUrls() {\n return {\n \"$\": [\"ic-radio-option.css\"]\n };\n }\n static get styleUrls() {\n return {\n \"$\": [\"ic-radio-option.css\"]\n };\n }\n static get properties() {\n return {\n \"additionalFieldDisplay\": {\n \"type\": \"string\",\n \"mutable\": false,\n \"complexType\": {\n \"original\": \"IcAdditionalFieldTypes\",\n \"resolved\": \"\\\"dynamic\\\" | \\\"static\\\"\",\n \"references\": {\n \"IcAdditionalFieldTypes\": {\n \"location\": \"import\",\n \"path\": \"../../utils/types\",\n \"id\": \"src/utils/types.ts::IcAdditionalFieldTypes\"\n }\n }\n },\n \"required\": false,\n \"optional\": false,\n \"docs\": {\n \"tags\": [],\n \"text\": \"The style of additionalField that will be displayed if used.\"\n },\n \"attribute\": \"additional-field-display\",\n \"reflect\": true,\n \"defaultValue\": \"\\\"static\\\"\"\n },\n \"disabled\": {\n \"type\": \"boolean\",\n \"mutable\": false,\n \"complexType\": {\n \"original\": \"boolean\",\n \"resolved\": \"boolean\",\n \"references\": {}\n },\n \"required\": false,\n \"optional\": true,\n \"docs\": {\n \"tags\": [],\n \"text\": \"If `true`, the disabled state will be set.\"\n },\n \"attribute\": \"disabled\",\n \"reflect\": false,\n \"defaultValue\": \"false\"\n },\n \"dynamicText\": {\n \"type\": \"string\",\n \"mutable\": false,\n \"complexType\": {\n \"original\": \"string\",\n \"resolved\": \"string\",\n \"references\": {}\n },\n \"required\": false,\n \"optional\": false,\n \"docs\": {\n \"tags\": [],\n \"text\": \"The text to be displayed when dynamic.\"\n },\n \"attribute\": \"dynamic-text\",\n \"reflect\": false,\n \"defaultValue\": \"\\\"This selection requires additional answers\\\"\"\n },\n \"form\": {\n \"type\": \"string\",\n \"mutable\": false,\n \"complexType\": {\n \"original\": \"string\",\n \"resolved\": \"string\",\n \"references\": {}\n },\n \"required\": false,\n \"optional\": true,\n \"docs\": {\n \"tags\": [],\n \"text\": \"The <form> element to associate the radio with.\"\n },\n \"attribute\": \"form\",\n \"reflect\": false\n },\n \"formaction\": {\n \"type\": \"string\",\n \"mutable\": false,\n \"complexType\": {\n \"original\": \"string\",\n \"resolved\": \"string\",\n \"references\": {}\n },\n \"required\": false,\n \"optional\": true,\n \"docs\": {\n \"tags\": [],\n \"text\": \"The URL that processes the information submitted by the radio. It overrides the action attribute of the radio's form owner. Does nothing if there is no form owner.\"\n },\n \"attribute\": \"formaction\",\n \"reflect\": false\n },\n \"formenctype\": {\n \"type\": \"string\",\n \"mutable\": false,\n \"complexType\": {\n \"original\": \"string\",\n \"resolved\": \"string\",\n \"references\": {}\n },\n \"required\": false,\n \"optional\": true,\n \"docs\": {\n \"tags\": [],\n \"text\": \"The way the submitted form data is encoded.\"\n },\n \"attribute\": \"formenctype\",\n \"reflect\": false\n },\n \"formmethod\": {\n \"type\": \"string\",\n \"mutable\": false,\n \"complexType\": {\n \"original\": \"string\",\n \"resolved\": \"string\",\n \"references\": {}\n },\n \"required\": false,\n \"optional\": true,\n \"docs\": {\n \"tags\": [],\n \"text\": \"The HTTP method used to submit the form.\"\n },\n \"attribute\": \"formmethod\",\n \"reflect\": false\n },\n \"formnovalidate\": {\n \"type\": \"boolean\",\n \"mutable\": false,\n \"complexType\": {\n \"original\": \"boolean\",\n \"resolved\": \"boolean\",\n \"references\": {}\n },\n \"required\": false,\n \"optional\": true,\n \"docs\": {\n \"tags\": [],\n \"text\": \"If `true`, the form will not be validated when submitted.\"\n },\n \"attribute\": \"formnovalidate\",\n \"reflect\": false\n },\n \"formtarget\": {\n \"type\": \"string\",\n \"mutable\": false,\n \"complexType\": {\n \"original\": \"string\",\n \"resolved\": \"string\",\n \"references\": {}\n },\n \"required\": false,\n \"optional\": true,\n \"docs\": {\n \"tags\": [],\n \"text\": \"The place to display the response from submitting the form. It overrides the target attribute of the radio's form owner.\"\n },\n \"attribute\": \"formtarget\",\n \"reflect\": false\n },\n \"groupLabel\": {\n \"type\": \"string\",\n \"mutable\": false,\n \"complexType\": {\n \"original\": \"string\",\n \"resolved\": \"string\",\n \"references\": {}\n },\n \"required\": false,\n \"optional\": false,\n \"docs\": {\n \"tags\": [],\n \"text\": \"The group label for the radio option.\"\n },\n \"attribute\": \"group-label\",\n \"reflect\": false\n },\n \"label\": {\n \"type\": \"string\",\n \"mutable\": false,\n \"complexType\": {\n \"original\": \"string\",\n \"resolved\": \"string\",\n \"references\": {}\n },\n \"required\": false,\n \"optional\": true,\n \"docs\": {\n \"tags\": [],\n \"text\": \"The label for the radio option.\"\n },\n \"attribute\": \"label\",\n \"reflect\": false\n },\n \"name\": {\n \"type\": \"string\",\n \"mutable\": false,\n \"complexType\": {\n \"original\": \"string\",\n \"resolved\": \"string\",\n \"references\": {}\n },\n \"required\": false,\n \"optional\": false,\n \"docs\": {\n \"tags\": [],\n \"text\": \"The name for the radio option.\"\n },\n \"attribute\": \"name\",\n \"reflect\": false\n },\n \"value\": {\n \"type\": \"string\",\n \"mutable\": true,\n \"complexType\": {\n \"original\": \"string\",\n \"resolved\": \"string\",\n \"references\": {}\n },\n \"required\": true,\n \"optional\": false,\n \"docs\": {\n \"tags\": [],\n \"text\": \"The value for the radio option.\"\n },\n \"attribute\": \"value\",\n \"reflect\": false\n },\n \"selected\": {\n \"type\": \"boolean\",\n \"mutable\": true,\n \"complexType\": {\n \"original\": \"boolean\",\n \"resolved\": \"boolean\",\n \"references\": {}\n },\n \"required\": false,\n \"optional\": true,\n \"docs\": {\n \"tags\": [],\n \"text\": \"If `true`, the radio option will be displayed in a selected state.\"\n },\n \"attribute\": \"selected\",\n \"reflect\": true,\n \"defaultValue\": \"false\"\n }\n };\n }\n static get states() {\n return {\n \"initiallySelected\": {}\n };\n }\n static get events() {\n return [{\n \"method\": \"icCheck\",\n \"name\": \"icCheck\",\n \"bubbles\": true,\n \"cancelable\": true,\n \"composed\": true,\n \"docs\": {\n \"tags\": [],\n \"text\": \"Emitted when the radio option is selected.\"\n },\n \"complexType\": {\n \"original\": \"IcValueEventDetail\",\n \"resolved\": \"IcValueEventDetail\",\n \"references\": {\n \"IcValueEventDetail\": {\n \"location\": \"import\",\n \"path\": \"../../utils/types\",\n \"id\": \"src/utils/types.ts::IcValueEventDetail\"\n }\n }\n }\n }, {\n \"method\": \"radioOptionSelect\",\n \"name\": \"radioOptionSelect\",\n \"bubbles\": true,\n \"cancelable\": true,\n \"composed\": true,\n \"docs\": {\n \"tags\": [{\n \"name\": \"deprecated\",\n \"text\": \"This event should not be used anymore. Use icCheck instead.\"\n }],\n \"text\": \"\"\n },\n \"complexType\": {\n \"original\": \"IcValueEventDetail\",\n \"resolved\": \"IcValueEventDetail\",\n \"references\": {\n \"IcValueEventDetail\": {\n \"location\": \"import\",\n \"path\": \"../../utils/types\",\n \"id\": \"src/utils/types.ts::IcValueEventDetail\"\n }\n }\n }\n }, {\n \"method\": \"icSelectedChange\",\n \"name\": \"icSelectedChange\",\n \"bubbles\": true,\n \"cancelable\": true,\n \"composed\": true,\n \"docs\": {\n \"tags\": [],\n \"text\": \"Emitted when the radio option is selected or deselected.\"\n },\n \"complexType\": {\n \"original\": \"void\",\n \"resolved\": \"void\",\n \"references\": {}\n }\n }];\n }\n static get methods() {\n return {\n \"setFocus\": {\n \"complexType\": {\n \"signature\": \"() => Promise<void>\",\n \"parameters\": [],\n \"references\": {\n \"Promise\": {\n \"location\": \"global\",\n \"id\": \"global::Promise\"\n }\n },\n \"return\": \"Promise<void>\"\n },\n \"docs\": {\n \"text\": \"Sets focus on the radio option.\",\n \"tags\": []\n }\n },\n \"setTabIndex\": {\n \"complexType\": {\n \"signature\": \"(value: number) => Promise<void>\",\n \"parameters\": [{\n \"name\": \"value\",\n \"type\": \"number\",\n \"docs\": \"\"\n }],\n \"references\": {\n \"Promise\": {\n \"location\": \"global\",\n \"id\": \"global::Promise\"\n }\n },\n \"return\": \"Promise<void>\"\n },\n \"docs\": {\n \"text\": \"\",\n \"tags\": [{\n \"name\": \"internal\",\n \"text\": \"Sets the tabIndex of the radio option.\"\n }]\n }\n }\n };\n }\n static get elementRef() { return \"el\"; }\n static get watchers() {\n return [{\n \"propName\": \"selected\",\n \"methodName\": \"watchSelectedHandler\"\n }];\n }\n static get listeners() {\n return [{\n \"name\": \"icChange\",\n \"method\": \"textfieldValueHandler\",\n \"target\": undefined,\n \"capture\": false,\n \"passive\": false\n }];\n }\n}\n//# sourceMappingURL=ic-radio-option.js.map\n"],"mappings":"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"}
@@ -1 +0,0 @@
1
- {"version":3,"names":["TabContext","constructor","hostRef","this","newTabPanels","newTabs","linkTabs","tabs","forEach","tab","index","tabId","contextId","tabPanelId","shared","contextIdAttr","setAttribute","tabPosition","tabGroup","tabPanels","panelId","appearance","IcThemeForegroundEnum","Light","getChildren","el","querySelector","Array","from","querySelectorAll","children","filter","child","tagName","enabledTabs","getEnabledTabs","keydownHandler","event","activationType","handleKeyBoardNavAutomatic","handleKeyBoardNavManual","attatchEventListeners","addEventListener","setControlledMode","selectedTabIndex","undefined","controlledMode","selectedTab","setInitialTab","focusedTabIndex","firstEnabledTabIndex","findIndex","configureTabs","selected","tabPanel","disabled","getIndexOfEnabledTab","allTabsIndex","keyboardSelectTab","enabledTabIndex","newIndex","focus","icTabSelect","emit","tabIndex","tabLabel","textContent","trim","tabSelect","keyboardFocusTab","key","preventDefault","length","updateSelectedTab","newValue","componentDidLoad","componentWillUpdate","disconnectedCallback","removeEventListener","tabClickHandler","detail","position","stopImmediatePropagation","tabCreatedHandler","ev","setFocus","push","tabEnabledHandler","tabRemovedHandler","hadFocus","render","h"],"sources":["../web-components/dist/collection/components/ic-tab-context/ic-tab-context.js"],"sourcesContent":["import { h, } from \"@stencil/core\";\nimport { IcThemeForegroundEnum, } from \"../../utils/types\";\nexport class TabContext {\n constructor() {\n this.newTabPanels = [];\n this.newTabs = [];\n // Sets attributes to link tab-group, tabs and tab-panels\n this.linkTabs = () => {\n this.tabs.forEach((tab, index) => {\n const tabId = `ic-tab-${index}-context-${this.contextId}`;\n const tabPanelId = `ic-tab-panel-${index}-context-${this.contextId}`;\n const shared = `ic-tab--${index}-context-${this.contextId}`;\n const contextIdAttr = \"context-id\";\n tab.setAttribute(\"id\", tabId);\n tab.tabId = shared;\n tab.tabPosition = index;\n tab.setAttribute(\"aria-controls\", tabPanelId);\n tab.setAttribute(contextIdAttr, this.contextId);\n this.tabGroup.setAttribute(contextIdAttr, this.contextId);\n this.tabPanels[index].setAttribute(\"id\", tabPanelId);\n this.tabPanels[index].panelId = shared;\n this.tabPanels[index].tabPosition = index;\n this.tabPanels[index].setAttribute(\"aria-labelledby\", tabId);\n this.tabPanels[index].setAttribute(contextIdAttr, this.contextId);\n if (this.appearance === IcThemeForegroundEnum.Light) {\n tab.appearance = this.appearance;\n this.tabPanels[index].appearance = this.appearance;\n }\n });\n if (this.appearance === IcThemeForegroundEnum.Light) {\n this.tabGroup.appearance = this.appearance;\n }\n };\n // Gets tabs and tabpanels with the same context ID\n // Using querySelector to selector the children in relation to the host\n this.getChildren = () => {\n this.tabGroup = this.el.querySelector(\"ic-tab-group\");\n this.tabs = Array.from(this.tabGroup.querySelectorAll(\"ic-tab\"));\n this.tabPanels = Array.from(this.el.children).filter((child) => child.tagName === \"IC-TAB-PANEL\");\n this.enabledTabs = this.getEnabledTabs();\n };\n this.keydownHandler = (event) => {\n if (this.activationType === \"automatic\") {\n this.handleKeyBoardNavAutomatic(event);\n }\n else {\n this.handleKeyBoardNavManual(event);\n }\n };\n // Determines how keyboard navigation is to be handled based on the activation type\n this.attatchEventListeners = () => {\n this.tabGroup.addEventListener(\"keydown\", this.keydownHandler);\n };\n // Determines whether the selected tab is being controlled within the component\n // or by the user (via selectedTabIndex and onIcTabSelect)\n this.setControlledMode = () => {\n if (this.selectedTabIndex !== undefined) {\n this.controlledMode = true;\n this.selectedTab = this.selectedTabIndex;\n }\n };\n // Sets the tab that is selected on initial render\n this.setInitialTab = () => {\n if (this.controlledMode) {\n this.selectedTab = this.selectedTabIndex;\n this.focusedTabIndex = this.selectedTabIndex;\n }\n else {\n const firstEnabledTabIndex = this.tabs.findIndex((tab) => tab.tabId === this.enabledTabs[0].tabId);\n this.selectedTab = firstEnabledTabIndex;\n this.focusedTabIndex = firstEnabledTabIndex;\n }\n };\n // Passes the selected tab to the tab and tab panel components\n this.configureTabs = () => {\n this.enabledTabs.forEach((tab) => {\n tab.selected = tab.tabPosition === this.selectedTab;\n });\n this.tabPanels.forEach((tabPanel) => {\n tabPanel.selectedTab = this.tabs[this.selectedTab].tabId;\n });\n };\n this.getEnabledTabs = () => {\n return Array.from(this.tabs).filter((child) => !child.disabled);\n };\n this.getIndexOfEnabledTab = (allTabsIndex) => {\n return this.enabledTabs.findIndex((tab) => tab.tabId === this.tabs[allTabsIndex].tabId);\n };\n // Sets focus on tab and selects it\n this.keyboardSelectTab = (enabledTabIndex) => {\n const newIndex = this.tabs.findIndex((tab) => tab.tabId === this.enabledTabs[enabledTabIndex].tabId);\n this.enabledTabs[enabledTabIndex].focus();\n if (!this.controlledMode) {\n this.selectedTab = newIndex;\n }\n else {\n /* eslint-disable no-unexpected-multiline */\n this.icTabSelect.emit({\n tabIndex: newIndex,\n tabLabel: this.el\n .querySelectorAll(\"ic-tab\")[newIndex].textContent.trim(),\n });\n this.tabSelect.emit({\n tabIndex: newIndex,\n tabLabel: this.el\n .querySelectorAll(\"ic-tab\")[newIndex].textContent.trim(),\n });\n }\n /* eslint-enable no-unexpected-multiline */\n };\n // Sets focus on tab without selecting it (for manual activation)\n this.keyboardFocusTab = (enabledTabIndex) => {\n const newIndex = this.tabs.findIndex((tab) => tab.tabId === this.enabledTabs[enabledTabIndex].tabId);\n this.enabledTabs[enabledTabIndex].focus();\n this.focusedTabIndex = newIndex;\n };\n this.handleKeyBoardNavAutomatic = (event) => {\n const key = event.key;\n const enabledTabIndex = this.getIndexOfEnabledTab(this.selectedTab);\n let preventDefault = true;\n switch (key) {\n case \"Home\":\n this.keyboardSelectTab(0);\n break;\n case \"End\":\n this.keyboardSelectTab(this.enabledTabs.length - 1);\n break;\n case \"ArrowRight\":\n if (enabledTabIndex < this.enabledTabs.length - 1) {\n this.keyboardSelectTab(enabledTabIndex + 1);\n }\n else {\n this.keyboardSelectTab(0);\n }\n break;\n case \"ArrowLeft\":\n if (enabledTabIndex > 0) {\n this.keyboardSelectTab(enabledTabIndex - 1);\n }\n else {\n this.keyboardSelectTab(this.enabledTabs.length - 1);\n }\n break;\n default:\n preventDefault = false;\n }\n if (preventDefault)\n event.preventDefault();\n };\n this.handleKeyBoardNavManual = (event) => {\n const key = event.key;\n const enabledTabIndex = this.getIndexOfEnabledTab(this.focusedTabIndex);\n let preventDefault = true;\n switch (key) {\n case \"Home\":\n this.keyboardFocusTab(0);\n break;\n case \"End\":\n this.keyboardFocusTab(this.enabledTabs.length - 1);\n break;\n case \"ArrowRight\":\n if (enabledTabIndex < this.enabledTabs.length - 1) {\n this.keyboardFocusTab(enabledTabIndex + 1);\n }\n else {\n this.keyboardFocusTab(0);\n }\n break;\n case \"ArrowLeft\":\n if (enabledTabIndex > 0) {\n this.keyboardFocusTab(enabledTabIndex - 1);\n }\n else {\n this.keyboardFocusTab(this.enabledTabs.length - 1);\n }\n break;\n case \"Enter\":\n this.keyboardSelectTab(this.focusedTabIndex);\n break;\n case \" \":\n this.keyboardSelectTab(this.focusedTabIndex);\n break;\n default:\n preventDefault = false;\n }\n if (preventDefault)\n event.preventDefault();\n };\n this.selectedTab = undefined;\n this.activationType = \"automatic\";\n this.appearance = \"dark\";\n this.contextId = \"default\";\n this.selectedTabIndex = undefined;\n }\n updateSelectedTab(newValue) {\n this.selectedTab = newValue;\n }\n componentDidLoad() {\n this.setControlledMode();\n this.getChildren();\n this.linkTabs();\n this.attatchEventListeners();\n this.setInitialTab();\n this.configureTabs();\n }\n componentWillUpdate() {\n this.configureTabs();\n }\n disconnectedCallback() {\n this.tabGroup.removeEventListener(\"keydown\", this.keydownHandler);\n }\n tabClickHandler(event) {\n if (this.selectedTabIndex === undefined &&\n event.detail.contextId === this.contextId) {\n this.selectedTab = event.detail.position;\n }\n /* eslint-disable no-unexpected-multiline */\n this.icTabSelect.emit({\n tabIndex: event.detail.position,\n tabLabel: this.el\n .querySelectorAll(\"ic-tab\")[event.detail.position].textContent.trim(),\n });\n this.tabSelect.emit({\n tabIndex: event.detail.position,\n tabLabel: this.el\n .querySelectorAll(\"ic-tab\")[event.detail.position].textContent.trim(),\n });\n /* eslint-enable no-unexpected-multiline */\n event.stopImmediatePropagation();\n }\n tabCreatedHandler(ev) {\n if (this.tabs && this.tabPanels) {\n (ev.detail.setFocus ? this.newTabs : this.newTabPanels).push(ev.detail);\n if (this.newTabs.length === this.newTabPanels.length) {\n this.tabs.push(...this.newTabs);\n this.tabPanels.push(...this.newTabPanels);\n this.enabledTabs = this.getEnabledTabs();\n this.linkTabs();\n this.newTabs = [];\n this.newTabPanels = [];\n }\n }\n }\n tabEnabledHandler() {\n this.enabledTabs = this.getEnabledTabs();\n }\n /**\n * @internal Used to set tab/tab panel IDs when a tab/tab panel has been removed\n */\n async tabRemovedHandler(hadFocus) {\n this.getChildren();\n this.enabledTabs = this.getEnabledTabs();\n this.linkTabs();\n if (this.tabs[this.selectedTab] && this.tabPanels[this.selectedTab]) {\n this.tabs[this.selectedTab].selected = true;\n this.tabPanels[this.selectedTab].selectedTab =\n this.tabs[this.selectedTab].tabId;\n }\n else {\n this.setInitialTab();\n }\n if (hadFocus) {\n this.tabs[this.selectedTab].setFocus();\n }\n }\n render() {\n return h(\"slot\", null);\n }\n static get is() { return \"ic-tab-context\"; }\n static get properties() {\n return {\n \"activationType\": {\n \"type\": \"string\",\n \"mutable\": false,\n \"complexType\": {\n \"original\": \"IcActivationTypes\",\n \"resolved\": \"\\\"automatic\\\" | \\\"manual\\\"\",\n \"references\": {\n \"IcActivationTypes\": {\n \"location\": \"import\",\n \"path\": \"../../utils/types\",\n \"id\": \"src/utils/types.ts::IcActivationTypes\"\n }\n }\n },\n \"required\": false,\n \"optional\": true,\n \"docs\": {\n \"tags\": [],\n \"text\": \"Determines whether tabs have to be manually activated (by pressing 'Enter' or 'Space') when they receive focus using keyboard navigation.\"\n },\n \"attribute\": \"activation-type\",\n \"reflect\": false,\n \"defaultValue\": \"\\\"automatic\\\"\"\n },\n \"appearance\": {\n \"type\": \"string\",\n \"mutable\": false,\n \"complexType\": {\n \"original\": \"IcThemeForegroundNoDefault\",\n \"resolved\": \"\\\"dark\\\" | \\\"light\\\"\",\n \"references\": {\n \"IcThemeForegroundNoDefault\": {\n \"location\": \"import\",\n \"path\": \"../../utils/types\",\n \"id\": \"src/utils/types.ts::IcThemeForegroundNoDefault\"\n }\n }\n },\n \"required\": false,\n \"optional\": true,\n \"docs\": {\n \"tags\": [],\n \"text\": \"The appearance of the tab context, e.g dark, or light.\"\n },\n \"attribute\": \"appearance\",\n \"reflect\": false,\n \"defaultValue\": \"\\\"dark\\\"\"\n },\n \"contextId\": {\n \"type\": \"string\",\n \"mutable\": false,\n \"complexType\": {\n \"original\": \"string\",\n \"resolved\": \"string\",\n \"references\": {}\n },\n \"required\": false,\n \"optional\": true,\n \"docs\": {\n \"tags\": [],\n \"text\": \"The unique context needed if using multiple tabs inside one another i.e. rendering another set of tabs inside a tab panel.\"\n },\n \"attribute\": \"context-id\",\n \"reflect\": true,\n \"defaultValue\": \"\\\"default\\\"\"\n },\n \"selectedTabIndex\": {\n \"type\": \"number\",\n \"mutable\": false,\n \"complexType\": {\n \"original\": \"number\",\n \"resolved\": \"number\",\n \"references\": {}\n },\n \"required\": false,\n \"optional\": true,\n \"docs\": {\n \"tags\": [],\n \"text\": \"The selected tab to be controlled by the user. Must be used alongside the icTabSelect event to manage tab selection.\"\n },\n \"attribute\": \"selected-tab-index\",\n \"reflect\": false\n }\n };\n }\n static get states() {\n return {\n \"selectedTab\": {}\n };\n }\n static get events() {\n return [{\n \"method\": \"icTabSelect\",\n \"name\": \"icTabSelect\",\n \"bubbles\": false,\n \"cancelable\": true,\n \"composed\": true,\n \"docs\": {\n \"tags\": [],\n \"text\": \"Emitted when a user selects a tab.\"\n },\n \"complexType\": {\n \"original\": \"IcTabSelectEventDetail\",\n \"resolved\": \"IcTabSelectEventDetail\",\n \"references\": {\n \"IcTabSelectEventDetail\": {\n \"location\": \"import\",\n \"path\": \"../ic-tab/ic-tab.types\",\n \"id\": \"src/components/ic-tab/ic-tab.types.ts::IcTabSelectEventDetail\"\n }\n }\n }\n }, {\n \"method\": \"tabSelect\",\n \"name\": \"tabSelect\",\n \"bubbles\": false,\n \"cancelable\": true,\n \"composed\": true,\n \"docs\": {\n \"tags\": [{\n \"name\": \"deprecated\",\n \"text\": \"This event should not be used anymore. Use icTabSelect instead.\"\n }],\n \"text\": \"\"\n },\n \"complexType\": {\n \"original\": \"IcTabSelectEventDetail\",\n \"resolved\": \"IcTabSelectEventDetail\",\n \"references\": {\n \"IcTabSelectEventDetail\": {\n \"location\": \"import\",\n \"path\": \"../ic-tab/ic-tab.types\",\n \"id\": \"src/components/ic-tab/ic-tab.types.ts::IcTabSelectEventDetail\"\n }\n }\n }\n }];\n }\n static get methods() {\n return {\n \"tabRemovedHandler\": {\n \"complexType\": {\n \"signature\": \"(hadFocus?: boolean) => Promise<void>\",\n \"parameters\": [{\n \"name\": \"hadFocus\",\n \"type\": \"boolean\",\n \"docs\": \"\"\n }],\n \"references\": {\n \"Promise\": {\n \"location\": \"global\",\n \"id\": \"global::Promise\"\n }\n },\n \"return\": \"Promise<void>\"\n },\n \"docs\": {\n \"text\": \"\",\n \"tags\": [{\n \"name\": \"internal\",\n \"text\": \"Used to set tab/tab panel IDs when a tab/tab panel has been removed\"\n }]\n }\n }\n };\n }\n static get elementRef() { return \"el\"; }\n static get watchers() {\n return [{\n \"propName\": \"selectedTabIndex\",\n \"methodName\": \"updateSelectedTab\"\n }];\n }\n static get listeners() {\n return [{\n \"name\": \"tabClick\",\n \"method\": \"tabClickHandler\",\n \"target\": undefined,\n \"capture\": false,\n \"passive\": false\n }, {\n \"name\": \"tabCreated\",\n \"method\": \"tabCreatedHandler\",\n \"target\": undefined,\n \"capture\": false,\n \"passive\": false\n }, {\n \"name\": \"tabPanelCreated\",\n \"method\": \"tabCreatedHandler\",\n \"target\": undefined,\n \"capture\": false,\n \"passive\": false\n }, {\n \"name\": \"tabEnabled\",\n \"method\": \"tabEnabledHandler\",\n \"target\": undefined,\n \"capture\": false,\n \"passive\": false\n }];\n }\n}\n//# sourceMappingURL=ic-tab-context.js.map\n"],"mappings":"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"}
@@ -1 +0,0 @@
1
- {"version":3,"names":["icCheckboxCss","Checkbox","constructor","hostRef","this","handleClick","checked","icCheck","emit","checkboxChecked","handleFormReset","initiallyChecked","additionalFieldDisplay","disabled","dynamicText","form","undefined","formaction","formenctype","formmethod","formnovalidate","formtarget","groupLabel","indeterminate","label","name","size","small","value","hideLabel","componentWillLoad","removeDisabledFalse","el","addFormResetListener","checkboxGroup","parentElement","componentDidLoad","onComponentRequiredPropUndefined","prop","propName","componentDidRender","textfield","querySelector","setAttribute","removeAttribute","additionalFieldContainer","style","display","disconnectedCallback","removeFormResetListener","setFocus","_a","shadowRoot","focus","render","id","isPropDefined","replace","parentElementSize","renderHiddenInput","removeHiddenInput","h","Host","class","width","height","viewBox","xmlns","d","role","checkbox","type","onClick","variant","htmlFor","isSlotUsed","ref","delegatesFocus"],"sources":["../web-components/dist/collection/components/ic-checkbox/ic-checkbox.css?tag=ic-checkbox&encapsulation=shadow","../web-components/dist/collection/components/ic-checkbox/ic-checkbox.js"],"sourcesContent":["/*! normalize.css v8.0.1 | MIT License | github.com/necolas/normalize.css */\n\n/* Document\n ========================================================================== */\n\n/**\n * 1. Correct the line height in all browsers.\n * 2. Prevent adjustments of font size after orientation changes in iOS.\n */\n\nhtml {\n line-height: 1.15; /* 1 */\n -webkit-text-size-adjust: 100%; /* 2 */\n}\n\n/* Sections\n ========================================================================== */\n\n/**\n * Remove the margin in all browsers.\n */\n\nbody {\n margin: 0;\n}\n\n/**\n * Render the `main` element consistently in IE.\n */\n\nmain {\n display: block;\n}\n\n/**\n * Correct the font size and margin on `h1` elements within `section` and\n * `article` contexts in Chrome, Firefox, and Safari.\n */\n\nh1 {\n font-size: 2em;\n margin: 0.67em 0;\n}\n\n/* Grouping content\n ========================================================================== */\n\n/**\n * 1. Add the correct box sizing in Firefox.\n * 2. Show the overflow in Edge and IE.\n */\n\nhr {\n box-sizing: content-box; /* 1 */\n height: 0; /* 1 */\n overflow: visible; /* 2 */\n}\n\n/**\n * 1. Correct the inheritance and scaling of font size in all browsers.\n * 2. Correct the odd `em` font sizing in all browsers.\n */\n\npre {\n font-family: monospace, monospace; /* 1 */\n font-size: 1em; /* 2 */\n}\n\n/* Text-level semantics\n ========================================================================== */\n\n/**\n * Remove the gray background on active links in IE 10.\n */\n\na {\n background-color: transparent;\n}\n\n/**\n * 1. Remove the bottom border in Chrome 57-\n * 2. Add the correct text decoration in Chrome, Edge, IE, Opera, and Safari.\n */\n\nabbr[title] {\n border-bottom: none; /* 1 */\n text-decoration: underline; /* 2 */\n -webkit-text-decoration: underline dotted;\n text-decoration: underline dotted; /* 2 */\n}\n\n/**\n * Add the correct font weight in Chrome, Edge, and Safari.\n */\n\nb,\nstrong {\n font-weight: bolder;\n}\n\n/**\n * 1. Correct the inheritance and scaling of font size in all browsers.\n * 2. Correct the odd `em` font sizing in all browsers.\n */\n\ncode,\nkbd,\nsamp {\n font-family: monospace, monospace; /* 1 */\n font-size: 1em; /* 2 */\n}\n\n/**\n * Add the correct font size in all browsers.\n */\n\nsmall {\n font-size: 80%;\n}\n\n/**\n * Prevent `sub` and `sup` elements from affecting the line height in\n * all browsers.\n */\n\nsub,\nsup {\n font-size: 75%;\n line-height: 0;\n position: relative;\n vertical-align: baseline;\n}\n\nsub {\n bottom: -0.25em;\n}\n\nsup {\n top: -0.5em;\n}\n\n/* Embedded content\n ========================================================================== */\n\n/**\n * Remove the border on images inside links in IE 10.\n */\n\nimg {\n border-style: none;\n}\n\n/* Forms\n ========================================================================== */\n\n/**\n * 1. Change the font styles in all browsers.\n * 2. Remove the margin in Firefox and Safari.\n */\n\nbutton,\ninput,\noptgroup,\nselect,\ntextarea {\n font-family: inherit; /* 1 */\n font-size: 100%; /* 1 */\n line-height: 1.15; /* 1 */\n margin: 0; /* 2 */\n}\n\n/**\n * Show the overflow in IE.\n * 1. Show the overflow in Edge.\n */\n\nbutton,\ninput {\n /* 1 */\n overflow: visible;\n}\n\n/**\n * Remove the inheritance of text transform in Edge, Firefox, and IE.\n * 1. Remove the inheritance of text transform in Firefox.\n */\n\nbutton,\nselect {\n /* 1 */\n text-transform: none;\n}\n\n/**\n * Correct the inability to style clickable types in iOS and Safari.\n */\n\nbutton,\n[type=\"button\"],\n[type=\"reset\"],\n[type=\"submit\"] {\n -webkit-appearance: button;\n}\n\n/**\n * Remove the inner border and padding in Firefox.\n */\n\nbutton::-moz-focus-inner,\n[type=\"button\"]::-moz-focus-inner,\n[type=\"reset\"]::-moz-focus-inner,\n[type=\"submit\"]::-moz-focus-inner {\n border-style: none;\n padding: 0;\n}\n\n/**\n * Restore the focus styles unset by the previous rule.\n */\n\nbutton:-moz-focusring,\n[type=\"button\"]:-moz-focusring,\n[type=\"reset\"]:-moz-focusring,\n[type=\"submit\"]:-moz-focusring {\n outline: 1px dotted ButtonText;\n}\n\n/**\n * Correct the padding in Firefox.\n */\n\nfieldset {\n padding: 0.35em 0.75em 0.625em;\n}\n\n/**\n * 1. Correct the text wrapping in Edge and IE.\n * 2. Correct the color inheritance from `fieldset` elements in IE.\n * 3. Remove the padding so developers are not caught out when they zero out\n * `fieldset` elements in all browsers.\n */\n\nlegend {\n box-sizing: border-box; /* 1 */\n color: inherit; /* 2 */\n display: table; /* 1 */\n max-width: 100%; /* 1 */\n padding: 0; /* 3 */\n white-space: normal; /* 1 */\n}\n\n/**\n * Add the correct vertical alignment in Chrome, Firefox, and Opera.\n */\n\nprogress {\n vertical-align: baseline;\n}\n\n/**\n * Remove the default vertical scrollbar in IE 10+.\n */\n\ntextarea {\n overflow: auto;\n}\n\n/**\n * 1. Add the correct box sizing in IE 10.\n * 2. Remove the padding in IE 10.\n */\n\n[type=\"checkbox\"],\n[type=\"radio\"] {\n box-sizing: border-box; /* 1 */\n padding: 0; /* 2 */\n}\n\n/**\n * Correct the cursor style of increment and decrement buttons in Chrome.\n */\n\n[type=\"number\"]::-webkit-inner-spin-button,\n[type=\"number\"]::-webkit-outer-spin-button {\n height: auto;\n}\n\n/**\n * 1. Correct the odd appearance in Chrome and Safari.\n * 2. Correct the outline style in Safari.\n */\n\n[type=\"search\"] {\n -webkit-appearance: textfield; /* 1 */\n outline-offset: -2px; /* 2 */\n}\n\n/**\n * Remove the inner padding in Chrome and Safari on macOS.\n */\n\n[type=\"search\"]::-webkit-search-decoration {\n -webkit-appearance: none;\n}\n\n/**\n * 1. Correct the inability to style clickable types in iOS and Safari.\n * 2. Change font properties to `inherit` in Safari.\n */\n\n::-webkit-file-upload-button {\n -webkit-appearance: button; /* 1 */\n font: inherit; /* 2 */\n}\n\n/* Interactive\n ========================================================================== */\n\n/*\n * Add the correct display in Edge, IE 10+, and Firefox.\n */\n\ndetails {\n display: block;\n}\n\n/*\n * Add the correct display in all browsers.\n */\n\nsummary {\n display: list-item;\n}\n\n/* Misc\n ========================================================================== */\n\n/**\n * Add the correct display in IE 10+.\n */\n\ntemplate {\n display: none;\n}\n\n/**\n * Add the correct display in IE 10.\n */\n\n[hidden] {\n display: none;\n}\n\nhtml,\nbody,\ndiv,\nspan,\napplet,\nobject,\niframe,\nh1,\nh2,\nh3,\nh4,\nh5,\nh6,\np,\nblockquote,\npre,\na,\nabbr,\nacronym,\naddress,\nbig,\ncite,\ncode,\ndel,\ndfn,\nem,\nimg,\nins,\nkbd,\nq,\ns,\nsamp,\nsmall,\nstrike,\nstrong,\nsub,\nsup,\ntt,\nvar,\nb,\nu,\ni,\ncenter,\ndl,\ndt,\ndd,\nol,\nul,\nli,\nfieldset,\nform,\nlabel,\nlegend,\ntable,\ncaption,\ntbody,\ntfoot,\nthead,\ntr,\nth,\ntd,\narticle,\naside,\ncanvas,\ndetails,\nembed,\nfigure,\nfigcaption,\nfooter,\nheader,\nhgroup,\nmenu,\nnav,\noutput,\nruby,\nsection,\nsummary,\ntime,\nmark,\naudio,\nvideo {\n margin: 0;\n padding: 0;\n border: 0;\n font-size: 100%;\n font-style: inherit;\n vertical-align: baseline;\n}\n\n\n:host(.disabled) {\n color: var(--ic-architectural-200);\n pointer-events: none;\n}\n\n.container {\n display: flex;\n width: -moz-fit-content;\n width: fit-content;\n padding: var(--ic-space-xxs) 0 var(--ic-space-xxs) var(--ic-space-xxs);\n margin-bottom: var(--ic-space-xxs);\n align-items: center;\n}\n\n:host(.small) .container {\n margin-bottom: var(--ic-space-xxxs);\n}\n\n.checkbox {\n -webkit-appearance: none;\n -moz-appearance: none;\n appearance: none;\n display: block;\n position: relative;\n top: 0;\n left: 0;\n height: var(--ic-space-lg);\n width: var(--ic-space-lg);\n background-color: var(--ic-architectural-white);\n border: var(--ic-border-width) solid var(--ic-architectural-400);\n border-radius: var(--ic-border-radius);\n outline: none;\n cursor: pointer;\n transition: var(--ic-easing-transition-fast);\n flex-shrink: 0;\n}\n\n:host(.small) .checkbox,\n:host(.small) .container svg {\n width: var(--ic-space-md);\n height: var(--ic-space-md);\n}\n\n:host(.large) .checkbox,\n:host(.large) .container svg {\n width: var(--ic-space-xl);\n height: var(--ic-space-xl);\n}\n\n.checkbox:checked {\n background-color: var(--ic-action-default);\n border: var(--ic-border-width) solid var(--ic-action-default);\n transition: var(--ic-easing-transition-slow);\n}\n\n.checkbox:checked:disabled {\n background-color: var(--ic-architectural-200);\n}\n\n.checkbox:indeterminate,\n.checkbox.indeterminate:checked {\n background-color: var(--ic-architectural-white);\n border: 0.125rem solid var(--ic-action-default);\n}\n\n.checkbox:checked:hover {\n background-color: var(--ic-action-default-hover);\n}\n\n.checkbox:indeterminate:hover,\n.checkbox.indeterminate:checked:hover {\n background-color: var(--ic-action-default-bg-hover-no-alpha);\n border: 0.125rem solid var(--ic-action-default-hover);\n}\n\n.checkbox:checked:active {\n background-color: var(--ic-action-default-active);\n}\n\n.checkbox:indeterminate:active,\n.checkbox.indeterminate:checked:active {\n background-color: var(--ic-action-default-bg-active-no-alpha);\n border: 0.125rem solid var(--ic-action-default-active);\n}\n\n.checkbox:hover {\n background-color: var(--ic-action-default-bg-hover-no-alpha);\n box-shadow: 0 0 0 0.25rem var(--ic-action-default-bg-hover);\n border: var(--ic-border-width) solid var(--ic-action-default-hover);\n}\n\n.checkbox:active {\n background-color: var(--ic-action-default-bg-active-no-alpha);\n box-shadow: 0 0 0 0.25rem var(--ic-action-default-bg-active);\n border: var(--ic-border-width) solid var(--ic-action-default-active);\n}\n\n.checkbox:focus {\n box-shadow: var(--ic-border-focus);\n}\n\n.checkbox:disabled {\n border: var(--ic-border-width) dashed var(--ic-architectural-200);\n}\n\n.checkbox-label {\n padding-left: var(--ic-space-sm);\n}\n\n.checkbox-label:hover {\n cursor: pointer;\n}\n\n.checkmark {\n position: relative;\n right: calc(-1 * var(--ic-space-lg));\n margin-left: calc(-1 * var(--ic-space-lg));\n fill: white;\n z-index: 1;\n background-color: transparent;\n pointer-events: none;\n flex-shrink: 0;\n}\n\n:host(.small) .checkmark {\n margin-left: calc(-1 * var(--ic-space-md));\n right: calc(-1 * var(--ic-space-md));\n}\n\n:host(.large) .checkmark {\n margin-left: calc(-1 * var(--ic-space-xl));\n right: calc(-1 * var(--ic-space-xl));\n}\n\n.indeterminate-symbol {\n position: relative;\n width: 0.875rem;\n height: var(--ic-space-xxxs);\n right: -1.188rem;\n margin-left: -0.875rem;\n z-index: 1;\n background-color: var(--ic-action-default);\n pointer-events: none;\n flex-shrink: 0;\n}\n\n:host(.small) .indeterminate-symbol {\n width: 0.6rem;\n right: -0.8rem;\n margin-left: -0.6rem;\n}\n\n:host(.large) .indeterminate-symbol {\n width: 1.25rem;\n right: -1.625rem;\n margin-left: -1.25rem;\n}\n\n.container:hover .indeterminate-symbol {\n background-color: var(--ic-action-default-hover);\n}\n\n.container:active .indeterminate-symbol {\n background-color: var(--ic-action-default-active);\n}\n\n.additional-field-wrapper {\n margin-left: calc(var(--ic-space-md) + var(--ic-space-lg));\n margin-top: calc(var(--ic-space-sm) / 2);\n}\n\n.branch-corner {\n color: var(--ic-action-default);\n height: var(--ic-space-md);\n width: var(--ic-space-xl);\n border-radius: 0 0 0 0.188rem;\n border-bottom: 0.125rem solid var(--ic-action-default);\n border-left: 0.125rem solid var(--ic-action-default);\n}\n\n.dynamic-container {\n display: flex;\n position: relative;\n margin: var(--ic-space-xxxs) 0 var(--ic-space-xxs) var(--ic-space-md);\n gap: var(--ic-space-xs);\n}\n\n.dynamic-text {\n color: var(--ic-action-default);\n margin-top: calc(var(--ic-space-sm) / 2);\n margin-bottom: var(--ic-space-xs);\n border-radius: 2%;\n}\n\n@media (max-width: 576px) {\n ::slotted(ic-text-field) {\n --input-width: 100%;\n }\n}\n\n@media (forced-colors: active) {\n /* Styles here only apply to Forced Colors Mode */\n .checkbox {\n -webkit-appearance: revert;\n -moz-appearance: revert;\n appearance: revert;\n transition: none;\n }\n\n .checkbox:checked {\n transition: none;\n }\n\n .checkbox:focus-visible {\n outline: 0.125rem solid highlight;\n }\n\n .checkbox:disabled:not(:checked) {\n -webkit-appearance: none;\n -moz-appearance: none;\n appearance: none;\n border-color: GrayText;\n }\n\n .checkmark {\n fill: none;\n }\n\n .indeterminate-symbol {\n display: none;\n }\n}\n","import { Host, h, } from \"@stencil/core\";\nimport { isSlotUsed, onComponentRequiredPropUndefined, renderHiddenInput, removeHiddenInput, addFormResetListener, removeFormResetListener, removeDisabledFalse, isPropDefined, } from \"../../utils/helpers\";\n/**\n * @slot additional-field - Content to be displayed alongside a checkbox.\n */\n// eslint-disable-next-line @typescript-eslint/no-unused-vars\nexport class Checkbox {\n constructor() {\n this.handleClick = () => {\n this.checked = !this.checked;\n this.icCheck.emit();\n this.checkboxChecked.emit();\n };\n this.handleFormReset = () => {\n this.checked = this.initiallyChecked;\n };\n this.additionalFieldDisplay = \"static\";\n this.checked = false;\n this.initiallyChecked = this.checked;\n this.disabled = false;\n this.dynamicText = \"This selection requires additional answers\";\n this.form = undefined;\n this.formaction = undefined;\n this.formenctype = undefined;\n this.formmethod = undefined;\n this.formnovalidate = undefined;\n this.formtarget = undefined;\n this.groupLabel = undefined;\n this.indeterminate = false;\n this.label = undefined;\n this.name = undefined;\n this.size = undefined;\n this.small = false;\n this.value = undefined;\n this.hideLabel = false;\n }\n componentWillLoad() {\n removeDisabledFalse(this.disabled, this.el);\n addFormResetListener(this.el, this.handleFormReset);\n const checkboxGroup = this.el.parentElement;\n if (checkboxGroup) {\n if (!this.name)\n this.name = checkboxGroup.name;\n this.groupLabel = checkboxGroup.label;\n }\n }\n componentDidLoad() {\n onComponentRequiredPropUndefined([\n { prop: this.label, propName: \"label\" },\n { prop: this.value, propName: \"value\" },\n ], \"Checkbox\");\n }\n componentDidRender() {\n if (this.additionalFieldDisplay === \"static\") {\n const textfield = this.el.querySelector(\"ic-text-field\");\n if (!this.checked) {\n textfield === null || textfield === void 0 ? void 0 : textfield.setAttribute(\"disabled\", \"\");\n }\n else {\n textfield === null || textfield === void 0 ? void 0 : textfield.removeAttribute(\"disabled\");\n }\n }\n else if (this.additionalFieldContainer) {\n this.additionalFieldContainer.style.display = !this.checked\n ? \"none\"\n : \"flex\";\n }\n }\n disconnectedCallback() {\n removeFormResetListener(this.el, this.handleFormReset);\n }\n /**\n * Sets focus on the checkbox.\n */\n async setFocus() {\n var _a;\n (_a = this.el.shadowRoot.querySelector(\".checkbox\")) === null || _a === void 0 ? void 0 : _a.focus();\n }\n render() {\n const { additionalFieldDisplay, checked, disabled, dynamicText, el, form, formaction, formenctype, formmethod, formnovalidate, formtarget, indeterminate, groupLabel, label, name, size, small, value, } = this;\n const id = `ic-checkbox-${isPropDefined(label) || value}-${groupLabel}`.replace(/ /g, \"-\");\n const parentElementSize = el.parentElement\n .size;\n checked\n ? renderHiddenInput(true, el, name, checked && value, disabled)\n : removeHiddenInput(el);\n return (h(Host, { class: {\n disabled,\n small,\n [`${size || parentElementSize}`]: true,\n } }, h(\"div\", { class: \"container\" }, checked &&\n (!indeterminate ? (h(\"svg\", { class: \"checkmark\", width: \"1.5rem\", height: \"1.5rem\", viewBox: \"0 0 24 24\", xmlns: \"http://www.w3.org/2000/svg\", \"fill-rule\": \"evenodd\", \"clip-rule\": \"evenodd\" }, h(\"title\", null, \"checkmark icon\"), h(\"path\", { d: \"M21 6.285l-11.16 12.733-6.84-6.018 1.319-1.49 5.341 4.686 9.865-11.196 1.475 1.285z\" }))) : (h(\"div\", { class: \"indeterminate-symbol\" }))), h(\"input\", { role: \"checkbox\", class: {\n checkbox: true,\n checked,\n indeterminate,\n }, type: \"checkbox\", name: name, id: id, value: value, disabled: disabled ? true : null, checked: checked, indeterminate: indeterminate, onClick: this.handleClick, form: form, formaction: formaction, formenctype: formenctype, formmethod: formmethod, formnovalidate: formnovalidate, formtarget: formtarget, \"aria-label\": this.hideLabel ? this.label : undefined }), !this.hideLabel && (h(\"ic-typography\", { class: \"checkbox-label\", variant: \"body\" }, h(\"label\", { htmlFor: id }, label)))), isSlotUsed(el, \"additional-field\") && (h(\"div\", { class: \"dynamic-container\", ref: (el) => (this.additionalFieldContainer = el) }, additionalFieldDisplay === \"dynamic\" && (h(\"div\", { class: \"branch-corner\" })), h(\"div\", null, additionalFieldDisplay === \"dynamic\" && (h(\"ic-typography\", { variant: \"caption\" }, h(\"p\", { class: \"dynamic-text\", \"aria-live\": \"polite\" }, dynamicText))), h(\"div\", { class: {\n \"additional-field-wrapper\": additionalFieldDisplay === \"static\",\n } }, h(\"slot\", { name: \"additional-field\" })))))));\n }\n static get is() { return \"ic-checkbox\"; }\n static get encapsulation() { return \"shadow\"; }\n static get delegatesFocus() { return true; }\n static get originalStyleUrls() {\n return {\n \"$\": [\"ic-checkbox.css\"]\n };\n }\n static get styleUrls() {\n return {\n \"$\": [\"ic-checkbox.css\"]\n };\n }\n static get properties() {\n return {\n \"additionalFieldDisplay\": {\n \"type\": \"string\",\n \"mutable\": false,\n \"complexType\": {\n \"original\": \"IcAdditionalFieldTypes\",\n \"resolved\": \"\\\"dynamic\\\" | \\\"static\\\"\",\n \"references\": {\n \"IcAdditionalFieldTypes\": {\n \"location\": \"import\",\n \"path\": \"../../utils/types\",\n \"id\": \"src/utils/types.ts::IcAdditionalFieldTypes\"\n }\n }\n },\n \"required\": false,\n \"optional\": false,\n \"docs\": {\n \"tags\": [],\n \"text\": \"The style of additionalField that will be displayed if used.\"\n },\n \"attribute\": \"additional-field-display\",\n \"reflect\": true,\n \"defaultValue\": \"\\\"static\\\"\"\n },\n \"checked\": {\n \"type\": \"boolean\",\n \"mutable\": true,\n \"complexType\": {\n \"original\": \"boolean\",\n \"resolved\": \"boolean\",\n \"references\": {}\n },\n \"required\": false,\n \"optional\": true,\n \"docs\": {\n \"tags\": [],\n \"text\": \"If `true`, the checkbox will be set to the checked state.\"\n },\n \"attribute\": \"checked\",\n \"reflect\": true,\n \"defaultValue\": \"false\"\n },\n \"disabled\": {\n \"type\": \"boolean\",\n \"mutable\": false,\n \"complexType\": {\n \"original\": \"boolean\",\n \"resolved\": \"boolean\",\n \"references\": {}\n },\n \"required\": false,\n \"optional\": true,\n \"docs\": {\n \"tags\": [],\n \"text\": \"If `true`, the checkbox will be set to the disabled state.\"\n },\n \"attribute\": \"disabled\",\n \"reflect\": false,\n \"defaultValue\": \"false\"\n },\n \"dynamicText\": {\n \"type\": \"string\",\n \"mutable\": false,\n \"complexType\": {\n \"original\": \"string\",\n \"resolved\": \"string\",\n \"references\": {}\n },\n \"required\": false,\n \"optional\": false,\n \"docs\": {\n \"tags\": [],\n \"text\": \"The text to be displayed when dynamic.\"\n },\n \"attribute\": \"dynamic-text\",\n \"reflect\": false,\n \"defaultValue\": \"\\\"This selection requires additional answers\\\"\"\n },\n \"form\": {\n \"type\": \"string\",\n \"mutable\": false,\n \"complexType\": {\n \"original\": \"string\",\n \"resolved\": \"string\",\n \"references\": {}\n },\n \"required\": false,\n \"optional\": true,\n \"docs\": {\n \"tags\": [],\n \"text\": \"The <form> element to associate the checkbox with.\"\n },\n \"attribute\": \"form\",\n \"reflect\": false\n },\n \"formaction\": {\n \"type\": \"string\",\n \"mutable\": false,\n \"complexType\": {\n \"original\": \"string\",\n \"resolved\": \"string\",\n \"references\": {}\n },\n \"required\": false,\n \"optional\": true,\n \"docs\": {\n \"tags\": [],\n \"text\": \"The URL that processes the information submitted by the checkbox. It overrides the action attribute of the checkbox's form owner. Does nothing if there is no form owner.\"\n },\n \"attribute\": \"formaction\",\n \"reflect\": false\n },\n \"formenctype\": {\n \"type\": \"string\",\n \"mutable\": false,\n \"complexType\": {\n \"original\": \"string\",\n \"resolved\": \"string\",\n \"references\": {}\n },\n \"required\": false,\n \"optional\": true,\n \"docs\": {\n \"tags\": [],\n \"text\": \"The way the submitted form data is encoded.\"\n },\n \"attribute\": \"formenctype\",\n \"reflect\": false\n },\n \"formmethod\": {\n \"type\": \"string\",\n \"mutable\": false,\n \"complexType\": {\n \"original\": \"string\",\n \"resolved\": \"string\",\n \"references\": {}\n },\n \"required\": false,\n \"optional\": true,\n \"docs\": {\n \"tags\": [],\n \"text\": \"The HTTP method used to submit the form.\"\n },\n \"attribute\": \"formmethod\",\n \"reflect\": false\n },\n \"formnovalidate\": {\n \"type\": \"boolean\",\n \"mutable\": false,\n \"complexType\": {\n \"original\": \"boolean\",\n \"resolved\": \"boolean\",\n \"references\": {}\n },\n \"required\": false,\n \"optional\": true,\n \"docs\": {\n \"tags\": [],\n \"text\": \"If `true`, the form will not be validated when submitted.\"\n },\n \"attribute\": \"formnovalidate\",\n \"reflect\": false\n },\n \"formtarget\": {\n \"type\": \"string\",\n \"mutable\": false,\n \"complexType\": {\n \"original\": \"string\",\n \"resolved\": \"string\",\n \"references\": {}\n },\n \"required\": false,\n \"optional\": true,\n \"docs\": {\n \"tags\": [],\n \"text\": \"The place to display the response from submitting the form. It overrides the target attribute of the checkbox's form owner.\"\n },\n \"attribute\": \"formtarget\",\n \"reflect\": false\n },\n \"groupLabel\": {\n \"type\": \"string\",\n \"mutable\": false,\n \"complexType\": {\n \"original\": \"string\",\n \"resolved\": \"string\",\n \"references\": {}\n },\n \"required\": false,\n \"optional\": false,\n \"docs\": {\n \"tags\": [],\n \"text\": \"The group label for the checkbox.\"\n },\n \"attribute\": \"group-label\",\n \"reflect\": false\n },\n \"indeterminate\": {\n \"type\": \"boolean\",\n \"mutable\": false,\n \"complexType\": {\n \"original\": \"boolean\",\n \"resolved\": \"boolean\",\n \"references\": {}\n },\n \"required\": false,\n \"optional\": false,\n \"docs\": {\n \"tags\": [],\n \"text\": \"If `true`, the indeterminate state will be displayed when checked.\"\n },\n \"attribute\": \"indeterminate\",\n \"reflect\": false,\n \"defaultValue\": \"false\"\n },\n \"label\": {\n \"type\": \"string\",\n \"mutable\": false,\n \"complexType\": {\n \"original\": \"string\",\n \"resolved\": \"string\",\n \"references\": {}\n },\n \"required\": true,\n \"optional\": false,\n \"docs\": {\n \"tags\": [],\n \"text\": \"The label for the checkbox.\"\n },\n \"attribute\": \"label\",\n \"reflect\": false\n },\n \"name\": {\n \"type\": \"string\",\n \"mutable\": false,\n \"complexType\": {\n \"original\": \"string\",\n \"resolved\": \"string\",\n \"references\": {}\n },\n \"required\": false,\n \"optional\": false,\n \"docs\": {\n \"tags\": [],\n \"text\": \"The name for the checkbox. If not set when used in a checkbox group, the name will be based on the group name.\"\n },\n \"attribute\": \"name\",\n \"reflect\": false\n },\n \"size\": {\n \"type\": \"string\",\n \"mutable\": false,\n \"complexType\": {\n \"original\": \"IcSizes\",\n \"resolved\": \"\\\"default\\\" | \\\"large\\\" | \\\"small\\\"\",\n \"references\": {\n \"IcSizes\": {\n \"location\": \"import\",\n \"path\": \"../../utils/types\",\n \"id\": \"src/utils/types.ts::IcSizes\"\n }\n }\n },\n \"required\": false,\n \"optional\": true,\n \"docs\": {\n \"tags\": [],\n \"text\": \"The size of the checkbox to be displayed. This does not affect the font size of the label. If a checkbox is contained in a checkbox group, this will override the size set on checkbox group.\"\n },\n \"attribute\": \"size\",\n \"reflect\": false\n },\n \"small\": {\n \"type\": \"boolean\",\n \"mutable\": false,\n \"complexType\": {\n \"original\": \"boolean\",\n \"resolved\": \"boolean\",\n \"references\": {}\n },\n \"required\": false,\n \"optional\": true,\n \"docs\": {\n \"tags\": [{\n \"name\": \"deprecated\",\n \"text\": \"This prop should not be used anymore. Set prop `size` to \\\"small\\\" instead.\"\n }],\n \"text\": \"\"\n },\n \"attribute\": \"small\",\n \"reflect\": false,\n \"defaultValue\": \"false\"\n },\n \"value\": {\n \"type\": \"string\",\n \"mutable\": false,\n \"complexType\": {\n \"original\": \"string\",\n \"resolved\": \"string\",\n \"references\": {}\n },\n \"required\": true,\n \"optional\": false,\n \"docs\": {\n \"tags\": [],\n \"text\": \"The value for the checkbox.\"\n },\n \"attribute\": \"value\",\n \"reflect\": false\n },\n \"hideLabel\": {\n \"type\": \"boolean\",\n \"mutable\": false,\n \"complexType\": {\n \"original\": \"boolean\",\n \"resolved\": \"boolean\",\n \"references\": {}\n },\n \"required\": false,\n \"optional\": false,\n \"docs\": {\n \"tags\": [],\n \"text\": \"If `true`, the label will be hidden and the required label value will be applied as an aria-label.\"\n },\n \"attribute\": \"hide-label\",\n \"reflect\": false,\n \"defaultValue\": \"false\"\n }\n };\n }\n static get states() {\n return {\n \"initiallyChecked\": {}\n };\n }\n static get events() {\n return [{\n \"method\": \"checkboxChecked\",\n \"name\": \"checkboxChecked\",\n \"bubbles\": true,\n \"cancelable\": true,\n \"composed\": true,\n \"docs\": {\n \"tags\": [{\n \"name\": \"deprecated\",\n \"text\": \"This event should not be used anymore. Use icCheck instead.\"\n }],\n \"text\": \"\"\n },\n \"complexType\": {\n \"original\": \"void\",\n \"resolved\": \"void\",\n \"references\": {}\n }\n }, {\n \"method\": \"icCheck\",\n \"name\": \"icCheck\",\n \"bubbles\": true,\n \"cancelable\": true,\n \"composed\": true,\n \"docs\": {\n \"tags\": [],\n \"text\": \"Emitted when a checkbox has been checked.\"\n },\n \"complexType\": {\n \"original\": \"void\",\n \"resolved\": \"void\",\n \"references\": {}\n }\n }];\n }\n static get methods() {\n return {\n \"setFocus\": {\n \"complexType\": {\n \"signature\": \"() => Promise<void>\",\n \"parameters\": [],\n \"references\": {\n \"Promise\": {\n \"location\": \"global\",\n \"id\": \"global::Promise\"\n },\n \"HTMLElement\": {\n \"location\": \"global\",\n \"id\": \"global::HTMLElement\"\n }\n },\n \"return\": \"Promise<void>\"\n },\n \"docs\": {\n \"text\": \"Sets focus on the checkbox.\",\n \"tags\": []\n }\n }\n };\n }\n static get elementRef() { return \"el\"; }\n}\n//# sourceMappingURL=ic-checkbox.js.map\n"],"mappings":"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"}
@@ -1,2 +0,0 @@
1
- import{r as t,h as i,H as s,g as h}from"./p-8455d1bb.js";import{E as e,f as l}from"./p-1b4f852c.js";import"./p-fd186591.js";const p=":host{display:flex;width:100%}.step-item-list{display:flex;margin:0;padding:0}:host(.default:not(.aligned-left)) .step-item-list{flex:auto}:host(.compact) ul ::slotted(ic-step){display:none}:host(.compact) ul ::slotted(ic-step.show){display:flex}:host(.compact) ul ::slotted(ic-step.hide){display:none;opacity:0;visibility:hidden}";const o=class{constructor(i){t(this,i);this.resizeObserver=null;this.getChildren=()=>{this.steps=Array.from(this.el.querySelectorAll("ic-step"));this.stepsWithStepTitles=Array.from(this.el.querySelectorAll("ic-step[step-title]"))};this.checkStepTitles=()=>{if(this.stepsWithStepTitles.length<this.steps.length&&this.variantOverride&&this.variant==="compact"){this.noOfResizes=this.noOfResizes+1;if(this.noOfResizes===1){console.error(`The prop 'step-title' (web components) / 'stepTitle' (react) is required for all steps of the Stepper component (compact variant)`)}}};this.setStepTypes=()=>{this.getChildren();this.stepTypes=[];for(let t=0;t<this.steps.length;t++){this.stepTypes.push("active")}};this.setStepperWidth=()=>{this.alignedFullWidth=this.variant==="default"&&this.aligned==="full-width";const t=this.steps[this.steps.length-1];t.style.maxWidth="none";if(this.alignedFullWidth){this.stepperWidth=this.el.offsetWidth;t.style.maxWidth=e(`${this.stepperWidth/this.steps.length}px`);this.lastStepWidth=t.offsetWidth}};this.initialiseStepStates=()=>{this.steps.forEach(((t,i)=>{t.variant=this.variant;t.stepNum=i+1;t.lastStep=i===this.steps.length-1;t.lastStepNum=this.steps.length;if(t.stepType!=="current"){t.current=false;this.stepTypes[i]=t.stepType}else{t.current=true}const s=t.shadowRoot&&t.shadowRoot.querySelector(".step > .step-title-area");if(this.stepsWithStepTitles.length==0&&this.variantOverride){if(this.variant==="compact"){this.autoSetStepTitles=true;if(this.autoSetStepTitles){t.stepTitle="Step "+t.stepNum;s&&s.querySelector(".step-title").setAttribute("aria-hidden","true")}}if(this.variant==="default"){this.autoSetStepTitles=false;if(!this.autoSetStepTitles){t.stepTitle=undefined;s&&s.querySelector(".step-title").removeAttribute("aria-hidden")}}}if(this.variant==="compact"){if(t.current===true||t.stepType==="current"){t.classList.remove("hide");t.classList.add("show")}else if(t.classList.contains("show")){t.classList.remove("show");t.classList.add("hide")}if(!t.lastStep){t.nextStepTitle=this.steps[i+1].stepTitle;t.progress=t.stepNum/this.steps.length*100}else if(t.lastStep&&this.stepTypes[i]!=="completed"){t.progress=95}else{t.progress=100}if(this.hideStepInfo&&s!==null){s.classList.remove("visually-hidden")}t.compactStepStyling=this.stepTypes[i]}if(this.variant==="default"){if(!t.lastStep){if(this.alignedFullWidth){t.style.width=e(`${(this.stepperWidth-this.lastStepWidth)/(this.steps.length-1)}px`);t.style.minWidth=e("148px")}}else if(t.lastStep){t.classList.add("last-step");if(this.alignedFullWidth){t.style.maxWidth=`${this.lastStepWidth}px`}else{t.style.maxWidth=this.connectorWidth>100?e(`${this.connectorWidth+48}px`):e("148px")}}if(this.aligned==="left"){t.style.width=this.connectorWidth>100?e(`${this.connectorWidth+48}px`):e("148px");const i=t.shadowRoot.querySelector(".step > .step-top > .step-connect");if(i){i.style.width=this.connectorWidth>100?e(`${this.connectorWidth}px`):e("100px")}}if(this.hideStepInfo&&s!==null){s.classList.add("visually-hidden")}}}))};this.overrideVariant=()=>{let t=148*this.steps.length;if(this.aligned==="left"&&this.connectorWidth>100){t=(this.connectorWidth+48)*this.steps.length}if(this.variantOverride){if(this.el.clientWidth<t){this.variant="compact";this.getChildren()}else{this.variant="default";this.getChildren()}}};this.resizeObserverCallback=()=>{this.getChildren();this.checkStepTitles();this.overrideVariant();this.setStepperWidth();this.initialiseStepStates()};this.runResizeObserver=()=>{this.resizeObserver=new ResizeObserver((()=>{this.resizeObserverCallback()}));this.resizeObserver.observe(this.el)};this.alignedFullWidth=true;this.autoSetStepTitles=true;this.lastStepWidth=0;this.noOfResizes=0;this.stepperWidth=document.querySelector("ic-stepper").getBoundingClientRect().width;this.stepTypes=[];this.variantOverride=this.variant!=="compact";this.aligned="full-width";this.appearance="default";this.connectorWidth=100;this.hideStepInfo=false;this.variant="default"}disconnectedCallback(){if(this.resizeObserver!==null){this.resizeObserver.disconnect()}}componentWillLoad(){this.setStepTypes();if(this.variant==="compact"){this.variantOverride=false}}componentWillRender(){this.initialiseStepStates()}componentDidLoad(){l(this.runResizeObserver)}render(){return i(s,{class:{[`${this.variant}`]:true,["aligned-left"]:this.variant==="default"&&this.aligned==="left"}},i("ul",{class:"step-item-list"},i("slot",null)))}get el(){return h(this)}};o.style=p;export{o as ic_stepper};
2
- //# sourceMappingURL=p-b94ef8de.entry.js.map