@ukic/canary-web-components 3.0.0-canary.33 → 3.0.0-canary.34
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/cjs/core.cjs.js +1 -1
- package/dist/cjs/helpers-f81fed28.js.map +1 -1
- package/dist/cjs/ic-alert.cjs.entry.js +6 -2
- package/dist/cjs/ic-alert.cjs.entry.js.map +1 -1
- package/dist/cjs/ic-button_3.cjs.entry.js +28 -16
- package/dist/cjs/ic-button_3.cjs.entry.js.map +1 -1
- package/dist/cjs/ic-checkbox-group.cjs.entry.js +23 -2
- package/dist/cjs/ic-checkbox-group.cjs.entry.js.map +1 -1
- package/dist/cjs/ic-data-row.cjs.entry.js +1 -1
- package/dist/cjs/ic-data-row.cjs.entry.js.map +1 -1
- package/dist/cjs/ic-input-component-container_4.cjs.entry.js +3 -4
- package/dist/cjs/ic-input-component-container_4.cjs.entry.js.map +1 -1
- package/dist/cjs/ic-menu.cjs.entry.js +1 -1
- package/dist/cjs/ic-menu.cjs.entry.js.map +1 -1
- package/dist/cjs/ic-skeleton.cjs.entry.js +20 -5
- package/dist/cjs/ic-skeleton.cjs.entry.js.map +1 -1
- package/dist/cjs/ic-step.cjs.entry.js +16 -14
- package/dist/cjs/ic-step.cjs.entry.js.map +1 -1
- package/dist/cjs/ic-stepper.cjs.entry.js +24 -4
- package/dist/cjs/ic-stepper.cjs.entry.js.map +1 -1
- package/dist/cjs/ic-switch.cjs.entry.js +4 -4
- package/dist/cjs/ic-switch.cjs.entry.js.map +1 -1
- package/dist/cjs/ic-tab-context.cjs.entry.js +1 -1
- package/dist/cjs/ic-tab-context.cjs.entry.js.map +1 -1
- package/dist/cjs/ic-tab-group.cjs.entry.js +2 -2
- package/dist/cjs/ic-tab-group.cjs.entry.js.map +1 -1
- package/dist/cjs/ic-tab-panel.cjs.entry.js +2 -2
- package/dist/cjs/ic-tab-panel.cjs.entry.js.map +1 -1
- package/dist/cjs/ic-theme.cjs.entry.js +1 -1
- package/dist/cjs/ic-theme.cjs.entry.js.map +1 -1
- package/dist/cjs/ic-time-input.cjs.entry.js +7 -7
- package/dist/cjs/ic-time-input.cjs.entry.js.map +1 -1
- package/dist/cjs/ic-time-selector.cjs.entry.js +50 -170
- package/dist/cjs/ic-time-selector.cjs.entry.js.map +1 -1
- package/dist/cjs/ic-toast-region.cjs.entry.js +1 -1
- package/dist/cjs/ic-toast-region.cjs.entry.js.map +1 -1
- package/dist/cjs/ic-toast.cjs.entry.js +5 -5
- package/dist/cjs/ic-toast.cjs.entry.js.map +1 -1
- package/dist/cjs/ic-toggle-button_2.cjs.entry.js +4 -4
- package/dist/cjs/ic-toggle-button_2.cjs.entry.js.map +1 -1
- package/dist/cjs/loader.cjs.js +1 -1
- package/dist/collection/components/ic-time-input/ic-time-input.js +8 -8
- package/dist/collection/components/ic-time-input/ic-time-input.js.map +1 -1
- package/dist/collection/components/ic-time-input/ic-time-input.stories.js +4 -4
- package/dist/collection/components/ic-time-input/ic-time-input.stories.js.map +1 -1
- package/dist/collection/components/ic-time-selector/ic-time-selector.js +53 -200
- package/dist/collection/components/ic-time-selector/ic-time-selector.js.map +1 -1
- package/dist/collection/components/ic-time-selector/ic-time-selector.stories.js +50 -24
- package/dist/collection/components/ic-time-selector/ic-time-selector.stories.js.map +1 -1
- package/dist/collection/utils/types.js.map +1 -1
- package/dist/components/helpers2.js.map +1 -1
- package/dist/components/ic-alert.js +7 -2
- package/dist/components/ic-alert.js.map +1 -1
- package/dist/components/ic-button2.js +4 -4
- package/dist/components/ic-button2.js.map +1 -1
- package/dist/components/ic-checkbox-group.js +24 -2
- package/dist/components/ic-checkbox-group.js.map +1 -1
- package/dist/components/ic-data-row.js +1 -1
- package/dist/components/ic-data-row.js.map +1 -1
- package/dist/components/ic-input-validation2.js +4 -5
- package/dist/components/ic-input-validation2.js.map +1 -1
- package/dist/components/ic-loading-indicator2.js +27 -13
- package/dist/components/ic-loading-indicator2.js.map +1 -1
- package/dist/components/ic-menu2.js +1 -1
- package/dist/components/ic-menu2.js.map +1 -1
- package/dist/components/ic-skeleton.js +23 -6
- package/dist/components/ic-skeleton.js.map +1 -1
- package/dist/components/ic-step.js +17 -15
- package/dist/components/ic-step.js.map +1 -1
- package/dist/components/ic-stepper.js +24 -4
- package/dist/components/ic-stepper.js.map +1 -1
- package/dist/components/ic-switch.js +4 -4
- package/dist/components/ic-switch.js.map +1 -1
- package/dist/components/ic-tab-context.js +1 -1
- package/dist/components/ic-tab-context.js.map +1 -1
- package/dist/components/ic-tab-group.js +2 -2
- package/dist/components/ic-tab-group.js.map +1 -1
- package/dist/components/ic-tab-panel.js +2 -2
- package/dist/components/ic-tab-panel.js.map +1 -1
- package/dist/components/ic-theme.js +1 -1
- package/dist/components/ic-theme.js.map +1 -1
- package/dist/components/ic-time-input.js +7 -7
- package/dist/components/ic-time-input.js.map +1 -1
- package/dist/components/ic-time-selector.js +50 -172
- package/dist/components/ic-time-selector.js.map +1 -1
- package/dist/components/ic-toast-region.js +1 -1
- package/dist/components/ic-toast-region.js.map +1 -1
- package/dist/components/ic-toast.js +5 -5
- package/dist/components/ic-toast.js.map +1 -1
- package/dist/components/ic-toggle-button-group2.js +2 -2
- package/dist/components/ic-toggle-button-group2.js.map +1 -1
- package/dist/components/ic-toggle-button2.js +2 -2
- package/dist/components/ic-toggle-button2.js.map +1 -1
- package/dist/core/core.esm.js +1 -1
- package/dist/core/core.esm.js.map +1 -1
- package/dist/core/{p-802a4bd3.entry.js → p-0bca234b.entry.js} +2 -2
- package/dist/core/{p-802a4bd3.entry.js.map → p-0bca234b.entry.js.map} +1 -1
- package/dist/core/{p-5254a078.entry.js → p-1be17f22.entry.js} +2 -2
- package/dist/core/{p-5254a078.entry.js.map → p-1be17f22.entry.js.map} +1 -1
- package/dist/core/{p-d528d856.entry.js → p-1dbefb37.entry.js} +2 -2
- package/dist/core/p-1dbefb37.entry.js.map +1 -0
- package/dist/core/{p-c9525aac.entry.js → p-409d03b2.entry.js} +2 -2
- package/dist/core/{p-c9525aac.entry.js.map → p-409d03b2.entry.js.map} +1 -1
- package/dist/core/p-492991ad.entry.js +2 -0
- package/dist/core/p-492991ad.entry.js.map +1 -0
- package/dist/core/p-53dad961.entry.js +2 -0
- package/dist/core/p-53dad961.entry.js.map +1 -0
- package/dist/core/{p-ad551a0c.entry.js → p-7c4d6b13.entry.js} +2 -2
- package/dist/core/p-7c4d6b13.entry.js.map +1 -0
- package/dist/core/{p-a88e61b2.entry.js → p-7d878ad7.entry.js} +2 -2
- package/dist/core/{p-a88e61b2.entry.js.map → p-7d878ad7.entry.js.map} +1 -1
- package/dist/core/p-829b34f9.js.map +1 -1
- package/dist/core/p-8d42a6e5.entry.js +2 -0
- package/dist/core/{p-a94a7b71.entry.js.map → p-8d42a6e5.entry.js.map} +1 -1
- package/dist/core/{p-e2e556ec.entry.js → p-a58cf6fd.entry.js} +2 -2
- package/dist/core/p-a58cf6fd.entry.js.map +1 -0
- package/dist/core/{p-53740194.entry.js → p-a8310dfd.entry.js} +2 -2
- package/dist/core/p-a8310dfd.entry.js.map +1 -0
- package/dist/core/{p-c32f043e.entry.js → p-b76fdade.entry.js} +2 -2
- package/dist/core/{p-c32f043e.entry.js.map → p-b76fdade.entry.js.map} +1 -1
- package/dist/core/{p-04cb17d7.entry.js → p-b9459ba2.entry.js} +2 -2
- package/dist/core/{p-04cb17d7.entry.js.map → p-b9459ba2.entry.js.map} +1 -1
- package/dist/core/p-bb3db366.entry.js +2 -0
- package/dist/core/p-bb3db366.entry.js.map +1 -0
- package/dist/core/p-bc6e5d64.entry.js +2 -0
- package/dist/core/p-bc6e5d64.entry.js.map +1 -0
- package/dist/core/{p-adde6c66.entry.js → p-d376858f.entry.js} +2 -2
- package/dist/core/{p-adde6c66.entry.js.map → p-d376858f.entry.js.map} +1 -1
- package/dist/core/{p-6323da7a.entry.js → p-dbd9a403.entry.js} +2 -2
- package/dist/core/{p-6323da7a.entry.js.map → p-dbd9a403.entry.js.map} +1 -1
- package/dist/core/p-df064c8b.entry.js +2 -0
- package/dist/core/p-df064c8b.entry.js.map +1 -0
- package/dist/core/p-eac60693.entry.js +2 -0
- package/dist/core/p-eac60693.entry.js.map +1 -0
- package/dist/esm/core.js +1 -1
- package/dist/esm/helpers-a08b3f32.js.map +1 -1
- package/dist/esm/ic-alert.entry.js +6 -2
- package/dist/esm/ic-alert.entry.js.map +1 -1
- package/dist/esm/ic-button_3.entry.js +28 -16
- package/dist/esm/ic-button_3.entry.js.map +1 -1
- package/dist/esm/ic-checkbox-group.entry.js +23 -2
- package/dist/esm/ic-checkbox-group.entry.js.map +1 -1
- package/dist/esm/ic-data-row.entry.js +1 -1
- package/dist/esm/ic-data-row.entry.js.map +1 -1
- package/dist/esm/ic-input-component-container_4.entry.js +3 -4
- package/dist/esm/ic-input-component-container_4.entry.js.map +1 -1
- package/dist/esm/ic-menu.entry.js +1 -1
- package/dist/esm/ic-menu.entry.js.map +1 -1
- package/dist/esm/ic-skeleton.entry.js +20 -5
- package/dist/esm/ic-skeleton.entry.js.map +1 -1
- package/dist/esm/ic-step.entry.js +17 -15
- package/dist/esm/ic-step.entry.js.map +1 -1
- package/dist/esm/ic-stepper.entry.js +24 -4
- package/dist/esm/ic-stepper.entry.js.map +1 -1
- package/dist/esm/ic-switch.entry.js +4 -4
- package/dist/esm/ic-switch.entry.js.map +1 -1
- package/dist/esm/ic-tab-context.entry.js +1 -1
- package/dist/esm/ic-tab-context.entry.js.map +1 -1
- package/dist/esm/ic-tab-group.entry.js +2 -2
- package/dist/esm/ic-tab-group.entry.js.map +1 -1
- package/dist/esm/ic-tab-panel.entry.js +2 -2
- package/dist/esm/ic-tab-panel.entry.js.map +1 -1
- package/dist/esm/ic-theme.entry.js +1 -1
- package/dist/esm/ic-theme.entry.js.map +1 -1
- package/dist/esm/ic-time-input.entry.js +7 -7
- package/dist/esm/ic-time-input.entry.js.map +1 -1
- package/dist/esm/ic-time-selector.entry.js +50 -170
- package/dist/esm/ic-time-selector.entry.js.map +1 -1
- package/dist/esm/ic-toast-region.entry.js +1 -1
- package/dist/esm/ic-toast-region.entry.js.map +1 -1
- package/dist/esm/ic-toast.entry.js +5 -5
- package/dist/esm/ic-toast.entry.js.map +1 -1
- package/dist/esm/ic-toggle-button_2.entry.js +4 -4
- package/dist/esm/ic-toggle-button_2.entry.js.map +1 -1
- package/dist/esm/loader.js +1 -1
- package/dist/types/components/ic-time-input/ic-time-input.d.ts +1 -1
- package/dist/types/components/ic-time-selector/ic-time-selector.d.ts +2 -10
- package/dist/types/components/ic-time-selector/ic-time-selector.stories.d.ts +48 -13
- package/dist/types/components.d.ts +6 -16
- package/dist/types/utils/types.d.ts +1 -2
- package/hydrate/index.js +208 -250
- package/hydrate/index.mjs +208 -250
- package/package.json +3 -3
- package/dist/core/p-53740194.entry.js.map +0 -1
- package/dist/core/p-71cc5909.entry.js +0 -2
- package/dist/core/p-71cc5909.entry.js.map +0 -1
- package/dist/core/p-8830011c.entry.js +0 -2
- package/dist/core/p-8830011c.entry.js.map +0 -1
- package/dist/core/p-939b168a.entry.js +0 -2
- package/dist/core/p-939b168a.entry.js.map +0 -1
- package/dist/core/p-a94a7b71.entry.js +0 -2
- package/dist/core/p-ad551a0c.entry.js.map +0 -1
- package/dist/core/p-b434bd7c.entry.js +0 -2
- package/dist/core/p-b434bd7c.entry.js.map +0 -1
- package/dist/core/p-d528d856.entry.js.map +0 -1
- package/dist/core/p-da1c2883.entry.js +0 -2
- package/dist/core/p-da1c2883.entry.js.map +0 -1
- package/dist/core/p-e2e556ec.entry.js.map +0 -1
- package/dist/core/p-eaeb473e.entry.js +0 -2
- package/dist/core/p-eaeb473e.entry.js.map +0 -1
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{r as i,c as t,h as s,H as e,g as h}from"./p-8e4e97b4.js";import{b as r,l as a,m as n,n as o,q as l,r as c,s as d,t as u,o as f,u as p}from"./p-829b34f9.js";import{C as b}from"./p-dd7450fb.js";const m=`<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><title>clock-outline</title><path d="M12,20A8,8 0 0,0 20,12A8,8 0 0,0 12,4A8,8 0 0,0 4,12A8,8 0 0,0 12,20M12,2A10,10 0 0,1 22,12A10,10 0 0,1 12,22C6.47,22 2,17.5 2,12A10,10 0 0,1 12,2M12.5,7V12.25L17,14.92L16.25,16.15L11,13V7H12.5Z" /></svg>`;const v='/*! 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{--ic-input-label-helpertext-padding:var(--ic-space-xs);--input-bg-color:var(--ic-time-picker-field-background);--ic-input-label-text-color:var(--ic-time-picker-label);--ic-input-label-helper-text-color:var(--ic-time-picker-subtitle);--border-color:var(--ic-time-picker-time-field-border-default);--border-color-disabled:var(--ic-time-picker-border-disabled);--border-color-hover:var(--ic-time-picker-time-field-border-hover);--border-color-pressed:var(--ic-time-picker-time-field-border-pressed);--border-error-color:var(--ic-time-picker-border-error);--border-error-color-hover:var(--ic-time-picker-border-error-hover);--border-error-color-pressed:var(--ic-time-picker-border-error-pressed);--border-success-color:var(--ic-time-picker-border-success);--border-success-color-hover:var(--ic-time-picker-border-success-hover);--border-success-color-pressed:var(--ic-time-picker-border-success-pressed);--border-warning-color:var(--ic-time-picker-border-warning);--border-warning-color-hover:var(--ic-time-picker-border-warning-hover);--border-warning-color-pressed:var(--ic-time-picker-border-warning-pressed);--input-width:calc((4 * var(--ic-space-xxl)) + var(--ic-space-xxs))}:host(.ic-time-input-disabled){--ic-input-label-text-color:var(--ic-time-picker-label-disabled);--ic-input-label-helper-text-color:var(--ic-time-picker-subtitle-disabled)}:host(.ic-time-input-disabled) input{color:var(--ic-time-picker-time-text-disabled)}:host(.ic-time-input-large){--input-width:calc(\n (4 * var(--ic-space-xxl)) + var(--ic-space-xxs) + var(--ic-space-lg)\n )}:host(.ic-time-input-small){--input-width:calc(\n (3 * var(--ic-space-xxl)) + var(--ic-space-xxs) + var(--ic-space-xl)\n )}.with-am-pm-toggle{display:flex;flex-direction:row}.am-pm-toggle ::part(button){min-width:-moz-fit-content;min-width:fit-content}.am-pm-toggle{margin-left:var(--ic-space-xs)}input{border:0;height:100%;padding:0;outline:none;background:none;-moz-appearance:textfield;-webkit-appearance:textfield;appearance:textfield;color:var(--ic-time-picker-time-text-default);caret-color:var(--ic-time-picker-typing-cursor)}input::-webkit-outer-spin-button,input::-webkit-inner-spin-button{-webkit-appearance:none}input:-webkit-autofill{box-shadow:0 0 0 var(--ic-space-sm) var(--ic-color-background-primary) inset;-webkit-text-fill-color:var(--ic-time-picker-time-text-default) !important}input::-moz-placeholder{color:var(--ic-time-picker-field-placeholder-text)}input::placeholder{color:var(--ic-time-picker-field-placeholder-text)}ic-input-component-container{cursor:text}ic-input-component-container .focus-indicator{padding:var(--ic-space-xxxs) var(--ic-space-xs);align-items:center}.time-inputs{color:var(--ic-time-picker-field-placeholder-text)}.hour-input{width:1.438rem}.minute-input{width:1.813rem}.second-input{width:1.18rem}.millisecond-input,.millisecond-input.fit-to-value{width:1.75rem}.fit-to-value{width:1.25rem}.sr-only{position:absolute;left:-9999px}.input-container{width:100%;display:flex;justify-content:space-between;align-items:center;position:relative}.action-buttons{display:flex;align-items:center}.show-clock-button-wrapper{display:flex;justify-content:center;align-items:center}.clear-button,.clock-button{border-radius:var(--ic-border-radius);transition:box-shadow var(--ic-easing-transition),\n border-radius var(--ic-easing-transition);margin:0}.clear-button.hidden{display:none}.clear-button:focus,.clock-button:focus,.clear-button:active,.clock-button:active{background-color:var(--ic-color-focus-inner) !important;box-shadow:inset 0 0 0 0.125rem var(--ic-color-focus-outer) !important;border-radius:0.25rem}.clock-button:focus,.clock-button:active{--ic-button-tertiary-text-active:var(--ic-atoms-input-clear-button-focus);--ic-button-tertiary-text-hover-active:var(\n --ic-atoms-input-clear-button-focus\n );--ic-button-tertiary-text-pressed-active:var(\n --ic-atoms-input-clear-button-focus\n )}.clear-button:focus,.clock-button:focus,.clear-button:active *,.clock-button:active *{fill:var(--ic-atoms-input-clear-button-focus)}.clear-button svg{color:var(--ic-time-picker-clear-icon)}.clear-button:focus svg{color:var(--ic-atoms-input-clear-button-focus)}.divider{margin:0 var(--ic-space-xxs);width:var(--ic-space-1px);background-color:var(--ic-atoms-input-divider);border-radius:var(--ic-space-1px)}.divider.small{height:var(--ic-space-md)}.divider.medium{height:calc(var(--ic-space-sm) + var(--ic-space-xs))}.divider.large{height:var(--ic-space-lg)}ic-input-validation{--ic-input-validation-status-text-color:var(--ic-time-picker-status-text);--ic-input-validation-error:var(--ic-time-picker-icon-error);--ic-input-validation-warning-icon-color:var(--ic-time-picker-icon-warning);--ic-input-validation-success-icon-color:var(--ic-time-picker-icon-success)}@media (forced-colors: active){.clear-button svg{color:currentcolor}}';const g=v;let k=0;const w=class{constructor(e){i(this,e);this.clockButtonClicked=t(this,"clockButtonClicked",7);this.icBlur=t(this,"icBlur",7);this.icTimeChange=t(this,"icTimeChange",7);this.icFocus=t(this,"icFocus",7);this.DEFAULT_TIME_FORMAT="HH:MM:SS";this.TOGGLE_BUTTON_SELECTOR="ic-toggle-button";this.ARIA_INVALID="aria-invalid";this.ARIA_LABEL="aria-label";this.ARIA_LABELLED_BY="aria-labelledby";this.EVENT_OBJECT_STRING="[object Event]";this.FIT_TO_VALUE="fit-to-value";this.initialValue=this.value;this.inputsInOrder=[];this.isValidHour=true;this.isValidMinute=true;this.isValidSecond=true;this.isValidMillisecond=true;this.isValidTime=true;this.isTimeSetFromKeyboardEvent=false;this.previousSelectedTime=null;this.selectedTime=null;this.externalSetTime=false;this.clearInput=false;this.maxTime=null;this.minTime=null;this.previousHour="";this.previousMinute="";this.previousSecond="";this.previousMillisecond="";this.previousPeriod="AM";this.clockFocused=false;this.clearButtonFocused=false;this.removeLabelledBy=false;this.hour="";this.minute="";this.second="";this.millisecond="";this.period="AM";this.isSSSFormat=()=>this.timeFormat==="HH:MM:SS.SSS";this.disabled=false;this.disableTimes=[];this.emitTimePartChange=false;this.hideHelperText=false;this.hideLabel=false;this.inputId=`ic-time-input-${k++}`;this.invalidTimeMessage="Please enter a valid time.";this.max="";this.min="";this.name=this.inputId;this.required=false;this.showAmPmToggle=false;this.showClearButton=true;this.showClockButton=false;this.size="medium";this.theme="inherit";this.timeFormat=this.DEFAULT_TIME_FORMAT;this.timePeriod="24";this.value="";this.validationAriaLive="polite";this.validationStatus="";this.validationText="";this.setInputPasteValue=(i,t)=>{if(i){const s=i;s.value=t;s.classList.add(this.FIT_TO_VALUE)}};this.isHHMMFormat=()=>this.timeFormat==="HH:MM";this.isKeyboardOrEvent=i=>Object.prototype.toString.call(i)===this.EVENT_OBJECT_STRING||Object.prototype.toString.call(i)==="[object KeyboardEvent]";this.setTimeValidity=()=>{const i=0;const t=this.timePeriod==="12"?12:23;if(!r(this.hour)){this.isValidHour=+this.hour>=i&&+this.hour<=t}else{this.isValidHour=true}if(!r(this.minute)){this.isValidMinute=+this.minute>=0&&+this.minute<=59}else{this.isValidMinute=true}if(!this.isHHMMFormat()){if(!r(this.second)){this.isValidSecond=+this.second>=0&&+this.second<=59}else{this.isValidSecond=true}if(this.isSSSFormat()){if(!r(this.millisecond)){this.isValidMillisecond=+this.millisecond>=0&&+this.millisecond<=999}else{this.isValidMillisecond=true}}else{this.isValidMillisecond=true}}else{this.isValidSecond=true;this.isValidMillisecond=true}};this.setInputValue=(i,t=false)=>{const s=t?"":i.value;if(i===this.hourInputEl){this.hour=s}else if(i===this.minuteInputEl){this.minute=s}else if(i===this.secondInputEl&&!this.isHHMMFormat()){this.second=s}else if(this.isSSSFormat()&&i===this.millisecondInputEl){this.millisecond=s}this.setValidationMessage()};this.setPreventInput=(i,t)=>{if(i===this.hourInputEl){this.preventHourInput=t}else if(i===this.minuteInputEl){this.preventMinuteInput=t}else if(i===this.secondInputEl){this.preventSecondInput=t}else if(this.isSSSFormat()&&i===this.millisecondInputEl){this.preventMillisecondInput=t}};this.setValidationMessage=()=>{this.maxTime=a(this.max).date;this.minTime=a(this.min).date;this.setTimeValidity();let i="";let t=false;if(!r(this.hour)&&!r(this.minute)&&(this.isHHMMFormat()||!r(this.second))&&(!this.isSSSFormat()||!r(this.millisecond))){this.selectedTime=this.convertToTime(this.hour,this.minute,this.isHHMMFormat()?"00":this.second,this.isSSSFormat()?this.millisecond:"000");const s=+this.hour;const e=this.selectedTime?this.selectedTime.getHours():null;if(this.timePeriod==="12"&&this.showAmPmToggle&&e!==null){let i=e%12;if(i===0)i=12;this.isValidTime=!!this.selectedTime&&i==s&&this.selectedTime.getMinutes()==+this.minute&&(this.isHHMMFormat()||this.selectedTime.getSeconds()==+this.second)&&(!this.isSSSFormat()||this.selectedTime.getMilliseconds()==+this.millisecond)}else{this.isValidTime=!!this.selectedTime&&this.selectedTime.getHours()==s&&this.selectedTime.getMinutes()==+this.minute&&(this.isHHMMFormat()||this.selectedTime.getSeconds()==+this.second)&&(!this.isSSSFormat()||this.selectedTime.getMilliseconds()==+this.millisecond)}if(this.selectedTime&&Array.isArray(this.disableTimes)&&this.disableTimes.length>0){t=this.disableTimes.some((i=>{if(typeof i==="object"&&i!==null&&"start"in i&&"end"in i){const t=a(i.start).date;const s=a(i.end).date;if(t&&s){return this.selectedTime>=t&&this.selectedTime<=s}return false}const t=a(i).parts;if(!t)return false;let s=this.selectedTime.getHours();let e=t.hour;if(this.timePeriod==="12"&&this.showAmPmToggle){s=this.convertTo24Hour(s);e=this.convertTo24Hour(e)}return e===s&&t.minute===this.selectedTime.getMinutes()&&t.second===this.selectedTime.getSeconds()}));if(t){this.isValidTime=false;i=this.invalidTimeMessage}}if(this.selectedTime&&!t){if(this.minTime&&this.selectedTime<this.minTime){this.isValidTime=false;i=`Please enter a time after ${this.formatTime(this.minTime)}.`}else if(this.maxTime&&this.selectedTime>this.maxTime){this.isValidTime=false;i=`Please enter a time before ${this.formatTime(this.maxTime)}.`}}if(!this.isValidTime){this.inputsInOrder.forEach((i=>i.setAttribute(this.ARIA_INVALID,"true")))}else{this.inputsInOrder.forEach((i=>i.removeAttribute(this.ARIA_INVALID)))}}else{this.selectedTime=null}if(!(this.isValidHour&&this.isValidMinute&&this.isValidSecond&&this.isValidMillisecond&&this.isValidTime)){this.invalidTimeText=i||this.invalidTimeMessage}else{this.invalidTimeText=""}};this.formatTime=i=>{const t=i.getHours().toString().padStart(2,"0");const s=i.getMinutes().toString().padStart(2,"0");const e=i.getSeconds().toString().padStart(2,"0");const h=i.getMilliseconds().toString().padStart(3,"0");if(this.isSSSFormat()){return`${t}:${s}:${e}.${h}`}return this.isHHMMFormat()?`${t}:${s}`:`${t}:${s}:${e}`};this.handleInput=i=>{const t=i;const s=i.target;if(s===this.millisecondInputEl&&this.isSSSFormat()){this.setInputValue(s);this.setPreventInput(s,false);this.setFitToValueStyling(s);if(s.value.length===3){this.moveToNextInput(s);this.setPreventInput(s,true)}else{this.setPreventInput(s,false)}if(s.value.length===0){this.setInputValue(s,true);this.setValidationMessage()}this.notifyScreenReader(s)}else if(s!==this.hourInputEl){if(t.inputType!=="deleteContentBackward"&&!this.preventAutoFormatting){if(s.value.length===1&&+s.value>=6&&+s.value<=9){this.setInputValue(s);this.notifyScreenReader(s);this.moveToNextInput(s)}if(s.value.length===2){this.setInputValue(s);this.setPreventInput(s,true);this.notifyScreenReader(s);this.moveToNextInput(s)}else{this.setPreventInput(s,false)}}else if(this.preventAutoFormatting){if(s.value.length===2&&!this.isKeyboardOrEvent(i)){this.setInputValue(s);this.setPreventInput(s,true);this.moveToNextInput(s)}else{this.setInputValue(s)}}if(s.value.length!==2){this.setPreventInput(s,false)}this.setFitToValueStyling(s);if(s.value.length===0){this.setInputValue(s,true);this.setValidationMessage()}this.notifyScreenReader(s)}else{if(s.value.length===2){this.setInputValue(s);if(Object.prototype.toString.call(i)!==this.EVENT_OBJECT_STRING){this.moveToNextInput(s)}this.setPreventInput(s,true)}else{this.setInputValue(s,true);this.setPreventInput(s,false)}this.setFitToValueStyling(s);if(s.value.length===0){this.setInputValue(s,true);this.setValidationMessage()}this.notifyScreenReader(s)}};this.handleKeyDown=(i,t)=>{var s;const e=/arrowup|arrowdown|arrowleft|arrowright|shift|tab|backspace|delete/i;const h=i.target;const r=(s=i.key)===null||s===void 0?void 0:s.toLowerCase();if(!/-?\d*\.?\d+(e[-+]?\d+)?|[:]|[.]/i.test(r)&&!e.test(r)&&!((i.ctrlKey||i.metaKey)&&(r==="v"||r==="c"))){i.preventDefault()}const a=/-?\d*\.?\d+(e[-+]?\d+)?|[:]|arrowup|arrowdown|arrowleft|arrowright|shift|tab|backspace|delete/;if(!a.test(r)&&!((i.ctrlKey||i.metaKey)&&(r==="v"||r==="c"))){i.preventDefault()}switch(r){case":":case"arrowright":i.preventDefault();this.moveToNextInput(h);break;case"arrowleft":i.preventDefault();this.moveToPreviousInput(h);break;case"arrowup":case"arrowdown":this.preventAutoFormatting=true;this.handleUpDownArrowKeyPress(h,i);break;case"backspace":if(h.value.length===0){i.preventDefault();this.moveToPreviousInput(h)}break}this.preventInput(i,t);this.isTimeSetFromKeyboardEvent=true};this.handleFocus=i=>{const t=i.target;t.select()};this.handleBlur=i=>{const t=i.target;if(t===this.millisecondInputEl&&this.isSSSFormat()){if(t.value.length===1){t.value=`00${t.value}`;this.setInputValue(t)}else if(t.value.length===2){t.value=`0${t.value}`;this.setInputValue(t)}this.setFitToValueStyling(t)}else if(t){this.autocompleteInput(t)}};this.handleUpDownArrowKeyPress=(i,t)=>{let s=0;let e=59;if(i===this.hourInputEl){s=this.timePeriod==="12"?1:0;e=this.timePeriod==="12"?12:23}let h=+i.value;if(t.key==="ArrowUp"){h=h+1;if(h>e)h=s;i.value=h.toString().padStart(2,"0");this.notifyScreenReader(i)}if(t.key==="ArrowDown"){h=h-1;if(h<s)h=e;i.value=h.toString().padStart(2,"0");this.notifyScreenReader(i)}this.setInputValue(i);this.setFitToValueStyling(i)};this.handleTimeChange=i=>{if(i||this.selectedTime!==this.previousSelectedTime){if(this.value){this.inputsInOrder.forEach((i=>{i.classList.add(this.FIT_TO_VALUE)}))}if(this.hour&&this.minute&&(this.isHHMMFormat()||this.second)&&this.invalidTimeText===""){this.setValueAndEmitChange(this.selectedTime);this.notifyScreenReaderSelectedTime()}else if(!(this.selectedTime===null&&this.previousSelectedTime===null)&&this.selectedTimeInfoEl){this.setValueAndEmitChange(null,true);this.selectedTimeInfoEl.textContent=""}this.previousSelectedTime=this.selectedTime;if(!this.isTimeSetFromKeyboardEvent){this.updateInputValues(this.hour,this.minute,this.second)}}};this.setValueAndEmitChange=(i,t=false)=>{if(this.value!==i||t){this.emitIcTimeChange(i);this.value=i}};this.convertTo24Hour=i=>{let t=i;if(this.period==="PM"&&i<12)t=i+12;if(this.period==="AM"&&i===12)t=0;return t};this.emitIcTimeChange=i=>{const t=parseInt(this.hour);const s=parseInt(this.minute);const e=parseInt(this.second);const h=parseInt(this.millisecond);const r=this.period;let a=false;if(this.isSSSFormat()){a=this.hour!==""&&this.minute!==""&&this.second!==""&&this.millisecond!==""}else if(this.timeFormat===this.DEFAULT_TIME_FORMAT){a=this.hour!==""&&this.minute!==""&&this.second!==""}else if(this.timeFormat==="HH:MM"){a=this.hour!==""&&this.minute!==""}let n=i;let o=t;if(t!=null&&r&&this.timePeriod==="12"&&this.showAmPmToggle){o=this.convertTo24Hour(t);n=new Date;n.setHours(o!==null&&o!==void 0?o:0);n.setMinutes(s!==null&&s!==void 0?s:0);n.setSeconds(e!==null&&e!==void 0?e:0);this.isSSSFormat()&&n.setMilliseconds(h!==null&&h!==void 0?h:0)}this.selectedTime=n;const l=this.hour===""&&this.minute===""&&this.second===""&&this.millisecond==="";const c=l&&this.period!==this.previousPeriod&&this.previousHour===""&&this.previousMinute===""&&this.previousSecond===""&&this.previousMillisecond==="";if(!c){this.icTimeChange.emit({value:a?n:null,timeObject:{hour:this.hour===""?null:this.hour,minute:this.minute===""?null:this.minute,second:this.second===""?null:this.second,millisecond:this.millisecond===""?null:this.millisecond,period:this.period===""?null:this.period}})}this.previousHour=this.hour;this.previousMinute=this.minute;this.previousSecond=this.second;this.previousMillisecond=this.millisecond;this.previousPeriod=this.period};this.setTime=i=>{if(i===null||i===""||i===undefined){if(this.hour)this.hour="";if(this.minute)this.minute="";if(this.second)this.second="";if(this.millisecond)this.millisecond="";this.inputsInOrder.forEach((i=>{i.classList.remove(this.FIT_TO_VALUE);this.setPreventInput(i,false)}));this.handleTimeChange(true)}else{if(typeof i==="string"){const t=i.match(/^(\d{2}):(\d{2}):(\d{2})(?:\.(\d{1,3}))?Z?$/);if(t){this.hour=t[1];this.minute=t[2];this.second=t[3]}else{const t=i.split(/[:.]/);this.hour=t[0]||"";this.minute=t[1]||"";this.second=t[2]||"";this.millisecond=t[3]||""}}else if(i instanceof Date){this.hour=i.getHours().toString().padStart(2,"0");this.minute=i.getMinutes().toString().padStart(2,"0");this.second=i.getSeconds().toString().padStart(2,"0");if(this.isSSSFormat()){this.millisecond=i.getMilliseconds().toString().padStart(3,"0")}}}this.setValidationMessage()};this.setAriaInvalid=(i,t,s,e)=>{var h,r,a,n;if(this.inputsInOrder.length){this.inputsInOrder.forEach((i=>{i.removeAttribute(this.ARIA_INVALID)}));if(!i){(h=this.hourInputEl)===null||h===void 0?void 0:h.setAttribute(this.ARIA_INVALID,"true")}if(!t){(r=this.minuteInputEl)===null||r===void 0?void 0:r.setAttribute(this.ARIA_INVALID,"true")}if(!s){(a=this.secondInputEl)===null||a===void 0?void 0:a.setAttribute(this.ARIA_INVALID,"true")}if(!e){(n=this.millisecondInputEl)===null||n===void 0?void 0:n.setAttribute(this.ARIA_INVALID,"true")}if(!(i&&t&&s&&e)){this.inputsInOrder.forEach((i=>{i.setAttribute(this.ARIA_INVALID,"true")}))}}};this.handleClear=()=>{var i;this.clearInput=true;if(this.hourInputEl){this.hourInputEl.value=""}if(this.minuteInputEl){this.minuteInputEl.value=""}if(!this.isHHMMFormat()&&this.secondInputEl){this.secondInputEl.value=""}if(this.isSSSFormat()&&this.millisecondInputEl){this.millisecondInputEl.value=""}this.hour="";this.minute="";this.second="";this.millisecond="";this.period="AM";if(this.showAmPmToggle){(i=this.periodToggleEl)===null||i===void 0?void 0:i.querySelectorAll(this.TOGGLE_BUTTON_SELECTOR).forEach((i=>{const t=i;if(t.label==="AM"){t.checked=true}else{t.checked=false}}))}this.handleTimeChange(true);this.inputsInOrder.forEach((i=>{i.classList.remove(this.FIT_TO_VALUE);this.setPreventInput(i,false)}));this.clearInput=false;this.isTimeSetFromKeyboardEvent=false;this.setValidationMessage();this.invalidTimeText="";if(this.hourInputEl){this.hourInputEl.focus()}};this.notifyScreenReaderSelectedTime=()=>{if(this.selectedTime&&this.selectedTimeInfoEl){let i=this.selectedTime.getHours();if(this.timePeriod==="12"&&this.showAmPmToggle){i=this.convertTo24Hour(i)}const t=i.toString().padStart(2,"0");const s=this.selectedTime.getMinutes().toString().padStart(2,"0");const e=this.selectedTime.getSeconds().toString().padStart(2,"0");const h=this.selectedTime.getMilliseconds().toString().padStart(3,"0");if(this.isHHMMFormat()){this.selectedTimeInfoEl.textContent=`Selected time: ${t}:${s}`}else if(!this.isSSSFormat()){this.selectedTimeInfoEl.textContent=`Selected time: ${t}:${s}:${e}`}else{this.selectedTimeInfoEl.textContent=`Selected time: ${t}:${s}:${e}.${h}`}}};this.setFitToValueStyling=i=>{if(i.value){i.classList.add(this.FIT_TO_VALUE)}else{i.classList.remove(this.FIT_TO_VALUE)}};this.handleHostBlur=()=>{this.removeLabelledBy=false;this.icBlur.emit({value:this.selectedTime})};this.handleHostFocus=()=>{var i,t;if((t=(i=this.el.shadowRoot)===null||i===void 0?void 0:i.activeElement)===null||t===void 0?void 0:t.id.match(/(hour|minute|second|millisecond)-input$/)){this.removeLabelledBy=false}else{this.removeLabelledBy=true}this.icFocus.emit({value:this.selectedTime})};this.handleFormReset=()=>{this.setTime(this.initialValue);this.setValidationMessage();this.handleTimeChange(false)};this.preventInput=(i,t)=>{const s=i.key;const e=i.target;let h;if(e){h=e.value.substring(e.selectionStart||0,e.selectionEnd||undefined)}if(s==="e"||s==="."||s==="-"||i.key>="0"&&i.key<="9"&&t&&!h){i.preventDefault()}};this.moveToNextInput=i=>{var t;this.preventAutoFormatting=false;(t=this.inputsInOrder[this.inputsInOrder.findIndex((t=>t===i))+1])===null||t===void 0?void 0:t.focus()};this.moveToPreviousInput=i=>{var t;this.preventAutoFormatting=false;(t=this.inputsInOrder[this.inputsInOrder.findIndex((t=>t===i))-1])===null||t===void 0?void 0:t.focus()};this.autocompleteInput=i=>{const t=i.value;if(t.length===1){i.value=`0${t}`}if(i.value){this.setInputValue(i)}};this.convertToTime=(i,t,s,e=null)=>{if(!r(i)&&!r(t)&&(this.isHHMMFormat()||!r(s))&&(!this.isSSSFormat()||e!==null&&!r(e))){const h=new Date;h.setHours(+i,+t,this.isHHMMFormat()?0:+s,0);if(this.isSSSFormat()&&e!==null){h.setMilliseconds(+e)}return h}else{return null}};this.setInputsInOrder=()=>{var i;this.inputsInOrder=[];const t=(i=this.el.shadowRoot)===null||i===void 0?void 0:i.querySelectorAll("input");if(t){t.forEach((i=>this.inputsInOrder.push(i)))}};this.updateInputValues=(i,t,s)=>{this.hourInputEl&&(this.hourInputEl.value=i);this.minuteInputEl&&(this.minuteInputEl.value=t);this.secondInputEl&&(this.secondInputEl.value=s)};this.removeAriaLabelledBy=()=>{var i;(i=this.inputCompContainerEl)===null||i===void 0?void 0:i.removeAttribute(this.ARIA_LABELLED_BY)};this.setAriaLabelledBy=()=>{var i,t,s,e;if(this.disabled&&((i=this.inputCompContainerEl)===null||i===void 0?void 0:i.getAttribute(this.ARIA_LABELLED_BY))){this.removeAriaLabelledBy();return}if(this.disabled){return}const h=(t=this.el.shadowRoot)===null||t===void 0?void 0:t.querySelector("label");const a=`${this.inputId}-label`;if(h!==null&&h!==undefined){h.id=a}const o=!r(this.validationStatus)||!r(this.invalidTimeText);const l=`${(s=h===null||h===void 0?void 0:h.id)!==null&&s!==void 0?s:""} ${this.screenReaderInfoId} ${n(this.el,this.inputId,this.helperText!==""&&this.helperText!==this.defaultHelperText,o)} ${this.selectedTime?this.selectedTimeInfoId:""} ${this.assistiveHintId}`;(e=this.inputCompContainerEl)===null||e===void 0?void 0:e.setAttribute(this.ARIA_LABELLED_BY,l)};this.getInputsInOrder=()=>{const i=this.timeFormat.split(/[:.]/);return i.map((i=>{switch(i){case"HH":return s("input",{class:"hour-input",id:"hour-input",ref:i=>this.hourInputEl=i,"aria-label":"hour",placeholder:"HH",disabled:this.disabled,"aria-required":`${this.required}`,inputmode:"number",pattern:"[0-9]*",onPaste:this.handlePaste,onKeyDown:i=>this.handleKeyDown(i,this.preventHourInput)});case"MM":return s("input",{id:"minute-input",class:"minute-input",ref:i=>this.minuteInputEl=i,"aria-label":"minute",placeholder:"MM",disabled:this.disabled,"aria-required":`${this.required}`,inputmode:"number",pattern:"[0-9]*",onPaste:this.handlePaste,onKeyDown:i=>this.handleKeyDown(i,this.preventMinuteInput)});case"SS":if(!this.isHHMMFormat()){return s("input",{id:"second-input",class:"second-input",ref:i=>this.secondInputEl=i,"aria-label":"second",placeholder:"SS",disabled:this.disabled,"aria-required":`${this.required}`,inputmode:"number",pattern:"[0-9]*",onPaste:this.handlePaste,onKeyDown:i=>this.handleKeyDown(i,this.preventSecondInput)})}break;case"SSS":if(this.isSSSFormat()){return s("input",{id:"millisecond-input",class:"millisecond-input",ref:i=>this.millisecondInputEl=i,"aria-label":"millisecond",placeholder:"SSS",disabled:this.disabled,"aria-required":`${this.required}`,inputmode:"number",pattern:"[0-9]*",onPaste:this.handlePaste,onKeyDown:i=>this.handleKeyDown(i,this.preventMillisecondInput)})}return null;default:return null}}))};this.getDescOfInputsOrder=()=>{if(this.isSSSFormat()){return"hour, minute, second, and millisecond"}return"hour, minute, and second"};this.getScreenReaderInfo=i=>{let t="";if(this.required){t+="required"}if(i===l.Error){t+=" invalid data"}return t===""?"":t+", "};this.notifyScreenReader=i=>{var t;const s=(t=this.el.shadowRoot)===null||t===void 0?void 0:t.querySelector("#live-region");if(s){s.textContent=`${i.value}, ${i.getAttribute(this.ARIA_LABEL)}`}};this.handlePaste=i=>{var t;i.preventDefault();const s=((t=i.clipboardData)===null||t===void 0?void 0:t.getData("Text"))||"";const e=this.isPastedStringTimeValid(s);this.setPastedValueAndValidation(e,s,i)};this.handleClearFocus=()=>{this.removeLabelledBy=true;this.clearButtonFocused=true;this.isTimeSetFromKeyboardEvent=true};this.handleClearBlur=i=>{this.clearButtonFocused=false;this.isTimeSetFromKeyboardEvent=true;const t=i.relatedTarget;if((t===null||t===void 0?void 0:t.id)==="clock-button"){this.removeLabelledBy=false;return}if(t===null||t===void 0?void 0:t.id.match(/(minute|second|millisecond)-input$/)){this.removeLabelledBy=false;return}this.removeLabelledBy=true};this.handleClockFocus=()=>{this.clockFocused=true};this.handleClockBlur=()=>{this.clockFocused=false};this.isPastedStringTimeValid=i=>{if(this.isHHMMFormat()){if(/^\d{2}:\d{2}$/.test(i)){return i}}else if(this.isSSSFormat()){if(/^\d{2}:\d{2}:\d{2}\.\d{1,3}$/.test(i)){return i}if(/^\d{2}:\d{2}:\d{2}\.\d{1,3}Z$/.test(i)){return i.replace("Z","")}const t=i.match(/T(\d{2}:\d{2}:\d{2}\.\d{1,3})/);if(t){return t[1]}}else{if(/^\d{2}:\d{2}:\d{2}$/.test(i)){return i}if(/^\d{2}:\d{2}:\d{2}Z$/.test(i)){return i.replace("Z","")}const t=i.match(/T(\d{2}:\d{2}:\d{2})/);if(t){return t[1]}}return false};this.setPastedValueAndValidation=(i,t,s)=>{if(i){const t=i.split(/[:.]/);this.inputsInOrder.forEach(((i,s)=>{var e,h,r,a;i.classList.add(this.FIT_TO_VALUE);let n=t[s]||"";if(i===this.millisecondInputEl&&this.isSSSFormat()){n=n.slice(0,3)}else{n=n.slice(0,2)}if(i===this.hourInputEl){let i;if(this.timePeriod==="12"&&this.showAmPmToggle){if(parseInt(n)>12){n=(parseInt(n)-12).toString().padStart(2,"0");if(parseInt(n)>12){return}else{this.period="PM";(e=this.periodToggleEl)===null||e===void 0?void 0:e.querySelectorAll(this.TOGGLE_BUTTON_SELECTOR).forEach((t=>{const s=t;if(s.label==="PM"){i=s}else{s.checked=false}}));if(i){(h=this.periodToggleEl)===null||h===void 0?void 0:h.setActiveToggle(i);i.checked=true}this.invalidTimeText="";this.validationStatus=""}}else{if(parseInt(n)===0){n="12"}this.period="AM";(r=this.periodToggleEl)===null||r===void 0?void 0:r.querySelectorAll(this.TOGGLE_BUTTON_SELECTOR).forEach((t=>{const s=t;if(s.label==="AM"){i=s}else{s.checked=false}}));if(i){(a=this.periodToggleEl)===null||a===void 0?void 0:a.setActiveToggle(i);i.checked=true}this.invalidTimeText="";this.validationStatus=""}}}i.value=n;this.setInputValue(i);this.autocompleteInput(i)}));if(this.isHHMMFormat()&&this.second!==""&&this.millisecond!==""){this.second="";this.millisecond=""}}else{const i=t.trim();if((i.length===1||i.length===2)&&o(i)){this.setInputPasteValue(s.target,i);this.setInputValue(s.target)}else{this.invalidTimeText=`Please paste a valid ${s.target.getAttribute(this.ARIA_LABEL)}`;this.validationStatus=l.Error}}};this.handleAMPM=i=>{var t;this.period=i.label;(t=this.periodToggleEl)===null||t===void 0?void 0:t.setActiveToggle(i)}}watchInputHandler(){if(this.emitTimePartChange&&!this.externalSetTime&&!this.clearInput&&!(this.hour&&this.minute&&this.second&&(this.isSSSFormat()?this.millisecond:true))&&this.selectedTime===null){this.emitIcTimeChange(this.selectedTime)}}watchDisabledHandler(){c(this.disabled,this.el)}watchHelperTextHandler(i=false){if(r(this.helperText)||i===true)this.helperText=this.defaultHelperText}watchMaxHandler(){this.maxTime=a(this.max).date}watchMinHandler(){this.minTime=a(this.min).date}watchRequiredHandler(){var i,t;const s=(i=this.el.shadowRoot)===null||i===void 0?void 0:i.querySelector("label");if(this.required){const i=document.createElement("span");i.setAttribute("id","asterisk-span");i.setAttribute("aria-hidden","true");i.textContent=" *";s===null||s===void 0?void 0:s.appendChild(i)}else{const i=(t=this.el.shadowRoot)===null||t===void 0?void 0:t.querySelector("#asterisk-span");if(i){i.remove()}}}watchTimeFormatHandler(){const i=this.defaultHelperText;this.defaultHelperText=`Use format ${this.timeFormat}`;this.watchHelperTextHandler(this.helperText===i)}disconnectedCallback(){d(this.el,this.handleFormReset)}componentWillLoad(){this.watchTimeFormatHandler();this.watchHelperTextHandler();if(this.value){this.externalSetTime=true;this.setTime(this.value)}this.screenReaderInfoId=`${this.inputId}-screen-reader-info`;this.assistiveHintId=`${this.inputId}-assistive-hint`;this.selectedTimeInfoId=`${this.inputId}-selected-time-info`;u(this.el,this.handleFormReset);c(this.disabled,this.el)}componentDidLoad(){this.setInputsInOrder();f([{prop:this.label,propName:"label"}],"Time Input");if(this.value){this.updateInputValues(this.hour,this.minute,this.second);this.inputsInOrder.forEach((i=>{i.classList.add(this.FIT_TO_VALUE)}))}this.setAriaInvalid(this.isValidHour,this.isValidMinute,this.isValidSecond,this.isValidMillisecond);if(this.value){this.notifyScreenReaderSelectedTime()}this.inputsInOrder.forEach((i=>{i.addEventListener("input",this.handleInput);i.addEventListener("focus",this.handleFocus);i.addEventListener("blur",this.handleBlur)}));this.watchRequiredHandler()}componentWillUpdate(){if(!this.isTimeSetFromKeyboardEvent)this.setTime(this.value);this.setAriaInvalid(this.isValidHour,this.isValidMinute,this.isValidSecond,this.isValidMillisecond);this.handleTimeChange(false);this.isTimeSetFromKeyboardEvent=false}componentDidRender(){if(this.removeLabelledBy){this.removeAriaLabelledBy();return}this.setAriaLabelledBy()}async getTime(){return this.selectedTime}async triggerIcTimeChange(i){this.externalSetTime=true;this.setTime(i);this.emitIcTimeChange(i);this.externalSetTime=false}render(){const{inputId:i,label:t,disabled:h,helperText:a,hideHelperText:n,hideLabel:o,showClearButton:c,showClockButton:d,size:u,theme:f,validationAriaLive:v}=this;const g=!r(this.validationStatus);const k=g?this.validationStatus:!r(this.invalidTimeText)?l.Error:"";const w=`Type or use the up and down arrow keys to change the values for the ${this.getDescOfInputsOrder()}.`;p(true,this.el,this.name,this.convertToTime(this.hour,this.minute,this.second),this.disabled);const y=!!(c&&!(r(this.hour)&&r(this.minute)&&r(this.second)));if(this.showAmPmToggle&&this.timePeriod!=="12"){this.showAmPmToggle=false}return s(e,{key:"d005982324084fad9fdfe6392cf879e15709d2ef",class:{[`ic-theme-${f}`]:f!=="inherit",[`ic-time-input-disabled`]:h,[`ic-time-input-${u}`]:true},onBlur:this.handleHostBlur,onFocus:this.handleHostFocus},s("ic-input-container",{key:"6fcc48d72a92ef2a0acf3f6b109e29b24c6608db",disabled:h},!(o&&n)&&s("ic-input-label",{key:"84364f527bbfeffed22d95df1ce879bb9cb55fde",for:i,label:t,hideLabel:o,helperText:!n?a:"",disabled:h},s("slot",{key:"4a993ddc9a3923e4fbe58f4abfd1d6f51ef63494",name:"helper-text",slot:"helper-text"})),s("span",{key:"de2889971bef74376661a3fb0963c9bc88673e12",id:this.screenReaderInfoId,class:"sr-only","aria-hidden":"true"},this.getScreenReaderInfo(k),o&&`${t}\n`,n&&`${a}\n`,`${this.defaultHelperText}.`),s("span",{key:"b68b686d6794d6ad1247f18c867b1652066b48da",id:this.assistiveHintId,class:"sr-only","aria-hidden":"true"},w),s("span",{key:"56557e76da321f937be614926cd3f41b4c9a09a8",id:"live-region","aria-live":"assertive",class:"sr-only"}),s("div",{key:"89cbb13ffe21d66fd82a28ad6b5b295cf68c5787",class:{"with-am-pm-toggle":this.showAmPmToggle===true}},s("ic-input-component-container",{key:"03a61c8d72f43d68f81069327aa31b632bfee74d",id:i,ref:i=>this.inputCompContainerEl=i,disabled:h,validationStatus:k,size:u,role:"group",class:{[`ic-theme-${f}`]:f!=="inherit"}},s("div",{key:"0fdf9d4191272a8b53e73d6230e10750032d5279",class:"input-container"},s("div",{key:"c7b13f330ec67b48e817f4b87fff96ad6ad6102e",class:"time-inputs"},[this.getInputsInOrder()[0],":",this.getInputsInOrder()[1],!this.isHHMMFormat()?[":",this.getInputsInOrder()[2]]:null,this.isSSSFormat()?[".",this.getInputsInOrder()[3]]:null]),s("div",{key:"caf4926b8008875a111f6bb3aa0815cfb2e10768",class:"action-buttons"},c&&s("ic-button",{key:"9883c16dc3d60c6ea4d9d3cc3e4a770479339879",id:"clear-button","aria-label":"Clear input",class:{["clear-button"]:true,["hidden"]:r(this.hour)&&r(this.minute)&&r(this.second)},disabled:this.disabled,innerHTML:b,onClick:this.handleClear,onFocus:this.handleClearFocus,onBlur:this.handleClearBlur,variant:"icon-tertiary",theme:this.clearButtonFocused?"light":"dark",size:u}),d&&s("div",{key:"9ace5895419381c300bbdc5c8ef2eeacad05b63b",class:"show-clock-button-wrapper"},s("div",{key:"dfa2a5bbf9e7bd74353d7caf3514861d545d6026",class:{divider:y,[u]:true}}),s("ic-button",{key:"1c36dcf4f02a323aafeb265126e2d1334df077b2",id:"clock-button","aria-label":"Display clock","aria-haspopup":"dialog",class:"clock-button",disabled:this.disabled,innerHTML:m,variant:"icon-tertiary",size:u,onFocus:this.handleClockFocus,onBlur:this.handleClockBlur,theme:this.clockFocused?"light":"dark"}))))),this.showAmPmToggle&&s("ic-toggle-button-group",{key:"c63749fddcc1b7ed3c394a17a5d1a65aa322f024","select-type":"single","accessible-label":"AM PM Toggle",ref:i=>this.periodToggleEl=i,disabled:h,class:"am-pm-toggle","select-method":"auto",onIcChange:i=>this.handleAMPM(i.detail.selectedOption),onKeyDown:i=>{if(i.key==="Tab"&&i.shiftKey){i.preventDefault();if(this.inputsInOrder&&this.inputsInOrder.length>0){const i=this.inputsInOrder[this.inputsInOrder.length-1];i===null||i===void 0?void 0:i.focus()}}}},s("ic-toggle-button",{key:"fc731674e7c26846a969768ddc77b94b14c6cca6",label:"AM",disabled:h,checked:true}),s("ic-toggle-button",{key:"89e0bd48a39a8e786fcac5e034358edd560f4136",label:"PM",disabled:h}))),s("span",{key:"52854ea1dc4a1c4e7783914ff90bf204848a2e6e",id:this.selectedTimeInfoId,class:"sr-only","aria-live":"polite"},s("span",{key:"065c89020778df53ae78d037ef62feb189b7fdba",ref:i=>this.selectedTimeInfoEl=i,role:"status"})),s("ic-input-validation",{key:"fc2500bef0e8e077272424a46663a85509a160c3",status:k,message:g?this.validationText:this.invalidTimeText,for:i,ariaLiveMode:v})))}static get delegatesFocus(){return true}get el(){return h(this)}static get watchers(){return{hour:["watchInputHandler"],minute:["watchInputHandler"],second:["watchInputHandler"],millisecond:["watchInputHandler"],period:["watchInputHandler"],disabled:["watchDisabledHandler"],helperText:["watchHelperTextHandler"],max:["watchMaxHandler"],min:["watchMinHandler"],required:["watchRequiredHandler"],timeFormat:["watchTimeFormatHandler"]}}};w.style=g;export{w as ic_time_input};
|
|
2
|
-
//# sourceMappingURL=p-
|
|
1
|
+
import{r as i,c as t,h as s,H as e,g as h}from"./p-8e4e97b4.js";import{b as r,l as a,m as n,n as o,q as l,r as c,s as d,t as u,o as f,u as p}from"./p-829b34f9.js";import{C as b}from"./p-dd7450fb.js";const m=`<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><title>clock-outline</title><path d="M12,20A8,8 0 0,0 20,12A8,8 0 0,0 12,4A8,8 0 0,0 4,12A8,8 0 0,0 12,20M12,2A10,10 0 0,1 22,12A10,10 0 0,1 12,22C6.47,22 2,17.5 2,12A10,10 0 0,1 12,2M12.5,7V12.25L17,14.92L16.25,16.15L11,13V7H12.5Z" /></svg>`;const v='/*! 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{--ic-input-label-helpertext-padding:var(--ic-space-xs);--input-bg-color:var(--ic-time-picker-field-background);--ic-input-label-text-color:var(--ic-time-picker-label);--ic-input-label-helper-text-color:var(--ic-time-picker-subtitle);--border-color:var(--ic-time-picker-time-field-border-default);--border-color-disabled:var(--ic-time-picker-border-disabled);--border-color-hover:var(--ic-time-picker-time-field-border-hover);--border-color-pressed:var(--ic-time-picker-time-field-border-pressed);--border-error-color:var(--ic-time-picker-border-error);--border-error-color-hover:var(--ic-time-picker-border-error-hover);--border-error-color-pressed:var(--ic-time-picker-border-error-pressed);--border-success-color:var(--ic-time-picker-border-success);--border-success-color-hover:var(--ic-time-picker-border-success-hover);--border-success-color-pressed:var(--ic-time-picker-border-success-pressed);--border-warning-color:var(--ic-time-picker-border-warning);--border-warning-color-hover:var(--ic-time-picker-border-warning-hover);--border-warning-color-pressed:var(--ic-time-picker-border-warning-pressed);--input-width:calc((4 * var(--ic-space-xxl)) + var(--ic-space-xxs))}:host(.ic-time-input-disabled){--ic-input-label-text-color:var(--ic-time-picker-label-disabled);--ic-input-label-helper-text-color:var(--ic-time-picker-subtitle-disabled)}:host(.ic-time-input-disabled) input{color:var(--ic-time-picker-time-text-disabled)}:host(.ic-time-input-large){--input-width:calc(\n (4 * var(--ic-space-xxl)) + var(--ic-space-xxs) + var(--ic-space-lg)\n )}:host(.ic-time-input-small){--input-width:calc(\n (3 * var(--ic-space-xxl)) + var(--ic-space-xxs) + var(--ic-space-xl)\n )}.with-am-pm-toggle{display:flex;flex-direction:row}.am-pm-toggle ::part(button){min-width:-moz-fit-content;min-width:fit-content}.am-pm-toggle{margin-left:var(--ic-space-xs)}input{border:0;height:100%;padding:0;outline:none;background:none;-moz-appearance:textfield;-webkit-appearance:textfield;appearance:textfield;color:var(--ic-time-picker-time-text-default);caret-color:var(--ic-time-picker-typing-cursor)}input::-webkit-outer-spin-button,input::-webkit-inner-spin-button{-webkit-appearance:none}input:-webkit-autofill{box-shadow:0 0 0 var(--ic-space-sm) var(--ic-color-background-primary) inset;-webkit-text-fill-color:var(--ic-time-picker-time-text-default) !important}input::-moz-placeholder{color:var(--ic-time-picker-field-placeholder-text)}input::placeholder{color:var(--ic-time-picker-field-placeholder-text)}ic-input-component-container{cursor:text}ic-input-component-container .focus-indicator{padding:var(--ic-space-xxxs) var(--ic-space-xs);align-items:center}.time-inputs{color:var(--ic-time-picker-field-placeholder-text)}.hour-input{width:1.438rem}.minute-input{width:1.813rem}.second-input{width:1.18rem}.millisecond-input,.millisecond-input.fit-to-value{width:1.75rem}.fit-to-value{width:1.25rem}.sr-only{position:absolute;left:-9999px}.input-container{width:100%;display:flex;justify-content:space-between;align-items:center;position:relative}.action-buttons{display:flex;align-items:center}.show-clock-button-wrapper{display:flex;justify-content:center;align-items:center}.clear-button,.clock-button{border-radius:var(--ic-border-radius);transition:box-shadow var(--ic-easing-transition),\n border-radius var(--ic-easing-transition);margin:0}.clear-button.hidden{display:none}.clear-button:focus,.clock-button:focus,.clear-button:active,.clock-button:active{background-color:var(--ic-color-focus-inner) !important;box-shadow:inset 0 0 0 0.125rem var(--ic-color-focus-outer) !important;border-radius:0.25rem}.clock-button:focus,.clock-button:active{--ic-button-tertiary-text-active:var(--ic-atoms-input-clear-button-focus);--ic-button-tertiary-text-hover-active:var(\n --ic-atoms-input-clear-button-focus\n );--ic-button-tertiary-text-pressed-active:var(\n --ic-atoms-input-clear-button-focus\n )}.clear-button:focus,.clock-button:focus,.clear-button:active *,.clock-button:active *{fill:var(--ic-atoms-input-clear-button-focus)}.clear-button svg{color:var(--ic-time-picker-clear-icon)}.clear-button:focus svg{color:var(--ic-atoms-input-clear-button-focus)}.divider{margin:0 var(--ic-space-xxs);width:var(--ic-space-1px);background-color:var(--ic-atoms-input-divider);border-radius:var(--ic-space-1px)}.divider.small{height:var(--ic-space-md)}.divider.medium{height:calc(var(--ic-space-sm) + var(--ic-space-xs))}.divider.large{height:var(--ic-space-lg)}ic-input-validation{--ic-input-validation-status-text-color:var(--ic-time-picker-status-text);--ic-input-validation-error:var(--ic-time-picker-icon-error);--ic-input-validation-warning-icon-color:var(--ic-time-picker-icon-warning);--ic-input-validation-success-icon-color:var(--ic-time-picker-icon-success)}@media (forced-colors: active){.clear-button svg{color:currentcolor}}';const g=v;let k=0;const w=class{constructor(e){i(this,e);this.clockButtonClicked=t(this,"clockButtonClicked",7);this.icBlur=t(this,"icBlur",7);this.icTimeChange=t(this,"icTimeChange",7);this.icFocus=t(this,"icFocus",7);this.DEFAULT_TIME_FORMAT="HH:MM:SS";this.TOGGLE_BUTTON_SELECTOR="ic-toggle-button";this.ARIA_INVALID="aria-invalid";this.ARIA_LABEL="aria-label";this.ARIA_LABELLED_BY="aria-labelledby";this.EVENT_OBJECT_STRING="[object Event]";this.FIT_TO_VALUE="fit-to-value";this.initialValue=this.value;this.inputsInOrder=[];this.isValidHour=true;this.isValidMinute=true;this.isValidSecond=true;this.isValidMillisecond=true;this.isValidTime=true;this.isTimeSetFromKeyboardEvent=false;this.previousSelectedTime=null;this.selectedTime=null;this.externalSetTime=false;this.clearInput=false;this.maxTime=null;this.minTime=null;this.previousHour="";this.previousMinute="";this.previousSecond="";this.previousMillisecond="";this.previousPeriod="AM";this.clockFocused=false;this.clearButtonFocused=false;this.removeLabelledBy=false;this.hour="";this.minute="";this.second="";this.millisecond="";this.period="AM";this.isSSSFormat=()=>this.timeFormat==="HH:MM:SS.SSS";this.disabled=false;this.disableTimes=[];this.emitTimePartChange=false;this.hideHelperText=false;this.hideLabel=false;this.inputId=`ic-time-input-${k++}`;this.invalidTimeMessage="Please enter a valid time.";this.max="";this.min="";this.name=this.inputId;this.required=false;this.showAmPmToggle=false;this.showClearButton=true;this.showClockButton=false;this.size="medium";this.theme="inherit";this.timeFormat=this.DEFAULT_TIME_FORMAT;this.timePeriod="24";this.value="";this.validationAriaLive="polite";this.validationStatus="";this.validationText="";this.setInputPasteValue=(i,t)=>{if(i){const s=i;s.value=t;s.classList.add(this.FIT_TO_VALUE)}};this.isHHMMFormat=()=>this.timeFormat==="HH:MM";this.isKeyboardOrEvent=i=>Object.prototype.toString.call(i)===this.EVENT_OBJECT_STRING||Object.prototype.toString.call(i)==="[object KeyboardEvent]";this.setTimeValidity=()=>{const i=0;const t=this.timePeriod==="12"?12:23;if(!r(this.hour)){this.isValidHour=+this.hour>=i&&+this.hour<=t}else{this.isValidHour=true}if(!r(this.minute)){this.isValidMinute=+this.minute>=0&&+this.minute<=59}else{this.isValidMinute=true}if(!this.isHHMMFormat()){if(!r(this.second)){this.isValidSecond=+this.second>=0&&+this.second<=59}else{this.isValidSecond=true}if(this.isSSSFormat()){if(!r(this.millisecond)){this.isValidMillisecond=+this.millisecond>=0&&+this.millisecond<=999}else{this.isValidMillisecond=true}}else{this.isValidMillisecond=true}}else{this.isValidSecond=true;this.isValidMillisecond=true}};this.setInputValue=(i,t=false)=>{const s=t?"":i.value;if(i===this.hourInputEl){this.hour=s}else if(i===this.minuteInputEl){this.minute=s}else if(i===this.secondInputEl&&!this.isHHMMFormat()){this.second=s}else if(this.isSSSFormat()&&i===this.millisecondInputEl){this.millisecond=s}this.setValidationMessage()};this.setPreventInput=(i,t)=>{if(i===this.hourInputEl){this.preventHourInput=t}else if(i===this.minuteInputEl){this.preventMinuteInput=t}else if(i===this.secondInputEl){this.preventSecondInput=t}else if(this.isSSSFormat()&&i===this.millisecondInputEl){this.preventMillisecondInput=t}};this.setValidationMessage=()=>{this.maxTime=a(this.max).date;this.minTime=a(this.min).date;this.setTimeValidity();let i="";let t=false;if(!r(this.hour)&&!r(this.minute)&&(this.isHHMMFormat()||!r(this.second))&&(!this.isSSSFormat()||!r(this.millisecond))){this.selectedTime=this.convertToTime(this.hour,this.minute,this.isHHMMFormat()?"00":this.second,this.isSSSFormat()?this.millisecond:"000");const s=+this.hour;const e=this.selectedTime?this.selectedTime.getHours():null;if(this.timePeriod==="12"&&this.showAmPmToggle&&e!==null){let i=e%12;if(i===0)i=12;this.isValidTime=!!this.selectedTime&&i==s&&this.selectedTime.getMinutes()==+this.minute&&(this.isHHMMFormat()||this.selectedTime.getSeconds()==+this.second)&&(!this.isSSSFormat()||this.selectedTime.getMilliseconds()==+this.millisecond)}else{this.isValidTime=!!this.selectedTime&&this.selectedTime.getHours()==s&&this.selectedTime.getMinutes()==+this.minute&&(this.isHHMMFormat()||this.selectedTime.getSeconds()==+this.second)&&(!this.isSSSFormat()||this.selectedTime.getMilliseconds()==+this.millisecond)}if(this.selectedTime&&Array.isArray(this.disableTimes)&&this.disableTimes.length>0){t=this.disableTimes.some((i=>{if(typeof i==="object"&&i!==null&&"start"in i&&"end"in i){const t=a(i.start).date;const s=a(i.end).date;if(t&&s){return this.selectedTime>=t&&this.selectedTime<=s}return false}const t=a(i).parts;if(!t)return false;let s=this.selectedTime.getHours();let e=t.hour;if(this.timePeriod==="12"&&this.showAmPmToggle){s=this.convertTo24Hour(s);e=this.convertTo24Hour(e)}return e===s&&t.minute===this.selectedTime.getMinutes()&&t.second===this.selectedTime.getSeconds()}));if(t){this.isValidTime=false;i=this.invalidTimeMessage}}if(this.selectedTime&&!t){if(this.minTime&&this.selectedTime<this.minTime){this.isValidTime=false;i=`Please enter a time after ${this.formatTime(this.minTime)}.`}else if(this.maxTime&&this.selectedTime>this.maxTime){this.isValidTime=false;i=`Please enter a time before ${this.formatTime(this.maxTime)}.`}}if(!this.isValidTime){this.inputsInOrder.forEach((i=>i.setAttribute(this.ARIA_INVALID,"true")))}else{this.inputsInOrder.forEach((i=>i.removeAttribute(this.ARIA_INVALID)))}}else{this.selectedTime=null}if(!(this.isValidHour&&this.isValidMinute&&this.isValidSecond&&this.isValidMillisecond&&this.isValidTime)){this.invalidTimeText=i||this.invalidTimeMessage}else{this.invalidTimeText=""}};this.formatTime=i=>{const t=i.getHours().toString().padStart(2,"0");const s=i.getMinutes().toString().padStart(2,"0");const e=i.getSeconds().toString().padStart(2,"0");const h=i.getMilliseconds().toString().padStart(3,"0");if(this.isSSSFormat()){return`${t}:${s}:${e}.${h}`}return this.isHHMMFormat()?`${t}:${s}`:`${t}:${s}:${e}`};this.handleInput=i=>{const t=i;const s=i.target;if(s===this.millisecondInputEl&&this.isSSSFormat()){this.setInputValue(s);this.setPreventInput(s,false);this.setFitToValueStyling(s);if(s.value.length===3){this.moveToNextInput(s);this.setPreventInput(s,true)}else{this.setPreventInput(s,false)}if(s.value.length===0){this.setInputValue(s,true);this.setValidationMessage()}this.notifyScreenReader(s)}else if(s!==this.hourInputEl){if(t.inputType!=="deleteContentBackward"&&!this.preventAutoFormatting){if(s.value.length===1&&+s.value>=6&&+s.value<=9){this.setInputValue(s);this.notifyScreenReader(s);this.moveToNextInput(s)}if(s.value.length===2){this.setInputValue(s);this.setPreventInput(s,true);this.notifyScreenReader(s);this.moveToNextInput(s)}else{this.setPreventInput(s,false)}}else if(this.preventAutoFormatting){if(s.value.length===2&&!this.isKeyboardOrEvent(i)){this.setInputValue(s);this.setPreventInput(s,true);this.moveToNextInput(s)}else{this.setInputValue(s)}}if(s.value.length!==2){this.setPreventInput(s,false)}this.setFitToValueStyling(s);if(s.value.length===0){this.setInputValue(s,true);this.setValidationMessage()}this.notifyScreenReader(s)}else{if(s.value.length===2){this.setInputValue(s);if(Object.prototype.toString.call(i)!==this.EVENT_OBJECT_STRING){this.moveToNextInput(s)}this.setPreventInput(s,true)}else{this.setInputValue(s,true);this.setPreventInput(s,false)}this.setFitToValueStyling(s);if(s.value.length===0){this.setInputValue(s,true);this.setValidationMessage()}this.notifyScreenReader(s)}};this.handleKeyDown=(i,t)=>{var s;const e=/arrowup|arrowdown|arrowleft|arrowright|shift|tab|backspace|delete/i;const h=i.target;const r=(s=i.key)===null||s===void 0?void 0:s.toLowerCase();if(!/-?\d*\.?\d+(e[-+]?\d+)?|[:]|[.]/i.test(r)&&!e.test(r)&&!((i.ctrlKey||i.metaKey)&&(r==="v"||r==="c"))){i.preventDefault()}const a=/-?\d*\.?\d+(e[-+]?\d+)?|[:]|arrowup|arrowdown|arrowleft|arrowright|shift|tab|backspace|delete/;if(!a.test(r)&&!((i.ctrlKey||i.metaKey)&&(r==="v"||r==="c"))){i.preventDefault()}switch(r){case":":case"arrowright":i.preventDefault();this.moveToNextInput(h);break;case"arrowleft":i.preventDefault();this.moveToPreviousInput(h);break;case"arrowup":case"arrowdown":this.preventAutoFormatting=true;this.handleUpDownArrowKeyPress(h,i);break;case"backspace":if(h.value.length===0){i.preventDefault();this.moveToPreviousInput(h)}break}this.preventInput(i,t);this.isTimeSetFromKeyboardEvent=true};this.handleFocus=i=>{const t=i.target;t.select()};this.handleBlur=i=>{const t=i.target;if(t===this.millisecondInputEl&&this.isSSSFormat()){if(t.value.length===1){t.value=`00${t.value}`;this.setInputValue(t)}else if(t.value.length===2){t.value=`0${t.value}`;this.setInputValue(t)}this.setFitToValueStyling(t)}else if(t){this.autocompleteInput(t)}};this.handleUpDownArrowKeyPress=(i,t)=>{let s=0;let e=59;if(i===this.hourInputEl){s=this.timePeriod==="12"?1:0;e=this.timePeriod==="12"?12:23}let h=+i.value;if(t.key==="ArrowUp"){h=h+1;if(h>e)h=s;i.value=h.toString().padStart(2,"0");this.notifyScreenReader(i)}if(t.key==="ArrowDown"){h=h-1;if(h<s)h=e;i.value=h.toString().padStart(2,"0");this.notifyScreenReader(i)}this.setInputValue(i);this.setFitToValueStyling(i)};this.handleTimeChange=i=>{if(i||this.selectedTime!==this.previousSelectedTime){if(this.value){this.inputsInOrder.forEach((i=>{i.classList.add(this.FIT_TO_VALUE)}))}if(this.hour&&this.minute&&(this.isHHMMFormat()||this.second)&&this.invalidTimeText===""){this.setValueAndEmitChange(this.selectedTime);this.notifyScreenReaderSelectedTime()}else if(!(this.selectedTime===null&&this.previousSelectedTime===null)&&this.selectedTimeInfoEl){this.setValueAndEmitChange(null,true);this.selectedTimeInfoEl.textContent=""}this.previousSelectedTime=this.selectedTime;if(!this.isTimeSetFromKeyboardEvent){this.updateInputValues(this.hour,this.minute,this.second)}}};this.setValueAndEmitChange=(i,t=false)=>{if(this.value!==i||t){this.emitIcTimeChange(i);this.value=i}};this.convertTo24Hour=i=>{let t=i;if(this.period==="PM"&&i<12)t=i+12;if(this.period==="AM"&&i===12)t=0;return t};this.emitIcTimeChange=i=>{const t=parseInt(this.hour);const s=parseInt(this.minute);const e=parseInt(this.second);const h=parseInt(this.millisecond);const r=this.period;let a=false;if(this.isSSSFormat()){a=this.hour!==""&&this.minute!==""&&this.second!==""&&this.millisecond!==""}else if(this.timeFormat===this.DEFAULT_TIME_FORMAT){a=this.hour!==""&&this.minute!==""&&this.second!==""}else if(this.timeFormat==="HH:MM"){a=this.hour!==""&&this.minute!==""}let n=i;let o=t;if(t!=null&&r&&this.timePeriod==="12"&&this.showAmPmToggle){o=this.convertTo24Hour(t);n=new Date;n.setHours(o!==null&&o!==void 0?o:0);n.setMinutes(s!==null&&s!==void 0?s:0);n.setSeconds(e!==null&&e!==void 0?e:0);this.isSSSFormat()&&n.setMilliseconds(h!==null&&h!==void 0?h:0)}this.selectedTime=n;const l=this.hour===""&&this.minute===""&&this.second===""&&this.millisecond==="";const c=l&&this.period!==this.previousPeriod&&this.previousHour===""&&this.previousMinute===""&&this.previousSecond===""&&this.previousMillisecond==="";if(!c){this.icTimeChange.emit({value:a?n:null,timeObject:{hour:this.hour===""?null:this.hour,minute:this.minute===""?null:this.minute,second:this.second===""?null:this.second,millisecond:this.millisecond===""?null:this.millisecond,period:this.period===""?null:this.period}})}this.previousHour=this.hour;this.previousMinute=this.minute;this.previousSecond=this.second;this.previousMillisecond=this.millisecond;this.previousPeriod=this.period};this.setTime=i=>{if(i===null||i===""||i===undefined){if(this.hour)this.hour="";if(this.minute)this.minute="";if(this.second)this.second="";if(this.millisecond)this.millisecond="";this.inputsInOrder.forEach((i=>{i.classList.remove(this.FIT_TO_VALUE);this.setPreventInput(i,false)}));this.handleTimeChange(true)}else{if(typeof i==="string"){const t=i.match(/^(\d{2}):(\d{2}):(\d{2})(?:\.(\d{1,3}))?Z?$/);if(t){this.hour=t[1];this.minute=t[2];this.second=t[3]}else{const t=i.split(/[:.]/);this.hour=t[0]||"";this.minute=t[1]||"";this.second=t[2]||"";this.millisecond=t[3]||""}}else if(i instanceof Date){this.hour=i.getHours().toString().padStart(2,"0");this.minute=i.getMinutes().toString().padStart(2,"0");this.second=i.getSeconds().toString().padStart(2,"0");if(this.isSSSFormat()){this.millisecond=i.getMilliseconds().toString().padStart(3,"0")}}}this.setValidationMessage()};this.setAriaInvalid=(i,t,s,e)=>{var h,r,a,n;if(this.inputsInOrder.length){this.inputsInOrder.forEach((i=>{i.removeAttribute(this.ARIA_INVALID)}));if(!i){(h=this.hourInputEl)===null||h===void 0?void 0:h.setAttribute(this.ARIA_INVALID,"true")}if(!t){(r=this.minuteInputEl)===null||r===void 0?void 0:r.setAttribute(this.ARIA_INVALID,"true")}if(!s){(a=this.secondInputEl)===null||a===void 0?void 0:a.setAttribute(this.ARIA_INVALID,"true")}if(!e){(n=this.millisecondInputEl)===null||n===void 0?void 0:n.setAttribute(this.ARIA_INVALID,"true")}if(!(i&&t&&s&&e)){this.inputsInOrder.forEach((i=>{i.setAttribute(this.ARIA_INVALID,"true")}))}}};this.handleClear=()=>{var i;this.clearInput=true;if(this.hourInputEl){this.hourInputEl.value=""}if(this.minuteInputEl){this.minuteInputEl.value=""}if(!this.isHHMMFormat()&&this.secondInputEl){this.secondInputEl.value=""}if(this.isSSSFormat()&&this.millisecondInputEl){this.millisecondInputEl.value=""}this.hour="";this.minute="";this.second="";this.millisecond="";this.period="AM";if(this.showAmPmToggle){(i=this.periodToggleEl)===null||i===void 0?void 0:i.querySelectorAll(this.TOGGLE_BUTTON_SELECTOR).forEach((i=>{const t=i;if(t.label==="AM"){t.checked=true}else{t.checked=false}}))}this.handleTimeChange(true);this.inputsInOrder.forEach((i=>{i.classList.remove(this.FIT_TO_VALUE);this.setPreventInput(i,false)}));this.clearInput=false;this.isTimeSetFromKeyboardEvent=false;this.setValidationMessage();this.invalidTimeText="";if(this.hourInputEl){this.hourInputEl.focus()}};this.notifyScreenReaderSelectedTime=()=>{if(this.selectedTime&&this.selectedTimeInfoEl){let i=this.selectedTime.getHours();if(this.timePeriod==="12"&&this.showAmPmToggle){i=this.convertTo24Hour(i)}const t=i.toString().padStart(2,"0");const s=this.selectedTime.getMinutes().toString().padStart(2,"0");const e=this.selectedTime.getSeconds().toString().padStart(2,"0");const h=this.selectedTime.getMilliseconds().toString().padStart(3,"0");if(this.isHHMMFormat()){this.selectedTimeInfoEl.textContent=`Selected time: ${t}:${s}`}else if(!this.isSSSFormat()){this.selectedTimeInfoEl.textContent=`Selected time: ${t}:${s}:${e}`}else{this.selectedTimeInfoEl.textContent=`Selected time: ${t}:${s}:${e}.${h}`}}};this.setFitToValueStyling=i=>{if(i.value){i.classList.add(this.FIT_TO_VALUE)}else{i.classList.remove(this.FIT_TO_VALUE)}};this.handleHostBlur=()=>{this.removeLabelledBy=false;this.icBlur.emit({value:this.selectedTime})};this.handleHostFocus=()=>{var i,t;if((t=(i=this.el.shadowRoot)===null||i===void 0?void 0:i.activeElement)===null||t===void 0?void 0:t.id.match(/(hour|minute|second|millisecond)-input$/)){this.removeLabelledBy=false}else{this.removeLabelledBy=true}this.icFocus.emit({value:this.selectedTime})};this.handleFormReset=()=>{this.setTime(this.initialValue);this.setValidationMessage();this.handleTimeChange(false)};this.preventInput=(i,t)=>{const s=i.key;const e=i.target;let h;if(e){h=e.value.substring(e.selectionStart||0,e.selectionEnd||undefined)}if(s==="e"||s==="."||s==="-"||i.key>="0"&&i.key<="9"&&t&&!h){i.preventDefault()}};this.moveToNextInput=i=>{var t;this.preventAutoFormatting=false;(t=this.inputsInOrder[this.inputsInOrder.findIndex((t=>t===i))+1])===null||t===void 0?void 0:t.focus()};this.moveToPreviousInput=i=>{var t;this.preventAutoFormatting=false;(t=this.inputsInOrder[this.inputsInOrder.findIndex((t=>t===i))-1])===null||t===void 0?void 0:t.focus()};this.autocompleteInput=i=>{const t=i.value;if(t.length===1){i.value=`0${t}`}if(i.value){this.setInputValue(i)}};this.convertToTime=(i,t,s,e=null)=>{if(!r(i)&&!r(t)&&(this.isHHMMFormat()||!r(s))&&(!this.isSSSFormat()||e!==null&&!r(e))){const h=new Date;h.setHours(+i,+t,this.isHHMMFormat()?0:+s,0);if(this.isSSSFormat()&&e!==null){h.setMilliseconds(+e)}return h}else{return null}};this.setInputsInOrder=()=>{var i;this.inputsInOrder=[];const t=(i=this.el.shadowRoot)===null||i===void 0?void 0:i.querySelectorAll("input");if(t){t.forEach((i=>this.inputsInOrder.push(i)))}};this.updateInputValues=(i,t,s)=>{this.hourInputEl&&(this.hourInputEl.value=i);this.minuteInputEl&&(this.minuteInputEl.value=t);this.secondInputEl&&(this.secondInputEl.value=s)};this.removeAriaLabelledBy=()=>{var i;(i=this.inputCompContainerEl)===null||i===void 0?void 0:i.removeAttribute(this.ARIA_LABELLED_BY)};this.setAriaLabelledBy=()=>{var i,t,s,e;if(this.disabled&&((i=this.inputCompContainerEl)===null||i===void 0?void 0:i.getAttribute(this.ARIA_LABELLED_BY))){this.removeAriaLabelledBy();return}if(this.disabled){return}const h=(t=this.el.shadowRoot)===null||t===void 0?void 0:t.querySelector("label");const a=`${this.inputId}-label`;if(h!==null&&h!==undefined){h.id=a}const o=!r(this.validationStatus)||!r(this.invalidTimeText);const l=`${(s=h===null||h===void 0?void 0:h.id)!==null&&s!==void 0?s:""} ${this.screenReaderInfoId} ${n(this.el,this.inputId,this.helperText!==""&&this.helperText!==this.defaultHelperText,o)} ${this.selectedTime?this.selectedTimeInfoId:""} ${this.assistiveHintId}`;(e=this.inputCompContainerEl)===null||e===void 0?void 0:e.setAttribute(this.ARIA_LABELLED_BY,l)};this.getInputsInOrder=()=>{const i=this.timeFormat.split(/[:.]/);return i.map((i=>{switch(i){case"HH":return s("input",{class:"hour-input",id:"hour-input",ref:i=>this.hourInputEl=i,"aria-label":"hour",placeholder:"HH",disabled:this.disabled,"aria-required":`${this.required}`,inputmode:"number",pattern:"[0-9]*",onPaste:this.handlePaste,onKeyDown:i=>this.handleKeyDown(i,this.preventHourInput)});case"MM":return s("input",{id:"minute-input",class:"minute-input",ref:i=>this.minuteInputEl=i,"aria-label":"minute",placeholder:"MM",disabled:this.disabled,"aria-required":`${this.required}`,inputmode:"number",pattern:"[0-9]*",onPaste:this.handlePaste,onKeyDown:i=>this.handleKeyDown(i,this.preventMinuteInput)});case"SS":if(!this.isHHMMFormat()){return s("input",{id:"second-input",class:"second-input",ref:i=>this.secondInputEl=i,"aria-label":"second",placeholder:"SS",disabled:this.disabled,"aria-required":`${this.required}`,inputmode:"number",pattern:"[0-9]*",onPaste:this.handlePaste,onKeyDown:i=>this.handleKeyDown(i,this.preventSecondInput)})}break;case"SSS":if(this.isSSSFormat()){return s("input",{id:"millisecond-input",class:"millisecond-input",ref:i=>this.millisecondInputEl=i,"aria-label":"millisecond",placeholder:"SSS",disabled:this.disabled,"aria-required":`${this.required}`,inputmode:"number",pattern:"[0-9]*",onPaste:this.handlePaste,onKeyDown:i=>this.handleKeyDown(i,this.preventMillisecondInput)})}return null;default:return null}}))};this.getDescOfInputsOrder=()=>{if(this.isSSSFormat()){return"hour, minute, second, and millisecond"}return"hour, minute, and second"};this.getScreenReaderInfo=i=>{let t="";if(this.required){t+="required"}if(i===l.Error){t+=" invalid data"}return t===""?"":t+", "};this.notifyScreenReader=i=>{var t;const s=(t=this.el.shadowRoot)===null||t===void 0?void 0:t.querySelector("#live-region");if(s){s.textContent=`${i.value}, ${i.getAttribute(this.ARIA_LABEL)}`}};this.handlePaste=i=>{var t;i.preventDefault();const s=((t=i.clipboardData)===null||t===void 0?void 0:t.getData("Text"))||"";const e=this.isPastedStringTimeValid(s);this.setPastedValueAndValidation(e,s,i)};this.handleClearFocus=()=>{this.removeLabelledBy=true;this.clearButtonFocused=true;this.isTimeSetFromKeyboardEvent=true};this.handleClearBlur=i=>{this.clearButtonFocused=false;this.isTimeSetFromKeyboardEvent=true;const t=i.relatedTarget;if((t===null||t===void 0?void 0:t.id)==="clock-button"){this.removeLabelledBy=false;return}if(t===null||t===void 0?void 0:t.id.match(/(minute|second|millisecond)-input$/)){this.removeLabelledBy=false;return}this.removeLabelledBy=true};this.handleClockFocus=()=>{this.clockFocused=true};this.handleClockBlur=()=>{this.clockFocused=false};this.isPastedStringTimeValid=i=>{if(this.isHHMMFormat()){if(/^\d{2}:\d{2}$/.test(i)){return i}}else if(this.isSSSFormat()){if(/^\d{2}:\d{2}:\d{2}\.\d{1,3}$/.test(i)){return i}if(/^\d{2}:\d{2}:\d{2}\.\d{1,3}Z$/.test(i)){return i.replace("Z","")}const t=i.match(/T(\d{2}:\d{2}:\d{2}\.\d{1,3})/);if(t){return t[1]}}else{if(/^\d{2}:\d{2}:\d{2}$/.test(i)){return i}if(/^\d{2}:\d{2}:\d{2}Z$/.test(i)){return i.replace("Z","")}const t=i.match(/T(\d{2}:\d{2}:\d{2})/);if(t){return t[1]}}return false};this.setPastedValueAndValidation=(i,t,s)=>{if(i){const t=i.split(/[:.]/);this.inputsInOrder.forEach(((i,s)=>{var e,h,r,a;i.classList.add(this.FIT_TO_VALUE);let n=t[s]||"";if(i===this.millisecondInputEl&&this.isSSSFormat()){n=n.slice(0,3)}else{n=n.slice(0,2)}if(i===this.hourInputEl){let i;if(this.timePeriod==="12"&&this.showAmPmToggle){if(parseInt(n)>12){n=(parseInt(n)-12).toString().padStart(2,"0");if(parseInt(n)>12){return}else{this.period="PM";(e=this.periodToggleEl)===null||e===void 0?void 0:e.querySelectorAll(this.TOGGLE_BUTTON_SELECTOR).forEach((t=>{const s=t;if(s.label==="PM"){i=s}else{s.checked=false}}));if(i){(h=this.periodToggleEl)===null||h===void 0?void 0:h.setActiveToggle(i);i.checked=true}this.invalidTimeText="";this.validationStatus=""}}else{if(parseInt(n)===0){n="12"}this.period="AM";(r=this.periodToggleEl)===null||r===void 0?void 0:r.querySelectorAll(this.TOGGLE_BUTTON_SELECTOR).forEach((t=>{const s=t;if(s.label==="AM"){i=s}else{s.checked=false}}));if(i){(a=this.periodToggleEl)===null||a===void 0?void 0:a.setActiveToggle(i);i.checked=true}this.invalidTimeText="";this.validationStatus=""}}}i.value=n;this.setInputValue(i);this.autocompleteInput(i)}));if(this.isHHMMFormat()&&this.second!==""&&this.millisecond!==""){this.second="";this.millisecond=""}}else{const i=t.trim();if((i.length===1||i.length===2)&&o(i)){this.setInputPasteValue(s.target,i);this.setInputValue(s.target)}else{this.invalidTimeText=`Please paste a valid ${s.target.getAttribute(this.ARIA_LABEL)}`;this.validationStatus=l.Error}}};this.handleAMPM=i=>{var t;this.period=i.label;(t=this.periodToggleEl)===null||t===void 0?void 0:t.setActiveToggle(i)}}watchInputHandler(){if(this.emitTimePartChange&&!this.externalSetTime&&!this.clearInput&&!(this.hour&&this.minute&&this.second&&(this.isSSSFormat()?this.millisecond:true))&&this.selectedTime===null){this.emitIcTimeChange(this.selectedTime)}}watchDisabledHandler(){c(this.disabled,this.el)}watchHelperTextHandler(i=false){if(r(this.helperText)||i===true)this.helperText=this.defaultHelperText}watchMaxHandler(){this.maxTime=a(this.max).date}watchMinHandler(){this.minTime=a(this.min).date}watchRequiredHandler(){var i,t;const s=(i=this.el.shadowRoot)===null||i===void 0?void 0:i.querySelector("label");if(this.required){const i=document.createElement("span");i.setAttribute("id","asterisk-span");i.setAttribute("aria-hidden","true");i.textContent=" *";s===null||s===void 0?void 0:s.appendChild(i)}else{const i=(t=this.el.shadowRoot)===null||t===void 0?void 0:t.querySelector("#asterisk-span");if(i){i.remove()}}}watchTimeFormatHandler(){const i=this.defaultHelperText;this.defaultHelperText=`Use format ${this.timeFormat}`;this.watchHelperTextHandler(this.helperText===i)}disconnectedCallback(){d(this.el,this.handleFormReset)}componentWillLoad(){this.watchTimeFormatHandler();this.watchHelperTextHandler();if(this.value){this.externalSetTime=true;this.setTime(this.value)}this.screenReaderInfoId=`${this.inputId}-screen-reader-info`;this.assistiveHintId=`${this.inputId}-assistive-hint`;this.selectedTimeInfoId=`${this.inputId}-selected-time-info`;u(this.el,this.handleFormReset);c(this.disabled,this.el)}componentDidLoad(){this.setInputsInOrder();f([{prop:this.label,propName:"label"}],"Time Input");if(this.value){this.updateInputValues(this.hour,this.minute,this.second);this.inputsInOrder.forEach((i=>{i.classList.add(this.FIT_TO_VALUE)}))}this.setAriaInvalid(this.isValidHour,this.isValidMinute,this.isValidSecond,this.isValidMillisecond);if(this.value){this.notifyScreenReaderSelectedTime()}this.inputsInOrder.forEach((i=>{i.addEventListener("input",this.handleInput);i.addEventListener("focus",this.handleFocus);i.addEventListener("blur",this.handleBlur)}));this.watchRequiredHandler()}componentWillUpdate(){if(!this.isTimeSetFromKeyboardEvent)this.setTime(this.value);this.setAriaInvalid(this.isValidHour,this.isValidMinute,this.isValidSecond,this.isValidMillisecond);this.handleTimeChange(false);this.isTimeSetFromKeyboardEvent=false}componentDidRender(){if(this.removeLabelledBy){this.removeAriaLabelledBy();return}this.setAriaLabelledBy()}async getTime(){return this.selectedTime}async triggerIcTimeChange(i){this.externalSetTime=true;this.setTime(i);this.emitIcTimeChange(i);this.externalSetTime=false}render(){const{inputId:i,label:t,disabled:h,helperText:a,hideHelperText:n,hideLabel:o,showClearButton:c,showClockButton:d,size:u,theme:f,validationAriaLive:v}=this;const g=!r(this.validationStatus);const k=g?this.validationStatus:!r(this.invalidTimeText)?l.Error:"";const w=`Type or use the up and down arrow keys to change the values for the ${this.getDescOfInputsOrder()}.`;p(true,this.el,this.name,this.convertToTime(this.hour,this.minute,this.second),this.disabled);const y=!!(c&&!(r(this.hour)&&r(this.minute)&&r(this.second)));if(this.showAmPmToggle&&this.timePeriod!=="12"){this.showAmPmToggle=false}return s(e,{key:"a9e366c7a8ed345fdbe3293191c0cab3e83341cb",class:{[`ic-theme-${f}`]:f!=="inherit",[`ic-time-input-disabled`]:h,[`ic-time-input-${u}`]:true},onBlur:this.handleHostBlur,onFocus:this.handleHostFocus},s("ic-input-container",{key:"32e07bf234275ab82cc4fb5cf52477d98b20ee56",disabled:h},!(o&&n)&&s("ic-input-label",{key:"76167c9c821ea70383f853f6247c8c33364063e9",for:i,label:t,hideLabel:o,helperText:!n?a:"",disabled:h},s("slot",{key:"1d283d444c18e0395297d6bda0a2eff80a7ecbc7",name:"helper-text",slot:"helper-text"})),s("span",{key:"8793da4aa61522afb9e4fb4c6fc3245b64afb111",id:this.screenReaderInfoId,class:"sr-only","aria-hidden":"true"},this.getScreenReaderInfo(k),o&&`${t}\n`,n&&`${a}\n`,`${this.defaultHelperText}.`),s("span",{key:"a8ec036ff5eb8b030f843527ecf437504db61e43",id:this.assistiveHintId,class:"sr-only","aria-hidden":"true"},w),s("span",{key:"b6a584ada9f2bd59350a528347df54faab176d90",id:"live-region","aria-live":"assertive",class:"sr-only"}),s("div",{key:"22fdb36105184f0ac8bcbdcdb5a001ca75f24072",class:{"with-am-pm-toggle":this.showAmPmToggle===true}},s("ic-input-component-container",{key:"b14252270fdada4256b78c6ae2d3a086650a2672",id:i,ref:i=>this.inputCompContainerEl=i,disabled:h,validationStatus:k,size:u,role:"group",class:{[`ic-theme-${f}`]:f!=="inherit"}},s("div",{key:"fba1548161f7bae290edce7cb4e11ced2aa6f306",class:"input-container"},s("div",{key:"edb256e2b99f6c2835f4044b5b8940e3a4d5548c",class:"time-inputs"},[this.getInputsInOrder()[0],":",this.getInputsInOrder()[1],!this.isHHMMFormat()?[":",this.getInputsInOrder()[2]]:null,this.isSSSFormat()?[".",this.getInputsInOrder()[3]]:null]),s("div",{key:"7ce636fe859c10ac1bec25a3800c0c457ff66db2",class:"action-buttons"},c&&s("ic-button",{key:"52a844605b6d6feba6ed75dbdc8f13985764d77f",id:"clear-button","aria-label":"Clear input",class:{["clear-button"]:true,["hidden"]:r(this.hour)&&r(this.minute)&&r(this.second)},disabled:this.disabled,innerHTML:b,onClick:this.handleClear,onFocus:this.handleClearFocus,onBlur:this.handleClearBlur,variant:"icon-tertiary",theme:this.clearButtonFocused?"light":"dark",size:u}),d&&s("div",{key:"5d2973cc6faccd02ca824546d8b685abcb7e884b",class:"show-clock-button-wrapper"},s("div",{key:"7dd67432231339d85e15d63d15f03776f607dbce",class:{divider:y,[u]:true}}),s("ic-button",{key:"f1f6cdb97c9144a2d0d84431b3586be10c06dc47",id:"clock-button","aria-label":"Display clock","aria-haspopup":"dialog",class:"clock-button",disabled:this.disabled,innerHTML:m,variant:"icon-tertiary",size:u,onFocus:this.handleClockFocus,onBlur:this.handleClockBlur,theme:this.clockFocused?"light":"dark"}))))),this.showAmPmToggle&&s("ic-toggle-button-group",{key:"cd635525ce0feb57ca71184c7bfe37bf31558322","select-type":"single","accessible-label":"AM PM Toggle",ref:i=>this.periodToggleEl=i,disabled:h,class:"am-pm-toggle","select-method":"auto",onIcChange:i=>this.handleAMPM(i.detail.selectedOption),onKeyDown:i=>{if(i.key==="Tab"&&i.shiftKey){i.preventDefault();if(this.inputsInOrder&&this.inputsInOrder.length>0){const i=this.inputsInOrder[this.inputsInOrder.length-1];i===null||i===void 0?void 0:i.focus()}}}},s("ic-toggle-button",{key:"7074ef3bed173ac1d7e2642f8d090af56eeca074",label:"AM",disabled:h,checked:true}),s("ic-toggle-button",{key:"157f7a6a165ded075516f8a6684c020c5cd1a0d5",label:"PM",disabled:h}))),s("span",{key:"6360d4f8c1aa62a2274ade9ffc4c76ea405f7189",id:this.selectedTimeInfoId,class:"sr-only","aria-live":"polite"},s("span",{key:"d223325cc0be5c0666175259c892806c3d58840b",ref:i=>this.selectedTimeInfoEl=i,role:"status"})),s("ic-input-validation",{key:"94b686791ab2684b955551b48e23b74fb3a8dcba",status:k,message:g?this.validationText:this.invalidTimeText,for:i,ariaLiveMode:v})))}static get delegatesFocus(){return true}get el(){return h(this)}static get watchers(){return{hour:["watchInputHandler"],minute:["watchInputHandler"],second:["watchInputHandler"],millisecond:["watchInputHandler"],period:["watchInputHandler"],disabled:["watchDisabledHandler"],helperText:["watchHelperTextHandler"],max:["watchMaxHandler"],min:["watchMinHandler"],required:["watchRequiredHandler"],timeFormat:["watchTimeFormatHandler"]}}};w.style=g;export{w as ic_time_input};
|
|
2
|
+
//# sourceMappingURL=p-7c4d6b13.entry.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["icTimeInputCss","IcTimeInputStyle0","inputIds","TimeInput","constructor","hostRef","this","DEFAULT_TIME_FORMAT","TOGGLE_BUTTON_SELECTOR","ARIA_INVALID","ARIA_LABEL","ARIA_LABELLED_BY","EVENT_OBJECT_STRING","FIT_TO_VALUE","initialValue","value","inputsInOrder","isValidHour","isValidMinute","isValidSecond","isValidMillisecond","isValidTime","isTimeSetFromKeyboardEvent","previousSelectedTime","selectedTime","externalSetTime","clearInput","maxTime","minTime","previousHour","previousMinute","previousSecond","previousMillisecond","previousPeriod","clockFocused","clearButtonFocused","removeLabelledBy","hour","minute","second","millisecond","period","isSSSFormat","timeFormat","disabled","disableTimes","emitTimePartChange","hideHelperText","hideLabel","inputId","invalidTimeMessage","max","min","name","required","showAmPmToggle","showClearButton","showClockButton","size","theme","timePeriod","validationAriaLive","validationStatus","validationText","setInputPasteValue","input","pastedValue","inputEl","classList","add","isHHMMFormat","isKeyboardOrEvent","event","Object","prototype","toString","call","setTimeValidity","minHour","maxHour","isEmptyString","setInputValue","clear","newValue","hourInputEl","minuteInputEl","secondInputEl","millisecondInputEl","setValidationMessage","setPreventInput","isPrevented","preventHourInput","preventMinuteInput","preventSecondInput","preventMillisecondInput","parseTimeHelper","date","outOfBoundsMsg","isDisabledTime","convertToTime","inputHour","selectedHour","getHours","selectedHour12","getMinutes","getSeconds","getMilliseconds","Array","isArray","length","some","t","start","end","parsed","parts","parsedHour","convertTo24Hour","formatTime","forEach","setAttribute","removeAttribute","invalidTimeText","time","hh","padStart","mm","ss","sss","handleInput","inputEvent","target","setFitToValueStyling","moveToNextInput","notifyScreenReader","inputType","preventAutoFormatting","handleKeyDown","isInputPrevented","navKeys","eventKey","_a","key","toLowerCase","test","ctrlKey","metaKey","preventDefault","regex","moveToPreviousInput","handleUpDownArrowKeyPress","preventInput","handleFocus","select","handleBlur","autocompleteInput","minValue","maxValue","val","handleTimeChange","force","setValueAndEmitChange","notifyScreenReaderSelectedTime","selectedTimeInfoEl","textContent","updateInputValues","emitIcTimeChange","date24hours","parseInt","allSelected","Date","setHours","setMinutes","setSeconds","setMilliseconds","allTimePartsEmpty","onlyPeriodChanged","icTimeChange","emit","timeObject","setTime","undefined","remove","zuluMatch","match","split","setAriaInvalid","validHour","validMinute","validSecond","validMillisecond","_b","_c","_d","handleClear","periodToggleEl","querySelectorAll","btn","toggleBtn","label","checked","focus","hours","hoursStr","minutesStr","secondsStr","msStr","handleHostBlur","icBlur","handleHostFocus","el","shadowRoot","activeElement","id","icFocus","handleFormReset","selectedString","substring","selectionStart","selectionEnd","currentInput","findIndex","inputValue","d","setInputsInOrder","shadowInputs","push","removeAriaLabelledBy","inputCompContainerEl","setAriaLabelledBy","getAttribute","labelEl","querySelector","labelId","hasValidation","labelledBy","screenReaderInfoId","getInputDescribedByText","helperText","defaultHelperText","selectedTimeInfoId","assistiveHintId","getInputsInOrder","timeParts","map","part","h","class","ref","placeholder","inputmode","pattern","onPaste","handlePaste","onKeyDown","getDescOfInputsOrder","getScreenReaderInfo","inputDescriptors","IcInformationStatus","Error","liveRegion","clipboardData","getData","isPastedStringTimeValid","setPastedValueAndValidation","handleClearFocus","handleClearBlur","ev","relatedTarget","handleClockFocus","handleClockBlur","replace","isoMatch","index","timeValue","slice","activeToggle","setActiveToggle","pasted","trim","isNumeric","handleAMPM","selectedOption","watchInputHandler","watchDisabledHandler","removeDisabledFalse","watchHelperTextHandler","useDefault","watchMaxHandler","watchMinHandler","watchRequiredHandler","asteriskSpan","document","createElement","appendChild","watchTimeFormatHandler","oldDefaultHelperText","disconnectedCallback","removeFormResetListener","componentWillLoad","addFormResetListener","componentDidLoad","onComponentRequiredPropUndefined","prop","propName","addEventListener","componentWillUpdate","componentDidRender","getTime","triggerIcTimeChange","render","hasCustomValidation","assistiveHint","renderHiddenInput","showDivider","Host","onBlur","onFocus","for","slot","role","innerHTML","Clear","onClick","variant","divider","Clock","onIcChange","e","detail","shiftKey","lastInput","status","message","ariaLiveMode"],"sources":["src/components/ic-time-input/ic-time-input.css?tag=ic-time-input&encapsulation=shadow","src/components/ic-time-input/ic-time-input.tsx"],"sourcesContent":["@import \"../../global/normalize.css\";\n\n:host {\n --ic-input-label-helpertext-padding: var(--ic-space-xs);\n --input-bg-color: var(--ic-time-picker-field-background);\n --ic-input-label-text-color: var(--ic-time-picker-label);\n --ic-input-label-helper-text-color: var(--ic-time-picker-subtitle);\n --border-color: var(--ic-time-picker-time-field-border-default);\n --border-color-disabled: var(--ic-time-picker-border-disabled);\n --border-color-hover: var(--ic-time-picker-time-field-border-hover);\n --border-color-pressed: var(--ic-time-picker-time-field-border-pressed);\n --border-error-color: var(--ic-time-picker-border-error);\n --border-error-color-hover: var(--ic-time-picker-border-error-hover);\n --border-error-color-pressed: var(--ic-time-picker-border-error-pressed);\n --border-success-color: var(--ic-time-picker-border-success);\n --border-success-color-hover: var(--ic-time-picker-border-success-hover);\n --border-success-color-pressed: var(--ic-time-picker-border-success-pressed);\n --border-warning-color: var(--ic-time-picker-border-warning);\n --border-warning-color-hover: var(--ic-time-picker-border-warning-hover);\n --border-warning-color-pressed: var(--ic-time-picker-border-warning-pressed);\n --input-width: calc((4 * var(--ic-space-xxl)) + var(--ic-space-xxs));\n}\n\n:host(.ic-time-input-disabled) {\n --ic-input-label-text-color: var(--ic-time-picker-label-disabled);\n --ic-input-label-helper-text-color: var(--ic-time-picker-subtitle-disabled);\n}\n\n:host(.ic-time-input-disabled) input {\n color: var(--ic-time-picker-time-text-disabled);\n}\n\n:host(.ic-time-input-large) {\n --input-width: calc(\n (4 * var(--ic-space-xxl)) + var(--ic-space-xxs) + var(--ic-space-lg)\n );\n}\n\n:host(.ic-time-input-small) {\n --input-width: calc(\n (3 * var(--ic-space-xxl)) + var(--ic-space-xxs) + var(--ic-space-xl)\n );\n}\n\n.with-am-pm-toggle {\n display: flex;\n flex-direction: row;\n}\n\n.am-pm-toggle ::part(button) {\n min-width: fit-content;\n}\n\n.am-pm-toggle {\n margin-left: var(--ic-space-xs);\n}\n\ninput {\n border: 0;\n height: 100%;\n padding: 0;\n outline: none;\n background: none;\n -moz-appearance: textfield;\n appearance: textfield;\n color: var(--ic-time-picker-time-text-default);\n caret-color: var(--ic-time-picker-typing-cursor);\n}\n\ninput::-webkit-outer-spin-button,\ninput::-webkit-inner-spin-button {\n -webkit-appearance: none;\n}\n\ninput:-webkit-autofill {\n box-shadow: 0 0 0 var(--ic-space-sm) var(--ic-color-background-primary) inset;\n -webkit-text-fill-color: var(--ic-time-picker-time-text-default) !important;\n}\n\ninput::placeholder {\n color: var(--ic-time-picker-field-placeholder-text);\n}\n\nic-input-component-container {\n cursor: text;\n}\n\nic-input-component-container .focus-indicator {\n padding: var(--ic-space-xxxs) var(--ic-space-xs);\n align-items: center;\n}\n\n.time-inputs {\n color: var(--ic-time-picker-field-placeholder-text);\n}\n\n.hour-input {\n width: 1.438rem;\n}\n\n.minute-input {\n width: 1.813rem;\n}\n\n.second-input {\n width: 1.18rem;\n}\n\n.millisecond-input,\n.millisecond-input.fit-to-value {\n width: 1.75rem;\n}\n\n.fit-to-value {\n width: 1.25rem;\n}\n\n.sr-only {\n position: absolute;\n left: -9999px;\n}\n\n.input-container {\n width: 100%;\n display: flex;\n justify-content: space-between;\n align-items: center;\n position: relative;\n}\n\n.action-buttons {\n display: flex;\n align-items: center;\n}\n\n.show-clock-button-wrapper {\n display: flex;\n justify-content: center;\n align-items: center;\n}\n\n.clear-button,\n.clock-button {\n border-radius: var(--ic-border-radius);\n transition: box-shadow var(--ic-easing-transition),\n border-radius var(--ic-easing-transition);\n margin: 0;\n}\n\n.clear-button.hidden {\n display: none;\n}\n\n.clear-button:focus,\n.clock-button:focus,\n.clear-button:active,\n.clock-button:active {\n background-color: var(--ic-color-focus-inner) !important;\n box-shadow: inset 0 0 0 0.125rem var(--ic-color-focus-outer) !important;\n border-radius: 0.25rem;\n}\n\n.clock-button:focus,\n.clock-button:active {\n --ic-button-tertiary-text-active: var(--ic-atoms-input-clear-button-focus);\n --ic-button-tertiary-text-hover-active: var(\n --ic-atoms-input-clear-button-focus\n );\n --ic-button-tertiary-text-pressed-active: var(\n --ic-atoms-input-clear-button-focus\n );\n}\n\n.clear-button:focus,\n.clock-button:focus,\n.clear-button:active *,\n.clock-button:active * {\n fill: var(--ic-atoms-input-clear-button-focus);\n}\n\n.clear-button svg {\n color: var(--ic-time-picker-clear-icon);\n}\n\n.clear-button:focus svg {\n color: var(--ic-atoms-input-clear-button-focus);\n}\n\n.divider {\n margin: 0 var(--ic-space-xxs);\n width: var(--ic-space-1px);\n background-color: var(--ic-atoms-input-divider);\n border-radius: var(--ic-space-1px);\n}\n\n.divider.small {\n height: var(--ic-space-md);\n}\n\n.divider.medium {\n height: calc(var(--ic-space-sm) + var(--ic-space-xs));\n}\n\n.divider.large {\n height: var(--ic-space-lg);\n}\n\nic-input-validation {\n --ic-input-validation-status-text-color: var(--ic-time-picker-status-text);\n --ic-input-validation-error: var(--ic-time-picker-icon-error);\n --ic-input-validation-warning-icon-color: var(--ic-time-picker-icon-warning);\n --ic-input-validation-success-icon-color: var(--ic-time-picker-icon-success);\n}\n\n@media (forced-colors: active) {\n .clear-button svg {\n color: currentcolor;\n }\n}\n","/* eslint-disable react/jsx-no-bind */\nimport {\n Component,\n Element,\n Event,\n EventEmitter,\n h,\n Prop,\n State,\n Host,\n Method,\n Watch,\n} from \"@stencil/core\";\nimport {\n IcAriaLive,\n IcDateValueFormat,\n IcDisableTimeSelection,\n IcInformationStatus,\n IcInformationStatusOrEmpty,\n IcSizes,\n IcThemeMode,\n IcTimeFormat,\n} from \"../../utils/types\";\nimport {\n isEmptyString,\n isNumeric,\n addFormResetListener,\n getInputDescribedByText,\n onComponentRequiredPropUndefined,\n removeDisabledFalse,\n removeFormResetListener,\n renderHiddenInput,\n parseTimeHelper,\n} from \"../../utils/helpers\";\nimport Clear from \"../../assets/clear-icon.svg\";\nimport Clock from \"../../assets/clock.svg\";\n\nlet inputIds = 0;\n\n/**\n * @slot helper-text - Content is set as the helper text for the time input.\n */\n@Component({\n tag: \"ic-time-input\",\n styleUrl: \"ic-time-input.css\",\n shadow: {\n delegatesFocus: true,\n },\n})\nexport class TimeInput {\n private DEFAULT_TIME_FORMAT: IcTimeFormat = \"HH:MM:SS\";\n private TOGGLE_BUTTON_SELECTOR = \"ic-toggle-button\";\n private ARIA_INVALID = \"aria-invalid\";\n private ARIA_LABEL = \"aria-label\";\n private ARIA_LABELLED_BY = \"aria-labelledby\";\n private assistiveHintId: string;\n private hourInputEl?: HTMLInputElement;\n private minuteInputEl?: HTMLInputElement;\n private secondInputEl?: HTMLInputElement;\n private millisecondInputEl?: HTMLInputElement;\n private periodToggleEl?: HTMLIcToggleButtonGroupElement;\n private defaultHelperText: string;\n private EVENT_OBJECT_STRING = \"[object Event]\";\n private FIT_TO_VALUE = \"fit-to-value\";\n private initialValue = this.value;\n private inputCompContainerEl: HTMLIcInputComponentContainerElement;\n private inputsInOrder: HTMLInputElement[] = [];\n private isValidHour: boolean = true;\n private isValidMinute: boolean = true;\n private isValidSecond: boolean = true;\n private isValidMillisecond: boolean = true;\n private isValidTime: boolean = true;\n private isTimeSetFromKeyboardEvent: boolean = false;\n private preventAutoFormatting: boolean;\n private preventHourInput: boolean;\n private preventMinuteInput: boolean;\n private preventSecondInput: boolean;\n private preventMillisecondInput: boolean;\n private previousSelectedTime: Date | null = null;\n private selectedTime: Date | null = null;\n private selectedTimeInfoEl?: HTMLSpanElement;\n private screenReaderInfoId: string;\n private selectedTimeInfoId: string;\n private externalSetTime: boolean = false;\n private clearInput: boolean = false;\n private maxTime: Date | null = null;\n private minTime: Date | null = null;\n private previousHour: string = \"\";\n private previousMinute: string = \"\";\n private previousSecond: string = \"\";\n private previousMillisecond: string = \"\";\n private previousPeriod: string = \"AM\";\n\n @Element() el: HTMLIcTimeInputElement;\n\n @State() invalidTimeText: string;\n @State() clockFocused: boolean = false;\n @State() clearButtonFocused: boolean = false;\n @State() removeLabelledBy: boolean = false;\n @State() hour: string = \"\";\n @State() minute: string = \"\";\n @State() second: string = \"\";\n @State() millisecond: string = \"\";\n @State() period: string = \"AM\";\n\n @Watch(\"hour\")\n @Watch(\"minute\")\n @Watch(\"second\")\n @Watch(\"millisecond\")\n @Watch(\"period\")\n watchInputHandler(): void {\n if (\n this.emitTimePartChange &&\n !this.externalSetTime &&\n !this.clearInput &&\n !(\n this.hour &&\n this.minute &&\n this.second &&\n (this.isSSSFormat() ? this.millisecond : true)\n ) &&\n this.selectedTime === null\n ) {\n this.emitIcTimeChange(this.selectedTime);\n }\n }\n private isSSSFormat = () => this.timeFormat === \"HH:MM:SS.SSS\";\n\n /**\n * If `true`, the disabled state will be set.\n */\n @Prop() disabled: boolean = false;\n @Watch(\"disabled\")\n watchDisabledHandler(): void {\n removeDisabledFalse(this.disabled, this.el);\n }\n\n /**\n * An array of objects with start and end values that will be disabled in the time input. The times can be in any format supported as `timeFormat`, in ISO 8601 time string format (`HH:MM:SS`) or as a JavaScript `Date` object.\n */\n @Prop() disableTimes: IcDisableTimeSelection[] = [];\n\n /**\n * If `true`, every individual input field completed will emit an icTimeChange event.\n */\n @Prop() emitTimePartChange?: boolean = false;\n\n /**\n * The helper text that will be displayed for additional field guidance. This will default to the text \"Use format\" along with the `timeFormat` value.\n */\n @Prop({ mutable: true }) helperText: string | null;\n @Watch(\"helperText\")\n watchHelperTextHandler(useDefault = false): void {\n if (isEmptyString(this.helperText) || useDefault === true)\n this.helperText = this.defaultHelperText;\n }\n\n /**\n * If `true`, the helper text will be visually hidden, but still read out by screenreaders.\n */\n @Prop() hideHelperText: boolean = false;\n\n /**\n * If `true`, the label will be visually hidden, but will still be read out by screen readers.\n */\n @Prop() hideLabel?: boolean = false;\n\n /**\n * The ID for the input.\n */\n @Prop() inputId: string = `ic-time-input-${inputIds++}`;\n\n /**\n * The text to display as the validation message when an invalid time is entered.\n */\n @Prop() invalidTimeMessage: string = \"Please enter a valid time.\";\n\n /**\n * The label for the time input.\n */\n @Prop() label!: string;\n\n /**\n * The latest time that will be allowed. The value can be in any format supported as `timeFormat`, in ISO 8601 time string format (`HH:MM:SS`) or as a JavaScript `Date` object.\n */\n @Prop() max: string | Date = \"\";\n @Watch(\"max\")\n watchMaxHandler(): void {\n this.maxTime = parseTimeHelper(this.max).date;\n }\n\n /**\n * The earliest time that will be allowed. The value can be in any format supported as `timeFormat`, in ISO 8601 time string format (`HH:MM:SS`) or as a JavaScript `Date` object.\n */\n @Prop() min: string | Date = \"\";\n @Watch(\"min\")\n watchMinHandler(): void {\n this.minTime = parseTimeHelper(this.min).date;\n }\n\n /**\n * The name of the control, which is submitted with the form data.\n */\n @Prop() name: string = this.inputId;\n\n /**\n * If `true`, the input will require a value.\n */\n @Prop() required: boolean = false;\n @Watch(\"required\")\n watchRequiredHandler(): void {\n const labelEl = this.el.shadowRoot?.querySelector(\"label\");\n if (this.required) {\n const asteriskSpan = document.createElement(\"span\");\n asteriskSpan.setAttribute(\"id\", \"asterisk-span\");\n asteriskSpan.setAttribute(\"aria-hidden\", \"true\");\n asteriskSpan.textContent = \" *\";\n labelEl?.appendChild(asteriskSpan);\n } else {\n const asteriskSpan = this.el.shadowRoot?.querySelector(\"#asterisk-span\");\n if (asteriskSpan) {\n asteriskSpan.remove();\n }\n }\n }\n\n /**\n * If `true`, the time input will show an AM/PM toggle when in 12-hour time period.\n */\n @Prop({ mutable: true }) showAmPmToggle?: boolean = false;\n\n /**\n * If `true`, a button which clears the time input when clicked will be displayed.\n */\n @Prop() showClearButton?: boolean = true;\n\n /**\n * @internal If `true`, a button which displays the clock view when clicked will be displayed.\n */\n @Prop() showClockButton?: boolean = false;\n\n /**\n * The size of the time input to be displayed.\n */\n @Prop() size: IcSizes = \"medium\";\n\n /**\n * Sets the time picker to the dark or light theme colors. \"inherit\" will set the color based on the system settings or ic-theme component.\n */\n @Prop() theme?: IcThemeMode = \"inherit\";\n\n /**\n * The format in which the time will be displayed.\n */\n @Prop() timeFormat: IcTimeFormat = this.DEFAULT_TIME_FORMAT;\n @Watch(\"timeFormat\")\n watchTimeFormatHandler(): void {\n const oldDefaultHelperText = this.defaultHelperText;\n this.defaultHelperText = `Use format ${this.timeFormat}`;\n this.watchHelperTextHandler(this.helperText === oldDefaultHelperText);\n }\n\n /**\n * The time period format: \"12\" for 12-hour, \"24\" for 24-hour. Defaults to \"24\".\n */\n @Prop() timePeriod: \"12\" | \"24\" = \"24\";\n\n /**\n * The value of the time input. The value can be in any format supported as `timeFormat`, in ISO 8601 time string format (`HH:MM:SS`) or as a JavaScript `Date` object.\n */\n @Prop({ mutable: true }) value?: IcDateValueFormat = \"\";\n\n /**\n * The value of the `aria-live` attribute on the validation message.\n */\n @Prop() validationAriaLive: IcAriaLive = \"polite\";\n\n /**\n * The validation status - e.g. 'error' | 'warning' | 'success'. This will override the built-in time validation.\n */\n @Prop({ mutable: true }) validationStatus: IcInformationStatusOrEmpty = \"\";\n\n /**\n * The text to display as the validation message. This will override the built-in time validation.\n */\n @Prop() validationText?: string = \"\";\n\n /**\n * @internal Emitted when the clock is opened.\n */\n @Event() clockButtonClicked: EventEmitter<{ value: Date | null }>;\n\n /**\n * Emitted when the input loses focus.\n */\n @Event() icBlur: EventEmitter<{ value: Date | null }>;\n\n /**\n * Emitted when the value has changed.\n */\n @Event() icTimeChange: EventEmitter<{\n value: Date | null;\n timeObject: {\n hour: string | null;\n minute: string | null;\n second: string | null;\n millisecond: string | null;\n period: string | null;\n };\n }>;\n\n /**\n * Emitted when the input gains focus.\n */\n @Event() icFocus: EventEmitter<{ value: Date | null }>;\n\n disconnectedCallback(): void {\n removeFormResetListener(this.el, this.handleFormReset);\n }\n\n componentWillLoad(): void {\n this.watchTimeFormatHandler();\n this.watchHelperTextHandler();\n if (this.value) {\n this.externalSetTime = true;\n this.setTime(this.value);\n }\n this.screenReaderInfoId = `${this.inputId}-screen-reader-info`;\n this.assistiveHintId = `${this.inputId}-assistive-hint`;\n this.selectedTimeInfoId = `${this.inputId}-selected-time-info`;\n addFormResetListener(this.el, this.handleFormReset);\n removeDisabledFalse(this.disabled, this.el);\n }\n\n componentDidLoad(): void {\n this.setInputsInOrder();\n onComponentRequiredPropUndefined(\n [{ prop: this.label, propName: \"label\" }],\n \"Time Input\"\n );\n if (this.value) {\n this.updateInputValues(this.hour, this.minute, this.second);\n this.inputsInOrder.forEach((input) => {\n input.classList.add(this.FIT_TO_VALUE);\n });\n }\n this.setAriaInvalid(\n this.isValidHour,\n this.isValidMinute,\n this.isValidSecond,\n this.isValidMillisecond\n );\n if (this.value) {\n this.notifyScreenReaderSelectedTime();\n }\n this.inputsInOrder.forEach((input) => {\n input.addEventListener(\"input\", this.handleInput);\n input.addEventListener(\"focus\", this.handleFocus);\n input.addEventListener(\"blur\", this.handleBlur);\n });\n this.watchRequiredHandler();\n }\n\n componentWillUpdate(): void {\n if (!this.isTimeSetFromKeyboardEvent) this.setTime(this.value);\n this.setAriaInvalid(\n this.isValidHour,\n this.isValidMinute,\n this.isValidSecond,\n this.isValidMillisecond\n );\n this.handleTimeChange(false);\n this.isTimeSetFromKeyboardEvent = false;\n }\n\n componentDidRender(): void {\n if (this.removeLabelledBy) {\n this.removeAriaLabelledBy();\n return;\n }\n this.setAriaLabelledBy();\n }\n\n /**\n * Returns the value as a Date object\n * @returns Date\n */\n @Method()\n async getTime(): Promise<Date | null> {\n return this.selectedTime;\n }\n\n /**\n * @internal Used to enable other components to invoke an icTimeChange event from the input.\n */\n @Method()\n async triggerIcTimeChange(t: Date | null): Promise<void> {\n this.externalSetTime = true;\n this.setTime(t);\n this.emitIcTimeChange(t);\n this.externalSetTime = false;\n }\n\n private setInputPasteValue = (\n input: EventTarget | null,\n pastedValue: string\n ) => {\n if (input) {\n const inputEl = input as HTMLInputElement;\n inputEl.value = pastedValue;\n inputEl.classList.add(this.FIT_TO_VALUE);\n }\n };\n\n private isHHMMFormat = () => this.timeFormat === \"HH:MM\";\n\n private isKeyboardOrEvent = (event: Event) => {\n return (\n Object.prototype.toString.call(event) === this.EVENT_OBJECT_STRING ||\n Object.prototype.toString.call(event) === \"[object KeyboardEvent]\"\n );\n };\n\n private setTimeValidity = () => {\n const minHour = 0;\n const maxHour = this.timePeriod === \"12\" ? 12 : 23;\n if (!isEmptyString(this.hour)) {\n this.isValidHour = +this.hour >= minHour && +this.hour <= maxHour;\n } else {\n this.isValidHour = true;\n }\n if (!isEmptyString(this.minute)) {\n this.isValidMinute = +this.minute >= 0 && +this.minute <= 59;\n } else {\n this.isValidMinute = true;\n }\n if (!this.isHHMMFormat()) {\n if (!isEmptyString(this.second)) {\n this.isValidSecond = +this.second >= 0 && +this.second <= 59;\n } else {\n this.isValidSecond = true;\n }\n if (this.isSSSFormat()) {\n if (!isEmptyString(this.millisecond)) {\n this.isValidMillisecond =\n +this.millisecond >= 0 && +this.millisecond <= 999;\n } else {\n this.isValidMillisecond = true;\n }\n } else {\n this.isValidMillisecond = true;\n }\n } else {\n this.isValidSecond = true;\n this.isValidMillisecond = true;\n }\n };\n\n private setInputValue = (input: HTMLInputElement, clear = false) => {\n const newValue = clear ? \"\" : input.value;\n if (input === this.hourInputEl) {\n this.hour = newValue;\n } else if (input === this.minuteInputEl) {\n this.minute = newValue;\n } else if (input === this.secondInputEl && !this.isHHMMFormat()) {\n this.second = newValue;\n } else if (this.isSSSFormat() && input === this.millisecondInputEl) {\n this.millisecond = newValue;\n }\n this.setValidationMessage();\n };\n\n private setPreventInput = (input: HTMLInputElement, isPrevented: boolean) => {\n if (input === this.hourInputEl) {\n this.preventHourInput = isPrevented;\n } else if (input === this.minuteInputEl) {\n this.preventMinuteInput = isPrevented;\n } else if (input === this.secondInputEl) {\n this.preventSecondInput = isPrevented;\n } else if (this.isSSSFormat() && input === this.millisecondInputEl) {\n this.preventMillisecondInput = isPrevented;\n }\n };\n\n private setValidationMessage = () => {\n this.maxTime = parseTimeHelper(this.max).date;\n this.minTime = parseTimeHelper(this.min).date;\n this.setTimeValidity();\n let outOfBoundsMsg = \"\";\n let isDisabledTime = false;\n if (\n !isEmptyString(this.hour) &&\n !isEmptyString(this.minute) &&\n (this.isHHMMFormat() || !isEmptyString(this.second)) &&\n (!this.isSSSFormat() || !isEmptyString(this.millisecond))\n ) {\n this.selectedTime = this.convertToTime(\n this.hour,\n this.minute,\n this.isHHMMFormat() ? \"00\" : this.second,\n this.isSSSFormat() ? this.millisecond : \"000\"\n );\n const inputHour = +this.hour;\n const selectedHour = this.selectedTime\n ? this.selectedTime.getHours()\n : null;\n if (\n this.timePeriod === \"12\" &&\n this.showAmPmToggle &&\n selectedHour !== null\n ) {\n let selectedHour12 = selectedHour % 12;\n if (selectedHour12 === 0) selectedHour12 = 12;\n this.isValidTime =\n !!this.selectedTime &&\n selectedHour12 == inputHour &&\n this.selectedTime.getMinutes() == +this.minute &&\n (this.isHHMMFormat() ||\n this.selectedTime.getSeconds() == +this.second) &&\n (!this.isSSSFormat() ||\n this.selectedTime.getMilliseconds() == +this.millisecond);\n } else {\n this.isValidTime =\n !!this.selectedTime &&\n this.selectedTime.getHours() == inputHour &&\n this.selectedTime.getMinutes() == +this.minute &&\n (this.isHHMMFormat() ||\n this.selectedTime.getSeconds() == +this.second) &&\n (!this.isSSSFormat() ||\n this.selectedTime.getMilliseconds() == +this.millisecond);\n }\n\n if (\n this.selectedTime &&\n Array.isArray(this.disableTimes) &&\n this.disableTimes.length > 0\n ) {\n isDisabledTime = this.disableTimes.some((t) => {\n if (\n typeof t === \"object\" &&\n t !== null &&\n \"start\" in t &&\n \"end\" in t\n ) {\n const start = parseTimeHelper(t.start).date;\n const end = parseTimeHelper(t.end).date;\n if (start && end) {\n return this.selectedTime! >= start && this.selectedTime! <= end;\n }\n return false;\n }\n const parsed = parseTimeHelper(t as string | Date).parts;\n if (!parsed) return false;\n let selectedHour = this.selectedTime!.getHours();\n let parsedHour = parsed.hour;\n if (this.timePeriod === \"12\" && this.showAmPmToggle) {\n selectedHour = this.convertTo24Hour(selectedHour);\n parsedHour = this.convertTo24Hour(parsedHour);\n }\n return (\n parsedHour === selectedHour &&\n parsed.minute === this.selectedTime!.getMinutes() &&\n parsed.second === this.selectedTime!.getSeconds()\n );\n });\n if (isDisabledTime) {\n this.isValidTime = false;\n outOfBoundsMsg = this.invalidTimeMessage;\n }\n }\n\n if (this.selectedTime && !isDisabledTime) {\n if (this.minTime && this.selectedTime < this.minTime) {\n this.isValidTime = false;\n outOfBoundsMsg = `Please enter a time after ${this.formatTime(\n this.minTime\n )}.`;\n } else if (this.maxTime && this.selectedTime > this.maxTime) {\n this.isValidTime = false;\n outOfBoundsMsg = `Please enter a time before ${this.formatTime(\n this.maxTime\n )}.`;\n }\n }\n if (!this.isValidTime) {\n this.inputsInOrder.forEach((input) =>\n input.setAttribute(this.ARIA_INVALID, \"true\")\n );\n } else {\n this.inputsInOrder.forEach((input) =>\n input.removeAttribute(this.ARIA_INVALID)\n );\n }\n } else {\n this.selectedTime = null;\n }\n if (\n !(\n this.isValidHour &&\n this.isValidMinute &&\n this.isValidSecond &&\n this.isValidMillisecond &&\n this.isValidTime\n )\n ) {\n this.invalidTimeText = outOfBoundsMsg || this.invalidTimeMessage;\n } else {\n this.invalidTimeText = \"\";\n }\n };\n\n private formatTime = (time: Date): string => {\n const hh = time.getHours().toString().padStart(2, \"0\");\n const mm = time.getMinutes().toString().padStart(2, \"0\");\n const ss = time.getSeconds().toString().padStart(2, \"0\");\n const sss = time.getMilliseconds().toString().padStart(3, \"0\");\n if (this.isSSSFormat()) {\n return `${hh}:${mm}:${ss}.${sss}`;\n }\n return this.isHHMMFormat() ? `${hh}:${mm}` : `${hh}:${mm}:${ss}`;\n };\n\n private handleInput = (event: Event) => {\n const inputEvent = event as InputEvent;\n const input = event.target as HTMLInputElement;\n if (input === this.millisecondInputEl && this.isSSSFormat()) {\n this.setInputValue(input);\n this.setPreventInput(input, false);\n this.setFitToValueStyling(input);\n if (input.value.length === 3) {\n this.moveToNextInput(input);\n this.setPreventInput(input, true);\n } else {\n this.setPreventInput(input, false);\n }\n if (input.value.length === 0) {\n this.setInputValue(input, true);\n this.setValidationMessage();\n }\n this.notifyScreenReader(input);\n } else if (input !== this.hourInputEl) {\n if (\n inputEvent.inputType !== \"deleteContentBackward\" &&\n !this.preventAutoFormatting\n ) {\n if (\n input.value.length === 1 &&\n +input.value >= 6 &&\n +input.value <= 9\n ) {\n this.setInputValue(input);\n this.notifyScreenReader(input);\n this.moveToNextInput(input);\n }\n if (input.value.length === 2) {\n this.setInputValue(input);\n this.setPreventInput(input, true);\n this.notifyScreenReader(input);\n this.moveToNextInput(input);\n } else {\n this.setPreventInput(input, false);\n }\n } else if (this.preventAutoFormatting) {\n if (input.value.length === 2 && !this.isKeyboardOrEvent(event)) {\n this.setInputValue(input);\n this.setPreventInput(input, true);\n this.moveToNextInput(input);\n } else {\n this.setInputValue(input);\n }\n }\n if (input.value.length !== 2) {\n this.setPreventInput(input, false);\n }\n this.setFitToValueStyling(input);\n if (input.value.length === 0) {\n this.setInputValue(input, true);\n this.setValidationMessage();\n }\n this.notifyScreenReader(input);\n } else {\n if (input.value.length === 2) {\n this.setInputValue(input);\n if (\n Object.prototype.toString.call(event) !== this.EVENT_OBJECT_STRING\n ) {\n this.moveToNextInput(input);\n }\n this.setPreventInput(input, true);\n } else {\n this.setInputValue(input, true);\n this.setPreventInput(input, false);\n }\n this.setFitToValueStyling(input);\n if (input.value.length === 0) {\n this.setInputValue(input, true);\n this.setValidationMessage();\n }\n this.notifyScreenReader(input);\n }\n };\n\n private handleKeyDown = (event: KeyboardEvent, isInputPrevented: boolean) => {\n const navKeys =\n /arrowup|arrowdown|arrowleft|arrowright|shift|tab|backspace|delete/i;\n const input = event.target as HTMLInputElement;\n const eventKey = event.key?.toLowerCase();\n if (\n !/-?\\d*\\.?\\d+(e[-+]?\\d+)?|[:]|[.]/i.test(eventKey) &&\n !navKeys.test(eventKey) &&\n !(\n (event.ctrlKey || event.metaKey) &&\n (eventKey === \"v\" || eventKey === \"c\")\n )\n ) {\n event.preventDefault();\n }\n const regex =\n /-?\\d*\\.?\\d+(e[-+]?\\d+)?|[:]|arrowup|arrowdown|arrowleft|arrowright|shift|tab|backspace|delete/;\n if (\n !regex.test(eventKey) &&\n !(\n (event.ctrlKey || event.metaKey) &&\n (eventKey === \"v\" || eventKey === \"c\")\n )\n ) {\n event.preventDefault();\n }\n switch (eventKey) {\n case \":\":\n case \"arrowright\":\n event.preventDefault();\n this.moveToNextInput(input);\n break;\n case \"arrowleft\":\n event.preventDefault();\n this.moveToPreviousInput(input);\n break;\n case \"arrowup\":\n case \"arrowdown\":\n this.preventAutoFormatting = true;\n this.handleUpDownArrowKeyPress(input, event);\n break;\n case \"backspace\":\n if (input.value.length === 0) {\n event.preventDefault();\n this.moveToPreviousInput(input);\n }\n break;\n default:\n break;\n }\n this.preventInput(event, isInputPrevented);\n this.isTimeSetFromKeyboardEvent = true;\n };\n\n private handleFocus = (event: FocusEvent) => {\n const input = event.target as HTMLInputElement;\n input.select();\n };\n\n private handleBlur = (event: FocusEvent) => {\n const input = event.target as HTMLInputElement;\n if (input === this.millisecondInputEl && this.isSSSFormat()) {\n if (input.value.length === 1) {\n input.value = `00${input.value}`;\n this.setInputValue(input);\n } else if (input.value.length === 2) {\n input.value = `0${input.value}`;\n this.setInputValue(input);\n }\n this.setFitToValueStyling(input);\n } else if (input) {\n this.autocompleteInput(input);\n }\n };\n\n private handleUpDownArrowKeyPress = (\n input: HTMLInputElement,\n event: KeyboardEvent\n ) => {\n let minValue = 0;\n let maxValue = 59;\n if (input === this.hourInputEl) {\n minValue = this.timePeriod === \"12\" ? 1 : 0;\n maxValue = this.timePeriod === \"12\" ? 12 : 23;\n }\n let val = +input.value;\n if (event.key === \"ArrowUp\") {\n val = val + 1;\n if (val > maxValue) val = minValue;\n input.value = val.toString().padStart(2, \"0\");\n this.notifyScreenReader(input);\n }\n if (event.key === \"ArrowDown\") {\n val = val - 1;\n if (val < minValue) val = maxValue;\n input.value = val.toString().padStart(2, \"0\");\n this.notifyScreenReader(input);\n }\n this.setInputValue(input);\n this.setFitToValueStyling(input);\n };\n\n private handleTimeChange = (force: boolean) => {\n if (force || this.selectedTime !== this.previousSelectedTime) {\n if (this.value) {\n this.inputsInOrder.forEach((input) => {\n input.classList.add(this.FIT_TO_VALUE);\n });\n }\n if (\n this.hour &&\n this.minute &&\n (this.isHHMMFormat() || this.second) &&\n this.invalidTimeText === \"\"\n ) {\n this.setValueAndEmitChange(this.selectedTime);\n this.notifyScreenReaderSelectedTime();\n } else if (\n !(this.selectedTime === null && this.previousSelectedTime === null) &&\n this.selectedTimeInfoEl\n ) {\n this.setValueAndEmitChange(null, true);\n this.selectedTimeInfoEl.textContent = \"\";\n }\n this.previousSelectedTime = this.selectedTime;\n if (!this.isTimeSetFromKeyboardEvent) {\n this.updateInputValues(this.hour, this.minute, this.second);\n }\n }\n };\n\n private setValueAndEmitChange = (value: Date | null, force = false) => {\n if (this.value !== value || force) {\n this.emitIcTimeChange(value);\n this.value = value;\n }\n };\n\n private convertTo24Hour = (hour: number) => {\n let date24hours = hour;\n if (this.period === \"PM\" && hour < 12) date24hours = hour + 12;\n if (this.period === \"AM\" && hour === 12) date24hours = 0;\n\n return date24hours;\n };\n\n private emitIcTimeChange = (t: Date | null) => {\n const hour = parseInt(this.hour);\n const minute = parseInt(this.minute);\n const second = parseInt(this.second);\n const millisecond = parseInt(this.millisecond);\n const period = this.period;\n\n let allSelected = false;\n if (this.isSSSFormat()) {\n allSelected =\n this.hour !== \"\" &&\n this.minute !== \"\" &&\n this.second !== \"\" &&\n this.millisecond !== \"\";\n } else if (this.timeFormat === this.DEFAULT_TIME_FORMAT) {\n allSelected =\n this.hour !== \"\" && this.minute !== \"\" && this.second !== \"\";\n } else if (this.timeFormat === \"HH:MM\") {\n allSelected = this.hour !== \"\" && this.minute !== \"\";\n }\n\n let time = t;\n let date24hours = hour;\n if (\n hour != null &&\n period &&\n this.timePeriod === \"12\" &&\n this.showAmPmToggle\n ) {\n date24hours = this.convertTo24Hour(hour);\n time = new Date();\n time.setHours(date24hours ?? 0);\n time.setMinutes(minute ?? 0);\n time.setSeconds(second ?? 0);\n this.isSSSFormat() && time.setMilliseconds(millisecond ?? 0);\n }\n\n this.selectedTime = time;\n\n const allTimePartsEmpty =\n this.hour === \"\" &&\n this.minute === \"\" &&\n this.second === \"\" &&\n this.millisecond === \"\";\n\n const onlyPeriodChanged =\n allTimePartsEmpty &&\n this.period !== this.previousPeriod &&\n this.previousHour === \"\" &&\n this.previousMinute === \"\" &&\n this.previousSecond === \"\" &&\n this.previousMillisecond === \"\";\n\n if (!onlyPeriodChanged) {\n this.icTimeChange.emit({\n value: allSelected ? time : null,\n timeObject: {\n hour: this.hour === \"\" ? null : this.hour,\n minute: this.minute === \"\" ? null : this.minute,\n second: this.second === \"\" ? null : this.second,\n millisecond: this.millisecond === \"\" ? null : this.millisecond,\n period: this.period === \"\" ? null : this.period,\n },\n });\n }\n\n this.previousHour = this.hour;\n this.previousMinute = this.minute;\n this.previousSecond = this.second;\n this.previousMillisecond = this.millisecond;\n this.previousPeriod = this.period;\n };\n\n private setTime = (time?: string | Date | null) => {\n if (time === null || time === \"\" || time === undefined) {\n if (this.hour) this.hour = \"\";\n if (this.minute) this.minute = \"\";\n if (this.second) this.second = \"\";\n if (this.millisecond) this.millisecond = \"\";\n this.inputsInOrder.forEach((input) => {\n input.classList.remove(this.FIT_TO_VALUE);\n this.setPreventInput(input, false);\n });\n this.handleTimeChange(true);\n } else {\n if (typeof time === \"string\") {\n const zuluMatch = time.match(\n /^(\\d{2}):(\\d{2}):(\\d{2})(?:\\.(\\d{1,3}))?Z?$/\n );\n if (zuluMatch) {\n this.hour = zuluMatch[1];\n this.minute = zuluMatch[2];\n this.second = zuluMatch[3];\n } else {\n const parts = time.split(/[:.]/);\n this.hour = parts[0] || \"\";\n this.minute = parts[1] || \"\";\n this.second = parts[2] || \"\";\n this.millisecond = parts[3] || \"\";\n }\n } else if (time instanceof Date) {\n this.hour = time.getHours().toString().padStart(2, \"0\");\n this.minute = time.getMinutes().toString().padStart(2, \"0\");\n this.second = time.getSeconds().toString().padStart(2, \"0\");\n if (this.isSSSFormat()) {\n this.millisecond = time.getMilliseconds().toString().padStart(3, \"0\");\n }\n }\n }\n this.setValidationMessage();\n };\n\n private setAriaInvalid = (\n validHour: boolean,\n validMinute: boolean,\n validSecond: boolean,\n validMillisecond: boolean\n ) => {\n if (this.inputsInOrder.length) {\n this.inputsInOrder.forEach((input) => {\n input.removeAttribute(this.ARIA_INVALID);\n });\n if (!validHour) {\n this.hourInputEl?.setAttribute(this.ARIA_INVALID, \"true\");\n }\n if (!validMinute) {\n this.minuteInputEl?.setAttribute(this.ARIA_INVALID, \"true\");\n }\n if (!validSecond) {\n this.secondInputEl?.setAttribute(this.ARIA_INVALID, \"true\");\n }\n if (!validMillisecond) {\n this.millisecondInputEl?.setAttribute(this.ARIA_INVALID, \"true\");\n }\n if (!(validHour && validMinute && validSecond && validMillisecond)) {\n this.inputsInOrder.forEach((input) => {\n input.setAttribute(this.ARIA_INVALID, \"true\");\n });\n }\n }\n };\n\n private handleClear = () => {\n this.clearInput = true;\n if (this.hourInputEl) {\n this.hourInputEl.value = \"\";\n }\n if (this.minuteInputEl) {\n this.minuteInputEl.value = \"\";\n }\n if (!this.isHHMMFormat() && this.secondInputEl) {\n this.secondInputEl.value = \"\";\n }\n if (this.isSSSFormat() && this.millisecondInputEl) {\n this.millisecondInputEl.value = \"\";\n }\n this.hour = \"\";\n this.minute = \"\";\n this.second = \"\";\n this.millisecond = \"\";\n this.period = \"AM\";\n if (this.showAmPmToggle) {\n this.periodToggleEl\n ?.querySelectorAll(this.TOGGLE_BUTTON_SELECTOR)\n .forEach((btn) => {\n const toggleBtn = btn as HTMLIcToggleButtonElement;\n if (toggleBtn.label === \"AM\") {\n toggleBtn.checked = true;\n } else {\n toggleBtn.checked = false;\n }\n });\n }\n this.handleTimeChange(true);\n this.inputsInOrder.forEach((input) => {\n input.classList.remove(this.FIT_TO_VALUE);\n this.setPreventInput(input, false);\n });\n this.clearInput = false;\n this.isTimeSetFromKeyboardEvent = false;\n this.setValidationMessage();\n this.invalidTimeText = \"\";\n if (this.hourInputEl) {\n this.hourInputEl.focus();\n }\n };\n\n private notifyScreenReaderSelectedTime = () => {\n if (this.selectedTime && this.selectedTimeInfoEl) {\n let hours = this.selectedTime.getHours();\n if (this.timePeriod === \"12\" && this.showAmPmToggle) {\n hours = this.convertTo24Hour(hours);\n }\n const hoursStr = hours.toString().padStart(2, \"0\");\n const minutesStr = this.selectedTime\n .getMinutes()\n .toString()\n .padStart(2, \"0\");\n const secondsStr = this.selectedTime\n .getSeconds()\n .toString()\n .padStart(2, \"0\");\n const msStr = this.selectedTime\n .getMilliseconds()\n .toString()\n .padStart(3, \"0\");\n if (this.isHHMMFormat()) {\n this.selectedTimeInfoEl.textContent = `Selected time: ${hoursStr}:${minutesStr}`;\n } else if (!this.isSSSFormat()) {\n this.selectedTimeInfoEl.textContent = `Selected time: ${hoursStr}:${minutesStr}:${secondsStr}`;\n } else {\n this.selectedTimeInfoEl.textContent = `Selected time: ${hoursStr}:${minutesStr}:${secondsStr}.${msStr}`;\n }\n }\n };\n\n private setFitToValueStyling = (input: HTMLInputElement) => {\n if (input.value) {\n input.classList.add(this.FIT_TO_VALUE);\n } else {\n input.classList.remove(this.FIT_TO_VALUE);\n }\n };\n\n private handleHostBlur = () => {\n this.removeLabelledBy = false;\n this.icBlur.emit({ value: this.selectedTime });\n };\n\n private handleHostFocus = () => {\n if (\n this.el.shadowRoot?.activeElement?.id.match(\n /(hour|minute|second|millisecond)-input$/\n )\n ) {\n this.removeLabelledBy = false;\n } else {\n this.removeLabelledBy = true;\n }\n this.icFocus.emit({ value: this.selectedTime });\n };\n\n private handleFormReset = () => {\n this.setTime(this.initialValue);\n this.setValidationMessage();\n this.handleTimeChange(false);\n };\n\n private preventInput = (event: KeyboardEvent, isInputPrevented: boolean) => {\n const key = event.key;\n const input = event.target as HTMLInputElement;\n let selectedString;\n if (input) {\n selectedString = input.value.substring(\n input.selectionStart || 0,\n input.selectionEnd || undefined\n );\n }\n if (\n key === \"e\" ||\n key === \".\" ||\n key === \"-\" ||\n (event.key >= \"0\" &&\n event.key <= \"9\" &&\n isInputPrevented &&\n !selectedString)\n ) {\n event.preventDefault();\n }\n };\n\n private moveToNextInput = (currentInput: HTMLInputElement) => {\n this.preventAutoFormatting = false;\n this.inputsInOrder[\n this.inputsInOrder.findIndex((input) => input === currentInput) + 1\n ]?.focus();\n };\n\n private moveToPreviousInput = (currentInput: HTMLInputElement) => {\n this.preventAutoFormatting = false;\n this.inputsInOrder[\n this.inputsInOrder.findIndex((input) => input === currentInput) - 1\n ]?.focus();\n };\n\n private autocompleteInput = (input: HTMLInputElement) => {\n const inputValue = input.value;\n if (inputValue.length === 1) {\n input.value = `0${inputValue}`;\n }\n if (input.value) {\n this.setInputValue(input);\n }\n };\n\n private convertToTime = (\n hour: string,\n minute: string,\n second: string,\n millisecond: string | null = null\n ): Date | null => {\n if (\n !isEmptyString(hour) &&\n !isEmptyString(minute) &&\n (this.isHHMMFormat() || !isEmptyString(second)) &&\n (!this.isSSSFormat() ||\n (millisecond !== null && !isEmptyString(millisecond)))\n ) {\n const d = new Date();\n d.setHours(+hour, +minute, this.isHHMMFormat() ? 0 : +second, 0);\n if (this.isSSSFormat() && millisecond !== null) {\n d.setMilliseconds(+millisecond);\n }\n return d;\n } else {\n return null;\n }\n };\n\n private setInputsInOrder = () => {\n this.inputsInOrder = [];\n const shadowInputs = this.el.shadowRoot?.querySelectorAll(\"input\");\n if (shadowInputs) {\n shadowInputs.forEach((input) => this.inputsInOrder.push(input));\n }\n };\n\n private updateInputValues = (\n hour: string,\n minute: string,\n second: string\n ) => {\n this.hourInputEl && (this.hourInputEl.value = hour);\n this.minuteInputEl && (this.minuteInputEl.value = minute);\n this.secondInputEl && (this.secondInputEl.value = second);\n };\n\n private removeAriaLabelledBy = () => {\n this.inputCompContainerEl?.removeAttribute(this.ARIA_LABELLED_BY);\n };\n\n private setAriaLabelledBy = () => {\n if (\n this.disabled &&\n this.inputCompContainerEl?.getAttribute(this.ARIA_LABELLED_BY)\n ) {\n this.removeAriaLabelledBy();\n return;\n }\n if (this.disabled) {\n return;\n }\n const labelEl = this.el.shadowRoot?.querySelector(\"label\");\n const labelId = `${this.inputId}-label`;\n if (labelEl !== null && labelEl !== undefined) {\n labelEl.id = labelId;\n }\n const hasValidation =\n !isEmptyString(this.validationStatus) ||\n !isEmptyString(this.invalidTimeText);\n const labelledBy = `${labelEl?.id ?? \"\"} ${\n this.screenReaderInfoId\n } ${getInputDescribedByText(\n this.el,\n this.inputId,\n this.helperText !== \"\" && this.helperText !== this.defaultHelperText,\n hasValidation\n )} ${this.selectedTime ? this.selectedTimeInfoId : \"\"} ${\n this.assistiveHintId\n }`;\n this.inputCompContainerEl?.setAttribute(this.ARIA_LABELLED_BY, labelledBy);\n };\n\n private getInputsInOrder = () => {\n const timeParts = this.timeFormat.split(/[:.]/);\n return timeParts.map((part: string) => {\n switch (part) {\n case \"HH\":\n return (\n <input\n class=\"hour-input\"\n id=\"hour-input\"\n ref={(el) => (this.hourInputEl = el)}\n aria-label=\"hour\"\n placeholder=\"HH\"\n disabled={this.disabled}\n aria-required={`${this.required}`}\n inputmode=\"number\"\n pattern=\"[0-9]*\"\n onPaste={this.handlePaste}\n onKeyDown={(event) =>\n this.handleKeyDown(event, this.preventHourInput)\n }\n ></input>\n );\n case \"MM\":\n return (\n <input\n id=\"minute-input\"\n class=\"minute-input\"\n ref={(el) => (this.minuteInputEl = el)}\n aria-label=\"minute\"\n placeholder=\"MM\"\n disabled={this.disabled}\n aria-required={`${this.required}`}\n inputmode=\"number\"\n pattern=\"[0-9]*\"\n onPaste={this.handlePaste}\n onKeyDown={(event) =>\n this.handleKeyDown(event, this.preventMinuteInput)\n }\n ></input>\n );\n case \"SS\":\n if (!this.isHHMMFormat()) {\n return (\n <input\n id=\"second-input\"\n class=\"second-input\"\n ref={(el) => (this.secondInputEl = el)}\n aria-label=\"second\"\n placeholder=\"SS\"\n disabled={this.disabled}\n aria-required={`${this.required}`}\n inputmode=\"number\"\n pattern=\"[0-9]*\"\n onPaste={this.handlePaste}\n onKeyDown={(event) =>\n this.handleKeyDown(event, this.preventSecondInput)\n }\n ></input>\n );\n }\n break;\n case \"SSS\":\n if (this.isSSSFormat()) {\n return (\n <input\n id=\"millisecond-input\"\n class=\"millisecond-input\"\n ref={(el) => (this.millisecondInputEl = el)}\n aria-label=\"millisecond\"\n placeholder=\"SSS\"\n disabled={this.disabled}\n aria-required={`${this.required}`}\n inputmode=\"number\"\n pattern=\"[0-9]*\"\n onPaste={this.handlePaste}\n onKeyDown={(event) =>\n this.handleKeyDown(event, this.preventMillisecondInput)\n }\n ></input>\n );\n }\n return null;\n default:\n return null;\n }\n });\n };\n\n private getDescOfInputsOrder = () => {\n if (this.isSSSFormat()) {\n return \"hour, minute, second, and millisecond\";\n }\n return \"hour, minute, and second\";\n };\n\n private getScreenReaderInfo = (validationStatus: string) => {\n let inputDescriptors = \"\";\n if (this.required) {\n inputDescriptors += \"required\";\n }\n if (validationStatus === IcInformationStatus.Error) {\n inputDescriptors += \" invalid data\";\n }\n return inputDescriptors === \"\" ? \"\" : inputDescriptors + \", \";\n };\n\n private notifyScreenReader = (input: HTMLInputElement) => {\n const liveRegion = this.el.shadowRoot?.querySelector(\"#live-region\");\n if (liveRegion) {\n liveRegion.textContent = `${input.value}, ${input.getAttribute(\n this.ARIA_LABEL\n )}`;\n }\n };\n\n private handlePaste = (event: ClipboardEvent) => {\n event.preventDefault();\n const pastedValue = event.clipboardData?.getData(\"Text\") || \"\";\n const isValidTime = this.isPastedStringTimeValid(pastedValue);\n this.setPastedValueAndValidation(isValidTime, pastedValue, event);\n };\n\n private handleClearFocus = () => {\n this.removeLabelledBy = true;\n this.clearButtonFocused = true;\n this.isTimeSetFromKeyboardEvent = true;\n };\n\n private handleClearBlur = (ev: FocusEvent) => {\n this.clearButtonFocused = false;\n this.isTimeSetFromKeyboardEvent = true;\n const relatedTarget = ev.relatedTarget as HTMLElement | null;\n if (relatedTarget?.id === \"clock-button\") {\n this.removeLabelledBy = false;\n return;\n }\n if (relatedTarget?.id.match(/(minute|second|millisecond)-input$/)) {\n this.removeLabelledBy = false;\n return;\n }\n this.removeLabelledBy = true;\n };\n\n private handleClockFocus = () => {\n this.clockFocused = true;\n };\n\n private handleClockBlur = () => {\n this.clockFocused = false;\n };\n\n private isPastedStringTimeValid = (value: string): string | false => {\n if (this.isHHMMFormat()) {\n if (/^\\d{2}:\\d{2}$/.test(value)) {\n return value;\n }\n } else if (this.isSSSFormat()) {\n if (/^\\d{2}:\\d{2}:\\d{2}\\.\\d{1,3}$/.test(value)) {\n return value;\n }\n if (/^\\d{2}:\\d{2}:\\d{2}\\.\\d{1,3}Z$/.test(value)) {\n return value.replace(\"Z\", \"\");\n }\n const isoMatch = value.match(/T(\\d{2}:\\d{2}:\\d{2}\\.\\d{1,3})/);\n if (isoMatch) {\n return isoMatch[1];\n }\n } else {\n if (/^\\d{2}:\\d{2}:\\d{2}$/.test(value)) {\n return value;\n }\n if (/^\\d{2}:\\d{2}:\\d{2}Z$/.test(value)) {\n return value.replace(\"Z\", \"\");\n }\n const isoMatch = value.match(/T(\\d{2}:\\d{2}:\\d{2})/);\n if (isoMatch) {\n return isoMatch[1];\n }\n }\n return false;\n };\n\n private setPastedValueAndValidation = (\n isValidTime: string | false,\n pastedValue: string,\n event: ClipboardEvent\n ) => {\n if (isValidTime) {\n const timeParts = isValidTime.split(/[:.]/);\n this.inputsInOrder.forEach((input, index) => {\n input.classList.add(this.FIT_TO_VALUE);\n let timeValue = timeParts[index] || \"\";\n if (input === this.millisecondInputEl && this.isSSSFormat()) {\n timeValue = timeValue.slice(0, 3);\n } else {\n timeValue = timeValue.slice(0, 2);\n }\n if (input === this.hourInputEl) {\n let activeToggle: HTMLIcToggleButtonElement | undefined;\n if (this.timePeriod === \"12\" && this.showAmPmToggle) {\n if (parseInt(timeValue) > 12) {\n timeValue = (parseInt(timeValue) - 12)\n .toString()\n .padStart(2, \"0\");\n if (parseInt(timeValue) > 12) {\n return;\n } else {\n this.period = \"PM\";\n this.periodToggleEl\n ?.querySelectorAll(this.TOGGLE_BUTTON_SELECTOR)\n .forEach((btn) => {\n const toggleBtn = btn as HTMLIcToggleButtonElement;\n if (toggleBtn.label === \"PM\") {\n activeToggle = toggleBtn;\n } else {\n toggleBtn.checked = false;\n }\n });\n if (activeToggle) {\n this.periodToggleEl?.setActiveToggle(activeToggle);\n activeToggle.checked = true;\n }\n this.invalidTimeText = \"\";\n this.validationStatus = \"\";\n }\n } else {\n if (parseInt(timeValue) === 0) {\n timeValue = \"12\";\n }\n this.period = \"AM\";\n this.periodToggleEl\n ?.querySelectorAll(this.TOGGLE_BUTTON_SELECTOR)\n .forEach((btn) => {\n const toggleBtn = btn as HTMLIcToggleButtonElement;\n if (toggleBtn.label === \"AM\") {\n activeToggle = toggleBtn;\n } else {\n toggleBtn.checked = false;\n }\n });\n if (activeToggle) {\n this.periodToggleEl?.setActiveToggle(activeToggle);\n activeToggle.checked = true;\n }\n this.invalidTimeText = \"\";\n this.validationStatus = \"\";\n }\n }\n }\n input.value = timeValue;\n this.setInputValue(input);\n this.autocompleteInput(input);\n });\n if (\n this.isHHMMFormat() &&\n this.second !== \"\" &&\n this.millisecond !== \"\"\n ) {\n this.second = \"\";\n this.millisecond = \"\";\n }\n } else {\n const pasted = pastedValue.trim();\n if ((pasted.length === 1 || pasted.length === 2) && isNumeric(pasted)) {\n this.setInputPasteValue(event.target, pasted);\n this.setInputValue(event.target as HTMLInputElement);\n } else {\n this.invalidTimeText = `Please paste a valid ${(\n event.target as HTMLInputElement\n ).getAttribute(this.ARIA_LABEL)}`;\n this.validationStatus = IcInformationStatus.Error;\n }\n }\n };\n\n private handleAMPM = (selectedOption: HTMLIcToggleButtonElement) => {\n this.period = selectedOption.label!;\n this.periodToggleEl?.setActiveToggle(selectedOption);\n };\n\n render() {\n const {\n inputId,\n label,\n disabled,\n helperText,\n hideHelperText,\n hideLabel,\n showClearButton,\n showClockButton,\n size,\n theme,\n validationAriaLive,\n } = this;\n const hasCustomValidation = !isEmptyString(this.validationStatus);\n const validationStatus = hasCustomValidation\n ? this.validationStatus\n : !isEmptyString(this.invalidTimeText)\n ? IcInformationStatus.Error\n : \"\";\n const assistiveHint = `Type or use the up and down arrow keys to change the values for the ${this.getDescOfInputsOrder()}.`;\n renderHiddenInput(\n true,\n this.el,\n this.name,\n this.convertToTime(this.hour, this.minute, this.second),\n this.disabled\n );\n const showDivider = !!(\n showClearButton &&\n !(\n isEmptyString(this.hour) &&\n isEmptyString(this.minute) &&\n isEmptyString(this.second)\n )\n );\n\n if (this.showAmPmToggle && this.timePeriod !== \"12\") {\n this.showAmPmToggle = false;\n }\n\n return (\n <Host\n class={{\n [`ic-theme-${theme}`]: theme !== \"inherit\",\n [`ic-time-input-disabled`]: disabled,\n [`ic-time-input-${size}`]: true,\n }}\n onBlur={this.handleHostBlur}\n onFocus={this.handleHostFocus}\n >\n <ic-input-container disabled={disabled}>\n {!(hideLabel && hideHelperText) && (\n <ic-input-label\n for={inputId}\n label={label}\n hideLabel={hideLabel}\n helperText={!hideHelperText ? helperText : \"\"}\n disabled={disabled}\n >\n <slot name=\"helper-text\" slot=\"helper-text\"></slot>\n </ic-input-label>\n )}\n <span id={this.screenReaderInfoId} class=\"sr-only\" aria-hidden=\"true\">\n {this.getScreenReaderInfo(validationStatus)}\n {hideLabel && `${label}\\n`}\n {hideHelperText && `${helperText}\\n`}\n {`${this.defaultHelperText}.`}\n </span>\n <span id={this.assistiveHintId} class=\"sr-only\" aria-hidden=\"true\">\n {assistiveHint}\n </span>\n <span id=\"live-region\" aria-live=\"assertive\" class=\"sr-only\"></span>\n <div\n class={{\n \"with-am-pm-toggle\": this.showAmPmToggle === true,\n }}\n >\n <ic-input-component-container\n id={inputId}\n ref={(el: HTMLIcInputComponentContainerElement) =>\n (this.inputCompContainerEl = el)\n }\n disabled={disabled}\n validationStatus={validationStatus}\n size={size}\n role=\"group\"\n class={{ [`ic-theme-${theme}`]: theme !== \"inherit\" }}\n >\n <div class=\"input-container\">\n <div class=\"time-inputs\">\n {[\n this.getInputsInOrder()[0],\n \":\",\n this.getInputsInOrder()[1],\n !this.isHHMMFormat()\n ? [\":\", this.getInputsInOrder()[2]]\n : null,\n this.isSSSFormat()\n ? [\".\", this.getInputsInOrder()[3]]\n : null,\n ]}\n </div>\n <div class=\"action-buttons\">\n {showClearButton && (\n <ic-button\n id=\"clear-button\"\n aria-label=\"Clear input\"\n class={{\n [\"clear-button\"]: true,\n [\"hidden\"]:\n isEmptyString(this.hour) &&\n isEmptyString(this.minute) &&\n isEmptyString(this.second),\n }}\n disabled={this.disabled}\n innerHTML={Clear}\n onClick={this.handleClear}\n onFocus={this.handleClearFocus}\n onBlur={this.handleClearBlur}\n variant=\"icon-tertiary\"\n theme={this.clearButtonFocused ? \"light\" : \"dark\"}\n size={size}\n ></ic-button>\n )}\n {showClockButton && (\n <div class=\"show-clock-button-wrapper\">\n <div class={{ divider: showDivider, [size]: true }}></div>\n <ic-button\n id=\"clock-button\"\n aria-label=\"Display clock\"\n aria-haspopup=\"dialog\"\n class=\"clock-button\"\n disabled={this.disabled}\n innerHTML={Clock}\n variant=\"icon-tertiary\"\n size={size}\n onFocus={this.handleClockFocus}\n onBlur={this.handleClockBlur}\n theme={this.clockFocused ? \"light\" : \"dark\"}\n ></ic-button>\n </div>\n )}\n </div>\n </div>\n </ic-input-component-container>\n {this.showAmPmToggle && (\n <ic-toggle-button-group\n select-type=\"single\"\n accessible-label=\"AM PM Toggle\"\n ref={(el: HTMLIcToggleButtonGroupElement) =>\n (this.periodToggleEl = el)\n }\n disabled={disabled}\n class=\"am-pm-toggle\"\n select-method=\"auto\"\n onIcChange={(e: any) =>\n this.handleAMPM(e.detail.selectedOption)\n }\n onKeyDown={(e: KeyboardEvent) => {\n if (e.key === \"Tab\" && e.shiftKey) {\n e.preventDefault();\n if (this.inputsInOrder && this.inputsInOrder.length > 0) {\n const lastInput = this.inputsInOrder[\n this.inputsInOrder.length - 1\n ] as HTMLElement;\n lastInput?.focus();\n }\n }\n }}\n >\n <ic-toggle-button\n label=\"AM\"\n disabled={disabled}\n checked={true}\n ></ic-toggle-button>\n <ic-toggle-button\n label=\"PM\"\n disabled={disabled}\n ></ic-toggle-button>\n </ic-toggle-button-group>\n )}\n </div>\n <span id={this.selectedTimeInfoId} class=\"sr-only\" aria-live=\"polite\">\n <span\n ref={(el) => (this.selectedTimeInfoEl = el)}\n role=\"status\"\n ></span>\n </span>\n <ic-input-validation\n status={validationStatus}\n message={\n hasCustomValidation ? this.validationText : this.invalidTimeText\n }\n for={inputId}\n ariaLiveMode={validationAriaLive}\n ></ic-input-validation>\n </ic-input-container>\n </Host>\n );\n }\n}\n"],"mappings":"+fAAA,MAAMA,EAAiB,ulOACvB,MAAAC,EAAeD,ECoCf,IAAIE,EAAW,E,MAYFC,EAAS,MAPtB,WAAAC,CAAAC,G,4KAQUC,KAAAC,oBAAoC,WACpCD,KAAAE,uBAAyB,mBACzBF,KAAAG,aAAe,eACfH,KAAAI,WAAa,aACbJ,KAAAK,iBAAmB,kBAQnBL,KAAAM,oBAAsB,iBACtBN,KAAAO,aAAe,eACfP,KAAAQ,aAAeR,KAAKS,MAEpBT,KAAAU,cAAoC,GACpCV,KAAAW,YAAuB,KACvBX,KAAAY,cAAyB,KACzBZ,KAAAa,cAAyB,KACzBb,KAAAc,mBAA8B,KAC9Bd,KAAAe,YAAuB,KACvBf,KAAAgB,2BAAsC,MAMtChB,KAAAiB,qBAAoC,KACpCjB,KAAAkB,aAA4B,KAI5BlB,KAAAmB,gBAA2B,MAC3BnB,KAAAoB,WAAsB,MACtBpB,KAAAqB,QAAuB,KACvBrB,KAAAsB,QAAuB,KACvBtB,KAAAuB,aAAuB,GACvBvB,KAAAwB,eAAyB,GACzBxB,KAAAyB,eAAyB,GACzBzB,KAAA0B,oBAA8B,GAC9B1B,KAAA2B,eAAyB,KAKxB3B,KAAA4B,aAAwB,MACxB5B,KAAA6B,mBAA8B,MAC9B7B,KAAA8B,iBAA4B,MAC5B9B,KAAA+B,KAAe,GACf/B,KAAAgC,OAAiB,GACjBhC,KAAAiC,OAAiB,GACjBjC,KAAAkC,YAAsB,GACtBlC,KAAAmC,OAAiB,KAuBlBnC,KAAAoC,YAAc,IAAMpC,KAAKqC,aAAe,eAKxCrC,KAAAsC,SAAoB,MASpBtC,KAAAuC,aAAyC,GAKzCvC,KAAAwC,mBAA+B,MAe/BxC,KAAAyC,eAA0B,MAK1BzC,KAAA0C,UAAsB,MAKtB1C,KAAA2C,QAAkB,iBAAiB/C,MAKnCI,KAAA4C,mBAA6B,6BAU7B5C,KAAA6C,IAAqB,GASrB7C,KAAA8C,IAAqB,GASrB9C,KAAA+C,KAAe/C,KAAK2C,QAKpB3C,KAAAgD,SAAoB,MAqBHhD,KAAAiD,eAA2B,MAK5CjD,KAAAkD,gBAA4B,KAK5BlD,KAAAmD,gBAA4B,MAK5BnD,KAAAoD,KAAgB,SAKhBpD,KAAAqD,MAAsB,UAKtBrD,KAAAqC,WAA2BrC,KAAKC,oBAWhCD,KAAAsD,WAA0B,KAKTtD,KAAAS,MAA4B,GAK7CT,KAAAuD,mBAAiC,SAKhBvD,KAAAwD,iBAA+C,GAKhExD,KAAAyD,eAA0B,GAsH1BzD,KAAA0D,mBAAqB,CAC3BC,EACAC,KAEA,GAAID,EAAO,CACT,MAAME,EAAUF,EAChBE,EAAQpD,MAAQmD,EAChBC,EAAQC,UAAUC,IAAI/D,KAAKO,a,GAIvBP,KAAAgE,aAAe,IAAMhE,KAAKqC,aAAe,QAEzCrC,KAAAiE,kBAAqBC,GAEzBC,OAAOC,UAAUC,SAASC,KAAKJ,KAAWlE,KAAKM,qBAC/C6D,OAAOC,UAAUC,SAASC,KAAKJ,KAAW,yBAItClE,KAAAuE,gBAAkB,KACxB,MAAMC,EAAU,EAChB,MAAMC,EAAUzE,KAAKsD,aAAe,KAAO,GAAK,GAChD,IAAKoB,EAAc1E,KAAK+B,MAAO,CAC7B/B,KAAKW,aAAeX,KAAK+B,MAAQyC,IAAYxE,KAAK+B,MAAQ0C,C,KACrD,CACLzE,KAAKW,YAAc,I,CAErB,IAAK+D,EAAc1E,KAAKgC,QAAS,CAC/BhC,KAAKY,eAAiBZ,KAAKgC,QAAU,IAAMhC,KAAKgC,QAAU,E,KACrD,CACLhC,KAAKY,cAAgB,I,CAEvB,IAAKZ,KAAKgE,eAAgB,CACxB,IAAKU,EAAc1E,KAAKiC,QAAS,CAC/BjC,KAAKa,eAAiBb,KAAKiC,QAAU,IAAMjC,KAAKiC,QAAU,E,KACrD,CACLjC,KAAKa,cAAgB,I,CAEvB,GAAIb,KAAKoC,cAAe,CACtB,IAAKsC,EAAc1E,KAAKkC,aAAc,CACpClC,KAAKc,oBACFd,KAAKkC,aAAe,IAAMlC,KAAKkC,aAAe,G,KAC5C,CACLlC,KAAKc,mBAAqB,I,MAEvB,CACLd,KAAKc,mBAAqB,I,MAEvB,CACLd,KAAKa,cAAgB,KACrBb,KAAKc,mBAAqB,I,GAItBd,KAAA2E,cAAgB,CAAChB,EAAyBiB,EAAQ,SACxD,MAAMC,EAAWD,EAAQ,GAAKjB,EAAMlD,MACpC,GAAIkD,IAAU3D,KAAK8E,YAAa,CAC9B9E,KAAK+B,KAAO8C,C,MACP,GAAIlB,IAAU3D,KAAK+E,cAAe,CACvC/E,KAAKgC,OAAS6C,C,MACT,GAAIlB,IAAU3D,KAAKgF,gBAAkBhF,KAAKgE,eAAgB,CAC/DhE,KAAKiC,OAAS4C,C,MACT,GAAI7E,KAAKoC,eAAiBuB,IAAU3D,KAAKiF,mBAAoB,CAClEjF,KAAKkC,YAAc2C,C,CAErB7E,KAAKkF,sBAAsB,EAGrBlF,KAAAmF,gBAAkB,CAACxB,EAAyByB,KAClD,GAAIzB,IAAU3D,KAAK8E,YAAa,CAC9B9E,KAAKqF,iBAAmBD,C,MACnB,GAAIzB,IAAU3D,KAAK+E,cAAe,CACvC/E,KAAKsF,mBAAqBF,C,MACrB,GAAIzB,IAAU3D,KAAKgF,cAAe,CACvChF,KAAKuF,mBAAqBH,C,MACrB,GAAIpF,KAAKoC,eAAiBuB,IAAU3D,KAAKiF,mBAAoB,CAClEjF,KAAKwF,wBAA0BJ,C,GAI3BpF,KAAAkF,qBAAuB,KAC7BlF,KAAKqB,QAAUoE,EAAgBzF,KAAK6C,KAAK6C,KACzC1F,KAAKsB,QAAUmE,EAAgBzF,KAAK8C,KAAK4C,KACzC1F,KAAKuE,kBACL,IAAIoB,EAAiB,GACrB,IAAIC,EAAiB,MACrB,IACGlB,EAAc1E,KAAK+B,QACnB2C,EAAc1E,KAAKgC,UACnBhC,KAAKgE,iBAAmBU,EAAc1E,KAAKiC,YAC1CjC,KAAKoC,gBAAkBsC,EAAc1E,KAAKkC,cAC5C,CACAlC,KAAKkB,aAAelB,KAAK6F,cACvB7F,KAAK+B,KACL/B,KAAKgC,OACLhC,KAAKgE,eAAiB,KAAOhE,KAAKiC,OAClCjC,KAAKoC,cAAgBpC,KAAKkC,YAAc,OAE1C,MAAM4D,GAAa9F,KAAK+B,KACxB,MAAMgE,EAAe/F,KAAKkB,aACtBlB,KAAKkB,aAAa8E,WAClB,KACJ,GACEhG,KAAKsD,aAAe,MACpBtD,KAAKiD,gBACL8C,IAAiB,KACjB,CACA,IAAIE,EAAiBF,EAAe,GACpC,GAAIE,IAAmB,EAAGA,EAAiB,GAC3CjG,KAAKe,cACDf,KAAKkB,cACP+E,GAAkBH,GAClB9F,KAAKkB,aAAagF,eAAiBlG,KAAKgC,SACvChC,KAAKgE,gBACJhE,KAAKkB,aAAaiF,eAAiBnG,KAAKiC,WACxCjC,KAAKoC,eACLpC,KAAKkB,aAAakF,oBAAsBpG,KAAKkC,Y,KAC5C,CACLlC,KAAKe,cACDf,KAAKkB,cACPlB,KAAKkB,aAAa8E,YAAcF,GAChC9F,KAAKkB,aAAagF,eAAiBlG,KAAKgC,SACvChC,KAAKgE,gBACJhE,KAAKkB,aAAaiF,eAAiBnG,KAAKiC,WACxCjC,KAAKoC,eACLpC,KAAKkB,aAAakF,oBAAsBpG,KAAKkC,Y,CAGnD,GACElC,KAAKkB,cACLmF,MAAMC,QAAQtG,KAAKuC,eACnBvC,KAAKuC,aAAagE,OAAS,EAC3B,CACAX,EAAiB5F,KAAKuC,aAAaiE,MAAMC,IACvC,UACSA,IAAM,UACbA,IAAM,MACN,UAAWA,GACX,QAASA,EACT,CACA,MAAMC,EAAQjB,EAAgBgB,EAAEC,OAAOhB,KACvC,MAAMiB,EAAMlB,EAAgBgB,EAAEE,KAAKjB,KACnC,GAAIgB,GAASC,EAAK,CAChB,OAAO3G,KAAKkB,cAAiBwF,GAAS1G,KAAKkB,cAAiByF,C,CAE9D,OAAO,K,CAET,MAAMC,EAASnB,EAAgBgB,GAAoBI,MACnD,IAAKD,EAAQ,OAAO,MACpB,IAAIb,EAAe/F,KAAKkB,aAAc8E,WACtC,IAAIc,EAAaF,EAAO7E,KACxB,GAAI/B,KAAKsD,aAAe,MAAQtD,KAAKiD,eAAgB,CACnD8C,EAAe/F,KAAK+G,gBAAgBhB,GACpCe,EAAa9G,KAAK+G,gBAAgBD,E,CAEpC,OACEA,IAAef,GACfa,EAAO5E,SAAWhC,KAAKkB,aAAcgF,cACrCU,EAAO3E,SAAWjC,KAAKkB,aAAciF,YAAY,IAGrD,GAAIP,EAAgB,CAClB5F,KAAKe,YAAc,MACnB4E,EAAiB3F,KAAK4C,kB,EAI1B,GAAI5C,KAAKkB,eAAiB0E,EAAgB,CACxC,GAAI5F,KAAKsB,SAAWtB,KAAKkB,aAAelB,KAAKsB,QAAS,CACpDtB,KAAKe,YAAc,MACnB4E,EAAiB,6BAA6B3F,KAAKgH,WACjDhH,KAAKsB,W,MAEF,GAAItB,KAAKqB,SAAWrB,KAAKkB,aAAelB,KAAKqB,QAAS,CAC3DrB,KAAKe,YAAc,MACnB4E,EAAiB,8BAA8B3F,KAAKgH,WAClDhH,KAAKqB,W,EAIX,IAAKrB,KAAKe,YAAa,CACrBf,KAAKU,cAAcuG,SAAStD,GAC1BA,EAAMuD,aAAalH,KAAKG,aAAc,S,KAEnC,CACLH,KAAKU,cAAcuG,SAAStD,GAC1BA,EAAMwD,gBAAgBnH,KAAKG,e,MAG1B,CACLH,KAAKkB,aAAe,I,CAEtB,KAEIlB,KAAKW,aACLX,KAAKY,eACLZ,KAAKa,eACLb,KAAKc,oBACLd,KAAKe,aAEP,CACAf,KAAKoH,gBAAkBzB,GAAkB3F,KAAK4C,kB,KACzC,CACL5C,KAAKoH,gBAAkB,E,GAInBpH,KAAAgH,WAAcK,IACpB,MAAMC,EAAKD,EAAKrB,WAAW3B,WAAWkD,SAAS,EAAG,KAClD,MAAMC,EAAKH,EAAKnB,aAAa7B,WAAWkD,SAAS,EAAG,KACpD,MAAME,EAAKJ,EAAKlB,aAAa9B,WAAWkD,SAAS,EAAG,KACpD,MAAMG,EAAML,EAAKjB,kBAAkB/B,WAAWkD,SAAS,EAAG,KAC1D,GAAIvH,KAAKoC,cAAe,CACtB,MAAO,GAAGkF,KAAME,KAAMC,KAAMC,G,CAE9B,OAAO1H,KAAKgE,eAAiB,GAAGsD,KAAME,IAAO,GAAGF,KAAME,KAAMC,GAAI,EAG1DzH,KAAA2H,YAAezD,IACrB,MAAM0D,EAAa1D,EACnB,MAAMP,EAAQO,EAAM2D,OACpB,GAAIlE,IAAU3D,KAAKiF,oBAAsBjF,KAAKoC,cAAe,CAC3DpC,KAAK2E,cAAchB,GACnB3D,KAAKmF,gBAAgBxB,EAAO,OAC5B3D,KAAK8H,qBAAqBnE,GAC1B,GAAIA,EAAMlD,MAAM8F,SAAW,EAAG,CAC5BvG,KAAK+H,gBAAgBpE,GACrB3D,KAAKmF,gBAAgBxB,EAAO,K,KACvB,CACL3D,KAAKmF,gBAAgBxB,EAAO,M,CAE9B,GAAIA,EAAMlD,MAAM8F,SAAW,EAAG,CAC5BvG,KAAK2E,cAAchB,EAAO,MAC1B3D,KAAKkF,sB,CAEPlF,KAAKgI,mBAAmBrE,E,MACnB,GAAIA,IAAU3D,KAAK8E,YAAa,CACrC,GACE8C,EAAWK,YAAc,0BACxBjI,KAAKkI,sBACN,CACA,GACEvE,EAAMlD,MAAM8F,SAAW,IACtB5C,EAAMlD,OAAS,IACfkD,EAAMlD,OAAS,EAChB,CACAT,KAAK2E,cAAchB,GACnB3D,KAAKgI,mBAAmBrE,GACxB3D,KAAK+H,gBAAgBpE,E,CAEvB,GAAIA,EAAMlD,MAAM8F,SAAW,EAAG,CAC5BvG,KAAK2E,cAAchB,GACnB3D,KAAKmF,gBAAgBxB,EAAO,MAC5B3D,KAAKgI,mBAAmBrE,GACxB3D,KAAK+H,gBAAgBpE,E,KAChB,CACL3D,KAAKmF,gBAAgBxB,EAAO,M,OAEzB,GAAI3D,KAAKkI,sBAAuB,CACrC,GAAIvE,EAAMlD,MAAM8F,SAAW,IAAMvG,KAAKiE,kBAAkBC,GAAQ,CAC9DlE,KAAK2E,cAAchB,GACnB3D,KAAKmF,gBAAgBxB,EAAO,MAC5B3D,KAAK+H,gBAAgBpE,E,KAChB,CACL3D,KAAK2E,cAAchB,E,EAGvB,GAAIA,EAAMlD,MAAM8F,SAAW,EAAG,CAC5BvG,KAAKmF,gBAAgBxB,EAAO,M,CAE9B3D,KAAK8H,qBAAqBnE,GAC1B,GAAIA,EAAMlD,MAAM8F,SAAW,EAAG,CAC5BvG,KAAK2E,cAAchB,EAAO,MAC1B3D,KAAKkF,sB,CAEPlF,KAAKgI,mBAAmBrE,E,KACnB,CACL,GAAIA,EAAMlD,MAAM8F,SAAW,EAAG,CAC5BvG,KAAK2E,cAAchB,GACnB,GACEQ,OAAOC,UAAUC,SAASC,KAAKJ,KAAWlE,KAAKM,oBAC/C,CACAN,KAAK+H,gBAAgBpE,E,CAEvB3D,KAAKmF,gBAAgBxB,EAAO,K,KACvB,CACL3D,KAAK2E,cAAchB,EAAO,MAC1B3D,KAAKmF,gBAAgBxB,EAAO,M,CAE9B3D,KAAK8H,qBAAqBnE,GAC1B,GAAIA,EAAMlD,MAAM8F,SAAW,EAAG,CAC5BvG,KAAK2E,cAAchB,EAAO,MAC1B3D,KAAKkF,sB,CAEPlF,KAAKgI,mBAAmBrE,E,GAIpB3D,KAAAmI,cAAgB,CAACjE,EAAsBkE,K,MAC7C,MAAMC,EACJ,qEACF,MAAM1E,EAAQO,EAAM2D,OACpB,MAAMS,GAAWC,EAAArE,EAAMsE,OAAG,MAAAD,SAAA,SAAAA,EAAEE,cAC5B,IACG,mCAAmCC,KAAKJ,KACxCD,EAAQK,KAAKJ,OAEXpE,EAAMyE,SAAWzE,EAAM0E,WACvBN,IAAa,KAAOA,IAAa,MAEpC,CACApE,EAAM2E,gB,CAER,MAAMC,EACJ,gGACF,IACGA,EAAMJ,KAAKJ,OAETpE,EAAMyE,SAAWzE,EAAM0E,WACvBN,IAAa,KAAOA,IAAa,MAEpC,CACApE,EAAM2E,gB,CAER,OAAQP,GACN,IAAK,IACL,IAAK,aACHpE,EAAM2E,iBACN7I,KAAK+H,gBAAgBpE,GACrB,MACF,IAAK,YACHO,EAAM2E,iBACN7I,KAAK+I,oBAAoBpF,GACzB,MACF,IAAK,UACL,IAAK,YACH3D,KAAKkI,sBAAwB,KAC7BlI,KAAKgJ,0BAA0BrF,EAAOO,GACtC,MACF,IAAK,YACH,GAAIP,EAAMlD,MAAM8F,SAAW,EAAG,CAC5BrC,EAAM2E,iBACN7I,KAAK+I,oBAAoBpF,E,CAE3B,MAIJ3D,KAAKiJ,aAAa/E,EAAOkE,GACzBpI,KAAKgB,2BAA6B,IAAI,EAGhChB,KAAAkJ,YAAehF,IACrB,MAAMP,EAAQO,EAAM2D,OACpBlE,EAAMwF,QAAQ,EAGRnJ,KAAAoJ,WAAclF,IACpB,MAAMP,EAAQO,EAAM2D,OACpB,GAAIlE,IAAU3D,KAAKiF,oBAAsBjF,KAAKoC,cAAe,CAC3D,GAAIuB,EAAMlD,MAAM8F,SAAW,EAAG,CAC5B5C,EAAMlD,MAAQ,KAAKkD,EAAMlD,QACzBT,KAAK2E,cAAchB,E,MACd,GAAIA,EAAMlD,MAAM8F,SAAW,EAAG,CACnC5C,EAAMlD,MAAQ,IAAIkD,EAAMlD,QACxBT,KAAK2E,cAAchB,E,CAErB3D,KAAK8H,qBAAqBnE,E,MACrB,GAAIA,EAAO,CAChB3D,KAAKqJ,kBAAkB1F,E,GAInB3D,KAAAgJ,0BAA4B,CAClCrF,EACAO,KAEA,IAAIoF,EAAW,EACf,IAAIC,EAAW,GACf,GAAI5F,IAAU3D,KAAK8E,YAAa,CAC9BwE,EAAWtJ,KAAKsD,aAAe,KAAO,EAAI,EAC1CiG,EAAWvJ,KAAKsD,aAAe,KAAO,GAAK,E,CAE7C,IAAIkG,GAAO7F,EAAMlD,MACjB,GAAIyD,EAAMsE,MAAQ,UAAW,CAC3BgB,EAAMA,EAAM,EACZ,GAAIA,EAAMD,EAAUC,EAAMF,EAC1B3F,EAAMlD,MAAQ+I,EAAInF,WAAWkD,SAAS,EAAG,KACzCvH,KAAKgI,mBAAmBrE,E,CAE1B,GAAIO,EAAMsE,MAAQ,YAAa,CAC7BgB,EAAMA,EAAM,EACZ,GAAIA,EAAMF,EAAUE,EAAMD,EAC1B5F,EAAMlD,MAAQ+I,EAAInF,WAAWkD,SAAS,EAAG,KACzCvH,KAAKgI,mBAAmBrE,E,CAE1B3D,KAAK2E,cAAchB,GACnB3D,KAAK8H,qBAAqBnE,EAAM,EAG1B3D,KAAAyJ,iBAAoBC,IAC1B,GAAIA,GAAS1J,KAAKkB,eAAiBlB,KAAKiB,qBAAsB,CAC5D,GAAIjB,KAAKS,MAAO,CACdT,KAAKU,cAAcuG,SAAStD,IAC1BA,EAAMG,UAAUC,IAAI/D,KAAKO,aAAa,G,CAG1C,GACEP,KAAK+B,MACL/B,KAAKgC,SACJhC,KAAKgE,gBAAkBhE,KAAKiC,SAC7BjC,KAAKoH,kBAAoB,GACzB,CACApH,KAAK2J,sBAAsB3J,KAAKkB,cAChClB,KAAK4J,gC,MACA,KACH5J,KAAKkB,eAAiB,MAAQlB,KAAKiB,uBAAyB,OAC9DjB,KAAK6J,mBACL,CACA7J,KAAK2J,sBAAsB,KAAM,MACjC3J,KAAK6J,mBAAmBC,YAAc,E,CAExC9J,KAAKiB,qBAAuBjB,KAAKkB,aACjC,IAAKlB,KAAKgB,2BAA4B,CACpChB,KAAK+J,kBAAkB/J,KAAK+B,KAAM/B,KAAKgC,OAAQhC,KAAKiC,O,IAKlDjC,KAAA2J,sBAAwB,CAAClJ,EAAoBiJ,EAAQ,SAC3D,GAAI1J,KAAKS,QAAUA,GAASiJ,EAAO,CACjC1J,KAAKgK,iBAAiBvJ,GACtBT,KAAKS,MAAQA,C,GAITT,KAAA+G,gBAAmBhF,IACzB,IAAIkI,EAAclI,EAClB,GAAI/B,KAAKmC,SAAW,MAAQJ,EAAO,GAAIkI,EAAclI,EAAO,GAC5D,GAAI/B,KAAKmC,SAAW,MAAQJ,IAAS,GAAIkI,EAAc,EAEvD,OAAOA,CAAW,EAGZjK,KAAAgK,iBAAoBvD,IAC1B,MAAM1E,EAAOmI,SAASlK,KAAK+B,MAC3B,MAAMC,EAASkI,SAASlK,KAAKgC,QAC7B,MAAMC,EAASiI,SAASlK,KAAKiC,QAC7B,MAAMC,EAAcgI,SAASlK,KAAKkC,aAClC,MAAMC,EAASnC,KAAKmC,OAEpB,IAAIgI,EAAc,MAClB,GAAInK,KAAKoC,cAAe,CACtB+H,EACEnK,KAAK+B,OAAS,IACd/B,KAAKgC,SAAW,IAChBhC,KAAKiC,SAAW,IAChBjC,KAAKkC,cAAgB,E,MAClB,GAAIlC,KAAKqC,aAAerC,KAAKC,oBAAqB,CACvDkK,EACEnK,KAAK+B,OAAS,IAAM/B,KAAKgC,SAAW,IAAMhC,KAAKiC,SAAW,E,MACvD,GAAIjC,KAAKqC,aAAe,QAAS,CACtC8H,EAAcnK,KAAK+B,OAAS,IAAM/B,KAAKgC,SAAW,E,CAGpD,IAAIqF,EAAOZ,EACX,IAAIwD,EAAclI,EAClB,GACEA,GAAQ,MACRI,GACAnC,KAAKsD,aAAe,MACpBtD,KAAKiD,eACL,CACAgH,EAAcjK,KAAK+G,gBAAgBhF,GACnCsF,EAAO,IAAI+C,KACX/C,EAAKgD,SAASJ,IAAW,MAAXA,SAAW,EAAXA,EAAe,GAC7B5C,EAAKiD,WAAWtI,IAAM,MAANA,SAAM,EAANA,EAAU,GAC1BqF,EAAKkD,WAAWtI,IAAM,MAANA,SAAM,EAANA,EAAU,GAC1BjC,KAAKoC,eAAiBiF,EAAKmD,gBAAgBtI,IAAW,MAAXA,SAAW,EAAXA,EAAe,E,CAG5DlC,KAAKkB,aAAemG,EAEpB,MAAMoD,EACJzK,KAAK+B,OAAS,IACd/B,KAAKgC,SAAW,IAChBhC,KAAKiC,SAAW,IAChBjC,KAAKkC,cAAgB,GAEvB,MAAMwI,EACJD,GACAzK,KAAKmC,SAAWnC,KAAK2B,gBACrB3B,KAAKuB,eAAiB,IACtBvB,KAAKwB,iBAAmB,IACxBxB,KAAKyB,iBAAmB,IACxBzB,KAAK0B,sBAAwB,GAE/B,IAAKgJ,EAAmB,CACtB1K,KAAK2K,aAAaC,KAAK,CACrBnK,MAAO0J,EAAc9C,EAAO,KAC5BwD,WAAY,CACV9I,KAAM/B,KAAK+B,OAAS,GAAK,KAAO/B,KAAK+B,KACrCC,OAAQhC,KAAKgC,SAAW,GAAK,KAAOhC,KAAKgC,OACzCC,OAAQjC,KAAKiC,SAAW,GAAK,KAAOjC,KAAKiC,OACzCC,YAAalC,KAAKkC,cAAgB,GAAK,KAAOlC,KAAKkC,YACnDC,OAAQnC,KAAKmC,SAAW,GAAK,KAAOnC,KAAKmC,S,CAK/CnC,KAAKuB,aAAevB,KAAK+B,KACzB/B,KAAKwB,eAAiBxB,KAAKgC,OAC3BhC,KAAKyB,eAAiBzB,KAAKiC,OAC3BjC,KAAK0B,oBAAsB1B,KAAKkC,YAChClC,KAAK2B,eAAiB3B,KAAKmC,MAAM,EAG3BnC,KAAA8K,QAAWzD,IACjB,GAAIA,IAAS,MAAQA,IAAS,IAAMA,IAAS0D,UAAW,CACtD,GAAI/K,KAAK+B,KAAM/B,KAAK+B,KAAO,GAC3B,GAAI/B,KAAKgC,OAAQhC,KAAKgC,OAAS,GAC/B,GAAIhC,KAAKiC,OAAQjC,KAAKiC,OAAS,GAC/B,GAAIjC,KAAKkC,YAAalC,KAAKkC,YAAc,GACzClC,KAAKU,cAAcuG,SAAStD,IAC1BA,EAAMG,UAAUkH,OAAOhL,KAAKO,cAC5BP,KAAKmF,gBAAgBxB,EAAO,MAAM,IAEpC3D,KAAKyJ,iBAAiB,K,KACjB,CACL,UAAWpC,IAAS,SAAU,CAC5B,MAAM4D,EAAY5D,EAAK6D,MACrB,+CAEF,GAAID,EAAW,CACbjL,KAAK+B,KAAOkJ,EAAU,GACtBjL,KAAKgC,OAASiJ,EAAU,GACxBjL,KAAKiC,OAASgJ,EAAU,E,KACnB,CACL,MAAMpE,EAAQQ,EAAK8D,MAAM,QACzBnL,KAAK+B,KAAO8E,EAAM,IAAM,GACxB7G,KAAKgC,OAAS6E,EAAM,IAAM,GAC1B7G,KAAKiC,OAAS4E,EAAM,IAAM,GAC1B7G,KAAKkC,YAAc2E,EAAM,IAAM,E,OAE5B,GAAIQ,aAAgB+C,KAAM,CAC/BpK,KAAK+B,KAAOsF,EAAKrB,WAAW3B,WAAWkD,SAAS,EAAG,KACnDvH,KAAKgC,OAASqF,EAAKnB,aAAa7B,WAAWkD,SAAS,EAAG,KACvDvH,KAAKiC,OAASoF,EAAKlB,aAAa9B,WAAWkD,SAAS,EAAG,KACvD,GAAIvH,KAAKoC,cAAe,CACtBpC,KAAKkC,YAAcmF,EAAKjB,kBAAkB/B,WAAWkD,SAAS,EAAG,I,GAIvEvH,KAAKkF,sBAAsB,EAGrBlF,KAAAoL,eAAiB,CACvBC,EACAC,EACAC,EACAC,K,YAEA,GAAIxL,KAAKU,cAAc6F,OAAQ,CAC7BvG,KAAKU,cAAcuG,SAAStD,IAC1BA,EAAMwD,gBAAgBnH,KAAKG,aAAa,IAE1C,IAAKkL,EAAW,EACd9C,EAAAvI,KAAK8E,eAAW,MAAAyD,SAAA,SAAAA,EAAErB,aAAalH,KAAKG,aAAc,O,CAEpD,IAAKmL,EAAa,EAChBG,EAAAzL,KAAK+E,iBAAa,MAAA0G,SAAA,SAAAA,EAAEvE,aAAalH,KAAKG,aAAc,O,CAEtD,IAAKoL,EAAa,EAChBG,EAAA1L,KAAKgF,iBAAa,MAAA0G,SAAA,SAAAA,EAAExE,aAAalH,KAAKG,aAAc,O,CAEtD,IAAKqL,EAAkB,EACrBG,EAAA3L,KAAKiF,sBAAkB,MAAA0G,SAAA,SAAAA,EAAEzE,aAAalH,KAAKG,aAAc,O,CAE3D,KAAMkL,GAAaC,GAAeC,GAAeC,GAAmB,CAClExL,KAAKU,cAAcuG,SAAStD,IAC1BA,EAAMuD,aAAalH,KAAKG,aAAc,OAAO,G,IAM7CH,KAAA4L,YAAc,K,MACpB5L,KAAKoB,WAAa,KAClB,GAAIpB,KAAK8E,YAAa,CACpB9E,KAAK8E,YAAYrE,MAAQ,E,CAE3B,GAAIT,KAAK+E,cAAe,CACtB/E,KAAK+E,cAActE,MAAQ,E,CAE7B,IAAKT,KAAKgE,gBAAkBhE,KAAKgF,cAAe,CAC9ChF,KAAKgF,cAAcvE,MAAQ,E,CAE7B,GAAIT,KAAKoC,eAAiBpC,KAAKiF,mBAAoB,CACjDjF,KAAKiF,mBAAmBxE,MAAQ,E,CAElCT,KAAK+B,KAAO,GACZ/B,KAAKgC,OAAS,GACdhC,KAAKiC,OAAS,GACdjC,KAAKkC,YAAc,GACnBlC,KAAKmC,OAAS,KACd,GAAInC,KAAKiD,eAAgB,EACvBsF,EAAAvI,KAAK6L,kBAAc,MAAAtD,SAAA,SAAAA,EACfuD,iBAAiB9L,KAAKE,wBACvB+G,SAAS8E,IACR,MAAMC,EAAYD,EAClB,GAAIC,EAAUC,QAAU,KAAM,CAC5BD,EAAUE,QAAU,I,KACf,CACLF,EAAUE,QAAU,K,KAI5BlM,KAAKyJ,iBAAiB,MACtBzJ,KAAKU,cAAcuG,SAAStD,IAC1BA,EAAMG,UAAUkH,OAAOhL,KAAKO,cAC5BP,KAAKmF,gBAAgBxB,EAAO,MAAM,IAEpC3D,KAAKoB,WAAa,MAClBpB,KAAKgB,2BAA6B,MAClChB,KAAKkF,uBACLlF,KAAKoH,gBAAkB,GACvB,GAAIpH,KAAK8E,YAAa,CACpB9E,KAAK8E,YAAYqH,O,GAIbnM,KAAA4J,+BAAiC,KACvC,GAAI5J,KAAKkB,cAAgBlB,KAAK6J,mBAAoB,CAChD,IAAIuC,EAAQpM,KAAKkB,aAAa8E,WAC9B,GAAIhG,KAAKsD,aAAe,MAAQtD,KAAKiD,eAAgB,CACnDmJ,EAAQpM,KAAK+G,gBAAgBqF,E,CAE/B,MAAMC,EAAWD,EAAM/H,WAAWkD,SAAS,EAAG,KAC9C,MAAM+E,EAAatM,KAAKkB,aACrBgF,aACA7B,WACAkD,SAAS,EAAG,KACf,MAAMgF,EAAavM,KAAKkB,aACrBiF,aACA9B,WACAkD,SAAS,EAAG,KACf,MAAMiF,EAAQxM,KAAKkB,aAChBkF,kBACA/B,WACAkD,SAAS,EAAG,KACf,GAAIvH,KAAKgE,eAAgB,CACvBhE,KAAK6J,mBAAmBC,YAAc,kBAAkBuC,KAAYC,G,MAC/D,IAAKtM,KAAKoC,cAAe,CAC9BpC,KAAK6J,mBAAmBC,YAAc,kBAAkBuC,KAAYC,KAAcC,G,KAC7E,CACLvM,KAAK6J,mBAAmBC,YAAc,kBAAkBuC,KAAYC,KAAcC,KAAcC,G,IAK9FxM,KAAA8H,qBAAwBnE,IAC9B,GAAIA,EAAMlD,MAAO,CACfkD,EAAMG,UAAUC,IAAI/D,KAAKO,a,KACpB,CACLoD,EAAMG,UAAUkH,OAAOhL,KAAKO,a,GAIxBP,KAAAyM,eAAiB,KACvBzM,KAAK8B,iBAAmB,MACxB9B,KAAK0M,OAAO9B,KAAK,CAAEnK,MAAOT,KAAKkB,cAAe,EAGxClB,KAAA2M,gBAAkB,K,QACxB,IACElB,GAAAlD,EAAAvI,KAAK4M,GAAGC,cAAU,MAAAtE,SAAA,SAAAA,EAAEuE,iBAAa,MAAArB,SAAA,SAAAA,EAAEsB,GAAG7B,MACpC,2CAEF,CACAlL,KAAK8B,iBAAmB,K,KACnB,CACL9B,KAAK8B,iBAAmB,I,CAE1B9B,KAAKgN,QAAQpC,KAAK,CAAEnK,MAAOT,KAAKkB,cAAe,EAGzClB,KAAAiN,gBAAkB,KACxBjN,KAAK8K,QAAQ9K,KAAKQ,cAClBR,KAAKkF,uBACLlF,KAAKyJ,iBAAiB,MAAM,EAGtBzJ,KAAAiJ,aAAe,CAAC/E,EAAsBkE,KAC5C,MAAMI,EAAMtE,EAAMsE,IAClB,MAAM7E,EAAQO,EAAM2D,OACpB,IAAIqF,EACJ,GAAIvJ,EAAO,CACTuJ,EAAiBvJ,EAAMlD,MAAM0M,UAC3BxJ,EAAMyJ,gBAAkB,EACxBzJ,EAAM0J,cAAgBtC,U,CAG1B,GACEvC,IAAQ,KACRA,IAAQ,KACRA,IAAQ,KACPtE,EAAMsE,KAAO,KACZtE,EAAMsE,KAAO,KACbJ,IACC8E,EACH,CACAhJ,EAAM2E,gB,GAIF7I,KAAA+H,gBAAmBuF,I,MACzBtN,KAAKkI,sBAAwB,OAC7BK,EAAAvI,KAAKU,cACHV,KAAKU,cAAc6M,WAAW5J,GAAUA,IAAU2J,IAAgB,MACnE,MAAA/E,SAAA,SAAAA,EAAE4D,OAAO,EAGJnM,KAAA+I,oBAAuBuE,I,MAC7BtN,KAAKkI,sBAAwB,OAC7BK,EAAAvI,KAAKU,cACHV,KAAKU,cAAc6M,WAAW5J,GAAUA,IAAU2J,IAAgB,MACnE,MAAA/E,SAAA,SAAAA,EAAE4D,OAAO,EAGJnM,KAAAqJ,kBAAqB1F,IAC3B,MAAM6J,EAAa7J,EAAMlD,MACzB,GAAI+M,EAAWjH,SAAW,EAAG,CAC3B5C,EAAMlD,MAAQ,IAAI+M,G,CAEpB,GAAI7J,EAAMlD,MAAO,CACfT,KAAK2E,cAAchB,E,GAIf3D,KAAA6F,cAAgB,CACtB9D,EACAC,EACAC,EACAC,EAA6B,QAE7B,IACGwC,EAAc3C,KACd2C,EAAc1C,KACdhC,KAAKgE,iBAAmBU,EAAczC,OACrCjC,KAAKoC,eACJF,IAAgB,OAASwC,EAAcxC,IAC1C,CACA,MAAMuL,EAAI,IAAIrD,KACdqD,EAAEpD,UAAUtI,GAAOC,EAAQhC,KAAKgE,eAAiB,GAAK/B,EAAQ,GAC9D,GAAIjC,KAAKoC,eAAiBF,IAAgB,KAAM,CAC9CuL,EAAEjD,iBAAiBtI,E,CAErB,OAAOuL,C,KACF,CACL,OAAO,I,GAIHzN,KAAA0N,iBAAmB,K,MACzB1N,KAAKU,cAAgB,GACrB,MAAMiN,GAAepF,EAAAvI,KAAK4M,GAAGC,cAAU,MAAAtE,SAAA,SAAAA,EAAEuD,iBAAiB,SAC1D,GAAI6B,EAAc,CAChBA,EAAa1G,SAAStD,GAAU3D,KAAKU,cAAckN,KAAKjK,I,GAIpD3D,KAAA+J,kBAAoB,CAC1BhI,EACAC,EACAC,KAEAjC,KAAK8E,cAAgB9E,KAAK8E,YAAYrE,MAAQsB,GAC9C/B,KAAK+E,gBAAkB/E,KAAK+E,cAActE,MAAQuB,GAClDhC,KAAKgF,gBAAkBhF,KAAKgF,cAAcvE,MAAQwB,EAAO,EAGnDjC,KAAA6N,qBAAuB,K,OAC7BtF,EAAAvI,KAAK8N,wBAAoB,MAAAvF,SAAA,SAAAA,EAAEpB,gBAAgBnH,KAAKK,iBAAiB,EAG3DL,KAAA+N,kBAAoB,K,YAC1B,GACE/N,KAAKsC,YACLiG,EAAAvI,KAAK8N,wBAAoB,MAAAvF,SAAA,SAAAA,EAAEyF,aAAahO,KAAKK,mBAC7C,CACAL,KAAK6N,uBACL,M,CAEF,GAAI7N,KAAKsC,SAAU,CACjB,M,CAEF,MAAM2L,GAAUxC,EAAAzL,KAAK4M,GAAGC,cAAU,MAAApB,SAAA,SAAAA,EAAEyC,cAAc,SAClD,MAAMC,EAAU,GAAGnO,KAAK2C,gBACxB,GAAIsL,IAAY,MAAQA,IAAYlD,UAAW,CAC7CkD,EAAQlB,GAAKoB,C,CAEf,MAAMC,GACH1J,EAAc1E,KAAKwD,oBACnBkB,EAAc1E,KAAKoH,iBACtB,MAAMiH,EAAa,IAAG3C,EAAAuC,IAAO,MAAPA,SAAO,SAAPA,EAASlB,MAAE,MAAArB,SAAA,EAAAA,EAAI,MACnC1L,KAAKsO,sBACHC,EACFvO,KAAK4M,GACL5M,KAAK2C,QACL3C,KAAKwO,aAAe,IAAMxO,KAAKwO,aAAexO,KAAKyO,kBACnDL,MACGpO,KAAKkB,aAAelB,KAAK0O,mBAAqB,MACjD1O,KAAK2O,mBAEPhD,EAAA3L,KAAK8N,wBAAoB,MAAAnC,SAAA,SAAAA,EAAEzE,aAAalH,KAAKK,iBAAkBgO,EAAW,EAGpErO,KAAA4O,iBAAmB,KACzB,MAAMC,EAAY7O,KAAKqC,WAAW8I,MAAM,QACxC,OAAO0D,EAAUC,KAAKC,IACpB,OAAQA,GACN,IAAK,KACH,OACEC,EAAA,SACEC,MAAM,aACNlC,GAAG,aACHmC,IAAMtC,GAAQ5M,KAAK8E,YAAc8H,EAAG,aACzB,OACXuC,YAAY,KACZ7M,SAAUtC,KAAKsC,SAAQ,gBACR,GAAGtC,KAAKgD,WACvBoM,UAAU,SACVC,QAAQ,SACRC,QAAStP,KAAKuP,YACdC,UAAYtL,GACVlE,KAAKmI,cAAcjE,EAAOlE,KAAKqF,oBAIvC,IAAK,KACH,OACE2J,EAAA,SACEjC,GAAG,eACHkC,MAAM,eACNC,IAAMtC,GAAQ5M,KAAK+E,cAAgB6H,EAAG,aAC3B,SACXuC,YAAY,KACZ7M,SAAUtC,KAAKsC,SAAQ,gBACR,GAAGtC,KAAKgD,WACvBoM,UAAU,SACVC,QAAQ,SACRC,QAAStP,KAAKuP,YACdC,UAAYtL,GACVlE,KAAKmI,cAAcjE,EAAOlE,KAAKsF,sBAIvC,IAAK,KACH,IAAKtF,KAAKgE,eAAgB,CACxB,OACEgL,EAAA,SACEjC,GAAG,eACHkC,MAAM,eACNC,IAAMtC,GAAQ5M,KAAKgF,cAAgB4H,EAAG,aAC3B,SACXuC,YAAY,KACZ7M,SAAUtC,KAAKsC,SAAQ,gBACR,GAAGtC,KAAKgD,WACvBoM,UAAU,SACVC,QAAQ,SACRC,QAAStP,KAAKuP,YACdC,UAAYtL,GACVlE,KAAKmI,cAAcjE,EAAOlE,KAAKuF,qB,CAKvC,MACF,IAAK,MACH,GAAIvF,KAAKoC,cAAe,CACtB,OACE4M,EAAA,SACEjC,GAAG,oBACHkC,MAAM,oBACNC,IAAMtC,GAAQ5M,KAAKiF,mBAAqB2H,EAAG,aAChC,cACXuC,YAAY,MACZ7M,SAAUtC,KAAKsC,SAAQ,gBACR,GAAGtC,KAAKgD,WACvBoM,UAAU,SACVC,QAAQ,SACRC,QAAStP,KAAKuP,YACdC,UAAYtL,GACVlE,KAAKmI,cAAcjE,EAAOlE,KAAKwF,0B,CAKvC,OAAO,KACT,QACE,OAAO,K,GAEX,EAGIxF,KAAAyP,qBAAuB,KAC7B,GAAIzP,KAAKoC,cAAe,CACtB,MAAO,uC,CAET,MAAO,0BAA0B,EAG3BpC,KAAA0P,oBAAuBlM,IAC7B,IAAImM,EAAmB,GACvB,GAAI3P,KAAKgD,SAAU,CACjB2M,GAAoB,U,CAEtB,GAAInM,IAAqBoM,EAAoBC,MAAO,CAClDF,GAAoB,e,CAEtB,OAAOA,IAAqB,GAAK,GAAKA,EAAmB,IAAI,EAGvD3P,KAAAgI,mBAAsBrE,I,MAC5B,MAAMmM,GAAavH,EAAAvI,KAAK4M,GAAGC,cAAU,MAAAtE,SAAA,SAAAA,EAAE2F,cAAc,gBACrD,GAAI4B,EAAY,CACdA,EAAWhG,YAAc,GAAGnG,EAAMlD,UAAUkD,EAAMqK,aAChDhO,KAAKI,a,GAKHJ,KAAAuP,YAAerL,I,MACrBA,EAAM2E,iBACN,MAAMjF,IAAc2E,EAAArE,EAAM6L,iBAAa,MAAAxH,SAAA,SAAAA,EAAEyH,QAAQ,UAAW,GAC5D,MAAMjP,EAAcf,KAAKiQ,wBAAwBrM,GACjD5D,KAAKkQ,4BAA4BnP,EAAa6C,EAAaM,EAAM,EAG3DlE,KAAAmQ,iBAAmB,KACzBnQ,KAAK8B,iBAAmB,KACxB9B,KAAK6B,mBAAqB,KAC1B7B,KAAKgB,2BAA6B,IAAI,EAGhChB,KAAAoQ,gBAAmBC,IACzBrQ,KAAK6B,mBAAqB,MAC1B7B,KAAKgB,2BAA6B,KAClC,MAAMsP,EAAgBD,EAAGC,cACzB,IAAIA,IAAa,MAAbA,SAAa,SAAbA,EAAevD,MAAO,eAAgB,CACxC/M,KAAK8B,iBAAmB,MACxB,M,CAEF,GAAIwO,IAAa,MAAbA,SAAa,SAAbA,EAAevD,GAAG7B,MAAM,sCAAuC,CACjElL,KAAK8B,iBAAmB,MACxB,M,CAEF9B,KAAK8B,iBAAmB,IAAI,EAGtB9B,KAAAuQ,iBAAmB,KACzBvQ,KAAK4B,aAAe,IAAI,EAGlB5B,KAAAwQ,gBAAkB,KACxBxQ,KAAK4B,aAAe,KAAK,EAGnB5B,KAAAiQ,wBAA2BxP,IACjC,GAAIT,KAAKgE,eAAgB,CACvB,GAAI,gBAAgB0E,KAAKjI,GAAQ,CAC/B,OAAOA,C,OAEJ,GAAIT,KAAKoC,cAAe,CAC7B,GAAI,+BAA+BsG,KAAKjI,GAAQ,CAC9C,OAAOA,C,CAET,GAAI,gCAAgCiI,KAAKjI,GAAQ,CAC/C,OAAOA,EAAMgQ,QAAQ,IAAK,G,CAE5B,MAAMC,EAAWjQ,EAAMyK,MAAM,iCAC7B,GAAIwF,EAAU,CACZ,OAAOA,EAAS,E,MAEb,CACL,GAAI,sBAAsBhI,KAAKjI,GAAQ,CACrC,OAAOA,C,CAET,GAAI,uBAAuBiI,KAAKjI,GAAQ,CACtC,OAAOA,EAAMgQ,QAAQ,IAAK,G,CAE5B,MAAMC,EAAWjQ,EAAMyK,MAAM,wBAC7B,GAAIwF,EAAU,CACZ,OAAOA,EAAS,E,EAGpB,OAAO,KAAK,EAGN1Q,KAAAkQ,4BAA8B,CACpCnP,EACA6C,EACAM,KAEA,GAAInD,EAAa,CACf,MAAM8N,EAAY9N,EAAYoK,MAAM,QACpCnL,KAAKU,cAAcuG,SAAQ,CAACtD,EAAOgN,K,YACjChN,EAAMG,UAAUC,IAAI/D,KAAKO,cACzB,IAAIqQ,EAAY/B,EAAU8B,IAAU,GACpC,GAAIhN,IAAU3D,KAAKiF,oBAAsBjF,KAAKoC,cAAe,CAC3DwO,EAAYA,EAAUC,MAAM,EAAG,E,KAC1B,CACLD,EAAYA,EAAUC,MAAM,EAAG,E,CAEjC,GAAIlN,IAAU3D,KAAK8E,YAAa,CAC9B,IAAIgM,EACJ,GAAI9Q,KAAKsD,aAAe,MAAQtD,KAAKiD,eAAgB,CACnD,GAAIiH,SAAS0G,GAAa,GAAI,CAC5BA,GAAa1G,SAAS0G,GAAa,IAChCvM,WACAkD,SAAS,EAAG,KACf,GAAI2C,SAAS0G,GAAa,GAAI,CAC5B,M,KACK,CACL5Q,KAAKmC,OAAS,MACdoG,EAAAvI,KAAK6L,kBAAc,MAAAtD,SAAA,SAAAA,EACfuD,iBAAiB9L,KAAKE,wBACvB+G,SAAS8E,IACR,MAAMC,EAAYD,EAClB,GAAIC,EAAUC,QAAU,KAAM,CAC5B6E,EAAe9E,C,KACV,CACLA,EAAUE,QAAU,K,KAG1B,GAAI4E,EAAc,EAChBrF,EAAAzL,KAAK6L,kBAAc,MAAAJ,SAAA,SAAAA,EAAEsF,gBAAgBD,GACrCA,EAAa5E,QAAU,I,CAEzBlM,KAAKoH,gBAAkB,GACvBpH,KAAKwD,iBAAmB,E,MAErB,CACL,GAAI0G,SAAS0G,KAAe,EAAG,CAC7BA,EAAY,I,CAEd5Q,KAAKmC,OAAS,MACduJ,EAAA1L,KAAK6L,kBAAc,MAAAH,SAAA,SAAAA,EACfI,iBAAiB9L,KAAKE,wBACvB+G,SAAS8E,IACR,MAAMC,EAAYD,EAClB,GAAIC,EAAUC,QAAU,KAAM,CAC5B6E,EAAe9E,C,KACV,CACLA,EAAUE,QAAU,K,KAG1B,GAAI4E,EAAc,EAChBnF,EAAA3L,KAAK6L,kBAAc,MAAAF,SAAA,SAAAA,EAAEoF,gBAAgBD,GACrCA,EAAa5E,QAAU,I,CAEzBlM,KAAKoH,gBAAkB,GACvBpH,KAAKwD,iBAAmB,E,GAI9BG,EAAMlD,MAAQmQ,EACd5Q,KAAK2E,cAAchB,GACnB3D,KAAKqJ,kBAAkB1F,EAAM,IAE/B,GACE3D,KAAKgE,gBACLhE,KAAKiC,SAAW,IAChBjC,KAAKkC,cAAgB,GACrB,CACAlC,KAAKiC,OAAS,GACdjC,KAAKkC,YAAc,E,MAEhB,CACL,MAAM8O,EAASpN,EAAYqN,OAC3B,IAAKD,EAAOzK,SAAW,GAAKyK,EAAOzK,SAAW,IAAM2K,EAAUF,GAAS,CACrEhR,KAAK0D,mBAAmBQ,EAAM2D,OAAQmJ,GACtChR,KAAK2E,cAAcT,EAAM2D,O,KACpB,CACL7H,KAAKoH,gBAAkB,wBACrBlD,EAAM2D,OACNmG,aAAahO,KAAKI,cACpBJ,KAAKwD,iBAAmBoM,EAAoBC,K,IAK1C7P,KAAAmR,WAAcC,I,MACpBpR,KAAKmC,OAASiP,EAAenF,OAC7B1D,EAAAvI,KAAK6L,kBAAc,MAAAtD,SAAA,SAAAA,EAAEwI,gBAAgBK,EAAe,C,CA52CtD,iBAAAC,GACE,GACErR,KAAKwC,qBACJxC,KAAKmB,kBACLnB,KAAKoB,cAEJpB,KAAK+B,MACL/B,KAAKgC,QACLhC,KAAKiC,SACJjC,KAAKoC,cAAgBpC,KAAKkC,YAAc,QAE3ClC,KAAKkB,eAAiB,KACtB,CACAlB,KAAKgK,iBAAiBhK,KAAKkB,a,EAU/B,oBAAAoQ,GACEC,EAAoBvR,KAAKsC,SAAUtC,KAAK4M,G,CAkB1C,sBAAA4E,CAAuBC,EAAa,OAClC,GAAI/M,EAAc1E,KAAKwO,aAAeiD,IAAe,KACnDzR,KAAKwO,WAAaxO,KAAKyO,iB,CAiC3B,eAAAiD,GACE1R,KAAKqB,QAAUoE,EAAgBzF,KAAK6C,KAAK6C,I,CAQ3C,eAAAiM,GACE3R,KAAKsB,QAAUmE,EAAgBzF,KAAK8C,KAAK4C,I,CAa3C,oBAAAkM,G,QACE,MAAM3D,GAAU1F,EAAAvI,KAAK4M,GAAGC,cAAU,MAAAtE,SAAA,SAAAA,EAAE2F,cAAc,SAClD,GAAIlO,KAAKgD,SAAU,CACjB,MAAM6O,EAAeC,SAASC,cAAc,QAC5CF,EAAa3K,aAAa,KAAM,iBAChC2K,EAAa3K,aAAa,cAAe,QACzC2K,EAAa/H,YAAc,KAC3BmE,IAAO,MAAPA,SAAO,SAAPA,EAAS+D,YAAYH,E,KAChB,CACL,MAAMA,GAAepG,EAAAzL,KAAK4M,GAAGC,cAAU,MAAApB,SAAA,SAAAA,EAAEyC,cAAc,kBACvD,GAAI2D,EAAc,CAChBA,EAAa7G,Q,GAmCnB,sBAAAiH,GACE,MAAMC,EAAuBlS,KAAKyO,kBAClCzO,KAAKyO,kBAAoB,cAAczO,KAAKqC,aAC5CrC,KAAKwR,uBAAuBxR,KAAKwO,aAAe0D,E,CAyDlD,oBAAAC,GACEC,EAAwBpS,KAAK4M,GAAI5M,KAAKiN,gB,CAGxC,iBAAAoF,GACErS,KAAKiS,yBACLjS,KAAKwR,yBACL,GAAIxR,KAAKS,MAAO,CACdT,KAAKmB,gBAAkB,KACvBnB,KAAK8K,QAAQ9K,KAAKS,M,CAEpBT,KAAKsO,mBAAqB,GAAGtO,KAAK2C,6BAClC3C,KAAK2O,gBAAkB,GAAG3O,KAAK2C,yBAC/B3C,KAAK0O,mBAAqB,GAAG1O,KAAK2C,6BAClC2P,EAAqBtS,KAAK4M,GAAI5M,KAAKiN,iBACnCsE,EAAoBvR,KAAKsC,SAAUtC,KAAK4M,G,CAG1C,gBAAA2F,GACEvS,KAAK0N,mBACL8E,EACE,CAAC,CAAEC,KAAMzS,KAAKiM,MAAOyG,SAAU,UAC/B,cAEF,GAAI1S,KAAKS,MAAO,CACdT,KAAK+J,kBAAkB/J,KAAK+B,KAAM/B,KAAKgC,OAAQhC,KAAKiC,QACpDjC,KAAKU,cAAcuG,SAAStD,IAC1BA,EAAMG,UAAUC,IAAI/D,KAAKO,aAAa,G,CAG1CP,KAAKoL,eACHpL,KAAKW,YACLX,KAAKY,cACLZ,KAAKa,cACLb,KAAKc,oBAEP,GAAId,KAAKS,MAAO,CACdT,KAAK4J,gC,CAEP5J,KAAKU,cAAcuG,SAAStD,IAC1BA,EAAMgP,iBAAiB,QAAS3S,KAAK2H,aACrChE,EAAMgP,iBAAiB,QAAS3S,KAAKkJ,aACrCvF,EAAMgP,iBAAiB,OAAQ3S,KAAKoJ,WAAW,IAEjDpJ,KAAK4R,sB,CAGP,mBAAAgB,GACE,IAAK5S,KAAKgB,2BAA4BhB,KAAK8K,QAAQ9K,KAAKS,OACxDT,KAAKoL,eACHpL,KAAKW,YACLX,KAAKY,cACLZ,KAAKa,cACLb,KAAKc,oBAEPd,KAAKyJ,iBAAiB,OACtBzJ,KAAKgB,2BAA6B,K,CAGpC,kBAAA6R,GACE,GAAI7S,KAAK8B,iBAAkB,CACzB9B,KAAK6N,uBACL,M,CAEF7N,KAAK+N,mB,CAQP,aAAM+E,GACJ,OAAO9S,KAAKkB,Y,CAOd,yBAAM6R,CAAoBtM,GACxBzG,KAAKmB,gBAAkB,KACvBnB,KAAK8K,QAAQrE,GACbzG,KAAKgK,iBAAiBvD,GACtBzG,KAAKmB,gBAAkB,K,CA6kCzB,MAAA6R,GACE,MAAMrQ,QACJA,EAAOsJ,MACPA,EAAK3J,SACLA,EAAQkM,WACRA,EAAU/L,eACVA,EAAcC,UACdA,EAASQ,gBACTA,EAAeC,gBACfA,EAAeC,KACfA,EAAIC,MACJA,EAAKE,mBACLA,GACEvD,KACJ,MAAMiT,GAAuBvO,EAAc1E,KAAKwD,kBAChD,MAAMA,EAAmByP,EACrBjT,KAAKwD,kBACJkB,EAAc1E,KAAKoH,iBACpBwI,EAAoBC,MACpB,GACJ,MAAMqD,EAAgB,uEAAuElT,KAAKyP,0BAClG0D,EACE,KACAnT,KAAK4M,GACL5M,KAAK+C,KACL/C,KAAK6F,cAAc7F,KAAK+B,KAAM/B,KAAKgC,OAAQhC,KAAKiC,QAChDjC,KAAKsC,UAEP,MAAM8Q,KACJlQ,KAEEwB,EAAc1E,KAAK+B,OACnB2C,EAAc1E,KAAKgC,SACnB0C,EAAc1E,KAAKiC,UAIvB,GAAIjC,KAAKiD,gBAAkBjD,KAAKsD,aAAe,KAAM,CACnDtD,KAAKiD,eAAiB,K,CAGxB,OACE+L,EAACqE,EAAI,CAAA7K,IAAA,2CACHyG,MAAO,CACL,CAAC,YAAY5L,KAAUA,IAAU,UACjC,CAAC,0BAA2Bf,EAC5B,CAAC,iBAAiBc,KAAS,MAE7BkQ,OAAQtT,KAAKyM,eACb8G,QAASvT,KAAK2M,iBAEdqC,EAAA,sBAAAxG,IAAA,2CAAoBlG,SAAUA,KACzBI,GAAaD,IACduM,EAAA,kBAAAxG,IAAA,2CACEgL,IAAK7Q,EACLsJ,MAAOA,EACPvJ,UAAWA,EACX8L,YAAa/L,EAAiB+L,EAAa,GAC3ClM,SAAUA,GAEV0M,EAAA,QAAAxG,IAAA,2CAAMzF,KAAK,cAAc0Q,KAAK,iBAGlCzE,EAAA,QAAAxG,IAAA,2CAAMuE,GAAI/M,KAAKsO,mBAAoBW,MAAM,UAAS,cAAa,QAC5DjP,KAAK0P,oBAAoBlM,GACzBd,GAAa,GAAGuJ,MAChBxJ,GAAkB,GAAG+L,MACrB,GAAGxO,KAAKyO,sBAEXO,EAAA,QAAAxG,IAAA,2CAAMuE,GAAI/M,KAAK2O,gBAAiBM,MAAM,UAAS,cAAa,QACzDiE,GAEHlE,EAAA,QAAAxG,IAAA,2CAAMuE,GAAG,cAAa,YAAW,YAAYkC,MAAM,YACnDD,EAAA,OAAAxG,IAAA,2CACEyG,MAAO,CACL,oBAAqBjP,KAAKiD,iBAAmB,OAG/C+L,EAAA,gCAAAxG,IAAA,2CACEuE,GAAIpK,EACJuM,IAAMtC,GACH5M,KAAK8N,qBAAuBlB,EAE/BtK,SAAUA,EACVkB,iBAAkBA,EAClBJ,KAAMA,EACNsQ,KAAK,QACLzE,MAAO,CAAE,CAAC,YAAY5L,KAAUA,IAAU,YAE1C2L,EAAA,OAAAxG,IAAA,2CAAKyG,MAAM,mBACTD,EAAA,OAAAxG,IAAA,2CAAKyG,MAAM,eACR,CACCjP,KAAK4O,mBAAmB,GACxB,IACA5O,KAAK4O,mBAAmB,IACvB5O,KAAKgE,eACF,CAAC,IAAKhE,KAAK4O,mBAAmB,IAC9B,KACJ5O,KAAKoC,cACD,CAAC,IAAKpC,KAAK4O,mBAAmB,IAC9B,OAGRI,EAAA,OAAAxG,IAAA,2CAAKyG,MAAM,kBACR/L,GACC8L,EAAA,aAAAxG,IAAA,2CACEuE,GAAG,eAAc,aACN,cACXkC,MAAO,CACL,CAAC,gBAAiB,KAClB,CAAC,UACCvK,EAAc1E,KAAK+B,OACnB2C,EAAc1E,KAAKgC,SACnB0C,EAAc1E,KAAKiC,SAEvBK,SAAUtC,KAAKsC,SACfqR,UAAWC,EACXC,QAAS7T,KAAK4L,YACd2H,QAASvT,KAAKmQ,iBACdmD,OAAQtT,KAAKoQ,gBACb0D,QAAQ,gBACRzQ,MAAOrD,KAAK6B,mBAAqB,QAAU,OAC3CuB,KAAMA,IAGTD,GACC6L,EAAA,OAAAxG,IAAA,2CAAKyG,MAAM,6BACTD,EAAA,OAAAxG,IAAA,2CAAKyG,MAAO,CAAE8E,QAASX,EAAahQ,CAACA,GAAO,QAC5C4L,EAAA,aAAAxG,IAAA,2CACEuE,GAAG,eAAc,aACN,gBAAe,gBACZ,SACdkC,MAAM,eACN3M,SAAUtC,KAAKsC,SACfqR,UAAWK,EACXF,QAAQ,gBACR1Q,KAAMA,EACNmQ,QAASvT,KAAKuQ,iBACd+C,OAAQtT,KAAKwQ,gBACbnN,MAAOrD,KAAK4B,aAAe,QAAU,aAOhD5B,KAAKiD,gBACJ+L,EAAA,0BAAAxG,IAAA,yDACc,SAAQ,mBACH,eACjB0G,IAAMtC,GACH5M,KAAK6L,eAAiBe,EAEzBtK,SAAUA,EACV2M,MAAM,eAAc,gBACN,OACdgF,WAAaC,GACXlU,KAAKmR,WAAW+C,EAAEC,OAAO/C,gBAE3B5B,UAAY0E,IACV,GAAIA,EAAE1L,MAAQ,OAAS0L,EAAEE,SAAU,CACjCF,EAAErL,iBACF,GAAI7I,KAAKU,eAAiBV,KAAKU,cAAc6F,OAAS,EAAG,CACvD,MAAM8N,EAAYrU,KAAKU,cACrBV,KAAKU,cAAc6F,OAAS,GAE9B8N,IAAS,MAATA,SAAS,SAATA,EAAWlI,O,KAKjB6C,EAAA,oBAAAxG,IAAA,2CACEyD,MAAM,KACN3J,SAAUA,EACV4J,QAAS,OAEX8C,EAAA,oBAAAxG,IAAA,2CACEyD,MAAM,KACN3J,SAAUA,MAKlB0M,EAAA,QAAAxG,IAAA,2CAAMuE,GAAI/M,KAAK0O,mBAAoBO,MAAM,UAAS,YAAW,UAC3DD,EAAA,QAAAxG,IAAA,2CACE0G,IAAMtC,GAAQ5M,KAAK6J,mBAAqB+C,EACxC8G,KAAK,YAGT1E,EAAA,uBAAAxG,IAAA,2CACE8L,OAAQ9Q,EACR+Q,QACEtB,EAAsBjT,KAAKyD,eAAiBzD,KAAKoH,gBAEnDoM,IAAK7Q,EACL6R,aAAcjR,K","ignoreList":[]}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{r as t,c as o,h as e,H as n,g as i}from"./p-8e4e97b4.js";import{o as r,N as c,r as l,i as a}from"./p-e519f607.js";const g='/*! normalize.css v8.0.1 | MIT License | github.com/necolas/normalize.css */html{line-height:1.15;-webkit-text-size-adjust:100%;}body{margin:0}main{display:block}h1{font-size:2em;margin:0.67em 0}hr{box-sizing:content-box;height:0;overflow:visible;}pre{font-family:monospace, monospace;font-size:1em;}a{background-color:transparent}abbr[title]{border-bottom:none;text-decoration:underline;-webkit-text-decoration:underline dotted;text-decoration:underline dotted;}b,strong{font-weight:bolder}code,kbd,samp{font-family:monospace, monospace;font-size:1em;}small{font-size:80%}sub,sup{font-size:75%;line-height:0;position:relative;vertical-align:baseline}sub{bottom:-0.25em}sup{top:-0.5em}img{border-style:none}button,input,optgroup,select,textarea{font-family:inherit;font-size:100%;line-height:1.15;margin:0;}button,input{overflow:visible}button,select{text-transform:none}button,[type="button"],[type="reset"],[type="submit"]{-webkit-appearance:button}button::-moz-focus-inner,[type="button"]::-moz-focus-inner,[type="reset"]::-moz-focus-inner,[type="submit"]::-moz-focus-inner{border-style:none;padding:0}button:-moz-focusring,[type="button"]:-moz-focusring,[type="reset"]:-moz-focusring,[type="submit"]:-moz-focusring{outline:1px dotted ButtonText}fieldset{padding:0.35em 0.75em 0.625em}legend{box-sizing:border-box;color:inherit;display:table;max-width:100%;padding:0;white-space:normal;}progress{vertical-align:baseline}textarea{overflow:auto}[type="checkbox"],[type="radio"]{box-sizing:border-box;padding:0;}[type="number"]::-webkit-inner-spin-button,[type="number"]::-webkit-outer-spin-button{height:auto}[type="search"]{-webkit-appearance:textfield;outline-offset:-2px;}[type="search"]::-webkit-search-decoration{-webkit-appearance:none}::-webkit-file-upload-button{-webkit-appearance:button;font:inherit;}details{display:block}summary{display:list-item}template{display:none}[hidden]{display:none}html,body,div,span,applet,object,iframe,h1,h2,h3,h4,h5,h6,p,blockquote,pre,a,abbr,acronym,address,big,cite,code,del,dfn,em,img,ins,kbd,q,s,samp,small,strike,strong,sub,sup,tt,var,b,u,i,center,dl,dt,dd,ol,ul,li,fieldset,form,label,legend,table,caption,tbody,tfoot,thead,tr,th,td,article,aside,canvas,details,embed,figure,figcaption,footer,header,hgroup,menu,nav,output,ruby,section,summary,time,mark,audio,video{margin:0;padding:0;border:0;font-size:100%;font-style:inherit;vertical-align:baseline}:host{--toggle-button-border:var(--ic-toggle-button-unselected-border);--toggle-button-text-colour:var(--ic-toggle-button-unselected-text);--toggle-button-border-hover:var(--ic-toggle-button-unselected-border-hover);--toggle-button-text-colour-hover:var(\n --ic-toggle-button-unselected-text-hover\n );--toggle-button-border-active:var(\n --ic-toggle-button-unselected-border-pressed\n );--toggle-button-text-colour-active:var(\n --ic-toggle-button-unselected-text-pressed\n )}:host(:not(.expand-toggle-group-child)){display:inline-block;border-radius:var(--ic-border-radius);border:var(--ic-border-width) solid var(--toggle-button-border)}:host(.ic-toggle-button-full-width:not(.expand-toggle-group-child)){width:100%}:host(.ic-toggle-button-checked){--toggle-button-border:var(--ic-toggle-button-selected-border);--toggle-button-text-colour:var(--ic-toggle-button-selected-text);--toggle-button-border-hover:var(--ic-toggle-button-selected-border-hover);--toggle-button-text-colour-hover:var(--ic-toggle-button-selected-text);--toggle-button-border-active:var(\n --ic-toggle-button-selected-border-pressed\n );--toggle-button-text-colour-active:var(--ic-toggle-button-selected-text)}:host(.ic-toggle-button-monochrome){--toggle-button-border:var(--ic-toggle-button-unselected-border-monochrome);--toggle-button-text-colour:var(\n --ic-toggle-button-unselected-text-monochrome\n );--toggle-button-border-hover:var(\n --ic-toggle-button-unselected-border-hover-monochrome\n );--toggle-button-text-colour-hover:var(\n --ic-toggle-button-unselected-text-monochrome\n );--toggle-button-border-active:var(\n --ic-toggle-button-unselected-border-pressed-monochrome\n );--toggle-button-text-colour-active:var(\n --ic-toggle-button-unselected-text-monochrome\n )}:host(.ic-toggle-button-monochrome.ic-toggle-button-checked){--toggle-button-border:var(--ic-toggle-button-selected-border-monochrome);--toggle-button-text-colour:var(--ic-toggle-button-selected-text-monochrome);--toggle-button-border-hover:var(\n --ic-toggle-button-selected-border-hover-monochrome\n );--toggle-button-text-colour-hover:var(\n --ic-toggle-button-selected-text-monochrome\n );--toggle-button-border-active:var(\n --ic-toggle-button-selected-border-pressed-monochrome\n );--toggle-button-text-colour-active:var(\n --ic-toggle-button-selected-text-monochrome\n )}:host(.ic-toggle-button-disabled){--toggle-button-border:var(--ic-toggle-button-unselected-border-disabled);--toggle-button-text-colour:var(--ic-toggle-button-unselected-text-disabled)}:host(.ic-toggle-button-disabled.ic-toggle-button-monochrome){--toggle-button-border:var(\n --ic-toggle-button-unselected-border-disabled-monochrome\n );--toggle-button-text-colour:var(\n --ic-toggle-button-unselected-text-disabled-monochrome\n )}:host(.ic-toggle-button-disabled.ic-toggle-button-checked){--toggle-button-border:var(--ic-toggle-button-selected-border-disabled);--toggle-button-text-colour:var(--ic-toggle-button-selected-text-disabled)}:host(.ic-toggle-button-disabled.ic-toggle-button-checked.ic-toggle-button-monochrome){--toggle-button-border:var(\n --ic-toggle-button-selected-border-disabled-monochrome\n );--toggle-button-text-colour:var(\n --ic-toggle-button-selected-text-disabled-monochrome\n )}:host(.expand-toggle-group-child) ::part(button){width:100%}:host(.expand-toggle-group-child:not(.ic-toggle-button-loading)) ::part(button){min-height:inherit;height:auto}:host ic-button{--icon-width:var(--ic-space-lg);--icon-height:var(--ic-space-lg)}:host(.expand-toggle-group-child) ic-button{min-width:100%;min-height:100%;height:100%}:host(.expand-toggle-group-child) ::part(button):focus,:host(.expand-toggle-group-child.ic-toggle-button-checked) ::part(button):focus{box-shadow:inset 0 0 0 var(--ic-space-xxxs) var(--ic-action-default),\n var(--ic-border-focus)}:host(.expand-toggle-group-child.ic-toggle-button-light) ::part(button):focus,:host(.expand-toggle-group-child.ic-toggle-button-dark) ::part(button):focus{box-shadow:inset 0 0 0 var(--ic-space-xxxs) var(--ic-action-monochrome-dark),\n var(--ic-border-focus)}:host(:focus){z-index:1}:host ::part(button){border:none;color:var(--toggle-button-text-colour)}:host ::part(button):hover{color:var(--toggle-button-text-colour-hover);background-color:var(--ic-toggle-button-unselected-background-hover)}:host ::part(button):active{color:var(--toggle-button-text-colour-active);background-color:var(--ic-toggle-button-unselected-background-pressed)}:host ::part(button):focus{border:var(--ic-border-width) solid var(--toggle-button-border)}:host ::part(button):hover:focus{border:var(--ic-border-width) solid var(--toggle-button-border-hover)}:host ::part(button):active:focus{border:var(--ic-border-width) solid var(--toggle-button-border-active)}:host(.ic-toggle-button-disabled) ::part(button){color:var(--toggle-button-text-colour)}:host(:not(.expand-toggle-group-child)):has(ic-button:hover){border:var(--ic-border-width) solid var(--toggle-button-border-hover)}:host(:not(.expand-toggle-group-child)):has(ic-button:active){border:var(--ic-border-width) solid var(--toggle-button-border-active)}:host(:not(.expand-toggle-group-child).ic-toggle-button-disabled){border:var(--ic-border-width) dashed var(--toggle-button-border)}:host(.ic-toggle-button-checked) ::part(button){background-color:var(--ic-toggle-button-selected-background);box-shadow:inset 0 0 0 var(--ic-space-xxxs)\n var(--ic-toggle-button-selected-text)}:host(.ic-toggle-button-checked) ::part(button):focus{box-shadow:inset 0 0 0 var(--ic-space-xxxs)\n var(--ic-toggle-button-selected-border-focus),\n var(--ic-border-focus)}:host(.ic-toggle-button-checked) ::part(button):hover{background-color:var(--ic-toggle-button-selected-background-hover)}:host(.ic-toggle-button-checked) ::part(button):active,:host(.ic-toggle-button-icon.ic-toggle-button-checked) ::part(button):active{background-color:var(--ic-toggle-button-selected-background-pressed)}:host(.ic-toggle-button-monochrome) ::part(button):hover{background-color:var(\n --ic-toggle-button-unselected-background-hover-monochrome\n )}:host(.ic-toggle-button-monochrome) ::part(button):active{background-color:var(\n --ic-toggle-button-unselected-background-pressed-monochrome\n )}:host(.ic-toggle-button-monochrome.ic-toggle-button-checked) ::part(button){background-color:var(--ic-toggle-button-selected-background-monochrome)}:host(.ic-toggle-button-monochrome.ic-toggle-button-checked) ::part(button):hover{background-color:var(\n --ic-toggle-button-selected-background-hover-monochrome\n )}:host(.ic-toggle-button-monochrome.ic-toggle-button-checked) ::part(button):active,:host(.ic-toggle-button-icon.ic-toggle-button-monochrome.ic-toggle-button-checked) ::part(button):active{background-color:var(\n --ic-toggle-button-selected-background-pressed-monochrome\n )}:host(.ic-toggle-button-monochrome.ic-toggle-button-checked) ::part(button):focus{box-shadow:inset 0 0 0 var(--ic-space-xxxs)\n var(--ic-toggle-button-selected-text),\n var(--ic-border-focus)}:host(.ic-toggle-button-disabled.ic-toggle-button-checked) ::part(button),:host(.ic-toggle-button-icon.ic-toggle-button-disabled.ic-toggle-button-checked) ::part(button){background-color:transparent}:host(.ic-toggle-button-disabled.ic-toggle-button-checked) ::part(button),:host(.ic-toggle-button-icon.ic-toggle-button-disabled.ic-toggle-button-checked) ::part(button)::before{background-image:radial-gradient(\n var(--ic-toggle-button-selected-background-disabled) 95%,\n white 20%\n );background-repeat:no-repeat}:host(.ic-toggle-button-disabled.ic-toggle-button-checked.ic-toggle-button-monochrome) ::part(button),:host(.ic-toggle-button-icon.ic-toggle-button-disabled.ic-toggle-button-checked.ic-toggle-button-monochrome) ::part(button)::before{background-image:radial-gradient(\n var(--ic-toggle-button-selected-background-disabled-monochrome) 95%,\n white 20%\n );background-repeat:no-repeat}:host(.ic-toggle-button-icon) ::part(button){height:calc(var(--ic-space-xl) + var(--ic-space-xs));width:calc(var(--ic-space-xl) + var(--ic-space-xs))}:host(.ic-toggle-button-icon) ::part(button):active{background-color:var(--ic-action-default-bg-pressed)}:host(.ic-toggle-button-icon.ic-toggle-button-dark) ::part(button):active{background-color:var(--ic-action-dark-bg-pressed)}:host(.ic-toggle-button-icon.ic-toggle-button-light) ::part(button):active{background-color:var(--ic-action-light-bg-pressed)}:host(.ic-toggle-button-icon.ic-toggle-button-small) ::part(button){height:var(--ic-space-xl);width:var(--ic-space-xl)}:host(.ic-toggle-button-icon.ic-toggle-button-large) ::part(button){height:var(--ic-space-xxl);width:var(--ic-space-xxl)}:host(.ic-toggle-button-checked.ic-toggle-button-loading) ::part(button){--loading-button-background:var(\n --ic-toggle-button-selected-background-pressed\n );background-color:var(--ic-toggle-button-selected-background-pressed)}:host(.ic-toggle-button-loading) ::part(button){--loading-button-background:var(\n --ic-toggle-button-unselected-background-pressed\n );background-color:var(--ic-toggle-button-unselected-background-pressed)}:host(.ic-toggle-button-checked.ic-toggle-button-loading) ::part(ic-loading-container){--inner-color:var(--ic-toggle-button-loading-bar)}:host(.ic-toggle-button-loading) ::part(ic-loading-container){--inner-color:var(--ic-toggle-button-selected-loading-bar)}:host(.ic-toggle-button-checked.ic-toggle-button-loading.ic-toggle-button-monochrome) ::part(button){--loading-button-background:var(\n --ic-toggle-button-selected-background-pressed-monochrome\n );background-color:var(\n --ic-toggle-button-selected-background-pressed-monochrome\n )}:host(.ic-toggle-button-loading.ic-toggle-button-monochrome) ::part(button){--loading-button-background:var(\n --ic-toggle-button-unselected-background-pressed-monochrome\n );background-color:var(\n --ic-toggle-button-unselected-background-pressed-monochrome\n )}:host(.ic-toggle-button-hide-outline){--toggle-button-border:transparent !important;--toggle-button-border-hover:transparent !important;--toggle-button-border-active:transparent !important}:host(.ic-toggle-button-hide-outline) ::part(button):focus{border:none}:host(.expand-toggle-group-child.ic-toggle-button-hide-outline) ::part(button):focus,:host(.expand-toggle-group-child.ic-toggle-button-hide-outline.ic-toggle-button-checked) ::part(button):focus{box-shadow:var(--ic-border-focus)}@media (forced-colors: active){:host(.ic-toggle-button-checked) ::part(button),:host(.ic-toggle-button-checked) ::part(button):hover{background-color:Highlight}:host(.ic-toggle-button-checked.ic-toggle-button-light) ::part(button),:host(.ic-toggle-button-checked.ic-toggle-button-light) ::part(button):hover{background-color:Highlight}:host(.ic-toggle-button-checked.ic-toggle-button-dark) ::part(button),:host(.ic-toggle-button-checked.ic-toggle-button-dark) ::part(button):hover{background-color:Highlight}:host(.ic-toggle-button-checked.ic-toggle-button-disabled) ::part(button){background-color:GrayText}:host(.ic-toggle-button-checked.ic-toggle-button-loading) ::part(button),:host(.ic-toggle-button-checked.ic-toggle-button-loading) ::part(button):hover{--loading-button-background:Highlight}}';const s=g;const d=["loading","disabled","full-width","icon-placement","variant","size","theme","monochrome","outline"];const b=class{constructor(e){t(this,e);this.icToggleChecked=o(this,"icToggleChecked",7);this.checked=false;this.disabled=false;this.fullWidth=false;this.iconPlacement="left";this.loading=false;this.monochrome=false;this.outline=true;this.size="medium";this.theme="inherit";this.tooltipPlacement="bottom";this.variant="default";this.handleFocus=t=>{t.stopImmediatePropagation()};this.handleClick=()=>{if(!this.loading&&!this.disabled){this.icToggleChecked.emit({checked:this.checked})}}}watchDisabledHandler(){this.syncPropsFromToggleButtonGroup()}componentWillLoad(){this.syncPropsFromToggleButtonGroup()}componentDidLoad(){r([{prop:this.variant==="icon"?this.accessibleLabel:this.label,propName:this.variant==="icon"?"accessible-label":"label"}],"Toggle button")}handleHostClick(t){if(this.disabled){t.stopImmediatePropagation()}else if(!this.loading){this.checked=!this.checked}}syncPropsFromToggleButtonGroup(){var t;let o=false;if(c(this.el)){const e=(t=this.el.parentElement)===null||t===void 0?void 0:t.attributes;if(e){const t=e.getNamedItem("disabled");if(t&&t.value!=="false"){o=true}for(let t=0;t<d.length;t++){const n=e.getNamedItem(d[t]);if(!n)continue;switch(n.name){case d[0]:this.loading=n.value!=="false";break;case d[1]:this.disabled=o?true:n.value!=="false";break;case d[2]:this.fullWidth=n.value!=="false";break;case d[3]:this.iconPlacement=n.value;break;case d[4]:this.variant=n.value;break;case d[5]:this.size=n.value;break;case d[6]:this.theme=n.value;break;case d[7]:this.monochrome=n.value!=="false";break;case d[8]:this.outline=n.value!=="false";break}}if(o){this.disabled=true}}}l(this.disabled,this.el)}render(){const{accessibleLabel:t,checked:o,disabled:i,fullWidth:r,iconPlacement:c,monochrome:l,label:g,loading:s,outline:d,size:b,theme:u,tooltipPlacement:h,variant:p}=this;const m=p==="icon";return e(n,{key:"74d882ab9a0ea86b7f1b1eaa74a40ee32fd44800",class:{"ic-toggle-button-checked":o,"ic-toggle-button-disabled":i,"ic-toggle-button-icon":m,"ic-toggle-button-loading":s,"ic-toggle-button-monochrome":l,"ic-toggle-button-full-width":r,"ic-toggle-button-hide-outline":!d,[`ic-toggle-button-${b}`]:true,[`ic-theme-${u}`]:u!=="inherit"},onFocus:this.handleFocus},e("ic-button",{key:"067df9f2c2b9a6f6a21d1a70ddac41b7ae1c9f13","aria-pressed":`${o}`,variant:m?"icon-tertiary":"secondary",onClick:this.handleClick,title:t,"aria-label":`${t?t:g}, ${o?"ticked":"unticked"}`,disabled:i,size:b,fullWidth:r,loading:s,tooltipPlacement:h},!m&&g,e("slot",{key:"e6b0d906bda4695ab9e64da852a99da851001974"}),a(this.el,"icon")&&e("slot",{key:"70b5c83cca0a126ab9eafa9d84327c83e6936ce8",name:"icon",slot:`${c}-icon`}),a(this.el,"badge")&&e("slot",{key:"c43ead3695a0f7a019b3eb0aa4b396f85c0e96eb",name:"badge",slot:"badge"})))}static get delegatesFocus(){return true}get el(){return i(this)}static get watchers(){return{disabled:["watchDisabledHandler"]}}};b.style=s;const u='/*! normalize.css v8.0.1 | MIT License | github.com/necolas/normalize.css */html{line-height:1.15;-webkit-text-size-adjust:100%;}body{margin:0}main{display:block}h1{font-size:2em;margin:0.67em 0}hr{box-sizing:content-box;height:0;overflow:visible;}pre{font-family:monospace, monospace;font-size:1em;}a{background-color:transparent}abbr[title]{border-bottom:none;text-decoration:underline;-webkit-text-decoration:underline dotted;text-decoration:underline dotted;}b,strong{font-weight:bolder}code,kbd,samp{font-family:monospace, monospace;font-size:1em;}small{font-size:80%}sub,sup{font-size:75%;line-height:0;position:relative;vertical-align:baseline}sub{bottom:-0.25em}sup{top:-0.5em}img{border-style:none}button,input,optgroup,select,textarea{font-family:inherit;font-size:100%;line-height:1.15;margin:0;}button,input{overflow:visible}button,select{text-transform:none}button,[type="button"],[type="reset"],[type="submit"]{-webkit-appearance:button}button::-moz-focus-inner,[type="button"]::-moz-focus-inner,[type="reset"]::-moz-focus-inner,[type="submit"]::-moz-focus-inner{border-style:none;padding:0}button:-moz-focusring,[type="button"]:-moz-focusring,[type="reset"]:-moz-focusring,[type="submit"]:-moz-focusring{outline:1px dotted ButtonText}fieldset{padding:0.35em 0.75em 0.625em}legend{box-sizing:border-box;color:inherit;display:table;max-width:100%;padding:0;white-space:normal;}progress{vertical-align:baseline}textarea{overflow:auto}[type="checkbox"],[type="radio"]{box-sizing:border-box;padding:0;}[type="number"]::-webkit-inner-spin-button,[type="number"]::-webkit-outer-spin-button{height:auto}[type="search"]{-webkit-appearance:textfield;outline-offset:-2px;}[type="search"]::-webkit-search-decoration{-webkit-appearance:none}::-webkit-file-upload-button{-webkit-appearance:button;font:inherit;}details{display:block}summary{display:list-item}template{display:none}[hidden]{display:none}html,body,div,span,applet,object,iframe,h1,h2,h3,h4,h5,h6,p,blockquote,pre,a,abbr,acronym,address,big,cite,code,del,dfn,em,img,ins,kbd,q,s,samp,small,strike,strong,sub,sup,tt,var,b,u,i,center,dl,dt,dd,ol,ul,li,fieldset,form,label,legend,table,caption,tbody,tfoot,thead,tr,th,td,article,aside,canvas,details,embed,figure,figcaption,footer,header,hgroup,menu,nav,output,ruby,section,summary,time,mark,audio,video{margin:0;padding:0;border:0;font-size:100%;font-style:inherit;vertical-align:baseline}:root{display:block}:host{display:flex;flex-direction:row;width:-moz-fit-content;width:fit-content;min-width:-moz-min-content;min-width:min-content;border:var(--ic-border-width) solid var(--ic-toggle-button-unselected-border);border-radius:var(--ic-border-radius)}:host(.ic-toggle-button-group-full-width){width:100%;max-width:100%}:host(.ic-toggle-button-group-loading){min-width:-moz-max-content;min-width:max-content}:host(:focus){box-shadow:var(--ic-border-focus);border-radius:var(--ic-border-radius);transition:var(--ic-transition-duration-fast);outline:none}::slotted(ic-toggle-button){flex-grow:1;width:-moz-min-content;width:min-content;--toggle-button-border:none !important;--toggle-button-border-hover:none !important;--toggle-button-border-active:none !important}::slotted(ic-toggle-button:not(:last-of-type)){border-right:var(--ic-border-width) solid\n var(--ic-toggle-button-unselected-border)}:host(.ic-toggle-button-group-disabled){border:var(--ic-space-1px) dashed\n var(--ic-toggle-button-unselected-border-disabled);pointer-events:none}:host(.ic-toggle-button-group-disabled) ::slotted(ic-toggle-button:not(:last-of-type)){border-right:var(--ic-space-1px) dashed\n var(--ic-toggle-button-unselected-border-disabled)}:host(.ic-toggle-button-group-monochrome){border:var(--ic-border-width) solid\n var(--ic-toggle-button-unselected-border-monochrome)}:host(.ic-toggle-button-group-monochrome) ::slotted(ic-toggle-button:not(:last-of-type)){border-right:var(--ic-border-width) solid\n var(--ic-toggle-button-unselected-border-monochrome)}:host(.ic-toggle-button-group-disabled.ic-toggle-button-group-monochrome){border:var(--ic-border-width) dashed\n var(--ic-toggle-button-unselected-border-disabled-monochrome)}:host(.ic-toggle-button-group-disabled.ic-toggle-button-group-monochrome) ::slotted(ic-toggle-button:not(:last-of-type)){border-right:var(--ic-border-width) solid\n var(--ic-toggle-button-unselected-border-disabled-monochrome)}:host(.ic-toggle-button-group-hide-outline){--ic-toggle-button-unselected-border:transparent;--ic-toggle-button-unselected-border-disabled:transparent;--ic-toggle-button-unselected-border-monochrome:transparent;--ic-toggle-button-unselected-border-disabled-monochrome:transparent}';const h=u;const p="IC-TOGGLE-BUTTON-GROUP";const m=class{constructor(e){t(this,e);this.icChange=o(this,"icChange",7);this.lastKeyPressed={key:null,shift:false};this.externallySetActiveToggle=null;this.accessibleLabel="Toggle button group";this.disabled=false;this.fullWidth=false;this.loading=false;this.monochrome=false;this.outline=true;this.selectMethod="manual";this.selectType="single";this.size="medium";this.theme="inherit";this.tooltipPlacement="bottom";this.variant="default";this.keyListener=t=>{this.lastKeyPressed={key:t.key,shift:t.shiftKey}};this.handleHostFocus=({target:t,relatedTarget:o})=>{var e;if(this.disabled){t===null||t===void 0?void 0:t.blur();return}if(this.loading)return;const n=t;const i=o;const r=Array.from((n===null||n===void 0?void 0:n.querySelectorAll("ic-toggle-button"))||[]);const c=r.every((t=>!t.checked));const{shift:l}=this.lastKeyPressed;if((c||this.selectType!=="single")&&!l||c&&l&&(i===null||i===void 0?void 0:i.tagName)==p){(e=r[0])===null||e===void 0?void 0:e.focus()}else if(!l||(i===null||i===void 0?void 0:i.tagName)==p){r.filter((t=>t.checked))[0].focus()}};this.handleKeyDown=({key:t})=>{if(t!=="ArrowDown"&&t!=="ArrowRight"&&t!=="ArrowLeft"&&t!=="ArrowUp")return;const o=this.getAllToggleButtons();let e;if(this.externallySetActiveToggle){e=o[this.getNextItemToSelect(o.indexOf(o.filter((t=>t===this.externallySetActiveToggle))[0]),t==="ArrowDown"||t==="ArrowRight")]}else{e=o[this.getNextItemToSelect(o.indexOf(o.filter((t=>t===document.activeElement))[0]),t==="ArrowDown"||t==="ArrowRight")]}if(this.selectMethod==="auto"){e.checked=true;this.selectHandler(new CustomEvent("icToggleChecked",{detail:{checked:e.checked}}),e)}else{e.focus()}};this.getNextItemToSelect=(t,o)=>{const e=this.getAllToggleButtons();const n=e.length-1;if(t<1){t=0}let i=o?t+1:t-1;if(i<0){i=n}else if(i>n){i=0}if(e[i].disabled){i=this.getNextItemToSelect(i,o)}return i};this.getAllToggleButtons=()=>Array.from(this.el.querySelectorAll("ic-toggle-button"))}watchDisabledHandler(){this.getAllToggleButtons().forEach((t=>{t.disabled=this.disabled}));l(this.disabled,this.el)}watchFullWidthHandler(){this.getAllToggleButtons().forEach((t=>{t.fullWidth=this.fullWidth}))}watchLoadingHandler(){this.getAllToggleButtons().forEach((t=>{t.loading=this.loading}))}watchMonochromeHandler(){this.getAllToggleButtons().forEach((t=>{t.monochrome=this.monochrome}))}watchOutlineHandler(){this.getAllToggleButtons().forEach((t=>{t.outline=this.outline}))}watchSizeHandler(){this.getAllToggleButtons().forEach((t=>{t.size=this.size}))}watchThemeHandler(){this.getAllToggleButtons().forEach((t=>{t.theme=this.theme}))}watchTooltipPlacementHandler(){this.getAllToggleButtons().forEach((t=>{t.tooltipPlacement=this.tooltipPlacement}))}watchVariantHandler(){this.getAllToggleButtons().forEach((t=>{t.variant=this.variant}))}selectHandler(t,o){const e=this.getAllToggleButtons();let n=t.target;if(o)o.focus();if(this.selectType==="single"){if(!n&&o){n=o}e.forEach((t=>{if(t.id!==n.id&&t.checked){t.checked=false}}));this.icChange.emit({checked:t.detail.checked,selectedOption:n})}else{const t=e.filter((t=>t.checked&&!t.disabled));this.icChange.emit({checked:t.map((t=>t.checked)),toggledOptions:t.map((t=>({toggleButton:t}))),selectedOption:n})}}async setActiveToggle(t){this.externallySetActiveToggle=t}componentWillLoad(){if(this.selectType==="multi")this.selectMethod="manual";document.addEventListener("keydown",this.keyListener);l(this.disabled,this.el)}componentDidLoad(){this.getAllToggleButtons().forEach(((t,o)=>{var e,n,i;const r=(i=(n=(e=t.shadowRoot)===null||e===void 0?void 0:e.querySelector("ic-button"))===null||n===void 0?void 0:n.shadowRoot)===null||i===void 0?void 0:i.querySelector("button");if(r){const t=r.getAttribute("aria-label");const o=t?`${t}, `:"";r.setAttribute("aria-label",`${o}${this.accessibleLabel}`)}t.id=o.toString();t.tabIndex=-1;t.addEventListener("keydown",(t=>{this.handleKeyDown(t)}));t.classList.add("expand-toggle-group-child")}))}disconnectedCallback(){document===null||document===void 0?void 0:document.removeEventListener("keydown",this.keyListener)}render(){const{accessibleLabel:t,disabled:o,fullWidth:i,loading:r,monochrome:c,outline:l,theme:a}=this;return e(n,{key:"5ae12c9f09c65a04cbe1f19850998c0d942327c8",role:"group","aria-label":t,tabindex:o?-1:0,class:{"ic-toggle-button-group-disabled":o,"ic-toggle-button-group-full-width":i,"ic-toggle-button-group-loading":r,"ic-toggle-button-group-monochrome":c,"ic-toggle-button-group-hide-outline":!l,[`ic-theme-${a}`]:a!=="inherit"},onFocus:this.handleHostFocus},e("slot",{key:"02c4f4cd7df626d4032246bdbcd7e07d2167ba52"}))}get el(){return i(this)}static get watchers(){return{disabled:["watchDisabledHandler"],fullWidth:["watchFullWidthHandler"],loading:["watchLoadingHandler"],monochrome:["watchMonochromeHandler"],outline:["watchOutlineHandler"],size:["watchSizeHandler"],theme:["watchThemeHandler"],tooltipPlacement:["watchTooltipPlacementHandler"],variant:["watchVariantHandler"]}}};m.style=h;export{b as ic_toggle_button,m as ic_toggle_button_group};
|
|
2
|
-
//# sourceMappingURL=p-
|
|
1
|
+
import{r as t,c as o,h as e,H as n,g as i}from"./p-8e4e97b4.js";import{o as r,N as c,r as l,i as a}from"./p-e519f607.js";const g='/*! normalize.css v8.0.1 | MIT License | github.com/necolas/normalize.css */html{line-height:1.15;-webkit-text-size-adjust:100%;}body{margin:0}main{display:block}h1{font-size:2em;margin:0.67em 0}hr{box-sizing:content-box;height:0;overflow:visible;}pre{font-family:monospace, monospace;font-size:1em;}a{background-color:transparent}abbr[title]{border-bottom:none;text-decoration:underline;-webkit-text-decoration:underline dotted;text-decoration:underline dotted;}b,strong{font-weight:bolder}code,kbd,samp{font-family:monospace, monospace;font-size:1em;}small{font-size:80%}sub,sup{font-size:75%;line-height:0;position:relative;vertical-align:baseline}sub{bottom:-0.25em}sup{top:-0.5em}img{border-style:none}button,input,optgroup,select,textarea{font-family:inherit;font-size:100%;line-height:1.15;margin:0;}button,input{overflow:visible}button,select{text-transform:none}button,[type="button"],[type="reset"],[type="submit"]{-webkit-appearance:button}button::-moz-focus-inner,[type="button"]::-moz-focus-inner,[type="reset"]::-moz-focus-inner,[type="submit"]::-moz-focus-inner{border-style:none;padding:0}button:-moz-focusring,[type="button"]:-moz-focusring,[type="reset"]:-moz-focusring,[type="submit"]:-moz-focusring{outline:1px dotted ButtonText}fieldset{padding:0.35em 0.75em 0.625em}legend{box-sizing:border-box;color:inherit;display:table;max-width:100%;padding:0;white-space:normal;}progress{vertical-align:baseline}textarea{overflow:auto}[type="checkbox"],[type="radio"]{box-sizing:border-box;padding:0;}[type="number"]::-webkit-inner-spin-button,[type="number"]::-webkit-outer-spin-button{height:auto}[type="search"]{-webkit-appearance:textfield;outline-offset:-2px;}[type="search"]::-webkit-search-decoration{-webkit-appearance:none}::-webkit-file-upload-button{-webkit-appearance:button;font:inherit;}details{display:block}summary{display:list-item}template{display:none}[hidden]{display:none}html,body,div,span,applet,object,iframe,h1,h2,h3,h4,h5,h6,p,blockquote,pre,a,abbr,acronym,address,big,cite,code,del,dfn,em,img,ins,kbd,q,s,samp,small,strike,strong,sub,sup,tt,var,b,u,i,center,dl,dt,dd,ol,ul,li,fieldset,form,label,legend,table,caption,tbody,tfoot,thead,tr,th,td,article,aside,canvas,details,embed,figure,figcaption,footer,header,hgroup,menu,nav,output,ruby,section,summary,time,mark,audio,video{margin:0;padding:0;border:0;font-size:100%;font-style:inherit;vertical-align:baseline}:host{--toggle-button-border:var(--ic-toggle-button-unselected-border);--toggle-button-text-colour:var(--ic-toggle-button-unselected-text);--toggle-button-border-hover:var(--ic-toggle-button-unselected-border-hover);--toggle-button-text-colour-hover:var(\n --ic-toggle-button-unselected-text-hover\n );--toggle-button-border-active:var(\n --ic-toggle-button-unselected-border-pressed\n );--toggle-button-text-colour-active:var(\n --ic-toggle-button-unselected-text-pressed\n )}:host(:not(.expand-toggle-group-child)){display:inline-block;border-radius:var(--ic-border-radius);border:var(--ic-border-width) solid var(--toggle-button-border)}:host(.ic-toggle-button-full-width:not(.expand-toggle-group-child)){width:100%}:host(.ic-toggle-button-checked){--toggle-button-border:var(--ic-toggle-button-selected-border);--toggle-button-text-colour:var(--ic-toggle-button-selected-text);--toggle-button-border-hover:var(--ic-toggle-button-selected-border-hover);--toggle-button-text-colour-hover:var(--ic-toggle-button-selected-text);--toggle-button-border-active:var(\n --ic-toggle-button-selected-border-pressed\n );--toggle-button-text-colour-active:var(--ic-toggle-button-selected-text)}:host(.ic-toggle-button-monochrome){--toggle-button-border:var(--ic-toggle-button-unselected-border-monochrome);--toggle-button-text-colour:var(\n --ic-toggle-button-unselected-text-monochrome\n );--toggle-button-border-hover:var(\n --ic-toggle-button-unselected-border-hover-monochrome\n );--toggle-button-text-colour-hover:var(\n --ic-toggle-button-unselected-text-monochrome\n );--toggle-button-border-active:var(\n --ic-toggle-button-unselected-border-pressed-monochrome\n );--toggle-button-text-colour-active:var(\n --ic-toggle-button-unselected-text-monochrome\n )}:host(.ic-toggle-button-monochrome.ic-toggle-button-checked){--toggle-button-border:var(--ic-toggle-button-selected-border-monochrome);--toggle-button-text-colour:var(--ic-toggle-button-selected-text-monochrome);--toggle-button-border-hover:var(\n --ic-toggle-button-selected-border-hover-monochrome\n );--toggle-button-text-colour-hover:var(\n --ic-toggle-button-selected-text-monochrome\n );--toggle-button-border-active:var(\n --ic-toggle-button-selected-border-pressed-monochrome\n );--toggle-button-text-colour-active:var(\n --ic-toggle-button-selected-text-monochrome\n )}:host(.ic-toggle-button-disabled){--toggle-button-border:var(--ic-toggle-button-unselected-border-disabled);--toggle-button-text-colour:var(--ic-toggle-button-unselected-text-disabled)}:host(.ic-toggle-button-disabled.ic-toggle-button-monochrome){--toggle-button-border:var(\n --ic-toggle-button-unselected-border-disabled-monochrome\n );--toggle-button-text-colour:var(\n --ic-toggle-button-unselected-text-disabled-monochrome\n )}:host(.ic-toggle-button-disabled.ic-toggle-button-checked){--toggle-button-border:var(--ic-toggle-button-selected-border-disabled);--toggle-button-text-colour:var(--ic-toggle-button-selected-text-disabled)}:host(.ic-toggle-button-disabled.ic-toggle-button-checked.ic-toggle-button-monochrome){--toggle-button-border:var(\n --ic-toggle-button-selected-border-disabled-monochrome\n );--toggle-button-text-colour:var(\n --ic-toggle-button-selected-text-disabled-monochrome\n )}:host(.expand-toggle-group-child) ::part(button){width:100%}:host(.expand-toggle-group-child:not(.ic-toggle-button-loading)) ::part(button){min-height:inherit;height:auto}:host ic-button{--icon-width:var(--ic-space-lg);--icon-height:var(--ic-space-lg)}:host(.expand-toggle-group-child) ic-button{min-width:100%;min-height:100%;height:100%}:host(.expand-toggle-group-child) ::part(button):focus,:host(.expand-toggle-group-child.ic-toggle-button-checked) ::part(button):focus{box-shadow:inset 0 0 0 var(--ic-space-xxxs) var(--ic-action-default),\n var(--ic-border-focus)}:host(.expand-toggle-group-child.ic-toggle-button-light) ::part(button):focus,:host(.expand-toggle-group-child.ic-toggle-button-dark) ::part(button):focus{box-shadow:inset 0 0 0 var(--ic-space-xxxs) var(--ic-action-monochrome-dark),\n var(--ic-border-focus)}:host(:focus){z-index:1}:host ::part(button){border:none;color:var(--toggle-button-text-colour)}:host ::part(button):hover{color:var(--toggle-button-text-colour-hover);background-color:var(--ic-toggle-button-unselected-background-hover)}:host ::part(button):active{color:var(--toggle-button-text-colour-active);background-color:var(--ic-toggle-button-unselected-background-pressed)}:host ::part(button):focus{border:var(--ic-border-width) solid var(--toggle-button-border)}:host ::part(button):hover:focus{border:var(--ic-border-width) solid var(--toggle-button-border-hover)}:host ::part(button):active:focus{border:var(--ic-border-width) solid var(--toggle-button-border-active)}:host(.ic-toggle-button-disabled) ::part(button){color:var(--toggle-button-text-colour)}:host(:not(.expand-toggle-group-child)):has(ic-button:hover){border:var(--ic-border-width) solid var(--toggle-button-border-hover)}:host(:not(.expand-toggle-group-child)):has(ic-button:active){border:var(--ic-border-width) solid var(--toggle-button-border-active)}:host(:not(.expand-toggle-group-child).ic-toggle-button-disabled){border:var(--ic-border-width) dashed var(--toggle-button-border)}:host(.ic-toggle-button-checked) ::part(button){background-color:var(--ic-toggle-button-selected-background);box-shadow:inset 0 0 0 var(--ic-space-xxxs)\n var(--ic-toggle-button-selected-text)}:host(.ic-toggle-button-checked) ::part(button):focus{box-shadow:inset 0 0 0 var(--ic-space-xxxs)\n var(--ic-toggle-button-selected-border-focus),\n var(--ic-border-focus)}:host(.ic-toggle-button-checked) ::part(button):hover{background-color:var(--ic-toggle-button-selected-background-hover)}:host(.ic-toggle-button-checked) ::part(button):active,:host(.ic-toggle-button-icon.ic-toggle-button-checked) ::part(button):active{background-color:var(--ic-toggle-button-selected-background-pressed)}:host(.ic-toggle-button-monochrome) ::part(button):hover{background-color:var(\n --ic-toggle-button-unselected-background-hover-monochrome\n )}:host(.ic-toggle-button-monochrome) ::part(button):active{background-color:var(\n --ic-toggle-button-unselected-background-pressed-monochrome\n )}:host(.ic-toggle-button-monochrome.ic-toggle-button-checked) ::part(button){background-color:var(--ic-toggle-button-selected-background-monochrome)}:host(.ic-toggle-button-monochrome.ic-toggle-button-checked) ::part(button):hover{background-color:var(\n --ic-toggle-button-selected-background-hover-monochrome\n )}:host(.ic-toggle-button-monochrome.ic-toggle-button-checked) ::part(button):active,:host(.ic-toggle-button-icon.ic-toggle-button-monochrome.ic-toggle-button-checked) ::part(button):active{background-color:var(\n --ic-toggle-button-selected-background-pressed-monochrome\n )}:host(.ic-toggle-button-monochrome.ic-toggle-button-checked) ::part(button):focus{box-shadow:inset 0 0 0 var(--ic-space-xxxs)\n var(--ic-toggle-button-selected-text),\n var(--ic-border-focus)}:host(.ic-toggle-button-disabled.ic-toggle-button-checked) ::part(button),:host(.ic-toggle-button-icon.ic-toggle-button-disabled.ic-toggle-button-checked) ::part(button){background-color:transparent}:host(.ic-toggle-button-disabled.ic-toggle-button-checked) ::part(button),:host(.ic-toggle-button-icon.ic-toggle-button-disabled.ic-toggle-button-checked) ::part(button)::before{background-image:radial-gradient(\n var(--ic-toggle-button-selected-background-disabled) 95%,\n white 20%\n );background-repeat:no-repeat}:host(.ic-toggle-button-disabled.ic-toggle-button-checked.ic-toggle-button-monochrome) ::part(button),:host(.ic-toggle-button-icon.ic-toggle-button-disabled.ic-toggle-button-checked.ic-toggle-button-monochrome) ::part(button)::before{background-image:radial-gradient(\n var(--ic-toggle-button-selected-background-disabled-monochrome) 95%,\n white 20%\n );background-repeat:no-repeat}:host(.ic-toggle-button-icon) ::part(button){height:calc(var(--ic-space-xl) + var(--ic-space-xs));width:calc(var(--ic-space-xl) + var(--ic-space-xs))}:host(.ic-toggle-button-icon) ::part(button):active{background-color:var(--ic-action-default-bg-pressed)}:host(.ic-toggle-button-icon.ic-toggle-button-dark) ::part(button):active{background-color:var(--ic-action-dark-bg-pressed)}:host(.ic-toggle-button-icon.ic-toggle-button-light) ::part(button):active{background-color:var(--ic-action-light-bg-pressed)}:host(.ic-toggle-button-icon.ic-toggle-button-small) ::part(button){height:var(--ic-space-xl);width:var(--ic-space-xl)}:host(.ic-toggle-button-icon.ic-toggle-button-large) ::part(button){height:var(--ic-space-xxl);width:var(--ic-space-xxl)}:host(.ic-toggle-button-checked.ic-toggle-button-loading) ::part(button){--loading-button-background:var(\n --ic-toggle-button-selected-background-pressed\n );background-color:var(--ic-toggle-button-selected-background-pressed)}:host(.ic-toggle-button-loading) ::part(button){--loading-button-background:var(\n --ic-toggle-button-unselected-background-pressed\n );background-color:var(--ic-toggle-button-unselected-background-pressed)}:host(.ic-toggle-button-checked.ic-toggle-button-loading) ::part(ic-loading-container){--inner-color:var(--ic-toggle-button-loading-bar)}:host(.ic-toggle-button-loading) ::part(ic-loading-container){--inner-color:var(--ic-toggle-button-selected-loading-bar)}:host(.ic-toggle-button-checked.ic-toggle-button-loading.ic-toggle-button-monochrome) ::part(button){--loading-button-background:var(\n --ic-toggle-button-selected-background-pressed-monochrome\n );background-color:var(\n --ic-toggle-button-selected-background-pressed-monochrome\n )}:host(.ic-toggle-button-loading.ic-toggle-button-monochrome) ::part(button){--loading-button-background:var(\n --ic-toggle-button-unselected-background-pressed-monochrome\n );background-color:var(\n --ic-toggle-button-unselected-background-pressed-monochrome\n )}:host(.ic-toggle-button-hide-outline){--toggle-button-border:transparent !important;--toggle-button-border-hover:transparent !important;--toggle-button-border-active:transparent !important}:host(.ic-toggle-button-hide-outline) ::part(button):focus{border:none}:host(.expand-toggle-group-child.ic-toggle-button-hide-outline) ::part(button):focus,:host(.expand-toggle-group-child.ic-toggle-button-hide-outline.ic-toggle-button-checked) ::part(button):focus{box-shadow:var(--ic-border-focus)}@media (forced-colors: active){:host(.ic-toggle-button-checked) ::part(button),:host(.ic-toggle-button-checked) ::part(button):hover{background-color:Highlight}:host(.ic-toggle-button-checked.ic-toggle-button-light) ::part(button),:host(.ic-toggle-button-checked.ic-toggle-button-light) ::part(button):hover{background-color:Highlight}:host(.ic-toggle-button-checked.ic-toggle-button-dark) ::part(button),:host(.ic-toggle-button-checked.ic-toggle-button-dark) ::part(button):hover{background-color:Highlight}:host(.ic-toggle-button-checked.ic-toggle-button-disabled) ::part(button){background-color:GrayText}:host(.ic-toggle-button-checked.ic-toggle-button-loading) ::part(button),:host(.ic-toggle-button-checked.ic-toggle-button-loading) ::part(button):hover{--loading-button-background:Highlight}}';const s=g;const d=["loading","disabled","full-width","icon-placement","variant","size","theme","monochrome","outline"];const b=class{constructor(e){t(this,e);this.icToggleChecked=o(this,"icToggleChecked",7);this.checked=false;this.disabled=false;this.fullWidth=false;this.iconPlacement="left";this.loading=false;this.monochrome=false;this.outline=true;this.size="medium";this.theme="inherit";this.tooltipPlacement="bottom";this.variant="default";this.handleFocus=t=>{t.stopImmediatePropagation()};this.handleClick=()=>{if(!this.loading&&!this.disabled){this.icToggleChecked.emit({checked:this.checked})}}}watchDisabledHandler(){this.syncPropsFromToggleButtonGroup()}componentWillLoad(){this.syncPropsFromToggleButtonGroup()}componentDidLoad(){r([{prop:this.variant==="icon"?this.accessibleLabel:this.label,propName:this.variant==="icon"?"accessible-label":"label"}],"Toggle button")}handleHostClick(t){if(this.disabled){t.stopImmediatePropagation()}else if(!this.loading){this.checked=!this.checked}}syncPropsFromToggleButtonGroup(){var t;let o=false;if(c(this.el)){const e=(t=this.el.parentElement)===null||t===void 0?void 0:t.attributes;if(e){const t=e.getNamedItem("disabled");if(t&&t.value!=="false"){o=true}for(let t=0;t<d.length;t++){const n=e.getNamedItem(d[t]);if(!n)continue;switch(n.name){case d[0]:this.loading=n.value!=="false";break;case d[1]:this.disabled=o?true:n.value!=="false";break;case d[2]:this.fullWidth=n.value!=="false";break;case d[3]:this.iconPlacement=n.value;break;case d[4]:this.variant=n.value;break;case d[5]:this.size=n.value;break;case d[6]:this.theme=n.value;break;case d[7]:this.monochrome=n.value!=="false";break;case d[8]:this.outline=n.value!=="false";break}}if(o){this.disabled=true}}}l(this.disabled,this.el)}render(){const{accessibleLabel:t,checked:o,disabled:i,fullWidth:r,iconPlacement:c,monochrome:l,label:g,loading:s,outline:d,size:b,theme:u,tooltipPlacement:h,variant:p}=this;const m=p==="icon";return e(n,{key:"a7fc7b7059ce70e3234ef1635586a175d69891a3",class:{"ic-toggle-button-checked":o,"ic-toggle-button-disabled":i,"ic-toggle-button-icon":m,"ic-toggle-button-loading":s,"ic-toggle-button-monochrome":l,"ic-toggle-button-full-width":r,"ic-toggle-button-hide-outline":!d,[`ic-toggle-button-${b}`]:true,[`ic-theme-${u}`]:u!=="inherit"},onFocus:this.handleFocus},e("ic-button",{key:"163a1360e830e9ef99683346438f9becc8c70482","aria-pressed":`${o}`,variant:m?"icon-tertiary":"secondary",onClick:this.handleClick,title:t,"aria-label":`${t?t:g}, ${o?"ticked":"unticked"}`,disabled:i,size:b,fullWidth:r,loading:s,tooltipPlacement:h},!m&&g,e("slot",{key:"b9a212fe0f7566d49b1545a999c1f8929775beed"}),a(this.el,"icon")&&e("slot",{key:"69aa58ba2bb432ee222abc899fcb7f666d784176",name:"icon",slot:`${c}-icon`}),a(this.el,"badge")&&e("slot",{key:"d274ed4513b466b0e0c0e690cc085e8aca2e74ca",name:"badge",slot:"badge"})))}static get delegatesFocus(){return true}get el(){return i(this)}static get watchers(){return{disabled:["watchDisabledHandler"]}}};b.style=s;const u='/*! normalize.css v8.0.1 | MIT License | github.com/necolas/normalize.css */html{line-height:1.15;-webkit-text-size-adjust:100%;}body{margin:0}main{display:block}h1{font-size:2em;margin:0.67em 0}hr{box-sizing:content-box;height:0;overflow:visible;}pre{font-family:monospace, monospace;font-size:1em;}a{background-color:transparent}abbr[title]{border-bottom:none;text-decoration:underline;-webkit-text-decoration:underline dotted;text-decoration:underline dotted;}b,strong{font-weight:bolder}code,kbd,samp{font-family:monospace, monospace;font-size:1em;}small{font-size:80%}sub,sup{font-size:75%;line-height:0;position:relative;vertical-align:baseline}sub{bottom:-0.25em}sup{top:-0.5em}img{border-style:none}button,input,optgroup,select,textarea{font-family:inherit;font-size:100%;line-height:1.15;margin:0;}button,input{overflow:visible}button,select{text-transform:none}button,[type="button"],[type="reset"],[type="submit"]{-webkit-appearance:button}button::-moz-focus-inner,[type="button"]::-moz-focus-inner,[type="reset"]::-moz-focus-inner,[type="submit"]::-moz-focus-inner{border-style:none;padding:0}button:-moz-focusring,[type="button"]:-moz-focusring,[type="reset"]:-moz-focusring,[type="submit"]:-moz-focusring{outline:1px dotted ButtonText}fieldset{padding:0.35em 0.75em 0.625em}legend{box-sizing:border-box;color:inherit;display:table;max-width:100%;padding:0;white-space:normal;}progress{vertical-align:baseline}textarea{overflow:auto}[type="checkbox"],[type="radio"]{box-sizing:border-box;padding:0;}[type="number"]::-webkit-inner-spin-button,[type="number"]::-webkit-outer-spin-button{height:auto}[type="search"]{-webkit-appearance:textfield;outline-offset:-2px;}[type="search"]::-webkit-search-decoration{-webkit-appearance:none}::-webkit-file-upload-button{-webkit-appearance:button;font:inherit;}details{display:block}summary{display:list-item}template{display:none}[hidden]{display:none}html,body,div,span,applet,object,iframe,h1,h2,h3,h4,h5,h6,p,blockquote,pre,a,abbr,acronym,address,big,cite,code,del,dfn,em,img,ins,kbd,q,s,samp,small,strike,strong,sub,sup,tt,var,b,u,i,center,dl,dt,dd,ol,ul,li,fieldset,form,label,legend,table,caption,tbody,tfoot,thead,tr,th,td,article,aside,canvas,details,embed,figure,figcaption,footer,header,hgroup,menu,nav,output,ruby,section,summary,time,mark,audio,video{margin:0;padding:0;border:0;font-size:100%;font-style:inherit;vertical-align:baseline}:root{display:block}:host{display:flex;flex-direction:row;width:-moz-fit-content;width:fit-content;min-width:-moz-min-content;min-width:min-content;border:var(--ic-border-width) solid var(--ic-toggle-button-unselected-border);border-radius:var(--ic-border-radius)}:host(.ic-toggle-button-group-full-width){width:100%;max-width:100%}:host(.ic-toggle-button-group-loading){min-width:-moz-max-content;min-width:max-content}:host(:focus){box-shadow:var(--ic-border-focus);border-radius:var(--ic-border-radius);transition:var(--ic-transition-duration-fast);outline:none}::slotted(ic-toggle-button){flex-grow:1;width:-moz-min-content;width:min-content;--toggle-button-border:none !important;--toggle-button-border-hover:none !important;--toggle-button-border-active:none !important}::slotted(ic-toggle-button:not(:last-of-type)){border-right:var(--ic-border-width) solid\n var(--ic-toggle-button-unselected-border)}:host(.ic-toggle-button-group-disabled){border:var(--ic-space-1px) dashed\n var(--ic-toggle-button-unselected-border-disabled);pointer-events:none}:host(.ic-toggle-button-group-disabled) ::slotted(ic-toggle-button:not(:last-of-type)){border-right:var(--ic-space-1px) dashed\n var(--ic-toggle-button-unselected-border-disabled)}:host(.ic-toggle-button-group-monochrome){border:var(--ic-border-width) solid\n var(--ic-toggle-button-unselected-border-monochrome)}:host(.ic-toggle-button-group-monochrome) ::slotted(ic-toggle-button:not(:last-of-type)){border-right:var(--ic-border-width) solid\n var(--ic-toggle-button-unselected-border-monochrome)}:host(.ic-toggle-button-group-disabled.ic-toggle-button-group-monochrome){border:var(--ic-border-width) dashed\n var(--ic-toggle-button-unselected-border-disabled-monochrome)}:host(.ic-toggle-button-group-disabled.ic-toggle-button-group-monochrome) ::slotted(ic-toggle-button:not(:last-of-type)){border-right:var(--ic-border-width) solid\n var(--ic-toggle-button-unselected-border-disabled-monochrome)}:host(.ic-toggle-button-group-hide-outline){--ic-toggle-button-unselected-border:transparent;--ic-toggle-button-unselected-border-disabled:transparent;--ic-toggle-button-unselected-border-monochrome:transparent;--ic-toggle-button-unselected-border-disabled-monochrome:transparent}';const h=u;const p="IC-TOGGLE-BUTTON-GROUP";const m=class{constructor(e){t(this,e);this.icChange=o(this,"icChange",7);this.lastKeyPressed={key:null,shift:false};this.externallySetActiveToggle=null;this.accessibleLabel="Toggle button group";this.disabled=false;this.fullWidth=false;this.loading=false;this.monochrome=false;this.outline=true;this.selectMethod="manual";this.selectType="single";this.size="medium";this.theme="inherit";this.tooltipPlacement="bottom";this.variant="default";this.keyListener=t=>{this.lastKeyPressed={key:t.key,shift:t.shiftKey}};this.handleHostFocus=({target:t,relatedTarget:o})=>{var e;if(this.disabled){t===null||t===void 0?void 0:t.blur();return}if(this.loading)return;const n=t;const i=o;const r=Array.from((n===null||n===void 0?void 0:n.querySelectorAll("ic-toggle-button"))||[]);const c=r.every((t=>!t.checked));const{shift:l}=this.lastKeyPressed;if((c||this.selectType!=="single")&&!l||c&&l&&(i===null||i===void 0?void 0:i.tagName)==p){(e=r[0])===null||e===void 0?void 0:e.focus()}else if(!l||(i===null||i===void 0?void 0:i.tagName)==p){r.filter((t=>t.checked))[0].focus()}};this.handleKeyDown=({key:t})=>{if(t!=="ArrowDown"&&t!=="ArrowRight"&&t!=="ArrowLeft"&&t!=="ArrowUp")return;const o=this.getAllToggleButtons();let e;if(this.externallySetActiveToggle){e=o[this.getNextItemToSelect(o.indexOf(o.filter((t=>t===this.externallySetActiveToggle))[0]),t==="ArrowDown"||t==="ArrowRight")]}else{e=o[this.getNextItemToSelect(o.indexOf(o.filter((t=>t===document.activeElement))[0]),t==="ArrowDown"||t==="ArrowRight")]}if(this.selectMethod==="auto"){e.checked=true;this.selectHandler(new CustomEvent("icToggleChecked",{detail:{checked:e.checked}}),e)}else{e.focus()}};this.getNextItemToSelect=(t,o)=>{const e=this.getAllToggleButtons();const n=e.length-1;if(t<1){t=0}let i=o?t+1:t-1;if(i<0){i=n}else if(i>n){i=0}if(e[i].disabled){i=this.getNextItemToSelect(i,o)}return i};this.getAllToggleButtons=()=>Array.from(this.el.querySelectorAll("ic-toggle-button"))}watchDisabledHandler(){this.getAllToggleButtons().forEach((t=>{t.disabled=this.disabled}));l(this.disabled,this.el)}watchFullWidthHandler(){this.getAllToggleButtons().forEach((t=>{t.fullWidth=this.fullWidth}))}watchLoadingHandler(){this.getAllToggleButtons().forEach((t=>{t.loading=this.loading}))}watchMonochromeHandler(){this.getAllToggleButtons().forEach((t=>{t.monochrome=this.monochrome}))}watchOutlineHandler(){this.getAllToggleButtons().forEach((t=>{t.outline=this.outline}))}watchSizeHandler(){this.getAllToggleButtons().forEach((t=>{t.size=this.size}))}watchThemeHandler(){this.getAllToggleButtons().forEach((t=>{t.theme=this.theme}))}watchTooltipPlacementHandler(){this.getAllToggleButtons().forEach((t=>{t.tooltipPlacement=this.tooltipPlacement}))}watchVariantHandler(){this.getAllToggleButtons().forEach((t=>{t.variant=this.variant}))}selectHandler(t,o){const e=this.getAllToggleButtons();let n=t.target;if(o)o.focus();if(this.selectType==="single"){if(!n&&o){n=o}e.forEach((t=>{if(t.id!==n.id&&t.checked){t.checked=false}}));this.icChange.emit({checked:t.detail.checked,selectedOption:n})}else{const t=e.filter((t=>t.checked&&!t.disabled));this.icChange.emit({checked:t.map((t=>t.checked)),toggledOptions:t.map((t=>({toggleButton:t}))),selectedOption:n})}}async setActiveToggle(t){this.externallySetActiveToggle=t}componentWillLoad(){if(this.selectType==="multi")this.selectMethod="manual";document.addEventListener("keydown",this.keyListener);l(this.disabled,this.el)}componentDidLoad(){this.getAllToggleButtons().forEach(((t,o)=>{var e,n,i;const r=(i=(n=(e=t.shadowRoot)===null||e===void 0?void 0:e.querySelector("ic-button"))===null||n===void 0?void 0:n.shadowRoot)===null||i===void 0?void 0:i.querySelector("button");if(r){const t=r.getAttribute("aria-label");const o=t?`${t}, `:"";r.setAttribute("aria-label",`${o}${this.accessibleLabel}`)}t.id=o.toString();t.tabIndex=-1;t.addEventListener("keydown",(t=>{this.handleKeyDown(t)}));t.classList.add("expand-toggle-group-child")}))}disconnectedCallback(){document===null||document===void 0?void 0:document.removeEventListener("keydown",this.keyListener)}render(){const{accessibleLabel:t,disabled:o,fullWidth:i,loading:r,monochrome:c,outline:l,theme:a}=this;return e(n,{key:"d8c78a67a57bfaf00ff1f7f732ea581af080c7a6",role:"group","aria-label":t,tabindex:o?-1:0,class:{"ic-toggle-button-group-disabled":o,"ic-toggle-button-group-full-width":i,"ic-toggle-button-group-loading":r,"ic-toggle-button-group-monochrome":c,"ic-toggle-button-group-hide-outline":!l,[`ic-theme-${a}`]:a!=="inherit"},onFocus:this.handleHostFocus},e("slot",{key:"84cdbfb743f949d9c804da2af8bcc6d7cfdd035e"}))}get el(){return i(this)}static get watchers(){return{disabled:["watchDisabledHandler"],fullWidth:["watchFullWidthHandler"],loading:["watchLoadingHandler"],monochrome:["watchMonochromeHandler"],outline:["watchOutlineHandler"],size:["watchSizeHandler"],theme:["watchThemeHandler"],tooltipPlacement:["watchTooltipPlacementHandler"],variant:["watchVariantHandler"]}}};m.style=h;export{b as ic_toggle_button,m as ic_toggle_button_group};
|
|
2
|
+
//# sourceMappingURL=p-7d878ad7.entry.js.map
|