{"version":3,"sources":["webpack:///./node_modules/@esri/calcite-components/dist/components/guid.js","webpack:///./node_modules/@esri/calcite-components/dist/components/label.js","webpack:///./node_modules/@esri/calcite-components/dist/components/observers.js","webpack:///./node_modules/@esri/calcite-components/dist/components/form.js","webpack:///./node_modules/@esri/calcite-components/dist/components/number.js","webpack:///./node_modules/@esri/calcite-components/dist/components/locale.js","webpack:///./node_modules/@esri/calcite-components/dist/components/math.js","webpack:///./node_modules/@esri/calcite-components/dist/components/progress.js","webpack:///./node_modules/@esri/calcite-components/dist/components/input.js","webpack:///./node_modules/@esri/calcite-components/dist/components/calcite-input.js","webpack:///./node_modules/@esri/calcite-components/dist/components/interactive.js","webpack:///./node_modules/@esri/calcite-components/dist/components/dom.js","webpack:///./node_modules/@esri/calcite-components/dist/components/icon.js"],"names":["gen","counts","map","count","out","i","Math","random","toString","substring","join","guid","labelClickEvent","labelConnectedEvent","labelDisconnectedEvent","labelTagName","onLabelClickMap","WeakMap","onLabelConnectedMap","onLabelDisconnectedMap","unlabeledComponents","Set","findLabelForComponent","componentEl","id","forLabel","selector","parentLabel","hasAncestorCustomElements","label","traversedElements","customElementAncestorCheckEventType","listener","event","stopImmediatePropagation","composedPath","slice","indexOf","addEventListener","once","dispatchEvent","CustomEvent","composed","bubbles","removeEventListener","ancestorCustomElements","filter","el","_a","tagName","includes","length","connectLabel","component","labelEl","has","boundOnLabelDisconnected","onLabelDisconnected","bind","boundOnLabelClick","onLabelClick","set","delete","document","get","disconnectLabel","getLabelText","_b","textContent","trim","this","disabled","containedLabelableChildClicked","contains","detail","sourceEvent","target","onLabelConnected","add","boundOnLabelConnected","createObserver","type","callback","options","Observer","getObserver","isBrowser","undefined","window","IntersectionObserver","MutationObserver","ResizeObserver","hiddenFormInputSlotName","isCheckable","onFormResetMap","formComponentSet","WeakSet","hasRegisteredFormComponentParent","form","formComponentEl","formComponentRegisterEventName","some","element","stopPropagation","submitForm","formEl","requestSubmit","connectForm","value","defaultValue","defaultChecked","checked","boundOnFormReset","onFormReset","disconnectForm","syncHiddenFormInput","name","ownerDocument","inputs","querySelectorAll","forEach","input","remove","values","Array","isArray","extra","seen","docFrag","valueMatch","find","val","defaultSyncHiddenFormInput","push","pop","createElement","slot","createDocumentFragment","append","required","tabIndex","call","HiddenFormInputSlot","numberKeys","isValidNumber","numberString","isNaN","Number","parseNumberString","stringContainsNumbers","sanitizeExponentialNumberString","nonExpoNumString","containsDecimal","result","split","match","reduce","string","part","sanitizeDecimalString","decimalString","decimalAtEndOfStringButNotStart","replace","sanitizeNegativeString","negativeString","allHyphensExceptTheStart","sanitizeLeadingZeroString","zeroString","allLeadingZerosOptionallyNegative","sanitizeNumberString","sanitizedValue","isNegativeDecimalOnlyZeros","test","func","firstE","toLowerCase","concat","section","number","allDecimalsExceptLast","RegExp","everythingExceptNumbersDecimalsAndMinusSigns","defaultGroupSeparator","createLocaleNumberFormatter","locale","Intl","NumberFormat","minimumFractionDigits","maximumFractionDigits","delocalizeNumberString","delocalizedNumberString","getMinusSign","getGroupSeparator","getDecimalSeparator","formatter","parts","formatToParts","localizeNumberString","displayGroupSeparator","localizedNumberString","decimalPlaces","max","progressCss","Progress","super","__registerHost","__attachShadow","reversed","isDeterminate","barStyles","width","text","role","class","bar","indeterminate","style","defineCustomElement","customElements","components","define","CSS","loader","clearButton","editingEnabled","inlineChild","inputIcon","prefix","suffix","numberButtonWrapper","buttonItemHorizontal","wrapper","inputWrapper","actionWrapper","resizeIconWrapper","numberButtonItem","INPUT_TYPE_ICONS","tel","password","email","date","time","search","SLOTS","action","TEXT","clear","inputCss","Input","calciteInputFocus","calciteInputBlur","calciteInputInput","calciteInputChange","alignment","autofocus","clearable","groupSeparator","hidden","intlLoading","loading","iconFlipRtl","documentElement","lang","localeFormat","numberButtonType","readOnly","scale","status","childElType","previousValueOrigin","mutationObserver","setDisabledAction","userChangedValue","keyDownHandler","isClearable","key","clearInputValue","preventDefault","defaultPrevented","nativeEvent","setValue","committing","origin","emitChangeIfUserModified","previousEmittedValue","emit","inputBlurHandler","childEl","inputFocusHandler","slottedActionEl","setFocus","inputInputHandler","inputKeyDownHandler","inputNumberInputHandler","delocalizedValue","inputType","childNumberEl","localizedValue","inputNumberKeyDownHandler","nudgeNumberValue","supportedKeys","altKey","ctrlKey","metaKey","isShiftTabEvent","shiftKey","decimalSeparator","direction","KeyboardEvent","repeat","inputMax","maxString","parseFloat","inputMin","minString","valueNudgeDelayInMs","incrementOrDecrementNumberValue","nudgeNumberValueIntervalId","clearInterval","firstValueNudge","setInterval","numberButtonMouseUpAndMouseOutHandler","numberButtonMouseDownHandler","dataset","adjustment","setChildElRef","setChildNumberElRef","setInputValue","newInputValue","setPreviousEmittedValue","newPreviousEmittedValue","setPreviousValue","newPreviousValue","previousValue","previousLocalizedValue","newValue","newLocalizedValue","calciteInputInputEvent","inputKeyUpHandler","min","warnAboutInvalidNumberValue","requestedIcon","icon","isTextarea","inlineEditableEl","closest","observe","childList","disconnect","oldValue","property","focus","inputStep","step","abs","inputVal","nudgedValue","finalValue","inputValPlaces","inputStepPlaces","toFixed","_c","_d","minLength","maxLength","setAttribute","removeAttribute","console","warn","dir","inputClearButton","intlClear","onClick","iconEl","flipRtl","isHorizontalNumberButton","numberButtonsHorizontalUp","onMouseDown","onMouseOut","onMouseUp","numberButtonsHorizontalDown","numberButtonsVertical","prefixText","suffixText","localeNumberInput","enterKeyHint","inputMode","onBlur","onFocus","onInput","onKeyDown","onKeyUp","placeholder","ref","rtl","CalciteInput","noopClick","updateHostInteraction","hostIsTabbable","activeElement","blur","click","HTMLElement","prototype","autoTheme","darkTheme","lightTheme","CSS_UTILITY","getElementDir","prop","closestElementCrossShadowBoundary","getAttribute","getElementProp","fallbackValue","getRootNode","getHost","root","host","queryElementsRoots","queryFromAll","allResults","assignedSlot","rootNode","results","from","uniqueResults","queryElementRoots","queryFrom","found","getElementById","querySelector","closestFrom","isCalciteFocusable","async","focusElement","defaultSlotSelector","getSlotted","slotName","slotSelector","all","queryMultiple","querySingle","getDirectChildren","children","child","matches","direct","parentElement","item","currentValue","setRequestedIcon","iconObject","iconValue","matchedValue","toAriaBoolean","iconCache","requestCache","scaleToPx","s","m","l","fetchIcon","size","normalizeIconName","filled","charAt","iconName","fetch","then","resp","json","catch","error","path","numberLeadingName","index","toUpperCase","iconCss","Icon","visible","waitUntilVisible","loadIconPathData","intersectionObserver","pathData","textLabel","semantic","paths","svg","fill","height","viewBox","xmlns","d","opacity","entries","entry","isIntersecting","rootMargin"],"mappings":"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","file":"js/chunk-3e788782.a073db10.js","sourcesContent":["/*!\n * All material copyright ESRI, All Rights Reserved, unless otherwise specified.\n * See https://github.com/Esri/calcite-components/blob/master/LICENSE.md for details.\n * v1.0.0-beta.82\n */\nfunction gen(counts) {\n return counts\n .map((count) => {\n let out = \"\";\n for (let i = 0; i < count; i++) {\n out += (((1 + Math.random()) * 0x10000) | 0).toString(16).substring(1);\n }\n return out;\n })\n .join(\"-\");\n}\nconst guid = () => gen([2, 1, 1, 1, 3]);\n\nexport { guid as g };\n","/*!\n * All material copyright ESRI, All Rights Reserved, unless otherwise specified.\n * See https://github.com/Esri/calcite-components/blob/master/LICENSE.md for details.\n * v1.0.0-beta.82\n */\nimport { c as queryElementRoots, e as closestElementCrossShadowBoundary } from './dom.js';\n\n/**\n * Exported for testing purposes only\n * @internal\n */\nconst labelClickEvent = \"calciteInternalLabelClick\";\nconst labelConnectedEvent = \"calciteInternalLabelConnected\";\nconst labelDisconnectedEvent = \"calciteInternaLabelDisconnected\";\nconst labelTagName = \"calcite-label\";\nconst onLabelClickMap = new WeakMap();\nconst onLabelConnectedMap = new WeakMap();\nconst onLabelDisconnectedMap = new WeakMap();\nconst unlabeledComponents = new Set();\nconst findLabelForComponent = (componentEl) => {\n const { id } = componentEl;\n const forLabel = id && queryElementRoots(componentEl, { selector: `${labelTagName}[for=\"${id}\"]` });\n if (forLabel) {\n return forLabel;\n }\n const parentLabel = closestElementCrossShadowBoundary(componentEl, labelTagName);\n if (!parentLabel ||\n // labelable components within other custom elements are not considered labelable\n hasAncestorCustomElements(parentLabel, componentEl)) {\n return null;\n }\n return parentLabel;\n};\nfunction hasAncestorCustomElements(label, componentEl) {\n let traversedElements;\n const customElementAncestorCheckEventType = \"custom-element-ancestor-check\";\n const listener = (event) => {\n event.stopImmediatePropagation();\n const composedPath = event.composedPath();\n traversedElements = composedPath.slice(composedPath.indexOf(componentEl), composedPath.indexOf(label));\n };\n label.addEventListener(customElementAncestorCheckEventType, listener, { once: true });\n componentEl.dispatchEvent(new CustomEvent(customElementAncestorCheckEventType, { composed: true, bubbles: true }));\n label.removeEventListener(customElementAncestorCheckEventType, listener);\n const ancestorCustomElements = traversedElements\n .filter((el) => el !== componentEl && el !== label)\n .filter((el) => { var _a; return (_a = el.tagName) === null || _a === void 0 ? void 0 : _a.includes(\"-\"); });\n return ancestorCustomElements.length > 0;\n}\n/**\n * Helper to set up label interactions on connectedCallback.\n */\nfunction connectLabel(component) {\n const labelEl = findLabelForComponent(component.el);\n if (onLabelClickMap.has(labelEl) || (!labelEl && unlabeledComponents.has(component))) {\n return;\n }\n const boundOnLabelDisconnected = onLabelDisconnected.bind(component);\n if (labelEl) {\n component.labelEl = labelEl;\n const boundOnLabelClick = onLabelClick.bind(component);\n onLabelClickMap.set(component.labelEl, boundOnLabelClick);\n component.labelEl.addEventListener(labelClickEvent, boundOnLabelClick);\n unlabeledComponents.delete(component);\n document.removeEventListener(labelConnectedEvent, onLabelConnectedMap.get(component));\n onLabelDisconnectedMap.set(component, boundOnLabelDisconnected);\n document.addEventListener(labelDisconnectedEvent, boundOnLabelDisconnected);\n }\n else if (!unlabeledComponents.has(component)) {\n boundOnLabelDisconnected();\n document.removeEventListener(labelDisconnectedEvent, onLabelDisconnectedMap.get(component));\n }\n}\n/**\n * Helper to tear down label interactions on disconnectedCallback on labelable components.\n */\nfunction disconnectLabel(component) {\n unlabeledComponents.delete(component);\n document.removeEventListener(labelConnectedEvent, onLabelConnectedMap.get(component));\n document.removeEventListener(labelDisconnectedEvent, onLabelDisconnectedMap.get(component));\n onLabelConnectedMap.delete(component);\n onLabelDisconnectedMap.delete(component);\n if (!component.labelEl) {\n return;\n }\n const boundOnLabelClick = onLabelClickMap.get(component.labelEl);\n component.labelEl.removeEventListener(labelClickEvent, boundOnLabelClick);\n onLabelClickMap.delete(component.labelEl);\n}\n/**\n * Helper to get the label text from a component.\n */\nfunction getLabelText(component) {\n var _a, _b;\n return component.label || ((_b = (_a = component.labelEl) === null || _a === void 0 ? void 0 : _a.textContent) === null || _b === void 0 ? void 0 : _b.trim()) || \"\";\n}\nfunction onLabelClick(event) {\n if (this.disabled) {\n return;\n }\n const containedLabelableChildClicked = this.el.contains(event.detail.sourceEvent.target);\n if (containedLabelableChildClicked) {\n return;\n }\n this.onLabelClick(event);\n}\nfunction onLabelConnected() {\n if (unlabeledComponents.has(this)) {\n connectLabel(this);\n }\n}\nfunction onLabelDisconnected() {\n unlabeledComponents.add(this);\n const boundOnLabelConnected = onLabelConnectedMap.get(this) || onLabelConnected.bind(this);\n onLabelConnectedMap.set(this, boundOnLabelConnected);\n document.addEventListener(labelConnectedEvent, boundOnLabelConnected);\n}\n\nexport { labelDisconnectedEvent as a, connectLabel as c, disconnectLabel as d, getLabelText as g, labelConnectedEvent as l };\n","/*!\n * All material copyright ESRI, All Rights Reserved, unless otherwise specified.\n * See https://github.com/Esri/calcite-components/blob/master/LICENSE.md for details.\n * v1.0.0-beta.82\n */\nimport { Build } from '@stencil/core/internal/client';\n\n/**\n * This utility ensures observers are created only for browser contexts.\n *\n * @param type - the type of observer to create\n * @param callback - the observer callback\n * @param options - the observer options\n */\nfunction createObserver(type, callback, options) {\n const Observer = getObserver(type);\n return Build.isBrowser ? new Observer(callback, options) : undefined;\n}\nfunction getObserver(type) {\n return (type === \"intersection\"\n ? window.IntersectionObserver\n : type === \"mutation\"\n ? window.MutationObserver\n : window.ResizeObserver);\n}\n\nexport { createObserver as c };\n","/*!\n * All material copyright ESRI, All Rights Reserved, unless otherwise specified.\n * See https://github.com/Esri/calcite-components/blob/master/LICENSE.md for details.\n * v1.0.0-beta.82\n */\nimport { e as closestElementCrossShadowBoundary } from './dom.js';\nimport { h } from '@stencil/core/internal/client';\n\n/**\n * Exported for testing purposes.\n */\nconst hiddenFormInputSlotName = \"hidden-form-input\";\nfunction isCheckable(component) {\n return \"checked\" in component;\n}\nconst onFormResetMap = new WeakMap();\nconst formComponentSet = new WeakSet();\nfunction hasRegisteredFormComponentParent(form, formComponentEl) {\n // we use events as a way to test for nested form-associated components across shadow bounds\n const formComponentRegisterEventName = \"calciteInternalFormComponentRegister\";\n let hasRegisteredFormComponentParent = false;\n form.addEventListener(formComponentRegisterEventName, (event) => {\n hasRegisteredFormComponentParent = event\n .composedPath()\n .some((element) => formComponentSet.has(element));\n event.stopPropagation();\n }, { once: true });\n formComponentEl.dispatchEvent(new CustomEvent(formComponentRegisterEventName, {\n bubbles: true,\n composed: true\n }));\n return hasRegisteredFormComponentParent;\n}\n/**\n * Helper to submit a form.\n */\nfunction submitForm(component) {\n var _a;\n (_a = component.formEl) === null || _a === void 0 ? void 0 : _a.requestSubmit();\n}\n/**\n * Helper to reset a form.\n */\nfunction resetForm(component) {\n var _a;\n (_a = component.formEl) === null || _a === void 0 ? void 0 : _a.reset();\n}\n/**\n * Helper to set up form interactions on connectedCallback.\n */\nfunction connectForm(component) {\n const { el, value } = component;\n const form = closestElementCrossShadowBoundary(el, \"form\");\n if (!form || hasRegisteredFormComponentParent(form, el)) {\n return;\n }\n component.formEl = form;\n component.defaultValue = value;\n if (isCheckable(component)) {\n component.defaultChecked = component.checked;\n }\n const boundOnFormReset = (component.onFormReset || onFormReset).bind(component);\n form.addEventListener(\"reset\", boundOnFormReset);\n onFormResetMap.set(component.el, boundOnFormReset);\n formComponentSet.add(el);\n}\nfunction onFormReset() {\n if (isCheckable(this)) {\n this.checked = this.defaultChecked;\n return;\n }\n this.value = this.defaultValue;\n}\n/**\n * Helper to tear down form interactions on disconnectedCallback.\n */\nfunction disconnectForm(component) {\n const { el, formEl } = component;\n if (!formEl) {\n return;\n }\n const boundOnFormReset = onFormResetMap.get(el);\n formEl.removeEventListener(\"reset\", boundOnFormReset);\n onFormResetMap.delete(el);\n component.formEl = null;\n formComponentSet.delete(el);\n}\n/**\n * Helper for setting the default value on initialization after connectedCallback.\n *\n * Note that this is only needed if the default value cannot be determined on connectedCallback.\n */\nfunction afterConnectDefaultValueSet(component, value) {\n component.defaultValue = value;\n}\n/**\n * Helper for maintaining a form-associated's hidden input in sync with the component.\n *\n * Based on Ionic's approach: https://github.com/ionic-team/ionic-framework/blob/e4bf052794af9aac07f887013b9250d2a045eba3/core/src/utils/helpers.ts#L198\n */\nfunction syncHiddenFormInput(component) {\n const { el, formEl, name, value } = component;\n const { ownerDocument } = el;\n const inputs = el.querySelectorAll(`input[slot=\"${hiddenFormInputSlotName}\"]`);\n if (!formEl || !name) {\n inputs.forEach((input) => input.remove());\n return;\n }\n const values = Array.isArray(value) ? value : [value];\n const extra = [];\n const seen = new Set();\n inputs.forEach((input) => {\n const valueMatch = values.find((val) => \n /* intentional non-strict equality check */\n val == input.value);\n if (valueMatch != null) {\n seen.add(valueMatch);\n defaultSyncHiddenFormInput(component, input, valueMatch);\n }\n else {\n extra.push(input);\n }\n });\n let docFrag;\n values.forEach((value) => {\n if (seen.has(value)) {\n return;\n }\n let input = extra.pop();\n if (!input) {\n input = ownerDocument.createElement(\"input\");\n input.slot = hiddenFormInputSlotName;\n }\n if (!docFrag) {\n docFrag = ownerDocument.createDocumentFragment();\n }\n docFrag.append(input);\n defaultSyncHiddenFormInput(component, input, value);\n });\n if (docFrag) {\n el.append(docFrag);\n }\n extra.forEach((input) => input.remove());\n}\nfunction defaultSyncHiddenFormInput(component, input, value) {\n var _a;\n const { defaultValue, disabled, name, required } = component;\n // keep in sync to prevent losing reset value\n input.defaultValue = defaultValue;\n input.disabled = disabled;\n input.name = name;\n input.required = required;\n input.tabIndex = -1;\n if (isCheckable(component)) {\n // keep in sync to prevent losing reset value\n input.defaultChecked = component.defaultChecked;\n // heuristic to support default/on mode from https://html.spec.whatwg.org/multipage/input.html#dom-input-value-default-on\n input.value = component.checked ? value || \"on\" : \"\";\n // we disable the component when not checked to avoid having its value submitted\n if (!disabled && !component.checked) {\n input.disabled = true;\n }\n }\n else {\n input.value = value || \"\";\n }\n (_a = component.syncHiddenFormInput) === null || _a === void 0 ? void 0 : _a.call(component, input);\n}\n/**\n * Helper to render the slot for form-associated component's hidden input.\n *\n * If the component has a default slot, this must be placed at the bottom of the component's root container to ensure it is the last child.\n *\n * render(): VNode {\n * \n *
\n * // ...\n * \n *
\n *
\n * }\n *\n * Note that the hidden-form-input Sass mixin must be added to the component's style to apply specific styles.\n */\nconst HiddenFormInputSlot = ({ component }) => {\n syncHiddenFormInput(component);\n return h(\"slot\", { name: hiddenFormInputSlotName });\n};\n\nexport { HiddenFormInputSlot as H, afterConnectDefaultValueSet as a, connectForm as c, disconnectForm as d, resetForm as r, submitForm as s };\n","/*!\n * All material copyright ESRI, All Rights Reserved, unless otherwise specified.\n * See https://github.com/Esri/calcite-components/blob/master/LICENSE.md for details.\n * v1.0.0-beta.82\n */\nfunction isActivationKey(key) {\n return key === \"Enter\" || key === \" \";\n}\nconst numberKeys = [\"0\", \"1\", \"2\", \"3\", \"4\", \"5\", \"6\", \"7\", \"8\", \"9\"];\n\nfunction isValidNumber(numberString) {\n return !(!numberString || isNaN(Number(numberString)));\n}\nfunction parseNumberString(numberString) {\n if (!numberString || !stringContainsNumbers(numberString)) {\n return \"\";\n }\n return sanitizeExponentialNumberString(numberString, (nonExpoNumString) => {\n let containsDecimal = false;\n const result = nonExpoNumString\n .split(\"\")\n .filter((value, i) => {\n if (value.match(/\\./g) && !containsDecimal) {\n containsDecimal = true;\n return true;\n }\n if (value.match(/\\-/g) && i === 0) {\n return true;\n }\n return numberKeys.includes(value);\n })\n .reduce((string, part) => string + part);\n return isValidNumber(result) ? Number(result).toString() : \"\";\n });\n}\nfunction sanitizeDecimalString(decimalString) {\n const decimalAtEndOfStringButNotStart = /(?!^\\.)\\.$/;\n return decimalString.replace(decimalAtEndOfStringButNotStart, \"\");\n}\nfunction sanitizeNegativeString(negativeString) {\n const allHyphensExceptTheStart = /(?!^-)-/g;\n return negativeString.replace(allHyphensExceptTheStart, \"\");\n}\nfunction sanitizeLeadingZeroString(zeroString) {\n const allLeadingZerosOptionallyNegative = /^([-0])0+(?=\\d)/;\n return zeroString.replace(allLeadingZerosOptionallyNegative, \"$1\");\n}\nfunction sanitizeNumberString(numberString) {\n return sanitizeExponentialNumberString(numberString, (nonExpoNumString) => {\n const sanitizedValue = sanitizeNegativeString(sanitizeDecimalString(sanitizeLeadingZeroString(nonExpoNumString)));\n const isNegativeDecimalOnlyZeros = /^-\\b0\\b\\.?0*$/;\n return isValidNumber(sanitizedValue)\n ? isNegativeDecimalOnlyZeros.test(sanitizedValue)\n ? sanitizedValue\n : Number(sanitizedValue).toString()\n : nonExpoNumString;\n });\n}\nfunction sanitizeExponentialNumberString(numberString, func) {\n if (!numberString) {\n return numberString;\n }\n const firstE = numberString.toLowerCase().indexOf(\"e\") + 1;\n return numberString\n .replace(/[eE]*$/g, \"\")\n .substring(0, firstE)\n .concat(numberString.slice(firstE).replace(/[eE]/g, \"\"))\n .split(/[eE]/)\n .map((section, i) => (i === 1 ? func(section.replace(/\\./g, \"\")) : func(section)))\n .join(\"e\")\n .replace(/^e/, \"1e\");\n}\nfunction stringContainsNumbers(string) {\n return numberKeys.some((number) => string.includes(number));\n}\n\nexport { sanitizeExponentialNumberString as a, sanitizeDecimalString as b, isActivationKey as c, isValidNumber as i, numberKeys as n, parseNumberString as p, sanitizeNumberString as s };\n","/*!\n * All material copyright ESRI, All Rights Reserved, unless otherwise specified.\n * See https://github.com/Esri/calcite-components/blob/master/LICENSE.md for details.\n * v1.0.0-beta.82\n */\nimport { a as sanitizeExponentialNumberString, i as isValidNumber, b as sanitizeDecimalString } from './number.js';\n\nconst locales = [\n \"ar\",\n \"bg\",\n \"bs\",\n \"ca\",\n \"cs\",\n \"da\",\n \"de\",\n \"de-CH\",\n \"el\",\n \"en\",\n \"en-AU\",\n \"en-CA\",\n \"en-GB\",\n \"es\",\n \"es-MX\",\n \"et\",\n \"fi\",\n \"fr\",\n \"fr-CH\",\n \"he\",\n \"hi\",\n \"hr\",\n \"hu\",\n \"id\",\n \"it\",\n \"it-CH\",\n \"ja\",\n \"ko\",\n \"lt\",\n \"lv\",\n \"mk\",\n \"nb\",\n \"nl\",\n \"pl\",\n \"pt\",\n \"pt-PT\",\n \"ro\",\n \"ru\",\n \"sk\",\n \"sl\",\n \"sr\",\n \"sv\",\n \"th\",\n \"tr\",\n \"uk\",\n \"vi\",\n \"zh-CN\",\n \"zh-HK\",\n \"zh-TW\"\n];\nconst allDecimalsExceptLast = new RegExp(`[.](?=.*[.])`, \"g\");\nconst everythingExceptNumbersDecimalsAndMinusSigns = new RegExp(\"[^0-9-.]\", \"g\");\nconst defaultGroupSeparator = new RegExp(\",\", \"g\");\nfunction createLocaleNumberFormatter(locale) {\n return new Intl.NumberFormat(locale, {\n minimumFractionDigits: 0,\n maximumFractionDigits: 20\n });\n}\nfunction delocalizeNumberString(numberString, locale) {\n return sanitizeExponentialNumberString(numberString, (nonExpoNumString) => {\n const delocalizedNumberString = nonExpoNumString\n .replace(getMinusSign(locale), \"-\")\n .replace(getGroupSeparator(locale), \"\")\n .replace(getDecimalSeparator(locale), \".\")\n .replace(allDecimalsExceptLast, \"\")\n .replace(everythingExceptNumbersDecimalsAndMinusSigns, \"\");\n return isValidNumber(delocalizedNumberString) ? delocalizedNumberString : nonExpoNumString;\n });\n}\nfunction getGroupSeparator(locale) {\n const formatter = createLocaleNumberFormatter(locale);\n const parts = formatter.formatToParts(1234567);\n const value = parts.find((part) => part.type === \"group\").value;\n // change whitespace group characters that don't render correctly\n return value.trim().length === 0 ? \" \" : value;\n}\nfunction getDecimalSeparator(locale) {\n const formatter = createLocaleNumberFormatter(locale);\n const parts = formatter.formatToParts(1.1);\n return parts.find((part) => part.type === \"decimal\").value;\n}\nfunction getMinusSign(locale) {\n const formatter = createLocaleNumberFormatter(locale);\n const parts = formatter.formatToParts(-9);\n return parts.find((part) => part.type === \"minusSign\").value;\n}\nfunction localizeNumberString(numberString, locale, displayGroupSeparator = false) {\n return sanitizeExponentialNumberString(numberString, (nonExpoNumString) => {\n if (nonExpoNumString) {\n const number = Number(sanitizeDecimalString(nonExpoNumString.replace(defaultGroupSeparator, \"\")));\n if (!isNaN(number)) {\n const formatter = createLocaleNumberFormatter(locale);\n const parts = formatter.formatToParts(number);\n const localizedNumberString = parts\n .map(({ type, value }) => {\n switch (type) {\n case \"group\":\n return displayGroupSeparator ? getGroupSeparator(locale) : \"\";\n case \"decimal\":\n return getDecimalSeparator(locale);\n case \"minusSign\":\n return getMinusSign(locale);\n default:\n return value;\n }\n })\n .reduce((string, part) => string + part);\n return localizedNumberString;\n }\n }\n return nonExpoNumString;\n });\n}\n\nexport { locales as a, delocalizeNumberString as d, getDecimalSeparator as g, localizeNumberString as l };\n","/*!\n * All material copyright ESRI, All Rights Reserved, unless otherwise specified.\n * See https://github.com/Esri/calcite-components/blob/master/LICENSE.md for details.\n * v1.0.0-beta.82\n */\nconst clamp = (value, min, max) => Math.max(min, Math.min(value, max));\nconst decimalPlaces = (value) => {\n const match = (\"\" + value).match(/(?:\\.(\\d+))?(?:[eE]([+-]?\\d+))?$/);\n if (!match) {\n return 0;\n }\n return Math.max(0, \n // Number of digits right of decimal point.\n (match[1] ? match[1].length : 0) -\n // Adjust for scientific notation.\n (match[2] ? +match[2] : 0));\n};\n\nexport { clamp as c, decimalPlaces as d };\n","/*!\n * All material copyright ESRI, All Rights Reserved, unless otherwise specified.\n * See https://github.com/Esri/calcite-components/blob/master/LICENSE.md for details.\n * v1.0.0-beta.82\n */\nimport { proxyCustomElement, HTMLElement, h } from '@stencil/core/internal/client';\n\nconst progressCss = \"@-webkit-keyframes in{0%{opacity:0}100%{opacity:1}}@keyframes in{0%{opacity:0}100%{opacity:1}}@-webkit-keyframes in-down{0%{opacity:0;-webkit-transform:translate3D(0, -5px, 0);transform:translate3D(0, -5px, 0)}100%{opacity:1;-webkit-transform:translate3D(0, 0, 0);transform:translate3D(0, 0, 0)}}@keyframes in-down{0%{opacity:0;-webkit-transform:translate3D(0, -5px, 0);transform:translate3D(0, -5px, 0)}100%{opacity:1;-webkit-transform:translate3D(0, 0, 0);transform:translate3D(0, 0, 0)}}@-webkit-keyframes in-up{0%{opacity:0;-webkit-transform:translate3D(0, 5px, 0);transform:translate3D(0, 5px, 0)}100%{opacity:1;-webkit-transform:translate3D(0, 0, 0);transform:translate3D(0, 0, 0)}}@keyframes in-up{0%{opacity:0;-webkit-transform:translate3D(0, 5px, 0);transform:translate3D(0, 5px, 0)}100%{opacity:1;-webkit-transform:translate3D(0, 0, 0);transform:translate3D(0, 0, 0)}}@-webkit-keyframes in-scale{0%{opacity:0;-webkit-transform:scale3D(0.95, 0.95, 1);transform:scale3D(0.95, 0.95, 1)}100%{opacity:1;-webkit-transform:scale3D(1, 1, 1);transform:scale3D(1, 1, 1)}}@keyframes in-scale{0%{opacity:0;-webkit-transform:scale3D(0.95, 0.95, 1);transform:scale3D(0.95, 0.95, 1)}100%{opacity:1;-webkit-transform:scale3D(1, 1, 1);transform:scale3D(1, 1, 1)}}:root{--calcite-animation-timing:calc(150ms * var(--calcite-internal-duration-factor));--calcite-internal-duration-factor:var(--calcite-duration-factor, 1);--calcite-internal-animation-timing-fast:calc(100ms * var(--calcite-internal-duration-factor));--calcite-internal-animation-timing-medium:calc(200ms * var(--calcite-internal-duration-factor));--calcite-internal-animation-timing-slow:calc(300ms * var(--calcite-internal-duration-factor))}.calcite-animate{opacity:0;-webkit-animation-fill-mode:both;animation-fill-mode:both;-webkit-animation-duration:var(--calcite-animation-timing);animation-duration:var(--calcite-animation-timing)}.calcite-animate__in{-webkit-animation-name:in;animation-name:in}.calcite-animate__in-down{-webkit-animation-name:in-down;animation-name:in-down}.calcite-animate__in-up{-webkit-animation-name:in-up;animation-name:in-up}.calcite-animate__in-scale{-webkit-animation-name:in-scale;animation-name:in-scale}:root{--calcite-popper-transition:var(--calcite-animation-timing)}:host([hidden]){display:none}:host{position:relative;display:block;width:100%}.track,.bar{position:absolute;top:0px;height:2px}.track{z-index:0;width:100%;overflow:hidden;background:var(--calcite-ui-border-3)}.bar{z-index:0;background-color:var(--calcite-ui-brand)}@media (forced-colors: active){.track{background-color:highlightText}.bar{background-color:linkText}}.indeterminate{width:20%;-webkit-animation:looping-progress-bar-ani 2200ms linear infinite;animation:looping-progress-bar-ani 2200ms linear infinite}.reversed{animation-direction:reverse}.text{padding-left:0px;padding-right:0px;padding-top:1rem;padding-bottom:0px;text-align:center;font-size:var(--calcite-font-size--2);line-height:1rem;font-weight:var(--calcite-font-weight-medium)}@-webkit-keyframes looping-progress-bar-ani{0%{-webkit-transform:translate3d(-100%, 0, 0);transform:translate3d(-100%, 0, 0)}50%{width:40%}100%{-webkit-transform:translate3d(600%, 0, 0);transform:translate3d(600%, 0, 0)}}@keyframes looping-progress-bar-ani{0%{-webkit-transform:translate3d(-100%, 0, 0);transform:translate3d(-100%, 0, 0)}50%{width:40%}100%{-webkit-transform:translate3d(600%, 0, 0);transform:translate3d(600%, 0, 0)}}\";\n\nconst Progress = /*@__PURE__*/ proxyCustomElement(class extends HTMLElement {\n constructor() {\n super();\n this.__registerHost();\n this.__attachShadow();\n /** Use indeterminate if finding actual progress value is impossible */\n this.type = \"determinate\";\n /** Fraction completed, in the range of 0 - 1.0 */\n this.value = 0;\n /** For indeterminate progress bars, reverse the animation direction */\n this.reversed = false;\n }\n render() {\n const isDeterminate = this.type === \"determinate\";\n const barStyles = isDeterminate ? { width: `${this.value * 100}%` } : {};\n return (h(\"div\", { \"aria-label\": this.label || this.text, \"aria-valuemax\": 1, \"aria-valuemin\": 0, \"aria-valuenow\": this.value, role: \"progressbar\" }, h(\"div\", { class: \"track\" }, h(\"div\", { class: {\n bar: true,\n indeterminate: this.type === \"indeterminate\",\n reversed: this.reversed\n }, style: barStyles })), this.text ? h(\"div\", { class: \"text\" }, this.text) : null));\n }\n get el() { return this; }\n static get style() { return progressCss; }\n}, [1, \"calcite-progress\", {\n \"type\": [1],\n \"value\": [2],\n \"label\": [1],\n \"text\": [1],\n \"reversed\": [4]\n }]);\nfunction defineCustomElement() {\n if (typeof customElements === \"undefined\") {\n return;\n }\n const components = [\"calcite-progress\"];\n components.forEach(tagName => { switch (tagName) {\n case \"calcite-progress\":\n if (!customElements.get(tagName)) {\n customElements.define(tagName, Progress);\n }\n break;\n } });\n}\ndefineCustomElement();\n\nexport { Progress as P, defineCustomElement as d };\n","/*!\n * All material copyright ESRI, All Rights Reserved, unless otherwise specified.\n * See https://github.com/Esri/calcite-components/blob/master/LICENSE.md for details.\n * v1.0.0-beta.82\n */\nimport { proxyCustomElement, HTMLElement, createEvent, h, Host } from '@stencil/core/internal/client';\nimport { T as TEXT$1, b as getSlotted, s as setRequestedIcon, g as getElementProp, a as getElementDir, C as CSS_UTILITY } from './dom.js';\nimport { c as connectLabel, d as disconnectLabel, g as getLabelText } from './label.js';\nimport { s as submitForm, c as connectForm, d as disconnectForm, H as HiddenFormInputSlot } from './form.js';\nimport { d as delocalizeNumberString, g as getDecimalSeparator, l as localizeNumberString } from './locale.js';\nimport { i as isValidNumber, p as parseNumberString, s as sanitizeNumberString, n as numberKeys } from './number.js';\nimport { d as decimalPlaces } from './math.js';\nimport { c as createObserver } from './observers.js';\nimport { u as updateHostInteraction } from './interactive.js';\nimport { d as defineCustomElement$2 } from './icon.js';\nimport { d as defineCustomElement$1 } from './progress.js';\n\nconst CSS = {\n loader: \"loader\",\n clearButton: \"clear-button\",\n editingEnabled: \"editing-enabled\",\n inlineChild: \"inline-child\",\n inputIcon: \"icon\",\n prefix: \"prefix\",\n suffix: \"suffix\",\n numberButtonWrapper: \"number-button-wrapper\",\n buttonItemHorizontal: \"number-button-item--horizontal\",\n wrapper: \"element-wrapper\",\n inputWrapper: \"wrapper\",\n actionWrapper: \"action-wrapper\",\n resizeIconWrapper: \"resize-icon-wrapper\",\n numberButtonItem: \"number-button-item\"\n};\nconst INPUT_TYPE_ICONS = {\n tel: \"phone\",\n password: \"lock\",\n email: \"email-address\",\n date: \"calendar\",\n time: \"clock\",\n search: \"search\"\n};\nconst SLOTS = {\n action: \"action\"\n};\nconst TEXT = {\n clear: \"Clear value\"\n};\n\nconst inputCss = \"@-webkit-keyframes in{0%{opacity:0}100%{opacity:1}}@keyframes in{0%{opacity:0}100%{opacity:1}}@-webkit-keyframes in-down{0%{opacity:0;-webkit-transform:translate3D(0, -5px, 0);transform:translate3D(0, -5px, 0)}100%{opacity:1;-webkit-transform:translate3D(0, 0, 0);transform:translate3D(0, 0, 0)}}@keyframes in-down{0%{opacity:0;-webkit-transform:translate3D(0, -5px, 0);transform:translate3D(0, -5px, 0)}100%{opacity:1;-webkit-transform:translate3D(0, 0, 0);transform:translate3D(0, 0, 0)}}@-webkit-keyframes in-up{0%{opacity:0;-webkit-transform:translate3D(0, 5px, 0);transform:translate3D(0, 5px, 0)}100%{opacity:1;-webkit-transform:translate3D(0, 0, 0);transform:translate3D(0, 0, 0)}}@keyframes in-up{0%{opacity:0;-webkit-transform:translate3D(0, 5px, 0);transform:translate3D(0, 5px, 0)}100%{opacity:1;-webkit-transform:translate3D(0, 0, 0);transform:translate3D(0, 0, 0)}}@-webkit-keyframes in-scale{0%{opacity:0;-webkit-transform:scale3D(0.95, 0.95, 1);transform:scale3D(0.95, 0.95, 1)}100%{opacity:1;-webkit-transform:scale3D(1, 1, 1);transform:scale3D(1, 1, 1)}}@keyframes in-scale{0%{opacity:0;-webkit-transform:scale3D(0.95, 0.95, 1);transform:scale3D(0.95, 0.95, 1)}100%{opacity:1;-webkit-transform:scale3D(1, 1, 1);transform:scale3D(1, 1, 1)}}:root{--calcite-animation-timing:calc(150ms * var(--calcite-internal-duration-factor));--calcite-internal-duration-factor:var(--calcite-duration-factor, 1);--calcite-internal-animation-timing-fast:calc(100ms * var(--calcite-internal-duration-factor));--calcite-internal-animation-timing-medium:calc(200ms * var(--calcite-internal-duration-factor));--calcite-internal-animation-timing-slow:calc(300ms * var(--calcite-internal-duration-factor))}.calcite-animate{opacity:0;-webkit-animation-fill-mode:both;animation-fill-mode:both;-webkit-animation-duration:var(--calcite-animation-timing);animation-duration:var(--calcite-animation-timing)}.calcite-animate__in{-webkit-animation-name:in;animation-name:in}.calcite-animate__in-down{-webkit-animation-name:in-down;animation-name:in-down}.calcite-animate__in-up{-webkit-animation-name:in-up;animation-name:in-up}.calcite-animate__in-scale{-webkit-animation-name:in-scale;animation-name:in-scale}:root{--calcite-popper-transition:var(--calcite-animation-timing)}:host([hidden]){display:none}:host{display:block}:host([scale=s]) input,:host([scale=s]) .prefix,:host([scale=s]) .suffix{height:1.5rem;padding:0.5rem;font-size:var(--calcite-font-size--2);line-height:1rem}:host([scale=s]) textarea{height:1.5rem;min-height:1.5rem}:host([scale=s]) .number-button-wrapper,:host([scale=s]) .action-wrapper calcite-button,:host([scale=s]) .action-wrapper calcite-button button{height:1.5rem}:host([scale=s]) input[type=file]{height:1.5rem}:host([scale=s]) .clear-button{min-height:1.5rem;min-width:1.5rem}:host([scale=s]) textarea{height:auto;padding-top:0.25rem;padding-bottom:0.25rem;padding-left:0.5rem;padding-right:0.5rem;font-size:var(--calcite-font-size--2);line-height:1rem}:host([scale=m]) input,:host([scale=m]) .prefix,:host([scale=m]) .suffix{height:2rem;padding:0.75rem;font-size:var(--calcite-font-size--1);line-height:1rem}:host([scale=m]) textarea{min-height:2rem}:host([scale=m]) .number-button-wrapper,:host([scale=m]) .action-wrapper calcite-button,:host([scale=m]) .action-wrapper calcite-button button{height:2rem}:host([scale=m]) input[type=file]{height:2rem}:host([scale=m]) .clear-button{min-height:2rem;min-width:2rem}:host([scale=m]) textarea{height:auto;padding-top:0.5rem;padding-bottom:0.5rem;padding-left:0.75rem;padding-right:0.75rem;font-size:var(--calcite-font-size--1);line-height:1rem}:host([scale=l]) input,:host([scale=l]) .prefix,:host([scale=l]) .suffix{height:2.75rem;padding:1rem;font-size:var(--calcite-font-size-0);line-height:1.25rem}:host([scale=l]) textarea{min-height:2.75rem}:host([scale=l]) .number-button-wrapper,:host([scale=l]) .action-wrapper calcite-button,:host([scale=l]) .action-wrapper calcite-button button{height:2.75rem}:host([scale=l]) input[type=file]{height:2.75rem}:host([scale=l]) .clear-button{min-height:2.75rem;min-width:2.75rem}:host([scale=l]) textarea{height:auto;padding-top:0.75rem;padding-bottom:0.75rem;padding-left:1rem;padding-right:1rem;font-size:var(--calcite-font-size-0);line-height:1.25rem}:host([disabled]){pointer-events:none;cursor:default;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;opacity:var(--calcite-ui-opacity-disabled)}:host([disabled]) textarea{resize:none}:host([disabled]) ::slotted([calcite-hydrated][disabled]),:host([disabled]) [calcite-hydrated][disabled]{opacity:1}:host textarea,:host input{-webkit-transition:var(--calcite-animation-timing), height 0s;transition:var(--calcite-animation-timing), height 0s;-webkit-appearance:none;position:relative;margin:0px;-webkit-box-sizing:border-box;box-sizing:border-box;display:-ms-flexbox;display:flex;max-height:100%;width:100%;max-width:100%;-ms-flex:1 1 0%;flex:1 1 0%;border-radius:0px;background-color:var(--calcite-ui-foreground-1);font-family:inherit;font-weight:var(--calcite-font-weight-normal);color:var(--calcite-ui-text-1)}:host input[type=search]::-webkit-search-decoration{-webkit-appearance:none}:host input,:host textarea{border-width:1px;border-style:solid;border-color:var(--calcite-ui-border-input);color:var(--calcite-ui-text-1)}:host input:-ms-input-placeholder,:host textarea:-ms-input-placeholder{font-weight:var(--calcite-font-weight-normal);color:var(--calcite-ui-text-3)}:host input::-ms-input-placeholder,:host textarea::-ms-input-placeholder{font-weight:var(--calcite-font-weight-normal);color:var(--calcite-ui-text-3)}:host input::placeholder,:host input:-ms-input-placeholder,:host input::-ms-input-placeholder,:host textarea::placeholder,:host textarea:-ms-input-placeholder,:host textarea::-ms-input-placeholder{font-weight:var(--calcite-font-weight-normal);color:var(--calcite-ui-text-3)}:host input:focus,:host textarea:focus{border-color:var(--calcite-ui-brand);color:var(--calcite-ui-text-1)}:host input[readonly],:host textarea[readonly]{background-color:var(--calcite-ui-background);font-weight:var(--calcite-font-weight-medium)}:host input[readonly]:focus,:host textarea[readonly]:focus{color:var(--calcite-ui-text-1)}:host calcite-icon{color:var(--calcite-ui-text-3)}:host textarea,:host input{outline-offset:0;outline-color:transparent;-webkit-transition:outline-offset 100ms ease-in-out, outline-color 100ms ease-in-out;transition:outline-offset 100ms ease-in-out, outline-color 100ms ease-in-out}:host textarea:focus,:host input:focus{outline:2px solid var(--calcite-ui-brand);outline-offset:-2px}:host([status=invalid]) input,:host([status=invalid]) textarea{border-color:var(--calcite-ui-danger)}:host([status=invalid]) input:focus,:host([status=invalid]) textarea:focus{outline:2px solid var(--calcite-ui-danger);outline-offset:-2px}:host([scale=s]) .icon{inset-inline-start:0.5rem}:host([scale=m]) .icon{inset-inline-start:0.75rem}:host([scale=l]) .icon{inset-inline-start:1rem}:host([icon][scale=s]) input{-webkit-padding-start:2rem;padding-inline-start:2rem}:host([icon][scale=m]) input{-webkit-padding-start:2.5rem;padding-inline-start:2.5rem}:host([icon][scale=l]) input{-webkit-padding-start:3rem;padding-inline-start:3rem}.element-wrapper{position:relative;-ms-flex-order:3;order:3;display:-ms-inline-flexbox;display:inline-flex;-ms-flex:1 1 0%;flex:1 1 0%;-ms-flex-align:center;align-items:center}.icon{pointer-events:none;position:absolute;z-index:10;display:block;-webkit-transition-property:all;transition-property:all;-webkit-transition-duration:var(--calcite-animation-timing);transition-duration:var(--calcite-animation-timing);-webkit-transition-timing-function:ease-in-out;transition-timing-function:ease-in-out;-webkit-transition-delay:0s;transition-delay:0s}input[type=text]::-ms-clear,input[type=text]::-ms-reveal{display:none;height:0px;width:0px}input[type=search]::-webkit-search-decoration,input[type=search]::-webkit-search-cancel-button,input[type=search]::-webkit-search-results-button,input[type=search]::-webkit-search-results-decoration,input[type=date]::-webkit-clear-button,input[type=time]::-webkit-clear-button{display:none}.clear-button{pointer-events:initial;-ms-flex-order:4;order:4;margin:0px;-webkit-box-sizing:border-box;box-sizing:border-box;display:-ms-flexbox;display:flex;min-height:100%;cursor:pointer;-ms-flex-align:center;align-items:center;-ms-flex-pack:center;justify-content:center;-ms-flex-item-align:stretch;align-self:stretch;border-width:1px;border-style:solid;border-color:var(--calcite-ui-border-input);background-color:var(--calcite-ui-foreground-1);outline-offset:0;outline-color:transparent;-webkit-transition:outline-offset 100ms ease-in-out, outline-color 100ms ease-in-out;transition:outline-offset 100ms ease-in-out, outline-color 100ms ease-in-out;border-inline-start-width:0px}.clear-button:hover{background-color:var(--calcite-ui-foreground-2);-webkit-transition-property:all;transition-property:all;-webkit-transition-duration:var(--calcite-animation-timing);transition-duration:var(--calcite-animation-timing);-webkit-transition-timing-function:ease-in-out;transition-timing-function:ease-in-out;-webkit-transition-delay:0s;transition-delay:0s}.clear-button:hover calcite-icon{color:var(--calcite-ui-text-1);-webkit-transition-property:all;transition-property:all;-webkit-transition-duration:var(--calcite-animation-timing);transition-duration:var(--calcite-animation-timing);-webkit-transition-timing-function:ease-in-out;transition-timing-function:ease-in-out;-webkit-transition-delay:0s;transition-delay:0s}.clear-button:active{background-color:var(--calcite-ui-foreground-3)}.clear-button:active calcite-icon{color:var(--calcite-ui-text-1)}.clear-button:focus{outline:2px solid var(--calcite-ui-brand);outline-offset:-2px}.clear-button:disabled{opacity:var(--calcite-ui-opacity-disabled)}.loader{top:1px;left:1px;right:1px;pointer-events:none;position:absolute;display:block}.action-wrapper{-ms-flex-order:7;order:7;display:-ms-flexbox;display:flex}.prefix,.suffix{-webkit-box-sizing:border-box;box-sizing:border-box;display:-ms-flexbox;display:flex;height:auto;min-height:100%;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;-ms-flex-line-pack:center;align-content:center;-ms-flex-align:center;align-items:center;overflow-wrap:break-word;border-width:1px;border-style:solid;border-color:var(--calcite-ui-border-input);background-color:var(--calcite-ui-background);font-weight:var(--calcite-font-weight-medium);line-height:1;color:var(--calcite-ui-text-2)}.prefix{-ms-flex-order:2;order:2;border-inline-end-width:0px}.suffix{-ms-flex-order:5;order:5;border-inline-start-width:0px}:host([alignment=start]) textarea,:host([alignment=start]) input{text-align:start}:host([alignment=end]) textarea,:host([alignment=end]) input{text-align:end}:host input[type=number]{-moz-appearance:textfield}:host input[type=number]::-webkit-inner-spin-button,:host input[type=number]::-webkit-outer-spin-button{-webkit-appearance:none;-moz-appearance:textfield;margin:0px}.number-button-wrapper{pointer-events:none;-ms-flex-order:6;order:6;-webkit-box-sizing:border-box;box-sizing:border-box;display:-ms-flexbox;display:flex;-ms-flex-direction:column;flex-direction:column;-webkit-transition-property:all;transition-property:all;-webkit-transition-duration:var(--calcite-animation-timing);transition-duration:var(--calcite-animation-timing);-webkit-transition-timing-function:ease-in-out;transition-timing-function:ease-in-out;-webkit-transition-delay:0s;transition-delay:0s}:host([number-button-type=vertical]) .wrapper{-ms-flex-direction:row;flex-direction:row;display:-ms-flexbox;display:flex}:host([number-button-type=vertical]) input,:host([number-button-type=vertical]) textarea{-ms-flex-order:2;order:2}:host([number-button-type=horizontal]) .calcite--rtl .number-button-item[data-adjustment=down] calcite-icon{-webkit-transform:rotate(-90deg);transform:rotate(-90deg)}:host([number-button-type=horizontal]) .calcite--rtl .number-button-item[data-adjustment=up] calcite-icon{-webkit-transform:rotate(-90deg);transform:rotate(-90deg)}.number-button-item.number-button-item--horizontal[data-adjustment=down],.number-button-item.number-button-item--horizontal[data-adjustment=up]{-ms-flex-order:1;order:1;max-height:100%;min-height:100%;-ms-flex-item-align:stretch;align-self:stretch}.number-button-item.number-button-item--horizontal[data-adjustment=down] calcite-icon,.number-button-item.number-button-item--horizontal[data-adjustment=up] calcite-icon{-webkit-transform:rotate(90deg);transform:rotate(90deg)}.number-button-item.number-button-item--horizontal[data-adjustment=down]{border-width:1px;border-style:solid;border-color:var(--calcite-ui-border-input);border-inline-end-width:0px}.number-button-item.number-button-item--horizontal[data-adjustment=down]:hover{background-color:var(--calcite-ui-foreground-2)}.number-button-item.number-button-item--horizontal[data-adjustment=down]:hover calcite-icon{color:var(--calcite-ui-text-1)}.number-button-item.number-button-item--horizontal[data-adjustment=up]{-ms-flex-order:5;order:5}.number-button-item.number-button-item--horizontal[data-adjustment=up]:hover{background-color:var(--calcite-ui-foreground-2)}.number-button-item.number-button-item--horizontal[data-adjustment=up]:hover calcite-icon{color:var(--calcite-ui-text-1)}:host([number-button-type=vertical]) .number-button-item[data-adjustment=down]:hover{background-color:var(--calcite-ui-foreground-2)}:host([number-button-type=vertical]) .number-button-item[data-adjustment=down]:hover calcite-icon{color:var(--calcite-ui-text-1)}:host([number-button-type=vertical]) .number-button-item[data-adjustment=up]:hover{background-color:var(--calcite-ui-foreground-2)}:host([number-button-type=vertical]) .number-button-item[data-adjustment=up]:hover calcite-icon{color:var(--calcite-ui-text-1)}:host([number-button-type=vertical]) .number-button-item[data-adjustment=down]{border-top-width:0px}.number-button-item{max-height:50%;min-height:50%;pointer-events:initial;margin:0px;-webkit-box-sizing:border-box;box-sizing:border-box;display:-ms-flexbox;display:flex;cursor:pointer;-ms-flex-align:center;align-items:center;-ms-flex-item-align:center;align-self:center;border-width:1px;border-style:solid;border-color:var(--calcite-ui-border-input);background-color:var(--calcite-ui-foreground-1);padding-top:0px;padding-bottom:0px;padding-left:0.5rem;padding-right:0.5rem;-webkit-transition-property:all;transition-property:all;-webkit-transition-duration:var(--calcite-animation-timing);transition-duration:var(--calcite-animation-timing);-webkit-transition-timing-function:ease-in-out;transition-timing-function:ease-in-out;-webkit-transition-delay:0s;transition-delay:0s;border-inline-start-width:0px}.number-button-item calcite-icon{pointer-events:none;-webkit-transition-property:all;transition-property:all;-webkit-transition-duration:var(--calcite-animation-timing);transition-duration:var(--calcite-animation-timing);-webkit-transition-timing-function:ease-in-out;transition-timing-function:ease-in-out;-webkit-transition-delay:0s;transition-delay:0s}.number-button-item:focus{background-color:var(--calcite-ui-foreground-2)}.number-button-item:focus calcite-icon{color:var(--calcite-ui-text-1)}.number-button-item:active{background-color:var(--calcite-ui-foreground-3)}.wrapper{position:relative;display:-ms-flexbox;display:flex;-ms-flex-direction:row;flex-direction:row;-ms-flex-align:center;align-items:center}:host input::-webkit-calendar-picker-indicator{display:none}:host input[type=date]::-webkit-input-placeholder{visibility:hidden !important}:host textarea::-webkit-resizer{position:absolute;bottom:0px;-webkit-box-sizing:border-box;box-sizing:border-box;padding-top:0px;padding-bottom:0px;padding-left:0.25rem;padding-right:0.25rem;inset-inline-end:0}.resize-icon-wrapper{bottom:2px;inset-inline-end:2px;pointer-events:none;position:absolute;z-index:10;height:0.75rem;width:0.75rem;background-color:var(--calcite-ui-foreground-1);color:var(--calcite-ui-text-3)}.resize-icon-wrapper calcite-icon{bottom:0.25rem;inset-inline-end:0.25rem;-webkit-transform:rotate(-45deg);transform:rotate(-45deg)}.calcite--rtl .resize-icon-wrapper calcite-icon{-webkit-transform:rotate(45deg);transform:rotate(45deg)}:host([type=color]) input{padding:0.25rem}:host([type=file]) input{cursor:pointer;border-width:1px;border-style:dashed;border-color:var(--calcite-ui-border-input);background-color:var(--calcite-ui-foreground-1);text-align:center}:host([type=file][scale=s]) input{padding-top:1px;padding-bottom:1px;padding-left:0.5rem;padding-right:0.5rem}:host([type=file][scale=m]) input{padding-top:0.25rem;padding-bottom:0.25rem;padding-left:0.75rem;padding-right:0.75rem}:host([type=file][scale=l]) input{padding-top:0.5rem;padding-bottom:0.5rem;padding-left:1rem;padding-right:1rem}:host(.no-bottom-border) input{border-bottom-width:0px}:host(.border-top-color-one) input{border-top-color:var(--calcite-ui-border-1)}:host .inline-child{background-color:transparent;-webkit-transition-property:all;transition-property:all;-webkit-transition-duration:var(--calcite-animation-timing);transition-duration:var(--calcite-animation-timing);-webkit-transition-timing-function:ease-in-out;transition-timing-function:ease-in-out;-webkit-transition-delay:0s;transition-delay:0s}:host .inline-child .editing-enabled{background-color:inherit}:host .inline-child:not(.editing-enabled){display:-ms-flexbox;display:flex;cursor:pointer;border-color:transparent;-webkit-padding-start:0;padding-inline-start:0}::slotted(input[slot=hidden-form-input]){bottom:0 !important;left:0 !important;margin:0 !important;opacity:0 !important;outline:none !important;padding:0 !important;position:absolute !important;right:0 !important;top:0 !important;-webkit-transform:none !important;transform:none !important;-webkit-appearance:none !important;z-index:-1 !important}\";\n\nconst Input = /*@__PURE__*/ proxyCustomElement(class extends HTMLElement {\n constructor() {\n super();\n this.__registerHost();\n this.__attachShadow();\n this.calciteInputFocus = createEvent(this, \"calciteInputFocus\", 7);\n this.calciteInputBlur = createEvent(this, \"calciteInputBlur\", 7);\n this.calciteInputInput = createEvent(this, \"calciteInputInput\", 7);\n this.calciteInputChange = createEvent(this, \"calciteInputChange\", 7);\n //--------------------------------------------------------------------------\n //\n // Properties\n //\n //--------------------------------------------------------------------------\n /** specify the alignment of the value of the input */\n this.alignment = \"start\";\n /** should the input autofocus */\n this.autofocus = false;\n /** optionally display a clear button that displays when field has a value\n * shows by default for search, time, date\n * will not display for type=\"textarea\" */\n this.clearable = false;\n /** is the input disabled */\n this.disabled = false;\n /** for number values, displays the locale's group separator */\n this.groupSeparator = false;\n /** when true, the component will not be visible */\n this.hidden = false;\n /**\n * string to override English loading text\n * @default \"Loading\"\n */\n this.intlLoading = TEXT$1.loading;\n /** flip the icon in rtl */\n this.iconFlipRtl = false;\n /** specify if the input is in loading state */\n this.loading = false;\n /** BCP 47 language tag for desired language and country format */\n this.locale = document.documentElement.lang || \"en\";\n /**\n * Toggles locale formatting for numbers.\n * @internal\n */\n this.localeFormat = false;\n /** specify the placement of the number buttons */\n this.numberButtonType = \"vertical\";\n /** When true, a field cannot be modified. */\n this.readOnly = false;\n /** is the input required */\n this.required = false;\n /** specify the scale of the input, defaults to m */\n this.scale = \"m\";\n /** specify the status of the input field, determines message and icons */\n this.status = \"idle\";\n /** @internal adds inline styles for text input when slotted in calcite-inline-editable */\n this.editingEnabled = false;\n /**\n * specify the input type\n *\n * Note that the following types add type-specific icons by default: `date`, `email`, `password`, `search`, `tel`, `time`\n */\n this.type = \"text\";\n /** input value */\n this.value = \"\";\n /** keep track of the rendered child type */\n this.childElType = \"input\";\n this.previousValueOrigin = \"initial\";\n this.mutationObserver = createObserver(\"mutation\", () => this.setDisabledAction());\n this.userChangedValue = false;\n //--------------------------------------------------------------------------\n //\n // Private Methods\n //\n //--------------------------------------------------------------------------\n this.keyDownHandler = (event) => {\n if (this.readOnly || this.disabled) {\n return;\n }\n if (this.isClearable && event.key === \"Escape\") {\n this.clearInputValue(event);\n event.preventDefault();\n }\n if (event.key === \"Enter\" && !event.defaultPrevented) {\n submitForm(this);\n }\n };\n this.clearInputValue = (nativeEvent) => {\n this.setValue({\n committing: true,\n nativeEvent,\n origin: \"user\",\n value: \"\"\n });\n };\n this.emitChangeIfUserModified = () => {\n if (this.previousValueOrigin === \"user\" && this.value !== this.previousEmittedValue) {\n this.calciteInputChange.emit();\n }\n this.previousEmittedValue = this.value;\n };\n this.inputBlurHandler = () => {\n this.calciteInputBlur.emit({\n element: this.childEl,\n value: this.value\n });\n this.emitChangeIfUserModified();\n };\n this.inputFocusHandler = (event) => {\n const slottedActionEl = getSlotted(this.el, \"action\");\n if (event.target !== slottedActionEl) {\n this.setFocus();\n }\n this.calciteInputFocus.emit({\n element: this.childEl,\n value: this.value\n });\n };\n this.inputInputHandler = (nativeEvent) => {\n if (this.disabled || this.readOnly) {\n return;\n }\n this.setValue({\n nativeEvent,\n origin: \"user\",\n value: nativeEvent.target.value\n });\n };\n this.inputKeyDownHandler = (event) => {\n if (this.disabled || this.readOnly) {\n return;\n }\n if (event.key === \"Enter\") {\n this.emitChangeIfUserModified();\n }\n };\n this.inputNumberInputHandler = (nativeEvent) => {\n if (this.disabled || this.readOnly) {\n return;\n }\n const value = nativeEvent.target.value;\n const delocalizedValue = delocalizeNumberString(value, this.locale);\n if (nativeEvent.inputType === \"insertFromPaste\") {\n if (!isValidNumber(delocalizedValue)) {\n nativeEvent.preventDefault();\n }\n this.setValue({\n nativeEvent,\n origin: \"user\",\n value: parseNumberString(delocalizedValue)\n });\n this.childNumberEl.value = this.localizedValue;\n }\n else {\n this.setValue({\n nativeEvent,\n origin: \"user\",\n value: delocalizedValue\n });\n }\n };\n this.inputNumberKeyDownHandler = (event) => {\n if (this.type !== \"number\" || this.disabled || this.readOnly) {\n return;\n }\n if (event.key === \"ArrowUp\") {\n /* prevent default behavior of moving cursor to the beginning of the input when holding down ArrowUp */\n event.preventDefault();\n this.nudgeNumberValue(\"up\", event);\n return;\n }\n if (event.key === \"ArrowDown\") {\n this.nudgeNumberValue(\"down\", event);\n return;\n }\n const supportedKeys = [\n ...numberKeys,\n \"ArrowLeft\",\n \"ArrowRight\",\n \"Backspace\",\n \"Delete\",\n \"Enter\",\n \"Escape\",\n \"Tab\"\n ];\n if (event.altKey || event.ctrlKey || event.metaKey) {\n return;\n }\n const isShiftTabEvent = event.shiftKey && event.key === \"Tab\";\n if (supportedKeys.includes(event.key) && (!event.shiftKey || isShiftTabEvent)) {\n if (event.key === \"Enter\") {\n this.emitChangeIfUserModified();\n }\n return;\n }\n const decimalSeparator = getDecimalSeparator(this.locale);\n if (event.key === decimalSeparator) {\n if (!this.value && !this.childNumberEl.value) {\n return;\n }\n if (this.value && this.childNumberEl.value.indexOf(decimalSeparator) === -1) {\n return;\n }\n }\n if (/[eE]/.test(event.key)) {\n if (!this.value && !this.childNumberEl.value) {\n return;\n }\n if (this.value && !/[eE]/.test(this.childNumberEl.value)) {\n return;\n }\n }\n if (event.key === \"-\") {\n if (!this.value && !this.childNumberEl.value) {\n return;\n }\n if (this.value && this.childNumberEl.value.split(\"-\").length <= 2) {\n return;\n }\n }\n event.preventDefault();\n };\n this.nudgeNumberValue = (direction, nativeEvent) => {\n if ((nativeEvent instanceof KeyboardEvent && nativeEvent.repeat) || this.type !== \"number\") {\n return;\n }\n const inputMax = this.maxString ? parseFloat(this.maxString) : null;\n const inputMin = this.minString ? parseFloat(this.minString) : null;\n const valueNudgeDelayInMs = 100;\n this.incrementOrDecrementNumberValue(direction, inputMax, inputMin, nativeEvent);\n if (this.nudgeNumberValueIntervalId) {\n window.clearInterval(this.nudgeNumberValueIntervalId);\n }\n let firstValueNudge = true;\n this.nudgeNumberValueIntervalId = window.setInterval(() => {\n if (firstValueNudge) {\n firstValueNudge = false;\n return;\n }\n this.incrementOrDecrementNumberValue(direction, inputMax, inputMin, nativeEvent);\n }, valueNudgeDelayInMs);\n };\n this.numberButtonMouseUpAndMouseOutHandler = () => {\n window.clearInterval(this.nudgeNumberValueIntervalId);\n };\n this.numberButtonMouseDownHandler = (event) => {\n event.preventDefault();\n const direction = event.target.dataset.adjustment;\n this.nudgeNumberValue(direction, event);\n };\n this.setChildElRef = (el) => {\n this.childEl = el;\n };\n this.setChildNumberElRef = (el) => {\n this.childNumberEl = el;\n };\n this.setInputValue = (newInputValue) => {\n if (this.type === \"text\" && !this.childEl) {\n return;\n }\n if (this.type === \"number\" && !this.childNumberEl) {\n return;\n }\n this[`child${this.type === \"number\" ? \"Number\" : \"\"}El`].value = newInputValue;\n };\n this.setPreviousEmittedValue = (newPreviousEmittedValue) => {\n this.previousEmittedValue =\n this.type === \"number\"\n ? isValidNumber(newPreviousEmittedValue)\n ? newPreviousEmittedValue\n : \"\"\n : newPreviousEmittedValue;\n };\n this.setPreviousValue = (newPreviousValue) => {\n this.previousValue =\n this.type === \"number\"\n ? isValidNumber(newPreviousValue)\n ? newPreviousValue\n : \"\"\n : newPreviousValue;\n };\n this.setValue = ({ committing = false, nativeEvent, origin, previousValue, value }) => {\n const previousLocalizedValue = this.type === \"number\"\n ? localizeNumberString(this.previousValue, this.locale, this.groupSeparator)\n : \"\";\n const sanitizedValue = this.type === \"number\" ? sanitizeNumberString(value) : value;\n const newValue = this.type === \"number\" && value && !sanitizedValue\n ? isValidNumber(this.previousValue)\n ? this.previousValue\n : \"\"\n : sanitizedValue;\n const newLocalizedValue = this.type === \"number\"\n ? localizeNumberString(newValue, this.locale, this.groupSeparator)\n : \"\";\n this.setPreviousValue(previousValue || this.value);\n this.previousValueOrigin = origin;\n this.userChangedValue = origin === \"user\" && this.value !== newValue;\n this.value = newValue;\n if (this.type === \"number\") {\n this.localizedValue = newLocalizedValue;\n }\n if (origin === \"direct\") {\n this.setInputValue(this.type === \"number\" ? newLocalizedValue : newValue);\n }\n if (nativeEvent) {\n const calciteInputInputEvent = this.calciteInputInput.emit({\n element: this.childEl,\n nativeEvent,\n value: this.value\n });\n if (calciteInputInputEvent.defaultPrevented) {\n this.value = this.previousValue;\n this.localizedValue = previousLocalizedValue;\n }\n else if (committing) {\n this.emitChangeIfUserModified();\n }\n }\n };\n this.inputKeyUpHandler = () => {\n window.clearInterval(this.nudgeNumberValueIntervalId);\n };\n }\n disabledWatcher() {\n this.setDisabledAction();\n }\n /** watcher to update number-to-string for max */\n maxWatcher() {\n var _a;\n this.maxString = ((_a = this.max) === null || _a === void 0 ? void 0 : _a.toString()) || null;\n }\n /** watcher to update number-to-string for min */\n minWatcher() {\n var _a;\n this.minString = ((_a = this.min) === null || _a === void 0 ? void 0 : _a.toString()) || null;\n }\n valueWatcher(newValue, previousValue) {\n if (!this.userChangedValue) {\n this.setValue({\n origin: \"direct\",\n previousValue,\n value: newValue == null || newValue == \"\"\n ? \"\"\n : this.type === \"number\"\n ? isValidNumber(newValue)\n ? newValue\n : this.previousValue || \"\"\n : newValue\n });\n this.warnAboutInvalidNumberValue(newValue);\n }\n this.userChangedValue = false;\n }\n updateRequestedIcon() {\n this.requestedIcon = setRequestedIcon(INPUT_TYPE_ICONS, this.icon, this.type);\n }\n get isClearable() {\n return !this.isTextarea && (this.clearable || this.type === \"search\") && this.value.length > 0;\n }\n get isTextarea() {\n return this.childElType === \"textarea\";\n }\n //--------------------------------------------------------------------------\n //\n // Lifecycle\n //\n //--------------------------------------------------------------------------\n connectedCallback() {\n var _a;\n this.scale = getElementProp(this.el, \"scale\", this.scale);\n this.status = getElementProp(this.el, \"status\", this.status);\n this.inlineEditableEl = this.el.closest(\"calcite-inline-editable\");\n if (this.inlineEditableEl) {\n this.editingEnabled = this.inlineEditableEl.editingEnabled || false;\n }\n this.setPreviousEmittedValue(this.value);\n this.setPreviousValue(this.value);\n if (this.type === \"number\") {\n this.warnAboutInvalidNumberValue(this.value);\n this.setValue({\n origin: \"connected\",\n value: isValidNumber(this.value) ? this.value : \"\"\n });\n }\n connectLabel(this);\n connectForm(this);\n (_a = this.mutationObserver) === null || _a === void 0 ? void 0 : _a.observe(this.el, { childList: true });\n this.setDisabledAction();\n }\n disconnectedCallback() {\n var _a;\n disconnectLabel(this);\n disconnectForm(this);\n (_a = this.mutationObserver) === null || _a === void 0 ? void 0 : _a.disconnect();\n }\n componentWillLoad() {\n var _a, _b;\n this.childElType = this.type === \"textarea\" ? \"textarea\" : \"input\";\n this.maxString = (_a = this.max) === null || _a === void 0 ? void 0 : _a.toString();\n this.minString = (_b = this.min) === null || _b === void 0 ? void 0 : _b.toString();\n this.requestedIcon = setRequestedIcon(INPUT_TYPE_ICONS, this.icon, this.type);\n }\n componentShouldUpdate(newValue, oldValue, property) {\n if (this.type === \"number\" && property === \"value\" && newValue && !isValidNumber(newValue)) {\n this.setValue({\n origin: \"reset\",\n value: oldValue\n });\n return false;\n }\n return true;\n }\n componentDidRender() {\n updateHostInteraction(this);\n }\n //--------------------------------------------------------------------------\n //\n // Public Methods\n //\n //--------------------------------------------------------------------------\n /** Sets focus on the component. */\n async setFocus() {\n var _a, _b;\n if (this.type === \"number\") {\n (_a = this.childNumberEl) === null || _a === void 0 ? void 0 : _a.focus();\n }\n else {\n (_b = this.childEl) === null || _b === void 0 ? void 0 : _b.focus();\n }\n }\n onLabelClick() {\n this.setFocus();\n }\n incrementOrDecrementNumberValue(direction, inputMax, inputMin, nativeEvent) {\n const { value } = this;\n const inputStep = this.step === \"any\" ? 1 : Math.abs(this.step || 1);\n const inputVal = value && value !== \"\" ? parseFloat(value) : 0;\n const adjustment = direction === \"up\" ? 1 : -1;\n const nudgedValue = inputVal + inputStep * adjustment;\n const finalValue = (typeof inputMin === \"number\" && !isNaN(inputMin) && nudgedValue < inputMin) ||\n (typeof inputMax === \"number\" && !isNaN(inputMax) && nudgedValue > inputMax)\n ? inputVal\n : nudgedValue;\n const inputValPlaces = decimalPlaces(inputVal);\n const inputStepPlaces = decimalPlaces(inputStep);\n this.setValue({\n committing: true,\n nativeEvent,\n origin: \"user\",\n value: finalValue.toFixed(Math.max(inputValPlaces, inputStepPlaces))\n });\n }\n onFormReset() {\n this.setValue({\n origin: \"reset\",\n value: this.defaultValue\n });\n }\n syncHiddenFormInput(input) {\n var _a, _b, _c, _d;\n if (this.type === \"number\") {\n input.type = \"number\";\n input.min = (_b = (_a = this.min) === null || _a === void 0 ? void 0 : _a.toString(10)) !== null && _b !== void 0 ? _b : \"\";\n input.max = (_d = (_c = this.max) === null || _c === void 0 ? void 0 : _c.toString(10)) !== null && _d !== void 0 ? _d : \"\";\n }\n else if (this.type === \"text\") {\n input.type = \"text\";\n if (this.minLength != null) {\n input.minLength = this.minLength;\n }\n if (this.maxLength != null) {\n input.maxLength = this.maxLength;\n }\n }\n else if (this.type === \"password\") {\n input.type = \"password\";\n }\n }\n setDisabledAction() {\n const slottedActionEl = getSlotted(this.el, \"action\");\n if (!slottedActionEl) {\n return;\n }\n this.disabled\n ? slottedActionEl.setAttribute(\"disabled\", \"\")\n : slottedActionEl.removeAttribute(\"disabled\");\n }\n warnAboutInvalidNumberValue(value) {\n if (this.type === \"number\" && value && !isValidNumber(value)) {\n console.warn(`The specified value \"${value}\" cannot be parsed, or is out of range.`);\n }\n }\n // --------------------------------------------------------------------------\n //\n // Render Methods\n //\n // --------------------------------------------------------------------------\n render() {\n const dir = getElementDir(this.el);\n const loader = (h(\"div\", { class: CSS.loader }, h(\"calcite-progress\", { label: this.intlLoading, type: \"indeterminate\" })));\n const inputClearButton = (h(\"button\", { \"aria-label\": this.intlClear || TEXT.clear, class: CSS.clearButton, disabled: this.disabled || this.readOnly, onClick: this.clearInputValue, tabIndex: this.disabled ? -1 : 0, type: \"button\" }, h(\"calcite-icon\", { icon: \"x\", scale: \"s\" })));\n const iconEl = (h(\"calcite-icon\", { class: CSS.inputIcon, flipRtl: this.iconFlipRtl, icon: this.requestedIcon, scale: \"s\" }));\n const isHorizontalNumberButton = this.numberButtonType === \"horizontal\";\n const numberButtonsHorizontalUp = (h(\"button\", { class: {\n [CSS.numberButtonItem]: true,\n [CSS.buttonItemHorizontal]: isHorizontalNumberButton\n }, \"data-adjustment\": \"up\", disabled: this.disabled || this.readOnly, onMouseDown: this.numberButtonMouseDownHandler, onMouseOut: this.numberButtonMouseUpAndMouseOutHandler, onMouseUp: this.numberButtonMouseUpAndMouseOutHandler, tabIndex: -1, type: \"button\" }, h(\"calcite-icon\", { icon: \"chevron-up\", scale: \"s\" })));\n const numberButtonsHorizontalDown = (h(\"button\", { class: {\n [CSS.numberButtonItem]: true,\n [CSS.buttonItemHorizontal]: isHorizontalNumberButton\n }, \"data-adjustment\": \"down\", disabled: this.disabled || this.readOnly, onMouseDown: this.numberButtonMouseDownHandler, onMouseOut: this.numberButtonMouseUpAndMouseOutHandler, onMouseUp: this.numberButtonMouseUpAndMouseOutHandler, tabIndex: -1, type: \"button\" }, h(\"calcite-icon\", { icon: \"chevron-down\", scale: \"s\" })));\n const numberButtonsVertical = (h(\"div\", { class: CSS.numberButtonWrapper }, numberButtonsHorizontalUp, numberButtonsHorizontalDown));\n const prefixText = h(\"div\", { class: CSS.prefix }, this.prefixText);\n const suffixText = h(\"div\", { class: CSS.suffix }, this.suffixText);\n const localeNumberInput = this.type === \"number\" ? (h(\"input\", { \"aria-label\": getLabelText(this), autofocus: this.autofocus ? true : null, defaultValue: this.defaultValue, disabled: this.disabled ? true : null, enterKeyHint: this.el.enterKeyHint, inputMode: this.el.inputMode, key: \"localized-input\", maxLength: this.maxLength, minLength: this.minLength, name: undefined, onBlur: this.inputBlurHandler, onFocus: this.inputFocusHandler, onInput: this.inputNumberInputHandler, onKeyDown: this.inputNumberKeyDownHandler, onKeyUp: this.inputKeyUpHandler, placeholder: this.placeholder || \"\", readOnly: this.readOnly, ref: this.setChildNumberElRef, type: \"text\", value: this.localizedValue })) : null;\n const childEl = this.type !== \"number\"\n ? [\n h(this.childElType, { \"aria-label\": getLabelText(this), autofocus: this.autofocus ? true : null, class: {\n [CSS.editingEnabled]: this.editingEnabled,\n [CSS.inlineChild]: !!this.inlineEditableEl\n }, defaultValue: this.defaultValue, disabled: this.disabled ? true : null, enterKeyHint: this.el.enterKeyHint, inputMode: this.el.inputMode, max: this.maxString, maxLength: this.maxLength, min: this.minString, minLength: this.minLength, name: this.name, onBlur: this.inputBlurHandler, onFocus: this.inputFocusHandler, onInput: this.inputInputHandler, onKeyDown: this.inputKeyDownHandler, onKeyUp: this.inputKeyUpHandler, placeholder: this.placeholder || \"\", readOnly: this.readOnly, ref: this.setChildElRef, required: this.required ? true : null, step: this.step, tabIndex: this.disabled || (this.inlineEditableEl && !this.editingEnabled) ? -1 : null, type: this.type, value: this.value }),\n this.isTextarea ? (h(\"div\", { class: CSS.resizeIconWrapper }, h(\"calcite-icon\", { icon: \"chevron-down\", scale: \"s\" }))) : null\n ]\n : null;\n return (h(Host, { onClick: this.inputFocusHandler, onKeyDown: this.keyDownHandler }, h(\"div\", { class: { [CSS.inputWrapper]: true, [CSS_UTILITY.rtl]: dir === \"rtl\" } }, this.type === \"number\" && this.numberButtonType === \"horizontal\" && !this.readOnly\n ? numberButtonsHorizontalDown\n : null, this.prefixText ? prefixText : null, h(\"div\", { class: CSS.wrapper }, localeNumberInput, childEl, this.isClearable ? inputClearButton : null, this.requestedIcon ? iconEl : null, this.loading ? loader : null), h(\"div\", { class: CSS.actionWrapper }, h(\"slot\", { name: SLOTS.action })), this.type === \"number\" && this.numberButtonType === \"vertical\" && !this.readOnly\n ? numberButtonsVertical\n : null, this.suffixText ? suffixText : null, this.type === \"number\" && this.numberButtonType === \"horizontal\" && !this.readOnly\n ? numberButtonsHorizontalUp\n : null, h(HiddenFormInputSlot, { component: this }))));\n }\n get el() { return this; }\n static get watchers() { return {\n \"disabled\": [\"disabledWatcher\"],\n \"max\": [\"maxWatcher\"],\n \"min\": [\"minWatcher\"],\n \"value\": [\"valueWatcher\"],\n \"icon\": [\"updateRequestedIcon\"],\n \"type\": [\"updateRequestedIcon\"]\n }; }\n static get style() { return inputCss; }\n}, [1, \"calcite-input\", {\n \"alignment\": [513],\n \"autofocus\": [4],\n \"clearable\": [516],\n \"disabled\": [516],\n \"groupSeparator\": [4, \"group-separator\"],\n \"hidden\": [4],\n \"icon\": [520],\n \"intlClear\": [1, \"intl-clear\"],\n \"intlLoading\": [1, \"intl-loading\"],\n \"iconFlipRtl\": [516, \"icon-flip-rtl\"],\n \"label\": [1],\n \"loading\": [516],\n \"locale\": [1],\n \"localeFormat\": [4, \"locale-format\"],\n \"max\": [514],\n \"min\": [514],\n \"maxlength\": [514],\n \"maxLength\": [514, \"max-length\"],\n \"minLength\": [514, \"min-length\"],\n \"name\": [513],\n \"numberButtonType\": [513, \"number-button-type\"],\n \"placeholder\": [1],\n \"prefixText\": [1, \"prefix-text\"],\n \"readOnly\": [4, \"read-only\"],\n \"required\": [4],\n \"scale\": [1537],\n \"status\": [1537],\n \"step\": [520],\n \"suffixText\": [1, \"suffix-text\"],\n \"editingEnabled\": [1540, \"editing-enabled\"],\n \"type\": [513],\n \"value\": [1025],\n \"localizedValue\": [32],\n \"setFocus\": [64]\n }]);\nfunction defineCustomElement() {\n if (typeof customElements === \"undefined\") {\n return;\n }\n const components = [\"calcite-input\", \"calcite-icon\", \"calcite-progress\"];\n components.forEach(tagName => { switch (tagName) {\n case \"calcite-input\":\n if (!customElements.get(tagName)) {\n customElements.define(tagName, Input);\n }\n break;\n case \"calcite-icon\":\n if (!customElements.get(tagName)) {\n defineCustomElement$2();\n }\n break;\n case \"calcite-progress\":\n if (!customElements.get(tagName)) {\n defineCustomElement$1();\n }\n break;\n } });\n}\ndefineCustomElement();\n\nexport { Input as I, defineCustomElement as d };\n","/*!\n * All material copyright ESRI, All Rights Reserved, unless otherwise specified.\n * See https://github.com/Esri/calcite-components/blob/master/LICENSE.md for details.\n * v1.0.0-beta.82\n */\nimport { I as Input, d as defineCustomElement$1 } from './input.js';\n\nconst CalciteInput = Input;\nconst defineCustomElement = defineCustomElement$1;\n\nexport { CalciteInput, defineCustomElement };\n","/*!\n * All material copyright ESRI, All Rights Reserved, unless otherwise specified.\n * See https://github.com/Esri/calcite-components/blob/master/LICENSE.md for details.\n * v1.0.0-beta.82\n */\nfunction noopClick() {\n /** noop **/\n}\n/**\n * This helper updates the host element to prevent keyboard interaction on its subtree and sets the appropriate aria attribute for accessibility.\n *\n * This should be used in the `componentDidRender` lifecycle hook.\n *\n * **Notes**\n *\n * * this util is not needed for simple components whose root element or elements are an interactive component (custom element or native control). For those cases, set the `disabled` props on the root components instead.\n * * technically, users can override `tabindex` and restore keyboard navigation, but this will be considered user error\n */\nfunction updateHostInteraction(component, hostIsTabbable = false) {\n if (component.disabled) {\n component.el.setAttribute(\"tabindex\", \"-1\");\n component.el.setAttribute(\"aria-disabled\", \"true\");\n if (component.el.contains(document.activeElement)) {\n document.activeElement.blur();\n }\n component.el.click = noopClick;\n return;\n }\n component.el.click = HTMLElement.prototype.click;\n if (typeof hostIsTabbable === \"function\") {\n component.el.setAttribute(\"tabindex\", hostIsTabbable.call(component) ? \"0\" : \"-1\");\n }\n else if (hostIsTabbable === true) {\n component.el.setAttribute(\"tabindex\", \"0\");\n }\n else if (hostIsTabbable === false) {\n component.el.removeAttribute(\"tabindex\");\n }\n else ;\n component.el.removeAttribute(\"aria-disabled\");\n}\n\nexport { updateHostInteraction as u };\n","/*!\n * All material copyright ESRI, All Rights Reserved, unless otherwise specified.\n * See https://github.com/Esri/calcite-components/blob/master/LICENSE.md for details.\n * v1.0.0-beta.82\n */\nimport { g as guid } from './guid.js';\n\nconst autoTheme = \"calcite-theme-auto\";\nconst darkTheme = \"calcite-theme-dark\";\nconst lightTheme = \"calcite-theme-light\";\nconst CSS_UTILITY = {\n autoTheme,\n darkTheme,\n lightTheme,\n rtl: \"calcite--rtl\"\n};\nconst TEXT = {\n loading: \"Loading\"\n};\n\n/**\n * This helper will guarantee an ID on the provided element.\n *\n * If it already has an ID, it will be preserved, otherwise a unique one will be generated and assigned.\n *\n * @returns {string} The element's ID.\n */\nfunction ensureId(el) {\n if (!el) {\n return \"\";\n }\n return (el.id = el.id || `${el.tagName.toLowerCase()}-${guid()}`);\n}\nfunction nodeListToArray(nodeList) {\n return Array.isArray(nodeList) ? nodeList : Array.from(nodeList);\n}\nfunction getThemeName(el) {\n const closestElWithTheme = closestElementCrossShadowBoundary(el, `.${CSS_UTILITY.darkTheme}, .${CSS_UTILITY.lightTheme}`);\n return (closestElWithTheme === null || closestElWithTheme === void 0 ? void 0 : closestElWithTheme.classList.contains(\"calcite-theme-dark\")) ? \"dark\" : \"light\";\n}\nfunction getElementDir(el) {\n const prop = \"dir\";\n const selector = `[${prop}]`;\n const closest = closestElementCrossShadowBoundary(el, selector);\n return closest ? closest.getAttribute(prop) : \"ltr\";\n}\nfunction getElementProp(el, prop, fallbackValue) {\n const selector = `[${prop}]`;\n const closest = el.closest(selector);\n return closest ? closest.getAttribute(prop) : fallbackValue;\n}\nfunction getRootNode(el) {\n return el.getRootNode();\n}\nfunction getHost(root) {\n return root.host || null;\n}\n/**\n * This helper queries an element's rootNodes and any ancestor rootNodes.\n *\n * @returns {Element[]} The elements.\n */\nfunction queryElementsRoots(element, selector) {\n // Gets the rootNode and any ancestor rootNodes (shadowRoot or document) of an element and queries them for a selector.\n // Based on: https://stackoverflow.com/q/54520554/194216\n function queryFromAll(el, allResults) {\n if (!el) {\n return allResults;\n }\n if (el.assignedSlot) {\n el = el.assignedSlot;\n }\n const rootNode = getRootNode(el);\n const results = Array.from(rootNode.querySelectorAll(selector));\n const uniqueResults = results.filter((result) => !allResults.includes(result));\n allResults = [...allResults, ...uniqueResults];\n const host = getHost(rootNode);\n return host ? queryFromAll(host, allResults) : allResults;\n }\n return queryFromAll(element, []);\n}\n/**\n * This helper queries an element's rootNode and any ancestor rootNodes.\n *\n * If both an 'id' and 'selector' are supplied, 'id' will take precedence over 'selector'.\n *\n * @returns {Element} The element.\n */\nfunction queryElementRoots(element, { selector, id }) {\n // Gets the rootNode and any ancestor rootNodes (shadowRoot or document) of an element and queries them for a selector.\n // Based on: https://stackoverflow.com/q/54520554/194216\n function queryFrom(el) {\n if (!el) {\n return null;\n }\n if (el.assignedSlot) {\n el = el.assignedSlot;\n }\n const rootNode = getRootNode(el);\n const found = id\n ? \"getElementById\" in rootNode\n ? /*\n Check to make sure 'getElementById' exists in cases where element is no longer connected to the DOM and getRootNode() returns the element.\n https://github.com/Esri/calcite-components/pull/4280\n */\n rootNode.getElementById(id)\n : null\n : selector\n ? rootNode.querySelector(selector)\n : null;\n const host = getHost(rootNode);\n return found ? found : host ? queryFrom(host) : null;\n }\n return queryFrom(element);\n}\nfunction closestElementCrossShadowBoundary(element, selector) {\n // based on https://stackoverflow.com/q/54520554/194216\n function closestFrom(el) {\n return el ? el.closest(selector) || closestFrom(getHost(getRootNode(el))) : null;\n }\n return closestFrom(element);\n}\nfunction isCalciteFocusable(el) {\n return typeof (el === null || el === void 0 ? void 0 : el.setFocus) === \"function\";\n}\nasync function focusElement(el) {\n if (!el) {\n return;\n }\n return isCalciteFocusable(el) ? el.setFocus() : el.focus();\n}\nconst defaultSlotSelector = \":not([slot])\";\nfunction getSlotted(element, slotName, options) {\n if (slotName && !Array.isArray(slotName) && typeof slotName !== \"string\") {\n options = slotName;\n slotName = null;\n }\n const slotSelector = slotName\n ? Array.isArray(slotName)\n ? slotName.map((name) => `[slot=\"${name}\"]`).join(\",\")\n : `[slot=\"${slotName}\"]`\n : defaultSlotSelector;\n if (options === null || options === void 0 ? void 0 : options.all) {\n return queryMultiple(element, slotSelector, options);\n }\n return querySingle(element, slotSelector, options);\n}\nfunction getDirectChildren(el, selector) {\n return el ? Array.from(el.children || []).filter((child) => child === null || child === void 0 ? void 0 : child.matches(selector)) : [];\n}\nfunction queryMultiple(element, slotSelector, options) {\n let matches = slotSelector === defaultSlotSelector\n ? getDirectChildren(element, defaultSlotSelector)\n : Array.from(element.querySelectorAll(slotSelector));\n matches = options && options.direct === false ? matches : matches.filter((el) => el.parentElement === element);\n matches = (options === null || options === void 0 ? void 0 : options.matches) ? matches.filter((el) => el === null || el === void 0 ? void 0 : el.matches(options.matches)) : matches;\n const selector = options === null || options === void 0 ? void 0 : options.selector;\n return selector\n ? matches\n .map((item) => Array.from(item.querySelectorAll(selector)))\n .reduce((previousValue, currentValue) => [...previousValue, ...currentValue], [])\n .filter((match) => !!match)\n : matches;\n}\nfunction querySingle(element, slotSelector, options) {\n let match = slotSelector === defaultSlotSelector\n ? getDirectChildren(element, defaultSlotSelector)[0] || null\n : element.querySelector(slotSelector);\n match = options && options.direct === false ? match : (match === null || match === void 0 ? void 0 : match.parentElement) === element ? match : null;\n match = (options === null || options === void 0 ? void 0 : options.matches) ? ((match === null || match === void 0 ? void 0 : match.matches(options.matches)) ? match : null) : match;\n const selector = options === null || options === void 0 ? void 0 : options.selector;\n return selector ? match === null || match === void 0 ? void 0 : match.querySelector(selector) : match;\n}\nfunction filterDirectChildren(el, selector) {\n return Array.from(el.children).filter((child) => child.matches(selector));\n}\n// set a default icon from a defined set or allow an override with an icon name string\nfunction setRequestedIcon(iconObject, iconValue, matchedValue) {\n if (typeof iconValue === \"string\" && iconValue !== \"\") {\n return iconValue;\n }\n else if (iconValue === \"\") {\n return iconObject[matchedValue];\n }\n}\nfunction intersects(rect1, rect2) {\n return !(rect2.left > rect1.right ||\n rect2.right < rect1.left ||\n rect2.top > rect1.bottom ||\n rect2.bottom < rect1.top);\n}\n/**\n * This helper makes sure that boolean aria attributes are properly converted to a string.\n *\n * It should only be used for aria attributes that require a string value of \"true\" or \"false\".\n *\n * @returns {string} The string conversion of a boolean value (\"true\" | \"false\").\n */\nfunction toAriaBoolean(value) {\n return (!!value).toString();\n}\n\nexport { CSS_UTILITY as C, TEXT as T, getElementDir as a, getSlotted as b, queryElementRoots as c, getThemeName as d, closestElementCrossShadowBoundary as e, focusElement as f, getElementProp as g, filterDirectChildren as h, ensureId as i, isCalciteFocusable as j, intersects as k, nodeListToArray as n, queryElementsRoots as q, setRequestedIcon as s, toAriaBoolean as t };\n","/*!\n * All material copyright ESRI, All Rights Reserved, unless otherwise specified.\n * See https://github.com/Esri/calcite-components/blob/master/LICENSE.md for details.\n * v1.0.0-beta.82\n */\nimport { getAssetPath, proxyCustomElement, HTMLElement, h, Host, Build } from '@stencil/core/internal/client';\nimport { a as getElementDir, t as toAriaBoolean } from './dom.js';\nimport { c as createObserver } from './observers.js';\n\nconst CSS = {\n icon: \"icon\",\n flipRtl: \"flip-rtl\"\n};\n\n/**\n * Icon data cache.\n * Exported for testing purposes.\n * @private\n */\nconst iconCache = {};\n/**\n * Icon request cache.\n * Exported for testing purposes.\n * @private\n */\nconst requestCache = {};\nconst scaleToPx = {\n s: 16,\n m: 24,\n l: 32\n};\nasync function fetchIcon({ icon, scale }) {\n const size = scaleToPx[scale];\n const name = normalizeIconName(icon);\n const filled = name.charAt(name.length - 1) === \"F\";\n const iconName = filled ? name.substring(0, name.length - 1) : name;\n const id = `${iconName}${size}${filled ? \"F\" : \"\"}`;\n if (iconCache[id]) {\n return iconCache[id];\n }\n if (!requestCache[id]) {\n requestCache[id] = fetch(getAssetPath(`./assets/icon/${id}.json`))\n .then((resp) => resp.json())\n .catch(() => {\n console.error(`\"${id}\" is not a valid calcite-ui-icon name`);\n return \"\";\n });\n }\n const path = await requestCache[id];\n iconCache[id] = path;\n return path;\n}\n/**\n * Normalize the icon name to match the path data module exports.\n * Exported for testing purposes.\n * @private\n */\nfunction normalizeIconName(name) {\n const numberLeadingName = !isNaN(Number(name.charAt(0)));\n const parts = name.split(\"-\");\n if (parts.length === 1) {\n return numberLeadingName ? `i${name}` : name;\n }\n return parts\n .map((part, index) => {\n if (index === 0) {\n return numberLeadingName ? `i${part.toUpperCase()}` : part;\n }\n return part.charAt(0).toUpperCase() + part.slice(1);\n })\n .join(\"\");\n}\n\nconst iconCss = \"@-webkit-keyframes in{0%{opacity:0}100%{opacity:1}}@keyframes in{0%{opacity:0}100%{opacity:1}}@-webkit-keyframes in-down{0%{opacity:0;-webkit-transform:translate3D(0, -5px, 0);transform:translate3D(0, -5px, 0)}100%{opacity:1;-webkit-transform:translate3D(0, 0, 0);transform:translate3D(0, 0, 0)}}@keyframes in-down{0%{opacity:0;-webkit-transform:translate3D(0, -5px, 0);transform:translate3D(0, -5px, 0)}100%{opacity:1;-webkit-transform:translate3D(0, 0, 0);transform:translate3D(0, 0, 0)}}@-webkit-keyframes in-up{0%{opacity:0;-webkit-transform:translate3D(0, 5px, 0);transform:translate3D(0, 5px, 0)}100%{opacity:1;-webkit-transform:translate3D(0, 0, 0);transform:translate3D(0, 0, 0)}}@keyframes in-up{0%{opacity:0;-webkit-transform:translate3D(0, 5px, 0);transform:translate3D(0, 5px, 0)}100%{opacity:1;-webkit-transform:translate3D(0, 0, 0);transform:translate3D(0, 0, 0)}}@-webkit-keyframes in-scale{0%{opacity:0;-webkit-transform:scale3D(0.95, 0.95, 1);transform:scale3D(0.95, 0.95, 1)}100%{opacity:1;-webkit-transform:scale3D(1, 1, 1);transform:scale3D(1, 1, 1)}}@keyframes in-scale{0%{opacity:0;-webkit-transform:scale3D(0.95, 0.95, 1);transform:scale3D(0.95, 0.95, 1)}100%{opacity:1;-webkit-transform:scale3D(1, 1, 1);transform:scale3D(1, 1, 1)}}:root{--calcite-animation-timing:calc(150ms * var(--calcite-internal-duration-factor));--calcite-internal-duration-factor:var(--calcite-duration-factor, 1);--calcite-internal-animation-timing-fast:calc(100ms * var(--calcite-internal-duration-factor));--calcite-internal-animation-timing-medium:calc(200ms * var(--calcite-internal-duration-factor));--calcite-internal-animation-timing-slow:calc(300ms * var(--calcite-internal-duration-factor))}.calcite-animate{opacity:0;-webkit-animation-fill-mode:both;animation-fill-mode:both;-webkit-animation-duration:var(--calcite-animation-timing);animation-duration:var(--calcite-animation-timing)}.calcite-animate__in{-webkit-animation-name:in;animation-name:in}.calcite-animate__in-down{-webkit-animation-name:in-down;animation-name:in-down}.calcite-animate__in-up{-webkit-animation-name:in-up;animation-name:in-up}.calcite-animate__in-scale{-webkit-animation-name:in-scale;animation-name:in-scale}:root{--calcite-popper-transition:var(--calcite-animation-timing)}:host([hidden]){display:none}:host{display:-ms-inline-flexbox;display:inline-flex;color:var(--calcite-ui-icon-color)}:host([scale=s]){height:1rem;width:1rem;min-width:1rem;min-height:1rem}:host([scale=m]){height:1.5rem;width:1.5rem;min-width:1.5rem;min-height:1.5rem}:host([scale=l]){height:2rem;width:2rem;min-width:2rem;min-height:2rem}.flip-rtl{-webkit-transform:scaleX(-1);transform:scaleX(-1)}.svg{display:block}\";\n\nconst Icon = /*@__PURE__*/ proxyCustomElement(class extends HTMLElement {\n constructor() {\n super();\n this.__registerHost();\n this.__attachShadow();\n //--------------------------------------------------------------------------\n //\n // Properties\n //\n //--------------------------------------------------------------------------\n /**\n * The name of the icon to display. The value of this property must match the icon name from https://esri.github.io/calcite-ui-icons/.\n */\n this.icon = null;\n /**\n * When true, the icon will be flipped when the element direction is 'rtl'.\n */\n this.flipRtl = false;\n /**\n * Icon scale.\n */\n this.scale = \"m\";\n this.visible = false;\n }\n //--------------------------------------------------------------------------\n //\n // Lifecycle\n //\n //--------------------------------------------------------------------------\n connectedCallback() {\n this.waitUntilVisible(() => {\n this.visible = true;\n this.loadIconPathData();\n });\n }\n disconnectedCallback() {\n var _a;\n (_a = this.intersectionObserver) === null || _a === void 0 ? void 0 : _a.disconnect();\n this.intersectionObserver = null;\n }\n async componentWillLoad() {\n this.loadIconPathData();\n }\n render() {\n const { el, flipRtl, pathData, scale, textLabel } = this;\n const dir = getElementDir(el);\n const size = scaleToPx[scale];\n const semantic = !!textLabel;\n const paths = [].concat(pathData || \"\");\n return (h(Host, { \"aria-hidden\": toAriaBoolean(!semantic), \"aria-label\": semantic ? textLabel : null, role: semantic ? \"img\" : null }, h(\"svg\", { class: {\n [CSS.flipRtl]: dir === \"rtl\" && flipRtl,\n svg: true\n }, fill: \"currentColor\", height: \"100%\", viewBox: `0 0 ${size} ${size}`, width: \"100%\", xmlns: \"http://www.w3.org/2000/svg\" }, paths.map((path) => typeof path === \"string\" ? (h(\"path\", { d: path })) : (h(\"path\", { d: path.d, opacity: \"opacity\" in path ? path.opacity : 1 }))))));\n }\n //--------------------------------------------------------------------------\n //\n // Private Methods\n //\n //--------------------------------------------------------------------------\n async loadIconPathData() {\n const { icon, scale, visible } = this;\n if (!Build.isBrowser || !icon || !visible) {\n return;\n }\n this.pathData = await fetchIcon({ icon, scale });\n }\n waitUntilVisible(callback) {\n this.intersectionObserver = createObserver(\"intersection\", (entries) => {\n entries.forEach((entry) => {\n if (entry.isIntersecting) {\n this.intersectionObserver.disconnect();\n this.intersectionObserver = null;\n callback();\n }\n });\n }, { rootMargin: \"50px\" });\n if (!this.intersectionObserver) {\n callback();\n return;\n }\n this.intersectionObserver.observe(this.el);\n }\n static get assetsDirs() { return [\"assets\"]; }\n get el() { return this; }\n static get watchers() { return {\n \"icon\": [\"loadIconPathData\"],\n \"scale\": [\"loadIconPathData\"]\n }; }\n static get style() { return iconCss; }\n}, [1, \"calcite-icon\", {\n \"icon\": [513],\n \"flipRtl\": [516, \"flip-rtl\"],\n \"scale\": [513],\n \"textLabel\": [1, \"text-label\"],\n \"pathData\": [32],\n \"visible\": [32]\n }]);\nfunction defineCustomElement() {\n if (typeof customElements === \"undefined\") {\n return;\n }\n const components = [\"calcite-icon\"];\n components.forEach(tagName => { switch (tagName) {\n case \"calcite-icon\":\n if (!customElements.get(tagName)) {\n customElements.define(tagName, Icon);\n }\n break;\n } });\n}\ndefineCustomElement();\n\nexport { Icon as I, defineCustomElement as d };\n"],"sourceRoot":""}