{"version":3,"file":"static/js/8738.03c2bfbc.chunk.js","mappings":"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","sources":["../node_modules/@esri/calcite-components/dist/esm/calcite-switch.entry.js","../node_modules/@esri/calcite-components/dist/esm/form-ab8ca8ce.js","../node_modules/@esri/calcite-components/dist/esm/interactive-52e332ad.js","../node_modules/@esri/calcite-components/dist/esm/key-7431b13d.js","../node_modules/@esri/calcite-components/dist/esm/label-a9defed5.js","../node_modules/@esri/calcite-components/dist/esm/loadable-78120f14.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.3.1\n */\nimport { r as registerInstance, c as createEvent, h, H as Host, a as getElement } from './index-965fa063.js';\nimport { f as focusElement, t as toAriaBoolean } from './dom-f43600cc.js';\nimport { c as connectForm, d as disconnectForm, H as HiddenFormInputSlot } from './form-ab8ca8ce.js';\nimport { u as updateHostInteraction } from './interactive-52e332ad.js';\nimport { i as isActivationKey } from './key-7431b13d.js';\nimport { c as connectLabel, d as disconnectLabel, g as getLabelText } from './label-a9defed5.js';\nimport { c as componentLoaded, s as setUpLoadableComponent, a as setComponentLoaded } from './loadable-78120f14.js';\nimport './guid-2d284fea.js';\nimport './resources-f6701afe.js';\n\nconst switchCss = \"@keyframes in{0%{opacity:0}100%{opacity:1}}@keyframes in-down{0%{opacity:0;transform:translate3D(0, -5px, 0)}100%{opacity:1;transform:translate3D(0, 0, 0)}}@keyframes in-up{0%{opacity:0;transform:translate3D(0, 5px, 0)}100%{opacity:1;transform:translate3D(0, 0, 0)}}@keyframes in-scale{0%{opacity:0;transform:scale3D(0.95, 0.95, 1)}100%{opacity: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;animation-fill-mode:both;animation-duration:var(--calcite-animation-timing)}.calcite-animate__in{animation-name:in}.calcite-animate__in-down{animation-name:in-down}.calcite-animate__in-up{animation-name:in-up}.calcite-animate__in-scale{animation-name:in-scale}@media (prefers-reduced-motion: reduce){:root{--calcite-internal-duration-factor:0.01}}:root{--calcite-floating-ui-transition:var(--calcite-animation-timing);--calcite-floating-ui-z-index:600}:host([hidden]){display:none}:host([disabled]){cursor:default;-webkit-user-select:none;user-select:none;opacity:var(--calcite-ui-opacity-disabled)}:host([disabled]) *,:host([disabled]) ::slotted(*){pointer-events:none}:host([scale=s]) .container{block-size:0.75rem}:host([scale=s]) .track{block-size:0.75rem;inline-size:1.5rem}:host([scale=s]) .handle{block-size:0.5rem;inline-size:0.5rem}:host([scale=m]) .container{block-size:1rem}:host([scale=m]) .track{block-size:1rem;inline-size:2rem}:host([scale=m]) .handle{block-size:0.75rem;inline-size:0.75rem}:host([scale=l]) .container{block-size:1.5rem}:host([scale=l]) .track{block-size:1.5rem;inline-size:3rem}:host([scale=l]) .handle{block-size:1.25rem;inline-size:1.25rem}:host{position:relative;display:inline-block;inline-size:auto;cursor:pointer;-webkit-user-select:none;user-select:none;vertical-align:middle;tap-highlight-color:transparent}:host([disabled]) ::slotted([calcite-hydrated][disabled]),:host([disabled]) [calcite-hydrated][disabled]{opacity:1}:host{inline-size:auto;outline-color:transparent}.track{pointer-events:none;position:relative;box-sizing:border-box;display:inline-block;border-radius:9999px;border-width:1px;border-style:solid;border-color:var(--calcite-ui-border-2);background-color:var(--calcite-ui-foreground-2);vertical-align:top;transition-property:all;transition-duration:150ms;transition-timing-function:cubic-bezier(0.4, 0, 0.2, 1)}.handle{pointer-events:none;position:absolute;display:block;border-radius:9999px;border-width:2px;border-style:solid;border-color:var(--calcite-ui-border-input);background-color:var(--calcite-ui-foreground-1);transition-property:all;transition-duration:150ms;transition-timing-function:cubic-bezier(0.4, 0, 0.2, 1);inset-block-start:-1px;inset-inline:-1px auto}:host(:hover) .handle,:host(:focus) .handle{border-color:var(--calcite-ui-brand);box-shadow:inset 0 0 0 1px var(--calcite-ui-brand)}:host([checked]) .track{border-color:var(--calcite-ui-brand-hover);background-color:var(--calcite-ui-brand)}:host([checked]) .handle{border-color:var(--calcite-ui-brand);inset-inline:auto -1px}:host([checked]:hover) .track{border-color:var(--calcite-ui-brand-hover);background-color:var(--calcite-ui-brand)}:host([checked]:hover) .handle{border-color:var(--calcite-ui-brand-hover);box-shadow:inset 0 0 0 1px var(--calcite-ui-brand-hover)}@media (forced-colors: active){:host([checked]) .track{background-color:canvasText}}.container:focus{outline:2px solid var(--calcite-ui-focus-color, var(--calcite-ui-brand));outline-offset:calc(\\n 2px *\\n calc(\\n 1 -\\n 2 * clamp(\\n 0,\\n var(--calcite-ui-focus-offset-invert),\\n 1\\n )\\n )\\n )}::slotted(input[slot=hidden-form-input]){margin:0 !important;opacity:0 !important;outline:none !important;padding:0 !important;position:absolute !important;inset:0 !important;transform:none !important;-webkit-appearance:none !important;z-index:-1 !important}\";\n\nconst Switch = class {\n constructor(hostRef) {\n registerInstance(this, hostRef);\n this.calciteSwitchChange = createEvent(this, \"calciteSwitchChange\", 6);\n this.keyDownHandler = (event) => {\n if (!this.disabled && isActivationKey(event.key)) {\n this.toggle();\n event.preventDefault();\n }\n };\n this.clickHandler = () => {\n if (this.disabled) {\n return;\n }\n this.toggle();\n };\n this.setSwitchEl = (el) => {\n this.switchEl = el;\n };\n this.disabled = false;\n this.form = undefined;\n this.label = undefined;\n this.name = undefined;\n this.scale = \"m\";\n this.checked = false;\n this.value = undefined;\n }\n //--------------------------------------------------------------------------\n //\n // Public Methods\n //\n //--------------------------------------------------------------------------\n /** Sets focus on the component. */\n async setFocus() {\n await componentLoaded(this);\n focusElement(this.switchEl);\n }\n //--------------------------------------------------------------------------\n //\n // Private Methods\n //\n //--------------------------------------------------------------------------\n syncHiddenFormInput(input) {\n input.type = \"checkbox\";\n }\n onLabelClick() {\n if (!this.disabled) {\n this.toggle();\n this.setFocus();\n }\n }\n toggle() {\n this.checked = !this.checked;\n this.calciteSwitchChange.emit();\n }\n //--------------------------------------------------------------------------\n //\n // Lifecycle\n //\n //--------------------------------------------------------------------------\n connectedCallback() {\n connectLabel(this);\n connectForm(this);\n }\n componentWillLoad() {\n setUpLoadableComponent(this);\n }\n componentDidLoad() {\n setComponentLoaded(this);\n }\n disconnectedCallback() {\n disconnectLabel(this);\n disconnectForm(this);\n }\n componentDidRender() {\n updateHostInteraction(this);\n }\n // --------------------------------------------------------------------------\n //\n // Render Methods\n //\n // --------------------------------------------------------------------------\n render() {\n return (h(Host, { onClick: this.clickHandler, onKeyDown: this.keyDownHandler }, h(\"div\", { \"aria-checked\": toAriaBoolean(this.checked), \"aria-label\": getLabelText(this), class: \"container\", role: \"switch\", tabIndex: 0,\n // eslint-disable-next-line react/jsx-sort-props\n ref: this.setSwitchEl }, h(\"div\", { class: \"track\" }, h(\"div\", { class: \"handle\" })), h(HiddenFormInputSlot, { component: this }))));\n }\n get el() { return getElement(this); }\n};\nSwitch.style = switchCss;\n\nexport { Switch as calcite_switch };\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.3.1\n */\nimport { q as queryElementRoots, c as closestElementCrossShadowBoundary } from './dom-f43600cc.js';\nimport { h } from './index-965fa063.js';\n\n(function(prototype) {\n if (typeof prototype.requestSubmit == \"function\") return\n\n prototype.requestSubmit = function(submitter) {\n if (submitter) {\n validateSubmitter(submitter, this);\n submitter.click();\n } else {\n submitter = document.createElement(\"input\");\n submitter.type = \"submit\";\n submitter.hidden = true;\n this.appendChild(submitter);\n submitter.click();\n this.removeChild(submitter);\n }\n };\n\n function validateSubmitter(submitter, form) {\n submitter instanceof HTMLElement || raise(TypeError, \"parameter 1 is not of type 'HTMLElement'\");\n submitter.type == \"submit\" || raise(TypeError, \"The specified element is not a submit button\");\n submitter.form == form || raise(DOMException, \"The specified element is not owned by this form element\", \"NotFoundError\");\n }\n\n function raise(errorConstructor, message, name) {\n throw new errorConstructor(\"Failed to execute 'requestSubmit' on 'HTMLFormElement': \" + message + \".\", name)\n }\n})(HTMLFormElement.prototype);\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();\n/**\n * This helps determine if our form component is part of a composite form-associated component.\n *\n * @param form\n * @param formComponentEl\n */\nfunction hasRegisteredFormComponentParent(form, formComponentEl) {\n // if we have a parent component using the form ID attribute, we assume it is form-associated\n const hasParentComponentWithFormIdSet = closestElementCrossShadowBoundary(formComponentEl.parentElement, \"[form]\");\n if (hasParentComponentWithFormIdSet) {\n return true;\n }\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 *\n * @param component\n * @returns true if its associated form was submitted, false otherwise.\n */\nfunction submitForm(component) {\n const { formEl } = component;\n if (!formEl) {\n return false;\n }\n formEl.requestSubmit();\n return true;\n}\n/**\n * Helper to reset a form.\n *\n * @param component\n */\nfunction resetForm(component) {\n component.formEl?.reset();\n}\n/**\n * Helper to set up form interactions on connectedCallback.\n *\n * @param component\n */\nfunction connectForm(component) {\n const { el, value } = component;\n const associatedForm = findAssociatedForm(component);\n if (!associatedForm || hasRegisteredFormComponentParent(associatedForm, el)) {\n return;\n }\n component.formEl = associatedForm;\n component.defaultValue = value;\n if (isCheckable(component)) {\n component.defaultChecked = component.checked;\n }\n const boundOnFormReset = (component.onFormReset || onFormReset).bind(component);\n associatedForm.addEventListener(\"reset\", boundOnFormReset);\n onFormResetMap.set(component.el, boundOnFormReset);\n formComponentSet.add(el);\n}\n/**\n * Utility method to find a form-component's associated form element.\n *\n * @param component\n */\nfunction findAssociatedForm(component) {\n const { el, form } = component;\n return form\n ? queryElementRoots(el, { id: form })\n : closestElementCrossShadowBoundary(el, \"form\");\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 *\n * @param component\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 *\n * @param component\n * @param value\n */\nfunction afterConnectDefaultValueSet(component, value) {\n component.defaultValue = value;\n}\nconst hiddenInputChangeHandler = (event) => {\n event.target.dispatchEvent(new CustomEvent(\"calciteInternalHiddenInputChange\", { bubbles: true }));\n};\nconst removeHiddenInputChangeEventListener = (input) => input.removeEventListener(\"change\", hiddenInputChangeHandler);\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 *\n * @param component\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) => {\n removeHiddenInputChangeEventListener(input);\n input.remove();\n });\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 // emits when hidden input is autofilled\n input.addEventListener(\"change\", hiddenInputChangeHandler);\n defaultSyncHiddenFormInput(component, input, value);\n });\n if (docFrag) {\n el.append(docFrag);\n }\n extra.forEach((input) => {\n removeHiddenInputChangeEventListener(input);\n input.remove();\n });\n}\nfunction defaultSyncHiddenFormInput(component, input, value) {\n const { defaultValue, disabled, form, 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 // we set the attr as the prop is read-only\n if (form) {\n input.setAttribute(\"form\", form);\n }\n else {\n input.removeAttribute(\"form\");\n }\n if (isCheckable(component)) {\n input.checked = component.checked;\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 }\n else {\n input.value = value || \"\";\n }\n component.syncHiddenFormInput?.(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 *\n * @param root0\n * @param root0.component\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, findAssociatedForm as f, 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.3.1\n */\nfunction noopClick() {\n /** noop */\n}\nfunction onPointerDown(event) {\n // prevent click from moving focus on host\n event.preventDefault();\n}\nconst nonBubblingWhenDisabledMouseEvents = [\"mousedown\", \"mouseup\", \"click\"];\nfunction onNonBubblingWhenDisabledMouseEvent(event) {\n // prevent disallowed mouse events from being emitted on the host (per https://github.com/whatwg/html/issues/5886)\n //⚠ we generally avoid stopping propagation of events, but this is needed to adhere to the intended spec changes above ⚠\n event.stopImmediatePropagation();\n event.preventDefault();\n}\nconst captureOnlyOptions = { capture: true };\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 *\n * @param component\n * @param hostIsTabbable\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 component.el.addEventListener(\"pointerdown\", onPointerDown, captureOnlyOptions);\n nonBubblingWhenDisabledMouseEvents.forEach((event) => component.el.addEventListener(event, onNonBubblingWhenDisabledMouseEvent, captureOnlyOptions));\n return;\n }\n component.el.click = HTMLElement.prototype.click;\n component.el.removeEventListener(\"pointerdown\", onPointerDown, captureOnlyOptions);\n nonBubblingWhenDisabledMouseEvents.forEach((event) => component.el.removeEventListener(event, onNonBubblingWhenDisabledMouseEvent, captureOnlyOptions));\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.3.1\n */\nfunction isActivationKey(key) {\n return key === \"Enter\" || key === \" \";\n}\nconst numberKeys = [\"0\", \"1\", \"2\", \"3\", \"4\", \"5\", \"6\", \"7\", \"8\", \"9\"];\n\nexport { isActivationKey as i, numberKeys as n };\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.3.1\n */\nimport { q as queryElementRoots, c as closestElementCrossShadowBoundary } from './dom-f43600cc.js';\n\n/**\n * Exported for testing purposes only\n *\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) => el.tagName?.includes(\"-\"));\n return ancestorCustomElements.length > 0;\n}\n/**\n * Helper to set up label interactions on connectedCallback.\n *\n * @param component\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 *\n * @param component\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 *\n * @param component\n */\nfunction getLabelText(component) {\n return component.label || component.labelEl?.textContent?.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.3.1\n */\nconst resolveMap = new WeakMap();\nconst promiseMap = new WeakMap();\n/**\n * This helper util sets up the component for the ability to know when the component has been loaded.\n *\n * This should be used in the `componentWillLoad` lifecycle hook.\n *\n * ```\n * componentWillLoad(): void {\n * setUpLoadableComponent(this);\n * }\n * ```\n *\n * @param component\n */\nfunction setUpLoadableComponent(component) {\n promiseMap.set(component, new Promise((resolve) => resolveMap.set(component, resolve)));\n}\n/**\n * This helper util lets the loadable component know that it is now loaded.\n *\n * This should be used in the `componentDidLoad` lifecycle hook.\n *\n * ```\n * componentDidLoad(): void {\n * setComponentLoaded(this);\n * }\n * ```\n *\n * @param component\n */\nfunction setComponentLoaded(component) {\n resolveMap.get(component)();\n}\n/**\n * This helper util can be used to ensure a component has been loaded (The \"componentDidLoad\" stencil lifecycle method has been called).\n *\n * Requires \"setUpLoadableComponent\" and \"setComponentLoaded\" to be called first.\n *\n * A component developer can await this method before proceeding with any logic that requires a component to be loaded first.\n *\n * ```\n * async setFocus(): Promise {\n * await componentLoaded(this);\n * }\n * ```\n *\n * @param component\n * @returns Promise\n */\nfunction componentLoaded(component) {\n return promiseMap.get(component);\n}\n\nexport { setComponentLoaded as a, componentLoaded as c, setUpLoadableComponent as s };\n"],"names":["Switch","constructor","hostRef","registerInstance","this","calciteSwitchChange","createEvent","keyDownHandler","event","disabled","isActivationKey","key","toggle","preventDefault","clickHandler","setSwitchEl","el","switchEl","form","undefined","label","name","scale","checked","value","componentLoaded","focusElement","syncHiddenFormInput","input","type","onLabelClick","setFocus","emit","connectedCallback","connectLabel","connectForm","componentWillLoad","setUpLoadableComponent","componentDidLoad","setComponentLoaded","disconnectedCallback","disconnectLabel","disconnectForm","componentDidRender","updateHostInteraction","render","h","Host","onClick","onKeyDown","toAriaBoolean","getLabelText","class","role","tabIndex","ref","HiddenFormInputSlot","component","getElement","style","prototype","raise","errorConstructor","message","requestSubmit","submitter","HTMLElement","TypeError","DOMException","validateSubmitter","click","document","createElement","hidden","appendChild","removeChild","HTMLFormElement","hiddenFormInputSlotName","isCheckable","onFormResetMap","WeakMap","formComponentSet","WeakSet","submitForm","formEl","resetForm","reset","associatedForm","findAssociatedForm","formComponentEl","closestElementCrossShadowBoundary","parentElement","formComponentRegisterEventName","hasRegisteredFormComponentParent","addEventListener","composedPath","some","element","has","stopPropagation","once","dispatchEvent","CustomEvent","bubbles","composed","defaultValue","defaultChecked","boundOnFormReset","onFormReset","bind","set","add","queryElementRoots","id","get","removeEventListener","delete","afterConnectDefaultValueSet","hiddenInputChangeHandler","target","removeHiddenInputChangeEventListener","defaultSyncHiddenFormInput","required","setAttribute","removeAttribute","ownerDocument","inputs","querySelectorAll","forEach","remove","values","Array","isArray","extra","seen","Set","docFrag","valueMatch","find","val","push","pop","slot","createDocumentFragment","append","noopClick","onPointerDown","nonBubblingWhenDisabledMouseEvents","onNonBubblingWhenDisabledMouseEvent","stopImmediatePropagation","captureOnlyOptions","capture","hostIsTabbable","contains","activeElement","blur","call","numberKeys","labelClickEvent","labelConnectedEvent","labelDisconnectedEvent","labelTagName","onLabelClickMap","onLabelConnectedMap","onLabelDisconnectedMap","unlabeledComponents","findLabelForComponent","componentEl","forLabel","selector","parentLabel","traversedElements","customElementAncestorCheckEventType","listener","slice","indexOf","filter","tagName","includes","length","hasAncestorCustomElements","labelEl","boundOnLabelDisconnected","onLabelDisconnected","boundOnLabelClick","textContent","trim","detail","sourceEvent","onLabelConnected","boundOnLabelConnected","resolveMap","promiseMap","Promise","resolve"],"sourceRoot":""}