@knime/kds-components 0.17.0 → 0.17.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sources":["../src/accessories/Avatar/enums.ts","../src/accessories/Avatar/KdsAvatar.vue","../src/accessories/Icon/useIcon.ts","../src/accessories/Icon/KdsIcon.vue","../src/accessories/Icon/IdToIconNameMapping.ts","../../styles/dist/img/icons/def.ts","../../styles/dist/img/type-icons/def.ts","../src/accessories/Icon/enums.ts","../src/accessories/Icon/KdsDataType.vue","../src/accessories/Badge/enums.ts","../src/accessories/Badge/KdsBadge.vue","../src/accessories/ColorSwatch/enums.ts","../src/accessories/ColorSwatch/KdsColorSwatch.vue","../src/util/enums.ts","../src/util/useKdsDarkMode.ts","../src/util/useKdsLegacyMode.ts","../src/util/useKdsIsTruncated.ts","../src/accessories/LiveStatus/KdsLiveStatus.vue","../src/accessories/LiveStatus/enums.ts","../src/accessories/LoadingSpinner/KdsLoadingSpinner.vue","../src/accessories/LoadingSpinner/enums.ts","../src/accessories/InlineMessage/KdsInlineMessage.vue","../src/accessories/InlineMessage/enums.ts","../src/buttons/BaseButton.vue","../src/buttons/KdsButton/KdsButton.vue","../src/util/nuxtComponentResolver.ts","../src/buttons/KdsLinkButton/KdsLinkButton.vue","../src/buttons/KdsToggleButton/KdsToggleButton.vue","../src/buttons/KdsToggleButton/enums.ts","../src/buttons/KdsProgressButton/KdsProgressButton.vue","../src/buttons/KdsProgressButton/enums.ts","../src/layouts/EmptyState/KdsEmptyState.vue","../src/forms/_helper/List/ListItemAccessory/ListItemAccessory.vue","../src/forms/_helper/List/ListItemAccessory/enums.ts","../src/forms/_helper/List/KdsListItem/enums.ts","../src/forms/_helper/List/KdsListItem/KdsListItem.vue","../src/forms/_helper/List/ListItemDivider/ListItemDivider.vue","../src/forms/_helper/List/ListItemSectionTitle/ListItemSectionTitle.vue","../src/forms/_helper/List/ListContainer/KdsListContainer.vue","../src/overlays/Popover/KdsPopover.vue","../src/buttons/KdsMenuButton/KdsMenuButton.vue","../src/buttons/enums.ts","../src/forms/_helper/KdsLabel.vue","../src/forms/_helper/KdsSubText.vue","../src/forms/Checkbox/BaseCheckbox.vue","../src/forms/Checkbox/KdsCheckbox.vue","../src/forms/Checkbox/KdsCheckboxGroup.vue","../src/forms/Checkbox/enums.ts","../src/forms/RadioButton/KdsRadioButton.vue","../src/forms/RadioButton/useRadioSelection.ts","../src/forms/RadioButton/KdsRadioButtonGroup.vue","../src/forms/RadioButton/ValueSwitchItem.vue","../src/forms/RadioButton/useValueSwitchIconHiding.ts","../src/forms/RadioButton/KdsValueSwitch.vue","../src/forms/RadioButton/enums.ts","../src/forms/_helper/BaseFormFieldWrapper.vue","../src/forms/inputs/BaseInput.vue","../src/forms/inputs/TextInput/KdsTextInput.vue","../src/forms/inputs/ColorInput/colorUtils.ts","../src/forms/inputs/ColorInput/usePointerHandler.ts","../src/forms/inputs/ColorInput/ColorPicker.vue","../src/forms/inputs/ColorInput/useColorInputValidationOnFocusOut.ts","../src/forms/inputs/ColorInput/KdsColorInput.vue","../src/forms/inputs/DateTimeFormatInput/DateTimeFormatPopover.vue","../src/forms/inputs/DateTimeFormatInput/KdsDateTimeFormatInput.vue","../src/forms/inputs/DateTimeFormatInput/enums.ts","../src/forms/inputs/NumberInput/numberParser.ts","../src/forms/inputs/NumberInput/KdsNumberInput.vue","../src/forms/inputs/PatternInput/patternRegex.ts","../src/forms/inputs/PatternInput/KdsPatternInput.vue","../src/forms/inputs/SearchInput/KdsSearchInput.vue","../src/forms/inputs/Textarea/KdsTextarea.vue","../src/forms/selects/Dropdown/BaseDropdown.vue","../src/forms/selects/Dropdown/DropdownContainer.vue","../src/forms/selects/Dropdown/KdsDropdown.vue","../src/forms/_helper/List/KdsListItemButton/KdsListItemButton.vue","../src/forms/selects/Dropdown/MultiSelectDropdownContainer.vue","../src/forms/selects/Dropdown/KdsMultiSelectDropdown.vue","../src/forms/_helper/InfoPopover/InfoPopover.vue","../src/forms/_helper/InfoPopover/KdsInfoToggleButton.vue","../src/forms/_helper/VariablePopover/VariablePopover.vue","../src/forms/_helper/VariablePopover/KdsVariableToggleButton.vue","../src/layouts/KdsCardClickable/KdsCardClickable.vue","../src/layouts/KdsCardClickable/enums.ts","../../../node_modules/.pnpm/@knime+utils@1.9.2_consola@3.4.2/node_modules/@knime/utils/src/promise/createUnwrappedPromise.ts","../../../node_modules/.pnpm/@knime+utils@1.9.2_consola@3.4.2/node_modules/@knime/utils/src/sleep.ts","../src/overlays/Modal/enums.ts","../src/overlays/Modal/KdsModalLayout.vue","../src/overlays/Modal/KdsModal.vue","../src/overlays/Modal/useKdsDynamicModal.ts","../src/overlays/Modal/KdsDynamicModalProvider.vue"],"sourcesContent":["export const kdsAvatarSize = {\n SMALL: \"small\",\n MEDIUM: \"medium\",\n LARGE: \"large\",\n XLARGE: \"xlarge\",\n} as const;\n\nexport const kdsAvatarSizes = Object.values(kdsAvatarSize);\n","<script setup lang=\"ts\">\nimport { computed, ref, watch } from \"vue\";\n\nimport { kdsAvatarSize } from \"./enums\";\nimport type { KdsAvatarProps } from \"./types\";\n\nconst props = withDefaults(defineProps<KdsAvatarProps>(), {\n title: undefined,\n src: undefined,\n size: kdsAvatarSize.XLARGE,\n});\n\nconst imageLoadFailed = ref(false);\n\nwatch(\n () => props.src,\n () => {\n imageLoadFailed.value = false;\n },\n);\n\nconst shouldShowImage = computed(\n () => Boolean(props.src) && !imageLoadFailed.value,\n);\n\nconst onImageError = () => {\n imageLoadFailed.value = true;\n};\n\nconst accessibleTitle = computed(() => props.title?.trim() ?? \"\");\nconst hasTitle = computed(() => accessibleTitle.value.length > 0);\n\nconst displayedInitials = computed(() =>\n props.initials.trim().slice(0, 2).toUpperCase(),\n);\n</script>\n\n<template>\n <div\n class=\"kds-avatar\"\n :class=\"props.size\"\n :role=\"hasTitle ? 'img' : 'presentation'\"\n :title=\"hasTitle ? accessibleTitle : undefined\"\n :aria-hidden=\"!hasTitle ? 'true' : undefined\"\n :aria-label=\"hasTitle ? accessibleTitle : undefined\"\n >\n <img\n v-if=\"shouldShowImage\"\n class=\"kds-avatar-image\"\n :src=\"props.src\"\n alt=\"\"\n aria-hidden=\"true\"\n @error=\"onImageError\"\n />\n <div v-else class=\"kds-avatar-initials\" aria-hidden=\"true\">\n <span>\n {{ displayedInitials }}\n </span>\n </div>\n </div>\n</template>\n\n<style scoped>\n.kds-avatar {\n position: relative;\n display: inline-block;\n flex-shrink: 0;\n aspect-ratio: 1 / 1;\n overflow: hidden;\n vertical-align: middle;\n border-radius: var(--kds-border-radius-container-pill);\n\n &.small {\n inline-size: var(--kds-dimension-icon-0-75x);\n block-size: var(--kds-dimension-icon-0-75x);\n }\n\n &.medium {\n inline-size: var(--kds-dimension-icon-1x);\n block-size: var(--kds-dimension-icon-1x);\n }\n\n &.large {\n inline-size: var(--kds-dimension-component-width-1-25x);\n block-size: var(--kds-dimension-component-height-1-25x);\n }\n\n &.xlarge {\n inline-size: var(--kds-dimension-component-width-1-5x);\n block-size: var(--kds-dimension-component-height-1-5x);\n }\n}\n\n.kds-avatar::after {\n position: absolute;\n inset: 0;\n box-sizing: border-box;\n pointer-events: none;\n content: \"\";\n border: var(--kds-border-base-muted);\n border-radius: inherit;\n}\n\n.kds-avatar-image {\n display: block;\n inline-size: 100%;\n block-size: 100%;\n object-fit: cover;\n object-position: center;\n}\n\n.kds-avatar-initials {\n display: flex;\n align-items: center;\n justify-content: center;\n inline-size: 100%;\n block-size: 100%;\n container-type: inline-size;\n font: var(--kds-font-base-body-small-strong);\n color: var(--kds-color-text-and-icon-primary-inverted);\n user-select: none;\n background: var(--kds-color-background-primary-bold-initial);\n}\n\n.kds-avatar-initials > span {\n font-size: calc(1em + calc(100cqi - 2em) / 2);\n}\n</style>\n","import {\n type DefineComponent,\n type Ref,\n type ShallowRef,\n shallowRef,\n watch,\n} from \"vue\";\n\nfunction useIcon({\n name,\n folder,\n}: {\n name: Ref<string>;\n folder: \"icons\" | \"type-icons\";\n}): Readonly<ShallowRef<DefineComponent | null, DefineComponent | null>> {\n const iconCache = new Map<string, DefineComponent>();\n\n const iconComponent = shallowRef<DefineComponent | null>(null);\n\n watch(\n () => name.value,\n async (newName) => {\n if (iconCache.has(newName)) {\n iconComponent.value = iconCache.get(newName)!;\n return;\n }\n\n try {\n const module = await import(\n `../../../node_modules/@knime/kds-styles/dist/img/${folder}/${newName}.svg`\n );\n iconCache.set(newName, module.default);\n iconComponent.value = module.default;\n } catch (error) {\n // eslint-disable-next-line no-console\n console.error(\n `Failed to load icon \"${newName}\" from folder \"${folder}\":`,\n error,\n );\n\n iconComponent.value = null;\n }\n },\n { immediate: true },\n );\n\n return iconComponent;\n}\n\nexport default useIcon;\n","<script setup lang=\"ts\">\n/**\n * Displays an icon from the KDS icon set. The icon color inherits the text\n * color of the parent element by default. When the `disabled` prop is set,\n * the color is overridden with the `kds.color.text-and-icon.disabled` token.\n */\nimport { toRef } from \"vue\";\n\nimport type { KdsIconProps } from \"./types\";\nimport useIcon from \"./useIcon\";\n\nconst props = withDefaults(defineProps<KdsIconProps>(), {\n size: \"medium\",\n disabled: false,\n});\n\nconst iconComponent = useIcon({ name: toRef(props, \"name\"), folder: \"icons\" });\n</script>\n\n<template>\n <component\n :is=\"iconComponent\"\n v-if=\"iconComponent\"\n :class=\"['kds-icon', props.size, { disabled }]\"\n aria-hidden=\"true\"\n focusable=\"false\"\n />\n <span\n v-else\n :class=\"['kds-icon', props.size, { disabled }]\"\n aria-hidden=\"true\"\n focusable=\"false\"\n />\n</template>\n\n<style scoped>\n@import url(\"./styles.css\");\n\n.kds-icon.disabled {\n color: var(--kds-color-text-and-icon-disabled);\n}\n</style>\n","import type { KdsTypeIconName } from \"./types\";\n\nexport const ID_TO_ICON_MAP = {\n // Flow Variables\n STRING: \"variable-string\",\n LONG: \"variable-integer\",\n DOUBLE: \"variable-number-double\",\n BOOLEAN: \"variable-boolean\",\n INTEGER: \"variable-integer\",\n FSLocation: \"variable-path\",\n FSLocationSpec: \"variable-path\",\n STRINGARRAY: \"variable-collection-string\",\n LONGARRAY: \"variable-collection-integer\",\n DOUBLEARRAY: \"variable-collection-double\",\n BOOLEANARRAY: \"variable-collection-boolean\",\n INTARRAY: \"variable-collection-integer\",\n CREDENTIALS: \"variable-credential\",\n CONDAENVIRONMENT: \"variable-conda-environment\",\n UNKNOWN: \"variable-unknown\",\n // General\n \"org.knime.core.data.BooleanValue\": \"boolean-datatype\",\n \"org.knime.core.data.DataValue\": \"unknown-datatype\",\n \"org.knime.core.data.DoubleValue\": \"number-double-datatype\",\n \"org.knime.core.data.IntValue\": \"number-integer-datatype\",\n \"org.knime.core.data.LongValue\": \"number-integer-datatype\",\n \"org.knime.core.data.MissingValue\": \"unknown-datatype\",\n \"org.knime.core.data.StringValue\": \"string-datatype\",\n \"org.knime.core.data.collection.ListDataValue\": \"collection-list-datatype\",\n \"org.knime.core.data.collection.SetDataValue\": \"collection-set-datatype\",\n \"org.knime.core.data.vector.doublevector.DoubleVectorValue\":\n \"number-double-vector-datatype\",\n \"org.knime.core.data.vector.stringvector.StringVectorValue\":\n \"string-vector-datatype\",\n \"org.knime.filehandling.core.data.location.FSLocationValue\": \"path-datatype\",\n // Image, Audio & Video\n \"org.knime.audio.data.cell.AudioValue\": \"audio-datatype\",\n \"org.knime.base.data.xml.SvgValue\": \"image-svg-datatype\",\n \"org.knime.core.data.image.png.PNGImageValue\": \"image-png-datatype\",\n // Date & Time\n \"org.knime.core.data.time.localdate.LocalDateValue\": \"date-datatype\",\n \"org.knime.core.data.time.localdatetime.LocalDateTimeValue\":\n \"date-time-local-datatype\",\n \"org.knime.core.data.time.localtime.LocalTimeValue\": \"time-datatype\",\n \"org.knime.core.data.time.zoneddatetime.ZonedDateTimeValue\":\n \"date-time-zoned-datatype\",\n \"org.knime.core.data.time.duration.DurationValue\":\n \"duration-time-based-datatype\",\n \"org.knime.core.data.time.period.PeriodValue\": \"duration-date-based-datatype\",\n // Geospatial\n \"org.knime.geospatial.core.data.GeoValue\": \"geo-datatype\",\n \"org.knime.geospatial.core.data.GeoLineValue\": \"geo-datatype\",\n \"org.knime.geospatial.core.data.GeoPointValue\": \"geo-datatype\",\n \"org.knime.geospatial.core.data.GeoPolygonValue\": \"geo-datatype\",\n \"org.knime.geospatial.core.data.GeoCollectionValue\": \"geo-datatype\",\n \"org.knime.geospatial.core.data.GeoMultiLineValue\": \"geo-datatype\",\n \"org.knime.geospatial.core.data.GeoMultiPointValue\": \"geo-datatype\",\n \"org.knime.geospatial.core.data.GeoMultiPolygonValue\": \"geo-datatype\",\n // Code\n \"org.knime.core.data.blob.BinaryObjectDataValue\": \"binary-object-datatype\",\n \"org.knime.core.data.html.HTMLValue\": \"xml-datatype\",\n \"org.knime.core.data.json.JSONValue\": \"json-datatype\",\n \"org.knime.core.data.uri.URIDataValue\": \"uri-datatype\",\n \"org.knime.core.data.vector.bitvector.BitVectorValue\":\n \"bit-byte-vector-datatype\",\n \"org.knime.core.data.vector.bitvector.SparseBitVectorValue\":\n \"bit-byte-vector-datatype\",\n \"org.knime.core.data.vector.bytevector.ByteVectorValue\":\n \"bit-byte-vector-datatype\",\n \"org.knime.core.data.xml.PMMLValue\": \"model-pmml-datatype\",\n \"org.knime.core.data.xml.XMLValue\": \"xml-datatype\",\n \"org.knime.knip.base.data.labeling.LabelingValue\": \"labeling-datatype\",\n // Agentic AI\n \"org.knime.ai.core.data.message.MessageValue\": \"message-datatype\",\n \"org.knime.core.node.agentic.tool.WorkflowToolValue\": \"tool-datatype\",\n // Textprocessing\n \"org.knime.ext.textprocessing.data.DocumentValue\": \"document-datatype\",\n \"org.knime.ext.textprocessing.data.TermValue\": \"term-datatype\",\n // Network\n \"org.knime.network.core.knime.cell.GraphValue\": \"subgraph-datatype\",\n // Linear Notations\n \"org.knime.chem.types.InchiValue\": \"linear-notation-molecule\",\n \"org.knime.chem.types.SlnValue\": \"linear-notation-molecule\",\n \"org.knime.chem.types.SmartsValue\": \"linear-notation-molecule\",\n \"org.knime.chem.types.SmilesValue\": \"linear-notation-molecule\",\n // Molecular file formats\n \"org.knime.chem.types.CtabValue\": \"molecule\",\n \"org.knime.chem.types.MolValue\": \"molecule\",\n \"org.knime.chem.types.Mol2Value\": \"molecule\",\n \"org.knime.chem.types.SdfValue\": \"molecule\",\n // Biopolymer & sequence representations\n \"org.knime.chem.types.helm.HELMValue\": \"helm-datatype\",\n // Relation & Process representations\n \"org.knime.chem.types.CMLValue\": \"test-tube\",\n \"org.knime.chem.types.RxnValue\": \"test-tube\",\n // Visualization & specialized software formats\n \"org.knime.bio.types.PdbValue\": \"microscope\",\n \"org.knime.chem.types.cdx.CDXMLValue\": \"microscope\",\n \"org.rdkit.knime.types.RDKitMolValue\": \"microscope\",\n \"jp.co.infocom.cheminfo.marvin.type.MrvValue\": \"microscope\",\n} as const satisfies Record<string, KdsTypeIconName>;\n\nexport type TypeId = keyof typeof ID_TO_ICON_MAP;\n","\nexport const iconNames = [\n 'add-user',\n 'ai-general',\n 'annotation-mode',\n 'arrow-down',\n 'arrow-up',\n 'arrows-expand',\n 'arrows-move',\n 'arrows-order',\n 'back',\n 'bold',\n 'calendar',\n 'case-sensitive',\n 'center-aligned',\n 'checkmark',\n 'chevron-down',\n 'chevron-left-double',\n 'chevron-left',\n 'chevron-right-double',\n 'chevron-right',\n 'chevron-up',\n 'circle-error',\n 'circle-info',\n 'circle-question',\n 'circle-success',\n 'cloud-download',\n 'cloud-knime',\n 'cloud-pending-changes',\n 'cloud-synced',\n 'cloud-upload',\n 'cloud-workflow',\n 'code-block',\n 'color-picker',\n 'comment',\n 'component',\n 'connection',\n 'copy',\n 'cursor',\n 'data-app',\n 'data-value-view',\n 'date-time',\n 'db-database',\n 'db-schema',\n 'db-table-view',\n 'db-table',\n 'deploy',\n 'detect',\n 'divider',\n 'duration',\n 'edit',\n 'education',\n 'error-panel',\n 'execute-all',\n 'execute',\n 'expand-panel',\n 'extension-community',\n 'extension',\n 'external-link',\n 'eye',\n 'file-export',\n 'file-text',\n 'file',\n 'filter',\n 'flow-variable-default',\n 'flow-variable-in-out',\n 'flow-variable-in',\n 'flow-variable-out',\n 'folder-plus',\n 'folder-workflow',\n 'folder',\n 'forum',\n 'function-catalog',\n 'home',\n 'import',\n 'info',\n 'interval',\n 'italic',\n 'key',\n 'layout-editor',\n 'left-aligned',\n 'like',\n 'limit',\n 'link',\n 'linked-metanode',\n 'list-bulletpoint',\n 'list-number',\n 'list-thumbs',\n 'list',\n 'local-filesystem',\n 'lock',\n 'metanode',\n 'mini-map',\n 'minimize-dialog',\n 'minimize-side-panel',\n 'minus',\n 'more-actions',\n 'node-stack',\n 'nodes-align-horiz',\n 'nodes-align-vert',\n 'open-in-new-window',\n 'pan-mode',\n 'parameter',\n 'pending-changes',\n 'placeholder',\n 'plus',\n 'quote',\n 're-execution',\n 'redo',\n 'regex',\n 'reload',\n 'rename',\n 'replace',\n 'reset-all',\n 'resume-execution',\n 'right-aligned',\n 'rocket',\n 'save-as',\n 'save',\n 'schedule',\n 'search',\n 'secret-store',\n 'selected-cancel',\n 'selected-execution',\n 'selected-reset',\n 'send',\n 'server-rack-workflow',\n 'service',\n 'settings',\n 'share',\n 'shortcuts',\n 'sort-ascending',\n 'sort-descending',\n 'space-local',\n 'space-private',\n 'space',\n 'stepwise-execution',\n 'stop',\n 'strikethrough',\n 'team',\n 'text',\n 'textstyles',\n 'thumbs-down',\n 'thumbs-up',\n 'time',\n 'to-bottom',\n 'to-top',\n 'trash',\n 'trigger',\n 'underline',\n 'undo',\n 'unlink',\n 'user',\n 'version',\n 'view-cards',\n 'warning',\n 'workflow',\n 'x-close'\n] as const;\n\nexport type IconName = typeof iconNames[number];\n","\nexport const typeIconNames = [\n 'audio-datatype',\n 'binary-object-datatype',\n 'bit-byte-vector-datatype',\n 'boolean-datatype',\n 'collection-list-datatype',\n 'collection-set-datatype',\n 'date-datatype',\n 'date-time-local-datatype',\n 'date-time-zoned-datatype',\n 'default-extension-datatype',\n 'document-datatype',\n 'duration-date-based-datatype',\n 'duration-time-based-datatype',\n 'geo-datatype',\n 'helm-datatype',\n 'image-png-datatype',\n 'image-svg-datatype',\n 'json-datatype',\n 'labeling-datatype',\n 'linear-notation-molecule',\n 'message-datatype',\n 'microscope',\n 'model-pmml-datatype',\n 'molecule',\n 'number-double-datatype',\n 'number-double-vector-datatype',\n 'number-integer-datatype',\n 'path-datatype',\n 'string-datatype',\n 'string-vector-datatype',\n 'subgraph-datatype',\n 'term-datatype',\n 'test-tube',\n 'time-datatype',\n 'tool-datatype',\n 'unknown-datatype',\n 'uri-datatype',\n 'variable-boolean',\n 'variable-collection-boolean',\n 'variable-collection-double',\n 'variable-collection-integer',\n 'variable-collection-string',\n 'variable-conda-environment',\n 'variable-credential',\n 'variable-integer',\n 'variable-number-double',\n 'variable-path',\n 'variable-string',\n 'variable-unknown',\n 'xml-datatype'\n] as const;\n\nexport type TypeIconName = typeof typeIconNames[number];\n","export { iconNames as kdsIconNames } from \"@knime/kds-styles/img/icons/def\";\nexport { typeIconNames as kdsTypeIconNames } from \"@knime/kds-styles/img/type-icons/def\";\n\nimport { iconNames as kdsIconNames } from \"@knime/kds-styles/img/icons/def\";\nimport { typeIconNames as kdsTypeIconNames } from \"@knime/kds-styles/img/type-icons/def\";\n\nconst toEnumKey = (name: string) =>\n name.toUpperCase().replaceAll(\"-\", \"_\") as Uppercase<typeof name>;\n\nexport const kdsIconName = Object.fromEntries(\n kdsIconNames.map((name) => [toEnumKey(name), name] as const),\n) as { [K in (typeof kdsIconNames)[number] as Uppercase<K>]: K };\n\nexport const kdsTypeIconName = Object.fromEntries(\n kdsTypeIconNames.map((name) => [toEnumKey(name), name] as const),\n) as { [K in (typeof kdsTypeIconNames)[number] as Uppercase<K>]: K };\n\nexport const kdsIconSize = {\n XSMALL: \"xsmall\",\n SMALL: \"small\",\n MEDIUM: \"medium\",\n LARGE: \"large\",\n} as const;\n\nexport const kdsIconSizes = Object.values(kdsIconSize);\n\nexport const kdsDataTypeSize = {\n SMALL: \"small\",\n MEDIUM: \"medium\",\n LARGE: \"large\",\n} as const;\n\nexport const kdsDataTypeSizes = Object.values(kdsDataTypeSize);\n","<script setup lang=\"ts\">\nimport { computed } from \"vue\";\n\nimport { ID_TO_ICON_MAP, type TypeId } from \"./IdToIconNameMapping\";\nimport { kdsTypeIconNames } from \"./enums\";\nimport type {\n KdsDataTypeProps,\n KdsDataTypeSize,\n KdsIconSize,\n KdsTypeIconName,\n} from \"./types\";\nimport useIcon from \"./useIcon\";\n\ntype DataTypeIconSize = Exclude<KdsIconSize, \"large\">;\n\nconst DATA_TYPE_SIZE_TO_ICON_SIZE: Record<KdsDataTypeSize, DataTypeIconSize> = {\n large: \"medium\",\n medium: \"small\",\n small: \"xsmall\",\n} as const;\n\nconst props = withDefaults(defineProps<KdsDataTypeProps>(), {\n iconName: \"unknown-datatype\",\n iconTitle: \"Unknown Data Type\",\n size: \"medium\",\n disabled: false,\n});\n\nconst iconSize = computed(() => DATA_TYPE_SIZE_TO_ICON_SIZE[props.size]);\n\nconst isIconName = (value: string): value is KdsTypeIconName =>\n kdsTypeIconNames.includes(value as KdsTypeIconName);\n\nconst isTypeId = (value: string): value is TypeId =>\n Object.keys(ID_TO_ICON_MAP).includes(value);\n\nconst iconName = computed<KdsTypeIconName>(() => {\n if (isIconName(props.iconName)) {\n return props.iconName;\n }\n if (isTypeId(props.iconName)) {\n return ID_TO_ICON_MAP[props.iconName];\n }\n return props.iconName.startsWith(\"org.knime\")\n ? \"default-extension-datatype\"\n : \"unknown-datatype\";\n});\n\nconst iconComponent = useIcon({\n name: iconName,\n folder: \"type-icons\",\n});\n</script>\n\n<template>\n <div\n :class=\"['kds-data-type-icon-container', size, { disabled }]\"\n :title=\"props.iconTitle\"\n >\n <component\n :is=\"iconComponent\"\n :class=\"['kds-icon', 'kds-data-type-icon', iconSize]\"\n aria-hidden=\"true\"\n focusable=\"false\"\n />\n </div>\n</template>\n\n<style scoped>\n@import url(\"./styles.css\");\n\n.kds-data-type-icon-container {\n --data-type-height: var(--kds-dimension-component-height-1x);\n --data-type-width: var(--kds-dimension-component-width-1x);\n --data-type-padding: var(--kds-spacing-container-0-12x);\n\n display: inline-flex;\n align-items: center;\n justify-content: center;\n width: var(--data-type-width);\n height: var(--data-type-height);\n padding: var(--data-type-padding);\n color: var(--kds-color-desktop-header-text-and-icon-muted);\n background-color: var(--kds-color-page-default);\n border: var(--kds-border-base-muted);\n border-radius: var(--kds-border-radius-container-0-12x);\n\n &.disabled {\n color: var(--kds-color-text-and-icon-disabled);\n }\n\n &.small {\n --data-type-height: var(--kds-dimension-icon-0-75x);\n --data-type-width: var(--kds-dimension-icon-0-75x);\n --data-type-padding: var(--kds-spacing-container-none);\n }\n\n &.large {\n --data-type-height: var(--kds-dimension-component-height-1-25x);\n --data-type-width: var(--kds-dimension-component-width-1-25x);\n }\n\n /* The kds-data-type-icon class is needed to increase the specificity to overwrite the icon-stroke-width */\n & .kds-icon.kds-data-type-icon {\n &.small {\n --icon-stroke-width: var(--kds-border-width-icon-stroke-m);\n }\n\n &.medium {\n --icon-stroke-width: var(--kds-border-width-icon-stroke-l);\n }\n }\n}\n</style>\n","export const kdsBadgeVariant = {\n NEUTRAL: \"neutral\",\n INFO: \"info\",\n WARNING: \"warning\",\n SUCCESS: \"success\",\n ERROR: \"error\",\n GHOST: \"ghost\",\n} as const;\n\nexport const kdsBadgeVariants = Object.values(kdsBadgeVariant);\n\nexport const kdsBadgeSize = {\n XXSMALL: \"xxsmall\",\n XSMALL: \"xsmall\",\n} as const;\n\nexport const kdsBadgeSizes = Object.values(kdsBadgeSize);\n","<script setup lang=\"ts\">\nimport { KdsIcon, type KdsIconSize } from \"../Icon\";\n\nimport { kdsBadgeSize, kdsBadgeVariant } from \"./enums\";\nimport type { KdsBadgeProps, KdsBadgeSize } from \"./types\";\n\nwithDefaults(defineProps<KdsBadgeProps>(), {\n variant: kdsBadgeVariant.NEUTRAL,\n size: kdsBadgeSize.XSMALL,\n leadingIcon: undefined,\n});\n\nconst sizeToIconSize: Record<KdsBadgeSize, KdsIconSize> = {\n xxsmall: \"xsmall\",\n xsmall: \"small\",\n};\n</script>\n\n<template>\n <span :class=\"['kds-badge', size, variant]\">\n <KdsIcon\n v-if=\"leadingIcon\"\n :name=\"leadingIcon\"\n :size=\"sizeToIconSize[size]\"\n />\n <span class=\"label-wrapper\">{{ label }}</span>\n </span>\n</template>\n\n<style scoped>\n.kds-badge {\n display: inline-flex;\n align-items: center;\n max-width: 100%;\n border-radius: var(--kds-border-radius-container-pill);\n\n & .label-wrapper {\n min-width: 0;\n max-width: var(--kds-dimension-component-width-16x);\n padding: 0 var(--kds-spacing-container-0-12x);\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n }\n\n &.xxsmall {\n height: var(--kds-dimension-component-height-1x);\n padding: 0 var(--kds-spacing-container-0-25x);\n font: var(--kds-font-base-title-xsmall);\n }\n\n &.xsmall {\n gap: var(--kds-spacing-container-0-12x);\n height: var(--kds-dimension-component-height-1-25x);\n padding: 0 var(--kds-spacing-container-0-37x);\n font: var(--kds-font-base-title-small);\n }\n\n &.neutral {\n color: var(--kds-color-text-and-icon-neutral);\n background-color: var(--kds-color-background-neutral-bold-initial);\n border: var(--kds-border-base-subtle);\n }\n\n &.info {\n color: var(--kds-color-text-and-icon-info);\n background-color: var(--kds-color-background-static-info);\n border: var(--kds-border-base-info);\n }\n\n &.warning {\n color: var(--kds-color-text-and-icon-warning);\n background-color: var(--kds-color-background-static-warning);\n border: var(--kds-border-base-warning);\n }\n\n &.success {\n color: var(--kds-color-text-and-icon-success);\n background-color: var(--kds-color-background-static-success);\n border: var(--kds-border-base-success);\n }\n\n &.error {\n color: var(--kds-color-text-and-icon-danger);\n background-color: var(--kds-color-background-static-danger);\n border: var(--kds-border-base-danger);\n }\n\n &.ghost {\n color: var(--kds-color-text-and-icon-neutral);\n background-color: transparent;\n border: var(--kds-border-base-subtle);\n }\n}\n</style>\n","export const kdsColorSwatchType = {\n LEARNER: \"learner\",\n MANIPULATOR: \"manipulator\",\n PREDICTOR: \"predictor\",\n SINK: \"sink\",\n SOURCE: \"source\",\n VISUALIZER: \"visualizer\",\n OTHER: \"other\",\n} as const;\n\nexport const kdsColorSwatchTypes = Object.values(kdsColorSwatchType);\n\nexport const kdsColorSwatchSize = {\n SMALL: \"small\",\n MEDIUM: \"medium\",\n LARGE: \"large\",\n} as const;\n\nexport const kdsColorSwatchSizes = Object.values(kdsColorSwatchSize);\n","<script setup lang=\"ts\">\nimport { computed } from \"vue\";\n\nimport { kdsColorSwatchSize } from \"./enums\";\nimport type { KdsColorSwatchProps, KdsColorSwatchType } from \"./types\";\n\nconst props = withDefaults(defineProps<KdsColorSwatchProps>(), {\n size: kdsColorSwatchSize.SMALL,\n title: undefined,\n});\n\nconst typeToTokenColor: Record<KdsColorSwatchType, string> = {\n learner: \"var(--kds-color-nodes-and-variables-learner)\",\n manipulator: \"var(--kds-color-nodes-and-variables-manipulator)\",\n predictor: \"var(--kds-color-nodes-and-variables-predictor)\",\n sink: \"var(--kds-color-nodes-and-variables-sink)\",\n source: \"var(--kds-color-nodes-and-variables-source)\",\n visualizer: \"var(--kds-color-nodes-and-variables-visualizer)\",\n other: \"var(--kds-color-nodes-and-variables-other)\",\n};\n\nconst isKdsColorSwatchType = (value: string): value is KdsColorSwatchType =>\n Object.hasOwn(typeToTokenColor, value);\n\nconst backgroundColor = computed(() => {\n if (isKdsColorSwatchType(props.color)) {\n return typeToTokenColor[props.color];\n }\n return props.color;\n});\n\nconst accessibleTitle = computed(() => props.title?.trim() ?? \"\");\nconst hasTitle = computed(() => accessibleTitle.value.length > 0);\n</script>\n\n<template>\n <span\n :role=\"hasTitle ? 'img' : 'presentation'\"\n class=\"kds-color-swatch\"\n :class=\"props.size\"\n :title=\"hasTitle ? accessibleTitle : undefined\"\n :style=\"{ backgroundColor }\"\n :aria-hidden=\"hasTitle ? undefined : 'true'\"\n :aria-label=\"hasTitle ? accessibleTitle : undefined\"\n />\n</template>\n\n<style scoped>\n.kds-color-swatch {\n display: inline-block;\n flex-shrink: 0;\n overflow: hidden;\n line-height: 0;\n border: var(--kds-border-base-muted);\n border-radius: var(--kds-border-radius-container-0-25x);\n\n &.small {\n width: var(--kds-dimension-icon-0-75x);\n height: var(--kds-dimension-icon-0-75x);\n }\n\n &.medium {\n width: var(--kds-dimension-icon-1x);\n height: var(--kds-dimension-icon-1x);\n }\n\n &.large {\n width: var(--kds-dimension-component-width-1-25x);\n height: var(--kds-dimension-component-height-1-25x);\n }\n}\n</style>\n","export const kdsDarkModeType = {\n LIGHT: \"light\",\n DARK: \"dark\",\n SYSTEM: \"system\",\n} as const;\n\nexport const kdsDarkModeTypes = Object.values(kdsDarkModeType);\n","import { computed, watch } from \"vue\";\nimport { useDark, useLocalStorage, usePreferredDark } from \"@vueuse/core\";\n\nimport { kdsDarkModeType } from \"./enums\";\n\nexport const KDS_DARK_MODE_STORAGE_KEY = \"KNIME_DARK_MODE\";\n\nexport type KdsDarkModeType =\n (typeof kdsDarkModeType)[keyof typeof kdsDarkModeType];\n\n// could also be system, but the previous behaviour forced it to light, so we use that\nconst defaultMode: KdsDarkModeType = kdsDarkModeType.LIGHT;\n\nexport const useKdsDarkMode = () => {\n // to also save a 'system' option we need to store the preference separately from the effective dark mode\n const userPreference = useLocalStorage<KdsDarkModeType>(\n KDS_DARK_MODE_STORAGE_KEY,\n defaultMode,\n );\n\n const isDark = useDark({\n storageKey: `${KDS_DARK_MODE_STORAGE_KEY}_EFFECTIVE`,\n initialValue: defaultMode,\n onChanged: (isDarkValue) => {\n let cssMode: string, themeValue: string;\n\n if (userPreference.value === kdsDarkModeType.SYSTEM) {\n cssMode = \"light dark\";\n themeValue = kdsDarkModeType.SYSTEM;\n } else {\n cssMode = themeValue = isDarkValue\n ? kdsDarkModeType.DARK\n : kdsDarkModeType.LIGHT;\n }\n\n document.documentElement.style.setProperty(\"color-scheme\", cssMode);\n document.documentElement.dataset.theme = themeValue;\n },\n });\n\n // react on both system and user preference changes, invokes onChanged function in the custom useDark implementation above\n const systemPrefersDark = usePreferredDark();\n watch(\n [userPreference, systemPrefersDark],\n ([preference, systemDark]) => {\n if (preference === kdsDarkModeType.SYSTEM) {\n isDark.value = systemDark;\n } else {\n isDark.value = preference === kdsDarkModeType.DARK;\n }\n },\n { immediate: true },\n );\n\n const currentMode = computed<KdsDarkModeType>({\n get() {\n return userPreference.value;\n },\n set(value: KdsDarkModeType) {\n userPreference.value = value;\n },\n });\n\n const isDarkMode = computed(() => {\n return userPreference.value === kdsDarkModeType.DARK;\n });\n\n const isLightMode = computed(() => {\n return userPreference.value === kdsDarkModeType.LIGHT;\n });\n\n const isSystemMode = computed(\n () => userPreference.value === kdsDarkModeType.SYSTEM,\n );\n\n return {\n /** Exposes a writable computed ref to get the current dark mode but also use it in e.g. a v-model to set it */\n currentMode,\n /** Whether or not the current user preference is dark. Note, if the preference is set to 'system' it will return false. */\n isDarkMode,\n /** Whether or not the current user preference is light. Note, if the preference is set to 'system' it will return false. */\n isLightMode,\n /** Whether or not the current user preference is set to 'system'. */\n isSystemMode,\n };\n};\n","import { ref, watch } from \"vue\";\n\nconst legacyMode = ref(false);\n\nexport const useKdsLegacyMode = (initialValue: boolean = false) => {\n if (legacyMode.value !== initialValue) {\n legacyMode.value = initialValue;\n }\n\n watch(\n () => legacyMode.value,\n (newValue) => {\n document.documentElement.classList.toggle(\"kds-legacy\", newValue);\n },\n { immediate: true },\n );\n\n return {\n /** Writable ref to get and/or set the legacy mode; can also be used with v-model */\n legacyMode,\n };\n};\n","import { type Ref, ref } from \"vue\";\nimport { useMutationObserver, useResizeObserver } from \"@vueuse/core\";\n\nexport function elementOverflowsHorizontally(\n element: HTMLElement | null,\n): boolean {\n if (!element) {\n return false;\n }\n return element.scrollWidth > element.clientWidth;\n}\n\nexport function elementOverflowsVertically(\n element: HTMLElement | null,\n): boolean {\n if (!element) {\n return false;\n }\n return element.scrollHeight > element.clientHeight;\n}\n\n/**\n * Tracks whether the content of an element is visually truncated.\n *\n * Detects both horizontal truncation (e.g. `text-overflow: ellipsis`)\n * and vertical truncation (e.g. `-webkit-line-clamp`).\n *\n * This can be used to set tooltips or other UI affordances when text is cut off.\n * Changing the size of the provided element based on this composable may result in an infinite loop!\n *\n * @param elementRef - A ref pointing to the element that might be truncated.\n * @returns An object containing a reactive `isTruncated` ref.\n */\nexport function useKdsIsTruncated(elementRef: Ref<HTMLElement | null>) {\n const isTruncated = ref(false);\n\n const checkTruncation = () => {\n isTruncated.value =\n elementOverflowsHorizontally(elementRef.value) ||\n elementOverflowsVertically(elementRef.value);\n };\n\n useResizeObserver(elementRef, checkTruncation);\n\n // Observe changes to the element's subtree, including text-node updates,\n // so content changes without size changes still re-check truncation.\n useMutationObserver(elementRef, checkTruncation, {\n childList: true,\n characterData: true,\n subtree: true,\n // Also observe attribute changes (especially class/style) that can affect\n // truncation without necessarily triggering a resize event.\n attributes: true,\n attributeFilter: [\"class\", \"style\"],\n });\n\n return { isTruncated };\n}\n","<script setup lang=\"ts\">\nimport { computed, useTemplateRef } from \"vue\";\n\nimport { useKdsIsTruncated } from \"../../util\";\n\nimport type { KdsLiveStatusProps } from \"./types\";\n\nconst props = withDefaults(defineProps<KdsLiveStatusProps>(), {\n status: \"red\",\n size: \"medium\",\n label: \"\",\n title: undefined,\n});\n\nconst accessibleTitle = computed(\n () => props.title?.trim() || `Status is ${props.status}`,\n);\n\nconst labelEl = useTemplateRef(\"labelEl\");\nconst { isTruncated } = useKdsIsTruncated(labelEl);\n</script>\n\n<template>\n <span\n :class=\"['kds-live-status', props.status, `size-${props.size}`]\"\n role=\"img\"\n :title=\"accessibleTitle\"\n :aria-label=\"accessibleTitle\"\n >\n <span class=\"dot\" />\n <span\n v-if=\"props.label\"\n ref=\"labelEl\"\n class=\"label\"\n :title=\"isTruncated ? props.label : undefined\"\n >\n {{ props.label }}\n </span>\n </span>\n</template>\n\n<style scoped>\n.kds-live-status {\n --dot-color: var(--kds-color-state-disabled);\n --dot-border-color: var(--kds-color-state-disabled-border);\n\n display: inline-flex;\n flex-shrink: 0;\n gap: 0; /* gap already included in dot */\n align-items: center;\n max-width: 100%;\n line-height: 0;\n\n &.red {\n --dot-color: var(--kds-color-state-error);\n --dot-border-color: var(--kds-color-state-error-border);\n }\n\n &.orange {\n --dot-color: var(--kds-color-state-warning);\n --dot-border-color: var(--kds-color-state-warning-border);\n }\n\n &.green {\n --dot-color: var(--kds-color-state-success);\n --dot-border-color: var(--kds-color-state-success-border);\n }\n\n .dot {\n display: inline-flex;\n flex-shrink: 0;\n align-items: center;\n justify-content: center;\n width: var(--kds-dimension-icon-1-25x);\n height: var(--kds-dimension-icon-1-25x);\n\n &::after {\n display: block;\n width: 50%;\n height: 50%;\n content: \"\";\n background-color: var(--dot-color);\n border-color: var(--dot-border-color);\n border-style: solid;\n border-width: var(--kds-border-width-icon-stroke-l);\n border-radius: var(--kds-border-radius-container-pill);\n }\n }\n\n .label {\n overflow: hidden;\n text-overflow: ellipsis;\n font: var(--kds-font-base-subtext-medium);\n color: var(--kds-color-text-and-icon-neutral);\n white-space: nowrap;\n }\n\n &.size-medium {\n .dot {\n width: var(--kds-dimension-icon-1x);\n height: var(--kds-dimension-icon-1x);\n }\n\n &::after {\n border-width: var(--kds-border-width-icon-stroke-m);\n }\n\n .label {\n font: var(--kds-font-base-subtext-small);\n }\n }\n\n &.size-small {\n .dot {\n width: var(--kds-dimension-icon-0-75x);\n height: var(--kds-dimension-icon-0-75x);\n }\n\n &::after {\n border-width: var(--kds-border-width-icon-stroke-s);\n }\n\n .label {\n font: var(--kds-font-base-subtext-xsmall);\n }\n }\n}\n</style>\n","export const kdsLiveStatusStatus = {\n RED: \"red\",\n ORANGE: \"orange\",\n GREEN: \"green\",\n DISABLED: \"disabled\",\n} as const;\n\nexport const kdsLiveStatusStatuses = Object.values(kdsLiveStatusStatus);\n\nexport const kdsLiveStatusSize = {\n LARGE: \"large\",\n MEDIUM: \"medium\",\n SMALL: \"small\",\n} as const;\n\nexport const kdsLiveStatusSizes = Object.values(kdsLiveStatusSize);\n","<script lang=\"ts\" setup>\nimport type { KdsLoadingSpinnerProps } from \"./types\";\n\nwithDefaults(defineProps<KdsLoadingSpinnerProps>(), {\n variant: \"onSurface\",\n size: \"medium\",\n});\n</script>\n\n<template>\n <svg\n :class=\"['kds-loading-spinner', size]\"\n :data-style=\"variant\"\n viewBox=\"0 0 120 120\"\n >\n <circle class=\"track\" cx=\"60\" cy=\"60\" r=\"50\" />\n <circle class=\"loader\" cx=\"60\" cy=\"60\" r=\"50\" />\n </svg>\n</template>\n\n<style scoped>\n.kds-loading-spinner {\n --icon-width: var(--kds-dimension-icon-1x);\n --icon-height: var(--kds-dimension-icon-1x);\n --icon-stroke-width: 12; /* 10% of size */\n\n &.xsmall {\n --icon-width: var(--kds-dimension-icon-0-56x);\n --icon-height: var(--kds-dimension-icon-0-56x);\n }\n\n &.small {\n --icon-width: var(--kds-dimension-icon-0-75x);\n --icon-height: var(--kds-dimension-icon-0-75x);\n }\n\n &.large {\n --icon-width: var(--kds-dimension-icon-1-25x);\n --icon-height: var(--kds-dimension-icon-1-25x);\n }\n\n width: var(--icon-width);\n height: var(--icon-height);\n\n --color-track: var(--kds-color-loading-spinner-track-on-surface);\n --color-loader: var(--kds-color-loading-spinner-progress-on-surface);\n\n &[data-style=\"onPrimary\"] {\n --color-track: var(--kds-color-loading-spinner-track-on-primary);\n --color-loader: var(--kds-color-loading-spinner-progress-on-primary);\n }\n\n & .track {\n fill: none;\n stroke: var(--color-track);\n stroke-width: var(--icon-stroke-width);\n }\n\n & .loader {\n fill: none;\n stroke: var(--color-loader);\n stroke-width: var(--icon-stroke-width);\n stroke-linecap: round;\n stroke-dasharray: 80 240;\n transform: rotate(-90deg);\n transform-origin: center;\n\n /* REQUIRED for SVG rotation */\n transform-box: fill-box;\n animation: spin 1.2s linear infinite;\n }\n}\n\n@keyframes spin {\n from {\n transform: rotate(-90deg);\n }\n\n to {\n transform: rotate(270deg);\n }\n}\n</style>\n","export const kdsLoadingSpinnerVariant = {\n ON_PRIMARY: \"onPrimary\",\n ON_SURFACE: \"onSurface\",\n} as const;\n\nexport const kdsLoadingSpinnerVariants = Object.values(\n kdsLoadingSpinnerVariant,\n);\n","<script setup lang=\"ts\">\nimport { type HTMLAttributes, computed } from \"vue\";\n\nimport KdsIcon from \"../Icon/KdsIcon.vue\";\nimport type { KdsIconName } from \"../Icon/types.ts\";\n\nimport type { KdsInlineMessageProps } from \"./types\";\n\nconst props = withDefaults(defineProps<KdsInlineMessageProps>(), {\n variant: \"info\",\n description: undefined,\n});\n\nconst classes = computed(() => [\"kds-inline-message\", props.variant]);\n\nconst iconName = computed<KdsIconName>(() => {\n switch (props.variant) {\n case \"success\":\n return \"circle-success\";\n case \"error\":\n return \"circle-error\";\n case \"warning\":\n return \"warning\";\n case \"info\":\n default:\n return \"circle-info\";\n }\n});\n\nconst role = computed<HTMLAttributes[\"role\"]>(() =>\n props.variant === \"warning\" || props.variant === \"error\" ? \"alert\" : \"status\",\n);\n</script>\n\n<template>\n <div :class=\"classes\" :role=\"role\">\n <div class=\"header\">\n <KdsIcon class=\"icon\" :name=\"iconName\" size=\"small\" />\n <div class=\"headline\">\n {{ props.headline }}\n </div>\n </div>\n\n <div v-if=\"props.description\" class=\"body\">\n {{ props.description }}\n </div>\n </div>\n</template>\n\n<style scoped>\n.kds-inline-message {\n display: flex;\n flex-direction: column;\n gap: var(--kds-spacing-container-0-25x);\n align-items: flex-start;\n padding: calc(\n var(--kds-spacing-container-0-5x) - var(--kds-core-border-width-xs)\n );\n color: var(--kds-color-text-and-icon-neutral);\n border-radius: var(--kds-border-radius-container-0-50x);\n\n .header {\n display: flex;\n gap: var(--kds-spacing-container-0-25x);\n align-items: flex-start;\n\n .icon {\n align-self: flex-start;\n margin-top: var(--kds-spacing-container-0-12x);\n color: var(--icon-color);\n }\n\n .headline {\n font: var(--kds-font-base-title-small-strong);\n }\n }\n\n .body {\n align-self: stretch;\n padding-left: var(--kds-spacing-container-1x);\n font: var(--kds-font-base-body-small);\n color: var(--kds-color-text-and-icon-muted);\n }\n\n &.info {\n --icon-color: var(--kds-color-text-and-icon-info);\n\n background-color: var(--kds-color-background-static-info-muted);\n border: var(--kds-border-base-info);\n }\n\n &.success {\n --icon-color: var(--kds-color-text-and-icon-success);\n\n background-color: var(--kds-color-background-static-success-muted);\n border: var(--kds-border-base-success);\n }\n\n &.error {\n --icon-color: var(--kds-color-text-and-icon-danger);\n\n background-color: var(--kds-color-background-static-danger-muted);\n border: var(--kds-border-base-danger);\n }\n\n &.warning {\n --icon-color: var(--kds-color-text-and-icon-warning);\n\n background-color: var(--kds-color-background-static-warning-muted);\n border: var(--kds-border-base-warning);\n }\n}\n</style>\n","export const kdsInlineMessageVariant = {\n ERROR: \"error\",\n INFO: \"info\",\n SUCCESS: \"success\",\n WARNING: \"warning\",\n} as const;\n\nexport const kdsInlineMessageVariants = Object.values(kdsInlineMessageVariant);\n","<script setup lang=\"ts\">\nimport { type Component, computed } from \"vue\";\n\nimport KdsIcon from \"../accessories/Icon/KdsIcon.vue\";\n\nimport type { BaseButtonProps } from \"./types\";\n\ntype BaseButtonPropsWithComponent = BaseButtonProps & {\n component?: string | Component;\n};\n\nconst props = withDefaults(defineProps<BaseButtonPropsWithComponent>(), {\n component: \"button\",\n size: \"medium\",\n destructive: false,\n success: false,\n error: false,\n disabled: false,\n toggled: false,\n});\n\nconst emit = defineEmits<{\n click: [event: MouseEvent];\n}>();\n\nconst classes = computed(() => [\n \"button\",\n props.size,\n props.variant,\n { destructive: props.destructive },\n { disabled: props.disabled },\n { toggled: props.toggled },\n { success: props.success },\n { error: props.error },\n]);\n\nconst iconSize = computed(() => {\n if (props.size === \"xsmall\") {\n return \"small\";\n } else {\n return props.size;\n }\n});\n\nfunction onClick(e: MouseEvent) {\n if (!props.disabled) {\n emit(\"click\", e);\n }\n}\n</script>\n\n<template>\n <Component\n :is=\"component\"\n :class=\"classes\"\n :disabled=\"props.disabled\"\n :title=\"props.title\"\n :aria-label=\"props.ariaLabel\"\n @click=\"onClick($event)\"\n >\n <slot name=\"leading\">\n <KdsIcon\n v-if=\"props.leadingIcon\"\n :name=\"props.leadingIcon\"\n :size=\"iconSize\"\n />\n </slot>\n <span v-if=\"props.label\" class=\"label\">{{ props.label }}</span>\n <KdsIcon\n v-if=\"props.trailingIcon && props.label\"\n :name=\"props.trailingIcon\"\n :size=\"iconSize\"\n />\n </Component>\n</template>\n\n<style>\nhtml.kds-legacy {\n --kds-legacy-button-border-radius: var(--kds-border-radius-container-pill);\n}\n</style>\n\n<style scoped>\n.button {\n position: relative;\n display: flex;\n flex-shrink: 0;\n align-items: center;\n justify-content: center;\n width: fit-content;\n min-width: 15px;\n max-width: 100%;\n overflow: hidden;\n cursor: pointer;\n\n /* for LinkButton */\n &:is(a) {\n text-decoration: none;\n }\n\n &.disabled {\n cursor: default;\n }\n\n &:focus-visible {\n outline: var(--kds-border-action-focused);\n outline-offset: var(--kds-spacing-offset-focus);\n }\n\n &.filled {\n color: var(--kds-color-text-and-icon-primary-inverted);\n background-color: var(--kds-color-background-primary-bold-initial);\n border: var(--kds-border-action-transparent);\n\n &.disabled {\n color: var(--kds-color-text-and-icon-disabled-inverted);\n background-color: var(--kds-color-background-disabled-primary);\n }\n\n &:not(.disabled, .success, .error) {\n &:hover {\n background-color: var(--kds-color-background-primary-bold-hover);\n }\n\n &:active {\n background-color: var(--kds-color-background-primary-bold-active);\n }\n }\n\n &.destructive {\n color: var(--kds-color-text-and-icon-danger-inverted);\n background-color: var(--kds-color-background-danger-bold-initial);\n\n &.disabled {\n color: var(--kds-color-text-and-icon-disabled-inverted);\n background-color: var(--kds-color-background-disabled-danger);\n }\n\n &:not(.disabled, .success, .error) {\n &:hover {\n background-color: var(--kds-color-background-danger-bold-hover);\n }\n\n &:active {\n background-color: var(--kds-color-background-danger-bold-active);\n }\n }\n }\n }\n\n &.outlined {\n color: var(--kds-color-text-and-icon-neutral);\n background-color: var(--kds-color-background-neutral-initial);\n border: var(--kds-border-action-default);\n\n &.disabled {\n color: var(--kds-color-text-and-icon-disabled);\n border: var(--kds-border-action-disabled);\n }\n\n &:not(.disabled, .success, .error) {\n &:hover {\n background-color: var(--kds-color-background-neutral-hover);\n }\n\n &:active {\n background-color: var(--kds-color-background-neutral-active);\n }\n }\n\n &.destructive {\n color: var(--kds-color-text-and-icon-danger);\n border: var(--kds-border-action-error);\n\n &.disabled {\n color: var(--kds-color-text-and-icon-disabled);\n border: var(--kds-border-action-disabled);\n }\n\n &:not(.disabled, .success, .error) {\n &:hover {\n background-color: var(--kds-color-background-danger-hover);\n }\n\n &:active {\n background-color: var(--kds-color-background-danger-active);\n }\n }\n }\n }\n\n &.transparent {\n color: var(--kds-color-text-and-icon-neutral);\n background-color: var(--kds-color-background-neutral-initial);\n border: var(--kds-border-action-transparent);\n\n &.disabled {\n color: var(--kds-color-text-and-icon-disabled);\n }\n\n &:not(.disabled, .success, .error) {\n &:hover {\n background-color: var(--kds-color-background-neutral-hover);\n }\n\n &:active {\n background-color: var(--kds-color-background-neutral-active);\n }\n }\n\n &.destructive {\n color: var(--kds-color-text-and-icon-danger);\n\n &.disabled {\n color: var(--kds-color-text-and-icon-disabled);\n }\n\n &:not(.disabled, .success, .error) {\n &:hover {\n background-color: var(--kds-color-background-danger-hover);\n }\n\n &:active {\n background-color: var(--kds-color-background-danger-active);\n }\n }\n }\n }\n\n &.toggled {\n color: var(--kds-color-text-and-icon-selected);\n background-color: var(--kds-color-background-selected-initial);\n border: var(--kds-border-action-selected);\n\n &.disabled {\n color: var(--kds-color-text-and-icon-disabled);\n }\n\n &:not(.disabled, .success, .error) {\n &:hover {\n background-color: var(--kds-color-background-selected-hover);\n }\n\n &:active {\n background-color: var(--kds-color-background-selected-active);\n }\n }\n }\n\n & .label {\n max-width: 200px;\n padding: 0 var(--kds-spacing-container-0-12x);\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n text-rendering: geometricprecision;\n }\n\n &.xsmall {\n gap: var(--kds-spacing-container-0-12x);\n height: var(--kds-dimension-component-height-1-25x);\n padding: 0\n calc(var(--kds-spacing-container-0-25x) - var(--kds-core-border-width-xs)); /* needed as border in Figma is not increasing the width */\n\n font: var(--kds-font-base-interactive-xsmall-strong);\n border-radius: var(\n --kds-legacy-button-border-radius,\n var(--kds-border-radius-container-0-25x)\n );\n }\n\n &.small {\n gap: var(--kds-spacing-container-0-12x);\n height: var(--kds-dimension-component-height-1-5x);\n padding: 0\n calc(var(--kds-spacing-container-0-37x) - var(--kds-core-border-width-xs)); /* needed as border in Figma is not increasing the width */\n\n font: var(--kds-font-base-interactive-small-strong);\n border-radius: var(\n --kds-legacy-button-border-radius,\n var(--kds-border-radius-container-0-37x)\n );\n }\n\n &.medium {\n gap: var(--kds-spacing-container-0-25x);\n height: var(--kds-dimension-component-height-1-75x);\n padding: 0\n calc(var(--kds-spacing-container-0-37x) - var(--kds-core-border-width-xs)); /* needed as border in Figma is not increasing the width */\n\n font: var(--kds-font-base-interactive-medium-strong);\n border-radius: var(\n --kds-legacy-button-border-radius,\n var(--kds-border-radius-container-0-37x)\n );\n }\n\n &.large {\n gap: var(--kds-spacing-container-0-25x);\n height: var(--kds-dimension-component-height-2-25x);\n padding: 0\n calc(var(--kds-spacing-container-0-5x) - var(--kds-core-border-width-xs)); /* needed as border in Figma is not increasing the width */\n\n font: var(--kds-font-base-interactive-large-strong);\n border-radius: var(\n --kds-legacy-button-border-radius,\n var(--kds-border-radius-container-0-50x)\n );\n\n & .label {\n padding: 0 var(--kds-spacing-container-0-25x);\n }\n }\n\n &.success {\n color: var(--kds-color-text-and-icon-success-inverted);\n background-color: var(--kds-color-background-success-bold-initial);\n border: var(--kds-border-action-transparent);\n transition:\n background-color 200ms ease-out,\n border-color 200ms ease-out,\n color 200ms ease-out;\n }\n\n &.error {\n color: var(--kds-color-text-and-icon-danger-inverted);\n background-color: var(--kds-color-background-danger-bold-initial);\n border: var(--kds-border-action-transparent);\n transition:\n background-color 200ms ease-out,\n border-color 200ms ease-out,\n color 200ms ease-out;\n }\n}\n</style>\n","<script setup lang=\"ts\">\nimport BaseButton from \"../BaseButton.vue\";\n\nimport type { KdsButtonProps } from \"./types\";\n\nconst props = withDefaults(defineProps<KdsButtonProps>(), {\n variant: \"filled\",\n});\n\nconst emit = defineEmits<{\n click: [event: MouseEvent];\n}>();\n</script>\n\n<template>\n <BaseButton v-bind=\"props\" @click=\"emit('click', $event)\" />\n</template>\n","import { defineComponent, getCurrentInstance, h, useSlots } from \"vue\";\n\nconst getAppInstance = () => {\n const currentInstance = getCurrentInstance();\n\n return currentInstance?.appContext.app;\n};\n\nexport const resolveNuxtLinkComponent = () => {\n const app = getAppInstance();\n\n // only works when NuxtLink is registered globally, which it's not by default\n const nuxtLinkComponent = app?.component(\"NuxtLink\");\n if (nuxtLinkComponent) {\n return nuxtLinkComponent;\n }\n\n const routerLinkComponent = app?.component(\"RouterLink\");\n if (routerLinkComponent) {\n return routerLinkComponent;\n }\n\n // fallback component when neither NuxtLink nor RouterLink are available\n const fallbackComponent = defineComponent({\n props: {\n to: {\n type: String,\n default: \"\",\n },\n },\n\n render() {\n return h(\"a\", { href: this.to }, [useSlots().default?.()]);\n },\n });\n\n return fallbackComponent;\n};\n","<script setup lang=\"ts\">\nimport { computed } from \"vue\";\n\nimport { resolveNuxtLinkComponent } from \"../../util/nuxtComponentResolver\";\nimport BaseButton from \"../BaseButton.vue\";\n\nimport type { KdsLinkButtonProps } from \"./types\";\n\nconst props = withDefaults(defineProps<KdsLinkButtonProps>(), {\n variant: \"filled\",\n download: undefined,\n rel: null,\n target: null,\n});\n\nconst component = computed(() => {\n if (props.disabled) {\n return \"button\";\n }\n return resolveNuxtLinkComponent();\n});\n\nconst emit = defineEmits<{\n click: [event: MouseEvent];\n}>();\n</script>\n\n<template>\n <BaseButton\n v-bind=\"props\"\n :component=\"component\"\n @click=\"emit('click', $event)\"\n />\n</template>\n","<script setup lang=\"ts\">\nimport BaseButton from \"../BaseButton.vue\";\n\nimport type { KdsToggleButtonProps } from \"./types\";\n\nconst props = withDefaults(defineProps<KdsToggleButtonProps>(), {\n variant: \"outlined\",\n});\n\nconst modelValue = defineModel<boolean>({ default: false });\n</script>\n\n<template>\n <BaseButton\n v-bind=\"props\"\n :toggled=\"modelValue\"\n :aria-pressed=\"modelValue\"\n @click=\"modelValue = !modelValue\"\n />\n</template>\n","export const kdsToggleButtonVariant = {\n OUTLINED: \"outlined\",\n TRANSPARENT: \"transparent\",\n} as const;\n\nexport const kdsToggleButtonVariants = Object.values(kdsToggleButtonVariant);\n","<script setup lang=\"ts\">\nimport { computed } from \"vue\";\n\nimport type { KdsIconSize } from \"../../accessories\";\nimport KdsIcon from \"../../accessories/Icon/KdsIcon.vue\";\nimport KdsLoadingSpinner from \"../../accessories/LoadingSpinner/KdsLoadingSpinner.vue\";\nimport BaseButton from \"../BaseButton.vue\";\n\nimport type { KdsProgressButtonProps, KdsProgressButtonState } from \"./types\";\n\nconst props = withDefaults(defineProps<KdsProgressButtonProps>(), {\n variant: \"filled\",\n size: \"medium\",\n disabled: false,\n});\n\nconst emit = defineEmits<{\n /**\n * Fired when the button is clicked.\n *\n * This event is only emitted when `state` is `default`.\n * Clicks while in `progress`, `success` or `error` are ignored.\n */\n click: [event: MouseEvent];\n}>();\n\nconst state = defineModel<KdsProgressButtonState>(\"state\", {\n default: \"default\",\n});\n\nconst iconSize = computed<KdsIconSize>(() => {\n if (props.size === \"xsmall\") {\n return \"small\";\n }\n return props.size;\n});\n\nfunction onClick(event: MouseEvent) {\n event.preventDefault();\n\n if (state.value !== \"default\") {\n return;\n }\n\n emit(\"click\", event);\n}\n\nconst baseButtonProps = computed(() => ({\n variant: props.variant,\n size: props.size,\n disabled: props.disabled,\n success: state.value === \"success\",\n error: state.value === \"error\",\n title: props.ariaLabel,\n label: props.label,\n leadingIcon: props.leadingIcon,\n ariaLabel: props.ariaLabel,\n}));\n</script>\n\n<template>\n <BaseButton\n v-bind=\"baseButtonProps\"\n class=\"kds-progress-button\"\n :data-kds-progress-state=\"state\"\n @click=\"onClick\"\n >\n <template #leading>\n <span :class=\"['leading', iconSize]\">\n <span class=\"leading-icon\" :data-visible=\"state !== 'progress'\">\n <KdsIcon :name=\"props.leadingIcon\" :size=\"iconSize\" />\n </span>\n <span class=\"spinner\" :data-visible=\"state === 'progress'\">\n <KdsLoadingSpinner\n :size=\"iconSize\"\n :variant=\"props.variant === 'filled' ? 'onPrimary' : 'onSurface'\"\n />\n </span>\n </span>\n </template>\n </BaseButton>\n</template>\n\n<style scoped>\n.leading {\n position: relative;\n display: inline-flex;\n align-items: center;\n justify-content: center;\n width: var(--kds-dimension-icon-1x);\n height: var(--kds-dimension-icon-1x);\n\n &.xsmall {\n width: var(--kds-dimension-icon-0-56x);\n height: var(--kds-dimension-icon-0-56x);\n }\n\n &.small {\n width: var(--kds-dimension-icon-0-75x);\n height: var(--kds-dimension-icon-0-75x);\n }\n\n &.large {\n width: var(--kds-dimension-icon-1-25x);\n height: var(--kds-dimension-icon-1-25x);\n }\n}\n\n.leading-icon,\n.spinner {\n position: absolute;\n inset: 0;\n display: inline-flex;\n align-items: center;\n justify-content: center;\n opacity: 0;\n transition: opacity 200ms ease-out;\n}\n\n.leading-icon[data-visible=\"true\"],\n.spinner[data-visible=\"true\"] {\n opacity: 1;\n}\n</style>\n","export const kdsProgressButtonState = {\n DEFAULT: \"default\",\n PROGRESS: \"progress\",\n SUCCESS: \"success\",\n ERROR: \"error\",\n} as const;\n\nexport const kdsProgressButtonStates = Object.values(kdsProgressButtonState);\n","<script setup lang=\"ts\">\nimport { computed } from \"vue\";\n\nimport KdsLoadingSpinner from \"../../accessories/LoadingSpinner/KdsLoadingSpinner.vue\";\nimport KdsButton from \"../../buttons/KdsButton/KdsButton.vue\";\nimport KdsLinkButton from \"../../buttons/KdsLinkButton/KdsLinkButton.vue\";\n\nimport type { KdsEmptyStateProps } from \"./types\";\n\nconst props = defineProps<KdsEmptyStateProps>();\n\nconst emit = defineEmits<{\n /**\n * Fired when the button is clicked\n *\n * This event is only emitted when the `button` prop is provided.\n */\n buttonClick: [event: MouseEvent];\n}>();\n\nconst isLinkButton = computed(\n () => props.button && \"to\" in props.button && props.button.to !== undefined,\n);\n\nconst buttonComponent = computed(() =>\n isLinkButton.value ? KdsLinkButton : KdsButton,\n);\n</script>\n\n<template>\n <div class=\"kds-empty-state\">\n <KdsLoadingSpinner\n v-if=\"props.loadingSpinner\"\n data-testid=\"loading-spinner\"\n size=\"large\"\n variant=\"onSurface\"\n aria-hidden=\"true\"\n />\n <p class=\"kds-empty-state-headline\">{{ props.headline }}</p>\n <p v-if=\"props.description\" class=\"kds-empty-state-description\">\n {{ props.description }}\n </p>\n <div v-if=\"props.button\" class=\"kds-empty-state-action\">\n <component\n :is=\"buttonComponent\"\n v-bind=\"props.button\"\n @click=\"emit('buttonClick', $event)\"\n />\n </div>\n </div>\n</template>\n\n<style scoped>\n.kds-empty-state {\n display: flex;\n flex-direction: column;\n gap: var(--kds-spacing-container-0-5x);\n align-items: center;\n max-width: 280px;\n padding: var(--kds-spacing-container-0-5x);\n}\n\n.kds-empty-state-headline {\n margin: 0;\n font: var(--kds-font-base-title-small);\n color: var(--kds-color-text-and-icon-muted);\n text-align: center;\n}\n\n.kds-empty-state-description {\n margin: 0;\n font: var(--kds-font-base-body-small);\n color: var(--kds-color-text-and-icon-muted);\n text-align: center;\n}\n\n.kds-empty-state-action {\n margin-top: var(--kds-spacing-container-0-12x);\n}\n</style>\n","<script setup lang=\"ts\">\nimport { KdsLiveStatus } from \"../../../../accessories\";\nimport KdsAvatar from \"../../../../accessories/Avatar/KdsAvatar.vue\";\nimport KdsColorSwatch from \"../../../../accessories/ColorSwatch/KdsColorSwatch.vue\";\nimport KdsDataType from \"../../../../accessories/Icon/KdsDataType.vue\";\nimport KdsIcon from \"../../../../accessories/Icon/KdsIcon.vue\";\n\nimport type {\n KdsListItemAccessory,\n KdsListItemAccessorySize,\n} from \"./types.ts\";\n\nconst props = withDefaults(\n defineProps<{\n accessory: KdsListItemAccessory;\n size: KdsListItemAccessorySize;\n disabled?: boolean;\n }>(),\n {\n disabled: false,\n },\n);\n</script>\n\n<template>\n <KdsAvatar\n v-if=\"props.accessory.type === 'avatar'\"\n :title=\"props.accessory.title\"\n :src=\"props.accessory.src\"\n :initials=\"props.accessory.initials\"\n :size=\"props.size\"\n />\n <KdsColorSwatch\n v-else-if=\"props.accessory.type === 'colorSwatch'\"\n :color=\"props.accessory.color\"\n :title=\"props.accessory.title\"\n :size=\"props.size\"\n />\n <KdsIcon\n v-else-if=\"props.accessory.type === 'icon'\"\n :name=\"props.accessory.name\"\n :size=\"props.size\"\n :disabled=\"props.disabled\"\n />\n <KdsDataType\n v-else-if=\"props.accessory.type === 'dataType'\"\n :icon-name=\"props.accessory.name\"\n :size=\"props.size\"\n :disabled=\"props.disabled\"\n />\n <KdsLiveStatus\n v-else-if=\"props.accessory.type === 'liveStatus'\"\n :status=\"props.accessory.status\"\n :title=\"props.accessory.title\"\n :size=\"props.size\"\n />\n</template>\n","export const kdsListItemAccessorySize = {\n SMALL: \"small\",\n MEDIUM: \"medium\",\n LARGE: \"large\",\n} as const;\n\nexport const kdsListItemAccessorySizes = Object.values(\n kdsListItemAccessorySize,\n);\n","export const kdsListItemVariant = {\n SMALL: \"small\",\n LARGE: \"large\",\n} as const;\n\nexport const kdsListItemVariants = Object.values(kdsListItemVariant);\n\nexport const kdsListItemRole = {\n OPTION: \"option\",\n MENUITEM: \"menuitem\",\n} as const;\n\nexport const kdsListItemRoles = Object.values(kdsListItemRole);\n","<script setup lang=\"ts\">\nimport { computed, useTemplateRef } from \"vue\";\n\nimport KdsIcon from \"../../../../accessories/Icon/KdsIcon.vue\";\nimport { useKdsIsTruncated } from \"../../../../util\";\nimport ListItemAccessory from \"../ListItemAccessory/ListItemAccessory.vue\";\nimport { kdsListItemAccessorySize } from \"../ListItemAccessory/enums.ts\";\n\nimport { kdsListItemVariant } from \"./enums.ts\";\nimport type { KdsListItemProps } from \"./types.ts\";\n\nconst props = withDefaults(defineProps<KdsListItemProps>(), {\n accessory: undefined,\n subText: undefined,\n variant: kdsListItemVariant.SMALL,\n shortcut: undefined,\n trailingIcon: undefined,\n special: false,\n selected: false,\n active: false,\n missing: false,\n disabled: false,\n role: \"option\",\n});\n\nconst emit = defineEmits<{\n /**\n * Emitted when the list item is clicked.\n */\n click: [event: MouseEvent];\n}>();\n\nconst accessorySize = computed(() =>\n props.variant === kdsListItemVariant.LARGE\n ? kdsListItemAccessorySize.LARGE\n : kdsListItemAccessorySize.SMALL,\n);\n\nconst onClick = (event: MouseEvent) => {\n if (props.disabled) {\n event.stopPropagation();\n event.preventDefault();\n return;\n }\n emit(\"click\", event);\n};\n\nconst labelEl = useTemplateRef(\"labelEl\");\nconst { isTruncated: isLabelTruncated } = useKdsIsTruncated(labelEl);\n\nconst subtextEl = useTemplateRef(\"subtextEl\");\nconst { isTruncated: isSubtextTruncated } = useKdsIsTruncated(subtextEl);\n</script>\n\n<template>\n <div\n :id=\"props.id\"\n :role=\"props.role\"\n :aria-selected=\"props.role === 'option' ? props.selected : undefined\"\n :aria-disabled=\"props.disabled\"\n :class=\"[\n 'kds-list-item',\n props.variant,\n {\n selected: props.selected,\n active: props.active,\n missing: props.missing,\n disabled: props.disabled,\n },\n ]\"\n @click=\"onClick\"\n >\n <span v-if=\"props.accessory\" class=\"accessory\">\n <ListItemAccessory\n :accessory=\"props.accessory\"\n :size=\"accessorySize\"\n :disabled=\"props.disabled\"\n />\n </span>\n\n <span class=\"content\">\n <span\n ref=\"labelEl\"\n class=\"label\"\n :title=\"isLabelTruncated ? props.label : undefined\"\n >\n <span v-if=\"props.missing\" class=\"prefix\">(Missing) </span>\n <span :class=\"{ special: props.special }\">{{ props.label }}</span>\n </span>\n <span\n v-if=\"props.subText\"\n ref=\"subtextEl\"\n class=\"subtext\"\n :title=\"isSubtextTruncated ? props.subText : undefined\"\n >\n {{ props.subText }}\n </span>\n </span>\n\n <span class=\"trailing-item\">\n <span v-if=\"props.shortcut\" class=\"shortcut\">\n {{ props.shortcut }}\n </span>\n\n <KdsIcon\n v-if=\"props.trailingIcon\"\n :name=\"props.trailingIcon\"\n size=\"small\"\n />\n <span v-else class=\"trailing-item-reserve-space\" />\n </span>\n </div>\n</template>\n\n<style scoped>\n.kds-list-item {\n position: relative;\n display: flex;\n gap: var(--kds-spacing-container-0-5x);\n align-items: center;\n width: 100%;\n min-width: var(--kds-dimension-component-width-12x);\n padding: var(--kds-spacing-container-0-25x) var(--kds-spacing-container-0-5x);\n color: var(--kds-color-text-and-icon-neutral);\n cursor: pointer;\n user-select: none;\n background: var(--kds-color-background-neutral-initial);\n border: none;\n border-radius: var(--kds-border-radius-container-0-31x);\n\n &.small {\n gap: var(--kds-spacing-container-0-25x);\n align-items: flex-start;\n padding: var(--kds-spacing-container-0-25x)\n var(--kds-spacing-container-0-5x);\n font: var(--kds-font-base-interactive-small);\n\n .accessory {\n display: flex;\n padding: var(--kds-spacing-container-0-12x) 0;\n }\n }\n\n &.large {\n font: var(--kds-font-base-interactive-small-strong);\n\n .accessory {\n display: flex;\n align-items: center;\n }\n }\n\n .content {\n display: flex;\n flex: 1 1 auto;\n flex-direction: column;\n gap: var(--kds-spacing-container-0-12x);\n min-width: 0;\n\n .large & {\n justify-content: center;\n min-height: calc(\n var(--kds-dimension-component-height-2-5x) - 2 *\n var(--kds-spacing-container-0-25x)\n );\n }\n\n .label {\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n\n .prefix {\n flex-shrink: 0;\n }\n\n .special {\n font: var(--kds-font-base-interactive-small-italic);\n }\n }\n\n .subtext {\n display: -webkit-box;\n overflow: hidden;\n -webkit-line-clamp: 2;\n line-clamp: 2;\n font: var(--kds-font-base-subtext-small);\n color: var(--kds-color-text-and-icon-muted);\n -webkit-box-orient: vertical;\n }\n }\n\n .trailing-item {\n display: flex;\n flex-shrink: 0;\n gap: var(--kds-spacing-container-0-12x);\n align-items: center;\n align-self: center;\n justify-content: flex-end;\n\n .shortcut {\n flex-shrink: 0;\n font: var(--kds-font-base-interactive-xsmall-strong);\n color: var(--kds-color-text-and-icon-muted);\n text-align: right;\n white-space: nowrap;\n }\n\n .trailing-item-reserve-space {\n width: var(--kds-dimension-icon-0-75x);\n }\n }\n\n &:hover:not(.disabled),\n &.active:not(.disabled) {\n background: var(--kds-color-background-neutral-hover);\n }\n\n &:active:not(.disabled) {\n background: var(--kds-color-background-neutral-active);\n }\n\n &.selected {\n color: var(--kds-color-text-and-icon-selected);\n background: var(--kds-color-background-selected-initial);\n\n .subtext {\n color: var(--kds-color-text-and-icon-selected);\n }\n\n &:hover,\n &.active {\n background: var(--kds-color-background-selected-hover);\n }\n\n &:active {\n background: var(--kds-color-background-selected-active);\n }\n\n &.disabled {\n background: var(--kds-color-background-selected-initial);\n }\n }\n\n &.missing {\n color: var(--kds-color-text-and-icon-danger);\n background: var(--kds-color-background-danger-initial);\n\n .subtext {\n color: var(--kds-color-text-and-icon-danger);\n }\n\n &:hover,\n &.active {\n background: var(--kds-color-background-danger-hover);\n }\n\n &:active {\n background: var(--kds-color-background-danger-active);\n }\n\n &.disabled {\n background: var(--kds-color-background-danger-initial);\n }\n }\n\n &.disabled {\n color: var(--kds-color-text-and-icon-disabled);\n cursor: default;\n\n .shortcut,\n .subtext {\n color: var(--kds-color-text-and-icon-disabled);\n }\n }\n}\n</style>\n","<template>\n <hr class=\"kds-list-item-divider\" />\n</template>\n\n<style scoped>\n.kds-list-item-divider {\n width: 100%;\n padding: 0;\n margin: 0 0 var(--kds-spacing-container-0-12x);\n border: none;\n border-bottom: var(--kds-border-base-subtle);\n}\n</style>\n","<script setup lang=\"ts\">\nimport { useTemplateRef } from \"vue\";\n\nimport KdsIcon from \"../../../../accessories/Icon/KdsIcon.vue\";\nimport { useKdsIsTruncated } from \"../../../../util\";\n\nimport type { KdsListItemSectionTitleProps } from \"./types.ts\";\n\nconst props = defineProps<KdsListItemSectionTitleProps>();\n\nconst labelEl = useTemplateRef(\"labelEl\");\nconst { isTruncated } = useKdsIsTruncated(labelEl);\n</script>\n\n<template>\n <div class=\"kds-list-item-section-title\">\n <span v-if=\"props.leadingIcon\" class=\"icon\">\n <KdsIcon :name=\"props.leadingIcon\" size=\"small\" />\n </span>\n\n <span\n ref=\"labelEl\"\n class=\"label\"\n :title=\"isTruncated ? props.label : undefined\"\n >\n {{ props.label }}\n </span>\n </div>\n</template>\n\n<style scoped>\n.kds-list-item-section-title {\n display: flex;\n gap: var(--kds-spacing-container-0-25x);\n align-items: center;\n width: 100%;\n min-height: var(--kds-dimension-component-height-1-5x);\n padding: var(--kds-spacing-container-0-25x) var(--kds-spacing-container-0-5x);\n color: var(--kds-color-text-and-icon-muted);\n\n .icon {\n display: flex;\n flex-shrink: 0;\n align-items: center;\n }\n\n .label {\n flex: 1 1 auto;\n min-width: 0;\n overflow: hidden;\n text-overflow: ellipsis;\n font: var(--kds-font-base-title-xsmall);\n white-space: nowrap;\n }\n}\n</style>\n","<script setup lang=\"ts\">\nimport { computed, nextTick, ref, useId, useTemplateRef, watch } from \"vue\";\n\nimport KdsEmptyState from \"../../../../layouts/EmptyState/KdsEmptyState.vue\";\nimport { KdsListItem } from \"../KdsListItem\";\nimport { kdsListItemVariant } from \"../KdsListItem/enums\";\nimport ListItemDivider from \"../ListItemDivider/ListItemDivider.vue\";\nimport ListItemSectionTitle from \"../ListItemSectionTitle/ListItemSectionTitle.vue\";\n\nimport type {\n KdsListContainerExpose,\n KdsListContainerProps,\n KdsListOption,\n} from \"./types\";\n\nconst props = withDefaults(defineProps<KdsListContainerProps>(), {\n emptyText: \"\",\n variant: kdsListItemVariant.SMALL,\n loading: false,\n role: \"listbox\",\n});\n\nconst emit = defineEmits<{\n /** Emitted when item is clicked */\n itemClick: [id: string];\n}>();\n\nconst idPrefix = useId();\nconst toOptionId = (elementId: string) => elementId.slice(idPrefix.length + 1);\nconst emptyOptionId = `${idPrefix}-empty`;\nconst loadingStateText = \"Loading entries\";\n\n/** possibleValues with prefixed ids to avoid DOM id collisions */\nconst prefixedValues = computed<KdsListOption[]>(() =>\n (props.loading ? [] : props.possibleValues).map((o) => ({\n ...o,\n id: `${idPrefix}-${o.id}`,\n })),\n);\n\n/** Only selectable (non-section-headline) items */\nconst selectableValues = computed(() =>\n prefixedValues.value.filter((o) => !o.sectionHeadline),\n);\n\n/** active item id (prefixed) via keyboard or mouseover */\nconst activeId = ref<string | undefined>(undefined);\n\n/** remembers the last active item so it can be restored on re-focus */\nconst lastActiveId = ref<string | undefined>(undefined);\n\nconst isFocused = ref(false);\n\nconst containerEl = useTemplateRef(\"containerEl\");\n\nconst listItemRole = computed(() => {\n return props.role === \"listbox\" ? \"option\" : \"menuitem\";\n});\n\nfunction scrollToView() {\n if (!activeId.value || !containerEl.value) {\n return;\n }\n containerEl.value\n ?.querySelector(`#${CSS.escape(activeId.value)}`)\n ?.scrollIntoView({ block: \"nearest\" });\n}\n\nconst onMouseLeave = () => {\n if (!isFocused.value) {\n activeId.value = undefined;\n }\n};\n\nconst onMousemove = (event: MouseEvent) => {\n const target = (event.target as HTMLElement)?.closest?.(\n `[role=\"${listItemRole.value}\"]`,\n );\n if (\n target instanceof HTMLElement &&\n target.id &&\n target.getAttribute(\"aria-disabled\") !== \"true\"\n ) {\n activeId.value = target.id;\n } else if (!isFocused.value) {\n activeId.value = undefined;\n }\n};\n\nconst enabledValues = computed(() =>\n selectableValues.value.filter((o) => !o.disabled),\n);\n\n/** Tracks the set of enabled item ids to detect real list changes (e.g. search filtering) vs. cosmetic changes (e.g. selection toggling). */\nconst enabledIds = computed(() => enabledValues.value.map((o) => o.id));\nlet prevEnabledIds: string[] = [];\n\nconst firstEnabledOrEmpty = (values: KdsListOption[]) => {\n if (values.length > 0) {\n return values[0].id;\n }\n // Only point to the empty-state element when the list is truly empty.\n // When items exist but are all disabled, leave activeId undefined to\n // avoid aria-activedescendant referencing a non-existent DOM element.\n return selectableValues.value.length === 0 ? emptyOptionId : undefined;\n};\n\nconst idsChanged = (a: string[], b: string[]) =>\n a.length !== b.length || a.some((id, i) => id !== b[i]);\n\nconst getResetActiveId = (values: KdsListOption[]) => {\n if (activeId.value === undefined) {\n return activeId.value;\n }\n // While focused and the visible items actually changed (e.g. during search\n // filtering), always jump to the first enabled value so the highlight\n // follows the top result. Skip when only selection/cosmetic state changed.\n if (isFocused.value && idsChanged(enabledIds.value, prevEnabledIds)) {\n return firstEnabledOrEmpty(values);\n }\n const stillValid = values.some((o) => o.id === activeId.value);\n return stillValid ? activeId.value : firstEnabledOrEmpty(values);\n};\n\n/** Reset activeId/lastActiveId when possibleValues change */\nwatch([enabledValues, () => props.loading], ([values, loading]) => {\n activeId.value = loading ? emptyOptionId : getResetActiveId(values);\n\n const lastIdStillValid = values.some((o) => o.id === lastActiveId.value);\n if (!lastIdStillValid) {\n lastActiveId.value = undefined;\n }\n\n prevEnabledIds = enabledIds.value;\n\n nextTick(scrollToView);\n});\n\nconst findEnabledIndex = (id: string | undefined) =>\n id === undefined ? -1 : enabledValues.value.findIndex((o) => o.id === id);\n\nconst handleFocus = () => {\n isFocused.value = true;\n if (activeId.value === undefined) {\n activeId.value = lastActiveId.value ?? enabledValues.value[0]?.id;\n }\n};\n\nconst handleBlur = () => {\n isFocused.value = false;\n lastActiveId.value = activeId.value;\n activeId.value = undefined;\n};\n\nconst handleKeydown = (event: KeyboardEvent) => {\n if (enabledValues.value.length === 0) {\n return;\n }\n\n const currentIndex = findEnabledIndex(activeId.value);\n\n switch (event.key) {\n case \"ArrowDown\": {\n const nextIndex =\n currentIndex < 0 || currentIndex >= enabledValues.value.length - 1\n ? 0\n : currentIndex + 1;\n activeId.value = enabledValues.value[nextIndex].id;\n scrollToView();\n event.preventDefault();\n break;\n }\n case \"ArrowUp\": {\n const nextIndex =\n currentIndex <= 0 ? enabledValues.value.length - 1 : currentIndex - 1;\n activeId.value = enabledValues.value[nextIndex].id;\n scrollToView();\n event.preventDefault();\n break;\n }\n case \"Enter\":\n if (\n event.target instanceof HTMLElement &&\n [\"BUTTON\"].includes(event.target.tagName) &&\n event.target.ariaExpanded === \"false\"\n ) {\n break;\n }\n if (activeId.value) {\n emit(\"itemClick\", toOptionId(activeId.value));\n event.preventDefault();\n }\n break;\n case \" \":\n if (\n event.target instanceof HTMLElement &&\n [\"INPUT\", \"TEXTAREA\", \"SELECT\"].includes(event.target.tagName)\n ) {\n break;\n }\n if (\n event.target instanceof HTMLElement &&\n [\"BUTTON\"].includes(event.target.tagName) &&\n event.target.ariaExpanded === \"false\"\n ) {\n break;\n }\n if (activeId.value) {\n emit(\"itemClick\", toOptionId(activeId.value));\n event.preventDefault();\n }\n break;\n case \"Home\":\n activeId.value = enabledValues.value[0].id;\n scrollToView();\n event.preventDefault();\n break;\n case \"End\":\n activeId.value = enabledValues.value[enabledValues.value.length - 1].id;\n scrollToView();\n event.preventDefault();\n break;\n default:\n break;\n }\n};\n\ndefineExpose<KdsListContainerExpose>({\n /** Forward a keydown event to the list for keyboard navigation */\n handleKeydown,\n /** Notify the list that its controlling element received focus */\n handleFocus,\n /** Notify the list that its controlling element lost focus */\n handleBlur,\n activeDescendant: activeId,\n});\n</script>\n\n<template>\n <div\n v-bind=\"$attrs\"\n ref=\"containerEl\"\n :role=\"props.role\"\n :aria-busy=\"props.loading\"\n :aria-label=\"props.ariaLabel\"\n :aria-activedescendant=\"\n !props.controlledExternally && activeId ? activeId : undefined\n \"\n :class=\"['kds-list-container', { standalone: !props.controlledExternally }]\"\n :tabindex=\"props.controlledExternally ? undefined : 0\"\n @keydown=\"handleKeydown\"\n @focus=\"handleFocus\"\n @blur=\"handleBlur\"\n @mousemove=\"onMousemove\"\n @mouseleave=\"onMouseLeave\"\n >\n <template v-for=\"(item, index) in prefixedValues\" :key=\"item.id\">\n <ListItemSectionTitle\n v-if=\"item.sectionHeadline\"\n :label=\"item.text\"\n :leading-icon=\"item.sectionHeadlineIcon\"\n role=\"presentation\"\n aria-hidden=\"true\"\n />\n <KdsListItem\n v-else\n :id=\"item.id\"\n :accessory=\"item.accessory\"\n :label=\"item.text\"\n :sub-text=\"item.subText\"\n :selected=\"item.selected\"\n :disabled=\"item.disabled\"\n :active=\"activeId === item.id\"\n :special=\"item.special\"\n :missing=\"item.missing\"\n :variant=\"props.variant\"\n :trailing-icon=\"\n item.missing && !item.disabled\n ? 'trash'\n : item.selected\n ? 'checkmark'\n : undefined\n \"\n :role=\"listItemRole\"\n @mousedown=\"props.controlledExternally && $event.preventDefault()\"\n @click=\"!item.disabled && emit('itemClick', toOptionId(item.id))\"\n />\n <ListItemDivider\n v-if=\"item.separator && index < prefixedValues.length - 1\"\n role=\"presentation\"\n aria-hidden=\"true\"\n />\n </template>\n <div\n v-if=\"selectableValues.length === 0\"\n :id=\"emptyOptionId\"\n :role=\"listItemRole\"\n aria-disabled=\"true\"\n aria-selected=\"false\"\n class=\"kds-list-container-empty\"\n >\n <KdsEmptyState\n :headline=\"props.loading ? loadingStateText : props.emptyText\"\n :loading-spinner=\"props.loading\"\n />\n </div>\n </div>\n</template>\n\n<style scoped>\n.kds-list-container {\n position: relative;\n display: flex;\n flex-direction: column;\n gap: var(--kds-spacing-container-0-10x);\n min-width: var(--kds-dimension-component-width-12x);\n padding: var(--kds-spacing-container-0-25x);\n overflow-y: auto;\n\n &.standalone {\n border: var(--kds-border-base-subtle);\n border-radius: var(--kds-border-radius-container-0-31x);\n }\n\n &:focus-visible {\n outline: var(--kds-border-action-focused);\n outline-offset: var(--kds-spacing-offset-focus);\n border-radius: var(--kds-border-radius-container-0-31x);\n }\n}\n\n.kds-list-container-empty {\n display: flex;\n flex: 1;\n align-items: center;\n justify-content: center;\n}\n</style>\n","<script setup lang=\"ts\">\nimport { useId, useTemplateRef, watchEffect } from \"vue\";\n\nimport type { KdsPopoverExpose, KdsPopoverProps } from \"./types\";\n\nconst props = withDefaults(defineProps<KdsPopoverProps>(), {\n placement: \"bottom-left\",\n role: undefined,\n fullWidth: false,\n});\n\nconst open = defineModel<boolean>({ default: false });\nconst popoverEl = useTemplateRef(\"popoverEl\");\n\nconst popoverId = useId();\nconst anchorName = `--anchor-${popoverId}`;\n\n// Sync the open state with the native popover element's open state\nwatchEffect(() => {\n if (open.value) {\n popoverEl.value?.showPopover?.();\n } else {\n popoverEl.value?.hidePopover?.();\n }\n});\n\nconst anchorStyle = { \"anchor-name\": anchorName };\n\ndefineExpose<KdsPopoverExpose>({ anchorStyle, popoverId });\n</script>\n\n<template>\n <div\n :id=\"popoverId\"\n ref=\"popoverEl\"\n class=\"kds-popover\"\n :class=\"['floating', props.placement, { 'full-width': props.fullWidth }]\"\n popover=\"auto\"\n :style=\"{ 'position-anchor': anchorName }\"\n :role=\"props.role\"\n :aria-label=\"props.popoverAriaLabel\"\n @toggle=\"open = $event.newState === 'open'\"\n >\n <slot>\n <div\n v-if=\"props.content?.trim().length\"\n class=\"kds-popover-default-content\"\n >\n {{ props.content }}\n </div>\n </slot>\n </div>\n</template>\n\n<style scoped>\n.kds-popover {\n padding: 0;\n margin: 0;\n overflow: visible;\n font: inherit;\n color: inherit;\n background-color: transparent;\n border: none;\n border-radius: 0;\n box-shadow: none;\n\n /* noinspection CssInvalidFunction */\n &.full-width {\n min-inline-size: anchor-size(width);\n }\n\n /* noinspection CssInvalidFunction,CssInvalidAtRule */\n &.floating.top-right {\n inset: auto anchor(right) anchor(top) auto;\n margin: var(--kds-spacing-container-0-25x) 0\n var(--kds-spacing-container-0-25x) var(--kds-spacing-container-0-25x);\n position-try-fallbacks:\n --kds-popover-try-top-left, --kds-popover-try-bottom-right,\n --kds-popover-try-bottom-left, --kds-popover-try-top-right;\n }\n\n /* noinspection CssInvalidFunction,CssInvalidAtRule */\n &.floating.top-left {\n inset: auto auto anchor(top) anchor(left);\n margin: var(--kds-spacing-container-0-25x)\n var(--kds-spacing-container-0-25x) var(--kds-spacing-container-0-25x) 0;\n position-try-fallbacks:\n --kds-popover-try-top-right, --kds-popover-try-bottom-left,\n --kds-popover-try-bottom-right, --kds-popover-try-top-left;\n }\n\n /* noinspection CssInvalidFunction,CssInvalidAtRule */\n &.floating.bottom-right {\n inset: anchor(bottom) anchor(right) auto auto;\n margin: var(--kds-spacing-container-0-25x) 0\n var(--kds-spacing-container-0-25x) var(--kds-spacing-container-0-25x);\n position-try-fallbacks:\n --kds-popover-try-bottom-left, --kds-popover-try-top-right,\n --kds-popover-try-top-left, --kds-popover-try-bottom-right;\n }\n\n /* noinspection CssInvalidFunction,CssInvalidAtRule */\n &.floating.bottom-left {\n inset: anchor(bottom) auto auto anchor(left);\n margin: var(--kds-spacing-container-0-25x)\n var(--kds-spacing-container-0-25x) var(--kds-spacing-container-0-25x) 0;\n position-try-fallbacks:\n --kds-popover-try-bottom-right, --kds-popover-try-top-left,\n --kds-popover-try-top-right, --kds-popover-try-bottom-left;\n }\n}\n\n/* noinspection CssInvalidFunction,CssInvalidAtRule */\n@position-try --kds-popover-try-top-right {\n inset: auto anchor(right) anchor(top) auto;\n margin: var(--kds-spacing-container-0-25x) 0\n var(--kds-spacing-container-0-25x) var(--kds-spacing-container-0-25x);\n}\n\n/* noinspection CssInvalidFunction,CssInvalidAtRule */\n@position-try --kds-popover-try-top-left {\n inset: auto auto anchor(top) anchor(left);\n margin: var(--kds-spacing-container-0-25x) var(--kds-spacing-container-0-25x)\n var(--kds-spacing-container-0-25x) 0;\n}\n\n/* noinspection CssInvalidFunction,CssInvalidAtRule */\n@position-try --kds-popover-try-bottom-right {\n inset: anchor(bottom) anchor(right) auto auto;\n margin: var(--kds-spacing-container-0-25x) 0\n var(--kds-spacing-container-0-25x) var(--kds-spacing-container-0-25x);\n}\n\n/* noinspection CssInvalidFunction,CssInvalidAtRule */\n@position-try --kds-popover-try-bottom-left {\n inset: anchor(bottom) auto auto anchor(left);\n margin: var(--kds-spacing-container-0-25x) var(--kds-spacing-container-0-25x)\n var(--kds-spacing-container-0-25x) 0;\n}\n\n.kds-popover-default-content {\n padding: var(--kds-spacing-container-0-75x);\n font: var(--kds-font-base-body-small);\n color: var(--kds-color-text-and-icon-neutral);\n background-color: var(--kds-color-surface-default);\n border-radius: var(--kds-border-radius-container-0-37x);\n box-shadow: var(--kds-elevation-level-3);\n}\n</style>\n","<script setup lang=\"ts\">\nimport {\n type StyleValue,\n computed,\n ref,\n useAttrs,\n useId,\n useTemplateRef,\n} from \"vue\";\n\nimport KdsListContainer from \"../../forms/_helper/List/ListContainer/KdsListContainer.vue\";\nimport KdsPopover from \"../../overlays/Popover/KdsPopover.vue\";\nimport KdsToggleButton from \"../KdsToggleButton/KdsToggleButton.vue\";\n\nimport type { KdsMenuButtonProps } from \"./types\";\n\ndefineOptions({\n inheritAttrs: false,\n});\n\nconst props = withDefaults(defineProps<KdsMenuButtonProps>(), {\n variant: \"outlined\",\n menuMaxHeight: undefined,\n});\n\nconst attrs = useAttrs();\n\nconst emit = defineEmits<{\n /** Emitted when item is clicked */\n itemClick: [id: string];\n}>();\n\nconst toggleButtonProps = computed(() => {\n const { items: _items, menuMaxHeight: _menuMaxHeight, ...rest } = props;\n\n const {\n modelValue: _modelValue,\n \"onUpdate:modelValue\": _onUpdateModelValue,\n ...safeAttrs\n } = attrs;\n\n return { ...safeAttrs, ...rest };\n});\n\nconst isMenuOpen = ref<boolean>(false);\nconst popoverEl = useTemplateRef(\"popoverEl\");\nconst listContainerEl = useTemplateRef(\"listContainerEl\");\n\nconst menuId = useId();\n\nconst maxHeightStyle = computed<StyleValue>(() => {\n if (!props.menuMaxHeight) {\n return {};\n }\n\n return {\n maxHeight: props.menuMaxHeight,\n overflowY: \"auto\",\n };\n});\n\nconst onItemClick = (itemId: string) => {\n isMenuOpen.value = false;\n emit(\"itemClick\", itemId);\n};\n</script>\n\n<template>\n <KdsToggleButton\n v-model=\"isMenuOpen\"\n v-bind=\"toggleButtonProps\"\n aria-haspopup=\"menu\"\n :aria-expanded=\"isMenuOpen\"\n :aria-controls=\"menuId\"\n :style=\"popoverEl?.anchorStyle\"\n @focus=\"listContainerEl?.handleFocus\"\n @keydown=\"listContainerEl?.handleKeydown\"\n @blur=\"isMenuOpen = false\"\n />\n\n <KdsPopover\n ref=\"popoverEl\"\n v-model=\"isMenuOpen\"\n placement=\"bottom-left\"\n popover-aria-label=\"Menu\"\n >\n <div class=\"kds-menu-container\" :style=\"maxHeightStyle\">\n <KdsListContainer\n :id=\"menuId\"\n ref=\"listContainerEl\"\n :possible-values=\"items\"\n empty-text=\"Menu is empty\"\n aria-label=\"Actions\"\n role=\"menu\"\n controlled-externally\n @item-click=\"onItemClick\"\n />\n </div>\n </KdsPopover>\n</template>\n\n<style scoped>\n.kds-menu-container {\n max-width: var(--kds-dimension-component-width-20x);\n background-color: var(--kds-color-surface-default);\n border-radius: var(--kds-border-radius-container-0-50x);\n box-shadow: var(--kds-elevation-level-3);\n}\n</style>\n","export const kdsButtonSize = {\n XSMALL: \"xsmall\",\n SMALL: \"small\",\n MEDIUM: \"medium\",\n LARGE: \"large\",\n} as const;\n\nexport const kdsButtonSizes = Object.values(kdsButtonSize);\n\nexport const kdsButtonVariant = {\n FILLED: \"filled\",\n OUTLINED: \"outlined\",\n TRANSPARENT: \"transparent\",\n} as const;\n\nexport const kdsButtonVariants = Object.values(kdsButtonVariant);\n","<script setup lang=\"ts\">\nimport { defineAsyncComponent, useTemplateRef } from \"vue\";\n\nimport { useKdsIsTruncated } from \"../../util\";\nimport type { KdsLabelProps } from \"../types\";\n\nconst props = withDefaults(defineProps<KdsLabelProps>(), {\n description: undefined,\n showDescriptionButton: false,\n});\n\nconst KdsInfoToggleButton = defineAsyncComponent(\n () => import(\"./InfoPopover/KdsInfoToggleButton.vue\"),\n);\n\nconst labelEl = useTemplateRef(\"labelEl\");\nconst { isTruncated } = useKdsIsTruncated(labelEl);\n</script>\n\n<template>\n <div class=\"kds-label-wrapper\">\n <label\n :id=\"props.id\"\n ref=\"labelEl\"\n :for=\"props.for\"\n class=\"label\"\n :title=\"isTruncated ? props.label : undefined\"\n >\n {{ props.label }}\n </label>\n <KdsInfoToggleButton\n v-if=\"props.description\"\n :content=\"props.description\"\n :hidden=\"!props.showDescriptionButton\"\n />\n </div>\n</template>\n\n<style scoped>\n.kds-label-wrapper {\n display: flex;\n gap: var(--kds-spacing-container-0-12x);\n align-items: center;\n max-width: 100%;\n min-height: var(--kds-dimension-component-height-0-75x);\n padding-bottom: var(--kds-spacing-input-label-spacing-bottom);\n}\n\n.label {\n display: block;\n flex-grow: 1;\n max-width: 100%;\n overflow: hidden;\n text-overflow: ellipsis;\n font: var(--kds-font-base-title-small-strong);\n color: var(--kds-color-text-and-icon-neutral);\n white-space: nowrap;\n}\n</style>\n","<script setup lang=\"ts\">\nimport KdsIcon from \"../../accessories/Icon/KdsIcon.vue\";\nimport KdsLoadingSpinner from \"../../accessories/LoadingSpinner/KdsLoadingSpinner.vue\";\nimport type { KdsSubTextProps } from \"../types\";\n\nconst props = withDefaults(defineProps<KdsSubTextProps>(), {\n error: false,\n validating: false,\n preserveSubTextSpace: false,\n});\n</script>\n\n<template>\n <div\n v-if=\"props.subText || props.preserveSubTextSpace\"\n :id=\"props.id\"\n :class=\"{\n subtext: true,\n error: props.error,\n }\"\n >\n <template v-if=\"props.error && props.subText\">\n <KdsIcon name=\"circle-error\" size=\"small\" aria-label=\"Error\" />\n </template>\n <template v-else-if=\"props.validating && props.subText\">\n <KdsLoadingSpinner size=\"small\" variant=\"onSurface\" aria-hidden=\"true\" />\n </template>\n <span class=\"subtext-text\">{{ props.subText }}</span>\n </div>\n</template>\n\n<style scoped>\n.subtext {\n display: flex;\n gap: var(--kds-spacing-container-0-25x);\n min-height: 1lh;\n margin-top: var(--kds-spacing-container-0-25x);\n font: var(--kds-font-base-subtext-small);\n color: var(--kds-color-text-and-icon-muted);\n\n &.error {\n color: var(--kds-color-text-and-icon-danger);\n }\n\n & .subtext-text {\n min-width: 0;\n }\n}\n</style>\n","<script setup lang=\"ts\">\nimport { computed, useId } from \"vue\";\n\nimport Icon from \"../../accessories/Icon/KdsIcon.vue\";\nimport KdsSubText from \"../_helper/KdsSubText.vue\";\n\nimport type { BaseCheckboxProps, KdsCheckboxValue } from \"./types\";\n\nconst props = withDefaults(defineProps<BaseCheckboxProps>(), {\n disabled: false,\n error: false,\n});\n\nconst modelValue = defineModel<KdsCheckboxValue>({ default: false });\n\nconst helperId = useId();\nconst descriptionId = useId();\n\nconst isChecked = computed(() => modelValue.value === true);\nconst isIndeterminate = computed(() => modelValue.value === \"indeterminate\");\nconst icon = computed(() => {\n if (isChecked.value) {\n return \"checkmark\";\n }\n if (isIndeterminate.value) {\n return \"minus\";\n }\n return null;\n});\n\nconst ariaChecked = computed(() => {\n if (isIndeterminate.value) {\n return \"mixed\";\n }\n return isChecked.value;\n});\n\nconst ariaDescribedBy = computed(() => {\n const ids: string[] = [];\n\n if (props.helperText) {\n ids.push(helperId);\n }\n\n if (props.subText) {\n ids.push(descriptionId);\n }\n\n return ids.length > 0 ? ids.join(\" \") : undefined;\n});\n\nconst handleClick = () => {\n if (props.disabled) {\n return;\n }\n\n modelValue.value = isIndeterminate.value ? true : !isChecked.value;\n};\n</script>\n\n<template>\n <div>\n <button\n :class=\"{\n checkbox: true,\n checked: isChecked,\n indeterminate: isIndeterminate,\n disabled: props.disabled,\n error: props.error,\n }\"\n :disabled=\"props.disabled\"\n :title=\"props.title\"\n :aria-label=\"props.title\"\n :aria-checked=\"ariaChecked\"\n :aria-describedby=\"ariaDescribedBy\"\n :aria-invalid=\"props.error\"\n type=\"button\"\n role=\"checkbox\"\n @click=\"handleClick\"\n >\n <div class=\"control\">\n <Icon v-if=\"icon\" :name=\"icon\" class=\"icon\" size=\"xsmall\" />\n </div>\n <div v-if=\"props.label || props.helperText\" class=\"content\">\n <div class=\"label\">{{ props.label }}</div>\n <div v-if=\"props.helperText\" :id=\"helperId\" class=\"helper-text\">\n {{ props.helperText }}\n </div>\n </div>\n </button>\n <div\n v-if=\"props.subText || props.preserveSubTextSpace\"\n class=\"subtext-wrapper\"\n >\n <KdsSubText\n :id=\"descriptionId\"\n :sub-text=\"props.subText\"\n :preserve-sub-text-space=\"props.preserveSubTextSpace\"\n :error=\"props.error\"\n />\n </div>\n </div>\n</template>\n\n<style scoped>\n.checkbox {\n --bg-initial: var(--kds-color-background-input-initial);\n --bg-hover: var(--kds-color-background-input-hover);\n --bg-active: var(--kds-color-background-input-active);\n --border: var(--kds-border-action-input);\n --icon-color: var(--kds-color-text-and-icon-selected);\n --text-color: var(--kds-color-text-and-icon-neutral);\n --helper-text-color: var(--kds-color-text-and-icon-muted);\n\n display: flex;\n gap: var(--kds-spacing-container-0-37x);\n align-items: flex-start;\n padding: 0;\n margin: 0;\n text-align: left;\n cursor: pointer;\n outline: none;\n background: none;\n border: none;\n\n .control {\n position: relative;\n display: flex;\n flex-shrink: 0;\n align-items: center;\n justify-content: center;\n width: var(--kds-dimension-component-height-0-88x);\n height: var(--kds-dimension-component-height-0-88x);\n color: var(--icon-color);\n background: var(--bg-initial);\n border: var(--border);\n border-radius: var(--kds-border-radius-container-0-25x);\n }\n\n &:focus-visible .control {\n outline: var(--kds-border-action-focused);\n outline-offset: var(--kds-spacing-offset-focus);\n }\n\n &:hover:not(.disabled) .control {\n background: var(--bg-hover);\n }\n\n &:active:not(.disabled) .control {\n background: var(--bg-active);\n }\n\n &.checked,\n &.indeterminate {\n --bg-initial: var(--kds-color-background-selected-initial);\n --bg-hover: var(--kds-color-background-selected-hover);\n --bg-active: var(--kds-color-background-selected-active);\n --border: var(--kds-border-action-selected);\n }\n\n .content {\n display: flex;\n flex-direction: column;\n gap: var(--kds-spacing-container-0-12x);\n text-rendering: geometricprecision;\n\n & .label {\n font: var(--kds-font-base-interactive-small);\n color: var(--text-color);\n }\n\n & .helper-text {\n font: var(--kds-font-base-subtext-small);\n color: var(--helper-text-color);\n }\n }\n\n &.disabled {\n --border: var(--kds-border-action-disabled);\n --icon-color: var(--kds-color-text-and-icon-disabled);\n --text-color: var(--kds-color-text-and-icon-disabled);\n --helper-text-color: var(--kds-color-text-and-icon-disabled);\n\n cursor: default;\n }\n\n &.error {\n --border: var(--kds-border-action-error);\n --icon-color: var(--kds-color-text-and-icon-danger);\n --text-color: var(--kds-color-text-and-icon-danger);\n --bg-hover: var(--kds-color-background-danger-hover);\n --bg-active: var(--kds-color-background-danger-active);\n\n &.checked,\n &.indeterminate {\n --bg-initial: var(--kds-color-background-danger-initial);\n }\n }\n}\n\n.subtext-wrapper {\n padding-left: calc(\n var(--kds-dimension-component-height-0-88x) +\n var(--kds-spacing-container-0-37x)\n );\n}\n</style>\n","<script setup lang=\"ts\">\nimport BaseCheckbox from \"./BaseCheckbox.vue\";\nimport type { KdsCheckboxProps, KdsCheckboxValue } from \"./types\";\n\nconst props = withDefaults(defineProps<KdsCheckboxProps>(), {\n disabled: false,\n error: false,\n preserveSubTextSpace: false,\n});\n\nconst modelValue = defineModel<KdsCheckboxValue>({ default: false });\n</script>\n\n<template>\n <BaseCheckbox\n v-model=\"modelValue\"\n :disabled=\"props.disabled\"\n :error=\"props.error\"\n :label=\"props.label\"\n :title=\"props.title\"\n :sub-text=\"props.subText\"\n :preserve-sub-text-space=\"props.preserveSubTextSpace\"\n />\n</template>\n","<script lang=\"ts\" setup>\nimport { computed, useId } from \"vue\";\n\nimport KdsLabel from \"../_helper/KdsLabel.vue\";\nimport KdsSubText from \"../_helper/KdsSubText.vue\";\n\nimport BaseCheckbox from \"./BaseCheckbox.vue\";\nimport type {\n KdsCheckboxGroupOption,\n KdsCheckboxGroupProps,\n KdsCheckboxValue,\n} from \"./types\";\n\nconst props = withDefaults(defineProps<KdsCheckboxGroupProps>(), {\n disabled: false,\n error: false,\n alignment: \"vertical\",\n});\n\nconst modelValue = defineModel<string[]>({ default: [] });\n\nconst possibleValues = computed(\n () =>\n props.possibleValues.map((o) => {\n if (typeof o === \"string\") {\n return { text: o, id: o };\n }\n return o;\n }) satisfies KdsCheckboxGroupOption[],\n);\n\nconst labelId = useId();\nconst descriptionId = useId();\n\nconst isOptionDisabled = (index: number) =>\n props.disabled || possibleValues.value[index]?.disabled === true;\n\nconst isHorizontal = computed(() => props.alignment === \"horizontal\");\n\nconst hasError = computed(\n () => props.error || possibleValues.value.some((o) => o.error),\n);\n\nconst isChecked = (id: string) => modelValue.value.includes(id);\n\nconst handleCheckboxChange = (index: number, checked: KdsCheckboxValue) => {\n if (isOptionDisabled(index)) {\n return;\n }\n const option = possibleValues.value[index];\n\n if (checked === true) {\n modelValue.value = [...modelValue.value, option.id];\n return;\n }\n\n modelValue.value = modelValue.value.filter((v) => v !== option.id);\n};\n</script>\n\n<template>\n <div\n :id=\"props.id\"\n class=\"checkbox-group\"\n role=\"group\"\n :aria-labelledby=\"props.label ? labelId : undefined\"\n :aria-describedby=\"props.subText ? descriptionId : undefined\"\n >\n <KdsLabel v-if=\"props.label\" :id=\"labelId\" :label=\"props.label\" />\n\n <div :class=\"{ options: true, horizontal: isHorizontal }\">\n <div\n v-for=\"(option, index) in possibleValues\"\n :key=\"option.id\"\n class=\"option\"\n >\n <BaseCheckbox\n :disabled=\"props.disabled || option.disabled\"\n :error=\"option.error\"\n :helper-text=\"option.helperText\"\n :label=\"option.text\"\n :model-value=\"isChecked(option.id)\"\n @update:model-value=\"\n (checked: KdsCheckboxValue) => handleCheckboxChange(index, checked)\n \"\n />\n </div>\n </div>\n\n <KdsSubText\n :id=\"descriptionId\"\n :sub-text=\"props.subText\"\n :preserve-sub-text-space=\"props.preserveSubTextSpace\"\n :error=\"hasError\"\n />\n </div>\n</template>\n\n<style scoped>\n.checkbox-group {\n padding: 0;\n margin: 0;\n border: none;\n}\n\n.options {\n display: flex;\n flex-direction: column;\n gap: var(--kds-spacing-container-0-5x) var(--kds-spacing-container-0-75x);\n}\n\n.options.horizontal {\n flex-flow: row wrap;\n align-items: flex-start;\n}\n</style>\n","export const kdsCheckboxGroupAlignment = {\n VERTICAL: \"vertical\",\n HORIZONTAL: \"horizontal\",\n} as const;\n\nexport const kdsCheckboxGroupAlignments = Object.values(\n kdsCheckboxGroupAlignment,\n);\n\nexport const kdsCheckboxValue = {\n CHECKED: true,\n UNCHECKED: false,\n INDETERMINATE: \"indeterminate\",\n} as const;\n\nexport const kdsCheckboxValues = Object.values(kdsCheckboxValue);\n","<script lang=\"ts\" setup>\nimport { useId } from \"vue\";\n\nimport type { KdsRadioButtonProps } from \"./types.ts\";\n\nconst props = withDefaults(defineProps<KdsRadioButtonProps>(), {\n disabled: false,\n error: false,\n});\n\nconst modelValue = defineModel<boolean>({ default: false });\n\nconst id = useId();\n\nconst handleClick = () => {\n if (props.disabled) {\n return;\n }\n // Radio buttons do not toggle off when clicked; they only set to selected\n if (!modelValue.value) {\n modelValue.value = true;\n }\n};\n</script>\n\n<template>\n <button\n :aria-checked=\"modelValue\"\n :aria-describedby=\"props.helperText ? `${id}-helper` : undefined\"\n :aria-invalid=\"props.error\"\n :class=\"{\n radio: true,\n selected: modelValue,\n disabled: props.disabled,\n error: props.error,\n }\"\n :disabled=\"props.disabled\"\n role=\"radio\"\n type=\"button\"\n @click=\"handleClick\"\n >\n <div class=\"control\">\n <svg\n v-if=\"modelValue\"\n class=\"dot\"\n viewBox=\"0 0 2 2\"\n aria-hidden=\"true\"\n focusable=\"false\"\n >\n <circle cx=\"1\" cy=\"1\" r=\"1\" />\n </svg>\n </div>\n <div class=\"content\">\n <div class=\"label\">{{ props.text }}</div>\n <div v-if=\"props.helperText\" :id=\"`${id}-helper`\" class=\"helper-text\">\n {{ props.helperText }}\n </div>\n </div>\n </button>\n</template>\n\n<style scoped>\n.radio {\n --bg-initial: var(--kds-color-background-input-initial);\n --bg-hover: var(--kds-color-background-input-hover);\n --bg-active: var(--kds-color-background-input-active);\n --border: var(--kds-border-action-input);\n --dot-color: var(--kds-color-text-and-icon-selected);\n --text-color: var(--kds-color-text-and-icon-neutral);\n --helper-text-color: var(--kds-color-text-and-icon-muted);\n\n display: flex;\n gap: var(--kds-spacing-container-0-37x);\n align-items: flex-start;\n padding: 0;\n margin: 0;\n text-align: left;\n cursor: pointer;\n outline: none;\n background: none;\n border: none;\n\n .control {\n position: relative;\n display: flex;\n flex-shrink: 0;\n align-items: center;\n justify-content: center;\n width: var(--kds-dimension-component-height-0-88x);\n height: var(--kds-dimension-component-height-0-88x);\n background: var(--bg-initial);\n border: var(--border);\n border-radius: 50%;\n }\n\n .control .dot {\n display: block;\n flex-shrink: 0;\n width: 100%;\n height: 100%;\n }\n\n .control .dot circle {\n fill: var(--dot-color);\n transform: scale(0.5);\n transform-origin: center;\n transform-box: fill-box;\n }\n\n &:focus-visible .control {\n outline: var(--kds-border-action-focused);\n outline-offset: var(--kds-spacing-offset-focus);\n }\n\n &:hover:not(.disabled) .control {\n background: var(--bg-hover);\n }\n\n &:active:not(.disabled) .control {\n background: var(--bg-active);\n }\n\n &.selected {\n --border: var(--kds-border-action-selected);\n --bg-initial: var(--kds-color-background-selected-initial);\n --bg-hover: var(--kds-color-background-selected-hover);\n --bg-active: var(--kds-color-background-selected-active);\n }\n\n .content {\n display: flex;\n flex-direction: column;\n gap: var(--kds-spacing-container-0-25x);\n\n & .label {\n font: var(--kds-font-base-interactive-small);\n color: var(--text-color);\n }\n\n & .helper-text {\n font: var(--kds-font-base-subtext-small);\n color: var(--helper-text-color);\n }\n }\n\n &.disabled {\n --bg-initial: var(--kds-color-background-input-initial);\n --border: var(--kds-border-action-disabled);\n --dot-color: var(--kds-color-text-and-icon-disabled);\n --text-color: var(--kds-color-text-and-icon-disabled);\n --helper-text-color: var(--kds-color-text-and-icon-disabled);\n\n cursor: default;\n }\n\n &.error {\n --bg-hover: var(--kds-color-background-danger-hover);\n --bg-active: var(--kds-color-background-danger-active);\n --border: var(--kds-border-action-error);\n --dot-color: var(--kds-color-text-and-icon-danger);\n --text-color: var(--kds-color-text-and-icon-danger);\n\n &.selected {\n --bg-initial: var(--kds-color-background-danger-initial);\n --border: var(--kds-border-action-error);\n }\n }\n}\n</style>\n","import type { Ref } from \"vue\";\nimport { computed } from \"vue\";\n\ntype KdsIndexSelectionOption = {\n id: string;\n disabled?: boolean;\n error?: boolean;\n [x: string]: unknown;\n};\n\nexport const useRadioSelection = ({\n selectedId,\n options,\n globalDisable,\n globalError,\n optionContainer,\n}: {\n selectedId: Ref<string | undefined>;\n options: Ref<readonly KdsIndexSelectionOption[]>;\n globalDisable?: Ref<boolean>;\n globalError?: Ref<boolean>;\n optionContainer?: Ref<HTMLElement | null>;\n}) => {\n const focusOptionAtIndex = (index: number) => {\n const radios = optionContainer?.value?.querySelectorAll<HTMLButtonElement>(\n 'button[role=\"radio\"]',\n );\n radios?.[index]?.focus();\n };\n\n const isIndexDisabled = (index: number) =>\n globalDisable?.value || options.value[index]?.disabled === true;\n\n const hasError = computed(\n () => globalError?.value || options.value.some((o) => o.error),\n );\n\n const selectedIndex = computed(() =>\n options.value.findIndex((o) => o.id === selectedId.value),\n );\n\n const firstEnabledIndex = computed(() =>\n options.value.findIndex((_, index) => !isIndexDisabled(index)),\n );\n\n const tabIndexForOption = (index: number) => {\n if (isIndexDisabled(index)) {\n return undefined;\n }\n\n if (selectedIndex.value >= 0) {\n return selectedIndex.value === index ? 0 : -1;\n }\n\n return firstEnabledIndex.value === index ? 0 : -1;\n };\n\n const selectIndex = (index: number) => {\n if (isIndexDisabled(index)) {\n return;\n }\n\n selectedId.value = options.value[index]?.id;\n };\n\n const nextEnabledIndex = (startIndex: number, direction: 1 | -1) => {\n const total = options.value.length;\n if (total === 0) {\n return -1;\n }\n\n let index = startIndex;\n for (let i = 0; i < total; i++) {\n index = (index + direction + total) % total;\n if (!isIndexDisabled(index)) {\n return index;\n }\n }\n\n return -1;\n };\n\n const moveSelection = (currentIndex: number, direction: 1 | -1) => {\n const nextIndex = nextEnabledIndex(currentIndex, direction);\n\n if (nextIndex < 0) {\n return;\n }\n\n selectIndex(nextIndex);\n focusOptionAtIndex(nextIndex);\n };\n\n const goToFirstEnabled = () => {\n const nextIndex = firstEnabledIndex.value;\n if (nextIndex < 0) {\n return;\n }\n\n selectIndex(nextIndex);\n focusOptionAtIndex(nextIndex);\n };\n\n const goToLastEnabled = () => {\n for (let i = options.value.length - 1; i >= 0; i--) {\n if (!isIndexDisabled(i)) {\n selectIndex(i);\n focusOptionAtIndex(i);\n break;\n }\n }\n };\n\n const handleKeyDown = (event: KeyboardEvent, currentIndex: number) => {\n if (globalDisable?.value) {\n return;\n }\n\n switch (event.key) {\n case \"ArrowDown\":\n case \"ArrowRight\": {\n event.preventDefault();\n moveSelection(currentIndex, 1);\n return;\n }\n\n case \"ArrowUp\":\n case \"ArrowLeft\": {\n event.preventDefault();\n moveSelection(currentIndex, -1);\n return;\n }\n\n case \"Home\": {\n event.preventDefault();\n goToFirstEnabled();\n return;\n }\n\n case \"End\": {\n event.preventDefault();\n goToLastEnabled();\n return;\n }\n\n case \" \":\n case \"Enter\": {\n event.preventDefault();\n selectIndex(currentIndex);\n }\n }\n };\n\n return {\n hasError,\n selectedIndex,\n tabIndexForOption,\n handleClick: selectIndex,\n handleKeyDown,\n };\n};\n","<script lang=\"ts\" setup>\nimport { computed, useId, useTemplateRef } from \"vue\";\n\nimport KdsLabel from \"../_helper/KdsLabel.vue\";\nimport KdsSubText from \"../_helper/KdsSubText.vue\";\n\nimport KdsRadioButton from \"./KdsRadioButton.vue\";\nimport type {\n KdsRadioButtonGroupOption,\n KdsRadioButtonGroupProps,\n} from \"./types\";\nimport { useRadioSelection } from \"./useRadioSelection\";\n\nconst props = withDefaults(defineProps<KdsRadioButtonGroupProps>(), {\n disabled: false,\n alignment: \"vertical\",\n});\n\nconst modelValue = defineModel<string>();\n\nconst options = computed(\n () =>\n props.possibleValues.map((o) => {\n if (typeof o === \"string\") {\n return { text: o, id: o };\n }\n return o;\n }) satisfies KdsRadioButtonGroupOption[],\n);\n\nconst labelId = useId();\nconst descriptionId = useId();\nconst groupName = useId();\n\nconst optionContainer = useTemplateRef(\"optionContainer\");\n\nconst { tabIndexForOption, handleClick, handleKeyDown, hasError } =\n useRadioSelection({\n selectedId: modelValue,\n options,\n globalDisable: computed(() => props.disabled),\n optionContainer,\n });\n</script>\n\n<template>\n <div\n :id=\"props.id\"\n class=\"radio-button-group\"\n role=\"radiogroup\"\n :aria-labelledby=\"props.label ? labelId : undefined\"\n :aria-describedby=\"props.subText ? descriptionId : undefined\"\n >\n <KdsLabel v-if=\"props.label\" :id=\"labelId\" :label=\"props.label\" />\n\n <div\n ref=\"optionContainer\"\n :class=\"{ options: true, horizontal: props.alignment === 'horizontal' }\"\n >\n <div v-for=\"(option, index) in options\" :key=\"option.id\" class=\"option\">\n <KdsRadioButton\n :disabled=\"props.disabled || option.disabled\"\n :error=\"option.error\"\n :helper-text=\"option.helperText\"\n :text=\"option.text\"\n :model-value=\"modelValue === option.id\"\n :tabindex=\"tabIndexForOption(index)\"\n :name=\"groupName\"\n @keydown=\"(e: KeyboardEvent) => handleKeyDown(e, index)\"\n @update:model-value=\"() => handleClick(index)\"\n />\n </div>\n </div>\n\n <KdsSubText\n :id=\"descriptionId\"\n :sub-text=\"props.subText\"\n :preserve-sub-text-space=\"props.preserveSubTextSpace\"\n :error=\"hasError\"\n />\n </div>\n</template>\n\n<style scoped>\n.radio-button-group {\n padding: 0;\n margin: 0;\n border: none;\n}\n\n.options {\n display: flex;\n flex-direction: column;\n gap: var(--kds-spacing-container-0-5x) var(--kds-spacing-container-0-75x);\n}\n\n.options.horizontal {\n flex-flow: row wrap;\n align-items: flex-start;\n}\n</style>\n","<script setup lang=\"ts\">\nimport { useTemplateRef } from \"vue\";\n\nimport KdsIcon from \"../../accessories/Icon/KdsIcon.vue\";\nimport { useKdsIsTruncated } from \"../../util\";\n\nimport type { KdsValueSwitchItemProps } from \"./types\";\n\nconst props = withDefaults(defineProps<KdsValueSwitchItemProps>(), {\n disabled: false,\n size: \"medium\",\n variant: \"default\",\n tabIndex: undefined,\n});\n\nconst optionTextEl = useTemplateRef(\"optionTextEl\");\nconst { isTruncated } = useKdsIsTruncated(optionTextEl);\n</script>\n\n<template>\n <button\n role=\"radio\"\n :aria-checked=\"props.selected\"\n :aria-label=\"props.text ? undefined : props.title\"\n :class=\"{\n option: true,\n selected: props.selected,\n disabled: props.disabled,\n 'variant-muted': props.variant === 'muted',\n 'size-small': props.size === 'small',\n }\"\n :disabled=\"props.disabled\"\n :tabindex=\"props.tabIndex\"\n :title=\"props.title ?? (isTruncated && props.text ? props.text : undefined)\"\n >\n <KdsIcon\n v-if=\"props.leadingIcon && (!props.hideIcons || !props.text)\"\n :name=\"props.leadingIcon\"\n :size=\"props.size\"\n />\n <span v-if=\"props.text\" ref=\"optionTextEl\" class=\"option-label\">\n {{ props.text }}\n </span>\n <KdsIcon\n v-if=\"props.trailingIcon && !props.hideIcons\"\n :name=\"props.trailingIcon\"\n :size=\"props.size\"\n />\n </button>\n</template>\n\n<style scoped>\n.option {\n display: flex;\n flex: 0 1 auto;\n gap: var(--kds-spacing-container-0-25x);\n align-items: center;\n justify-content: center;\n min-width: calc(\n var(--kds-dimension-icon-1x) + (2 * var(--kds-spacing-container-0-37x))\n );\n max-width: 100%;\n height: var(--kds-dimension-component-height-1-5x);\n padding: 0 var(--kds-spacing-container-0-37x);\n font: var(--kds-font-base-interactive-medium-strong);\n color: var(--kds-color-text-and-icon-neutral);\n text-align: center;\n cursor: pointer;\n\n /* variant=default */\n background: var(--kds-color-background-neutral-initial);\n border: var(--kds-border-action-transparent);\n border-radius: var(--kds-border-radius-container-0-25x);\n\n &.size-small {\n height: var(--kds-dimension-component-height-1-25x);\n font: var(--kds-font-base-interactive-small-strong);\n }\n\n &:focus-visible {\n outline: none;\n }\n\n &:hover:not(:disabled) {\n background: var(--kds-color-background-neutral-hover);\n }\n\n &:active:not(:disabled) {\n background: var(--kds-color-background-neutral-active);\n }\n\n &.selected {\n color: var(--kds-color-text-and-icon-selected);\n background: var(--kds-color-background-selected-initial);\n border: var(--kds-border-action-selected);\n\n &:hover:not(:disabled) {\n background: var(--kds-color-background-selected-hover);\n }\n\n &:active:not(:disabled) {\n background: var(--kds-color-background-selected-active);\n }\n\n &.variant-muted {\n color: var(--kds-color-text-and-icon-neutral);\n background: var(--kds-color-background-input-initial);\n\n &:hover:not(:disabled) {\n background: var(--kds-color-background-input-hover);\n }\n\n &:active:not(:disabled) {\n background: var(--kds-color-background-input-active);\n }\n }\n }\n\n &.disabled {\n color: var(--kds-color-text-and-icon-disabled);\n cursor: default;\n }\n\n &.disabled.selected {\n color: var(--kds-color-text-and-icon-disabled);\n border: var(--kds-border-action-disabled);\n }\n}\n\n.option-label {\n min-width: 0;\n padding: 0 var(--kds-spacing-container-0-12x);\n overflow: hidden;\n text-overflow: ellipsis;\n font: inherit;\n white-space: nowrap;\n}\n</style>\n","import type { Ref } from \"vue\";\nimport { nextTick, onBeforeUpdate, ref, watch } from \"vue\";\n\nimport { elementOverflowsHorizontally } from \"../../util/useKdsIsTruncated\";\n\nimport type { KdsValueSwitchOption } from \"./types\";\n/**\n * Computes whether icons in ValueSwitch items should be hidden.\n *\n * Global logic: as soon as at least one text+icon item ellipsizes its label\n * (`scrollWidth > clientWidth`), icons are hidden for all text+icon items.\n * Icon-only items are never affected.\n */\nexport const useValueSwitchIconHiding = ({\n width,\n options,\n}: {\n /**\n * Potentially available width to render options\n */\n width: Ref<number>;\n options: Ref<readonly KdsValueSwitchOption[]>;\n}) => {\n const itemEls = ref(new Map<string, HTMLButtonElement>());\n\n onBeforeUpdate(() => {\n itemEls.value = new Map();\n });\n\n const setItemEl = (id: string, el: unknown) => {\n const elementToRegister =\n el && typeof el === \"object\" && \"$el\" in el\n ? (el as { $el: unknown }).$el\n : el;\n\n if (elementToRegister instanceof HTMLButtonElement) {\n itemEls.value.set(id, elementToRegister);\n }\n };\n\n const shouldHideIcons = ref(false);\n\n const hasLabelEllipsis = (id: string) => {\n const el = itemEls.value.get(id);\n if (!el) {\n return false;\n }\n\n const label = el.querySelector<HTMLElement>(\".option-label\");\n return elementOverflowsHorizontally(label);\n };\n\n const anyOptionHasEllipsis = () =>\n options.value.some((option) => {\n if (!option.text) {\n return false;\n }\n\n if (!option.leadingIcon && !option.trailingIcon) {\n return false;\n }\n\n return hasLabelEllipsis(option.id);\n });\n\n watch(\n () => [width.value, options.value],\n async () => {\n // First pass: try rendering icons\n shouldHideIcons.value = false;\n\n // Second pass: hide icons when width overflowed.\n await nextTick();\n shouldHideIcons.value = anyOptionHasEllipsis();\n },\n {\n immediate: true,\n },\n );\n\n return {\n shouldHideIcons,\n setItemEl,\n };\n};\n","<script lang=\"ts\" setup>\nimport { computed, useId, useTemplateRef } from \"vue\";\nimport { useElementSize } from \"@vueuse/core\";\n\nimport KdsLabel from \"../_helper/KdsLabel.vue\";\nimport KdsSubText from \"../_helper/KdsSubText.vue\";\n\nimport ValueSwitchItem from \"./ValueSwitchItem.vue\";\nimport type { KdsValueSwitchOption, KdsValueSwitchProps } from \"./types\";\nimport { useRadioSelection } from \"./useRadioSelection\";\nimport { useValueSwitchIconHiding } from \"./useValueSwitchIconHiding\";\n\nconst props = withDefaults(defineProps<KdsValueSwitchProps>(), {\n disabled: false,\n size: \"medium\",\n variant: \"default\",\n});\n\nconst modelValue = defineModel<string>();\n\nconst options = computed(\n () =>\n props.possibleValues.map((o) => {\n if (typeof o === \"string\") {\n return { text: o, id: o };\n }\n return o;\n }) satisfies KdsValueSwitchOption[],\n);\n\nconst labelId = useId();\nconst descriptionId = useId();\n\nconst availableWidthContainer = useTemplateRef<HTMLElement>(\n \"availableWidthContainer\",\n);\nconst { width } = useElementSize(availableWidthContainer);\nconst { shouldHideIcons, setItemEl } = useValueSwitchIconHiding({\n width,\n options,\n});\n\nconst optionContainer = useTemplateRef(\"optionContainer\");\nconst { tabIndexForOption, handleClick, handleKeyDown } = useRadioSelection({\n selectedId: modelValue,\n options,\n globalDisable: computed(() => props.disabled),\n optionContainer,\n});\n</script>\n\n<template>\n <div\n :id=\"props.id\"\n ref=\"availableWidthContainer\"\n role=\"radiogroup\"\n :class=\"{\n 'value-switch': true,\n 'size-small': props.size === 'small',\n }\"\n :aria-invalid=\"props.error || undefined\"\n :aria-labelledby=\"props.label ? labelId : undefined\"\n :aria-describedby=\"props.subText ? descriptionId : undefined\"\n >\n <KdsLabel v-if=\"props.label\" :id=\"labelId\" :label=\"props.label\" />\n\n <div ref=\"optionContainer\" :class=\"{ options: true, error: props.error }\">\n <ValueSwitchItem\n v-for=\"(option, index) in options\"\n :key=\"option.id\"\n :ref=\"(el) => setItemEl(option.id, el)\"\n v-bind=\"option\"\n :hide-icons=\"shouldHideIcons\"\n :selected=\"modelValue === option.id\"\n :disabled=\"props.disabled || option.disabled\"\n :size=\"props.size\"\n :variant=\"props.variant\"\n :tab-index=\"tabIndexForOption(index)\"\n :title=\"option.title\"\n @click=\"() => handleClick(index)\"\n @keydown=\"handleKeyDown($event, index)\"\n />\n </div>\n\n <KdsSubText\n :id=\"descriptionId\"\n :sub-text=\"props.subText\"\n :preserve-sub-text-space=\"props.preserveSubTextSpace\"\n :error=\"props.error\"\n />\n </div>\n</template>\n\n<style scoped>\n.value-switch {\n display: flex;\n flex-direction: column;\n align-items: flex-start;\n padding: 0;\n margin: 0;\n border: none;\n}\n\n.options {\n display: flex;\n flex-flow: row nowrap;\n gap: var(--kds-spacing-container-none);\n align-items: flex-start;\n width: fit-content;\n min-width: 0;\n max-width: 100%;\n padding: calc(\n var(--kds-spacing-container-0-12x) - var(--kds-core-border-width-xs)\n );\n overflow: hidden;\n background: var(--kds-color-surface-muted);\n border: var(--kds-border-action-transparent);\n border-radius: var(--kds-border-radius-container-0-37x);\n box-shadow: var(--kds-fake-border-xs-muted);\n\n &:has(:focus-visible) {\n outline: var(--kds-border-action-focused);\n outline-offset: var(--kds-spacing-offset-focus);\n border-radius: var(--kds-border-radius-container-0-44x);\n }\n\n &.error {\n border: var(--kds-border-action-error);\n box-shadow: none;\n }\n}\n</style>\n","export const kdsRadioButtonGroupAlignment = {\n VERTICAL: \"vertical\",\n HORIZONTAL: \"horizontal\",\n} as const;\n\nexport const kdsRadioButtonGroupAlignments = Object.values(\n kdsRadioButtonGroupAlignment,\n);\n\nexport const kdsValueSwitchSize = {\n SMALL: \"small\",\n MEDIUM: \"medium\",\n} as const;\n\nexport const kdsValueSwitchSizes = Object.values(kdsValueSwitchSize);\n\nexport const kdsValueSwitchVariant = {\n DEFAULT: \"default\",\n MUTED: \"muted\",\n} as const;\n\nexport const kdsValueSwitchVariants = Object.values(kdsValueSwitchVariant);\n","<script setup lang=\"ts\">\nimport { computed, ref, useId } from \"vue\";\n\nimport type { KdsSubTextProps } from \"../types\";\n\nimport KdsLabel from \"./KdsLabel.vue\";\nimport KdsSubText from \"./KdsSubText.vue\";\n\ntype KdsFormFieldProps = {\n /**\n * Input id\n */\n id?: string;\n /**\n * Label text\n */\n label?: string;\n /**\n * Aria-label for accessibility when a visible label is not desired\n */\n ariaLabel?: string;\n /**\n * Optional description displayed in an info popover next to the label.\n * The info toggle button is only visible when hovering the input field.\n */\n description?: string;\n} & Omit<KdsSubTextProps, \"id\">;\n\nconst props = defineProps<KdsFormFieldProps>();\n\nconst fallbackId = useId();\nconst inputId = computed(() => props.id?.trim() || fallbackId);\nconst labelId = computed(() => `${inputId.value}-label`);\nconst subTextId = computed(() => `${inputId.value}-subtext`);\n\nconst isHovered = ref(false);\n</script>\n\n<template>\n <div\n class=\"kds-form-field\"\n @mouseenter=\"isHovered = true\"\n @mouseleave=\"isHovered = false\"\n >\n <KdsLabel\n v-if=\"props.label\"\n :id=\"labelId\"\n :for=\"inputId\"\n :label=\"props.label\"\n :description=\"props.description\"\n :show-description-button=\"isHovered\"\n />\n <slot\n :id=\"inputId\"\n :aria-labelledby=\"props.label ? labelId : undefined\"\n :aria-describedby=\"props.subText ? subTextId : undefined\"\n :aria-label=\"props.label ? undefined : props.ariaLabel\"\n :aria-invalid=\"props.error\"\n />\n <KdsSubText\n :id=\"subTextId\"\n :sub-text=\"props.subText\"\n :error=\"props.error\"\n :validating=\"props.validating\"\n :preserve-sub-text-space=\"props.preserveSubTextSpace\"\n />\n </div>\n</template>\n\n<style scoped>\n.kds-form-field {\n display: flex;\n flex-direction: column;\n}\n</style>\n","<script setup lang=\"ts\">\nimport { computed, useTemplateRef } from \"vue\";\n\nimport KdsIcon from \"../../accessories/Icon/KdsIcon.vue\";\nimport type { KdsIconName } from \"../../accessories/Icon/types\";\nimport KdsButton from \"../../buttons/KdsButton/KdsButton.vue\";\n\ntype BaseInputProps = {\n /**\n * ID for the input element\n */\n id?: string;\n /**\n * The type of input field\n */\n type?: \"text\" | \"email\" | \"password\" | \"number\" | \"tel\" | \"url\" | \"search\";\n /**\n * Minimum allowed value (relevant for type=\"number\" and type=\"date\")\n */\n min?: number | string;\n /**\n * Maximum allowed value (relevant for type=\"number\" and type=\"date\")\n */\n max?: number | string;\n /**\n * Step size (relevant for type=\"number\")\n */\n step?: number;\n /**\n * Placeholder text when input is empty\n */\n placeholder?: string;\n /**\n * Whether the input is disabled\n */\n disabled?: boolean;\n /**\n * Icon displayed at the start of the input\n */\n leadingIcon?: KdsIconName;\n /**\n * Icon displayed at the end of the input\n */\n trailingIcon?: KdsIconName;\n /**\n * Whether the input has an error state\n */\n error?: boolean;\n /**\n * Autocomplete attribute for the input element\n */\n autocomplete?: string;\n /**\n * Accessible label for the input (for aria-label).\n */\n ariaLabel?: string;\n /**\n * ID of element that labels this input (for aria-labelledby)\n */\n ariaLabelledby?: string;\n /**\n * ID of element that describes this input (for aria-describedby)\n */\n ariaDescribedby?: string;\n /**\n * Whether the current value of the input is invalid (for aria-invalid)\n */\n ariaInvalid?: boolean;\n\n /**\n * ARIA role override applied to the input element.\n * Useful to preserve semantics for custom controls.\n */\n role?: string;\n /**\n * Current value for widgets like role=\"spinbutton\".\n */\n ariaValuenow?: number;\n /**\n * Minimum value for widgets like role=\"spinbutton\".\n */\n ariaValuemin?: number;\n /**\n * Maximum value for widgets like role=\"spinbutton\".\n */\n ariaValuemax?: number;\n /**\n * Human-readable value text (e.g. localized) for widgets like role=\"spinbutton\".\n */\n ariaValuetext?: string;\n /**\n * ID of the currently active descendant element (for aria-activedescendant).\n * Used when the input controls an external listbox or similar widget.\n */\n ariaActivedescendant?: string;\n /**\n * Unit shown next to the input value\n */\n unit?: string;\n /**\n * Hints at the type of data that might be entered by the user.\n * Useful for showing an appropriate on-screen keyboard on mobile.\n */\n inputmode?:\n | \"none\"\n | \"text\"\n | \"tel\"\n | \"url\"\n | \"email\"\n | \"numeric\"\n | \"decimal\"\n | \"search\";\n /**\n * Whether to show a clear button when the input has a value.\n */\n clearable?: boolean;\n /**\n * Pattern attribute for the input element, used for client-side validation\n * of text inputs. Should be a valid regular expression.\n */\n pattern?: string;\n};\n\nconst props = withDefaults(defineProps<BaseInputProps>(), {\n id: undefined,\n type: \"text\",\n min: undefined,\n max: undefined,\n step: undefined,\n placeholder: undefined,\n disabled: false,\n leadingIcon: undefined,\n trailingIcon: undefined,\n error: false,\n autocomplete: undefined,\n ariaLabel: undefined,\n ariaLabelledby: undefined,\n ariaDescribedby: undefined,\n ariaInvalid: undefined,\n role: undefined,\n ariaValuenow: undefined,\n ariaValuemin: undefined,\n ariaValuemax: undefined,\n ariaValuetext: undefined,\n ariaActivedescendant: undefined,\n unit: undefined,\n inputmode: undefined,\n clearable: false,\n pattern: undefined,\n});\n\ntype BaseInputEmits = {\n /** Native focus event forwarded from the input element. */\n focus: [event: FocusEvent];\n /** Native blur event forwarded from the input element. */\n blur: [event: FocusEvent];\n /** Native keydown event forwarded from the input element. */\n keydown: [event: KeyboardEvent];\n /** Native input event forwarded from the input element. */\n input: [event: Event];\n /** Native click event forwarded from the input element. */\n click: [event: MouseEvent];\n};\n\nconst emit = defineEmits<BaseInputEmits>();\n\nconst modelValue = defineModel<string>({ default: \"\" });\n\nconst inputRef = useTemplateRef(\"input\");\n\nconst hasValue = computed(() => modelValue.value.length > 0);\n\nconst showUnitPlaceholder = computed(\n () => Boolean(props.unit) && modelValue.value.trim().length === 0,\n);\n\nconst handleInput = (event: Event) => {\n const target = event.target as HTMLInputElement;\n modelValue.value = target.value;\n\n emit(\"input\", event);\n};\n\nconst focusInput = () => {\n inputRef.value?.focus();\n};\n\nconst clearAndFocusInput = () => {\n modelValue.value = \"\";\n focusInput();\n};\n\nconst handleContainerClick = (event: MouseEvent) => {\n if (event.clientX === 0 && event.clientY === 0) {\n // Keyboard-initiated click (e.g. Enter/Space on a focused button)\n return;\n }\n\n focusInput();\n};\n\ndefineExpose({\n /**\n * Focuses the input element\n */\n focus: focusInput,\n});\n</script>\n\n<template>\n <div\n :class=\"{\n container: true,\n error: props.error,\n disabled: props.disabled,\n }\"\n @click=\"handleContainerClick\"\n >\n <div v-if=\"props.leadingIcon\" class=\"icon-wrapper leading\">\n <KdsIcon v-if=\"props.leadingIcon\" :name=\"props.leadingIcon\" />\n </div>\n\n <div v-if=\"$slots.leading\" class=\"leading-slot\">\n <slot name=\"leading\" />\n </div>\n\n <input\n :id=\"props.id\"\n ref=\"input\"\n :value=\"modelValue\"\n :type=\"props.type\"\n :inputmode=\"props.inputmode\"\n :placeholder=\"props.placeholder\"\n :disabled=\"props.disabled\"\n :autocomplete=\"props.autocomplete\"\n :min=\"props.min\"\n :max=\"props.max\"\n :step=\"props.step\"\n :aria-label=\"props.ariaLabel\"\n :aria-labelledby=\"props.ariaLabelledby\"\n :aria-describedby=\"props.ariaDescribedby\"\n :aria-invalid=\"props.ariaInvalid\"\n :role=\"props.role\"\n :pattern=\"props.pattern\"\n :aria-valuenow=\"props.ariaValuenow\"\n :aria-valuemin=\"props.ariaValuemin\"\n :aria-valuemax=\"props.ariaValuemax\"\n :aria-valuetext=\"props.ariaValuetext\"\n :aria-activedescendant=\"props.ariaActivedescendant\"\n :class=\"{ 'input-field': true, 'has-value': hasValue }\"\n @input=\"handleInput\"\n @focus=\"emit('focus', $event)\"\n @blur=\"emit('blur', $event)\"\n @keydown=\"emit('keydown', $event)\"\n @click=\"emit('click', $event)\"\n />\n\n <span\n v-if=\"props.unit\"\n :class=\"{\n unit: true,\n placeholder: showUnitPlaceholder,\n disabled: props.disabled,\n }\"\n :aria-disabled=\"props.disabled || undefined\"\n >\n {{ props.unit }}\n </span>\n\n <KdsButton\n v-if=\"props.clearable && hasValue && !props.disabled\"\n class=\"clear-button\"\n type=\"button\"\n size=\"xsmall\"\n variant=\"transparent\"\n leading-icon=\"x-close\"\n aria-label=\"Clear\"\n title=\"Clear\"\n @click.stop=\"clearAndFocusInput\"\n />\n\n <div v-if=\"$slots.trailing\" class=\"trailing-slot\">\n <slot name=\"trailing\" />\n </div>\n\n <div v-if=\"props.trailingIcon\" class=\"icon-wrapper trailing\">\n <KdsIcon :name=\"props.trailingIcon\" />\n </div>\n </div>\n</template>\n\n<style scoped>\n.container {\n display: flex;\n align-items: center;\n width: 100%;\n height: var(--kds-dimension-component-height-1-75x);\n padding: 0\n calc(var(--kds-spacing-container-0-25x) - var(--kds-core-border-width-xs));\n cursor: text;\n background: var(--kds-color-background-input-initial);\n border: var(--kds-border-action-input);\n border-radius: var(--kds-border-radius-container-0-37x);\n\n &:has(input:focus:not(:disabled)) {\n outline: var(--kds-border-action-focused);\n outline-offset: var(--kds-spacing-offset-focus);\n }\n\n &:has(.input-field:hover:not(:disabled, :focus)) {\n background: var(--kds-color-background-input-hover);\n }\n\n &.error {\n border: var(--kds-border-action-error);\n }\n\n &.disabled {\n cursor: default;\n border: var(--kds-border-action-disabled);\n border-color: var(--kds-color-border-disabled);\n }\n}\n\n.icon-wrapper {\n display: flex;\n flex-shrink: 0;\n align-items: center;\n color: var(--kds-color-text-and-icon-subtle);\n\n &.leading {\n padding-left: var(--kds-spacing-container-0-12x);\n }\n\n &.trailing {\n padding-right: var(--kds-spacing-container-0-12x);\n }\n\n .container.disabled & {\n color: var(--kds-color-text-and-icon-disabled);\n cursor: default;\n }\n\n .container:focus-within &,\n .container:has(.input-field.has-value) & {\n color: var(--kds-color-text-and-icon-neutral);\n }\n}\n\n.input-field {\n flex: 1 0 0;\n min-width: 0;\n height: var(--kds-dimension-component-height-1-75x);\n padding: var(--kds-spacing-container-0-25x);\n overflow: hidden;\n text-overflow: ellipsis;\n font: var(--kds-font-base-body-small);\n color: var(--kds-color-text-and-icon-neutral);\n white-space: nowrap;\n outline: none;\n background: transparent;\n border: none;\n\n /* hide native steppers, we provide our own in NumberInput */\n &[type=\"number\"] {\n appearance: textfield;\n\n &::-webkit-outer-spin-button,\n &::-webkit-inner-spin-button {\n margin: 0;\n appearance: none;\n }\n }\n\n /* hide native search cancel button on Safari/WebKit, we provide our own clearable button */\n &[type=\"search\"]::-webkit-search-cancel-button {\n appearance: none;\n }\n\n &::placeholder {\n color: var(--kds-color-text-and-icon-subtle);\n }\n\n &:disabled {\n color: var(--kds-color-text-and-icon-disabled);\n cursor: default;\n\n &::placeholder {\n color: var(--kds-color-text-and-icon-disabled);\n }\n }\n}\n\n.unit {\n flex-shrink: 0;\n min-width: 0;\n margin: 0 var(--kds-spacing-container-0-12x);\n overflow: hidden;\n text-overflow: ellipsis;\n font: var(--kds-font-base-body-small);\n color: var(--kds-color-text-and-icon-neutral);\n white-space: nowrap;\n\n &.placeholder {\n color: var(--kds-color-text-and-icon-subtle);\n }\n\n &.disabled {\n color: var(--kds-color-text-and-icon-disabled);\n }\n\n .container:focus-within & {\n color: var(--kds-color-text-and-icon-neutral);\n }\n}\n\n.clear-button {\n margin-left: var(--kds-spacing-container-0-12x);\n}\n\n.leading-slot {\n display: flex;\n flex-shrink: 0;\n gap: var(--kds-spacing-container-0-12x);\n align-items: center;\n}\n\n.trailing-slot {\n display: flex;\n flex-shrink: 0;\n gap: var(--kds-spacing-container-0-12x);\n align-items: center;\n margin-left: var(--kds-spacing-container-0-12x);\n}\n</style>\n","<script setup lang=\"ts\">\nimport { useTemplateRef } from \"vue\";\n\nimport BaseFormFieldWrapper from \"../../_helper/BaseFormFieldWrapper.vue\";\nimport type { KdsFormFieldExpose } from \"../../types.ts\";\nimport BaseInput from \"../BaseInput.vue\";\n\nimport type { KdsTextInputProps } from \"./types\";\n\nconst props = withDefaults(defineProps<KdsTextInputProps>(), {\n disabled: false,\n error: false,\n validating: false,\n preserveSubTextSpace: false,\n});\n\nconst modelValue = defineModel<string>({ default: \"\" });\n\nconst baseInput = useTemplateRef(\"baseInput\");\n\ndefineExpose<KdsFormFieldExpose>({\n focus: () => baseInput.value?.focus(),\n});\n</script>\n\n<template>\n <BaseFormFieldWrapper v-bind=\"props\">\n <template #default=\"slotProps\">\n <BaseInput\n ref=\"baseInput\"\n v-bind=\"slotProps\"\n v-model=\"modelValue\"\n type=\"text\"\n :placeholder=\"props.placeholder\"\n :disabled=\"props.disabled\"\n :error=\"props.error\"\n :autocomplete=\"props.autocomplete\"\n />\n </template>\n </BaseFormFieldWrapper>\n</template>\n","export type KdsRgbColor = {\n r: number;\n g: number;\n b: number;\n};\n\nexport type KdsHsvColor = {\n /** Hue in degrees [0..360) */\n h: number;\n /** Saturation [0..1] */\n s: number;\n /** Value [0..1] */\n v: number;\n};\n\nconst HEX_RADIX = 16;\n\nconst RGB_MAX = 255;\n\nconst HUE_MAX_DEG = 360;\nconst HUE_SECTOR_DEG = 60;\nconst HUE_SECTOR_COUNT = 6;\n\nconst HUE_OFFSET_FOR_MAX_G = 2;\nconst HUE_OFFSET_FOR_MAX_B = 4;\n\nconst HUE_SECTOR_INDEX_2 = 2;\nconst HUE_SECTOR_INDEX_3 = 3;\nconst HUE_SECTOR_INDEX_4 = 4;\nconst HUE_SECTOR_INDEX_5 = 5;\n\nconst HEX_PAIR_LENGTH = 2;\nconst HEX_RED_START = 1;\nconst HEX_GREEN_START = HEX_RED_START + HEX_PAIR_LENGTH;\nconst HEX_BLUE_START = HEX_GREEN_START + HEX_PAIR_LENGTH;\n\nexport const clamp = (value: number, min: number, max: number) =>\n Math.min(max, Math.max(min, value));\n\nconst round = (value: number) => Math.round(value);\n\nconst padHex = (value: number) => value.toString(HEX_RADIX).padStart(2, \"0\");\n\nexport const normalizeHexColor = (value: string): string | null => {\n const trimmed = value.trim();\n if (trimmed.length === 0) {\n return null;\n }\n\n const withoutHash = trimmed.startsWith(\"#\") ? trimmed.slice(1) : trimmed;\n\n if (/^[0-9a-fA-F]{3}$/.test(withoutHash)) {\n const [r, g, b] = withoutHash.split(\"\") as [string, string, string];\n return `#${r}${r}${g}${g}${b}${b}`.toUpperCase();\n }\n\n if (/^[0-9a-fA-F]{6}$/.test(withoutHash)) {\n return `#${withoutHash}`.toUpperCase();\n }\n\n return null;\n};\n\nexport const hexToRgb = (hex: string): KdsRgbColor | null => {\n const normalized = normalizeHexColor(hex);\n if (!normalized) {\n return null;\n }\n\n const r = Number.parseInt(\n normalized.slice(HEX_RED_START, HEX_RED_START + HEX_PAIR_LENGTH),\n HEX_RADIX,\n );\n const g = Number.parseInt(\n normalized.slice(HEX_GREEN_START, HEX_GREEN_START + HEX_PAIR_LENGTH),\n HEX_RADIX,\n );\n const b = Number.parseInt(\n normalized.slice(HEX_BLUE_START, HEX_BLUE_START + HEX_PAIR_LENGTH),\n HEX_RADIX,\n );\n\n return { r, g, b };\n};\n\nexport const rgbToHex = ({ r, g, b }: KdsRgbColor): string => {\n const rr = clamp(round(r), 0, RGB_MAX);\n const gg = clamp(round(g), 0, RGB_MAX);\n const bb = clamp(round(b), 0, RGB_MAX);\n\n return `#${padHex(rr)}${padHex(gg)}${padHex(bb)}`.toUpperCase();\n};\n\nexport const rgbToHsv = ({ r, g, b }: KdsRgbColor): KdsHsvColor => {\n const rr = clamp(r / RGB_MAX, 0, 1);\n const gg = clamp(g / RGB_MAX, 0, 1);\n const bb = clamp(b / RGB_MAX, 0, 1);\n\n const max = Math.max(rr, gg, bb);\n const min = Math.min(rr, gg, bb);\n const delta = max - min;\n\n const v = max;\n const s = max === 0 ? 0 : delta / max;\n\n let h = 0;\n if (delta !== 0) {\n if (max === rr) {\n h = ((gg - bb) / delta) % HUE_SECTOR_COUNT;\n } else if (max === gg) {\n h = (bb - rr) / delta + HUE_OFFSET_FOR_MAX_G;\n } else {\n h = (rr - gg) / delta + HUE_OFFSET_FOR_MAX_B;\n }\n\n h *= HUE_SECTOR_DEG;\n if (h < 0) {\n h += HUE_MAX_DEG;\n }\n }\n\n return { h, s, v };\n};\n\nexport const hsvToRgb = ({ h, s, v }: KdsHsvColor): KdsRgbColor => {\n const hh = ((h % HUE_MAX_DEG) + HUE_MAX_DEG) % HUE_MAX_DEG;\n const ss = clamp(s, 0, 1);\n const vv = clamp(v, 0, 1);\n\n const c = vv * ss;\n const x = c * (1 - Math.abs(((hh / HUE_SECTOR_DEG) % 2) - 1));\n const m = vv - c;\n\n let rPrime = 0;\n let gPrime = 0;\n let bPrime = 0;\n\n if (hh < HUE_SECTOR_DEG) {\n rPrime = c;\n gPrime = x;\n } else if (hh < HUE_SECTOR_INDEX_2 * HUE_SECTOR_DEG) {\n rPrime = x;\n gPrime = c;\n } else if (hh < HUE_SECTOR_INDEX_3 * HUE_SECTOR_DEG) {\n gPrime = c;\n bPrime = x;\n } else if (hh < HUE_SECTOR_INDEX_4 * HUE_SECTOR_DEG) {\n gPrime = x;\n bPrime = c;\n } else if (hh < HUE_SECTOR_INDEX_5 * HUE_SECTOR_DEG) {\n rPrime = x;\n bPrime = c;\n } else {\n rPrime = c;\n bPrime = x;\n }\n\n return {\n r: round((rPrime + m) * RGB_MAX),\n g: round((gPrime + m) * RGB_MAX),\n b: round((bPrime + m) * RGB_MAX),\n };\n};\n\nexport const hsvToHex = (hsv: KdsHsvColor): string => rgbToHex(hsvToRgb(hsv));\n","import { ref } from \"vue\";\n\nexport const usePointerHandler = (\n updateFromEvent: (event: PointerEvent) => void,\n) => {\n const activePointerId = ref<number | null>(null);\n\n const onPointerDown = (event: PointerEvent) => {\n if (event.button !== 0) {\n return;\n }\n\n const target = event.currentTarget;\n if (!(target instanceof HTMLElement)) {\n return;\n }\n\n activePointerId.value = event.pointerId;\n target.setPointerCapture(event.pointerId);\n updateFromEvent(event);\n };\n\n const onPointerMove = (event: PointerEvent) => {\n if (activePointerId.value !== event.pointerId) {\n return;\n }\n\n updateFromEvent(event);\n };\n\n const endPointerInteraction = (event: PointerEvent) => {\n if (activePointerId.value !== event.pointerId) {\n return;\n }\n\n const target = event.currentTarget;\n if (\n target instanceof HTMLElement &&\n target.hasPointerCapture(event.pointerId)\n ) {\n target.releasePointerCapture(event.pointerId);\n }\n\n activePointerId.value = null;\n };\n\n return {\n activePointerId,\n onPointerDown,\n onPointerMove,\n onPointerUp: endPointerInteraction,\n };\n};\n","<script setup lang=\"ts\">\nimport { computed, ref, watch } from \"vue\";\n\nimport KdsTextInput from \"../TextInput/KdsTextInput.vue\";\n\nimport {\n clamp,\n hexToRgb,\n hsvToHex,\n hsvToRgb,\n normalizeHexColor,\n rgbToHsv,\n} from \"./colorUtils\";\nimport { usePointerHandler } from \"./usePointerHandler\";\n\nconst DEFAULT_HUE_DEG = 270;\nconst DEFAULT_SATURATION = 0.8;\nconst DEFAULT_VALUE = 0.9;\n\nconst HUE_MAX_DEG = 360;\nconst HUE_MAX_EXCLUSIVE_DEG = 359.999;\nconst PERCENT = 100;\n\nconst KEYBOARD_STEP = 0.01;\nconst KEYBOARD_LARGE_STEP = 0.1;\nconst HUE_KEYBOARD_STEP_DEG = 1;\nconst HUE_KEYBOARD_LARGE_STEP_DEG = 10;\n\nconst modelValue = defineModel<string>({ default: \"\" });\n\nconst colorspaceEl = ref<HTMLElement | null>(null);\nconst hueEl = ref<HTMLElement | null>(null);\n\nconst hue = ref(DEFAULT_HUE_DEG);\nconst saturation = ref(DEFAULT_SATURATION);\nconst value = ref(DEFAULT_VALUE);\n/**\n * This flag is used to prevent feedback loops when updating the internal HSV state from the external modelValue.\n * When the user updates the color using the UI, we first set this flag to indicate that the next modelValue update is\n * coming from an internal change, so the watcher should ignore it.\n * Without this flag, updating the color would adapt the position of the handle (i.e. the handle jumps), because the\n * same color can occur in multiple places in the color space.\n */\nconst hasPendingInternalModelUpdate = ref(false);\n\nconst syncFromModelValue = (next: string) => {\n const rgb = hexToRgb(next);\n if (!rgb) {\n return;\n }\n\n const hsv = rgbToHsv(rgb);\n hue.value = hsv.h;\n saturation.value = hsv.s;\n value.value = hsv.v;\n};\n\nwatch(\n () => modelValue.value,\n (next) => {\n if (hasPendingInternalModelUpdate.value) {\n hasPendingInternalModelUpdate.value = false;\n return;\n }\n\n syncFromModelValue(next);\n },\n { immediate: true },\n);\n\nconst currentHex = computed(() =>\n hsvToHex({\n h: hue.value,\n s: saturation.value,\n v: value.value,\n }),\n);\n\nconst hueRgb = computed(() => hsvToRgb({ h: hue.value, s: 1, v: 1 }));\n\nconst TO_BOTTOM_GRADIENT = \"linear-gradient(to bottom, transparent, black)\";\n\nconst colorspaceBackground = computed(() => {\n const { r, g, b } = hueRgb.value;\n return {\n background: `${TO_BOTTOM_GRADIENT}, linear-gradient(to right, white, rgb(${r}, ${g}, ${b}))`,\n };\n});\n\nconst colorspaceHandleStyle = computed(() => ({\n left: `${saturation.value * 100}%`,\n top: `${(1 - value.value) * 100}%`,\n}));\n\nconst hueHandleStyle = computed(() => ({\n left: `${(hue.value / HUE_MAX_DEG) * PERCENT}%`,\n}));\n\nconst setModelValueFromHsv = () => {\n hasPendingInternalModelUpdate.value = true;\n modelValue.value = currentHex.value;\n};\n\nconst updateFromColorspaceEvent = (event: PointerEvent) => {\n const el = colorspaceEl.value;\n if (!el) {\n return;\n }\n\n const rect = el.getBoundingClientRect();\n const x = (event.clientX - rect.left) / rect.width;\n const y = (event.clientY - rect.top) / rect.height;\n\n saturation.value = Math.min(1, Math.max(0, x));\n value.value = 1 - Math.min(1, Math.max(0, y));\n\n setModelValueFromHsv();\n};\n\nconst updateFromHueEvent = (event: PointerEvent) => {\n const el = hueEl.value;\n if (!el) {\n return;\n }\n\n const rect = el.getBoundingClientRect();\n const x = (event.clientX - rect.left) / rect.width;\n hue.value = Math.min(HUE_MAX_EXCLUSIVE_DEG, Math.max(0, x * HUE_MAX_DEG));\n\n setModelValueFromHsv();\n};\n\nconst {\n onPointerDown: onColorspacePointerDown,\n onPointerMove: onColorspacePointerMove,\n onPointerUp: onColorspacePointerUp,\n} = usePointerHandler(updateFromColorspaceEvent);\n\nconst {\n onPointerDown: onHuePointerDown,\n onPointerMove: onHuePointerMove,\n onPointerUp: onHuePointerUp,\n} = usePointerHandler(updateFromHueEvent);\n\nconst updateFromTextValue = (next: string) => {\n modelValue.value = next;\n\n const normalized = normalizeHexColor(next);\n if (normalized) {\n syncFromModelValue(normalized);\n }\n};\n\nconst saturationPercent = computed(() =>\n Math.round(saturation.value * PERCENT),\n);\nconst valuePercent = computed(() => Math.round(value.value * PERCENT));\n\nconst colorspaceValueText = computed(\n () =>\n `Saturation ${saturationPercent.value} percent, brightness ${valuePercent.value} percent`,\n);\n\nconst hueValueText = computed(() => `${Math.round(hue.value)} degrees`);\n\nconst onColorspaceKeyDown = (event: KeyboardEvent) => {\n const step = event.shiftKey ? KEYBOARD_LARGE_STEP : KEYBOARD_STEP;\n let handled = true;\n\n switch (event.key) {\n case \"ArrowLeft\":\n saturation.value = clamp(saturation.value - step, 0, 1);\n break;\n case \"ArrowRight\":\n saturation.value = clamp(saturation.value + step, 0, 1);\n break;\n case \"ArrowUp\":\n value.value = clamp(value.value + step, 0, 1);\n break;\n case \"ArrowDown\":\n value.value = clamp(value.value - step, 0, 1);\n break;\n default:\n handled = false;\n }\n\n if (handled) {\n event.preventDefault();\n setModelValueFromHsv();\n }\n};\n\nconst onHueKeyDown = (event: KeyboardEvent) => {\n const step = event.shiftKey\n ? HUE_KEYBOARD_LARGE_STEP_DEG\n : HUE_KEYBOARD_STEP_DEG;\n let handled = true;\n\n switch (event.key) {\n case \"ArrowLeft\":\n hue.value = clamp(hue.value - step, 0, HUE_MAX_EXCLUSIVE_DEG);\n break;\n case \"ArrowRight\":\n hue.value = clamp(hue.value + step, 0, HUE_MAX_EXCLUSIVE_DEG);\n break;\n default:\n handled = false;\n }\n\n if (handled) {\n event.preventDefault();\n setModelValueFromHsv();\n }\n};\n</script>\n\n<template>\n <div class=\"kds-color-picker\">\n <div\n ref=\"colorspaceEl\"\n class=\"colorspace\"\n role=\"slider\"\n aria-label=\"Color selection\"\n aria-roledescription=\"2D color slider\"\n :aria-valuetext=\"colorspaceValueText\"\n :style=\"colorspaceBackground\"\n tabindex=\"0\"\n @pointerdown.prevent=\"onColorspacePointerDown\"\n @pointermove.prevent=\"onColorspacePointerMove\"\n @pointerup=\"onColorspacePointerUp\"\n @pointercancel=\"onColorspacePointerUp\"\n @keydown=\"onColorspaceKeyDown\"\n >\n <div class=\"handle\" :style=\"colorspaceHandleStyle\" />\n </div>\n\n <div\n ref=\"hueEl\"\n class=\"hue\"\n role=\"slider\"\n aria-label=\"Hue\"\n :aria-valuenow=\"Math.round(hue)\"\n aria-valuemin=\"0\"\n :aria-valuemax=\"HUE_MAX_DEG\"\n :aria-valuetext=\"hueValueText\"\n tabindex=\"0\"\n @pointerdown.prevent=\"onHuePointerDown\"\n @pointermove.prevent=\"onHuePointerMove\"\n @pointerup=\"onHuePointerUp\"\n @pointercancel=\"onHuePointerUp\"\n @keydown=\"onHueKeyDown\"\n >\n <div class=\"handle\" :style=\"hueHandleStyle\" />\n </div>\n\n <KdsTextInput\n :model-value=\"modelValue\"\n aria-label=\"Color hex value\"\n placeholder=\"#FFFFFF\"\n @update:model-value=\"updateFromTextValue\"\n />\n </div>\n</template>\n\n<style scoped>\n.kds-color-picker {\n display: flex;\n flex-direction: column;\n gap: var(--kds-spacing-container-1x);\n width: calc(206px + 2 * var(--kds-spacing-container-0-75x));\n max-width: 100%;\n padding: var(--kds-spacing-container-0-75x);\n background: var(--kds-color-surface-default);\n border-radius: var(--kds-border-radius-container-0-50x);\n box-shadow: var(--kds-elevation-level-3);\n}\n\n.colorspace {\n position: relative;\n width: 100%;\n height: 200px;\n cursor: crosshair;\n outline: none;\n border-radius: var(--kds-border-radius-container-0-37x);\n}\n\n.handle {\n position: absolute;\n width: var(--kds-dimension-icon-0-75x);\n height: var(--kds-dimension-icon-0-75x);\n pointer-events: none;\n border: var(--kds-border-color-picker-handle-initial);\n border-radius: var(--kds-border-radius-container-pill);\n box-shadow: var(--kds-elevation-level-3);\n transform: translate(-50%, -50%);\n}\n\n.hue {\n position: relative;\n width: 100%;\n height: var(--kds-dimension-component-height-0-75x);\n cursor: pointer;\n outline: none;\n background: linear-gradient(\n 90deg,\n hsl(0deg 100% 50%) 0%,\n hsl(60deg 100% 50%) 17%,\n hsl(120deg 100% 50%) 33%,\n hsl(180deg 100% 50%) 50%,\n hsl(240deg 100% 50%) 67%,\n hsl(300deg 100% 50%) 83%,\n hsl(360deg 100% 50%) 100%\n );\n border-radius: var(--kds-border-radius-container-pill);\n\n & .handle {\n top: 50%;\n }\n}\n\n.colorspace:focus,\n.hue:focus {\n outline: none;\n}\n\n.colorspace:focus .handle,\n.colorspace:focus-visible .handle,\n.hue:focus .handle,\n.hue:focus-visible .handle {\n outline: var(--kds-border-action-focused);\n outline-offset: calc(-1 * var(--kds-spacing-offset-focus));\n}\n</style>\n","/**\n * Behavior for normalizing hex color input on focus out. It supports the following formats:\n * - 1-digit hex -> repeat up to 6 digits (e.g. #a -> #AAAAAA)\n * - 2-digit hex -> repeat up to 6 digits (e.g. #ab -> #ABABAB)\n * - 3-digit hex -> convert to 6-digit representation (e.g. #abc -> #AABBCC)\n * - 4-digit hex -> convert to 6-digit representation (e.g. #abcd -> #AABBCC); we do not support alpha values for\n * now, so the last digit is ignored\n * - 5-digit hex -> unsupported, restore last valid hex\n * - 6-digit hex -> normalize to uppercase (e.g. #aabbcc -> #AABBCC) and add missing hash if needed\n * (e.g. aabbcc -> #AABBCC)\n */\n\nimport { type Ref, ref, watch } from \"vue\";\n\nconst HEX_LENGTH_1 = 1;\nconst HEX_LENGTH_2 = 2;\nconst HEX_LENGTH_3 = 3;\nconst HEX_LENGTH_4 = 4;\nconst HEX_LENGTH_6 = 6;\n\nconst normalize = (\n value: string,\n fallbackValue: string,\n): string | undefined => {\n const trimmed = value.trim();\n if (trimmed.length === 0) {\n return fallbackValue;\n }\n\n const withoutHash = trimmed.startsWith(\"#\") ? trimmed.slice(1) : trimmed;\n if (!/^[0-9a-fA-F]+$/.test(withoutHash)) {\n return fallbackValue;\n }\n\n if (withoutHash.length === HEX_LENGTH_1) {\n return `#${withoutHash.repeat(HEX_LENGTH_6)}`.toUpperCase();\n }\n\n if (withoutHash.length === HEX_LENGTH_2) {\n return `#${withoutHash.repeat(HEX_LENGTH_3)}`.toUpperCase();\n }\n\n if (\n withoutHash.length === HEX_LENGTH_3 ||\n withoutHash.length === HEX_LENGTH_4\n ) {\n const [r, g, b] = withoutHash;\n return `#${r}${r}${g}${g}${b}${b}`.toUpperCase();\n }\n if (withoutHash.length === HEX_LENGTH_6) {\n return `#${withoutHash}`.toUpperCase();\n }\n return fallbackValue;\n};\n\nexport const useColorInputValidationOnFocusOut = (modelValue: Ref<string>) => {\n const lastValidHexColor = ref<string>(\"\");\n\n watch(\n modelValue,\n (value) => {\n const withoutHash = value.startsWith(\"#\") ? value.slice(1) : value;\n if (/^[0-9a-fA-F]{6}$/.test(withoutHash)) {\n lastValidHexColor.value = `#${withoutHash.toUpperCase()}`;\n }\n },\n { immediate: true },\n );\n\n const handleFocusOut = (event: FocusEvent) => {\n const currentTarget = event.currentTarget;\n if (!(currentTarget instanceof HTMLElement)) {\n return;\n }\n const nextFocusedElement = event.relatedTarget;\n if (\n nextFocusedElement instanceof Node &&\n currentTarget.contains(nextFocusedElement)\n ) {\n return;\n }\n\n const normalized = normalize(modelValue.value, lastValidHexColor.value);\n if (normalized !== undefined) {\n modelValue.value = normalized;\n }\n };\n\n return { handleFocusOut };\n};\n","<script setup lang=\"ts\">\nimport { computed, ref, useTemplateRef } from \"vue\";\n\nimport type { KdsHexColor } from \"../../../accessories\";\nimport KdsColorSwatch from \"../../../accessories/ColorSwatch/KdsColorSwatch.vue\";\nimport { KdsToggleButton } from \"../../../buttons\";\nimport KdsPopover from \"../../../overlays/Popover/KdsPopover.vue\";\nimport BaseFormFieldWrapper from \"../../_helper/BaseFormFieldWrapper.vue\";\nimport BaseInput from \"../BaseInput.vue\";\n\nimport ColorPicker from \"./ColorPicker.vue\";\nimport { normalizeHexColor } from \"./colorUtils\";\nimport type { KdsColorInputProps } from \"./types\";\nimport { useColorInputValidationOnFocusOut } from \"./useColorInputValidationOnFocusOut\";\n\nconst props = withDefaults(defineProps<KdsColorInputProps>(), {\n placeholder: \"#FFFFFF\",\n disabled: false,\n error: false,\n validating: false,\n preserveSubTextSpace: false,\n autocomplete: undefined,\n});\n\nconst modelValue = defineModel<string>({ default: \"\" });\nconst open = ref(false);\n\nconst popoverEl = useTemplateRef(\"popoverEl\");\n\nconst swatchColor = computed<KdsHexColor>(\n () => (normalizeHexColor(modelValue.value) ?? \"#FFFFFF\") as KdsHexColor,\n);\n\nconst { handleFocusOut } = useColorInputValidationOnFocusOut(modelValue);\n\nconst onClickColorSwatch = () => {\n if (!props.disabled) {\n open.value = !open.value;\n }\n};\n</script>\n\n<template>\n <BaseFormFieldWrapper v-bind=\"props\">\n <template #default=\"slotProps\">\n <div :style=\"popoverEl?.anchorStyle\" @focusout=\"handleFocusOut\">\n <BaseInput\n v-bind=\"slotProps\"\n v-model=\"modelValue\"\n :placeholder=\"props.placeholder\"\n :disabled=\"props.disabled\"\n :error=\"props.error\"\n :autocomplete=\"props.autocomplete\"\n >\n <template #leading>\n <KdsColorSwatch\n size=\"large\"\n :color=\"swatchColor\"\n :aria-hidden=\"true\"\n :style=\"{ cursor: props.disabled ? 'default' : 'pointer' }\"\n @click=\"onClickColorSwatch\"\n />\n </template>\n <template #trailing>\n <KdsToggleButton\n v-model=\"open\"\n size=\"xsmall\"\n variant=\"outlined\"\n leading-icon=\"color-picker\"\n aria-label=\"Open color picker\"\n :aria-controls=\"popoverEl?.popoverId\"\n aria-haspopup=\"dialog\"\n :disabled=\"props.disabled\"\n :title=\"open ? 'Close color picker' : 'Open color picker'\"\n />\n </template>\n </BaseInput>\n\n <KdsPopover\n ref=\"popoverEl\"\n v-model=\"open\"\n placement=\"bottom-right\"\n role=\"dialog\"\n popover-aria-label=\"Color picker\"\n >\n <ColorPicker v-model=\"modelValue\" />\n </KdsPopover>\n </div>\n </template>\n </BaseFormFieldWrapper>\n</template>\n","<script setup lang=\"ts\">\nimport { computed, ref } from \"vue\";\n\nimport KdsValueSwitch from \"../../RadioButton/KdsValueSwitch.vue\";\nimport {\n KdsListContainer,\n type KdsListOption,\n} from \"../../_helper/List/ListContainer\";\n\nimport type {\n KdsDateFormatCategory,\n KdsDateTimeFormatEntry,\n KdsTemporalType,\n} from \"./types\";\n\ntype DateTimeFormatPopoverProps = {\n allDefaultFormats: KdsDateTimeFormatEntry[];\n allowedFormats?: KdsTemporalType[];\n};\n\nconst props = defineProps<DateTimeFormatPopoverProps>();\n\nconst selection = defineModel<string>(\"selection\", { default: \"\" });\n\nconst temporalTypeToModeLabel: Record<KdsTemporalType, string> = {\n DATE: \"Date\",\n DATE_TIME: \"Date & Time\",\n TIME: \"Time\",\n ZONED_DATE_TIME: \"Zoned Date & Time\",\n};\n\nconst categoryToLocaleLabel: Record<KdsDateFormatCategory, string> = {\n RECENT: \"Recent\",\n STANDARD: \"ISO\",\n EUROPEAN: \"European\",\n AMERICAN: \"United States\",\n};\n\nconst typedDateFormats = computed(() => {\n const entries = props.allDefaultFormats;\n\n // If allowedFormats is omitted, there are no restrictions.\n if (props.allowedFormats === undefined) {\n return entries;\n }\n\n // An explicit empty array means \"allow none\".\n if (props.allowedFormats.length === 0) {\n return [];\n }\n\n const allowed = new Set(props.allowedFormats);\n return entries.filter((entry) => allowed.has(entry.temporalType));\n});\n\nconst modeOptions = computed(() => {\n const seen = new Set<string>();\n const options: string[] = [];\n\n for (const entry of typedDateFormats.value) {\n const label = temporalTypeToModeLabel[entry.temporalType];\n if (!seen.has(label)) {\n seen.add(label);\n options.push(label);\n }\n }\n\n return options;\n});\n\nconst localeOptions = computed(() => {\n const recent = categoryToLocaleLabel.RECENT;\n const seen = new Set<string>();\n const options: string[] = [recent];\n seen.add(recent);\n\n for (const entry of typedDateFormats.value) {\n const label = categoryToLocaleLabel[entry.category];\n if (!seen.has(label)) {\n seen.add(label);\n options.push(label);\n }\n }\n\n return options;\n});\n\nconst selectedFormatEntry = computed(() => {\n if (!selection.value) {\n return null;\n }\n\n return (\n typedDateFormats.value.find((entry) => entry.format === selection.value) ??\n null\n );\n});\n\n// User-driven selections from the switches.\nconst selectedMode = ref<string | undefined>(undefined);\nconst selectedLocale = ref<string | undefined>(undefined);\n\nconst selectedModeFromModel = computed(() => {\n const entry = selectedFormatEntry.value;\n return entry ? temporalTypeToModeLabel[entry.temporalType] : null;\n});\n\nconst selectedLocaleFromModel = computed(() => {\n const entry = selectedFormatEntry.value;\n return entry ? categoryToLocaleLabel[entry.category] : null;\n});\n\nconst effectiveSelectedMode = computed(() => {\n const modes = modeOptions.value;\n\n if (modes.length === 0) {\n return \"\";\n }\n\n // If the user actively selected a mode, keep it (as long as it's valid).\n const manual = selectedMode.value;\n if (manual && modes.includes(manual)) {\n return manual;\n }\n\n // Otherwise, derive it from the current selected format if possible.\n const fromModel = selectedModeFromModel.value;\n if (fromModel && modes.includes(fromModel)) {\n return fromModel;\n }\n\n return modes[0]!;\n});\n\nconst effectiveSelectedLocale = computed(() => {\n const locales = localeOptions.value;\n\n if (locales.length === 0) {\n return \"\";\n }\n\n // If the user actively selected a locale, keep it (as long as it's valid).\n const manual = selectedLocale.value;\n if (manual && locales.includes(manual)) {\n return manual;\n }\n\n // Otherwise, derive it from the current selected format if possible.\n const fromModel = selectedLocaleFromModel.value;\n if (fromModel && locales.includes(fromModel)) {\n return fromModel;\n }\n\n return locales[0]!;\n});\n\ntype ModeLocaleKey = `${string}__${string}`;\n\nconst internalOptionsByModeAndLocale = computed(() => {\n const map = new Map<ModeLocaleKey, KdsListOption[]>();\n\n for (const entry of typedDateFormats.value) {\n const modeLabel = temporalTypeToModeLabel[entry.temporalType];\n const localeLabel = categoryToLocaleLabel[entry.category];\n const key = `${modeLabel}__${localeLabel}` as const;\n\n const options = map.get(key) ?? [];\n options.push({\n id: encodeURIComponent(entry.format),\n text: entry.format,\n subText: entry.example,\n });\n map.set(key, options);\n }\n\n return map;\n});\n\nconst possibleFormats = computed<KdsListOption[]>(() => {\n const mode = effectiveSelectedMode.value;\n const locale = effectiveSelectedLocale.value;\n\n if (!mode || !locale) {\n return [];\n }\n\n const key = `${mode}__${locale}` as ModeLocaleKey;\n const options = internalOptionsByModeAndLocale.value.get(key) ?? [];\n return options.map((option) => ({\n ...option,\n selected: option.id === encodeURIComponent(selection.value),\n }));\n});\n</script>\n\n<template>\n <div class=\"kds-date-time-format-popover\">\n <KdsValueSwitch\n v-if=\"modeOptions.length > 1\"\n :model-value=\"effectiveSelectedMode\"\n size=\"small\"\n :possible-values=\"modeOptions\"\n @update:model-value=\"\n (value) => {\n selectedMode = value;\n }\n \"\n />\n\n <KdsValueSwitch\n v-if=\"localeOptions.length > 1\"\n :model-value=\"effectiveSelectedLocale\"\n size=\"small\"\n :possible-values=\"localeOptions\"\n @update:model-value=\"\n (value) => {\n selectedLocale = value;\n }\n \"\n />\n\n <KdsListContainer\n class=\"kds-date-time-format-popover-list\"\n aria-label=\"Date/time formats\"\n variant=\"large\"\n :possible-values=\"possibleFormats\"\n empty-text=\"No recently used formats\"\n @item-click=\"selection = decodeURIComponent($event)\"\n />\n </div>\n</template>\n\n<style scoped>\n.kds-date-time-format-popover {\n display: flex;\n flex-direction: column;\n gap: var(--kds-spacing-container-0-5x);\n width: fit-content;\n max-width: 100%;\n padding: var(--kds-spacing-container-0-75x);\n background-color: var(--kds-color-surface-default);\n border-radius: var(--kds-border-radius-container-0-50x);\n box-shadow: var(--kds-elevation-level-3);\n}\n\n.kds-date-time-format-popover-list {\n width: var(--kds-dimension-component-width-16x);\n min-width: 100%;\n max-width: 100%;\n height: var(--kds-dimension-component-height-12x);\n}\n</style>\n","<script setup lang=\"ts\">\nimport { ref, useTemplateRef } from \"vue\";\n\nimport { KdsToggleButton } from \"../../../buttons\";\nimport KdsPopover from \"../../../overlays/Popover/KdsPopover.vue\";\nimport BaseFormFieldWrapper from \"../../_helper/BaseFormFieldWrapper.vue\";\nimport BaseInput from \"../BaseInput.vue\";\n\nimport DateTimeFormatPopover from \"./DateTimeFormatPopover.vue\";\nimport type { KdsDateTimeFormatInputProps } from \"./types\";\n\nconst props = withDefaults(defineProps<KdsDateTimeFormatInputProps>(), {\n disabled: false,\n error: false,\n validating: false,\n preserveSubTextSpace: false,\n placeholder: \"Format\",\n});\n\nconst modelValue = defineModel<string>({ default: \"\" });\nconst open = ref(false);\n\nconst popoverEl = useTemplateRef(\"popoverEl\");\n</script>\n\n<template>\n <BaseFormFieldWrapper v-bind=\"props\">\n <template #default=\"slotProps\">\n <div :style=\"popoverEl?.anchorStyle\">\n <BaseInput\n v-bind=\"slotProps\"\n v-model=\"modelValue\"\n type=\"text\"\n :placeholder=\"props.placeholder\"\n :disabled=\"props.disabled\"\n :error=\"props.error\"\n :validating=\"props.validating\"\n :autocomplete=\"props.autocomplete\"\n >\n <template #trailing>\n <KdsToggleButton\n v-model=\"open\"\n size=\"xsmall\"\n variant=\"outlined\"\n leading-icon=\"date-time\"\n aria-label=\"Open date/time format picker\"\n :aria-controls=\"popoverEl?.popoverId\"\n :aria-expanded=\"open\"\n aria-haspopup=\"dialog\"\n :disabled=\"props.disabled\"\n :title=\"\n open\n ? 'Close date/time format picker'\n : 'Open date/time format picker'\n \"\n />\n </template>\n </BaseInput>\n\n <KdsPopover\n ref=\"popoverEl\"\n v-model=\"open\"\n placement=\"bottom-right\"\n popover-aria-label=\"Date time format selection dialog\"\n >\n <DateTimeFormatPopover\n :selection=\"modelValue\"\n :all-default-formats=\"props.allDefaultFormats\"\n :allowed-formats=\"props.allowedFormats\"\n @update:selection=\"\n modelValue = $event;\n open = false;\n \"\n />\n </KdsPopover>\n </div>\n </template>\n </BaseFormFieldWrapper>\n</template>\n","export const kdsTemporalType = {\n DATE: \"DATE\",\n TIME: \"TIME\",\n DATE_TIME: \"DATE_TIME\",\n ZONED_DATE_TIME: \"ZONED_DATE_TIME\",\n} as const;\n\nexport const kdsTemporalTypes = Object.values(kdsTemporalType);\n\nexport const kdsDateFormatCategory = {\n RECENT: \"RECENT\",\n STANDARD: \"STANDARD\",\n EUROPEAN: \"EUROPEAN\",\n AMERICAN: \"AMERICAN\",\n} as const;\n\nexport const kdsDateFormatCategories = Object.values(kdsDateFormatCategory);\n","export type KdsNumberParser = {\n locale: string;\n decimalSeparator: string;\n groupSeparator: string;\n /**\n * Maximum number of fraction digits implied by `step`.\n *\n * Example:\n * - step=1 => 0\n * - step=0.01 => 2\n * - step=1e-7 => 7\n */\n stepFractionDigits: number;\n formatForDisplay: (value: number) => string;\n parseFromInput: (value: string) => number;\n /**\n * Round a number to the nearest step increment.\n * Returns NaN for non-finite values.\n */\n roundToStep: (value: number) => number;\n};\n\nconst additionalGroupSeparators = [\" \", \"\\u00A0\", \"\\u202F\"];\nconst decimalSeparatorSample = 1.1;\nconst groupSeparatorSample = 1000.1;\n\nconst countFractionDigits = (value: number) => {\n if (!Number.isFinite(value)) {\n return 0;\n }\n\n // Handle exponential notation (e.g. 1e-7) deterministically.\n // We only care about the number of digits right of the decimal point.\n // Examples:\n // - 1e-7 => 7\n // - 1.23e-4 => 6 (0.000123)\n // - 1e+3 => 0\n const exp = value.toExponential();\n const match = /^[-+]?(\\d+)(?:\\.(\\d+))?e([+-]?\\d+)$/i.exec(exp);\n if (!match) {\n return 0;\n }\n\n const fractionDigitsInMantissa = match[2]?.length ?? 0;\n const exponent = Number.parseInt(match[3], 10);\n\n if (exponent >= 0) {\n // Shift decimal point to the right -> no additional fraction digits required.\n return Math.max(0, fractionDigitsInMantissa - exponent);\n }\n\n // Shift decimal point to the left -> adds (-exponent) fraction digits.\n return fractionDigitsInMantissa + Math.abs(exponent);\n};\n\nexport const createKdsNumberParser = (params: {\n locale: string;\n step: number;\n}): KdsNumberParser => {\n const formatter = new Intl.NumberFormat(params.locale);\n\n const decimalSeparator =\n formatter\n .formatToParts(decimalSeparatorSample)\n .find((part) => part.type === \"decimal\")?.value ?? \".\";\n\n const groupSeparator =\n formatter\n .formatToParts(groupSeparatorSample)\n .find((part) => part.type === \"group\")?.value ?? \",\";\n\n const removeGroupingSeparators = (input: string) =>\n [groupSeparator, ...additionalGroupSeparators].reduce(\n (acc, groupSep) =>\n groupSep.length > 0 ? acc.split(groupSep).join(\"\") : acc,\n input,\n );\n\n const formattersByMaxDecimals = new Map<number, Intl.NumberFormat>();\n const getFormatterForMaxDecimals = (maxDecimals: number) => {\n const cached = formattersByMaxDecimals.get(maxDecimals);\n if (cached) {\n return cached;\n }\n\n const created = new Intl.NumberFormat(params.locale, {\n useGrouping: false,\n minimumFractionDigits: 0,\n maximumFractionDigits: maxDecimals,\n });\n\n formattersByMaxDecimals.set(maxDecimals, created);\n return created;\n };\n\n const stepFractionDigits = countFractionDigits(params.step);\n const precisionFactor = Number(`1e${stepFractionDigits}`);\n\n const formatForDisplay = (value: number) => {\n if (!Number.isFinite(value)) {\n return \"\";\n }\n\n // Use at least the step's precision, but also preserve the value's own precision.\n // Note: values can also stringify to exponent form, so use the same helper.\n const valueDecimals = countFractionDigits(value);\n\n const maxDecimals = Math.max(stepFractionDigits, valueDecimals);\n\n return getFormatterForMaxDecimals(maxDecimals).format(value);\n };\n\n const roundToStep = (value: number) => {\n if (!Number.isFinite(value)) {\n return Number.NaN;\n }\n\n const step = params.step;\n\n if (!Number.isFinite(step) || step <= 0) {\n return value;\n }\n\n // Avoid floating point artifacts when working with decimal steps.\n // Use a fixed factor derived from stepFractionDigits (handles exponent notation reliably).\n if (!Number.isFinite(precisionFactor) || precisionFactor <= 0) {\n return value;\n }\n\n const scaledNext = Math.round(value * precisionFactor);\n const scaledStep = Math.round(step * precisionFactor);\n\n // If step can't be represented at the current precision, don't round.\n if (scaledStep === 0) {\n return value;\n }\n\n const roundedScaled = Math.round(scaledNext / scaledStep) * scaledStep;\n return roundedScaled / precisionFactor;\n };\n\n const isValidNormalizedNumber = (normalized: string) =>\n // Accept plain decimals as well as scientific notation.\n // Note: whitespace is removed earlier; we don't accept grouping separators here.\n /^[-+]?(?:\\d+(?:\\.\\d*)?|\\.\\d+)(?:[eE][-+]?\\d+)?$/.test(normalized);\n\n const parseWithLocaleDecimal = (input: string, localeDecimal: string) => {\n const withoutGrouping = removeGroupingSeparators(input);\n const normalized = withoutGrouping.split(localeDecimal).join(\".\");\n if (!isValidNormalizedNumber(normalized)) {\n return Number.NaN;\n }\n const parsed = Number.parseFloat(normalized);\n return Number.isFinite(parsed) ? parsed : Number.NaN;\n };\n\n const parseWithFallbackDot = (input: string) => {\n const lastDotIndex = input.lastIndexOf(\".\");\n const digitsAfterDot = input.slice(lastDotIndex + 1);\n\n const looksLikeDecimal =\n digitsAfterDot.length > 0 && digitsAfterDot.length <= 2;\n\n const normalized = looksLikeDecimal\n ? `${removeGroupingSeparators(input.slice(0, lastDotIndex))}.${removeGroupingSeparators(\n digitsAfterDot,\n )}`\n : removeGroupingSeparators(input);\n\n if (!isValidNormalizedNumber(normalized)) {\n return Number.NaN;\n }\n\n const parsed = Number.parseFloat(normalized);\n return Number.isFinite(parsed) ? parsed : Number.NaN;\n };\n\n const parseWithoutLocaleDecimal = (input: string) => {\n const normalized = removeGroupingSeparators(input);\n if (!isValidNormalizedNumber(normalized)) {\n return Number.NaN;\n }\n const parsed = Number.parseFloat(normalized);\n return Number.isFinite(parsed) ? parsed : Number.NaN;\n };\n\n /**\n * Parse a localized number string to a number.\n *\n * Supported input patterns:\n * - Locale decimal separator (e.g. \"1,2\" in de-DE)\n * - Locale grouping + decimal (e.g. \"1.234,56\" in de-DE)\n * - Grouped integer without decimal separator (e.g. \"1,234\" in en-US, \"1.234\" in de-DE)\n * - \".\" as a fallback decimal separator when the locale uses \",\" (common user input)\n */\n function parseFromInput(value: string) {\n const trimmed = value.trim();\n if (trimmed.length === 0) {\n return Number.NaN;\n }\n\n const localeDecimal = decimalSeparator;\n\n const hasLocaleDecimal =\n localeDecimal.length > 0 && trimmed.includes(localeDecimal);\n\n // If the locale decimal separator is present, we can safely remove grouping chars.\n if (hasLocaleDecimal) {\n return parseWithLocaleDecimal(trimmed, localeDecimal);\n }\n\n // No locale decimal separator present.\n //\n // Case A: locale uses ',' as decimal separator (e.g. de-DE). Accept '.' as fallback decimal.\n // While doing so, we still want to support locale grouping separators like '1.234'.\n if (localeDecimal !== \".\" && trimmed.includes(\".\")) {\n return parseWithFallbackDot(trimmed);\n }\n\n // Case B: locale uses '.' as decimal separator (e.g. en-US).\n // Remove grouping separators such as ',' and whitespace, so '1,234' => '1234'.\n // Note: we intentionally do NOT treat ',' as a decimal separator here.\n return parseWithoutLocaleDecimal(trimmed);\n }\n\n return {\n locale: params.locale,\n decimalSeparator,\n groupSeparator,\n stepFractionDigits,\n formatForDisplay,\n parseFromInput,\n roundToStep,\n };\n};\n","<script setup lang=\"ts\">\nimport { computed, ref, useTemplateRef, watch } from \"vue\";\n\nimport KdsButton from \"../../../buttons/KdsButton/KdsButton.vue\";\nimport BaseFormFieldWrapper from \"../../_helper/BaseFormFieldWrapper.vue\";\nimport type { KdsFormFieldExpose } from \"../../types.ts\";\nimport BaseInput from \"../BaseInput.vue\";\n\nimport { createKdsNumberParser } from \"./numberParser\";\nimport type { KdsNumberInputProps } from \"./types\";\n\nconst props = withDefaults(defineProps<KdsNumberInputProps>(), {\n disabled: false,\n error: false,\n validating: false,\n preserveSubTextSpace: false,\n unit: \"\",\n step: 1,\n});\n\nconst modelValue = defineModel<number>({ default: Number.NaN });\n\nconst isFocused = ref(false);\n\n/**\n * String representation of what's currently shown in the input.\n *\n * Important: we keep this separate from the numeric model to allow intermediate\n * typing states and to avoid clamping away out-of-range values before external\n * validation (e.g. JSONForms/builtin validations) can kick in.\n */\nconst localValue = ref<string>(\"\");\n\nconst numberParser = computed(() =>\n createKdsNumberParser({ locale: \"en-US\", step: props.step }),\n);\n\nconst ariaValuenow = computed(() =>\n Number.isFinite(modelValue.value) ? modelValue.value : undefined,\n);\n\nconst ariaValuetext = computed(() => {\n if (!Number.isFinite(modelValue.value)) {\n return undefined;\n }\n\n // Format the spoken feedback using en-US locale (decimal separator, etc.).\n return numberParser.value.formatForDisplay(modelValue.value);\n});\n\nconst clamp = (value: number) => {\n if (!Number.isFinite(value)) {\n return Number.NaN;\n }\n\n let result = value;\n\n if (props.min !== undefined && !Number.isNaN(props.min)) {\n result = Math.max(props.min, result);\n }\n if (props.max !== undefined && !Number.isNaN(props.max)) {\n result = Math.min(props.max, result);\n }\n\n return result;\n};\n\nwatch(\n () => modelValue.value,\n (next) => {\n // While focused, let the user keep typing without being overridden by external updates.\n if (isFocused.value) {\n return;\n }\n localValue.value = numberParser.value.formatForDisplay(next);\n },\n { immediate: true },\n);\n\nconst canDecrease = computed(() => {\n if (props.disabled) {\n return false;\n }\n\n if (props.min === undefined || Number.isNaN(props.min)) {\n return true;\n }\n\n if (Number.isNaN(modelValue.value)) {\n return true;\n }\n\n return modelValue.value > props.min;\n});\n\nconst canIncrease = computed(() => {\n if (props.disabled) {\n return false;\n }\n\n if (props.max === undefined || Number.isNaN(props.max)) {\n return true;\n }\n\n if (Number.isNaN(modelValue.value)) {\n return true;\n }\n\n return modelValue.value < props.max;\n});\n\nconst adjustByStep = (direction: -1 | 1) => {\n if (props.step <= 0) {\n return;\n }\n\n const base = Number.isFinite(modelValue.value)\n ? modelValue.value\n : numberParser.value.parseFromInput(localValue.value);\n\n const nextRaw = Number.isFinite(base) ? base + direction * props.step : 0;\n // Round due to precision issues that can arise when adding steps to certain numbers, e.g. 0.1 + 0.1 + 0.1.\n const rounded = numberParser.value.roundToStep(nextRaw);\n const next = clamp(rounded);\n\n modelValue.value = next;\n localValue.value = numberParser.value.formatForDisplay(next);\n};\n\nconst handleKeydown = (event: KeyboardEvent) => {\n if (props.disabled) {\n return;\n }\n\n if (event.key === \"ArrowUp\" && canIncrease.value) {\n event.preventDefault();\n adjustByStep(1);\n return;\n }\n if (event.key === \"ArrowDown\" && canDecrease.value) {\n event.preventDefault();\n adjustByStep(-1);\n }\n};\n\nconst handleUpdateModelValue = (value: string) => {\n localValue.value = value;\n modelValue.value = numberParser.value.parseFromInput(value);\n};\n\nconst handleBlur = () => {\n isFocused.value = false;\n\n // Normalize, round to step, and clamp only when leaving the field.\n const parsed = numberParser.value.parseFromInput(localValue.value);\n const normalized = clamp(parsed);\n\n modelValue.value = normalized;\n localValue.value = numberParser.value.formatForDisplay(normalized);\n};\n\nconst baseInput = useTemplateRef(\"baseInput\");\n\ndefineExpose<KdsFormFieldExpose>({\n focus: () => baseInput.value?.focus(),\n});\n</script>\n\n<template>\n <BaseFormFieldWrapper v-bind=\"props\">\n <template #default=\"slotProps\">\n <BaseInput\n ref=\"baseInput\"\n v-bind=\"slotProps\"\n :model-value=\"localValue\"\n type=\"text\"\n :inputmode=\"props.step >= 1 ? 'numeric' : 'decimal'\"\n :placeholder=\"props.placeholder\"\n :disabled=\"props.disabled\"\n :error=\"props.error\"\n :autocomplete=\"props.autocomplete\"\n :unit=\"props.unit\"\n role=\"spinbutton\"\n :aria-valuenow=\"ariaValuenow\"\n :aria-valuemin=\"props.min\"\n :aria-valuemax=\"props.max\"\n :aria-valuetext=\"ariaValuetext\"\n @update:model-value=\"handleUpdateModelValue\"\n @keydown=\"handleKeydown\"\n @focus=\"isFocused = true\"\n @blur=\"handleBlur\"\n >\n <template #trailing>\n <KdsButton\n type=\"button\"\n size=\"xsmall\"\n variant=\"outlined\"\n leading-icon=\"minus\"\n :aria-label=\"`Decrease ${props.label ?? props.ariaLabel}`\"\n :disabled=\"!canDecrease\"\n @click=\"adjustByStep(-1)\"\n />\n <KdsButton\n type=\"button\"\n size=\"xsmall\"\n variant=\"outlined\"\n leading-icon=\"plus\"\n :aria-label=\"`Increase ${props.label ?? props.ariaLabel}`\"\n :disabled=\"!canIncrease\"\n @click=\"adjustByStep(1)\"\n />\n </template>\n </BaseInput>\n </template>\n </BaseFormFieldWrapper>\n</template>\n","export type KdsPatternInputOptions = {\n caseSensitive: boolean;\n excludeMatches: boolean;\n useRegex: boolean;\n};\n\nconst escapeRegex = (value: string) =>\n value.replaceAll(/[.*+?^${}()|[\\]\\\\]/g, String.raw`\\$&`);\n\nconst wildcardToRegexBody = (pattern: string) => {\n // Convert a simple wildcard pattern to a regex body.\n // - `*` => `.*`\n // - `?` => `.`\n // All other characters are escaped.\n let body = \"\";\n for (const char of pattern) {\n if (char === \"*\") {\n body += \".*\";\n continue;\n }\n\n if (char === \"?\") {\n body += \".\";\n continue;\n }\n\n body += escapeRegex(char);\n }\n\n return body;\n};\n\nconst regexBodyToWildcard = (regexBody: string) => {\n // Best-effort conversion:\n // - `.*` => `*`\n // - `.` => `?`\n // - escaped chars -> literal chars\n // If we encounter other regex constructs, we bail out and return undefined.\n let wildcard = \"\";\n for (let i = 0; i < regexBody.length; i += 1) {\n const char = regexBody[i];\n\n if (char === \"\\\\\") {\n const next = regexBody[i + 1];\n if (next === undefined) {\n return undefined;\n }\n wildcard += next;\n i += 1;\n continue;\n }\n\n if (char === \".\") {\n const next = regexBody[i + 1];\n if (next === \"*\") {\n wildcard += \"*\";\n i += 1;\n continue;\n }\n wildcard += \"?\";\n continue;\n }\n\n if (/[[\\]{}()+^$|]/.test(char)) {\n return undefined;\n }\n\n wildcard += char;\n }\n\n return wildcard;\n};\n\nconst CASE_INSENSITIVE_PREFIX = \"(?i:\";\n\nconst stripOuterGroup = (pattern: string, prefix: string) => {\n const trimmed = pattern.trim();\n if (trimmed.startsWith(prefix) && trimmed.endsWith(\")\")) {\n return trimmed.slice(prefix.length, -1);\n }\n return trimmed;\n};\n\nexport const buildRegexFromPatternInput = (\n input: string,\n options: KdsPatternInputOptions,\n): string => {\n const body = options.useRegex ? input : wildcardToRegexBody(input);\n const grouped = `(?:${body})`;\n const withCase = options.caseSensitive\n ? grouped\n : `${CASE_INSENSITIVE_PREFIX}${grouped})`;\n\n if (!options.excludeMatches) {\n return withCase;\n }\n\n return `^(?!.*${withCase}).*$`;\n};\n\n// Removed buildRegExpFromPatternInput: case sensitivity is encoded via the\n// optional `(?i:...)` wrapper in the pattern string.\n\nconst stripOuterNonCapturingGroup = (pattern: string) =>\n stripOuterGroup(pattern, \"(?:\");\n\nconst stripCaseInsensitiveWrapper = (pattern: string) =>\n stripOuterGroup(pattern, CASE_INSENSITIVE_PREFIX);\n\nconst tryParseExcluded = (regex: string): { excludedInner?: string } => {\n // Matches `^(?!.*<inner>).*$` where <inner> is the pattern we emitted.\n const match = /^\\^\\(\\?!\\.\\*([\\s\\S]*)\\)\\.\\*\\$$/.exec(regex.trim());\n if (!match) {\n return {};\n }\n return { excludedInner: match[1] };\n};\n\nexport const parseRegexToPatternInputValue = (\n regex: string,\n options: Pick<KdsPatternInputOptions, \"useRegex\" | \"excludeMatches\"> & {\n caseSensitive?: boolean;\n },\n): string => {\n if (regex === \"\") {\n return \"\";\n }\n\n const { excludedInner } = tryParseExcluded(regex);\n const inner = excludedInner ?? regex;\n\n const withoutCase = options.caseSensitive\n ? inner\n : stripCaseInsensitiveWrapper(inner);\n\n const body = stripOuterNonCapturingGroup(withoutCase);\n\n if (options.useRegex) {\n return body;\n }\n\n const wildcard = regexBodyToWildcard(body);\n return wildcard ?? body;\n};\n","<script setup lang=\"ts\">\nimport { computed, ref, useTemplateRef, watch } from \"vue\";\n\nimport KdsToggleButton from \"../../../buttons/KdsToggleButton/KdsToggleButton.vue\";\nimport BaseFormFieldWrapper from \"../../_helper/BaseFormFieldWrapper.vue\";\nimport type { KdsFormFieldExpose } from \"../../types.ts\";\nimport BaseInput from \"../BaseInput.vue\";\n\nimport {\n buildRegexFromPatternInput,\n parseRegexToPatternInputValue,\n} from \"./patternRegex.ts\";\nimport type { KdsPatternInputProps } from \"./types\";\n\nconst props = withDefaults(defineProps<KdsPatternInputProps>(), {\n disabled: false,\n error: false,\n validating: false,\n preserveSubTextSpace: false,\n});\n\n// Public API: a single regex string (encoded with options when toggles are used).\nconst regex = defineModel<string>({ default: \"\" });\n\n// Internal UI state. This is derived from the regex model on external updates.\nconst uiValue = ref(\"\");\nconst caseSensitive = ref(false);\nconst excludeMatches = ref(false);\nconst useRegex = ref(false);\n\nconst rebuildRegexFromUi = () => {\n regex.value = buildRegexFromPatternInput(uiValue.value, {\n caseSensitive: caseSensitive.value,\n excludeMatches: excludeMatches.value,\n useRegex: useRegex.value,\n });\n};\n\nwatch(\n () => regex.value,\n (newValue) => {\n uiValue.value = parseRegexToPatternInputValue(newValue, {\n useRegex: useRegex.value,\n excludeMatches: excludeMatches.value,\n caseSensitive: caseSensitive.value,\n });\n },\n { immediate: true },\n);\n\nconst caseSensitiveAriaLabel = computed(() =>\n caseSensitive.value ? \"Match case-sensitive\" : \"Match case-insensitive\",\n);\nconst excludeMatchesAriaLabel = computed(() =>\n excludeMatches.value ? \"Exclude matches\" : \"Include matches\",\n);\nconst patternModeAriaLabel = computed(() =>\n useRegex.value ? \"Use regex pattern\" : \"Use wildcard pattern\",\n);\n\nconst baseInput = useTemplateRef(\"baseInput\");\n\ndefineExpose<KdsFormFieldExpose>({\n focus: () => baseInput.value?.focus(),\n});\n</script>\n\n<template>\n <BaseFormFieldWrapper v-bind=\"props\">\n <template #default=\"slotProps\">\n <BaseInput\n ref=\"baseInput\"\n v-bind=\"slotProps\"\n v-model=\"uiValue\"\n type=\"text\"\n :placeholder=\"props.placeholder\"\n :disabled=\"props.disabled\"\n :error=\"props.error\"\n :autocomplete=\"props.autocomplete\"\n leading-icon=\"filter\"\n clearable\n @update:model-value=\"rebuildRegexFromUi\"\n >\n <template #trailing>\n <KdsToggleButton\n v-model=\"caseSensitive\"\n size=\"xsmall\"\n variant=\"outlined\"\n leading-icon=\"case-sensitive\"\n :title=\"caseSensitiveAriaLabel\"\n :aria-label=\"caseSensitiveAriaLabel\"\n :disabled=\"props.disabled\"\n @update:model-value=\"rebuildRegexFromUi\"\n />\n\n <KdsToggleButton\n v-model=\"excludeMatches\"\n size=\"xsmall\"\n variant=\"outlined\"\n leading-icon=\"arrows-order\"\n :title=\"excludeMatchesAriaLabel\"\n :aria-label=\"excludeMatchesAriaLabel\"\n :disabled=\"props.disabled\"\n @update:model-value=\"rebuildRegexFromUi\"\n />\n\n <KdsToggleButton\n v-model=\"useRegex\"\n size=\"xsmall\"\n variant=\"outlined\"\n leading-icon=\"regex\"\n :title=\"patternModeAriaLabel\"\n :aria-label=\"patternModeAriaLabel\"\n :disabled=\"props.disabled\"\n @update:model-value=\"rebuildRegexFromUi\"\n />\n </template>\n </BaseInput>\n </template>\n </BaseFormFieldWrapper>\n</template>\n","<script setup lang=\"ts\">\nimport { useTemplateRef } from \"vue\";\n\nimport BaseFormFieldWrapper from \"../../_helper/BaseFormFieldWrapper.vue\";\nimport type { KdsFormFieldExpose } from \"../../types.ts\";\nimport BaseInput from \"../BaseInput.vue\";\n\nimport type { KdsSearchInputProps } from \"./types\";\n\nconst props = withDefaults(defineProps<KdsSearchInputProps>(), {\n placeholder: \"Search\",\n disabled: false,\n error: false,\n validating: false,\n preserveSubTextSpace: false,\n});\n\nconst modelValue = defineModel<string>({ default: \"\" });\n\nconst emit = defineEmits<{\n /** Native focus event forwarded from the input element. */\n focus: [event: FocusEvent];\n /** Native blur event forwarded from the input element. */\n blur: [event: FocusEvent];\n /** Native keydown event forwarded from the input element. */\n keydown: [event: KeyboardEvent];\n}>();\n\nconst baseInput = useTemplateRef(\"baseInput\");\n\ndefineExpose<KdsFormFieldExpose>({\n focus: () => baseInput.value?.focus(),\n});\n</script>\n\n<template>\n <BaseFormFieldWrapper v-bind=\"props\">\n <template #default=\"slotProps\">\n <BaseInput\n ref=\"baseInput\"\n v-bind=\"slotProps\"\n v-model=\"modelValue\"\n type=\"search\"\n :placeholder=\"props.placeholder\"\n :disabled=\"props.disabled\"\n :error=\"props.error\"\n :autocomplete=\"props.autocomplete\"\n leading-icon=\"search\"\n :clearable=\"true\"\n @focus=\"emit('focus', $event)\"\n @blur=\"emit('blur', $event)\"\n @keydown=\"emit('keydown', $event)\"\n />\n </template>\n </BaseFormFieldWrapper>\n</template>\n","<script setup lang=\"ts\">\nimport { computed, useTemplateRef, watch } from \"vue\";\nimport { useResizeObserver } from \"@vueuse/core\";\n\nimport BaseFormFieldWrapper from \"../../_helper/BaseFormFieldWrapper.vue\";\nimport type { KdsFormFieldExpose } from \"../../types.ts\";\n\nimport type { KdsTextareaProps } from \"./types\";\n\nconst props = withDefaults(defineProps<KdsTextareaProps>(), {\n placeholder: \"\",\n rows: 3,\n disabled: false,\n error: false,\n validating: false,\n preserveSubTextSpace: false,\n});\n\nconst normalizedRows = computed(() => Math.max(1, props.rows));\n\nconst modelValue = defineModel<string>({ default: \"\" });\n\nconst textareaElement = useTemplateRef(\"textareaElement\");\n\nfunction resize() {\n const element = textareaElement.value;\n if (!element) {\n return;\n }\n\n // Reset height so scrollHeight reflects the full content height for shrinking.\n element.style.height = \"auto\";\n\n const scrollHeight = element.scrollHeight;\n const offsetHeight = element.offsetHeight;\n if (scrollHeight <= offsetHeight) {\n return;\n }\n\n element.style.height = `${scrollHeight}px`;\n}\n\nuseResizeObserver(textareaElement, resize);\nwatch(modelValue, resize, { immediate: true });\n\ndefineExpose<KdsFormFieldExpose>({\n focus: () => {\n textareaElement.value?.focus();\n },\n});\n</script>\n\n<template>\n <BaseFormFieldWrapper v-bind=\"props\">\n <template #default=\"slotProps\">\n <textarea\n v-bind=\"slotProps\"\n ref=\"textareaElement\"\n v-model=\"modelValue\"\n :class=\"{ invalid: props.error }\"\n :rows=\"normalizedRows\"\n :placeholder=\"props.placeholder\"\n :disabled=\"props.disabled\"\n :autocomplete=\"props.autocomplete\"\n />\n </template>\n </BaseFormFieldWrapper>\n</template>\n\n<style scoped>\ntextarea {\n box-sizing: border-box;\n width: 100%;\n padding: calc(\n var(--kds-spacing-container-0-5x) - var(--kds-core-border-width-xs)\n );\n overflow: hidden;\n font: var(--kds-font-base-body-small);\n color: var(--kds-color-text-and-icon-neutral);\n resize: none;\n outline: none;\n scrollbar-width: none;\n background: var(--kds-color-background-input-initial);\n border: var(--kds-border-action-input);\n border-radius: var(--kds-border-radius-container-0-37x);\n -ms-overflow-style: none;\n\n &.invalid {\n border: var(--kds-border-action-error);\n }\n\n &::placeholder {\n color: var(--kds-color-text-and-icon-subtle);\n }\n\n &:disabled {\n color: var(--kds-color-text-and-icon-disabled);\n cursor: default;\n border: var(--kds-border-action-disabled);\n border-color: var(--kds-color-border-disabled);\n\n &::placeholder {\n color: var(--kds-color-text-and-icon-disabled);\n }\n }\n\n &:hover:not(:disabled, :focus) {\n background: var(--kds-color-background-input-hover);\n }\n\n &:focus:not(:disabled) {\n outline: var(--kds-border-action-focused);\n outline-offset: var(--kds-spacing-offset-focus);\n }\n}\n\ntextarea::-webkit-scrollbar {\n display: none;\n}\n</style>\n","<script setup lang=\"ts\">\nimport { computed, useId } from \"vue\";\n\nimport KdsIcon from \"../../../accessories/Icon/KdsIcon.vue\";\nimport ListItemAccessory from \"../../_helper/List/ListItemAccessory/ListItemAccessory.vue\";\n\nimport type { BaseDropdownProps } from \"./types\";\n\nconst props = withDefaults(defineProps<BaseDropdownProps>(), {\n text: undefined,\n disabled: false,\n error: false,\n missing: false,\n accessory: undefined,\n\n id: undefined,\n ariaLabelledby: undefined,\n ariaDescribedby: undefined,\n ariaLabel: undefined,\n ariaInvalid: undefined,\n popoverId: undefined,\n});\n\nconst open = defineModel<boolean>(\"open\", { default: false });\n\nconst valueTextId = useId();\n\nconst ariaLabelledby = computed(() => {\n if (props.ariaLabel) {\n return undefined;\n }\n if (!props.ariaLabelledby) {\n return valueTextId;\n }\n return `${props.ariaLabelledby} ${valueTextId}`;\n});\n\nconst effectiveAriaLabel = computed(() => {\n if (!props.ariaLabel) {\n return undefined;\n }\n const displayText = props.text ?? props.placeholder;\n return `${props.ariaLabel}, ${displayText}`;\n});\n\nconst emit = defineEmits<{\n click: [];\n keydown: [event: KeyboardEvent];\n}>();\n\nconst onKeydown = (event: KeyboardEvent) => {\n if (props.disabled) {\n return;\n }\n\n emit(\"keydown\", event);\n\n switch (event.key) {\n case \"ArrowDown\":\n case \"ArrowUp\":\n event.preventDefault();\n if (!open.value) {\n open.value = true;\n }\n break;\n }\n};\n</script>\n\n<template>\n <button\n :id=\"props.id\"\n class=\"kds-dropdown-trigger-button\"\n type=\"button\"\n :aria-expanded=\"open\"\n :aria-labelledby=\"ariaLabelledby\"\n :aria-describedby=\"props.ariaDescribedby\"\n :aria-label=\"effectiveAriaLabel\"\n :aria-invalid=\"props.ariaInvalid\"\n :aria-controls=\"props.popoverId\"\n aria-haspopup=\"dialog\"\n :disabled=\"props.disabled\"\n :class=\"{ error: props.error }\"\n @click=\"!props.disabled && emit('click')\"\n @keydown=\"onKeydown\"\n >\n <span v-if=\"props.accessory\" class=\"leading\" aria-hidden=\"true\">\n <ListItemAccessory :accessory=\"props.accessory\" size=\"medium\" />\n </span>\n\n <span\n :id=\"valueTextId\"\n class=\"text\"\n :class=\"{\n placeholder: !props.text && !props.disabled,\n missing: props.missing,\n }\"\n >\n {{ props.text ?? props.placeholder }}\n </span>\n\n <span class=\"trailing\" aria-hidden=\"true\">\n <KdsIcon :name=\"open ? 'chevron-up' : 'chevron-down'\" size=\"small\" />\n </span>\n </button>\n</template>\n\n<style scoped>\n.kds-dropdown-trigger-button {\n display: flex;\n align-items: center;\n width: 100%;\n height: var(--kds-dimension-component-height-1-75x);\n padding: 0\n calc(var(--kds-spacing-container-0-25x) - var(--kds-core-border-width-xs));\n font: var(--kds-font-base-body-small);\n color: var(--kds-color-text-and-icon-neutral);\n cursor: pointer;\n background: var(--kds-color-background-input-initial);\n border: var(--kds-border-action-input);\n border-radius: var(--kds-border-radius-container-0-37x);\n\n &:focus-visible {\n outline: var(--kds-border-action-focused);\n outline-offset: var(--kds-spacing-offset-focus);\n }\n\n &.error {\n border: var(--kds-border-action-error);\n }\n\n &:disabled {\n color: var(--kds-color-text-and-icon-disabled);\n cursor: default;\n border: var(--kds-border-action-disabled);\n border-color: var(--kds-color-border-disabled);\n }\n\n &:not(:disabled, :focus):hover {\n background: var(--kds-color-background-input-hover);\n }\n}\n\n.leading {\n display: flex;\n flex-shrink: 0;\n align-items: center;\n width: var(--kds-dimension-component-width-1x);\n height: var(--kds-dimension-component-width-1x);\n margin-left: var(--kds-spacing-container-0-12x);\n}\n\n.text {\n flex: 1 0 0;\n min-width: 0;\n padding: var(--kds-spacing-container-0-25x);\n overflow: hidden;\n text-overflow: ellipsis;\n text-align: left;\n white-space: nowrap;\n\n &.placeholder {\n color: var(--kds-color-text-and-icon-subtle);\n }\n\n &.missing {\n color: var(--kds-color-text-and-icon-danger);\n }\n}\n\n.trailing {\n display: flex;\n flex-shrink: 0;\n align-items: center;\n justify-content: center;\n padding-right: calc(\n var(--kds-spacing-container-0-12x) + 2 * var(--kds-core-border-width-xs)\n );\n}\n</style>\n","<script setup lang=\"ts\">\nimport { computed, ref, useTemplateRef } from \"vue\";\n\nimport type { KdsListOption } from \"../../_helper/List/ListContainer\";\nimport { KdsListContainer } from \"../../_helper/List/ListContainer\";\nimport BaseInput from \"../../inputs/BaseInput.vue\";\n\nimport type { DropdownContainerProps, KdsDropdownOption } from \"./types\";\n\nconst props = defineProps<DropdownContainerProps>();\n\nconst modelValue = defineModel<string>({ default: \"\" });\n\nconst searchValue = ref(\"\");\n\nconst searchEl = useTemplateRef(\"searchEl\");\nconst listContainerRef = useTemplateRef(\"listContainer\");\n\ntype DropdownOptionWithMissing = KdsDropdownOption & { missing?: boolean };\n\nconst optionsWithSyntheticMissing = computed<DropdownOptionWithMissing[]>(\n () => {\n if (!modelValue.value) {\n return props.possibleValues;\n }\n\n const hasSelected = props.possibleValues.some(\n (o) => o.id === modelValue.value,\n );\n if (hasSelected) {\n return props.possibleValues;\n }\n\n return [\n {\n id: modelValue.value,\n text: modelValue.value,\n missing: true,\n },\n ...props.possibleValues,\n ];\n },\n);\n\nconst filteredOptions = computed(() => {\n const normalizedQuery = searchValue.value.trim().toLowerCase();\n\n const base = optionsWithSyntheticMissing.value;\n if (normalizedQuery.length === 0) {\n return base;\n }\n\n return base.filter((option) =>\n option.text.toLowerCase().includes(normalizedQuery),\n );\n});\n\nconst listOptions = computed<KdsListOption[]>(() =>\n filteredOptions.value.map((option) => ({\n id: option.id,\n text: option.text,\n subText: option.subText,\n accessory: option.accessory,\n disabled: option.disabled || option.missing,\n selected: option.id === modelValue.value,\n special: option.special,\n missing: option.missing,\n })),\n);\n\nconst hasMultiline = computed(() =>\n props.possibleValues.some((o) => o.subText !== undefined),\n);\n\ndefineExpose({\n focus: () => searchEl.value?.focus(),\n});\n</script>\n\n<template>\n <div class=\"kds-dropdown-container\">\n <div class=\"kds-dropdown-container-sticky-top\">\n <BaseInput\n ref=\"searchEl\"\n v-model=\"searchValue\"\n type=\"search\"\n placeholder=\"Search\"\n :aria-label=\"'Filter options'\"\n :aria-activedescendant=\"listContainerRef?.activeDescendant\"\n leading-icon=\"search\"\n :clearable=\"true\"\n @keydown=\"listContainerRef?.handleKeydown($event)\"\n @focus=\"listContainerRef?.handleFocus()\"\n @blur=\"listContainerRef?.handleBlur()\"\n />\n </div>\n\n <KdsListContainer\n ref=\"listContainer\"\n class=\"kds-dropdown-container-list\"\n :class=\"{ multiline: hasMultiline }\"\n :possible-values=\"props.loading ? [] : listOptions\"\n :loading=\"props.loading\"\n :empty-text=\"props.emptyText\"\n controlled-externally\n aria-label=\"Dropdown options\"\n @item-click=\"modelValue = $event\"\n />\n </div>\n</template>\n\n<style scoped>\n.kds-dropdown-container {\n display: flex;\n flex-direction: column;\n background-color: var(--kds-color-surface-default);\n border-radius: var(--kds-border-radius-container-0-50x);\n box-shadow: var(--kds-elevation-level-3);\n}\n\n.kds-dropdown-container-sticky-top {\n padding: var(--kds-spacing-container-0-25x);\n background-color: var(--kds-color-surface-default);\n border-bottom: var(--kds-border-base-subtle);\n}\n\n.kds-dropdown-container-list {\n max-height: var(--kds-dimension-component-height-12x);\n\n &.multiline {\n max-height: var(--kds-dimension-component-height-20x);\n }\n}\n</style>\n","<script setup lang=\"ts\">\nimport {\n computed,\n nextTick,\n ref,\n useTemplateRef,\n watch,\n watchEffect,\n} from \"vue\";\n\nimport KdsPopover from \"../../../overlays/Popover/KdsPopover.vue\";\nimport BaseFormFieldWrapper from \"../../_helper/BaseFormFieldWrapper.vue\";\n\nimport BaseDropdown from \"./BaseDropdown.vue\";\nimport DropdownContainer from \"./DropdownContainer.vue\";\nimport type { KdsDropdownProps } from \"./types.ts\";\n\nconst props = withDefaults(defineProps<KdsDropdownProps>(), {\n placeholder: \"Select\",\n disabled: false,\n loading: false,\n error: false,\n validating: false,\n preserveSubTextSpace: false,\n});\n\nconst modelValue = defineModel<string>({ default: \"\" });\n\nconst open = ref(false);\nconst popoverEl = useTemplateRef(\"popoverEl\");\nconst dropdownContainerEl = useTemplateRef(\"dropdownContainerEl\");\n\nconst selectedOption = computed(() =>\n props.possibleValues.find((o) => o.id === modelValue.value),\n);\n\n/** Focus search field on opening of dropdown */\nwatchEffect(() => {\n if (open.value) {\n nextTick(() => dropdownContainerEl.value?.focus());\n }\n});\n\n/** Close dropdown on value selection */\nwatch(modelValue, () => {\n if (open.value) {\n open.value = false;\n }\n});\n</script>\n\n<template>\n <BaseFormFieldWrapper\n :id=\"props.id\"\n :label=\"props.label\"\n :aria-label=\"props.ariaLabel\"\n :description=\"props.description\"\n :sub-text=\"props.subText\"\n :error=\"props.error\"\n :validating=\"props.validating\"\n :preserve-sub-text-space=\"props.preserveSubTextSpace\"\n >\n <template #default=\"slotProps\">\n <BaseDropdown\n v-bind=\"slotProps\"\n v-model:open=\"open\"\n :text=\"\n modelValue && !selectedOption\n ? `(Missing) ${modelValue}`\n : selectedOption?.text\n \"\n :placeholder=\"props.placeholder\"\n :disabled=\"props.disabled\"\n :error=\"props.error\"\n :missing=\"!!modelValue && !selectedOption\"\n :accessory=\"selectedOption?.accessory\"\n :style=\"popoverEl?.anchorStyle\"\n :popover-id=\"popoverEl?.popoverId\"\n @click=\"open = !open\"\n />\n\n <KdsPopover\n ref=\"popoverEl\"\n v-model=\"open\"\n placement=\"bottom-left\"\n role=\"dialog\"\n full-width\n popover-aria-label=\"Searchable dropdown options\"\n >\n <DropdownContainer\n ref=\"dropdownContainerEl\"\n v-model=\"modelValue\"\n :possible-values=\"props.possibleValues\"\n :loading=\"props.loading\"\n empty-text=\"No entries found\"\n />\n </KdsPopover>\n </template>\n </BaseFormFieldWrapper>\n</template>\n","<script setup lang=\"ts\">\nimport { useTemplateRef } from \"vue\";\n\nimport { KdsIcon } from \"../../../../accessories\";\nimport { useKdsIsTruncated } from \"../../../../util\";\n\nimport type { KdsListItemButtonProps } from \"./types.ts\";\n\nconst props = withDefaults(defineProps<KdsListItemButtonProps>(), {\n disabled: false,\n});\n\nconst emit = defineEmits<{\n /**\n * Emitted when the button item is clicked.\n */\n click: [event: MouseEvent];\n}>();\n\nconst labelEl = useTemplateRef(\"labelEl\");\nconst { isTruncated: isLabelTruncated } = useKdsIsTruncated(labelEl);\n</script>\n\n<template>\n <button\n type=\"button\"\n :disabled=\"props.disabled\"\n class=\"kds-list-item-button\"\n @click=\"emit('click', $event)\"\n >\n <KdsIcon\n :name=\"props.leadingIcon\"\n size=\"small\"\n :disabled=\"props.disabled\"\n />\n\n <span\n ref=\"labelEl\"\n class=\"label\"\n :title=\"isLabelTruncated ? props.label : undefined\"\n >\n {{ props.label }}\n </span>\n </button>\n</template>\n\n<style scoped>\n.kds-list-item-button {\n position: relative;\n display: flex;\n gap: var(--kds-spacing-container-0-25x);\n align-items: center;\n width: 100%;\n min-width: var(--kds-dimension-component-width-12x);\n padding: var(--kds-spacing-container-0-25x) var(--kds-spacing-container-0-5x);\n font: var(--kds-font-base-interactive-small);\n color: var(--kds-color-text-and-icon-neutral);\n text-align: left;\n cursor: pointer;\n user-select: none;\n background: var(--kds-color-background-neutral-initial);\n border: none;\n border-radius: var(--kds-border-radius-container-0-31x);\n\n .label {\n flex: 1 1 auto;\n min-width: 0;\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n }\n\n &:disabled {\n color: var(--kds-color-text-and-icon-disabled);\n pointer-events: none;\n cursor: default;\n }\n\n &:focus-visible:not(:disabled) {\n outline: var(--kds-border-action-focused);\n outline-offset: var(--kds-spacing-offset-focus);\n }\n\n &:hover:not(:disabled) {\n background: var(--kds-color-background-neutral-hover);\n }\n\n &:active:not(:disabled) {\n background: var(--kds-color-background-neutral-active);\n }\n}\n</style>\n","<script setup lang=\"ts\">\nimport { computed, ref, useId, useTemplateRef } from \"vue\";\n\nimport { KdsListItemButton } from \"../../_helper/List/KdsListItemButton\";\nimport { KdsListContainer } from \"../../_helper/List/ListContainer\";\nimport type { KdsListOption } from \"../../_helper/List/ListContainer\";\nimport BaseInput from \"../../inputs/BaseInput.vue\";\n\nimport type {\n KdsDropdownOption,\n KdsMultiSelectDropdownContainerProps,\n} from \"./types\";\n\nconst ADD_NEW_VALUE_ID = `__kds-add-new-${useId()}__`;\n\nconst props = withDefaults(\n defineProps<KdsMultiSelectDropdownContainerProps>(),\n {\n loading: false,\n allowNewValues: false,\n },\n);\n\nconst emit = defineEmits<{\n /** Emitted when the user adds a new value via the search field (only when `allowNewValues` is true). The parent must append a matching option to `possibleValues` and add the id to `modelValue`. */\n addValue: [text: string];\n}>();\n\nconst modelValue = defineModel<string[]>({ default: () => [] });\n\nconst searchValue = defineModel<string>(\"searchValue\", { default: \"\" });\nconst searchEl = useTemplateRef(\"searchEl\");\nconst listContainerRef = useTemplateRef(\"listContainer\");\n\n/** Snapshot of selected IDs captured when the container is opened, used to keep sort order stable. */\nconst initialSelectedIds = ref(new Set<string>());\n\nconst knownIds = computed(() => new Set(props.possibleValues.map((o) => o.id)));\n\nconst syntheticMissingOptions = computed<KdsDropdownOption[]>(() =>\n modelValue.value\n .filter((id) => !knownIds.value.has(id))\n .map((id) => ({ id, text: id })),\n);\n\nconst filteredOptions = computed<KdsDropdownOption[]>(() => {\n const normalizedQuery = searchValue.value.trim().toLowerCase();\n\n if (normalizedQuery.length === 0) {\n return props.possibleValues;\n }\n\n return props.possibleValues.filter((option) =>\n option.text.toLowerCase().includes(normalizedQuery),\n );\n});\n\nconst canAddNewValue = computed(() => {\n const trimmed = searchValue.value.trim();\n if (!props.allowNewValues || trimmed.length === 0) {\n return false;\n }\n const lower = trimmed.toLowerCase();\n const existsInOptions = props.possibleValues.some(\n (o) => o.text.toLowerCase() === lower,\n );\n const idCollision = knownIds.value.has(trimmed);\n const alreadySelected = modelValue.value.includes(trimmed);\n return !existsInOptions && !idCollision && !alreadySelected;\n});\n\nconst listOptions = computed<KdsListOption[]>(() => {\n const selectedSet = new Set(modelValue.value);\n\n const addNewItem: KdsListOption[] = canAddNewValue.value\n ? [\n {\n id: ADD_NEW_VALUE_ID,\n text: searchValue.value.trim(),\n accessory: { type: \"icon\", name: \"plus\" },\n separator: true,\n },\n ]\n : [];\n\n const missingItems: KdsListOption[] = syntheticMissingOptions.value.map(\n (option) => ({\n id: option.id,\n text: option.text,\n selected: true,\n missing: true,\n }),\n );\n\n const regularItems: KdsListOption[] = filteredOptions.value\n .map((option) => ({\n id: option.id,\n text: option.text,\n subText: option.subText,\n special: option.special,\n accessory: option.accessory,\n selected: selectedSet.has(option.id),\n disabled: option.disabled,\n }))\n .slice()\n .sort(\n (a, b) =>\n Number(initialSelectedIds.value.has(b.id)) -\n Number(initialSelectedIds.value.has(a.id)),\n );\n\n return [...addNewItem, ...missingItems, ...regularItems];\n});\n\nconst visibleEnabledIds = computed(() =>\n filteredOptions.value.filter((o) => !o.disabled).map((o) => o.id),\n);\n\nconst anyVisibleSelected = computed(() =>\n visibleEnabledIds.value.some((id) => modelValue.value.includes(id)),\n);\n\nconst onItemClick = (id: string) => {\n if (id === ADD_NEW_VALUE_ID) {\n const trimmed = searchValue.value.trim();\n if (trimmed.length > 0) {\n emit(\"addValue\", trimmed);\n searchValue.value = \"\";\n }\n return;\n }\n modelValue.value = modelValue.value.includes(id)\n ? modelValue.value.filter((entryId) => entryId !== id)\n : [...modelValue.value, id];\n};\n\nconst onSelectAllOrClearAll = () => {\n const ids = new Set(visibleEnabledIds.value);\n if (anyVisibleSelected.value) {\n modelValue.value = modelValue.value.filter((id) => !ids.has(id));\n } else {\n const alreadySelected = new Set(modelValue.value);\n const toAdd = visibleEnabledIds.value.filter(\n (id) => !alreadySelected.has(id),\n );\n modelValue.value = [...modelValue.value, ...toAdd];\n }\n};\n\ndefineExpose({\n focus: () => {\n initialSelectedIds.value = new Set(modelValue.value);\n searchEl.value?.focus();\n },\n});\n</script>\n\n<template>\n <div class=\"kds-multi-select-dropdown-options\">\n <div class=\"kds-multi-select-dropdown-search\">\n <BaseInput\n ref=\"searchEl\"\n v-model=\"searchValue\"\n type=\"search\"\n placeholder=\"Search\"\n :aria-label=\"'Filter options'\"\n :aria-activedescendant=\"listContainerRef?.activeDescendant\"\n leading-icon=\"search\"\n :clearable=\"true\"\n @keydown=\"listContainerRef?.handleKeydown($event)\"\n @focus=\"listContainerRef?.handleFocus()\"\n @blur=\"listContainerRef?.handleBlur()\"\n />\n </div>\n\n <KdsListContainer\n ref=\"listContainer\"\n class=\"kds-multi-select-dropdown-list\"\n :class=\"{\n multiline: props.possibleValues.some((o) => o.subText !== undefined),\n }\"\n :possible-values=\"props.loading ? [] : listOptions\"\n :loading=\"props.loading\"\n :empty-text=\"props.emptyText\"\n controlled-externally\n aria-label=\"Dropdown options\"\n @item-click=\"onItemClick\"\n />\n\n <div\n v-if=\"!props.loading && visibleEnabledIds.length > 0\"\n class=\"kds-multi-select-dropdown-footer\"\n >\n <KdsListItemButton\n :label=\"anyVisibleSelected ? 'Clear all' : 'Select all'\"\n :leading-icon=\"anyVisibleSelected ? 'trash' : 'checkmark'\"\n :disabled=\"filteredOptions.every((o) => o.disabled)\"\n @click=\"onSelectAllOrClearAll\"\n />\n </div>\n </div>\n</template>\n\n<style scoped>\n.kds-multi-select-dropdown-options {\n display: flex;\n flex-direction: column;\n min-width: var(--kds-dimension-component-width-12x);\n background: var(--kds-color-surface-default);\n border-radius: var(--kds-border-radius-container-0-50x);\n box-shadow: var(--kds-elevation-level-3);\n}\n\n.kds-multi-select-dropdown-search {\n padding: var(--kds-spacing-container-0-25x);\n border-bottom: var(--kds-border-base-subtle);\n}\n\n.kds-multi-select-dropdown-list {\n max-height: var(--kds-dimension-component-height-12x);\n\n &.multiline {\n max-height: var(--kds-dimension-component-height-20x);\n }\n}\n\n.kds-multi-select-dropdown-footer {\n padding: var(--kds-spacing-container-0-25x);\n border-top: var(--kds-border-base-subtle);\n}\n</style>\n","<script setup lang=\"ts\">\nimport {\n computed,\n nextTick,\n ref,\n useTemplateRef,\n watch,\n watchEffect,\n} from \"vue\";\n\nimport KdsPopover from \"../../../overlays/Popover/KdsPopover.vue\";\nimport BaseFormFieldWrapper from \"../../_helper/BaseFormFieldWrapper.vue\";\n\nimport BaseDropdown from \"./BaseDropdown.vue\";\nimport MultiSelectDropdownContainer from \"./MultiSelectDropdownContainer.vue\";\nimport type { KdsDropdownOption, KdsMultiSelectDropdownProps } from \"./types\";\n\nconst props = withDefaults(defineProps<KdsMultiSelectDropdownProps>(), {\n placeholder: \"Select\",\n disabled: false,\n loading: false,\n allowNewValues: false,\n error: false,\n validating: false,\n preserveSubTextSpace: false,\n});\n\nconst modelValue = defineModel<string[]>({ default: () => [] });\n\nconst open = ref(false);\nconst dropdownContainerEl = useTemplateRef(\"dropdownContainerEl\");\nconst popoverEl = useTemplateRef(\"popoverEl\");\n\nwatchEffect(() => {\n if (open.value) {\n nextTick(() => dropdownContainerEl.value?.focus());\n }\n});\n\n/** Options added by the user via the combo-box search field. */\nconst addedOptions = ref<KdsDropdownOption[]>([]);\n\n/**\n * When `allowNewValues` is false, reset added options whenever possibleValues\n * change (mirrors the old ComboBox behaviour where allPossibleItems syncs\n * with props). When `allowNewValues` is true the additions persist.\n */\nwatch(\n [() => props.possibleValues, () => props.allowNewValues],\n ([, allowNew]) => {\n if (!allowNew) {\n addedOptions.value = [];\n }\n },\n);\n\nconst allPossibleValues = computed(() => {\n const baseIds = new Set(props.possibleValues.map((o) => o.id));\n const deduped = addedOptions.value.filter((o) => !baseIds.has(o.id));\n return [...props.possibleValues, ...deduped];\n});\n\nconst optionById = computed(\n () => new Map(allPossibleValues.value.map((item) => [item.id, item])),\n);\n\nconst missingIds = computed(() =>\n modelValue.value.filter((id) => !optionById.value.has(id)),\n);\n\nconst summary = computed(() => {\n if (modelValue.value.length === 0) {\n return undefined;\n }\n\n if (missingIds.value.length > 0) {\n return `(Missing) ${missingIds.value[0]}`;\n }\n\n return `Selected (${modelValue.value.length}/${allPossibleValues.value.length})`;\n});\n\nconst onAddValue = (text: string) => {\n addedOptions.value = [...addedOptions.value, { id: text, text }];\n modelValue.value = [...modelValue.value, text];\n};\n</script>\n\n<template>\n <BaseFormFieldWrapper\n :id=\"props.id\"\n :label=\"props.label\"\n :aria-label=\"props.ariaLabel\"\n :description=\"props.description\"\n :sub-text=\"props.subText\"\n :error=\"props.error\"\n :validating=\"props.validating\"\n :preserve-sub-text-space=\"props.preserveSubTextSpace\"\n >\n <template #default=\"slotProps\">\n <BaseDropdown\n v-bind=\"slotProps\"\n v-model:open=\"open\"\n :text=\"summary\"\n :placeholder=\"props.placeholder\"\n :disabled=\"props.disabled\"\n :error=\"props.error\"\n :missing=\"missingIds.length > 0\"\n :style=\"popoverEl?.anchorStyle\"\n :popover-id=\"popoverEl?.popoverId\"\n @click=\"open = !open\"\n />\n\n <KdsPopover\n ref=\"popoverEl\"\n v-model=\"open\"\n placement=\"bottom-left\"\n role=\"dialog\"\n full-width\n popover-aria-label=\"Multi select dropdown options\"\n >\n <MultiSelectDropdownContainer\n ref=\"dropdownContainerEl\"\n v-model=\"modelValue\"\n :possible-values=\"allPossibleValues\"\n :loading=\"props.loading\"\n :allow-new-values=\"props.allowNewValues\"\n empty-text=\"No entries found\"\n @add-value=\"onAddValue\"\n />\n </KdsPopover>\n </template>\n </BaseFormFieldWrapper>\n</template>\n","<script setup lang=\"ts\">\n/**\n * @slot default - Custom content for the popover. When provided, overrides the `content` prop.\n */\n\nconst props = defineProps<{\n /**\n * Content to display inside the info popover. Used when no default slot is provided.\n */\n content?: string;\n}>();\n</script>\n\n<template>\n <div class=\"kds-info-popover-content\">\n <slot>{{ props.content }}</slot>\n </div>\n</template>\n\n<style scoped>\n.kds-info-popover-content {\n max-width: var(--kds-dimension-component-width-25x);\n padding: var(--kds-spacing-container-0-75x);\n font: var(--kds-font-base-body-small);\n color: var(--kds-color-text-and-icon-neutral);\n background-color: var(--kds-color-surface-default);\n border-radius: var(--kds-border-radius-container-0-37x);\n box-shadow: var(--kds-elevation-level-3);\n}\n</style>\n","<script setup lang=\"ts\">\nimport { ref, useTemplateRef } from \"vue\";\n\nimport KdsIcon from \"../../../accessories/Icon/KdsIcon.vue\";\nimport KdsPopover from \"../../../overlays/Popover/KdsPopover.vue\";\n\nimport InfoPopover from \"./InfoPopover.vue\";\nimport type { KdsInfoToggleButtonProps } from \"./types\";\n\n/**\n * @slot default - Custom content for the popover. When provided, overrides the `content` prop.\n */\n\nconst props = withDefaults(defineProps<KdsInfoToggleButtonProps>(), {\n hidden: false,\n});\n\nconst TITLE = \"Click for more information\";\n\nconst modelValue = defineModel<boolean>({ default: false });\nconst popoverEl = useTemplateRef(\"popoverEl\");\nconst isHovered = ref(false);\nconst isFocused = ref(false);\n</script>\n\n<template>\n <button\n v-bind=\"$attrs\"\n :class=\"{\n 'info-toggle-button': true,\n selected: modelValue,\n hidden: props.hidden && !modelValue && !isHovered && !isFocused,\n }\"\n :title=\"TITLE\"\n :aria-label=\"TITLE\"\n :aria-pressed=\"modelValue\"\n :aria-expanded=\"modelValue\"\n :aria-controls=\"popoverEl?.popoverId\"\n aria-haspopup=\"dialog\"\n :style=\"popoverEl?.anchorStyle\"\n type=\"button\"\n @click=\"modelValue = !modelValue\"\n @mouseenter=\"isHovered = true\"\n @mouseleave=\"isHovered = false\"\n @focus=\"isFocused = true\"\n @blur=\"isFocused = false\"\n >\n <KdsIcon name=\"circle-question\" size=\"small\" />\n </button>\n\n <KdsPopover\n ref=\"popoverEl\"\n v-model=\"modelValue\"\n placement=\"top-right\"\n role=\"dialog\"\n popover-aria-label=\"Description\"\n >\n <InfoPopover :content=\"props.content\">\n <slot />\n </InfoPopover>\n </KdsPopover>\n</template>\n\n<style scoped>\n.info-toggle-button {\n --bg-initial: transparent;\n --bg-hover: var(--kds-color-background-neutral-hover);\n --bg-active: var(--kds-color-background-neutral-active);\n --border: var(--kds-border-action-transparent);\n --icon-color: var(--kds-color-text-and-icon-neutral);\n\n display: inline-flex;\n flex-shrink: 0;\n align-items: center;\n justify-content: center;\n width: var(--kds-dimension-component-width-1x);\n height: var(--kds-dimension-component-height-1x);\n padding: 0;\n color: var(--icon-color);\n cursor: pointer;\n background-color: var(--bg-initial);\n border: var(--border);\n border-radius: var(--kds-border-radius-container-0-12x);\n opacity: 1;\n\n &.hidden {\n opacity: 0;\n }\n\n &:focus-visible {\n outline: var(--kds-border-action-focused);\n outline-offset: var(--kds-spacing-offset-focus);\n }\n\n &:hover {\n background-color: var(--bg-hover);\n }\n\n &:active {\n background-color: var(--bg-active);\n }\n\n &.selected {\n --bg-initial: var(--kds-color-background-selected-initial);\n --bg-hover: var(--kds-color-background-selected-hover);\n --bg-active: var(--kds-color-background-selected-active);\n --border: var(--kds-border-action-selected);\n --icon-color: var(--kds-color-text-and-icon-selected);\n }\n}\n</style>\n","<script setup lang=\"ts\">\n/**\n * @slot default - Custom content for the popover. When provided, overrides the built-in placeholder layout and the `content` prop.\n */\nconst props = defineProps<{\n /**\n * Content to display inside the info popover. Used when no default slot is provided.\n */\n content?: string;\n}>();\n</script>\n\n<template>\n <div class=\"kds-variable-popover\">\n <slot>{{ props.content }}</slot>\n </div>\n</template>\n\n<style scoped>\n.kds-variable-popover {\n width: var(--kds-dimension-component-width-25x);\n max-width: 100%;\n padding: var(--kds-spacing-container-0-75x);\n font: var(--kds-font-base-body-small);\n color: var(--kds-color-text-and-icon-neutral);\n white-space: pre-wrap;\n background-color: var(--kds-color-surface-default);\n border-radius: var(--kds-border-radius-container-0-37x);\n box-shadow: var(--kds-elevation-level-3);\n}\n</style>\n","<script setup lang=\"ts\">\nimport { computed, ref, useTemplateRef } from \"vue\";\n\nimport KdsIcon from \"../../../accessories/Icon/KdsIcon.vue\";\nimport KdsPopover from \"../../../overlays/Popover/KdsPopover.vue\";\n\nimport VariablePopover from \"./VariablePopover.vue\";\nimport type { KdsVariableToggleButtonProps } from \"./types.ts\";\n\n/**\n * @slot default - Custom content for the popover. When provided, overrides the `content` prop.\n */\n\nconst props = withDefaults(defineProps<KdsVariableToggleButtonProps>(), {\n inSet: false,\n outSet: false,\n error: false,\n hidden: false,\n});\n\nconst modelValue = defineModel<boolean>({ default: false });\nconst popoverEl = useTemplateRef(\"popoverEl\");\nconst isHovered = ref(false);\nconst isFocused = ref(false);\n\nconst iconState = computed(() => {\n if (props.inSet && props.outSet) {\n return \"in-out\" as const;\n }\n\n if (props.inSet) {\n return \"in\" as const;\n }\n\n if (props.outSet) {\n return \"out\" as const;\n }\n\n return \"none\" as const;\n});\n\nconst iconName = computed(() => {\n switch (iconState.value) {\n case \"in\":\n return \"flow-variable-in\";\n case \"out\":\n return \"flow-variable-out\";\n case \"in-out\":\n return \"flow-variable-in-out\";\n case \"none\":\n default:\n return \"flow-variable-default\";\n }\n});\n\nconst baseTitleByState: Record<typeof iconState.value, string> = {\n in: \"Input Flow Variable\",\n out: \"Output Flow Variable\",\n \"in-out\": \"Input and Output Flow Variable\",\n none: \"No Flow Variable set\",\n};\n\nconst errorTitleByState: Partial<Record<typeof iconState.value, string>> = {\n in: \"Error in input Flow Variable\",\n out: \"Error in output Flow Variable\",\n \"in-out\": \"Error in Flow Variables\",\n};\n\nconst title = computed(() => {\n const baseTitle = baseTitleByState[iconState.value];\n if (!props.error) {\n return baseTitle;\n }\n return errorTitleByState[iconState.value] ?? baseTitle;\n});\n</script>\n\n<template>\n <button\n v-bind=\"$attrs\"\n :class=\"{\n 'variable-toggle-button': true,\n error: props.error,\n 'pressed-or-set': modelValue || props.inSet || props.outSet,\n hidden: props.hidden && !modelValue && !isHovered && !isFocused,\n }\"\n :title=\"title\"\n :aria-label=\"title\"\n :aria-pressed=\"modelValue\"\n :aria-expanded=\"modelValue\"\n :aria-controls=\"popoverEl?.popoverId\"\n aria-haspopup=\"dialog\"\n :style=\"popoverEl?.anchorStyle\"\n type=\"button\"\n @click=\"modelValue = !modelValue\"\n @mouseenter=\"isHovered = true\"\n @mouseleave=\"isHovered = false\"\n @focus=\"isFocused = true\"\n @blur=\"isFocused = false\"\n >\n <KdsIcon :name=\"iconName\" size=\"small\" />\n </button>\n\n <KdsPopover\n ref=\"popoverEl\"\n v-model=\"modelValue\"\n placement=\"bottom-right\"\n role=\"dialog\"\n popover-aria-label=\"Flow Variable settings\"\n >\n <VariablePopover v-if=\"modelValue\" :content=\"props.content\">\n <slot />\n </VariablePopover>\n </KdsPopover>\n</template>\n\n<style scoped>\n.variable-toggle-button {\n --bg-initial: var(--kds-color-background-neutral-initial);\n --bg-hover: var(--kds-color-background-neutral-hover);\n --bg-active: var(--kds-color-background-neutral-active);\n --border: var(--kds-border-action-transparent);\n --icon-color: var(--kds-color-text-and-icon-neutral);\n\n display: inline-flex;\n flex-shrink: 0;\n align-items: center;\n justify-content: center;\n width: var(--kds-dimension-component-width-1x);\n height: var(--kds-dimension-component-height-1x);\n padding: 0;\n color: var(--icon-color);\n cursor: pointer;\n background-color: var(--bg-initial);\n border: var(--border);\n border-radius: var(--kds-border-radius-container-0-12x);\n opacity: 1;\n\n &.hidden {\n opacity: 0;\n }\n\n &:focus-visible {\n outline: var(--kds-border-action-focused);\n outline-offset: var(--kds-spacing-offset-focus);\n }\n\n &:hover {\n background-color: var(--bg-hover);\n }\n\n &:active {\n background-color: var(--bg-active);\n }\n\n &.pressed-or-set {\n --bg-initial: var(--kds-color-background-selected-initial);\n --bg-hover: var(--kds-color-background-selected-hover);\n --bg-active: var(--kds-color-background-selected-active);\n --border: var(--kds-border-action-selected);\n --icon-color: var(--kds-color-text-and-icon-success);\n }\n\n &.error {\n --bg-initial: var(--kds-color-background-danger-initial);\n --bg-hover: var(--kds-color-background-danger-hover);\n --bg-active: var(--kds-color-background-danger-active);\n --border: var(--kds-border-action-error);\n --icon-color: var(--kds-color-text-and-icon-danger);\n }\n}\n</style>\n","<script setup lang=\"ts\">\nimport { computed } from \"vue\";\n\nimport type { KdsCardProps } from \"./types\";\n\nconst {\n variant = \"filled\",\n selectable = false,\n disabled = false,\n ariaLabel,\n ariaLabelledby,\n} = defineProps<KdsCardProps>();\n\n/**\n * Controls the selected state of the card when `selectable` is true.\n * When `selectable` is false, this model is ignored.\n */\nconst modelValue = defineModel<boolean>({ default: false });\n\nconst emit = defineEmits<{\n /**\n * Fired when the card is clicked.\n *\n * This event is only emitted when `selectable` is false.\n * Clicks while `selectable` is true toggle the card.\n */\n click: [event: MouseEvent];\n}>();\n\nconst selected = computed(() => modelValue.value && selectable);\n\nconst handleClick = (event: MouseEvent) => {\n if (selectable) {\n modelValue.value = !modelValue.value;\n } else {\n emit(\"click\", event);\n }\n};\n</script>\n\n<template>\n <button\n type=\"button\"\n class=\"kds-card\"\n :class=\"[`variant-${variant}`, { selected: selected }]\"\n :aria-label=\"ariaLabel\"\n :aria-labelledby=\"ariaLabelledby\"\n :aria-pressed=\"selectable ? modelValue : undefined\"\n :disabled=\"disabled\"\n @click=\"handleClick\"\n >\n <slot />\n </button>\n</template>\n\n<style scoped>\n.kds-card {\n position: relative;\n display: flex;\n flex-direction: column;\n width: 100%;\n padding: 0;\n font: inherit;\n color: inherit;\n text-align: start;\n cursor: pointer;\n outline: none;\n border-style: solid;\n border-radius: var(--kds-border-radius-container-0-50x);\n transition:\n background-color 0.2s,\n border-color 0.2s,\n box-shadow 0.2s;\n\n &:focus-visible {\n outline: var(--kds-border-action-focused);\n outline-offset: var(--kds-spacing-offset-focus);\n border-radius: var(--kds-border-radius-container-0-56x);\n }\n\n &:disabled {\n cursor: default;\n }\n}\n\n/* Variant: Filled, Value: False */\n.variant-filled {\n background: var(--kds-color-surface-default);\n border: var(--kds-border-base-subtle);\n\n &:hover:not(:disabled) {\n box-shadow: var(--kds-elevation-level-3);\n }\n\n &:active:not(:disabled) {\n background: var(--kds-color-background-neutral-active);\n box-shadow: var(--kds-elevation-level-1);\n }\n}\n\n/* Variant: Outlined, Value: False */\n.variant-outlined {\n background: var(--kds-color-background-neutral-initial);\n border: var(--kds-border-base-muted);\n\n &:hover:not(:disabled) {\n box-shadow: var(--kds-elevation-level-3);\n }\n\n &:active:not(:disabled) {\n background: var(--kds-color-background-neutral-active);\n box-shadow: var(--kds-elevation-level-1);\n }\n}\n\n/* Variant: Transparent, Value: False */\n.variant-transparent {\n background: var(--kds-color-background-neutral-initial);\n border: var(--kds-border-action-transparent);\n\n &:hover:not(:disabled) {\n background: var(--kds-color-background-neutral-hover);\n box-shadow: var(--kds-elevation-level-3);\n }\n\n &:active:not(:disabled) {\n background: var(--kds-color-background-neutral-active);\n box-shadow: var(--kds-elevation-level-1);\n }\n}\n\n/* Variant: Filled, Value: True */\n.variant-filled.selected {\n background: var(--kds-color-background-selected-initial);\n border: var(--kds-border-action-selected);\n\n &:hover:not(:disabled) {\n box-shadow: var(--kds-elevation-level-3);\n }\n\n &:active:not(:disabled) {\n background: var(--kds-color-background-selected-active);\n box-shadow: var(--kds-elevation-level-1);\n }\n}\n\n/* Variant: Outlined, Value: True */\n.variant-outlined.selected {\n background: var(--kds-color-background-selected-initial);\n border: var(--kds-border-action-selected);\n\n &:hover:not(:disabled) {\n box-shadow: var(--kds-elevation-level-3);\n }\n\n &:active:not(:disabled) {\n background: var(--kds-color-background-selected-active);\n box-shadow: var(--kds-elevation-level-1);\n }\n}\n\n/* Variant: Transparent, Value: True */\n.variant-transparent.selected {\n background: var(--kds-color-background-selected-initial);\n border: var(--kds-border-action-selected);\n\n &:hover:not(:disabled) {\n background: var(--kds-color-background-selected-initial);\n box-shadow: var(--kds-elevation-level-3);\n }\n\n &:active:not(:disabled) {\n background: var(--kds-color-background-selected-active);\n box-shadow: var(--kds-elevation-level-1);\n }\n}\n</style>\n","export const kdsCardVariant = {\n FILLED: \"filled\",\n OUTLINED: \"outlined\",\n TRANSPARENT: \"transparent\",\n} as const;\n\nexport const kdsCardVariants = Object.values(kdsCardVariant);\n","export type UnwrappedPromise<T = unknown> = {\n resolve: (value: T | PromiseLike<T>) => void;\n reject: (reason?: unknown) => void;\n promise: Promise<T>;\n};\n\nexport const createUnwrappedPromise = <T>(): UnwrappedPromise<T> => {\n let resolve: (value: T | PromiseLike<T>) => void = () => {};\n let reject: (reason?: unknown) => void = () => {};\n\n const promise = new Promise<T>((res, rej) => {\n resolve = res;\n reject = rej;\n });\n\n return { resolve, reject, promise };\n};\n","/**\n * Returns promise that resolves after ms.\n */\nexport default function sleep(ms: number) {\n return new Promise((resolve) => setTimeout(resolve, ms));\n}\n","export const kdsModalClosedBy = {\n ANY: \"any\",\n CLOSEREQUEST: \"closerequest\",\n NONE: \"none\",\n} as const;\n\nexport const kdsModalClosedByOptions = Object.values(kdsModalClosedBy);\n\nexport const kdsModalWidth = {\n SMALL: \"small\",\n MEDIUM: \"medium\",\n LARGE: \"large\",\n XLARGE: \"xlarge\",\n FULL: \"full\",\n} as const;\n\nexport const kdsModalWidthSizes = Object.values(kdsModalWidth);\n\nexport const kdsModalHeight = {\n AUTO: \"auto\",\n FULL: \"full\",\n} as const;\n\nexport const kdsModalHeightSizes = Object.values(kdsModalHeight);\n\nexport const kdsModalVariant = {\n PADDED: \"padded\",\n PLAIN: \"plain\",\n} as const;\n\nexport const kdsModalVariants = Object.values(kdsModalVariant);\n\nexport const kdsModalLayoutPropsDefault = {\n headline: \"\",\n variant: kdsModalVariant.PADDED,\n overflow: \"auto\",\n leadingIcon: undefined,\n} as const;\n\nexport const kdsModalPropsDefault = {\n active: false,\n height: kdsModalHeight.AUTO,\n width: kdsModalWidth.MEDIUM,\n closedby: kdsModalClosedBy.CLOSEREQUEST,\n ...kdsModalLayoutPropsDefault,\n} as const;\n","<script setup lang=\"ts\">\nimport KdsIcon from \"../../accessories/Icon/KdsIcon.vue\";\nimport KdsButton from \"../../buttons/KdsButton/KdsButton.vue\";\n\nimport { kdsModalLayoutPropsDefault } from \"./enums\";\nimport type { KdsModalLayoutProps } from \"./types\";\n\nconst props = withDefaults(\n defineProps<KdsModalLayoutProps>(),\n kdsModalLayoutPropsDefault,\n);\ndefineOptions({ inheritAttrs: false });\n</script>\n\n<template>\n <header class=\"modal-header\">\n <KdsIcon v-if=\"props.leadingIcon\" :name=\"props.leadingIcon\" size=\"medium\" />\n <div class=\"modal-header-headline\">{{ props.headline }}</div>\n <KdsButton\n leading-icon=\"x-close\"\n variant=\"transparent\"\n size=\"medium\"\n title=\"Close\"\n @click=\"props.onClose\"\n />\n </header>\n\n <div class=\"modal-body\" :data-variant=\"variant\">\n <slot name=\"body\" />\n </div>\n\n <footer v-if=\"$slots.footer\" class=\"modal-footer\">\n <slot name=\"footer\" />\n </footer>\n</template>\n\n<style scoped>\n.modal-header {\n display: flex;\n gap: var(--kds-spacing-container-0-5x);\n align-items: center;\n padding: var(--kds-spacing-container-0-5x) var(--kds-spacing-container-0-5x)\n var(--kds-spacing-container-0-5x) var(--kds-spacing-container-1-5x);\n font: var(--kds-font-base-title-medium-strong);\n color: var(--kds-color-text-and-icon-neutral);\n\n & .modal-header-headline {\n flex: 1 1 auto;\n }\n}\n\n.modal-body {\n --modal-padding-left: var(--kds-spacing-container-1-5x);\n --modal-padding-right: var(--kds-spacing-container-1-5x);\n --modal-padding-top: var(--kds-spacing-container-0-5x);\n --modal-padding-bottom: var(--kds-spacing-container-1x);\n --modal-gap: var(--kds-spacing-container-1x);\n\n display: flex;\n flex-grow: 1;\n flex-direction: column;\n overflow: v-bind(overflow);\n font: var(--kds-font-base-body-small);\n color: var(--kds-color-text-and-icon-neutral);\n\n &[data-variant=\"padded\"] {\n gap: var(--modal-gap);\n padding: var(--modal-padding-top) var(--modal-padding-right)\n var(--modal-padding-bottom) var(--modal-padding-left);\n }\n}\n\n.modal-footer {\n display: flex;\n gap: var(--kds-spacing-container-0-5x);\n justify-content: right;\n padding: var(--kds-spacing-container-1x) var(--kds-spacing-container-1-5x);\n}\n</style>\n","<script setup lang=\"ts\">\nimport { nextTick, ref, useTemplateRef, watch } from \"vue\";\n\nimport { sleep } from \"@knime/utils\";\n\nimport KdsModalLayout from \"./KdsModalLayout.vue\";\nimport { kdsModalPropsDefault } from \"./enums\";\nimport type { KdsModalProps } from \"./types\";\n\nconst props = withDefaults(defineProps<KdsModalProps>(), kdsModalPropsDefault);\n\nconst emit = defineEmits<{\n /** request to close of the dialog */\n close: [event?: Event];\n /** the dialog is closed (different to the active state due to possible animations) */\n closed: [];\n}>();\n\nconst dialog = useTemplateRef(\"dialogElement\");\n\nconst onClose = (event?: Event) => {\n emit(\"close\", event);\n};\n\nwatch(\n () => props.active,\n async (active) => {\n if (active) {\n await nextTick();\n dialog.value?.showModal();\n } else {\n dialog.value?.close();\n }\n },\n { immediate: true },\n);\n\nconst renderDialog = ref(props.active);\n\nconst removeDialog = () => {\n if (!renderDialog.value) {\n return;\n }\n renderDialog.value = false;\n emit(\"closed\");\n};\n\nwatch(\n () => props.active,\n async (value, lastValue) => {\n // on close wait until the animation has run\n if (value === false && lastValue === true) {\n if (dialog.value) {\n Promise.all(\n dialog.value\n .getAnimations({ subtree: true })\n .map((animation) => animation.finished),\n ).then(removeDialog);\n // eslint-disable-next-line no-magic-numbers\n await sleep(350);\n // fallback in case animations fail or dont resolve\n removeDialog();\n } else {\n // fallback if dialog element ref is not accessible\n removeDialog();\n }\n } else {\n renderDialog.value = value;\n }\n },\n);\n</script>\n\n<template>\n <dialog\n v-if=\"renderDialog\"\n ref=\"dialogElement\"\n :class=\"[\n 'kds-modal',\n `width-${width}`,\n `height-${height}`,\n `overflow-${overflow}`,\n ]\"\n :closedby=\"closedby\"\n @cancel.prevent=\"onClose\"\n >\n <slot\n :headline=\"headline\"\n :leading-icon=\"leadingIcon\"\n :variant=\"variant\"\n :overflow=\"overflow\"\n :on-close=\"onClose\"\n >\n <KdsModalLayout\n :headline=\"headline\"\n :leading-icon=\"leadingIcon\"\n :variant=\"variant\"\n :overflow=\"overflow\"\n @close=\"onClose\"\n >\n <template #body>\n <slot name=\"body\" />\n </template>\n\n <template #footer>\n <slot name=\"footer\" />\n </template>\n </KdsModalLayout>\n </slot>\n </dialog>\n</template>\n\n<style>\n/** see: https://github.com/whatwg/html/issues/7732 */\nbody:has(dialog.modal[open]) {\n overflow: hidden;\n}\n</style>\n\n<style scoped>\n.kds-modal {\n /* rule is broken it complains about local variables for no reason */\n /* stylelint-disable csstools/value-no-unknown-custom-properties */\n --modal-full-size: 95%;\n --modal-backdrop-animation-time: 125ms;\n\n &.width-small {\n --modal-width: var(--kds-dimension-component-width-25x);\n --modal-animation-time: 100ms;\n --modal-scale-base: 0.85;\n }\n\n &.width-medium {\n --modal-width: var(--kds-dimension-component-width-32x);\n --modal-animation-time: 140ms;\n --modal-scale-base: 0.88;\n }\n\n &.width-large {\n --modal-width: var(--kds-dimension-component-width-45x);\n --modal-animation-time: 210ms;\n --modal-scale-base: 0.88;\n }\n\n &.width-xlarge {\n --modal-width: var(--kds-dimension-component-width-61x);\n --modal-animation-time: 300ms;\n --modal-scale-base: 0.88;\n }\n\n &.width-full {\n --modal-width: var(--modal-full-size);\n --modal-animation-time: 350ms;\n --modal-scale-base: 0.92;\n }\n\n &.height-full {\n --modal-height: var(--modal-full-size);\n }\n\n &.height-auto {\n --modal-height: fit-content;\n }\n\n display: flex;\n flex-direction: column;\n width: min(var(--modal-full-size), var(--modal-width));\n height: var(--modal-height);\n max-height: var(--modal-full-size);\n padding: 0;\n overflow: v-bind(overflow);\n font: var(--kds-font-base-body-small);\n color: var(--kds-color-text-and-icon-neutral);\n background-color: var(--kds-color-surface-default);\n border: none;\n border-radius: var(--kds-border-radius-container-0-37x);\n box-shadow: var(--kds-elevation-level-3);\n\n /** Animation */\n opacity: 0;\n transform: scale(var(--modal-scale-base));\n transition: var(--modal-animation-time) allow-discrete;\n transition-timing-function: cubic-bezier(0, 0, 0.2, 1);\n transition-property: display, opacity, overlay, transform;\n\n /* hide if its not open */\n &:not([open]) {\n display: none;\n }\n\n &:focus-visible,\n &:focus {\n outline: none;\n }\n\n &::backdrop {\n background: var(--kds-color-blanket-default);\n opacity: 0;\n transition: var(--modal-animation-time) allow-discrete;\n transition-timing-function: cubic-bezier(0, 0, 0.2, 1);\n transition-property: display, opacity, overlay;\n }\n\n &[open]::backdrop {\n opacity: 1;\n }\n\n &[open] {\n opacity: 1;\n transform: scale(1);\n }\n}\n\n/** Animation starting styles */\n@starting-style {\n .kds-modal {\n opacity: 1;\n transform: scale(1);\n\n &[open] {\n opacity: 0;\n transform: scale(var(--modal-scale-base));\n }\n\n &::backdrop {\n opacity: 1;\n }\n\n &[open]::backdrop {\n opacity: 0;\n }\n }\n}\n</style>\n","import {\n type ComponentPublicInstance,\n type FunctionalComponent,\n type VNode,\n computed,\n ref,\n} from \"vue\";\n\nimport { promise as PromiseUtils } from \"@knime/utils\";\n\nimport type { KdsButtonProps } from \"../../buttons\";\n\nimport type { KdsModalLayoutProps, KdsModalProps } from \"./types\";\n\ntype CommonButtonProps = {\n label: string;\n autofocus?: boolean;\n destructive?: boolean;\n variant?: KdsButtonProps[\"variant\"];\n flushLeft?: boolean;\n};\n\ntype ConfirmationButton = CommonButtonProps & {\n type: \"confirm\";\n customHandler?: (actions: { confirm: () => void }) => void;\n};\n\ntype CancellationButton = CommonButtonProps & {\n type: \"cancel\";\n customHandler?: (actions: { cancel: () => void }) => void;\n};\n\nexport type ConfirmModalButton = ConfirmationButton | CancellationButton;\n\ntype CommonConfig = Omit<KdsModalProps, \"active\">;\n\ntype PropertyBasedConfirmModalConfig = CommonConfig & {\n /**\n * The message displayed in the modal body\n */\n message: string;\n /**\n * The label and subText to be rendered for the \"do not ask again\" checkbox option.\n * The checkbox will only be present when an object is supplied. The value will be returned on the modal result.\n * Defaults to empty undefined.\n */\n doNotAskAgain?: {\n label: string;\n subText?: string;\n };\n\n /**\n * Confirmation or cancellation buttons if omitted default ones are set\n */\n buttons?: Array<ConfirmModalButton>;\n};\n\ntype TemplateBasedConfirmModalConfig = CommonConfig & {\n /**\n * the dynamic component to be used as the confirmation modal body\n */\n component: FunctionalComponent | ComponentPublicInstance | VNode;\n\n /**\n * Confirmation or cancellation buttons if omitted default ones are set\n */\n buttons?: Array<ConfirmModalButton>;\n};\n\nexport type KdsDynamicDialogConfirmConfig =\n | PropertyBasedConfirmModalConfig\n | TemplateBasedConfirmModalConfig;\n\ntype UpdateConfigType = Partial<\n Omit<KdsDynamicModalTemplateConfig, \"component\" | \"context\">\n>;\n\n/**\n * Define a props api which dynamic template components can optionally\n * define to get access to the configuration the dynamic modal was called with\n */\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nexport type KdsDynamicModalPropsAPI<T = any> = KdsModalLayoutProps & {\n context: T;\n updateConfig: (config: UpdateConfigType) => void;\n};\ntype DynamicModalComponent<T> = abstract new (...args: unknown[]) => {\n $props: KdsDynamicModalPropsAPI<T>;\n};\n\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nexport type KdsDynamicModalTemplateConfig<T = any> = CommonConfig & {\n component:\n | DynamicModalComponent<T>\n | FunctionalComponent<KdsDynamicModalPropsAPI<T>>;\n context?: T;\n};\n\nconst defaultCancelButton: CancellationButton = {\n type: \"cancel\",\n label: \"Cancel\",\n};\n\nconst defaultConfirmButton: ConfirmationButton = {\n type: \"confirm\",\n label: \"Confirm\",\n};\n\ntype ConfirmResult = { confirmed: boolean; doNotAskAgain?: boolean };\n\nconst isActive = ref(false);\nconst activeModalConfig = ref<\n | { type: \"confirm\"; value: KdsDynamicDialogConfirmConfig }\n | { type: \"dynamic\"; value: KdsDynamicModalTemplateConfig }\n | null\n>(null);\n\nconst unwrappedPromise = ref(PromiseUtils.createUnwrappedPromise());\n\nconst resetInternalState = () => {\n isActive.value = false;\n unwrappedPromise.value = PromiseUtils.createUnwrappedPromise();\n // config is cleared after the close animations is finished\n};\n\n/* called when KdsModal has finished close animations */\nconst onClosed = () => {\n activeModalConfig.value = null;\n};\n\n/**\n * Used to confirm the modal result. Should only used when called via\n * `askConfirmation`\n * @param doNotAskAgain\n */\nconst confirm = (doNotAskAgain = false) => {\n unwrappedPromise.value.resolve({\n confirmed: true,\n doNotAskAgain,\n });\n resetInternalState();\n};\n\n/**\n * Close or cancel the dialog\n */\nconst close = () => {\n const isConfirm = activeModalConfig.value?.type === \"confirm\";\n unwrappedPromise.value.resolve(isConfirm ? { confirmed: false } : undefined);\n resetInternalState();\n};\n\nconst isTemplateBasedConfirm = (\n config: KdsDynamicDialogConfirmConfig,\n): config is TemplateBasedConfirmModalConfig => {\n return \"component\" in config;\n};\n\nconst updateConfig = (config: UpdateConfigType) => {\n if (\n !isActive.value ||\n !activeModalConfig.value ||\n activeModalConfig.value.type === \"confirm\"\n ) {\n consola.warn(\"useKdsDynamicModal: invalid invocation of updateConfig\");\n return;\n }\n\n activeModalConfig.value.value = {\n ...activeModalConfig.value.value,\n ...config,\n };\n};\n\nexport const internal = {\n confirm,\n close,\n isTemplateBasedConfirm,\n onClosed,\n updateConfig,\n};\n\nexport const useKdsDynamicModal = () => {\n // function overload to support 2 distinct configurations\n function askConfirmation(\n config: PropertyBasedConfirmModalConfig,\n ): Promise<ConfirmResult>;\n\n // function overload to support 2 distinct configurations\n function askConfirmation(\n config: TemplateBasedConfirmModalConfig,\n ): Promise<ConfirmResult>;\n\n function askConfirmation(\n config: KdsDynamicDialogConfirmConfig,\n ): Promise<ConfirmResult> {\n activeModalConfig.value = {\n type: \"confirm\",\n value: {\n buttons: [defaultCancelButton, defaultConfirmButton],\n ...config,\n },\n };\n\n isActive.value = true;\n return unwrappedPromise.value.promise as Promise<ConfirmResult>;\n }\n\n const showByTemplate = <T>(\n config: KdsDynamicModalTemplateConfig<T>,\n ): Promise<void> => {\n activeModalConfig.value = {\n type: \"dynamic\",\n value: config,\n };\n\n isActive.value = true;\n return unwrappedPromise.value.promise as Promise<void>;\n };\n\n return {\n askConfirmation,\n showByTemplate,\n config: computed(() => activeModalConfig.value),\n isActive: computed(() => isActive.value),\n close: () => internal.close(),\n };\n};\n","<script setup lang=\"ts\">\nimport { computed, ref } from \"vue\";\n\nimport type { KdsButtonProps } from \"../../buttons\";\nimport KdsButton from \"../../buttons/KdsButton/KdsButton.vue\";\nimport KdsCheckbox from \"../../forms/Checkbox/KdsCheckbox.vue\";\n\nimport KdsModal from \"./KdsModal.vue\";\nimport {\n type ConfirmModalButton,\n internal,\n useKdsDynamicModal,\n} from \"./useKdsDynamicModal\";\n\nconst askAgain = ref(false);\nconst { config, isActive } = useKdsDynamicModal();\n\nconst reset = () => {\n askAgain.value = false;\n};\n\nconst onConfirm = () => {\n internal.confirm(askAgain.value);\n reset();\n};\n\nconst onClose = () => {\n internal.close();\n reset();\n};\n\nconst handleConfirmButton = (button: ConfirmModalButton) => {\n if (!button.customHandler) {\n const handler = button.type === \"cancel\" ? onClose : onConfirm;\n handler();\n return;\n }\n\n if (button.type === \"cancel\") {\n button.customHandler({ cancel: onClose });\n }\n\n if (button.type === \"confirm\") {\n button.customHandler({ confirm: onConfirm });\n }\n};\n\nconst defaultVariant = (\n type: ConfirmModalButton[\"type\"],\n): KdsButtonProps[\"variant\"] => (type === \"cancel\" ? \"transparent\" : \"filled\");\n\nconst kdsModalProps = computed(() => {\n if (!config.value) {\n return {};\n }\n\n const { leadingIcon, headline, height, width, variant, overflow, closedby } =\n config.value.value;\n\n return {\n leadingIcon,\n headline,\n height,\n width,\n variant,\n overflow,\n closedby,\n onClose,\n onClosed: internal.onClosed,\n active: isActive.value,\n };\n});\n</script>\n\n<template>\n <KdsModal class=\"confirm-modal\" v-bind=\"kdsModalProps\">\n <template v-if=\"config?.type === 'confirm'\" #body>\n <Component\n :is=\"config.value.component\"\n v-if=\"internal.isTemplateBasedConfirm(config.value)\"\n />\n\n <div v-else class=\"confirmation\">\n <div class=\"message\">{{ config.value.message }}</div>\n <div v-if=\"config.value.doNotAskAgain\" class=\"ask-again\">\n <KdsCheckbox\n v-model=\"askAgain\"\n :label=\"config.value.doNotAskAgain.label\"\n :sub-text=\"config.value.doNotAskAgain.subText\"\n />\n </div>\n </div>\n </template>\n\n <template v-if=\"config?.type === 'confirm'\" #footer>\n <KdsButton\n v-for=\"(button, index) in config.value.buttons\"\n :key=\"index\"\n :destructive=\"button.destructive\"\n :autofocus=\"button.autofocus\"\n :label=\"button.label\"\n :variant=\"button.variant ?? defaultVariant(button.type)\"\n :class=\"{ 'flush-left': button.flushLeft }\"\n :data-test-id=\"`${button.type}-button`\"\n @click=\"handleConfirmButton(button)\"\n />\n </template>\n\n <template v-if=\"config?.type === 'dynamic'\" #default=\"slotProps\">\n <Component\n :is=\"config.value.component\"\n v-bind=\"{\n ...slotProps,\n context: config.value.context,\n updateConfig: internal.updateConfig,\n }\"\n />\n </template>\n </KdsModal>\n</template>\n\n<style scoped>\n.ask-again {\n padding: var(--kds-spacing-container-0-5x) 0 0 0;\n}\n\n.flush-left {\n margin-right: auto;\n}\n</style>\n"],"names":["_createElementBlock","_normalizeClass","_openBlock","_hoisted_3","_createElementVNode","_unref","_createBlock","_resolveDynamicComponent","kdsIconNames","kdsTypeIconNames","_hoisted_1","_toDisplayString","_hoisted_2","_createVNode","_hoisted_4","_renderSlot","_mergeProps","_useModel","KdsLinkButton","KdsButton","ListItemAccessory","_hoisted_5","_hoisted_6","_Fragment","_renderList","KdsToggleButton","Icon","$slots","_withCtx","HUE_MAX_DEG","_withModifiers","KdsTextInput","_normalizeStyle","_createTextVNode","PromiseUtils.createUnwrappedPromise","_createSlots","KdsCheckbox","_normalizeProps","_guardReactiveProps"],"mappings":"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","x_google_ignoreList":[84,85]}
|
|
1
|
+
{"version":3,"file":"index.js","sources":["../src/accessories/Avatar/enums.ts","../src/accessories/Avatar/KdsAvatar.vue","../src/accessories/Icon/useIcon.ts","../src/accessories/Icon/KdsIcon.vue","../src/accessories/Icon/IdToIconNameMapping.ts","../../styles/dist/img/icons/def.ts","../../styles/dist/img/type-icons/def.ts","../src/accessories/Icon/enums.ts","../src/accessories/Icon/KdsDataType.vue","../src/accessories/Badge/enums.ts","../src/accessories/Badge/KdsBadge.vue","../src/accessories/ColorSwatch/enums.ts","../src/accessories/ColorSwatch/KdsColorSwatch.vue","../src/util/enums.ts","../src/util/useKdsDarkMode.ts","../src/util/useKdsLegacyMode.ts","../src/util/useKdsIsTruncated.ts","../src/accessories/LiveStatus/KdsLiveStatus.vue","../src/accessories/LiveStatus/enums.ts","../src/accessories/LoadingSpinner/KdsLoadingSpinner.vue","../src/accessories/LoadingSpinner/enums.ts","../src/accessories/InlineMessage/KdsInlineMessage.vue","../src/accessories/InlineMessage/enums.ts","../src/buttons/BaseButton.vue","../src/buttons/KdsButton/KdsButton.vue","../src/util/nuxtComponentResolver.ts","../src/buttons/KdsLinkButton/KdsLinkButton.vue","../src/buttons/KdsToggleButton/KdsToggleButton.vue","../src/buttons/KdsToggleButton/enums.ts","../src/buttons/KdsProgressButton/KdsProgressButton.vue","../src/buttons/KdsProgressButton/enums.ts","../src/layouts/EmptyState/KdsEmptyState.vue","../src/forms/_helper/List/ListItemAccessory/ListItemAccessory.vue","../src/forms/_helper/List/ListItemAccessory/enums.ts","../src/forms/_helper/List/KdsListItem/enums.ts","../src/forms/_helper/List/KdsListItem/KdsListItem.vue","../src/forms/_helper/List/ListItemDivider/ListItemDivider.vue","../src/forms/_helper/List/ListItemSectionTitle/ListItemSectionTitle.vue","../src/forms/_helper/List/ListContainer/KdsListContainer.vue","../src/overlays/Popover/KdsPopover.vue","../src/buttons/KdsMenuButton/KdsMenuButton.vue","../src/buttons/enums.ts","../src/forms/_helper/KdsLabel.vue","../src/forms/_helper/KdsSubText.vue","../src/forms/Checkbox/BaseCheckbox.vue","../src/forms/Checkbox/KdsCheckbox.vue","../src/forms/Checkbox/KdsCheckboxGroup.vue","../src/forms/Checkbox/enums.ts","../src/forms/RadioButton/KdsRadioButton.vue","../src/forms/RadioButton/useRadioSelection.ts","../src/forms/RadioButton/KdsRadioButtonGroup.vue","../src/forms/RadioButton/ValueSwitchItem.vue","../src/forms/RadioButton/useValueSwitchIconHiding.ts","../src/forms/RadioButton/KdsValueSwitch.vue","../src/forms/RadioButton/enums.ts","../src/forms/_helper/BaseFormFieldWrapper.vue","../src/forms/inputs/BaseInput.vue","../src/forms/inputs/TextInput/KdsTextInput.vue","../src/forms/inputs/ColorInput/colorUtils.ts","../src/forms/inputs/ColorInput/usePointerHandler.ts","../src/forms/inputs/ColorInput/ColorPicker.vue","../src/forms/inputs/ColorInput/useColorInputValidationOnFocusOut.ts","../src/forms/inputs/ColorInput/KdsColorInput.vue","../../../node_modules/.pnpm/@popperjs+core@2.11.8/node_modules/@popperjs/core/lib/enums.js","../../../node_modules/.pnpm/@popperjs+core@2.11.8/node_modules/@popperjs/core/lib/dom-utils/getNodeName.js","../../../node_modules/.pnpm/@popperjs+core@2.11.8/node_modules/@popperjs/core/lib/dom-utils/getWindow.js","../../../node_modules/.pnpm/@popperjs+core@2.11.8/node_modules/@popperjs/core/lib/dom-utils/instanceOf.js","../../../node_modules/.pnpm/@popperjs+core@2.11.8/node_modules/@popperjs/core/lib/modifiers/applyStyles.js","../../../node_modules/.pnpm/@popperjs+core@2.11.8/node_modules/@popperjs/core/lib/utils/getBasePlacement.js","../../../node_modules/.pnpm/@popperjs+core@2.11.8/node_modules/@popperjs/core/lib/utils/math.js","../../../node_modules/.pnpm/@popperjs+core@2.11.8/node_modules/@popperjs/core/lib/utils/userAgent.js","../../../node_modules/.pnpm/@popperjs+core@2.11.8/node_modules/@popperjs/core/lib/dom-utils/isLayoutViewport.js","../../../node_modules/.pnpm/@popperjs+core@2.11.8/node_modules/@popperjs/core/lib/dom-utils/getBoundingClientRect.js","../../../node_modules/.pnpm/@popperjs+core@2.11.8/node_modules/@popperjs/core/lib/dom-utils/getLayoutRect.js","../../../node_modules/.pnpm/@popperjs+core@2.11.8/node_modules/@popperjs/core/lib/dom-utils/contains.js","../../../node_modules/.pnpm/@popperjs+core@2.11.8/node_modules/@popperjs/core/lib/dom-utils/getComputedStyle.js","../../../node_modules/.pnpm/@popperjs+core@2.11.8/node_modules/@popperjs/core/lib/dom-utils/isTableElement.js","../../../node_modules/.pnpm/@popperjs+core@2.11.8/node_modules/@popperjs/core/lib/dom-utils/getDocumentElement.js","../../../node_modules/.pnpm/@popperjs+core@2.11.8/node_modules/@popperjs/core/lib/dom-utils/getParentNode.js","../../../node_modules/.pnpm/@popperjs+core@2.11.8/node_modules/@popperjs/core/lib/dom-utils/getOffsetParent.js","../../../node_modules/.pnpm/@popperjs+core@2.11.8/node_modules/@popperjs/core/lib/utils/getMainAxisFromPlacement.js","../../../node_modules/.pnpm/@popperjs+core@2.11.8/node_modules/@popperjs/core/lib/utils/within.js","../../../node_modules/.pnpm/@popperjs+core@2.11.8/node_modules/@popperjs/core/lib/utils/getFreshSideObject.js","../../../node_modules/.pnpm/@popperjs+core@2.11.8/node_modules/@popperjs/core/lib/utils/mergePaddingObject.js","../../../node_modules/.pnpm/@popperjs+core@2.11.8/node_modules/@popperjs/core/lib/utils/expandToHashMap.js","../../../node_modules/.pnpm/@popperjs+core@2.11.8/node_modules/@popperjs/core/lib/modifiers/arrow.js","../../../node_modules/.pnpm/@popperjs+core@2.11.8/node_modules/@popperjs/core/lib/utils/getVariation.js","../../../node_modules/.pnpm/@popperjs+core@2.11.8/node_modules/@popperjs/core/lib/modifiers/computeStyles.js","../../../node_modules/.pnpm/@popperjs+core@2.11.8/node_modules/@popperjs/core/lib/modifiers/eventListeners.js","../../../node_modules/.pnpm/@popperjs+core@2.11.8/node_modules/@popperjs/core/lib/utils/getOppositePlacement.js","../../../node_modules/.pnpm/@popperjs+core@2.11.8/node_modules/@popperjs/core/lib/utils/getOppositeVariationPlacement.js","../../../node_modules/.pnpm/@popperjs+core@2.11.8/node_modules/@popperjs/core/lib/dom-utils/getWindowScroll.js","../../../node_modules/.pnpm/@popperjs+core@2.11.8/node_modules/@popperjs/core/lib/dom-utils/getWindowScrollBarX.js","../../../node_modules/.pnpm/@popperjs+core@2.11.8/node_modules/@popperjs/core/lib/dom-utils/getViewportRect.js","../../../node_modules/.pnpm/@popperjs+core@2.11.8/node_modules/@popperjs/core/lib/dom-utils/getDocumentRect.js","../../../node_modules/.pnpm/@popperjs+core@2.11.8/node_modules/@popperjs/core/lib/dom-utils/isScrollParent.js","../../../node_modules/.pnpm/@popperjs+core@2.11.8/node_modules/@popperjs/core/lib/dom-utils/getScrollParent.js","../../../node_modules/.pnpm/@popperjs+core@2.11.8/node_modules/@popperjs/core/lib/dom-utils/listScrollParents.js","../../../node_modules/.pnpm/@popperjs+core@2.11.8/node_modules/@popperjs/core/lib/utils/rectToClientRect.js","../../../node_modules/.pnpm/@popperjs+core@2.11.8/node_modules/@popperjs/core/lib/dom-utils/getClippingRect.js","../../../node_modules/.pnpm/@popperjs+core@2.11.8/node_modules/@popperjs/core/lib/utils/computeOffsets.js","../../../node_modules/.pnpm/@popperjs+core@2.11.8/node_modules/@popperjs/core/lib/utils/detectOverflow.js","../../../node_modules/.pnpm/@popperjs+core@2.11.8/node_modules/@popperjs/core/lib/utils/computeAutoPlacement.js","../../../node_modules/.pnpm/@popperjs+core@2.11.8/node_modules/@popperjs/core/lib/modifiers/flip.js","../../../node_modules/.pnpm/@popperjs+core@2.11.8/node_modules/@popperjs/core/lib/modifiers/hide.js","../../../node_modules/.pnpm/@popperjs+core@2.11.8/node_modules/@popperjs/core/lib/modifiers/offset.js","../../../node_modules/.pnpm/@popperjs+core@2.11.8/node_modules/@popperjs/core/lib/modifiers/popperOffsets.js","../../../node_modules/.pnpm/@popperjs+core@2.11.8/node_modules/@popperjs/core/lib/utils/getAltAxis.js","../../../node_modules/.pnpm/@popperjs+core@2.11.8/node_modules/@popperjs/core/lib/modifiers/preventOverflow.js","../../../node_modules/.pnpm/@popperjs+core@2.11.8/node_modules/@popperjs/core/lib/dom-utils/getHTMLElementScroll.js","../../../node_modules/.pnpm/@popperjs+core@2.11.8/node_modules/@popperjs/core/lib/dom-utils/getNodeScroll.js","../../../node_modules/.pnpm/@popperjs+core@2.11.8/node_modules/@popperjs/core/lib/dom-utils/getCompositeRect.js","../../../node_modules/.pnpm/@popperjs+core@2.11.8/node_modules/@popperjs/core/lib/utils/orderModifiers.js","../../../node_modules/.pnpm/@popperjs+core@2.11.8/node_modules/@popperjs/core/lib/utils/debounce.js","../../../node_modules/.pnpm/@popperjs+core@2.11.8/node_modules/@popperjs/core/lib/utils/mergeByName.js","../../../node_modules/.pnpm/@popperjs+core@2.11.8/node_modules/@popperjs/core/lib/createPopper.js","../../../node_modules/.pnpm/@popperjs+core@2.11.8/node_modules/@popperjs/core/lib/popper.js","../../../node_modules/.pnpm/v-calendar@https+++codeload.github.com+knime+v-calendar+tar.gz+048477f_@popperjs+core@2_28a2b337d0a8b672ad2ad91e5c1b6a6c/node_modules/v-calendar/dist/es/index.js","../src/forms/inputs/DateInput/dateUtils.ts","../src/forms/inputs/DateInput/KdsDateInput.vue","../src/forms/inputs/DateTimeFormatInput/DateTimeFormatPopover.vue","../src/forms/inputs/DateTimeFormatInput/KdsDateTimeFormatInput.vue","../src/forms/inputs/DateTimeFormatInput/enums.ts","../src/forms/inputs/NumberInput/numberParser.ts","../src/forms/inputs/NumberInput/KdsNumberInput.vue","../src/forms/inputs/PatternInput/patternRegex.ts","../src/forms/inputs/PatternInput/KdsPatternInput.vue","../src/forms/inputs/SearchInput/KdsSearchInput.vue","../src/forms/inputs/Textarea/KdsTextarea.vue","../src/forms/selects/Dropdown/BaseDropdown.vue","../src/forms/selects/Dropdown/DropdownContainer.vue","../src/forms/selects/Dropdown/KdsDropdown.vue","../src/forms/_helper/List/KdsListItemButton/KdsListItemButton.vue","../src/forms/selects/Dropdown/MultiSelectDropdownContainer.vue","../src/forms/selects/Dropdown/KdsMultiSelectDropdown.vue","../src/forms/_helper/InfoPopover/InfoPopover.vue","../src/forms/_helper/InfoPopover/KdsInfoToggleButton.vue","../src/forms/_helper/VariablePopover/VariablePopover.vue","../src/forms/_helper/VariablePopover/KdsVariableToggleButton.vue","../src/layouts/KdsCardClickable/KdsCardClickable.vue","../src/layouts/KdsCardClickable/enums.ts","../../../node_modules/.pnpm/@knime+utils@1.9.2_consola@3.4.2/node_modules/@knime/utils/src/promise/createUnwrappedPromise.ts","../../../node_modules/.pnpm/@knime+utils@1.9.2_consola@3.4.2/node_modules/@knime/utils/src/sleep.ts","../src/overlays/Modal/enums.ts","../src/overlays/Modal/KdsModalLayout.vue","../src/overlays/Modal/KdsModal.vue","../src/overlays/Modal/useKdsDynamicModal.ts","../src/overlays/Modal/KdsDynamicModalProvider.vue"],"sourcesContent":["export const kdsAvatarSize = {\n SMALL: \"small\",\n MEDIUM: \"medium\",\n LARGE: \"large\",\n XLARGE: \"xlarge\",\n} as const;\n\nexport const kdsAvatarSizes = Object.values(kdsAvatarSize);\n","<script setup lang=\"ts\">\nimport { computed, ref, watch } from \"vue\";\n\nimport { kdsAvatarSize } from \"./enums\";\nimport type { KdsAvatarProps } from \"./types\";\n\nconst props = withDefaults(defineProps<KdsAvatarProps>(), {\n title: undefined,\n src: undefined,\n size: kdsAvatarSize.XLARGE,\n});\n\nconst imageLoadFailed = ref(false);\n\nwatch(\n () => props.src,\n () => {\n imageLoadFailed.value = false;\n },\n);\n\nconst shouldShowImage = computed(\n () => Boolean(props.src) && !imageLoadFailed.value,\n);\n\nconst onImageError = () => {\n imageLoadFailed.value = true;\n};\n\nconst accessibleTitle = computed(() => props.title?.trim() ?? \"\");\nconst hasTitle = computed(() => accessibleTitle.value.length > 0);\n\nconst displayedInitials = computed(() =>\n props.initials.trim().slice(0, 2).toUpperCase(),\n);\n</script>\n\n<template>\n <div\n class=\"kds-avatar\"\n :class=\"props.size\"\n :role=\"hasTitle ? 'img' : 'presentation'\"\n :title=\"hasTitle ? accessibleTitle : undefined\"\n :aria-hidden=\"!hasTitle ? 'true' : undefined\"\n :aria-label=\"hasTitle ? accessibleTitle : undefined\"\n >\n <img\n v-if=\"shouldShowImage\"\n class=\"kds-avatar-image\"\n :src=\"props.src\"\n alt=\"\"\n aria-hidden=\"true\"\n @error=\"onImageError\"\n />\n <div v-else class=\"kds-avatar-initials\" aria-hidden=\"true\">\n <span>\n {{ displayedInitials }}\n </span>\n </div>\n </div>\n</template>\n\n<style scoped>\n.kds-avatar {\n position: relative;\n display: inline-block;\n flex-shrink: 0;\n aspect-ratio: 1 / 1;\n overflow: hidden;\n vertical-align: middle;\n border-radius: var(--kds-border-radius-container-pill);\n\n &.small {\n inline-size: var(--kds-dimension-icon-0-75x);\n block-size: var(--kds-dimension-icon-0-75x);\n }\n\n &.medium {\n inline-size: var(--kds-dimension-icon-1x);\n block-size: var(--kds-dimension-icon-1x);\n }\n\n &.large {\n inline-size: var(--kds-dimension-component-width-1-25x);\n block-size: var(--kds-dimension-component-height-1-25x);\n }\n\n &.xlarge {\n inline-size: var(--kds-dimension-component-width-1-5x);\n block-size: var(--kds-dimension-component-height-1-5x);\n }\n}\n\n.kds-avatar::after {\n position: absolute;\n inset: 0;\n box-sizing: border-box;\n pointer-events: none;\n content: \"\";\n border: var(--kds-border-base-muted);\n border-radius: inherit;\n}\n\n.kds-avatar-image {\n display: block;\n inline-size: 100%;\n block-size: 100%;\n object-fit: cover;\n object-position: center;\n}\n\n.kds-avatar-initials {\n display: flex;\n align-items: center;\n justify-content: center;\n inline-size: 100%;\n block-size: 100%;\n container-type: inline-size;\n font: var(--kds-font-base-body-small-strong);\n color: var(--kds-color-text-and-icon-primary-inverted);\n user-select: none;\n background: var(--kds-color-background-primary-bold-initial);\n}\n\n.kds-avatar-initials > span {\n font-size: calc(1em + calc(100cqi - 2em) / 2);\n}\n</style>\n","import {\n type DefineComponent,\n type Ref,\n type ShallowRef,\n shallowRef,\n watch,\n} from \"vue\";\n\nfunction useIcon({\n name,\n folder,\n}: {\n name: Ref<string>;\n folder: \"icons\" | \"type-icons\";\n}): Readonly<ShallowRef<DefineComponent | null, DefineComponent | null>> {\n const iconCache = new Map<string, DefineComponent>();\n\n const iconComponent = shallowRef<DefineComponent | null>(null);\n\n watch(\n () => name.value,\n async (newName) => {\n if (iconCache.has(newName)) {\n iconComponent.value = iconCache.get(newName)!;\n return;\n }\n\n try {\n const module = await import(\n `../../../node_modules/@knime/kds-styles/dist/img/${folder}/${newName}.svg`\n );\n iconCache.set(newName, module.default);\n iconComponent.value = module.default;\n } catch (error) {\n // eslint-disable-next-line no-console\n console.error(\n `Failed to load icon \"${newName}\" from folder \"${folder}\":`,\n error,\n );\n\n iconComponent.value = null;\n }\n },\n { immediate: true },\n );\n\n return iconComponent;\n}\n\nexport default useIcon;\n","<script setup lang=\"ts\">\n/**\n * Displays an icon from the KDS icon set. The icon color inherits the text\n * color of the parent element by default. When the `disabled` prop is set,\n * the color is overridden with the `kds.color.text-and-icon.disabled` token.\n */\nimport { toRef } from \"vue\";\n\nimport type { KdsIconProps } from \"./types\";\nimport useIcon from \"./useIcon\";\n\nconst props = withDefaults(defineProps<KdsIconProps>(), {\n size: \"medium\",\n disabled: false,\n});\n\nconst iconComponent = useIcon({ name: toRef(props, \"name\"), folder: \"icons\" });\n</script>\n\n<template>\n <component\n :is=\"iconComponent\"\n v-if=\"iconComponent\"\n :class=\"['kds-icon', props.size, { disabled }]\"\n aria-hidden=\"true\"\n focusable=\"false\"\n />\n <span\n v-else\n :class=\"['kds-icon', props.size, { disabled }]\"\n aria-hidden=\"true\"\n focusable=\"false\"\n />\n</template>\n\n<style scoped>\n@import url(\"./styles.css\");\n\n.kds-icon.disabled {\n color: var(--kds-color-text-and-icon-disabled);\n}\n</style>\n","import type { KdsTypeIconName } from \"./types\";\n\nexport const ID_TO_ICON_MAP = {\n // Flow Variables\n STRING: \"variable-string\",\n LONG: \"variable-integer\",\n DOUBLE: \"variable-number-double\",\n BOOLEAN: \"variable-boolean\",\n INTEGER: \"variable-integer\",\n FSLocation: \"variable-path\",\n FSLocationSpec: \"variable-path\",\n STRINGARRAY: \"variable-collection-string\",\n LONGARRAY: \"variable-collection-integer\",\n DOUBLEARRAY: \"variable-collection-double\",\n BOOLEANARRAY: \"variable-collection-boolean\",\n INTARRAY: \"variable-collection-integer\",\n CREDENTIALS: \"variable-credential\",\n CONDAENVIRONMENT: \"variable-conda-environment\",\n UNKNOWN: \"variable-unknown\",\n // General\n \"org.knime.core.data.BooleanValue\": \"boolean-datatype\",\n \"org.knime.core.data.DataValue\": \"unknown-datatype\",\n \"org.knime.core.data.DoubleValue\": \"number-double-datatype\",\n \"org.knime.core.data.IntValue\": \"number-integer-datatype\",\n \"org.knime.core.data.LongValue\": \"number-integer-datatype\",\n \"org.knime.core.data.MissingValue\": \"unknown-datatype\",\n \"org.knime.core.data.StringValue\": \"string-datatype\",\n \"org.knime.core.data.collection.ListDataValue\": \"collection-list-datatype\",\n \"org.knime.core.data.collection.SetDataValue\": \"collection-set-datatype\",\n \"org.knime.core.data.vector.doublevector.DoubleVectorValue\":\n \"number-double-vector-datatype\",\n \"org.knime.core.data.vector.stringvector.StringVectorValue\":\n \"string-vector-datatype\",\n \"org.knime.filehandling.core.data.location.FSLocationValue\": \"path-datatype\",\n // Image, Audio & Video\n \"org.knime.audio.data.cell.AudioValue\": \"audio-datatype\",\n \"org.knime.base.data.xml.SvgValue\": \"image-svg-datatype\",\n \"org.knime.core.data.image.png.PNGImageValue\": \"image-png-datatype\",\n // Date & Time\n \"org.knime.core.data.time.localdate.LocalDateValue\": \"date-datatype\",\n \"org.knime.core.data.time.localdatetime.LocalDateTimeValue\":\n \"date-time-local-datatype\",\n \"org.knime.core.data.time.localtime.LocalTimeValue\": \"time-datatype\",\n \"org.knime.core.data.time.zoneddatetime.ZonedDateTimeValue\":\n \"date-time-zoned-datatype\",\n \"org.knime.core.data.time.duration.DurationValue\":\n \"duration-time-based-datatype\",\n \"org.knime.core.data.time.period.PeriodValue\": \"duration-date-based-datatype\",\n // Geospatial\n \"org.knime.geospatial.core.data.GeoValue\": \"geo-datatype\",\n \"org.knime.geospatial.core.data.GeoLineValue\": \"geo-datatype\",\n \"org.knime.geospatial.core.data.GeoPointValue\": \"geo-datatype\",\n \"org.knime.geospatial.core.data.GeoPolygonValue\": \"geo-datatype\",\n \"org.knime.geospatial.core.data.GeoCollectionValue\": \"geo-datatype\",\n \"org.knime.geospatial.core.data.GeoMultiLineValue\": \"geo-datatype\",\n \"org.knime.geospatial.core.data.GeoMultiPointValue\": \"geo-datatype\",\n \"org.knime.geospatial.core.data.GeoMultiPolygonValue\": \"geo-datatype\",\n // Code\n \"org.knime.core.data.blob.BinaryObjectDataValue\": \"binary-object-datatype\",\n \"org.knime.core.data.html.HTMLValue\": \"xml-datatype\",\n \"org.knime.core.data.json.JSONValue\": \"json-datatype\",\n \"org.knime.core.data.uri.URIDataValue\": \"uri-datatype\",\n \"org.knime.core.data.vector.bitvector.BitVectorValue\":\n \"bit-byte-vector-datatype\",\n \"org.knime.core.data.vector.bitvector.SparseBitVectorValue\":\n \"bit-byte-vector-datatype\",\n \"org.knime.core.data.vector.bytevector.ByteVectorValue\":\n \"bit-byte-vector-datatype\",\n \"org.knime.core.data.xml.PMMLValue\": \"model-pmml-datatype\",\n \"org.knime.core.data.xml.XMLValue\": \"xml-datatype\",\n \"org.knime.knip.base.data.labeling.LabelingValue\": \"labeling-datatype\",\n // Agentic AI\n \"org.knime.ai.core.data.message.MessageValue\": \"message-datatype\",\n \"org.knime.core.node.agentic.tool.WorkflowToolValue\": \"tool-datatype\",\n // Textprocessing\n \"org.knime.ext.textprocessing.data.DocumentValue\": \"document-datatype\",\n \"org.knime.ext.textprocessing.data.TermValue\": \"term-datatype\",\n // Network\n \"org.knime.network.core.knime.cell.GraphValue\": \"subgraph-datatype\",\n // Linear Notations\n \"org.knime.chem.types.InchiValue\": \"linear-notation-molecule\",\n \"org.knime.chem.types.SlnValue\": \"linear-notation-molecule\",\n \"org.knime.chem.types.SmartsValue\": \"linear-notation-molecule\",\n \"org.knime.chem.types.SmilesValue\": \"linear-notation-molecule\",\n // Molecular file formats\n \"org.knime.chem.types.CtabValue\": \"molecule\",\n \"org.knime.chem.types.MolValue\": \"molecule\",\n \"org.knime.chem.types.Mol2Value\": \"molecule\",\n \"org.knime.chem.types.SdfValue\": \"molecule\",\n // Biopolymer & sequence representations\n \"org.knime.chem.types.helm.HELMValue\": \"helm-datatype\",\n // Relation & Process representations\n \"org.knime.chem.types.CMLValue\": \"test-tube\",\n \"org.knime.chem.types.RxnValue\": \"test-tube\",\n // Visualization & specialized software formats\n \"org.knime.bio.types.PdbValue\": \"microscope\",\n \"org.knime.chem.types.cdx.CDXMLValue\": \"microscope\",\n \"org.rdkit.knime.types.RDKitMolValue\": \"microscope\",\n \"jp.co.infocom.cheminfo.marvin.type.MrvValue\": \"microscope\",\n} as const satisfies Record<string, KdsTypeIconName>;\n\nexport type TypeId = keyof typeof ID_TO_ICON_MAP;\n","\nexport const iconNames = [\n 'add-user',\n 'ai-general',\n 'annotation-mode',\n 'arrow-down',\n 'arrow-up',\n 'arrows-expand',\n 'arrows-move',\n 'arrows-order',\n 'back',\n 'bold',\n 'calendar',\n 'case-sensitive',\n 'center-aligned',\n 'checkmark',\n 'chevron-down',\n 'chevron-left-double',\n 'chevron-left',\n 'chevron-right-double',\n 'chevron-right',\n 'chevron-up',\n 'circle-error',\n 'circle-info',\n 'circle-question',\n 'circle-success',\n 'cloud-download',\n 'cloud-knime',\n 'cloud-pending-changes',\n 'cloud-synced',\n 'cloud-upload',\n 'cloud-workflow',\n 'code-block',\n 'color-picker',\n 'comment',\n 'component',\n 'connection',\n 'copy',\n 'cursor',\n 'data-app',\n 'data-value-view',\n 'date-time',\n 'db-database',\n 'db-schema',\n 'db-table-view',\n 'db-table',\n 'deploy',\n 'detect',\n 'divider',\n 'duration',\n 'edit',\n 'education',\n 'error-panel',\n 'execute-all',\n 'execute',\n 'expand-panel',\n 'extension-community',\n 'extension',\n 'external-link',\n 'eye',\n 'file-export',\n 'file-text',\n 'file',\n 'filter',\n 'flow-variable-default',\n 'flow-variable-in-out',\n 'flow-variable-in',\n 'flow-variable-out',\n 'folder-plus',\n 'folder-workflow',\n 'folder',\n 'forum',\n 'function-catalog',\n 'home',\n 'import',\n 'info',\n 'interval',\n 'italic',\n 'key',\n 'layout-editor',\n 'left-aligned',\n 'like',\n 'limit',\n 'link',\n 'linked-metanode',\n 'list-bulletpoint',\n 'list-number',\n 'list-thumbs',\n 'list',\n 'local-filesystem',\n 'lock',\n 'metanode',\n 'mini-map',\n 'minimize-dialog',\n 'minimize-side-panel',\n 'minus',\n 'more-actions',\n 'node-stack',\n 'nodes-align-horiz',\n 'nodes-align-vert',\n 'open-in-new-window',\n 'pan-mode',\n 'parameter',\n 'pending-changes',\n 'placeholder',\n 'plus',\n 'quote',\n 're-execution',\n 'redo',\n 'regex',\n 'reload',\n 'rename',\n 'replace',\n 'reset-all',\n 'resume-execution',\n 'right-aligned',\n 'rocket',\n 'save-as',\n 'save',\n 'schedule',\n 'search',\n 'secret-store',\n 'selected-cancel',\n 'selected-execution',\n 'selected-reset',\n 'send',\n 'server-rack-workflow',\n 'service',\n 'settings',\n 'share',\n 'shortcuts',\n 'sort-ascending',\n 'sort-descending',\n 'space-local',\n 'space-private',\n 'space',\n 'stepwise-execution',\n 'stop',\n 'strikethrough',\n 'team',\n 'text',\n 'textstyles',\n 'thumbs-down',\n 'thumbs-up',\n 'time',\n 'to-bottom',\n 'to-top',\n 'trash',\n 'trigger',\n 'underline',\n 'undo',\n 'unlink',\n 'user',\n 'version',\n 'view-cards',\n 'warning',\n 'workflow',\n 'x-close'\n] as const;\n\nexport type IconName = typeof iconNames[number];\n","\nexport const typeIconNames = [\n 'audio-datatype',\n 'binary-object-datatype',\n 'bit-byte-vector-datatype',\n 'boolean-datatype',\n 'collection-list-datatype',\n 'collection-set-datatype',\n 'date-datatype',\n 'date-time-local-datatype',\n 'date-time-zoned-datatype',\n 'default-extension-datatype',\n 'document-datatype',\n 'duration-date-based-datatype',\n 'duration-time-based-datatype',\n 'geo-datatype',\n 'helm-datatype',\n 'image-png-datatype',\n 'image-svg-datatype',\n 'json-datatype',\n 'labeling-datatype',\n 'linear-notation-molecule',\n 'message-datatype',\n 'microscope',\n 'model-pmml-datatype',\n 'molecule',\n 'number-double-datatype',\n 'number-double-vector-datatype',\n 'number-integer-datatype',\n 'path-datatype',\n 'string-datatype',\n 'string-vector-datatype',\n 'subgraph-datatype',\n 'term-datatype',\n 'test-tube',\n 'time-datatype',\n 'tool-datatype',\n 'unknown-datatype',\n 'uri-datatype',\n 'variable-boolean',\n 'variable-collection-boolean',\n 'variable-collection-double',\n 'variable-collection-integer',\n 'variable-collection-string',\n 'variable-conda-environment',\n 'variable-credential',\n 'variable-integer',\n 'variable-number-double',\n 'variable-path',\n 'variable-string',\n 'variable-unknown',\n 'xml-datatype'\n] as const;\n\nexport type TypeIconName = typeof typeIconNames[number];\n","export { iconNames as kdsIconNames } from \"@knime/kds-styles/img/icons/def\";\nexport { typeIconNames as kdsTypeIconNames } from \"@knime/kds-styles/img/type-icons/def\";\n\nimport { iconNames as kdsIconNames } from \"@knime/kds-styles/img/icons/def\";\nimport { typeIconNames as kdsTypeIconNames } from \"@knime/kds-styles/img/type-icons/def\";\n\nconst toEnumKey = (name: string) =>\n name.toUpperCase().replaceAll(\"-\", \"_\") as Uppercase<typeof name>;\n\nexport const kdsIconName = Object.fromEntries(\n kdsIconNames.map((name) => [toEnumKey(name), name] as const),\n) as { [K in (typeof kdsIconNames)[number] as Uppercase<K>]: K };\n\nexport const kdsTypeIconName = Object.fromEntries(\n kdsTypeIconNames.map((name) => [toEnumKey(name), name] as const),\n) as { [K in (typeof kdsTypeIconNames)[number] as Uppercase<K>]: K };\n\nexport const kdsIconSize = {\n XSMALL: \"xsmall\",\n SMALL: \"small\",\n MEDIUM: \"medium\",\n LARGE: \"large\",\n} as const;\n\nexport const kdsIconSizes = Object.values(kdsIconSize);\n\nexport const kdsDataTypeSize = {\n SMALL: \"small\",\n MEDIUM: \"medium\",\n LARGE: \"large\",\n} as const;\n\nexport const kdsDataTypeSizes = Object.values(kdsDataTypeSize);\n","<script setup lang=\"ts\">\nimport { computed } from \"vue\";\n\nimport { ID_TO_ICON_MAP, type TypeId } from \"./IdToIconNameMapping\";\nimport { kdsTypeIconNames } from \"./enums\";\nimport type {\n KdsDataTypeProps,\n KdsDataTypeSize,\n KdsIconSize,\n KdsTypeIconName,\n} from \"./types\";\nimport useIcon from \"./useIcon\";\n\ntype DataTypeIconSize = Exclude<KdsIconSize, \"large\">;\n\nconst DATA_TYPE_SIZE_TO_ICON_SIZE: Record<KdsDataTypeSize, DataTypeIconSize> = {\n large: \"medium\",\n medium: \"small\",\n small: \"xsmall\",\n} as const;\n\nconst props = withDefaults(defineProps<KdsDataTypeProps>(), {\n iconName: \"unknown-datatype\",\n iconTitle: \"Unknown Data Type\",\n size: \"medium\",\n disabled: false,\n});\n\nconst iconSize = computed(() => DATA_TYPE_SIZE_TO_ICON_SIZE[props.size]);\n\nconst isIconName = (value: string): value is KdsTypeIconName =>\n kdsTypeIconNames.includes(value as KdsTypeIconName);\n\nconst isTypeId = (value: string): value is TypeId =>\n Object.keys(ID_TO_ICON_MAP).includes(value);\n\nconst iconName = computed<KdsTypeIconName>(() => {\n if (isIconName(props.iconName)) {\n return props.iconName;\n }\n if (isTypeId(props.iconName)) {\n return ID_TO_ICON_MAP[props.iconName];\n }\n return props.iconName.startsWith(\"org.knime\")\n ? \"default-extension-datatype\"\n : \"unknown-datatype\";\n});\n\nconst iconComponent = useIcon({\n name: iconName,\n folder: \"type-icons\",\n});\n</script>\n\n<template>\n <div\n :class=\"['kds-data-type-icon-container', size, { disabled }]\"\n :title=\"props.iconTitle\"\n >\n <component\n :is=\"iconComponent\"\n :class=\"['kds-icon', 'kds-data-type-icon', iconSize]\"\n aria-hidden=\"true\"\n focusable=\"false\"\n />\n </div>\n</template>\n\n<style scoped>\n@import url(\"./styles.css\");\n\n.kds-data-type-icon-container {\n --data-type-height: var(--kds-dimension-component-height-1x);\n --data-type-width: var(--kds-dimension-component-width-1x);\n --data-type-padding: var(--kds-spacing-container-0-12x);\n\n display: inline-flex;\n align-items: center;\n justify-content: center;\n width: var(--data-type-width);\n height: var(--data-type-height);\n padding: var(--data-type-padding);\n color: var(--kds-color-desktop-header-text-and-icon-muted);\n background-color: var(--kds-color-page-default);\n border: var(--kds-border-base-muted);\n border-radius: var(--kds-border-radius-container-0-12x);\n\n &.disabled {\n color: var(--kds-color-text-and-icon-disabled);\n }\n\n &.small {\n --data-type-height: var(--kds-dimension-icon-0-75x);\n --data-type-width: var(--kds-dimension-icon-0-75x);\n --data-type-padding: var(--kds-spacing-container-none);\n }\n\n &.large {\n --data-type-height: var(--kds-dimension-component-height-1-25x);\n --data-type-width: var(--kds-dimension-component-width-1-25x);\n }\n\n /* The kds-data-type-icon class is needed to increase the specificity to overwrite the icon-stroke-width */\n & .kds-icon.kds-data-type-icon {\n &.small {\n --icon-stroke-width: var(--kds-border-width-icon-stroke-m);\n }\n\n &.medium {\n --icon-stroke-width: var(--kds-border-width-icon-stroke-l);\n }\n }\n}\n</style>\n","export const kdsBadgeVariant = {\n NEUTRAL: \"neutral\",\n INFO: \"info\",\n WARNING: \"warning\",\n SUCCESS: \"success\",\n ERROR: \"error\",\n GHOST: \"ghost\",\n} as const;\n\nexport const kdsBadgeVariants = Object.values(kdsBadgeVariant);\n\nexport const kdsBadgeSize = {\n XXSMALL: \"xxsmall\",\n XSMALL: \"xsmall\",\n} as const;\n\nexport const kdsBadgeSizes = Object.values(kdsBadgeSize);\n","<script setup lang=\"ts\">\nimport { KdsIcon, type KdsIconSize } from \"../Icon\";\n\nimport { kdsBadgeSize, kdsBadgeVariant } from \"./enums\";\nimport type { KdsBadgeProps, KdsBadgeSize } from \"./types\";\n\nwithDefaults(defineProps<KdsBadgeProps>(), {\n variant: kdsBadgeVariant.NEUTRAL,\n size: kdsBadgeSize.XSMALL,\n leadingIcon: undefined,\n});\n\nconst sizeToIconSize: Record<KdsBadgeSize, KdsIconSize> = {\n xxsmall: \"xsmall\",\n xsmall: \"small\",\n};\n</script>\n\n<template>\n <span :class=\"['kds-badge', size, variant]\">\n <KdsIcon\n v-if=\"leadingIcon\"\n :name=\"leadingIcon\"\n :size=\"sizeToIconSize[size]\"\n />\n <span class=\"label-wrapper\">{{ label }}</span>\n </span>\n</template>\n\n<style scoped>\n.kds-badge {\n display: inline-flex;\n align-items: center;\n max-width: 100%;\n border-radius: var(--kds-border-radius-container-pill);\n\n & .label-wrapper {\n min-width: 0;\n max-width: var(--kds-dimension-component-width-16x);\n padding: 0 var(--kds-spacing-container-0-12x);\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n }\n\n &.xxsmall {\n height: var(--kds-dimension-component-height-1x);\n padding: 0 var(--kds-spacing-container-0-25x);\n font: var(--kds-font-base-title-xsmall);\n }\n\n &.xsmall {\n gap: var(--kds-spacing-container-0-12x);\n height: var(--kds-dimension-component-height-1-25x);\n padding: 0 var(--kds-spacing-container-0-37x);\n font: var(--kds-font-base-title-small);\n }\n\n &.neutral {\n color: var(--kds-color-text-and-icon-neutral);\n background-color: var(--kds-color-background-neutral-bold-initial);\n border: var(--kds-border-base-subtle);\n }\n\n &.info {\n color: var(--kds-color-text-and-icon-info);\n background-color: var(--kds-color-background-static-info);\n border: var(--kds-border-base-info);\n }\n\n &.warning {\n color: var(--kds-color-text-and-icon-warning);\n background-color: var(--kds-color-background-static-warning);\n border: var(--kds-border-base-warning);\n }\n\n &.success {\n color: var(--kds-color-text-and-icon-success);\n background-color: var(--kds-color-background-static-success);\n border: var(--kds-border-base-success);\n }\n\n &.error {\n color: var(--kds-color-text-and-icon-danger);\n background-color: var(--kds-color-background-static-danger);\n border: var(--kds-border-base-danger);\n }\n\n &.ghost {\n color: var(--kds-color-text-and-icon-neutral);\n background-color: transparent;\n border: var(--kds-border-base-subtle);\n }\n}\n</style>\n","export const kdsColorSwatchType = {\n LEARNER: \"learner\",\n MANIPULATOR: \"manipulator\",\n PREDICTOR: \"predictor\",\n SINK: \"sink\",\n SOURCE: \"source\",\n VISUALIZER: \"visualizer\",\n OTHER: \"other\",\n} as const;\n\nexport const kdsColorSwatchTypes = Object.values(kdsColorSwatchType);\n\nexport const kdsColorSwatchSize = {\n SMALL: \"small\",\n MEDIUM: \"medium\",\n LARGE: \"large\",\n} as const;\n\nexport const kdsColorSwatchSizes = Object.values(kdsColorSwatchSize);\n","<script setup lang=\"ts\">\nimport { computed } from \"vue\";\n\nimport { kdsColorSwatchSize } from \"./enums\";\nimport type { KdsColorSwatchProps, KdsColorSwatchType } from \"./types\";\n\nconst props = withDefaults(defineProps<KdsColorSwatchProps>(), {\n size: kdsColorSwatchSize.SMALL,\n title: undefined,\n});\n\nconst typeToTokenColor: Record<KdsColorSwatchType, string> = {\n learner: \"var(--kds-color-nodes-and-variables-learner)\",\n manipulator: \"var(--kds-color-nodes-and-variables-manipulator)\",\n predictor: \"var(--kds-color-nodes-and-variables-predictor)\",\n sink: \"var(--kds-color-nodes-and-variables-sink)\",\n source: \"var(--kds-color-nodes-and-variables-source)\",\n visualizer: \"var(--kds-color-nodes-and-variables-visualizer)\",\n other: \"var(--kds-color-nodes-and-variables-other)\",\n};\n\nconst isKdsColorSwatchType = (value: string): value is KdsColorSwatchType =>\n Object.hasOwn(typeToTokenColor, value);\n\nconst backgroundColor = computed(() => {\n if (isKdsColorSwatchType(props.color)) {\n return typeToTokenColor[props.color];\n }\n return props.color;\n});\n\nconst accessibleTitle = computed(() => props.title?.trim() ?? \"\");\nconst hasTitle = computed(() => accessibleTitle.value.length > 0);\n</script>\n\n<template>\n <span\n :role=\"hasTitle ? 'img' : 'presentation'\"\n class=\"kds-color-swatch\"\n :class=\"props.size\"\n :title=\"hasTitle ? accessibleTitle : undefined\"\n :style=\"{ backgroundColor }\"\n :aria-hidden=\"hasTitle ? undefined : 'true'\"\n :aria-label=\"hasTitle ? accessibleTitle : undefined\"\n />\n</template>\n\n<style scoped>\n.kds-color-swatch {\n display: inline-block;\n flex-shrink: 0;\n overflow: hidden;\n line-height: 0;\n border: var(--kds-border-base-muted);\n border-radius: var(--kds-border-radius-container-0-25x);\n\n &.small {\n width: var(--kds-dimension-icon-0-75x);\n height: var(--kds-dimension-icon-0-75x);\n }\n\n &.medium {\n width: var(--kds-dimension-icon-1x);\n height: var(--kds-dimension-icon-1x);\n }\n\n &.large {\n width: var(--kds-dimension-component-width-1-25x);\n height: var(--kds-dimension-component-height-1-25x);\n }\n}\n</style>\n","export const kdsDarkModeType = {\n LIGHT: \"light\",\n DARK: \"dark\",\n SYSTEM: \"system\",\n} as const;\n\nexport const kdsDarkModeTypes = Object.values(kdsDarkModeType);\n","import { computed, watch } from \"vue\";\nimport { useDark, useLocalStorage, usePreferredDark } from \"@vueuse/core\";\n\nimport { kdsDarkModeType } from \"./enums\";\n\nexport const KDS_DARK_MODE_STORAGE_KEY = \"KNIME_DARK_MODE\";\n\nexport type KdsDarkModeType =\n (typeof kdsDarkModeType)[keyof typeof kdsDarkModeType];\n\n// could also be system, but the previous behaviour forced it to light, so we use that\nconst defaultMode: KdsDarkModeType = kdsDarkModeType.LIGHT;\n\nexport const useKdsDarkMode = () => {\n // to also save a 'system' option we need to store the preference separately from the effective dark mode\n const userPreference = useLocalStorage<KdsDarkModeType>(\n KDS_DARK_MODE_STORAGE_KEY,\n defaultMode,\n );\n\n const isDark = useDark({\n storageKey: `${KDS_DARK_MODE_STORAGE_KEY}_EFFECTIVE`,\n initialValue: defaultMode,\n onChanged: (isDarkValue) => {\n let cssMode: string, themeValue: string;\n\n if (userPreference.value === kdsDarkModeType.SYSTEM) {\n cssMode = \"light dark\";\n themeValue = kdsDarkModeType.SYSTEM;\n } else {\n cssMode = themeValue = isDarkValue\n ? kdsDarkModeType.DARK\n : kdsDarkModeType.LIGHT;\n }\n\n document.documentElement.style.setProperty(\"color-scheme\", cssMode);\n document.documentElement.dataset.theme = themeValue;\n },\n });\n\n // react on both system and user preference changes, invokes onChanged function in the custom useDark implementation above\n const systemPrefersDark = usePreferredDark();\n watch(\n [userPreference, systemPrefersDark],\n ([preference, systemDark]) => {\n if (preference === kdsDarkModeType.SYSTEM) {\n isDark.value = systemDark;\n } else {\n isDark.value = preference === kdsDarkModeType.DARK;\n }\n },\n { immediate: true },\n );\n\n const currentMode = computed<KdsDarkModeType>({\n get() {\n return userPreference.value;\n },\n set(value: KdsDarkModeType) {\n userPreference.value = value;\n },\n });\n\n const isDarkMode = computed(() => {\n return userPreference.value === kdsDarkModeType.DARK;\n });\n\n const isLightMode = computed(() => {\n return userPreference.value === kdsDarkModeType.LIGHT;\n });\n\n const isSystemMode = computed(\n () => userPreference.value === kdsDarkModeType.SYSTEM,\n );\n\n return {\n /** Exposes a writable computed ref to get the current dark mode but also use it in e.g. a v-model to set it */\n currentMode,\n /** Whether or not the current user preference is dark. Note, if the preference is set to 'system' it will return false. */\n isDarkMode,\n /** Whether or not the current user preference is light. Note, if the preference is set to 'system' it will return false. */\n isLightMode,\n /** Whether or not the current user preference is set to 'system'. */\n isSystemMode,\n };\n};\n","import { ref, watch } from \"vue\";\n\nconst legacyMode = ref(false);\n\nexport const useKdsLegacyMode = (initialValue: boolean = false) => {\n if (legacyMode.value !== initialValue) {\n legacyMode.value = initialValue;\n }\n\n watch(\n () => legacyMode.value,\n (newValue) => {\n document.documentElement.classList.toggle(\"kds-legacy\", newValue);\n },\n { immediate: true },\n );\n\n return {\n /** Writable ref to get and/or set the legacy mode; can also be used with v-model */\n legacyMode,\n };\n};\n","import { type Ref, ref } from \"vue\";\nimport { useMutationObserver, useResizeObserver } from \"@vueuse/core\";\n\nexport function elementOverflowsHorizontally(\n element: HTMLElement | null,\n): boolean {\n if (!element) {\n return false;\n }\n return element.scrollWidth > element.clientWidth;\n}\n\nexport function elementOverflowsVertically(\n element: HTMLElement | null,\n): boolean {\n if (!element) {\n return false;\n }\n return element.scrollHeight > element.clientHeight;\n}\n\n/**\n * Tracks whether the content of an element is visually truncated.\n *\n * Detects both horizontal truncation (e.g. `text-overflow: ellipsis`)\n * and vertical truncation (e.g. `-webkit-line-clamp`).\n *\n * This can be used to set tooltips or other UI affordances when text is cut off.\n * Changing the size of the provided element based on this composable may result in an infinite loop!\n *\n * @param elementRef - A ref pointing to the element that might be truncated.\n * @returns An object containing a reactive `isTruncated` ref.\n */\nexport function useKdsIsTruncated(elementRef: Ref<HTMLElement | null>) {\n const isTruncated = ref(false);\n\n const checkTruncation = () => {\n isTruncated.value =\n elementOverflowsHorizontally(elementRef.value) ||\n elementOverflowsVertically(elementRef.value);\n };\n\n useResizeObserver(elementRef, checkTruncation);\n\n // Observe changes to the element's subtree, including text-node updates,\n // so content changes without size changes still re-check truncation.\n useMutationObserver(elementRef, checkTruncation, {\n childList: true,\n characterData: true,\n subtree: true,\n // Also observe attribute changes (especially class/style) that can affect\n // truncation without necessarily triggering a resize event.\n attributes: true,\n attributeFilter: [\"class\", \"style\"],\n });\n\n return { isTruncated };\n}\n","<script setup lang=\"ts\">\nimport { computed, useTemplateRef } from \"vue\";\n\nimport { useKdsIsTruncated } from \"../../util\";\n\nimport type { KdsLiveStatusProps } from \"./types\";\n\nconst props = withDefaults(defineProps<KdsLiveStatusProps>(), {\n status: \"red\",\n size: \"medium\",\n label: \"\",\n title: undefined,\n});\n\nconst accessibleTitle = computed(\n () => props.title?.trim() || `Status is ${props.status}`,\n);\n\nconst labelEl = useTemplateRef(\"labelEl\");\nconst { isTruncated } = useKdsIsTruncated(labelEl);\n</script>\n\n<template>\n <span\n :class=\"['kds-live-status', props.status, `size-${props.size}`]\"\n role=\"img\"\n :title=\"accessibleTitle\"\n :aria-label=\"accessibleTitle\"\n >\n <span class=\"dot\" />\n <span\n v-if=\"props.label\"\n ref=\"labelEl\"\n class=\"label\"\n :title=\"isTruncated ? props.label : undefined\"\n >\n {{ props.label }}\n </span>\n </span>\n</template>\n\n<style scoped>\n.kds-live-status {\n --dot-color: var(--kds-color-state-disabled);\n --dot-border-color: var(--kds-color-state-disabled-border);\n\n display: inline-flex;\n flex-shrink: 0;\n gap: 0; /* gap already included in dot */\n align-items: center;\n max-width: 100%;\n line-height: 0;\n\n &.red {\n --dot-color: var(--kds-color-state-error);\n --dot-border-color: var(--kds-color-state-error-border);\n }\n\n &.orange {\n --dot-color: var(--kds-color-state-warning);\n --dot-border-color: var(--kds-color-state-warning-border);\n }\n\n &.green {\n --dot-color: var(--kds-color-state-success);\n --dot-border-color: var(--kds-color-state-success-border);\n }\n\n .dot {\n display: inline-flex;\n flex-shrink: 0;\n align-items: center;\n justify-content: center;\n width: var(--kds-dimension-icon-1-25x);\n height: var(--kds-dimension-icon-1-25x);\n\n &::after {\n display: block;\n width: 50%;\n height: 50%;\n content: \"\";\n background-color: var(--dot-color);\n border-color: var(--dot-border-color);\n border-style: solid;\n border-width: var(--kds-border-width-icon-stroke-l);\n border-radius: var(--kds-border-radius-container-pill);\n }\n }\n\n .label {\n overflow: hidden;\n text-overflow: ellipsis;\n font: var(--kds-font-base-subtext-medium);\n color: var(--kds-color-text-and-icon-neutral);\n white-space: nowrap;\n }\n\n &.size-medium {\n .dot {\n width: var(--kds-dimension-icon-1x);\n height: var(--kds-dimension-icon-1x);\n }\n\n &::after {\n border-width: var(--kds-border-width-icon-stroke-m);\n }\n\n .label {\n font: var(--kds-font-base-subtext-small);\n }\n }\n\n &.size-small {\n .dot {\n width: var(--kds-dimension-icon-0-75x);\n height: var(--kds-dimension-icon-0-75x);\n }\n\n &::after {\n border-width: var(--kds-border-width-icon-stroke-s);\n }\n\n .label {\n font: var(--kds-font-base-subtext-xsmall);\n }\n }\n}\n</style>\n","export const kdsLiveStatusStatus = {\n RED: \"red\",\n ORANGE: \"orange\",\n GREEN: \"green\",\n DISABLED: \"disabled\",\n} as const;\n\nexport const kdsLiveStatusStatuses = Object.values(kdsLiveStatusStatus);\n\nexport const kdsLiveStatusSize = {\n LARGE: \"large\",\n MEDIUM: \"medium\",\n SMALL: \"small\",\n} as const;\n\nexport const kdsLiveStatusSizes = Object.values(kdsLiveStatusSize);\n","<script lang=\"ts\" setup>\nimport type { KdsLoadingSpinnerProps } from \"./types\";\n\nwithDefaults(defineProps<KdsLoadingSpinnerProps>(), {\n variant: \"onSurface\",\n size: \"medium\",\n});\n</script>\n\n<template>\n <svg\n :class=\"['kds-loading-spinner', size]\"\n :data-style=\"variant\"\n viewBox=\"0 0 120 120\"\n >\n <circle class=\"track\" cx=\"60\" cy=\"60\" r=\"50\" />\n <circle class=\"loader\" cx=\"60\" cy=\"60\" r=\"50\" />\n </svg>\n</template>\n\n<style scoped>\n.kds-loading-spinner {\n --icon-width: var(--kds-dimension-icon-1x);\n --icon-height: var(--kds-dimension-icon-1x);\n --icon-stroke-width: 12; /* 10% of size */\n\n &.xsmall {\n --icon-width: var(--kds-dimension-icon-0-56x);\n --icon-height: var(--kds-dimension-icon-0-56x);\n }\n\n &.small {\n --icon-width: var(--kds-dimension-icon-0-75x);\n --icon-height: var(--kds-dimension-icon-0-75x);\n }\n\n &.large {\n --icon-width: var(--kds-dimension-icon-1-25x);\n --icon-height: var(--kds-dimension-icon-1-25x);\n }\n\n width: var(--icon-width);\n height: var(--icon-height);\n\n --color-track: var(--kds-color-loading-spinner-track-on-surface);\n --color-loader: var(--kds-color-loading-spinner-progress-on-surface);\n\n &[data-style=\"onPrimary\"] {\n --color-track: var(--kds-color-loading-spinner-track-on-primary);\n --color-loader: var(--kds-color-loading-spinner-progress-on-primary);\n }\n\n & .track {\n fill: none;\n stroke: var(--color-track);\n stroke-width: var(--icon-stroke-width);\n }\n\n & .loader {\n fill: none;\n stroke: var(--color-loader);\n stroke-width: var(--icon-stroke-width);\n stroke-linecap: round;\n stroke-dasharray: 80 240;\n transform: rotate(-90deg);\n transform-origin: center;\n\n /* REQUIRED for SVG rotation */\n transform-box: fill-box;\n animation: spin 1.2s linear infinite;\n }\n}\n\n@keyframes spin {\n from {\n transform: rotate(-90deg);\n }\n\n to {\n transform: rotate(270deg);\n }\n}\n</style>\n","export const kdsLoadingSpinnerVariant = {\n ON_PRIMARY: \"onPrimary\",\n ON_SURFACE: \"onSurface\",\n} as const;\n\nexport const kdsLoadingSpinnerVariants = Object.values(\n kdsLoadingSpinnerVariant,\n);\n","<script setup lang=\"ts\">\nimport { type HTMLAttributes, computed } from \"vue\";\n\nimport KdsIcon from \"../Icon/KdsIcon.vue\";\nimport type { KdsIconName } from \"../Icon/types.ts\";\n\nimport type { KdsInlineMessageProps } from \"./types\";\n\nconst props = withDefaults(defineProps<KdsInlineMessageProps>(), {\n variant: \"info\",\n description: undefined,\n});\n\nconst classes = computed(() => [\"kds-inline-message\", props.variant]);\n\nconst iconName = computed<KdsIconName>(() => {\n switch (props.variant) {\n case \"success\":\n return \"circle-success\";\n case \"error\":\n return \"circle-error\";\n case \"warning\":\n return \"warning\";\n case \"info\":\n default:\n return \"circle-info\";\n }\n});\n\nconst role = computed<HTMLAttributes[\"role\"]>(() =>\n props.variant === \"warning\" || props.variant === \"error\" ? \"alert\" : \"status\",\n);\n</script>\n\n<template>\n <div :class=\"classes\" :role=\"role\">\n <div class=\"header\">\n <KdsIcon class=\"icon\" :name=\"iconName\" size=\"small\" />\n <div class=\"headline\">\n {{ props.headline }}\n </div>\n </div>\n\n <div v-if=\"props.description\" class=\"body\">\n {{ props.description }}\n </div>\n </div>\n</template>\n\n<style scoped>\n.kds-inline-message {\n display: flex;\n flex-direction: column;\n gap: var(--kds-spacing-container-0-25x);\n align-items: flex-start;\n padding: calc(\n var(--kds-spacing-container-0-5x) - var(--kds-core-border-width-xs)\n );\n color: var(--kds-color-text-and-icon-neutral);\n border-radius: var(--kds-border-radius-container-0-50x);\n\n .header {\n display: flex;\n gap: var(--kds-spacing-container-0-25x);\n align-items: flex-start;\n\n .icon {\n align-self: flex-start;\n margin-top: var(--kds-spacing-container-0-12x);\n color: var(--icon-color);\n }\n\n .headline {\n font: var(--kds-font-base-title-small-strong);\n }\n }\n\n .body {\n align-self: stretch;\n padding-left: var(--kds-spacing-container-1x);\n font: var(--kds-font-base-body-small);\n color: var(--kds-color-text-and-icon-muted);\n }\n\n &.info {\n --icon-color: var(--kds-color-text-and-icon-info);\n\n background-color: var(--kds-color-background-static-info-muted);\n border: var(--kds-border-base-info);\n }\n\n &.success {\n --icon-color: var(--kds-color-text-and-icon-success);\n\n background-color: var(--kds-color-background-static-success-muted);\n border: var(--kds-border-base-success);\n }\n\n &.error {\n --icon-color: var(--kds-color-text-and-icon-danger);\n\n background-color: var(--kds-color-background-static-danger-muted);\n border: var(--kds-border-base-danger);\n }\n\n &.warning {\n --icon-color: var(--kds-color-text-and-icon-warning);\n\n background-color: var(--kds-color-background-static-warning-muted);\n border: var(--kds-border-base-warning);\n }\n}\n</style>\n","export const kdsInlineMessageVariant = {\n ERROR: \"error\",\n INFO: \"info\",\n SUCCESS: \"success\",\n WARNING: \"warning\",\n} as const;\n\nexport const kdsInlineMessageVariants = Object.values(kdsInlineMessageVariant);\n","<script setup lang=\"ts\">\nimport { type Component, computed } from \"vue\";\n\nimport KdsIcon from \"../accessories/Icon/KdsIcon.vue\";\n\nimport type { BaseButtonProps } from \"./types\";\n\ntype BaseButtonPropsWithComponent = BaseButtonProps & {\n component?: string | Component;\n};\n\nconst props = withDefaults(defineProps<BaseButtonPropsWithComponent>(), {\n component: \"button\",\n size: \"medium\",\n destructive: false,\n success: false,\n error: false,\n disabled: false,\n toggled: false,\n});\n\nconst emit = defineEmits<{\n click: [event: MouseEvent];\n}>();\n\nconst classes = computed(() => [\n \"button\",\n props.size,\n props.variant,\n { destructive: props.destructive },\n { disabled: props.disabled },\n { toggled: props.toggled },\n { success: props.success },\n { error: props.error },\n]);\n\nconst iconSize = computed(() => {\n if (props.size === \"xsmall\") {\n return \"small\";\n } else {\n return props.size;\n }\n});\n\nfunction onClick(e: MouseEvent) {\n if (!props.disabled) {\n emit(\"click\", e);\n }\n}\n</script>\n\n<template>\n <Component\n :is=\"component\"\n :class=\"classes\"\n :disabled=\"props.disabled\"\n :title=\"props.title\"\n :aria-label=\"props.ariaLabel\"\n @click=\"onClick($event)\"\n >\n <slot name=\"leading\">\n <KdsIcon\n v-if=\"props.leadingIcon\"\n :name=\"props.leadingIcon\"\n :size=\"iconSize\"\n />\n </slot>\n <span v-if=\"props.label\" class=\"label\">{{ props.label }}</span>\n <KdsIcon\n v-if=\"props.trailingIcon && props.label\"\n :name=\"props.trailingIcon\"\n :size=\"iconSize\"\n />\n </Component>\n</template>\n\n<style>\nhtml.kds-legacy {\n --kds-legacy-button-border-radius: var(--kds-border-radius-container-pill);\n}\n</style>\n\n<style scoped>\n.button {\n position: relative;\n display: flex;\n flex-shrink: 0;\n align-items: center;\n justify-content: center;\n width: fit-content;\n min-width: 15px;\n max-width: 100%;\n overflow: hidden;\n cursor: pointer;\n\n /* for LinkButton */\n &:is(a) {\n text-decoration: none;\n }\n\n &.disabled {\n cursor: default;\n }\n\n &:focus-visible {\n outline: var(--kds-border-action-focused);\n outline-offset: var(--kds-spacing-offset-focus);\n }\n\n &.filled {\n color: var(--kds-color-text-and-icon-primary-inverted);\n background-color: var(--kds-color-background-primary-bold-initial);\n border: var(--kds-border-action-transparent);\n\n &.disabled {\n color: var(--kds-color-text-and-icon-disabled-inverted);\n background-color: var(--kds-color-background-disabled-primary);\n }\n\n &:not(.disabled, .success, .error) {\n &:hover {\n background-color: var(--kds-color-background-primary-bold-hover);\n }\n\n &:active {\n background-color: var(--kds-color-background-primary-bold-active);\n }\n }\n\n &.destructive {\n color: var(--kds-color-text-and-icon-danger-inverted);\n background-color: var(--kds-color-background-danger-bold-initial);\n\n &.disabled {\n color: var(--kds-color-text-and-icon-disabled-inverted);\n background-color: var(--kds-color-background-disabled-danger);\n }\n\n &:not(.disabled, .success, .error) {\n &:hover {\n background-color: var(--kds-color-background-danger-bold-hover);\n }\n\n &:active {\n background-color: var(--kds-color-background-danger-bold-active);\n }\n }\n }\n }\n\n &.outlined {\n color: var(--kds-color-text-and-icon-neutral);\n background-color: var(--kds-color-background-neutral-initial);\n border: var(--kds-border-action-default);\n\n &.disabled {\n color: var(--kds-color-text-and-icon-disabled);\n border: var(--kds-border-action-disabled);\n }\n\n &:not(.disabled, .success, .error) {\n &:hover {\n background-color: var(--kds-color-background-neutral-hover);\n }\n\n &:active {\n background-color: var(--kds-color-background-neutral-active);\n }\n }\n\n &.destructive {\n color: var(--kds-color-text-and-icon-danger);\n border: var(--kds-border-action-error);\n\n &.disabled {\n color: var(--kds-color-text-and-icon-disabled);\n border: var(--kds-border-action-disabled);\n }\n\n &:not(.disabled, .success, .error) {\n &:hover {\n background-color: var(--kds-color-background-danger-hover);\n }\n\n &:active {\n background-color: var(--kds-color-background-danger-active);\n }\n }\n }\n }\n\n &.transparent {\n color: var(--kds-color-text-and-icon-neutral);\n background-color: var(--kds-color-background-neutral-initial);\n border: var(--kds-border-action-transparent);\n\n &.disabled {\n color: var(--kds-color-text-and-icon-disabled);\n }\n\n &:not(.disabled, .success, .error) {\n &:hover {\n background-color: var(--kds-color-background-neutral-hover);\n }\n\n &:active {\n background-color: var(--kds-color-background-neutral-active);\n }\n }\n\n &.destructive {\n color: var(--kds-color-text-and-icon-danger);\n\n &.disabled {\n color: var(--kds-color-text-and-icon-disabled);\n }\n\n &:not(.disabled, .success, .error) {\n &:hover {\n background-color: var(--kds-color-background-danger-hover);\n }\n\n &:active {\n background-color: var(--kds-color-background-danger-active);\n }\n }\n }\n }\n\n &.toggled {\n color: var(--kds-color-text-and-icon-selected);\n background-color: var(--kds-color-background-selected-initial);\n border: var(--kds-border-action-selected);\n\n &.disabled {\n color: var(--kds-color-text-and-icon-disabled);\n }\n\n &:not(.disabled, .success, .error) {\n &:hover {\n background-color: var(--kds-color-background-selected-hover);\n }\n\n &:active {\n background-color: var(--kds-color-background-selected-active);\n }\n }\n }\n\n & .label {\n max-width: 200px;\n padding: 0 var(--kds-spacing-container-0-12x);\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n text-rendering: geometricprecision;\n }\n\n &.xsmall {\n gap: var(--kds-spacing-container-0-12x);\n height: var(--kds-dimension-component-height-1-25x);\n padding: 0\n calc(var(--kds-spacing-container-0-25x) - var(--kds-core-border-width-xs)); /* needed as border in Figma is not increasing the width */\n\n font: var(--kds-font-base-interactive-xsmall-strong);\n border-radius: var(\n --kds-legacy-button-border-radius,\n var(--kds-border-radius-container-0-25x)\n );\n }\n\n &.small {\n gap: var(--kds-spacing-container-0-12x);\n height: var(--kds-dimension-component-height-1-5x);\n padding: 0\n calc(var(--kds-spacing-container-0-37x) - var(--kds-core-border-width-xs)); /* needed as border in Figma is not increasing the width */\n\n font: var(--kds-font-base-interactive-small-strong);\n border-radius: var(\n --kds-legacy-button-border-radius,\n var(--kds-border-radius-container-0-37x)\n );\n }\n\n &.medium {\n gap: var(--kds-spacing-container-0-25x);\n height: var(--kds-dimension-component-height-1-75x);\n padding: 0\n calc(var(--kds-spacing-container-0-37x) - var(--kds-core-border-width-xs)); /* needed as border in Figma is not increasing the width */\n\n font: var(--kds-font-base-interactive-medium-strong);\n border-radius: var(\n --kds-legacy-button-border-radius,\n var(--kds-border-radius-container-0-37x)\n );\n }\n\n &.large {\n gap: var(--kds-spacing-container-0-25x);\n height: var(--kds-dimension-component-height-2-25x);\n padding: 0\n calc(var(--kds-spacing-container-0-5x) - var(--kds-core-border-width-xs)); /* needed as border in Figma is not increasing the width */\n\n font: var(--kds-font-base-interactive-large-strong);\n border-radius: var(\n --kds-legacy-button-border-radius,\n var(--kds-border-radius-container-0-50x)\n );\n\n & .label {\n padding: 0 var(--kds-spacing-container-0-25x);\n }\n }\n\n &.success {\n color: var(--kds-color-text-and-icon-success-inverted);\n background-color: var(--kds-color-background-success-bold-initial);\n border: var(--kds-border-action-transparent);\n transition:\n background-color 200ms ease-out,\n border-color 200ms ease-out,\n color 200ms ease-out;\n }\n\n &.error {\n color: var(--kds-color-text-and-icon-danger-inverted);\n background-color: var(--kds-color-background-danger-bold-initial);\n border: var(--kds-border-action-transparent);\n transition:\n background-color 200ms ease-out,\n border-color 200ms ease-out,\n color 200ms ease-out;\n }\n}\n</style>\n","<script setup lang=\"ts\">\nimport BaseButton from \"../BaseButton.vue\";\n\nimport type { KdsButtonProps } from \"./types\";\n\nconst props = withDefaults(defineProps<KdsButtonProps>(), {\n variant: \"filled\",\n});\n\nconst emit = defineEmits<{\n click: [event: MouseEvent];\n}>();\n</script>\n\n<template>\n <BaseButton v-bind=\"props\" @click=\"emit('click', $event)\" />\n</template>\n","import { defineComponent, getCurrentInstance, h, useSlots } from \"vue\";\n\nconst getAppInstance = () => {\n const currentInstance = getCurrentInstance();\n\n return currentInstance?.appContext.app;\n};\n\nexport const resolveNuxtLinkComponent = () => {\n const app = getAppInstance();\n\n // only works when NuxtLink is registered globally, which it's not by default\n const nuxtLinkComponent = app?.component(\"NuxtLink\");\n if (nuxtLinkComponent) {\n return nuxtLinkComponent;\n }\n\n const routerLinkComponent = app?.component(\"RouterLink\");\n if (routerLinkComponent) {\n return routerLinkComponent;\n }\n\n // fallback component when neither NuxtLink nor RouterLink are available\n const fallbackComponent = defineComponent({\n props: {\n to: {\n type: String,\n default: \"\",\n },\n },\n\n render() {\n return h(\"a\", { href: this.to }, [useSlots().default?.()]);\n },\n });\n\n return fallbackComponent;\n};\n","<script setup lang=\"ts\">\nimport { computed } from \"vue\";\n\nimport { resolveNuxtLinkComponent } from \"../../util/nuxtComponentResolver\";\nimport BaseButton from \"../BaseButton.vue\";\n\nimport type { KdsLinkButtonProps } from \"./types\";\n\nconst props = withDefaults(defineProps<KdsLinkButtonProps>(), {\n variant: \"filled\",\n download: undefined,\n rel: null,\n target: null,\n});\n\nconst component = computed(() => {\n if (props.disabled) {\n return \"button\";\n }\n return resolveNuxtLinkComponent();\n});\n\nconst emit = defineEmits<{\n click: [event: MouseEvent];\n}>();\n</script>\n\n<template>\n <BaseButton\n v-bind=\"props\"\n :component=\"component\"\n @click=\"emit('click', $event)\"\n />\n</template>\n","<script setup lang=\"ts\">\nimport BaseButton from \"../BaseButton.vue\";\n\nimport type { KdsToggleButtonProps } from \"./types\";\n\nconst props = withDefaults(defineProps<KdsToggleButtonProps>(), {\n variant: \"outlined\",\n});\n\nconst modelValue = defineModel<boolean>({ default: false });\n</script>\n\n<template>\n <BaseButton\n v-bind=\"props\"\n :toggled=\"modelValue\"\n :aria-pressed=\"modelValue\"\n @click=\"modelValue = !modelValue\"\n />\n</template>\n","export const kdsToggleButtonVariant = {\n OUTLINED: \"outlined\",\n TRANSPARENT: \"transparent\",\n} as const;\n\nexport const kdsToggleButtonVariants = Object.values(kdsToggleButtonVariant);\n","<script setup lang=\"ts\">\nimport { computed } from \"vue\";\n\nimport type { KdsIconSize } from \"../../accessories\";\nimport KdsIcon from \"../../accessories/Icon/KdsIcon.vue\";\nimport KdsLoadingSpinner from \"../../accessories/LoadingSpinner/KdsLoadingSpinner.vue\";\nimport BaseButton from \"../BaseButton.vue\";\n\nimport type { KdsProgressButtonProps, KdsProgressButtonState } from \"./types\";\n\nconst props = withDefaults(defineProps<KdsProgressButtonProps>(), {\n variant: \"filled\",\n size: \"medium\",\n disabled: false,\n});\n\nconst emit = defineEmits<{\n /**\n * Fired when the button is clicked.\n *\n * This event is only emitted when `state` is `default`.\n * Clicks while in `progress`, `success` or `error` are ignored.\n */\n click: [event: MouseEvent];\n}>();\n\nconst state = defineModel<KdsProgressButtonState>(\"state\", {\n default: \"default\",\n});\n\nconst iconSize = computed<KdsIconSize>(() => {\n if (props.size === \"xsmall\") {\n return \"small\";\n }\n return props.size;\n});\n\nfunction onClick(event: MouseEvent) {\n event.preventDefault();\n\n if (state.value !== \"default\") {\n return;\n }\n\n emit(\"click\", event);\n}\n\nconst baseButtonProps = computed(() => ({\n variant: props.variant,\n size: props.size,\n disabled: props.disabled,\n success: state.value === \"success\",\n error: state.value === \"error\",\n title: props.ariaLabel,\n label: props.label,\n leadingIcon: props.leadingIcon,\n ariaLabel: props.ariaLabel,\n}));\n</script>\n\n<template>\n <BaseButton\n v-bind=\"baseButtonProps\"\n class=\"kds-progress-button\"\n :data-kds-progress-state=\"state\"\n @click=\"onClick\"\n >\n <template #leading>\n <span :class=\"['leading', iconSize]\">\n <span class=\"leading-icon\" :data-visible=\"state !== 'progress'\">\n <KdsIcon :name=\"props.leadingIcon\" :size=\"iconSize\" />\n </span>\n <span class=\"spinner\" :data-visible=\"state === 'progress'\">\n <KdsLoadingSpinner\n :size=\"iconSize\"\n :variant=\"props.variant === 'filled' ? 'onPrimary' : 'onSurface'\"\n />\n </span>\n </span>\n </template>\n </BaseButton>\n</template>\n\n<style scoped>\n.leading {\n position: relative;\n display: inline-flex;\n align-items: center;\n justify-content: center;\n width: var(--kds-dimension-icon-1x);\n height: var(--kds-dimension-icon-1x);\n\n &.xsmall {\n width: var(--kds-dimension-icon-0-56x);\n height: var(--kds-dimension-icon-0-56x);\n }\n\n &.small {\n width: var(--kds-dimension-icon-0-75x);\n height: var(--kds-dimension-icon-0-75x);\n }\n\n &.large {\n width: var(--kds-dimension-icon-1-25x);\n height: var(--kds-dimension-icon-1-25x);\n }\n}\n\n.leading-icon,\n.spinner {\n position: absolute;\n inset: 0;\n display: inline-flex;\n align-items: center;\n justify-content: center;\n opacity: 0;\n transition: opacity 200ms ease-out;\n}\n\n.leading-icon[data-visible=\"true\"],\n.spinner[data-visible=\"true\"] {\n opacity: 1;\n}\n</style>\n","export const kdsProgressButtonState = {\n DEFAULT: \"default\",\n PROGRESS: \"progress\",\n SUCCESS: \"success\",\n ERROR: \"error\",\n} as const;\n\nexport const kdsProgressButtonStates = Object.values(kdsProgressButtonState);\n","<script setup lang=\"ts\">\nimport { computed } from \"vue\";\n\nimport KdsLoadingSpinner from \"../../accessories/LoadingSpinner/KdsLoadingSpinner.vue\";\nimport KdsButton from \"../../buttons/KdsButton/KdsButton.vue\";\nimport KdsLinkButton from \"../../buttons/KdsLinkButton/KdsLinkButton.vue\";\n\nimport type { KdsEmptyStateProps } from \"./types\";\n\nconst props = defineProps<KdsEmptyStateProps>();\n\nconst emit = defineEmits<{\n /**\n * Fired when the button is clicked\n *\n * This event is only emitted when the `button` prop is provided.\n */\n buttonClick: [event: MouseEvent];\n}>();\n\nconst isLinkButton = computed(\n () => props.button && \"to\" in props.button && props.button.to !== undefined,\n);\n\nconst buttonComponent = computed(() =>\n isLinkButton.value ? KdsLinkButton : KdsButton,\n);\n</script>\n\n<template>\n <div class=\"kds-empty-state\">\n <KdsLoadingSpinner\n v-if=\"props.loadingSpinner\"\n data-testid=\"loading-spinner\"\n size=\"large\"\n variant=\"onSurface\"\n aria-hidden=\"true\"\n />\n <p class=\"kds-empty-state-headline\">{{ props.headline }}</p>\n <p v-if=\"props.description\" class=\"kds-empty-state-description\">\n {{ props.description }}\n </p>\n <div v-if=\"props.button\" class=\"kds-empty-state-action\">\n <component\n :is=\"buttonComponent\"\n v-bind=\"props.button\"\n @click=\"emit('buttonClick', $event)\"\n />\n </div>\n </div>\n</template>\n\n<style scoped>\n.kds-empty-state {\n display: flex;\n flex-direction: column;\n gap: var(--kds-spacing-container-0-5x);\n align-items: center;\n max-width: 280px;\n padding: var(--kds-spacing-container-0-5x);\n}\n\n.kds-empty-state-headline {\n margin: 0;\n font: var(--kds-font-base-title-small);\n color: var(--kds-color-text-and-icon-muted);\n text-align: center;\n}\n\n.kds-empty-state-description {\n margin: 0;\n font: var(--kds-font-base-body-small);\n color: var(--kds-color-text-and-icon-muted);\n text-align: center;\n}\n\n.kds-empty-state-action {\n margin-top: var(--kds-spacing-container-0-12x);\n}\n</style>\n","<script setup lang=\"ts\">\nimport { KdsLiveStatus } from \"../../../../accessories\";\nimport KdsAvatar from \"../../../../accessories/Avatar/KdsAvatar.vue\";\nimport KdsColorSwatch from \"../../../../accessories/ColorSwatch/KdsColorSwatch.vue\";\nimport KdsDataType from \"../../../../accessories/Icon/KdsDataType.vue\";\nimport KdsIcon from \"../../../../accessories/Icon/KdsIcon.vue\";\n\nimport type {\n KdsListItemAccessory,\n KdsListItemAccessorySize,\n} from \"./types.ts\";\n\nconst props = withDefaults(\n defineProps<{\n accessory: KdsListItemAccessory;\n size: KdsListItemAccessorySize;\n disabled?: boolean;\n }>(),\n {\n disabled: false,\n },\n);\n</script>\n\n<template>\n <KdsAvatar\n v-if=\"props.accessory.type === 'avatar'\"\n :title=\"props.accessory.title\"\n :src=\"props.accessory.src\"\n :initials=\"props.accessory.initials\"\n :size=\"props.size\"\n />\n <KdsColorSwatch\n v-else-if=\"props.accessory.type === 'colorSwatch'\"\n :color=\"props.accessory.color\"\n :title=\"props.accessory.title\"\n :size=\"props.size\"\n />\n <KdsIcon\n v-else-if=\"props.accessory.type === 'icon'\"\n :name=\"props.accessory.name\"\n :size=\"props.size\"\n :disabled=\"props.disabled\"\n />\n <KdsDataType\n v-else-if=\"props.accessory.type === 'dataType'\"\n :icon-name=\"props.accessory.name\"\n :size=\"props.size\"\n :disabled=\"props.disabled\"\n />\n <KdsLiveStatus\n v-else-if=\"props.accessory.type === 'liveStatus'\"\n :status=\"props.accessory.status\"\n :title=\"props.accessory.title\"\n :size=\"props.size\"\n />\n</template>\n","export const kdsListItemAccessorySize = {\n SMALL: \"small\",\n MEDIUM: \"medium\",\n LARGE: \"large\",\n} as const;\n\nexport const kdsListItemAccessorySizes = Object.values(\n kdsListItemAccessorySize,\n);\n","export const kdsListItemVariant = {\n SMALL: \"small\",\n LARGE: \"large\",\n} as const;\n\nexport const kdsListItemVariants = Object.values(kdsListItemVariant);\n\nexport const kdsListItemRole = {\n OPTION: \"option\",\n MENUITEM: \"menuitem\",\n} as const;\n\nexport const kdsListItemRoles = Object.values(kdsListItemRole);\n","<script setup lang=\"ts\">\nimport { computed, useTemplateRef } from \"vue\";\n\nimport KdsIcon from \"../../../../accessories/Icon/KdsIcon.vue\";\nimport { useKdsIsTruncated } from \"../../../../util\";\nimport ListItemAccessory from \"../ListItemAccessory/ListItemAccessory.vue\";\nimport { kdsListItemAccessorySize } from \"../ListItemAccessory/enums.ts\";\n\nimport { kdsListItemVariant } from \"./enums.ts\";\nimport type { KdsListItemProps } from \"./types.ts\";\n\nconst props = withDefaults(defineProps<KdsListItemProps>(), {\n accessory: undefined,\n subText: undefined,\n variant: kdsListItemVariant.SMALL,\n shortcut: undefined,\n trailingIcon: undefined,\n special: false,\n selected: false,\n active: false,\n missing: false,\n disabled: false,\n role: \"option\",\n});\n\nconst emit = defineEmits<{\n /**\n * Emitted when the list item is clicked.\n */\n click: [event: MouseEvent];\n}>();\n\nconst accessorySize = computed(() =>\n props.variant === kdsListItemVariant.LARGE\n ? kdsListItemAccessorySize.LARGE\n : kdsListItemAccessorySize.SMALL,\n);\n\nconst onClick = (event: MouseEvent) => {\n if (props.disabled) {\n event.stopPropagation();\n event.preventDefault();\n return;\n }\n emit(\"click\", event);\n};\n\nconst labelEl = useTemplateRef(\"labelEl\");\nconst { isTruncated: isLabelTruncated } = useKdsIsTruncated(labelEl);\n\nconst subtextEl = useTemplateRef(\"subtextEl\");\nconst { isTruncated: isSubtextTruncated } = useKdsIsTruncated(subtextEl);\n</script>\n\n<template>\n <div\n :id=\"props.id\"\n :role=\"props.role\"\n :aria-selected=\"props.role === 'option' ? props.selected : undefined\"\n :aria-disabled=\"props.disabled\"\n :class=\"[\n 'kds-list-item',\n props.variant,\n {\n selected: props.selected,\n active: props.active,\n missing: props.missing,\n disabled: props.disabled,\n },\n ]\"\n @click=\"onClick\"\n >\n <span v-if=\"props.accessory\" class=\"accessory\">\n <ListItemAccessory\n :accessory=\"props.accessory\"\n :size=\"accessorySize\"\n :disabled=\"props.disabled\"\n />\n </span>\n\n <span class=\"content\">\n <span\n ref=\"labelEl\"\n class=\"label\"\n :title=\"isLabelTruncated ? props.label : undefined\"\n >\n <span v-if=\"props.missing\" class=\"prefix\">(Missing) </span>\n <span :class=\"{ special: props.special }\">{{ props.label }}</span>\n </span>\n <span\n v-if=\"props.subText\"\n ref=\"subtextEl\"\n class=\"subtext\"\n :title=\"isSubtextTruncated ? props.subText : undefined\"\n >\n {{ props.subText }}\n </span>\n </span>\n\n <span class=\"trailing-item\">\n <span v-if=\"props.shortcut\" class=\"shortcut\">\n {{ props.shortcut }}\n </span>\n\n <KdsIcon\n v-if=\"props.trailingIcon\"\n :name=\"props.trailingIcon\"\n size=\"small\"\n />\n <span v-else class=\"trailing-item-reserve-space\" />\n </span>\n </div>\n</template>\n\n<style scoped>\n.kds-list-item {\n position: relative;\n display: flex;\n gap: var(--kds-spacing-container-0-5x);\n align-items: center;\n width: 100%;\n min-width: var(--kds-dimension-component-width-12x);\n padding: var(--kds-spacing-container-0-25x) var(--kds-spacing-container-0-5x);\n color: var(--kds-color-text-and-icon-neutral);\n cursor: pointer;\n user-select: none;\n background: var(--kds-color-background-neutral-initial);\n border: none;\n border-radius: var(--kds-border-radius-container-0-31x);\n\n &.small {\n gap: var(--kds-spacing-container-0-25x);\n align-items: flex-start;\n padding: var(--kds-spacing-container-0-25x)\n var(--kds-spacing-container-0-5x);\n font: var(--kds-font-base-interactive-small);\n\n .accessory {\n display: flex;\n padding: var(--kds-spacing-container-0-12x) 0;\n }\n }\n\n &.large {\n font: var(--kds-font-base-interactive-small-strong);\n\n .accessory {\n display: flex;\n align-items: center;\n }\n }\n\n .content {\n display: flex;\n flex: 1 1 auto;\n flex-direction: column;\n gap: var(--kds-spacing-container-0-12x);\n min-width: 0;\n\n .large & {\n justify-content: center;\n min-height: calc(\n var(--kds-dimension-component-height-2-5x) - 2 *\n var(--kds-spacing-container-0-25x)\n );\n }\n\n .label {\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n\n .prefix {\n flex-shrink: 0;\n }\n\n .special {\n font: var(--kds-font-base-interactive-small-italic);\n }\n }\n\n .subtext {\n display: -webkit-box;\n overflow: hidden;\n -webkit-line-clamp: 2;\n line-clamp: 2;\n font: var(--kds-font-base-subtext-small);\n color: var(--kds-color-text-and-icon-muted);\n -webkit-box-orient: vertical;\n }\n }\n\n .trailing-item {\n display: flex;\n flex-shrink: 0;\n gap: var(--kds-spacing-container-0-12x);\n align-items: center;\n align-self: center;\n justify-content: flex-end;\n\n .shortcut {\n flex-shrink: 0;\n font: var(--kds-font-base-interactive-xsmall-strong);\n color: var(--kds-color-text-and-icon-muted);\n text-align: right;\n white-space: nowrap;\n }\n\n .trailing-item-reserve-space {\n width: var(--kds-dimension-icon-0-75x);\n }\n }\n\n &:hover:not(.disabled),\n &.active:not(.disabled) {\n background: var(--kds-color-background-neutral-hover);\n }\n\n &:active:not(.disabled) {\n background: var(--kds-color-background-neutral-active);\n }\n\n &.selected {\n color: var(--kds-color-text-and-icon-selected);\n background: var(--kds-color-background-selected-initial);\n\n .subtext {\n color: var(--kds-color-text-and-icon-selected);\n }\n\n &:hover,\n &.active {\n background: var(--kds-color-background-selected-hover);\n }\n\n &:active {\n background: var(--kds-color-background-selected-active);\n }\n\n &.disabled {\n background: var(--kds-color-background-selected-initial);\n }\n }\n\n &.missing {\n color: var(--kds-color-text-and-icon-danger);\n background: var(--kds-color-background-danger-initial);\n\n .subtext {\n color: var(--kds-color-text-and-icon-danger);\n }\n\n &:hover,\n &.active {\n background: var(--kds-color-background-danger-hover);\n }\n\n &:active {\n background: var(--kds-color-background-danger-active);\n }\n\n &.disabled {\n background: var(--kds-color-background-danger-initial);\n }\n }\n\n &.disabled {\n color: var(--kds-color-text-and-icon-disabled);\n cursor: default;\n\n .shortcut,\n .subtext {\n color: var(--kds-color-text-and-icon-disabled);\n }\n }\n}\n</style>\n","<template>\n <hr class=\"kds-list-item-divider\" />\n</template>\n\n<style scoped>\n.kds-list-item-divider {\n width: 100%;\n padding: 0;\n margin: 0 0 var(--kds-spacing-container-0-12x);\n border: none;\n border-bottom: var(--kds-border-base-subtle);\n}\n</style>\n","<script setup lang=\"ts\">\nimport { useTemplateRef } from \"vue\";\n\nimport KdsIcon from \"../../../../accessories/Icon/KdsIcon.vue\";\nimport { useKdsIsTruncated } from \"../../../../util\";\n\nimport type { KdsListItemSectionTitleProps } from \"./types.ts\";\n\nconst props = defineProps<KdsListItemSectionTitleProps>();\n\nconst labelEl = useTemplateRef(\"labelEl\");\nconst { isTruncated } = useKdsIsTruncated(labelEl);\n</script>\n\n<template>\n <div class=\"kds-list-item-section-title\">\n <span v-if=\"props.leadingIcon\" class=\"icon\">\n <KdsIcon :name=\"props.leadingIcon\" size=\"small\" />\n </span>\n\n <span\n ref=\"labelEl\"\n class=\"label\"\n :title=\"isTruncated ? props.label : undefined\"\n >\n {{ props.label }}\n </span>\n </div>\n</template>\n\n<style scoped>\n.kds-list-item-section-title {\n display: flex;\n gap: var(--kds-spacing-container-0-25x);\n align-items: center;\n width: 100%;\n min-height: var(--kds-dimension-component-height-1-5x);\n padding: var(--kds-spacing-container-0-25x) var(--kds-spacing-container-0-5x);\n color: var(--kds-color-text-and-icon-muted);\n\n .icon {\n display: flex;\n flex-shrink: 0;\n align-items: center;\n }\n\n .label {\n flex: 1 1 auto;\n min-width: 0;\n overflow: hidden;\n text-overflow: ellipsis;\n font: var(--kds-font-base-title-xsmall);\n white-space: nowrap;\n }\n}\n</style>\n","<script setup lang=\"ts\">\nimport { computed, nextTick, ref, useId, useTemplateRef, watch } from \"vue\";\n\nimport KdsEmptyState from \"../../../../layouts/EmptyState/KdsEmptyState.vue\";\nimport { KdsListItem } from \"../KdsListItem\";\nimport { kdsListItemVariant } from \"../KdsListItem/enums\";\nimport ListItemDivider from \"../ListItemDivider/ListItemDivider.vue\";\nimport ListItemSectionTitle from \"../ListItemSectionTitle/ListItemSectionTitle.vue\";\n\nimport type {\n KdsListContainerExpose,\n KdsListContainerProps,\n KdsListOption,\n} from \"./types\";\n\nconst props = withDefaults(defineProps<KdsListContainerProps>(), {\n emptyText: \"\",\n variant: kdsListItemVariant.SMALL,\n loading: false,\n role: \"listbox\",\n});\n\nconst emit = defineEmits<{\n /** Emitted when item is clicked */\n itemClick: [id: string];\n}>();\n\nconst idPrefix = useId();\nconst toOptionId = (elementId: string) => elementId.slice(idPrefix.length + 1);\nconst emptyOptionId = `${idPrefix}-empty`;\nconst loadingStateText = \"Loading entries\";\n\n/** possibleValues with prefixed ids to avoid DOM id collisions */\nconst prefixedValues = computed<KdsListOption[]>(() =>\n (props.loading ? [] : props.possibleValues).map((o) => ({\n ...o,\n id: `${idPrefix}-${o.id}`,\n })),\n);\n\n/** Only selectable (non-section-headline) items */\nconst selectableValues = computed(() =>\n prefixedValues.value.filter((o) => !o.sectionHeadline),\n);\n\n/** active item id (prefixed) via keyboard or mouseover */\nconst activeId = ref<string | undefined>(undefined);\n\n/** remembers the last active item so it can be restored on re-focus */\nconst lastActiveId = ref<string | undefined>(undefined);\n\nconst isFocused = ref(false);\n\nconst containerEl = useTemplateRef(\"containerEl\");\n\nconst listItemRole = computed(() => {\n return props.role === \"listbox\" ? \"option\" : \"menuitem\";\n});\n\nfunction scrollToView() {\n if (!activeId.value || !containerEl.value) {\n return;\n }\n containerEl.value\n ?.querySelector(`#${CSS.escape(activeId.value)}`)\n ?.scrollIntoView({ block: \"nearest\" });\n}\n\nconst onMouseLeave = () => {\n if (!isFocused.value) {\n activeId.value = undefined;\n }\n};\n\nconst onMousemove = (event: MouseEvent) => {\n const target = (event.target as HTMLElement)?.closest?.(\n `[role=\"${listItemRole.value}\"]`,\n );\n if (\n target instanceof HTMLElement &&\n target.id &&\n target.getAttribute(\"aria-disabled\") !== \"true\"\n ) {\n activeId.value = target.id;\n } else if (!isFocused.value) {\n activeId.value = undefined;\n }\n};\n\nconst enabledValues = computed(() =>\n selectableValues.value.filter((o) => !o.disabled),\n);\n\n/** Tracks the set of enabled item ids to detect real list changes (e.g. search filtering) vs. cosmetic changes (e.g. selection toggling). */\nconst enabledIds = computed(() => enabledValues.value.map((o) => o.id));\nlet prevEnabledIds: string[] = [];\n\nconst firstEnabledOrEmpty = (values: KdsListOption[]) => {\n if (values.length > 0) {\n return values[0].id;\n }\n // Only point to the empty-state element when the list is truly empty.\n // When items exist but are all disabled, leave activeId undefined to\n // avoid aria-activedescendant referencing a non-existent DOM element.\n return selectableValues.value.length === 0 ? emptyOptionId : undefined;\n};\n\nconst idsChanged = (a: string[], b: string[]) =>\n a.length !== b.length || a.some((id, i) => id !== b[i]);\n\nconst getResetActiveId = (values: KdsListOption[]) => {\n if (activeId.value === undefined) {\n return activeId.value;\n }\n // While focused and the visible items actually changed (e.g. during search\n // filtering), always jump to the first enabled value so the highlight\n // follows the top result. Skip when only selection/cosmetic state changed.\n if (isFocused.value && idsChanged(enabledIds.value, prevEnabledIds)) {\n return firstEnabledOrEmpty(values);\n }\n const stillValid = values.some((o) => o.id === activeId.value);\n return stillValid ? activeId.value : firstEnabledOrEmpty(values);\n};\n\n/** Reset activeId/lastActiveId when possibleValues change */\nwatch([enabledValues, () => props.loading], ([values, loading]) => {\n activeId.value = loading ? emptyOptionId : getResetActiveId(values);\n\n const lastIdStillValid = values.some((o) => o.id === lastActiveId.value);\n if (!lastIdStillValid) {\n lastActiveId.value = undefined;\n }\n\n prevEnabledIds = enabledIds.value;\n\n nextTick(scrollToView);\n});\n\nconst findEnabledIndex = (id: string | undefined) =>\n id === undefined ? -1 : enabledValues.value.findIndex((o) => o.id === id);\n\nconst handleFocus = () => {\n isFocused.value = true;\n if (activeId.value === undefined) {\n activeId.value = lastActiveId.value ?? enabledValues.value[0]?.id;\n }\n};\n\nconst handleBlur = () => {\n isFocused.value = false;\n lastActiveId.value = activeId.value;\n activeId.value = undefined;\n};\n\nconst handleKeydown = (event: KeyboardEvent) => {\n if (enabledValues.value.length === 0) {\n return;\n }\n\n const currentIndex = findEnabledIndex(activeId.value);\n\n switch (event.key) {\n case \"ArrowDown\": {\n const nextIndex =\n currentIndex < 0 || currentIndex >= enabledValues.value.length - 1\n ? 0\n : currentIndex + 1;\n activeId.value = enabledValues.value[nextIndex].id;\n scrollToView();\n event.preventDefault();\n break;\n }\n case \"ArrowUp\": {\n const nextIndex =\n currentIndex <= 0 ? enabledValues.value.length - 1 : currentIndex - 1;\n activeId.value = enabledValues.value[nextIndex].id;\n scrollToView();\n event.preventDefault();\n break;\n }\n case \"Enter\":\n if (\n event.target instanceof HTMLElement &&\n [\"BUTTON\"].includes(event.target.tagName) &&\n event.target.ariaExpanded === \"false\"\n ) {\n break;\n }\n if (activeId.value) {\n emit(\"itemClick\", toOptionId(activeId.value));\n event.preventDefault();\n }\n break;\n case \" \":\n if (\n event.target instanceof HTMLElement &&\n [\"INPUT\", \"TEXTAREA\", \"SELECT\"].includes(event.target.tagName)\n ) {\n break;\n }\n if (\n event.target instanceof HTMLElement &&\n [\"BUTTON\"].includes(event.target.tagName) &&\n event.target.ariaExpanded === \"false\"\n ) {\n break;\n }\n if (activeId.value) {\n emit(\"itemClick\", toOptionId(activeId.value));\n event.preventDefault();\n }\n break;\n case \"Home\":\n activeId.value = enabledValues.value[0].id;\n scrollToView();\n event.preventDefault();\n break;\n case \"End\":\n activeId.value = enabledValues.value[enabledValues.value.length - 1].id;\n scrollToView();\n event.preventDefault();\n break;\n default:\n break;\n }\n};\n\ndefineExpose<KdsListContainerExpose>({\n /** Forward a keydown event to the list for keyboard navigation */\n handleKeydown,\n /** Notify the list that its controlling element received focus */\n handleFocus,\n /** Notify the list that its controlling element lost focus */\n handleBlur,\n activeDescendant: activeId,\n});\n</script>\n\n<template>\n <div\n v-bind=\"$attrs\"\n ref=\"containerEl\"\n :role=\"props.role\"\n :aria-busy=\"props.loading\"\n :aria-label=\"props.ariaLabel\"\n :aria-activedescendant=\"\n !props.controlledExternally && activeId ? activeId : undefined\n \"\n :class=\"['kds-list-container', { standalone: !props.controlledExternally }]\"\n :tabindex=\"props.controlledExternally ? undefined : 0\"\n @keydown=\"handleKeydown\"\n @focus=\"handleFocus\"\n @blur=\"handleBlur\"\n @mousemove=\"onMousemove\"\n @mouseleave=\"onMouseLeave\"\n >\n <template v-for=\"(item, index) in prefixedValues\" :key=\"item.id\">\n <ListItemSectionTitle\n v-if=\"item.sectionHeadline\"\n :label=\"item.text\"\n :leading-icon=\"item.sectionHeadlineIcon\"\n role=\"presentation\"\n aria-hidden=\"true\"\n />\n <KdsListItem\n v-else\n :id=\"item.id\"\n :accessory=\"item.accessory\"\n :label=\"item.text\"\n :sub-text=\"item.subText\"\n :selected=\"item.selected\"\n :disabled=\"item.disabled\"\n :active=\"activeId === item.id\"\n :special=\"item.special\"\n :missing=\"item.missing\"\n :variant=\"props.variant\"\n :trailing-icon=\"\n item.missing && !item.disabled\n ? 'trash'\n : item.selected\n ? 'checkmark'\n : undefined\n \"\n :role=\"listItemRole\"\n @mousedown=\"props.controlledExternally && $event.preventDefault()\"\n @click=\"!item.disabled && emit('itemClick', toOptionId(item.id))\"\n />\n <ListItemDivider\n v-if=\"item.separator && index < prefixedValues.length - 1\"\n role=\"presentation\"\n aria-hidden=\"true\"\n />\n </template>\n <div\n v-if=\"selectableValues.length === 0\"\n :id=\"emptyOptionId\"\n :role=\"listItemRole\"\n aria-disabled=\"true\"\n aria-selected=\"false\"\n class=\"kds-list-container-empty\"\n >\n <KdsEmptyState\n :headline=\"props.loading ? loadingStateText : props.emptyText\"\n :loading-spinner=\"props.loading\"\n />\n </div>\n </div>\n</template>\n\n<style scoped>\n.kds-list-container {\n position: relative;\n display: flex;\n flex-direction: column;\n gap: var(--kds-spacing-container-0-10x);\n min-width: var(--kds-dimension-component-width-12x);\n padding: var(--kds-spacing-container-0-25x);\n overflow-y: auto;\n\n &.standalone {\n border: var(--kds-border-base-subtle);\n border-radius: var(--kds-border-radius-container-0-31x);\n }\n\n &:focus-visible {\n outline: var(--kds-border-action-focused);\n outline-offset: var(--kds-spacing-offset-focus);\n border-radius: var(--kds-border-radius-container-0-31x);\n }\n}\n\n.kds-list-container-empty {\n display: flex;\n flex: 1;\n align-items: center;\n justify-content: center;\n}\n</style>\n","<script setup lang=\"ts\">\nimport { useId, useTemplateRef, watchEffect } from \"vue\";\n\nimport type { KdsPopoverExpose, KdsPopoverProps } from \"./types\";\n\nconst props = withDefaults(defineProps<KdsPopoverProps>(), {\n placement: \"bottom-left\",\n role: undefined,\n fullWidth: false,\n});\n\nconst open = defineModel<boolean>({ default: false });\nconst popoverEl = useTemplateRef(\"popoverEl\");\n\nconst popoverId = useId();\nconst anchorName = `--anchor-${popoverId}`;\n\n// Sync the open state with the native popover element's open state\nwatchEffect(() => {\n if (open.value) {\n popoverEl.value?.showPopover?.();\n } else {\n popoverEl.value?.hidePopover?.();\n }\n});\n\nconst anchorStyle = { \"anchor-name\": anchorName };\n\ndefineExpose<KdsPopoverExpose>({ anchorStyle, popoverId });\n</script>\n\n<template>\n <div\n :id=\"popoverId\"\n ref=\"popoverEl\"\n class=\"kds-popover\"\n :class=\"['floating', props.placement, { 'full-width': props.fullWidth }]\"\n popover=\"auto\"\n :style=\"{ 'position-anchor': anchorName }\"\n :role=\"props.role\"\n :aria-label=\"props.popoverAriaLabel\"\n @toggle=\"open = $event.newState === 'open'\"\n >\n <slot>\n <div\n v-if=\"props.content?.trim().length\"\n class=\"kds-popover-default-content\"\n >\n {{ props.content }}\n </div>\n </slot>\n </div>\n</template>\n\n<style scoped>\n.kds-popover {\n padding: 0;\n margin: 0;\n overflow: visible;\n font: inherit;\n color: inherit;\n background-color: transparent;\n border: none;\n border-radius: 0;\n box-shadow: none;\n\n /* noinspection CssInvalidFunction */\n &.full-width {\n min-inline-size: anchor-size(width);\n }\n\n /* noinspection CssInvalidFunction,CssInvalidAtRule */\n &.floating.top-right {\n inset: auto anchor(right) anchor(top) auto;\n margin: var(--kds-spacing-container-0-25x) 0\n var(--kds-spacing-container-0-25x) var(--kds-spacing-container-0-25x);\n position-try-fallbacks:\n --kds-popover-try-top-left, --kds-popover-try-bottom-right,\n --kds-popover-try-bottom-left, --kds-popover-try-top-right;\n }\n\n /* noinspection CssInvalidFunction,CssInvalidAtRule */\n &.floating.top-left {\n inset: auto auto anchor(top) anchor(left);\n margin: var(--kds-spacing-container-0-25x)\n var(--kds-spacing-container-0-25x) var(--kds-spacing-container-0-25x) 0;\n position-try-fallbacks:\n --kds-popover-try-top-right, --kds-popover-try-bottom-left,\n --kds-popover-try-bottom-right, --kds-popover-try-top-left;\n }\n\n /* noinspection CssInvalidFunction,CssInvalidAtRule */\n &.floating.bottom-right {\n inset: anchor(bottom) anchor(right) auto auto;\n margin: var(--kds-spacing-container-0-25x) 0\n var(--kds-spacing-container-0-25x) var(--kds-spacing-container-0-25x);\n position-try-fallbacks:\n --kds-popover-try-bottom-left, --kds-popover-try-top-right,\n --kds-popover-try-top-left, --kds-popover-try-bottom-right;\n }\n\n /* noinspection CssInvalidFunction,CssInvalidAtRule */\n &.floating.bottom-left {\n inset: anchor(bottom) auto auto anchor(left);\n margin: var(--kds-spacing-container-0-25x)\n var(--kds-spacing-container-0-25x) var(--kds-spacing-container-0-25x) 0;\n position-try-fallbacks:\n --kds-popover-try-bottom-right, --kds-popover-try-top-left,\n --kds-popover-try-top-right, --kds-popover-try-bottom-left;\n }\n}\n\n/* noinspection CssInvalidFunction,CssInvalidAtRule */\n@position-try --kds-popover-try-top-right {\n inset: auto anchor(right) anchor(top) auto;\n margin: var(--kds-spacing-container-0-25x) 0\n var(--kds-spacing-container-0-25x) var(--kds-spacing-container-0-25x);\n}\n\n/* noinspection CssInvalidFunction,CssInvalidAtRule */\n@position-try --kds-popover-try-top-left {\n inset: auto auto anchor(top) anchor(left);\n margin: var(--kds-spacing-container-0-25x) var(--kds-spacing-container-0-25x)\n var(--kds-spacing-container-0-25x) 0;\n}\n\n/* noinspection CssInvalidFunction,CssInvalidAtRule */\n@position-try --kds-popover-try-bottom-right {\n inset: anchor(bottom) anchor(right) auto auto;\n margin: var(--kds-spacing-container-0-25x) 0\n var(--kds-spacing-container-0-25x) var(--kds-spacing-container-0-25x);\n}\n\n/* noinspection CssInvalidFunction,CssInvalidAtRule */\n@position-try --kds-popover-try-bottom-left {\n inset: anchor(bottom) auto auto anchor(left);\n margin: var(--kds-spacing-container-0-25x) var(--kds-spacing-container-0-25x)\n var(--kds-spacing-container-0-25x) 0;\n}\n\n.kds-popover-default-content {\n padding: var(--kds-spacing-container-0-75x);\n font: var(--kds-font-base-body-small);\n color: var(--kds-color-text-and-icon-neutral);\n background-color: var(--kds-color-surface-default);\n border-radius: var(--kds-border-radius-container-0-37x);\n box-shadow: var(--kds-elevation-level-3);\n}\n</style>\n","<script setup lang=\"ts\">\nimport {\n type StyleValue,\n computed,\n ref,\n useAttrs,\n useId,\n useTemplateRef,\n} from \"vue\";\n\nimport KdsListContainer from \"../../forms/_helper/List/ListContainer/KdsListContainer.vue\";\nimport KdsPopover from \"../../overlays/Popover/KdsPopover.vue\";\nimport KdsToggleButton from \"../KdsToggleButton/KdsToggleButton.vue\";\n\nimport type { KdsMenuButtonProps } from \"./types\";\n\ndefineOptions({\n inheritAttrs: false,\n});\n\nconst props = withDefaults(defineProps<KdsMenuButtonProps>(), {\n variant: \"outlined\",\n menuMaxHeight: undefined,\n});\n\nconst attrs = useAttrs();\n\nconst emit = defineEmits<{\n /** Emitted when item is clicked */\n itemClick: [id: string];\n}>();\n\nconst toggleButtonProps = computed(() => {\n const { items: _items, menuMaxHeight: _menuMaxHeight, ...rest } = props;\n\n const {\n modelValue: _modelValue,\n \"onUpdate:modelValue\": _onUpdateModelValue,\n ...safeAttrs\n } = attrs;\n\n return { ...safeAttrs, ...rest };\n});\n\nconst isMenuOpen = ref<boolean>(false);\nconst popoverEl = useTemplateRef(\"popoverEl\");\nconst listContainerEl = useTemplateRef(\"listContainerEl\");\n\nconst menuId = useId();\n\nconst maxHeightStyle = computed<StyleValue>(() => {\n if (!props.menuMaxHeight) {\n return {};\n }\n\n return {\n maxHeight: props.menuMaxHeight,\n overflowY: \"auto\",\n };\n});\n\nconst onItemClick = (itemId: string) => {\n isMenuOpen.value = false;\n emit(\"itemClick\", itemId);\n};\n</script>\n\n<template>\n <KdsToggleButton\n v-model=\"isMenuOpen\"\n v-bind=\"toggleButtonProps\"\n aria-haspopup=\"menu\"\n :aria-expanded=\"isMenuOpen\"\n :aria-controls=\"menuId\"\n :style=\"popoverEl?.anchorStyle\"\n @focus=\"listContainerEl?.handleFocus\"\n @keydown=\"listContainerEl?.handleKeydown\"\n @blur=\"isMenuOpen = false\"\n />\n\n <KdsPopover\n ref=\"popoverEl\"\n v-model=\"isMenuOpen\"\n placement=\"bottom-left\"\n popover-aria-label=\"Menu\"\n >\n <div class=\"kds-menu-container\" :style=\"maxHeightStyle\">\n <KdsListContainer\n :id=\"menuId\"\n ref=\"listContainerEl\"\n :possible-values=\"items\"\n empty-text=\"Menu is empty\"\n aria-label=\"Actions\"\n role=\"menu\"\n controlled-externally\n @item-click=\"onItemClick\"\n />\n </div>\n </KdsPopover>\n</template>\n\n<style scoped>\n.kds-menu-container {\n max-width: var(--kds-dimension-component-width-20x);\n background-color: var(--kds-color-surface-default);\n border-radius: var(--kds-border-radius-container-0-50x);\n box-shadow: var(--kds-elevation-level-3);\n}\n</style>\n","export const kdsButtonSize = {\n XSMALL: \"xsmall\",\n SMALL: \"small\",\n MEDIUM: \"medium\",\n LARGE: \"large\",\n} as const;\n\nexport const kdsButtonSizes = Object.values(kdsButtonSize);\n\nexport const kdsButtonVariant = {\n FILLED: \"filled\",\n OUTLINED: \"outlined\",\n TRANSPARENT: \"transparent\",\n} as const;\n\nexport const kdsButtonVariants = Object.values(kdsButtonVariant);\n","<script setup lang=\"ts\">\nimport { defineAsyncComponent, useTemplateRef } from \"vue\";\n\nimport { useKdsIsTruncated } from \"../../util\";\nimport type { KdsLabelProps } from \"../types\";\n\nconst props = withDefaults(defineProps<KdsLabelProps>(), {\n description: undefined,\n showDescriptionButton: false,\n});\n\nconst KdsInfoToggleButton = defineAsyncComponent(\n () => import(\"./InfoPopover/KdsInfoToggleButton.vue\"),\n);\n\nconst labelEl = useTemplateRef(\"labelEl\");\nconst { isTruncated } = useKdsIsTruncated(labelEl);\n</script>\n\n<template>\n <div class=\"kds-label-wrapper\">\n <label\n :id=\"props.id\"\n ref=\"labelEl\"\n :for=\"props.for\"\n class=\"label\"\n :title=\"isTruncated ? props.label : undefined\"\n >\n {{ props.label }}\n </label>\n <KdsInfoToggleButton\n v-if=\"props.description\"\n :content=\"props.description\"\n :hidden=\"!props.showDescriptionButton\"\n />\n </div>\n</template>\n\n<style scoped>\n.kds-label-wrapper {\n display: flex;\n gap: var(--kds-spacing-container-0-12x);\n align-items: center;\n max-width: 100%;\n min-height: var(--kds-dimension-component-height-0-75x);\n padding-bottom: var(--kds-spacing-input-label-spacing-bottom);\n}\n\n.label {\n display: block;\n flex-grow: 1;\n max-width: 100%;\n overflow: hidden;\n text-overflow: ellipsis;\n font: var(--kds-font-base-title-small-strong);\n color: var(--kds-color-text-and-icon-neutral);\n white-space: nowrap;\n}\n</style>\n","<script setup lang=\"ts\">\nimport KdsIcon from \"../../accessories/Icon/KdsIcon.vue\";\nimport KdsLoadingSpinner from \"../../accessories/LoadingSpinner/KdsLoadingSpinner.vue\";\nimport type { KdsSubTextProps } from \"../types\";\n\nconst props = withDefaults(defineProps<KdsSubTextProps>(), {\n error: false,\n validating: false,\n preserveSubTextSpace: false,\n});\n</script>\n\n<template>\n <div\n v-if=\"props.subText || props.preserveSubTextSpace\"\n :id=\"props.id\"\n :class=\"{\n subtext: true,\n error: props.error,\n }\"\n >\n <template v-if=\"props.error && props.subText\">\n <KdsIcon name=\"circle-error\" size=\"small\" aria-label=\"Error\" />\n </template>\n <template v-else-if=\"props.validating && props.subText\">\n <KdsLoadingSpinner size=\"small\" variant=\"onSurface\" aria-hidden=\"true\" />\n </template>\n <span class=\"subtext-text\">{{ props.subText }}</span>\n </div>\n</template>\n\n<style scoped>\n.subtext {\n display: flex;\n gap: var(--kds-spacing-container-0-25x);\n min-height: 1lh;\n margin-top: var(--kds-spacing-container-0-25x);\n font: var(--kds-font-base-subtext-small);\n color: var(--kds-color-text-and-icon-muted);\n\n &.error {\n color: var(--kds-color-text-and-icon-danger);\n }\n\n & .subtext-text {\n min-width: 0;\n }\n}\n</style>\n","<script setup lang=\"ts\">\nimport { computed, useId } from \"vue\";\n\nimport Icon from \"../../accessories/Icon/KdsIcon.vue\";\nimport KdsSubText from \"../_helper/KdsSubText.vue\";\n\nimport type { BaseCheckboxProps, KdsCheckboxValue } from \"./types\";\n\nconst props = withDefaults(defineProps<BaseCheckboxProps>(), {\n disabled: false,\n error: false,\n});\n\nconst modelValue = defineModel<KdsCheckboxValue>({ default: false });\n\nconst helperId = useId();\nconst descriptionId = useId();\n\nconst isChecked = computed(() => modelValue.value === true);\nconst isIndeterminate = computed(() => modelValue.value === \"indeterminate\");\nconst icon = computed(() => {\n if (isChecked.value) {\n return \"checkmark\";\n }\n if (isIndeterminate.value) {\n return \"minus\";\n }\n return null;\n});\n\nconst ariaChecked = computed(() => {\n if (isIndeterminate.value) {\n return \"mixed\";\n }\n return isChecked.value;\n});\n\nconst ariaDescribedBy = computed(() => {\n const ids: string[] = [];\n\n if (props.helperText) {\n ids.push(helperId);\n }\n\n if (props.subText) {\n ids.push(descriptionId);\n }\n\n return ids.length > 0 ? ids.join(\" \") : undefined;\n});\n\nconst handleClick = () => {\n if (props.disabled) {\n return;\n }\n\n modelValue.value = isIndeterminate.value ? true : !isChecked.value;\n};\n</script>\n\n<template>\n <div>\n <button\n :class=\"{\n checkbox: true,\n checked: isChecked,\n indeterminate: isIndeterminate,\n disabled: props.disabled,\n error: props.error,\n }\"\n :disabled=\"props.disabled\"\n :title=\"props.title\"\n :aria-label=\"props.title\"\n :aria-checked=\"ariaChecked\"\n :aria-describedby=\"ariaDescribedBy\"\n :aria-invalid=\"props.error\"\n type=\"button\"\n role=\"checkbox\"\n @click=\"handleClick\"\n >\n <div class=\"control\">\n <Icon v-if=\"icon\" :name=\"icon\" class=\"icon\" size=\"xsmall\" />\n </div>\n <div v-if=\"props.label || props.helperText\" class=\"content\">\n <div class=\"label\">{{ props.label }}</div>\n <div v-if=\"props.helperText\" :id=\"helperId\" class=\"helper-text\">\n {{ props.helperText }}\n </div>\n </div>\n </button>\n <div\n v-if=\"props.subText || props.preserveSubTextSpace\"\n class=\"subtext-wrapper\"\n >\n <KdsSubText\n :id=\"descriptionId\"\n :sub-text=\"props.subText\"\n :preserve-sub-text-space=\"props.preserveSubTextSpace\"\n :error=\"props.error\"\n />\n </div>\n </div>\n</template>\n\n<style scoped>\n.checkbox {\n --bg-initial: var(--kds-color-background-input-initial);\n --bg-hover: var(--kds-color-background-input-hover);\n --bg-active: var(--kds-color-background-input-active);\n --border: var(--kds-border-action-input);\n --icon-color: var(--kds-color-text-and-icon-selected);\n --text-color: var(--kds-color-text-and-icon-neutral);\n --helper-text-color: var(--kds-color-text-and-icon-muted);\n\n display: flex;\n gap: var(--kds-spacing-container-0-37x);\n align-items: flex-start;\n padding: 0;\n margin: 0;\n text-align: left;\n cursor: pointer;\n outline: none;\n background: none;\n border: none;\n\n .control {\n position: relative;\n display: flex;\n flex-shrink: 0;\n align-items: center;\n justify-content: center;\n width: var(--kds-dimension-component-height-0-88x);\n height: var(--kds-dimension-component-height-0-88x);\n color: var(--icon-color);\n background: var(--bg-initial);\n border: var(--border);\n border-radius: var(--kds-border-radius-container-0-25x);\n }\n\n &:focus-visible .control {\n outline: var(--kds-border-action-focused);\n outline-offset: var(--kds-spacing-offset-focus);\n }\n\n &:hover:not(.disabled) .control {\n background: var(--bg-hover);\n }\n\n &:active:not(.disabled) .control {\n background: var(--bg-active);\n }\n\n &.checked,\n &.indeterminate {\n --bg-initial: var(--kds-color-background-selected-initial);\n --bg-hover: var(--kds-color-background-selected-hover);\n --bg-active: var(--kds-color-background-selected-active);\n --border: var(--kds-border-action-selected);\n }\n\n .content {\n display: flex;\n flex-direction: column;\n gap: var(--kds-spacing-container-0-12x);\n text-rendering: geometricprecision;\n\n & .label {\n font: var(--kds-font-base-interactive-small);\n color: var(--text-color);\n }\n\n & .helper-text {\n font: var(--kds-font-base-subtext-small);\n color: var(--helper-text-color);\n }\n }\n\n &.disabled {\n --border: var(--kds-border-action-disabled);\n --icon-color: var(--kds-color-text-and-icon-disabled);\n --text-color: var(--kds-color-text-and-icon-disabled);\n --helper-text-color: var(--kds-color-text-and-icon-disabled);\n\n cursor: default;\n }\n\n &.error {\n --border: var(--kds-border-action-error);\n --icon-color: var(--kds-color-text-and-icon-danger);\n --text-color: var(--kds-color-text-and-icon-danger);\n --bg-hover: var(--kds-color-background-danger-hover);\n --bg-active: var(--kds-color-background-danger-active);\n\n &.checked,\n &.indeterminate {\n --bg-initial: var(--kds-color-background-danger-initial);\n }\n }\n}\n\n.subtext-wrapper {\n padding-left: calc(\n var(--kds-dimension-component-height-0-88x) +\n var(--kds-spacing-container-0-37x)\n );\n}\n</style>\n","<script setup lang=\"ts\">\nimport BaseCheckbox from \"./BaseCheckbox.vue\";\nimport type { KdsCheckboxProps, KdsCheckboxValue } from \"./types\";\n\nconst props = withDefaults(defineProps<KdsCheckboxProps>(), {\n disabled: false,\n error: false,\n preserveSubTextSpace: false,\n});\n\nconst modelValue = defineModel<KdsCheckboxValue>({ default: false });\n</script>\n\n<template>\n <BaseCheckbox\n v-model=\"modelValue\"\n :disabled=\"props.disabled\"\n :error=\"props.error\"\n :label=\"props.label\"\n :title=\"props.title\"\n :sub-text=\"props.subText\"\n :preserve-sub-text-space=\"props.preserveSubTextSpace\"\n />\n</template>\n","<script lang=\"ts\" setup>\nimport { computed, useId } from \"vue\";\n\nimport KdsLabel from \"../_helper/KdsLabel.vue\";\nimport KdsSubText from \"../_helper/KdsSubText.vue\";\n\nimport BaseCheckbox from \"./BaseCheckbox.vue\";\nimport type {\n KdsCheckboxGroupOption,\n KdsCheckboxGroupProps,\n KdsCheckboxValue,\n} from \"./types\";\n\nconst props = withDefaults(defineProps<KdsCheckboxGroupProps>(), {\n disabled: false,\n error: false,\n alignment: \"vertical\",\n});\n\nconst modelValue = defineModel<string[]>({ default: [] });\n\nconst possibleValues = computed(\n () =>\n props.possibleValues.map((o) => {\n if (typeof o === \"string\") {\n return { text: o, id: o };\n }\n return o;\n }) satisfies KdsCheckboxGroupOption[],\n);\n\nconst labelId = useId();\nconst descriptionId = useId();\n\nconst isOptionDisabled = (index: number) =>\n props.disabled || possibleValues.value[index]?.disabled === true;\n\nconst isHorizontal = computed(() => props.alignment === \"horizontal\");\n\nconst hasError = computed(\n () => props.error || possibleValues.value.some((o) => o.error),\n);\n\nconst isChecked = (id: string) => modelValue.value.includes(id);\n\nconst handleCheckboxChange = (index: number, checked: KdsCheckboxValue) => {\n if (isOptionDisabled(index)) {\n return;\n }\n const option = possibleValues.value[index];\n\n if (checked === true) {\n modelValue.value = [...modelValue.value, option.id];\n return;\n }\n\n modelValue.value = modelValue.value.filter((v) => v !== option.id);\n};\n</script>\n\n<template>\n <div\n :id=\"props.id\"\n class=\"checkbox-group\"\n role=\"group\"\n :aria-labelledby=\"props.label ? labelId : undefined\"\n :aria-describedby=\"props.subText ? descriptionId : undefined\"\n >\n <KdsLabel v-if=\"props.label\" :id=\"labelId\" :label=\"props.label\" />\n\n <div :class=\"{ options: true, horizontal: isHorizontal }\">\n <div\n v-for=\"(option, index) in possibleValues\"\n :key=\"option.id\"\n class=\"option\"\n >\n <BaseCheckbox\n :disabled=\"props.disabled || option.disabled\"\n :error=\"option.error\"\n :helper-text=\"option.helperText\"\n :label=\"option.text\"\n :model-value=\"isChecked(option.id)\"\n @update:model-value=\"\n (checked: KdsCheckboxValue) => handleCheckboxChange(index, checked)\n \"\n />\n </div>\n </div>\n\n <KdsSubText\n :id=\"descriptionId\"\n :sub-text=\"props.subText\"\n :preserve-sub-text-space=\"props.preserveSubTextSpace\"\n :error=\"hasError\"\n />\n </div>\n</template>\n\n<style scoped>\n.checkbox-group {\n padding: 0;\n margin: 0;\n border: none;\n}\n\n.options {\n display: flex;\n flex-direction: column;\n gap: var(--kds-spacing-container-0-5x) var(--kds-spacing-container-0-75x);\n}\n\n.options.horizontal {\n flex-flow: row wrap;\n align-items: flex-start;\n}\n</style>\n","export const kdsCheckboxGroupAlignment = {\n VERTICAL: \"vertical\",\n HORIZONTAL: \"horizontal\",\n} as const;\n\nexport const kdsCheckboxGroupAlignments = Object.values(\n kdsCheckboxGroupAlignment,\n);\n\nexport const kdsCheckboxValue = {\n CHECKED: true,\n UNCHECKED: false,\n INDETERMINATE: \"indeterminate\",\n} as const;\n\nexport const kdsCheckboxValues = Object.values(kdsCheckboxValue);\n","<script lang=\"ts\" setup>\nimport { useId } from \"vue\";\n\nimport type { KdsRadioButtonProps } from \"./types.ts\";\n\nconst props = withDefaults(defineProps<KdsRadioButtonProps>(), {\n disabled: false,\n error: false,\n});\n\nconst modelValue = defineModel<boolean>({ default: false });\n\nconst id = useId();\n\nconst handleClick = () => {\n if (props.disabled) {\n return;\n }\n // Radio buttons do not toggle off when clicked; they only set to selected\n if (!modelValue.value) {\n modelValue.value = true;\n }\n};\n</script>\n\n<template>\n <button\n :aria-checked=\"modelValue\"\n :aria-describedby=\"props.helperText ? `${id}-helper` : undefined\"\n :aria-invalid=\"props.error\"\n :class=\"{\n radio: true,\n selected: modelValue,\n disabled: props.disabled,\n error: props.error,\n }\"\n :disabled=\"props.disabled\"\n role=\"radio\"\n type=\"button\"\n @click=\"handleClick\"\n >\n <div class=\"control\">\n <svg\n v-if=\"modelValue\"\n class=\"dot\"\n viewBox=\"0 0 2 2\"\n aria-hidden=\"true\"\n focusable=\"false\"\n >\n <circle cx=\"1\" cy=\"1\" r=\"1\" />\n </svg>\n </div>\n <div class=\"content\">\n <div class=\"label\">{{ props.text }}</div>\n <div v-if=\"props.helperText\" :id=\"`${id}-helper`\" class=\"helper-text\">\n {{ props.helperText }}\n </div>\n </div>\n </button>\n</template>\n\n<style scoped>\n.radio {\n --bg-initial: var(--kds-color-background-input-initial);\n --bg-hover: var(--kds-color-background-input-hover);\n --bg-active: var(--kds-color-background-input-active);\n --border: var(--kds-border-action-input);\n --dot-color: var(--kds-color-text-and-icon-selected);\n --text-color: var(--kds-color-text-and-icon-neutral);\n --helper-text-color: var(--kds-color-text-and-icon-muted);\n\n display: flex;\n gap: var(--kds-spacing-container-0-37x);\n align-items: flex-start;\n padding: 0;\n margin: 0;\n text-align: left;\n cursor: pointer;\n outline: none;\n background: none;\n border: none;\n\n .control {\n position: relative;\n display: flex;\n flex-shrink: 0;\n align-items: center;\n justify-content: center;\n width: var(--kds-dimension-component-height-0-88x);\n height: var(--kds-dimension-component-height-0-88x);\n background: var(--bg-initial);\n border: var(--border);\n border-radius: 50%;\n }\n\n .control .dot {\n display: block;\n flex-shrink: 0;\n width: 100%;\n height: 100%;\n }\n\n .control .dot circle {\n fill: var(--dot-color);\n transform: scale(0.5);\n transform-origin: center;\n transform-box: fill-box;\n }\n\n &:focus-visible .control {\n outline: var(--kds-border-action-focused);\n outline-offset: var(--kds-spacing-offset-focus);\n }\n\n &:hover:not(.disabled) .control {\n background: var(--bg-hover);\n }\n\n &:active:not(.disabled) .control {\n background: var(--bg-active);\n }\n\n &.selected {\n --border: var(--kds-border-action-selected);\n --bg-initial: var(--kds-color-background-selected-initial);\n --bg-hover: var(--kds-color-background-selected-hover);\n --bg-active: var(--kds-color-background-selected-active);\n }\n\n .content {\n display: flex;\n flex-direction: column;\n gap: var(--kds-spacing-container-0-25x);\n\n & .label {\n font: var(--kds-font-base-interactive-small);\n color: var(--text-color);\n }\n\n & .helper-text {\n font: var(--kds-font-base-subtext-small);\n color: var(--helper-text-color);\n }\n }\n\n &.disabled {\n --bg-initial: var(--kds-color-background-input-initial);\n --border: var(--kds-border-action-disabled);\n --dot-color: var(--kds-color-text-and-icon-disabled);\n --text-color: var(--kds-color-text-and-icon-disabled);\n --helper-text-color: var(--kds-color-text-and-icon-disabled);\n\n cursor: default;\n }\n\n &.error {\n --bg-hover: var(--kds-color-background-danger-hover);\n --bg-active: var(--kds-color-background-danger-active);\n --border: var(--kds-border-action-error);\n --dot-color: var(--kds-color-text-and-icon-danger);\n --text-color: var(--kds-color-text-and-icon-danger);\n\n &.selected {\n --bg-initial: var(--kds-color-background-danger-initial);\n --border: var(--kds-border-action-error);\n }\n }\n}\n</style>\n","import type { Ref } from \"vue\";\nimport { computed } from \"vue\";\n\ntype KdsIndexSelectionOption = {\n id: string;\n disabled?: boolean;\n error?: boolean;\n [x: string]: unknown;\n};\n\nexport const useRadioSelection = ({\n selectedId,\n options,\n globalDisable,\n globalError,\n optionContainer,\n}: {\n selectedId: Ref<string | undefined>;\n options: Ref<readonly KdsIndexSelectionOption[]>;\n globalDisable?: Ref<boolean>;\n globalError?: Ref<boolean>;\n optionContainer?: Ref<HTMLElement | null>;\n}) => {\n const focusOptionAtIndex = (index: number) => {\n const radios = optionContainer?.value?.querySelectorAll<HTMLButtonElement>(\n 'button[role=\"radio\"]',\n );\n radios?.[index]?.focus();\n };\n\n const isIndexDisabled = (index: number) =>\n globalDisable?.value || options.value[index]?.disabled === true;\n\n const hasError = computed(\n () => globalError?.value || options.value.some((o) => o.error),\n );\n\n const selectedIndex = computed(() =>\n options.value.findIndex((o) => o.id === selectedId.value),\n );\n\n const firstEnabledIndex = computed(() =>\n options.value.findIndex((_, index) => !isIndexDisabled(index)),\n );\n\n const tabIndexForOption = (index: number) => {\n if (isIndexDisabled(index)) {\n return undefined;\n }\n\n if (selectedIndex.value >= 0) {\n return selectedIndex.value === index ? 0 : -1;\n }\n\n return firstEnabledIndex.value === index ? 0 : -1;\n };\n\n const selectIndex = (index: number) => {\n if (isIndexDisabled(index)) {\n return;\n }\n\n selectedId.value = options.value[index]?.id;\n };\n\n const nextEnabledIndex = (startIndex: number, direction: 1 | -1) => {\n const total = options.value.length;\n if (total === 0) {\n return -1;\n }\n\n let index = startIndex;\n for (let i = 0; i < total; i++) {\n index = (index + direction + total) % total;\n if (!isIndexDisabled(index)) {\n return index;\n }\n }\n\n return -1;\n };\n\n const moveSelection = (currentIndex: number, direction: 1 | -1) => {\n const nextIndex = nextEnabledIndex(currentIndex, direction);\n\n if (nextIndex < 0) {\n return;\n }\n\n selectIndex(nextIndex);\n focusOptionAtIndex(nextIndex);\n };\n\n const goToFirstEnabled = () => {\n const nextIndex = firstEnabledIndex.value;\n if (nextIndex < 0) {\n return;\n }\n\n selectIndex(nextIndex);\n focusOptionAtIndex(nextIndex);\n };\n\n const goToLastEnabled = () => {\n for (let i = options.value.length - 1; i >= 0; i--) {\n if (!isIndexDisabled(i)) {\n selectIndex(i);\n focusOptionAtIndex(i);\n break;\n }\n }\n };\n\n const handleKeyDown = (event: KeyboardEvent, currentIndex: number) => {\n if (globalDisable?.value) {\n return;\n }\n\n switch (event.key) {\n case \"ArrowDown\":\n case \"ArrowRight\": {\n event.preventDefault();\n moveSelection(currentIndex, 1);\n return;\n }\n\n case \"ArrowUp\":\n case \"ArrowLeft\": {\n event.preventDefault();\n moveSelection(currentIndex, -1);\n return;\n }\n\n case \"Home\": {\n event.preventDefault();\n goToFirstEnabled();\n return;\n }\n\n case \"End\": {\n event.preventDefault();\n goToLastEnabled();\n return;\n }\n\n case \" \":\n case \"Enter\": {\n event.preventDefault();\n selectIndex(currentIndex);\n }\n }\n };\n\n return {\n hasError,\n selectedIndex,\n tabIndexForOption,\n handleClick: selectIndex,\n handleKeyDown,\n };\n};\n","<script lang=\"ts\" setup>\nimport { computed, useId, useTemplateRef } from \"vue\";\n\nimport KdsLabel from \"../_helper/KdsLabel.vue\";\nimport KdsSubText from \"../_helper/KdsSubText.vue\";\n\nimport KdsRadioButton from \"./KdsRadioButton.vue\";\nimport type {\n KdsRadioButtonGroupOption,\n KdsRadioButtonGroupProps,\n} from \"./types\";\nimport { useRadioSelection } from \"./useRadioSelection\";\n\nconst props = withDefaults(defineProps<KdsRadioButtonGroupProps>(), {\n disabled: false,\n alignment: \"vertical\",\n});\n\nconst modelValue = defineModel<string>();\n\nconst options = computed(\n () =>\n props.possibleValues.map((o) => {\n if (typeof o === \"string\") {\n return { text: o, id: o };\n }\n return o;\n }) satisfies KdsRadioButtonGroupOption[],\n);\n\nconst labelId = useId();\nconst descriptionId = useId();\nconst groupName = useId();\n\nconst optionContainer = useTemplateRef(\"optionContainer\");\n\nconst { tabIndexForOption, handleClick, handleKeyDown, hasError } =\n useRadioSelection({\n selectedId: modelValue,\n options,\n globalDisable: computed(() => props.disabled),\n optionContainer,\n });\n</script>\n\n<template>\n <div\n :id=\"props.id\"\n class=\"radio-button-group\"\n role=\"radiogroup\"\n :aria-labelledby=\"props.label ? labelId : undefined\"\n :aria-describedby=\"props.subText ? descriptionId : undefined\"\n >\n <KdsLabel v-if=\"props.label\" :id=\"labelId\" :label=\"props.label\" />\n\n <div\n ref=\"optionContainer\"\n :class=\"{ options: true, horizontal: props.alignment === 'horizontal' }\"\n >\n <div v-for=\"(option, index) in options\" :key=\"option.id\" class=\"option\">\n <KdsRadioButton\n :disabled=\"props.disabled || option.disabled\"\n :error=\"option.error\"\n :helper-text=\"option.helperText\"\n :text=\"option.text\"\n :model-value=\"modelValue === option.id\"\n :tabindex=\"tabIndexForOption(index)\"\n :name=\"groupName\"\n @keydown=\"(e: KeyboardEvent) => handleKeyDown(e, index)\"\n @update:model-value=\"() => handleClick(index)\"\n />\n </div>\n </div>\n\n <KdsSubText\n :id=\"descriptionId\"\n :sub-text=\"props.subText\"\n :preserve-sub-text-space=\"props.preserveSubTextSpace\"\n :error=\"hasError\"\n />\n </div>\n</template>\n\n<style scoped>\n.radio-button-group {\n padding: 0;\n margin: 0;\n border: none;\n}\n\n.options {\n display: flex;\n flex-direction: column;\n gap: var(--kds-spacing-container-0-5x) var(--kds-spacing-container-0-75x);\n}\n\n.options.horizontal {\n flex-flow: row wrap;\n align-items: flex-start;\n}\n</style>\n","<script setup lang=\"ts\">\nimport { useTemplateRef } from \"vue\";\n\nimport KdsIcon from \"../../accessories/Icon/KdsIcon.vue\";\nimport { useKdsIsTruncated } from \"../../util\";\n\nimport type { KdsValueSwitchItemProps } from \"./types\";\n\nconst props = withDefaults(defineProps<KdsValueSwitchItemProps>(), {\n disabled: false,\n size: \"medium\",\n variant: \"default\",\n tabIndex: undefined,\n});\n\nconst optionTextEl = useTemplateRef(\"optionTextEl\");\nconst { isTruncated } = useKdsIsTruncated(optionTextEl);\n</script>\n\n<template>\n <button\n role=\"radio\"\n :aria-checked=\"props.selected\"\n :aria-label=\"props.text ? undefined : props.title\"\n :class=\"{\n option: true,\n selected: props.selected,\n disabled: props.disabled,\n 'variant-muted': props.variant === 'muted',\n 'size-small': props.size === 'small',\n }\"\n :disabled=\"props.disabled\"\n :tabindex=\"props.tabIndex\"\n :title=\"props.title ?? (isTruncated && props.text ? props.text : undefined)\"\n >\n <KdsIcon\n v-if=\"props.leadingIcon && (!props.hideIcons || !props.text)\"\n :name=\"props.leadingIcon\"\n :size=\"props.size\"\n />\n <span v-if=\"props.text\" ref=\"optionTextEl\" class=\"option-label\">\n {{ props.text }}\n </span>\n <KdsIcon\n v-if=\"props.trailingIcon && !props.hideIcons\"\n :name=\"props.trailingIcon\"\n :size=\"props.size\"\n />\n </button>\n</template>\n\n<style scoped>\n.option {\n display: flex;\n flex: 0 1 auto;\n gap: var(--kds-spacing-container-0-25x);\n align-items: center;\n justify-content: center;\n min-width: calc(\n var(--kds-dimension-icon-1x) + (2 * var(--kds-spacing-container-0-37x))\n );\n max-width: 100%;\n height: var(--kds-dimension-component-height-1-5x);\n padding: 0 var(--kds-spacing-container-0-37x);\n font: var(--kds-font-base-interactive-medium-strong);\n color: var(--kds-color-text-and-icon-neutral);\n text-align: center;\n cursor: pointer;\n\n /* variant=default */\n background: var(--kds-color-background-neutral-initial);\n border: var(--kds-border-action-transparent);\n border-radius: var(--kds-border-radius-container-0-25x);\n\n &.size-small {\n height: var(--kds-dimension-component-height-1-25x);\n font: var(--kds-font-base-interactive-small-strong);\n }\n\n &:focus-visible {\n outline: none;\n }\n\n &:hover:not(:disabled) {\n background: var(--kds-color-background-neutral-hover);\n }\n\n &:active:not(:disabled) {\n background: var(--kds-color-background-neutral-active);\n }\n\n &.selected {\n color: var(--kds-color-text-and-icon-selected);\n background: var(--kds-color-background-selected-initial);\n border: var(--kds-border-action-selected);\n\n &:hover:not(:disabled) {\n background: var(--kds-color-background-selected-hover);\n }\n\n &:active:not(:disabled) {\n background: var(--kds-color-background-selected-active);\n }\n\n &.variant-muted {\n color: var(--kds-color-text-and-icon-neutral);\n background: var(--kds-color-background-input-initial);\n\n &:hover:not(:disabled) {\n background: var(--kds-color-background-input-hover);\n }\n\n &:active:not(:disabled) {\n background: var(--kds-color-background-input-active);\n }\n }\n }\n\n &.disabled {\n color: var(--kds-color-text-and-icon-disabled);\n cursor: default;\n }\n\n &.disabled.selected {\n color: var(--kds-color-text-and-icon-disabled);\n border: var(--kds-border-action-disabled);\n }\n}\n\n.option-label {\n min-width: 0;\n padding: 0 var(--kds-spacing-container-0-12x);\n overflow: hidden;\n text-overflow: ellipsis;\n font: inherit;\n white-space: nowrap;\n}\n</style>\n","import type { Ref } from \"vue\";\nimport { nextTick, onBeforeUpdate, ref, watch } from \"vue\";\n\nimport { elementOverflowsHorizontally } from \"../../util/useKdsIsTruncated\";\n\nimport type { KdsValueSwitchOption } from \"./types\";\n/**\n * Computes whether icons in ValueSwitch items should be hidden.\n *\n * Global logic: as soon as at least one text+icon item ellipsizes its label\n * (`scrollWidth > clientWidth`), icons are hidden for all text+icon items.\n * Icon-only items are never affected.\n */\nexport const useValueSwitchIconHiding = ({\n width,\n options,\n}: {\n /**\n * Potentially available width to render options\n */\n width: Ref<number>;\n options: Ref<readonly KdsValueSwitchOption[]>;\n}) => {\n const itemEls = ref(new Map<string, HTMLButtonElement>());\n\n onBeforeUpdate(() => {\n itemEls.value = new Map();\n });\n\n const setItemEl = (id: string, el: unknown) => {\n const elementToRegister =\n el && typeof el === \"object\" && \"$el\" in el\n ? (el as { $el: unknown }).$el\n : el;\n\n if (elementToRegister instanceof HTMLButtonElement) {\n itemEls.value.set(id, elementToRegister);\n }\n };\n\n const shouldHideIcons = ref(false);\n\n const hasLabelEllipsis = (id: string) => {\n const el = itemEls.value.get(id);\n if (!el) {\n return false;\n }\n\n const label = el.querySelector<HTMLElement>(\".option-label\");\n return elementOverflowsHorizontally(label);\n };\n\n const anyOptionHasEllipsis = () =>\n options.value.some((option) => {\n if (!option.text) {\n return false;\n }\n\n if (!option.leadingIcon && !option.trailingIcon) {\n return false;\n }\n\n return hasLabelEllipsis(option.id);\n });\n\n watch(\n () => [width.value, options.value],\n async () => {\n // First pass: try rendering icons\n shouldHideIcons.value = false;\n\n // Second pass: hide icons when width overflowed.\n await nextTick();\n shouldHideIcons.value = anyOptionHasEllipsis();\n },\n {\n immediate: true,\n },\n );\n\n return {\n shouldHideIcons,\n setItemEl,\n };\n};\n","<script lang=\"ts\" setup>\nimport { computed, useId, useTemplateRef } from \"vue\";\nimport { useElementSize } from \"@vueuse/core\";\n\nimport KdsLabel from \"../_helper/KdsLabel.vue\";\nimport KdsSubText from \"../_helper/KdsSubText.vue\";\n\nimport ValueSwitchItem from \"./ValueSwitchItem.vue\";\nimport type { KdsValueSwitchOption, KdsValueSwitchProps } from \"./types\";\nimport { useRadioSelection } from \"./useRadioSelection\";\nimport { useValueSwitchIconHiding } from \"./useValueSwitchIconHiding\";\n\nconst props = withDefaults(defineProps<KdsValueSwitchProps>(), {\n disabled: false,\n size: \"medium\",\n variant: \"default\",\n});\n\nconst modelValue = defineModel<string>();\n\nconst options = computed(\n () =>\n props.possibleValues.map((o) => {\n if (typeof o === \"string\") {\n return { text: o, id: o };\n }\n return o;\n }) satisfies KdsValueSwitchOption[],\n);\n\nconst labelId = useId();\nconst descriptionId = useId();\n\nconst availableWidthContainer = useTemplateRef<HTMLElement>(\n \"availableWidthContainer\",\n);\nconst { width } = useElementSize(availableWidthContainer);\nconst { shouldHideIcons, setItemEl } = useValueSwitchIconHiding({\n width,\n options,\n});\n\nconst optionContainer = useTemplateRef(\"optionContainer\");\nconst { tabIndexForOption, handleClick, handleKeyDown } = useRadioSelection({\n selectedId: modelValue,\n options,\n globalDisable: computed(() => props.disabled),\n optionContainer,\n});\n</script>\n\n<template>\n <div\n :id=\"props.id\"\n ref=\"availableWidthContainer\"\n role=\"radiogroup\"\n :class=\"{\n 'value-switch': true,\n 'size-small': props.size === 'small',\n }\"\n :aria-invalid=\"props.error || undefined\"\n :aria-labelledby=\"props.label ? labelId : undefined\"\n :aria-describedby=\"props.subText ? descriptionId : undefined\"\n >\n <KdsLabel v-if=\"props.label\" :id=\"labelId\" :label=\"props.label\" />\n\n <div ref=\"optionContainer\" :class=\"{ options: true, error: props.error }\">\n <ValueSwitchItem\n v-for=\"(option, index) in options\"\n :key=\"option.id\"\n :ref=\"(el) => setItemEl(option.id, el)\"\n v-bind=\"option\"\n :hide-icons=\"shouldHideIcons\"\n :selected=\"modelValue === option.id\"\n :disabled=\"props.disabled || option.disabled\"\n :size=\"props.size\"\n :variant=\"props.variant\"\n :tab-index=\"tabIndexForOption(index)\"\n :title=\"option.title\"\n @click=\"() => handleClick(index)\"\n @keydown=\"handleKeyDown($event, index)\"\n />\n </div>\n\n <KdsSubText\n :id=\"descriptionId\"\n :sub-text=\"props.subText\"\n :preserve-sub-text-space=\"props.preserveSubTextSpace\"\n :error=\"props.error\"\n />\n </div>\n</template>\n\n<style scoped>\n.value-switch {\n display: flex;\n flex-direction: column;\n align-items: flex-start;\n padding: 0;\n margin: 0;\n border: none;\n}\n\n.options {\n display: flex;\n flex-flow: row nowrap;\n gap: var(--kds-spacing-container-none);\n align-items: flex-start;\n width: fit-content;\n min-width: 0;\n max-width: 100%;\n padding: calc(\n var(--kds-spacing-container-0-12x) - var(--kds-core-border-width-xs)\n );\n overflow: hidden;\n background: var(--kds-color-surface-muted);\n border: var(--kds-border-action-transparent);\n border-radius: var(--kds-border-radius-container-0-37x);\n box-shadow: var(--kds-fake-border-xs-muted);\n\n &:has(:focus-visible) {\n outline: var(--kds-border-action-focused);\n outline-offset: var(--kds-spacing-offset-focus);\n border-radius: var(--kds-border-radius-container-0-44x);\n }\n\n &.error {\n border: var(--kds-border-action-error);\n box-shadow: none;\n }\n}\n</style>\n","export const kdsRadioButtonGroupAlignment = {\n VERTICAL: \"vertical\",\n HORIZONTAL: \"horizontal\",\n} as const;\n\nexport const kdsRadioButtonGroupAlignments = Object.values(\n kdsRadioButtonGroupAlignment,\n);\n\nexport const kdsValueSwitchSize = {\n SMALL: \"small\",\n MEDIUM: \"medium\",\n} as const;\n\nexport const kdsValueSwitchSizes = Object.values(kdsValueSwitchSize);\n\nexport const kdsValueSwitchVariant = {\n DEFAULT: \"default\",\n MUTED: \"muted\",\n} as const;\n\nexport const kdsValueSwitchVariants = Object.values(kdsValueSwitchVariant);\n","<script setup lang=\"ts\">\nimport { computed, ref, useId } from \"vue\";\n\nimport type { KdsSubTextProps } from \"../types\";\n\nimport KdsLabel from \"./KdsLabel.vue\";\nimport KdsSubText from \"./KdsSubText.vue\";\n\ntype KdsFormFieldProps = {\n /**\n * Input id\n */\n id?: string;\n /**\n * Label text\n */\n label?: string;\n /**\n * Aria-label for accessibility when a visible label is not desired\n */\n ariaLabel?: string;\n /**\n * Optional description displayed in an info popover next to the label.\n * The info toggle button is only visible when hovering the input field.\n */\n description?: string;\n} & Omit<KdsSubTextProps, \"id\">;\n\nconst props = defineProps<KdsFormFieldProps>();\n\nconst fallbackId = useId();\nconst inputId = computed(() => props.id?.trim() || fallbackId);\nconst labelId = computed(() => `${inputId.value}-label`);\nconst subTextId = computed(() => `${inputId.value}-subtext`);\n\nconst isHovered = ref(false);\n</script>\n\n<template>\n <div\n class=\"kds-form-field\"\n @mouseenter=\"isHovered = true\"\n @mouseleave=\"isHovered = false\"\n >\n <KdsLabel\n v-if=\"props.label\"\n :id=\"labelId\"\n :for=\"inputId\"\n :label=\"props.label\"\n :description=\"props.description\"\n :show-description-button=\"isHovered\"\n />\n <slot\n :id=\"inputId\"\n :aria-labelledby=\"props.label ? labelId : undefined\"\n :aria-describedby=\"props.subText ? subTextId : undefined\"\n :aria-label=\"props.label ? undefined : props.ariaLabel\"\n :aria-invalid=\"props.error\"\n />\n <KdsSubText\n :id=\"subTextId\"\n :sub-text=\"props.subText\"\n :error=\"props.error\"\n :validating=\"props.validating\"\n :preserve-sub-text-space=\"props.preserveSubTextSpace\"\n />\n </div>\n</template>\n\n<style scoped>\n.kds-form-field {\n display: flex;\n flex-direction: column;\n}\n</style>\n","<script setup lang=\"ts\">\nimport { computed, useTemplateRef } from \"vue\";\n\nimport KdsIcon from \"../../accessories/Icon/KdsIcon.vue\";\nimport type { KdsIconName } from \"../../accessories/Icon/types\";\nimport KdsButton from \"../../buttons/KdsButton/KdsButton.vue\";\n\ntype BaseInputProps = {\n /**\n * ID for the input element\n */\n id?: string;\n /**\n * The type of input field\n */\n type?: \"text\" | \"email\" | \"password\" | \"number\" | \"tel\" | \"url\" | \"search\";\n /**\n * Minimum allowed value (relevant for type=\"number\" and type=\"date\")\n */\n min?: number | string;\n /**\n * Maximum allowed value (relevant for type=\"number\" and type=\"date\")\n */\n max?: number | string;\n /**\n * Step size (relevant for type=\"number\")\n */\n step?: number;\n /**\n * Placeholder text when input is empty\n */\n placeholder?: string;\n /**\n * Whether the input is disabled\n */\n disabled?: boolean;\n /**\n * Icon displayed at the start of the input\n */\n leadingIcon?: KdsIconName;\n /**\n * Icon displayed at the end of the input\n */\n trailingIcon?: KdsIconName;\n /**\n * Whether the input has an error state\n */\n error?: boolean;\n /**\n * Autocomplete attribute for the input element\n */\n autocomplete?: string;\n /**\n * Accessible label for the input (for aria-label).\n */\n ariaLabel?: string;\n /**\n * ID of element that labels this input (for aria-labelledby)\n */\n ariaLabelledby?: string;\n /**\n * ID of element that describes this input (for aria-describedby)\n */\n ariaDescribedby?: string;\n /**\n * Whether the current value of the input is invalid (for aria-invalid)\n */\n ariaInvalid?: boolean;\n\n /**\n * ARIA role override applied to the input element.\n * Useful to preserve semantics for custom controls.\n */\n role?: string;\n /**\n * Current value for widgets like role=\"spinbutton\".\n */\n ariaValuenow?: number;\n /**\n * Minimum value for widgets like role=\"spinbutton\".\n */\n ariaValuemin?: number;\n /**\n * Maximum value for widgets like role=\"spinbutton\".\n */\n ariaValuemax?: number;\n /**\n * Human-readable value text (e.g. localized) for widgets like role=\"spinbutton\".\n */\n ariaValuetext?: string;\n /**\n * ID of the currently active descendant element (for aria-activedescendant).\n * Used when the input controls an external listbox or similar widget.\n */\n ariaActivedescendant?: string;\n /**\n * Unit shown next to the input value\n */\n unit?: string;\n /**\n * Hints at the type of data that might be entered by the user.\n * Useful for showing an appropriate on-screen keyboard on mobile.\n */\n inputmode?:\n | \"none\"\n | \"text\"\n | \"tel\"\n | \"url\"\n | \"email\"\n | \"numeric\"\n | \"decimal\"\n | \"search\";\n /**\n * Whether to show a clear button when the input has a value.\n */\n clearable?: boolean;\n /**\n * Pattern attribute for the input element, used for client-side validation\n * of text inputs. Should be a valid regular expression.\n */\n pattern?: string;\n};\n\nconst props = withDefaults(defineProps<BaseInputProps>(), {\n id: undefined,\n type: \"text\",\n min: undefined,\n max: undefined,\n step: undefined,\n placeholder: undefined,\n disabled: false,\n leadingIcon: undefined,\n trailingIcon: undefined,\n error: false,\n autocomplete: undefined,\n ariaLabel: undefined,\n ariaLabelledby: undefined,\n ariaDescribedby: undefined,\n ariaInvalid: undefined,\n role: undefined,\n ariaValuenow: undefined,\n ariaValuemin: undefined,\n ariaValuemax: undefined,\n ariaValuetext: undefined,\n ariaActivedescendant: undefined,\n unit: undefined,\n inputmode: undefined,\n clearable: false,\n pattern: undefined,\n});\n\ntype BaseInputEmits = {\n /** Native focus event forwarded from the input element. */\n focus: [event: FocusEvent];\n /** Native blur event forwarded from the input element. */\n blur: [event: FocusEvent];\n /** Native keydown event forwarded from the input element. */\n keydown: [event: KeyboardEvent];\n /** Native input event forwarded from the input element. */\n input: [event: Event];\n /** Native click event forwarded from the input element. */\n click: [event: MouseEvent];\n};\n\nconst emit = defineEmits<BaseInputEmits>();\n\nconst modelValue = defineModel<string>({ default: \"\" });\n\nconst inputRef = useTemplateRef(\"input\");\n\nconst hasValue = computed(() => modelValue.value.length > 0);\n\nconst showUnitPlaceholder = computed(\n () => Boolean(props.unit) && modelValue.value.trim().length === 0,\n);\n\nconst handleInput = (event: Event) => {\n const target = event.target as HTMLInputElement;\n modelValue.value = target.value;\n\n emit(\"input\", event);\n};\n\nconst focusInput = () => {\n inputRef.value?.focus();\n};\n\nconst clearAndFocusInput = () => {\n modelValue.value = \"\";\n focusInput();\n};\n\nconst handleContainerClick = (event: MouseEvent) => {\n if (event.clientX === 0 && event.clientY === 0) {\n // Keyboard-initiated click (e.g. Enter/Space on a focused button)\n return;\n }\n\n focusInput();\n};\n\ndefineExpose({\n /**\n * Focuses the input element\n */\n focus: focusInput,\n});\n</script>\n\n<template>\n <div\n :class=\"{\n container: true,\n error: props.error,\n disabled: props.disabled,\n }\"\n @click=\"handleContainerClick\"\n >\n <div v-if=\"props.leadingIcon\" class=\"icon-wrapper leading\">\n <KdsIcon v-if=\"props.leadingIcon\" :name=\"props.leadingIcon\" />\n </div>\n\n <div v-if=\"$slots.leading\" class=\"leading-slot\">\n <slot name=\"leading\" />\n </div>\n\n <input\n :id=\"props.id\"\n ref=\"input\"\n :value=\"modelValue\"\n :type=\"props.type\"\n :inputmode=\"props.inputmode\"\n :placeholder=\"props.placeholder\"\n :disabled=\"props.disabled\"\n :autocomplete=\"props.autocomplete\"\n :min=\"props.min\"\n :max=\"props.max\"\n :step=\"props.step\"\n :aria-label=\"props.ariaLabel\"\n :aria-labelledby=\"props.ariaLabelledby\"\n :aria-describedby=\"props.ariaDescribedby\"\n :aria-invalid=\"props.ariaInvalid\"\n :role=\"props.role\"\n :pattern=\"props.pattern\"\n :aria-valuenow=\"props.ariaValuenow\"\n :aria-valuemin=\"props.ariaValuemin\"\n :aria-valuemax=\"props.ariaValuemax\"\n :aria-valuetext=\"props.ariaValuetext\"\n :aria-activedescendant=\"props.ariaActivedescendant\"\n :class=\"{ 'input-field': true, 'has-value': hasValue }\"\n @input=\"handleInput\"\n @focus=\"emit('focus', $event)\"\n @blur=\"emit('blur', $event)\"\n @keydown=\"emit('keydown', $event)\"\n @click=\"emit('click', $event)\"\n />\n\n <span\n v-if=\"props.unit\"\n :class=\"{\n unit: true,\n placeholder: showUnitPlaceholder,\n disabled: props.disabled,\n }\"\n :aria-disabled=\"props.disabled || undefined\"\n >\n {{ props.unit }}\n </span>\n\n <KdsButton\n v-if=\"props.clearable && hasValue && !props.disabled\"\n class=\"clear-button\"\n type=\"button\"\n size=\"xsmall\"\n variant=\"transparent\"\n leading-icon=\"x-close\"\n aria-label=\"Clear\"\n title=\"Clear\"\n @click.stop=\"clearAndFocusInput\"\n />\n\n <div v-if=\"$slots.trailing\" class=\"trailing-slot\">\n <slot name=\"trailing\" />\n </div>\n\n <div v-if=\"props.trailingIcon\" class=\"icon-wrapper trailing\">\n <KdsIcon :name=\"props.trailingIcon\" />\n </div>\n </div>\n</template>\n\n<style scoped>\n.container {\n display: flex;\n align-items: center;\n width: 100%;\n height: var(--kds-dimension-component-height-1-75x);\n padding: 0\n calc(var(--kds-spacing-container-0-25x) - var(--kds-core-border-width-xs));\n cursor: text;\n background: var(--kds-color-background-input-initial);\n border: var(--kds-border-action-input);\n border-radius: var(--kds-border-radius-container-0-37x);\n\n &:has(input:focus:not(:disabled)) {\n outline: var(--kds-border-action-focused);\n outline-offset: var(--kds-spacing-offset-focus);\n }\n\n &:has(.input-field:hover:not(:disabled, :focus)) {\n background: var(--kds-color-background-input-hover);\n }\n\n &.error {\n border: var(--kds-border-action-error);\n }\n\n &.disabled {\n cursor: default;\n border: var(--kds-border-action-disabled);\n border-color: var(--kds-color-border-disabled);\n }\n}\n\n.icon-wrapper {\n display: flex;\n flex-shrink: 0;\n align-items: center;\n color: var(--kds-color-text-and-icon-subtle);\n\n &.leading {\n padding-left: var(--kds-spacing-container-0-12x);\n }\n\n &.trailing {\n padding-right: var(--kds-spacing-container-0-12x);\n }\n\n .container.disabled & {\n color: var(--kds-color-text-and-icon-disabled);\n cursor: default;\n }\n\n .container:focus-within &,\n .container:has(.input-field.has-value) & {\n color: var(--kds-color-text-and-icon-neutral);\n }\n}\n\n.input-field {\n flex: 1 0 0;\n min-width: 0;\n height: var(--kds-dimension-component-height-1-75x);\n padding: var(--kds-spacing-container-0-25x);\n overflow: hidden;\n text-overflow: ellipsis;\n font: var(--kds-font-base-body-small);\n color: var(--kds-color-text-and-icon-neutral);\n white-space: nowrap;\n outline: none;\n background: transparent;\n border: none;\n\n /* hide native steppers, we provide our own in NumberInput */\n &[type=\"number\"] {\n appearance: textfield;\n\n &::-webkit-outer-spin-button,\n &::-webkit-inner-spin-button {\n margin: 0;\n appearance: none;\n }\n }\n\n /* hide native search cancel button on Safari/WebKit, we provide our own clearable button */\n &[type=\"search\"]::-webkit-search-cancel-button {\n appearance: none;\n }\n\n &::placeholder {\n color: var(--kds-color-text-and-icon-subtle);\n }\n\n &:disabled {\n color: var(--kds-color-text-and-icon-disabled);\n cursor: default;\n\n &::placeholder {\n color: var(--kds-color-text-and-icon-disabled);\n }\n }\n}\n\n.unit {\n flex-shrink: 0;\n min-width: 0;\n margin: 0 var(--kds-spacing-container-0-12x);\n overflow: hidden;\n text-overflow: ellipsis;\n font: var(--kds-font-base-body-small);\n color: var(--kds-color-text-and-icon-neutral);\n white-space: nowrap;\n\n &.placeholder {\n color: var(--kds-color-text-and-icon-subtle);\n }\n\n &.disabled {\n color: var(--kds-color-text-and-icon-disabled);\n }\n\n .container:focus-within & {\n color: var(--kds-color-text-and-icon-neutral);\n }\n}\n\n.clear-button {\n margin-left: var(--kds-spacing-container-0-12x);\n}\n\n.leading-slot {\n display: flex;\n flex-shrink: 0;\n gap: var(--kds-spacing-container-0-12x);\n align-items: center;\n}\n\n.trailing-slot {\n display: flex;\n flex-shrink: 0;\n gap: var(--kds-spacing-container-0-12x);\n align-items: center;\n margin-left: var(--kds-spacing-container-0-12x);\n}\n</style>\n","<script setup lang=\"ts\">\nimport { useTemplateRef } from \"vue\";\n\nimport BaseFormFieldWrapper from \"../../_helper/BaseFormFieldWrapper.vue\";\nimport type { KdsFormFieldExpose } from \"../../types.ts\";\nimport BaseInput from \"../BaseInput.vue\";\n\nimport type { KdsTextInputProps } from \"./types\";\n\nconst props = withDefaults(defineProps<KdsTextInputProps>(), {\n disabled: false,\n error: false,\n validating: false,\n preserveSubTextSpace: false,\n});\n\nconst modelValue = defineModel<string>({ default: \"\" });\n\nconst baseInput = useTemplateRef(\"baseInput\");\n\ndefineExpose<KdsFormFieldExpose>({\n focus: () => baseInput.value?.focus(),\n});\n</script>\n\n<template>\n <BaseFormFieldWrapper v-bind=\"props\">\n <template #default=\"slotProps\">\n <BaseInput\n ref=\"baseInput\"\n v-bind=\"slotProps\"\n v-model=\"modelValue\"\n type=\"text\"\n :placeholder=\"props.placeholder\"\n :disabled=\"props.disabled\"\n :error=\"props.error\"\n :autocomplete=\"props.autocomplete\"\n />\n </template>\n </BaseFormFieldWrapper>\n</template>\n","export type KdsRgbColor = {\n r: number;\n g: number;\n b: number;\n};\n\nexport type KdsHsvColor = {\n /** Hue in degrees [0..360) */\n h: number;\n /** Saturation [0..1] */\n s: number;\n /** Value [0..1] */\n v: number;\n};\n\nconst HEX_RADIX = 16;\n\nconst RGB_MAX = 255;\n\nconst HUE_MAX_DEG = 360;\nconst HUE_SECTOR_DEG = 60;\nconst HUE_SECTOR_COUNT = 6;\n\nconst HUE_OFFSET_FOR_MAX_G = 2;\nconst HUE_OFFSET_FOR_MAX_B = 4;\n\nconst HUE_SECTOR_INDEX_2 = 2;\nconst HUE_SECTOR_INDEX_3 = 3;\nconst HUE_SECTOR_INDEX_4 = 4;\nconst HUE_SECTOR_INDEX_5 = 5;\n\nconst HEX_PAIR_LENGTH = 2;\nconst HEX_RED_START = 1;\nconst HEX_GREEN_START = HEX_RED_START + HEX_PAIR_LENGTH;\nconst HEX_BLUE_START = HEX_GREEN_START + HEX_PAIR_LENGTH;\n\nexport const clamp = (value: number, min: number, max: number) =>\n Math.min(max, Math.max(min, value));\n\nconst round = (value: number) => Math.round(value);\n\nconst padHex = (value: number) => value.toString(HEX_RADIX).padStart(2, \"0\");\n\nexport const normalizeHexColor = (value: string): string | null => {\n const trimmed = value.trim();\n if (trimmed.length === 0) {\n return null;\n }\n\n const withoutHash = trimmed.startsWith(\"#\") ? trimmed.slice(1) : trimmed;\n\n if (/^[0-9a-fA-F]{3}$/.test(withoutHash)) {\n const [r, g, b] = withoutHash.split(\"\") as [string, string, string];\n return `#${r}${r}${g}${g}${b}${b}`.toUpperCase();\n }\n\n if (/^[0-9a-fA-F]{6}$/.test(withoutHash)) {\n return `#${withoutHash}`.toUpperCase();\n }\n\n return null;\n};\n\nexport const hexToRgb = (hex: string): KdsRgbColor | null => {\n const normalized = normalizeHexColor(hex);\n if (!normalized) {\n return null;\n }\n\n const r = Number.parseInt(\n normalized.slice(HEX_RED_START, HEX_RED_START + HEX_PAIR_LENGTH),\n HEX_RADIX,\n );\n const g = Number.parseInt(\n normalized.slice(HEX_GREEN_START, HEX_GREEN_START + HEX_PAIR_LENGTH),\n HEX_RADIX,\n );\n const b = Number.parseInt(\n normalized.slice(HEX_BLUE_START, HEX_BLUE_START + HEX_PAIR_LENGTH),\n HEX_RADIX,\n );\n\n return { r, g, b };\n};\n\nexport const rgbToHex = ({ r, g, b }: KdsRgbColor): string => {\n const rr = clamp(round(r), 0, RGB_MAX);\n const gg = clamp(round(g), 0, RGB_MAX);\n const bb = clamp(round(b), 0, RGB_MAX);\n\n return `#${padHex(rr)}${padHex(gg)}${padHex(bb)}`.toUpperCase();\n};\n\nexport const rgbToHsv = ({ r, g, b }: KdsRgbColor): KdsHsvColor => {\n const rr = clamp(r / RGB_MAX, 0, 1);\n const gg = clamp(g / RGB_MAX, 0, 1);\n const bb = clamp(b / RGB_MAX, 0, 1);\n\n const max = Math.max(rr, gg, bb);\n const min = Math.min(rr, gg, bb);\n const delta = max - min;\n\n const v = max;\n const s = max === 0 ? 0 : delta / max;\n\n let h = 0;\n if (delta !== 0) {\n if (max === rr) {\n h = ((gg - bb) / delta) % HUE_SECTOR_COUNT;\n } else if (max === gg) {\n h = (bb - rr) / delta + HUE_OFFSET_FOR_MAX_G;\n } else {\n h = (rr - gg) / delta + HUE_OFFSET_FOR_MAX_B;\n }\n\n h *= HUE_SECTOR_DEG;\n if (h < 0) {\n h += HUE_MAX_DEG;\n }\n }\n\n return { h, s, v };\n};\n\nexport const hsvToRgb = ({ h, s, v }: KdsHsvColor): KdsRgbColor => {\n const hh = ((h % HUE_MAX_DEG) + HUE_MAX_DEG) % HUE_MAX_DEG;\n const ss = clamp(s, 0, 1);\n const vv = clamp(v, 0, 1);\n\n const c = vv * ss;\n const x = c * (1 - Math.abs(((hh / HUE_SECTOR_DEG) % 2) - 1));\n const m = vv - c;\n\n let rPrime = 0;\n let gPrime = 0;\n let bPrime = 0;\n\n if (hh < HUE_SECTOR_DEG) {\n rPrime = c;\n gPrime = x;\n } else if (hh < HUE_SECTOR_INDEX_2 * HUE_SECTOR_DEG) {\n rPrime = x;\n gPrime = c;\n } else if (hh < HUE_SECTOR_INDEX_3 * HUE_SECTOR_DEG) {\n gPrime = c;\n bPrime = x;\n } else if (hh < HUE_SECTOR_INDEX_4 * HUE_SECTOR_DEG) {\n gPrime = x;\n bPrime = c;\n } else if (hh < HUE_SECTOR_INDEX_5 * HUE_SECTOR_DEG) {\n rPrime = x;\n bPrime = c;\n } else {\n rPrime = c;\n bPrime = x;\n }\n\n return {\n r: round((rPrime + m) * RGB_MAX),\n g: round((gPrime + m) * RGB_MAX),\n b: round((bPrime + m) * RGB_MAX),\n };\n};\n\nexport const hsvToHex = (hsv: KdsHsvColor): string => rgbToHex(hsvToRgb(hsv));\n","import { ref } from \"vue\";\n\nexport const usePointerHandler = (\n updateFromEvent: (event: PointerEvent) => void,\n) => {\n const activePointerId = ref<number | null>(null);\n\n const onPointerDown = (event: PointerEvent) => {\n if (event.button !== 0) {\n return;\n }\n\n const target = event.currentTarget;\n if (!(target instanceof HTMLElement)) {\n return;\n }\n\n activePointerId.value = event.pointerId;\n target.setPointerCapture(event.pointerId);\n updateFromEvent(event);\n };\n\n const onPointerMove = (event: PointerEvent) => {\n if (activePointerId.value !== event.pointerId) {\n return;\n }\n\n updateFromEvent(event);\n };\n\n const endPointerInteraction = (event: PointerEvent) => {\n if (activePointerId.value !== event.pointerId) {\n return;\n }\n\n const target = event.currentTarget;\n if (\n target instanceof HTMLElement &&\n target.hasPointerCapture(event.pointerId)\n ) {\n target.releasePointerCapture(event.pointerId);\n }\n\n activePointerId.value = null;\n };\n\n return {\n activePointerId,\n onPointerDown,\n onPointerMove,\n onPointerUp: endPointerInteraction,\n };\n};\n","<script setup lang=\"ts\">\nimport { computed, ref, watch } from \"vue\";\n\nimport KdsTextInput from \"../TextInput/KdsTextInput.vue\";\n\nimport {\n clamp,\n hexToRgb,\n hsvToHex,\n hsvToRgb,\n normalizeHexColor,\n rgbToHsv,\n} from \"./colorUtils\";\nimport { usePointerHandler } from \"./usePointerHandler\";\n\nconst DEFAULT_HUE_DEG = 270;\nconst DEFAULT_SATURATION = 0.8;\nconst DEFAULT_VALUE = 0.9;\n\nconst HUE_MAX_DEG = 360;\nconst HUE_MAX_EXCLUSIVE_DEG = 359.999;\nconst PERCENT = 100;\n\nconst KEYBOARD_STEP = 0.01;\nconst KEYBOARD_LARGE_STEP = 0.1;\nconst HUE_KEYBOARD_STEP_DEG = 1;\nconst HUE_KEYBOARD_LARGE_STEP_DEG = 10;\n\nconst modelValue = defineModel<string>({ default: \"\" });\n\nconst colorspaceEl = ref<HTMLElement | null>(null);\nconst hueEl = ref<HTMLElement | null>(null);\n\nconst hue = ref(DEFAULT_HUE_DEG);\nconst saturation = ref(DEFAULT_SATURATION);\nconst value = ref(DEFAULT_VALUE);\n/**\n * This flag is used to prevent feedback loops when updating the internal HSV state from the external modelValue.\n * When the user updates the color using the UI, we first set this flag to indicate that the next modelValue update is\n * coming from an internal change, so the watcher should ignore it.\n * Without this flag, updating the color would adapt the position of the handle (i.e. the handle jumps), because the\n * same color can occur in multiple places in the color space.\n */\nconst hasPendingInternalModelUpdate = ref(false);\n\nconst syncFromModelValue = (next: string) => {\n const rgb = hexToRgb(next);\n if (!rgb) {\n return;\n }\n\n const hsv = rgbToHsv(rgb);\n hue.value = hsv.h;\n saturation.value = hsv.s;\n value.value = hsv.v;\n};\n\nwatch(\n () => modelValue.value,\n (next) => {\n if (hasPendingInternalModelUpdate.value) {\n hasPendingInternalModelUpdate.value = false;\n return;\n }\n\n syncFromModelValue(next);\n },\n { immediate: true },\n);\n\nconst currentHex = computed(() =>\n hsvToHex({\n h: hue.value,\n s: saturation.value,\n v: value.value,\n }),\n);\n\nconst hueRgb = computed(() => hsvToRgb({ h: hue.value, s: 1, v: 1 }));\n\nconst TO_BOTTOM_GRADIENT = \"linear-gradient(to bottom, transparent, black)\";\n\nconst colorspaceBackground = computed(() => {\n const { r, g, b } = hueRgb.value;\n return {\n background: `${TO_BOTTOM_GRADIENT}, linear-gradient(to right, white, rgb(${r}, ${g}, ${b}))`,\n };\n});\n\nconst colorspaceHandleStyle = computed(() => ({\n left: `${saturation.value * 100}%`,\n top: `${(1 - value.value) * 100}%`,\n}));\n\nconst hueHandleStyle = computed(() => ({\n left: `${(hue.value / HUE_MAX_DEG) * PERCENT}%`,\n}));\n\nconst setModelValueFromHsv = () => {\n hasPendingInternalModelUpdate.value = true;\n modelValue.value = currentHex.value;\n};\n\nconst updateFromColorspaceEvent = (event: PointerEvent) => {\n const el = colorspaceEl.value;\n if (!el) {\n return;\n }\n\n const rect = el.getBoundingClientRect();\n const x = (event.clientX - rect.left) / rect.width;\n const y = (event.clientY - rect.top) / rect.height;\n\n saturation.value = Math.min(1, Math.max(0, x));\n value.value = 1 - Math.min(1, Math.max(0, y));\n\n setModelValueFromHsv();\n};\n\nconst updateFromHueEvent = (event: PointerEvent) => {\n const el = hueEl.value;\n if (!el) {\n return;\n }\n\n const rect = el.getBoundingClientRect();\n const x = (event.clientX - rect.left) / rect.width;\n hue.value = Math.min(HUE_MAX_EXCLUSIVE_DEG, Math.max(0, x * HUE_MAX_DEG));\n\n setModelValueFromHsv();\n};\n\nconst {\n onPointerDown: onColorspacePointerDown,\n onPointerMove: onColorspacePointerMove,\n onPointerUp: onColorspacePointerUp,\n} = usePointerHandler(updateFromColorspaceEvent);\n\nconst {\n onPointerDown: onHuePointerDown,\n onPointerMove: onHuePointerMove,\n onPointerUp: onHuePointerUp,\n} = usePointerHandler(updateFromHueEvent);\n\nconst updateFromTextValue = (next: string) => {\n modelValue.value = next;\n\n const normalized = normalizeHexColor(next);\n if (normalized) {\n syncFromModelValue(normalized);\n }\n};\n\nconst saturationPercent = computed(() =>\n Math.round(saturation.value * PERCENT),\n);\nconst valuePercent = computed(() => Math.round(value.value * PERCENT));\n\nconst colorspaceValueText = computed(\n () =>\n `Saturation ${saturationPercent.value} percent, brightness ${valuePercent.value} percent`,\n);\n\nconst hueValueText = computed(() => `${Math.round(hue.value)} degrees`);\n\nconst onColorspaceKeyDown = (event: KeyboardEvent) => {\n const step = event.shiftKey ? KEYBOARD_LARGE_STEP : KEYBOARD_STEP;\n let handled = true;\n\n switch (event.key) {\n case \"ArrowLeft\":\n saturation.value = clamp(saturation.value - step, 0, 1);\n break;\n case \"ArrowRight\":\n saturation.value = clamp(saturation.value + step, 0, 1);\n break;\n case \"ArrowUp\":\n value.value = clamp(value.value + step, 0, 1);\n break;\n case \"ArrowDown\":\n value.value = clamp(value.value - step, 0, 1);\n break;\n default:\n handled = false;\n }\n\n if (handled) {\n event.preventDefault();\n setModelValueFromHsv();\n }\n};\n\nconst onHueKeyDown = (event: KeyboardEvent) => {\n const step = event.shiftKey\n ? HUE_KEYBOARD_LARGE_STEP_DEG\n : HUE_KEYBOARD_STEP_DEG;\n let handled = true;\n\n switch (event.key) {\n case \"ArrowLeft\":\n hue.value = clamp(hue.value - step, 0, HUE_MAX_EXCLUSIVE_DEG);\n break;\n case \"ArrowRight\":\n hue.value = clamp(hue.value + step, 0, HUE_MAX_EXCLUSIVE_DEG);\n break;\n default:\n handled = false;\n }\n\n if (handled) {\n event.preventDefault();\n setModelValueFromHsv();\n }\n};\n</script>\n\n<template>\n <div class=\"kds-color-picker\">\n <div\n ref=\"colorspaceEl\"\n class=\"colorspace\"\n role=\"slider\"\n aria-label=\"Color selection\"\n aria-roledescription=\"2D color slider\"\n :aria-valuetext=\"colorspaceValueText\"\n :style=\"colorspaceBackground\"\n tabindex=\"0\"\n @pointerdown.prevent=\"onColorspacePointerDown\"\n @pointermove.prevent=\"onColorspacePointerMove\"\n @pointerup=\"onColorspacePointerUp\"\n @pointercancel=\"onColorspacePointerUp\"\n @keydown=\"onColorspaceKeyDown\"\n >\n <div class=\"handle\" :style=\"colorspaceHandleStyle\" />\n </div>\n\n <div\n ref=\"hueEl\"\n class=\"hue\"\n role=\"slider\"\n aria-label=\"Hue\"\n :aria-valuenow=\"Math.round(hue)\"\n aria-valuemin=\"0\"\n :aria-valuemax=\"HUE_MAX_DEG\"\n :aria-valuetext=\"hueValueText\"\n tabindex=\"0\"\n @pointerdown.prevent=\"onHuePointerDown\"\n @pointermove.prevent=\"onHuePointerMove\"\n @pointerup=\"onHuePointerUp\"\n @pointercancel=\"onHuePointerUp\"\n @keydown=\"onHueKeyDown\"\n >\n <div class=\"handle\" :style=\"hueHandleStyle\" />\n </div>\n\n <KdsTextInput\n :model-value=\"modelValue\"\n aria-label=\"Color hex value\"\n placeholder=\"#FFFFFF\"\n @update:model-value=\"updateFromTextValue\"\n />\n </div>\n</template>\n\n<style scoped>\n.kds-color-picker {\n display: flex;\n flex-direction: column;\n gap: var(--kds-spacing-container-1x);\n width: calc(206px + 2 * var(--kds-spacing-container-0-75x));\n max-width: 100%;\n padding: var(--kds-spacing-container-0-75x);\n background: var(--kds-color-surface-default);\n border-radius: var(--kds-border-radius-container-0-50x);\n box-shadow: var(--kds-elevation-level-3);\n}\n\n.colorspace {\n position: relative;\n width: 100%;\n height: 200px;\n cursor: crosshair;\n outline: none;\n border-radius: var(--kds-border-radius-container-0-37x);\n}\n\n.handle {\n position: absolute;\n width: var(--kds-dimension-icon-0-75x);\n height: var(--kds-dimension-icon-0-75x);\n pointer-events: none;\n border: var(--kds-border-color-picker-handle-initial);\n border-radius: var(--kds-border-radius-container-pill);\n box-shadow: var(--kds-elevation-level-3);\n transform: translate(-50%, -50%);\n}\n\n.hue {\n position: relative;\n width: 100%;\n height: var(--kds-dimension-component-height-0-75x);\n cursor: pointer;\n outline: none;\n background: linear-gradient(\n 90deg,\n hsl(0deg 100% 50%) 0%,\n hsl(60deg 100% 50%) 17%,\n hsl(120deg 100% 50%) 33%,\n hsl(180deg 100% 50%) 50%,\n hsl(240deg 100% 50%) 67%,\n hsl(300deg 100% 50%) 83%,\n hsl(360deg 100% 50%) 100%\n );\n border-radius: var(--kds-border-radius-container-pill);\n\n & .handle {\n top: 50%;\n }\n}\n\n.colorspace:focus,\n.hue:focus {\n outline: none;\n}\n\n.colorspace:focus .handle,\n.colorspace:focus-visible .handle,\n.hue:focus .handle,\n.hue:focus-visible .handle {\n outline: var(--kds-border-action-focused);\n outline-offset: calc(-1 * var(--kds-spacing-offset-focus));\n}\n</style>\n","/**\n * Behavior for normalizing hex color input on focus out. It supports the following formats:\n * - 1-digit hex -> repeat up to 6 digits (e.g. #a -> #AAAAAA)\n * - 2-digit hex -> repeat up to 6 digits (e.g. #ab -> #ABABAB)\n * - 3-digit hex -> convert to 6-digit representation (e.g. #abc -> #AABBCC)\n * - 4-digit hex -> convert to 6-digit representation (e.g. #abcd -> #AABBCC); we do not support alpha values for\n * now, so the last digit is ignored\n * - 5-digit hex -> unsupported, restore last valid hex\n * - 6-digit hex -> normalize to uppercase (e.g. #aabbcc -> #AABBCC) and add missing hash if needed\n * (e.g. aabbcc -> #AABBCC)\n */\n\nimport { type Ref, ref, watch } from \"vue\";\n\nconst HEX_LENGTH_1 = 1;\nconst HEX_LENGTH_2 = 2;\nconst HEX_LENGTH_3 = 3;\nconst HEX_LENGTH_4 = 4;\nconst HEX_LENGTH_6 = 6;\n\nconst normalize = (\n value: string,\n fallbackValue: string,\n): string | undefined => {\n const trimmed = value.trim();\n if (trimmed.length === 0) {\n return fallbackValue;\n }\n\n const withoutHash = trimmed.startsWith(\"#\") ? trimmed.slice(1) : trimmed;\n if (!/^[0-9a-fA-F]+$/.test(withoutHash)) {\n return fallbackValue;\n }\n\n if (withoutHash.length === HEX_LENGTH_1) {\n return `#${withoutHash.repeat(HEX_LENGTH_6)}`.toUpperCase();\n }\n\n if (withoutHash.length === HEX_LENGTH_2) {\n return `#${withoutHash.repeat(HEX_LENGTH_3)}`.toUpperCase();\n }\n\n if (\n withoutHash.length === HEX_LENGTH_3 ||\n withoutHash.length === HEX_LENGTH_4\n ) {\n const [r, g, b] = withoutHash;\n return `#${r}${r}${g}${g}${b}${b}`.toUpperCase();\n }\n if (withoutHash.length === HEX_LENGTH_6) {\n return `#${withoutHash}`.toUpperCase();\n }\n return fallbackValue;\n};\n\nexport const useColorInputValidationOnFocusOut = (modelValue: Ref<string>) => {\n const lastValidHexColor = ref<string>(\"\");\n\n watch(\n modelValue,\n (value) => {\n const withoutHash = value.startsWith(\"#\") ? value.slice(1) : value;\n if (/^[0-9a-fA-F]{6}$/.test(withoutHash)) {\n lastValidHexColor.value = `#${withoutHash.toUpperCase()}`;\n }\n },\n { immediate: true },\n );\n\n const handleFocusOut = (event: FocusEvent) => {\n const currentTarget = event.currentTarget;\n if (!(currentTarget instanceof HTMLElement)) {\n return;\n }\n const nextFocusedElement = event.relatedTarget;\n if (\n nextFocusedElement instanceof Node &&\n currentTarget.contains(nextFocusedElement)\n ) {\n return;\n }\n\n const normalized = normalize(modelValue.value, lastValidHexColor.value);\n if (normalized !== undefined) {\n modelValue.value = normalized;\n }\n };\n\n return { handleFocusOut };\n};\n","<script setup lang=\"ts\">\nimport { computed, ref, useTemplateRef } from \"vue\";\n\nimport type { KdsHexColor } from \"../../../accessories\";\nimport KdsColorSwatch from \"../../../accessories/ColorSwatch/KdsColorSwatch.vue\";\nimport { KdsToggleButton } from \"../../../buttons\";\nimport KdsPopover from \"../../../overlays/Popover/KdsPopover.vue\";\nimport BaseFormFieldWrapper from \"../../_helper/BaseFormFieldWrapper.vue\";\nimport BaseInput from \"../BaseInput.vue\";\n\nimport ColorPicker from \"./ColorPicker.vue\";\nimport { normalizeHexColor } from \"./colorUtils\";\nimport type { KdsColorInputProps } from \"./types\";\nimport { useColorInputValidationOnFocusOut } from \"./useColorInputValidationOnFocusOut\";\n\nconst props = withDefaults(defineProps<KdsColorInputProps>(), {\n placeholder: \"#FFFFFF\",\n disabled: false,\n error: false,\n validating: false,\n preserveSubTextSpace: false,\n autocomplete: undefined,\n});\n\nconst modelValue = defineModel<string>({ default: \"\" });\nconst open = ref(false);\n\nconst popoverEl = useTemplateRef(\"popoverEl\");\n\nconst swatchColor = computed<KdsHexColor>(\n () => (normalizeHexColor(modelValue.value) ?? \"#FFFFFF\") as KdsHexColor,\n);\n\nconst { handleFocusOut } = useColorInputValidationOnFocusOut(modelValue);\n\nconst onClickColorSwatch = () => {\n if (!props.disabled) {\n open.value = !open.value;\n }\n};\n</script>\n\n<template>\n <BaseFormFieldWrapper v-bind=\"props\">\n <template #default=\"slotProps\">\n <div :style=\"popoverEl?.anchorStyle\" @focusout=\"handleFocusOut\">\n <BaseInput\n v-bind=\"slotProps\"\n v-model=\"modelValue\"\n :placeholder=\"props.placeholder\"\n :disabled=\"props.disabled\"\n :error=\"props.error\"\n :autocomplete=\"props.autocomplete\"\n >\n <template #leading>\n <KdsColorSwatch\n size=\"large\"\n :color=\"swatchColor\"\n :aria-hidden=\"true\"\n :style=\"{ cursor: props.disabled ? 'default' : 'pointer' }\"\n @click=\"onClickColorSwatch\"\n />\n </template>\n <template #trailing>\n <KdsToggleButton\n v-model=\"open\"\n size=\"xsmall\"\n variant=\"outlined\"\n leading-icon=\"color-picker\"\n aria-label=\"Open color picker\"\n :aria-controls=\"popoverEl?.popoverId\"\n aria-haspopup=\"dialog\"\n :disabled=\"props.disabled\"\n :title=\"open ? 'Close color picker' : 'Open color picker'\"\n />\n </template>\n </BaseInput>\n\n <KdsPopover\n ref=\"popoverEl\"\n v-model=\"open\"\n placement=\"bottom-right\"\n role=\"dialog\"\n popover-aria-label=\"Color picker\"\n >\n <ColorPicker v-model=\"modelValue\" />\n </KdsPopover>\n </div>\n </template>\n </BaseFormFieldWrapper>\n</template>\n","export var top = 'top';\nexport var bottom = 'bottom';\nexport var right = 'right';\nexport var left = 'left';\nexport var auto = 'auto';\nexport var basePlacements = [top, bottom, right, left];\nexport var start = 'start';\nexport var end = 'end';\nexport var clippingParents = 'clippingParents';\nexport var viewport = 'viewport';\nexport var popper = 'popper';\nexport var reference = 'reference';\nexport var variationPlacements = /*#__PURE__*/basePlacements.reduce(function (acc, placement) {\n return acc.concat([placement + \"-\" + start, placement + \"-\" + end]);\n}, []);\nexport var placements = /*#__PURE__*/[].concat(basePlacements, [auto]).reduce(function (acc, placement) {\n return acc.concat([placement, placement + \"-\" + start, placement + \"-\" + end]);\n}, []); // modifiers that need to read the DOM\n\nexport var beforeRead = 'beforeRead';\nexport var read = 'read';\nexport var afterRead = 'afterRead'; // pure-logic modifiers\n\nexport var beforeMain = 'beforeMain';\nexport var main = 'main';\nexport var afterMain = 'afterMain'; // modifier with the purpose to write to the DOM (or write into a framework state)\n\nexport var beforeWrite = 'beforeWrite';\nexport var write = 'write';\nexport var afterWrite = 'afterWrite';\nexport var modifierPhases = [beforeRead, read, afterRead, beforeMain, main, afterMain, beforeWrite, write, afterWrite];","export default function getNodeName(element) {\n return element ? (element.nodeName || '').toLowerCase() : null;\n}","export default function getWindow(node) {\n if (node == null) {\n return window;\n }\n\n if (node.toString() !== '[object Window]') {\n var ownerDocument = node.ownerDocument;\n return ownerDocument ? ownerDocument.defaultView || window : window;\n }\n\n return node;\n}","import getWindow from \"./getWindow.js\";\n\nfunction isElement(node) {\n var OwnElement = getWindow(node).Element;\n return node instanceof OwnElement || node instanceof Element;\n}\n\nfunction isHTMLElement(node) {\n var OwnElement = getWindow(node).HTMLElement;\n return node instanceof OwnElement || node instanceof HTMLElement;\n}\n\nfunction isShadowRoot(node) {\n // IE 11 has no ShadowRoot\n if (typeof ShadowRoot === 'undefined') {\n return false;\n }\n\n var OwnElement = getWindow(node).ShadowRoot;\n return node instanceof OwnElement || node instanceof ShadowRoot;\n}\n\nexport { isElement, isHTMLElement, isShadowRoot };","import getNodeName from \"../dom-utils/getNodeName.js\";\nimport { isHTMLElement } from \"../dom-utils/instanceOf.js\"; // This modifier takes the styles prepared by the `computeStyles` modifier\n// and applies them to the HTMLElements such as popper and arrow\n\nfunction applyStyles(_ref) {\n var state = _ref.state;\n Object.keys(state.elements).forEach(function (name) {\n var style = state.styles[name] || {};\n var attributes = state.attributes[name] || {};\n var element = state.elements[name]; // arrow is optional + virtual elements\n\n if (!isHTMLElement(element) || !getNodeName(element)) {\n return;\n } // Flow doesn't support to extend this property, but it's the most\n // effective way to apply styles to an HTMLElement\n // $FlowFixMe[cannot-write]\n\n\n Object.assign(element.style, style);\n Object.keys(attributes).forEach(function (name) {\n var value = attributes[name];\n\n if (value === false) {\n element.removeAttribute(name);\n } else {\n element.setAttribute(name, value === true ? '' : value);\n }\n });\n });\n}\n\nfunction effect(_ref2) {\n var state = _ref2.state;\n var initialStyles = {\n popper: {\n position: state.options.strategy,\n left: '0',\n top: '0',\n margin: '0'\n },\n arrow: {\n position: 'absolute'\n },\n reference: {}\n };\n Object.assign(state.elements.popper.style, initialStyles.popper);\n state.styles = initialStyles;\n\n if (state.elements.arrow) {\n Object.assign(state.elements.arrow.style, initialStyles.arrow);\n }\n\n return function () {\n Object.keys(state.elements).forEach(function (name) {\n var element = state.elements[name];\n var attributes = state.attributes[name] || {};\n var styleProperties = Object.keys(state.styles.hasOwnProperty(name) ? state.styles[name] : initialStyles[name]); // Set all values to an empty string to unset them\n\n var style = styleProperties.reduce(function (style, property) {\n style[property] = '';\n return style;\n }, {}); // arrow is optional + virtual elements\n\n if (!isHTMLElement(element) || !getNodeName(element)) {\n return;\n }\n\n Object.assign(element.style, style);\n Object.keys(attributes).forEach(function (attribute) {\n element.removeAttribute(attribute);\n });\n });\n };\n} // eslint-disable-next-line import/no-unused-modules\n\n\nexport default {\n name: 'applyStyles',\n enabled: true,\n phase: 'write',\n fn: applyStyles,\n effect: effect,\n requires: ['computeStyles']\n};","import { auto } from \"../enums.js\";\nexport default function getBasePlacement(placement) {\n return placement.split('-')[0];\n}","export var max = Math.max;\nexport var min = Math.min;\nexport var round = Math.round;","export default function getUAString() {\n var uaData = navigator.userAgentData;\n\n if (uaData != null && uaData.brands && Array.isArray(uaData.brands)) {\n return uaData.brands.map(function (item) {\n return item.brand + \"/\" + item.version;\n }).join(' ');\n }\n\n return navigator.userAgent;\n}","import getUAString from \"../utils/userAgent.js\";\nexport default function isLayoutViewport() {\n return !/^((?!chrome|android).)*safari/i.test(getUAString());\n}","import { isElement, isHTMLElement } from \"./instanceOf.js\";\nimport { round } from \"../utils/math.js\";\nimport getWindow from \"./getWindow.js\";\nimport isLayoutViewport from \"./isLayoutViewport.js\";\nexport default function getBoundingClientRect(element, includeScale, isFixedStrategy) {\n if (includeScale === void 0) {\n includeScale = false;\n }\n\n if (isFixedStrategy === void 0) {\n isFixedStrategy = false;\n }\n\n var clientRect = element.getBoundingClientRect();\n var scaleX = 1;\n var scaleY = 1;\n\n if (includeScale && isHTMLElement(element)) {\n scaleX = element.offsetWidth > 0 ? round(clientRect.width) / element.offsetWidth || 1 : 1;\n scaleY = element.offsetHeight > 0 ? round(clientRect.height) / element.offsetHeight || 1 : 1;\n }\n\n var _ref = isElement(element) ? getWindow(element) : window,\n visualViewport = _ref.visualViewport;\n\n var addVisualOffsets = !isLayoutViewport() && isFixedStrategy;\n var x = (clientRect.left + (addVisualOffsets && visualViewport ? visualViewport.offsetLeft : 0)) / scaleX;\n var y = (clientRect.top + (addVisualOffsets && visualViewport ? visualViewport.offsetTop : 0)) / scaleY;\n var width = clientRect.width / scaleX;\n var height = clientRect.height / scaleY;\n return {\n width: width,\n height: height,\n top: y,\n right: x + width,\n bottom: y + height,\n left: x,\n x: x,\n y: y\n };\n}","import getBoundingClientRect from \"./getBoundingClientRect.js\"; // Returns the layout rect of an element relative to its offsetParent. Layout\n// means it doesn't take into account transforms.\n\nexport default function getLayoutRect(element) {\n var clientRect = getBoundingClientRect(element); // Use the clientRect sizes if it's not been transformed.\n // Fixes https://github.com/popperjs/popper-core/issues/1223\n\n var width = element.offsetWidth;\n var height = element.offsetHeight;\n\n if (Math.abs(clientRect.width - width) <= 1) {\n width = clientRect.width;\n }\n\n if (Math.abs(clientRect.height - height) <= 1) {\n height = clientRect.height;\n }\n\n return {\n x: element.offsetLeft,\n y: element.offsetTop,\n width: width,\n height: height\n };\n}","import { isShadowRoot } from \"./instanceOf.js\";\nexport default function contains(parent, child) {\n var rootNode = child.getRootNode && child.getRootNode(); // First, attempt with faster native method\n\n if (parent.contains(child)) {\n return true;\n } // then fallback to custom implementation with Shadow DOM support\n else if (rootNode && isShadowRoot(rootNode)) {\n var next = child;\n\n do {\n if (next && parent.isSameNode(next)) {\n return true;\n } // $FlowFixMe[prop-missing]: need a better way to handle this...\n\n\n next = next.parentNode || next.host;\n } while (next);\n } // Give up, the result is false\n\n\n return false;\n}","import getWindow from \"./getWindow.js\";\nexport default function getComputedStyle(element) {\n return getWindow(element).getComputedStyle(element);\n}","import getNodeName from \"./getNodeName.js\";\nexport default function isTableElement(element) {\n return ['table', 'td', 'th'].indexOf(getNodeName(element)) >= 0;\n}","import { isElement } from \"./instanceOf.js\";\nexport default function getDocumentElement(element) {\n // $FlowFixMe[incompatible-return]: assume body is always available\n return ((isElement(element) ? element.ownerDocument : // $FlowFixMe[prop-missing]\n element.document) || window.document).documentElement;\n}","import getNodeName from \"./getNodeName.js\";\nimport getDocumentElement from \"./getDocumentElement.js\";\nimport { isShadowRoot } from \"./instanceOf.js\";\nexport default function getParentNode(element) {\n if (getNodeName(element) === 'html') {\n return element;\n }\n\n return (// this is a quicker (but less type safe) way to save quite some bytes from the bundle\n // $FlowFixMe[incompatible-return]\n // $FlowFixMe[prop-missing]\n element.assignedSlot || // step into the shadow DOM of the parent of a slotted node\n element.parentNode || ( // DOM Element detected\n isShadowRoot(element) ? element.host : null) || // ShadowRoot detected\n // $FlowFixMe[incompatible-call]: HTMLElement is a Node\n getDocumentElement(element) // fallback\n\n );\n}","import getWindow from \"./getWindow.js\";\nimport getNodeName from \"./getNodeName.js\";\nimport getComputedStyle from \"./getComputedStyle.js\";\nimport { isHTMLElement, isShadowRoot } from \"./instanceOf.js\";\nimport isTableElement from \"./isTableElement.js\";\nimport getParentNode from \"./getParentNode.js\";\nimport getUAString from \"../utils/userAgent.js\";\n\nfunction getTrueOffsetParent(element) {\n if (!isHTMLElement(element) || // https://github.com/popperjs/popper-core/issues/837\n getComputedStyle(element).position === 'fixed') {\n return null;\n }\n\n return element.offsetParent;\n} // `.offsetParent` reports `null` for fixed elements, while absolute elements\n// return the containing block\n\n\nfunction getContainingBlock(element) {\n var isFirefox = /firefox/i.test(getUAString());\n var isIE = /Trident/i.test(getUAString());\n\n if (isIE && isHTMLElement(element)) {\n // In IE 9, 10 and 11 fixed elements containing block is always established by the viewport\n var elementCss = getComputedStyle(element);\n\n if (elementCss.position === 'fixed') {\n return null;\n }\n }\n\n var currentNode = getParentNode(element);\n\n if (isShadowRoot(currentNode)) {\n currentNode = currentNode.host;\n }\n\n while (isHTMLElement(currentNode) && ['html', 'body'].indexOf(getNodeName(currentNode)) < 0) {\n var css = getComputedStyle(currentNode); // This is non-exhaustive but covers the most common CSS properties that\n // create a containing block.\n // https://developer.mozilla.org/en-US/docs/Web/CSS/Containing_block#identifying_the_containing_block\n\n if (css.transform !== 'none' || css.perspective !== 'none' || css.contain === 'paint' || ['transform', 'perspective'].indexOf(css.willChange) !== -1 || isFirefox && css.willChange === 'filter' || isFirefox && css.filter && css.filter !== 'none') {\n return currentNode;\n } else {\n currentNode = currentNode.parentNode;\n }\n }\n\n return null;\n} // Gets the closest ancestor positioned element. Handles some edge cases,\n// such as table ancestors and cross browser bugs.\n\n\nexport default function getOffsetParent(element) {\n var window = getWindow(element);\n var offsetParent = getTrueOffsetParent(element);\n\n while (offsetParent && isTableElement(offsetParent) && getComputedStyle(offsetParent).position === 'static') {\n offsetParent = getTrueOffsetParent(offsetParent);\n }\n\n if (offsetParent && (getNodeName(offsetParent) === 'html' || getNodeName(offsetParent) === 'body' && getComputedStyle(offsetParent).position === 'static')) {\n return window;\n }\n\n return offsetParent || getContainingBlock(element) || window;\n}","export default function getMainAxisFromPlacement(placement) {\n return ['top', 'bottom'].indexOf(placement) >= 0 ? 'x' : 'y';\n}","import { max as mathMax, min as mathMin } from \"./math.js\";\nexport function within(min, value, max) {\n return mathMax(min, mathMin(value, max));\n}\nexport function withinMaxClamp(min, value, max) {\n var v = within(min, value, max);\n return v > max ? max : v;\n}","export default function getFreshSideObject() {\n return {\n top: 0,\n right: 0,\n bottom: 0,\n left: 0\n };\n}","import getFreshSideObject from \"./getFreshSideObject.js\";\nexport default function mergePaddingObject(paddingObject) {\n return Object.assign({}, getFreshSideObject(), paddingObject);\n}","export default function expandToHashMap(value, keys) {\n return keys.reduce(function (hashMap, key) {\n hashMap[key] = value;\n return hashMap;\n }, {});\n}","import getBasePlacement from \"../utils/getBasePlacement.js\";\nimport getLayoutRect from \"../dom-utils/getLayoutRect.js\";\nimport contains from \"../dom-utils/contains.js\";\nimport getOffsetParent from \"../dom-utils/getOffsetParent.js\";\nimport getMainAxisFromPlacement from \"../utils/getMainAxisFromPlacement.js\";\nimport { within } from \"../utils/within.js\";\nimport mergePaddingObject from \"../utils/mergePaddingObject.js\";\nimport expandToHashMap from \"../utils/expandToHashMap.js\";\nimport { left, right, basePlacements, top, bottom } from \"../enums.js\"; // eslint-disable-next-line import/no-unused-modules\n\nvar toPaddingObject = function toPaddingObject(padding, state) {\n padding = typeof padding === 'function' ? padding(Object.assign({}, state.rects, {\n placement: state.placement\n })) : padding;\n return mergePaddingObject(typeof padding !== 'number' ? padding : expandToHashMap(padding, basePlacements));\n};\n\nfunction arrow(_ref) {\n var _state$modifiersData$;\n\n var state = _ref.state,\n name = _ref.name,\n options = _ref.options;\n var arrowElement = state.elements.arrow;\n var popperOffsets = state.modifiersData.popperOffsets;\n var basePlacement = getBasePlacement(state.placement);\n var axis = getMainAxisFromPlacement(basePlacement);\n var isVertical = [left, right].indexOf(basePlacement) >= 0;\n var len = isVertical ? 'height' : 'width';\n\n if (!arrowElement || !popperOffsets) {\n return;\n }\n\n var paddingObject = toPaddingObject(options.padding, state);\n var arrowRect = getLayoutRect(arrowElement);\n var minProp = axis === 'y' ? top : left;\n var maxProp = axis === 'y' ? bottom : right;\n var endDiff = state.rects.reference[len] + state.rects.reference[axis] - popperOffsets[axis] - state.rects.popper[len];\n var startDiff = popperOffsets[axis] - state.rects.reference[axis];\n var arrowOffsetParent = getOffsetParent(arrowElement);\n var clientSize = arrowOffsetParent ? axis === 'y' ? arrowOffsetParent.clientHeight || 0 : arrowOffsetParent.clientWidth || 0 : 0;\n var centerToReference = endDiff / 2 - startDiff / 2; // Make sure the arrow doesn't overflow the popper if the center point is\n // outside of the popper bounds\n\n var min = paddingObject[minProp];\n var max = clientSize - arrowRect[len] - paddingObject[maxProp];\n var center = clientSize / 2 - arrowRect[len] / 2 + centerToReference;\n var offset = within(min, center, max); // Prevents breaking syntax highlighting...\n\n var axisProp = axis;\n state.modifiersData[name] = (_state$modifiersData$ = {}, _state$modifiersData$[axisProp] = offset, _state$modifiersData$.centerOffset = offset - center, _state$modifiersData$);\n}\n\nfunction effect(_ref2) {\n var state = _ref2.state,\n options = _ref2.options;\n var _options$element = options.element,\n arrowElement = _options$element === void 0 ? '[data-popper-arrow]' : _options$element;\n\n if (arrowElement == null) {\n return;\n } // CSS selector\n\n\n if (typeof arrowElement === 'string') {\n arrowElement = state.elements.popper.querySelector(arrowElement);\n\n if (!arrowElement) {\n return;\n }\n }\n\n if (!contains(state.elements.popper, arrowElement)) {\n return;\n }\n\n state.elements.arrow = arrowElement;\n} // eslint-disable-next-line import/no-unused-modules\n\n\nexport default {\n name: 'arrow',\n enabled: true,\n phase: 'main',\n fn: arrow,\n effect: effect,\n requires: ['popperOffsets'],\n requiresIfExists: ['preventOverflow']\n};","export default function getVariation(placement) {\n return placement.split('-')[1];\n}","import { top, left, right, bottom, end } from \"../enums.js\";\nimport getOffsetParent from \"../dom-utils/getOffsetParent.js\";\nimport getWindow from \"../dom-utils/getWindow.js\";\nimport getDocumentElement from \"../dom-utils/getDocumentElement.js\";\nimport getComputedStyle from \"../dom-utils/getComputedStyle.js\";\nimport getBasePlacement from \"../utils/getBasePlacement.js\";\nimport getVariation from \"../utils/getVariation.js\";\nimport { round } from \"../utils/math.js\"; // eslint-disable-next-line import/no-unused-modules\n\nvar unsetSides = {\n top: 'auto',\n right: 'auto',\n bottom: 'auto',\n left: 'auto'\n}; // Round the offsets to the nearest suitable subpixel based on the DPR.\n// Zooming can change the DPR, but it seems to report a value that will\n// cleanly divide the values into the appropriate subpixels.\n\nfunction roundOffsetsByDPR(_ref, win) {\n var x = _ref.x,\n y = _ref.y;\n var dpr = win.devicePixelRatio || 1;\n return {\n x: round(x * dpr) / dpr || 0,\n y: round(y * dpr) / dpr || 0\n };\n}\n\nexport function mapToStyles(_ref2) {\n var _Object$assign2;\n\n var popper = _ref2.popper,\n popperRect = _ref2.popperRect,\n placement = _ref2.placement,\n variation = _ref2.variation,\n offsets = _ref2.offsets,\n position = _ref2.position,\n gpuAcceleration = _ref2.gpuAcceleration,\n adaptive = _ref2.adaptive,\n roundOffsets = _ref2.roundOffsets,\n isFixed = _ref2.isFixed;\n var _offsets$x = offsets.x,\n x = _offsets$x === void 0 ? 0 : _offsets$x,\n _offsets$y = offsets.y,\n y = _offsets$y === void 0 ? 0 : _offsets$y;\n\n var _ref3 = typeof roundOffsets === 'function' ? roundOffsets({\n x: x,\n y: y\n }) : {\n x: x,\n y: y\n };\n\n x = _ref3.x;\n y = _ref3.y;\n var hasX = offsets.hasOwnProperty('x');\n var hasY = offsets.hasOwnProperty('y');\n var sideX = left;\n var sideY = top;\n var win = window;\n\n if (adaptive) {\n var offsetParent = getOffsetParent(popper);\n var heightProp = 'clientHeight';\n var widthProp = 'clientWidth';\n\n if (offsetParent === getWindow(popper)) {\n offsetParent = getDocumentElement(popper);\n\n if (getComputedStyle(offsetParent).position !== 'static' && position === 'absolute') {\n heightProp = 'scrollHeight';\n widthProp = 'scrollWidth';\n }\n } // $FlowFixMe[incompatible-cast]: force type refinement, we compare offsetParent with window above, but Flow doesn't detect it\n\n\n offsetParent = offsetParent;\n\n if (placement === top || (placement === left || placement === right) && variation === end) {\n sideY = bottom;\n var offsetY = isFixed && offsetParent === win && win.visualViewport ? win.visualViewport.height : // $FlowFixMe[prop-missing]\n offsetParent[heightProp];\n y -= offsetY - popperRect.height;\n y *= gpuAcceleration ? 1 : -1;\n }\n\n if (placement === left || (placement === top || placement === bottom) && variation === end) {\n sideX = right;\n var offsetX = isFixed && offsetParent === win && win.visualViewport ? win.visualViewport.width : // $FlowFixMe[prop-missing]\n offsetParent[widthProp];\n x -= offsetX - popperRect.width;\n x *= gpuAcceleration ? 1 : -1;\n }\n }\n\n var commonStyles = Object.assign({\n position: position\n }, adaptive && unsetSides);\n\n var _ref4 = roundOffsets === true ? roundOffsetsByDPR({\n x: x,\n y: y\n }, getWindow(popper)) : {\n x: x,\n y: y\n };\n\n x = _ref4.x;\n y = _ref4.y;\n\n if (gpuAcceleration) {\n var _Object$assign;\n\n return Object.assign({}, commonStyles, (_Object$assign = {}, _Object$assign[sideY] = hasY ? '0' : '', _Object$assign[sideX] = hasX ? '0' : '', _Object$assign.transform = (win.devicePixelRatio || 1) <= 1 ? \"translate(\" + x + \"px, \" + y + \"px)\" : \"translate3d(\" + x + \"px, \" + y + \"px, 0)\", _Object$assign));\n }\n\n return Object.assign({}, commonStyles, (_Object$assign2 = {}, _Object$assign2[sideY] = hasY ? y + \"px\" : '', _Object$assign2[sideX] = hasX ? x + \"px\" : '', _Object$assign2.transform = '', _Object$assign2));\n}\n\nfunction computeStyles(_ref5) {\n var state = _ref5.state,\n options = _ref5.options;\n var _options$gpuAccelerat = options.gpuAcceleration,\n gpuAcceleration = _options$gpuAccelerat === void 0 ? true : _options$gpuAccelerat,\n _options$adaptive = options.adaptive,\n adaptive = _options$adaptive === void 0 ? true : _options$adaptive,\n _options$roundOffsets = options.roundOffsets,\n roundOffsets = _options$roundOffsets === void 0 ? true : _options$roundOffsets;\n var commonStyles = {\n placement: getBasePlacement(state.placement),\n variation: getVariation(state.placement),\n popper: state.elements.popper,\n popperRect: state.rects.popper,\n gpuAcceleration: gpuAcceleration,\n isFixed: state.options.strategy === 'fixed'\n };\n\n if (state.modifiersData.popperOffsets != null) {\n state.styles.popper = Object.assign({}, state.styles.popper, mapToStyles(Object.assign({}, commonStyles, {\n offsets: state.modifiersData.popperOffsets,\n position: state.options.strategy,\n adaptive: adaptive,\n roundOffsets: roundOffsets\n })));\n }\n\n if (state.modifiersData.arrow != null) {\n state.styles.arrow = Object.assign({}, state.styles.arrow, mapToStyles(Object.assign({}, commonStyles, {\n offsets: state.modifiersData.arrow,\n position: 'absolute',\n adaptive: false,\n roundOffsets: roundOffsets\n })));\n }\n\n state.attributes.popper = Object.assign({}, state.attributes.popper, {\n 'data-popper-placement': state.placement\n });\n} // eslint-disable-next-line import/no-unused-modules\n\n\nexport default {\n name: 'computeStyles',\n enabled: true,\n phase: 'beforeWrite',\n fn: computeStyles,\n data: {}\n};","import getWindow from \"../dom-utils/getWindow.js\"; // eslint-disable-next-line import/no-unused-modules\n\nvar passive = {\n passive: true\n};\n\nfunction effect(_ref) {\n var state = _ref.state,\n instance = _ref.instance,\n options = _ref.options;\n var _options$scroll = options.scroll,\n scroll = _options$scroll === void 0 ? true : _options$scroll,\n _options$resize = options.resize,\n resize = _options$resize === void 0 ? true : _options$resize;\n var window = getWindow(state.elements.popper);\n var scrollParents = [].concat(state.scrollParents.reference, state.scrollParents.popper);\n\n if (scroll) {\n scrollParents.forEach(function (scrollParent) {\n scrollParent.addEventListener('scroll', instance.update, passive);\n });\n }\n\n if (resize) {\n window.addEventListener('resize', instance.update, passive);\n }\n\n return function () {\n if (scroll) {\n scrollParents.forEach(function (scrollParent) {\n scrollParent.removeEventListener('scroll', instance.update, passive);\n });\n }\n\n if (resize) {\n window.removeEventListener('resize', instance.update, passive);\n }\n };\n} // eslint-disable-next-line import/no-unused-modules\n\n\nexport default {\n name: 'eventListeners',\n enabled: true,\n phase: 'write',\n fn: function fn() {},\n effect: effect,\n data: {}\n};","var hash = {\n left: 'right',\n right: 'left',\n bottom: 'top',\n top: 'bottom'\n};\nexport default function getOppositePlacement(placement) {\n return placement.replace(/left|right|bottom|top/g, function (matched) {\n return hash[matched];\n });\n}","var hash = {\n start: 'end',\n end: 'start'\n};\nexport default function getOppositeVariationPlacement(placement) {\n return placement.replace(/start|end/g, function (matched) {\n return hash[matched];\n });\n}","import getWindow from \"./getWindow.js\";\nexport default function getWindowScroll(node) {\n var win = getWindow(node);\n var scrollLeft = win.pageXOffset;\n var scrollTop = win.pageYOffset;\n return {\n scrollLeft: scrollLeft,\n scrollTop: scrollTop\n };\n}","import getBoundingClientRect from \"./getBoundingClientRect.js\";\nimport getDocumentElement from \"./getDocumentElement.js\";\nimport getWindowScroll from \"./getWindowScroll.js\";\nexport default function getWindowScrollBarX(element) {\n // If <html> has a CSS width greater than the viewport, then this will be\n // incorrect for RTL.\n // Popper 1 is broken in this case and never had a bug report so let's assume\n // it's not an issue. I don't think anyone ever specifies width on <html>\n // anyway.\n // Browsers where the left scrollbar doesn't cause an issue report `0` for\n // this (e.g. Edge 2019, IE11, Safari)\n return getBoundingClientRect(getDocumentElement(element)).left + getWindowScroll(element).scrollLeft;\n}","import getWindow from \"./getWindow.js\";\nimport getDocumentElement from \"./getDocumentElement.js\";\nimport getWindowScrollBarX from \"./getWindowScrollBarX.js\";\nimport isLayoutViewport from \"./isLayoutViewport.js\";\nexport default function getViewportRect(element, strategy) {\n var win = getWindow(element);\n var html = getDocumentElement(element);\n var visualViewport = win.visualViewport;\n var width = html.clientWidth;\n var height = html.clientHeight;\n var x = 0;\n var y = 0;\n\n if (visualViewport) {\n width = visualViewport.width;\n height = visualViewport.height;\n var layoutViewport = isLayoutViewport();\n\n if (layoutViewport || !layoutViewport && strategy === 'fixed') {\n x = visualViewport.offsetLeft;\n y = visualViewport.offsetTop;\n }\n }\n\n return {\n width: width,\n height: height,\n x: x + getWindowScrollBarX(element),\n y: y\n };\n}","import getDocumentElement from \"./getDocumentElement.js\";\nimport getComputedStyle from \"./getComputedStyle.js\";\nimport getWindowScrollBarX from \"./getWindowScrollBarX.js\";\nimport getWindowScroll from \"./getWindowScroll.js\";\nimport { max } from \"../utils/math.js\"; // Gets the entire size of the scrollable document area, even extending outside\n// of the `<html>` and `<body>` rect bounds if horizontally scrollable\n\nexport default function getDocumentRect(element) {\n var _element$ownerDocumen;\n\n var html = getDocumentElement(element);\n var winScroll = getWindowScroll(element);\n var body = (_element$ownerDocumen = element.ownerDocument) == null ? void 0 : _element$ownerDocumen.body;\n var width = max(html.scrollWidth, html.clientWidth, body ? body.scrollWidth : 0, body ? body.clientWidth : 0);\n var height = max(html.scrollHeight, html.clientHeight, body ? body.scrollHeight : 0, body ? body.clientHeight : 0);\n var x = -winScroll.scrollLeft + getWindowScrollBarX(element);\n var y = -winScroll.scrollTop;\n\n if (getComputedStyle(body || html).direction === 'rtl') {\n x += max(html.clientWidth, body ? body.clientWidth : 0) - width;\n }\n\n return {\n width: width,\n height: height,\n x: x,\n y: y\n };\n}","import getComputedStyle from \"./getComputedStyle.js\";\nexport default function isScrollParent(element) {\n // Firefox wants us to check `-x` and `-y` variations as well\n var _getComputedStyle = getComputedStyle(element),\n overflow = _getComputedStyle.overflow,\n overflowX = _getComputedStyle.overflowX,\n overflowY = _getComputedStyle.overflowY;\n\n return /auto|scroll|overlay|hidden/.test(overflow + overflowY + overflowX);\n}","import getParentNode from \"./getParentNode.js\";\nimport isScrollParent from \"./isScrollParent.js\";\nimport getNodeName from \"./getNodeName.js\";\nimport { isHTMLElement } from \"./instanceOf.js\";\nexport default function getScrollParent(node) {\n if (['html', 'body', '#document'].indexOf(getNodeName(node)) >= 0) {\n // $FlowFixMe[incompatible-return]: assume body is always available\n return node.ownerDocument.body;\n }\n\n if (isHTMLElement(node) && isScrollParent(node)) {\n return node;\n }\n\n return getScrollParent(getParentNode(node));\n}","import getScrollParent from \"./getScrollParent.js\";\nimport getParentNode from \"./getParentNode.js\";\nimport getWindow from \"./getWindow.js\";\nimport isScrollParent from \"./isScrollParent.js\";\n/*\ngiven a DOM element, return the list of all scroll parents, up the list of ancesors\nuntil we get to the top window object. This list is what we attach scroll listeners\nto, because if any of these parent elements scroll, we'll need to re-calculate the\nreference element's position.\n*/\n\nexport default function listScrollParents(element, list) {\n var _element$ownerDocumen;\n\n if (list === void 0) {\n list = [];\n }\n\n var scrollParent = getScrollParent(element);\n var isBody = scrollParent === ((_element$ownerDocumen = element.ownerDocument) == null ? void 0 : _element$ownerDocumen.body);\n var win = getWindow(scrollParent);\n var target = isBody ? [win].concat(win.visualViewport || [], isScrollParent(scrollParent) ? scrollParent : []) : scrollParent;\n var updatedList = list.concat(target);\n return isBody ? updatedList : // $FlowFixMe[incompatible-call]: isBody tells us target will be an HTMLElement here\n updatedList.concat(listScrollParents(getParentNode(target)));\n}","export default function rectToClientRect(rect) {\n return Object.assign({}, rect, {\n left: rect.x,\n top: rect.y,\n right: rect.x + rect.width,\n bottom: rect.y + rect.height\n });\n}","import { viewport } from \"../enums.js\";\nimport getViewportRect from \"./getViewportRect.js\";\nimport getDocumentRect from \"./getDocumentRect.js\";\nimport listScrollParents from \"./listScrollParents.js\";\nimport getOffsetParent from \"./getOffsetParent.js\";\nimport getDocumentElement from \"./getDocumentElement.js\";\nimport getComputedStyle from \"./getComputedStyle.js\";\nimport { isElement, isHTMLElement } from \"./instanceOf.js\";\nimport getBoundingClientRect from \"./getBoundingClientRect.js\";\nimport getParentNode from \"./getParentNode.js\";\nimport contains from \"./contains.js\";\nimport getNodeName from \"./getNodeName.js\";\nimport rectToClientRect from \"../utils/rectToClientRect.js\";\nimport { max, min } from \"../utils/math.js\";\n\nfunction getInnerBoundingClientRect(element, strategy) {\n var rect = getBoundingClientRect(element, false, strategy === 'fixed');\n rect.top = rect.top + element.clientTop;\n rect.left = rect.left + element.clientLeft;\n rect.bottom = rect.top + element.clientHeight;\n rect.right = rect.left + element.clientWidth;\n rect.width = element.clientWidth;\n rect.height = element.clientHeight;\n rect.x = rect.left;\n rect.y = rect.top;\n return rect;\n}\n\nfunction getClientRectFromMixedType(element, clippingParent, strategy) {\n return clippingParent === viewport ? rectToClientRect(getViewportRect(element, strategy)) : isElement(clippingParent) ? getInnerBoundingClientRect(clippingParent, strategy) : rectToClientRect(getDocumentRect(getDocumentElement(element)));\n} // A \"clipping parent\" is an overflowable container with the characteristic of\n// clipping (or hiding) overflowing elements with a position different from\n// `initial`\n\n\nfunction getClippingParents(element) {\n var clippingParents = listScrollParents(getParentNode(element));\n var canEscapeClipping = ['absolute', 'fixed'].indexOf(getComputedStyle(element).position) >= 0;\n var clipperElement = canEscapeClipping && isHTMLElement(element) ? getOffsetParent(element) : element;\n\n if (!isElement(clipperElement)) {\n return [];\n } // $FlowFixMe[incompatible-return]: https://github.com/facebook/flow/issues/1414\n\n\n return clippingParents.filter(function (clippingParent) {\n return isElement(clippingParent) && contains(clippingParent, clipperElement) && getNodeName(clippingParent) !== 'body';\n });\n} // Gets the maximum area that the element is visible in due to any number of\n// clipping parents\n\n\nexport default function getClippingRect(element, boundary, rootBoundary, strategy) {\n var mainClippingParents = boundary === 'clippingParents' ? getClippingParents(element) : [].concat(boundary);\n var clippingParents = [].concat(mainClippingParents, [rootBoundary]);\n var firstClippingParent = clippingParents[0];\n var clippingRect = clippingParents.reduce(function (accRect, clippingParent) {\n var rect = getClientRectFromMixedType(element, clippingParent, strategy);\n accRect.top = max(rect.top, accRect.top);\n accRect.right = min(rect.right, accRect.right);\n accRect.bottom = min(rect.bottom, accRect.bottom);\n accRect.left = max(rect.left, accRect.left);\n return accRect;\n }, getClientRectFromMixedType(element, firstClippingParent, strategy));\n clippingRect.width = clippingRect.right - clippingRect.left;\n clippingRect.height = clippingRect.bottom - clippingRect.top;\n clippingRect.x = clippingRect.left;\n clippingRect.y = clippingRect.top;\n return clippingRect;\n}","import getBasePlacement from \"./getBasePlacement.js\";\nimport getVariation from \"./getVariation.js\";\nimport getMainAxisFromPlacement from \"./getMainAxisFromPlacement.js\";\nimport { top, right, bottom, left, start, end } from \"../enums.js\";\nexport default function computeOffsets(_ref) {\n var reference = _ref.reference,\n element = _ref.element,\n placement = _ref.placement;\n var basePlacement = placement ? getBasePlacement(placement) : null;\n var variation = placement ? getVariation(placement) : null;\n var commonX = reference.x + reference.width / 2 - element.width / 2;\n var commonY = reference.y + reference.height / 2 - element.height / 2;\n var offsets;\n\n switch (basePlacement) {\n case top:\n offsets = {\n x: commonX,\n y: reference.y - element.height\n };\n break;\n\n case bottom:\n offsets = {\n x: commonX,\n y: reference.y + reference.height\n };\n break;\n\n case right:\n offsets = {\n x: reference.x + reference.width,\n y: commonY\n };\n break;\n\n case left:\n offsets = {\n x: reference.x - element.width,\n y: commonY\n };\n break;\n\n default:\n offsets = {\n x: reference.x,\n y: reference.y\n };\n }\n\n var mainAxis = basePlacement ? getMainAxisFromPlacement(basePlacement) : null;\n\n if (mainAxis != null) {\n var len = mainAxis === 'y' ? 'height' : 'width';\n\n switch (variation) {\n case start:\n offsets[mainAxis] = offsets[mainAxis] - (reference[len] / 2 - element[len] / 2);\n break;\n\n case end:\n offsets[mainAxis] = offsets[mainAxis] + (reference[len] / 2 - element[len] / 2);\n break;\n\n default:\n }\n }\n\n return offsets;\n}","import getClippingRect from \"../dom-utils/getClippingRect.js\";\nimport getDocumentElement from \"../dom-utils/getDocumentElement.js\";\nimport getBoundingClientRect from \"../dom-utils/getBoundingClientRect.js\";\nimport computeOffsets from \"./computeOffsets.js\";\nimport rectToClientRect from \"./rectToClientRect.js\";\nimport { clippingParents, reference, popper, bottom, top, right, basePlacements, viewport } from \"../enums.js\";\nimport { isElement } from \"../dom-utils/instanceOf.js\";\nimport mergePaddingObject from \"./mergePaddingObject.js\";\nimport expandToHashMap from \"./expandToHashMap.js\"; // eslint-disable-next-line import/no-unused-modules\n\nexport default function detectOverflow(state, options) {\n if (options === void 0) {\n options = {};\n }\n\n var _options = options,\n _options$placement = _options.placement,\n placement = _options$placement === void 0 ? state.placement : _options$placement,\n _options$strategy = _options.strategy,\n strategy = _options$strategy === void 0 ? state.strategy : _options$strategy,\n _options$boundary = _options.boundary,\n boundary = _options$boundary === void 0 ? clippingParents : _options$boundary,\n _options$rootBoundary = _options.rootBoundary,\n rootBoundary = _options$rootBoundary === void 0 ? viewport : _options$rootBoundary,\n _options$elementConte = _options.elementContext,\n elementContext = _options$elementConte === void 0 ? popper : _options$elementConte,\n _options$altBoundary = _options.altBoundary,\n altBoundary = _options$altBoundary === void 0 ? false : _options$altBoundary,\n _options$padding = _options.padding,\n padding = _options$padding === void 0 ? 0 : _options$padding;\n var paddingObject = mergePaddingObject(typeof padding !== 'number' ? padding : expandToHashMap(padding, basePlacements));\n var altContext = elementContext === popper ? reference : popper;\n var popperRect = state.rects.popper;\n var element = state.elements[altBoundary ? altContext : elementContext];\n var clippingClientRect = getClippingRect(isElement(element) ? element : element.contextElement || getDocumentElement(state.elements.popper), boundary, rootBoundary, strategy);\n var referenceClientRect = getBoundingClientRect(state.elements.reference);\n var popperOffsets = computeOffsets({\n reference: referenceClientRect,\n element: popperRect,\n strategy: 'absolute',\n placement: placement\n });\n var popperClientRect = rectToClientRect(Object.assign({}, popperRect, popperOffsets));\n var elementClientRect = elementContext === popper ? popperClientRect : referenceClientRect; // positive = overflowing the clipping rect\n // 0 or negative = within the clipping rect\n\n var overflowOffsets = {\n top: clippingClientRect.top - elementClientRect.top + paddingObject.top,\n bottom: elementClientRect.bottom - clippingClientRect.bottom + paddingObject.bottom,\n left: clippingClientRect.left - elementClientRect.left + paddingObject.left,\n right: elementClientRect.right - clippingClientRect.right + paddingObject.right\n };\n var offsetData = state.modifiersData.offset; // Offsets can be applied only to the popper element\n\n if (elementContext === popper && offsetData) {\n var offset = offsetData[placement];\n Object.keys(overflowOffsets).forEach(function (key) {\n var multiply = [right, bottom].indexOf(key) >= 0 ? 1 : -1;\n var axis = [top, bottom].indexOf(key) >= 0 ? 'y' : 'x';\n overflowOffsets[key] += offset[axis] * multiply;\n });\n }\n\n return overflowOffsets;\n}","import getVariation from \"./getVariation.js\";\nimport { variationPlacements, basePlacements, placements as allPlacements } from \"../enums.js\";\nimport detectOverflow from \"./detectOverflow.js\";\nimport getBasePlacement from \"./getBasePlacement.js\";\nexport default function computeAutoPlacement(state, options) {\n if (options === void 0) {\n options = {};\n }\n\n var _options = options,\n placement = _options.placement,\n boundary = _options.boundary,\n rootBoundary = _options.rootBoundary,\n padding = _options.padding,\n flipVariations = _options.flipVariations,\n _options$allowedAutoP = _options.allowedAutoPlacements,\n allowedAutoPlacements = _options$allowedAutoP === void 0 ? allPlacements : _options$allowedAutoP;\n var variation = getVariation(placement);\n var placements = variation ? flipVariations ? variationPlacements : variationPlacements.filter(function (placement) {\n return getVariation(placement) === variation;\n }) : basePlacements;\n var allowedPlacements = placements.filter(function (placement) {\n return allowedAutoPlacements.indexOf(placement) >= 0;\n });\n\n if (allowedPlacements.length === 0) {\n allowedPlacements = placements;\n } // $FlowFixMe[incompatible-type]: Flow seems to have problems with two array unions...\n\n\n var overflows = allowedPlacements.reduce(function (acc, placement) {\n acc[placement] = detectOverflow(state, {\n placement: placement,\n boundary: boundary,\n rootBoundary: rootBoundary,\n padding: padding\n })[getBasePlacement(placement)];\n return acc;\n }, {});\n return Object.keys(overflows).sort(function (a, b) {\n return overflows[a] - overflows[b];\n });\n}","import getOppositePlacement from \"../utils/getOppositePlacement.js\";\nimport getBasePlacement from \"../utils/getBasePlacement.js\";\nimport getOppositeVariationPlacement from \"../utils/getOppositeVariationPlacement.js\";\nimport detectOverflow from \"../utils/detectOverflow.js\";\nimport computeAutoPlacement from \"../utils/computeAutoPlacement.js\";\nimport { bottom, top, start, right, left, auto } from \"../enums.js\";\nimport getVariation from \"../utils/getVariation.js\"; // eslint-disable-next-line import/no-unused-modules\n\nfunction getExpandedFallbackPlacements(placement) {\n if (getBasePlacement(placement) === auto) {\n return [];\n }\n\n var oppositePlacement = getOppositePlacement(placement);\n return [getOppositeVariationPlacement(placement), oppositePlacement, getOppositeVariationPlacement(oppositePlacement)];\n}\n\nfunction flip(_ref) {\n var state = _ref.state,\n options = _ref.options,\n name = _ref.name;\n\n if (state.modifiersData[name]._skip) {\n return;\n }\n\n var _options$mainAxis = options.mainAxis,\n checkMainAxis = _options$mainAxis === void 0 ? true : _options$mainAxis,\n _options$altAxis = options.altAxis,\n checkAltAxis = _options$altAxis === void 0 ? true : _options$altAxis,\n specifiedFallbackPlacements = options.fallbackPlacements,\n padding = options.padding,\n boundary = options.boundary,\n rootBoundary = options.rootBoundary,\n altBoundary = options.altBoundary,\n _options$flipVariatio = options.flipVariations,\n flipVariations = _options$flipVariatio === void 0 ? true : _options$flipVariatio,\n allowedAutoPlacements = options.allowedAutoPlacements;\n var preferredPlacement = state.options.placement;\n var basePlacement = getBasePlacement(preferredPlacement);\n var isBasePlacement = basePlacement === preferredPlacement;\n var fallbackPlacements = specifiedFallbackPlacements || (isBasePlacement || !flipVariations ? [getOppositePlacement(preferredPlacement)] : getExpandedFallbackPlacements(preferredPlacement));\n var placements = [preferredPlacement].concat(fallbackPlacements).reduce(function (acc, placement) {\n return acc.concat(getBasePlacement(placement) === auto ? computeAutoPlacement(state, {\n placement: placement,\n boundary: boundary,\n rootBoundary: rootBoundary,\n padding: padding,\n flipVariations: flipVariations,\n allowedAutoPlacements: allowedAutoPlacements\n }) : placement);\n }, []);\n var referenceRect = state.rects.reference;\n var popperRect = state.rects.popper;\n var checksMap = new Map();\n var makeFallbackChecks = true;\n var firstFittingPlacement = placements[0];\n\n for (var i = 0; i < placements.length; i++) {\n var placement = placements[i];\n\n var _basePlacement = getBasePlacement(placement);\n\n var isStartVariation = getVariation(placement) === start;\n var isVertical = [top, bottom].indexOf(_basePlacement) >= 0;\n var len = isVertical ? 'width' : 'height';\n var overflow = detectOverflow(state, {\n placement: placement,\n boundary: boundary,\n rootBoundary: rootBoundary,\n altBoundary: altBoundary,\n padding: padding\n });\n var mainVariationSide = isVertical ? isStartVariation ? right : left : isStartVariation ? bottom : top;\n\n if (referenceRect[len] > popperRect[len]) {\n mainVariationSide = getOppositePlacement(mainVariationSide);\n }\n\n var altVariationSide = getOppositePlacement(mainVariationSide);\n var checks = [];\n\n if (checkMainAxis) {\n checks.push(overflow[_basePlacement] <= 0);\n }\n\n if (checkAltAxis) {\n checks.push(overflow[mainVariationSide] <= 0, overflow[altVariationSide] <= 0);\n }\n\n if (checks.every(function (check) {\n return check;\n })) {\n firstFittingPlacement = placement;\n makeFallbackChecks = false;\n break;\n }\n\n checksMap.set(placement, checks);\n }\n\n if (makeFallbackChecks) {\n // `2` may be desired in some cases – research later\n var numberOfChecks = flipVariations ? 3 : 1;\n\n var _loop = function _loop(_i) {\n var fittingPlacement = placements.find(function (placement) {\n var checks = checksMap.get(placement);\n\n if (checks) {\n return checks.slice(0, _i).every(function (check) {\n return check;\n });\n }\n });\n\n if (fittingPlacement) {\n firstFittingPlacement = fittingPlacement;\n return \"break\";\n }\n };\n\n for (var _i = numberOfChecks; _i > 0; _i--) {\n var _ret = _loop(_i);\n\n if (_ret === \"break\") break;\n }\n }\n\n if (state.placement !== firstFittingPlacement) {\n state.modifiersData[name]._skip = true;\n state.placement = firstFittingPlacement;\n state.reset = true;\n }\n} // eslint-disable-next-line import/no-unused-modules\n\n\nexport default {\n name: 'flip',\n enabled: true,\n phase: 'main',\n fn: flip,\n requiresIfExists: ['offset'],\n data: {\n _skip: false\n }\n};","import { top, bottom, left, right } from \"../enums.js\";\nimport detectOverflow from \"../utils/detectOverflow.js\";\n\nfunction getSideOffsets(overflow, rect, preventedOffsets) {\n if (preventedOffsets === void 0) {\n preventedOffsets = {\n x: 0,\n y: 0\n };\n }\n\n return {\n top: overflow.top - rect.height - preventedOffsets.y,\n right: overflow.right - rect.width + preventedOffsets.x,\n bottom: overflow.bottom - rect.height + preventedOffsets.y,\n left: overflow.left - rect.width - preventedOffsets.x\n };\n}\n\nfunction isAnySideFullyClipped(overflow) {\n return [top, right, bottom, left].some(function (side) {\n return overflow[side] >= 0;\n });\n}\n\nfunction hide(_ref) {\n var state = _ref.state,\n name = _ref.name;\n var referenceRect = state.rects.reference;\n var popperRect = state.rects.popper;\n var preventedOffsets = state.modifiersData.preventOverflow;\n var referenceOverflow = detectOverflow(state, {\n elementContext: 'reference'\n });\n var popperAltOverflow = detectOverflow(state, {\n altBoundary: true\n });\n var referenceClippingOffsets = getSideOffsets(referenceOverflow, referenceRect);\n var popperEscapeOffsets = getSideOffsets(popperAltOverflow, popperRect, preventedOffsets);\n var isReferenceHidden = isAnySideFullyClipped(referenceClippingOffsets);\n var hasPopperEscaped = isAnySideFullyClipped(popperEscapeOffsets);\n state.modifiersData[name] = {\n referenceClippingOffsets: referenceClippingOffsets,\n popperEscapeOffsets: popperEscapeOffsets,\n isReferenceHidden: isReferenceHidden,\n hasPopperEscaped: hasPopperEscaped\n };\n state.attributes.popper = Object.assign({}, state.attributes.popper, {\n 'data-popper-reference-hidden': isReferenceHidden,\n 'data-popper-escaped': hasPopperEscaped\n });\n} // eslint-disable-next-line import/no-unused-modules\n\n\nexport default {\n name: 'hide',\n enabled: true,\n phase: 'main',\n requiresIfExists: ['preventOverflow'],\n fn: hide\n};","import getBasePlacement from \"../utils/getBasePlacement.js\";\nimport { top, left, right, placements } from \"../enums.js\"; // eslint-disable-next-line import/no-unused-modules\n\nexport function distanceAndSkiddingToXY(placement, rects, offset) {\n var basePlacement = getBasePlacement(placement);\n var invertDistance = [left, top].indexOf(basePlacement) >= 0 ? -1 : 1;\n\n var _ref = typeof offset === 'function' ? offset(Object.assign({}, rects, {\n placement: placement\n })) : offset,\n skidding = _ref[0],\n distance = _ref[1];\n\n skidding = skidding || 0;\n distance = (distance || 0) * invertDistance;\n return [left, right].indexOf(basePlacement) >= 0 ? {\n x: distance,\n y: skidding\n } : {\n x: skidding,\n y: distance\n };\n}\n\nfunction offset(_ref2) {\n var state = _ref2.state,\n options = _ref2.options,\n name = _ref2.name;\n var _options$offset = options.offset,\n offset = _options$offset === void 0 ? [0, 0] : _options$offset;\n var data = placements.reduce(function (acc, placement) {\n acc[placement] = distanceAndSkiddingToXY(placement, state.rects, offset);\n return acc;\n }, {});\n var _data$state$placement = data[state.placement],\n x = _data$state$placement.x,\n y = _data$state$placement.y;\n\n if (state.modifiersData.popperOffsets != null) {\n state.modifiersData.popperOffsets.x += x;\n state.modifiersData.popperOffsets.y += y;\n }\n\n state.modifiersData[name] = data;\n} // eslint-disable-next-line import/no-unused-modules\n\n\nexport default {\n name: 'offset',\n enabled: true,\n phase: 'main',\n requires: ['popperOffsets'],\n fn: offset\n};","import computeOffsets from \"../utils/computeOffsets.js\";\n\nfunction popperOffsets(_ref) {\n var state = _ref.state,\n name = _ref.name;\n // Offsets are the actual position the popper needs to have to be\n // properly positioned near its reference element\n // This is the most basic placement, and will be adjusted by\n // the modifiers in the next step\n state.modifiersData[name] = computeOffsets({\n reference: state.rects.reference,\n element: state.rects.popper,\n strategy: 'absolute',\n placement: state.placement\n });\n} // eslint-disable-next-line import/no-unused-modules\n\n\nexport default {\n name: 'popperOffsets',\n enabled: true,\n phase: 'read',\n fn: popperOffsets,\n data: {}\n};","export default function getAltAxis(axis) {\n return axis === 'x' ? 'y' : 'x';\n}","import { top, left, right, bottom, start } from \"../enums.js\";\nimport getBasePlacement from \"../utils/getBasePlacement.js\";\nimport getMainAxisFromPlacement from \"../utils/getMainAxisFromPlacement.js\";\nimport getAltAxis from \"../utils/getAltAxis.js\";\nimport { within, withinMaxClamp } from \"../utils/within.js\";\nimport getLayoutRect from \"../dom-utils/getLayoutRect.js\";\nimport getOffsetParent from \"../dom-utils/getOffsetParent.js\";\nimport detectOverflow from \"../utils/detectOverflow.js\";\nimport getVariation from \"../utils/getVariation.js\";\nimport getFreshSideObject from \"../utils/getFreshSideObject.js\";\nimport { min as mathMin, max as mathMax } from \"../utils/math.js\";\n\nfunction preventOverflow(_ref) {\n var state = _ref.state,\n options = _ref.options,\n name = _ref.name;\n var _options$mainAxis = options.mainAxis,\n checkMainAxis = _options$mainAxis === void 0 ? true : _options$mainAxis,\n _options$altAxis = options.altAxis,\n checkAltAxis = _options$altAxis === void 0 ? false : _options$altAxis,\n boundary = options.boundary,\n rootBoundary = options.rootBoundary,\n altBoundary = options.altBoundary,\n padding = options.padding,\n _options$tether = options.tether,\n tether = _options$tether === void 0 ? true : _options$tether,\n _options$tetherOffset = options.tetherOffset,\n tetherOffset = _options$tetherOffset === void 0 ? 0 : _options$tetherOffset;\n var overflow = detectOverflow(state, {\n boundary: boundary,\n rootBoundary: rootBoundary,\n padding: padding,\n altBoundary: altBoundary\n });\n var basePlacement = getBasePlacement(state.placement);\n var variation = getVariation(state.placement);\n var isBasePlacement = !variation;\n var mainAxis = getMainAxisFromPlacement(basePlacement);\n var altAxis = getAltAxis(mainAxis);\n var popperOffsets = state.modifiersData.popperOffsets;\n var referenceRect = state.rects.reference;\n var popperRect = state.rects.popper;\n var tetherOffsetValue = typeof tetherOffset === 'function' ? tetherOffset(Object.assign({}, state.rects, {\n placement: state.placement\n })) : tetherOffset;\n var normalizedTetherOffsetValue = typeof tetherOffsetValue === 'number' ? {\n mainAxis: tetherOffsetValue,\n altAxis: tetherOffsetValue\n } : Object.assign({\n mainAxis: 0,\n altAxis: 0\n }, tetherOffsetValue);\n var offsetModifierState = state.modifiersData.offset ? state.modifiersData.offset[state.placement] : null;\n var data = {\n x: 0,\n y: 0\n };\n\n if (!popperOffsets) {\n return;\n }\n\n if (checkMainAxis) {\n var _offsetModifierState$;\n\n var mainSide = mainAxis === 'y' ? top : left;\n var altSide = mainAxis === 'y' ? bottom : right;\n var len = mainAxis === 'y' ? 'height' : 'width';\n var offset = popperOffsets[mainAxis];\n var min = offset + overflow[mainSide];\n var max = offset - overflow[altSide];\n var additive = tether ? -popperRect[len] / 2 : 0;\n var minLen = variation === start ? referenceRect[len] : popperRect[len];\n var maxLen = variation === start ? -popperRect[len] : -referenceRect[len]; // We need to include the arrow in the calculation so the arrow doesn't go\n // outside the reference bounds\n\n var arrowElement = state.elements.arrow;\n var arrowRect = tether && arrowElement ? getLayoutRect(arrowElement) : {\n width: 0,\n height: 0\n };\n var arrowPaddingObject = state.modifiersData['arrow#persistent'] ? state.modifiersData['arrow#persistent'].padding : getFreshSideObject();\n var arrowPaddingMin = arrowPaddingObject[mainSide];\n var arrowPaddingMax = arrowPaddingObject[altSide]; // If the reference length is smaller than the arrow length, we don't want\n // to include its full size in the calculation. If the reference is small\n // and near the edge of a boundary, the popper can overflow even if the\n // reference is not overflowing as well (e.g. virtual elements with no\n // width or height)\n\n var arrowLen = within(0, referenceRect[len], arrowRect[len]);\n var minOffset = isBasePlacement ? referenceRect[len] / 2 - additive - arrowLen - arrowPaddingMin - normalizedTetherOffsetValue.mainAxis : minLen - arrowLen - arrowPaddingMin - normalizedTetherOffsetValue.mainAxis;\n var maxOffset = isBasePlacement ? -referenceRect[len] / 2 + additive + arrowLen + arrowPaddingMax + normalizedTetherOffsetValue.mainAxis : maxLen + arrowLen + arrowPaddingMax + normalizedTetherOffsetValue.mainAxis;\n var arrowOffsetParent = state.elements.arrow && getOffsetParent(state.elements.arrow);\n var clientOffset = arrowOffsetParent ? mainAxis === 'y' ? arrowOffsetParent.clientTop || 0 : arrowOffsetParent.clientLeft || 0 : 0;\n var offsetModifierValue = (_offsetModifierState$ = offsetModifierState == null ? void 0 : offsetModifierState[mainAxis]) != null ? _offsetModifierState$ : 0;\n var tetherMin = offset + minOffset - offsetModifierValue - clientOffset;\n var tetherMax = offset + maxOffset - offsetModifierValue;\n var preventedOffset = within(tether ? mathMin(min, tetherMin) : min, offset, tether ? mathMax(max, tetherMax) : max);\n popperOffsets[mainAxis] = preventedOffset;\n data[mainAxis] = preventedOffset - offset;\n }\n\n if (checkAltAxis) {\n var _offsetModifierState$2;\n\n var _mainSide = mainAxis === 'x' ? top : left;\n\n var _altSide = mainAxis === 'x' ? bottom : right;\n\n var _offset = popperOffsets[altAxis];\n\n var _len = altAxis === 'y' ? 'height' : 'width';\n\n var _min = _offset + overflow[_mainSide];\n\n var _max = _offset - overflow[_altSide];\n\n var isOriginSide = [top, left].indexOf(basePlacement) !== -1;\n\n var _offsetModifierValue = (_offsetModifierState$2 = offsetModifierState == null ? void 0 : offsetModifierState[altAxis]) != null ? _offsetModifierState$2 : 0;\n\n var _tetherMin = isOriginSide ? _min : _offset - referenceRect[_len] - popperRect[_len] - _offsetModifierValue + normalizedTetherOffsetValue.altAxis;\n\n var _tetherMax = isOriginSide ? _offset + referenceRect[_len] + popperRect[_len] - _offsetModifierValue - normalizedTetherOffsetValue.altAxis : _max;\n\n var _preventedOffset = tether && isOriginSide ? withinMaxClamp(_tetherMin, _offset, _tetherMax) : within(tether ? _tetherMin : _min, _offset, tether ? _tetherMax : _max);\n\n popperOffsets[altAxis] = _preventedOffset;\n data[altAxis] = _preventedOffset - _offset;\n }\n\n state.modifiersData[name] = data;\n} // eslint-disable-next-line import/no-unused-modules\n\n\nexport default {\n name: 'preventOverflow',\n enabled: true,\n phase: 'main',\n fn: preventOverflow,\n requiresIfExists: ['offset']\n};","export default function getHTMLElementScroll(element) {\n return {\n scrollLeft: element.scrollLeft,\n scrollTop: element.scrollTop\n };\n}","import getWindowScroll from \"./getWindowScroll.js\";\nimport getWindow from \"./getWindow.js\";\nimport { isHTMLElement } from \"./instanceOf.js\";\nimport getHTMLElementScroll from \"./getHTMLElementScroll.js\";\nexport default function getNodeScroll(node) {\n if (node === getWindow(node) || !isHTMLElement(node)) {\n return getWindowScroll(node);\n } else {\n return getHTMLElementScroll(node);\n }\n}","import getBoundingClientRect from \"./getBoundingClientRect.js\";\nimport getNodeScroll from \"./getNodeScroll.js\";\nimport getNodeName from \"./getNodeName.js\";\nimport { isHTMLElement } from \"./instanceOf.js\";\nimport getWindowScrollBarX from \"./getWindowScrollBarX.js\";\nimport getDocumentElement from \"./getDocumentElement.js\";\nimport isScrollParent from \"./isScrollParent.js\";\nimport { round } from \"../utils/math.js\";\n\nfunction isElementScaled(element) {\n var rect = element.getBoundingClientRect();\n var scaleX = round(rect.width) / element.offsetWidth || 1;\n var scaleY = round(rect.height) / element.offsetHeight || 1;\n return scaleX !== 1 || scaleY !== 1;\n} // Returns the composite rect of an element relative to its offsetParent.\n// Composite means it takes into account transforms as well as layout.\n\n\nexport default function getCompositeRect(elementOrVirtualElement, offsetParent, isFixed) {\n if (isFixed === void 0) {\n isFixed = false;\n }\n\n var isOffsetParentAnElement = isHTMLElement(offsetParent);\n var offsetParentIsScaled = isHTMLElement(offsetParent) && isElementScaled(offsetParent);\n var documentElement = getDocumentElement(offsetParent);\n var rect = getBoundingClientRect(elementOrVirtualElement, offsetParentIsScaled, isFixed);\n var scroll = {\n scrollLeft: 0,\n scrollTop: 0\n };\n var offsets = {\n x: 0,\n y: 0\n };\n\n if (isOffsetParentAnElement || !isOffsetParentAnElement && !isFixed) {\n if (getNodeName(offsetParent) !== 'body' || // https://github.com/popperjs/popper-core/issues/1078\n isScrollParent(documentElement)) {\n scroll = getNodeScroll(offsetParent);\n }\n\n if (isHTMLElement(offsetParent)) {\n offsets = getBoundingClientRect(offsetParent, true);\n offsets.x += offsetParent.clientLeft;\n offsets.y += offsetParent.clientTop;\n } else if (documentElement) {\n offsets.x = getWindowScrollBarX(documentElement);\n }\n }\n\n return {\n x: rect.left + scroll.scrollLeft - offsets.x,\n y: rect.top + scroll.scrollTop - offsets.y,\n width: rect.width,\n height: rect.height\n };\n}","import { modifierPhases } from \"../enums.js\"; // source: https://stackoverflow.com/questions/49875255\n\nfunction order(modifiers) {\n var map = new Map();\n var visited = new Set();\n var result = [];\n modifiers.forEach(function (modifier) {\n map.set(modifier.name, modifier);\n }); // On visiting object, check for its dependencies and visit them recursively\n\n function sort(modifier) {\n visited.add(modifier.name);\n var requires = [].concat(modifier.requires || [], modifier.requiresIfExists || []);\n requires.forEach(function (dep) {\n if (!visited.has(dep)) {\n var depModifier = map.get(dep);\n\n if (depModifier) {\n sort(depModifier);\n }\n }\n });\n result.push(modifier);\n }\n\n modifiers.forEach(function (modifier) {\n if (!visited.has(modifier.name)) {\n // check for visited object\n sort(modifier);\n }\n });\n return result;\n}\n\nexport default function orderModifiers(modifiers) {\n // order based on dependencies\n var orderedModifiers = order(modifiers); // order based on phase\n\n return modifierPhases.reduce(function (acc, phase) {\n return acc.concat(orderedModifiers.filter(function (modifier) {\n return modifier.phase === phase;\n }));\n }, []);\n}","export default function debounce(fn) {\n var pending;\n return function () {\n if (!pending) {\n pending = new Promise(function (resolve) {\n Promise.resolve().then(function () {\n pending = undefined;\n resolve(fn());\n });\n });\n }\n\n return pending;\n };\n}","export default function mergeByName(modifiers) {\n var merged = modifiers.reduce(function (merged, current) {\n var existing = merged[current.name];\n merged[current.name] = existing ? Object.assign({}, existing, current, {\n options: Object.assign({}, existing.options, current.options),\n data: Object.assign({}, existing.data, current.data)\n }) : current;\n return merged;\n }, {}); // IE11 does not support Object.values\n\n return Object.keys(merged).map(function (key) {\n return merged[key];\n });\n}","import getCompositeRect from \"./dom-utils/getCompositeRect.js\";\nimport getLayoutRect from \"./dom-utils/getLayoutRect.js\";\nimport listScrollParents from \"./dom-utils/listScrollParents.js\";\nimport getOffsetParent from \"./dom-utils/getOffsetParent.js\";\nimport orderModifiers from \"./utils/orderModifiers.js\";\nimport debounce from \"./utils/debounce.js\";\nimport mergeByName from \"./utils/mergeByName.js\";\nimport detectOverflow from \"./utils/detectOverflow.js\";\nimport { isElement } from \"./dom-utils/instanceOf.js\";\nvar DEFAULT_OPTIONS = {\n placement: 'bottom',\n modifiers: [],\n strategy: 'absolute'\n};\n\nfunction areValidElements() {\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n return !args.some(function (element) {\n return !(element && typeof element.getBoundingClientRect === 'function');\n });\n}\n\nexport function popperGenerator(generatorOptions) {\n if (generatorOptions === void 0) {\n generatorOptions = {};\n }\n\n var _generatorOptions = generatorOptions,\n _generatorOptions$def = _generatorOptions.defaultModifiers,\n defaultModifiers = _generatorOptions$def === void 0 ? [] : _generatorOptions$def,\n _generatorOptions$def2 = _generatorOptions.defaultOptions,\n defaultOptions = _generatorOptions$def2 === void 0 ? DEFAULT_OPTIONS : _generatorOptions$def2;\n return function createPopper(reference, popper, options) {\n if (options === void 0) {\n options = defaultOptions;\n }\n\n var state = {\n placement: 'bottom',\n orderedModifiers: [],\n options: Object.assign({}, DEFAULT_OPTIONS, defaultOptions),\n modifiersData: {},\n elements: {\n reference: reference,\n popper: popper\n },\n attributes: {},\n styles: {}\n };\n var effectCleanupFns = [];\n var isDestroyed = false;\n var instance = {\n state: state,\n setOptions: function setOptions(setOptionsAction) {\n var options = typeof setOptionsAction === 'function' ? setOptionsAction(state.options) : setOptionsAction;\n cleanupModifierEffects();\n state.options = Object.assign({}, defaultOptions, state.options, options);\n state.scrollParents = {\n reference: isElement(reference) ? listScrollParents(reference) : reference.contextElement ? listScrollParents(reference.contextElement) : [],\n popper: listScrollParents(popper)\n }; // Orders the modifiers based on their dependencies and `phase`\n // properties\n\n var orderedModifiers = orderModifiers(mergeByName([].concat(defaultModifiers, state.options.modifiers))); // Strip out disabled modifiers\n\n state.orderedModifiers = orderedModifiers.filter(function (m) {\n return m.enabled;\n });\n runModifierEffects();\n return instance.update();\n },\n // Sync update – it will always be executed, even if not necessary. This\n // is useful for low frequency updates where sync behavior simplifies the\n // logic.\n // For high frequency updates (e.g. `resize` and `scroll` events), always\n // prefer the async Popper#update method\n forceUpdate: function forceUpdate() {\n if (isDestroyed) {\n return;\n }\n\n var _state$elements = state.elements,\n reference = _state$elements.reference,\n popper = _state$elements.popper; // Don't proceed if `reference` or `popper` are not valid elements\n // anymore\n\n if (!areValidElements(reference, popper)) {\n return;\n } // Store the reference and popper rects to be read by modifiers\n\n\n state.rects = {\n reference: getCompositeRect(reference, getOffsetParent(popper), state.options.strategy === 'fixed'),\n popper: getLayoutRect(popper)\n }; // Modifiers have the ability to reset the current update cycle. The\n // most common use case for this is the `flip` modifier changing the\n // placement, which then needs to re-run all the modifiers, because the\n // logic was previously ran for the previous placement and is therefore\n // stale/incorrect\n\n state.reset = false;\n state.placement = state.options.placement; // On each update cycle, the `modifiersData` property for each modifier\n // is filled with the initial data specified by the modifier. This means\n // it doesn't persist and is fresh on each update.\n // To ensure persistent data, use `${name}#persistent`\n\n state.orderedModifiers.forEach(function (modifier) {\n return state.modifiersData[modifier.name] = Object.assign({}, modifier.data);\n });\n\n for (var index = 0; index < state.orderedModifiers.length; index++) {\n if (state.reset === true) {\n state.reset = false;\n index = -1;\n continue;\n }\n\n var _state$orderedModifie = state.orderedModifiers[index],\n fn = _state$orderedModifie.fn,\n _state$orderedModifie2 = _state$orderedModifie.options,\n _options = _state$orderedModifie2 === void 0 ? {} : _state$orderedModifie2,\n name = _state$orderedModifie.name;\n\n if (typeof fn === 'function') {\n state = fn({\n state: state,\n options: _options,\n name: name,\n instance: instance\n }) || state;\n }\n }\n },\n // Async and optimistically optimized update – it will not be executed if\n // not necessary (debounced to run at most once-per-tick)\n update: debounce(function () {\n return new Promise(function (resolve) {\n instance.forceUpdate();\n resolve(state);\n });\n }),\n destroy: function destroy() {\n cleanupModifierEffects();\n isDestroyed = true;\n }\n };\n\n if (!areValidElements(reference, popper)) {\n return instance;\n }\n\n instance.setOptions(options).then(function (state) {\n if (!isDestroyed && options.onFirstUpdate) {\n options.onFirstUpdate(state);\n }\n }); // Modifiers have the ability to execute arbitrary code before the first\n // update cycle runs. They will be executed in the same order as the update\n // cycle. This is useful when a modifier adds some persistent data that\n // other modifiers need to use, but the modifier is run after the dependent\n // one.\n\n function runModifierEffects() {\n state.orderedModifiers.forEach(function (_ref) {\n var name = _ref.name,\n _ref$options = _ref.options,\n options = _ref$options === void 0 ? {} : _ref$options,\n effect = _ref.effect;\n\n if (typeof effect === 'function') {\n var cleanupFn = effect({\n state: state,\n name: name,\n instance: instance,\n options: options\n });\n\n var noopFn = function noopFn() {};\n\n effectCleanupFns.push(cleanupFn || noopFn);\n }\n });\n }\n\n function cleanupModifierEffects() {\n effectCleanupFns.forEach(function (fn) {\n return fn();\n });\n effectCleanupFns = [];\n }\n\n return instance;\n };\n}\nexport var createPopper = /*#__PURE__*/popperGenerator(); // eslint-disable-next-line import/no-unused-modules\n\nexport { detectOverflow };","import { popperGenerator, detectOverflow } from \"./createPopper.js\";\nimport eventListeners from \"./modifiers/eventListeners.js\";\nimport popperOffsets from \"./modifiers/popperOffsets.js\";\nimport computeStyles from \"./modifiers/computeStyles.js\";\nimport applyStyles from \"./modifiers/applyStyles.js\";\nimport offset from \"./modifiers/offset.js\";\nimport flip from \"./modifiers/flip.js\";\nimport preventOverflow from \"./modifiers/preventOverflow.js\";\nimport arrow from \"./modifiers/arrow.js\";\nimport hide from \"./modifiers/hide.js\";\nvar defaultModifiers = [eventListeners, popperOffsets, computeStyles, applyStyles, offset, flip, preventOverflow, arrow, hide];\nvar createPopper = /*#__PURE__*/popperGenerator({\n defaultModifiers: defaultModifiers\n}); // eslint-disable-next-line import/no-unused-modules\n\nexport { createPopper, popperGenerator, defaultModifiers, detectOverflow }; // eslint-disable-next-line import/no-unused-modules\n\nexport { createPopper as createPopperLite } from \"./popper-lite.js\"; // eslint-disable-next-line import/no-unused-modules\n\nexport * from \"./modifiers/index.js\";","var __defProp = Object.defineProperty;\nvar __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;\nvar __publicField = (obj, key, value) => {\n __defNormalProp(obj, typeof key !== \"symbol\" ? key + \"\" : key, value);\n return value;\n};\nimport { reactive, computed, ref, watch, onUnmounted, provide, inject, onMounted, watchEffect, defineComponent, toRefs, nextTick, openBlock, createElementBlock, normalizeClass, createVNode, Transition, withCtx, mergeProps, renderSlot, createTextVNode, toDisplayString, createElementVNode, createCommentVNode, useAttrs, unref, createBlock, resolveDynamicComponent, normalizeProps, Fragment, renderList, normalizeStyle, withKeys, withDirectives, toRef, resolveComponent, resolveDirective, toHandlers, withModifiers, isRef, guardReactiveProps } from \"vue\";\nimport { createPopper } from \"@popperjs/core\";\nvar commonjsGlobal = typeof globalThis !== \"undefined\" ? globalThis : typeof window !== \"undefined\" ? window : typeof global !== \"undefined\" ? global : typeof self !== \"undefined\" ? self : {};\nfunction getDefaultExportFromCjs(x) {\n return x && x.__esModule && Object.prototype.hasOwnProperty.call(x, \"default\") ? x[\"default\"] : x;\n}\nvar objectProto$g = Object.prototype;\nvar hasOwnProperty$d = objectProto$g.hasOwnProperty;\nfunction baseHas$1(object, key) {\n return object != null && hasOwnProperty$d.call(object, key);\n}\nvar _baseHas = baseHas$1;\nvar isArray$c = Array.isArray;\nvar isArray_1 = isArray$c;\nvar freeGlobal$1 = typeof commonjsGlobal == \"object\" && commonjsGlobal && commonjsGlobal.Object === Object && commonjsGlobal;\nvar _freeGlobal = freeGlobal$1;\nvar freeGlobal = _freeGlobal;\nvar freeSelf = typeof self == \"object\" && self && self.Object === Object && self;\nvar root$8 = freeGlobal || freeSelf || Function(\"return this\")();\nvar _root = root$8;\nvar root$7 = _root;\nvar Symbol$5 = root$7.Symbol;\nvar _Symbol = Symbol$5;\nvar Symbol$4 = _Symbol;\nvar objectProto$f = Object.prototype;\nvar hasOwnProperty$c = objectProto$f.hasOwnProperty;\nvar nativeObjectToString$1 = objectProto$f.toString;\nvar symToStringTag$1 = Symbol$4 ? Symbol$4.toStringTag : void 0;\nfunction getRawTag$1(value) {\n var isOwn = hasOwnProperty$c.call(value, symToStringTag$1), tag = value[symToStringTag$1];\n try {\n value[symToStringTag$1] = void 0;\n var unmasked = true;\n } catch (e) {\n }\n var result = nativeObjectToString$1.call(value);\n if (unmasked) {\n if (isOwn) {\n value[symToStringTag$1] = tag;\n } else {\n delete value[symToStringTag$1];\n }\n }\n return result;\n}\nvar _getRawTag = getRawTag$1;\nvar objectProto$e = Object.prototype;\nvar nativeObjectToString = objectProto$e.toString;\nfunction objectToString$1(value) {\n return nativeObjectToString.call(value);\n}\nvar _objectToString = objectToString$1;\nvar Symbol$3 = _Symbol, getRawTag = _getRawTag, objectToString = _objectToString;\nvar nullTag = \"[object Null]\", undefinedTag = \"[object Undefined]\";\nvar symToStringTag = Symbol$3 ? Symbol$3.toStringTag : void 0;\nfunction baseGetTag$a(value) {\n if (value == null) {\n return value === void 0 ? undefinedTag : nullTag;\n }\n return symToStringTag && symToStringTag in Object(value) ? getRawTag(value) : objectToString(value);\n}\nvar _baseGetTag = baseGetTag$a;\nfunction isObjectLike$b(value) {\n return value != null && typeof value == \"object\";\n}\nvar isObjectLike_1 = isObjectLike$b;\nvar baseGetTag$9 = _baseGetTag, isObjectLike$a = isObjectLike_1;\nvar symbolTag$1 = \"[object Symbol]\";\nfunction isSymbol$3(value) {\n return typeof value == \"symbol\" || isObjectLike$a(value) && baseGetTag$9(value) == symbolTag$1;\n}\nvar isSymbol_1 = isSymbol$3;\nvar isArray$b = isArray_1, isSymbol$2 = isSymbol_1;\nvar reIsDeepProp = /\\.|\\[(?:[^[\\]]*|([\"'])(?:(?!\\1)[^\\\\]|\\\\.)*?\\1)\\]/, reIsPlainProp = /^\\w*$/;\nfunction isKey$3(value, object) {\n if (isArray$b(value)) {\n return false;\n }\n var type = typeof value;\n if (type == \"number\" || type == \"symbol\" || type == \"boolean\" || value == null || isSymbol$2(value)) {\n return true;\n }\n return reIsPlainProp.test(value) || !reIsDeepProp.test(value) || object != null && value in Object(object);\n}\nvar _isKey = isKey$3;\nfunction isObject$a(value) {\n var type = typeof value;\n return value != null && (type == \"object\" || type == \"function\");\n}\nvar isObject_1 = isObject$a;\nvar baseGetTag$8 = _baseGetTag, isObject$9 = isObject_1;\nvar asyncTag = \"[object AsyncFunction]\", funcTag$1 = \"[object Function]\", genTag = \"[object GeneratorFunction]\", proxyTag = \"[object Proxy]\";\nfunction isFunction$3(value) {\n if (!isObject$9(value)) {\n return false;\n }\n var tag = baseGetTag$8(value);\n return tag == funcTag$1 || tag == genTag || tag == asyncTag || tag == proxyTag;\n}\nvar isFunction_1 = isFunction$3;\nconst isFunction$4 = /* @__PURE__ */ getDefaultExportFromCjs(isFunction_1);\nvar root$6 = _root;\nvar coreJsData$1 = root$6[\"__core-js_shared__\"];\nvar _coreJsData = coreJsData$1;\nvar coreJsData = _coreJsData;\nvar maskSrcKey = function() {\n var uid = /[^.]+$/.exec(coreJsData && coreJsData.keys && coreJsData.keys.IE_PROTO || \"\");\n return uid ? \"Symbol(src)_1.\" + uid : \"\";\n}();\nfunction isMasked$1(func) {\n return !!maskSrcKey && maskSrcKey in func;\n}\nvar _isMasked = isMasked$1;\nvar funcProto$2 = Function.prototype;\nvar funcToString$2 = funcProto$2.toString;\nfunction toSource$2(func) {\n if (func != null) {\n try {\n return funcToString$2.call(func);\n } catch (e) {\n }\n try {\n return func + \"\";\n } catch (e) {\n }\n }\n return \"\";\n}\nvar _toSource = toSource$2;\nvar isFunction$2 = isFunction_1, isMasked = _isMasked, isObject$8 = isObject_1, toSource$1 = _toSource;\nvar reRegExpChar = /[\\\\^$.*+?()[\\]{}|]/g;\nvar reIsHostCtor = /^\\[object .+?Constructor\\]$/;\nvar funcProto$1 = Function.prototype, objectProto$d = Object.prototype;\nvar funcToString$1 = funcProto$1.toString;\nvar hasOwnProperty$b = objectProto$d.hasOwnProperty;\nvar reIsNative = RegExp(\n \"^\" + funcToString$1.call(hasOwnProperty$b).replace(reRegExpChar, \"\\\\$&\").replace(/hasOwnProperty|(function).*?(?=\\\\\\()| for .+?(?=\\\\\\])/g, \"$1.*?\") + \"$\"\n);\nfunction baseIsNative$1(value) {\n if (!isObject$8(value) || isMasked(value)) {\n return false;\n }\n var pattern = isFunction$2(value) ? reIsNative : reIsHostCtor;\n return pattern.test(toSource$1(value));\n}\nvar _baseIsNative = baseIsNative$1;\nfunction getValue$1(object, key) {\n return object == null ? void 0 : object[key];\n}\nvar _getValue = getValue$1;\nvar baseIsNative = _baseIsNative, getValue = _getValue;\nfunction getNative$7(object, key) {\n var value = getValue(object, key);\n return baseIsNative(value) ? value : void 0;\n}\nvar _getNative = getNative$7;\nvar getNative$6 = _getNative;\nvar nativeCreate$4 = getNative$6(Object, \"create\");\nvar _nativeCreate = nativeCreate$4;\nvar nativeCreate$3 = _nativeCreate;\nfunction hashClear$1() {\n this.__data__ = nativeCreate$3 ? nativeCreate$3(null) : {};\n this.size = 0;\n}\nvar _hashClear = hashClear$1;\nfunction hashDelete$1(key) {\n var result = this.has(key) && delete this.__data__[key];\n this.size -= result ? 1 : 0;\n return result;\n}\nvar _hashDelete = hashDelete$1;\nvar nativeCreate$2 = _nativeCreate;\nvar HASH_UNDEFINED$2 = \"__lodash_hash_undefined__\";\nvar objectProto$c = Object.prototype;\nvar hasOwnProperty$a = objectProto$c.hasOwnProperty;\nfunction hashGet$1(key) {\n var data2 = this.__data__;\n if (nativeCreate$2) {\n var result = data2[key];\n return result === HASH_UNDEFINED$2 ? void 0 : result;\n }\n return hasOwnProperty$a.call(data2, key) ? data2[key] : void 0;\n}\nvar _hashGet = hashGet$1;\nvar nativeCreate$1 = _nativeCreate;\nvar objectProto$b = Object.prototype;\nvar hasOwnProperty$9 = objectProto$b.hasOwnProperty;\nfunction hashHas$1(key) {\n var data2 = this.__data__;\n return nativeCreate$1 ? data2[key] !== void 0 : hasOwnProperty$9.call(data2, key);\n}\nvar _hashHas = hashHas$1;\nvar nativeCreate = _nativeCreate;\nvar HASH_UNDEFINED$1 = \"__lodash_hash_undefined__\";\nfunction hashSet$1(key, value) {\n var data2 = this.__data__;\n this.size += this.has(key) ? 0 : 1;\n data2[key] = nativeCreate && value === void 0 ? HASH_UNDEFINED$1 : value;\n return this;\n}\nvar _hashSet = hashSet$1;\nvar hashClear = _hashClear, hashDelete = _hashDelete, hashGet = _hashGet, hashHas = _hashHas, hashSet = _hashSet;\nfunction Hash$1(entries) {\n var index2 = -1, length = entries == null ? 0 : entries.length;\n this.clear();\n while (++index2 < length) {\n var entry = entries[index2];\n this.set(entry[0], entry[1]);\n }\n}\nHash$1.prototype.clear = hashClear;\nHash$1.prototype[\"delete\"] = hashDelete;\nHash$1.prototype.get = hashGet;\nHash$1.prototype.has = hashHas;\nHash$1.prototype.set = hashSet;\nvar _Hash = Hash$1;\nfunction listCacheClear$1() {\n this.__data__ = [];\n this.size = 0;\n}\nvar _listCacheClear = listCacheClear$1;\nfunction eq$6(value, other) {\n return value === other || value !== value && other !== other;\n}\nvar eq_1 = eq$6;\nvar eq$5 = eq_1;\nfunction assocIndexOf$4(array, key) {\n var length = array.length;\n while (length--) {\n if (eq$5(array[length][0], key)) {\n return length;\n }\n }\n return -1;\n}\nvar _assocIndexOf = assocIndexOf$4;\nvar assocIndexOf$3 = _assocIndexOf;\nvar arrayProto = Array.prototype;\nvar splice = arrayProto.splice;\nfunction listCacheDelete$1(key) {\n var data2 = this.__data__, index2 = assocIndexOf$3(data2, key);\n if (index2 < 0) {\n return false;\n }\n var lastIndex = data2.length - 1;\n if (index2 == lastIndex) {\n data2.pop();\n } else {\n splice.call(data2, index2, 1);\n }\n --this.size;\n return true;\n}\nvar _listCacheDelete = listCacheDelete$1;\nvar assocIndexOf$2 = _assocIndexOf;\nfunction listCacheGet$1(key) {\n var data2 = this.__data__, index2 = assocIndexOf$2(data2, key);\n return index2 < 0 ? void 0 : data2[index2][1];\n}\nvar _listCacheGet = listCacheGet$1;\nvar assocIndexOf$1 = _assocIndexOf;\nfunction listCacheHas$1(key) {\n return assocIndexOf$1(this.__data__, key) > -1;\n}\nvar _listCacheHas = listCacheHas$1;\nvar assocIndexOf = _assocIndexOf;\nfunction listCacheSet$1(key, value) {\n var data2 = this.__data__, index2 = assocIndexOf(data2, key);\n if (index2 < 0) {\n ++this.size;\n data2.push([key, value]);\n } else {\n data2[index2][1] = value;\n }\n return this;\n}\nvar _listCacheSet = listCacheSet$1;\nvar listCacheClear = _listCacheClear, listCacheDelete = _listCacheDelete, listCacheGet = _listCacheGet, listCacheHas = _listCacheHas, listCacheSet = _listCacheSet;\nfunction ListCache$4(entries) {\n var index2 = -1, length = entries == null ? 0 : entries.length;\n this.clear();\n while (++index2 < length) {\n var entry = entries[index2];\n this.set(entry[0], entry[1]);\n }\n}\nListCache$4.prototype.clear = listCacheClear;\nListCache$4.prototype[\"delete\"] = listCacheDelete;\nListCache$4.prototype.get = listCacheGet;\nListCache$4.prototype.has = listCacheHas;\nListCache$4.prototype.set = listCacheSet;\nvar _ListCache = ListCache$4;\nvar getNative$5 = _getNative, root$5 = _root;\nvar Map$3 = getNative$5(root$5, \"Map\");\nvar _Map = Map$3;\nvar Hash = _Hash, ListCache$3 = _ListCache, Map$2 = _Map;\nfunction mapCacheClear$1() {\n this.size = 0;\n this.__data__ = {\n \"hash\": new Hash(),\n \"map\": new (Map$2 || ListCache$3)(),\n \"string\": new Hash()\n };\n}\nvar _mapCacheClear = mapCacheClear$1;\nfunction isKeyable$1(value) {\n var type = typeof value;\n return type == \"string\" || type == \"number\" || type == \"symbol\" || type == \"boolean\" ? value !== \"__proto__\" : value === null;\n}\nvar _isKeyable = isKeyable$1;\nvar isKeyable = _isKeyable;\nfunction getMapData$4(map, key) {\n var data2 = map.__data__;\n return isKeyable(key) ? data2[typeof key == \"string\" ? \"string\" : \"hash\"] : data2.map;\n}\nvar _getMapData = getMapData$4;\nvar getMapData$3 = _getMapData;\nfunction mapCacheDelete$1(key) {\n var result = getMapData$3(this, key)[\"delete\"](key);\n this.size -= result ? 1 : 0;\n return result;\n}\nvar _mapCacheDelete = mapCacheDelete$1;\nvar getMapData$2 = _getMapData;\nfunction mapCacheGet$1(key) {\n return getMapData$2(this, key).get(key);\n}\nvar _mapCacheGet = mapCacheGet$1;\nvar getMapData$1 = _getMapData;\nfunction mapCacheHas$1(key) {\n return getMapData$1(this, key).has(key);\n}\nvar _mapCacheHas = mapCacheHas$1;\nvar getMapData = _getMapData;\nfunction mapCacheSet$1(key, value) {\n var data2 = getMapData(this, key), size = data2.size;\n data2.set(key, value);\n this.size += data2.size == size ? 0 : 1;\n return this;\n}\nvar _mapCacheSet = mapCacheSet$1;\nvar mapCacheClear = _mapCacheClear, mapCacheDelete = _mapCacheDelete, mapCacheGet = _mapCacheGet, mapCacheHas = _mapCacheHas, mapCacheSet = _mapCacheSet;\nfunction MapCache$3(entries) {\n var index2 = -1, length = entries == null ? 0 : entries.length;\n this.clear();\n while (++index2 < length) {\n var entry = entries[index2];\n this.set(entry[0], entry[1]);\n }\n}\nMapCache$3.prototype.clear = mapCacheClear;\nMapCache$3.prototype[\"delete\"] = mapCacheDelete;\nMapCache$3.prototype.get = mapCacheGet;\nMapCache$3.prototype.has = mapCacheHas;\nMapCache$3.prototype.set = mapCacheSet;\nvar _MapCache = MapCache$3;\nvar MapCache$2 = _MapCache;\nvar FUNC_ERROR_TEXT = \"Expected a function\";\nfunction memoize$1(func, resolver) {\n if (typeof func != \"function\" || resolver != null && typeof resolver != \"function\") {\n throw new TypeError(FUNC_ERROR_TEXT);\n }\n var memoized = function() {\n var args = arguments, key = resolver ? resolver.apply(this, args) : args[0], cache = memoized.cache;\n if (cache.has(key)) {\n return cache.get(key);\n }\n var result = func.apply(this, args);\n memoized.cache = cache.set(key, result) || cache;\n return result;\n };\n memoized.cache = new (memoize$1.Cache || MapCache$2)();\n return memoized;\n}\nmemoize$1.Cache = MapCache$2;\nvar memoize_1 = memoize$1;\nvar memoize = memoize_1;\nvar MAX_MEMOIZE_SIZE = 500;\nfunction memoizeCapped$1(func) {\n var result = memoize(func, function(key) {\n if (cache.size === MAX_MEMOIZE_SIZE) {\n cache.clear();\n }\n return key;\n });\n var cache = result.cache;\n return result;\n}\nvar _memoizeCapped = memoizeCapped$1;\nvar memoizeCapped = _memoizeCapped;\nvar rePropName = /[^.[\\]]+|\\[(?:(-?\\d+(?:\\.\\d+)?)|([\"'])((?:(?!\\2)[^\\\\]|\\\\.)*?)\\2)\\]|(?=(?:\\.|\\[\\])(?:\\.|\\[\\]|$))/g;\nvar reEscapeChar = /\\\\(\\\\)?/g;\nvar stringToPath$1 = memoizeCapped(function(string) {\n var result = [];\n if (string.charCodeAt(0) === 46) {\n result.push(\"\");\n }\n string.replace(rePropName, function(match, number, quote, subString) {\n result.push(quote ? subString.replace(reEscapeChar, \"$1\") : number || match);\n });\n return result;\n});\nvar _stringToPath = stringToPath$1;\nfunction arrayMap$1(array, iteratee) {\n var index2 = -1, length = array == null ? 0 : array.length, result = Array(length);\n while (++index2 < length) {\n result[index2] = iteratee(array[index2], index2, array);\n }\n return result;\n}\nvar _arrayMap = arrayMap$1;\nvar Symbol$2 = _Symbol, arrayMap = _arrayMap, isArray$a = isArray_1, isSymbol$1 = isSymbol_1;\nvar INFINITY$1 = 1 / 0;\nvar symbolProto$1 = Symbol$2 ? Symbol$2.prototype : void 0, symbolToString = symbolProto$1 ? symbolProto$1.toString : void 0;\nfunction baseToString$1(value) {\n if (typeof value == \"string\") {\n return value;\n }\n if (isArray$a(value)) {\n return arrayMap(value, baseToString$1) + \"\";\n }\n if (isSymbol$1(value)) {\n return symbolToString ? symbolToString.call(value) : \"\";\n }\n var result = value + \"\";\n return result == \"0\" && 1 / value == -INFINITY$1 ? \"-0\" : result;\n}\nvar _baseToString = baseToString$1;\nvar baseToString = _baseToString;\nfunction toString$1(value) {\n return value == null ? \"\" : baseToString(value);\n}\nvar toString_1 = toString$1;\nvar isArray$9 = isArray_1, isKey$2 = _isKey, stringToPath = _stringToPath, toString = toString_1;\nfunction castPath$2(value, object) {\n if (isArray$9(value)) {\n return value;\n }\n return isKey$2(value, object) ? [value] : stringToPath(toString(value));\n}\nvar _castPath = castPath$2;\nvar baseGetTag$7 = _baseGetTag, isObjectLike$9 = isObjectLike_1;\nvar argsTag$2 = \"[object Arguments]\";\nfunction baseIsArguments$1(value) {\n return isObjectLike$9(value) && baseGetTag$7(value) == argsTag$2;\n}\nvar _baseIsArguments = baseIsArguments$1;\nvar baseIsArguments = _baseIsArguments, isObjectLike$8 = isObjectLike_1;\nvar objectProto$a = Object.prototype;\nvar hasOwnProperty$8 = objectProto$a.hasOwnProperty;\nvar propertyIsEnumerable$1 = objectProto$a.propertyIsEnumerable;\nvar isArguments$3 = baseIsArguments(function() {\n return arguments;\n}()) ? baseIsArguments : function(value) {\n return isObjectLike$8(value) && hasOwnProperty$8.call(value, \"callee\") && !propertyIsEnumerable$1.call(value, \"callee\");\n};\nvar isArguments_1 = isArguments$3;\nvar MAX_SAFE_INTEGER$1 = 9007199254740991;\nvar reIsUint = /^(?:0|[1-9]\\d*)$/;\nfunction isIndex$3(value, length) {\n var type = typeof value;\n length = length == null ? MAX_SAFE_INTEGER$1 : length;\n return !!length && (type == \"number\" || type != \"symbol\" && reIsUint.test(value)) && (value > -1 && value % 1 == 0 && value < length);\n}\nvar _isIndex = isIndex$3;\nvar MAX_SAFE_INTEGER = 9007199254740991;\nfunction isLength$3(value) {\n return typeof value == \"number\" && value > -1 && value % 1 == 0 && value <= MAX_SAFE_INTEGER;\n}\nvar isLength_1 = isLength$3;\nvar isSymbol = isSymbol_1;\nvar INFINITY = 1 / 0;\nfunction toKey$4(value) {\n if (typeof value == \"string\" || isSymbol(value)) {\n return value;\n }\n var result = value + \"\";\n return result == \"0\" && 1 / value == -INFINITY ? \"-0\" : result;\n}\nvar _toKey = toKey$4;\nvar castPath$1 = _castPath, isArguments$2 = isArguments_1, isArray$8 = isArray_1, isIndex$2 = _isIndex, isLength$2 = isLength_1, toKey$3 = _toKey;\nfunction hasPath$2(object, path, hasFunc) {\n path = castPath$1(path, object);\n var index2 = -1, length = path.length, result = false;\n while (++index2 < length) {\n var key = toKey$3(path[index2]);\n if (!(result = object != null && hasFunc(object, key))) {\n break;\n }\n object = object[key];\n }\n if (result || ++index2 != length) {\n return result;\n }\n length = object == null ? 0 : object.length;\n return !!length && isLength$2(length) && isIndex$2(key, length) && (isArray$8(object) || isArguments$2(object));\n}\nvar _hasPath = hasPath$2;\nvar baseHas = _baseHas, hasPath$1 = _hasPath;\nfunction has$1(object, path) {\n return object != null && hasPath$1(object, path, baseHas);\n}\nvar has_1 = has$1;\nconst _has = /* @__PURE__ */ getDefaultExportFromCjs(has_1);\nvar baseGetTag$6 = _baseGetTag, isObjectLike$7 = isObjectLike_1;\nvar dateTag$2 = \"[object Date]\";\nfunction baseIsDate$1(value) {\n return isObjectLike$7(value) && baseGetTag$6(value) == dateTag$2;\n}\nvar _baseIsDate = baseIsDate$1;\nfunction baseUnary$2(func) {\n return function(value) {\n return func(value);\n };\n}\nvar _baseUnary = baseUnary$2;\nvar _nodeUtil = { exports: {} };\n_nodeUtil.exports;\n(function(module, exports) {\n var freeGlobal2 = _freeGlobal;\n var freeExports = exports && !exports.nodeType && exports;\n var freeModule = freeExports && true && module && !module.nodeType && module;\n var moduleExports = freeModule && freeModule.exports === freeExports;\n var freeProcess = moduleExports && freeGlobal2.process;\n var nodeUtil2 = function() {\n try {\n var types = freeModule && freeModule.require && freeModule.require(\"util\").types;\n if (types) {\n return types;\n }\n return freeProcess && freeProcess.binding && freeProcess.binding(\"util\");\n } catch (e) {\n }\n }();\n module.exports = nodeUtil2;\n})(_nodeUtil, _nodeUtil.exports);\nvar _nodeUtilExports = _nodeUtil.exports;\nvar baseIsDate = _baseIsDate, baseUnary$1 = _baseUnary, nodeUtil$1 = _nodeUtilExports;\nvar nodeIsDate = nodeUtil$1 && nodeUtil$1.isDate;\nvar isDate$1 = nodeIsDate ? baseUnary$1(nodeIsDate) : baseIsDate;\nvar isDate_1 = isDate$1;\nconst _isDate = /* @__PURE__ */ getDefaultExportFromCjs(isDate_1);\nvar baseGetTag$5 = _baseGetTag, isArray$7 = isArray_1, isObjectLike$6 = isObjectLike_1;\nvar stringTag$2 = \"[object String]\";\nfunction isString(value) {\n return typeof value == \"string\" || !isArray$7(value) && isObjectLike$6(value) && baseGetTag$5(value) == stringTag$2;\n}\nvar isString_1 = isString;\nconst isString$1 = /* @__PURE__ */ getDefaultExportFromCjs(isString_1);\nfunction arraySome$2(array, predicate) {\n var index2 = -1, length = array == null ? 0 : array.length;\n while (++index2 < length) {\n if (predicate(array[index2], index2, array)) {\n return true;\n }\n }\n return false;\n}\nvar _arraySome = arraySome$2;\nvar ListCache$2 = _ListCache;\nfunction stackClear$1() {\n this.__data__ = new ListCache$2();\n this.size = 0;\n}\nvar _stackClear = stackClear$1;\nfunction stackDelete$1(key) {\n var data2 = this.__data__, result = data2[\"delete\"](key);\n this.size = data2.size;\n return result;\n}\nvar _stackDelete = stackDelete$1;\nfunction stackGet$1(key) {\n return this.__data__.get(key);\n}\nvar _stackGet = stackGet$1;\nfunction stackHas$1(key) {\n return this.__data__.has(key);\n}\nvar _stackHas = stackHas$1;\nvar ListCache$1 = _ListCache, Map$1 = _Map, MapCache$1 = _MapCache;\nvar LARGE_ARRAY_SIZE = 200;\nfunction stackSet$1(key, value) {\n var data2 = this.__data__;\n if (data2 instanceof ListCache$1) {\n var pairs = data2.__data__;\n if (!Map$1 || pairs.length < LARGE_ARRAY_SIZE - 1) {\n pairs.push([key, value]);\n this.size = ++data2.size;\n return this;\n }\n data2 = this.__data__ = new MapCache$1(pairs);\n }\n data2.set(key, value);\n this.size = data2.size;\n return this;\n}\nvar _stackSet = stackSet$1;\nvar ListCache = _ListCache, stackClear = _stackClear, stackDelete = _stackDelete, stackGet = _stackGet, stackHas = _stackHas, stackSet = _stackSet;\nfunction Stack$3(entries) {\n var data2 = this.__data__ = new ListCache(entries);\n this.size = data2.size;\n}\nStack$3.prototype.clear = stackClear;\nStack$3.prototype[\"delete\"] = stackDelete;\nStack$3.prototype.get = stackGet;\nStack$3.prototype.has = stackHas;\nStack$3.prototype.set = stackSet;\nvar _Stack = Stack$3;\nvar HASH_UNDEFINED = \"__lodash_hash_undefined__\";\nfunction setCacheAdd$1(value) {\n this.__data__.set(value, HASH_UNDEFINED);\n return this;\n}\nvar _setCacheAdd = setCacheAdd$1;\nfunction setCacheHas$1(value) {\n return this.__data__.has(value);\n}\nvar _setCacheHas = setCacheHas$1;\nvar MapCache = _MapCache, setCacheAdd = _setCacheAdd, setCacheHas = _setCacheHas;\nfunction SetCache$1(values) {\n var index2 = -1, length = values == null ? 0 : values.length;\n this.__data__ = new MapCache();\n while (++index2 < length) {\n this.add(values[index2]);\n }\n}\nSetCache$1.prototype.add = SetCache$1.prototype.push = setCacheAdd;\nSetCache$1.prototype.has = setCacheHas;\nvar _SetCache = SetCache$1;\nfunction cacheHas$1(cache, key) {\n return cache.has(key);\n}\nvar _cacheHas = cacheHas$1;\nvar SetCache = _SetCache, arraySome$1 = _arraySome, cacheHas = _cacheHas;\nvar COMPARE_PARTIAL_FLAG$5 = 1, COMPARE_UNORDERED_FLAG$3 = 2;\nfunction equalArrays$2(array, other, bitmask, customizer, equalFunc, stack) {\n var isPartial = bitmask & COMPARE_PARTIAL_FLAG$5, arrLength = array.length, othLength = other.length;\n if (arrLength != othLength && !(isPartial && othLength > arrLength)) {\n return false;\n }\n var arrStacked = stack.get(array);\n var othStacked = stack.get(other);\n if (arrStacked && othStacked) {\n return arrStacked == other && othStacked == array;\n }\n var index2 = -1, result = true, seen = bitmask & COMPARE_UNORDERED_FLAG$3 ? new SetCache() : void 0;\n stack.set(array, other);\n stack.set(other, array);\n while (++index2 < arrLength) {\n var arrValue = array[index2], othValue = other[index2];\n if (customizer) {\n var compared = isPartial ? customizer(othValue, arrValue, index2, other, array, stack) : customizer(arrValue, othValue, index2, array, other, stack);\n }\n if (compared !== void 0) {\n if (compared) {\n continue;\n }\n result = false;\n break;\n }\n if (seen) {\n if (!arraySome$1(other, function(othValue2, othIndex) {\n if (!cacheHas(seen, othIndex) && (arrValue === othValue2 || equalFunc(arrValue, othValue2, bitmask, customizer, stack))) {\n return seen.push(othIndex);\n }\n })) {\n result = false;\n break;\n }\n } else if (!(arrValue === othValue || equalFunc(arrValue, othValue, bitmask, customizer, stack))) {\n result = false;\n break;\n }\n }\n stack[\"delete\"](array);\n stack[\"delete\"](other);\n return result;\n}\nvar _equalArrays = equalArrays$2;\nvar root$4 = _root;\nvar Uint8Array$2 = root$4.Uint8Array;\nvar _Uint8Array = Uint8Array$2;\nfunction mapToArray$1(map) {\n var index2 = -1, result = Array(map.size);\n map.forEach(function(value, key) {\n result[++index2] = [key, value];\n });\n return result;\n}\nvar _mapToArray = mapToArray$1;\nfunction setToArray$1(set) {\n var index2 = -1, result = Array(set.size);\n set.forEach(function(value) {\n result[++index2] = value;\n });\n return result;\n}\nvar _setToArray = setToArray$1;\nvar Symbol$1 = _Symbol, Uint8Array$1 = _Uint8Array, eq$4 = eq_1, equalArrays$1 = _equalArrays, mapToArray = _mapToArray, setToArray = _setToArray;\nvar COMPARE_PARTIAL_FLAG$4 = 1, COMPARE_UNORDERED_FLAG$2 = 2;\nvar boolTag$2 = \"[object Boolean]\", dateTag$1 = \"[object Date]\", errorTag$1 = \"[object Error]\", mapTag$2 = \"[object Map]\", numberTag$2 = \"[object Number]\", regexpTag$1 = \"[object RegExp]\", setTag$2 = \"[object Set]\", stringTag$1 = \"[object String]\", symbolTag = \"[object Symbol]\";\nvar arrayBufferTag$1 = \"[object ArrayBuffer]\", dataViewTag$2 = \"[object DataView]\";\nvar symbolProto = Symbol$1 ? Symbol$1.prototype : void 0, symbolValueOf = symbolProto ? symbolProto.valueOf : void 0;\nfunction equalByTag$1(object, other, tag, bitmask, customizer, equalFunc, stack) {\n switch (tag) {\n case dataViewTag$2:\n if (object.byteLength != other.byteLength || object.byteOffset != other.byteOffset) {\n return false;\n }\n object = object.buffer;\n other = other.buffer;\n case arrayBufferTag$1:\n if (object.byteLength != other.byteLength || !equalFunc(new Uint8Array$1(object), new Uint8Array$1(other))) {\n return false;\n }\n return true;\n case boolTag$2:\n case dateTag$1:\n case numberTag$2:\n return eq$4(+object, +other);\n case errorTag$1:\n return object.name == other.name && object.message == other.message;\n case regexpTag$1:\n case stringTag$1:\n return object == other + \"\";\n case mapTag$2:\n var convert = mapToArray;\n case setTag$2:\n var isPartial = bitmask & COMPARE_PARTIAL_FLAG$4;\n convert || (convert = setToArray);\n if (object.size != other.size && !isPartial) {\n return false;\n }\n var stacked = stack.get(object);\n if (stacked) {\n return stacked == other;\n }\n bitmask |= COMPARE_UNORDERED_FLAG$2;\n stack.set(object, other);\n var result = equalArrays$1(convert(object), convert(other), bitmask, customizer, equalFunc, stack);\n stack[\"delete\"](object);\n return result;\n case symbolTag:\n if (symbolValueOf) {\n return symbolValueOf.call(object) == symbolValueOf.call(other);\n }\n }\n return false;\n}\nvar _equalByTag = equalByTag$1;\nfunction arrayPush$1(array, values) {\n var index2 = -1, length = values.length, offset = array.length;\n while (++index2 < length) {\n array[offset + index2] = values[index2];\n }\n return array;\n}\nvar _arrayPush = arrayPush$1;\nvar arrayPush = _arrayPush, isArray$6 = isArray_1;\nfunction baseGetAllKeys$1(object, keysFunc, symbolsFunc) {\n var result = keysFunc(object);\n return isArray$6(object) ? result : arrayPush(result, symbolsFunc(object));\n}\nvar _baseGetAllKeys = baseGetAllKeys$1;\nfunction arrayFilter$1(array, predicate) {\n var index2 = -1, length = array == null ? 0 : array.length, resIndex = 0, result = [];\n while (++index2 < length) {\n var value = array[index2];\n if (predicate(value, index2, array)) {\n result[resIndex++] = value;\n }\n }\n return result;\n}\nvar _arrayFilter = arrayFilter$1;\nfunction stubArray$1() {\n return [];\n}\nvar stubArray_1 = stubArray$1;\nvar arrayFilter = _arrayFilter, stubArray = stubArray_1;\nvar objectProto$9 = Object.prototype;\nvar propertyIsEnumerable = objectProto$9.propertyIsEnumerable;\nvar nativeGetSymbols = Object.getOwnPropertySymbols;\nvar getSymbols$1 = !nativeGetSymbols ? stubArray : function(object) {\n if (object == null) {\n return [];\n }\n object = Object(object);\n return arrayFilter(nativeGetSymbols(object), function(symbol) {\n return propertyIsEnumerable.call(object, symbol);\n });\n};\nvar _getSymbols = getSymbols$1;\nfunction baseTimes$1(n, iteratee) {\n var index2 = -1, result = Array(n);\n while (++index2 < n) {\n result[index2] = iteratee(index2);\n }\n return result;\n}\nvar _baseTimes = baseTimes$1;\nvar isBuffer$3 = { exports: {} };\nfunction stubFalse() {\n return false;\n}\nvar stubFalse_1 = stubFalse;\nisBuffer$3.exports;\n(function(module, exports) {\n var root2 = _root, stubFalse2 = stubFalse_1;\n var freeExports = exports && !exports.nodeType && exports;\n var freeModule = freeExports && true && module && !module.nodeType && module;\n var moduleExports = freeModule && freeModule.exports === freeExports;\n var Buffer2 = moduleExports ? root2.Buffer : void 0;\n var nativeIsBuffer = Buffer2 ? Buffer2.isBuffer : void 0;\n var isBuffer2 = nativeIsBuffer || stubFalse2;\n module.exports = isBuffer2;\n})(isBuffer$3, isBuffer$3.exports);\nvar isBufferExports = isBuffer$3.exports;\nvar baseGetTag$4 = _baseGetTag, isLength$1 = isLength_1, isObjectLike$5 = isObjectLike_1;\nvar argsTag$1 = \"[object Arguments]\", arrayTag$1 = \"[object Array]\", boolTag$1 = \"[object Boolean]\", dateTag = \"[object Date]\", errorTag = \"[object Error]\", funcTag = \"[object Function]\", mapTag$1 = \"[object Map]\", numberTag$1 = \"[object Number]\", objectTag$3 = \"[object Object]\", regexpTag = \"[object RegExp]\", setTag$1 = \"[object Set]\", stringTag = \"[object String]\", weakMapTag$1 = \"[object WeakMap]\";\nvar arrayBufferTag = \"[object ArrayBuffer]\", dataViewTag$1 = \"[object DataView]\", float32Tag = \"[object Float32Array]\", float64Tag = \"[object Float64Array]\", int8Tag = \"[object Int8Array]\", int16Tag = \"[object Int16Array]\", int32Tag = \"[object Int32Array]\", uint8Tag = \"[object Uint8Array]\", uint8ClampedTag = \"[object Uint8ClampedArray]\", uint16Tag = \"[object Uint16Array]\", uint32Tag = \"[object Uint32Array]\";\nvar typedArrayTags = {};\ntypedArrayTags[float32Tag] = typedArrayTags[float64Tag] = typedArrayTags[int8Tag] = typedArrayTags[int16Tag] = typedArrayTags[int32Tag] = typedArrayTags[uint8Tag] = typedArrayTags[uint8ClampedTag] = typedArrayTags[uint16Tag] = typedArrayTags[uint32Tag] = true;\ntypedArrayTags[argsTag$1] = typedArrayTags[arrayTag$1] = typedArrayTags[arrayBufferTag] = typedArrayTags[boolTag$1] = typedArrayTags[dataViewTag$1] = typedArrayTags[dateTag] = typedArrayTags[errorTag] = typedArrayTags[funcTag] = typedArrayTags[mapTag$1] = typedArrayTags[numberTag$1] = typedArrayTags[objectTag$3] = typedArrayTags[regexpTag] = typedArrayTags[setTag$1] = typedArrayTags[stringTag] = typedArrayTags[weakMapTag$1] = false;\nfunction baseIsTypedArray$1(value) {\n return isObjectLike$5(value) && isLength$1(value.length) && !!typedArrayTags[baseGetTag$4(value)];\n}\nvar _baseIsTypedArray = baseIsTypedArray$1;\nvar baseIsTypedArray = _baseIsTypedArray, baseUnary = _baseUnary, nodeUtil = _nodeUtilExports;\nvar nodeIsTypedArray = nodeUtil && nodeUtil.isTypedArray;\nvar isTypedArray$3 = nodeIsTypedArray ? baseUnary(nodeIsTypedArray) : baseIsTypedArray;\nvar isTypedArray_1 = isTypedArray$3;\nvar baseTimes = _baseTimes, isArguments$1 = isArguments_1, isArray$5 = isArray_1, isBuffer$2 = isBufferExports, isIndex$1 = _isIndex, isTypedArray$2 = isTypedArray_1;\nvar objectProto$8 = Object.prototype;\nvar hasOwnProperty$7 = objectProto$8.hasOwnProperty;\nfunction arrayLikeKeys$2(value, inherited) {\n var isArr = isArray$5(value), isArg = !isArr && isArguments$1(value), isBuff = !isArr && !isArg && isBuffer$2(value), isType = !isArr && !isArg && !isBuff && isTypedArray$2(value), skipIndexes = isArr || isArg || isBuff || isType, result = skipIndexes ? baseTimes(value.length, String) : [], length = result.length;\n for (var key in value) {\n if ((inherited || hasOwnProperty$7.call(value, key)) && !(skipIndexes && // Safari 9 has enumerable `arguments.length` in strict mode.\n (key == \"length\" || // Node.js 0.10 has enumerable non-index properties on buffers.\n isBuff && (key == \"offset\" || key == \"parent\") || // PhantomJS 2 has enumerable non-index properties on typed arrays.\n isType && (key == \"buffer\" || key == \"byteLength\" || key == \"byteOffset\") || // Skip index properties.\n isIndex$1(key, length)))) {\n result.push(key);\n }\n }\n return result;\n}\nvar _arrayLikeKeys = arrayLikeKeys$2;\nvar objectProto$7 = Object.prototype;\nfunction isPrototype$3(value) {\n var Ctor = value && value.constructor, proto = typeof Ctor == \"function\" && Ctor.prototype || objectProto$7;\n return value === proto;\n}\nvar _isPrototype = isPrototype$3;\nfunction overArg$2(func, transform) {\n return function(arg) {\n return func(transform(arg));\n };\n}\nvar _overArg = overArg$2;\nvar overArg$1 = _overArg;\nvar nativeKeys$1 = overArg$1(Object.keys, Object);\nvar _nativeKeys = nativeKeys$1;\nvar isPrototype$2 = _isPrototype, nativeKeys = _nativeKeys;\nvar objectProto$6 = Object.prototype;\nvar hasOwnProperty$6 = objectProto$6.hasOwnProperty;\nfunction baseKeys$1(object) {\n if (!isPrototype$2(object)) {\n return nativeKeys(object);\n }\n var result = [];\n for (var key in Object(object)) {\n if (hasOwnProperty$6.call(object, key) && key != \"constructor\") {\n result.push(key);\n }\n }\n return result;\n}\nvar _baseKeys = baseKeys$1;\nvar isFunction$1 = isFunction_1, isLength = isLength_1;\nfunction isArrayLike$5(value) {\n return value != null && isLength(value.length) && !isFunction$1(value);\n}\nvar isArrayLike_1 = isArrayLike$5;\nvar arrayLikeKeys$1 = _arrayLikeKeys, baseKeys = _baseKeys, isArrayLike$4 = isArrayLike_1;\nfunction keys$3(object) {\n return isArrayLike$4(object) ? arrayLikeKeys$1(object) : baseKeys(object);\n}\nvar keys_1 = keys$3;\nvar baseGetAllKeys = _baseGetAllKeys, getSymbols = _getSymbols, keys$2 = keys_1;\nfunction getAllKeys$1(object) {\n return baseGetAllKeys(object, keys$2, getSymbols);\n}\nvar _getAllKeys = getAllKeys$1;\nvar getAllKeys = _getAllKeys;\nvar COMPARE_PARTIAL_FLAG$3 = 1;\nvar objectProto$5 = Object.prototype;\nvar hasOwnProperty$5 = objectProto$5.hasOwnProperty;\nfunction equalObjects$1(object, other, bitmask, customizer, equalFunc, stack) {\n var isPartial = bitmask & COMPARE_PARTIAL_FLAG$3, objProps = getAllKeys(object), objLength = objProps.length, othProps = getAllKeys(other), othLength = othProps.length;\n if (objLength != othLength && !isPartial) {\n return false;\n }\n var index2 = objLength;\n while (index2--) {\n var key = objProps[index2];\n if (!(isPartial ? key in other : hasOwnProperty$5.call(other, key))) {\n return false;\n }\n }\n var objStacked = stack.get(object);\n var othStacked = stack.get(other);\n if (objStacked && othStacked) {\n return objStacked == other && othStacked == object;\n }\n var result = true;\n stack.set(object, other);\n stack.set(other, object);\n var skipCtor = isPartial;\n while (++index2 < objLength) {\n key = objProps[index2];\n var objValue = object[key], othValue = other[key];\n if (customizer) {\n var compared = isPartial ? customizer(othValue, objValue, key, other, object, stack) : customizer(objValue, othValue, key, object, other, stack);\n }\n if (!(compared === void 0 ? objValue === othValue || equalFunc(objValue, othValue, bitmask, customizer, stack) : compared)) {\n result = false;\n break;\n }\n skipCtor || (skipCtor = key == \"constructor\");\n }\n if (result && !skipCtor) {\n var objCtor = object.constructor, othCtor = other.constructor;\n if (objCtor != othCtor && (\"constructor\" in object && \"constructor\" in other) && !(typeof objCtor == \"function\" && objCtor instanceof objCtor && typeof othCtor == \"function\" && othCtor instanceof othCtor)) {\n result = false;\n }\n }\n stack[\"delete\"](object);\n stack[\"delete\"](other);\n return result;\n}\nvar _equalObjects = equalObjects$1;\nvar getNative$4 = _getNative, root$3 = _root;\nvar DataView$1 = getNative$4(root$3, \"DataView\");\nvar _DataView = DataView$1;\nvar getNative$3 = _getNative, root$2 = _root;\nvar Promise$2 = getNative$3(root$2, \"Promise\");\nvar _Promise = Promise$2;\nvar getNative$2 = _getNative, root$1 = _root;\nvar Set$1 = getNative$2(root$1, \"Set\");\nvar _Set = Set$1;\nvar getNative$1 = _getNative, root = _root;\nvar WeakMap$1 = getNative$1(root, \"WeakMap\");\nvar _WeakMap = WeakMap$1;\nvar DataView = _DataView, Map = _Map, Promise$1 = _Promise, Set = _Set, WeakMap = _WeakMap, baseGetTag$3 = _baseGetTag, toSource = _toSource;\nvar mapTag = \"[object Map]\", objectTag$2 = \"[object Object]\", promiseTag = \"[object Promise]\", setTag = \"[object Set]\", weakMapTag = \"[object WeakMap]\";\nvar dataViewTag = \"[object DataView]\";\nvar dataViewCtorString = toSource(DataView), mapCtorString = toSource(Map), promiseCtorString = toSource(Promise$1), setCtorString = toSource(Set), weakMapCtorString = toSource(WeakMap);\nvar getTag$1 = baseGetTag$3;\nif (DataView && getTag$1(new DataView(new ArrayBuffer(1))) != dataViewTag || Map && getTag$1(new Map()) != mapTag || Promise$1 && getTag$1(Promise$1.resolve()) != promiseTag || Set && getTag$1(new Set()) != setTag || WeakMap && getTag$1(new WeakMap()) != weakMapTag) {\n getTag$1 = function(value) {\n var result = baseGetTag$3(value), Ctor = result == objectTag$2 ? value.constructor : void 0, ctorString = Ctor ? toSource(Ctor) : \"\";\n if (ctorString) {\n switch (ctorString) {\n case dataViewCtorString:\n return dataViewTag;\n case mapCtorString:\n return mapTag;\n case promiseCtorString:\n return promiseTag;\n case setCtorString:\n return setTag;\n case weakMapCtorString:\n return weakMapTag;\n }\n }\n return result;\n };\n}\nvar _getTag = getTag$1;\nvar Stack$2 = _Stack, equalArrays = _equalArrays, equalByTag = _equalByTag, equalObjects = _equalObjects, getTag = _getTag, isArray$4 = isArray_1, isBuffer$1 = isBufferExports, isTypedArray$1 = isTypedArray_1;\nvar COMPARE_PARTIAL_FLAG$2 = 1;\nvar argsTag = \"[object Arguments]\", arrayTag = \"[object Array]\", objectTag$1 = \"[object Object]\";\nvar objectProto$4 = Object.prototype;\nvar hasOwnProperty$4 = objectProto$4.hasOwnProperty;\nfunction baseIsEqualDeep$1(object, other, bitmask, customizer, equalFunc, stack) {\n var objIsArr = isArray$4(object), othIsArr = isArray$4(other), objTag = objIsArr ? arrayTag : getTag(object), othTag = othIsArr ? arrayTag : getTag(other);\n objTag = objTag == argsTag ? objectTag$1 : objTag;\n othTag = othTag == argsTag ? objectTag$1 : othTag;\n var objIsObj = objTag == objectTag$1, othIsObj = othTag == objectTag$1, isSameTag = objTag == othTag;\n if (isSameTag && isBuffer$1(object)) {\n if (!isBuffer$1(other)) {\n return false;\n }\n objIsArr = true;\n objIsObj = false;\n }\n if (isSameTag && !objIsObj) {\n stack || (stack = new Stack$2());\n return objIsArr || isTypedArray$1(object) ? equalArrays(object, other, bitmask, customizer, equalFunc, stack) : equalByTag(object, other, objTag, bitmask, customizer, equalFunc, stack);\n }\n if (!(bitmask & COMPARE_PARTIAL_FLAG$2)) {\n var objIsWrapped = objIsObj && hasOwnProperty$4.call(object, \"__wrapped__\"), othIsWrapped = othIsObj && hasOwnProperty$4.call(other, \"__wrapped__\");\n if (objIsWrapped || othIsWrapped) {\n var objUnwrapped = objIsWrapped ? object.value() : object, othUnwrapped = othIsWrapped ? other.value() : other;\n stack || (stack = new Stack$2());\n return equalFunc(objUnwrapped, othUnwrapped, bitmask, customizer, stack);\n }\n }\n if (!isSameTag) {\n return false;\n }\n stack || (stack = new Stack$2());\n return equalObjects(object, other, bitmask, customizer, equalFunc, stack);\n}\nvar _baseIsEqualDeep = baseIsEqualDeep$1;\nvar baseIsEqualDeep = _baseIsEqualDeep, isObjectLike$4 = isObjectLike_1;\nfunction baseIsEqual$2(value, other, bitmask, customizer, stack) {\n if (value === other) {\n return true;\n }\n if (value == null || other == null || !isObjectLike$4(value) && !isObjectLike$4(other)) {\n return value !== value && other !== other;\n }\n return baseIsEqualDeep(value, other, bitmask, customizer, baseIsEqual$2, stack);\n}\nvar _baseIsEqual = baseIsEqual$2;\nvar Stack$1 = _Stack, baseIsEqual$1 = _baseIsEqual;\nvar COMPARE_PARTIAL_FLAG$1 = 1, COMPARE_UNORDERED_FLAG$1 = 2;\nfunction baseIsMatch$1(object, source, matchData, customizer) {\n var index2 = matchData.length, length = index2, noCustomizer = !customizer;\n if (object == null) {\n return !length;\n }\n object = Object(object);\n while (index2--) {\n var data2 = matchData[index2];\n if (noCustomizer && data2[2] ? data2[1] !== object[data2[0]] : !(data2[0] in object)) {\n return false;\n }\n }\n while (++index2 < length) {\n data2 = matchData[index2];\n var key = data2[0], objValue = object[key], srcValue = data2[1];\n if (noCustomizer && data2[2]) {\n if (objValue === void 0 && !(key in object)) {\n return false;\n }\n } else {\n var stack = new Stack$1();\n if (customizer) {\n var result = customizer(objValue, srcValue, key, object, source, stack);\n }\n if (!(result === void 0 ? baseIsEqual$1(srcValue, objValue, COMPARE_PARTIAL_FLAG$1 | COMPARE_UNORDERED_FLAG$1, customizer, stack) : result)) {\n return false;\n }\n }\n }\n return true;\n}\nvar _baseIsMatch = baseIsMatch$1;\nvar isObject$7 = isObject_1;\nfunction isStrictComparable$2(value) {\n return value === value && !isObject$7(value);\n}\nvar _isStrictComparable = isStrictComparable$2;\nvar isStrictComparable$1 = _isStrictComparable, keys$1 = keys_1;\nfunction getMatchData$1(object) {\n var result = keys$1(object), length = result.length;\n while (length--) {\n var key = result[length], value = object[key];\n result[length] = [key, value, isStrictComparable$1(value)];\n }\n return result;\n}\nvar _getMatchData = getMatchData$1;\nfunction matchesStrictComparable$2(key, srcValue) {\n return function(object) {\n if (object == null) {\n return false;\n }\n return object[key] === srcValue && (srcValue !== void 0 || key in Object(object));\n };\n}\nvar _matchesStrictComparable = matchesStrictComparable$2;\nvar baseIsMatch = _baseIsMatch, getMatchData = _getMatchData, matchesStrictComparable$1 = _matchesStrictComparable;\nfunction baseMatches$1(source) {\n var matchData = getMatchData(source);\n if (matchData.length == 1 && matchData[0][2]) {\n return matchesStrictComparable$1(matchData[0][0], matchData[0][1]);\n }\n return function(object) {\n return object === source || baseIsMatch(object, source, matchData);\n };\n}\nvar _baseMatches = baseMatches$1;\nvar castPath = _castPath, toKey$2 = _toKey;\nfunction baseGet$2(object, path) {\n path = castPath(path, object);\n var index2 = 0, length = path.length;\n while (object != null && index2 < length) {\n object = object[toKey$2(path[index2++])];\n }\n return index2 && index2 == length ? object : void 0;\n}\nvar _baseGet = baseGet$2;\nvar baseGet$1 = _baseGet;\nfunction get$1(object, path, defaultValue) {\n var result = object == null ? void 0 : baseGet$1(object, path);\n return result === void 0 ? defaultValue : result;\n}\nvar get_1 = get$1;\nconst get$2 = /* @__PURE__ */ getDefaultExportFromCjs(get_1);\nfunction baseHasIn$1(object, key) {\n return object != null && key in Object(object);\n}\nvar _baseHasIn = baseHasIn$1;\nvar baseHasIn = _baseHasIn, hasPath = _hasPath;\nfunction hasIn$1(object, path) {\n return object != null && hasPath(object, path, baseHasIn);\n}\nvar hasIn_1 = hasIn$1;\nvar baseIsEqual = _baseIsEqual, get = get_1, hasIn = hasIn_1, isKey$1 = _isKey, isStrictComparable = _isStrictComparable, matchesStrictComparable = _matchesStrictComparable, toKey$1 = _toKey;\nvar COMPARE_PARTIAL_FLAG = 1, COMPARE_UNORDERED_FLAG = 2;\nfunction baseMatchesProperty$1(path, srcValue) {\n if (isKey$1(path) && isStrictComparable(srcValue)) {\n return matchesStrictComparable(toKey$1(path), srcValue);\n }\n return function(object) {\n var objValue = get(object, path);\n return objValue === void 0 && objValue === srcValue ? hasIn(object, path) : baseIsEqual(srcValue, objValue, COMPARE_PARTIAL_FLAG | COMPARE_UNORDERED_FLAG);\n };\n}\nvar _baseMatchesProperty = baseMatchesProperty$1;\nfunction identity$3(value) {\n return value;\n}\nvar identity_1 = identity$3;\nfunction baseProperty$1(key) {\n return function(object) {\n return object == null ? void 0 : object[key];\n };\n}\nvar _baseProperty = baseProperty$1;\nvar baseGet = _baseGet;\nfunction basePropertyDeep$1(path) {\n return function(object) {\n return baseGet(object, path);\n };\n}\nvar _basePropertyDeep = basePropertyDeep$1;\nvar baseProperty = _baseProperty, basePropertyDeep = _basePropertyDeep, isKey = _isKey, toKey = _toKey;\nfunction property$1(path) {\n return isKey(path) ? baseProperty(toKey(path)) : basePropertyDeep(path);\n}\nvar property_1 = property$1;\nvar baseMatches = _baseMatches, baseMatchesProperty = _baseMatchesProperty, identity$2 = identity_1, isArray$3 = isArray_1, property = property_1;\nfunction baseIteratee$2(value) {\n if (typeof value == \"function\") {\n return value;\n }\n if (value == null) {\n return identity$2;\n }\n if (typeof value == \"object\") {\n return isArray$3(value) ? baseMatchesProperty(value[0], value[1]) : baseMatches(value);\n }\n return property(value);\n}\nvar _baseIteratee = baseIteratee$2;\nfunction createBaseFor$1(fromRight) {\n return function(object, iteratee, keysFunc) {\n var index2 = -1, iterable = Object(object), props = keysFunc(object), length = props.length;\n while (length--) {\n var key = props[fromRight ? length : ++index2];\n if (iteratee(iterable[key], key, iterable) === false) {\n break;\n }\n }\n return object;\n };\n}\nvar _createBaseFor = createBaseFor$1;\nvar createBaseFor = _createBaseFor;\nvar baseFor$2 = createBaseFor();\nvar _baseFor = baseFor$2;\nvar baseFor$1 = _baseFor, keys = keys_1;\nfunction baseForOwn$2(object, iteratee) {\n return object && baseFor$1(object, iteratee, keys);\n}\nvar _baseForOwn = baseForOwn$2;\nvar isArrayLike$3 = isArrayLike_1;\nfunction createBaseEach$1(eachFunc, fromRight) {\n return function(collection, iteratee) {\n if (collection == null) {\n return collection;\n }\n if (!isArrayLike$3(collection)) {\n return eachFunc(collection, iteratee);\n }\n var length = collection.length, index2 = fromRight ? length : -1, iterable = Object(collection);\n while (fromRight ? index2-- : ++index2 < length) {\n if (iteratee(iterable[index2], index2, iterable) === false) {\n break;\n }\n }\n return collection;\n };\n}\nvar _createBaseEach = createBaseEach$1;\nvar baseForOwn$1 = _baseForOwn, createBaseEach = _createBaseEach;\nvar baseEach$1 = createBaseEach(baseForOwn$1);\nvar _baseEach = baseEach$1;\nvar baseEach = _baseEach;\nfunction baseSome$1(collection, predicate) {\n var result;\n baseEach(collection, function(value, index2, collection2) {\n result = predicate(value, index2, collection2);\n return !result;\n });\n return !!result;\n}\nvar _baseSome = baseSome$1;\nvar eq$3 = eq_1, isArrayLike$2 = isArrayLike_1, isIndex = _isIndex, isObject$6 = isObject_1;\nfunction isIterateeCall$3(value, index2, object) {\n if (!isObject$6(object)) {\n return false;\n }\n var type = typeof index2;\n if (type == \"number\" ? isArrayLike$2(object) && isIndex(index2, object.length) : type == \"string\" && index2 in object) {\n return eq$3(object[index2], value);\n }\n return false;\n}\nvar _isIterateeCall = isIterateeCall$3;\nvar arraySome = _arraySome, baseIteratee$1 = _baseIteratee, baseSome = _baseSome, isArray$2 = isArray_1, isIterateeCall$2 = _isIterateeCall;\nfunction some(collection, predicate, guard) {\n var func = isArray$2(collection) ? arraySome : baseSome;\n if (guard && isIterateeCall$2(collection, predicate, guard)) {\n predicate = void 0;\n }\n return func(collection, baseIteratee$1(predicate));\n}\nvar some_1 = some;\nconst _some = /* @__PURE__ */ getDefaultExportFromCjs(some_1);\nvar baseGetTag$2 = _baseGetTag, isObjectLike$3 = isObjectLike_1;\nvar boolTag = \"[object Boolean]\";\nfunction isBoolean(value) {\n return value === true || value === false || isObjectLike$3(value) && baseGetTag$2(value) == boolTag;\n}\nvar isBoolean_1 = isBoolean;\nconst isBoolean$1 = /* @__PURE__ */ getDefaultExportFromCjs(isBoolean_1);\nvar baseGetTag$1 = _baseGetTag, isObjectLike$2 = isObjectLike_1;\nvar numberTag = \"[object Number]\";\nfunction isNumber(value) {\n return typeof value == \"number\" || isObjectLike$2(value) && baseGetTag$1(value) == numberTag;\n}\nvar isNumber_1 = isNumber;\nconst isNumber$1 = /* @__PURE__ */ getDefaultExportFromCjs(isNumber_1);\nvar getNative = _getNative;\nvar defineProperty$2 = function() {\n try {\n var func = getNative(Object, \"defineProperty\");\n func({}, \"\", {});\n return func;\n } catch (e) {\n }\n}();\nvar _defineProperty = defineProperty$2;\nvar defineProperty$1 = _defineProperty;\nfunction baseAssignValue$4(object, key, value) {\n if (key == \"__proto__\" && defineProperty$1) {\n defineProperty$1(object, key, {\n \"configurable\": true,\n \"enumerable\": true,\n \"value\": value,\n \"writable\": true\n });\n } else {\n object[key] = value;\n }\n}\nvar _baseAssignValue = baseAssignValue$4;\nvar baseAssignValue$3 = _baseAssignValue, eq$2 = eq_1;\nvar objectProto$3 = Object.prototype;\nvar hasOwnProperty$3 = objectProto$3.hasOwnProperty;\nfunction assignValue$1(object, key, value) {\n var objValue = object[key];\n if (!(hasOwnProperty$3.call(object, key) && eq$2(objValue, value)) || value === void 0 && !(key in object)) {\n baseAssignValue$3(object, key, value);\n }\n}\nvar _assignValue = assignValue$1;\nvar baseAssignValue$2 = _baseAssignValue, baseForOwn = _baseForOwn, baseIteratee = _baseIteratee;\nfunction mapValues(object, iteratee) {\n var result = {};\n iteratee = baseIteratee(iteratee);\n baseForOwn(object, function(value, key, object2) {\n baseAssignValue$2(result, key, iteratee(value, key, object2));\n });\n return result;\n}\nvar mapValues_1 = mapValues;\nconst mapValues$1 = /* @__PURE__ */ getDefaultExportFromCjs(mapValues_1);\nfunction apply$2(func, thisArg, args) {\n switch (args.length) {\n case 0:\n return func.call(thisArg);\n case 1:\n return func.call(thisArg, args[0]);\n case 2:\n return func.call(thisArg, args[0], args[1]);\n case 3:\n return func.call(thisArg, args[0], args[1], args[2]);\n }\n return func.apply(thisArg, args);\n}\nvar _apply = apply$2;\nvar apply$1 = _apply;\nvar nativeMax = Math.max;\nfunction overRest$1(func, start, transform) {\n start = nativeMax(start === void 0 ? func.length - 1 : start, 0);\n return function() {\n var args = arguments, index2 = -1, length = nativeMax(args.length - start, 0), array = Array(length);\n while (++index2 < length) {\n array[index2] = args[start + index2];\n }\n index2 = -1;\n var otherArgs = Array(start + 1);\n while (++index2 < start) {\n otherArgs[index2] = args[index2];\n }\n otherArgs[start] = transform(array);\n return apply$1(func, this, otherArgs);\n };\n}\nvar _overRest = overRest$1;\nfunction constant$1(value) {\n return function() {\n return value;\n };\n}\nvar constant_1 = constant$1;\nvar constant = constant_1, defineProperty = _defineProperty, identity$1 = identity_1;\nvar baseSetToString$1 = !defineProperty ? identity$1 : function(func, string) {\n return defineProperty(func, \"toString\", {\n \"configurable\": true,\n \"enumerable\": false,\n \"value\": constant(string),\n \"writable\": true\n });\n};\nvar _baseSetToString = baseSetToString$1;\nvar HOT_COUNT = 800, HOT_SPAN = 16;\nvar nativeNow = Date.now;\nfunction shortOut$1(func) {\n var count = 0, lastCalled = 0;\n return function() {\n var stamp = nativeNow(), remaining = HOT_SPAN - (stamp - lastCalled);\n lastCalled = stamp;\n if (remaining > 0) {\n if (++count >= HOT_COUNT) {\n return arguments[0];\n }\n } else {\n count = 0;\n }\n return func.apply(void 0, arguments);\n };\n}\nvar _shortOut = shortOut$1;\nvar baseSetToString = _baseSetToString, shortOut = _shortOut;\nvar setToString$1 = shortOut(baseSetToString);\nvar _setToString = setToString$1;\nvar identity = identity_1, overRest = _overRest, setToString = _setToString;\nfunction baseRest$3(func, start) {\n return setToString(overRest(func, start, identity), func + \"\");\n}\nvar _baseRest = baseRest$3;\nfunction nativeKeysIn$1(object) {\n var result = [];\n if (object != null) {\n for (var key in Object(object)) {\n result.push(key);\n }\n }\n return result;\n}\nvar _nativeKeysIn = nativeKeysIn$1;\nvar isObject$5 = isObject_1, isPrototype$1 = _isPrototype, nativeKeysIn = _nativeKeysIn;\nvar objectProto$2 = Object.prototype;\nvar hasOwnProperty$2 = objectProto$2.hasOwnProperty;\nfunction baseKeysIn$1(object) {\n if (!isObject$5(object)) {\n return nativeKeysIn(object);\n }\n var isProto = isPrototype$1(object), result = [];\n for (var key in object) {\n if (!(key == \"constructor\" && (isProto || !hasOwnProperty$2.call(object, key)))) {\n result.push(key);\n }\n }\n return result;\n}\nvar _baseKeysIn = baseKeysIn$1;\nvar arrayLikeKeys = _arrayLikeKeys, baseKeysIn = _baseKeysIn, isArrayLike$1 = isArrayLike_1;\nfunction keysIn$3(object) {\n return isArrayLike$1(object) ? arrayLikeKeys(object, true) : baseKeysIn(object);\n}\nvar keysIn_1 = keysIn$3;\nvar baseRest$2 = _baseRest, eq$1 = eq_1, isIterateeCall$1 = _isIterateeCall, keysIn$2 = keysIn_1;\nvar objectProto$1 = Object.prototype;\nvar hasOwnProperty$1 = objectProto$1.hasOwnProperty;\nvar defaults = baseRest$2(function(object, sources) {\n object = Object(object);\n var index2 = -1;\n var length = sources.length;\n var guard = length > 2 ? sources[2] : void 0;\n if (guard && isIterateeCall$1(sources[0], sources[1], guard)) {\n length = 1;\n }\n while (++index2 < length) {\n var source = sources[index2];\n var props = keysIn$2(source);\n var propsIndex = -1;\n var propsLength = props.length;\n while (++propsIndex < propsLength) {\n var key = props[propsIndex];\n var value = object[key];\n if (value === void 0 || eq$1(value, objectProto$1[key]) && !hasOwnProperty$1.call(object, key)) {\n object[key] = source[key];\n }\n }\n }\n return object;\n});\nvar defaults_1 = defaults;\nconst defaults$1 = /* @__PURE__ */ getDefaultExportFromCjs(defaults_1);\nvar baseAssignValue$1 = _baseAssignValue, eq = eq_1;\nfunction assignMergeValue$2(object, key, value) {\n if (value !== void 0 && !eq(object[key], value) || value === void 0 && !(key in object)) {\n baseAssignValue$1(object, key, value);\n }\n}\nvar _assignMergeValue = assignMergeValue$2;\nvar _cloneBuffer = { exports: {} };\n_cloneBuffer.exports;\n(function(module, exports) {\n var root2 = _root;\n var freeExports = exports && !exports.nodeType && exports;\n var freeModule = freeExports && true && module && !module.nodeType && module;\n var moduleExports = freeModule && freeModule.exports === freeExports;\n var Buffer2 = moduleExports ? root2.Buffer : void 0, allocUnsafe = Buffer2 ? Buffer2.allocUnsafe : void 0;\n function cloneBuffer2(buffer, isDeep) {\n if (isDeep) {\n return buffer.slice();\n }\n var length = buffer.length, result = allocUnsafe ? allocUnsafe(length) : new buffer.constructor(length);\n buffer.copy(result);\n return result;\n }\n module.exports = cloneBuffer2;\n})(_cloneBuffer, _cloneBuffer.exports);\nvar _cloneBufferExports = _cloneBuffer.exports;\nvar Uint8Array2 = _Uint8Array;\nfunction cloneArrayBuffer$1(arrayBuffer) {\n var result = new arrayBuffer.constructor(arrayBuffer.byteLength);\n new Uint8Array2(result).set(new Uint8Array2(arrayBuffer));\n return result;\n}\nvar _cloneArrayBuffer = cloneArrayBuffer$1;\nvar cloneArrayBuffer = _cloneArrayBuffer;\nfunction cloneTypedArray$1(typedArray, isDeep) {\n var buffer = isDeep ? cloneArrayBuffer(typedArray.buffer) : typedArray.buffer;\n return new typedArray.constructor(buffer, typedArray.byteOffset, typedArray.length);\n}\nvar _cloneTypedArray = cloneTypedArray$1;\nfunction copyArray$1(source, array) {\n var index2 = -1, length = source.length;\n array || (array = Array(length));\n while (++index2 < length) {\n array[index2] = source[index2];\n }\n return array;\n}\nvar _copyArray = copyArray$1;\nvar isObject$4 = isObject_1;\nvar objectCreate = Object.create;\nvar baseCreate$1 = function() {\n function object() {\n }\n return function(proto) {\n if (!isObject$4(proto)) {\n return {};\n }\n if (objectCreate) {\n return objectCreate(proto);\n }\n object.prototype = proto;\n var result = new object();\n object.prototype = void 0;\n return result;\n };\n}();\nvar _baseCreate = baseCreate$1;\nvar overArg = _overArg;\nvar getPrototype$2 = overArg(Object.getPrototypeOf, Object);\nvar _getPrototype = getPrototype$2;\nvar baseCreate = _baseCreate, getPrototype$1 = _getPrototype, isPrototype = _isPrototype;\nfunction initCloneObject$1(object) {\n return typeof object.constructor == \"function\" && !isPrototype(object) ? baseCreate(getPrototype$1(object)) : {};\n}\nvar _initCloneObject = initCloneObject$1;\nvar isArrayLike = isArrayLike_1, isObjectLike$1 = isObjectLike_1;\nfunction isArrayLikeObject$1(value) {\n return isObjectLike$1(value) && isArrayLike(value);\n}\nvar isArrayLikeObject_1 = isArrayLikeObject$1;\nvar baseGetTag = _baseGetTag, getPrototype = _getPrototype, isObjectLike = isObjectLike_1;\nvar objectTag = \"[object Object]\";\nvar funcProto = Function.prototype, objectProto = Object.prototype;\nvar funcToString = funcProto.toString;\nvar hasOwnProperty = objectProto.hasOwnProperty;\nvar objectCtorString = funcToString.call(Object);\nfunction isPlainObject$1(value) {\n if (!isObjectLike(value) || baseGetTag(value) != objectTag) {\n return false;\n }\n var proto = getPrototype(value);\n if (proto === null) {\n return true;\n }\n var Ctor = hasOwnProperty.call(proto, \"constructor\") && proto.constructor;\n return typeof Ctor == \"function\" && Ctor instanceof Ctor && funcToString.call(Ctor) == objectCtorString;\n}\nvar isPlainObject_1 = isPlainObject$1;\nfunction safeGet$2(object, key) {\n if (key === \"constructor\" && typeof object[key] === \"function\") {\n return;\n }\n if (key == \"__proto__\") {\n return;\n }\n return object[key];\n}\nvar _safeGet = safeGet$2;\nvar assignValue = _assignValue, baseAssignValue = _baseAssignValue;\nfunction copyObject$1(source, props, object, customizer) {\n var isNew = !object;\n object || (object = {});\n var index2 = -1, length = props.length;\n while (++index2 < length) {\n var key = props[index2];\n var newValue = customizer ? customizer(object[key], source[key], key, object, source) : void 0;\n if (newValue === void 0) {\n newValue = source[key];\n }\n if (isNew) {\n baseAssignValue(object, key, newValue);\n } else {\n assignValue(object, key, newValue);\n }\n }\n return object;\n}\nvar _copyObject = copyObject$1;\nvar copyObject = _copyObject, keysIn$1 = keysIn_1;\nfunction toPlainObject$1(value) {\n return copyObject(value, keysIn$1(value));\n}\nvar toPlainObject_1 = toPlainObject$1;\nvar assignMergeValue$1 = _assignMergeValue, cloneBuffer = _cloneBufferExports, cloneTypedArray = _cloneTypedArray, copyArray = _copyArray, initCloneObject = _initCloneObject, isArguments = isArguments_1, isArray$1 = isArray_1, isArrayLikeObject = isArrayLikeObject_1, isBuffer = isBufferExports, isFunction = isFunction_1, isObject$3 = isObject_1, isPlainObject = isPlainObject_1, isTypedArray = isTypedArray_1, safeGet$1 = _safeGet, toPlainObject = toPlainObject_1;\nfunction baseMergeDeep$1(object, source, key, srcIndex, mergeFunc, customizer, stack) {\n var objValue = safeGet$1(object, key), srcValue = safeGet$1(source, key), stacked = stack.get(srcValue);\n if (stacked) {\n assignMergeValue$1(object, key, stacked);\n return;\n }\n var newValue = customizer ? customizer(objValue, srcValue, key + \"\", object, source, stack) : void 0;\n var isCommon = newValue === void 0;\n if (isCommon) {\n var isArr = isArray$1(srcValue), isBuff = !isArr && isBuffer(srcValue), isTyped = !isArr && !isBuff && isTypedArray(srcValue);\n newValue = srcValue;\n if (isArr || isBuff || isTyped) {\n if (isArray$1(objValue)) {\n newValue = objValue;\n } else if (isArrayLikeObject(objValue)) {\n newValue = copyArray(objValue);\n } else if (isBuff) {\n isCommon = false;\n newValue = cloneBuffer(srcValue, true);\n } else if (isTyped) {\n isCommon = false;\n newValue = cloneTypedArray(srcValue, true);\n } else {\n newValue = [];\n }\n } else if (isPlainObject(srcValue) || isArguments(srcValue)) {\n newValue = objValue;\n if (isArguments(objValue)) {\n newValue = toPlainObject(objValue);\n } else if (!isObject$3(objValue) || isFunction(objValue)) {\n newValue = initCloneObject(srcValue);\n }\n } else {\n isCommon = false;\n }\n }\n if (isCommon) {\n stack.set(srcValue, newValue);\n mergeFunc(newValue, srcValue, srcIndex, customizer, stack);\n stack[\"delete\"](srcValue);\n }\n assignMergeValue$1(object, key, newValue);\n}\nvar _baseMergeDeep = baseMergeDeep$1;\nvar Stack = _Stack, assignMergeValue = _assignMergeValue, baseFor = _baseFor, baseMergeDeep = _baseMergeDeep, isObject$2 = isObject_1, keysIn = keysIn_1, safeGet = _safeGet;\nfunction baseMerge$2(object, source, srcIndex, customizer, stack) {\n if (object === source) {\n return;\n }\n baseFor(source, function(srcValue, key) {\n stack || (stack = new Stack());\n if (isObject$2(srcValue)) {\n baseMergeDeep(object, source, key, srcIndex, baseMerge$2, customizer, stack);\n } else {\n var newValue = customizer ? customizer(safeGet(object, key), srcValue, key + \"\", object, source, stack) : void 0;\n if (newValue === void 0) {\n newValue = srcValue;\n }\n assignMergeValue(object, key, newValue);\n }\n }, keysIn);\n}\nvar _baseMerge = baseMerge$2;\nvar baseMerge$1 = _baseMerge, isObject$1 = isObject_1;\nfunction customDefaultsMerge$1(objValue, srcValue, key, object, source, stack) {\n if (isObject$1(objValue) && isObject$1(srcValue)) {\n stack.set(srcValue, objValue);\n baseMerge$1(objValue, srcValue, void 0, customDefaultsMerge$1, stack);\n stack[\"delete\"](srcValue);\n }\n return objValue;\n}\nvar _customDefaultsMerge = customDefaultsMerge$1;\nvar baseRest$1 = _baseRest, isIterateeCall = _isIterateeCall;\nfunction createAssigner$1(assigner) {\n return baseRest$1(function(object, sources) {\n var index2 = -1, length = sources.length, customizer = length > 1 ? sources[length - 1] : void 0, guard = length > 2 ? sources[2] : void 0;\n customizer = assigner.length > 3 && typeof customizer == \"function\" ? (length--, customizer) : void 0;\n if (guard && isIterateeCall(sources[0], sources[1], guard)) {\n customizer = length < 3 ? void 0 : customizer;\n length = 1;\n }\n object = Object(object);\n while (++index2 < length) {\n var source = sources[index2];\n if (source) {\n assigner(object, source, index2, customizer);\n }\n }\n return object;\n });\n}\nvar _createAssigner = createAssigner$1;\nvar baseMerge = _baseMerge, createAssigner = _createAssigner;\nvar mergeWith$1 = createAssigner(function(object, source, srcIndex, customizer) {\n baseMerge(object, source, srcIndex, customizer);\n});\nvar mergeWith_1 = mergeWith$1;\nvar apply = _apply, baseRest = _baseRest, customDefaultsMerge = _customDefaultsMerge, mergeWith = mergeWith_1;\nvar defaultsDeep = baseRest(function(args) {\n args.push(void 0, customDefaultsMerge);\n return apply(mergeWith, void 0, args);\n});\nvar defaultsDeep_1 = defaultsDeep;\nconst defaultsDeep$1 = /* @__PURE__ */ getDefaultExportFromCjs(defaultsDeep_1);\nfunction head(array) {\n return array && array.length ? array[0] : void 0;\n}\nvar head_1 = head;\nconst head$1 = /* @__PURE__ */ getDefaultExportFromCjs(head_1);\nfunction last(array) {\n var length = array == null ? 0 : array.length;\n return length ? array[length - 1] : void 0;\n}\nvar last_1 = last;\nconst last$1 = /* @__PURE__ */ getDefaultExportFromCjs(last_1);\nconst getType = (value) => Object.prototype.toString.call(value).slice(8, -1);\nconst isDate = (value) => _isDate(value) && !isNaN(value.getTime());\nconst isObject = (value) => getType(value) === \"Object\";\nconst has = (obj, path) => _has(obj, path);\nconst hasAny = (obj, props) => _some(props, (p) => _has(obj, p));\nconst pad = (val, len, char = \"0\") => {\n val = val !== null && val !== void 0 ? String(val) : \"\";\n len = len || 2;\n while (val.length < len) {\n val = `${char}${val}`;\n }\n return val;\n};\nconst isArray = (val) => Array.isArray(val);\nconst arrayHasItems = (array) => isArray(array) && array.length > 0;\nconst resolveEl = (target) => {\n if (target == null)\n return null;\n if (document && isString$1(target))\n return document.querySelector(target);\n return target.$el ?? target;\n};\nconst off = (element, event, handler, opts = void 0) => {\n element.removeEventListener(event, handler, opts);\n};\nconst on = (element, event, handler, opts = void 0) => {\n element.addEventListener(event, handler, opts);\n return () => off(element, event, handler, opts);\n};\nconst getDeepActiveElement = (child) => {\n var _a;\n let element = child;\n while (element == null ? void 0 : element.shadowRoot) {\n element = (_a = element == null ? void 0 : element.shadowRoot) == null ? void 0 : _a.activeElement;\n }\n return element;\n};\nconst elementContains = (element, child) => {\n const deepChild = getDeepActiveElement(child);\n return !!element && !!deepChild && (element === deepChild || element.contains(deepChild));\n};\nconst onSpaceOrEnter = (event, handler) => {\n if (event.key === \" \" || event.key === \"Enter\") {\n handler(event);\n event.preventDefault();\n }\n};\nconst omit = (obj, ...keys2) => {\n const ret = {};\n let key;\n for (key in obj) {\n if (!keys2.includes(key)) {\n ret[key] = obj[key];\n }\n }\n return ret;\n};\nconst pick = (obj, keys2) => {\n const ret = {};\n keys2.forEach((key) => {\n if (key in obj)\n ret[key] = obj[key];\n });\n return ret;\n};\nfunction clamp(num, min, max) {\n return Math.min(Math.max(num, min), max);\n}\nvar toInteger$2 = { exports: {} };\n(function(module, exports) {\n Object.defineProperty(exports, \"__esModule\", {\n value: true\n });\n exports.default = toInteger2;\n function toInteger2(dirtyNumber) {\n if (dirtyNumber === null || dirtyNumber === true || dirtyNumber === false) {\n return NaN;\n }\n var number = Number(dirtyNumber);\n if (isNaN(number)) {\n return number;\n }\n return number < 0 ? Math.ceil(number) : Math.floor(number);\n }\n module.exports = exports.default;\n})(toInteger$2, toInteger$2.exports);\nvar toIntegerExports = toInteger$2.exports;\nconst toInteger$1 = /* @__PURE__ */ getDefaultExportFromCjs(toIntegerExports);\nvar getTimezoneOffsetInMilliseconds$2 = { exports: {} };\n(function(module, exports) {\n Object.defineProperty(exports, \"__esModule\", {\n value: true\n });\n exports.default = getTimezoneOffsetInMilliseconds2;\n function getTimezoneOffsetInMilliseconds2(date) {\n var utcDate = new Date(Date.UTC(date.getFullYear(), date.getMonth(), date.getDate(), date.getHours(), date.getMinutes(), date.getSeconds(), date.getMilliseconds()));\n utcDate.setUTCFullYear(date.getFullYear());\n return date.getTime() - utcDate.getTime();\n }\n module.exports = exports.default;\n})(getTimezoneOffsetInMilliseconds$2, getTimezoneOffsetInMilliseconds$2.exports);\nvar getTimezoneOffsetInMillisecondsExports = getTimezoneOffsetInMilliseconds$2.exports;\nconst getTimezoneOffsetInMilliseconds$1 = /* @__PURE__ */ getDefaultExportFromCjs(getTimezoneOffsetInMillisecondsExports);\nfunction tzTokenizeDate(date, timeZone) {\n var dtf = getDateTimeFormat(timeZone);\n return dtf.formatToParts ? partsOffset(dtf, date) : hackyOffset(dtf, date);\n}\nvar typeToPos = {\n year: 0,\n month: 1,\n day: 2,\n hour: 3,\n minute: 4,\n second: 5\n};\nfunction partsOffset(dtf, date) {\n try {\n var formatted = dtf.formatToParts(date);\n var filled = [];\n for (var i = 0; i < formatted.length; i++) {\n var pos = typeToPos[formatted[i].type];\n if (pos >= 0) {\n filled[pos] = parseInt(formatted[i].value, 10);\n }\n }\n return filled;\n } catch (error) {\n if (error instanceof RangeError) {\n return [NaN];\n }\n throw error;\n }\n}\nfunction hackyOffset(dtf, date) {\n var formatted = dtf.format(date);\n var parsed = /(\\d+)\\/(\\d+)\\/(\\d+),? (\\d+):(\\d+):(\\d+)/.exec(formatted);\n return [parsed[3], parsed[1], parsed[2], parsed[4], parsed[5], parsed[6]];\n}\nvar dtfCache = {};\nfunction getDateTimeFormat(timeZone) {\n if (!dtfCache[timeZone]) {\n var testDateFormatted = new Intl.DateTimeFormat(\"en-US\", {\n hourCycle: \"h23\",\n timeZone: \"America/New_York\",\n year: \"numeric\",\n month: \"2-digit\",\n day: \"2-digit\",\n hour: \"2-digit\",\n minute: \"2-digit\",\n second: \"2-digit\"\n }).format(/* @__PURE__ */ new Date(\"2014-06-25T04:00:00.123Z\"));\n var hourCycleSupported = testDateFormatted === \"06/25/2014, 00:00:00\" || testDateFormatted === \"06/25/2014 00:00:00\";\n dtfCache[timeZone] = hourCycleSupported ? new Intl.DateTimeFormat(\"en-US\", {\n hourCycle: \"h23\",\n timeZone,\n year: \"numeric\",\n month: \"numeric\",\n day: \"2-digit\",\n hour: \"2-digit\",\n minute: \"2-digit\",\n second: \"2-digit\"\n }) : new Intl.DateTimeFormat(\"en-US\", {\n hour12: false,\n timeZone,\n year: \"numeric\",\n month: \"numeric\",\n day: \"2-digit\",\n hour: \"2-digit\",\n minute: \"2-digit\",\n second: \"2-digit\"\n });\n }\n return dtfCache[timeZone];\n}\nfunction newDateUTC(fullYear, month, day, hour, minute, second, millisecond) {\n var utcDate = /* @__PURE__ */ new Date(0);\n utcDate.setUTCFullYear(fullYear, month, day);\n utcDate.setUTCHours(hour, minute, second, millisecond);\n return utcDate;\n}\nvar MILLISECONDS_IN_HOUR$1 = 36e5;\nvar MILLISECONDS_IN_MINUTE$1 = 6e4;\nvar patterns$1 = {\n timezone: /([Z+-].*)$/,\n timezoneZ: /^(Z)$/,\n timezoneHH: /^([+-]\\d{2})$/,\n timezoneHHMM: /^([+-])(\\d{2}):?(\\d{2})$/\n};\nfunction tzParseTimezone(timezoneString, date, isUtcDate) {\n var token2;\n var absoluteOffset;\n if (!timezoneString) {\n return 0;\n }\n token2 = patterns$1.timezoneZ.exec(timezoneString);\n if (token2) {\n return 0;\n }\n var hours2;\n token2 = patterns$1.timezoneHH.exec(timezoneString);\n if (token2) {\n hours2 = parseInt(token2[1], 10);\n if (!validateTimezone(hours2)) {\n return NaN;\n }\n return -(hours2 * MILLISECONDS_IN_HOUR$1);\n }\n token2 = patterns$1.timezoneHHMM.exec(timezoneString);\n if (token2) {\n hours2 = parseInt(token2[2], 10);\n var minutes = parseInt(token2[3], 10);\n if (!validateTimezone(hours2, minutes)) {\n return NaN;\n }\n absoluteOffset = Math.abs(hours2) * MILLISECONDS_IN_HOUR$1 + minutes * MILLISECONDS_IN_MINUTE$1;\n return token2[1] === \"+\" ? -absoluteOffset : absoluteOffset;\n }\n if (isValidTimezoneIANAString(timezoneString)) {\n date = new Date(date || Date.now());\n var utcDate = isUtcDate ? date : toUtcDate(date);\n var offset = calcOffset(utcDate, timezoneString);\n var fixedOffset = isUtcDate ? offset : fixOffset(date, offset, timezoneString);\n return -fixedOffset;\n }\n return NaN;\n}\nfunction toUtcDate(date) {\n return newDateUTC(\n date.getFullYear(),\n date.getMonth(),\n date.getDate(),\n date.getHours(),\n date.getMinutes(),\n date.getSeconds(),\n date.getMilliseconds()\n );\n}\nfunction calcOffset(date, timezoneString) {\n var tokens = tzTokenizeDate(date, timezoneString);\n var asUTC = newDateUTC(\n tokens[0],\n tokens[1] - 1,\n tokens[2],\n tokens[3] % 24,\n tokens[4],\n tokens[5],\n 0\n ).getTime();\n var asTS = date.getTime();\n var over = asTS % 1e3;\n asTS -= over >= 0 ? over : 1e3 + over;\n return asUTC - asTS;\n}\nfunction fixOffset(date, offset, timezoneString) {\n var localTS = date.getTime();\n var utcGuess = localTS - offset;\n var o2 = calcOffset(new Date(utcGuess), timezoneString);\n if (offset === o2) {\n return offset;\n }\n utcGuess -= o2 - offset;\n var o3 = calcOffset(new Date(utcGuess), timezoneString);\n if (o2 === o3) {\n return o2;\n }\n return Math.max(o2, o3);\n}\nfunction validateTimezone(hours2, minutes) {\n return -23 <= hours2 && hours2 <= 23 && (minutes == null || 0 <= minutes && minutes <= 59);\n}\nvar validIANATimezoneCache = {};\nfunction isValidTimezoneIANAString(timeZoneString) {\n if (validIANATimezoneCache[timeZoneString])\n return true;\n try {\n new Intl.DateTimeFormat(void 0, { timeZone: timeZoneString });\n validIANATimezoneCache[timeZoneString] = true;\n return true;\n } catch (error) {\n return false;\n }\n}\nvar tzPattern = /(Z|[+-]\\d{2}(?::?\\d{2})?| UTC| [a-zA-Z]+\\/[a-zA-Z_]+(?:\\/[a-zA-Z_]+)?)$/;\nvar MILLISECONDS_IN_HOUR = 36e5;\nvar MILLISECONDS_IN_MINUTE = 6e4;\nvar DEFAULT_ADDITIONAL_DIGITS = 2;\nvar patterns = {\n dateTimePattern: /^([0-9W+-]+)(T| )(.*)/,\n datePattern: /^([0-9W+-]+)(.*)/,\n plainTime: /:/,\n // year tokens\n YY: /^(\\d{2})$/,\n YYY: [\n /^([+-]\\d{2})$/,\n // 0 additional digits\n /^([+-]\\d{3})$/,\n // 1 additional digit\n /^([+-]\\d{4})$/\n // 2 additional digits\n ],\n YYYY: /^(\\d{4})/,\n YYYYY: [\n /^([+-]\\d{4})/,\n // 0 additional digits\n /^([+-]\\d{5})/,\n // 1 additional digit\n /^([+-]\\d{6})/\n // 2 additional digits\n ],\n // date tokens\n MM: /^-(\\d{2})$/,\n DDD: /^-?(\\d{3})$/,\n MMDD: /^-?(\\d{2})-?(\\d{2})$/,\n Www: /^-?W(\\d{2})$/,\n WwwD: /^-?W(\\d{2})-?(\\d{1})$/,\n HH: /^(\\d{2}([.,]\\d*)?)$/,\n HHMM: /^(\\d{2}):?(\\d{2}([.,]\\d*)?)$/,\n HHMMSS: /^(\\d{2}):?(\\d{2}):?(\\d{2}([.,]\\d*)?)$/,\n // time zone tokens (to identify the presence of a tz)\n timeZone: tzPattern\n};\nfunction toDate$1(argument, dirtyOptions) {\n if (arguments.length < 1) {\n throw new TypeError(\"1 argument required, but only \" + arguments.length + \" present\");\n }\n if (argument === null) {\n return /* @__PURE__ */ new Date(NaN);\n }\n var options = dirtyOptions || {};\n var additionalDigits = options.additionalDigits == null ? DEFAULT_ADDITIONAL_DIGITS : toInteger$1(options.additionalDigits);\n if (additionalDigits !== 2 && additionalDigits !== 1 && additionalDigits !== 0) {\n throw new RangeError(\"additionalDigits must be 0, 1 or 2\");\n }\n if (argument instanceof Date || typeof argument === \"object\" && Object.prototype.toString.call(argument) === \"[object Date]\") {\n return new Date(argument.getTime());\n } else if (typeof argument === \"number\" || Object.prototype.toString.call(argument) === \"[object Number]\") {\n return new Date(argument);\n } else if (!(typeof argument === \"string\" || Object.prototype.toString.call(argument) === \"[object String]\")) {\n return /* @__PURE__ */ new Date(NaN);\n }\n var dateStrings = splitDateString(argument);\n var parseYearResult = parseYear(dateStrings.date, additionalDigits);\n var year = parseYearResult.year;\n var restDateString = parseYearResult.restDateString;\n var date = parseDate$1(restDateString, year);\n if (isNaN(date)) {\n return /* @__PURE__ */ new Date(NaN);\n }\n if (date) {\n var timestamp = date.getTime();\n var time = 0;\n var offset;\n if (dateStrings.time) {\n time = parseTime(dateStrings.time);\n if (isNaN(time)) {\n return /* @__PURE__ */ new Date(NaN);\n }\n }\n if (dateStrings.timeZone || options.timeZone) {\n offset = tzParseTimezone(dateStrings.timeZone || options.timeZone, new Date(timestamp + time));\n if (isNaN(offset)) {\n return /* @__PURE__ */ new Date(NaN);\n }\n } else {\n offset = getTimezoneOffsetInMilliseconds$1(new Date(timestamp + time));\n offset = getTimezoneOffsetInMilliseconds$1(new Date(timestamp + time + offset));\n }\n return new Date(timestamp + time + offset);\n } else {\n return /* @__PURE__ */ new Date(NaN);\n }\n}\nfunction splitDateString(dateString) {\n var dateStrings = {};\n var parts = patterns.dateTimePattern.exec(dateString);\n var timeString;\n if (!parts) {\n parts = patterns.datePattern.exec(dateString);\n if (parts) {\n dateStrings.date = parts[1];\n timeString = parts[2];\n } else {\n dateStrings.date = null;\n timeString = dateString;\n }\n } else {\n dateStrings.date = parts[1];\n timeString = parts[3];\n }\n if (timeString) {\n var token2 = patterns.timeZone.exec(timeString);\n if (token2) {\n dateStrings.time = timeString.replace(token2[1], \"\");\n dateStrings.timeZone = token2[1].trim();\n } else {\n dateStrings.time = timeString;\n }\n }\n return dateStrings;\n}\nfunction parseYear(dateString, additionalDigits) {\n var patternYYY = patterns.YYY[additionalDigits];\n var patternYYYYY = patterns.YYYYY[additionalDigits];\n var token2;\n token2 = patterns.YYYY.exec(dateString) || patternYYYYY.exec(dateString);\n if (token2) {\n var yearString = token2[1];\n return {\n year: parseInt(yearString, 10),\n restDateString: dateString.slice(yearString.length)\n };\n }\n token2 = patterns.YY.exec(dateString) || patternYYY.exec(dateString);\n if (token2) {\n var centuryString = token2[1];\n return {\n year: parseInt(centuryString, 10) * 100,\n restDateString: dateString.slice(centuryString.length)\n };\n }\n return {\n year: null\n };\n}\nfunction parseDate$1(dateString, year) {\n if (year === null) {\n return null;\n }\n var token2;\n var date;\n var month;\n var week;\n if (dateString.length === 0) {\n date = /* @__PURE__ */ new Date(0);\n date.setUTCFullYear(year);\n return date;\n }\n token2 = patterns.MM.exec(dateString);\n if (token2) {\n date = /* @__PURE__ */ new Date(0);\n month = parseInt(token2[1], 10) - 1;\n if (!validateDate(year, month)) {\n return /* @__PURE__ */ new Date(NaN);\n }\n date.setUTCFullYear(year, month);\n return date;\n }\n token2 = patterns.DDD.exec(dateString);\n if (token2) {\n date = /* @__PURE__ */ new Date(0);\n var dayOfYear = parseInt(token2[1], 10);\n if (!validateDayOfYearDate(year, dayOfYear)) {\n return /* @__PURE__ */ new Date(NaN);\n }\n date.setUTCFullYear(year, 0, dayOfYear);\n return date;\n }\n token2 = patterns.MMDD.exec(dateString);\n if (token2) {\n date = /* @__PURE__ */ new Date(0);\n month = parseInt(token2[1], 10) - 1;\n var day = parseInt(token2[2], 10);\n if (!validateDate(year, month, day)) {\n return /* @__PURE__ */ new Date(NaN);\n }\n date.setUTCFullYear(year, month, day);\n return date;\n }\n token2 = patterns.Www.exec(dateString);\n if (token2) {\n week = parseInt(token2[1], 10) - 1;\n if (!validateWeekDate(year, week)) {\n return /* @__PURE__ */ new Date(NaN);\n }\n return dayOfISOWeekYear(year, week);\n }\n token2 = patterns.WwwD.exec(dateString);\n if (token2) {\n week = parseInt(token2[1], 10) - 1;\n var dayOfWeek = parseInt(token2[2], 10) - 1;\n if (!validateWeekDate(year, week, dayOfWeek)) {\n return /* @__PURE__ */ new Date(NaN);\n }\n return dayOfISOWeekYear(year, week, dayOfWeek);\n }\n return null;\n}\nfunction parseTime(timeString) {\n var token2;\n var hours2;\n var minutes;\n token2 = patterns.HH.exec(timeString);\n if (token2) {\n hours2 = parseFloat(token2[1].replace(\",\", \".\"));\n if (!validateTime(hours2)) {\n return NaN;\n }\n return hours2 % 24 * MILLISECONDS_IN_HOUR;\n }\n token2 = patterns.HHMM.exec(timeString);\n if (token2) {\n hours2 = parseInt(token2[1], 10);\n minutes = parseFloat(token2[2].replace(\",\", \".\"));\n if (!validateTime(hours2, minutes)) {\n return NaN;\n }\n return hours2 % 24 * MILLISECONDS_IN_HOUR + minutes * MILLISECONDS_IN_MINUTE;\n }\n token2 = patterns.HHMMSS.exec(timeString);\n if (token2) {\n hours2 = parseInt(token2[1], 10);\n minutes = parseInt(token2[2], 10);\n var seconds = parseFloat(token2[3].replace(\",\", \".\"));\n if (!validateTime(hours2, minutes, seconds)) {\n return NaN;\n }\n return hours2 % 24 * MILLISECONDS_IN_HOUR + minutes * MILLISECONDS_IN_MINUTE + seconds * 1e3;\n }\n return null;\n}\nfunction dayOfISOWeekYear(isoWeekYear, week, day) {\n week = week || 0;\n day = day || 0;\n var date = /* @__PURE__ */ new Date(0);\n date.setUTCFullYear(isoWeekYear, 0, 4);\n var fourthOfJanuaryDay = date.getUTCDay() || 7;\n var diff = week * 7 + day + 1 - fourthOfJanuaryDay;\n date.setUTCDate(date.getUTCDate() + diff);\n return date;\n}\nvar DAYS_IN_MONTH = [31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31];\nvar DAYS_IN_MONTH_LEAP_YEAR = [31, 29, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31];\nfunction isLeapYearIndex(year) {\n return year % 400 === 0 || year % 4 === 0 && year % 100 !== 0;\n}\nfunction validateDate(year, month, date) {\n if (month < 0 || month > 11) {\n return false;\n }\n if (date != null) {\n if (date < 1) {\n return false;\n }\n var isLeapYear = isLeapYearIndex(year);\n if (isLeapYear && date > DAYS_IN_MONTH_LEAP_YEAR[month]) {\n return false;\n }\n if (!isLeapYear && date > DAYS_IN_MONTH[month]) {\n return false;\n }\n }\n return true;\n}\nfunction validateDayOfYearDate(year, dayOfYear) {\n if (dayOfYear < 1) {\n return false;\n }\n var isLeapYear = isLeapYearIndex(year);\n if (isLeapYear && dayOfYear > 366) {\n return false;\n }\n if (!isLeapYear && dayOfYear > 365) {\n return false;\n }\n return true;\n}\nfunction validateWeekDate(year, week, day) {\n if (week < 0 || week > 52) {\n return false;\n }\n if (day != null && (day < 0 || day > 6)) {\n return false;\n }\n return true;\n}\nfunction validateTime(hours2, minutes, seconds) {\n if (hours2 != null && (hours2 < 0 || hours2 >= 25)) {\n return false;\n }\n if (minutes != null && (minutes < 0 || minutes >= 60)) {\n return false;\n }\n if (seconds != null && (seconds < 0 || seconds >= 60)) {\n return false;\n }\n return true;\n}\nfunction _typeof(o) {\n \"@babel/helpers - typeof\";\n return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function(o2) {\n return typeof o2;\n } : function(o2) {\n return o2 && \"function\" == typeof Symbol && o2.constructor === Symbol && o2 !== Symbol.prototype ? \"symbol\" : typeof o2;\n }, _typeof(o);\n}\nfunction requiredArgs(required, args) {\n if (args.length < required) {\n throw new TypeError(required + \" argument\" + (required > 1 ? \"s\" : \"\") + \" required, but only \" + args.length + \" present\");\n }\n}\nfunction toDate(argument) {\n requiredArgs(1, arguments);\n var argStr = Object.prototype.toString.call(argument);\n if (argument instanceof Date || _typeof(argument) === \"object\" && argStr === \"[object Date]\") {\n return new Date(argument.getTime());\n } else if (typeof argument === \"number\" || argStr === \"[object Number]\") {\n return new Date(argument);\n } else {\n if ((typeof argument === \"string\" || argStr === \"[object String]\") && typeof console !== \"undefined\") {\n console.warn(\"Starting with v2.0.0-beta.1 date-fns doesn't accept strings as date arguments. Please use `parseISO` to parse strings. See: https://github.com/date-fns/date-fns/blob/master/docs/upgradeGuide.md#string-arguments\");\n console.warn(new Error().stack);\n }\n return /* @__PURE__ */ new Date(NaN);\n }\n}\nfunction toInteger(dirtyNumber) {\n if (dirtyNumber === null || dirtyNumber === true || dirtyNumber === false) {\n return NaN;\n }\n var number = Number(dirtyNumber);\n if (isNaN(number)) {\n return number;\n }\n return number < 0 ? Math.ceil(number) : Math.floor(number);\n}\nvar defaultOptions = {};\nfunction getDefaultOptions() {\n return defaultOptions;\n}\nfunction startOfWeek$1(dirtyDate, options) {\n var _ref, _ref2, _ref3, _options$weekStartsOn, _options$locale, _options$locale$optio, _defaultOptions$local, _defaultOptions$local2;\n requiredArgs(1, arguments);\n var defaultOptions2 = getDefaultOptions();\n var weekStartsOn = toInteger((_ref = (_ref2 = (_ref3 = (_options$weekStartsOn = options === null || options === void 0 ? void 0 : options.weekStartsOn) !== null && _options$weekStartsOn !== void 0 ? _options$weekStartsOn : options === null || options === void 0 ? void 0 : (_options$locale = options.locale) === null || _options$locale === void 0 ? void 0 : (_options$locale$optio = _options$locale.options) === null || _options$locale$optio === void 0 ? void 0 : _options$locale$optio.weekStartsOn) !== null && _ref3 !== void 0 ? _ref3 : defaultOptions2.weekStartsOn) !== null && _ref2 !== void 0 ? _ref2 : (_defaultOptions$local = defaultOptions2.locale) === null || _defaultOptions$local === void 0 ? void 0 : (_defaultOptions$local2 = _defaultOptions$local.options) === null || _defaultOptions$local2 === void 0 ? void 0 : _defaultOptions$local2.weekStartsOn) !== null && _ref !== void 0 ? _ref : 0);\n if (!(weekStartsOn >= 0 && weekStartsOn <= 6)) {\n throw new RangeError(\"weekStartsOn must be between 0 and 6 inclusively\");\n }\n var date = toDate(dirtyDate);\n var day = date.getDay();\n var diff = (day < weekStartsOn ? 7 : 0) + day - weekStartsOn;\n date.setDate(date.getDate() - diff);\n date.setHours(0, 0, 0, 0);\n return date;\n}\nfunction getTimezoneOffsetInMilliseconds(date) {\n var utcDate = new Date(Date.UTC(date.getFullYear(), date.getMonth(), date.getDate(), date.getHours(), date.getMinutes(), date.getSeconds(), date.getMilliseconds()));\n utcDate.setUTCFullYear(date.getFullYear());\n return date.getTime() - utcDate.getTime();\n}\nvar MILLISECONDS_IN_WEEK$2 = 6048e5;\nfunction differenceInCalendarWeeks(dirtyDateLeft, dirtyDateRight, options) {\n requiredArgs(2, arguments);\n var startOfWeekLeft = startOfWeek$1(dirtyDateLeft, options);\n var startOfWeekRight = startOfWeek$1(dirtyDateRight, options);\n var timestampLeft = startOfWeekLeft.getTime() - getTimezoneOffsetInMilliseconds(startOfWeekLeft);\n var timestampRight = startOfWeekRight.getTime() - getTimezoneOffsetInMilliseconds(startOfWeekRight);\n return Math.round((timestampLeft - timestampRight) / MILLISECONDS_IN_WEEK$2);\n}\nfunction lastDayOfMonth(dirtyDate) {\n requiredArgs(1, arguments);\n var date = toDate(dirtyDate);\n var month = date.getMonth();\n date.setFullYear(date.getFullYear(), month + 1, 0);\n date.setHours(0, 0, 0, 0);\n return date;\n}\nfunction startOfMonth(dirtyDate) {\n requiredArgs(1, arguments);\n var date = toDate(dirtyDate);\n date.setDate(1);\n date.setHours(0, 0, 0, 0);\n return date;\n}\nfunction getWeeksInMonth(date, options) {\n requiredArgs(1, arguments);\n return differenceInCalendarWeeks(lastDayOfMonth(date), startOfMonth(date), options) + 1;\n}\nfunction getWeekYear(dirtyDate, options) {\n var _ref, _ref2, _ref3, _options$firstWeekCon, _options$locale, _options$locale$optio, _defaultOptions$local, _defaultOptions$local2;\n requiredArgs(1, arguments);\n var date = toDate(dirtyDate);\n var year = date.getFullYear();\n var defaultOptions2 = getDefaultOptions();\n var firstWeekContainsDate = toInteger((_ref = (_ref2 = (_ref3 = (_options$firstWeekCon = options === null || options === void 0 ? void 0 : options.firstWeekContainsDate) !== null && _options$firstWeekCon !== void 0 ? _options$firstWeekCon : options === null || options === void 0 ? void 0 : (_options$locale = options.locale) === null || _options$locale === void 0 ? void 0 : (_options$locale$optio = _options$locale.options) === null || _options$locale$optio === void 0 ? void 0 : _options$locale$optio.firstWeekContainsDate) !== null && _ref3 !== void 0 ? _ref3 : defaultOptions2.firstWeekContainsDate) !== null && _ref2 !== void 0 ? _ref2 : (_defaultOptions$local = defaultOptions2.locale) === null || _defaultOptions$local === void 0 ? void 0 : (_defaultOptions$local2 = _defaultOptions$local.options) === null || _defaultOptions$local2 === void 0 ? void 0 : _defaultOptions$local2.firstWeekContainsDate) !== null && _ref !== void 0 ? _ref : 1);\n if (!(firstWeekContainsDate >= 1 && firstWeekContainsDate <= 7)) {\n throw new RangeError(\"firstWeekContainsDate must be between 1 and 7 inclusively\");\n }\n var firstWeekOfNextYear = /* @__PURE__ */ new Date(0);\n firstWeekOfNextYear.setFullYear(year + 1, 0, firstWeekContainsDate);\n firstWeekOfNextYear.setHours(0, 0, 0, 0);\n var startOfNextYear = startOfWeek$1(firstWeekOfNextYear, options);\n var firstWeekOfThisYear = /* @__PURE__ */ new Date(0);\n firstWeekOfThisYear.setFullYear(year, 0, firstWeekContainsDate);\n firstWeekOfThisYear.setHours(0, 0, 0, 0);\n var startOfThisYear = startOfWeek$1(firstWeekOfThisYear, options);\n if (date.getTime() >= startOfNextYear.getTime()) {\n return year + 1;\n } else if (date.getTime() >= startOfThisYear.getTime()) {\n return year;\n } else {\n return year - 1;\n }\n}\nfunction startOfWeekYear(dirtyDate, options) {\n var _ref, _ref2, _ref3, _options$firstWeekCon, _options$locale, _options$locale$optio, _defaultOptions$local, _defaultOptions$local2;\n requiredArgs(1, arguments);\n var defaultOptions2 = getDefaultOptions();\n var firstWeekContainsDate = toInteger((_ref = (_ref2 = (_ref3 = (_options$firstWeekCon = options === null || options === void 0 ? void 0 : options.firstWeekContainsDate) !== null && _options$firstWeekCon !== void 0 ? _options$firstWeekCon : options === null || options === void 0 ? void 0 : (_options$locale = options.locale) === null || _options$locale === void 0 ? void 0 : (_options$locale$optio = _options$locale.options) === null || _options$locale$optio === void 0 ? void 0 : _options$locale$optio.firstWeekContainsDate) !== null && _ref3 !== void 0 ? _ref3 : defaultOptions2.firstWeekContainsDate) !== null && _ref2 !== void 0 ? _ref2 : (_defaultOptions$local = defaultOptions2.locale) === null || _defaultOptions$local === void 0 ? void 0 : (_defaultOptions$local2 = _defaultOptions$local.options) === null || _defaultOptions$local2 === void 0 ? void 0 : _defaultOptions$local2.firstWeekContainsDate) !== null && _ref !== void 0 ? _ref : 1);\n var year = getWeekYear(dirtyDate, options);\n var firstWeek = /* @__PURE__ */ new Date(0);\n firstWeek.setFullYear(year, 0, firstWeekContainsDate);\n firstWeek.setHours(0, 0, 0, 0);\n var date = startOfWeek$1(firstWeek, options);\n return date;\n}\nvar MILLISECONDS_IN_WEEK$1 = 6048e5;\nfunction getWeek(dirtyDate, options) {\n requiredArgs(1, arguments);\n var date = toDate(dirtyDate);\n var diff = startOfWeek$1(date, options).getTime() - startOfWeekYear(date, options).getTime();\n return Math.round(diff / MILLISECONDS_IN_WEEK$1) + 1;\n}\nfunction startOfISOWeek(dirtyDate) {\n requiredArgs(1, arguments);\n return startOfWeek$1(dirtyDate, {\n weekStartsOn: 1\n });\n}\nfunction getISOWeekYear(dirtyDate) {\n requiredArgs(1, arguments);\n var date = toDate(dirtyDate);\n var year = date.getFullYear();\n var fourthOfJanuaryOfNextYear = /* @__PURE__ */ new Date(0);\n fourthOfJanuaryOfNextYear.setFullYear(year + 1, 0, 4);\n fourthOfJanuaryOfNextYear.setHours(0, 0, 0, 0);\n var startOfNextYear = startOfISOWeek(fourthOfJanuaryOfNextYear);\n var fourthOfJanuaryOfThisYear = /* @__PURE__ */ new Date(0);\n fourthOfJanuaryOfThisYear.setFullYear(year, 0, 4);\n fourthOfJanuaryOfThisYear.setHours(0, 0, 0, 0);\n var startOfThisYear = startOfISOWeek(fourthOfJanuaryOfThisYear);\n if (date.getTime() >= startOfNextYear.getTime()) {\n return year + 1;\n } else if (date.getTime() >= startOfThisYear.getTime()) {\n return year;\n } else {\n return year - 1;\n }\n}\nfunction startOfISOWeekYear(dirtyDate) {\n requiredArgs(1, arguments);\n var year = getISOWeekYear(dirtyDate);\n var fourthOfJanuary = /* @__PURE__ */ new Date(0);\n fourthOfJanuary.setFullYear(year, 0, 4);\n fourthOfJanuary.setHours(0, 0, 0, 0);\n var date = startOfISOWeek(fourthOfJanuary);\n return date;\n}\nvar MILLISECONDS_IN_WEEK = 6048e5;\nfunction getISOWeek(dirtyDate) {\n requiredArgs(1, arguments);\n var date = toDate(dirtyDate);\n var diff = startOfISOWeek(date).getTime() - startOfISOWeekYear(date).getTime();\n return Math.round(diff / MILLISECONDS_IN_WEEK) + 1;\n}\nfunction addDays(dirtyDate, dirtyAmount) {\n requiredArgs(2, arguments);\n var date = toDate(dirtyDate);\n var amount = toInteger(dirtyAmount);\n if (isNaN(amount)) {\n return /* @__PURE__ */ new Date(NaN);\n }\n if (!amount) {\n return date;\n }\n date.setDate(date.getDate() + amount);\n return date;\n}\nfunction addMonths(dirtyDate, dirtyAmount) {\n requiredArgs(2, arguments);\n var date = toDate(dirtyDate);\n var amount = toInteger(dirtyAmount);\n if (isNaN(amount)) {\n return /* @__PURE__ */ new Date(NaN);\n }\n if (!amount) {\n return date;\n }\n var dayOfMonth = date.getDate();\n var endOfDesiredMonth = new Date(date.getTime());\n endOfDesiredMonth.setMonth(date.getMonth() + amount + 1, 0);\n var daysInMonth = endOfDesiredMonth.getDate();\n if (dayOfMonth >= daysInMonth) {\n return endOfDesiredMonth;\n } else {\n date.setFullYear(endOfDesiredMonth.getFullYear(), endOfDesiredMonth.getMonth(), dayOfMonth);\n return date;\n }\n}\nfunction addYears(dirtyDate, dirtyAmount) {\n requiredArgs(2, arguments);\n var amount = toInteger(dirtyAmount);\n return addMonths(dirtyDate, amount * 12);\n}\nconst viewAddressKeys = {\n daily: [\"year\", \"month\", \"day\"],\n weekly: [\"year\", \"month\", \"week\"],\n monthly: [\"year\", \"month\"]\n};\nfunction getDays({\n monthComps,\n prevMonthComps,\n nextMonthComps\n}, locale) {\n const days = [];\n const {\n firstDayOfWeek,\n firstWeekday,\n isoWeeknumbers,\n weeknumbers,\n numDays,\n numWeeks\n } = monthComps;\n const prevMonthDaysToShow = firstWeekday + (firstWeekday < firstDayOfWeek ? daysInWeek : 0) - firstDayOfWeek;\n let prevMonth = true;\n let thisMonth = false;\n let nextMonth = false;\n let position = 0;\n const formatter = new Intl.DateTimeFormat(locale.id, {\n weekday: \"long\",\n year: \"numeric\",\n month: \"short\",\n day: \"numeric\"\n });\n let day = prevMonthComps.numDays - prevMonthDaysToShow + 1;\n let dayFromEnd = prevMonthComps.numDays - day + 1;\n let weekdayOrdinal = Math.floor((day - 1) / daysInWeek + 1);\n let weekdayOrdinalFromEnd = 1;\n let week = prevMonthComps.numWeeks;\n let weekFromEnd = 1;\n let month = prevMonthComps.month;\n let year = prevMonthComps.year;\n const today = /* @__PURE__ */ new Date();\n const todayDay = today.getDate();\n const todayMonth = today.getMonth() + 1;\n const todayYear = today.getFullYear();\n for (let w = 1; w <= weeksInMonth; w++) {\n for (let i = 1, weekday = firstDayOfWeek; i <= daysInWeek; i++, weekday += weekday === daysInWeek ? 1 - daysInWeek : 1) {\n if (prevMonth && weekday === firstWeekday) {\n day = 1;\n dayFromEnd = monthComps.numDays;\n weekdayOrdinal = Math.floor((day - 1) / daysInWeek + 1);\n weekdayOrdinalFromEnd = Math.floor((numDays - day) / daysInWeek + 1);\n week = 1;\n weekFromEnd = numWeeks;\n month = monthComps.month;\n year = monthComps.year;\n prevMonth = false;\n thisMonth = true;\n }\n const startDate = locale.getDateFromParams(year, month, day, 0, 0, 0, 0);\n const noonDate = locale.getDateFromParams(year, month, day, 12, 0, 0, 0);\n const endDate = locale.getDateFromParams(\n year,\n month,\n day,\n 23,\n 59,\n 59,\n 999\n );\n const date = startDate;\n const id = `${pad(year, 4)}-${pad(month, 2)}-${pad(day, 2)}`;\n const weekdayPosition = i;\n const weekdayPositionFromEnd = daysInWeek - i;\n const weeknumber = weeknumbers[w - 1];\n const isoWeeknumber = isoWeeknumbers[w - 1];\n const isToday = day === todayDay && month === todayMonth && year === todayYear;\n const isFirstDay = thisMonth && day === 1;\n const isLastDay = thisMonth && day === numDays;\n const onTop = w === 1;\n const onBottom = w === numWeeks;\n const onLeft = i === 1;\n const onRight = i === daysInWeek;\n const dayIndex = getDayIndex(year, month, day);\n days.push({\n locale,\n id,\n position: ++position,\n label: day.toString(),\n ariaLabel: formatter.format(new Date(year, month - 1, day)),\n day,\n dayFromEnd,\n weekday,\n weekdayPosition,\n weekdayPositionFromEnd,\n weekdayOrdinal,\n weekdayOrdinalFromEnd,\n week,\n weekFromEnd,\n weekPosition: w,\n weeknumber,\n isoWeeknumber,\n month,\n year,\n date,\n startDate,\n endDate,\n noonDate,\n dayIndex,\n isToday,\n isFirstDay,\n isLastDay,\n isDisabled: !thisMonth,\n isFocusable: !thisMonth,\n isFocused: false,\n inMonth: thisMonth,\n inPrevMonth: prevMonth,\n inNextMonth: nextMonth,\n onTop,\n onBottom,\n onLeft,\n onRight,\n classes: [\n `id-${id}`,\n `day-${day}`,\n `day-from-end-${dayFromEnd}`,\n `weekday-${weekday}`,\n `weekday-position-${weekdayPosition}`,\n `weekday-ordinal-${weekdayOrdinal}`,\n `weekday-ordinal-from-end-${weekdayOrdinalFromEnd}`,\n `week-${week}`,\n `week-from-end-${weekFromEnd}`,\n {\n \"is-today\": isToday,\n \"is-first-day\": isFirstDay,\n \"is-last-day\": isLastDay,\n \"in-month\": thisMonth,\n \"in-prev-month\": prevMonth,\n \"in-next-month\": nextMonth,\n \"on-top\": onTop,\n \"on-bottom\": onBottom,\n \"on-left\": onLeft,\n \"on-right\": onRight\n }\n ]\n });\n if (thisMonth && isLastDay) {\n thisMonth = false;\n nextMonth = true;\n day = 1;\n dayFromEnd = numDays;\n weekdayOrdinal = 1;\n weekdayOrdinalFromEnd = Math.floor((numDays - day) / daysInWeek + 1);\n week = 1;\n weekFromEnd = nextMonthComps.numWeeks;\n month = nextMonthComps.month;\n year = nextMonthComps.year;\n } else {\n day++;\n dayFromEnd--;\n weekdayOrdinal = Math.floor((day - 1) / daysInWeek + 1);\n weekdayOrdinalFromEnd = Math.floor((numDays - day) / daysInWeek + 1);\n }\n }\n week++;\n weekFromEnd--;\n }\n return days;\n}\nfunction getWeeks(days, showWeeknumbers, showIsoWeeknumbers, locale) {\n const result = days.reduce((result2, day, i) => {\n const weekIndex = Math.floor(i / 7);\n let week = result2[weekIndex];\n if (!week) {\n week = {\n id: `week-${weekIndex + 1}`,\n title: \"\",\n week: day.week,\n weekPosition: day.weekPosition,\n weeknumber: day.weeknumber,\n isoWeeknumber: day.isoWeeknumber,\n weeknumberDisplay: showWeeknumbers ? day.weeknumber : showIsoWeeknumbers ? day.isoWeeknumber : void 0,\n days: []\n };\n result2[weekIndex] = week;\n }\n week.days.push(day);\n return result2;\n }, Array(days.length / daysInWeek));\n result.forEach((week) => {\n const fromDay = week.days[0];\n const toDay = week.days[week.days.length - 1];\n if (fromDay.month === toDay.month) {\n week.title = `${locale.formatDate(fromDay.date, \"MMMM YYYY\")}`;\n } else if (fromDay.year === toDay.year) {\n week.title = `${locale.formatDate(\n fromDay.date,\n \"MMM\"\n )} - ${locale.formatDate(toDay.date, \"MMM YYYY\")}`;\n } else {\n week.title = `${locale.formatDate(\n fromDay.date,\n \"MMM YYYY\"\n )} - ${locale.formatDate(toDay.date, \"MMM YYYY\")}`;\n }\n });\n return result;\n}\nfunction getWeekdays(week, locale) {\n return week.days.map((day) => ({\n label: locale.formatDate(day.date, locale.masks.weekdays),\n weekday: day.weekday\n }));\n}\nfunction getPageId(month, year) {\n return `${year}.${pad(month, 2)}`;\n}\nfunction getPageAddressForDate(date, view, locale) {\n return pick(\n locale.getDateParts(locale.toDate(date)),\n viewAddressKeys[view]\n );\n}\nfunction addPages({ day, week, month, year }, count, view, locale) {\n if (view === \"daily\" && day) {\n const date = new Date(year, month - 1, day);\n const newDate = addDays(date, count);\n return {\n day: newDate.getDate(),\n month: newDate.getMonth() + 1,\n year: newDate.getFullYear()\n };\n } else if (view === \"weekly\" && week) {\n const comps = locale.getMonthParts(month, year);\n const date = comps.firstDayOfMonth;\n const newDate = addDays(date, (week - 1 + count) * 7);\n const parts = locale.getDateParts(newDate);\n return {\n week: parts.week,\n month: parts.month,\n year: parts.year\n };\n } else {\n const date = new Date(year, month - 1, 1);\n const newDate = addMonths(date, count);\n return {\n month: newDate.getMonth() + 1,\n year: newDate.getFullYear()\n };\n }\n}\nfunction pageIsValid(page) {\n return page != null && page.month != null && page.year != null;\n}\nfunction pageIsBeforePage(page, comparePage) {\n if (!pageIsValid(page) || !pageIsValid(comparePage))\n return false;\n page = page;\n comparePage = comparePage;\n if (page.year !== comparePage.year)\n return page.year < comparePage.year;\n if (page.month && comparePage.month && page.month !== comparePage.month)\n return page.month < comparePage.month;\n if (page.week && comparePage.week && page.week !== comparePage.week) {\n return page.week < comparePage.week;\n }\n if (page.day && comparePage.day && page.day !== comparePage.day) {\n return page.day < comparePage.day;\n }\n return false;\n}\nfunction pageIsAfterPage(page, comparePage) {\n if (!pageIsValid(page) || !pageIsValid(comparePage))\n return false;\n page = page;\n comparePage = comparePage;\n if (page.year !== comparePage.year) {\n return page.year > comparePage.year;\n }\n if (page.month && comparePage.month && page.month !== comparePage.month) {\n return page.month > comparePage.month;\n }\n if (page.week && comparePage.week && page.week !== comparePage.week) {\n return page.week > comparePage.week;\n }\n if (page.day && comparePage.day && page.day !== comparePage.day) {\n return page.day > comparePage.day;\n }\n return false;\n}\nfunction pageIsBetweenPages(page, fromPage, toPage) {\n return (page || false) && !pageIsBeforePage(page, fromPage) && !pageIsAfterPage(page, toPage);\n}\nfunction pageIsEqualToPage(aPage, bPage) {\n if (!aPage && bPage)\n return false;\n if (aPage && !bPage)\n return false;\n if (!aPage && !bPage)\n return true;\n aPage = aPage;\n bPage = bPage;\n return aPage.year === bPage.year && aPage.month === bPage.month && aPage.week === bPage.week && aPage.day === bPage.day;\n}\nfunction pageRangeToArray(from, to, view, locale) {\n if (!pageIsValid(from) || !pageIsValid(to))\n return [];\n const result = [];\n while (!pageIsAfterPage(from, to)) {\n result.push(from);\n from = addPages(from, 1, view, locale);\n }\n return result;\n}\nfunction getPageKey(config) {\n const { day, week, month, year } = config;\n let id = `${year}-${pad(month, 2)}`;\n if (week)\n id = `${id}-w${week}`;\n if (day)\n id = `${id}-${pad(day, 2)}`;\n return id;\n}\nfunction getCachedPage(config, locale) {\n const { month, year, showWeeknumbers, showIsoWeeknumbers } = config;\n const date = new Date(year, month - 1, 15);\n const monthComps = locale.getMonthParts(month, year);\n const prevMonthComps = locale.getPrevMonthParts(month, year);\n const nextMonthComps = locale.getNextMonthParts(month, year);\n const days = getDays({ monthComps, prevMonthComps, nextMonthComps }, locale);\n const weeks = getWeeks(days, showWeeknumbers, showIsoWeeknumbers, locale);\n const weekdays2 = getWeekdays(weeks[0], locale);\n return {\n id: getPageKey(config),\n month,\n year,\n monthTitle: locale.formatDate(date, locale.masks.title),\n shortMonthLabel: locale.formatDate(date, \"MMM\"),\n monthLabel: locale.formatDate(date, \"MMMM\"),\n shortYearLabel: year.toString().substring(2),\n yearLabel: year.toString(),\n monthComps,\n prevMonthComps,\n nextMonthComps,\n days,\n weeks,\n weekdays: weekdays2\n };\n}\nfunction getPage(config, cachedPage) {\n const { day, week, view, trimWeeks } = config;\n const page = {\n ...cachedPage,\n ...config,\n title: \"\",\n viewDays: [],\n viewWeeks: []\n };\n switch (view) {\n case \"daily\": {\n let dayObj = page.days.find((d) => d.inMonth);\n if (day) {\n dayObj = page.days.find((d) => d.day === day && d.inMonth) || dayObj;\n } else if (week) {\n dayObj = page.days.find((d) => d.week === week && d.inMonth);\n }\n const weekObj = page.weeks[dayObj.week - 1];\n page.viewWeeks = [weekObj];\n page.viewDays = [dayObj];\n page.week = dayObj.week;\n page.weekTitle = weekObj.title;\n page.day = dayObj.day;\n page.dayTitle = dayObj.ariaLabel;\n page.title = page.dayTitle;\n break;\n }\n case \"weekly\": {\n page.week = week || 1;\n const weekObj = page.weeks[page.week - 1];\n page.viewWeeks = [weekObj];\n page.viewDays = weekObj.days;\n page.weekTitle = weekObj.title;\n page.title = page.weekTitle;\n break;\n }\n default: {\n page.title = page.monthTitle;\n page.viewWeeks = page.weeks.slice(\n 0,\n trimWeeks ? page.monthComps.numWeeks : void 0\n );\n page.viewDays = page.days;\n break;\n }\n }\n return page;\n}\nclass Cache {\n constructor(size, createKey, createItem) {\n __publicField(this, \"keys\", []);\n __publicField(this, \"store\", {});\n this.size = size;\n this.createKey = createKey;\n this.createItem = createItem;\n }\n get(...args) {\n const key = this.createKey(...args);\n return this.store[key];\n }\n getOrSet(...args) {\n const key = this.createKey(...args);\n if (this.store[key])\n return this.store[key];\n const item = this.createItem(...args);\n if (this.keys.length >= this.size) {\n const removeKey = this.keys.shift();\n if (removeKey != null) {\n delete this.store[removeKey];\n }\n }\n this.keys.push(key);\n this.store[key] = item;\n return item;\n }\n}\nclass DateRange {\n constructor(config, locale = new Locale()) {\n __publicField(this, \"order\");\n __publicField(this, \"locale\");\n __publicField(this, \"start\", null);\n __publicField(this, \"end\", null);\n __publicField(this, \"repeat\", null);\n var _a;\n this.locale = locale;\n const { start, end, span, order, repeat } = config;\n if (isDate(start)) {\n this.start = locale.getDateParts(start);\n }\n if (isDate(end)) {\n this.end = locale.getDateParts(end);\n } else if (this.start != null && span) {\n this.end = locale.getDateParts(addDays(this.start.date, span - 1));\n }\n this.order = order ?? 0;\n if (repeat) {\n this.repeat = new DateRepeat(\n {\n from: (_a = this.start) == null ? void 0 : _a.date,\n ...repeat\n },\n {\n locale: this.locale\n }\n );\n }\n }\n static fromMany(ranges, locale) {\n return (isArray(ranges) ? ranges : [ranges]).filter((d) => d).map((d) => DateRange.from(d, locale));\n }\n static from(source, locale) {\n if (source instanceof DateRange)\n return source;\n const config = {\n start: null,\n end: null\n };\n if (source != null) {\n if (isArray(source)) {\n config.start = source[0] ?? null;\n config.end = source[1] ?? null;\n } else if (isObject(source)) {\n Object.assign(config, source);\n } else {\n config.start = source;\n config.end = source;\n }\n }\n if (config.start != null)\n config.start = new Date(config.start);\n if (config.end != null)\n config.end = new Date(config.end);\n return new DateRange(config, locale);\n }\n get opts() {\n const { order, locale } = this;\n return { order, locale };\n }\n get hasRepeat() {\n return !!this.repeat;\n }\n get isSingleDay() {\n const { start, end } = this;\n return start && end && start.year === end.year && start.month === end.month && start.day === end.day;\n }\n get isMultiDay() {\n return !this.isSingleDay;\n }\n get daySpan() {\n if (this.start == null || this.end == null) {\n if (this.hasRepeat)\n return 1;\n return Infinity;\n }\n return this.end.dayIndex - this.start.dayIndex;\n }\n startsOnDay(dayParts) {\n var _a, _b;\n return ((_a = this.start) == null ? void 0 : _a.dayIndex) === dayParts.dayIndex || !!((_b = this.repeat) == null ? void 0 : _b.passes(dayParts));\n }\n intersectsDay(dayIndex) {\n return this.intersectsDayRange(dayIndex, dayIndex);\n }\n intersectsRange(range) {\n var _a, _b;\n return this.intersectsDayRange(\n ((_a = range.start) == null ? void 0 : _a.dayIndex) ?? -Infinity,\n ((_b = range.end) == null ? void 0 : _b.dayIndex) ?? Infinity\n );\n }\n intersectsDayRange(startDayIndex, endDayIndex) {\n if (this.start && this.start.dayIndex > endDayIndex)\n return false;\n if (this.end && this.end.dayIndex < startDayIndex)\n return false;\n return true;\n }\n}\nclass DateRangeContext {\n constructor() {\n __publicField(this, \"records\", {});\n }\n render(data2, range, days) {\n var _a, _b, _c, _d;\n let result = null;\n if (days.length === 0) {\n return result;\n }\n const startDayIndex = days[0].dayIndex;\n const endDayIndex = days[days.length - 1].dayIndex;\n if (range.hasRepeat) {\n days.forEach((day) => {\n var _a2, _b2;\n if (range.startsOnDay(day)) {\n const span = range.daySpan < Infinity ? range.daySpan : 1;\n result = {\n startDay: day.dayIndex,\n startTime: ((_a2 = range.start) == null ? void 0 : _a2.time) ?? 0,\n endDay: day.dayIndex + span - 1,\n endTime: ((_b2 = range.end) == null ? void 0 : _b2.time) ?? MS_PER_DAY\n };\n this.getRangeRecords(data2).push(result);\n }\n });\n } else if (range.intersectsDayRange(startDayIndex, endDayIndex)) {\n result = {\n startDay: ((_a = range.start) == null ? void 0 : _a.dayIndex) ?? -Infinity,\n startTime: ((_b = range.start) == null ? void 0 : _b.time) ?? -Infinity,\n endDay: ((_c = range.end) == null ? void 0 : _c.dayIndex) ?? Infinity,\n endTime: ((_d = range.end) == null ? void 0 : _d.time) ?? Infinity\n };\n this.getRangeRecords(data2).push(result);\n }\n return result;\n }\n getRangeRecords(data2) {\n let record = this.records[data2.key];\n if (!record) {\n record = {\n ranges: [],\n data: data2\n };\n this.records[data2.key] = record;\n }\n return record.ranges;\n }\n getCell(key, day) {\n const cells = this.getCells(day);\n const result = cells.find((cell) => cell.data.key === key);\n return result;\n }\n cellExists(key, dayIndex) {\n const records = this.records[key];\n if (records == null)\n return false;\n return records.ranges.some(\n (r) => r.startDay <= dayIndex && r.endDay >= dayIndex\n );\n }\n getCells(day) {\n const records = Object.values(this.records);\n const result = [];\n const { dayIndex } = day;\n records.forEach(({ data: data2, ranges }) => {\n ranges.filter((r) => r.startDay <= dayIndex && r.endDay >= dayIndex).forEach((range) => {\n const onStart = dayIndex === range.startDay;\n const onEnd = dayIndex === range.endDay;\n const startTime = onStart ? range.startTime : 0;\n const startDate = new Date(day.startDate.getTime() + startTime);\n const endTime = onEnd ? range.endTime : MS_PER_DAY;\n const endDate = new Date(day.endDate.getTime() + endTime);\n const allDay = startTime === 0 && endTime === MS_PER_DAY;\n const order = data2.order || 0;\n result.push({\n ...range,\n data: data2,\n onStart,\n onEnd,\n startTime,\n startDate,\n endTime,\n endDate,\n allDay,\n order\n });\n });\n });\n result.sort((a, b) => a.order - b.order);\n return result;\n }\n}\nconst locales = {\n // Arabic\n ar: { dow: 7, L: \"D/M/YYYY\" },\n // Bulgarian\n bg: { dow: 2, L: \"D.MM.YYYY\" },\n // Catalan\n ca: { dow: 2, L: \"DD/MM/YYYY\" },\n // Chinese (China)\n \"zh-CN\": { dow: 2, L: \"YYYY/MM/DD\" },\n // Chinese (Taiwan)\n \"zh-TW\": { dow: 1, L: \"YYYY/MM/DD\" },\n // Croatian\n hr: { dow: 2, L: \"DD.MM.YYYY\" },\n // Czech\n cs: { dow: 2, L: \"DD.MM.YYYY\" },\n // Danish\n da: { dow: 2, L: \"DD.MM.YYYY\" },\n // Dutch\n nl: { dow: 2, L: \"DD-MM-YYYY\" },\n // English (US)\n \"en-US\": { dow: 1, L: \"MM/DD/YYYY\" },\n // English (Australia)\n \"en-AU\": { dow: 2, L: \"DD/MM/YYYY\" },\n // English (Canada)\n \"en-CA\": { dow: 1, L: \"YYYY-MM-DD\" },\n // English (Great Britain)\n \"en-GB\": { dow: 2, L: \"DD/MM/YYYY\" },\n // English (Ireland)\n \"en-IE\": { dow: 2, L: \"DD-MM-YYYY\" },\n // English (New Zealand)\n \"en-NZ\": { dow: 2, L: \"DD/MM/YYYY\" },\n // English (South Africa)\n \"en-ZA\": { dow: 1, L: \"YYYY/MM/DD\" },\n // Esperanto\n eo: { dow: 2, L: \"YYYY-MM-DD\" },\n // Estonian\n et: { dow: 2, L: \"DD.MM.YYYY\" },\n // Finnish\n fi: { dow: 2, L: \"DD.MM.YYYY\" },\n // French\n fr: { dow: 2, L: \"DD/MM/YYYY\" },\n // French (Canada)\n \"fr-CA\": { dow: 1, L: \"YYYY-MM-DD\" },\n // French (Switzerland)\n \"fr-CH\": { dow: 2, L: \"DD.MM.YYYY\" },\n // German\n de: { dow: 2, L: \"DD.MM.YYYY\" },\n // Hebrew\n he: { dow: 1, L: \"DD.MM.YYYY\" },\n // Indonesian\n id: { dow: 2, L: \"DD/MM/YYYY\" },\n // Italian\n it: { dow: 2, L: \"DD/MM/YYYY\" },\n // Japanese\n ja: { dow: 1, L: \"YYYY年M月D日\" },\n // Korean\n ko: { dow: 1, L: \"YYYY.MM.DD\" },\n // Latvian\n lv: { dow: 2, L: \"DD.MM.YYYY\" },\n // Lithuanian\n lt: { dow: 2, L: \"DD.MM.YYYY\" },\n // Macedonian\n mk: { dow: 2, L: \"D.MM.YYYY\" },\n // Norwegian\n nb: { dow: 2, L: \"D. MMMM YYYY\" },\n nn: { dow: 2, L: \"D. MMMM YYYY\" },\n // Polish\n pl: { dow: 2, L: \"DD.MM.YYYY\" },\n // Portuguese\n pt: { dow: 2, L: \"DD/MM/YYYY\" },\n // Romanian\n ro: { dow: 2, L: \"DD.MM.YYYY\" },\n // Russian\n ru: { dow: 2, L: \"DD.MM.YYYY\" },\n // Slovak\n sk: { dow: 2, L: \"DD.MM.YYYY\" },\n // Spanish (Spain)\n \"es-ES\": { dow: 2, L: \"DD/MM/YYYY\" },\n // Spanish (Mexico)\n \"es-MX\": { dow: 2, L: \"DD/MM/YYYY\" },\n // Swedish\n sv: { dow: 2, L: \"YYYY-MM-DD\" },\n // Thai\n th: { dow: 1, L: \"DD/MM/YYYY\" },\n // Turkish\n tr: { dow: 2, L: \"DD.MM.YYYY\" },\n // Ukrainian\n uk: { dow: 2, L: \"DD.MM.YYYY\" },\n // Vietnam\n vi: { dow: 2, L: \"DD/MM/YYYY\" }\n};\nlocales.en = locales[\"en-US\"];\nlocales.es = locales[\"es-ES\"];\nlocales.no = locales.nb;\nlocales.zh = locales[\"zh-CN\"];\nconst localeSettings = Object.entries(locales).reduce(\n (res, [id, { dow, L }]) => {\n res[id] = {\n id,\n firstDayOfWeek: dow,\n masks: { L }\n };\n return res;\n },\n {}\n);\nconst title = \"MMMM YYYY\";\nconst weekdays = \"W\";\nconst navMonths = \"MMM\";\nconst hours = \"h A\";\nconst input = [\n \"L\",\n \"YYYY-MM-DD\",\n \"YYYY/MM/DD\"\n];\nconst inputDateTime = [\n \"L h:mm A\",\n \"YYYY-MM-DD h:mm A\",\n \"YYYY/MM/DD h:mm A\"\n];\nconst inputDateTime24hr = [\n \"L HH:mm\",\n \"YYYY-MM-DD HH:mm\",\n \"YYYY/MM/DD HH:mm\"\n];\nconst inputTime = [\n \"h:mm A\"\n];\nconst inputTime24hr = [\n \"HH:mm\"\n];\nconst dayPopover = \"WWW, MMM D, YYYY\";\nconst data = [\n \"L\",\n \"YYYY-MM-DD\",\n \"YYYY/MM/DD\"\n];\nconst model = \"iso\";\nconst iso = \"YYYY-MM-DDTHH:mm:ss.SSSZ\";\nconst masks = {\n title,\n weekdays,\n navMonths,\n hours,\n input,\n inputDateTime,\n inputDateTime24hr,\n inputTime,\n inputTime24hr,\n dayPopover,\n data,\n model,\n iso\n};\nconst maxSwipeTime = 300;\nconst minHorizontalSwipeDistance = 60;\nconst maxVerticalSwipeDistance = 80;\nconst touch = {\n maxSwipeTime,\n minHorizontalSwipeDistance,\n maxVerticalSwipeDistance\n};\nconst defaultConfig = {\n componentPrefix: \"V\",\n color: \"blue\",\n isDark: false,\n navVisibility: \"click\",\n titlePosition: \"center\",\n transition: \"slide-h\",\n touch,\n masks,\n locales: localeSettings,\n datePicker: {\n updateOnInput: true,\n inputDebounce: 1e3,\n popover: {\n visibility: \"hover-focus\",\n placement: \"bottom-start\",\n isInteractive: true\n }\n }\n};\nconst state = reactive(defaultConfig);\nconst defaultLocales = computed(() => {\n return mapValues$1(state.locales, (l) => {\n l.masks = defaultsDeep$1(l.masks, state.masks);\n return l;\n });\n});\nconst getDefault = (path) => {\n if (typeof window !== \"undefined\" && has(window.__vcalendar__, path)) {\n return get$2(window.__vcalendar__, path);\n }\n return get$2(state, path);\n};\nconst setupDefaults = (app, userDefaults) => {\n app.config.globalProperties.$VCalendar = state;\n return Object.assign(state, defaultsDeep$1(userDefaults, state));\n};\nconst DEFAULT_MONTH_CACHE_SIZE = 12;\nconst DEFAULT_PAGE_CACHE_SIZE = 5;\nfunction resolveConfig(config, locales2) {\n const detLocale = new Intl.DateTimeFormat().resolvedOptions().locale;\n let id;\n if (isString$1(config)) {\n id = config;\n } else if (has(config, \"id\")) {\n id = config.id;\n }\n id = (id || detLocale).toLowerCase();\n const localeKeys = Object.keys(locales2);\n const validKey = (k) => localeKeys.find((lk) => lk.toLowerCase() === k);\n id = validKey(id) || validKey(id.substring(0, 2)) || detLocale;\n const defLocale = {\n ...locales2[\"en-IE\"],\n ...locales2[id],\n id,\n monthCacheSize: DEFAULT_MONTH_CACHE_SIZE,\n pageCacheSize: DEFAULT_PAGE_CACHE_SIZE\n };\n const result = isObject(config) ? defaultsDeep$1(config, defLocale) : defLocale;\n return result;\n}\nclass Locale {\n constructor(config = void 0, timezone) {\n __publicField(this, \"id\");\n __publicField(this, \"daysInWeek\");\n __publicField(this, \"firstDayOfWeek\");\n __publicField(this, \"masks\");\n __publicField(this, \"timezone\");\n __publicField(this, \"hourLabels\");\n __publicField(this, \"dayNames\");\n __publicField(this, \"dayNamesShort\");\n __publicField(this, \"dayNamesShorter\");\n __publicField(this, \"dayNamesNarrow\");\n __publicField(this, \"monthNames\");\n __publicField(this, \"monthNamesShort\");\n __publicField(this, \"relativeTimeNames\");\n __publicField(this, \"amPm\", [\"am\", \"pm\"]);\n __publicField(this, \"monthCache\");\n __publicField(this, \"pageCache\");\n const { id, firstDayOfWeek, masks: masks2, monthCacheSize, pageCacheSize } = resolveConfig(config, defaultLocales.value);\n this.monthCache = new Cache(\n monthCacheSize,\n getMonthPartsKey,\n getMonthParts\n );\n this.pageCache = new Cache(pageCacheSize, getPageKey, getCachedPage);\n this.id = id;\n this.daysInWeek = daysInWeek;\n this.firstDayOfWeek = clamp(firstDayOfWeek, 1, daysInWeek);\n this.masks = masks2;\n this.timezone = timezone || void 0;\n this.hourLabels = this.getHourLabels();\n this.dayNames = getDayNames(\"long\", this.id);\n this.dayNamesShort = getDayNames(\"short\", this.id);\n this.dayNamesShorter = this.dayNamesShort.map((s) => s.substring(0, 2));\n this.dayNamesNarrow = getDayNames(\"narrow\", this.id);\n this.monthNames = getMonthNames(\"long\", this.id);\n this.monthNamesShort = getMonthNames(\"short\", this.id);\n this.relativeTimeNames = getRelativeTimeNames(this.id);\n }\n formatDate(date, masks2) {\n return formatDate(date, masks2, this);\n }\n parseDate(dateString, mask) {\n return parseDate(dateString, mask, this);\n }\n toDate(d, opts = {}) {\n const nullDate = /* @__PURE__ */ new Date(NaN);\n let result = nullDate;\n const { fillDate, mask, patch, rules } = opts;\n if (isNumber$1(d)) {\n opts.type = \"number\";\n result = /* @__PURE__ */ new Date(+d);\n } else if (isString$1(d)) {\n opts.type = \"string\";\n result = d ? parseDate(d, mask || \"iso\", this) : nullDate;\n } else if (isDate(d)) {\n opts.type = \"date\";\n result = new Date(d.getTime());\n } else if (isDateParts(d)) {\n opts.type = \"object\";\n result = this.getDateFromParts(d);\n }\n if (result && (patch || rules)) {\n let parts = this.getDateParts(result);\n if (patch && fillDate != null) {\n const fillParts = this.getDateParts(this.toDate(fillDate));\n parts = this.getDateParts(\n this.toDate({ ...fillParts, ...pick(parts, DatePatchKeys[patch]) })\n );\n }\n if (rules) {\n parts = applyRulesForDateParts(parts, rules);\n }\n result = this.getDateFromParts(parts);\n }\n return result || nullDate;\n }\n toDateOrNull(d, opts = {}) {\n const dte = this.toDate(d, opts);\n return isNaN(dte.getTime()) ? null : dte;\n }\n fromDate(date, { type, mask } = {}) {\n switch (type) {\n case \"number\":\n return date ? date.getTime() : NaN;\n case \"string\":\n return date ? this.formatDate(date, mask || \"iso\") : \"\";\n case \"object\":\n return date ? this.getDateParts(date) : null;\n default:\n return date ? new Date(date) : null;\n }\n }\n range(source) {\n return DateRange.from(source, this);\n }\n ranges(ranges) {\n return DateRange.fromMany(ranges, this);\n }\n getDateParts(date) {\n return getDateParts(date, this);\n }\n getDateFromParts(parts) {\n return getDateFromParts(parts, this.timezone);\n }\n getDateFromParams(year, month, day, hours2, minutes, seconds, milliseconds) {\n return this.getDateFromParts({\n year,\n month,\n day,\n hours: hours2,\n minutes,\n seconds,\n milliseconds\n });\n }\n getPage(config) {\n const cachedPage = this.pageCache.getOrSet(config, this);\n return getPage(config, cachedPage);\n }\n getMonthParts(month, year) {\n const { firstDayOfWeek } = this;\n return this.monthCache.getOrSet(month, year, firstDayOfWeek);\n }\n getThisMonthParts() {\n const date = /* @__PURE__ */ new Date();\n return this.getMonthParts(\n date.getMonth() + 1,\n date.getFullYear()\n );\n }\n getPrevMonthParts(month, year) {\n if (month === 1)\n return this.getMonthParts(12, year - 1);\n return this.getMonthParts(month - 1, year);\n }\n getNextMonthParts(month, year) {\n if (month === 12)\n return this.getMonthParts(1, year + 1);\n return this.getMonthParts(month + 1, year);\n }\n getHourLabels() {\n return getHourDates().map((d) => {\n return this.formatDate(d, this.masks.hours);\n });\n }\n getDayId(date) {\n return this.formatDate(date, \"YYYY-MM-DD\");\n }\n}\nvar GroupRuleType = /* @__PURE__ */ ((GroupRuleType2) => {\n GroupRuleType2[\"Any\"] = \"any\";\n GroupRuleType2[\"All\"] = \"all\";\n return GroupRuleType2;\n})(GroupRuleType || {});\nvar IntervalRuleType = /* @__PURE__ */ ((IntervalRuleType2) => {\n IntervalRuleType2[\"Days\"] = \"days\";\n IntervalRuleType2[\"Weeks\"] = \"weeks\";\n IntervalRuleType2[\"Months\"] = \"months\";\n IntervalRuleType2[\"Years\"] = \"years\";\n return IntervalRuleType2;\n})(IntervalRuleType || {});\nvar ComponentRuleType = /* @__PURE__ */ ((ComponentRuleType2) => {\n ComponentRuleType2[\"Days\"] = \"days\";\n ComponentRuleType2[\"Weekdays\"] = \"weekdays\";\n ComponentRuleType2[\"Weeks\"] = \"weeks\";\n ComponentRuleType2[\"Months\"] = \"months\";\n ComponentRuleType2[\"Years\"] = \"years\";\n return ComponentRuleType2;\n})(ComponentRuleType || {});\nvar OrdinalComponentRuleType = /* @__PURE__ */ ((OrdinalComponentRuleType2) => {\n OrdinalComponentRuleType2[\"OrdinalWeekdays\"] = \"ordinalWeekdays\";\n return OrdinalComponentRuleType2;\n})(OrdinalComponentRuleType || {});\nclass IntervalRule {\n constructor(type, interval, from) {\n __publicField(this, \"validated\", true);\n this.type = type;\n this.interval = interval;\n this.from = from;\n if (!this.from) {\n console.error(\n `A valid \"from\" date is required for date interval rule. This rule will be skipped.`\n );\n this.validated = false;\n }\n }\n passes(dateParts) {\n if (!this.validated)\n return true;\n const { date } = dateParts;\n switch (this.type) {\n case \"days\": {\n return diffInDays(this.from.date, date) % this.interval === 0;\n }\n case \"weeks\": {\n return diffInWeeks(this.from.date, date) % this.interval === 0;\n }\n case \"months\": {\n return diffInMonths(this.from.date, date) % this.interval === 0;\n }\n case \"years\": {\n return diffInYears(this.from.date, date) % this.interval === 0;\n }\n default: {\n return false;\n }\n }\n }\n}\nclass ComponentRule {\n constructor(type, components2, validator, getter) {\n __publicField(this, \"components\", []);\n this.type = type;\n this.validator = validator;\n this.getter = getter;\n this.components = this.normalizeComponents(components2);\n }\n static create(type, config) {\n switch (type) {\n case \"days\":\n return new DaysRule(config);\n case \"weekdays\":\n return new WeekdaysRule(config);\n case \"weeks\":\n return new WeeksRule(config);\n case \"months\":\n return new MonthsRule(config);\n case \"years\":\n return new YearsRule(config);\n }\n }\n normalizeComponents(components2) {\n if (this.validator(components2))\n return [components2];\n if (!isArray(components2))\n return [];\n const result = [];\n components2.forEach((component) => {\n if (!this.validator(component)) {\n console.error(\n `Component value ${component} in invalid for \"${this.type}\" rule. This rule will be skipped.`\n );\n return;\n }\n result.push(component);\n });\n return result;\n }\n passes(dayParts) {\n const comps = this.getter(dayParts);\n const result = comps.some((comp) => this.components.includes(comp));\n return result;\n }\n}\nclass DaysRule extends ComponentRule {\n constructor(components2) {\n super(\n \"days\",\n components2,\n isDayInMonth,\n ({ day, dayFromEnd }) => [day, -dayFromEnd]\n );\n }\n}\nclass WeekdaysRule extends ComponentRule {\n constructor(components2) {\n super(\n \"weekdays\",\n components2,\n isDayOfWeek,\n ({ weekday }) => [weekday]\n );\n }\n}\nclass WeeksRule extends ComponentRule {\n constructor(components2) {\n super(\n \"weeks\",\n components2,\n isWeekInMonth,\n ({ week, weekFromEnd }) => [week, -weekFromEnd]\n );\n }\n}\nclass MonthsRule extends ComponentRule {\n constructor(components2) {\n super(\"months\", components2, isMonthInYear, ({ month }) => [\n month\n ]);\n }\n}\nclass YearsRule extends ComponentRule {\n constructor(components2) {\n super(\"years\", components2, isNumber$1, ({ year }) => [year]);\n }\n}\nclass OrdinalComponentRule {\n constructor(type, components2) {\n __publicField(this, \"components\");\n this.type = type;\n this.components = this.normalizeComponents(components2);\n }\n normalizeArrayConfig(config) {\n const result = [];\n config.forEach((numOrArray, i) => {\n if (isNumber$1(numOrArray)) {\n if (i === 0)\n return;\n if (!isOrdinalWeekInMonth(config[0])) {\n console.error(\n `Ordinal range for \"${this.type}\" rule is from -5 to -1 or 1 to 5. This rule will be skipped.`\n );\n return;\n }\n if (!isDayOfWeek(numOrArray)) {\n console.error(\n `Acceptable range for \"${this.type}\" rule is from 1 to 5. This rule will be skipped`\n );\n return;\n }\n result.push([config[0], numOrArray]);\n } else if (isArray(numOrArray)) {\n result.push(...this.normalizeArrayConfig(numOrArray));\n }\n });\n return result;\n }\n normalizeComponents(config) {\n const result = [];\n config.forEach((numOrArray, i) => {\n if (isNumber$1(numOrArray)) {\n if (i === 0)\n return;\n if (!isOrdinalWeekInMonth(config[0])) {\n console.error(\n `Ordinal range for \"${this.type}\" rule is from -5 to -1 or 1 to 5. This rule will be skipped.`\n );\n return;\n }\n if (!isDayOfWeek(numOrArray)) {\n console.error(\n `Acceptable range for \"${this.type}\" rule is from 1 to 5. This rule will be skipped`\n );\n return;\n }\n result.push([config[0], numOrArray]);\n } else if (isArray(numOrArray)) {\n result.push(...this.normalizeArrayConfig(numOrArray));\n }\n });\n return result;\n }\n passes(dayParts) {\n const { weekday, weekdayOrdinal, weekdayOrdinalFromEnd } = dayParts;\n return this.components.some(\n ([ordinalWeek, ordinalWeekday]) => (ordinalWeek === weekdayOrdinal || ordinalWeek === -weekdayOrdinalFromEnd) && weekday === ordinalWeekday\n );\n }\n}\nclass FunctionRule {\n constructor(fn) {\n __publicField(this, \"type\", \"function\");\n __publicField(this, \"validated\", true);\n this.fn = fn;\n if (!isFunction$4(fn)) {\n console.error(\n `The function rule requires a valid function. This rule will be skipped.`\n );\n this.validated = false;\n }\n }\n passes(dayParts) {\n if (!this.validated)\n return true;\n return this.fn(dayParts);\n }\n}\nclass DateRepeat {\n constructor(config, options = {}, parent) {\n __publicField(this, \"validated\", true);\n __publicField(this, \"config\");\n __publicField(this, \"type\", GroupRuleType.Any);\n __publicField(this, \"from\");\n __publicField(this, \"until\");\n __publicField(this, \"rules\", []);\n __publicField(this, \"locale\", new Locale());\n this.parent = parent;\n if (options.locale)\n this.locale = options.locale;\n this.config = config;\n if (isFunction$4(config)) {\n this.type = GroupRuleType.All;\n this.rules = [new FunctionRule(config)];\n } else if (isArray(config)) {\n this.type = GroupRuleType.Any;\n this.rules = config.map((c) => new DateRepeat(c, options, this));\n } else if (isObject(config)) {\n this.type = GroupRuleType.All;\n this.from = config.from ? this.locale.getDateParts(config.from) : parent == null ? void 0 : parent.from;\n this.until = config.until ? this.locale.getDateParts(config.until) : parent == null ? void 0 : parent.until;\n this.rules = this.getObjectRules(config);\n } else {\n console.error(\"Rule group configuration must be an object or an array.\");\n this.validated = false;\n }\n }\n getObjectRules(config) {\n const rules = [];\n if (config.every) {\n if (isString$1(config.every)) {\n config.every = [1, `${config.every}s`];\n }\n if (isArray(config.every)) {\n const [interval = 1, type = IntervalRuleType.Days] = config.every;\n rules.push(new IntervalRule(type, interval, this.from));\n }\n }\n Object.values(ComponentRuleType).forEach((type) => {\n if (!(type in config))\n return;\n rules.push(ComponentRule.create(type, config[type]));\n });\n Object.values(OrdinalComponentRuleType).forEach((type) => {\n if (!(type in config))\n return;\n rules.push(new OrdinalComponentRule(type, config[type]));\n });\n if (config.on != null) {\n if (!isArray(config.on))\n config.on = [config.on];\n rules.push(\n new DateRepeat(config.on, { locale: this.locale }, this.parent)\n );\n }\n return rules;\n }\n passes(dayParts) {\n if (!this.validated)\n return true;\n if (this.from && dayParts.dayIndex <= this.from.dayIndex)\n return false;\n if (this.until && dayParts.dayIndex >= this.until.dayIndex)\n return false;\n if (this.type === GroupRuleType.Any) {\n return this.rules.some((r) => r.passes(dayParts));\n }\n return this.rules.every((r) => r.passes(dayParts));\n }\n}\nfunction isDayInMonth(dayInMonth) {\n if (!isNumber$1(dayInMonth))\n return false;\n return dayInMonth >= 1 && dayInMonth <= 31;\n}\nfunction isDayOfWeek(dayOfWeek) {\n if (!isNumber$1(dayOfWeek))\n return false;\n return dayOfWeek >= 1 && dayOfWeek <= 7;\n}\nfunction isWeekInMonth(weekInMonth) {\n if (!isNumber$1(weekInMonth))\n return false;\n return weekInMonth >= -6 && weekInMonth <= -1 || weekInMonth >= 1 && weekInMonth <= 6;\n}\nfunction isMonthInYear(monthInYear) {\n if (!isNumber$1(monthInYear))\n return false;\n return monthInYear >= 1 && monthInYear <= 12;\n}\nfunction isOrdinalWeekInMonth(weekInMonth) {\n if (!isNumber$1(weekInMonth))\n return false;\n if (weekInMonth < -5 || weekInMonth > 5 || weekInMonth === 0)\n return false;\n return true;\n}\nconst DatePatchKeys = {\n dateTime: [\n \"year\",\n \"month\",\n \"day\",\n \"hours\",\n \"minutes\",\n \"seconds\",\n \"milliseconds\"\n ],\n date: [\"year\", \"month\", \"day\"],\n time: [\"hours\", \"minutes\", \"seconds\", \"milliseconds\"]\n};\nconst daysInWeek = 7;\nconst weeksInMonth = 6;\nconst MS_PER_SECOND = 1e3;\nconst MS_PER_MINUTE = MS_PER_SECOND * 60;\nconst MS_PER_HOUR = MS_PER_MINUTE * 60;\nconst MS_PER_DAY = MS_PER_HOUR * 24;\nconst daysInMonths = [31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31];\nconst maskMacros = [\"L\", \"iso\"];\nconst DATE_PART_RANGES = {\n milliseconds: [0, 999, 3],\n seconds: [0, 59, 2],\n minutes: [0, 59, 2],\n hours: [0, 23, 2]\n};\nconst token = /d{1,2}|W{1,4}|M{1,4}|YY(?:YY)?|S{1,3}|Do|Z{1,4}|([HhMsDm])\\1?|[aA]|\"[^\"]*\"|'[^']*'/g;\nconst literal = /\\[([^]*?)\\]/gm;\nconst formatFlags = {\n D(d) {\n return d.day;\n },\n DD(d) {\n return pad(d.day, 2);\n },\n // Do(d: DateParts, l: Locale) {\n // return l.DoFn(d.day);\n // },\n d(d) {\n return d.weekday - 1;\n },\n dd(d) {\n return pad(d.weekday - 1, 2);\n },\n W(d, l) {\n return l.dayNamesNarrow[d.weekday - 1];\n },\n WW(d, l) {\n return l.dayNamesShorter[d.weekday - 1];\n },\n WWW(d, l) {\n return l.dayNamesShort[d.weekday - 1];\n },\n WWWW(d, l) {\n return l.dayNames[d.weekday - 1];\n },\n M(d) {\n return d.month;\n },\n MM(d) {\n return pad(d.month, 2);\n },\n MMM(d, l) {\n return l.monthNamesShort[d.month - 1];\n },\n MMMM(d, l) {\n return l.monthNames[d.month - 1];\n },\n YY(d) {\n return String(d.year).substr(2);\n },\n YYYY(d) {\n return pad(d.year, 4);\n },\n h(d) {\n return d.hours % 12 || 12;\n },\n hh(d) {\n return pad(d.hours % 12 || 12, 2);\n },\n H(d) {\n return d.hours;\n },\n HH(d) {\n return pad(d.hours, 2);\n },\n m(d) {\n return d.minutes;\n },\n mm(d) {\n return pad(d.minutes, 2);\n },\n s(d) {\n return d.seconds;\n },\n ss(d) {\n return pad(d.seconds, 2);\n },\n S(d) {\n return Math.round(d.milliseconds / 100);\n },\n SS(d) {\n return pad(Math.round(d.milliseconds / 10), 2);\n },\n SSS(d) {\n return pad(d.milliseconds, 3);\n },\n a(d, l) {\n return d.hours < 12 ? l.amPm[0] : l.amPm[1];\n },\n A(d, l) {\n return d.hours < 12 ? l.amPm[0].toUpperCase() : l.amPm[1].toUpperCase();\n },\n Z() {\n return \"Z\";\n },\n ZZ(d) {\n const o = d.timezoneOffset;\n return `${o > 0 ? \"-\" : \"+\"}${pad(Math.floor(Math.abs(o) / 60), 2)}`;\n },\n ZZZ(d) {\n const o = d.timezoneOffset;\n return `${o > 0 ? \"-\" : \"+\"}${pad(\n Math.floor(Math.abs(o) / 60) * 100 + Math.abs(o) % 60,\n 4\n )}`;\n },\n ZZZZ(d) {\n const o = d.timezoneOffset;\n return `${o > 0 ? \"-\" : \"+\"}${pad(Math.floor(Math.abs(o) / 60), 2)}:${pad(\n Math.abs(o) % 60,\n 2\n )}`;\n }\n};\nconst twoDigits = /\\d\\d?/;\nconst threeDigits = /\\d{3}/;\nconst fourDigits = /\\d{4}/;\nconst word = /[0-9]*['a-z\\u00A0-\\u05FF\\u0700-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF]+|[\\u0600-\\u06FF/]+(\\s*?[\\u0600-\\u06FF]+){1,2}/i;\nconst noop = () => {\n};\nconst monthUpdate = (arrName) => (d, v, l) => {\n const index2 = l[arrName].indexOf(\n v.charAt(0).toUpperCase() + v.substr(1).toLowerCase()\n );\n if (~index2) {\n d.month = index2;\n }\n};\nconst parseFlags = {\n D: [\n twoDigits,\n (d, v) => {\n d.day = v;\n }\n ],\n Do: [\n new RegExp(twoDigits.source + word.source),\n (d, v) => {\n d.day = parseInt(v, 10);\n }\n ],\n d: [twoDigits, noop],\n W: [word, noop],\n M: [\n twoDigits,\n (d, v) => {\n d.month = v - 1;\n }\n ],\n MMM: [word, monthUpdate(\"monthNamesShort\")],\n MMMM: [word, monthUpdate(\"monthNames\")],\n YY: [\n twoDigits,\n (d, v) => {\n const da = /* @__PURE__ */ new Date();\n const cent = +da.getFullYear().toString().substr(0, 2);\n d.year = +`${v > 68 ? cent - 1 : cent}${v}`;\n }\n ],\n YYYY: [\n fourDigits,\n (d, v) => {\n d.year = v;\n }\n ],\n S: [\n /\\d/,\n (d, v) => {\n d.milliseconds = v * 100;\n }\n ],\n SS: [\n /\\d{2}/,\n (d, v) => {\n d.milliseconds = v * 10;\n }\n ],\n SSS: [\n threeDigits,\n (d, v) => {\n d.milliseconds = v;\n }\n ],\n h: [\n twoDigits,\n (d, v) => {\n d.hours = v;\n }\n ],\n m: [\n twoDigits,\n (d, v) => {\n d.minutes = v;\n }\n ],\n s: [\n twoDigits,\n (d, v) => {\n d.seconds = v;\n }\n ],\n a: [\n word,\n (d, v, l) => {\n const val = v.toLowerCase();\n if (val === l.amPm[0]) {\n d.isPm = false;\n } else if (val === l.amPm[1]) {\n d.isPm = true;\n }\n }\n ],\n Z: [\n /[^\\s]*?[+-]\\d\\d:?\\d\\d|[^\\s]*?Z?/,\n (d, v) => {\n if (v === \"Z\")\n v = \"+00:00\";\n const parts = `${v}`.match(/([+-]|\\d\\d)/gi);\n if (parts) {\n const minutes = +parts[1] * 60 + parseInt(parts[2], 10);\n d.timezoneOffset = parts[0] === \"+\" ? minutes : -minutes;\n }\n }\n ]\n};\nparseFlags.DD = parseFlags.D;\nparseFlags.dd = parseFlags.d;\nparseFlags.WWWW = parseFlags.WWW = parseFlags.WW = parseFlags.W;\nparseFlags.MM = parseFlags.M;\nparseFlags.mm = parseFlags.m;\nparseFlags.hh = parseFlags.H = parseFlags.HH = parseFlags.h;\nparseFlags.ss = parseFlags.s;\nparseFlags.A = parseFlags.a;\nparseFlags.ZZZZ = parseFlags.ZZZ = parseFlags.ZZ = parseFlags.Z;\nfunction normalizeMasks(masks2, locale) {\n return (arrayHasItems(masks2) && masks2 || [\n isString$1(masks2) && masks2 || \"YYYY-MM-DD\"\n ]).map(\n (m) => maskMacros.reduce(\n (prev, curr) => prev.replace(curr, locale.masks[curr] || \"\"),\n m\n )\n );\n}\nfunction isDateParts(parts) {\n return isObject(parts) && \"year\" in parts && \"month\" in parts && \"day\" in parts;\n}\nfunction startOfWeek(date, firstDayOfWeek = 1) {\n const day = date.getDay() + 1;\n const daysToAdd = day >= firstDayOfWeek ? firstDayOfWeek - day : -(7 - (firstDayOfWeek - day));\n return addDays(date, daysToAdd);\n}\nfunction getDayIndex(year, month, day) {\n const utcDate = Date.UTC(year, month - 1, day);\n return diffInDays(/* @__PURE__ */ new Date(0), new Date(utcDate));\n}\nfunction diffInDays(d1, d2) {\n return Math.round((d2.getTime() - d1.getTime()) / MS_PER_DAY);\n}\nfunction diffInWeeks(d1, d2) {\n return Math.ceil(diffInDays(startOfWeek(d1), startOfWeek(d2)) / 7);\n}\nfunction diffInYears(d1, d2) {\n return d2.getUTCFullYear() - d1.getUTCFullYear();\n}\nfunction diffInMonths(d1, d2) {\n return diffInYears(d1, d2) * 12 + (d2.getMonth() - d1.getMonth());\n}\nfunction getDateFromParts(parts, timezone = \"\") {\n const d = /* @__PURE__ */ new Date();\n const {\n year = d.getFullYear(),\n month = d.getMonth() + 1,\n day = d.getDate(),\n hours: hrs = 0,\n minutes: min = 0,\n seconds: sec = 0,\n milliseconds: ms = 0\n } = parts;\n if (timezone) {\n const dateString = `${pad(year, 4)}-${pad(month, 2)}-${pad(day, 2)}T${pad(\n hrs,\n 2\n )}:${pad(min, 2)}:${pad(sec, 2)}.${pad(ms, 3)}`;\n return toDate$1(dateString, { timeZone: timezone });\n }\n return new Date(year, month - 1, day, hrs, min, sec, ms);\n}\nfunction getDateParts(date, locale) {\n let tzDate = new Date(date.getTime());\n if (locale.timezone) {\n tzDate = new Date(\n date.toLocaleString(\"en-US\", { timeZone: locale.timezone })\n );\n tzDate.setMilliseconds(date.getMilliseconds());\n }\n const milliseconds = tzDate.getMilliseconds();\n const seconds = tzDate.getSeconds();\n const minutes = tzDate.getMinutes();\n const hours2 = tzDate.getHours();\n const time = milliseconds + seconds * MS_PER_SECOND + minutes * MS_PER_MINUTE + hours2 * MS_PER_HOUR;\n const month = tzDate.getMonth() + 1;\n const year = tzDate.getFullYear();\n const monthParts = locale.getMonthParts(month, year);\n const day = tzDate.getDate();\n const dayFromEnd = monthParts.numDays - day + 1;\n const weekday = tzDate.getDay() + 1;\n const weekdayOrdinal = Math.floor((day - 1) / 7 + 1);\n const weekdayOrdinalFromEnd = Math.floor((monthParts.numDays - day) / 7 + 1);\n const week = Math.ceil(\n (day + Math.abs(monthParts.firstWeekday - monthParts.firstDayOfWeek)) / 7\n );\n const weekFromEnd = monthParts.numWeeks - week + 1;\n const weeknumber = monthParts.weeknumbers[week];\n const dayIndex = getDayIndex(year, month, day);\n const parts = {\n milliseconds,\n seconds,\n minutes,\n hours: hours2,\n time,\n day,\n dayFromEnd,\n weekday,\n weekdayOrdinal,\n weekdayOrdinalFromEnd,\n week,\n weekFromEnd,\n weeknumber,\n month,\n year,\n date: tzDate,\n dateTime: tzDate.getTime(),\n dayIndex,\n timezoneOffset: 0,\n isValid: true\n };\n return parts;\n}\nfunction getMonthPartsKey(month, year, firstDayOfWeek) {\n return `${year}-${month}-${firstDayOfWeek}`;\n}\nfunction getMonthParts(month, year, firstDayOfWeek) {\n const inLeapYear = year % 4 === 0 && year % 100 !== 0 || year % 400 === 0;\n const firstDayOfMonth = new Date(year, month - 1, 1);\n const firstWeekday = firstDayOfMonth.getDay() + 1;\n const numDays = month === 2 && inLeapYear ? 29 : daysInMonths[month - 1];\n const weekStartsOn = firstDayOfWeek - 1;\n const numWeeks = getWeeksInMonth(firstDayOfMonth, {\n weekStartsOn\n });\n const weeknumbers = [];\n const isoWeeknumbers = [];\n for (let i = 0; i < numWeeks; i++) {\n const date = addDays(firstDayOfMonth, i * 7);\n weeknumbers.push(getWeek(date, { weekStartsOn }));\n isoWeeknumbers.push(getISOWeek(date));\n }\n return {\n firstDayOfWeek,\n firstDayOfMonth,\n inLeapYear,\n firstWeekday,\n numDays,\n numWeeks,\n month,\n year,\n weeknumbers,\n isoWeeknumbers\n };\n}\nfunction getWeekdayDates() {\n const dates = [];\n const year = 2020;\n const month = 1;\n const day = 5;\n for (let i = 0; i < daysInWeek; i++) {\n dates.push(\n getDateFromParts({\n year,\n month,\n day: day + i,\n hours: 12\n })\n );\n }\n return dates;\n}\nfunction getDayNames(length, localeId = void 0) {\n const dtf = new Intl.DateTimeFormat(localeId, {\n weekday: length\n });\n return getWeekdayDates().map((d) => dtf.format(d));\n}\nfunction getHourDates() {\n const dates = [];\n for (let i = 0; i <= 24; i++) {\n dates.push(new Date(2e3, 0, 1, i));\n }\n return dates;\n}\nfunction getRelativeTimeNames(localeId = void 0) {\n const units = [\n \"second\",\n \"minute\",\n \"hour\",\n \"day\",\n \"week\",\n \"month\",\n \"quarter\",\n \"year\"\n ];\n const rtf = new Intl.RelativeTimeFormat(localeId);\n return units.reduce((names, unit) => {\n const parts = rtf.formatToParts(100, unit);\n names[unit] = parts[1].unit;\n return names;\n }, {});\n}\nfunction getMonthDates() {\n const dates = [];\n for (let i = 0; i < 12; i++) {\n dates.push(new Date(2e3, i, 15));\n }\n return dates;\n}\nfunction getMonthNames(length, localeId = void 0) {\n const dtf = new Intl.DateTimeFormat(localeId, {\n month: length,\n timeZone: \"UTC\"\n });\n return getMonthDates().map((d) => dtf.format(d));\n}\nfunction datePartIsValid(part, rule, parts) {\n if (isNumber$1(rule))\n return rule === part;\n if (isArray(rule))\n return rule.includes(part);\n if (isFunction$4(rule))\n return rule(part, parts);\n if (rule.min != null && rule.min > part)\n return false;\n if (rule.max != null && rule.max < part)\n return false;\n if (rule.interval != null && part % rule.interval !== 0)\n return false;\n return true;\n}\nfunction getDatePartOptions(parts, range, rule) {\n const options = [];\n const [min, max, padding] = range;\n for (let i = min; i <= max; i++) {\n if (rule == null || datePartIsValid(i, rule, parts)) {\n options.push({\n value: i,\n label: pad(i, padding)\n });\n }\n }\n return options;\n}\nfunction getDatePartsOptions(parts, rules) {\n return {\n milliseconds: getDatePartOptions(\n parts,\n DATE_PART_RANGES.milliseconds,\n rules.milliseconds\n ),\n seconds: getDatePartOptions(parts, DATE_PART_RANGES.seconds, rules.seconds),\n minutes: getDatePartOptions(parts, DATE_PART_RANGES.minutes, rules.minutes),\n hours: getDatePartOptions(parts, DATE_PART_RANGES.hours, rules.hours)\n };\n}\nfunction getNearestDatePart(parts, range, value, rule) {\n const options = getDatePartOptions(parts, range, rule);\n const result = options.reduce((prev, opt) => {\n if (opt.disabled)\n return prev;\n if (isNaN(prev))\n return opt.value;\n const diffPrev = Math.abs(prev - value);\n const diffCurr = Math.abs(opt.value - value);\n return diffCurr < diffPrev ? opt.value : prev;\n }, NaN);\n return isNaN(result) ? value : result;\n}\nfunction applyRulesForDateParts(dateParts, rules) {\n const result = { ...dateParts };\n Object.entries(rules).forEach(([key, rule]) => {\n const range = DATE_PART_RANGES[key];\n const value = dateParts[key];\n result[key] = getNearestDatePart(\n dateParts,\n range,\n value,\n rule\n );\n });\n return result;\n}\nfunction parseDate(dateString, mask, locale) {\n const masks2 = normalizeMasks(mask, locale);\n return masks2.map((m) => {\n if (typeof m !== \"string\") {\n throw new Error(\"Invalid mask\");\n }\n let str = dateString;\n if (str.length > 1e3) {\n return false;\n }\n let isValid = true;\n const dp = {};\n m.replace(token, ($0) => {\n if (parseFlags[$0]) {\n const info = parseFlags[$0];\n const index2 = str.search(info[0]);\n if (!~index2) {\n isValid = false;\n } else {\n str.replace(info[0], (result) => {\n info[1](dp, result, locale);\n str = str.substr(index2 + result.length);\n return result;\n });\n }\n }\n return parseFlags[$0] ? \"\" : $0.slice(1, $0.length - 1);\n });\n if (!isValid) {\n return false;\n }\n const today = /* @__PURE__ */ new Date();\n if (dp.hours != null) {\n if (dp.isPm === true && +dp.hours !== 12) {\n dp.hours = +dp.hours + 12;\n } else if (dp.isPm === false && +dp.hours === 12) {\n dp.hours = 0;\n }\n }\n let date;\n if (dp.timezoneOffset != null) {\n dp.minutes = +(dp.minutes || 0) - +dp.timezoneOffset;\n date = new Date(\n Date.UTC(\n dp.year || today.getFullYear(),\n dp.month || 0,\n dp.day || 1,\n dp.hours || 0,\n dp.minutes || 0,\n dp.seconds || 0,\n dp.milliseconds || 0\n )\n );\n } else {\n date = locale.getDateFromParts({\n year: dp.year || today.getFullYear(),\n month: (dp.month || 0) + 1,\n day: dp.day || 1,\n hours: dp.hours || 0,\n minutes: dp.minutes || 0,\n seconds: dp.seconds || 0,\n milliseconds: dp.milliseconds || 0\n });\n }\n return date;\n }).find((d) => d) || new Date(dateString);\n}\nfunction formatDate(date, masks2, locale) {\n if (date == null)\n return \"\";\n let mask = normalizeMasks(masks2, locale)[0];\n if (/Z$/.test(mask))\n locale.timezone = \"utc\";\n const literals = [];\n mask = mask.replace(literal, ($0, $1) => {\n literals.push($1);\n return \"??\";\n });\n const dateParts = locale.getDateParts(date);\n mask = mask.replace(\n token,\n ($0) => $0 in formatFlags ? formatFlags[$0](dateParts, locale) : $0.slice(1, $0.length - 1)\n );\n return mask.replace(/\\?\\?/g, () => literals.shift());\n}\nlet attrKey = 0;\nclass Attribute {\n constructor(config, theme, locale) {\n __publicField(this, \"key\", \"\");\n __publicField(this, \"hashcode\", \"\");\n __publicField(this, \"highlight\", null);\n __publicField(this, \"content\", null);\n __publicField(this, \"dot\", null);\n __publicField(this, \"bar\", null);\n __publicField(this, \"event\", null);\n __publicField(this, \"popover\", null);\n __publicField(this, \"customData\", null);\n __publicField(this, \"ranges\");\n __publicField(this, \"hasRanges\", false);\n __publicField(this, \"order\", 0);\n __publicField(this, \"pinPage\", false);\n __publicField(this, \"maxRepeatSpan\", 0);\n __publicField(this, \"locale\");\n const { dates } = Object.assign(\n this,\n { hashcode: \"\", order: 0, pinPage: false },\n config\n );\n this.key || (this.key = ++attrKey);\n this.locale = locale;\n theme.normalizeGlyphs(this);\n this.ranges = locale.ranges(dates ?? []);\n this.hasRanges = !!arrayHasItems(this.ranges);\n this.maxRepeatSpan = this.ranges.filter((r) => r.hasRepeat).map((r) => r.daySpan).reduce((res, curr) => Math.max(res, curr), 0);\n }\n intersectsRange({ start, end }) {\n if (start == null || end == null)\n return false;\n const simpleRanges = this.ranges.filter((r) => !r.hasRepeat);\n for (const range of simpleRanges) {\n if (range.intersectsDayRange(start.dayIndex, end.dayIndex)) {\n return true;\n }\n }\n const repeatRanges = this.ranges.filter((r) => r.hasRepeat);\n if (!repeatRanges.length)\n return false;\n let day = start;\n if (this.maxRepeatSpan > 1) {\n day = this.locale.getDateParts(addDays(day.date, -this.maxRepeatSpan));\n }\n while (day.dayIndex <= end.dayIndex) {\n for (const range of repeatRanges) {\n if (range.startsOnDay(day))\n return true;\n }\n day = this.locale.getDateParts(addDays(day.date, 1));\n }\n return false;\n }\n}\nfunction showPopover(opts) {\n if (document) {\n document.dispatchEvent(\n new CustomEvent(\"show-popover\", {\n detail: opts\n })\n );\n }\n}\nfunction hidePopover(opts) {\n if (document) {\n document.dispatchEvent(\n new CustomEvent(\"hide-popover\", {\n detail: opts\n })\n );\n }\n}\nfunction togglePopover(opts) {\n if (document) {\n document.dispatchEvent(\n new CustomEvent(\"toggle-popover\", {\n detail: opts\n })\n );\n }\n}\nfunction getPopoverEventHandlers(opts) {\n const { visibility } = opts;\n const click = visibility === \"click\";\n const hover = visibility === \"hover\";\n const hoverFocus = visibility === \"hover-focus\";\n const focus = visibility === \"focus\";\n opts.autoHide = !click;\n let hovered = false;\n let focused = false;\n const clickHandler = (e) => {\n if (click) {\n togglePopover({\n ...opts,\n target: opts.target || e.currentTarget\n });\n e.stopPropagation();\n }\n };\n const mouseMoveHandler = (e) => {\n if (!hovered) {\n hovered = true;\n if (hover || hoverFocus) {\n showPopover({\n ...opts,\n target: opts.target || e.currentTarget\n });\n }\n }\n };\n const mouseLeaveHandler = () => {\n if (hovered) {\n hovered = false;\n if (hover || hoverFocus && !focused) {\n hidePopover(opts);\n }\n }\n };\n const focusInHandler = (e) => {\n if (!focused) {\n focused = true;\n if (focus || hoverFocus) {\n showPopover({\n ...opts,\n target: opts.target || e.currentTarget\n });\n }\n }\n };\n const focusOutHandler = (e) => {\n if (focused && !elementContains(e.currentTarget, e.relatedTarget)) {\n focused = false;\n if (focus || hoverFocus && !hovered) {\n hidePopover(opts);\n }\n }\n };\n const handlers = {};\n switch (opts.visibility) {\n case \"click\":\n handlers.click = clickHandler;\n break;\n case \"hover\":\n handlers.mousemove = mouseMoveHandler;\n handlers.mouseleave = mouseLeaveHandler;\n break;\n case \"focus\":\n handlers.focusin = focusInHandler;\n handlers.focusout = focusOutHandler;\n break;\n case \"hover-focus\":\n handlers.mousemove = mouseMoveHandler;\n handlers.mouseleave = mouseLeaveHandler;\n handlers.focusin = focusInHandler;\n handlers.focusout = focusOutHandler;\n break;\n }\n return handlers;\n}\nconst removeHandlers = (target) => {\n const el = resolveEl(target);\n if (el == null)\n return;\n const handlers = el.popoverHandlers;\n if (!handlers || !handlers.length)\n return;\n handlers.forEach((handler) => handler());\n delete el.popoverHandlers;\n};\nconst addHandlers = (target, opts) => {\n const el = resolveEl(target);\n if (el == null)\n return;\n const remove = [];\n const handlers = getPopoverEventHandlers(opts);\n Object.entries(handlers).forEach(([event, handler]) => {\n remove.push(on(el, event, handler));\n });\n el.popoverHandlers = remove;\n};\nconst popoverDirective = {\n mounted(el, binding) {\n const { value } = binding;\n if (!value)\n return;\n addHandlers(el, value);\n },\n updated(el, binding) {\n const { oldValue, value } = binding;\n const oldVisibility = oldValue == null ? void 0 : oldValue.visibility;\n const newVisibility = value == null ? void 0 : value.visibility;\n if (oldVisibility !== newVisibility) {\n if (oldVisibility) {\n removeHandlers(el);\n if (!newVisibility)\n hidePopover(oldValue);\n }\n if (newVisibility) {\n addHandlers(el, value);\n }\n }\n },\n unmounted(el) {\n removeHandlers(el);\n }\n};\nconst addHorizontalSwipeHandler = (element, handler, {\n maxSwipeTime: maxSwipeTime2,\n minHorizontalSwipeDistance: minHorizontalSwipeDistance2,\n maxVerticalSwipeDistance: maxVerticalSwipeDistance2\n}) => {\n if (!element || !element.addEventListener || !isFunction$4(handler)) {\n return null;\n }\n let startX = 0;\n let startY = 0;\n let startTime = null;\n let isSwiping = false;\n function touchStart(e) {\n const t = e.changedTouches[0];\n startX = t.screenX;\n startY = t.screenY;\n startTime = (/* @__PURE__ */ new Date()).getTime();\n isSwiping = true;\n }\n function touchEnd(e) {\n if (!isSwiping || !startTime)\n return;\n isSwiping = false;\n const t = e.changedTouches[0];\n const deltaX = t.screenX - startX;\n const deltaY = t.screenY - startY;\n const deltaTime = (/* @__PURE__ */ new Date()).getTime() - startTime;\n if (deltaTime < maxSwipeTime2) {\n if (Math.abs(deltaX) >= minHorizontalSwipeDistance2 && Math.abs(deltaY) <= maxVerticalSwipeDistance2) {\n const arg = { toLeft: false, toRight: false };\n if (deltaX < 0) {\n arg.toLeft = true;\n } else {\n arg.toRight = true;\n }\n handler(arg);\n }\n }\n }\n on(element, \"touchstart\", touchStart, { passive: true });\n on(element, \"touchend\", touchEnd, { passive: true });\n return () => {\n off(element, \"touchstart\", touchStart);\n off(element, \"touchend\", touchEnd);\n };\n};\nconst watchSkippers = {};\nconst skipWatcher = (watcher, durationMs = 10) => {\n watchSkippers[watcher] = Date.now() + durationMs;\n};\nconst handleWatcher = (watcher, handler) => {\n if (watcher in watchSkippers) {\n const dateTime = watchSkippers[watcher];\n if (Date.now() < dateTime)\n return;\n delete watchSkippers[watcher];\n }\n handler();\n};\nfunction windowExists() {\n return typeof window !== \"undefined\";\n}\nfunction windowHasFeature(feature) {\n return windowExists() && feature in window;\n}\nfunction useDarkMode(config) {\n const isDark = ref(false);\n const displayMode = computed(() => isDark.value ? \"dark\" : \"light\");\n let mediaQuery;\n let mutationObserver;\n function mqListener(ev) {\n isDark.value = ev.matches;\n }\n function setupSystem() {\n if (windowHasFeature(\"matchMedia\")) {\n mediaQuery = window.matchMedia(\"(prefers-color-scheme: dark)\");\n mediaQuery.addEventListener(\"change\", mqListener);\n isDark.value = mediaQuery.matches;\n }\n }\n function moListener() {\n const { selector = \":root\", darkClass = \"dark\" } = config.value;\n const el = document.querySelector(selector);\n isDark.value = el.classList.contains(darkClass);\n }\n function setupClass(config2) {\n const { selector = \":root\", darkClass = \"dark\" } = config2;\n if (windowExists() && selector && darkClass) {\n const el = document.querySelector(selector);\n if (el) {\n mutationObserver = new MutationObserver(moListener);\n mutationObserver.observe(el, {\n attributes: true,\n attributeFilter: [\"class\"]\n });\n isDark.value = el.classList.contains(darkClass);\n }\n }\n }\n function setup() {\n stopObservers();\n const type = typeof config.value;\n if (type === \"string\" && config.value.toLowerCase() === \"system\") {\n setupSystem();\n } else if (type === \"object\") {\n setupClass(config.value);\n } else {\n isDark.value = !!config.value;\n }\n }\n const stopWatch = watch(() => config.value, () => setup(), {\n immediate: true\n });\n function stopObservers() {\n if (mediaQuery) {\n mediaQuery.removeEventListener(\"change\", mqListener);\n mediaQuery = void 0;\n }\n if (mutationObserver) {\n mutationObserver.disconnect();\n mutationObserver = void 0;\n }\n }\n function cleanup() {\n stopObservers();\n stopWatch();\n }\n onUnmounted(() => cleanup());\n return {\n isDark,\n displayMode,\n cleanup\n };\n}\nconst targetProps = [\"base\", \"start\", \"end\", \"startEnd\"];\nconst displayProps = [\n \"class\",\n \"wrapperClass\",\n \"contentClass\",\n \"style\",\n \"contentStyle\",\n \"color\",\n \"fillMode\"\n];\nconst _defaultProfile = { base: {}, start: {}, end: {} };\nfunction normalizeConfig(color, config, defaultProfile = _defaultProfile) {\n let rootColor = color;\n let root2 = {};\n if (config === true || isString$1(config)) {\n rootColor = isString$1(config) ? config : rootColor;\n root2 = { ...defaultProfile };\n } else if (isObject(config)) {\n if (hasAny(config, targetProps)) {\n root2 = { ...config };\n } else {\n root2 = {\n base: { ...config },\n start: { ...config },\n end: { ...config }\n };\n }\n }\n const result = defaultsDeep$1(\n root2,\n { start: root2.startEnd, end: root2.startEnd },\n defaultProfile\n );\n Object.entries(result).forEach(([targetType, targetConfig]) => {\n let targetColor = rootColor;\n if (targetConfig === true || isString$1(targetConfig)) {\n targetColor = isString$1(targetConfig) ? targetConfig : targetColor;\n result[targetType] = { color: targetColor };\n } else if (isObject(targetConfig)) {\n if (hasAny(targetConfig, displayProps)) {\n result[targetType] = { ...targetConfig };\n } else {\n result[targetType] = {};\n }\n }\n defaultsDeep$1(result[targetType], { color: targetColor });\n });\n return result;\n}\nclass HighlightRenderer {\n constructor() {\n __publicField(this, \"type\", \"highlight\");\n }\n normalizeConfig(color, config) {\n return normalizeConfig(color, config, {\n base: { fillMode: \"light\" },\n start: { fillMode: \"solid\" },\n end: { fillMode: \"solid\" }\n });\n }\n prepareRender(glyphs) {\n glyphs.highlights = [];\n if (!glyphs.content)\n glyphs.content = [];\n }\n render({ data: data2, onStart, onEnd }, glyphs) {\n const { key, highlight } = data2;\n if (!highlight)\n return;\n const { highlights } = glyphs;\n const { base, start, end } = highlight;\n if (onStart && onEnd) {\n highlights.push({\n ...start,\n key,\n wrapperClass: `vc-day-layer vc-day-box-center-center vc-attr vc-${start.color}`,\n class: [`vc-highlight vc-highlight-bg-${start.fillMode}`, start.class],\n contentClass: [\n `vc-attr vc-highlight-content-${start.fillMode} vc-${start.color}`,\n start.contentClass\n ]\n });\n } else if (onStart) {\n highlights.push({\n ...base,\n key: `${key}-base`,\n wrapperClass: `vc-day-layer vc-day-box-right-center vc-attr vc-${base.color}`,\n class: [\n `vc-highlight vc-highlight-base-start vc-highlight-bg-${base.fillMode}`,\n base.class\n ]\n });\n highlights.push({\n ...start,\n key,\n wrapperClass: `vc-day-layer vc-day-box-center-center vc-attr vc-${start.color}`,\n class: [`vc-highlight vc-highlight-bg-${start.fillMode}`, start.class],\n contentClass: [\n `vc-attr vc-highlight-content-${start.fillMode} vc-${start.color}`,\n start.contentClass\n ]\n });\n } else if (onEnd) {\n highlights.push({\n ...base,\n key: `${key}-base`,\n wrapperClass: `vc-day-layer vc-day-box-left-center vc-attr vc-${base.color}`,\n class: [\n `vc-highlight vc-highlight-base-end vc-highlight-bg-${base.fillMode}`,\n base.class\n ]\n });\n highlights.push({\n ...end,\n key,\n wrapperClass: `vc-day-layer vc-day-box-center-center vc-attr vc-${end.color}`,\n class: [`vc-highlight vc-highlight-bg-${end.fillMode}`, end.class],\n contentClass: [\n `vc-attr vc-highlight-content-${end.fillMode} vc-${end.color}`,\n end.contentClass\n ]\n });\n } else {\n highlights.push({\n ...base,\n key: `${key}-middle`,\n wrapperClass: `vc-day-layer vc-day-box-center-center vc-attr vc-${base.color}`,\n class: [\n `vc-highlight vc-highlight-base-middle vc-highlight-bg-${base.fillMode}`,\n base.class\n ],\n contentClass: [\n `vc-attr vc-highlight-content-${base.fillMode} vc-${base.color}`,\n base.contentClass\n ]\n });\n }\n }\n}\nclass BaseRenderer {\n constructor(type, collectionType) {\n __publicField(this, \"type\", \"\");\n __publicField(this, \"collectionType\", \"\");\n this.type = type;\n this.collectionType = collectionType;\n }\n normalizeConfig(color, config) {\n return normalizeConfig(color, config);\n }\n prepareRender(glyphs) {\n glyphs[this.collectionType] = [];\n }\n render({ data: data2, onStart, onEnd }, glyphs) {\n const { key } = data2;\n const item = data2[this.type];\n if (!key || !item) {\n return;\n }\n const collection = glyphs[this.collectionType];\n const { base, start, end } = item;\n if (onStart) {\n collection.push({\n ...start,\n key,\n class: [\n `vc-${this.type} vc-${this.type}-start vc-${start.color} vc-attr`,\n start.class\n ]\n });\n } else if (onEnd) {\n collection.push({\n ...end,\n key,\n class: [\n `vc-${this.type} vc-${this.type}-end vc-${end.color} vc-attr`,\n end.class\n ]\n });\n } else {\n collection.push({\n ...base,\n key,\n class: [\n `vc-${this.type} vc-${this.type}-base vc-${base.color} vc-attr`,\n base.class\n ]\n });\n }\n }\n}\nclass ContentRenderer extends BaseRenderer {\n constructor() {\n super(\"content\", \"content\");\n }\n normalizeConfig(_, config) {\n return normalizeConfig(\"base\", config);\n }\n}\nclass DotRenderer extends BaseRenderer {\n constructor() {\n super(\"dot\", \"dots\");\n }\n}\nclass BarRenderer extends BaseRenderer {\n constructor() {\n super(\"bar\", \"bars\");\n }\n}\nclass Theme {\n constructor(color) {\n __publicField(this, \"color\");\n __publicField(this, \"renderers\", [\n new ContentRenderer(),\n new HighlightRenderer(),\n new DotRenderer(),\n new BarRenderer()\n ]);\n this.color = color;\n }\n normalizeGlyphs(attr) {\n this.renderers.forEach((renderer) => {\n const type = renderer.type;\n if (attr[type] != null) {\n attr[type] = renderer.normalizeConfig(this.color, attr[type]);\n }\n });\n }\n prepareRender(glyphs = {}) {\n this.renderers.forEach((renderer) => {\n renderer.prepareRender(glyphs);\n });\n return glyphs;\n }\n render(cell, glyphs) {\n this.renderers.forEach((renderer) => {\n renderer.render(cell, glyphs);\n });\n }\n}\nconst contextKey$4 = Symbol(\"__vc_base_context__\");\nconst propsDef$2 = {\n color: {\n type: String,\n default: () => getDefault(\"color\")\n },\n isDark: {\n type: [Boolean, String, Object],\n default: () => getDefault(\"isDark\")\n },\n firstDayOfWeek: Number,\n masks: Object,\n locale: [String, Object],\n timezone: String,\n minDate: null,\n maxDate: null,\n disabledDates: null\n};\nfunction createBase(props) {\n const color = computed(() => props.color ?? \"\");\n const isDark = computed(() => props.isDark ?? false);\n const { displayMode } = useDarkMode(isDark);\n const theme = computed(() => new Theme(color.value));\n const locale = computed(() => {\n if (props.locale instanceof Locale)\n return props.locale;\n const config = isObject(props.locale) ? props.locale : {\n id: props.locale,\n firstDayOfWeek: props.firstDayOfWeek,\n masks: props.masks\n };\n return new Locale(config, props.timezone);\n });\n const masks2 = computed(() => locale.value.masks);\n const minDate = computed(() => props.minDate);\n const maxDate = computed(() => props.maxDate);\n const disabledDates = computed(() => {\n const dates = props.disabledDates ? [...props.disabledDates] : [];\n if (minDate.value != null) {\n dates.push({\n start: null,\n end: addDays(locale.value.toDate(minDate.value), -1)\n });\n }\n if (maxDate.value != null) {\n dates.push({\n start: addDays(locale.value.toDate(maxDate.value), 1),\n end: null\n });\n }\n return locale.value.ranges(dates);\n });\n const disabledAttribute = computed(() => {\n return new Attribute(\n {\n key: \"disabled\",\n dates: disabledDates.value,\n order: 100\n },\n theme.value,\n locale.value\n );\n });\n const context = {\n color,\n isDark,\n displayMode,\n theme,\n locale,\n masks: masks2,\n minDate,\n maxDate,\n disabledDates,\n disabledAttribute\n };\n provide(contextKey$4, context);\n return context;\n}\nfunction useOrCreateBase(props) {\n return inject(contextKey$4, () => createBase(props), true);\n}\nfunction contextKey$3(slotKey) {\n return `__vc_slot_${slotKey}__`;\n}\nfunction provideSlots(slots, remap = {}) {\n Object.keys(slots).forEach((slotKey) => {\n provide(contextKey$3(remap[slotKey] ?? slotKey), slots[slotKey]);\n });\n}\nfunction useSlot(slotKey) {\n return inject(contextKey$3(slotKey), null);\n}\nconst propsDef$1 = {\n ...propsDef$2,\n view: {\n type: String,\n default: \"monthly\",\n validator(value) {\n return [\"daily\", \"weekly\", \"monthly\"].includes(value);\n }\n },\n rows: {\n type: Number,\n default: 1\n },\n columns: {\n type: Number,\n default: 1\n },\n step: Number,\n titlePosition: {\n type: String,\n default: () => getDefault(\"titlePosition\")\n },\n navVisibility: {\n type: String,\n default: () => getDefault(\"navVisibility\")\n },\n showWeeknumbers: [Boolean, String],\n showIsoWeeknumbers: [Boolean, String],\n expanded: Boolean,\n borderless: Boolean,\n transparent: Boolean,\n initialPage: Object,\n initialPagePosition: { type: Number, default: 1 },\n minPage: Object,\n maxPage: Object,\n transition: String,\n attributes: Array,\n trimWeeks: Boolean,\n disablePageSwipe: Boolean\n};\nconst emitsDef = [\n \"dayclick\",\n \"daymouseenter\",\n \"daymouseleave\",\n \"dayfocusin\",\n \"dayfocusout\",\n \"daykeydown\",\n \"weeknumberclick\",\n \"transition-start\",\n \"transition-end\",\n \"did-move\",\n \"update:view\",\n \"update:pages\"\n];\nconst contextKey$2 = Symbol(\"__vc_calendar_context__\");\nfunction createCalendar(props, { slots, emit }) {\n const containerRef = ref(null);\n const focusedDay = ref(null);\n const focusableDay = ref((/* @__PURE__ */ new Date()).getDate());\n const inTransition = ref(false);\n const navPopoverId = ref(Symbol());\n const dayPopoverId = ref(Symbol());\n const _view = ref(props.view);\n const _pages = ref([]);\n const transitionName = ref(\"\");\n let transitionPromise = null;\n let removeHandlers2 = null;\n provideSlots(slots);\n const {\n theme,\n color,\n displayMode,\n locale,\n masks: masks2,\n minDate,\n maxDate,\n disabledAttribute,\n disabledDates\n } = useOrCreateBase(props);\n const count = computed(() => props.rows * props.columns);\n const step = computed(() => props.step || count.value);\n const firstPage = computed(() => head$1(_pages.value) ?? null);\n const lastPage = computed(() => last$1(_pages.value) ?? null);\n const minPage = computed(\n () => props.minPage || (minDate.value ? getDateAddress(minDate.value) : null)\n );\n const maxPage = computed(\n () => props.maxPage || (maxDate.value ? getDateAddress(maxDate.value) : null)\n );\n const navVisibility = computed(() => props.navVisibility);\n const showWeeknumbers = computed(() => !!props.showWeeknumbers);\n const showIsoWeeknumbers = computed(() => !!props.showIsoWeeknumbers);\n const isMonthly = computed(() => _view.value === \"monthly\");\n const isWeekly = computed(() => _view.value === \"weekly\");\n const isDaily = computed(() => _view.value === \"daily\");\n const onTransitionBeforeEnter = () => {\n inTransition.value = true;\n emit(\"transition-start\");\n };\n const onTransitionAfterEnter = () => {\n inTransition.value = false;\n emit(\"transition-end\");\n if (transitionPromise) {\n transitionPromise.resolve(true);\n transitionPromise = null;\n }\n };\n const addPages$1 = (address, count2, view = _view.value) => {\n return addPages(address, count2, view, locale.value);\n };\n const getDateAddress = (date) => {\n return getPageAddressForDate(date, _view.value, locale.value);\n };\n const refreshDisabled = (day) => {\n if (!disabledAttribute.value || !attributeContext.value)\n return;\n day.isDisabled = attributeContext.value.cellExists(\n disabledAttribute.value.key,\n day.dayIndex\n );\n };\n const refreshFocusable = (day) => {\n day.isFocusable = day.inMonth && day.day === focusableDay.value;\n };\n const forDays = (pages, fn) => {\n for (const page of pages) {\n for (const day of page.days) {\n if (fn(day) === false)\n return;\n }\n }\n };\n const days = computed(\n () => _pages.value.reduce((result, page) => {\n result.push(...page.viewDays);\n return result;\n }, [])\n );\n const attributes = computed(() => {\n const result = [];\n (props.attributes || []).forEach((attr, i) => {\n if (!attr || !attr.dates)\n return;\n result.push(\n new Attribute(\n {\n ...attr,\n order: attr.order || 0\n },\n theme.value,\n locale.value\n )\n );\n });\n if (disabledAttribute.value) {\n result.push(disabledAttribute.value);\n }\n return result;\n });\n const hasAttributes = computed(() => arrayHasItems(attributes.value));\n const attributeContext = computed(() => {\n const ctx = new DateRangeContext();\n attributes.value.forEach((attr) => {\n attr.ranges.forEach((range) => {\n ctx.render(attr, range, days.value);\n });\n });\n return ctx;\n });\n const dayCells = computed(() => {\n return days.value.reduce((result, day) => {\n result[day.dayIndex] = { day, cells: [] };\n result[day.dayIndex].cells.push(...attributeContext.value.getCells(day));\n return result;\n }, {});\n });\n const getWeeknumberPosition = (column, columnFromEnd) => {\n const showWeeknumbers2 = props.showWeeknumbers || props.showIsoWeeknumbers;\n if (showWeeknumbers2 == null)\n return \"\";\n if (isBoolean$1(showWeeknumbers2)) {\n return showWeeknumbers2 ? \"left\" : \"\";\n }\n if (showWeeknumbers2.startsWith(\"right\")) {\n return columnFromEnd > 1 ? \"right\" : showWeeknumbers2;\n }\n return column > 1 ? \"left\" : showWeeknumbers2;\n };\n const getPageForAttributes = () => {\n var _a, _b;\n if (!hasAttributes.value)\n return null;\n const attr = attributes.value.find((attr2) => attr2.pinPage) || attributes.value[0];\n if (!attr || !attr.hasRanges)\n return null;\n const [range] = attr.ranges;\n const date = ((_a = range.start) == null ? void 0 : _a.date) || ((_b = range.end) == null ? void 0 : _b.date);\n return date ? getDateAddress(date) : null;\n };\n const getDefaultInitialPage = () => {\n if (pageIsValid(firstPage.value))\n return firstPage.value;\n const page = getPageForAttributes();\n if (pageIsValid(page))\n return page;\n return getDateAddress(/* @__PURE__ */ new Date());\n };\n const getTargetPageRange = (page, opts = {}) => {\n const { view = _view.value, position = 1, force } = opts;\n const pagesToAdd = position > 0 ? 1 - position : -(count.value + position);\n let fromPage = addPages$1(page, pagesToAdd, view);\n let toPage = addPages$1(fromPage, count.value - 1, view);\n if (!force) {\n if (pageIsBeforePage(fromPage, minPage.value)) {\n fromPage = minPage.value;\n } else if (pageIsAfterPage(toPage, maxPage.value)) {\n fromPage = addPages$1(maxPage.value, 1 - count.value);\n }\n toPage = addPages$1(fromPage, count.value - 1);\n }\n return { fromPage, toPage };\n };\n const getPageTransition = (oldPage, newPage, defaultTransition = \"\") => {\n if (defaultTransition === \"none\" || defaultTransition === \"fade\")\n return defaultTransition;\n if ((oldPage == null ? void 0 : oldPage.view) !== (newPage == null ? void 0 : newPage.view))\n return \"fade\";\n const moveNext2 = pageIsAfterPage(newPage, oldPage);\n const movePrev2 = pageIsBeforePage(newPage, oldPage);\n if (!moveNext2 && !movePrev2) {\n return \"fade\";\n }\n if (defaultTransition === \"slide-v\") {\n return movePrev2 ? \"slide-down\" : \"slide-up\";\n }\n return movePrev2 ? \"slide-right\" : \"slide-left\";\n };\n const refreshPages = (opts = {}) => {\n return new Promise((resolve, reject) => {\n const { position = 1, force = false, transition } = opts;\n const page = pageIsValid(opts.page) ? opts.page : getDefaultInitialPage();\n const { fromPage } = getTargetPageRange(page, {\n position,\n force\n });\n const pages = [];\n for (let i = 0; i < count.value; i++) {\n const newPage = addPages$1(fromPage, i);\n const position2 = i + 1;\n const row = Math.ceil(position2 / props.columns);\n const rowFromEnd = props.rows - row + 1;\n const column = position2 % props.columns || props.columns;\n const columnFromEnd = props.columns - column + 1;\n const weeknumberPosition = getWeeknumberPosition(column, columnFromEnd);\n pages.push(\n locale.value.getPage({\n ...newPage,\n view: _view.value,\n titlePosition: props.titlePosition,\n trimWeeks: props.trimWeeks,\n position: position2,\n row,\n rowFromEnd,\n column,\n columnFromEnd,\n showWeeknumbers: showWeeknumbers.value,\n showIsoWeeknumbers: showIsoWeeknumbers.value,\n weeknumberPosition\n })\n );\n }\n transitionName.value = getPageTransition(\n _pages.value[0],\n pages[0],\n transition\n );\n _pages.value = pages;\n if (transitionName.value && transitionName.value !== \"none\") {\n transitionPromise = {\n resolve,\n reject\n };\n } else {\n resolve(true);\n }\n });\n };\n const targetBy = (pages) => {\n const fromPage = firstPage.value ?? getDateAddress(/* @__PURE__ */ new Date());\n return addPages$1(fromPage, pages);\n };\n const canMove = (target, opts = {}) => {\n const page = pageIsValid(target) ? target : getDateAddress(target);\n Object.assign(\n opts,\n getTargetPageRange(page, {\n ...opts,\n force: true\n })\n );\n const pagesInRange = pageRangeToArray(\n opts.fromPage,\n opts.toPage,\n _view.value,\n locale.value\n ).map((p) => pageIsBetweenPages(p, minPage.value, maxPage.value));\n return pagesInRange.some((val) => val);\n };\n const canMoveBy = (pages, opts = {}) => {\n return canMove(targetBy(pages), opts);\n };\n const canMovePrev = computed(() => canMoveBy(-step.value));\n const canMoveNext = computed(() => canMoveBy(step.value));\n const move = async (target, opts = {}) => {\n if (!opts.force && !canMove(target, opts))\n return false;\n if (opts.fromPage && !pageIsEqualToPage(opts.fromPage, firstPage.value)) {\n hidePopover({ id: navPopoverId.value, hideDelay: 0 });\n if (opts.view) {\n skipWatcher(\"view\", 10);\n _view.value = opts.view;\n }\n await refreshPages({\n ...opts,\n page: opts.fromPage,\n position: 1,\n force: true\n });\n emit(\"did-move\", _pages.value);\n }\n return true;\n };\n const moveBy = (pages, opts = {}) => {\n return move(targetBy(pages), opts);\n };\n const movePrev = () => {\n return moveBy(-step.value);\n };\n const moveNext = () => {\n return moveBy(step.value);\n };\n const tryFocusDate = (date) => {\n const inMonth = isMonthly.value ? \".in-month\" : \"\";\n const daySelector = `.id-${locale.value.getDayId(date)}${inMonth}`;\n const selector = `${daySelector}.vc-focusable, ${daySelector} .vc-focusable`;\n const el = containerRef.value;\n if (el) {\n const focusableEl = el.querySelector(selector);\n if (focusableEl) {\n focusableEl.focus();\n return true;\n }\n }\n return false;\n };\n const focusDate = async (date, opts = {}) => {\n if (tryFocusDate(date))\n return true;\n await move(date, opts);\n return tryFocusDate(date);\n };\n const onDayClick = (day, event) => {\n focusableDay.value = day.day;\n emit(\"dayclick\", day, event);\n };\n const onDayMouseenter = (day, event) => {\n emit(\"daymouseenter\", day, event);\n };\n const onDayMouseleave = (day, event) => {\n emit(\"daymouseleave\", day, event);\n };\n const onDayFocusin = (day, event) => {\n focusableDay.value = day.day;\n focusedDay.value = day;\n day.isFocused = true;\n emit(\"dayfocusin\", day, event);\n };\n const onDayFocusout = (day, event) => {\n focusedDay.value = null;\n day.isFocused = false;\n emit(\"dayfocusout\", day, event);\n };\n const onDayKeydown = (day, event) => {\n emit(\"daykeydown\", day, event);\n const date = day.noonDate;\n let newDate = null;\n switch (event.key) {\n case \"ArrowLeft\": {\n newDate = addDays(date, -1);\n break;\n }\n case \"ArrowRight\": {\n newDate = addDays(date, 1);\n break;\n }\n case \"ArrowUp\": {\n newDate = addDays(date, -7);\n break;\n }\n case \"ArrowDown\": {\n newDate = addDays(date, 7);\n break;\n }\n case \"Home\": {\n newDate = addDays(date, -day.weekdayPosition + 1);\n break;\n }\n case \"End\": {\n newDate = addDays(date, day.weekdayPositionFromEnd);\n break;\n }\n case \"PageUp\": {\n if (event.altKey) {\n newDate = addYears(date, -1);\n } else {\n newDate = addMonths(date, -1);\n }\n break;\n }\n case \"PageDown\": {\n if (event.altKey) {\n newDate = addYears(date, 1);\n } else {\n newDate = addMonths(date, 1);\n }\n break;\n }\n }\n if (newDate) {\n event.preventDefault();\n focusDate(newDate).catch();\n }\n };\n const onKeydown = (event) => {\n const day = focusedDay.value;\n if (day != null) {\n onDayKeydown(day, event);\n }\n };\n const onWeeknumberClick = (week, event) => {\n emit(\"weeknumberclick\", week, event);\n };\n refreshPages({\n page: props.initialPage,\n position: props.initialPagePosition\n });\n onMounted(() => {\n if (!props.disablePageSwipe && containerRef.value) {\n removeHandlers2 = addHorizontalSwipeHandler(\n containerRef.value,\n ({ toLeft = false, toRight = false }) => {\n if (toLeft) {\n moveNext();\n } else if (toRight) {\n movePrev();\n }\n },\n getDefault(\"touch\")\n );\n }\n });\n onUnmounted(() => {\n _pages.value = [];\n if (removeHandlers2)\n removeHandlers2();\n });\n watch(\n () => locale.value,\n () => {\n refreshPages();\n }\n );\n watch(\n () => count.value,\n () => refreshPages()\n );\n watch(\n () => props.view,\n () => _view.value = props.view\n );\n watch(\n () => _view.value,\n () => {\n handleWatcher(\"view\", () => {\n refreshPages();\n });\n emit(\"update:view\", _view.value);\n }\n );\n watch(\n () => focusableDay.value,\n () => {\n forDays(_pages.value, (day) => refreshFocusable(day));\n }\n );\n watchEffect(() => {\n emit(\"update:pages\", _pages.value);\n forDays(_pages.value, (day) => {\n refreshDisabled(day);\n refreshFocusable(day);\n });\n });\n const context = {\n emit,\n containerRef,\n focusedDay,\n inTransition,\n navPopoverId,\n dayPopoverId,\n view: _view,\n pages: _pages,\n transitionName,\n theme,\n color,\n displayMode,\n locale,\n masks: masks2,\n attributes,\n disabledAttribute,\n disabledDates,\n attributeContext,\n days,\n dayCells,\n count,\n step,\n firstPage,\n lastPage,\n canMovePrev,\n canMoveNext,\n minPage,\n maxPage,\n isMonthly,\n isWeekly,\n isDaily,\n navVisibility,\n showWeeknumbers,\n showIsoWeeknumbers,\n getDateAddress,\n canMove,\n canMoveBy,\n move,\n moveBy,\n movePrev,\n moveNext,\n onTransitionBeforeEnter,\n onTransitionAfterEnter,\n tryFocusDate,\n focusDate,\n onKeydown,\n onDayKeydown,\n onDayClick,\n onDayMouseenter,\n onDayMouseleave,\n onDayFocusin,\n onDayFocusout,\n onWeeknumberClick\n };\n provide(contextKey$2, context);\n return context;\n}\nfunction useCalendar() {\n const context = inject(contextKey$2);\n if (context)\n return context;\n throw new Error(\n \"Calendar context missing. Please verify this component is nested within a valid context provider.\"\n );\n}\nconst _sfc_main$k = defineComponent({\n inheritAttrs: false,\n emits: [\"before-show\", \"after-show\", \"before-hide\", \"after-hide\"],\n props: {\n id: { type: [Number, String, Symbol], required: true },\n showDelay: { type: Number, default: 0 },\n hideDelay: { type: Number, default: 110 },\n boundarySelector: { type: String }\n },\n setup(props, { emit }) {\n let timeout = void 0;\n const popoverRef = ref();\n let resizeObserver = null;\n let popper = null;\n const state2 = reactive({\n isVisible: false,\n target: null,\n data: null,\n transition: \"slide-fade\",\n placement: \"bottom\",\n direction: \"\",\n positionFixed: false,\n modifiers: [],\n isInteractive: true,\n visibility: \"click\",\n isHovered: false,\n isFocused: false,\n autoHide: false,\n force: false\n });\n function updateDirection(placement) {\n if (placement)\n state2.direction = placement.split(\"-\")[0];\n }\n function onPopperUpdate({ placement, options }) {\n updateDirection(placement || (options == null ? void 0 : options.placement));\n }\n const popperOptions = computed(() => {\n return {\n placement: state2.placement,\n strategy: state2.positionFixed ? \"fixed\" : \"absolute\",\n boundary: \"\",\n modifiers: [\n {\n name: \"onUpdate\",\n enabled: true,\n phase: \"afterWrite\",\n fn: onPopperUpdate\n },\n ...state2.modifiers || []\n ],\n onFirstUpdate: onPopperUpdate\n };\n });\n const alignment = computed(() => {\n const isLeftRight = state2.direction === \"left\" || state2.direction === \"right\";\n let alignment2 = \"\";\n if (state2.placement) {\n const parts = state2.placement.split(\"-\");\n if (parts.length > 1)\n alignment2 = parts[1];\n }\n if ([\"start\", \"top\", \"left\"].includes(alignment2)) {\n return isLeftRight ? \"top\" : \"left\";\n }\n if ([\"end\", \"bottom\", \"right\"].includes(alignment2)) {\n return isLeftRight ? \"bottom\" : \"right\";\n }\n return isLeftRight ? \"middle\" : \"center\";\n });\n function destroyPopper() {\n if (popper) {\n popper.destroy();\n popper = null;\n }\n }\n function setupPopper() {\n nextTick(() => {\n const el = resolveEl(state2.target);\n if (!el || !popoverRef.value)\n return;\n if (popper && popper.state.elements.reference !== el) {\n destroyPopper();\n }\n if (!popper) {\n popper = createPopper(\n el,\n popoverRef.value,\n popperOptions.value\n );\n } else {\n popper.update();\n }\n });\n }\n function updateState(newState) {\n Object.assign(state2, omit(newState, \"force\"));\n }\n function setTimer(delay, fn) {\n clearTimeout(timeout);\n if (delay > 0) {\n timeout = setTimeout(fn, delay);\n } else {\n fn();\n }\n }\n function isCurrentTarget(target) {\n if (!target || !popper)\n return false;\n const el = resolveEl(target);\n return el === popper.state.elements.reference;\n }\n async function show(opts = {}) {\n if (state2.force)\n return;\n if (opts.force)\n state2.force = true;\n setTimer(opts.showDelay ?? props.showDelay, () => {\n if (state2.isVisible) {\n state2.force = false;\n }\n updateState({\n ...opts,\n isVisible: true\n });\n setupPopper();\n });\n }\n function hide(opts = {}) {\n if (!popper)\n return;\n if (opts.target && !isCurrentTarget(opts.target))\n return;\n if (state2.force)\n return;\n if (opts.force)\n state2.force = true;\n setTimer(opts.hideDelay ?? props.hideDelay, () => {\n if (!state2.isVisible)\n state2.force = false;\n state2.isVisible = false;\n });\n }\n function toggle(opts = {}) {\n if (opts.target == null)\n return;\n if (state2.isVisible && isCurrentTarget(opts.target)) {\n hide(opts);\n } else {\n show(opts);\n }\n }\n function onDocumentClick(e) {\n if (!popper)\n return;\n const popperRef = popper.state.elements.reference;\n if (!popoverRef.value || !popperRef) {\n return;\n }\n const target = e.target;\n if (elementContains(popoverRef.value, target) || elementContains(popperRef, target)) {\n return;\n }\n hide({ force: true });\n }\n function onDocumentKeydown(e) {\n if (e.key === \"Esc\" || e.key === \"Escape\") {\n hide();\n }\n }\n function onDocumentShowPopover({ detail }) {\n if (!detail.id || detail.id !== props.id)\n return;\n show(detail);\n }\n function onDocumentHidePopover({ detail }) {\n if (!detail.id || detail.id !== props.id)\n return;\n hide(detail);\n }\n function onDocumentTogglePopover({ detail }) {\n if (!detail.id || detail.id !== props.id)\n return;\n toggle(detail);\n }\n function addEvents() {\n on(document, \"keydown\", onDocumentKeydown);\n on(document, \"click\", onDocumentClick);\n on(document, \"show-popover\", onDocumentShowPopover);\n on(document, \"hide-popover\", onDocumentHidePopover);\n on(document, \"toggle-popover\", onDocumentTogglePopover);\n }\n function removeEvents() {\n off(document, \"keydown\", onDocumentKeydown);\n off(document, \"click\", onDocumentClick);\n off(document, \"show-popover\", onDocumentShowPopover);\n off(document, \"hide-popover\", onDocumentHidePopover);\n off(document, \"toggle-popover\", onDocumentTogglePopover);\n }\n function beforeEnter(el) {\n emit(\"before-show\", el);\n }\n function afterEnter(el) {\n state2.force = false;\n emit(\"after-show\", el);\n }\n function beforeLeave(el) {\n emit(\"before-hide\", el);\n }\n function afterLeave(el) {\n state2.force = false;\n destroyPopper();\n emit(\"after-hide\", el);\n }\n function onClick(e) {\n e.stopPropagation();\n }\n function onMouseOver() {\n state2.isHovered = true;\n if (state2.isInteractive && [\"hover\", \"hover-focus\"].includes(state2.visibility)) {\n show();\n }\n }\n function onMouseLeave() {\n state2.isHovered = false;\n if (!popper)\n return;\n const popperRef = popper.state.elements.reference;\n if (state2.autoHide && !state2.isFocused && (!popperRef || popperRef !== document.activeElement) && [\"hover\", \"hover-focus\"].includes(state2.visibility)) {\n hide();\n }\n }\n function onFocusIn() {\n state2.isFocused = true;\n if (state2.isInteractive && [\"focus\", \"hover-focus\"].includes(state2.visibility)) {\n show();\n }\n }\n function onFocusOut(e) {\n if ([\"focus\", \"hover-focus\"].includes(state2.visibility) && (!e.relatedTarget || !elementContains(popoverRef.value, e.relatedTarget))) {\n state2.isFocused = false;\n if (!state2.isHovered && state2.autoHide)\n hide();\n }\n }\n function cleanupRO() {\n if (resizeObserver != null) {\n resizeObserver.disconnect();\n resizeObserver = null;\n }\n }\n watch(\n () => popoverRef.value,\n (val) => {\n cleanupRO();\n if (!val)\n return;\n resizeObserver = new ResizeObserver(() => {\n if (popper)\n popper.update();\n });\n resizeObserver.observe(val);\n }\n );\n watch(() => state2.placement, updateDirection, {\n immediate: true\n });\n onMounted(() => {\n addEvents();\n });\n onUnmounted(() => {\n destroyPopper();\n cleanupRO();\n removeEvents();\n });\n return {\n ...toRefs(state2),\n popoverRef,\n alignment,\n hide,\n setupPopper,\n beforeEnter,\n afterEnter,\n beforeLeave,\n afterLeave,\n onClick,\n onMouseOver,\n onMouseLeave,\n onFocusIn,\n onFocusOut\n };\n }\n});\nconst Popover_vue_vue_type_style_index_0_lang = \"\";\nconst _export_sfc = (sfc, props) => {\n const target = sfc.__vccOpts || sfc;\n for (const [key, val] of props) {\n target[key] = val;\n }\n return target;\n};\nfunction _sfc_render$7(_ctx, _cache, $props, $setup, $data, $options) {\n return openBlock(), createElementBlock(\"div\", {\n class: normalizeClass([\"vc-popover-content-wrapper\", { \"is-interactive\": _ctx.isInteractive }]),\n ref: \"popoverRef\",\n onClick: _cache[0] || (_cache[0] = (...args) => _ctx.onClick && _ctx.onClick(...args)),\n onMouseover: _cache[1] || (_cache[1] = (...args) => _ctx.onMouseOver && _ctx.onMouseOver(...args)),\n onMouseleave: _cache[2] || (_cache[2] = (...args) => _ctx.onMouseLeave && _ctx.onMouseLeave(...args)),\n onFocusin: _cache[3] || (_cache[3] = (...args) => _ctx.onFocusIn && _ctx.onFocusIn(...args)),\n onFocusout: _cache[4] || (_cache[4] = (...args) => _ctx.onFocusOut && _ctx.onFocusOut(...args))\n }, [\n createVNode(Transition, {\n name: `vc-${_ctx.transition}`,\n appear: \"\",\n onBeforeEnter: _ctx.beforeEnter,\n onAfterEnter: _ctx.afterEnter,\n onBeforeLeave: _ctx.beforeLeave,\n onAfterLeave: _ctx.afterLeave\n }, {\n default: withCtx(() => [\n _ctx.isVisible ? (openBlock(), createElementBlock(\"div\", mergeProps({\n key: 0,\n tabindex: \"-1\",\n class: `vc-popover-content direction-${_ctx.direction}`\n }, _ctx.$attrs), [\n renderSlot(_ctx.$slots, \"default\", {\n direction: _ctx.direction,\n alignment: _ctx.alignment,\n data: _ctx.data,\n hide: _ctx.hide\n }, () => [\n createTextVNode(toDisplayString(_ctx.data), 1)\n ]),\n createElementVNode(\"span\", {\n class: normalizeClass([\n \"vc-popover-caret\",\n `direction-${_ctx.direction}`,\n `align-${_ctx.alignment}`\n ])\n }, null, 2)\n ], 16)) : createCommentVNode(\"\", true)\n ]),\n _: 3\n }, 8, [\"name\", \"onBeforeEnter\", \"onAfterEnter\", \"onBeforeLeave\", \"onAfterLeave\"])\n ], 34);\n}\nconst Popover = /* @__PURE__ */ _export_sfc(_sfc_main$k, [[\"render\", _sfc_render$7]]);\nconst _hoisted_1$c = { class: \"vc-day-popover-row\" };\nconst _hoisted_2$7 = {\n key: 0,\n class: \"vc-day-popover-row-indicator\"\n};\nconst _hoisted_3$5 = { class: \"vc-day-popover-row-label\" };\nconst _sfc_main$j = /* @__PURE__ */ defineComponent({\n __name: \"PopoverRow\",\n props: {\n attribute: {}\n },\n setup(__props) {\n const props = __props;\n const indicator = computed(() => {\n const { content, highlight, dot, bar, popover } = props.attribute;\n if (popover && popover.hideIndicator)\n return null;\n if (content) {\n return {\n class: `vc-bar vc-day-popover-row-bar vc-attr vc-${content.base.color}`\n };\n }\n if (highlight) {\n return {\n class: `vc-highlight-bg-solid vc-day-popover-row-highlight vc-attr vc-${highlight.base.color}`\n };\n }\n if (dot) {\n return {\n class: `vc-dot vc-attr vc-${dot.base.color}`\n };\n }\n if (bar) {\n return {\n class: `vc-bar vc-day-popover-row-bar vc-attr vc-${bar.base.color}`\n };\n }\n return null;\n });\n return (_ctx, _cache) => {\n return openBlock(), createElementBlock(\"div\", _hoisted_1$c, [\n indicator.value ? (openBlock(), createElementBlock(\"div\", _hoisted_2$7, [\n createElementVNode(\"span\", {\n class: normalizeClass(indicator.value.class)\n }, null, 2)\n ])) : createCommentVNode(\"\", true),\n createElementVNode(\"div\", _hoisted_3$5, [\n renderSlot(_ctx.$slots, \"default\", {}, () => [\n createTextVNode(toDisplayString(_ctx.attribute.popover ? _ctx.attribute.popover.label : \"No content provided\"), 1)\n ])\n ])\n ]);\n };\n }\n});\nconst PopoverRow_vue_vue_type_style_index_0_lang = \"\";\nconst __default__$3 = {\n inheritAttrs: false\n};\nconst _sfc_main$i = /* @__PURE__ */ defineComponent({\n ...__default__$3,\n __name: \"CalendarSlot\",\n props: {\n name: {}\n },\n setup(__props) {\n const props = __props;\n const attrs = useAttrs();\n const slot = useSlot(props.name);\n return (_ctx, _cache) => {\n return unref(slot) ? (openBlock(), createBlock(resolveDynamicComponent(unref(slot)), normalizeProps(mergeProps({ key: 0 }, unref(attrs))), null, 16)) : renderSlot(_ctx.$slots, \"default\", { key: 1 });\n };\n }\n});\nconst _hoisted_1$b = { class: \"vc-day-popover-container\" };\nconst _hoisted_2$6 = {\n key: 0,\n class: \"vc-day-popover-header\"\n};\nconst _sfc_main$h = /* @__PURE__ */ defineComponent({\n __name: \"CalendarDayPopover\",\n setup(__props) {\n const { dayPopoverId, displayMode, color, masks: masks2, locale } = useCalendar();\n function format(date, mask) {\n return locale.value.formatDate(date, mask);\n }\n function dayTitle(day) {\n return locale.value.formatDate(day.date, masks2.value.dayPopover);\n }\n return (_ctx, _cache) => {\n return openBlock(), createBlock(Popover, {\n id: unref(dayPopoverId),\n class: normalizeClass([`vc-${unref(color)}`, `vc-${unref(displayMode)}`])\n }, {\n default: withCtx(({ data: { day, attributes }, hide }) => [\n createVNode(_sfc_main$i, {\n name: \"day-popover\",\n day,\n \"day-title\": dayTitle(day),\n attributes,\n format,\n masks: unref(masks2),\n hide\n }, {\n default: withCtx(() => [\n createElementVNode(\"div\", _hoisted_1$b, [\n unref(masks2).dayPopover ? (openBlock(), createElementBlock(\"div\", _hoisted_2$6, toDisplayString(dayTitle(day)), 1)) : createCommentVNode(\"\", true),\n (openBlock(true), createElementBlock(Fragment, null, renderList(attributes, (attribute) => {\n return openBlock(), createBlock(_sfc_main$j, {\n key: attribute.key,\n attribute\n }, null, 8, [\"attribute\"]);\n }), 128))\n ])\n ]),\n _: 2\n }, 1032, [\"day\", \"day-title\", \"attributes\", \"masks\", \"hide\"])\n ]),\n _: 1\n }, 8, [\"id\", \"class\"]);\n };\n }\n});\nconst _sfc_main$g = {};\nconst _hoisted_1$a = {\n \"stroke-linecap\": \"round\",\n \"stroke-linejoin\": \"round\",\n viewBox: \"0 0 24 24\"\n};\nfunction _sfc_render$6(_ctx, _cache) {\n return openBlock(), createElementBlock(\"svg\", _hoisted_1$a, [..._cache[0] || (_cache[0] = [\n createElementVNode(\"polyline\", { points: \"9 18 15 12 9 6\" }, null, -1)\n ])]);\n}\nconst IconChevronRight = /* @__PURE__ */ _export_sfc(_sfc_main$g, [[\"render\", _sfc_render$6]]);\nconst _sfc_main$f = {};\nconst _hoisted_1$9 = {\n \"stroke-linecap\": \"round\",\n \"stroke-linejoin\": \"round\",\n viewBox: \"0 0 24 24\"\n};\nfunction _sfc_render$5(_ctx, _cache) {\n return openBlock(), createElementBlock(\"svg\", _hoisted_1$9, [..._cache[0] || (_cache[0] = [\n createElementVNode(\"polyline\", { points: \"15 18 9 12 15 6\" }, null, -1)\n ])]);\n}\nconst IconChevronLeft = /* @__PURE__ */ _export_sfc(_sfc_main$f, [[\"render\", _sfc_render$5]]);\nconst _sfc_main$e = {};\nconst _hoisted_1$8 = {\n \"stroke-linecap\": \"round\",\n \"stroke-linejoin\": \"round\",\n viewBox: \"0 0 24 24\"\n};\nfunction _sfc_render$4(_ctx, _cache) {\n return openBlock(), createElementBlock(\"svg\", _hoisted_1$8, [..._cache[0] || (_cache[0] = [\n createElementVNode(\"polyline\", { points: \"6 9 12 15 18 9\" }, null, -1)\n ])]);\n}\nconst IconChevronDown = /* @__PURE__ */ _export_sfc(_sfc_main$e, [[\"render\", _sfc_render$4]]);\nconst _sfc_main$d = {};\nconst _hoisted_1$7 = {\n fill: \"none\",\n \"stroke-linecap\": \"round\",\n \"stroke-linejoin\": \"round\",\n \"stroke-width\": \"2\",\n viewBox: \"0 0 24 24\"\n};\nfunction _sfc_render$3(_ctx, _cache) {\n return openBlock(), createElementBlock(\"svg\", _hoisted_1$7, [..._cache[0] || (_cache[0] = [\n createElementVNode(\"path\", { d: \"M12 8v4l3 3m6-3a9 9 0 11-18 0 9 9 0 0118 0z\" }, null, -1)\n ])]);\n}\nconst IconClock = /* @__PURE__ */ _export_sfc(_sfc_main$d, [[\"render\", _sfc_render$3]]);\nconst icons = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.defineProperty({\n __proto__: null,\n IconChevronDown,\n IconChevronLeft,\n IconChevronRight,\n IconClock\n}, Symbol.toStringTag, { value: \"Module\" }));\nconst _sfc_main$c = /* @__PURE__ */ defineComponent({\n __name: \"BaseIcon\",\n props: {\n name: { type: String, required: true },\n width: { type: String },\n height: { type: String },\n size: { type: String, default: \"26\" },\n viewBox: { type: String }\n },\n setup(__props) {\n const props = __props;\n const width = computed(() => props.width || props.size);\n const height = computed(() => props.height || props.size);\n const icon = computed(() => icons[`Icon${props.name}`]);\n return (_ctx, _cache) => {\n return openBlock(), createBlock(resolveDynamicComponent(icon.value), {\n width: width.value,\n height: height.value,\n class: \"vc-base-icon\"\n }, null, 8, [\"width\", \"height\"]);\n };\n }\n});\nconst BaseIcon_vue_vue_type_style_index_0_lang = \"\";\nconst _hoisted_1$6 = [\"disabled\"];\nconst _hoisted_2$5 = {\n key: 1,\n class: \"vc-title-wrapper\"\n};\nconst _hoisted_3$4 = {\n type: \"button\",\n class: \"vc-title\"\n};\nconst _hoisted_4$3 = [\"disabled\"];\nconst _sfc_main$b = /* @__PURE__ */ defineComponent({\n __name: \"CalendarHeader\",\n props: {\n page: {},\n layout: {},\n isLg: { type: Boolean },\n isXl: { type: Boolean },\n is2xl: { type: Boolean },\n hideTitle: { type: Boolean },\n hideArrows: { type: Boolean }\n },\n setup(__props) {\n const props = __props;\n const {\n navPopoverId,\n navVisibility,\n canMovePrev,\n movePrev,\n canMoveNext,\n moveNext\n } = useCalendar();\n const navPlacement = computed(() => {\n switch (props.page.titlePosition) {\n case \"left\":\n return \"bottom-start\";\n case \"right\":\n return \"bottom-end\";\n default:\n return \"bottom\";\n }\n });\n const navPopoverOptions = computed(() => {\n const { page } = props;\n return {\n id: navPopoverId.value,\n visibility: navVisibility.value,\n placement: navPlacement.value,\n modifiers: [{ name: \"flip\", options: { fallbackPlacements: [\"bottom\"] } }],\n data: { page },\n isInteractive: true\n };\n });\n const titleLeft = computed(() => props.page.titlePosition.includes(\"left\"));\n const titleRight = computed(() => props.page.titlePosition.includes(\"right\"));\n const layout_ = computed(() => {\n if (props.layout)\n return props.layout;\n if (titleLeft.value)\n return \"tu-pn\";\n if (titleRight.value)\n return \"pn-tu\";\n return \"p-tu-n;\";\n });\n const show = computed(() => {\n return {\n prev: layout_.value.includes(\"p\") && !props.hideArrows,\n title: layout_.value.includes(\"t\") && !props.hideTitle,\n next: layout_.value.includes(\"n\") && !props.hideArrows\n };\n });\n const gridStyle = computed(() => {\n const gridTemplateColumns = layout_.value.split(\"\").map((l) => {\n switch (l) {\n case \"p\":\n return \"[prev] auto\";\n case \"n\":\n return \"[next] auto\";\n case \"t\":\n return \"[title] auto\";\n case \"-\":\n return \"1fr\";\n default:\n return \"\";\n }\n }).join(\" \");\n return { gridTemplateColumns };\n });\n return (_ctx, _cache) => {\n return openBlock(), createElementBlock(\"div\", {\n class: normalizeClass([\"vc-header\", { \"is-lg\": _ctx.isLg, \"is-xl\": _ctx.isXl, \"is-2xl\": _ctx.is2xl }]),\n style: normalizeStyle(gridStyle.value)\n }, [\n show.value.prev ? (openBlock(), createElementBlock(\"button\", {\n key: 0,\n type: \"button\",\n class: \"vc-arrow vc-prev vc-focus\",\n disabled: !unref(canMovePrev),\n onClick: _cache[0] || (_cache[0] = //@ts-ignore\n (...args) => unref(movePrev) && unref(movePrev)(...args)),\n onKeydown: _cache[1] || (_cache[1] = withKeys(\n //@ts-ignore\n (...args) => unref(movePrev) && unref(movePrev)(...args),\n [\"space\", \"enter\"]\n ))\n }, [\n createVNode(_sfc_main$i, {\n name: \"header-prev-button\",\n disabled: !unref(canMovePrev)\n }, {\n default: withCtx(() => [\n createVNode(_sfc_main$c, {\n name: \"ChevronLeft\",\n size: \"24\"\n })\n ]),\n _: 1\n }, 8, [\"disabled\"])\n ], 40, _hoisted_1$6)) : createCommentVNode(\"\", true),\n show.value.title ? (openBlock(), createElementBlock(\"div\", _hoisted_2$5, [\n createVNode(_sfc_main$i, { name: \"header-title-wrapper\" }, {\n default: withCtx(() => [\n withDirectives((openBlock(), createElementBlock(\"button\", _hoisted_3$4, [\n createVNode(_sfc_main$i, {\n name: \"header-title\",\n title: _ctx.page.title\n }, {\n default: withCtx(() => [\n createElementVNode(\"span\", null, toDisplayString(_ctx.page.title), 1)\n ]),\n _: 1\n }, 8, [\"title\"])\n ])), [\n [unref(popoverDirective), navPopoverOptions.value]\n ])\n ]),\n _: 1\n })\n ])) : createCommentVNode(\"\", true),\n show.value.next ? (openBlock(), createElementBlock(\"button\", {\n key: 2,\n type: \"button\",\n class: \"vc-arrow vc-next vc-focus\",\n disabled: !unref(canMoveNext),\n onClick: _cache[2] || (_cache[2] = //@ts-ignore\n (...args) => unref(moveNext) && unref(moveNext)(...args)),\n onKeydown: _cache[3] || (_cache[3] = withKeys(\n //@ts-ignore\n (...args) => unref(moveNext) && unref(moveNext)(...args),\n [\"space\", \"enter\"]\n ))\n }, [\n createVNode(_sfc_main$i, {\n name: \"header-next-button\",\n disabled: !unref(canMoveNext)\n }, {\n default: withCtx(() => [\n createVNode(_sfc_main$c, {\n name: \"ChevronRight\",\n size: \"24\"\n })\n ]),\n _: 1\n }, 8, [\"disabled\"])\n ], 40, _hoisted_4$3)) : createCommentVNode(\"\", true)\n ], 6);\n };\n }\n});\nconst CalendarHeader_vue_vue_type_style_index_0_lang = \"\";\nconst contextKey$1 = Symbol(\"__vc_page_context__\");\nfunction createPage(page) {\n const { locale, getDateAddress, canMove } = useCalendar();\n function getMonthItems(year, mask) {\n const { month: thisMonth, year: thisYear } = getDateAddress(/* @__PURE__ */ new Date());\n return getMonthDates().map((d, i) => {\n const month = i + 1;\n return {\n month,\n year,\n id: getPageId(month, year),\n label: locale.value.formatDate(d, mask),\n ariaLabel: locale.value.formatDate(d, \"MMMM\"),\n isActive: month === page.value.month && year === page.value.year,\n isCurrent: month === thisMonth && year === thisYear,\n isDisabled: !canMove(\n { month, year },\n { position: page.value.position }\n )\n };\n });\n }\n function getYearItems(startYear, endYear) {\n const { year: thisYear } = getDateAddress(/* @__PURE__ */ new Date());\n const { position } = page.value;\n const items = [];\n for (let year = startYear; year <= endYear; year += 1) {\n const enabled = [...Array(12).keys()].some(\n (m) => canMove({ month: m + 1, year }, { position })\n );\n items.push({\n year,\n id: year.toString(),\n label: year.toString(),\n ariaLabel: year.toString(),\n isActive: year === page.value.year,\n isCurrent: year === thisYear,\n isDisabled: !enabled\n });\n }\n return items;\n }\n const context = { page, getMonthItems, getYearItems };\n provide(contextKey$1, context);\n return context;\n}\nfunction usePage() {\n const context = inject(contextKey$1);\n if (context)\n return context;\n throw new Error(\n \"Page context missing. Please verify this component is nested within a valid context provider.\"\n );\n}\nconst _hoisted_1$5 = { class: \"vc-nav-header\" };\nconst _hoisted_2$4 = [\"disabled\"];\nconst _hoisted_3$3 = [\"disabled\"];\nconst _hoisted_4$2 = { class: \"vc-nav-items\" };\nconst _hoisted_5$2 = [\"data-id\", \"aria-label\", \"disabled\", \"onClick\", \"onKeydown\"];\nconst yearGroupCount = 12;\nconst _sfc_main$a = /* @__PURE__ */ defineComponent({\n __name: \"CalendarNav\",\n setup(__props) {\n const { masks: masks2, move } = useCalendar();\n const { page, getMonthItems, getYearItems } = usePage();\n const monthMode = ref(true);\n const selectedYear = ref(page.value.year);\n const selectedYearGroup = ref(getYearGroupIndex(page.value.year));\n const navContainer = ref(null);\n function focusFirstItem() {\n setTimeout(() => {\n if (navContainer.value == null)\n return;\n const focusableEl = navContainer.value.querySelector(\n \".vc-nav-item:not(:disabled)\"\n );\n if (focusableEl) {\n focusableEl.focus();\n }\n }, 10);\n }\n function getYearGroupIndex(year) {\n return Math.floor(year / yearGroupCount);\n }\n function toggleMode() {\n monthMode.value = !monthMode.value;\n }\n function getStartYear(groupIndex) {\n return groupIndex * yearGroupCount;\n }\n function getEndYear(groupIndex) {\n return yearGroupCount * (groupIndex + 1) - 1;\n }\n function movePrev() {\n if (!prevItemsEnabled.value)\n return;\n if (monthMode.value) {\n movePrevYear();\n }\n movePrevYearGroup();\n }\n function moveNext() {\n if (!nextItemsEnabled.value)\n return;\n if (monthMode.value) {\n moveNextYear();\n }\n moveNextYearGroup();\n }\n function movePrevYear() {\n selectedYear.value--;\n }\n function moveNextYear() {\n selectedYear.value++;\n }\n function movePrevYearGroup() {\n selectedYearGroup.value--;\n }\n function moveNextYearGroup() {\n selectedYearGroup.value++;\n }\n const monthItems = computed(\n () => getMonthItems(selectedYear.value, masks2.value.navMonths).map((item) => ({\n ...item,\n click: () => move(\n { month: item.month, year: item.year },\n { position: page.value.position }\n )\n }))\n );\n const prevMonthItems = computed(\n () => getMonthItems(selectedYear.value - 1, masks2.value.navMonths)\n );\n const prevMonthItemsEnabled = computed(\n () => prevMonthItems.value.some((i) => !i.isDisabled)\n );\n const nextMonthItems = computed(\n () => getMonthItems(selectedYear.value + 1, masks2.value.navMonths)\n );\n const nextMonthItemsEnabled = computed(\n () => nextMonthItems.value.some((i) => !i.isDisabled)\n );\n const yearItems = computed(\n () => getYearItems(\n getStartYear(selectedYearGroup.value),\n getEndYear(selectedYearGroup.value)\n ).map((item) => {\n return {\n ...item,\n click: () => {\n selectedYear.value = item.year;\n monthMode.value = true;\n focusFirstItem();\n }\n };\n })\n );\n const prevYearItems = computed(\n () => getYearItems(\n getStartYear(selectedYearGroup.value - 1),\n getEndYear(selectedYearGroup.value - 1)\n )\n );\n const prevYearItemsEnabled = computed(\n () => prevYearItems.value.some((i) => !i.isDisabled)\n );\n const nextYearItems = computed(\n () => getYearItems(\n getStartYear(selectedYearGroup.value + 1),\n getEndYear(selectedYearGroup.value + 1)\n )\n );\n const nextYearItemsEnabled = computed(\n () => nextYearItems.value.some((i) => !i.isDisabled)\n );\n const activeItems = computed(\n () => monthMode.value ? monthItems.value : yearItems.value\n );\n const prevItemsEnabled = computed(\n () => monthMode.value ? prevMonthItemsEnabled.value : prevYearItemsEnabled.value\n );\n const nextItemsEnabled = computed(\n () => monthMode.value ? nextMonthItemsEnabled.value : nextYearItemsEnabled.value\n );\n const firstYear = computed(() => head$1(yearItems.value.map((i) => i.year)));\n const lastYear = computed(() => last$1(yearItems.value.map((i) => i.year)));\n const title2 = computed(() => {\n return monthMode.value ? selectedYear.value : `${firstYear.value} - ${lastYear.value}`;\n });\n watchEffect(() => {\n selectedYear.value = page.value.year;\n focusFirstItem();\n });\n watch(\n () => selectedYear.value,\n (val) => selectedYearGroup.value = getYearGroupIndex(val)\n );\n onMounted(() => focusFirstItem());\n return (_ctx, _cache) => {\n return openBlock(), createElementBlock(\"div\", {\n class: \"vc-nav-container\",\n ref_key: \"navContainer\",\n ref: navContainer\n }, [\n createElementVNode(\"div\", _hoisted_1$5, [\n createElementVNode(\"button\", {\n type: \"button\",\n class: \"vc-nav-arrow is-left vc-focus\",\n disabled: !prevItemsEnabled.value,\n onClick: movePrev,\n onKeydown: _cache[0] || (_cache[0] = (e) => unref(onSpaceOrEnter)(e, movePrev))\n }, [\n createVNode(_sfc_main$i, {\n name: \"nav-prev-button\",\n move: movePrev,\n disabled: !prevItemsEnabled.value\n }, {\n default: withCtx(() => [\n createVNode(_sfc_main$c, {\n name: \"ChevronLeft\",\n width: \"22px\",\n height: \"24px\"\n })\n ]),\n _: 1\n }, 8, [\"disabled\"])\n ], 40, _hoisted_2$4),\n createElementVNode(\"button\", {\n type: \"button\",\n class: \"vc-nav-title vc-focus\",\n onClick: toggleMode,\n onKeydown: _cache[1] || (_cache[1] = (e) => unref(onSpaceOrEnter)(e, toggleMode))\n }, toDisplayString(title2.value), 33),\n createElementVNode(\"button\", {\n type: \"button\",\n class: \"vc-nav-arrow is-right vc-focus\",\n disabled: !nextItemsEnabled.value,\n onClick: moveNext,\n onKeydown: _cache[2] || (_cache[2] = (e) => unref(onSpaceOrEnter)(e, moveNext))\n }, [\n createVNode(_sfc_main$i, {\n name: \"nav-next-button\",\n move: moveNext,\n disabled: !nextItemsEnabled.value\n }, {\n default: withCtx(() => [\n createVNode(_sfc_main$c, {\n name: \"ChevronRight\",\n width: \"22px\",\n height: \"24px\"\n })\n ]),\n _: 1\n }, 8, [\"disabled\"])\n ], 40, _hoisted_3$3)\n ]),\n createElementVNode(\"div\", _hoisted_4$2, [\n (openBlock(true), createElementBlock(Fragment, null, renderList(activeItems.value, (item) => {\n return openBlock(), createElementBlock(\"button\", {\n key: item.label,\n type: \"button\",\n \"data-id\": item.id,\n \"aria-label\": item.ariaLabel,\n class: normalizeClass([\"vc-nav-item vc-focus\", [\n item.isActive ? \"is-active\" : item.isCurrent ? \"is-current\" : \"\"\n ]]),\n disabled: item.isDisabled,\n onClick: item.click,\n onKeydown: (e) => unref(onSpaceOrEnter)(e, item.click)\n }, toDisplayString(item.label), 43, _hoisted_5$2);\n }), 128))\n ])\n ], 512);\n };\n }\n});\nconst CalendarNav_vue_vue_type_style_index_0_lang = \"\";\nconst _sfc_main$9 = /* @__PURE__ */ defineComponent({\n __name: \"CalendarPageProvider\",\n props: {\n page: {}\n },\n setup(__props) {\n const props = __props;\n createPage(toRef(props, \"page\"));\n return (_ctx, _cache) => {\n return renderSlot(_ctx.$slots, \"default\");\n };\n }\n});\nconst _sfc_main$8 = /* @__PURE__ */ defineComponent({\n __name: \"CalendarNavPopover\",\n setup(__props) {\n const { navPopoverId, color, displayMode } = useCalendar();\n return (_ctx, _cache) => {\n return openBlock(), createBlock(Popover, {\n id: unref(navPopoverId),\n class: normalizeClass([\"vc-nav-popover-container\", `vc-${unref(color)}`, `vc-${unref(displayMode)}`])\n }, {\n default: withCtx(({ data: data2 }) => [\n createVNode(_sfc_main$9, {\n page: data2.page\n }, {\n default: withCtx(() => [\n createVNode(_sfc_main$i, { name: \"nav\" }, {\n default: withCtx(() => [\n createVNode(_sfc_main$a)\n ]),\n _: 1\n })\n ]),\n _: 1\n }, 8, [\"page\"])\n ]),\n _: 1\n }, 8, [\"id\", \"class\"]);\n };\n }\n});\nconst _sfc_main$7 = defineComponent({\n directives: { popover: popoverDirective },\n components: { CalendarSlot: _sfc_main$i },\n props: {\n day: { type: Object, required: true }\n },\n setup(props) {\n const {\n locale,\n theme,\n attributeContext,\n dayPopoverId,\n onDayClick,\n onDayMouseenter,\n onDayMouseleave,\n onDayFocusin,\n onDayFocusout,\n onDayKeydown\n } = useCalendar();\n const day = computed(() => props.day);\n const attributeCells = computed(() => {\n return attributeContext.value.getCells(day.value);\n });\n const attributes = computed(\n () => attributeCells.value.map((cell) => cell.data)\n );\n const attributedDay = computed(() => {\n return {\n ...day.value,\n attributes: attributes.value,\n attributeCells: attributeCells.value\n };\n });\n function processPopover({ data: attribute }, { popovers: popovers2 }) {\n const { key, customData, popover } = attribute;\n if (!popover)\n return;\n const resolvedPopover = defaults$1(\n {\n key,\n customData,\n attribute\n },\n { ...popover },\n {\n visibility: popover.label ? \"hover\" : \"click\",\n placement: \"bottom\",\n isInteractive: !popover.label\n }\n );\n popovers2.splice(0, 0, resolvedPopover);\n }\n const glyphs = computed(() => {\n const result = {\n ...theme.value.prepareRender({}),\n popovers: []\n };\n attributeCells.value.forEach((cell) => {\n theme.value.render(cell, result);\n processPopover(cell, result);\n });\n return result;\n });\n const highlights = computed(() => glyphs.value.highlights);\n const hasHighlights = computed(() => !!arrayHasItems(highlights.value));\n const content = computed(() => glyphs.value.content);\n const dots = computed(() => glyphs.value.dots);\n const hasDots = computed(() => !!arrayHasItems(dots.value));\n const bars = computed(() => glyphs.value.bars);\n const hasBars = computed(() => !!arrayHasItems(bars.value));\n const popovers = computed(() => glyphs.value.popovers);\n const popoverAttrs = computed(\n () => popovers.value.map((p) => p.attribute)\n );\n const dayContentSlot = useSlot(\"day-content\");\n const dayClasses = computed(() => {\n return [\n \"vc-day\",\n ...day.value.classes,\n { \"vc-day-box-center-center\": !dayContentSlot },\n { \"is-not-in-month\": !props.day.inMonth }\n ];\n });\n const dayContentProps = computed(() => {\n let tabindex;\n if (day.value.isFocusable) {\n tabindex = \"0\";\n } else {\n tabindex = \"-1\";\n }\n const classes = [\n \"vc-day-content vc-focusable vc-focus vc-attr\",\n { \"vc-disabled\": day.value.isDisabled },\n get$2(last$1(highlights.value), \"contentClass\"),\n get$2(last$1(content.value), \"class\") || \"\"\n ];\n const style = {\n ...get$2(last$1(highlights.value), \"contentStyle\"),\n ...get$2(last$1(content.value), \"style\")\n };\n return {\n class: classes,\n style,\n tabindex,\n \"aria-label\": day.value.ariaLabel,\n \"aria-disabled\": day.value.isDisabled ? true : false,\n role: \"button\"\n };\n });\n const dayContentEvents = computed(() => {\n return {\n click(event) {\n onDayClick(attributedDay.value, event);\n },\n mouseenter(event) {\n onDayMouseenter(attributedDay.value, event);\n },\n mouseleave(event) {\n onDayMouseleave(attributedDay.value, event);\n },\n focusin(event) {\n onDayFocusin(attributedDay.value, event);\n },\n focusout(event) {\n onDayFocusout(attributedDay.value, event);\n },\n keydown(event) {\n onDayKeydown(attributedDay.value, event);\n }\n };\n });\n const dayPopover2 = computed(() => {\n if (!arrayHasItems(popovers.value))\n return null;\n return defaults$1(\n {\n id: dayPopoverId.value,\n data: { day, attributes: popoverAttrs.value }\n },\n ...popovers.value\n );\n });\n return {\n attributes,\n attributeCells,\n bars,\n dayClasses,\n dayContentProps,\n dayContentEvents,\n dayPopover: dayPopover2,\n glyphs,\n dots,\n hasDots,\n hasBars,\n highlights,\n hasHighlights,\n locale,\n popovers\n };\n }\n});\nconst CalendarDay_vue_vue_type_style_index_0_lang = \"\";\nconst _hoisted_1$4 = {\n key: 0,\n class: \"vc-highlights vc-day-layer\"\n};\nconst _hoisted_2$3 = {\n key: 1,\n class: \"vc-day-layer vc-day-box-center-bottom\"\n};\nconst _hoisted_3$2 = { class: \"vc-dots\" };\nconst _hoisted_4$1 = {\n key: 2,\n class: \"vc-day-layer vc-day-box-center-bottom\"\n};\nconst _hoisted_5$1 = { class: \"vc-bars\" };\nfunction _sfc_render$2(_ctx, _cache, $props, $setup, $data, $options) {\n const _component_CalendarSlot = resolveComponent(\"CalendarSlot\");\n const _directive_popover = resolveDirective(\"popover\");\n return openBlock(), createElementBlock(\"div\", {\n class: normalizeClass(_ctx.dayClasses)\n }, [\n _ctx.hasHighlights ? (openBlock(), createElementBlock(\"div\", _hoisted_1$4, [\n (openBlock(true), createElementBlock(Fragment, null, renderList(_ctx.highlights, ({ key, wrapperClass, class: bgClass, style }) => {\n return openBlock(), createElementBlock(\"div\", {\n key,\n class: normalizeClass(wrapperClass)\n }, [\n createElementVNode(\"div\", {\n class: normalizeClass(bgClass),\n style: normalizeStyle(style)\n }, null, 6)\n ], 2);\n }), 128))\n ])) : createCommentVNode(\"\", true),\n createVNode(_component_CalendarSlot, {\n name: \"day-content\",\n day: _ctx.day,\n attributes: _ctx.attributes,\n \"attribute-cells\": _ctx.attributeCells,\n dayProps: _ctx.dayContentProps,\n dayEvents: _ctx.dayContentEvents,\n locale: _ctx.locale\n }, {\n default: withCtx(() => [\n withDirectives((openBlock(), createElementBlock(\"div\", mergeProps(_ctx.dayContentProps, toHandlers(_ctx.dayContentEvents, true)), [\n createTextVNode(toDisplayString(_ctx.day.label), 1)\n ], 16)), [\n [_directive_popover, _ctx.dayPopover]\n ])\n ]),\n _: 1\n }, 8, [\"day\", \"attributes\", \"attribute-cells\", \"dayProps\", \"dayEvents\", \"locale\"]),\n _ctx.hasDots ? (openBlock(), createElementBlock(\"div\", _hoisted_2$3, [\n createElementVNode(\"div\", _hoisted_3$2, [\n (openBlock(true), createElementBlock(Fragment, null, renderList(_ctx.dots, ({ key, class: bgClass, style }) => {\n return openBlock(), createElementBlock(\"span\", {\n key,\n class: normalizeClass(bgClass),\n style: normalizeStyle(style)\n }, null, 6);\n }), 128))\n ])\n ])) : createCommentVNode(\"\", true),\n _ctx.hasBars ? (openBlock(), createElementBlock(\"div\", _hoisted_4$1, [\n createElementVNode(\"div\", _hoisted_5$1, [\n (openBlock(true), createElementBlock(Fragment, null, renderList(_ctx.bars, ({ key, class: bgClass, style }) => {\n return openBlock(), createElementBlock(\"span\", {\n key,\n class: normalizeClass(bgClass),\n style: normalizeStyle(style)\n }, null, 6);\n }), 128))\n ])\n ])) : createCommentVNode(\"\", true)\n ], 2);\n}\nconst CalendarDay = /* @__PURE__ */ _export_sfc(_sfc_main$7, [[\"render\", _sfc_render$2]]);\nconst _hoisted_1$3 = { class: \"vc-weekdays\" };\nconst _hoisted_2$2 = [\"onClick\"];\nconst __default__$2 = {\n inheritAttrs: false\n};\nconst _sfc_main$6 = /* @__PURE__ */ defineComponent({\n ...__default__$2,\n __name: \"CalendarPage\",\n setup(__props) {\n const { page } = usePage();\n const { onWeeknumberClick } = useCalendar();\n return (_ctx, _cache) => {\n return openBlock(), createElementBlock(\"div\", {\n class: normalizeClass([\n \"vc-pane\",\n `row-${unref(page).row}`,\n `row-from-end-${unref(page).rowFromEnd}`,\n `column-${unref(page).column}`,\n `column-from-end-${unref(page).columnFromEnd}`\n ]),\n ref: \"pane\"\n }, [\n createVNode(_sfc_main$b, {\n page: unref(page),\n \"is-lg\": \"\",\n \"hide-arrows\": \"\"\n }, null, 8, [\"page\"]),\n createElementVNode(\"div\", {\n class: normalizeClass([\"vc-weeks\", {\n [`vc-show-weeknumbers-${unref(page).weeknumberPosition}`]: unref(page).weeknumberPosition\n }])\n }, [\n createElementVNode(\"div\", _hoisted_1$3, [\n (openBlock(true), createElementBlock(Fragment, null, renderList(unref(page).weekdays, ({ weekday, label }, i) => {\n return openBlock(), createElementBlock(\"div\", {\n key: i,\n class: normalizeClass(`vc-weekday vc-weekday-${weekday}`)\n }, toDisplayString(label), 3);\n }), 128))\n ]),\n (openBlock(true), createElementBlock(Fragment, null, renderList(unref(page).viewWeeks, (week) => {\n return openBlock(), createElementBlock(\"div\", {\n key: `weeknumber-${week.weeknumber}`,\n class: \"vc-week\"\n }, [\n unref(page).weeknumberPosition ? (openBlock(), createElementBlock(\"div\", {\n key: 0,\n class: normalizeClass([\"vc-weeknumber\", `is-${unref(page).weeknumberPosition}`])\n }, [\n createElementVNode(\"span\", {\n class: normalizeClass([\"vc-weeknumber-content\"]),\n onClick: ($event) => unref(onWeeknumberClick)(week, $event)\n }, toDisplayString(week.weeknumberDisplay), 9, _hoisted_2$2)\n ], 2)) : createCommentVNode(\"\", true),\n (openBlock(true), createElementBlock(Fragment, null, renderList(week.days, (day) => {\n return openBlock(), createBlock(CalendarDay, {\n key: day.id,\n day\n }, null, 8, [\"day\"]);\n }), 128))\n ]);\n }), 128))\n ], 2)\n ], 2);\n };\n }\n});\nconst CalendarPage_vue_vue_type_style_index_0_lang = \"\";\nconst _sfc_main$5 = defineComponent({\n components: {\n CalendarHeader: _sfc_main$b,\n CalendarPage: _sfc_main$6,\n CalendarNavPopover: _sfc_main$8,\n CalendarDayPopover: _sfc_main$h,\n CalendarPageProvider: _sfc_main$9,\n CalendarSlot: _sfc_main$i\n },\n props: propsDef$1,\n emit: emitsDef,\n setup(props, { emit, slots }) {\n return createCalendar(props, { emit, slots });\n }\n});\nconst Calendar_vue_vue_type_style_index_0_lang = \"\";\nconst _hoisted_1$2 = { class: \"vc-pane-header-wrapper\" };\nfunction _sfc_render$1(_ctx, _cache, $props, $setup, $data, $options) {\n const _component_CalendarHeader = resolveComponent(\"CalendarHeader\");\n const _component_CalendarPage = resolveComponent(\"CalendarPage\");\n const _component_CalendarSlot = resolveComponent(\"CalendarSlot\");\n const _component_CalendarPageProvider = resolveComponent(\"CalendarPageProvider\");\n const _component_CalendarDayPopover = resolveComponent(\"CalendarDayPopover\");\n const _component_CalendarNavPopover = resolveComponent(\"CalendarNavPopover\");\n return openBlock(), createElementBlock(Fragment, null, [\n createElementVNode(\"div\", mergeProps({ \"data-helptext\": \"Press the arrow keys to navigate by day, Home and End to navigate to week ends, PageUp and PageDown to navigate by month, Alt+PageUp and Alt+PageDown to navigate by year\" }, _ctx.$attrs, {\n class: [\n \"vc-container\",\n `vc-${_ctx.view}`,\n `vc-${_ctx.color}`,\n `vc-${_ctx.displayMode}`,\n {\n \"vc-expanded\": _ctx.expanded,\n \"vc-bordered\": !_ctx.borderless,\n \"vc-transparent\": _ctx.transparent\n }\n ],\n onMouseup: _cache[0] || (_cache[0] = withModifiers(() => {\n }, [\"prevent\"])),\n ref: \"containerRef\"\n }), [\n createElementVNode(\"div\", {\n class: normalizeClass([\"vc-pane-container\", { \"in-transition\": _ctx.inTransition }])\n }, [\n createElementVNode(\"div\", _hoisted_1$2, [\n _ctx.firstPage ? (openBlock(), createBlock(_component_CalendarHeader, {\n key: 0,\n page: _ctx.firstPage,\n \"is-lg\": \"\",\n \"hide-title\": \"\"\n }, null, 8, [\"page\"])) : createCommentVNode(\"\", true)\n ]),\n createVNode(Transition, {\n name: `vc-${_ctx.transitionName}`,\n onBeforeEnter: _ctx.onTransitionBeforeEnter,\n onAfterEnter: _ctx.onTransitionAfterEnter\n }, {\n default: withCtx(() => [\n (openBlock(), createElementBlock(\"div\", {\n key: _ctx.pages[0].id,\n class: \"vc-pane-layout\",\n style: normalizeStyle({\n gridTemplateColumns: `repeat(${_ctx.columns}, 1fr)`\n })\n }, [\n (openBlock(true), createElementBlock(Fragment, null, renderList(_ctx.pages, (page) => {\n return openBlock(), createBlock(_component_CalendarPageProvider, {\n key: page.id,\n page\n }, {\n default: withCtx(() => [\n createVNode(_component_CalendarSlot, {\n name: \"page\",\n page\n }, {\n default: withCtx(() => [\n createVNode(_component_CalendarPage)\n ]),\n _: 1\n }, 8, [\"page\"])\n ]),\n _: 2\n }, 1032, [\"page\"]);\n }), 128))\n ], 4))\n ]),\n _: 1\n }, 8, [\"name\", \"onBeforeEnter\", \"onAfterEnter\"]),\n createVNode(_component_CalendarSlot, { name: \"footer\" })\n ], 2)\n ], 16),\n createVNode(_component_CalendarDayPopover),\n createVNode(_component_CalendarNavPopover)\n ], 64);\n}\nconst Calendar = /* @__PURE__ */ _export_sfc(_sfc_main$5, [[\"render\", _sfc_render$1]]);\nconst contextKey = Symbol(\"__vc_date_picker_context__\");\nconst propsDef = {\n ...propsDef$2,\n mode: { type: String, default: \"date\" },\n modelValue: {\n type: [Number, String, Date, Object]\n },\n modelModifiers: {\n type: Object,\n default: () => ({})\n },\n rules: [String, Object],\n is24hr: Boolean,\n hideTimeHeader: Boolean,\n timeAccuracy: { type: Number, default: 2 },\n isRequired: Boolean,\n isRange: Boolean,\n updateOnInput: {\n type: Boolean,\n default: () => getDefault(\"datePicker.updateOnInput\")\n },\n inputDebounce: {\n type: Number,\n default: () => getDefault(\"datePicker.inputDebounce\")\n },\n popover: {\n type: [Boolean, Object],\n default: true\n },\n dragAttribute: Object,\n selectAttribute: Object,\n attributes: [Object, Array]\n};\nconst emits = [\n \"update:modelValue\",\n \"drag\",\n \"dayclick\",\n \"daykeydown\",\n \"popover-will-show\",\n \"popover-did-show\",\n \"popover-will-hide\",\n \"popover-did-hide\"\n];\nfunction createDatePicker(props, { emit, slots }) {\n provideSlots(slots, { footer: \"dp-footer\" });\n const baseCtx = createBase(props);\n const { locale, masks: masks2, disabledAttribute } = baseCtx;\n const showCalendar = ref(false);\n const datePickerPopoverId = ref(Symbol());\n const dateValue = ref(null);\n const dragValue = ref(null);\n const inputValues = ref([\"\", \"\"]);\n const popoverRef = ref(null);\n const calendarRef = ref(null);\n let updateTimeout = void 0;\n let dragTrackingValue;\n let watchValue = true;\n const isRange = computed(() => {\n return props.isRange || props.modelModifiers.range === true;\n });\n const valueStart = computed(\n () => isRange.value && dateValue.value != null ? dateValue.value.start : null\n );\n const valueEnd = computed(\n () => isRange.value && dateValue.value != null ? dateValue.value.end : null\n );\n const isDateMode = computed(() => props.mode.toLowerCase() === \"date\");\n const isDateTimeMode = computed(\n () => props.mode.toLowerCase() === \"datetime\"\n );\n const isTimeMode = computed(() => props.mode.toLowerCase() === \"time\");\n const isDragging = computed(() => !!dragValue.value);\n const modelConfig = computed(() => {\n let type = \"date\";\n if (props.modelModifiers.number)\n type = \"number\";\n if (props.modelModifiers.string)\n type = \"string\";\n const mask = masks2.value.modelValue || \"iso\";\n return normalizeConfig2({ type, mask });\n });\n const dateParts = computed(\n () => getDateParts2(dragValue.value ?? dateValue.value)\n );\n const inputMask = computed(() => {\n if (isTimeMode.value) {\n return props.is24hr ? masks2.value.inputTime24hr : masks2.value.inputTime;\n }\n if (isDateTimeMode.value) {\n return props.is24hr ? masks2.value.inputDateTime24hr : masks2.value.inputDateTime;\n }\n return masks2.value.input;\n });\n const inputMaskHasTime = computed(() => /[Hh]/g.test(inputMask.value));\n const inputMaskHasDate = computed(\n () => /[dD]{1,2}|Do|W{1,4}|M{1,4}|YY(?:YY)?/g.test(inputMask.value)\n );\n const inputMaskPatch = computed(() => {\n if (inputMaskHasTime.value && inputMaskHasDate.value) {\n return \"dateTime\";\n }\n if (inputMaskHasDate.value)\n return \"date\";\n if (inputMaskHasTime.value)\n return \"time\";\n return void 0;\n });\n const popover = computed(() => {\n var _a;\n const target = ((_a = popoverRef.value) == null ? void 0 : _a.$el.previousElementSibling) ?? void 0;\n return defaultsDeep$1({}, props.popover, getDefault(\"datePicker.popover\"), {\n target\n });\n });\n const popoverEvents = computed(\n () => getPopoverEventHandlers({\n ...popover.value,\n id: datePickerPopoverId.value\n })\n );\n const inputValue = computed(() => {\n return isRange.value ? {\n start: inputValues.value[0],\n end: inputValues.value[1]\n } : inputValues.value[0];\n });\n const inputEvents = computed(() => {\n const events = [\"start\", \"end\"].map((target) => ({\n input: onInputInput(target),\n change: onInputChange(target),\n keyup: onInputKeyup,\n ...props.popover && popoverEvents.value\n }));\n return isRange.value ? {\n start: events[0],\n end: events[1]\n } : events[0];\n });\n const selectAttribute = computed(() => {\n if (!hasValue(dateValue.value))\n return null;\n const attribute = {\n key: \"select-drag\",\n ...props.selectAttribute,\n dates: dateValue.value,\n pinPage: true\n };\n const { dot, bar, highlight, content } = attribute;\n if (!dot && !bar && !highlight && !content) {\n attribute.highlight = true;\n }\n return attribute;\n });\n const dragAttribute = computed(() => {\n if (!isRange.value || !hasValue(dragValue.value)) {\n return null;\n }\n const attribute = {\n key: \"select-drag\",\n ...props.dragAttribute,\n dates: dragValue.value\n };\n const { dot, bar, highlight, content } = attribute;\n if (!dot && !bar && !highlight && !content) {\n attribute.highlight = {\n startEnd: {\n fillMode: \"outline\"\n }\n };\n }\n return attribute;\n });\n const attributes = computed(() => {\n const attrs = isArray(props.attributes) ? [...props.attributes] : [];\n if (dragAttribute.value) {\n attrs.unshift(dragAttribute.value);\n } else if (selectAttribute.value) {\n attrs.unshift(selectAttribute.value);\n }\n return attrs;\n });\n const rules = computed(() => {\n return normalizeConfig2(\n props.rules === \"auto\" ? getAutoRules() : props.rules ?? {}\n );\n });\n function getAutoRules() {\n const _rules = {\n ms: [0, 999],\n sec: [0, 59],\n min: [0, 59],\n hr: [0, 23]\n };\n const accuracy = isDateMode.value ? 0 : props.timeAccuracy;\n return [0, 1].map((i) => {\n switch (accuracy) {\n case 0:\n return {\n hours: _rules.hr[i],\n minutes: _rules.min[i],\n seconds: _rules.sec[i],\n milliseconds: _rules.ms[i]\n };\n case 1:\n return {\n minutes: _rules.min[i],\n seconds: _rules.sec[i],\n milliseconds: _rules.ms[i]\n };\n case 3:\n return { milliseconds: _rules.ms[i] };\n case 4:\n return {};\n default:\n return { seconds: _rules.sec[i], milliseconds: _rules.ms[i] };\n }\n });\n }\n function normalizeConfig2(config2) {\n if (isArray(config2)) {\n if (config2.length === 1)\n return [config2[0], config2[0]];\n return config2;\n }\n return [config2, config2];\n }\n function normalizeDateConfig(config2) {\n return normalizeConfig2(config2).map(\n (c, i) => ({\n ...c,\n rules: rules.value[i]\n })\n );\n }\n function hasDateValue(value) {\n if (value == null)\n return false;\n if (isNumber$1(value))\n return !isNaN(value);\n if (isDate(value))\n return !isNaN(value.getTime());\n if (isString$1(value))\n return value !== \"\";\n return isDateParts(value);\n }\n function hasRangeValue(value) {\n return isObject(value) && \"start\" in value && \"end\" in value && hasDateValue(value.start ?? null) && hasDateValue(value.end ?? null);\n }\n function hasValue(value) {\n return hasRangeValue(value) || hasDateValue(value);\n }\n function valuesAreEqual(a, b) {\n if (a == null && b == null)\n return true;\n if (a == null || b == null)\n return false;\n const aIsDate = isDate(a);\n const bIsDate = isDate(b);\n if (aIsDate && bIsDate)\n return a.getTime() === b.getTime();\n if (aIsDate || bIsDate)\n return false;\n return valuesAreEqual(a.start, b.start) && valuesAreEqual(a.end, b.end);\n }\n function valueIsDisabled(value) {\n if (!hasValue(value) || !disabledAttribute.value)\n return false;\n return disabledAttribute.value.intersectsRange(locale.value.range(value));\n }\n function normalizeValue(value, config2, patch, targetPriority) {\n if (!hasValue(value))\n return null;\n if (hasRangeValue(value)) {\n const start = locale.value.toDate(value.start, {\n ...config2[0],\n fillDate: valueStart.value ?? void 0,\n patch\n });\n const end = locale.value.toDate(value.end, {\n ...config2[1],\n fillDate: valueEnd.value ?? void 0,\n patch\n });\n return sortRange({ start, end }, targetPriority);\n }\n return locale.value.toDateOrNull(value, {\n ...config2[0],\n fillDate: dateValue.value,\n patch\n });\n }\n function denormalizeValue(value, config2) {\n if (hasRangeValue(value)) {\n return {\n start: locale.value.fromDate(value.start, config2[0]),\n end: locale.value.fromDate(value.end, config2[1])\n };\n }\n if (isRange.value) {\n return null;\n }\n return locale.value.fromDate(value, config2[0]);\n }\n function updateValue(value, opts = {}) {\n clearTimeout(updateTimeout);\n return new Promise((resolve) => {\n const { debounce = 0, ...args } = opts;\n if (debounce > 0) {\n updateTimeout = window.setTimeout(() => {\n resolve(forceUpdateValue(value, args));\n }, debounce);\n } else {\n resolve(forceUpdateValue(value, args));\n }\n });\n }\n function forceUpdateValue(value, {\n config: config2 = modelConfig.value,\n patch = \"dateTime\",\n clearIfEqual = false,\n formatInput: fInput = true,\n hidePopover: hPopover = false,\n dragging = isDragging.value,\n targetPriority,\n moveToValue: mValue = false\n } = {}) {\n const normalizedConfig = normalizeDateConfig(config2);\n let normalizedValue = normalizeValue(\n value,\n normalizedConfig,\n patch,\n targetPriority\n );\n const isDisabled = valueIsDisabled(normalizedValue);\n if (isDisabled) {\n if (dragging)\n return null;\n normalizedValue = dateValue.value;\n hPopover = false;\n } else if (normalizedValue == null && props.isRequired) {\n normalizedValue = dateValue.value;\n } else if (\n // Clear value if same value was passed\n normalizedValue != null && valuesAreEqual(dateValue.value, normalizedValue) && clearIfEqual\n ) {\n normalizedValue = null;\n }\n const valueRef = dragging ? dragValue : dateValue;\n const notify = !valuesAreEqual(valueRef.value, normalizedValue);\n valueRef.value = normalizedValue;\n if (!dragging)\n dragValue.value = null;\n const denormalizedValue = denormalizeValue(\n normalizedValue,\n modelConfig.value\n );\n if (notify) {\n watchValue = false;\n emit(dragging ? \"drag\" : \"update:modelValue\", denormalizedValue);\n nextTick(() => watchValue = true);\n }\n if (hPopover && !dragging)\n hidePopover$1();\n if (fInput)\n formatInput();\n if (mValue) {\n nextTick(() => moveToValue(targetPriority ?? \"start\"));\n }\n return denormalizedValue;\n }\n function formatInput() {\n nextTick(() => {\n const config2 = normalizeDateConfig({\n type: \"string\",\n mask: inputMask.value\n });\n const value = denormalizeValue(\n dragValue.value ?? dateValue.value,\n config2\n );\n if (isRange.value) {\n inputValues.value = [value && value.start, value && value.end];\n } else {\n inputValues.value = [value, \"\"];\n }\n });\n }\n function onInputUpdate(inputValue2, target, opts) {\n inputValues.value.splice(target === \"start\" ? 0 : 1, 1, inputValue2);\n const value = isRange.value ? {\n start: inputValues.value[0],\n end: inputValues.value[1] || inputValues.value[0]\n } : inputValue2;\n const config2 = {\n type: \"string\",\n mask: inputMask.value\n };\n updateValue(value, {\n ...opts,\n config: config2,\n patch: inputMaskPatch.value,\n targetPriority: target,\n moveToValue: true\n });\n }\n function onInputInput(target) {\n return (e) => {\n if (!props.updateOnInput)\n return;\n onInputUpdate(e.currentTarget.value, target, {\n formatInput: false,\n hidePopover: false,\n debounce: props.inputDebounce\n });\n };\n }\n function onInputChange(target) {\n return (e) => {\n onInputUpdate(e.currentTarget.value, target, {\n formatInput: true,\n hidePopover: false\n });\n };\n }\n function onInputKeyup(e) {\n if (e.key !== \"Escape\")\n return;\n updateValue(dateValue.value, {\n formatInput: true,\n hidePopover: true\n });\n }\n function getDateParts2(value) {\n if (isRange.value) {\n return [\n value && value.start ? locale.value.getDateParts(value.start) : null,\n value && value.end ? locale.value.getDateParts(value.end) : null\n ];\n }\n return [value ? locale.value.getDateParts(value) : null];\n }\n function cancelDrag() {\n dragValue.value = null;\n formatInput();\n }\n function onPopoverBeforeShow(el) {\n emit(\"popover-will-show\", el);\n }\n function onPopoverAfterShow(el) {\n emit(\"popover-did-show\", el);\n }\n function onPopoverBeforeHide(el) {\n cancelDrag();\n emit(\"popover-will-hide\", el);\n }\n function onPopoverAfterHide(el) {\n emit(\"popover-did-hide\", el);\n }\n function handleDayClick(day) {\n const opts = {\n patch: \"date\",\n formatInput: true,\n hidePopover: true\n };\n if (isRange.value) {\n const dragging = !isDragging.value;\n if (dragging) {\n dragTrackingValue = { start: day.startDate, end: day.endDate };\n } else if (dragTrackingValue != null) {\n dragTrackingValue.end = day.date;\n }\n updateValue(dragTrackingValue, {\n ...opts,\n dragging\n });\n } else {\n updateValue(day.date, {\n ...opts,\n clearIfEqual: !props.isRequired\n });\n }\n }\n function onDayClick(day, event) {\n handleDayClick(day);\n emit(\"dayclick\", day, event);\n }\n function onDayKeydown(day, event) {\n switch (event.key) {\n case \" \":\n case \"Enter\": {\n handleDayClick(day);\n event.preventDefault();\n break;\n }\n case \"Escape\": {\n hidePopover$1();\n }\n }\n emit(\"daykeydown\", day, event);\n }\n function onDayMouseEnter(day, event) {\n if (!isDragging.value || dragTrackingValue == null)\n return;\n dragTrackingValue.end = day.date;\n updateValue(sortRange(dragTrackingValue), {\n patch: \"date\",\n formatInput: true\n });\n }\n function showPopover$1(opts = {}) {\n showPopover({\n ...popover.value,\n ...opts,\n isInteractive: true,\n id: datePickerPopoverId.value\n });\n }\n function hidePopover$1(opts = {}) {\n hidePopover({\n hideDelay: 10,\n force: true,\n ...popover.value,\n ...opts,\n id: datePickerPopoverId.value\n });\n }\n function togglePopover$1(opts) {\n togglePopover({\n ...popover.value,\n ...opts,\n isInteractive: true,\n id: datePickerPopoverId.value\n });\n }\n function sortRange(range, priority) {\n const { start, end } = range;\n if (start > end) {\n switch (priority) {\n case \"start\":\n return { start, end: start };\n case \"end\":\n return { start: end, end };\n default:\n return { start: end, end: start };\n }\n }\n return { start, end };\n }\n async function move(target, opts = {}) {\n if (calendarRef.value == null)\n return false;\n return calendarRef.value.move(target, opts);\n }\n async function moveBy(pages, opts = {}) {\n if (calendarRef.value == null)\n return false;\n return calendarRef.value.moveBy(pages, opts);\n }\n async function moveToValue(target, opts = {}) {\n const dValue = dateValue.value;\n if (calendarRef.value == null || !hasValue(dValue))\n return false;\n const start = target !== \"end\";\n const position = start ? 1 : -1;\n const date = hasRangeValue(dValue) ? start ? dValue.start : dValue.end : dValue;\n const page = getPageAddressForDate(date, \"monthly\", locale.value);\n return calendarRef.value.move(page, { position, ...opts });\n }\n watch(\n () => props.isRange,\n (val) => {\n if (val) {\n console.warn(\n \"The `is-range` prop will be deprecated in future releases. Please use the `range` modifier.\"\n );\n }\n },\n { immediate: true }\n );\n watch(\n () => isRange.value,\n () => {\n forceUpdateValue(null, { formatInput: true });\n }\n );\n watch(\n () => inputMask.value,\n () => formatInput()\n );\n watch(\n () => props.modelValue,\n (val) => {\n if (!watchValue)\n return;\n forceUpdateValue(val, {\n formatInput: true,\n hidePopover: false\n });\n }\n );\n watch(\n () => rules.value,\n () => {\n if (isObject(props.rules)) {\n forceUpdateValue(props.modelValue, {\n formatInput: true,\n hidePopover: false\n });\n }\n }\n );\n watch(\n () => props.timezone,\n () => {\n forceUpdateValue(dateValue.value, { formatInput: true });\n }\n );\n const config = normalizeConfig2(modelConfig.value);\n dateValue.value = normalizeValue(\n props.modelValue ?? null,\n config,\n \"dateTime\"\n );\n onMounted(() => {\n forceUpdateValue(props.modelValue, {\n formatInput: true,\n hidePopover: false\n });\n });\n nextTick(() => showCalendar.value = true);\n const context = {\n ...baseCtx,\n showCalendar,\n datePickerPopoverId,\n popoverRef,\n popoverEvents,\n calendarRef,\n isRange,\n isTimeMode,\n isDateTimeMode,\n is24hr: toRef(props, \"is24hr\"),\n hideTimeHeader: toRef(props, \"hideTimeHeader\"),\n timeAccuracy: toRef(props, \"timeAccuracy\"),\n isDragging,\n inputValue,\n inputEvents,\n dateParts,\n attributes,\n rules,\n move,\n moveBy,\n moveToValue,\n updateValue,\n showPopover: showPopover$1,\n hidePopover: hidePopover$1,\n togglePopover: togglePopover$1,\n onDayClick,\n onDayKeydown,\n onDayMouseEnter,\n onPopoverBeforeShow,\n onPopoverAfterShow,\n onPopoverBeforeHide,\n onPopoverAfterHide\n };\n provide(contextKey, context);\n return context;\n}\nfunction useDatePicker() {\n const context = inject(contextKey);\n if (context)\n return context;\n throw new Error(\n \"DatePicker context missing. Please verify this component is nested within a valid context provider.\"\n );\n}\nconst _amOptions = [\n { value: 0, label: \"12\" },\n { value: 1, label: \"1\" },\n { value: 2, label: \"2\" },\n { value: 3, label: \"3\" },\n { value: 4, label: \"4\" },\n { value: 5, label: \"5\" },\n { value: 6, label: \"6\" },\n { value: 7, label: \"7\" },\n { value: 8, label: \"8\" },\n { value: 9, label: \"9\" },\n { value: 10, label: \"10\" },\n { value: 11, label: \"11\" }\n];\nconst _pmOptions = [\n { value: 12, label: \"12\" },\n { value: 13, label: \"1\" },\n { value: 14, label: \"2\" },\n { value: 15, label: \"3\" },\n { value: 16, label: \"4\" },\n { value: 17, label: \"5\" },\n { value: 18, label: \"6\" },\n { value: 19, label: \"7\" },\n { value: 20, label: \"8\" },\n { value: 21, label: \"9\" },\n { value: 22, label: \"10\" },\n { value: 23, label: \"11\" }\n];\nfunction createTimePicker(props) {\n const ctx = useDatePicker();\n const {\n locale,\n isRange,\n isTimeMode,\n dateParts,\n rules,\n is24hr,\n hideTimeHeader,\n timeAccuracy,\n updateValue: updateDpValue\n } = ctx;\n function updateParts(newParts) {\n newParts = Object.assign(parts.value, newParts);\n let newValue = null;\n if (isRange.value) {\n const start = isStart.value ? newParts : dateParts.value[0];\n const end = isStart.value ? dateParts.value[1] : newParts;\n newValue = { start, end };\n } else {\n newValue = newParts;\n }\n updateDpValue(newValue, {\n patch: \"time\",\n targetPriority: isStart.value ? \"start\" : \"end\",\n moveToValue: true\n });\n }\n const isStart = computed(() => props.position === 0);\n const parts = computed(\n () => dateParts.value[props.position] || { isValid: false }\n );\n const partsValid = computed(() => isDateParts(parts.value));\n const isValid = computed(() => !!parts.value.isValid);\n const showHeader = computed(() => {\n return !hideTimeHeader.value && isValid.value;\n });\n const date = computed(() => {\n if (!partsValid.value)\n return null;\n let date2 = locale.value.toDate(parts.value);\n if (parts.value.hours === 24) {\n date2 = new Date(date2.getTime() - 1);\n }\n return date2;\n });\n const hours2 = computed({\n get() {\n return parts.value.hours;\n },\n set(val) {\n updateParts({ hours: val });\n }\n });\n const minutes = computed({\n get() {\n return parts.value.minutes;\n },\n set(val) {\n updateParts({ minutes: val });\n }\n });\n const seconds = computed({\n get() {\n return parts.value.seconds;\n },\n set(val) {\n updateParts({ seconds: val });\n }\n });\n const milliseconds = computed({\n get() {\n return parts.value.milliseconds;\n },\n set(val) {\n updateParts({ milliseconds: val });\n }\n });\n const isAM = computed({\n get() {\n return parts.value.hours < 12;\n },\n set(value) {\n value = String(value).toLowerCase() == \"true\";\n let hValue = hours2.value;\n if (value && hValue >= 12) {\n hValue -= 12;\n } else if (!value && hValue < 12) {\n hValue += 12;\n }\n updateParts({ hours: hValue });\n }\n });\n const options = computed(\n () => getDatePartsOptions(parts.value, rules.value[props.position])\n );\n const amHourOptions = computed(() => {\n return _amOptions.filter(\n (opt) => options.value.hours.some((ho) => ho.value === opt.value)\n );\n });\n const pmHourOptions = computed(() => {\n return _pmOptions.filter(\n (opt) => options.value.hours.some((ho) => ho.value === opt.value)\n );\n });\n const hourOptions = computed(() => {\n if (is24hr.value)\n return options.value.hours;\n if (isAM.value)\n return amHourOptions.value;\n return pmHourOptions.value;\n });\n const isAMOptions = computed(() => {\n const result = [];\n if (arrayHasItems(amHourOptions.value))\n result.push({ value: true, label: \"AM\" });\n if (arrayHasItems(pmHourOptions.value))\n result.push({ value: false, label: \"PM\" });\n return result;\n });\n return {\n ...ctx,\n showHeader,\n timeAccuracy,\n parts,\n isValid,\n date,\n hours: hours2,\n minutes,\n seconds,\n milliseconds,\n options,\n hourOptions,\n isAM,\n isAMOptions,\n is24hr\n };\n}\nconst _hoisted_1$1 = [\"value\"];\nconst _hoisted_2$1 = [\"value\", \"disabled\"];\nconst _hoisted_3$1 = {\n key: 1,\n class: \"vc-base-sizer\",\n \"aria-hidden\": \"true\"\n};\nconst __default__$1 = {\n inheritAttrs: false\n};\nconst _sfc_main$4 = /* @__PURE__ */ defineComponent({\n ...__default__$1,\n __name: \"BaseSelect\",\n props: {\n options: {},\n modelValue: {},\n alignRight: { type: Boolean },\n alignLeft: { type: Boolean },\n showIcon: { type: Boolean },\n fitContent: { type: Boolean }\n },\n emits: [\"update:modelValue\"],\n setup(__props) {\n const props = __props;\n const selectedLabel = computed(() => {\n const option = props.options.find((opt) => opt.value === props.modelValue);\n return option == null ? void 0 : option.label;\n });\n return (_ctx, _cache) => {\n return openBlock(), createElementBlock(\"div\", {\n class: normalizeClass([\"vc-base-select\", {\n \"vc-fit-content\": _ctx.fitContent,\n \"vc-has-icon\": _ctx.showIcon\n }])\n }, [\n createElementVNode(\"select\", mergeProps(_ctx.$attrs, {\n value: _ctx.modelValue,\n class: [\"vc-focus\", {\n \"vc-align-right\": _ctx.alignRight,\n \"vc-align-left\": _ctx.alignLeft\n }],\n onChange: _cache[0] || (_cache[0] = ($event) => _ctx.$emit(\"update:modelValue\", $event.target.value))\n }), [\n (openBlock(true), createElementBlock(Fragment, null, renderList(_ctx.options, (option) => {\n return openBlock(), createElementBlock(\"option\", {\n key: option.value,\n value: option.value,\n disabled: option.disabled\n }, toDisplayString(option.label), 9, _hoisted_2$1);\n }), 128))\n ], 16, _hoisted_1$1),\n _ctx.showIcon ? (openBlock(), createBlock(_sfc_main$c, {\n key: 0,\n name: \"ChevronDown\",\n size: \"18\"\n })) : createCommentVNode(\"\", true),\n _ctx.fitContent ? (openBlock(), createElementBlock(\"div\", _hoisted_3$1, toDisplayString(selectedLabel.value), 1)) : createCommentVNode(\"\", true)\n ], 2);\n };\n }\n});\nconst BaseSelect_vue_vue_type_style_index_0_lang = \"\";\nconst _hoisted_1 = {\n key: 0,\n class: \"vc-time-header\"\n};\nconst _hoisted_2 = { class: \"vc-time-weekday\" };\nconst _hoisted_3 = { class: \"vc-time-month\" };\nconst _hoisted_4 = { class: \"vc-time-day\" };\nconst _hoisted_5 = { class: \"vc-time-year\" };\nconst _hoisted_6 = { class: \"vc-time-select-group\" };\nconst _sfc_main$3 = /* @__PURE__ */ defineComponent({\n __name: \"TimePicker\",\n props: {\n position: {}\n },\n setup(__props, { expose: __expose }) {\n const props = __props;\n const timePicker = createTimePicker(props);\n __expose(timePicker);\n const {\n locale,\n isValid,\n date,\n hours: hours2,\n minutes,\n seconds,\n milliseconds,\n options,\n hourOptions,\n isTimeMode,\n isAM,\n isAMOptions,\n is24hr,\n showHeader,\n timeAccuracy\n } = timePicker;\n return (_ctx, _cache) => {\n return openBlock(), createElementBlock(\"div\", {\n class: normalizeClass([\"vc-time-picker\", [{ \"vc-invalid\": !unref(isValid), \"vc-attached\": !unref(isTimeMode) }]])\n }, [\n createVNode(_sfc_main$i, { name: \"time-header\" }, {\n default: withCtx(() => [\n unref(showHeader) && unref(date) ? (openBlock(), createElementBlock(\"div\", _hoisted_1, [\n createElementVNode(\"span\", _hoisted_2, toDisplayString(unref(locale).formatDate(unref(date), \"WWW\")), 1),\n createElementVNode(\"span\", _hoisted_3, toDisplayString(unref(locale).formatDate(unref(date), \"MMM\")), 1),\n createElementVNode(\"span\", _hoisted_4, toDisplayString(unref(locale).formatDate(unref(date), \"D\")), 1),\n createElementVNode(\"span\", _hoisted_5, toDisplayString(unref(locale).formatDate(unref(date), \"YYYY\")), 1)\n ])) : createCommentVNode(\"\", true)\n ]),\n _: 1\n }),\n createElementVNode(\"div\", _hoisted_6, [\n createVNode(_sfc_main$c, {\n name: \"Clock\",\n size: \"17\"\n }),\n createVNode(_sfc_main$4, {\n modelValue: unref(hours2),\n \"onUpdate:modelValue\": _cache[0] || (_cache[0] = ($event) => isRef(hours2) ? hours2.value = $event : null),\n modelModifiers: { number: true },\n options: unref(hourOptions),\n class: \"vc-time-select-hours\",\n \"align-right\": \"\"\n }, null, 8, [\"modelValue\", \"options\"]),\n unref(timeAccuracy) > 1 ? (openBlock(), createElementBlock(Fragment, { key: 0 }, [\n _cache[5] || (_cache[5] = createElementVNode(\"span\", { class: \"vc-time-colon\" }, \":\", -1)),\n createVNode(_sfc_main$4, {\n modelValue: unref(minutes),\n \"onUpdate:modelValue\": _cache[1] || (_cache[1] = ($event) => isRef(minutes) ? minutes.value = $event : null),\n modelModifiers: { number: true },\n options: unref(options).minutes,\n class: \"vc-time-select-minutes\",\n \"align-left\": unref(timeAccuracy) === 2\n }, null, 8, [\"modelValue\", \"options\", \"align-left\"])\n ], 64)) : createCommentVNode(\"\", true),\n unref(timeAccuracy) > 2 ? (openBlock(), createElementBlock(Fragment, { key: 1 }, [\n _cache[6] || (_cache[6] = createElementVNode(\"span\", { class: \"vc-time-colon\" }, \":\", -1)),\n createVNode(_sfc_main$4, {\n modelValue: unref(seconds),\n \"onUpdate:modelValue\": _cache[2] || (_cache[2] = ($event) => isRef(seconds) ? seconds.value = $event : null),\n modelModifiers: { number: true },\n options: unref(options).seconds,\n class: \"vc-time-select-seconds\",\n \"align-left\": unref(timeAccuracy) === 3\n }, null, 8, [\"modelValue\", \"options\", \"align-left\"])\n ], 64)) : createCommentVNode(\"\", true),\n unref(timeAccuracy) > 3 ? (openBlock(), createElementBlock(Fragment, { key: 2 }, [\n _cache[7] || (_cache[7] = createElementVNode(\"span\", { class: \"vc-time-decimal\" }, \".\", -1)),\n createVNode(_sfc_main$4, {\n modelValue: unref(milliseconds),\n \"onUpdate:modelValue\": _cache[3] || (_cache[3] = ($event) => isRef(milliseconds) ? milliseconds.value = $event : null),\n modelModifiers: { number: true },\n options: unref(options).milliseconds,\n class: \"vc-time-select-milliseconds\",\n \"align-left\": \"\"\n }, null, 8, [\"modelValue\", \"options\"])\n ], 64)) : createCommentVNode(\"\", true),\n !unref(is24hr) ? (openBlock(), createBlock(_sfc_main$4, {\n key: 3,\n modelValue: unref(isAM),\n \"onUpdate:modelValue\": _cache[4] || (_cache[4] = ($event) => isRef(isAM) ? isAM.value = $event : null),\n options: unref(isAMOptions)\n }, null, 8, [\"modelValue\", \"options\"])) : createCommentVNode(\"\", true)\n ])\n ], 2);\n };\n }\n});\nconst TimePicker_vue_vue_type_style_index_0_lang = \"\";\nconst _sfc_main$2 = /* @__PURE__ */ defineComponent({\n __name: \"DatePickerBase\",\n setup(__props) {\n const {\n attributes,\n calendarRef,\n color,\n displayMode,\n isDateTimeMode,\n isTimeMode,\n isRange,\n onDayClick,\n onDayMouseEnter,\n onDayKeydown\n } = useDatePicker();\n const positions = isRange.value ? [0, 1] : [0];\n return (_ctx, _cache) => {\n return unref(isTimeMode) ? (openBlock(), createElementBlock(\"div\", {\n key: 0,\n class: normalizeClass(`vc-container vc-bordered vc-${unref(color)} vc-${unref(displayMode)}`)\n }, [\n (openBlock(true), createElementBlock(Fragment, null, renderList(unref(positions), (position) => {\n return openBlock(), createBlock(_sfc_main$3, {\n key: position,\n position\n }, null, 8, [\"position\"]);\n }), 128))\n ], 2)) : (openBlock(), createBlock(Calendar, {\n key: 1,\n attributes: unref(attributes),\n ref_key: \"calendarRef\",\n ref: calendarRef,\n onDayclick: unref(onDayClick),\n onDaymouseenter: unref(onDayMouseEnter),\n onDaykeydown: unref(onDayKeydown)\n }, {\n footer: withCtx(() => [\n unref(isDateTimeMode) ? (openBlock(true), createElementBlock(Fragment, { key: 0 }, renderList(unref(positions), (position) => {\n return openBlock(), createBlock(_sfc_main$3, {\n key: position,\n position\n }, null, 8, [\"position\"]);\n }), 128)) : createCommentVNode(\"\", true),\n createVNode(_sfc_main$i, { name: \"dp-footer\" })\n ]),\n _: 1\n }, 8, [\"attributes\", \"onDayclick\", \"onDaymouseenter\", \"onDaykeydown\"]));\n };\n }\n});\nconst __default__ = {\n inheritAttrs: false\n};\nconst _sfc_main$1 = /* @__PURE__ */ defineComponent({\n ...__default__,\n __name: \"DatePickerPopover\",\n setup(__props) {\n const {\n datePickerPopoverId,\n color,\n displayMode,\n popoverRef,\n onPopoverBeforeShow,\n onPopoverAfterShow,\n onPopoverBeforeHide,\n onPopoverAfterHide\n } = useDatePicker();\n return (_ctx, _cache) => {\n return openBlock(), createBlock(Popover, {\n id: unref(datePickerPopoverId),\n placement: \"bottom-start\",\n class: normalizeClass(`vc-date-picker-content vc-${unref(color)} vc-${unref(displayMode)}`),\n ref_key: \"popoverRef\",\n ref: popoverRef,\n onBeforeShow: unref(onPopoverBeforeShow),\n onAfterShow: unref(onPopoverAfterShow),\n onBeforeHide: unref(onPopoverBeforeHide),\n onAfterHide: unref(onPopoverAfterHide)\n }, {\n default: withCtx(() => [\n createVNode(_sfc_main$2, normalizeProps(guardReactiveProps(_ctx.$attrs)), null, 16)\n ]),\n _: 1\n }, 8, [\"id\", \"class\", \"onBeforeShow\", \"onAfterShow\", \"onBeforeHide\", \"onAfterHide\"]);\n };\n }\n});\nconst _sfc_main = defineComponent({\n inheritAttrs: false,\n emits,\n props: propsDef,\n components: { DatePickerBase: _sfc_main$2, DatePickerPopover: _sfc_main$1 },\n setup(props, ctx) {\n const datePicker = createDatePicker(props, ctx);\n const slotCtx = reactive(omit(datePicker, \"calendarRef\", \"popoverRef\"));\n return { ...datePicker, slotCtx };\n }\n});\nfunction _sfc_render(_ctx, _cache, $props, $setup, $data, $options) {\n const _component_DatePickerPopover = resolveComponent(\"DatePickerPopover\");\n const _component_DatePickerBase = resolveComponent(\"DatePickerBase\");\n return _ctx.$slots.default ? (openBlock(), createElementBlock(Fragment, { key: 0 }, [\n renderSlot(_ctx.$slots, \"default\", normalizeProps(guardReactiveProps(_ctx.slotCtx))),\n createVNode(_component_DatePickerPopover, normalizeProps(guardReactiveProps(_ctx.$attrs)), null, 16)\n ], 64)) : (openBlock(), createBlock(_component_DatePickerBase, normalizeProps(mergeProps({ key: 1 }, _ctx.$attrs)), null, 16));\n}\nconst DatePicker = /* @__PURE__ */ _export_sfc(_sfc_main, [[\"render\", _sfc_render]]);\nconst components = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.defineProperty({\n __proto__: null,\n Calendar,\n DatePicker,\n Popover,\n PopoverRow: _sfc_main$j\n}, Symbol.toStringTag, { value: \"Module\" }));\nconst index$1 = \"\";\nconst install = (app, defaults2 = {}) => {\n app.use(setupDefaults, defaults2);\n const prefix = app.config.globalProperties.$VCalendar.componentPrefix;\n for (const componentKey in components) {\n const component = components[componentKey];\n app.component(`${prefix}${componentKey}`, component);\n }\n};\nconst index = { install };\nexport {\n Calendar,\n DatePicker,\n Popover,\n _sfc_main$j as PopoverRow,\n createCalendar,\n createDatePicker,\n index as default,\n popoverDirective,\n setupDefaults as setupCalendar,\n useCalendar,\n useDatePicker\n};\n//# sourceMappingURL=index.js.map\n","export const tryParseAnyDate = (value: string): Date | null => {\n if (!value) {\n return null;\n }\n // For YYYY-MM-DD format, use local date construction to avoid UTC offset issues\n const isoMatch = /^(\\d{4})-(\\d{1,2})-(\\d{1,2})$/.exec(value);\n if (isoMatch) {\n const d = new Date(\n Number(isoMatch[1]),\n Number(isoMatch[2]) - 1,\n Number(isoMatch[3]),\n );\n return Number.isNaN(d.getTime()) ? null : d;\n }\n const d = new Date(value);\n return Number.isNaN(d.getTime()) ? null : d;\n};\n\nexport const parseDateString = (value: string): Date | null => {\n if (!value) {\n return null;\n }\n // Strict yyyy-MM-dd format validation\n const match = /^(\\d{4})-(\\d{2})-(\\d{2})$/.exec(value);\n if (!match) {\n return null;\n }\n const year = Number(match[1]);\n const month = Number(match[2]);\n const day = Number(match[3]);\n\n const date = new Date(year, month - 1, day);\n\n // Verify the date didn't roll over (e.g., \"2026-02-30\" → \"2026-03-02\")\n if (\n date.getFullYear() !== year ||\n date.getMonth() !== month - 1 ||\n date.getDate() !== day\n ) {\n return null;\n }\n\n return date;\n};\n\nexport const formatDateToString = (date: Date | string | null): string => {\n if (!date) {\n return \"\";\n }\n const d = date instanceof Date ? date : new Date(date);\n\n if (Number.isNaN(d.getTime())) {\n return \"\";\n }\n\n return [d.getFullYear(), d.getMonth() + 1, d.getDate()]\n .map((n) => String(n).padStart(2, \"0\"))\n .join(\"-\");\n};\n","<script setup lang=\"ts\">\nimport \"v-calendar/dist/style.css\";\n\nimport { computed, ref, useTemplateRef } from \"vue\";\nimport { DatePicker } from \"v-calendar\";\n\nimport KdsToggleButton from \"../../../buttons/KdsToggleButton/KdsToggleButton.vue\";\nimport KdsPopover from \"../../../overlays/Popover/KdsPopover.vue\";\nimport { useKdsDarkMode } from \"../../../util/useKdsDarkMode.ts\";\nimport BaseFormFieldWrapper from \"../../_helper/BaseFormFieldWrapper.vue\";\nimport type { KdsFormFieldExpose } from \"../../types.ts\";\nimport BaseInput from \"../BaseInput.vue\";\n\nimport {\n formatDateToString,\n parseDateString,\n tryParseAnyDate,\n} from \"./dateUtils.ts\";\nimport type { KdsDateInputProps } from \"./types.ts\";\n\nconst {\n disabled = false,\n error = false,\n autocomplete,\n placeholder = \"yyyy-MM-dd\",\n datePickerMin,\n datePickerMax,\n subText,\n} = defineProps<KdsDateInputProps>();\n\nconst { isDarkMode } = useKdsDarkMode();\n\nconst modelValue = defineModel<string>({ default: \"\" });\nconst baseInput = useTemplateRef(\"baseInput\");\nconst popoverIsVisible = ref(false);\nconst legacyDateFormat = \"yyyy-MM-dd\";\nconst popoverRef = useTemplateRef(\"popoverRef\");\n\nconst inputError = ref(false);\n\nconst invalidDateFormatMessage =\n \"Invalid date format. The expected date format is yyyy-MM-dd (e.g. 2026-03-11).\";\nconst effectiveError = computed(() => error || inputError.value);\nconst effectiveSubText = computed(() =>\n inputError.value ? invalidDateFormatMessage : subText,\n);\n\nconst datePickerValue = computed(() => {\n if (typeof modelValue.value !== \"string\") {\n return null;\n }\n return parseDateString(modelValue.value);\n});\n\nconst onDatePickerInput = (date: Date | string | null) => {\n modelValue.value = formatDateToString(date);\n inputError.value = false;\n popoverIsVisible.value = false;\n};\n\nconst onTextInputBlur = () => {\n if (!modelValue.value) {\n inputError.value = false;\n return;\n }\n const parsed = tryParseAnyDate(modelValue.value);\n\n if (parsed) {\n modelValue.value = formatDateToString(parsed);\n inputError.value = false;\n } else {\n inputError.value = true;\n }\n};\n\ndefineExpose<KdsFormFieldExpose>({\n focus: () => baseInput.value?.focus(),\n});\n</script>\n\n<template>\n <BaseFormFieldWrapper\n v-bind=\"$props\"\n :error=\"effectiveError\"\n :sub-text=\"effectiveSubText\"\n >\n <template #default=\"slotProps\">\n <BaseInput\n ref=\"baseInput\"\n v-bind=\"slotProps\"\n v-model=\"modelValue\"\n type=\"text\"\n :placeholder\n :disabled\n :error=\"effectiveError\"\n :autocomplete\n :style=\"popoverRef?.anchorStyle\"\n :aria-controls=\"popoverRef?.popoverId\"\n @blur=\"onTextInputBlur\"\n >\n <template #trailing>\n <KdsToggleButton\n v-model=\"popoverIsVisible\"\n type=\"button\"\n size=\"xsmall\"\n variant=\"outlined\"\n leading-icon=\"calendar\"\n aria-label=\"Open date picker\"\n :disabled\n :aria-controls=\"popoverRef?.popoverId\"\n aria-haspopup=\"dialog\"\n :aria-expanded=\"popoverIsVisible\"\n :title=\"popoverIsVisible ? 'Close date picker' : 'Open date picker'\"\n />\n\n <KdsPopover\n ref=\"popoverRef\"\n v-model=\"popoverIsVisible\"\n placement=\"bottom-right\"\n role=\"dialog\"\n popover-aria-label=\"Date picker\"\n >\n <DatePicker\n v-if=\"popoverIsVisible\"\n :model-value=\"datePickerValue\"\n :is-dark=\"isDarkMode\"\n class=\"v-calendar-date-picker\"\n :is-required=\"true\"\n color=\"masala\"\n :popover=\"{\n placement: 'bottom',\n visibility: 'click',\n }\"\n :masks=\"{ L: legacyDateFormat }\"\n :max-date=\"datePickerMax\"\n :min-date=\"datePickerMin\"\n @popover-will-hide=\"popoverIsVisible = false\"\n @popover-will-show=\"popoverIsVisible = true\"\n @update:model-value=\"onDatePickerInput\"\n />\n </KdsPopover>\n </template>\n </BaseInput>\n </template>\n </BaseFormFieldWrapper>\n</template>\n\n<style>\n.v-calendar-date-picker {\n --vc-bg: var(--kds-color-surface-default);\n --vc-font-family: var(--kds-core-font-family-roboto);\n --vc-color: var(--kds-color-text-and-icon-neutral);\n --vc-border: transparent;\n --vc-rounded: var(--kds-border-radius-container-0-25x);\n\n --vc-font-normal: 400;\n --vc-font-medium: 500;\n --vc-font-semibold: 600;\n --vc-font-bold: 700;\n\n --vc-text-2xs: var(--kds-core-font-size-0-62x);\n --vc-text-xs: var(--kds-core-font-size-0-62x);\n --vc-text-sm: var(--kds-core-font-size-0-75x);\n --vc-text-base: var(--kds-core-font-size-0-75x);\n --vc-text-lg: var(--kds-core-font-size-0-87x);\n --vc-text-xl: var(--kds-core-font-size-1x);\n --vc-text-2xl: var(--kds-core-font-size-1-13x);\n\n --vc-popover-content-color: var(--vc-color);\n --vc-popover-content-bg: var(--kds-color-surface-default);\n --vc-popover-content-border: var(--kds-color-border-neutral);\n\n box-shadow: var(--kds-elevation-level-3);\n\n & .vc-highlight-content-solid {\n font-weight: var(--kds-core-font-weight-medium);\n color: var(--kds-color-text-and-icon-selected);\n background-color: var(--kds-color-background-selected-initial);\n }\n\n & button,\n & .vc-arrow {\n color: var(--kds-color-text-and-icon-neutral);\n background-color: var(--kds-color-background-neutral-initial);\n border: var(--kds-border-action-transparent);\n\n &.vc-prev,\n &.vc-next {\n width: var(--kds-dimension-component-width-1-25x);\n height: var(--kds-dimension-component-height-1-25x);\n border-radius: var(--kds-border-radius-container-0-25x);\n }\n\n &:hover,\n &.vc-arrow:hover {\n background-color: var(--kds-color-background-neutral-hover);\n }\n\n &:active,\n &.vc-arrow:active {\n background-color: var(--kds-color-background-neutral-active);\n }\n\n &:focus-within {\n box-shadow: none;\n }\n }\n\n & .vc-pane {\n width: max-content;\n min-width: initial;\n\n & .vc-weeks {\n display: grid;\n gap: 4px;\n width: max-content;\n min-width: initial;\n\n & .vc-week {\n gap: 4px;\n\n & .vc-day {\n min-height: var(--kds-dimension-component-height-1-5x);\n border-radius: var(--kds-border-radius-container-0-25x);\n\n & .vc-highlight {\n border-radius: var(--kds-border-radius-container-0-25x);\n }\n\n & .vc-day-content {\n width: var(--kds-dimension-component-height-1-5x);\n height: var(--kds-dimension-component-height-1-5x);\n border-radius: var(--kds-border-radius-container-0-25x);\n }\n\n &:focus-within {\n background-color: var(--kds-color-background-neutral-active);\n box-shadow: none;\n }\n }\n }\n }\n }\n\n .vc-focus:focus-within {\n outline: var(--kds-border-action-focused);\n outline-offset: var(--kds-spacing-offset-focus);\n box-shadow: none;\n }\n}\n\n.vc-popover-content {\n --vc-popover-content-color: var(--kds-color-text-and-icon-neutral);\n --vc-popover-content-bg: var(--kds-color-surface-muted);\n --vc-popover-content-border: transparent;\n\n box-shadow: var(--kds-elevation-level-3);\n\n & .vc-nav-item,\n & .vc-nav-arrow,\n & .vc-nav-title {\n width: initial;\n height: var(--kds-dimension-component-height-1-5x);\n padding: 0 var(--kds-spacing-container-0-25x);\n font-size: var(--kds-core-font-size-0-75x);\n font-weight: var(--kds-core-font-weight-regular);\n line-height: var(--kds-core-line-height-singleline);\n color: var(--kds-color-text-and-icon-neutral);\n background-color: var(--kds-color-background-neutral-initial);\n border: var(--kds-border-action-transparent);\n\n &.is-left,\n &.is-right {\n width: var(--kds-dimension-component-width-1-25x);\n height: var(--kds-dimension-component-height-1-25x);\n padding: 0;\n margin-top: 2px;\n border-radius: var(--kds-border-radius-container-0-25x);\n }\n\n &:hover,\n &.vc-arrow:hover {\n background-color: var(--kds-color-background-neutral-hover);\n }\n\n &:active,\n &.vc-arrow:active {\n background-color: var(--kds-color-background-neutral-active);\n }\n\n &:focus-within {\n box-shadow: none;\n }\n\n &.is-active {\n color: var(--kds-color-text-and-icon-selected);\n background-color: var(--kds-color-background-selected-initial);\n box-shadow: none;\n\n &:hover {\n background-color: var(--kds-color-background-selected-hover);\n }\n }\n }\n}\n</style>\n","<script setup lang=\"ts\">\nimport { computed, ref } from \"vue\";\n\nimport KdsValueSwitch from \"../../RadioButton/KdsValueSwitch.vue\";\nimport {\n KdsListContainer,\n type KdsListOption,\n} from \"../../_helper/List/ListContainer\";\n\nimport type {\n KdsDateFormatCategory,\n KdsDateTimeFormatEntry,\n KdsTemporalType,\n} from \"./types\";\n\ntype DateTimeFormatPopoverProps = {\n allDefaultFormats: KdsDateTimeFormatEntry[];\n allowedFormats?: KdsTemporalType[];\n};\n\nconst props = defineProps<DateTimeFormatPopoverProps>();\n\nconst selection = defineModel<string>(\"selection\", { default: \"\" });\n\nconst temporalTypeToModeLabel: Record<KdsTemporalType, string> = {\n DATE: \"Date\",\n DATE_TIME: \"Date & Time\",\n TIME: \"Time\",\n ZONED_DATE_TIME: \"Zoned Date & Time\",\n};\n\nconst categoryToLocaleLabel: Record<KdsDateFormatCategory, string> = {\n RECENT: \"Recent\",\n STANDARD: \"ISO\",\n EUROPEAN: \"European\",\n AMERICAN: \"United States\",\n};\n\nconst typedDateFormats = computed(() => {\n const entries = props.allDefaultFormats;\n\n // If allowedFormats is omitted, there are no restrictions.\n if (props.allowedFormats === undefined) {\n return entries;\n }\n\n // An explicit empty array means \"allow none\".\n if (props.allowedFormats.length === 0) {\n return [];\n }\n\n const allowed = new Set(props.allowedFormats);\n return entries.filter((entry) => allowed.has(entry.temporalType));\n});\n\nconst modeOptions = computed(() => {\n const seen = new Set<string>();\n const options: string[] = [];\n\n for (const entry of typedDateFormats.value) {\n const label = temporalTypeToModeLabel[entry.temporalType];\n if (!seen.has(label)) {\n seen.add(label);\n options.push(label);\n }\n }\n\n return options;\n});\n\nconst localeOptions = computed(() => {\n const recent = categoryToLocaleLabel.RECENT;\n const seen = new Set<string>();\n const options: string[] = [recent];\n seen.add(recent);\n\n for (const entry of typedDateFormats.value) {\n const label = categoryToLocaleLabel[entry.category];\n if (!seen.has(label)) {\n seen.add(label);\n options.push(label);\n }\n }\n\n return options;\n});\n\nconst selectedFormatEntry = computed(() => {\n if (!selection.value) {\n return null;\n }\n\n return (\n typedDateFormats.value.find((entry) => entry.format === selection.value) ??\n null\n );\n});\n\n// User-driven selections from the switches.\nconst selectedMode = ref<string | undefined>(undefined);\nconst selectedLocale = ref<string | undefined>(undefined);\n\nconst selectedModeFromModel = computed(() => {\n const entry = selectedFormatEntry.value;\n return entry ? temporalTypeToModeLabel[entry.temporalType] : null;\n});\n\nconst selectedLocaleFromModel = computed(() => {\n const entry = selectedFormatEntry.value;\n return entry ? categoryToLocaleLabel[entry.category] : null;\n});\n\nconst effectiveSelectedMode = computed(() => {\n const modes = modeOptions.value;\n\n if (modes.length === 0) {\n return \"\";\n }\n\n // If the user actively selected a mode, keep it (as long as it's valid).\n const manual = selectedMode.value;\n if (manual && modes.includes(manual)) {\n return manual;\n }\n\n // Otherwise, derive it from the current selected format if possible.\n const fromModel = selectedModeFromModel.value;\n if (fromModel && modes.includes(fromModel)) {\n return fromModel;\n }\n\n return modes[0]!;\n});\n\nconst effectiveSelectedLocale = computed(() => {\n const locales = localeOptions.value;\n\n if (locales.length === 0) {\n return \"\";\n }\n\n // If the user actively selected a locale, keep it (as long as it's valid).\n const manual = selectedLocale.value;\n if (manual && locales.includes(manual)) {\n return manual;\n }\n\n // Otherwise, derive it from the current selected format if possible.\n const fromModel = selectedLocaleFromModel.value;\n if (fromModel && locales.includes(fromModel)) {\n return fromModel;\n }\n\n return locales[0]!;\n});\n\ntype ModeLocaleKey = `${string}__${string}`;\n\nconst internalOptionsByModeAndLocale = computed(() => {\n const map = new Map<ModeLocaleKey, KdsListOption[]>();\n\n for (const entry of typedDateFormats.value) {\n const modeLabel = temporalTypeToModeLabel[entry.temporalType];\n const localeLabel = categoryToLocaleLabel[entry.category];\n const key = `${modeLabel}__${localeLabel}` as const;\n\n const options = map.get(key) ?? [];\n options.push({\n id: encodeURIComponent(entry.format),\n text: entry.format,\n subText: entry.example,\n });\n map.set(key, options);\n }\n\n return map;\n});\n\nconst possibleFormats = computed<KdsListOption[]>(() => {\n const mode = effectiveSelectedMode.value;\n const locale = effectiveSelectedLocale.value;\n\n if (!mode || !locale) {\n return [];\n }\n\n const key = `${mode}__${locale}` as ModeLocaleKey;\n const options = internalOptionsByModeAndLocale.value.get(key) ?? [];\n return options.map((option) => ({\n ...option,\n selected: option.id === encodeURIComponent(selection.value),\n }));\n});\n</script>\n\n<template>\n <div class=\"kds-date-time-format-popover\">\n <KdsValueSwitch\n v-if=\"modeOptions.length > 1\"\n :model-value=\"effectiveSelectedMode\"\n size=\"small\"\n :possible-values=\"modeOptions\"\n @update:model-value=\"\n (value) => {\n selectedMode = value;\n }\n \"\n />\n\n <KdsValueSwitch\n v-if=\"localeOptions.length > 1\"\n :model-value=\"effectiveSelectedLocale\"\n size=\"small\"\n :possible-values=\"localeOptions\"\n @update:model-value=\"\n (value) => {\n selectedLocale = value;\n }\n \"\n />\n\n <KdsListContainer\n class=\"kds-date-time-format-popover-list\"\n aria-label=\"Date/time formats\"\n variant=\"large\"\n :possible-values=\"possibleFormats\"\n empty-text=\"No recently used formats\"\n @item-click=\"selection = decodeURIComponent($event)\"\n />\n </div>\n</template>\n\n<style scoped>\n.kds-date-time-format-popover {\n display: flex;\n flex-direction: column;\n gap: var(--kds-spacing-container-0-5x);\n width: fit-content;\n max-width: 100%;\n padding: var(--kds-spacing-container-0-75x);\n background-color: var(--kds-color-surface-default);\n border-radius: var(--kds-border-radius-container-0-50x);\n box-shadow: var(--kds-elevation-level-3);\n}\n\n.kds-date-time-format-popover-list {\n width: var(--kds-dimension-component-width-16x);\n min-width: 100%;\n max-width: 100%;\n height: var(--kds-dimension-component-height-12x);\n}\n</style>\n","<script setup lang=\"ts\">\nimport { ref, useTemplateRef } from \"vue\";\n\nimport { KdsToggleButton } from \"../../../buttons\";\nimport KdsPopover from \"../../../overlays/Popover/KdsPopover.vue\";\nimport BaseFormFieldWrapper from \"../../_helper/BaseFormFieldWrapper.vue\";\nimport BaseInput from \"../BaseInput.vue\";\n\nimport DateTimeFormatPopover from \"./DateTimeFormatPopover.vue\";\nimport type { KdsDateTimeFormatInputProps } from \"./types\";\n\nconst props = withDefaults(defineProps<KdsDateTimeFormatInputProps>(), {\n disabled: false,\n error: false,\n validating: false,\n preserveSubTextSpace: false,\n placeholder: \"Format\",\n});\n\nconst modelValue = defineModel<string>({ default: \"\" });\nconst open = ref(false);\n\nconst popoverEl = useTemplateRef(\"popoverEl\");\n</script>\n\n<template>\n <BaseFormFieldWrapper v-bind=\"props\">\n <template #default=\"slotProps\">\n <div :style=\"popoverEl?.anchorStyle\">\n <BaseInput\n v-bind=\"slotProps\"\n v-model=\"modelValue\"\n type=\"text\"\n :placeholder=\"props.placeholder\"\n :disabled=\"props.disabled\"\n :error=\"props.error\"\n :validating=\"props.validating\"\n :autocomplete=\"props.autocomplete\"\n >\n <template #trailing>\n <KdsToggleButton\n v-model=\"open\"\n size=\"xsmall\"\n variant=\"outlined\"\n leading-icon=\"date-time\"\n aria-label=\"Open date/time format picker\"\n :aria-controls=\"popoverEl?.popoverId\"\n :aria-expanded=\"open\"\n aria-haspopup=\"dialog\"\n :disabled=\"props.disabled\"\n :title=\"\n open\n ? 'Close date/time format picker'\n : 'Open date/time format picker'\n \"\n />\n </template>\n </BaseInput>\n\n <KdsPopover\n ref=\"popoverEl\"\n v-model=\"open\"\n placement=\"bottom-right\"\n popover-aria-label=\"Date time format selection dialog\"\n >\n <DateTimeFormatPopover\n :selection=\"modelValue\"\n :all-default-formats=\"props.allDefaultFormats\"\n :allowed-formats=\"props.allowedFormats\"\n @update:selection=\"\n modelValue = $event;\n open = false;\n \"\n />\n </KdsPopover>\n </div>\n </template>\n </BaseFormFieldWrapper>\n</template>\n","export const kdsTemporalType = {\n DATE: \"DATE\",\n TIME: \"TIME\",\n DATE_TIME: \"DATE_TIME\",\n ZONED_DATE_TIME: \"ZONED_DATE_TIME\",\n} as const;\n\nexport const kdsTemporalTypes = Object.values(kdsTemporalType);\n\nexport const kdsDateFormatCategory = {\n RECENT: \"RECENT\",\n STANDARD: \"STANDARD\",\n EUROPEAN: \"EUROPEAN\",\n AMERICAN: \"AMERICAN\",\n} as const;\n\nexport const kdsDateFormatCategories = Object.values(kdsDateFormatCategory);\n","export type KdsNumberParser = {\n locale: string;\n decimalSeparator: string;\n groupSeparator: string;\n /**\n * Maximum number of fraction digits implied by `step`.\n *\n * Example:\n * - step=1 => 0\n * - step=0.01 => 2\n * - step=1e-7 => 7\n */\n stepFractionDigits: number;\n formatForDisplay: (value: number) => string;\n parseFromInput: (value: string) => number;\n /**\n * Round a number to the nearest step increment.\n * Returns NaN for non-finite values.\n */\n roundToStep: (value: number) => number;\n};\n\nconst additionalGroupSeparators = [\" \", \"\\u00A0\", \"\\u202F\"];\nconst decimalSeparatorSample = 1.1;\nconst groupSeparatorSample = 1000.1;\n\nconst countFractionDigits = (value: number) => {\n if (!Number.isFinite(value)) {\n return 0;\n }\n\n // Handle exponential notation (e.g. 1e-7) deterministically.\n // We only care about the number of digits right of the decimal point.\n // Examples:\n // - 1e-7 => 7\n // - 1.23e-4 => 6 (0.000123)\n // - 1e+3 => 0\n const exp = value.toExponential();\n const match = /^[-+]?(\\d+)(?:\\.(\\d+))?e([+-]?\\d+)$/i.exec(exp);\n if (!match) {\n return 0;\n }\n\n const fractionDigitsInMantissa = match[2]?.length ?? 0;\n const exponent = Number.parseInt(match[3], 10);\n\n if (exponent >= 0) {\n // Shift decimal point to the right -> no additional fraction digits required.\n return Math.max(0, fractionDigitsInMantissa - exponent);\n }\n\n // Shift decimal point to the left -> adds (-exponent) fraction digits.\n return fractionDigitsInMantissa + Math.abs(exponent);\n};\n\nexport const createKdsNumberParser = (params: {\n locale: string;\n step: number;\n}): KdsNumberParser => {\n const formatter = new Intl.NumberFormat(params.locale);\n\n const decimalSeparator =\n formatter\n .formatToParts(decimalSeparatorSample)\n .find((part) => part.type === \"decimal\")?.value ?? \".\";\n\n const groupSeparator =\n formatter\n .formatToParts(groupSeparatorSample)\n .find((part) => part.type === \"group\")?.value ?? \",\";\n\n const removeGroupingSeparators = (input: string) =>\n [groupSeparator, ...additionalGroupSeparators].reduce(\n (acc, groupSep) =>\n groupSep.length > 0 ? acc.split(groupSep).join(\"\") : acc,\n input,\n );\n\n const formattersByMaxDecimals = new Map<number, Intl.NumberFormat>();\n const getFormatterForMaxDecimals = (maxDecimals: number) => {\n const cached = formattersByMaxDecimals.get(maxDecimals);\n if (cached) {\n return cached;\n }\n\n const created = new Intl.NumberFormat(params.locale, {\n useGrouping: false,\n minimumFractionDigits: 0,\n maximumFractionDigits: maxDecimals,\n });\n\n formattersByMaxDecimals.set(maxDecimals, created);\n return created;\n };\n\n const stepFractionDigits = countFractionDigits(params.step);\n const precisionFactor = Number(`1e${stepFractionDigits}`);\n\n const formatForDisplay = (value: number) => {\n if (!Number.isFinite(value)) {\n return \"\";\n }\n\n // Use at least the step's precision, but also preserve the value's own precision.\n // Note: values can also stringify to exponent form, so use the same helper.\n const valueDecimals = countFractionDigits(value);\n\n const maxDecimals = Math.max(stepFractionDigits, valueDecimals);\n\n return getFormatterForMaxDecimals(maxDecimals).format(value);\n };\n\n const roundToStep = (value: number) => {\n if (!Number.isFinite(value)) {\n return Number.NaN;\n }\n\n const step = params.step;\n\n if (!Number.isFinite(step) || step <= 0) {\n return value;\n }\n\n // Avoid floating point artifacts when working with decimal steps.\n // Use a fixed factor derived from stepFractionDigits (handles exponent notation reliably).\n if (!Number.isFinite(precisionFactor) || precisionFactor <= 0) {\n return value;\n }\n\n const scaledNext = Math.round(value * precisionFactor);\n const scaledStep = Math.round(step * precisionFactor);\n\n // If step can't be represented at the current precision, don't round.\n if (scaledStep === 0) {\n return value;\n }\n\n const roundedScaled = Math.round(scaledNext / scaledStep) * scaledStep;\n return roundedScaled / precisionFactor;\n };\n\n const isValidNormalizedNumber = (normalized: string) =>\n // Accept plain decimals as well as scientific notation.\n // Note: whitespace is removed earlier; we don't accept grouping separators here.\n /^[-+]?(?:\\d+(?:\\.\\d*)?|\\.\\d+)(?:[eE][-+]?\\d+)?$/.test(normalized);\n\n const parseWithLocaleDecimal = (input: string, localeDecimal: string) => {\n const withoutGrouping = removeGroupingSeparators(input);\n const normalized = withoutGrouping.split(localeDecimal).join(\".\");\n if (!isValidNormalizedNumber(normalized)) {\n return Number.NaN;\n }\n const parsed = Number.parseFloat(normalized);\n return Number.isFinite(parsed) ? parsed : Number.NaN;\n };\n\n const parseWithFallbackDot = (input: string) => {\n const lastDotIndex = input.lastIndexOf(\".\");\n const digitsAfterDot = input.slice(lastDotIndex + 1);\n\n const looksLikeDecimal =\n digitsAfterDot.length > 0 && digitsAfterDot.length <= 2;\n\n const normalized = looksLikeDecimal\n ? `${removeGroupingSeparators(input.slice(0, lastDotIndex))}.${removeGroupingSeparators(\n digitsAfterDot,\n )}`\n : removeGroupingSeparators(input);\n\n if (!isValidNormalizedNumber(normalized)) {\n return Number.NaN;\n }\n\n const parsed = Number.parseFloat(normalized);\n return Number.isFinite(parsed) ? parsed : Number.NaN;\n };\n\n const parseWithoutLocaleDecimal = (input: string) => {\n const normalized = removeGroupingSeparators(input);\n if (!isValidNormalizedNumber(normalized)) {\n return Number.NaN;\n }\n const parsed = Number.parseFloat(normalized);\n return Number.isFinite(parsed) ? parsed : Number.NaN;\n };\n\n /**\n * Parse a localized number string to a number.\n *\n * Supported input patterns:\n * - Locale decimal separator (e.g. \"1,2\" in de-DE)\n * - Locale grouping + decimal (e.g. \"1.234,56\" in de-DE)\n * - Grouped integer without decimal separator (e.g. \"1,234\" in en-US, \"1.234\" in de-DE)\n * - \".\" as a fallback decimal separator when the locale uses \",\" (common user input)\n */\n function parseFromInput(value: string) {\n const trimmed = value.trim();\n if (trimmed.length === 0) {\n return Number.NaN;\n }\n\n const localeDecimal = decimalSeparator;\n\n const hasLocaleDecimal =\n localeDecimal.length > 0 && trimmed.includes(localeDecimal);\n\n // If the locale decimal separator is present, we can safely remove grouping chars.\n if (hasLocaleDecimal) {\n return parseWithLocaleDecimal(trimmed, localeDecimal);\n }\n\n // No locale decimal separator present.\n //\n // Case A: locale uses ',' as decimal separator (e.g. de-DE). Accept '.' as fallback decimal.\n // While doing so, we still want to support locale grouping separators like '1.234'.\n if (localeDecimal !== \".\" && trimmed.includes(\".\")) {\n return parseWithFallbackDot(trimmed);\n }\n\n // Case B: locale uses '.' as decimal separator (e.g. en-US).\n // Remove grouping separators such as ',' and whitespace, so '1,234' => '1234'.\n // Note: we intentionally do NOT treat ',' as a decimal separator here.\n return parseWithoutLocaleDecimal(trimmed);\n }\n\n return {\n locale: params.locale,\n decimalSeparator,\n groupSeparator,\n stepFractionDigits,\n formatForDisplay,\n parseFromInput,\n roundToStep,\n };\n};\n","<script setup lang=\"ts\">\nimport { computed, ref, useTemplateRef, watch } from \"vue\";\n\nimport KdsButton from \"../../../buttons/KdsButton/KdsButton.vue\";\nimport BaseFormFieldWrapper from \"../../_helper/BaseFormFieldWrapper.vue\";\nimport type { KdsFormFieldExpose } from \"../../types.ts\";\nimport BaseInput from \"../BaseInput.vue\";\n\nimport { createKdsNumberParser } from \"./numberParser\";\nimport type { KdsNumberInputProps } from \"./types\";\n\nconst props = withDefaults(defineProps<KdsNumberInputProps>(), {\n disabled: false,\n error: false,\n validating: false,\n preserveSubTextSpace: false,\n unit: \"\",\n step: 1,\n});\n\nconst modelValue = defineModel<number>({ default: Number.NaN });\n\nconst isFocused = ref(false);\n\n/**\n * String representation of what's currently shown in the input.\n *\n * Important: we keep this separate from the numeric model to allow intermediate\n * typing states and to avoid clamping away out-of-range values before external\n * validation (e.g. JSONForms/builtin validations) can kick in.\n */\nconst localValue = ref<string>(\"\");\n\nconst numberParser = computed(() =>\n createKdsNumberParser({ locale: \"en-US\", step: props.step }),\n);\n\nconst ariaValuenow = computed(() =>\n Number.isFinite(modelValue.value) ? modelValue.value : undefined,\n);\n\nconst ariaValuetext = computed(() => {\n if (!Number.isFinite(modelValue.value)) {\n return undefined;\n }\n\n // Format the spoken feedback using en-US locale (decimal separator, etc.).\n return numberParser.value.formatForDisplay(modelValue.value);\n});\n\nconst clamp = (value: number) => {\n if (!Number.isFinite(value)) {\n return Number.NaN;\n }\n\n let result = value;\n\n if (props.min !== undefined && !Number.isNaN(props.min)) {\n result = Math.max(props.min, result);\n }\n if (props.max !== undefined && !Number.isNaN(props.max)) {\n result = Math.min(props.max, result);\n }\n\n return result;\n};\n\nwatch(\n () => modelValue.value,\n (next) => {\n // While focused, let the user keep typing without being overridden by external updates.\n if (isFocused.value) {\n return;\n }\n localValue.value = numberParser.value.formatForDisplay(next);\n },\n { immediate: true },\n);\n\nconst canDecrease = computed(() => {\n if (props.disabled) {\n return false;\n }\n\n if (props.min === undefined || Number.isNaN(props.min)) {\n return true;\n }\n\n if (Number.isNaN(modelValue.value)) {\n return true;\n }\n\n return modelValue.value > props.min;\n});\n\nconst canIncrease = computed(() => {\n if (props.disabled) {\n return false;\n }\n\n if (props.max === undefined || Number.isNaN(props.max)) {\n return true;\n }\n\n if (Number.isNaN(modelValue.value)) {\n return true;\n }\n\n return modelValue.value < props.max;\n});\n\nconst adjustByStep = (direction: -1 | 1) => {\n if (props.step <= 0) {\n return;\n }\n\n const base = Number.isFinite(modelValue.value)\n ? modelValue.value\n : numberParser.value.parseFromInput(localValue.value);\n\n const nextRaw = Number.isFinite(base) ? base + direction * props.step : 0;\n // Round due to precision issues that can arise when adding steps to certain numbers, e.g. 0.1 + 0.1 + 0.1.\n const rounded = numberParser.value.roundToStep(nextRaw);\n const next = clamp(rounded);\n\n modelValue.value = next;\n localValue.value = numberParser.value.formatForDisplay(next);\n};\n\nconst handleKeydown = (event: KeyboardEvent) => {\n if (props.disabled) {\n return;\n }\n\n if (event.key === \"ArrowUp\" && canIncrease.value) {\n event.preventDefault();\n adjustByStep(1);\n return;\n }\n if (event.key === \"ArrowDown\" && canDecrease.value) {\n event.preventDefault();\n adjustByStep(-1);\n }\n};\n\nconst handleUpdateModelValue = (value: string) => {\n localValue.value = value;\n modelValue.value = numberParser.value.parseFromInput(value);\n};\n\nconst handleBlur = () => {\n isFocused.value = false;\n\n // Normalize, round to step, and clamp only when leaving the field.\n const parsed = numberParser.value.parseFromInput(localValue.value);\n const normalized = clamp(parsed);\n\n modelValue.value = normalized;\n localValue.value = numberParser.value.formatForDisplay(normalized);\n};\n\nconst baseInput = useTemplateRef(\"baseInput\");\n\ndefineExpose<KdsFormFieldExpose>({\n focus: () => baseInput.value?.focus(),\n});\n</script>\n\n<template>\n <BaseFormFieldWrapper v-bind=\"props\">\n <template #default=\"slotProps\">\n <BaseInput\n ref=\"baseInput\"\n v-bind=\"slotProps\"\n :model-value=\"localValue\"\n type=\"text\"\n :inputmode=\"props.step >= 1 ? 'numeric' : 'decimal'\"\n :placeholder=\"props.placeholder\"\n :disabled=\"props.disabled\"\n :error=\"props.error\"\n :autocomplete=\"props.autocomplete\"\n :unit=\"props.unit\"\n role=\"spinbutton\"\n :aria-valuenow=\"ariaValuenow\"\n :aria-valuemin=\"props.min\"\n :aria-valuemax=\"props.max\"\n :aria-valuetext=\"ariaValuetext\"\n @update:model-value=\"handleUpdateModelValue\"\n @keydown=\"handleKeydown\"\n @focus=\"isFocused = true\"\n @blur=\"handleBlur\"\n >\n <template #trailing>\n <KdsButton\n type=\"button\"\n size=\"xsmall\"\n variant=\"outlined\"\n leading-icon=\"minus\"\n :aria-label=\"`Decrease ${props.label ?? props.ariaLabel}`\"\n :disabled=\"!canDecrease\"\n @click=\"adjustByStep(-1)\"\n />\n <KdsButton\n type=\"button\"\n size=\"xsmall\"\n variant=\"outlined\"\n leading-icon=\"plus\"\n :aria-label=\"`Increase ${props.label ?? props.ariaLabel}`\"\n :disabled=\"!canIncrease\"\n @click=\"adjustByStep(1)\"\n />\n </template>\n </BaseInput>\n </template>\n </BaseFormFieldWrapper>\n</template>\n","export type KdsPatternInputOptions = {\n caseSensitive: boolean;\n excludeMatches: boolean;\n useRegex: boolean;\n};\n\nconst escapeRegex = (value: string) =>\n value.replaceAll(/[.*+?^${}()|[\\]\\\\]/g, String.raw`\\$&`);\n\nconst wildcardToRegexBody = (pattern: string) => {\n // Convert a simple wildcard pattern to a regex body.\n // - `*` => `.*`\n // - `?` => `.`\n // All other characters are escaped.\n let body = \"\";\n for (const char of pattern) {\n if (char === \"*\") {\n body += \".*\";\n continue;\n }\n\n if (char === \"?\") {\n body += \".\";\n continue;\n }\n\n body += escapeRegex(char);\n }\n\n return body;\n};\n\nconst regexBodyToWildcard = (regexBody: string) => {\n // Best-effort conversion:\n // - `.*` => `*`\n // - `.` => `?`\n // - escaped chars -> literal chars\n // If we encounter other regex constructs, we bail out and return undefined.\n let wildcard = \"\";\n for (let i = 0; i < regexBody.length; i += 1) {\n const char = regexBody[i];\n\n if (char === \"\\\\\") {\n const next = regexBody[i + 1];\n if (next === undefined) {\n return undefined;\n }\n wildcard += next;\n i += 1;\n continue;\n }\n\n if (char === \".\") {\n const next = regexBody[i + 1];\n if (next === \"*\") {\n wildcard += \"*\";\n i += 1;\n continue;\n }\n wildcard += \"?\";\n continue;\n }\n\n if (/[[\\]{}()+^$|]/.test(char)) {\n return undefined;\n }\n\n wildcard += char;\n }\n\n return wildcard;\n};\n\nconst CASE_INSENSITIVE_PREFIX = \"(?i:\";\n\nconst stripOuterGroup = (pattern: string, prefix: string) => {\n const trimmed = pattern.trim();\n if (trimmed.startsWith(prefix) && trimmed.endsWith(\")\")) {\n return trimmed.slice(prefix.length, -1);\n }\n return trimmed;\n};\n\nexport const buildRegexFromPatternInput = (\n input: string,\n options: KdsPatternInputOptions,\n): string => {\n const body = options.useRegex ? input : wildcardToRegexBody(input);\n const grouped = `(?:${body})`;\n const withCase = options.caseSensitive\n ? grouped\n : `${CASE_INSENSITIVE_PREFIX}${grouped})`;\n\n if (!options.excludeMatches) {\n return withCase;\n }\n\n return `^(?!.*${withCase}).*$`;\n};\n\n// Removed buildRegExpFromPatternInput: case sensitivity is encoded via the\n// optional `(?i:...)` wrapper in the pattern string.\n\nconst stripOuterNonCapturingGroup = (pattern: string) =>\n stripOuterGroup(pattern, \"(?:\");\n\nconst stripCaseInsensitiveWrapper = (pattern: string) =>\n stripOuterGroup(pattern, CASE_INSENSITIVE_PREFIX);\n\nconst tryParseExcluded = (regex: string): { excludedInner?: string } => {\n // Matches `^(?!.*<inner>).*$` where <inner> is the pattern we emitted.\n const match = /^\\^\\(\\?!\\.\\*([\\s\\S]*)\\)\\.\\*\\$$/.exec(regex.trim());\n if (!match) {\n return {};\n }\n return { excludedInner: match[1] };\n};\n\nexport const parseRegexToPatternInputValue = (\n regex: string,\n options: Pick<KdsPatternInputOptions, \"useRegex\" | \"excludeMatches\"> & {\n caseSensitive?: boolean;\n },\n): string => {\n if (regex === \"\") {\n return \"\";\n }\n\n const { excludedInner } = tryParseExcluded(regex);\n const inner = excludedInner ?? regex;\n\n const withoutCase = options.caseSensitive\n ? inner\n : stripCaseInsensitiveWrapper(inner);\n\n const body = stripOuterNonCapturingGroup(withoutCase);\n\n if (options.useRegex) {\n return body;\n }\n\n const wildcard = regexBodyToWildcard(body);\n return wildcard ?? body;\n};\n","<script setup lang=\"ts\">\nimport { computed, ref, useTemplateRef, watch } from \"vue\";\n\nimport KdsToggleButton from \"../../../buttons/KdsToggleButton/KdsToggleButton.vue\";\nimport BaseFormFieldWrapper from \"../../_helper/BaseFormFieldWrapper.vue\";\nimport type { KdsFormFieldExpose } from \"../../types.ts\";\nimport BaseInput from \"../BaseInput.vue\";\n\nimport {\n buildRegexFromPatternInput,\n parseRegexToPatternInputValue,\n} from \"./patternRegex.ts\";\nimport type { KdsPatternInputProps } from \"./types\";\n\nconst props = withDefaults(defineProps<KdsPatternInputProps>(), {\n disabled: false,\n error: false,\n validating: false,\n preserveSubTextSpace: false,\n});\n\n// Public API: a single regex string (encoded with options when toggles are used).\nconst regex = defineModel<string>({ default: \"\" });\n\n// Internal UI state. This is derived from the regex model on external updates.\nconst uiValue = ref(\"\");\nconst caseSensitive = ref(false);\nconst excludeMatches = ref(false);\nconst useRegex = ref(false);\n\nconst rebuildRegexFromUi = () => {\n regex.value = buildRegexFromPatternInput(uiValue.value, {\n caseSensitive: caseSensitive.value,\n excludeMatches: excludeMatches.value,\n useRegex: useRegex.value,\n });\n};\n\nwatch(\n () => regex.value,\n (newValue) => {\n uiValue.value = parseRegexToPatternInputValue(newValue, {\n useRegex: useRegex.value,\n excludeMatches: excludeMatches.value,\n caseSensitive: caseSensitive.value,\n });\n },\n { immediate: true },\n);\n\nconst caseSensitiveAriaLabel = computed(() =>\n caseSensitive.value ? \"Match case-sensitive\" : \"Match case-insensitive\",\n);\nconst excludeMatchesAriaLabel = computed(() =>\n excludeMatches.value ? \"Exclude matches\" : \"Include matches\",\n);\nconst patternModeAriaLabel = computed(() =>\n useRegex.value ? \"Use regex pattern\" : \"Use wildcard pattern\",\n);\n\nconst baseInput = useTemplateRef(\"baseInput\");\n\ndefineExpose<KdsFormFieldExpose>({\n focus: () => baseInput.value?.focus(),\n});\n</script>\n\n<template>\n <BaseFormFieldWrapper v-bind=\"props\">\n <template #default=\"slotProps\">\n <BaseInput\n ref=\"baseInput\"\n v-bind=\"slotProps\"\n v-model=\"uiValue\"\n type=\"text\"\n :placeholder=\"props.placeholder\"\n :disabled=\"props.disabled\"\n :error=\"props.error\"\n :autocomplete=\"props.autocomplete\"\n leading-icon=\"filter\"\n clearable\n @update:model-value=\"rebuildRegexFromUi\"\n >\n <template #trailing>\n <KdsToggleButton\n v-model=\"caseSensitive\"\n size=\"xsmall\"\n variant=\"outlined\"\n leading-icon=\"case-sensitive\"\n :title=\"caseSensitiveAriaLabel\"\n :aria-label=\"caseSensitiveAriaLabel\"\n :disabled=\"props.disabled\"\n @update:model-value=\"rebuildRegexFromUi\"\n />\n\n <KdsToggleButton\n v-model=\"excludeMatches\"\n size=\"xsmall\"\n variant=\"outlined\"\n leading-icon=\"arrows-order\"\n :title=\"excludeMatchesAriaLabel\"\n :aria-label=\"excludeMatchesAriaLabel\"\n :disabled=\"props.disabled\"\n @update:model-value=\"rebuildRegexFromUi\"\n />\n\n <KdsToggleButton\n v-model=\"useRegex\"\n size=\"xsmall\"\n variant=\"outlined\"\n leading-icon=\"regex\"\n :title=\"patternModeAriaLabel\"\n :aria-label=\"patternModeAriaLabel\"\n :disabled=\"props.disabled\"\n @update:model-value=\"rebuildRegexFromUi\"\n />\n </template>\n </BaseInput>\n </template>\n </BaseFormFieldWrapper>\n</template>\n","<script setup lang=\"ts\">\nimport { useTemplateRef } from \"vue\";\n\nimport BaseFormFieldWrapper from \"../../_helper/BaseFormFieldWrapper.vue\";\nimport type { KdsFormFieldExpose } from \"../../types.ts\";\nimport BaseInput from \"../BaseInput.vue\";\n\nimport type { KdsSearchInputProps } from \"./types\";\n\nconst props = withDefaults(defineProps<KdsSearchInputProps>(), {\n placeholder: \"Search\",\n disabled: false,\n error: false,\n validating: false,\n preserveSubTextSpace: false,\n});\n\nconst modelValue = defineModel<string>({ default: \"\" });\n\nconst emit = defineEmits<{\n /** Native focus event forwarded from the input element. */\n focus: [event: FocusEvent];\n /** Native blur event forwarded from the input element. */\n blur: [event: FocusEvent];\n /** Native keydown event forwarded from the input element. */\n keydown: [event: KeyboardEvent];\n}>();\n\nconst baseInput = useTemplateRef(\"baseInput\");\n\ndefineExpose<KdsFormFieldExpose>({\n focus: () => baseInput.value?.focus(),\n});\n</script>\n\n<template>\n <BaseFormFieldWrapper v-bind=\"props\">\n <template #default=\"slotProps\">\n <BaseInput\n ref=\"baseInput\"\n v-bind=\"slotProps\"\n v-model=\"modelValue\"\n type=\"search\"\n :placeholder=\"props.placeholder\"\n :disabled=\"props.disabled\"\n :error=\"props.error\"\n :autocomplete=\"props.autocomplete\"\n leading-icon=\"search\"\n :clearable=\"true\"\n @focus=\"emit('focus', $event)\"\n @blur=\"emit('blur', $event)\"\n @keydown=\"emit('keydown', $event)\"\n />\n </template>\n </BaseFormFieldWrapper>\n</template>\n","<script setup lang=\"ts\">\nimport { computed, useTemplateRef, watch } from \"vue\";\nimport { useResizeObserver } from \"@vueuse/core\";\n\nimport BaseFormFieldWrapper from \"../../_helper/BaseFormFieldWrapper.vue\";\nimport type { KdsFormFieldExpose } from \"../../types.ts\";\n\nimport type { KdsTextareaProps } from \"./types\";\n\nconst props = withDefaults(defineProps<KdsTextareaProps>(), {\n placeholder: \"\",\n rows: 3,\n disabled: false,\n error: false,\n validating: false,\n preserveSubTextSpace: false,\n});\n\nconst normalizedRows = computed(() => Math.max(1, props.rows));\n\nconst modelValue = defineModel<string>({ default: \"\" });\n\nconst textareaElement = useTemplateRef(\"textareaElement\");\n\nfunction resize() {\n const element = textareaElement.value;\n if (!element) {\n return;\n }\n\n // Reset height so scrollHeight reflects the full content height for shrinking.\n element.style.height = \"auto\";\n\n const scrollHeight = element.scrollHeight;\n const offsetHeight = element.offsetHeight;\n if (scrollHeight <= offsetHeight) {\n return;\n }\n\n element.style.height = `${scrollHeight}px`;\n}\n\nuseResizeObserver(textareaElement, resize);\nwatch(modelValue, resize, { immediate: true });\n\ndefineExpose<KdsFormFieldExpose>({\n focus: () => {\n textareaElement.value?.focus();\n },\n});\n</script>\n\n<template>\n <BaseFormFieldWrapper v-bind=\"props\">\n <template #default=\"slotProps\">\n <textarea\n v-bind=\"slotProps\"\n ref=\"textareaElement\"\n v-model=\"modelValue\"\n :class=\"{ invalid: props.error }\"\n :rows=\"normalizedRows\"\n :placeholder=\"props.placeholder\"\n :disabled=\"props.disabled\"\n :autocomplete=\"props.autocomplete\"\n />\n </template>\n </BaseFormFieldWrapper>\n</template>\n\n<style scoped>\ntextarea {\n box-sizing: border-box;\n width: 100%;\n padding: calc(\n var(--kds-spacing-container-0-5x) - var(--kds-core-border-width-xs)\n );\n overflow: hidden;\n font: var(--kds-font-base-body-small);\n color: var(--kds-color-text-and-icon-neutral);\n resize: none;\n outline: none;\n scrollbar-width: none;\n background: var(--kds-color-background-input-initial);\n border: var(--kds-border-action-input);\n border-radius: var(--kds-border-radius-container-0-37x);\n -ms-overflow-style: none;\n\n &.invalid {\n border: var(--kds-border-action-error);\n }\n\n &::placeholder {\n color: var(--kds-color-text-and-icon-subtle);\n }\n\n &:disabled {\n color: var(--kds-color-text-and-icon-disabled);\n cursor: default;\n border: var(--kds-border-action-disabled);\n border-color: var(--kds-color-border-disabled);\n\n &::placeholder {\n color: var(--kds-color-text-and-icon-disabled);\n }\n }\n\n &:hover:not(:disabled, :focus) {\n background: var(--kds-color-background-input-hover);\n }\n\n &:focus:not(:disabled) {\n outline: var(--kds-border-action-focused);\n outline-offset: var(--kds-spacing-offset-focus);\n }\n}\n\ntextarea::-webkit-scrollbar {\n display: none;\n}\n</style>\n","<script setup lang=\"ts\">\nimport { computed, useId } from \"vue\";\n\nimport KdsIcon from \"../../../accessories/Icon/KdsIcon.vue\";\nimport ListItemAccessory from \"../../_helper/List/ListItemAccessory/ListItemAccessory.vue\";\n\nimport type { BaseDropdownProps } from \"./types\";\n\nconst props = withDefaults(defineProps<BaseDropdownProps>(), {\n text: undefined,\n disabled: false,\n error: false,\n missing: false,\n accessory: undefined,\n\n id: undefined,\n ariaLabelledby: undefined,\n ariaDescribedby: undefined,\n ariaLabel: undefined,\n ariaInvalid: undefined,\n popoverId: undefined,\n});\n\nconst open = defineModel<boolean>(\"open\", { default: false });\n\nconst valueTextId = useId();\n\nconst ariaLabelledby = computed(() => {\n if (props.ariaLabel) {\n return undefined;\n }\n if (!props.ariaLabelledby) {\n return valueTextId;\n }\n return `${props.ariaLabelledby} ${valueTextId}`;\n});\n\nconst effectiveAriaLabel = computed(() => {\n if (!props.ariaLabel) {\n return undefined;\n }\n const displayText = props.text ?? props.placeholder;\n return `${props.ariaLabel}, ${displayText}`;\n});\n\nconst emit = defineEmits<{\n click: [];\n keydown: [event: KeyboardEvent];\n}>();\n\nconst onKeydown = (event: KeyboardEvent) => {\n if (props.disabled) {\n return;\n }\n\n emit(\"keydown\", event);\n\n switch (event.key) {\n case \"ArrowDown\":\n case \"ArrowUp\":\n event.preventDefault();\n if (!open.value) {\n open.value = true;\n }\n break;\n }\n};\n</script>\n\n<template>\n <button\n :id=\"props.id\"\n class=\"kds-dropdown-trigger-button\"\n type=\"button\"\n :aria-expanded=\"open\"\n :aria-labelledby=\"ariaLabelledby\"\n :aria-describedby=\"props.ariaDescribedby\"\n :aria-label=\"effectiveAriaLabel\"\n :aria-invalid=\"props.ariaInvalid\"\n :aria-controls=\"props.popoverId\"\n aria-haspopup=\"dialog\"\n :disabled=\"props.disabled\"\n :class=\"{ error: props.error }\"\n @click=\"!props.disabled && emit('click')\"\n @keydown=\"onKeydown\"\n >\n <span v-if=\"props.accessory\" class=\"leading\" aria-hidden=\"true\">\n <ListItemAccessory :accessory=\"props.accessory\" size=\"medium\" />\n </span>\n\n <span\n :id=\"valueTextId\"\n class=\"text\"\n :class=\"{\n placeholder: !props.text && !props.disabled,\n missing: props.missing,\n }\"\n >\n {{ props.text ?? props.placeholder }}\n </span>\n\n <span class=\"trailing\" aria-hidden=\"true\">\n <KdsIcon :name=\"open ? 'chevron-up' : 'chevron-down'\" size=\"small\" />\n </span>\n </button>\n</template>\n\n<style scoped>\n.kds-dropdown-trigger-button {\n display: flex;\n align-items: center;\n width: 100%;\n height: var(--kds-dimension-component-height-1-75x);\n padding: 0\n calc(var(--kds-spacing-container-0-25x) - var(--kds-core-border-width-xs));\n font: var(--kds-font-base-body-small);\n color: var(--kds-color-text-and-icon-neutral);\n cursor: pointer;\n background: var(--kds-color-background-input-initial);\n border: var(--kds-border-action-input);\n border-radius: var(--kds-border-radius-container-0-37x);\n\n &:focus-visible {\n outline: var(--kds-border-action-focused);\n outline-offset: var(--kds-spacing-offset-focus);\n }\n\n &.error {\n border: var(--kds-border-action-error);\n }\n\n &:disabled {\n color: var(--kds-color-text-and-icon-disabled);\n cursor: default;\n border: var(--kds-border-action-disabled);\n border-color: var(--kds-color-border-disabled);\n }\n\n &:not(:disabled, :focus):hover {\n background: var(--kds-color-background-input-hover);\n }\n}\n\n.leading {\n display: flex;\n flex-shrink: 0;\n align-items: center;\n width: var(--kds-dimension-component-width-1x);\n height: var(--kds-dimension-component-width-1x);\n margin-left: var(--kds-spacing-container-0-12x);\n}\n\n.text {\n flex: 1 0 0;\n min-width: 0;\n padding: var(--kds-spacing-container-0-25x);\n overflow: hidden;\n text-overflow: ellipsis;\n text-align: left;\n white-space: nowrap;\n\n &.placeholder {\n color: var(--kds-color-text-and-icon-subtle);\n }\n\n &.missing {\n color: var(--kds-color-text-and-icon-danger);\n }\n}\n\n.trailing {\n display: flex;\n flex-shrink: 0;\n align-items: center;\n justify-content: center;\n padding-right: calc(\n var(--kds-spacing-container-0-12x) + 2 * var(--kds-core-border-width-xs)\n );\n}\n</style>\n","<script setup lang=\"ts\">\nimport { computed, ref, useTemplateRef } from \"vue\";\n\nimport type { KdsListOption } from \"../../_helper/List/ListContainer\";\nimport { KdsListContainer } from \"../../_helper/List/ListContainer\";\nimport BaseInput from \"../../inputs/BaseInput.vue\";\n\nimport type { DropdownContainerProps, KdsDropdownOption } from \"./types\";\n\nconst props = defineProps<DropdownContainerProps>();\n\nconst modelValue = defineModel<string>({ default: \"\" });\n\nconst searchValue = ref(\"\");\n\nconst searchEl = useTemplateRef(\"searchEl\");\nconst listContainerRef = useTemplateRef(\"listContainer\");\n\ntype DropdownOptionWithMissing = KdsDropdownOption & { missing?: boolean };\n\nconst optionsWithSyntheticMissing = computed<DropdownOptionWithMissing[]>(\n () => {\n if (!modelValue.value) {\n return props.possibleValues;\n }\n\n const hasSelected = props.possibleValues.some(\n (o) => o.id === modelValue.value,\n );\n if (hasSelected) {\n return props.possibleValues;\n }\n\n return [\n {\n id: modelValue.value,\n text: modelValue.value,\n missing: true,\n },\n ...props.possibleValues,\n ];\n },\n);\n\nconst filteredOptions = computed(() => {\n const normalizedQuery = searchValue.value.trim().toLowerCase();\n\n const base = optionsWithSyntheticMissing.value;\n if (normalizedQuery.length === 0) {\n return base;\n }\n\n return base.filter((option) =>\n option.text.toLowerCase().includes(normalizedQuery),\n );\n});\n\nconst listOptions = computed<KdsListOption[]>(() =>\n filteredOptions.value.map((option) => ({\n id: option.id,\n text: option.text,\n subText: option.subText,\n accessory: option.accessory,\n disabled: option.disabled || option.missing,\n selected: option.id === modelValue.value,\n special: option.special,\n missing: option.missing,\n })),\n);\n\nconst hasMultiline = computed(() =>\n props.possibleValues.some((o) => o.subText !== undefined),\n);\n\ndefineExpose({\n focus: () => searchEl.value?.focus(),\n});\n</script>\n\n<template>\n <div class=\"kds-dropdown-container\">\n <div class=\"kds-dropdown-container-sticky-top\">\n <BaseInput\n ref=\"searchEl\"\n v-model=\"searchValue\"\n type=\"search\"\n placeholder=\"Search\"\n :aria-label=\"'Filter options'\"\n :aria-activedescendant=\"listContainerRef?.activeDescendant\"\n leading-icon=\"search\"\n :clearable=\"true\"\n @keydown=\"listContainerRef?.handleKeydown($event)\"\n @focus=\"listContainerRef?.handleFocus()\"\n @blur=\"listContainerRef?.handleBlur()\"\n />\n </div>\n\n <KdsListContainer\n ref=\"listContainer\"\n class=\"kds-dropdown-container-list\"\n :class=\"{ multiline: hasMultiline }\"\n :possible-values=\"props.loading ? [] : listOptions\"\n :loading=\"props.loading\"\n :empty-text=\"props.emptyText\"\n controlled-externally\n aria-label=\"Dropdown options\"\n @item-click=\"modelValue = $event\"\n />\n </div>\n</template>\n\n<style scoped>\n.kds-dropdown-container {\n display: flex;\n flex-direction: column;\n background-color: var(--kds-color-surface-default);\n border-radius: var(--kds-border-radius-container-0-50x);\n box-shadow: var(--kds-elevation-level-3);\n}\n\n.kds-dropdown-container-sticky-top {\n padding: var(--kds-spacing-container-0-25x);\n background-color: var(--kds-color-surface-default);\n border-bottom: var(--kds-border-base-subtle);\n}\n\n.kds-dropdown-container-list {\n max-height: var(--kds-dimension-component-height-12x);\n\n &.multiline {\n max-height: var(--kds-dimension-component-height-20x);\n }\n}\n</style>\n","<script setup lang=\"ts\">\nimport {\n computed,\n nextTick,\n ref,\n useTemplateRef,\n watch,\n watchEffect,\n} from \"vue\";\n\nimport KdsPopover from \"../../../overlays/Popover/KdsPopover.vue\";\nimport BaseFormFieldWrapper from \"../../_helper/BaseFormFieldWrapper.vue\";\n\nimport BaseDropdown from \"./BaseDropdown.vue\";\nimport DropdownContainer from \"./DropdownContainer.vue\";\nimport type { KdsDropdownProps } from \"./types.ts\";\n\nconst props = withDefaults(defineProps<KdsDropdownProps>(), {\n placeholder: \"Select\",\n disabled: false,\n loading: false,\n error: false,\n validating: false,\n preserveSubTextSpace: false,\n});\n\nconst modelValue = defineModel<string>({ default: \"\" });\n\nconst open = ref(false);\nconst popoverEl = useTemplateRef(\"popoverEl\");\nconst dropdownContainerEl = useTemplateRef(\"dropdownContainerEl\");\n\nconst selectedOption = computed(() =>\n props.possibleValues.find((o) => o.id === modelValue.value),\n);\n\n/** Focus search field on opening of dropdown */\nwatchEffect(() => {\n if (open.value) {\n nextTick(() => dropdownContainerEl.value?.focus());\n }\n});\n\n/** Close dropdown on value selection */\nwatch(modelValue, () => {\n if (open.value) {\n open.value = false;\n }\n});\n</script>\n\n<template>\n <BaseFormFieldWrapper\n :id=\"props.id\"\n :label=\"props.label\"\n :aria-label=\"props.ariaLabel\"\n :description=\"props.description\"\n :sub-text=\"props.subText\"\n :error=\"props.error\"\n :validating=\"props.validating\"\n :preserve-sub-text-space=\"props.preserveSubTextSpace\"\n >\n <template #default=\"slotProps\">\n <BaseDropdown\n v-bind=\"slotProps\"\n v-model:open=\"open\"\n :text=\"\n modelValue && !selectedOption\n ? `(Missing) ${modelValue}`\n : selectedOption?.text\n \"\n :placeholder=\"props.placeholder\"\n :disabled=\"props.disabled\"\n :error=\"props.error\"\n :missing=\"!!modelValue && !selectedOption\"\n :accessory=\"selectedOption?.accessory\"\n :style=\"popoverEl?.anchorStyle\"\n :popover-id=\"popoverEl?.popoverId\"\n @click=\"open = !open\"\n />\n\n <KdsPopover\n ref=\"popoverEl\"\n v-model=\"open\"\n placement=\"bottom-left\"\n role=\"dialog\"\n full-width\n popover-aria-label=\"Searchable dropdown options\"\n >\n <DropdownContainer\n ref=\"dropdownContainerEl\"\n v-model=\"modelValue\"\n :possible-values=\"props.possibleValues\"\n :loading=\"props.loading\"\n empty-text=\"No entries found\"\n />\n </KdsPopover>\n </template>\n </BaseFormFieldWrapper>\n</template>\n","<script setup lang=\"ts\">\nimport { useTemplateRef } from \"vue\";\n\nimport { KdsIcon } from \"../../../../accessories\";\nimport { useKdsIsTruncated } from \"../../../../util\";\n\nimport type { KdsListItemButtonProps } from \"./types.ts\";\n\nconst props = withDefaults(defineProps<KdsListItemButtonProps>(), {\n disabled: false,\n});\n\nconst emit = defineEmits<{\n /**\n * Emitted when the button item is clicked.\n */\n click: [event: MouseEvent];\n}>();\n\nconst labelEl = useTemplateRef(\"labelEl\");\nconst { isTruncated: isLabelTruncated } = useKdsIsTruncated(labelEl);\n</script>\n\n<template>\n <button\n type=\"button\"\n :disabled=\"props.disabled\"\n class=\"kds-list-item-button\"\n @click=\"emit('click', $event)\"\n >\n <KdsIcon\n :name=\"props.leadingIcon\"\n size=\"small\"\n :disabled=\"props.disabled\"\n />\n\n <span\n ref=\"labelEl\"\n class=\"label\"\n :title=\"isLabelTruncated ? props.label : undefined\"\n >\n {{ props.label }}\n </span>\n </button>\n</template>\n\n<style scoped>\n.kds-list-item-button {\n position: relative;\n display: flex;\n gap: var(--kds-spacing-container-0-25x);\n align-items: center;\n width: 100%;\n min-width: var(--kds-dimension-component-width-12x);\n padding: var(--kds-spacing-container-0-25x) var(--kds-spacing-container-0-5x);\n font: var(--kds-font-base-interactive-small);\n color: var(--kds-color-text-and-icon-neutral);\n text-align: left;\n cursor: pointer;\n user-select: none;\n background: var(--kds-color-background-neutral-initial);\n border: none;\n border-radius: var(--kds-border-radius-container-0-31x);\n\n .label {\n flex: 1 1 auto;\n min-width: 0;\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n }\n\n &:disabled {\n color: var(--kds-color-text-and-icon-disabled);\n pointer-events: none;\n cursor: default;\n }\n\n &:focus-visible:not(:disabled) {\n outline: var(--kds-border-action-focused);\n outline-offset: var(--kds-spacing-offset-focus);\n }\n\n &:hover:not(:disabled) {\n background: var(--kds-color-background-neutral-hover);\n }\n\n &:active:not(:disabled) {\n background: var(--kds-color-background-neutral-active);\n }\n}\n</style>\n","<script setup lang=\"ts\">\nimport { computed, ref, useId, useTemplateRef } from \"vue\";\n\nimport { KdsListItemButton } from \"../../_helper/List/KdsListItemButton\";\nimport { KdsListContainer } from \"../../_helper/List/ListContainer\";\nimport type { KdsListOption } from \"../../_helper/List/ListContainer\";\nimport BaseInput from \"../../inputs/BaseInput.vue\";\n\nimport type {\n KdsDropdownOption,\n KdsMultiSelectDropdownContainerProps,\n} from \"./types\";\n\nconst ADD_NEW_VALUE_ID = `__kds-add-new-${useId()}__`;\n\nconst props = withDefaults(\n defineProps<KdsMultiSelectDropdownContainerProps>(),\n {\n loading: false,\n allowNewValues: false,\n },\n);\n\nconst emit = defineEmits<{\n /** Emitted when the user adds a new value via the search field (only when `allowNewValues` is true). The parent must append a matching option to `possibleValues` and add the id to `modelValue`. */\n addValue: [text: string];\n}>();\n\nconst modelValue = defineModel<string[]>({ default: () => [] });\n\nconst searchValue = defineModel<string>(\"searchValue\", { default: \"\" });\nconst searchEl = useTemplateRef(\"searchEl\");\nconst listContainerRef = useTemplateRef(\"listContainer\");\n\n/** Snapshot of selected IDs captured when the container is opened, used to keep sort order stable. */\nconst initialSelectedIds = ref(new Set<string>());\n\nconst knownIds = computed(() => new Set(props.possibleValues.map((o) => o.id)));\n\nconst syntheticMissingOptions = computed<KdsDropdownOption[]>(() =>\n modelValue.value\n .filter((id) => !knownIds.value.has(id))\n .map((id) => ({ id, text: id })),\n);\n\nconst filteredOptions = computed<KdsDropdownOption[]>(() => {\n const normalizedQuery = searchValue.value.trim().toLowerCase();\n\n if (normalizedQuery.length === 0) {\n return props.possibleValues;\n }\n\n return props.possibleValues.filter((option) =>\n option.text.toLowerCase().includes(normalizedQuery),\n );\n});\n\nconst canAddNewValue = computed(() => {\n const trimmed = searchValue.value.trim();\n if (!props.allowNewValues || trimmed.length === 0) {\n return false;\n }\n const lower = trimmed.toLowerCase();\n const existsInOptions = props.possibleValues.some(\n (o) => o.text.toLowerCase() === lower,\n );\n const idCollision = knownIds.value.has(trimmed);\n const alreadySelected = modelValue.value.includes(trimmed);\n return !existsInOptions && !idCollision && !alreadySelected;\n});\n\nconst listOptions = computed<KdsListOption[]>(() => {\n const selectedSet = new Set(modelValue.value);\n\n const addNewItem: KdsListOption[] = canAddNewValue.value\n ? [\n {\n id: ADD_NEW_VALUE_ID,\n text: searchValue.value.trim(),\n accessory: { type: \"icon\", name: \"plus\" },\n separator: true,\n },\n ]\n : [];\n\n const missingItems: KdsListOption[] = syntheticMissingOptions.value.map(\n (option) => ({\n id: option.id,\n text: option.text,\n selected: true,\n missing: true,\n }),\n );\n\n const regularItems: KdsListOption[] = filteredOptions.value\n .map((option) => ({\n id: option.id,\n text: option.text,\n subText: option.subText,\n special: option.special,\n accessory: option.accessory,\n selected: selectedSet.has(option.id),\n disabled: option.disabled,\n }))\n .slice()\n .sort(\n (a, b) =>\n Number(initialSelectedIds.value.has(b.id)) -\n Number(initialSelectedIds.value.has(a.id)),\n );\n\n return [...addNewItem, ...missingItems, ...regularItems];\n});\n\nconst visibleEnabledIds = computed(() =>\n filteredOptions.value.filter((o) => !o.disabled).map((o) => o.id),\n);\n\nconst anyVisibleSelected = computed(() =>\n visibleEnabledIds.value.some((id) => modelValue.value.includes(id)),\n);\n\nconst onItemClick = (id: string) => {\n if (id === ADD_NEW_VALUE_ID) {\n const trimmed = searchValue.value.trim();\n if (trimmed.length > 0) {\n emit(\"addValue\", trimmed);\n searchValue.value = \"\";\n }\n return;\n }\n modelValue.value = modelValue.value.includes(id)\n ? modelValue.value.filter((entryId) => entryId !== id)\n : [...modelValue.value, id];\n};\n\nconst onSelectAllOrClearAll = () => {\n const ids = new Set(visibleEnabledIds.value);\n if (anyVisibleSelected.value) {\n modelValue.value = modelValue.value.filter((id) => !ids.has(id));\n } else {\n const alreadySelected = new Set(modelValue.value);\n const toAdd = visibleEnabledIds.value.filter(\n (id) => !alreadySelected.has(id),\n );\n modelValue.value = [...modelValue.value, ...toAdd];\n }\n};\n\ndefineExpose({\n focus: () => {\n initialSelectedIds.value = new Set(modelValue.value);\n searchEl.value?.focus();\n },\n});\n</script>\n\n<template>\n <div class=\"kds-multi-select-dropdown-options\">\n <div class=\"kds-multi-select-dropdown-search\">\n <BaseInput\n ref=\"searchEl\"\n v-model=\"searchValue\"\n type=\"search\"\n placeholder=\"Search\"\n :aria-label=\"'Filter options'\"\n :aria-activedescendant=\"listContainerRef?.activeDescendant\"\n leading-icon=\"search\"\n :clearable=\"true\"\n @keydown=\"listContainerRef?.handleKeydown($event)\"\n @focus=\"listContainerRef?.handleFocus()\"\n @blur=\"listContainerRef?.handleBlur()\"\n />\n </div>\n\n <KdsListContainer\n ref=\"listContainer\"\n class=\"kds-multi-select-dropdown-list\"\n :class=\"{\n multiline: props.possibleValues.some((o) => o.subText !== undefined),\n }\"\n :possible-values=\"props.loading ? [] : listOptions\"\n :loading=\"props.loading\"\n :empty-text=\"props.emptyText\"\n controlled-externally\n aria-label=\"Dropdown options\"\n @item-click=\"onItemClick\"\n />\n\n <div\n v-if=\"!props.loading && visibleEnabledIds.length > 0\"\n class=\"kds-multi-select-dropdown-footer\"\n >\n <KdsListItemButton\n :label=\"anyVisibleSelected ? 'Clear all' : 'Select all'\"\n :leading-icon=\"anyVisibleSelected ? 'trash' : 'checkmark'\"\n :disabled=\"filteredOptions.every((o) => o.disabled)\"\n @click=\"onSelectAllOrClearAll\"\n />\n </div>\n </div>\n</template>\n\n<style scoped>\n.kds-multi-select-dropdown-options {\n display: flex;\n flex-direction: column;\n min-width: var(--kds-dimension-component-width-12x);\n background: var(--kds-color-surface-default);\n border-radius: var(--kds-border-radius-container-0-50x);\n box-shadow: var(--kds-elevation-level-3);\n}\n\n.kds-multi-select-dropdown-search {\n padding: var(--kds-spacing-container-0-25x);\n border-bottom: var(--kds-border-base-subtle);\n}\n\n.kds-multi-select-dropdown-list {\n max-height: var(--kds-dimension-component-height-12x);\n\n &.multiline {\n max-height: var(--kds-dimension-component-height-20x);\n }\n}\n\n.kds-multi-select-dropdown-footer {\n padding: var(--kds-spacing-container-0-25x);\n border-top: var(--kds-border-base-subtle);\n}\n</style>\n","<script setup lang=\"ts\">\nimport {\n computed,\n nextTick,\n ref,\n useTemplateRef,\n watch,\n watchEffect,\n} from \"vue\";\n\nimport KdsPopover from \"../../../overlays/Popover/KdsPopover.vue\";\nimport BaseFormFieldWrapper from \"../../_helper/BaseFormFieldWrapper.vue\";\n\nimport BaseDropdown from \"./BaseDropdown.vue\";\nimport MultiSelectDropdownContainer from \"./MultiSelectDropdownContainer.vue\";\nimport type { KdsDropdownOption, KdsMultiSelectDropdownProps } from \"./types\";\n\nconst props = withDefaults(defineProps<KdsMultiSelectDropdownProps>(), {\n placeholder: \"Select\",\n disabled: false,\n loading: false,\n allowNewValues: false,\n error: false,\n validating: false,\n preserveSubTextSpace: false,\n});\n\nconst modelValue = defineModel<string[]>({ default: () => [] });\n\nconst open = ref(false);\nconst dropdownContainerEl = useTemplateRef(\"dropdownContainerEl\");\nconst popoverEl = useTemplateRef(\"popoverEl\");\n\nwatchEffect(() => {\n if (open.value) {\n nextTick(() => dropdownContainerEl.value?.focus());\n }\n});\n\n/** Options added by the user via the combo-box search field. */\nconst addedOptions = ref<KdsDropdownOption[]>([]);\n\n/**\n * When `allowNewValues` is false, reset added options whenever possibleValues\n * change (mirrors the old ComboBox behaviour where allPossibleItems syncs\n * with props). When `allowNewValues` is true the additions persist.\n */\nwatch(\n [() => props.possibleValues, () => props.allowNewValues],\n ([, allowNew]) => {\n if (!allowNew) {\n addedOptions.value = [];\n }\n },\n);\n\nconst allPossibleValues = computed(() => {\n const baseIds = new Set(props.possibleValues.map((o) => o.id));\n const deduped = addedOptions.value.filter((o) => !baseIds.has(o.id));\n return [...props.possibleValues, ...deduped];\n});\n\nconst optionById = computed(\n () => new Map(allPossibleValues.value.map((item) => [item.id, item])),\n);\n\nconst missingIds = computed(() =>\n modelValue.value.filter((id) => !optionById.value.has(id)),\n);\n\nconst summary = computed(() => {\n if (modelValue.value.length === 0) {\n return undefined;\n }\n\n if (missingIds.value.length > 0) {\n return `(Missing) ${missingIds.value[0]}`;\n }\n\n if (modelValue.value.length === 1) {\n return optionById.value.get(modelValue.value[0])?.text;\n }\n\n return `Selected (${modelValue.value.length}/${allPossibleValues.value.length})`;\n});\n\nconst onAddValue = (text: string) => {\n addedOptions.value = [...addedOptions.value, { id: text, text }];\n modelValue.value = [...modelValue.value, text];\n};\n</script>\n\n<template>\n <BaseFormFieldWrapper\n :id=\"props.id\"\n :label=\"props.label\"\n :aria-label=\"props.ariaLabel\"\n :description=\"props.description\"\n :sub-text=\"props.subText\"\n :error=\"props.error\"\n :validating=\"props.validating\"\n :preserve-sub-text-space=\"props.preserveSubTextSpace\"\n >\n <template #default=\"slotProps\">\n <BaseDropdown\n v-bind=\"slotProps\"\n v-model:open=\"open\"\n :text=\"summary\"\n :placeholder=\"props.placeholder\"\n :disabled=\"props.disabled\"\n :error=\"props.error\"\n :missing=\"missingIds.length > 0\"\n :style=\"popoverEl?.anchorStyle\"\n :popover-id=\"popoverEl?.popoverId\"\n @click=\"open = !open\"\n />\n\n <KdsPopover\n ref=\"popoverEl\"\n v-model=\"open\"\n placement=\"bottom-left\"\n role=\"dialog\"\n full-width\n popover-aria-label=\"Multi select dropdown options\"\n >\n <MultiSelectDropdownContainer\n ref=\"dropdownContainerEl\"\n v-model=\"modelValue\"\n :possible-values=\"allPossibleValues\"\n :loading=\"props.loading\"\n :allow-new-values=\"props.allowNewValues\"\n empty-text=\"No entries found\"\n @add-value=\"onAddValue\"\n />\n </KdsPopover>\n </template>\n </BaseFormFieldWrapper>\n</template>\n","<script setup lang=\"ts\">\n/**\n * @slot default - Custom content for the popover. When provided, overrides the `content` prop.\n */\n\nconst props = defineProps<{\n /**\n * Content to display inside the info popover. Used when no default slot is provided.\n */\n content?: string;\n}>();\n</script>\n\n<template>\n <div class=\"kds-info-popover-content\">\n <slot>{{ props.content }}</slot>\n </div>\n</template>\n\n<style scoped>\n.kds-info-popover-content {\n max-width: var(--kds-dimension-component-width-25x);\n padding: var(--kds-spacing-container-0-75x);\n font: var(--kds-font-base-body-small);\n color: var(--kds-color-text-and-icon-neutral);\n background-color: var(--kds-color-surface-default);\n border-radius: var(--kds-border-radius-container-0-37x);\n box-shadow: var(--kds-elevation-level-3);\n}\n</style>\n","<script setup lang=\"ts\">\nimport { ref, useTemplateRef } from \"vue\";\n\nimport KdsIcon from \"../../../accessories/Icon/KdsIcon.vue\";\nimport KdsPopover from \"../../../overlays/Popover/KdsPopover.vue\";\n\nimport InfoPopover from \"./InfoPopover.vue\";\nimport type { KdsInfoToggleButtonProps } from \"./types\";\n\n/**\n * @slot default - Custom content for the popover. When provided, overrides the `content` prop.\n */\n\nconst props = withDefaults(defineProps<KdsInfoToggleButtonProps>(), {\n hidden: false,\n});\n\nconst TITLE = \"Click for more information\";\n\nconst modelValue = defineModel<boolean>({ default: false });\nconst popoverEl = useTemplateRef(\"popoverEl\");\nconst isHovered = ref(false);\nconst isFocused = ref(false);\n</script>\n\n<template>\n <button\n v-bind=\"$attrs\"\n :class=\"{\n 'info-toggle-button': true,\n selected: modelValue,\n hidden: props.hidden && !modelValue && !isHovered && !isFocused,\n }\"\n :title=\"TITLE\"\n :aria-label=\"TITLE\"\n :aria-pressed=\"modelValue\"\n :aria-expanded=\"modelValue\"\n :aria-controls=\"popoverEl?.popoverId\"\n aria-haspopup=\"dialog\"\n :style=\"popoverEl?.anchorStyle\"\n type=\"button\"\n @click=\"modelValue = !modelValue\"\n @mouseenter=\"isHovered = true\"\n @mouseleave=\"isHovered = false\"\n @focus=\"isFocused = true\"\n @blur=\"isFocused = false\"\n >\n <KdsIcon name=\"circle-question\" size=\"small\" />\n </button>\n\n <KdsPopover\n ref=\"popoverEl\"\n v-model=\"modelValue\"\n placement=\"top-right\"\n role=\"dialog\"\n popover-aria-label=\"Description\"\n >\n <InfoPopover :content=\"props.content\">\n <slot />\n </InfoPopover>\n </KdsPopover>\n</template>\n\n<style scoped>\n.info-toggle-button {\n --bg-initial: transparent;\n --bg-hover: var(--kds-color-background-neutral-hover);\n --bg-active: var(--kds-color-background-neutral-active);\n --border: var(--kds-border-action-transparent);\n --icon-color: var(--kds-color-text-and-icon-neutral);\n\n display: inline-flex;\n flex-shrink: 0;\n align-items: center;\n justify-content: center;\n width: var(--kds-dimension-component-width-1x);\n height: var(--kds-dimension-component-height-1x);\n padding: 0;\n color: var(--icon-color);\n cursor: pointer;\n background-color: var(--bg-initial);\n border: var(--border);\n border-radius: var(--kds-border-radius-container-0-12x);\n opacity: 1;\n\n &.hidden {\n opacity: 0;\n }\n\n &:focus-visible {\n outline: var(--kds-border-action-focused);\n outline-offset: var(--kds-spacing-offset-focus);\n }\n\n &:hover {\n background-color: var(--bg-hover);\n }\n\n &:active {\n background-color: var(--bg-active);\n }\n\n &.selected {\n --bg-initial: var(--kds-color-background-selected-initial);\n --bg-hover: var(--kds-color-background-selected-hover);\n --bg-active: var(--kds-color-background-selected-active);\n --border: var(--kds-border-action-selected);\n --icon-color: var(--kds-color-text-and-icon-selected);\n }\n}\n</style>\n","<script setup lang=\"ts\">\n/**\n * @slot default - Custom content for the popover. When provided, overrides the built-in placeholder layout and the `content` prop.\n */\nconst props = defineProps<{\n /**\n * Content to display inside the info popover. Used when no default slot is provided.\n */\n content?: string;\n}>();\n</script>\n\n<template>\n <div class=\"kds-variable-popover\">\n <slot>{{ props.content }}</slot>\n </div>\n</template>\n\n<style scoped>\n.kds-variable-popover {\n width: var(--kds-dimension-component-width-25x);\n max-width: 100%;\n padding: var(--kds-spacing-container-0-75x);\n font: var(--kds-font-base-body-small);\n color: var(--kds-color-text-and-icon-neutral);\n white-space: pre-wrap;\n background-color: var(--kds-color-surface-default);\n border-radius: var(--kds-border-radius-container-0-37x);\n box-shadow: var(--kds-elevation-level-3);\n}\n</style>\n","<script setup lang=\"ts\">\nimport { computed, ref, useTemplateRef } from \"vue\";\n\nimport KdsIcon from \"../../../accessories/Icon/KdsIcon.vue\";\nimport KdsPopover from \"../../../overlays/Popover/KdsPopover.vue\";\n\nimport VariablePopover from \"./VariablePopover.vue\";\nimport type { KdsVariableToggleButtonProps } from \"./types.ts\";\n\n/**\n * @slot default - Custom content for the popover. When provided, overrides the `content` prop.\n */\n\nconst props = withDefaults(defineProps<KdsVariableToggleButtonProps>(), {\n inSet: false,\n outSet: false,\n error: false,\n hidden: false,\n});\n\nconst modelValue = defineModel<boolean>({ default: false });\nconst popoverEl = useTemplateRef(\"popoverEl\");\nconst isHovered = ref(false);\nconst isFocused = ref(false);\n\nconst iconState = computed(() => {\n if (props.inSet && props.outSet) {\n return \"in-out\" as const;\n }\n\n if (props.inSet) {\n return \"in\" as const;\n }\n\n if (props.outSet) {\n return \"out\" as const;\n }\n\n return \"none\" as const;\n});\n\nconst iconName = computed(() => {\n switch (iconState.value) {\n case \"in\":\n return \"flow-variable-in\";\n case \"out\":\n return \"flow-variable-out\";\n case \"in-out\":\n return \"flow-variable-in-out\";\n case \"none\":\n default:\n return \"flow-variable-default\";\n }\n});\n\nconst baseTitleByState: Record<typeof iconState.value, string> = {\n in: \"Input Flow Variable\",\n out: \"Output Flow Variable\",\n \"in-out\": \"Input and Output Flow Variable\",\n none: \"No Flow Variable set\",\n};\n\nconst errorTitleByState: Partial<Record<typeof iconState.value, string>> = {\n in: \"Error in input Flow Variable\",\n out: \"Error in output Flow Variable\",\n \"in-out\": \"Error in Flow Variables\",\n};\n\nconst title = computed(() => {\n const baseTitle = baseTitleByState[iconState.value];\n if (!props.error) {\n return baseTitle;\n }\n return errorTitleByState[iconState.value] ?? baseTitle;\n});\n</script>\n\n<template>\n <button\n v-bind=\"$attrs\"\n :class=\"{\n 'variable-toggle-button': true,\n error: props.error,\n 'pressed-or-set': modelValue || props.inSet || props.outSet,\n hidden: props.hidden && !modelValue && !isHovered && !isFocused,\n }\"\n :title=\"title\"\n :aria-label=\"title\"\n :aria-pressed=\"modelValue\"\n :aria-expanded=\"modelValue\"\n :aria-controls=\"popoverEl?.popoverId\"\n aria-haspopup=\"dialog\"\n :style=\"popoverEl?.anchorStyle\"\n type=\"button\"\n @click=\"modelValue = !modelValue\"\n @mouseenter=\"isHovered = true\"\n @mouseleave=\"isHovered = false\"\n @focus=\"isFocused = true\"\n @blur=\"isFocused = false\"\n >\n <KdsIcon :name=\"iconName\" size=\"small\" />\n </button>\n\n <KdsPopover\n ref=\"popoverEl\"\n v-model=\"modelValue\"\n placement=\"bottom-right\"\n role=\"dialog\"\n popover-aria-label=\"Flow Variable settings\"\n >\n <VariablePopover v-if=\"modelValue\" :content=\"props.content\">\n <slot />\n </VariablePopover>\n </KdsPopover>\n</template>\n\n<style scoped>\n.variable-toggle-button {\n --bg-initial: var(--kds-color-background-neutral-initial);\n --bg-hover: var(--kds-color-background-neutral-hover);\n --bg-active: var(--kds-color-background-neutral-active);\n --border: var(--kds-border-action-transparent);\n --icon-color: var(--kds-color-text-and-icon-neutral);\n\n display: inline-flex;\n flex-shrink: 0;\n align-items: center;\n justify-content: center;\n width: var(--kds-dimension-component-width-1x);\n height: var(--kds-dimension-component-height-1x);\n padding: 0;\n color: var(--icon-color);\n cursor: pointer;\n background-color: var(--bg-initial);\n border: var(--border);\n border-radius: var(--kds-border-radius-container-0-12x);\n opacity: 1;\n\n &.hidden {\n opacity: 0;\n }\n\n &:focus-visible {\n outline: var(--kds-border-action-focused);\n outline-offset: var(--kds-spacing-offset-focus);\n }\n\n &:hover {\n background-color: var(--bg-hover);\n }\n\n &:active {\n background-color: var(--bg-active);\n }\n\n &.pressed-or-set {\n --bg-initial: var(--kds-color-background-selected-initial);\n --bg-hover: var(--kds-color-background-selected-hover);\n --bg-active: var(--kds-color-background-selected-active);\n --border: var(--kds-border-action-selected);\n --icon-color: var(--kds-color-text-and-icon-success);\n }\n\n &.error {\n --bg-initial: var(--kds-color-background-danger-initial);\n --bg-hover: var(--kds-color-background-danger-hover);\n --bg-active: var(--kds-color-background-danger-active);\n --border: var(--kds-border-action-error);\n --icon-color: var(--kds-color-text-and-icon-danger);\n }\n}\n</style>\n","<script setup lang=\"ts\">\nimport { computed } from \"vue\";\n\nimport type { KdsCardProps } from \"./types\";\n\nconst {\n variant = \"filled\",\n selectable = false,\n disabled = false,\n ariaLabel,\n ariaLabelledby,\n} = defineProps<KdsCardProps>();\n\n/**\n * Controls the selected state of the card when `selectable` is true.\n * When `selectable` is false, this model is ignored.\n */\nconst modelValue = defineModel<boolean>({ default: false });\n\nconst emit = defineEmits<{\n /**\n * Fired when the card is clicked.\n *\n * This event is only emitted when `selectable` is false.\n * Clicks while `selectable` is true toggle the card.\n */\n click: [event: MouseEvent];\n}>();\n\nconst selected = computed(() => modelValue.value && selectable);\n\nconst handleClick = (event: MouseEvent) => {\n if (selectable) {\n modelValue.value = !modelValue.value;\n } else {\n emit(\"click\", event);\n }\n};\n</script>\n\n<template>\n <button\n type=\"button\"\n class=\"kds-card\"\n :class=\"[`variant-${variant}`, { selected: selected }]\"\n :aria-label=\"ariaLabel\"\n :aria-labelledby=\"ariaLabelledby\"\n :aria-pressed=\"selectable ? modelValue : undefined\"\n :disabled=\"disabled\"\n @click=\"handleClick\"\n >\n <slot />\n </button>\n</template>\n\n<style scoped>\n.kds-card {\n position: relative;\n display: flex;\n flex-direction: column;\n width: 100%;\n padding: 0;\n font: inherit;\n color: inherit;\n text-align: start;\n cursor: pointer;\n outline: none;\n border-style: solid;\n border-radius: var(--kds-border-radius-container-0-50x);\n transition:\n background-color 0.2s,\n border-color 0.2s,\n box-shadow 0.2s;\n\n &:focus-visible {\n outline: var(--kds-border-action-focused);\n outline-offset: var(--kds-spacing-offset-focus);\n border-radius: var(--kds-border-radius-container-0-56x);\n }\n\n &:disabled {\n cursor: default;\n }\n}\n\n/* Variant: Filled, Value: False */\n.variant-filled {\n background: var(--kds-color-surface-default);\n border: var(--kds-border-base-subtle);\n\n &:hover:not(:disabled) {\n box-shadow: var(--kds-elevation-level-3);\n }\n\n &:active:not(:disabled) {\n background: var(--kds-color-background-neutral-active);\n box-shadow: var(--kds-elevation-level-1);\n }\n}\n\n/* Variant: Outlined, Value: False */\n.variant-outlined {\n background: var(--kds-color-background-neutral-initial);\n border: var(--kds-border-base-muted);\n\n &:hover:not(:disabled) {\n box-shadow: var(--kds-elevation-level-3);\n }\n\n &:active:not(:disabled) {\n background: var(--kds-color-background-neutral-active);\n box-shadow: var(--kds-elevation-level-1);\n }\n}\n\n/* Variant: Transparent, Value: False */\n.variant-transparent {\n background: var(--kds-color-background-neutral-initial);\n border: var(--kds-border-action-transparent);\n\n &:hover:not(:disabled) {\n background: var(--kds-color-background-neutral-hover);\n box-shadow: var(--kds-elevation-level-3);\n }\n\n &:active:not(:disabled) {\n background: var(--kds-color-background-neutral-active);\n box-shadow: var(--kds-elevation-level-1);\n }\n}\n\n/* Variant: Filled, Value: True */\n.variant-filled.selected {\n background: var(--kds-color-background-selected-initial);\n border: var(--kds-border-action-selected);\n\n &:hover:not(:disabled) {\n box-shadow: var(--kds-elevation-level-3);\n }\n\n &:active:not(:disabled) {\n background: var(--kds-color-background-selected-active);\n box-shadow: var(--kds-elevation-level-1);\n }\n}\n\n/* Variant: Outlined, Value: True */\n.variant-outlined.selected {\n background: var(--kds-color-background-selected-initial);\n border: var(--kds-border-action-selected);\n\n &:hover:not(:disabled) {\n box-shadow: var(--kds-elevation-level-3);\n }\n\n &:active:not(:disabled) {\n background: var(--kds-color-background-selected-active);\n box-shadow: var(--kds-elevation-level-1);\n }\n}\n\n/* Variant: Transparent, Value: True */\n.variant-transparent.selected {\n background: var(--kds-color-background-selected-initial);\n border: var(--kds-border-action-selected);\n\n &:hover:not(:disabled) {\n background: var(--kds-color-background-selected-initial);\n box-shadow: var(--kds-elevation-level-3);\n }\n\n &:active:not(:disabled) {\n background: var(--kds-color-background-selected-active);\n box-shadow: var(--kds-elevation-level-1);\n }\n}\n</style>\n","export const kdsCardVariant = {\n FILLED: \"filled\",\n OUTLINED: \"outlined\",\n TRANSPARENT: \"transparent\",\n} as const;\n\nexport const kdsCardVariants = Object.values(kdsCardVariant);\n","export type UnwrappedPromise<T = unknown> = {\n resolve: (value: T | PromiseLike<T>) => void;\n reject: (reason?: unknown) => void;\n promise: Promise<T>;\n};\n\nexport const createUnwrappedPromise = <T>(): UnwrappedPromise<T> => {\n let resolve: (value: T | PromiseLike<T>) => void = () => {};\n let reject: (reason?: unknown) => void = () => {};\n\n const promise = new Promise<T>((res, rej) => {\n resolve = res;\n reject = rej;\n });\n\n return { resolve, reject, promise };\n};\n","/**\n * Returns promise that resolves after ms.\n */\nexport default function sleep(ms: number) {\n return new Promise((resolve) => setTimeout(resolve, ms));\n}\n","export const kdsModalClosedBy = {\n ANY: \"any\",\n CLOSEREQUEST: \"closerequest\",\n NONE: \"none\",\n} as const;\n\nexport const kdsModalClosedByOptions = Object.values(kdsModalClosedBy);\n\nexport const kdsModalWidth = {\n SMALL: \"small\",\n MEDIUM: \"medium\",\n LARGE: \"large\",\n XLARGE: \"xlarge\",\n FULL: \"full\",\n} as const;\n\nexport const kdsModalWidthSizes = Object.values(kdsModalWidth);\n\nexport const kdsModalHeight = {\n AUTO: \"auto\",\n FULL: \"full\",\n} as const;\n\nexport const kdsModalHeightSizes = Object.values(kdsModalHeight);\n\nexport const kdsModalVariant = {\n PADDED: \"padded\",\n PLAIN: \"plain\",\n} as const;\n\nexport const kdsModalVariants = Object.values(kdsModalVariant);\n\nexport const kdsModalLayoutPropsDefault = {\n headline: \"\",\n variant: kdsModalVariant.PADDED,\n overflow: \"auto\",\n leadingIcon: undefined,\n} as const;\n\nexport const kdsModalPropsDefault = {\n active: false,\n height: kdsModalHeight.AUTO,\n width: kdsModalWidth.MEDIUM,\n closedby: kdsModalClosedBy.CLOSEREQUEST,\n ...kdsModalLayoutPropsDefault,\n} as const;\n","<script setup lang=\"ts\">\nimport KdsIcon from \"../../accessories/Icon/KdsIcon.vue\";\nimport KdsButton from \"../../buttons/KdsButton/KdsButton.vue\";\n\nimport { kdsModalLayoutPropsDefault } from \"./enums\";\nimport type { KdsModalLayoutProps } from \"./types\";\n\nconst props = withDefaults(\n defineProps<KdsModalLayoutProps>(),\n kdsModalLayoutPropsDefault,\n);\ndefineOptions({ inheritAttrs: false });\n</script>\n\n<template>\n <header class=\"modal-header\">\n <KdsIcon v-if=\"props.leadingIcon\" :name=\"props.leadingIcon\" size=\"medium\" />\n <div class=\"modal-header-headline\">{{ props.headline }}</div>\n <KdsButton\n leading-icon=\"x-close\"\n variant=\"transparent\"\n size=\"medium\"\n title=\"Close\"\n @click=\"props.onClose\"\n />\n </header>\n\n <div class=\"modal-body\" :data-variant=\"variant\">\n <slot name=\"body\" />\n </div>\n\n <footer v-if=\"$slots.footer\" class=\"modal-footer\">\n <slot name=\"footer\" />\n </footer>\n</template>\n\n<style scoped>\n.modal-header {\n display: flex;\n gap: var(--kds-spacing-container-0-5x);\n align-items: center;\n padding: var(--kds-spacing-container-0-5x) var(--kds-spacing-container-0-5x)\n var(--kds-spacing-container-0-5x) var(--kds-spacing-container-1-5x);\n font: var(--kds-font-base-title-medium-strong);\n color: var(--kds-color-text-and-icon-neutral);\n\n & .modal-header-headline {\n flex: 1 1 auto;\n }\n}\n\n.modal-body {\n --modal-padding-left: var(--kds-spacing-container-1-5x);\n --modal-padding-right: var(--kds-spacing-container-1-5x);\n --modal-padding-top: var(--kds-spacing-container-0-5x);\n --modal-padding-bottom: var(--kds-spacing-container-1x);\n --modal-gap: var(--kds-spacing-container-1x);\n\n display: flex;\n flex-grow: 1;\n flex-direction: column;\n overflow: v-bind(overflow);\n font: var(--kds-font-base-body-small);\n color: var(--kds-color-text-and-icon-neutral);\n\n &[data-variant=\"padded\"] {\n gap: var(--modal-gap);\n padding: var(--modal-padding-top) var(--modal-padding-right)\n var(--modal-padding-bottom) var(--modal-padding-left);\n }\n}\n\n.modal-footer {\n display: flex;\n gap: var(--kds-spacing-container-0-5x);\n justify-content: right;\n padding: var(--kds-spacing-container-1x) var(--kds-spacing-container-1-5x);\n}\n</style>\n","<script setup lang=\"ts\">\nimport { nextTick, ref, useTemplateRef, watch } from \"vue\";\n\nimport { sleep } from \"@knime/utils\";\n\nimport KdsModalLayout from \"./KdsModalLayout.vue\";\nimport { kdsModalPropsDefault } from \"./enums\";\nimport type { KdsModalProps } from \"./types\";\n\nconst props = withDefaults(defineProps<KdsModalProps>(), kdsModalPropsDefault);\n\nconst emit = defineEmits<{\n /** request to close of the dialog */\n close: [event?: Event];\n /** the dialog is closed (different to the active state due to possible animations) */\n closed: [];\n}>();\n\nconst dialog = useTemplateRef(\"dialogElement\");\n\nconst onClose = (event?: Event) => {\n emit(\"close\", event);\n};\n\nwatch(\n () => props.active,\n async (active) => {\n if (active) {\n await nextTick();\n dialog.value?.showModal();\n } else {\n dialog.value?.close();\n }\n },\n { immediate: true },\n);\n\nconst renderDialog = ref(props.active);\n\nconst removeDialog = () => {\n if (!renderDialog.value) {\n return;\n }\n renderDialog.value = false;\n emit(\"closed\");\n};\n\nwatch(\n () => props.active,\n async (value, lastValue) => {\n // on close wait until the animation has run\n if (value === false && lastValue === true) {\n if (dialog.value) {\n Promise.all(\n dialog.value\n .getAnimations({ subtree: true })\n .map((animation) => animation.finished),\n ).then(removeDialog);\n // eslint-disable-next-line no-magic-numbers\n await sleep(350);\n // fallback in case animations fail or dont resolve\n removeDialog();\n } else {\n // fallback if dialog element ref is not accessible\n removeDialog();\n }\n } else {\n renderDialog.value = value;\n }\n },\n);\n</script>\n\n<template>\n <dialog\n v-if=\"renderDialog\"\n ref=\"dialogElement\"\n :class=\"[\n 'kds-modal',\n `width-${width}`,\n `height-${height}`,\n `overflow-${overflow}`,\n ]\"\n :closedby=\"closedby\"\n @cancel.prevent=\"onClose\"\n >\n <slot\n :headline=\"headline\"\n :leading-icon=\"leadingIcon\"\n :variant=\"variant\"\n :overflow=\"overflow\"\n :on-close=\"onClose\"\n >\n <KdsModalLayout\n :headline=\"headline\"\n :leading-icon=\"leadingIcon\"\n :variant=\"variant\"\n :overflow=\"overflow\"\n @close=\"onClose\"\n >\n <template #body>\n <slot name=\"body\" />\n </template>\n\n <template #footer>\n <slot name=\"footer\" />\n </template>\n </KdsModalLayout>\n </slot>\n </dialog>\n</template>\n\n<style>\n/** see: https://github.com/whatwg/html/issues/7732 */\nbody:has(dialog.modal[open]) {\n overflow: hidden;\n}\n</style>\n\n<style scoped>\n.kds-modal {\n /* rule is broken it complains about local variables for no reason */\n /* stylelint-disable csstools/value-no-unknown-custom-properties */\n --modal-full-size: 95%;\n --modal-backdrop-animation-time: 125ms;\n\n &.width-small {\n --modal-width: var(--kds-dimension-component-width-25x);\n --modal-animation-time: 100ms;\n --modal-scale-base: 0.85;\n }\n\n &.width-medium {\n --modal-width: var(--kds-dimension-component-width-32x);\n --modal-animation-time: 140ms;\n --modal-scale-base: 0.88;\n }\n\n &.width-large {\n --modal-width: var(--kds-dimension-component-width-45x);\n --modal-animation-time: 210ms;\n --modal-scale-base: 0.88;\n }\n\n &.width-xlarge {\n --modal-width: var(--kds-dimension-component-width-61x);\n --modal-animation-time: 300ms;\n --modal-scale-base: 0.88;\n }\n\n &.width-full {\n --modal-width: var(--modal-full-size);\n --modal-animation-time: 350ms;\n --modal-scale-base: 0.92;\n }\n\n &.height-full {\n --modal-height: var(--modal-full-size);\n }\n\n &.height-auto {\n --modal-height: fit-content;\n }\n\n display: flex;\n flex-direction: column;\n width: min(var(--modal-full-size), var(--modal-width));\n height: var(--modal-height);\n max-height: var(--modal-full-size);\n padding: 0;\n overflow: v-bind(overflow);\n font: var(--kds-font-base-body-small);\n color: var(--kds-color-text-and-icon-neutral);\n background-color: var(--kds-color-surface-default);\n border: none;\n border-radius: var(--kds-border-radius-container-0-37x);\n box-shadow: var(--kds-elevation-level-3);\n\n /** Animation */\n opacity: 0;\n transform: scale(var(--modal-scale-base));\n transition: var(--modal-animation-time) allow-discrete;\n transition-timing-function: cubic-bezier(0, 0, 0.2, 1);\n transition-property: display, opacity, overlay, transform;\n\n /* hide if its not open */\n &:not([open]) {\n display: none;\n }\n\n &:focus-visible,\n &:focus {\n outline: none;\n }\n\n &::backdrop {\n background: var(--kds-color-blanket-default);\n opacity: 0;\n transition: var(--modal-animation-time) allow-discrete;\n transition-timing-function: cubic-bezier(0, 0, 0.2, 1);\n transition-property: display, opacity, overlay;\n }\n\n &[open]::backdrop {\n opacity: 1;\n }\n\n &[open] {\n opacity: 1;\n transform: scale(1);\n }\n}\n\n/** Animation starting styles */\n@starting-style {\n .kds-modal {\n opacity: 1;\n transform: scale(1);\n\n &[open] {\n opacity: 0;\n transform: scale(var(--modal-scale-base));\n }\n\n &::backdrop {\n opacity: 1;\n }\n\n &[open]::backdrop {\n opacity: 0;\n }\n }\n}\n</style>\n","import {\n type ComponentPublicInstance,\n type FunctionalComponent,\n type VNode,\n computed,\n ref,\n} from \"vue\";\n\nimport { promise as PromiseUtils } from \"@knime/utils\";\n\nimport type { KdsButtonProps } from \"../../buttons\";\n\nimport type { KdsModalLayoutProps, KdsModalProps } from \"./types\";\n\ntype CommonButtonProps = {\n label: string;\n autofocus?: boolean;\n destructive?: boolean;\n variant?: KdsButtonProps[\"variant\"];\n flushLeft?: boolean;\n};\n\ntype ConfirmationButton = CommonButtonProps & {\n type: \"confirm\";\n customHandler?: (actions: { confirm: () => void }) => void;\n};\n\ntype CancellationButton = CommonButtonProps & {\n type: \"cancel\";\n customHandler?: (actions: { cancel: () => void }) => void;\n};\n\nexport type ConfirmModalButton = ConfirmationButton | CancellationButton;\n\ntype CommonConfig = Omit<KdsModalProps, \"active\">;\n\ntype PropertyBasedConfirmModalConfig = CommonConfig & {\n /**\n * The message displayed in the modal body\n */\n message: string;\n /**\n * The label and subText to be rendered for the \"do not ask again\" checkbox option.\n * The checkbox will only be present when an object is supplied. The value will be returned on the modal result.\n * Defaults to empty undefined.\n */\n doNotAskAgain?: {\n label: string;\n subText?: string;\n };\n\n /**\n * Confirmation or cancellation buttons if omitted default ones are set\n */\n buttons?: Array<ConfirmModalButton>;\n};\n\ntype TemplateBasedConfirmModalConfig = CommonConfig & {\n /**\n * the dynamic component to be used as the confirmation modal body\n */\n component: FunctionalComponent | ComponentPublicInstance | VNode;\n\n /**\n * Confirmation or cancellation buttons if omitted default ones are set\n */\n buttons?: Array<ConfirmModalButton>;\n};\n\nexport type KdsDynamicDialogConfirmConfig =\n | PropertyBasedConfirmModalConfig\n | TemplateBasedConfirmModalConfig;\n\ntype UpdateConfigType = Partial<\n Omit<KdsDynamicModalTemplateConfig, \"component\" | \"context\">\n>;\n\n/**\n * Define a props api which dynamic template components can optionally\n * define to get access to the configuration the dynamic modal was called with\n */\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nexport type KdsDynamicModalPropsAPI<T = any> = KdsModalLayoutProps & {\n context: T;\n updateConfig: (config: UpdateConfigType) => void;\n};\ntype DynamicModalComponent<T> = abstract new (...args: unknown[]) => {\n $props: KdsDynamicModalPropsAPI<T>;\n};\n\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nexport type KdsDynamicModalTemplateConfig<T = any> = CommonConfig & {\n component:\n | DynamicModalComponent<T>\n | FunctionalComponent<KdsDynamicModalPropsAPI<T>>;\n context?: T;\n};\n\nconst defaultCancelButton: CancellationButton = {\n type: \"cancel\",\n label: \"Cancel\",\n};\n\nconst defaultConfirmButton: ConfirmationButton = {\n type: \"confirm\",\n label: \"Confirm\",\n};\n\ntype ConfirmResult = { confirmed: boolean; doNotAskAgain?: boolean };\n\nconst isActive = ref(false);\nconst activeModalConfig = ref<\n | { type: \"confirm\"; value: KdsDynamicDialogConfirmConfig }\n | { type: \"dynamic\"; value: KdsDynamicModalTemplateConfig }\n | null\n>(null);\n\nconst unwrappedPromise = ref(PromiseUtils.createUnwrappedPromise());\n\nconst resetInternalState = () => {\n isActive.value = false;\n unwrappedPromise.value = PromiseUtils.createUnwrappedPromise();\n // config is cleared after the close animations is finished\n};\n\n/* called when KdsModal has finished close animations */\nconst onClosed = () => {\n activeModalConfig.value = null;\n};\n\n/**\n * Used to confirm the modal result. Should only used when called via\n * `askConfirmation`\n * @param doNotAskAgain\n */\nconst confirm = (doNotAskAgain = false) => {\n unwrappedPromise.value.resolve({\n confirmed: true,\n doNotAskAgain,\n });\n resetInternalState();\n};\n\n/**\n * Close or cancel the dialog\n */\nconst close = () => {\n const isConfirm = activeModalConfig.value?.type === \"confirm\";\n unwrappedPromise.value.resolve(isConfirm ? { confirmed: false } : undefined);\n resetInternalState();\n};\n\nconst isTemplateBasedConfirm = (\n config: KdsDynamicDialogConfirmConfig,\n): config is TemplateBasedConfirmModalConfig => {\n return \"component\" in config;\n};\n\nconst updateConfig = (config: UpdateConfigType) => {\n if (\n !isActive.value ||\n !activeModalConfig.value ||\n activeModalConfig.value.type === \"confirm\"\n ) {\n consola.warn(\"useKdsDynamicModal: invalid invocation of updateConfig\");\n return;\n }\n\n activeModalConfig.value.value = {\n ...activeModalConfig.value.value,\n ...config,\n };\n};\n\nexport const internal = {\n confirm,\n close,\n isTemplateBasedConfirm,\n onClosed,\n updateConfig,\n};\n\nexport const useKdsDynamicModal = () => {\n // function overload to support 2 distinct configurations\n function askConfirmation(\n config: PropertyBasedConfirmModalConfig,\n ): Promise<ConfirmResult>;\n\n // function overload to support 2 distinct configurations\n function askConfirmation(\n config: TemplateBasedConfirmModalConfig,\n ): Promise<ConfirmResult>;\n\n function askConfirmation(\n config: KdsDynamicDialogConfirmConfig,\n ): Promise<ConfirmResult> {\n activeModalConfig.value = {\n type: \"confirm\",\n value: {\n buttons: [defaultCancelButton, defaultConfirmButton],\n ...config,\n },\n };\n\n isActive.value = true;\n return unwrappedPromise.value.promise as Promise<ConfirmResult>;\n }\n\n const showByTemplate = <T>(\n config: KdsDynamicModalTemplateConfig<T>,\n ): Promise<void> => {\n activeModalConfig.value = {\n type: \"dynamic\",\n value: config,\n };\n\n isActive.value = true;\n return unwrappedPromise.value.promise as Promise<void>;\n };\n\n return {\n askConfirmation,\n showByTemplate,\n config: computed(() => activeModalConfig.value),\n isActive: computed(() => isActive.value),\n close: () => internal.close(),\n };\n};\n","<script setup lang=\"ts\">\nimport { computed, ref } from \"vue\";\n\nimport type { KdsButtonProps } from \"../../buttons\";\nimport KdsButton from \"../../buttons/KdsButton/KdsButton.vue\";\nimport KdsCheckbox from \"../../forms/Checkbox/KdsCheckbox.vue\";\n\nimport KdsModal from \"./KdsModal.vue\";\nimport {\n type ConfirmModalButton,\n internal,\n useKdsDynamicModal,\n} from \"./useKdsDynamicModal\";\n\nconst askAgain = ref(false);\nconst { config, isActive } = useKdsDynamicModal();\n\nconst reset = () => {\n askAgain.value = false;\n};\n\nconst onConfirm = () => {\n internal.confirm(askAgain.value);\n reset();\n};\n\nconst onClose = () => {\n internal.close();\n reset();\n};\n\nconst handleConfirmButton = (button: ConfirmModalButton) => {\n if (!button.customHandler) {\n const handler = button.type === \"cancel\" ? onClose : onConfirm;\n handler();\n return;\n }\n\n if (button.type === \"cancel\") {\n button.customHandler({ cancel: onClose });\n }\n\n if (button.type === \"confirm\") {\n button.customHandler({ confirm: onConfirm });\n }\n};\n\nconst defaultVariant = (\n type: ConfirmModalButton[\"type\"],\n): KdsButtonProps[\"variant\"] => (type === \"cancel\" ? \"transparent\" : \"filled\");\n\nconst kdsModalProps = computed(() => {\n if (!config.value) {\n return {};\n }\n\n const { leadingIcon, headline, height, width, variant, overflow, closedby } =\n config.value.value;\n\n return {\n leadingIcon,\n headline,\n height,\n width,\n variant,\n overflow,\n closedby,\n onClose,\n onClosed: internal.onClosed,\n active: isActive.value,\n };\n});\n</script>\n\n<template>\n <KdsModal class=\"confirm-modal\" v-bind=\"kdsModalProps\">\n <template v-if=\"config?.type === 'confirm'\" #body>\n <Component\n :is=\"config.value.component\"\n v-if=\"internal.isTemplateBasedConfirm(config.value)\"\n />\n\n <div v-else class=\"confirmation\">\n <div class=\"message\">{{ config.value.message }}</div>\n <div v-if=\"config.value.doNotAskAgain\" class=\"ask-again\">\n <KdsCheckbox\n v-model=\"askAgain\"\n :label=\"config.value.doNotAskAgain.label\"\n :sub-text=\"config.value.doNotAskAgain.subText\"\n />\n </div>\n </div>\n </template>\n\n <template v-if=\"config?.type === 'confirm'\" #footer>\n <KdsButton\n v-for=\"(button, index) in config.value.buttons\"\n :key=\"index\"\n :destructive=\"button.destructive\"\n :autofocus=\"button.autofocus\"\n :label=\"button.label\"\n :variant=\"button.variant ?? defaultVariant(button.type)\"\n :class=\"{ 'flush-left': button.flushLeft }\"\n :data-test-id=\"`${button.type}-button`\"\n @click=\"handleConfirmButton(button)\"\n />\n </template>\n\n <template v-if=\"config?.type === 'dynamic'\" #default=\"slotProps\">\n <Component\n :is=\"config.value.component\"\n v-bind=\"{\n ...slotProps,\n context: config.value.context,\n updateConfig: internal.updateConfig,\n }\"\n />\n </template>\n </KdsModal>\n</template>\n\n<style scoped>\n.ask-again {\n padding: var(--kds-spacing-container-0-5x) 0 0 0;\n}\n\n.flush-left {\n margin-right: auto;\n}\n</style>\n"],"names":["_createElementBlock","_normalizeClass","_openBlock","_hoisted_3","_createElementVNode","_unref","_createBlock","_resolveDynamicComponent","kdsIconNames","kdsTypeIconNames","_hoisted_1","_toDisplayString","_hoisted_2","_createVNode","_hoisted_4","_renderSlot","_mergeProps","_useModel","KdsLinkButton","KdsButton","ListItemAccessory","_hoisted_5","_hoisted_6","_Fragment","_renderList","KdsToggleButton","Icon","$slots","_withCtx","HUE_MAX_DEG","clamp","round","_withModifiers","KdsTextInput","_normalizeStyle","effect","min","max","mathMax","mathMin","hash","allPlacements","placements","popperOffsets","computeStyles","applyStyles","offset","flip","preventOverflow","arrow","hide","exports","Map","Set","_sfc_main$k","_hoisted_1$c","_sfc_main$j","_sfc_main$i","_hoisted_1$b","_sfc_main$h","_sfc_main$g","_hoisted_1$a","_sfc_main$f","_hoisted_1$9","_sfc_main$e","_hoisted_1$8","_sfc_main$d","_hoisted_1$7","_sfc_main$c","_hoisted_1$6","_hoisted_2$5","_sfc_main$b","_hoisted_1$5","_hoisted_2$4","_hoisted_3$3","_sfc_main$a","_sfc_main$9","_sfc_main$8","_sfc_main$7","_hoisted_1$4","_hoisted_2$3","_hoisted_3$2","_hoisted_4$1","_hoisted_1$3","_hoisted_2$2","_sfc_main$6","_sfc_main$5","_hoisted_1$2","_hoisted_1$1","_hoisted_2$1","_hoisted_3$1","_sfc_main$4","_sfc_main$3","_sfc_main$2","_sfc_main$1","_sfc_main","d","_createTextVNode","PromiseUtils.createUnwrappedPromise","_createSlots","KdsCheckbox","_normalizeProps","_guardReactiveProps"],"mappings":"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AE,EAAE,GAAG,EAAE,CAAC,EAAE,CAAC,EAAE,YAAY,EAAE;AACtC;AACA,EAAE,OAAO,EAAE,EAAE,GAAG,EAAE,CAAC,EAAE,CAAC,EAAE,YAAY,EAAE;AACtC;AACA,EAAE,EAAE,EAAE,EAAE,GAAG,EAAE,CAAC,EAAE,CAAC,EAAE,YAAY,EAAE;AACjC;AACA,EAAE,EAAE,EAAE,EAAE,GAAG,EAAE,CAAC,EAAE,CAAC,EAAE,YAAY,EAAE;AACjC;AACA,EAAE,EAAE,EAAE,EAAE,GAAG,EAAE,CAAC,EAAE,CAAC,EAAE,YAAY,EAAE;AACjC;AACA,EAAE,EAAE,EAAE,EAAE,GAAG,EAAE,CAAC,EAAE,CAAC,EAAE,YAAY,EAAE;AACjC;AACA,EAAE,OAAO,EAAE,EAAE,GAAG,EAAE,CAAC,EAAE,CAAC,EAAE,YAAY,EAAE;AACtC;AACA,EAAE,OAAO,EAAE,EAAE,GAAG,EAAE,CAAC,EAAE,CAAC,EAAE,YAAY,EAAE;AACtC;AACA,EAAE,OAAO,EAAE,EAAE,GAAG,EAAE,CAAC,EAAE,CAAC,EAAE,YAAY,EAAE;AACtC;AACA,EAAE,OAAO,EAAE,EAAE,GAAG,EAAE,CAAC,EAAE,CAAC,EAAE,YAAY,EAAE;AACtC;AACA,EAAE,OAAO,EAAE,EAAE,GAAG,EAAE,CAAC,EAAE,CAAC,EAAE,YAAY,EAAE;AACtC;AACA,EAAE,OAAO,EAAE,EAAE,GAAG,EAAE,CAAC,EAAE,CAAC,EAAE,YAAY,EAAE;AACtC;AACA,EAAE,OAAO,EAAE,EAAE,GAAG,EAAE,CAAC,EAAE,CAAC,EAAE,YAAY,EAAE;AACtC;AACA,EAAE,EAAE,EAAE,EAAE,GAAG,EAAE,CAAC,EAAE,CAAC,EAAE,YAAY,EAAE;AACjC;AACA,EAAE,EAAE,EAAE,EAAE,GAAG,EAAE,CAAC,EAAE,CAAC,EAAE,YAAY,EAAE;AACjC;AACA,EAAE,EAAE,EAAE,EAAE,GAAG,EAAE,CAAC,EAAE,CAAC,EAAE,YAAY,EAAE;AACjC;AACA,EAAE,EAAE,EAAE,EAAE,GAAG,EAAE,CAAC,EAAE,CAAC,EAAE,YAAY,EAAE;AACjC;AACA,EAAE,OAAO,EAAE,EAAE,GAAG,EAAE,CAAC,EAAE,CAAC,EAAE,YAAY,EAAE;AACtC;AACA,EAAE,OAAO,EAAE,EAAE,GAAG,EAAE,CAAC,EAAE,CAAC,EAAE,YAAY,EAAE;AACtC;AACA,EAAE,EAAE,EAAE,EAAE,GAAG,EAAE,CAAC,EAAE,CAAC,EAAE,YAAY,EAAE;AACjC;AACA,EAAE,EAAE,EAAE,EAAE,GAAG,EAAE,CAAC,EAAE,CAAC,EAAE,YAAY,EAAE;AACjC;AACA,EAAE,EAAE,EAAE,EAAE,GAAG,EAAE,CAAC,EAAE,CAAC,EAAE,YAAY,EAAE;AACjC;AACA,EAAE,EAAE,EAAE,EAAE,GAAG,EAAE,CAAC,EAAE,CAAC,EAAE,YAAY,EAAE;AACjC;AACA,EAAE,EAAE,EAAE,EAAE,GAAG,EAAE,CAAC,EAAE,CAAC,EAAE,WAAW,EAAE;AAChC;AACA,EAAE,EAAE,EAAE,EAAE,GAAG,EAAE,CAAC,EAAE,CAAC,EAAE,YAAY,EAAE;AACjC;AACA,EAAE,EAAE,EAAE,EAAE,GAAG,EAAE,CAAC,EAAE,CAAC,EAAE,YAAY,EAAE;AACjC;AACA,EAAE,EAAE,EAAE,EAAE,GAAG,EAAE,CAAC,EAAE,CAAC,EAAE,YAAY,EAAE;AACjC;AACA,EAAE,EAAE,EAAE,EAAE,GAAG,EAAE,CAAC,EAAE,CAAC,EAAE,WAAW,EAAE;AAChC;AACA,EAAE,EAAE,EAAE,EAAE,GAAG,EAAE,CAAC,EAAE,CAAC,EAAE,cAAc,EAAE;AACnC,EAAE,EAAE,EAAE,EAAE,GAAG,EAAE,CAAC,EAAE,CAAC,EAAE,cAAc,EAAE;AACnC;AACA,EAAE,EAAE,EAAE,EAAE,GAAG,EAAE,CAAC,EAAE,CAAC,EAAE,YAAY,EAAE;AACjC;AACA,EAAE,EAAE,EAAE,EAAE,GAAG,EAAE,CAAC,EAAE,CAAC,EAAE,YAAY,EAAE;AACjC;AACA,EAAE,EAAE,EAAE,EAAE,GAAG,EAAE,CAAC,EAAE,CAAC,EAAE,YAAY,EAAE;AACjC;AACA,EAAE,EAAE,EAAE,EAAE,GAAG,EAAE,CAAC,EAAE,CAAC,EAAE,YAAY,EAAE;AACjC;AACA,EAAE,EAAE,EAAE,EAAE,GAAG,EAAE,CAAC,EAAE,CAAC,EAAE,YAAY,EAAE;AACjC;AACA,EAAE,OAAO,EAAE,EAAE,GAAG,EAAE,CAAC,EAAE,CAAC,EAAE,YAAY,EAAE;AACtC;AACA,EAAE,OAAO,EAAE,EAAE,GAAG,EAAE,CAAC,EAAE,CAAC,EAAE,YAAY,EAAE;AACtC;AACA,EAAE,EAAE,EAAE,EAAE,GAAG,EAAE,CAAC,EAAE,CAAC,EAAE,YAAY,EAAE;AACjC;AACA,EAAE,EAAE,EAAE,EAAE,GAAG,EAAE,CAAC,EAAE,CAAC,EAAE,YAAY,EAAE;AACjC;AACA,EAAE,EAAE,EAAE,EAAE,GAAG,EAAE,CAAC,EAAE,CAAC,EAAE,YAAY,EAAE;AACjC;AACA,EAAE,EAAE,EAAE,EAAE,GAAG,EAAE,CAAC,EAAE,CAAC,EAAE,YAAY,EAAE;AACjC;AACA,EAAE,EAAE,EAAE,EAAE,GAAG,EAAE,CAAC,EAAE,CAAC,EAAE,YAAY;AAC/B,CAAC;AACD,OAAO,CAAC,EAAE,GAAG,OAAO,CAAC,OAAO,CAAC;AAC7B,OAAO,CAAC,EAAE,GAAG,OAAO,CAAC,OAAO,CAAC;AAC7B,OAAO,CAAC,EAAE,GAAG,OAAO,CAAC,EAAE;AACvB,OAAO,CAAC,EAAE,GAAG,OAAO,CAAC,OAAO,CAAC;AAC7B,MAAM,cAAc,GAAG,MAAM,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,MAAM;AACrD,EAAE,CAAC,GAAG,EAAE,CAAC,EAAE,EAAE,EAAE,GAAG,EAAE,CAAC,EAAE,CAAC,KAAK;AAC7B,IAAI,GAAG,CAAC,EAAE,CAAC,GAAG;AACd,MAAM,EAAE;AACR,MAAM,cAAc,EAAE,GAAG;AACzB,MAAM,KAAK,EAAE,EAAE,CAAC;AAChB,KAAK;AACL,IAAI,OAAO,GAAG;AACd,EAAE,CAAC;AACH,EAAE;AACF,CAAC;AACD,MAAM,KAAK,GAAG,WAAW;AACzB,MAAM,QAAQ,GAAG,GAAG;AACpB,MAAM,SAAS,GAAG,KAAK;AACvB,MAAM,KAAK,GAAG,KAAK;AACnB,MAAM,KAAK,GAAG;AACd,EAAE,GAAG;AACL,EAAE,YAAY;AACd,EAAE;AACF,CAAC;AACD,MAAM,aAAa,GAAG;AACtB,EAAE,UAAU;AACZ,EAAE,mBAAmB;AACrB,EAAE;AACF,CAAC;AACD,MAAM,iBAAiB,GAAG;AAC1B,EAAE,SAAS;AACX,EAAE,kBAAkB;AACpB,EAAE;AACF,CAAC;AACD,MAAM,SAAS,GAAG;AAClB,EAAE;AACF,CAAC;AACD,MAAM,aAAa,GAAG;AACtB,EAAE;AACF,CAAC;AACD,MAAM,UAAU,GAAG,kBAAkB;AACrC,MAAM,IAAI,GAAG;AACb,EAAE,GAAG;AACL,EAAE,YAAY;AACd,EAAE;AACF,CAAC;AACD,MAAM,KAAK,GAAG,KAAK;AACnB,MAAM,GAAG,GAAG,0BAA0B;AACtC,MAAM,KAAK,GAAG;AACd,EAAE,KAAK;AACP,EAAE,QAAQ;AACV,EAAE,SAAS;AACX,EAAE,KAAK;AACP,EAAE,KAAK;AACP,EAAE,aAAa;AACf,EAAE,iBAAiB;AACnB,EAAE,SAAS;AACX,EAAE,aAAa;AACf,EAAE,UAAU;AACZ,EAAE,IAAI;AACN,EAAE,KAAK;AACP,EAAE;AACF,CAAC;AACD,MAAM,YAAY,GAAG,GAAG;AACxB,MAAM,0BAA0B,GAAG,EAAE;AACrC,MAAM,wBAAwB,GAAG,EAAE;AACnC,MAAM,KAAK,GAAG;AACd,EAAE,YAAY;AACd,EAAE,0BAA0B;AAC5B,EAAE;AACF,CAAC;AACD,MAAM,aAAa,GAAG;AACtB,EAAE,eAAe,EAAE,GAAG;AACtB,EAAE,KAAK,EAAE,MAAM;AACf,EAAE,MAAM,EAAE,KAAK;AACf,EAAE,aAAa,EAAE,OAAO;AACxB,EAAE,aAAa,EAAE,QAAQ;AACzB,EAAE,UAAU,EAAE,SAAS;AACvB,EAAE,KAAK;AACP,EAAE,KAAK;AACP,EAAE,OAAO,EAAE,cAAc;AACzB,EAAE,UAAU,EAAE;AACd,IAAI,aAAa,EAAE,IAAI;AACvB,IAAI,aAAa,EAAE,GAAG;AACtB,IAAI,OAAO,EAAE;AACb,MAAM,UAAU,EAAE,aAAa;AAC/B,MAAM,SAAS,EAAE,cAAc;AAC/B,MAAM,aAAa,EAAE;AACrB;AACA;AACA,CAAC;AACD,MAAM,KAAK,GAAG,QAAQ,CAAC,aAAa,CAAC;AACrC,MAAM,cAAc,GAAG,QAAQ,CAAC,MAAM;AACtC,EAAE,OAAO,WAAW,CAAC,KAAK,CAAC,OAAO,EAAE,CAAC,CAAC,KAAK;AAC3C,IAAI,CAAC,CAAC,KAAK,GAAG,cAAc,CAAC,CAAC,CAAC,KAAK,EAAE,KAAK,CAAC,KAAK,CAAC;AAClD,IAAI,OAAO,CAAC;AACZ,EAAE,CAAC,CAAC;AACJ,CAAC,CAAC;AACF,MAAM,UAAU,GAAG,CAAC,IAAI,KAAK;AAC7B,EAAE,IAAI,OAAO,MAAM,KAAK,WAAW,IAAI,GAAG,CAAC,MAAM,CAAC,aAAa,EAAE,IAAI,CAAC,EAAE;AACxE,IAAI,OAAO,KAAK,CAAC,MAAM,CAAC,aAAa,EAAE,IAAI,CAAC;AAC5C,EAAE;AACF,EAAE,OAAO,KAAK,CAAC,KAAK,EAAE,IAAI,CAAC;AAC3B,CAAC;AAKD,MAAM,wBAAwB,GAAG,EAAE;AACnC,MAAM,uBAAuB,GAAG,CAAC;AACjC,SAAS,aAAa,CAAC,MAAM,EAAE,QAAQ,EAAE;AACzC,EAAE,MAAM,SAAS,GAAG,IAAI,IAAI,CAAC,cAAc,EAAE,CAAC,eAAe,EAAE,CAAC,MAAM;AACtE,EAAE,IAAI,EAAE;AACR,EAAE,IAAI,UAAU,CAAC,MAAM,CAAC,EAAE;AAC1B,IAAI,EAAE,GAAG,MAAM;AACf,EAAE,CAAC,MAAM,IAAI,GAAG,CAAC,MAAM,EAAE,IAAI,CAAC,EAAE;AAChC,IAAI,EAAE,GAAG,MAAM,CAAC,EAAE;AAClB,EAAE;AACF,EAAE,EAAE,GAAG,CAAC,EAAE,IAAI,SAAS,EAAE,WAAW,EAAE;AACtC,EAAE,MAAM,UAAU,GAAG,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC;AAC1C,EAAE,MAAM,QAAQ,GAAG,CAAC,CAAC,KAAK,UAAU,CAAC,IAAI,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC,WAAW,EAAE,KAAK,CAAC,CAAC;AACzE,EAAE,EAAE,GAAG,QAAQ,CAAC,EAAE,CAAC,IAAI,QAAQ,CAAC,EAAE,CAAC,SAAS,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,SAAS;AAChE,EAAE,MAAM,SAAS,GAAG;AACpB,IAAI,GAAG,QAAQ,CAAC,OAAO,CAAC;AACxB,IAAI,GAAG,QAAQ,CAAC,EAAE,CAAC;AACnB,IAAI,EAAE;AACN,IAAI,cAAc,EAAE,wBAAwB;AAC5C,IAAI,aAAa,EAAE;AACnB,GAAG;AACH,EAAE,MAAM,MAAM,GAAG,QAAQ,CAAC,MAAM,CAAC,GAAG,cAAc,CAAC,MAAM,EAAE,SAAS,CAAC,GAAG,SAAS;AACjF,EAAE,OAAO,MAAM;AACf;AACA,MAAM,MAAM,CAAC;AACb,EAAE,WAAW,CAAC,MAAM,GAAG,MAAM,EAAE,QAAQ,EAAE;AACzC,IAAI,aAAa,CAAC,IAAI,EAAE,IAAI,CAAC;AAC7B,IAAI,aAAa,CAAC,IAAI,EAAE,YAAY,CAAC;AACrC,IAAI,aAAa,CAAC,IAAI,EAAE,gBAAgB,CAAC;AACzC,IAAI,aAAa,CAAC,IAAI,EAAE,OAAO,CAAC;AAChC,IAAI,aAAa,CAAC,IAAI,EAAE,UAAU,CAAC;AACnC,IAAI,aAAa,CAAC,IAAI,EAAE,YAAY,CAAC;AACrC,IAAI,aAAa,CAAC,IAAI,EAAE,UAAU,CAAC;AACnC,IAAI,aAAa,CAAC,IAAI,EAAE,eAAe,CAAC;AACxC,IAAI,aAAa,CAAC,IAAI,EAAE,iBAAiB,CAAC;AAC1C,IAAI,aAAa,CAAC,IAAI,EAAE,gBAAgB,CAAC;AACzC,IAAI,aAAa,CAAC,IAAI,EAAE,YAAY,CAAC;AACrC,IAAI,aAAa,CAAC,IAAI,EAAE,iBAAiB,CAAC;AAC1C,IAAI,aAAa,CAAC,IAAI,EAAE,mBAAmB,CAAC;AAC5C,IAAI,aAAa,CAAC,IAAI,EAAE,MAAM,EAAE,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;AAC7C,IAAI,aAAa,CAAC,IAAI,EAAE,YAAY,CAAC;AACrC,IAAI,aAAa,CAAC,IAAI,EAAE,WAAW,CAAC;AACpC,IAAI,MAAM,EAAE,EAAE,EAAE,cAAc,EAAE,KAAK,EAAE,MAAM,EAAE,cAAc,EAAE,aAAa,EAAE,GAAG,aAAa,CAAC,MAAM,EAAE,cAAc,CAAC,KAAK,CAAC;AAC5H,IAAI,IAAI,CAAC,UAAU,GAAG,IAAI,KAAK;AAC/B,MAAM,cAAc;AACpB,MAAM,gBAAgB;AACtB,MAAM;AACN,KAAK;AACL,IAAI,IAAI,CAAC,SAAS,GAAG,IAAI,KAAK,CAAC,aAAa,EAAE,UAAU,EAAE,aAAa,CAAC;AACxE,IAAI,IAAI,CAAC,EAAE,GAAG,EAAE;AAChB,IAAI,IAAI,CAAC,UAAU,GAAG,UAAU;AAChC,IAAI,IAAI,CAAC,cAAc,GAAG,KAAK,CAAC,cAAc,EAAE,CAAC,EAAE,UAAU,CAAC;AAC9D,IAAI,IAAI,CAAC,KAAK,GAAG,MAAM;AACvB,IAAI,IAAI,CAAC,QAAQ,GAAG,QAAQ,IAAI,MAAM;AACtC,IAAI,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,aAAa,EAAE;AAC1C,IAAI,IAAI,CAAC,QAAQ,GAAG,WAAW,CAAC,MAAM,EAAE,IAAI,CAAC,EAAE,CAAC;AAChD,IAAI,IAAI,CAAC,aAAa,GAAG,WAAW,CAAC,OAAO,EAAE,IAAI,CAAC,EAAE,CAAC;AACtD,IAAI,IAAI,CAAC,eAAe,GAAG,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,SAAS,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;AAC3E,IAAI,IAAI,CAAC,cAAc,GAAG,WAAW,CAAC,QAAQ,EAAE,IAAI,CAAC,EAAE,CAAC;AACxD,IAAI,IAAI,CAAC,UAAU,GAAG,aAAa,CAAC,MAAM,EAAE,IAAI,CAAC,EAAE,CAAC;AACpD,IAAI,IAAI,CAAC,eAAe,GAAG,aAAa,CAAC,OAAO,EAAE,IAAI,CAAC,EAAE,CAAC;AAC1D,IAAI,IAAI,CAAC,iBAAiB,GAAG,oBAAoB,CAAC,IAAI,CAAC,EAAE,CAAC;AAC1D,EAAE;AACF,EAAE,UAAU,CAAC,IAAI,EAAE,MAAM,EAAE;AAC3B,IAAI,OAAO,UAAU,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,CAAC;AACzC,EAAE;AACF,EAAE,SAAS,CAAC,UAAU,EAAE,IAAI,EAAE;AAC9B,IAAI,OAAO,SAAS,CAAC,UAAU,EAAE,IAAI,EAAE,IAAI,CAAC;AAC5C,EAAE;AACF,EAAE,MAAM,CAAC,CAAC,EAAE,IAAI,GAAG,EAAE,EAAE;AACvB,IAAI,MAAM,QAAQ,mBAAmB,IAAI,IAAI,CAAC,GAAG,CAAC;AAClD,IAAI,IAAI,MAAM,GAAG,QAAQ;AACzB,IAAI,MAAM,EAAE,QAAQ,EAAE,IAAI,EAAE,KAAK,EAAE,KAAK,EAAE,GAAG,IAAI;AACjD,IAAI,IAAI,UAAU,CAAC,CAAC,CAAC,EAAE;AACvB,MAAM,IAAI,CAAC,IAAI,GAAG,QAAQ;AAC1B,MAAM,MAAM,mBAAmB,IAAI,IAAI,CAAC,CAAC,CAAC,CAAC;AAC3C,IAAI,CAAC,MAAM,IAAI,UAAU,CAAC,CAAC,CAAC,EAAE;AAC9B,MAAM,IAAI,CAAC,IAAI,GAAG,QAAQ;AAC1B,MAAM,MAAM,GAAG,CAAC,GAAG,SAAS,CAAC,CAAC,EAAE,IAAI,IAAI,KAAK,EAAE,IAAI,CAAC,GAAG,QAAQ;AAC/D,IAAI,CAAC,MAAM,IAAI,MAAM,CAAC,CAAC,CAAC,EAAE;AAC1B,MAAM,IAAI,CAAC,IAAI,GAAG,MAAM;AACxB,MAAM,MAAM,GAAG,IAAI,IAAI,CAAC,CAAC,CAAC,OAAO,EAAE,CAAC;AACpC,IAAI,CAAC,MAAM,IAAI,WAAW,CAAC,CAAC,CAAC,EAAE;AAC/B,MAAM,IAAI,CAAC,IAAI,GAAG,QAAQ;AAC1B,MAAM,MAAM,GAAG,IAAI,CAAC,gBAAgB,CAAC,CAAC,CAAC;AACvC,IAAI;AACJ,IAAI,IAAI,MAAM,KAAK,KAAK,IAAI,KAAK,CAAC,EAAE;AACpC,MAAM,IAAI,KAAK,GAAG,IAAI,CAAC,YAAY,CAAC,MAAM,CAAC;AAC3C,MAAM,IAAI,KAAK,IAAI,QAAQ,IAAI,IAAI,EAAE;AACrC,QAAQ,MAAM,SAAS,GAAG,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;AAClE,QAAQ,KAAK,GAAG,IAAI,CAAC,YAAY;AACjC,UAAU,IAAI,CAAC,MAAM,CAAC,EAAE,GAAG,SAAS,EAAE,GAAG,IAAI,CAAC,KAAK,EAAE,aAAa,CAAC,KAAK,CAAC,CAAC,EAAE;AAC5E,SAAS;AACT,MAAM;AACN,MAAM,IAAI,KAAK,EAAE;AACjB,QAAQ,KAAK,GAAG,sBAAsB,CAAC,KAAK,EAAE,KAAK,CAAC;AACpD,MAAM;AACN,MAAM,MAAM,GAAG,IAAI,CAAC,gBAAgB,CAAC,KAAK,CAAC;AAC3C,IAAI;AACJ,IAAI,OAAO,MAAM,IAAI,QAAQ;AAC7B,EAAE;AACF,EAAE,YAAY,CAAC,CAAC,EAAE,IAAI,GAAG,EAAE,EAAE;AAC7B,IAAI,MAAM,GAAG,GAAG,IAAI,CAAC,MAAM,CAAC,CAAC,EAAE,IAAI,CAAC;AACpC,IAAI,OAAO,KAAK,CAAC,GAAG,CAAC,OAAO,EAAE,CAAC,GAAG,IAAI,GAAG,GAAG;AAC5C,EAAE;AACF,EAAE,QAAQ,CAAC,IAAI,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,GAAG,EAAE,EAAE;AACtC,IAAI,QAAQ,IAAI;AAChB,MAAM,KAAK,QAAQ;AACnB,QAAQ,OAAO,IAAI,GAAG,IAAI,CAAC,OAAO,EAAE,GAAG,GAAG;AAC1C,MAAM,KAAK,QAAQ;AACnB,QAAQ,OAAO,IAAI,GAAG,IAAI,CAAC,UAAU,CAAC,IAAI,EAAE,IAAI,IAAI,KAAK,CAAC,GAAG,EAAE;AAC/D,MAAM,KAAK,QAAQ;AACnB,QAAQ,OAAO,IAAI,GAAG,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,GAAG,IAAI;AACpD,MAAM;AACN,QAAQ,OAAO,IAAI,GAAG,IAAI,IAAI,CAAC,IAAI,CAAC,GAAG,IAAI;AAC3C;AACA,EAAE;AACF,EAAE,KAAK,CAAC,MAAM,EAAE;AAChB,IAAI,OAAO,SAAS,CAAC,IAAI,CAAC,MAAM,EAAE,IAAI,CAAC;AACvC,EAAE;AACF,EAAE,MAAM,CAAC,MAAM,EAAE;AACjB,IAAI,OAAO,SAAS,CAAC,QAAQ,CAAC,MAAM,EAAE,IAAI,CAAC;AAC3C,EAAE;AACF,EAAE,YAAY,CAAC,IAAI,EAAE;AACrB,IAAI,OAAO,YAAY,CAAC,IAAI,EAAE,IAAI,CAAC;AACnC,EAAE;AACF,EAAE,gBAAgB,CAAC,KAAK,EAAE;AAC1B,IAAI,OAAO,gBAAgB,CAAC,KAAK,EAAE,IAAI,CAAC,QAAQ,CAAC;AACjD,EAAE;AACF,EAAE,iBAAiB,CAAC,IAAI,EAAE,KAAK,EAAE,GAAG,EAAE,MAAM,EAAE,OAAO,EAAE,OAAO,EAAE,YAAY,EAAE;AAC9E,IAAI,OAAO,IAAI,CAAC,gBAAgB,CAAC;AACjC,MAAM,IAAI;AACV,MAAM,KAAK;AACX,MAAM,GAAG;AACT,MAAM,KAAK,EAAE,MAAM;AACnB,MAAM,OAAO;AACb,MAAM,OAAO;AACb,MAAM;AACN,KAAK,CAAC;AACN,EAAE;AACF,EAAE,OAAO,CAAC,MAAM,EAAE;AAClB,IAAI,MAAM,UAAU,GAAG,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,MAAM,EAAE,IAAI,CAAC;AAC5D,IAAI,OAAO,OAAO,CAAC,MAAM,EAAE,UAAU,CAAC;AACtC,EAAE;AACF,EAAE,aAAa,CAAC,KAAK,EAAE,IAAI,EAAE;AAC7B,IAAI,MAAM,EAAE,cAAc,EAAE,GAAG,IAAI;AACnC,IAAI,OAAO,IAAI,CAAC,UAAU,CAAC,QAAQ,CAAC,KAAK,EAAE,IAAI,EAAE,cAAc,CAAC;AAChE,EAAE;AACF,EAAE,iBAAiB,GAAG;AACtB,IAAI,MAAM,IAAI,mBAAmB,IAAI,IAAI,EAAE;AAC3C,IAAI,OAAO,IAAI,CAAC,aAAa;AAC7B,MAAM,IAAI,CAAC,QAAQ,EAAE,GAAG,CAAC;AACzB,MAAM,IAAI,CAAC,WAAW;AACtB,KAAK;AACL,EAAE;AACF,EAAE,iBAAiB,CAAC,KAAK,EAAE,IAAI,EAAE;AACjC,IAAI,IAAI,KAAK,KAAK,CAAC;AACnB,MAAM,OAAO,IAAI,CAAC,aAAa,CAAC,EAAE,EAAE,IAAI,GAAG,CAAC,CAAC;AAC7C,IAAI,OAAO,IAAI,CAAC,aAAa,CAAC,KAAK,GAAG,CAAC,EAAE,IAAI,CAAC;AAC9C,EAAE;AACF,EAAE,iBAAiB,CAAC,KAAK,EAAE,IAAI,EAAE;AACjC,IAAI,IAAI,KAAK,KAAK,EAAE;AACpB,MAAM,OAAO,IAAI,CAAC,aAAa,CAAC,CAAC,EAAE,IAAI,GAAG,CAAC,CAAC;AAC5C,IAAI,OAAO,IAAI,CAAC,aAAa,CAAC,KAAK,GAAG,CAAC,EAAE,IAAI,CAAC;AAC9C,EAAE;AACF,EAAE,aAAa,GAAG;AAClB,IAAI,OAAO,YAAY,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,KAAK;AACrC,MAAM,OAAO,IAAI,CAAC,UAAU,CAAC,CAAC,EAAE,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC;AACjD,IAAI,CAAC,CAAC;AACN,EAAE;AACF,EAAE,QAAQ,CAAC,IAAI,EAAE;AACjB,IAAI,OAAO,IAAI,CAAC,UAAU,CAAC,IAAI,EAAE,YAAY,CAAC;AAC9C,EAAE;AACF;AACA,IAAI,aAAa,mBAAmB,CAAC,CAAC,cAAc,KAAK;AACzD,EAAE,cAAc,CAAC,KAAK,CAAC,GAAG,KAAK;AAC/B,EAAE,cAAc,CAAC,KAAK,CAAC,GAAG,KAAK;AAC/B,EAAE,OAAO,cAAc;AACvB,CAAC,EAAE,aAAa,IAAI,EAAE,CAAC;AACvB,IAAI,gBAAgB,mBAAmB,CAAC,CAAC,iBAAiB,KAAK;AAC/D,EAAE,iBAAiB,CAAC,MAAM,CAAC,GAAG,MAAM;AACpC,EAAE,iBAAiB,CAAC,OAAO,CAAC,GAAG,OAAO;AACtC,EAAE,iBAAiB,CAAC,QAAQ,CAAC,GAAG,QAAQ;AACxC,EAAE,iBAAiB,CAAC,OAAO,CAAC,GAAG,OAAO;AACtC,EAAE,OAAO,iBAAiB;AAC1B,CAAC,EAAE,gBAAgB,IAAI,EAAE,CAAC;AAC1B,IAAI,iBAAiB,mBAAmB,CAAC,CAAC,kBAAkB,KAAK;AACjE,EAAE,kBAAkB,CAAC,MAAM,CAAC,GAAG,MAAM;AACrC,EAAE,kBAAkB,CAAC,UAAU,CAAC,GAAG,UAAU;AAC7C,EAAE,kBAAkB,CAAC,OAAO,CAAC,GAAG,OAAO;AACvC,EAAE,kBAAkB,CAAC,QAAQ,CAAC,GAAG,QAAQ;AACzC,EAAE,kBAAkB,CAAC,OAAO,CAAC,GAAG,OAAO;AACvC,EAAE,OAAO,kBAAkB;AAC3B,CAAC,EAAE,iBAAiB,IAAI,EAAE,CAAC;AAC3B,IAAI,wBAAwB,mBAAmB,CAAC,CAAC,yBAAyB,KAAK;AAC/E,EAAE,yBAAyB,CAAC,iBAAiB,CAAC,GAAG,iBAAiB;AAClE,EAAE,OAAO,yBAAyB;AAClC,CAAC,EAAE,wBAAwB,IAAI,EAAE,CAAC;AAClC,MAAM,YAAY,CAAC;AACnB,EAAE,WAAW,CAAC,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE;AACpC,IAAI,aAAa,CAAC,IAAI,EAAE,WAAW,EAAE,IAAI,CAAC;AAC1C,IAAI,IAAI,CAAC,IAAI,GAAG,IAAI;AACpB,IAAI,IAAI,CAAC,QAAQ,GAAG,QAAQ;AAC5B,IAAI,IAAI,CAAC,IAAI,GAAG,IAAI;AACpB,IAAI,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE;AACpB,MAAM,OAAO,CAAC,KAAK;AACnB,QAAQ,CAAC,kFAAkF;AAC3F,OAAO;AACP,MAAM,IAAI,CAAC,SAAS,GAAG,KAAK;AAC5B,IAAI;AACJ,EAAE;AACF,EAAE,MAAM,CAAC,SAAS,EAAE;AACpB,IAAI,IAAI,CAAC,IAAI,CAAC,SAAS;AACvB,MAAM,OAAO,IAAI;AACjB,IAAI,MAAM,EAAE,IAAI,EAAE,GAAG,SAAS;AAC9B,IAAI,QAAQ,IAAI,CAAC,IAAI;AACrB,MAAM,KAAK,MAAM,EAAE;AACnB,QAAQ,OAAO,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,GAAG,IAAI,CAAC,QAAQ,KAAK,CAAC;AACrE,MAAM;AACN,MAAM,KAAK,OAAO,EAAE;AACpB,QAAQ,OAAO,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,GAAG,IAAI,CAAC,QAAQ,KAAK,CAAC;AACtE,MAAM;AACN,MAAM,KAAK,QAAQ,EAAE;AACrB,QAAQ,OAAO,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,GAAG,IAAI,CAAC,QAAQ,KAAK,CAAC;AACvE,MAAM;AACN,MAAM,KAAK,OAAO,EAAE;AACpB,QAAQ,OAAO,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,GAAG,IAAI,CAAC,QAAQ,KAAK,CAAC;AACtE,MAAM;AACN,MAAM,SAAS;AACf,QAAQ,OAAO,KAAK;AACpB,MAAM;AACN;AACA,EAAE;AACF;AACA,MAAM,aAAa,CAAC;AACpB,EAAE,WAAW,CAAC,IAAI,EAAE,WAAW,EAAE,SAAS,EAAE,MAAM,EAAE;AACpD,IAAI,aAAa,CAAC,IAAI,EAAE,YAAY,EAAE,EAAE,CAAC;AACzC,IAAI,IAAI,CAAC,IAAI,GAAG,IAAI;AACpB,IAAI,IAAI,CAAC,SAAS,GAAG,SAAS;AAC9B,IAAI,IAAI,CAAC,MAAM,GAAG,MAAM;AACxB,IAAI,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,mBAAmB,CAAC,WAAW,CAAC;AAC3D,EAAE;AACF,EAAE,OAAO,MAAM,CAAC,IAAI,EAAE,MAAM,EAAE;AAC9B,IAAI,QAAQ,IAAI;AAChB,MAAM,KAAK,MAAM;AACjB,QAAQ,OAAO,IAAI,QAAQ,CAAC,MAAM,CAAC;AACnC,MAAM,KAAK,UAAU;AACrB,QAAQ,OAAO,IAAI,YAAY,CAAC,MAAM,CAAC;AACvC,MAAM,KAAK,OAAO;AAClB,QAAQ,OAAO,IAAI,SAAS,CAAC,MAAM,CAAC;AACpC,MAAM,KAAK,QAAQ;AACnB,QAAQ,OAAO,IAAI,UAAU,CAAC,MAAM,CAAC;AACrC,MAAM,KAAK,OAAO;AAClB,QAAQ,OAAO,IAAI,SAAS,CAAC,MAAM,CAAC;AACpC;AACA,EAAE;AACF,EAAE,mBAAmB,CAAC,WAAW,EAAE;AACnC,IAAI,IAAI,IAAI,CAAC,SAAS,CAAC,WAAW,CAAC;AACnC,MAAM,OAAO,CAAC,WAAW,CAAC;AAC1B,IAAI,IAAI,CAAC,OAAO,CAAC,WAAW,CAAC;AAC7B,MAAM,OAAO,EAAE;AACf,IAAI,MAAM,MAAM,GAAG,EAAE;AACrB,IAAI,WAAW,CAAC,OAAO,CAAC,CAAC,SAAS,KAAK;AACvC,MAAM,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,SAAS,CAAC,EAAE;AACtC,QAAQ,OAAO,CAAC,KAAK;AACrB,UAAU,CAAC,gBAAgB,EAAE,SAAS,CAAC,iBAAiB,EAAE,IAAI,CAAC,IAAI,CAAC,kCAAkC;AACtG,SAAS;AACT,QAAQ;AACR,MAAM;AACN,MAAM,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC;AAC5B,IAAI,CAAC,CAAC;AACN,IAAI,OAAO,MAAM;AACjB,EAAE;AACF,EAAE,MAAM,CAAC,QAAQ,EAAE;AACnB,IAAI,MAAM,KAAK,GAAG,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC;AACvC,IAAI,MAAM,MAAM,GAAG,KAAK,CAAC,IAAI,CAAC,CAAC,IAAI,KAAK,IAAI,CAAC,UAAU,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;AACvE,IAAI,OAAO,MAAM;AACjB,EAAE;AACF;AACA,MAAM,QAAQ,SAAS,aAAa,CAAC;AACrC,EAAE,WAAW,CAAC,WAAW,EAAE;AAC3B,IAAI,KAAK;AACT,MAAM,MAAM;AACZ,MAAM,WAAW;AACjB,MAAM,YAAY;AAClB,MAAM,CAAC,EAAE,GAAG,EAAE,UAAU,EAAE,KAAK,CAAC,GAAG,EAAE,CAAC,UAAU;AAChD,KAAK;AACL,EAAE;AACF;AACA,MAAM,YAAY,SAAS,aAAa,CAAC;AACzC,EAAE,WAAW,CAAC,WAAW,EAAE;AAC3B,IAAI,KAAK;AACT,MAAM,UAAU;AAChB,MAAM,WAAW;AACjB,MAAM,WAAW;AACjB,MAAM,CAAC,EAAE,OAAO,EAAE,KAAK,CAAC,OAAO;AAC/B,KAAK;AACL,EAAE;AACF;AACA,MAAM,SAAS,SAAS,aAAa,CAAC;AACtC,EAAE,WAAW,CAAC,WAAW,EAAE;AAC3B,IAAI,KAAK;AACT,MAAM,OAAO;AACb,MAAM,WAAW;AACjB,MAAM,aAAa;AACnB,MAAM,CAAC,EAAE,IAAI,EAAE,WAAW,EAAE,KAAK,CAAC,IAAI,EAAE,CAAC,WAAW;AACpD,KAAK;AACL,EAAE;AACF;AACA,MAAM,UAAU,SAAS,aAAa,CAAC;AACvC,EAAE,WAAW,CAAC,WAAW,EAAE;AAC3B,IAAI,KAAK,CAAC,QAAQ,EAAE,WAAW,EAAE,aAAa,EAAE,CAAC,EAAE,KAAK,EAAE,KAAK;AAC/D,MAAM;AACN,KAAK,CAAC;AACN,EAAE;AACF;AACA,MAAM,SAAS,SAAS,aAAa,CAAC;AACtC,EAAE,WAAW,CAAC,WAAW,EAAE;AAC3B,IAAI,KAAK,CAAC,OAAO,EAAE,WAAW,EAAE,UAAU,EAAE,CAAC,EAAE,IAAI,EAAE,KAAK,CAAC,IAAI,CAAC,CAAC;AACjE,EAAE;AACF;AACA,MAAM,oBAAoB,CAAC;AAC3B,EAAE,WAAW,CAAC,IAAI,EAAE,WAAW,EAAE;AACjC,IAAI,aAAa,CAAC,IAAI,EAAE,YAAY,CAAC;AACrC,IAAI,IAAI,CAAC,IAAI,GAAG,IAAI;AACpB,IAAI,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,mBAAmB,CAAC,WAAW,CAAC;AAC3D,EAAE;AACF,EAAE,oBAAoB,CAAC,MAAM,EAAE;AAC/B,IAAI,MAAM,MAAM,GAAG,EAAE;AACrB,IAAI,MAAM,CAAC,OAAO,CAAC,CAAC,UAAU,EAAE,CAAC,KAAK;AACtC,MAAM,IAAI,UAAU,CAAC,UAAU,CAAC,EAAE;AAClC,QAAQ,IAAI,CAAC,KAAK,CAAC;AACnB,UAAU;AACV,QAAQ,IAAI,CAAC,oBAAoB,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,EAAE;AAC9C,UAAU,OAAO,CAAC,KAAK;AACvB,YAAY,CAAC,mBAAmB,EAAE,IAAI,CAAC,IAAI,CAAC,6DAA6D;AACzG,WAAW;AACX,UAAU;AACV,QAAQ;AACR,QAAQ,IAAI,CAAC,WAAW,CAAC,UAAU,CAAC,EAAE;AACtC,UAAU,OAAO,CAAC,KAAK;AACvB,YAAY,CAAC,sBAAsB,EAAE,IAAI,CAAC,IAAI,CAAC,gDAAgD;AAC/F,WAAW;AACX,UAAU;AACV,QAAQ;AACR,QAAQ,MAAM,CAAC,IAAI,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,UAAU,CAAC,CAAC;AAC5C,MAAM,CAAC,MAAM,IAAI,OAAO,CAAC,UAAU,CAAC,EAAE;AACtC,QAAQ,MAAM,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC,oBAAoB,CAAC,UAAU,CAAC,CAAC;AAC7D,MAAM;AACN,IAAI,CAAC,CAAC;AACN,IAAI,OAAO,MAAM;AACjB,EAAE;AACF,EAAE,mBAAmB,CAAC,MAAM,EAAE;AAC9B,IAAI,MAAM,MAAM,GAAG,EAAE;AACrB,IAAI,MAAM,CAAC,OAAO,CAAC,CAAC,UAAU,EAAE,CAAC,KAAK;AACtC,MAAM,IAAI,UAAU,CAAC,UAAU,CAAC,EAAE;AAClC,QAAQ,IAAI,CAAC,KAAK,CAAC;AACnB,UAAU;AACV,QAAQ,IAAI,CAAC,oBAAoB,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,EAAE;AAC9C,UAAU,OAAO,CAAC,KAAK;AACvB,YAAY,CAAC,mBAAmB,EAAE,IAAI,CAAC,IAAI,CAAC,6DAA6D;AACzG,WAAW;AACX,UAAU;AACV,QAAQ;AACR,QAAQ,IAAI,CAAC,WAAW,CAAC,UAAU,CAAC,EAAE;AACtC,UAAU,OAAO,CAAC,KAAK;AACvB,YAAY,CAAC,sBAAsB,EAAE,IAAI,CAAC,IAAI,CAAC,gDAAgD;AAC/F,WAAW;AACX,UAAU;AACV,QAAQ;AACR,QAAQ,MAAM,CAAC,IAAI,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,UAAU,CAAC,CAAC;AAC5C,MAAM,CAAC,MAAM,IAAI,OAAO,CAAC,UAAU,CAAC,EAAE;AACtC,QAAQ,MAAM,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC,oBAAoB,CAAC,UAAU,CAAC,CAAC;AAC7D,MAAM;AACN,IAAI,CAAC,CAAC;AACN,IAAI,OAAO,MAAM;AACjB,EAAE;AACF,EAAE,MAAM,CAAC,QAAQ,EAAE;AACnB,IAAI,MAAM,EAAE,OAAO,EAAE,cAAc,EAAE,qBAAqB,EAAE,GAAG,QAAQ;AACvE,IAAI,OAAO,IAAI,CAAC,UAAU,CAAC,IAAI;AAC/B,MAAM,CAAC,CAAC,WAAW,EAAE,cAAc,CAAC,KAAK,CAAC,WAAW,KAAK,cAAc,IAAI,WAAW,KAAK,CAAC,qBAAqB,KAAK,OAAO,KAAK;AACnI,KAAK;AACL,EAAE;AACF;AACA,MAAM,YAAY,CAAC;AACnB,EAAE,WAAW,CAAC,EAAE,EAAE;AAClB,IAAI,aAAa,CAAC,IAAI,EAAE,MAAM,EAAE,UAAU,CAAC;AAC3C,IAAI,aAAa,CAAC,IAAI,EAAE,WAAW,EAAE,IAAI,CAAC;AAC1C,IAAI,IAAI,CAAC,EAAE,GAAG,EAAE;AAChB,IAAI,IAAI,CAAC,YAAY,CAAC,EAAE,CAAC,EAAE;AAC3B,MAAM,OAAO,CAAC,KAAK;AACnB,QAAQ,CAAC,uEAAuE;AAChF,OAAO;AACP,MAAM,IAAI,CAAC,SAAS,GAAG,KAAK;AAC5B,IAAI;AACJ,EAAE;AACF,EAAE,MAAM,CAAC,QAAQ,EAAE;AACnB,IAAI,IAAI,CAAC,IAAI,CAAC,SAAS;AACvB,MAAM,OAAO,IAAI;AACjB,IAAI,OAAO,IAAI,CAAC,EAAE,CAAC,QAAQ,CAAC;AAC5B,EAAE;AACF;AACA,MAAM,UAAU,CAAC;AACjB,EAAE,WAAW,CAAC,MAAM,EAAE,OAAO,GAAG,EAAE,EAAE,MAAM,EAAE;AAC5C,IAAI,aAAa,CAAC,IAAI,EAAE,WAAW,EAAE,IAAI,CAAC;AAC1C,IAAI,aAAa,CAAC,IAAI,EAAE,QAAQ,CAAC;AACjC,IAAI,aAAa,CAAC,IAAI,EAAE,MAAM,EAAE,aAAa,CAAC,GAAG,CAAC;AAClD,IAAI,aAAa,CAAC,IAAI,EAAE,MAAM,CAAC;AAC/B,IAAI,aAAa,CAAC,IAAI,EAAE,OAAO,CAAC;AAChC,IAAI,aAAa,CAAC,IAAI,EAAE,OAAO,EAAE,EAAE,CAAC;AACpC,IAAI,aAAa,CAAC,IAAI,EAAE,QAAQ,EAAE,IAAI,MAAM,EAAE,CAAC;AAC/C,IAAI,IAAI,CAAC,MAAM,GAAG,MAAM;AACxB,IAAI,IAAI,OAAO,CAAC,MAAM;AACtB,MAAM,IAAI,CAAC,MAAM,GAAG,OAAO,CAAC,MAAM;AAClC,IAAI,IAAI,CAAC,MAAM,GAAG,MAAM;AACxB,IAAI,IAAI,YAAY,CAAC,MAAM,CAAC,EAAE;AAC9B,MAAM,IAAI,CAAC,IAAI,GAAG,aAAa,CAAC,GAAG;AACnC,MAAM,IAAI,CAAC,KAAK,GAAG,CAAC,IAAI,YAAY,CAAC,MAAM,CAAC,CAAC;AAC7C,IAAI,CAAC,MAAM,IAAI,OAAO,CAAC,MAAM,CAAC,EAAE;AAChC,MAAM,IAAI,CAAC,IAAI,GAAG,aAAa,CAAC,GAAG;AACnC,MAAM,IAAI,CAAC,KAAK,GAAG,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,KAAK,IAAI,UAAU,CAAC,CAAC,EAAE,OAAO,EAAE,IAAI,CAAC,CAAC;AACtE,IAAI,CAAC,MAAM,IAAI,QAAQ,CAAC,MAAM,CAAC,EAAE;AACjC,MAAM,IAAI,CAAC,IAAI,GAAG,aAAa,CAAC,GAAG;AACnC,MAAM,IAAI,CAAC,IAAI,GAAG,MAAM,CAAC,IAAI,GAAG,IAAI,CAAC,MAAM,CAAC,YAAY,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,MAAM,IAAI,IAAI,GAAG,MAAM,GAAG,MAAM,CAAC,IAAI;AAC7G,MAAM,IAAI,CAAC,KAAK,GAAG,MAAM,CAAC,KAAK,GAAG,IAAI,CAAC,MAAM,CAAC,YAAY,CAAC,MAAM,CAAC,KAAK,CAAC,GAAG,MAAM,IAAI,IAAI,GAAG,MAAM,GAAG,MAAM,CAAC,KAAK;AACjH,MAAM,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,cAAc,CAAC,MAAM,CAAC;AAC9C,IAAI,CAAC,MAAM;AACX,MAAM,OAAO,CAAC,KAAK,CAAC,yDAAyD,CAAC;AAC9E,MAAM,IAAI,CAAC,SAAS,GAAG,KAAK;AAC5B,IAAI;AACJ,EAAE;AACF,EAAE,cAAc,CAAC,MAAM,EAAE;AACzB,IAAI,MAAM,KAAK,GAAG,EAAE;AACpB,IAAI,IAAI,MAAM,CAAC,KAAK,EAAE;AACtB,MAAM,IAAI,UAAU,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE;AACpC,QAAQ,MAAM,CAAC,KAAK,GAAG,CAAC,CAAC,EAAE,CAAC,EAAE,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;AAC9C,MAAM;AACN,MAAM,IAAI,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE;AACjC,QAAQ,MAAM,CAAC,QAAQ,GAAG,CAAC,EAAE,IAAI,GAAG,gBAAgB,CAAC,IAAI,CAAC,GAAG,MAAM,CAAC,KAAK;AACzE,QAAQ,KAAK,CAAC,IAAI,CAAC,IAAI,YAAY,CAAC,IAAI,EAAE,QAAQ,EAAE,IAAI,CAAC,IAAI,CAAC,CAAC;AAC/D,MAAM;AACN,IAAI;AACJ,IAAI,MAAM,CAAC,MAAM,CAAC,iBAAiB,CAAC,CAAC,OAAO,CAAC,CAAC,IAAI,KAAK;AACvD,MAAM,IAAI,EAAE,IAAI,IAAI,MAAM,CAAC;AAC3B,QAAQ;AACR,MAAM,KAAK,CAAC,IAAI,CAAC,aAAa,CAAC,MAAM,CAAC,IAAI,EAAE,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC;AAC1D,IAAI,CAAC,CAAC;AACN,IAAI,MAAM,CAAC,MAAM,CAAC,wBAAwB,CAAC,CAAC,OAAO,CAAC,CAAC,IAAI,KAAK;AAC9D,MAAM,IAAI,EAAE,IAAI,IAAI,MAAM,CAAC;AAC3B,QAAQ;AACR,MAAM,KAAK,CAAC,IAAI,CAAC,IAAI,oBAAoB,CAAC,IAAI,EAAE,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC;AAC9D,IAAI,CAAC,CAAC;AACN,IAAI,IAAI,MAAM,CAAC,EAAE,IAAI,IAAI,EAAE;AAC3B,MAAM,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE,CAAC;AAC7B,QAAQ,MAAM,CAAC,EAAE,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC;AAC/B,MAAM,KAAK,CAAC,IAAI;AAChB,QAAQ,IAAI,UAAU,CAAC,MAAM,CAAC,EAAE,EAAE,EAAE,MAAM,EAAE,IAAI,CAAC,MAAM,EAAE,EAAE,IAAI,CAAC,MAAM;AACtE,OAAO;AACP,IAAI;AACJ,IAAI,OAAO,KAAK;AAChB,EAAE;AACF,EAAE,MAAM,CAAC,QAAQ,EAAE;AACnB,IAAI,IAAI,CAAC,IAAI,CAAC,SAAS;AACvB,MAAM,OAAO,IAAI;AACjB,IAAI,IAAI,IAAI,CAAC,IAAI,IAAI,QAAQ,CAAC,QAAQ,IAAI,IAAI,CAAC,IAAI,CAAC,QAAQ;AAC5D,MAAM,OAAO,KAAK;AAClB,IAAI,IAAI,IAAI,CAAC,KAAK,IAAI,QAAQ,CAAC,QAAQ,IAAI,IAAI,CAAC,KAAK,CAAC,QAAQ;AAC9D,MAAM,OAAO,KAAK;AAClB,IAAI,IAAI,IAAI,CAAC,IAAI,KAAK,aAAa,CAAC,GAAG,EAAE;AACzC,MAAM,OAAO,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;AACvD,IAAI;AACJ,IAAI,OAAO,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;AACtD,EAAE;AACF;AACA,SAAS,YAAY,CAAC,UAAU,EAAE;AAClC,EAAE,IAAI,CAAC,UAAU,CAAC,UAAU,CAAC;AAC7B,IAAI,OAAO,KAAK;AAChB,EAAE,OAAO,UAAU,IAAI,CAAC,IAAI,UAAU,IAAI,EAAE;AAC5C;AACA,SAAS,WAAW,CAAC,SAAS,EAAE;AAChC,EAAE,IAAI,CAAC,UAAU,CAAC,SAAS,CAAC;AAC5B,IAAI,OAAO,KAAK;AAChB,EAAE,OAAO,SAAS,IAAI,CAAC,IAAI,SAAS,IAAI,CAAC;AACzC;AACA,SAAS,aAAa,CAAC,WAAW,EAAE;AACpC,EAAE,IAAI,CAAC,UAAU,CAAC,WAAW,CAAC;AAC9B,IAAI,OAAO,KAAK;AAChB,EAAE,OAAO,WAAW,IAAI,EAAE,IAAI,WAAW,IAAI,EAAE,IAAI,WAAW,IAAI,CAAC,IAAI,WAAW,IAAI,CAAC;AACvF;AACA,SAAS,aAAa,CAAC,WAAW,EAAE;AACpC,EAAE,IAAI,CAAC,UAAU,CAAC,WAAW,CAAC;AAC9B,IAAI,OAAO,KAAK;AAChB,EAAE,OAAO,WAAW,IAAI,CAAC,IAAI,WAAW,IAAI,EAAE;AAC9C;AACA,SAAS,oBAAoB,CAAC,WAAW,EAAE;AAC3C,EAAE,IAAI,CAAC,UAAU,CAAC,WAAW,CAAC;AAC9B,IAAI,OAAO,KAAK;AAChB,EAAE,IAAI,WAAW,GAAG,EAAE,IAAI,WAAW,GAAG,CAAC,IAAI,WAAW,KAAK,CAAC;AAC9D,IAAI,OAAO,KAAK;AAChB,EAAE,OAAO,IAAI;AACb;AACA,MAAM,aAAa,GAAG;AACtB,EAAE,QAAQ,EAAE;AACZ,IAAI,MAAM;AACV,IAAI,OAAO;AACX,IAAI,KAAK;AACT,IAAI,OAAO;AACX,IAAI,SAAS;AACb,IAAI,SAAS;AACb,IAAI;AACJ,GAAG;AACH,EAAE,IAAI,EAAE,CAAC,MAAM,EAAE,OAAO,EAAE,KAAK,CAAC;AAChC,EAAE,IAAI,EAAE,CAAC,OAAO,EAAE,SAAS,EAAE,SAAS,EAAE,cAAc;AACtD,CAAC;AACD,MAAM,UAAU,GAAG,CAAC;AACpB,MAAM,YAAY,GAAG,CAAC;AACtB,MAAM,aAAa,GAAG,GAAG;AACzB,MAAM,aAAa,GAAG,aAAa,GAAG,EAAE;AACxC,MAAM,WAAW,GAAG,aAAa,GAAG,EAAE;AACtC,MAAM,UAAU,GAAG,WAAW,GAAG,EAAE;AACnC,MAAM,YAAY,GAAG,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC;AACrE,MAAM,UAAU,GAAG,CAAC,GAAG,EAAE,KAAK,CAAC;AAC/B,MAAM,gBAAgB,GAAG;AACzB,EAAE,YAAY,EAAE,CAAC,CAAC,EAAE,GAAG,EAAE,CAAC,CAAC;AAC3B,EAAE,OAAO,EAAE,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC;AACrB,EAAE,OAAO,EAAE,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC;AACrB,EAAE,KAAK,EAAE,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC;AAClB,CAAC;AACD,MAAM,KAAK,GAAG,qFAAqF;AACnG,MAAM,OAAO,GAAG,eAAe;AAC/B,MAAM,WAAW,GAAG;AACpB,EAAE,CAAC,CAAC,CAAC,EAAE;AACP,IAAI,OAAO,CAAC,CAAC,GAAG;AAChB,EAAE,CAAC;AACH,EAAE,EAAE,CAAC,CAAC,EAAE;AACR,IAAI,OAAO,GAAG,CAAC,CAAC,CAAC,GAAG,EAAE,CAAC,CAAC;AACxB,EAAE,CAAC;AACH;AACA;AACA;AACA,EAAE,CAAC,CAAC,CAAC,EAAE;AACP,IAAI,OAAO,CAAC,CAAC,OAAO,GAAG,CAAC;AACxB,EAAE,CAAC;AACH,EAAE,EAAE,CAAC,CAAC,EAAE;AACR,IAAI,OAAO,GAAG,CAAC,CAAC,CAAC,OAAO,GAAG,CAAC,EAAE,CAAC,CAAC;AAChC,EAAE,CAAC;AACH,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE;AACV,IAAI,OAAO,CAAC,CAAC,cAAc,CAAC,CAAC,CAAC,OAAO,GAAG,CAAC,CAAC;AAC1C,EAAE,CAAC;AACH,EAAE,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE;AACX,IAAI,OAAO,CAAC,CAAC,eAAe,CAAC,CAAC,CAAC,OAAO,GAAG,CAAC,CAAC;AAC3C,EAAE,CAAC;AACH,EAAE,GAAG,CAAC,CAAC,EAAE,CAAC,EAAE;AACZ,IAAI,OAAO,CAAC,CAAC,aAAa,CAAC,CAAC,CAAC,OAAO,GAAG,CAAC,CAAC;AACzC,EAAE,CAAC;AACH,EAAE,IAAI,CAAC,CAAC,EAAE,CAAC,EAAE;AACb,IAAI,OAAO,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,OAAO,GAAG,CAAC,CAAC;AACpC,EAAE,CAAC;AACH,EAAE,CAAC,CAAC,CAAC,EAAE;AACP,IAAI,OAAO,CAAC,CAAC,KAAK;AAClB,EAAE,CAAC;AACH,EAAE,EAAE,CAAC,CAAC,EAAE;AACR,IAAI,OAAO,GAAG,CAAC,CAAC,CAAC,KAAK,EAAE,CAAC,CAAC;AAC1B,EAAE,CAAC;AACH,EAAE,GAAG,CAAC,CAAC,EAAE,CAAC,EAAE;AACZ,IAAI,OAAO,CAAC,CAAC,eAAe,CAAC,CAAC,CAAC,KAAK,GAAG,CAAC,CAAC;AACzC,EAAE,CAAC;AACH,EAAE,IAAI,CAAC,CAAC,EAAE,CAAC,EAAE;AACb,IAAI,OAAO,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,KAAK,GAAG,CAAC,CAAC;AACpC,EAAE,CAAC;AACH,EAAE,EAAE,CAAC,CAAC,EAAE;AACR,IAAI,OAAO,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC;AACnC,EAAE,CAAC;AACH,EAAE,IAAI,CAAC,CAAC,EAAE;AACV,IAAI,OAAO,GAAG,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC;AACzB,EAAE,CAAC;AACH,EAAE,CAAC,CAAC,CAAC,EAAE;AACP,IAAI,OAAO,CAAC,CAAC,KAAK,GAAG,EAAE,IAAI,EAAE;AAC7B,EAAE,CAAC;AACH,EAAE,EAAE,CAAC,CAAC,EAAE;AACR,IAAI,OAAO,GAAG,CAAC,CAAC,CAAC,KAAK,GAAG,EAAE,IAAI,EAAE,EAAE,CAAC,CAAC;AACrC,EAAE,CAAC;AACH,EAAE,CAAC,CAAC,CAAC,EAAE;AACP,IAAI,OAAO,CAAC,CAAC,KAAK;AAClB,EAAE,CAAC;AACH,EAAE,EAAE,CAAC,CAAC,EAAE;AACR,IAAI,OAAO,GAAG,CAAC,CAAC,CAAC,KAAK,EAAE,CAAC,CAAC;AAC1B,EAAE,CAAC;AACH,EAAE,CAAC,CAAC,CAAC,EAAE;AACP,IAAI,OAAO,CAAC,CAAC,OAAO;AACpB,EAAE,CAAC;AACH,EAAE,EAAE,CAAC,CAAC,EAAE;AACR,IAAI,OAAO,GAAG,CAAC,CAAC,CAAC,OAAO,EAAE,CAAC,CAAC;AAC5B,EAAE,CAAC;AACH,EAAE,CAAC,CAAC,CAAC,EAAE;AACP,IAAI,OAAO,CAAC,CAAC,OAAO;AACpB,EAAE,CAAC;AACH,EAAE,EAAE,CAAC,CAAC,EAAE;AACR,IAAI,OAAO,GAAG,CAAC,CAAC,CAAC,OAAO,EAAE,CAAC,CAAC;AAC5B,EAAE,CAAC;AACH,EAAE,CAAC,CAAC,CAAC,EAAE;AACP,IAAI,OAAO,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,YAAY,GAAG,GAAG,CAAC;AAC3C,EAAE,CAAC;AACH,EAAE,EAAE,CAAC,CAAC,EAAE;AACR,IAAI,OAAO,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,YAAY,GAAG,EAAE,CAAC,EAAE,CAAC,CAAC;AAClD,EAAE,CAAC;AACH,EAAE,GAAG,CAAC,CAAC,EAAE;AACT,IAAI,OAAO,GAAG,CAAC,CAAC,CAAC,YAAY,EAAE,CAAC,CAAC;AACjC,EAAE,CAAC;AACH,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE;AACV,IAAI,OAAO,CAAC,CAAC,KAAK,GAAG,EAAE,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC;AAC/C,EAAE,CAAC;AACH,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE;AACV,IAAI,OAAO,CAAC,CAAC,KAAK,GAAG,EAAE,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,WAAW,EAAE,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,WAAW,EAAE;AAC3E,EAAE,CAAC;AACH,EAAE,CAAC,GAAG;AACN,IAAI,OAAO,GAAG;AACd,EAAE,CAAC;AACH,EAAE,EAAE,CAAC,CAAC,EAAE;AACR,IAAI,MAAM,CAAC,GAAG,CAAC,CAAC,cAAc;AAC9B,IAAI,OAAO,CAAC,EAAE,CAAC,GAAG,CAAC,GAAG,GAAG,GAAG,GAAG,CAAC,EAAE,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;AACxE,EAAE,CAAC;AACH,EAAE,GAAG,CAAC,CAAC,EAAE;AACT,IAAI,MAAM,CAAC,GAAG,CAAC,CAAC,cAAc;AAC9B,IAAI,OAAO,CAAC,EAAE,CAAC,GAAG,CAAC,GAAG,GAAG,GAAG,GAAG,CAAC,EAAE,GAAG;AACrC,MAAM,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,EAAE,CAAC,GAAG,GAAG,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,EAAE;AAC3D,MAAM;AACN,KAAK,CAAC,CAAC;AACP,EAAE,CAAC;AACH,EAAE,IAAI,CAAC,CAAC,EAAE;AACV,IAAI,MAAM,CAAC,GAAG,CAAC,CAAC,cAAc;AAC9B,IAAI,OAAO,CAAC,EAAE,CAAC,GAAG,CAAC,GAAG,GAAG,GAAG,GAAG,CAAC,EAAE,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,GAAG;AAC7E,MAAM,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,EAAE;AACtB,MAAM;AACN,KAAK,CAAC,CAAC;AACP,EAAE;AACF,CAAC;AACD,MAAM,SAAS,GAAG,OAAO;AACzB,MAAM,WAAW,GAAG,OAAO;AAC3B,MAAM,UAAU,GAAG,OAAO;AAC1B,MAAM,IAAI,GAAG,iHAAiH;AAC9H,MAAM,IAAI,GAAG,MAAM;AACnB,CAAC;AACD,MAAM,WAAW,GAAG,CAAC,OAAO,KAAK,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,KAAK;AAC9C,EAAE,MAAM,MAAM,GAAG,CAAC,CAAC,OAAO,CAAC,CAAC,OAAO;AACnC,IAAI,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,WAAW,EAAE,GAAG,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,WAAW;AACvD,GAAG;AACH,EAAE,IAAI,CAAC,MAAM,EAAE;AACf,IAAI,CAAC,CAAC,KAAK,GAAG,MAAM;AACpB,EAAE;AACF,CAAC;AACD,MAAM,UAAU,GAAG;AACnB,EAAE,CAAC,EAAE;AACL,IAAI,SAAS;AACb,IAAI,CAAC,CAAC,EAAE,CAAC,KAAK;AACd,MAAM,CAAC,CAAC,GAAG,GAAG,CAAC;AACf,IAAI;AACJ,GAAG;AACH,EAAE,EAAE,EAAE;AACN,IAAI,IAAI,MAAM,CAAC,SAAS,CAAC,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC;AAC9C,IAAI,CAAC,CAAC,EAAE,CAAC,KAAK;AACd,MAAM,CAAC,CAAC,GAAG,GAAG,QAAQ,CAAC,CAAC,EAAE,EAAE,CAAC;AAC7B,IAAI;AACJ,GAAG;AACH,EAAE,CAAC,EAAE,CAAC,SAAS,EAAE,IAAI,CAAC;AACtB,EAAE,CAAC,EAAE,CAAC,IAAI,EAAE,IAAI,CAAC;AACjB,EAAE,CAAC,EAAE;AACL,IAAI,SAAS;AACb,IAAI,CAAC,CAAC,EAAE,CAAC,KAAK;AACd,MAAM,CAAC,CAAC,KAAK,GAAG,CAAC,GAAG,CAAC;AACrB,IAAI;AACJ,GAAG;AACH,EAAE,GAAG,EAAE,CAAC,IAAI,EAAE,WAAW,CAAC,iBAAiB,CAAC,CAAC;AAC7C,EAAE,IAAI,EAAE,CAAC,IAAI,EAAE,WAAW,CAAC,YAAY,CAAC,CAAC;AACzC,EAAE,EAAE,EAAE;AACN,IAAI,SAAS;AACb,IAAI,CAAC,CAAC,EAAE,CAAC,KAAK;AACd,MAAM,MAAM,EAAE,mBAAmB,IAAI,IAAI,EAAE;AAC3C,MAAM,MAAM,IAAI,GAAG,CAAC,EAAE,CAAC,WAAW,EAAE,CAAC,QAAQ,EAAE,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC;AAC5D,MAAM,CAAC,CAAC,IAAI,GAAG,CAAC,CAAC,EAAE,CAAC,GAAG,EAAE,GAAG,IAAI,GAAG,CAAC,GAAG,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC;AACjD,IAAI;AACJ,GAAG;AACH,EAAE,IAAI,EAAE;AACR,IAAI,UAAU;AACd,IAAI,CAAC,CAAC,EAAE,CAAC,KAAK;AACd,MAAM,CAAC,CAAC,IAAI,GAAG,CAAC;AAChB,IAAI;AACJ,GAAG;AACH,EAAE,CAAC,EAAE;AACL,IAAI,IAAI;AACR,IAAI,CAAC,CAAC,EAAE,CAAC,KAAK;AACd,MAAM,CAAC,CAAC,YAAY,GAAG,CAAC,GAAG,GAAG;AAC9B,IAAI;AACJ,GAAG;AACH,EAAE,EAAE,EAAE;AACN,IAAI,OAAO;AACX,IAAI,CAAC,CAAC,EAAE,CAAC,KAAK;AACd,MAAM,CAAC,CAAC,YAAY,GAAG,CAAC,GAAG,EAAE;AAC7B,IAAI;AACJ,GAAG;AACH,EAAE,GAAG,EAAE;AACP,IAAI,WAAW;AACf,IAAI,CAAC,CAAC,EAAE,CAAC,KAAK;AACd,MAAM,CAAC,CAAC,YAAY,GAAG,CAAC;AACxB,IAAI;AACJ,GAAG;AACH,EAAE,CAAC,EAAE;AACL,IAAI,SAAS;AACb,IAAI,CAAC,CAAC,EAAE,CAAC,KAAK;AACd,MAAM,CAAC,CAAC,KAAK,GAAG,CAAC;AACjB,IAAI;AACJ,GAAG;AACH,EAAE,CAAC,EAAE;AACL,IAAI,SAAS;AACb,IAAI,CAAC,CAAC,EAAE,CAAC,KAAK;AACd,MAAM,CAAC,CAAC,OAAO,GAAG,CAAC;AACnB,IAAI;AACJ,GAAG;AACH,EAAE,CAAC,EAAE;AACL,IAAI,SAAS;AACb,IAAI,CAAC,CAAC,EAAE,CAAC,KAAK;AACd,MAAM,CAAC,CAAC,OAAO,GAAG,CAAC;AACnB,IAAI;AACJ,GAAG;AACH,EAAE,CAAC,EAAE;AACL,IAAI,IAAI;AACR,IAAI,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,KAAK;AACjB,MAAM,MAAM,GAAG,GAAG,CAAC,CAAC,WAAW,EAAE;AACjC,MAAM,IAAI,GAAG,KAAK,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE;AAC7B,QAAQ,CAAC,CAAC,IAAI,GAAG,KAAK;AACtB,MAAM,CAAC,MAAM,IAAI,GAAG,KAAK,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE;AACpC,QAAQ,CAAC,CAAC,IAAI,GAAG,IAAI;AACrB,MAAM;AACN,IAAI;AACJ,GAAG;AACH,EAAE,CAAC,EAAE;AACL,IAAI,iCAAiC;AACrC,IAAI,CAAC,CAAC,EAAE,CAAC,KAAK;AACd,MAAM,IAAI,CAAC,KAAK,GAAG;AACnB,QAAQ,CAAC,GAAG,QAAQ;AACpB,MAAM,MAAM,KAAK,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,eAAe,CAAC;AACjD,MAAM,IAAI,KAAK,EAAE;AACjB,QAAQ,MAAM,OAAO,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,GAAG,EAAE,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC;AAC/D,QAAQ,CAAC,CAAC,cAAc,GAAG,KAAK,CAAC,CAAC,CAAC,KAAK,GAAG,GAAG,OAAO,GAAG,CAAC,OAAO;AAChE,MAAM;AACN,IAAI;AACJ;AACA,CAAC;AACD,UAAU,CAAC,EAAE,GAAG,UAAU,CAAC,CAAC;AAC5B,UAAU,CAAC,EAAE,GAAG,UAAU,CAAC,CAAC;AAC5B,UAAU,CAAC,IAAI,GAAG,UAAU,CAAC,GAAG,GAAG,UAAU,CAAC,EAAE,GAAG,UAAU,CAAC,CAAC;AAC/D,UAAU,CAAC,EAAE,GAAG,UAAU,CAAC,CAAC;AAC5B,UAAU,CAAC,EAAE,GAAG,UAAU,CAAC,CAAC;AAC5B,UAAU,CAAC,EAAE,GAAG,UAAU,CAAC,CAAC,GAAG,UAAU,CAAC,EAAE,GAAG,UAAU,CAAC,CAAC;AAC3D,UAAU,CAAC,EAAE,GAAG,UAAU,CAAC,CAAC;AAC5B,UAAU,CAAC,CAAC,GAAG,UAAU,CAAC,CAAC;AAC3B,UAAU,CAAC,IAAI,GAAG,UAAU,CAAC,GAAG,GAAG,UAAU,CAAC,EAAE,GAAG,UAAU,CAAC,CAAC;AAC/D,SAAS,cAAc,CAAC,MAAM,EAAE,MAAM,EAAE;AACxC,EAAE,OAAO,CAAC,aAAa,CAAC,MAAM,CAAC,IAAI,MAAM,IAAI;AAC7C,IAAI,UAAU,CAAC,MAAM,CAAC,IAAI,MAAM,IAAI;AACpC,GAAG,EAAE,GAAG;AACR,IAAI,CAAC,CAAC,KAAK,UAAU,CAAC,MAAM;AAC5B,MAAM,CAAC,IAAI,EAAE,IAAI,KAAK,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC;AAClE,MAAM;AACN;AACA,GAAG;AACH;AACA,SAAS,WAAW,CAAC,KAAK,EAAE;AAC5B,EAAE,OAAO,QAAQ,CAAC,KAAK,CAAC,IAAI,MAAM,IAAI,KAAK,IAAI,OAAO,IAAI,KAAK,IAAI,KAAK,IAAI,KAAK;AACjF;AACA,SAAS,WAAW,CAAC,IAAI,EAAE,cAAc,GAAG,CAAC,EAAE;AAC/C,EAAE,MAAM,GAAG,GAAG,IAAI,CAAC,MAAM,EAAE,GAAG,CAAC;AAC/B,EAAE,MAAM,SAAS,GAAG,GAAG,IAAI,cAAc,GAAG,cAAc,GAAG,GAAG,GAAG,EAAE,CAAC,IAAI,cAAc,GAAG,GAAG,CAAC,CAAC;AAChG,EAAE,OAAO,OAAO,CAAC,IAAI,EAAE,SAAS,CAAC;AACjC;AACA,SAAS,WAAW,CAAC,IAAI,EAAE,KAAK,EAAE,GAAG,EAAE;AACvC,EAAE,MAAM,OAAO,GAAG,IAAI,CAAC,GAAG,CAAC,IAAI,EAAE,KAAK,GAAG,CAAC,EAAE,GAAG,CAAC;AAChD,EAAE,OAAO,UAAU,iBAAiB,IAAI,IAAI,CAAC,CAAC,CAAC,EAAE,IAAI,IAAI,CAAC,OAAO,CAAC,CAAC;AACnE;AACA,SAAS,UAAU,CAAC,EAAE,EAAE,EAAE,EAAE;AAC5B,EAAE,OAAO,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,OAAO,EAAE,GAAG,EAAE,CAAC,OAAO,EAAE,IAAI,UAAU,CAAC;AAC/D;AACA,SAAS,WAAW,CAAC,EAAE,EAAE,EAAE,EAAE;AAC7B,EAAE,OAAO,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,WAAW,CAAC,EAAE,CAAC,EAAE,WAAW,CAAC,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC;AACpE;AACA,SAAS,WAAW,CAAC,EAAE,EAAE,EAAE,EAAE;AAC7B,EAAE,OAAO,EAAE,CAAC,cAAc,EAAE,GAAG,EAAE,CAAC,cAAc,EAAE;AAClD;AACA,SAAS,YAAY,CAAC,EAAE,EAAE,EAAE,EAAE;AAC9B,EAAE,OAAO,WAAW,CAAC,EAAE,EAAE,EAAE,CAAC,GAAG,EAAE,IAAI,EAAE,CAAC,QAAQ,EAAE,GAAG,EAAE,CAAC,QAAQ,EAAE,CAAC;AACnE;AACA,SAAS,gBAAgB,CAAC,KAAK,EAAE,QAAQ,GAAG,EAAE,EAAE;AAChD,EAAE,MAAM,CAAC,mBAAmB,IAAI,IAAI,EAAE;AACtC,EAAE,MAAM;AACR,IAAI,IAAI,GAAG,CAAC,CAAC,WAAW,EAAE;AAC1B,IAAI,KAAK,GAAG,CAAC,CAAC,QAAQ,EAAE,GAAG,CAAC;AAC5B,IAAI,GAAG,GAAG,CAAC,CAAC,OAAO,EAAE;AACrB,IAAI,KAAK,EAAE,GAAG,GAAG,CAAC;AAClB,IAAI,OAAO,EAAE,GAAG,GAAG,CAAC;AACpB,IAAI,OAAO,EAAE,GAAG,GAAG,CAAC;AACpB,IAAI,YAAY,EAAE,EAAE,GAAG;AACvB,GAAG,GAAG,KAAK;AACX,EAAE,IAAI,QAAQ,EAAE;AAChB,IAAI,MAAM,UAAU,GAAG,CAAC,EAAE,GAAG,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,GAAG,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,GAAG,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,GAAG;AAC7E,MAAM,GAAG;AACT,MAAM;AACN,KAAK,CAAC,CAAC,EAAE,GAAG,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,GAAG,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,GAAG,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC;AACnD,IAAI,OAAO,QAAQ,CAAC,UAAU,EAAE,EAAE,QAAQ,EAAE,QAAQ,EAAE,CAAC;AACvD,EAAE;AACF,EAAE,OAAO,IAAI,IAAI,CAAC,IAAI,EAAE,KAAK,GAAG,CAAC,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,EAAE,CAAC;AAC1D;AACA,SAAS,YAAY,CAAC,IAAI,EAAE,MAAM,EAAE;AACpC,EAAE,IAAI,MAAM,GAAG,IAAI,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC;AACvC,EAAE,IAAI,MAAM,CAAC,QAAQ,EAAE;AACvB,IAAI,MAAM,GAAG,IAAI,IAAI;AACrB,MAAM,IAAI,CAAC,cAAc,CAAC,OAAO,EAAE,EAAE,QAAQ,EAAE,MAAM,CAAC,QAAQ,EAAE;AAChE,KAAK;AACL,IAAI,MAAM,CAAC,eAAe,CAAC,IAAI,CAAC,eAAe,EAAE,CAAC;AAClD,EAAE;AACF,EAAE,MAAM,YAAY,GAAG,MAAM,CAAC,eAAe,EAAE;AAC/C,EAAE,MAAM,OAAO,GAAG,MAAM,CAAC,UAAU,EAAE;AACrC,EAAE,MAAM,OAAO,GAAG,MAAM,CAAC,UAAU,EAAE;AACrC,EAAE,MAAM,MAAM,GAAG,MAAM,CAAC,QAAQ,EAAE;AAClC,EAAE,MAAM,IAAI,GAAG,YAAY,GAAG,OAAO,GAAG,aAAa,GAAG,OAAO,GAAG,aAAa,GAAG,MAAM,GAAG,WAAW;AACtG,EAAE,MAAM,KAAK,GAAG,MAAM,CAAC,QAAQ,EAAE,GAAG,CAAC;AACrC,EAAE,MAAM,IAAI,GAAG,MAAM,CAAC,WAAW,EAAE;AACnC,EAAE,MAAM,UAAU,GAAG,MAAM,CAAC,aAAa,CAAC,KAAK,EAAE,IAAI,CAAC;AACtD,EAAE,MAAM,GAAG,GAAG,MAAM,CAAC,OAAO,EAAE;AAC9B,EAAE,MAAM,UAAU,GAAG,UAAU,CAAC,OAAO,GAAG,GAAG,GAAG,CAAC;AACjD,EAAE,MAAM,OAAO,GAAG,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC;AACrC,EAAE,MAAM,cAAc,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,GAAG,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;AACtD,EAAE,MAAM,qBAAqB,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,UAAU,CAAC,OAAO,GAAG,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC;AAC9E,EAAE,MAAM,IAAI,GAAG,IAAI,CAAC,IAAI;AACxB,IAAI,CAAC,GAAG,GAAG,IAAI,CAAC,GAAG,CAAC,UAAU,CAAC,YAAY,GAAG,UAAU,CAAC,cAAc,CAAC,IAAI;AAC5E,GAAG;AACH,EAAE,MAAM,WAAW,GAAG,UAAU,CAAC,QAAQ,GAAG,IAAI,GAAG,CAAC;AACpD,EAAE,MAAM,UAAU,GAAG,UAAU,CAAC,WAAW,CAAC,IAAI,CAAC;AACjD,EAAE,MAAM,QAAQ,GAAG,WAAW,CAAC,IAAI,EAAE,KAAK,EAAE,GAAG,CAAC;AAChD,EAAE,MAAM,KAAK,GAAG;AAChB,IAAI,YAAY;AAChB,IAAI,OAAO;AACX,IAAI,OAAO;AACX,IAAI,KAAK,EAAE,MAAM;AACjB,IAAI,IAAI;AACR,IAAI,GAAG;AACP,IAAI,UAAU;AACd,IAAI,OAAO;AACX,IAAI,cAAc;AAClB,IAAI,qBAAqB;AACzB,IAAI,IAAI;AACR,IAAI,WAAW;AACf,IAAI,UAAU;AACd,IAAI,KAAK;AACT,IAAI,IAAI;AACR,IAAI,IAAI,EAAE,MAAM;AAChB,IAAI,QAAQ,EAAE,MAAM,CAAC,OAAO,EAAE;AAC9B,IAAI,QAAQ;AACZ,IAAI,cAAc,EAAE,CAAC;AACrB,IAAI,OAAO,EAAE;AACb,GAAG;AACH,EAAE,OAAO,KAAK;AACd;AACA,SAAS,gBAAgB,CAAC,KAAK,EAAE,IAAI,EAAE,cAAc,EAAE;AACvD,EAAE,OAAO,CAAC,EAAE,IAAI,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC,EAAE,cAAc,CAAC,CAAC;AAC7C;AACA,SAAS,aAAa,CAAC,KAAK,EAAE,IAAI,EAAE,cAAc,EAAE;AACpD,EAAE,MAAM,UAAU,GAAG,IAAI,GAAG,CAAC,KAAK,CAAC,IAAI,IAAI,GAAG,GAAG,KAAK,CAAC,IAAI,IAAI,GAAG,GAAG,KAAK,CAAC;AAC3E,EAAE,MAAM,eAAe,GAAG,IAAI,IAAI,CAAC,IAAI,EAAE,KAAK,GAAG,CAAC,EAAE,CAAC,CAAC;AACtD,EAAE,MAAM,YAAY,GAAG,eAAe,CAAC,MAAM,EAAE,GAAG,CAAC;AACnD,EAAE,MAAM,OAAO,GAAG,KAAK,KAAK,CAAC,IAAI,UAAU,GAAG,EAAE,GAAG,YAAY,CAAC,KAAK,GAAG,CAAC,CAAC;AAC1E,EAAE,MAAM,YAAY,GAAG,cAAc,GAAG,CAAC;AACzC,EAAE,MAAM,QAAQ,GAAG,eAAe,CAAC,eAAe,EAAE;AACpD,IAAI;AACJ,GAAG,CAAC;AACJ,EAAE,MAAM,WAAW,GAAG,EAAE;AACxB,EAAE,MAAM,cAAc,GAAG,EAAE;AAC3B,EAAE,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,QAAQ,EAAE,CAAC,EAAE,EAAE;AACrC,IAAI,MAAM,IAAI,GAAG,OAAO,CAAC,eAAe,EAAE,CAAC,GAAG,CAAC,CAAC;AAChD,IAAI,WAAW,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,EAAE,YAAY,EAAE,CAAC,CAAC;AACrD,IAAI,cAAc,CAAC,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC;AACzC,EAAE;AACF,EAAE,OAAO;AACT,IAAI,cAAc;AAClB,IAAI,eAAe;AACnB,IAAI,UAAU;AACd,IAAI,YAAY;AAChB,IAAI,OAAO;AACX,IAAI,QAAQ;AACZ,IAAI,KAAK;AACT,IAAI,IAAI;AACR,IAAI,WAAW;AACf,IAAI;AACJ,GAAG;AACH;AACA,SAAS,eAAe,GAAG;AAC3B,EAAE,MAAM,KAAK,GAAG,EAAE;AAClB,EAAE,MAAM,IAAI,GAAG,IAAI;AACnB,EAAE,MAAM,KAAK,GAAG,CAAC;AACjB,EAAE,MAAM,GAAG,GAAG,CAAC;AACf,EAAE,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,UAAU,EAAE,CAAC,EAAE,EAAE;AACvC,IAAI,KAAK,CAAC,IAAI;AACd,MAAM,gBAAgB,CAAC;AACvB,QAAQ,IAAI;AACZ,QAAQ,KAAK;AACb,QAAQ,GAAG,EAAE,GAAG,GAAG,CAAC;AACpB,QAAQ,KAAK,EAAE;AACf,OAAO;AACP,KAAK;AACL,EAAE;AACF,EAAE,OAAO,KAAK;AACd;AACA,SAAS,WAAW,CAAC,MAAM,EAAE,QAAQ,GAAG,MAAM,EAAE;AAChD,EAAE,MAAM,GAAG,GAAG,IAAI,IAAI,CAAC,cAAc,CAAC,QAAQ,EAAE;AAChD,IAAI,OAAO,EAAE;AACb,GAAG,CAAC;AACJ,EAAE,OAAO,eAAe,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,KAAK,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;AACpD;AACA,SAAS,YAAY,GAAG;AACxB,EAAE,MAAM,KAAK,GAAG,EAAE;AAClB,EAAE,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC,EAAE,EAAE;AAChC,IAAI,KAAK,CAAC,IAAI,CAAC,IAAI,IAAI,CAAC,GAAG,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;AACtC,EAAE;AACF,EAAE,OAAO,KAAK;AACd;AACA,SAAS,oBAAoB,CAAC,QAAQ,GAAG,MAAM,EAAE;AACjD,EAAE,MAAM,KAAK,GAAG;AAChB,IAAI,QAAQ;AACZ,IAAI,QAAQ;AACZ,IAAI,MAAM;AACV,IAAI,KAAK;AACT,IAAI,MAAM;AACV,IAAI,OAAO;AACX,IAAI,SAAS;AACb,IAAI;AACJ,GAAG;AACH,EAAE,MAAM,GAAG,GAAG,IAAI,IAAI,CAAC,kBAAkB,CAAC,QAAQ,CAAC;AACnD,EAAE,OAAO,KAAK,CAAC,MAAM,CAAC,CAAC,KAAK,EAAE,IAAI,KAAK;AACvC,IAAI,MAAM,KAAK,GAAG,GAAG,CAAC,aAAa,CAAC,GAAG,EAAE,IAAI,CAAC;AAC9C,IAAI,KAAK,CAAC,IAAI,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI;AAC/B,IAAI,OAAO,KAAK;AAChB,EAAE,CAAC,EAAE,EAAE,CAAC;AACR;AACA,SAAS,aAAa,GAAG;AACzB,EAAE,MAAM,KAAK,GAAG,EAAE;AAClB,EAAE,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,EAAE,EAAE,CAAC,EAAE,EAAE;AAC/B,IAAI,KAAK,CAAC,IAAI,CAAC,IAAI,IAAI,CAAC,GAAG,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC;AACpC,EAAE;AACF,EAAE,OAAO,KAAK;AACd;AACA,SAAS,aAAa,CAAC,MAAM,EAAE,QAAQ,GAAG,MAAM,EAAE;AAClD,EAAE,MAAM,GAAG,GAAG,IAAI,IAAI,CAAC,cAAc,CAAC,QAAQ,EAAE;AAChD,IAAI,KAAK,EAAE,MAAM;AACjB,IAAI,QAAQ,EAAE;AACd,GAAG,CAAC;AACJ,EAAE,OAAO,aAAa,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,KAAK,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;AAClD;AACA,SAAS,eAAe,CAAC,IAAI,EAAE,IAAI,EAAE,KAAK,EAAE;AAC5C,EAAE,IAAI,UAAU,CAAC,IAAI,CAAC;AACtB,IAAI,OAAO,IAAI,KAAK,IAAI;AACxB,EAAE,IAAI,OAAO,CAAC,IAAI,CAAC;AACnB,IAAI,OAAO,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC;AAC9B,EAAE,IAAI,YAAY,CAAC,IAAI,CAAC;AACxB,IAAI,OAAO,IAAI,CAAC,IAAI,EAAE,KAAK,CAAC;AAC5B,EAAE,IAAI,IAAI,CAAC,GAAG,IAAI,IAAI,IAAI,IAAI,CAAC,GAAG,GAAG,IAAI;AACzC,IAAI,OAAO,KAAK;AAChB,EAAE,IAAI,IAAI,CAAC,GAAG,IAAI,IAAI,IAAI,IAAI,CAAC,GAAG,GAAG,IAAI;AACzC,IAAI,OAAO,KAAK;AAChB,EAAE,IAAI,IAAI,CAAC,QAAQ,IAAI,IAAI,IAAI,IAAI,GAAG,IAAI,CAAC,QAAQ,KAAK,CAAC;AACzD,IAAI,OAAO,KAAK;AAChB,EAAE,OAAO,IAAI;AACb;AACA,SAAS,kBAAkB,CAAC,KAAK,EAAE,KAAK,EAAE,IAAI,EAAE;AAChD,EAAE,MAAM,OAAO,GAAG,EAAE;AACpB,EAAE,MAAM,CAAC,GAAG,EAAE,GAAG,EAAE,OAAO,CAAC,GAAG,KAAK;AACnC,EAAE,KAAK,IAAI,CAAC,GAAG,GAAG,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,EAAE,EAAE;AACnC,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,eAAe,CAAC,CAAC,EAAE,IAAI,EAAE,KAAK,CAAC,EAAE;AACzD,MAAM,OAAO,CAAC,IAAI,CAAC;AACnB,QAAQ,KAAK,EAAE,CAAC;AAChB,QAAQ,KAAK,EAAE,GAAG,CAAC,CAAC,EAAE,OAAO;AAC7B,OAAO,CAAC;AACR,IAAI;AACJ,EAAE;AACF,EAAE,OAAO,OAAO;AAChB;AACA,SAAS,mBAAmB,CAAC,KAAK,EAAE,KAAK,EAAE;AAC3C,EAAE,OAAO;AACT,IAAI,YAAY,EAAE,kBAAkB;AACpC,MAAM,KAAK;AACX,MAAM,gBAAgB,CAAC,YAAY;AACnC,MAAM,KAAK,CAAC;AACZ,KAAK;AACL,IAAI,OAAO,EAAE,kBAAkB,CAAC,KAAK,EAAE,gBAAgB,CAAC,OAAO,EAAE,KAAK,CAAC,OAAO,CAAC;AAC/E,IAAI,OAAO,EAAE,kBAAkB,CAAC,KAAK,EAAE,gBAAgB,CAAC,OAAO,EAAE,KAAK,CAAC,OAAO,CAAC;AAC/E,IAAI,KAAK,EAAE,kBAAkB,CAAC,KAAK,EAAE,gBAAgB,CAAC,KAAK,EAAE,KAAK,CAAC,KAAK;AACxE,GAAG;AACH;AACA,SAAS,kBAAkB,CAAC,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,IAAI,EAAE;AACvD,EAAE,MAAM,OAAO,GAAG,kBAAkB,CAAC,KAAK,EAAE,KAAK,EAAE,IAAI,CAAC;AACxD,EAAE,MAAM,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC,IAAI,EAAE,GAAG,KAAK;AAC/C,IAAI,IAAI,GAAG,CAAC,QAAQ;AACpB,MAAM,OAAO,IAAI;AACjB,IAAI,IAAI,KAAK,CAAC,IAAI,CAAC;AACnB,MAAM,OAAO,GAAG,CAAC,KAAK;AACtB,IAAI,MAAM,QAAQ,GAAG,IAAI,CAAC,GAAG,CAAC,IAAI,GAAG,KAAK,CAAC;AAC3C,IAAI,MAAM,QAAQ,GAAG,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,KAAK,GAAG,KAAK,CAAC;AAChD,IAAI,OAAO,QAAQ,GAAG,QAAQ,GAAG,GAAG,CAAC,KAAK,GAAG,IAAI;AACjD,EAAE,CAAC,EAAE,GAAG,CAAC;AACT,EAAE,OAAO,KAAK,CAAC,MAAM,CAAC,GAAG,KAAK,GAAG,MAAM;AACvC;AACA,SAAS,sBAAsB,CAAC,SAAS,EAAE,KAAK,EAAE;AAClD,EAAE,MAAM,MAAM,GAAG,EAAE,GAAG,SAAS,EAAE;AACjC,EAAE,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,GAAG,EAAE,IAAI,CAAC,KAAK;AACjD,IAAI,MAAM,KAAK,GAAG,gBAAgB,CAAC,GAAG,CAAC;AACvC,IAAI,MAAM,KAAK,GAAG,SAAS,CAAC,GAAG,CAAC;AAChC,IAAI,MAAM,CAAC,GAAG,CAAC,GAAG,kBAAkB;AACpC,MAAM,SAAS;AACf,MAAM,KAAK;AACX,MAAM,KAAK;AACX,MAAM;AACN,KAAK;AACL,EAAE,CAAC,CAAC;AACJ,EAAE,OAAO,MAAM;AACf;AACA,SAAS,SAAS,CAAC,UAAU,EAAE,IAAI,EAAE,MAAM,EAAE;AAC7C,EAAE,MAAM,MAAM,GAAG,cAAc,CAAC,IAAI,EAAE,MAAM,CAAC;AAC7C,EAAE,OAAO,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,KAAK;AAC3B,IAAI,IAAI,OAAO,CAAC,KAAK,QAAQ,EAAE;AAC/B,MAAM,MAAM,IAAI,KAAK,CAAC,cAAc,CAAC;AACrC,IAAI;AACJ,IAAI,IAAI,GAAG,GAAG,UAAU;AACxB,IAAI,IAAI,GAAG,CAAC,MAAM,GAAG,GAAG,EAAE;AAC1B,MAAM,OAAO,KAAK;AAClB,IAAI;AACJ,IAAI,IAAI,OAAO,GAAG,IAAI;AACtB,IAAI,MAAM,EAAE,GAAG,EAAE;AACjB,IAAI,CAAC,CAAC,OAAO,CAAC,KAAK,EAAE,CAAC,EAAE,KAAK;AAC7B,MAAM,IAAI,UAAU,CAAC,EAAE,CAAC,EAAE;AAC1B,QAAQ,MAAM,IAAI,GAAG,UAAU,CAAC,EAAE,CAAC;AACnC,QAAQ,MAAM,MAAM,GAAG,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;AAC1C,QAAQ,IAAI,CAAC,CAAC,MAAM,EAAE;AACtB,UAAU,OAAO,GAAG,KAAK;AACzB,QAAQ,CAAC,MAAM;AACf,UAAU,GAAG,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,MAAM,KAAK;AAC3C,YAAY,IAAI,CAAC,CAAC,CAAC,CAAC,EAAE,EAAE,MAAM,EAAE,MAAM,CAAC;AACvC,YAAY,GAAG,GAAG,GAAG,CAAC,MAAM,CAAC,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC;AACpD,YAAY,OAAO,MAAM;AACzB,UAAU,CAAC,CAAC;AACZ,QAAQ;AACR,MAAM;AACN,MAAM,OAAO,UAAU,CAAC,EAAE,CAAC,GAAG,EAAE,GAAG,EAAE,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,MAAM,GAAG,CAAC,CAAC;AAC7D,IAAI,CAAC,CAAC;AACN,IAAI,IAAI,CAAC,OAAO,EAAE;AAClB,MAAM,OAAO,KAAK;AAClB,IAAI;AACJ,IAAI,MAAM,KAAK,mBAAmB,IAAI,IAAI,EAAE;AAC5C,IAAI,IAAI,EAAE,CAAC,KAAK,IAAI,IAAI,EAAE;AAC1B,MAAM,IAAI,EAAE,CAAC,IAAI,KAAK,IAAI,IAAI,CAAC,EAAE,CAAC,KAAK,KAAK,EAAE,EAAE;AAChD,QAAQ,EAAE,CAAC,KAAK,GAAG,CAAC,EAAE,CAAC,KAAK,GAAG,EAAE;AACjC,MAAM,CAAC,MAAM,IAAI,EAAE,CAAC,IAAI,KAAK,KAAK,IAAI,CAAC,EAAE,CAAC,KAAK,KAAK,EAAE,EAAE;AACxD,QAAQ,EAAE,CAAC,KAAK,GAAG,CAAC;AACpB,MAAM;AACN,IAAI;AACJ,IAAI,IAAI,IAAI;AACZ,IAAI,IAAI,EAAE,CAAC,cAAc,IAAI,IAAI,EAAE;AACnC,MAAM,EAAE,CAAC,OAAO,GAAG,EAAE,EAAE,CAAC,OAAO,IAAI,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,cAAc;AAC1D,MAAM,IAAI,GAAG,IAAI,IAAI;AACrB,QAAQ,IAAI,CAAC,GAAG;AAChB,UAAU,EAAE,CAAC,IAAI,IAAI,KAAK,CAAC,WAAW,EAAE;AACxC,UAAU,EAAE,CAAC,KAAK,IAAI,CAAC;AACvB,UAAU,EAAE,CAAC,GAAG,IAAI,CAAC;AACrB,UAAU,EAAE,CAAC,KAAK,IAAI,CAAC;AACvB,UAAU,EAAE,CAAC,OAAO,IAAI,CAAC;AACzB,UAAU,EAAE,CAAC,OAAO,IAAI,CAAC;AACzB,UAAU,EAAE,CAAC,YAAY,IAAI;AAC7B;AACA,OAAO;AACP,IAAI,CAAC,MAAM;AACX,MAAM,IAAI,GAAG,MAAM,CAAC,gBAAgB,CAAC;AACrC,QAAQ,IAAI,EAAE,EAAE,CAAC,IAAI,IAAI,KAAK,CAAC,WAAW,EAAE;AAC5C,QAAQ,KAAK,EAAE,CAAC,EAAE,CAAC,KAAK,IAAI,CAAC,IAAI,CAAC;AAClC,QAAQ,GAAG,EAAE,EAAE,CAAC,GAAG,IAAI,CAAC;AACxB,QAAQ,KAAK,EAAE,EAAE,CAAC,KAAK,IAAI,CAAC;AAC5B,QAAQ,OAAO,EAAE,EAAE,CAAC,OAAO,IAAI,CAAC;AAChC,QAAQ,OAAO,EAAE,EAAE,CAAC,OAAO,IAAI,CAAC;AAChC,QAAQ,YAAY,EAAE,EAAE,CAAC,YAAY,IAAI;AACzC,OAAO,CAAC;AACR,IAAI;AACJ,IAAI,OAAO,IAAI;AACf,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,IAAI,IAAI,IAAI,CAAC,UAAU,CAAC;AAC3C;AACA,SAAS,UAAU,CAAC,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE;AAC1C,EAAE,IAAI,IAAI,IAAI,IAAI;AAClB,IAAI,OAAO,EAAE;AACb,EAAE,IAAI,IAAI,GAAG,cAAc,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,CAAC,CAAC;AAC9C,EAAE,IAAI,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC;AACrB,IAAI,MAAM,CAAC,QAAQ,GAAG,KAAK;AAC3B,EAAE,MAAM,QAAQ,GAAG,EAAE;AACrB,EAAE,IAAI,GAAG,IAAI,CAAC,OAAO,CAAC,OAAO,EAAE,CAAC,EAAE,EAAE,EAAE,KAAK;AAC3C,IAAI,QAAQ,CAAC,IAAI,CAAC,EAAE,CAAC;AACrB,IAAI,OAAO,IAAI;AACf,EAAE,CAAC,CAAC;AACJ,EAAE,MAAM,SAAS,GAAG,MAAM,CAAC,YAAY,CAAC,IAAI,CAAC;AAC7C,EAAE,IAAI,GAAG,IAAI,CAAC,OAAO;AACrB,IAAI,KAAK;AACT,IAAI,CAAC,EAAE,KAAK,EAAE,IAAI,WAAW,GAAG,WAAW,CAAC,EAAE,CAAC,CAAC,SAAS,EAAE,MAAM,CAAC,GAAG,EAAE,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,MAAM,GAAG,CAAC;AAC9F,GAAG;AACH,EAAE,OAAO,IAAI,CAAC,OAAO,CAAC,OAAO,EAAE,MAAM,QAAQ,CAAC,KAAK,EAAE,CAAC;AACtD;AACA,IAAI,OAAO,GAAG,CAAC;AACf,MAAM,SAAS,CAAC;AAChB,EAAE,WAAW,CAAC,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE;AACrC,IAAI,aAAa,CAAC,IAAI,EAAE,KAAK,EAAE,EAAE,CAAC;AAClC,IAAI,aAAa,CAAC,IAAI,EAAE,UAAU,EAAE,EAAE,CAAC;AACvC,IAAI,aAAa,CAAC,IAAI,EAAE,WAAW,EAAE,IAAI,CAAC;AAC1C,IAAI,aAAa,CAAC,IAAI,EAAE,SAAS,EAAE,IAAI,CAAC;AACxC,IAAI,aAAa,CAAC,IAAI,EAAE,KAAK,EAAE,IAAI,CAAC;AACpC,IAAI,aAAa,CAAC,IAAI,EAAE,KAAK,EAAE,IAAI,CAAC;AACpC,IAAI,aAAa,CAAC,IAAI,EAAE,OAAO,EAAE,IAAI,CAAC;AACtC,IAAI,aAAa,CAAC,IAAI,EAAE,SAAS,EAAE,IAAI,CAAC;AACxC,IAAI,aAAa,CAAC,IAAI,EAAE,YAAY,EAAE,IAAI,CAAC;AAC3C,IAAI,aAAa,CAAC,IAAI,EAAE,QAAQ,CAAC;AACjC,IAAI,aAAa,CAAC,IAAI,EAAE,WAAW,EAAE,KAAK,CAAC;AAC3C,IAAI,aAAa,CAAC,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC;AACnC,IAAI,aAAa,CAAC,IAAI,EAAE,SAAS,EAAE,KAAK,CAAC;AACzC,IAAI,aAAa,CAAC,IAAI,EAAE,eAAe,EAAE,CAAC,CAAC;AAC3C,IAAI,aAAa,CAAC,IAAI,EAAE,QAAQ,CAAC;AACjC,IAAI,MAAM,EAAE,KAAK,EAAE,GAAG,MAAM,CAAC,MAAM;AACnC,MAAM,IAAI;AACV,MAAM,EAAE,QAAQ,EAAE,EAAE,EAAE,KAAK,EAAE,CAAC,EAAE,OAAO,EAAE,KAAK,EAAE;AAChD,MAAM;AACN,KAAK;AACL,IAAI,IAAI,CAAC,GAAG,KAAK,IAAI,CAAC,GAAG,GAAG,EAAE,OAAO,CAAC;AACtC,IAAI,IAAI,CAAC,MAAM,GAAG,MAAM;AACxB,IAAI,KAAK,CAAC,eAAe,CAAC,IAAI,CAAC;AAC/B,IAAI,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC,KAAK,IAAI,EAAE,CAAC;AAC5C,IAAI,IAAI,CAAC,SAAS,GAAG,CAAC,CAAC,aAAa,CAAC,IAAI,CAAC,MAAM,CAAC;AACjD,IAAI,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,SAAS,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,OAAO,CAAC,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,IAAI,KAAK,IAAI,CAAC,GAAG,CAAC,GAAG,EAAE,IAAI,CAAC,EAAE,CAAC,CAAC;AACnI,EAAE;AACF,EAAE,eAAe,CAAC,EAAE,KAAK,EAAE,GAAG,EAAE,EAAE;AAClC,IAAI,IAAI,KAAK,IAAI,IAAI,IAAI,GAAG,IAAI,IAAI;AACpC,MAAM,OAAO,KAAK;AAClB,IAAI,MAAM,YAAY,GAAG,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,SAAS,CAAC;AAChE,IAAI,KAAK,MAAM,KAAK,IAAI,YAAY,EAAE;AACtC,MAAM,IAAI,KAAK,CAAC,kBAAkB,CAAC,KAAK,CAAC,QAAQ,EAAE,GAAG,CAAC,QAAQ,CAAC,EAAE;AAClE,QAAQ,OAAO,IAAI;AACnB,MAAM;AACN,IAAI;AACJ,IAAI,MAAM,YAAY,GAAG,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,SAAS,CAAC;AAC/D,IAAI,IAAI,CAAC,YAAY,CAAC,MAAM;AAC5B,MAAM,OAAO,KAAK;AAClB,IAAI,IAAI,GAAG,GAAG,KAAK;AACnB,IAAI,IAAI,IAAI,CAAC,aAAa,GAAG,CAAC,EAAE;AAChC,MAAM,GAAG,GAAG,IAAI,CAAC,MAAM,CAAC,YAAY,CAAC,OAAO,CAAC,GAAG,CAAC,IAAI,EAAE,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;AAC5E,IAAI;AACJ,IAAI,OAAO,GAAG,CAAC,QAAQ,IAAI,GAAG,CAAC,QAAQ,EAAE;AACzC,MAAM,KAAK,MAAM,KAAK,IAAI,YAAY,EAAE;AACxC,QAAQ,IAAI,KAAK,CAAC,WAAW,CAAC,GAAG,CAAC;AAClC,UAAU,OAAO,IAAI;AACrB,MAAM;AACN,MAAM,GAAG,GAAG,IAAI,CAAC,MAAM,CAAC,YAAY,CAAC,OAAO,CAAC,GAAG,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC;AAC1D,IAAI;AACJ,IAAI,OAAO,KAAK;AAChB,EAAE;AACF;AACA,SAAS,WAAW,CAAC,IAAI,EAAE;AAC3B,EAAE,IAAI,QAAQ,EAAE;AAChB,IAAI,QAAQ,CAAC,aAAa;AAC1B,MAAM,IAAI,WAAW,CAAC,cAAc,EAAE;AACtC,QAAQ,MAAM,EAAE;AAChB,OAAO;AACP,KAAK;AACL,EAAE;AACF;AACA,SAAS,WAAW,CAAC,IAAI,EAAE;AAC3B,EAAE,IAAI,QAAQ,EAAE;AAChB,IAAI,QAAQ,CAAC,aAAa;AAC1B,MAAM,IAAI,WAAW,CAAC,cAAc,EAAE;AACtC,QAAQ,MAAM,EAAE;AAChB,OAAO;AACP,KAAK;AACL,EAAE;AACF;AACA,SAAS,aAAa,CAAC,IAAI,EAAE;AAC7B,EAAE,IAAI,QAAQ,EAAE;AAChB,IAAI,QAAQ,CAAC,aAAa;AAC1B,MAAM,IAAI,WAAW,CAAC,gBAAgB,EAAE;AACxC,QAAQ,MAAM,EAAE;AAChB,OAAO;AACP,KAAK;AACL,EAAE;AACF;AACA,SAAS,uBAAuB,CAAC,IAAI,EAAE;AACvC,EAAE,MAAM,EAAE,UAAU,EAAE,GAAG,IAAI;AAC7B,EAAE,MAAM,KAAK,GAAG,UAAU,KAAK,OAAO;AACtC,EAAE,MAAM,KAAK,GAAG,UAAU,KAAK,OAAO;AACtC,EAAE,MAAM,UAAU,GAAG,UAAU,KAAK,aAAa;AACjD,EAAE,MAAM,KAAK,GAAG,UAAU,KAAK,OAAO;AACtC,EAAE,IAAI,CAAC,QAAQ,GAAG,CAAC,KAAK;AACxB,EAAE,IAAI,OAAO,GAAG,KAAK;AACrB,EAAE,IAAI,OAAO,GAAG,KAAK;AACrB,EAAE,MAAM,YAAY,GAAG,CAAC,CAAC,KAAK;AAC9B,IAAI,IAAI,KAAK,EAAE;AACf,MAAM,aAAa,CAAC;AACpB,QAAQ,GAAG,IAAI;AACf,QAAQ,MAAM,EAAE,IAAI,CAAC,MAAM,IAAI,CAAC,CAAC;AACjC,OAAO,CAAC;AACR,MAAM,CAAC,CAAC,eAAe,EAAE;AACzB,IAAI;AACJ,EAAE,CAAC;AACH,EAAE,MAAM,gBAAgB,GAAG,CAAC,CAAC,KAAK;AAClC,IAAI,IAAI,CAAC,OAAO,EAAE;AAClB,MAAM,OAAO,GAAG,IAAI;AACpB,MAAM,IAAI,KAAK,IAAI,UAAU,EAAE;AAC/B,QAAQ,WAAW,CAAC;AACpB,UAAU,GAAG,IAAI;AACjB,UAAU,MAAM,EAAE,IAAI,CAAC,MAAM,IAAI,CAAC,CAAC;AACnC,SAAS,CAAC;AACV,MAAM;AACN,IAAI;AACJ,EAAE,CAAC;AACH,EAAE,MAAM,iBAAiB,GAAG,MAAM;AAClC,IAAI,IAAI,OAAO,EAAE;AACjB,MAAM,OAAO,GAAG,KAAK;AACrB,MAAM,IAAI,KAAK,IAAI,UAAU,IAAI,CAAC,OAAO,EAAE;AAC3C,QAAQ,WAAW,CAAC,IAAI,CAAC;AACzB,MAAM;AACN,IAAI;AACJ,EAAE,CAAC;AACH,EAAE,MAAM,cAAc,GAAG,CAAC,CAAC,KAAK;AAChC,IAAI,IAAI,CAAC,OAAO,EAAE;AAClB,MAAM,OAAO,GAAG,IAAI;AACpB,MAAM,IAAI,KAAK,IAAI,UAAU,EAAE;AAC/B,QAAQ,WAAW,CAAC;AACpB,UAAU,GAAG,IAAI;AACjB,UAAU,MAAM,EAAE,IAAI,CAAC,MAAM,IAAI,CAAC,CAAC;AACnC,SAAS,CAAC;AACV,MAAM;AACN,IAAI;AACJ,EAAE,CAAC;AACH,EAAE,MAAM,eAAe,GAAG,CAAC,CAAC,KAAK;AACjC,IAAI,IAAI,OAAO,IAAI,CAAC,eAAe,CAAC,CAAC,CAAC,aAAa,EAAE,CAAC,CAAC,aAAa,CAAC,EAAE;AACvE,MAAM,OAAO,GAAG,KAAK;AACrB,MAAM,IAAI,KAAK,IAAI,UAAU,IAAI,CAAC,OAAO,EAAE;AAC3C,QAAQ,WAAW,CAAC,IAAI,CAAC;AACzB,MAAM;AACN,IAAI;AACJ,EAAE,CAAC;AACH,EAAE,MAAM,QAAQ,GAAG,EAAE;AACrB,EAAE,QAAQ,IAAI,CAAC,UAAU;AACzB,IAAI,KAAK,OAAO;AAChB,MAAM,QAAQ,CAAC,KAAK,GAAG,YAAY;AACnC,MAAM;AACN,IAAI,KAAK,OAAO;AAChB,MAAM,QAAQ,CAAC,SAAS,GAAG,gBAAgB;AAC3C,MAAM,QAAQ,CAAC,UAAU,GAAG,iBAAiB;AAC7C,MAAM;AACN,IAAI,KAAK,OAAO;AAChB,MAAM,QAAQ,CAAC,OAAO,GAAG,cAAc;AACvC,MAAM,QAAQ,CAAC,QAAQ,GAAG,eAAe;AACzC,MAAM;AACN,IAAI,KAAK,aAAa;AACtB,MAAM,QAAQ,CAAC,SAAS,GAAG,gBAAgB;AAC3C,MAAM,QAAQ,CAAC,UAAU,GAAG,iBAAiB;AAC7C,MAAM,QAAQ,CAAC,OAAO,GAAG,cAAc;AACvC,MAAM,QAAQ,CAAC,QAAQ,GAAG,eAAe;AACzC,MAAM;AACN;AACA,EAAE,OAAO,QAAQ;AACjB;AACA,MAAM,cAAc,GAAG,CAAC,MAAM,KAAK;AACnC,EAAE,MAAM,EAAE,GAAG,SAAS,CAAC,MAAM,CAAC;AAC9B,EAAE,IAAI,EAAE,IAAI,IAAI;AAChB,IAAI;AACJ,EAAE,MAAM,QAAQ,GAAG,EAAE,CAAC,eAAe;AACrC,EAAE,IAAI,CAAC,QAAQ,IAAI,CAAC,QAAQ,CAAC,MAAM;AACnC,IAAI;AACJ,EAAE,QAAQ,CAAC,OAAO,CAAC,CAAC,OAAO,KAAK,OAAO,EAAE,CAAC;AAC1C,EAAE,OAAO,EAAE,CAAC,eAAe;AAC3B,CAAC;AACD,MAAM,WAAW,GAAG,CAAC,MAAM,EAAE,IAAI,KAAK;AACtC,EAAE,MAAM,EAAE,GAAG,SAAS,CAAC,MAAM,CAAC;AAC9B,EAAE,IAAI,EAAE,IAAI,IAAI;AAChB,IAAI;AACJ,EAAE,MAAM,MAAM,GAAG,EAAE;AACnB,EAAE,MAAM,QAAQ,GAAG,uBAAuB,CAAC,IAAI,CAAC;AAChD,EAAE,MAAM,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,KAAK,EAAE,OAAO,CAAC,KAAK;AACzD,IAAI,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,EAAE,KAAK,EAAE,OAAO,CAAC,CAAC;AACvC,EAAE,CAAC,CAAC;AACJ,EAAE,EAAE,CAAC,eAAe,GAAG,MAAM;AAC7B,CAAC;AACD,MAAM,gBAAgB,GAAG;AACzB,EAAE,OAAO,CAAC,EAAE,EAAE,OAAO,EAAE;AACvB,IAAI,MAAM,EAAE,KAAK,EAAE,GAAG,OAAO;AAC7B,IAAI,IAAI,CAAC,KAAK;AACd,MAAM;AACN,IAAI,WAAW,CAAC,EAAE,EAAE,KAAK,CAAC;AAC1B,EAAE,CAAC;AACH,EAAE,OAAO,CAAC,EAAE,EAAE,OAAO,EAAE;AACvB,IAAI,MAAM,EAAE,QAAQ,EAAE,KAAK,EAAE,GAAG,OAAO;AACvC,IAAI,MAAM,aAAa,GAAG,QAAQ,IAAI,IAAI,GAAG,MAAM,GAAG,QAAQ,CAAC,UAAU;AACzE,IAAI,MAAM,aAAa,GAAG,KAAK,IAAI,IAAI,GAAG,MAAM,GAAG,KAAK,CAAC,UAAU;AACnE,IAAI,IAAI,aAAa,KAAK,aAAa,EAAE;AACzC,MAAM,IAAI,aAAa,EAAE;AACzB,QAAQ,cAAc,CAAC,EAAE,CAAC;AAC1B,QAAQ,IAAI,CAAC,aAAa;AAC1B,UAAU,WAAW,CAAC,QAAQ,CAAC;AAC/B,MAAM;AACN,MAAM,IAAI,aAAa,EAAE;AACzB,QAAQ,WAAW,CAAC,EAAE,EAAE,KAAK,CAAC;AAC9B,MAAM;AACN,IAAI;AACJ,EAAE,CAAC;AACH,EAAE,SAAS,CAAC,EAAE,EAAE;AAChB,IAAI,cAAc,CAAC,EAAE,CAAC;AACtB,EAAE;AACF,CAAC;AACD,MAAM,yBAAyB,GAAG,CAAC,OAAO,EAAE,OAAO,EAAE;AACrD,EAAE,YAAY,EAAE,aAAa;AAC7B,EAAE,0BAA0B,EAAE,2BAA2B;AACzD,EAAE,wBAAwB,EAAE;AAC5B,CAAC,KAAK;AACN,EAAE,IAAI,CAAC,OAAO,IAAI,CAAC,OAAO,CAAC,gBAAgB,IAAI,CAAC,YAAY,CAAC,OAAO,CAAC,EAAE;AACvE,IAAI,OAAO,IAAI;AACf,EAAE;AACF,EAAE,IAAI,MAAM,GAAG,CAAC;AAChB,EAAE,IAAI,MAAM,GAAG,CAAC;AAChB,EAAE,IAAI,SAAS,GAAG,IAAI;AACtB,EAAE,IAAI,SAAS,GAAG,KAAK;AACvB,EAAE,SAAS,UAAU,CAAC,CAAC,EAAE;AACzB,IAAI,MAAM,CAAC,GAAG,CAAC,CAAC,cAAc,CAAC,CAAC,CAAC;AACjC,IAAI,MAAM,GAAG,CAAC,CAAC,OAAO;AACtB,IAAI,MAAM,GAAG,CAAC,CAAC,OAAO;AACtB,IAAI,SAAS,GAAG,iBAAiB,IAAI,IAAI,EAAE,EAAE,OAAO,EAAE;AACtD,IAAI,SAAS,GAAG,IAAI;AACpB,EAAE;AACF,EAAE,SAAS,QAAQ,CAAC,CAAC,EAAE;AACvB,IAAI,IAAI,CAAC,SAAS,IAAI,CAAC,SAAS;AAChC,MAAM;AACN,IAAI,SAAS,GAAG,KAAK;AACrB,IAAI,MAAM,CAAC,GAAG,CAAC,CAAC,cAAc,CAAC,CAAC,CAAC;AACjC,IAAI,MAAM,MAAM,GAAG,CAAC,CAAC,OAAO,GAAG,MAAM;AACrC,IAAI,MAAM,MAAM,GAAG,CAAC,CAAC,OAAO,GAAG,MAAM;AACrC,IAAI,MAAM,SAAS,GAAG,iBAAiB,IAAI,IAAI,EAAE,EAAE,OAAO,EAAE,GAAG,SAAS;AACxE,IAAI,IAAI,SAAS,GAAG,aAAa,EAAE;AACnC,MAAM,IAAI,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,IAAI,2BAA2B,IAAI,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,IAAI,yBAAyB,EAAE;AAC5G,QAAQ,MAAM,GAAG,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,OAAO,EAAE,KAAK,EAAE;AACrD,QAAQ,IAAI,MAAM,GAAG,CAAC,EAAE;AACxB,UAAU,GAAG,CAAC,MAAM,GAAG,IAAI;AAC3B,QAAQ,CAAC,MAAM;AACf,UAAU,GAAG,CAAC,OAAO,GAAG,IAAI;AAC5B,QAAQ;AACR,QAAQ,OAAO,CAAC,GAAG,CAAC;AACpB,MAAM;AACN,IAAI;AACJ,EAAE;AACF,EAAE,EAAE,CAAC,OAAO,EAAE,YAAY,EAAE,UAAU,EAAE,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC;AAC1D,EAAE,EAAE,CAAC,OAAO,EAAE,UAAU,EAAE,QAAQ,EAAE,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC;AACtD,EAAE,OAAO,MAAM;AACf,IAAI,GAAG,CAAC,OAAO,EAAE,YAAY,EAAE,UAAU,CAAC;AAC1C,IAAI,GAAG,CAAC,OAAO,EAAE,UAAU,EAAE,QAAQ,CAAC;AACtC,EAAE,CAAC;AACH,CAAC;AACD,MAAM,aAAa,GAAG,EAAE;AACxB,MAAM,WAAW,GAAG,CAAC,OAAO,EAAE,UAAU,GAAG,EAAE,KAAK;AAClD,EAAE,aAAa,CAAC,OAAO,CAAC,GAAG,IAAI,CAAC,GAAG,EAAE,GAAG,UAAU;AAClD,CAAC;AACD,MAAM,aAAa,GAAG,CAAC,OAAO,EAAE,OAAO,KAAK;AAC5C,EAAE,IAAI,OAAO,IAAI,aAAa,EAAE;AAChC,IAAI,MAAM,QAAQ,GAAG,aAAa,CAAC,OAAO,CAAC;AAC3C,IAAI,IAAI,IAAI,CAAC,GAAG,EAAE,GAAG,QAAQ;AAC7B,MAAM;AACN,IAAI,OAAO,aAAa,CAAC,OAAO,CAAC;AACjC,EAAE;AACF,EAAE,OAAO,EAAE;AACX,CAAC;AACD,SAAS,YAAY,GAAG;AACxB,EAAE,OAAO,OAAO,MAAM,KAAK,WAAW;AACtC;AACA,SAAS,gBAAgB,CAAC,OAAO,EAAE;AACnC,EAAE,OAAO,YAAY,EAAE,IAAI,OAAO,IAAI,MAAM;AAC5C;AACA,SAAS,WAAW,CAAC,MAAM,EAAE;AAC7B,EAAE,MAAM,MAAM,GAAG,GAAG,CAAC,KAAK,CAAC;AAC3B,EAAE,MAAM,WAAW,GAAG,QAAQ,CAAC,MAAM,MAAM,CAAC,KAAK,GAAG,MAAM,GAAG,OAAO,CAAC;AACrE,EAAE,IAAI,UAAU;AAChB,EAAE,IAAI,gBAAgB;AACtB,EAAE,SAAS,UAAU,CAAC,EAAE,EAAE;AAC1B,IAAI,MAAM,CAAC,KAAK,GAAG,EAAE,CAAC,OAAO;AAC7B,EAAE;AACF,EAAE,SAAS,WAAW,GAAG;AACzB,IAAI,IAAI,gBAAgB,CAAC,YAAY,CAAC,EAAE;AACxC,MAAM,UAAU,GAAG,MAAM,CAAC,UAAU,CAAC,8BAA8B,CAAC;AACpE,MAAM,UAAU,CAAC,gBAAgB,CAAC,QAAQ,EAAE,UAAU,CAAC;AACvD,MAAM,MAAM,CAAC,KAAK,GAAG,UAAU,CAAC,OAAO;AACvC,IAAI;AACJ,EAAE;AACF,EAAE,SAAS,UAAU,GAAG;AACxB,IAAI,MAAM,EAAE,QAAQ,GAAG,OAAO,EAAE,SAAS,GAAG,MAAM,EAAE,GAAG,MAAM,CAAC,KAAK;AACnE,IAAI,MAAM,EAAE,GAAG,QAAQ,CAAC,aAAa,CAAC,QAAQ,CAAC;AAC/C,IAAI,MAAM,CAAC,KAAK,GAAG,EAAE,CAAC,SAAS,CAAC,QAAQ,CAAC,SAAS,CAAC;AACnD,EAAE;AACF,EAAE,SAAS,UAAU,CAAC,OAAO,EAAE;AAC/B,IAAI,MAAM,EAAE,QAAQ,GAAG,OAAO,EAAE,SAAS,GAAG,MAAM,EAAE,GAAG,OAAO;AAC9D,IAAI,IAAI,YAAY,EAAE,IAAI,QAAQ,IAAI,SAAS,EAAE;AACjD,MAAM,MAAM,EAAE,GAAG,QAAQ,CAAC,aAAa,CAAC,QAAQ,CAAC;AACjD,MAAM,IAAI,EAAE,EAAE;AACd,QAAQ,gBAAgB,GAAG,IAAI,gBAAgB,CAAC,UAAU,CAAC;AAC3D,QAAQ,gBAAgB,CAAC,OAAO,CAAC,EAAE,EAAE;AACrC,UAAU,UAAU,EAAE,IAAI;AAC1B,UAAU,eAAe,EAAE,CAAC,OAAO;AACnC,SAAS,CAAC;AACV,QAAQ,MAAM,CAAC,KAAK,GAAG,EAAE,CAAC,SAAS,CAAC,QAAQ,CAAC,SAAS,CAAC;AACvD,MAAM;AACN,IAAI;AACJ,EAAE;AACF,EAAE,SAAS,KAAK,GAAG;AACnB,IAAI,aAAa,EAAE;AACnB,IAAI,MAAM,IAAI,GAAG,OAAO,MAAM,CAAC,KAAK;AACpC,IAAI,IAAI,IAAI,KAAK,QAAQ,IAAI,MAAM,CAAC,KAAK,CAAC,WAAW,EAAE,KAAK,QAAQ,EAAE;AACtE,MAAM,WAAW,EAAE;AACnB,IAAI,CAAC,MAAM,IAAI,IAAI,KAAK,QAAQ,EAAE;AAClC,MAAM,UAAU,CAAC,MAAM,CAAC,KAAK,CAAC;AAC9B,IAAI,CAAC,MAAM;AACX,MAAM,MAAM,CAAC,KAAK,GAAG,CAAC,CAAC,MAAM,CAAC,KAAK;AACnC,IAAI;AACJ,EAAE;AACF,EAAE,MAAM,SAAS,GAAG,KAAK,CAAC,MAAM,MAAM,CAAC,KAAK,EAAE,MAAM,KAAK,EAAE,EAAE;AAC7D,IAAI,SAAS,EAAE;AACf,GAAG,CAAC;AACJ,EAAE,SAAS,aAAa,GAAG;AAC3B,IAAI,IAAI,UAAU,EAAE;AACpB,MAAM,UAAU,CAAC,mBAAmB,CAAC,QAAQ,EAAE,UAAU,CAAC;AAC1D,MAAM,UAAU,GAAG,MAAM;AACzB,IAAI;AACJ,IAAI,IAAI,gBAAgB,EAAE;AAC1B,MAAM,gBAAgB,CAAC,UAAU,EAAE;AACnC,MAAM,gBAAgB,GAAG,MAAM;AAC/B,IAAI;AACJ,EAAE;AACF,EAAE,SAAS,OAAO,GAAG;AACrB,IAAI,aAAa,EAAE;AACnB,IAAI,SAAS,EAAE;AACf,EAAE;AACF,EAAE,WAAW,CAAC,MAAM,OAAO,EAAE,CAAC;AAC9B,EAAE,OAAO;AACT,IAAI,MAAM;AACV,IAAI,WAAW;AACf,IAAI;AACJ,GAAG;AACH;AACA,MAAM,WAAW,GAAG,CAAC,MAAM,EAAE,OAAO,EAAE,KAAK,EAAE,UAAU,CAAC;AACxD,MAAM,YAAY,GAAG;AACrB,EAAE,OAAO;AACT,EAAE,cAAc;AAChB,EAAE,cAAc;AAChB,EAAE,OAAO;AACT,EAAE,cAAc;AAChB,EAAE,OAAO;AACT,EAAE;AACF,CAAC;AACD,MAAM,eAAe,GAAG,EAAE,IAAI,EAAE,EAAE,EAAE,KAAK,EAAE,EAAE,EAAE,GAAG,EAAE,EAAE,EAAE;AACxD,SAAS,eAAe,CAAC,KAAK,EAAE,MAAM,EAAE,cAAc,GAAG,eAAe,EAAE;AAC1E,EAAE,IAAI,SAAS,GAAG,KAAK;AACvB,EAAE,IAAI,KAAK,GAAG,EAAE;AAChB,EAAE,IAAI,MAAM,KAAK,IAAI,IAAI,UAAU,CAAC,MAAM,CAAC,EAAE;AAC7C,IAAI,SAAS,GAAG,UAAU,CAAC,MAAM,CAAC,GAAG,MAAM,GAAG,SAAS;AACvD,IAAI,KAAK,GAAG,EAAE,GAAG,cAAc,EAAE;AACjC,EAAE,CAAC,MAAM,IAAI,QAAQ,CAAC,MAAM,CAAC,EAAE;AAC/B,IAAI,IAAI,MAAM,CAAC,MAAM,EAAE,WAAW,CAAC,EAAE;AACrC,MAAM,KAAK,GAAG,EAAE,GAAG,MAAM,EAAE;AAC3B,IAAI,CAAC,MAAM;AACX,MAAM,KAAK,GAAG;AACd,QAAQ,IAAI,EAAE,EAAE,GAAG,MAAM,EAAE;AAC3B,QAAQ,KAAK,EAAE,EAAE,GAAG,MAAM,EAAE;AAC5B,QAAQ,GAAG,EAAE,EAAE,GAAG,MAAM;AACxB,OAAO;AACP,IAAI;AACJ,EAAE;AACF,EAAE,MAAM,MAAM,GAAG,cAAc;AAC/B,IAAI,KAAK;AACT,IAAI,EAAE,KAAK,EAAE,KAAK,CAAC,QAAQ,EAAE,GAAG,EAAE,KAAK,CAAC,QAAQ,EAAE;AAClD,IAAI;AACJ,GAAG;AACH,EAAE,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,UAAU,EAAE,YAAY,CAAC,KAAK;AACjE,IAAI,IAAI,WAAW,GAAG,SAAS;AAC/B,IAAI,IAAI,YAAY,KAAK,IAAI,IAAI,UAAU,CAAC,YAAY,CAAC,EAAE;AAC3D,MAAM,WAAW,GAAG,UAAU,CAAC,YAAY,CAAC,GAAG,YAAY,GAAG,WAAW;AACzE,MAAM,MAAM,CAAC,UAAU,CAAC,GAAG,EAAE,KAAK,EAAE,WAAW,EAAE;AACjD,IAAI,CAAC,MAAM,IAAI,QAAQ,CAAC,YAAY,CAAC,EAAE;AACvC,MAAM,IAAI,MAAM,CAAC,YAAY,EAAE,YAAY,CAAC,EAAE;AAC9C,QAAQ,MAAM,CAAC,UAAU,CAAC,GAAG,EAAE,GAAG,YAAY,EAAE;AAChD,MAAM,CAAC,MAAM;AACb,QAAQ,MAAM,CAAC,UAAU,CAAC,GAAG,EAAE;AAC/B,MAAM;AACN,IAAI;AACJ,IAAI,cAAc,CAAC,MAAM,CAAC,UAAU,CAAC,EAAE,EAAE,KAAK,EAAE,WAAW,EAAE,CAAC;AAC9D,EAAE,CAAC,CAAC;AACJ,EAAE,OAAO,MAAM;AACf;AACA,MAAM,iBAAiB,CAAC;AACxB,EAAE,WAAW,GAAG;AAChB,IAAI,aAAa,CAAC,IAAI,EAAE,MAAM,EAAE,WAAW,CAAC;AAC5C,EAAE;AACF,EAAE,eAAe,CAAC,KAAK,EAAE,MAAM,EAAE;AACjC,IAAI,OAAO,eAAe,CAAC,KAAK,EAAE,MAAM,EAAE;AAC1C,MAAM,IAAI,EAAE,EAAE,QAAQ,EAAE,OAAO,EAAE;AACjC,MAAM,KAAK,EAAE,EAAE,QAAQ,EAAE,OAAO,EAAE;AAClC,MAAM,GAAG,EAAE,EAAE,QAAQ,EAAE,OAAO;AAC9B,KAAK,CAAC;AACN,EAAE;AACF,EAAE,aAAa,CAAC,MAAM,EAAE;AACxB,IAAI,MAAM,CAAC,UAAU,GAAG,EAAE;AAC1B,IAAI,IAAI,CAAC,MAAM,CAAC,OAAO;AACvB,MAAM,MAAM,CAAC,OAAO,GAAG,EAAE;AACzB,EAAE;AACF,EAAE,MAAM,CAAC,EAAE,IAAI,EAAE,KAAK,EAAE,OAAO,EAAE,KAAK,EAAE,EAAE,MAAM,EAAE;AAClD,IAAI,MAAM,EAAE,GAAG,EAAE,SAAS,EAAE,GAAG,KAAK;AACpC,IAAI,IAAI,CAAC,SAAS;AAClB,MAAM;AACN,IAAI,MAAM,EAAE,UAAU,EAAE,GAAG,MAAM;AACjC,IAAI,MAAM,EAAE,IAAI,EAAE,KAAK,EAAE,GAAG,EAAE,GAAG,SAAS;AAC1C,IAAI,IAAI,OAAO,IAAI,KAAK,EAAE;AAC1B,MAAM,UAAU,CAAC,IAAI,CAAC;AACtB,QAAQ,GAAG,KAAK;AAChB,QAAQ,GAAG;AACX,QAAQ,YAAY,EAAE,CAAC,iDAAiD,EAAE,KAAK,CAAC,KAAK,CAAC,CAAC;AACvF,QAAQ,KAAK,EAAE,CAAC,CAAC,6BAA6B,EAAE,KAAK,CAAC,QAAQ,CAAC,CAAC,EAAE,KAAK,CAAC,KAAK,CAAC;AAC9E,QAAQ,YAAY,EAAE;AACtB,UAAU,CAAC,6BAA6B,EAAE,KAAK,CAAC,QAAQ,CAAC,IAAI,EAAE,KAAK,CAAC,KAAK,CAAC,CAAC;AAC5E,UAAU,KAAK,CAAC;AAChB;AACA,OAAO,CAAC;AACR,IAAI,CAAC,MAAM,IAAI,OAAO,EAAE;AACxB,MAAM,UAAU,CAAC,IAAI,CAAC;AACtB,QAAQ,GAAG,IAAI;AACf,QAAQ,GAAG,EAAE,CAAC,EAAE,GAAG,CAAC,KAAK,CAAC;AAC1B,QAAQ,YAAY,EAAE,CAAC,gDAAgD,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC;AACrF,QAAQ,KAAK,EAAE;AACf,UAAU,CAAC,qDAAqD,EAAE,IAAI,CAAC,QAAQ,CAAC,CAAC;AACjF,UAAU,IAAI,CAAC;AACf;AACA,OAAO,CAAC;AACR,MAAM,UAAU,CAAC,IAAI,CAAC;AACtB,QAAQ,GAAG,KAAK;AAChB,QAAQ,GAAG;AACX,QAAQ,YAAY,EAAE,CAAC,iDAAiD,EAAE,KAAK,CAAC,KAAK,CAAC,CAAC;AACvF,QAAQ,KAAK,EAAE,CAAC,CAAC,6BAA6B,EAAE,KAAK,CAAC,QAAQ,CAAC,CAAC,EAAE,KAAK,CAAC,KAAK,CAAC;AAC9E,QAAQ,YAAY,EAAE;AACtB,UAAU,CAAC,6BAA6B,EAAE,KAAK,CAAC,QAAQ,CAAC,IAAI,EAAE,KAAK,CAAC,KAAK,CAAC,CAAC;AAC5E,UAAU,KAAK,CAAC;AAChB;AACA,OAAO,CAAC;AACR,IAAI,CAAC,MAAM,IAAI,KAAK,EAAE;AACtB,MAAM,UAAU,CAAC,IAAI,CAAC;AACtB,QAAQ,GAAG,IAAI;AACf,QAAQ,GAAG,EAAE,CAAC,EAAE,GAAG,CAAC,KAAK,CAAC;AAC1B,QAAQ,YAAY,EAAE,CAAC,+CAA+C,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC;AACpF,QAAQ,KAAK,EAAE;AACf,UAAU,CAAC,mDAAmD,EAAE,IAAI,CAAC,QAAQ,CAAC,CAAC;AAC/E,UAAU,IAAI,CAAC;AACf;AACA,OAAO,CAAC;AACR,MAAM,UAAU,CAAC,IAAI,CAAC;AACtB,QAAQ,GAAG,GAAG;AACd,QAAQ,GAAG;AACX,QAAQ,YAAY,EAAE,CAAC,iDAAiD,EAAE,GAAG,CAAC,KAAK,CAAC,CAAC;AACrF,QAAQ,KAAK,EAAE,CAAC,CAAC,6BAA6B,EAAE,GAAG,CAAC,QAAQ,CAAC,CAAC,EAAE,GAAG,CAAC,KAAK,CAAC;AAC1E,QAAQ,YAAY,EAAE;AACtB,UAAU,CAAC,6BAA6B,EAAE,GAAG,CAAC,QAAQ,CAAC,IAAI,EAAE,GAAG,CAAC,KAAK,CAAC,CAAC;AACxE,UAAU,GAAG,CAAC;AACd;AACA,OAAO,CAAC;AACR,IAAI,CAAC,MAAM;AACX,MAAM,UAAU,CAAC,IAAI,CAAC;AACtB,QAAQ,GAAG,IAAI;AACf,QAAQ,GAAG,EAAE,CAAC,EAAE,GAAG,CAAC,OAAO,CAAC;AAC5B,QAAQ,YAAY,EAAE,CAAC,iDAAiD,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC;AACtF,QAAQ,KAAK,EAAE;AACf,UAAU,CAAC,sDAAsD,EAAE,IAAI,CAAC,QAAQ,CAAC,CAAC;AAClF,UAAU,IAAI,CAAC;AACf,SAAS;AACT,QAAQ,YAAY,EAAE;AACtB,UAAU,CAAC,6BAA6B,EAAE,IAAI,CAAC,QAAQ,CAAC,IAAI,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC;AAC1E,UAAU,IAAI,CAAC;AACf;AACA,OAAO,CAAC;AACR,IAAI;AACJ,EAAE;AACF;AACA,MAAM,YAAY,CAAC;AACnB,EAAE,WAAW,CAAC,IAAI,EAAE,cAAc,EAAE;AACpC,IAAI,aAAa,CAAC,IAAI,EAAE,MAAM,EAAE,EAAE,CAAC;AACnC,IAAI,aAAa,CAAC,IAAI,EAAE,gBAAgB,EAAE,EAAE,CAAC;AAC7C,IAAI,IAAI,CAAC,IAAI,GAAG,IAAI;AACpB,IAAI,IAAI,CAAC,cAAc,GAAG,cAAc;AACxC,EAAE;AACF,EAAE,eAAe,CAAC,KAAK,EAAE,MAAM,EAAE;AACjC,IAAI,OAAO,eAAe,CAAC,KAAK,EAAE,MAAM,CAAC;AACzC,EAAE;AACF,EAAE,aAAa,CAAC,MAAM,EAAE;AACxB,IAAI,MAAM,CAAC,IAAI,CAAC,cAAc,CAAC,GAAG,EAAE;AACpC,EAAE;AACF,EAAE,MAAM,CAAC,EAAE,IAAI,EAAE,KAAK,EAAE,OAAO,EAAE,KAAK,EAAE,EAAE,MAAM,EAAE;AAClD,IAAI,MAAM,EAAE,GAAG,EAAE,GAAG,KAAK;AACzB,IAAI,MAAM,IAAI,GAAG,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC;AACjC,IAAI,IAAI,CAAC,GAAG,IAAI,CAAC,IAAI,EAAE;AACvB,MAAM;AACN,IAAI;AACJ,IAAI,MAAM,UAAU,GAAG,MAAM,CAAC,IAAI,CAAC,cAAc,CAAC;AAClD,IAAI,MAAM,EAAE,IAAI,EAAE,KAAK,EAAE,GAAG,EAAE,GAAG,IAAI;AACrC,IAAI,IAAI,OAAO,EAAE;AACjB,MAAM,UAAU,CAAC,IAAI,CAAC;AACtB,QAAQ,GAAG,KAAK;AAChB,QAAQ,GAAG;AACX,QAAQ,KAAK,EAAE;AACf,UAAU,CAAC,GAAG,EAAE,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE,KAAK,CAAC,KAAK,CAAC,QAAQ,CAAC;AAC3E,UAAU,KAAK,CAAC;AAChB;AACA,OAAO,CAAC;AACR,IAAI,CAAC,MAAM,IAAI,KAAK,EAAE;AACtB,MAAM,UAAU,CAAC,IAAI,CAAC;AACtB,QAAQ,GAAG,GAAG;AACd,QAAQ,GAAG;AACX,QAAQ,KAAK,EAAE;AACf,UAAU,CAAC,GAAG,EAAE,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,GAAG,CAAC,KAAK,CAAC,QAAQ,CAAC;AACvE,UAAU,GAAG,CAAC;AACd;AACA,OAAO,CAAC;AACR,IAAI,CAAC,MAAM;AACX,MAAM,UAAU,CAAC,IAAI,CAAC;AACtB,QAAQ,GAAG,IAAI;AACf,QAAQ,GAAG;AACX,QAAQ,KAAK,EAAE;AACf,UAAU,CAAC,GAAG,EAAE,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC;AACzE,UAAU,IAAI,CAAC;AACf;AACA,OAAO,CAAC;AACR,IAAI;AACJ,EAAE;AACF;AACA,MAAM,eAAe,SAAS,YAAY,CAAC;AAC3C,EAAE,WAAW,GAAG;AAChB,IAAI,KAAK,CAAC,SAAS,EAAE,SAAS,CAAC;AAC/B,EAAE;AACF,EAAE,eAAe,CAAC,CAAC,EAAE,MAAM,EAAE;AAC7B,IAAI,OAAO,eAAe,CAAC,MAAM,EAAE,MAAM,CAAC;AAC1C,EAAE;AACF;AACA,MAAM,WAAW,SAAS,YAAY,CAAC;AACvC,EAAE,WAAW,GAAG;AAChB,IAAI,KAAK,CAAC,KAAK,EAAE,MAAM,CAAC;AACxB,EAAE;AACF;AACA,MAAM,WAAW,SAAS,YAAY,CAAC;AACvC,EAAE,WAAW,GAAG;AAChB,IAAI,KAAK,CAAC,KAAK,EAAE,MAAM,CAAC;AACxB,EAAE;AACF;AACA,MAAM,KAAK,CAAC;AACZ,EAAE,WAAW,CAAC,KAAK,EAAE;AACrB,IAAI,aAAa,CAAC,IAAI,EAAE,OAAO,CAAC;AAChC,IAAI,aAAa,CAAC,IAAI,EAAE,WAAW,EAAE;AACrC,MAAM,IAAI,eAAe,EAAE;AAC3B,MAAM,IAAI,iBAAiB,EAAE;AAC7B,MAAM,IAAI,WAAW,EAAE;AACvB,MAAM,IAAI,WAAW;AACrB,KAAK,CAAC;AACN,IAAI,IAAI,CAAC,KAAK,GAAG,KAAK;AACtB,EAAE;AACF,EAAE,eAAe,CAAC,IAAI,EAAE;AACxB,IAAI,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC,QAAQ,KAAK;AACzC,MAAM,MAAM,IAAI,GAAG,QAAQ,CAAC,IAAI;AAChC,MAAM,IAAI,IAAI,CAAC,IAAI,CAAC,IAAI,IAAI,EAAE;AAC9B,QAAQ,IAAI,CAAC,IAAI,CAAC,GAAG,QAAQ,CAAC,eAAe,CAAC,IAAI,CAAC,KAAK,EAAE,IAAI,CAAC,IAAI,CAAC,CAAC;AACrE,MAAM;AACN,IAAI,CAAC,CAAC;AACN,EAAE;AACF,EAAE,aAAa,CAAC,MAAM,GAAG,EAAE,EAAE;AAC7B,IAAI,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC,QAAQ,KAAK;AACzC,MAAM,QAAQ,CAAC,aAAa,CAAC,MAAM,CAAC;AACpC,IAAI,CAAC,CAAC;AACN,IAAI,OAAO,MAAM;AACjB,EAAE;AACF,EAAE,MAAM,CAAC,IAAI,EAAE,MAAM,EAAE;AACvB,IAAI,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC,QAAQ,KAAK;AACzC,MAAM,QAAQ,CAAC,MAAM,CAAC,IAAI,EAAE,MAAM,CAAC;AACnC,IAAI,CAAC,CAAC;AACN,EAAE;AACF;AACA,MAAM,YAAY,GAAG,MAAM,CAAC,qBAAqB,CAAC;AAClD,MAAM,UAAU,GAAG;AACnB,EAAE,KAAK,EAAE;AACT,IAAI,IAAI,EAAE,MAAM;AAChB,IAAI,OAAO,EAAE,MAAM,UAAU,CAAC,OAAO;AACrC,GAAG;AACH,EAAE,MAAM,EAAE;AACV,IAAI,IAAI,EAAE,CAAC,OAAO,EAAE,MAAM,EAAE,MAAM,CAAC;AACnC,IAAI,OAAO,EAAE,MAAM,UAAU,CAAC,QAAQ;AACtC,GAAG;AACH,EAAE,cAAc,EAAE,MAAM;AACxB,EAAE,KAAK,EAAE,MAAM;AACf,EAAE,MAAM,EAAE,CAAC,MAAM,EAAE,MAAM,CAAC;AAC1B,EAAE,QAAQ,EAAE,MAAM;AAClB,EAAE,OAAO,EAAE,IAAI;AACf,EAAE,OAAO,EAAE,IAAI;AACf,EAAE,aAAa,EAAE;AACjB,CAAC;AACD,SAAS,UAAU,CAAC,KAAK,EAAE;AAC3B,EAAE,MAAM,KAAK,GAAG,QAAQ,CAAC,MAAM,KAAK,CAAC,KAAK,IAAI,EAAE,CAAC;AACjD,EAAE,MAAM,MAAM,GAAG,QAAQ,CAAC,MAAM,KAAK,CAAC,MAAM,IAAI,KAAK,CAAC;AACtD,EAAE,MAAM,EAAE,WAAW,EAAE,GAAG,WAAW,CAAC,MAAM,CAAC;AAC7C,EAAE,MAAM,KAAK,GAAG,QAAQ,CAAC,MAAM,IAAI,KAAK,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;AACtD,EAAE,MAAM,MAAM,GAAG,QAAQ,CAAC,MAAM;AAChC,IAAI,IAAI,KAAK,CAAC,MAAM,YAAY,MAAM;AACtC,MAAM,OAAO,KAAK,CAAC,MAAM;AACzB,IAAI,MAAM,MAAM,GAAG,QAAQ,CAAC,KAAK,CAAC,MAAM,CAAC,GAAG,KAAK,CAAC,MAAM,GAAG;AAC3D,MAAM,EAAE,EAAE,KAAK,CAAC,MAAM;AACtB,MAAM,cAAc,EAAE,KAAK,CAAC,cAAc;AAC1C,MAAM,KAAK,EAAE,KAAK,CAAC;AACnB,KAAK;AACL,IAAI,OAAO,IAAI,MAAM,CAAC,MAAM,EAAE,KAAK,CAAC,QAAQ,CAAC;AAC7C,EAAE,CAAC,CAAC;AACJ,EAAE,MAAM,MAAM,GAAG,QAAQ,CAAC,MAAM,MAAM,CAAC,KAAK,CAAC,KAAK,CAAC;AACnD,EAAE,MAAM,OAAO,GAAG,QAAQ,CAAC,MAAM,KAAK,CAAC,OAAO,CAAC;AAC/C,EAAE,MAAM,OAAO,GAAG,QAAQ,CAAC,MAAM,KAAK,CAAC,OAAO,CAAC;AAC/C,EAAE,MAAM,aAAa,GAAG,QAAQ,CAAC,MAAM;AACvC,IAAI,MAAM,KAAK,GAAG,KAAK,CAAC,aAAa,GAAG,CAAC,GAAG,KAAK,CAAC,aAAa,CAAC,GAAG,EAAE;AACrE,IAAI,IAAI,OAAO,CAAC,KAAK,IAAI,IAAI,EAAE;AAC/B,MAAM,KAAK,CAAC,IAAI,CAAC;AACjB,QAAQ,KAAK,EAAE,IAAI;AACnB,QAAQ,GAAG,EAAE,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,EAAE;AAC3D,OAAO,CAAC;AACR,IAAI;AACJ,IAAI,IAAI,OAAO,CAAC,KAAK,IAAI,IAAI,EAAE;AAC/B,MAAM,KAAK,CAAC,IAAI,CAAC;AACjB,QAAQ,KAAK,EAAE,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;AAC7D,QAAQ,GAAG,EAAE;AACb,OAAO,CAAC;AACR,IAAI;AACJ,IAAI,OAAO,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC;AACrC,EAAE,CAAC,CAAC;AACJ,EAAE,MAAM,iBAAiB,GAAG,QAAQ,CAAC,MAAM;AAC3C,IAAI,OAAO,IAAI,SAAS;AACxB,MAAM;AACN,QAAQ,GAAG,EAAE,UAAU;AACvB,QAAQ,KAAK,EAAE,aAAa,CAAC,KAAK;AAClC,QAAQ,KAAK,EAAE;AACf,OAAO;AACP,MAAM,KAAK,CAAC,KAAK;AACjB,MAAM,MAAM,CAAC;AACb,KAAK;AACL,EAAE,CAAC,CAAC;AACJ,EAAE,MAAM,OAAO,GAAG;AAClB,IAAI,KAAK;AACT,IAAI,MAAM;AACV,IAAI,WAAW;AACf,IAAI,KAAK;AACT,IAAI,MAAM;AACV,IAAI,KAAK,EAAE,MAAM;AACjB,IAAI,OAAO;AACX,IAAI,OAAO;AACX,IAAI,aAAa;AACjB,IAAI;AACJ,GAAG;AACH,EAAE,OAAO,CAAC,YAAY,EAAE,OAAO,CAAC;AAChC,EAAE,OAAO,OAAO;AAChB;AACA,SAAS,eAAe,CAAC,KAAK,EAAE;AAChC,EAAE,OAAO,MAAM,CAAC,YAAY,EAAE,MAAM,UAAU,CAAC,KAAK,CAAC,EAAE,IAAI,CAAC;AAC5D;AACA,SAAS,YAAY,CAAC,OAAO,EAAE;AAC/B,EAAE,OAAO,CAAC,UAAU,EAAE,OAAO,CAAC,EAAE,CAAC;AACjC;AACA,SAAS,YAAY,CAAC,KAAK,EAAE,KAAK,GAAG,EAAE,EAAE;AACzC,EAAE,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,OAAO,CAAC,CAAC,OAAO,KAAK;AAC1C,IAAI,OAAO,CAAC,YAAY,CAAC,KAAK,CAAC,OAAO,CAAC,IAAI,OAAO,CAAC,EAAE,KAAK,CAAC,OAAO,CAAC,CAAC;AACpE,EAAE,CAAC,CAAC;AACJ;AACA,SAAS,OAAO,CAAC,OAAO,EAAE;AAC1B,EAAE,OAAO,MAAM,CAAC,YAAY,CAAC,OAAO,CAAC,EAAE,IAAI,CAAC;AAC5C;AACA,MAAM,UAAU,GAAG;AACnB,EAAE,GAAG,UAAU;AACf,EAAE,IAAI,EAAE;AACR,IAAI,IAAI,EAAE,MAAM;AAChB,IAAI,OAAO,EAAE,SAAS;AACtB,IAAI,SAAS,CAAC,KAAK,EAAE;AACrB,MAAM,OAAO,CAAC,OAAO,EAAE,QAAQ,EAAE,SAAS,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC;AAC3D,IAAI;AACJ,GAAG;AACH,EAAE,IAAI,EAAE;AACR,IAAI,IAAI,EAAE,MAAM;AAChB,IAAI,OAAO,EAAE;AACb,GAAG;AACH,EAAE,OAAO,EAAE;AACX,IAAI,IAAI,EAAE,MAAM;AAChB,IAAI,OAAO,EAAE;AACb,GAAG;AACH,EAAE,IAAI,EAAE,MAAM;AACd,EAAE,aAAa,EAAE;AACjB,IAAI,IAAI,EAAE,MAAM;AAChB,IAAI,OAAO,EAAE,MAAM,UAAU,CAAC,eAAe;AAC7C,GAAG;AACH,EAAE,aAAa,EAAE;AACjB,IAAI,IAAI,EAAE,MAAM;AAChB,IAAI,OAAO,EAAE,MAAM,UAAU,CAAC,eAAe;AAC7C,GAAG;AACH,EAAE,eAAe,EAAE,CAAC,OAAO,EAAE,MAAM,CAAC;AACpC,EAAE,kBAAkB,EAAE,CAAC,OAAO,EAAE,MAAM,CAAC;AACvC,EAAE,QAAQ,EAAE,OAAO;AACnB,EAAE,UAAU,EAAE,OAAO;AACrB,EAAE,WAAW,EAAE,OAAO;AACtB,EAAE,WAAW,EAAE,MAAM;AACrB,EAAE,mBAAmB,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,CAAC,EAAE;AACnD,EAAE,OAAO,EAAE,MAAM;AACjB,EAAE,OAAO,EAAE,MAAM;AACjB,EAAE,UAAU,EAAE,MAAM;AACpB,EAAE,UAAU,EAAE,KAAK;AACnB,EAAE,SAAS,EAAE,OAAO;AACpB,EAAE,gBAAgB,EAAE;AACpB,CAAC;AACD,MAAM,QAAQ,GAAG;AACjB,EAAE,UAAU;AACZ,EAAE,eAAe;AACjB,EAAE,eAAe;AACjB,EAAE,YAAY;AACd,EAAE,aAAa;AACf,EAAE,YAAY;AACd,EAAE,iBAAiB;AACnB,EAAE,kBAAkB;AACpB,EAAE,gBAAgB;AAClB,EAAE,UAAU;AACZ,EAAE,aAAa;AACf,EAAE;AACF,CAAC;AACD,MAAM,YAAY,GAAG,MAAM,CAAC,yBAAyB,CAAC;AACtD,SAAS,cAAc,CAAC,KAAK,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,EAAE;AAChD,EAAE,MAAM,YAAY,GAAG,GAAG,CAAC,IAAI,CAAC;AAChC,EAAE,MAAM,UAAU,GAAG,GAAG,CAAC,IAAI,CAAC;AAC9B,EAAE,MAAM,YAAY,GAAG,GAAG,CAAC,iBAAiB,IAAI,IAAI,EAAE,EAAE,OAAO,EAAE,CAAC;AAClE,EAAE,MAAM,YAAY,GAAG,GAAG,CAAC,KAAK,CAAC;AACjC,EAAE,MAAM,YAAY,GAAG,GAAG,CAAC,MAAM,EAAE,CAAC;AACpC,EAAE,MAAM,YAAY,GAAG,GAAG,CAAC,MAAM,EAAE,CAAC;AACpC,EAAE,MAAM,KAAK,GAAG,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC;AAC/B,EAAE,MAAM,MAAM,GAAG,GAAG,CAAC,EAAE,CAAC;AACxB,EAAE,MAAM,cAAc,GAAG,GAAG,CAAC,EAAE,CAAC;AAChC,EAAE,IAAI,iBAAiB,GAAG,IAAI;AAC9B,EAAE,IAAI,eAAe,GAAG,IAAI;AAC5B,EAAE,YAAY,CAAC,KAAK,CAAC;AACrB,EAAE,MAAM;AACR,IAAI,KAAK;AACT,IAAI,KAAK;AACT,IAAI,WAAW;AACf,IAAI,MAAM;AACV,IAAI,KAAK,EAAE,MAAM;AACjB,IAAI,OAAO;AACX,IAAI,OAAO;AACX,IAAI,iBAAiB;AACrB,IAAI;AACJ,GAAG,GAAG,eAAe,CAAC,KAAK,CAAC;AAC5B,EAAE,MAAM,KAAK,GAAG,QAAQ,CAAC,MAAM,KAAK,CAAC,IAAI,GAAG,KAAK,CAAC,OAAO,CAAC;AAC1D,EAAE,MAAM,IAAI,GAAG,QAAQ,CAAC,MAAM,KAAK,CAAC,IAAI,IAAI,KAAK,CAAC,KAAK,CAAC;AACxD,EAAE,MAAM,SAAS,GAAG,QAAQ,CAAC,MAAM,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,IAAI,IAAI,CAAC;AAChE,EAAE,MAAM,QAAQ,GAAG,QAAQ,CAAC,MAAM,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,IAAI,IAAI,CAAC;AAC/D,EAAE,MAAM,OAAO,GAAG,QAAQ;AAC1B,IAAI,MAAM,KAAK,CAAC,OAAO,KAAK,OAAO,CAAC,KAAK,GAAG,cAAc,CAAC,OAAO,CAAC,KAAK,CAAC,GAAG,IAAI;AAChF,GAAG;AACH,EAAE,MAAM,OAAO,GAAG,QAAQ;AAC1B,IAAI,MAAM,KAAK,CAAC,OAAO,KAAK,OAAO,CAAC,KAAK,GAAG,cAAc,CAAC,OAAO,CAAC,KAAK,CAAC,GAAG,IAAI;AAChF,GAAG;AACH,EAAE,MAAM,aAAa,GAAG,QAAQ,CAAC,MAAM,KAAK,CAAC,aAAa,CAAC;AAC3D,EAAE,MAAM,eAAe,GAAG,QAAQ,CAAC,MAAM,CAAC,CAAC,KAAK,CAAC,eAAe,CAAC;AACjE,EAAE,MAAM,kBAAkB,GAAG,QAAQ,CAAC,MAAM,CAAC,CAAC,KAAK,CAAC,kBAAkB,CAAC;AACvE,EAAE,MAAM,SAAS,GAAG,QAAQ,CAAC,MAAM,KAAK,CAAC,KAAK,KAAK,SAAS,CAAC;AAC7D,EAAE,MAAM,QAAQ,GAAG,QAAQ,CAAC,MAAM,KAAK,CAAC,KAAK,KAAK,QAAQ,CAAC;AAC3D,EAAE,MAAM,OAAO,GAAG,QAAQ,CAAC,MAAM,KAAK,CAAC,KAAK,KAAK,OAAO,CAAC;AACzD,EAAE,MAAM,uBAAuB,GAAG,MAAM;AACxC,IAAI,YAAY,CAAC,KAAK,GAAG,IAAI;AAC7B,IAAI,IAAI,CAAC,kBAAkB,CAAC;AAC5B,EAAE,CAAC;AACH,EAAE,MAAM,sBAAsB,GAAG,MAAM;AACvC,IAAI,YAAY,CAAC,KAAK,GAAG,KAAK;AAC9B,IAAI,IAAI,CAAC,gBAAgB,CAAC;AAC1B,IAAI,IAAI,iBAAiB,EAAE;AAC3B,MAAM,iBAAiB,CAAC,OAAO,CAAC,IAAI,CAAC;AACrC,MAAM,iBAAiB,GAAG,IAAI;AAC9B,IAAI;AACJ,EAAE,CAAC;AACH,EAAE,MAAM,UAAU,GAAG,CAAC,OAAO,EAAE,MAAM,EAAE,IAAI,GAAG,KAAK,CAAC,KAAK,KAAK;AAC9D,IAAI,OAAO,QAAQ,CAAC,OAAO,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,CAAC,KAAK,CAAC;AACxD,EAAE,CAAC;AACH,EAAE,MAAM,cAAc,GAAG,CAAC,IAAI,KAAK;AACnC,IAAI,OAAO,qBAAqB,CAAC,IAAI,EAAE,KAAK,CAAC,KAAK,EAAE,MAAM,CAAC,KAAK,CAAC;AACjE,EAAE,CAAC;AACH,EAAE,MAAM,eAAe,GAAG,CAAC,GAAG,KAAK;AACnC,IAAI,IAAI,CAAC,iBAAiB,CAAC,KAAK,IAAI,CAAC,gBAAgB,CAAC,KAAK;AAC3D,MAAM;AACN,IAAI,GAAG,CAAC,UAAU,GAAG,gBAAgB,CAAC,KAAK,CAAC,UAAU;AACtD,MAAM,iBAAiB,CAAC,KAAK,CAAC,GAAG;AACjC,MAAM,GAAG,CAAC;AACV,KAAK;AACL,EAAE,CAAC;AACH,EAAE,MAAM,gBAAgB,GAAG,CAAC,GAAG,KAAK;AACpC,IAAI,GAAG,CAAC,WAAW,GAAG,GAAG,CAAC,OAAO,IAAI,GAAG,CAAC,GAAG,KAAK,YAAY,CAAC,KAAK;AACnE,EAAE,CAAC;AACH,EAAE,MAAM,OAAO,GAAG,CAAC,KAAK,EAAE,EAAE,KAAK;AACjC,IAAI,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE;AAC9B,MAAM,KAAK,MAAM,GAAG,IAAI,IAAI,CAAC,IAAI,EAAE;AACnC,QAAQ,IAAI,EAAE,CAAC,GAAG,CAAC,KAAK,KAAK;AAC7B,UAAU;AACV,MAAM;AACN,IAAI;AACJ,EAAE,CAAC;AACH,EAAE,MAAM,IAAI,GAAG,QAAQ;AACvB,IAAI,MAAM,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,MAAM,EAAE,IAAI,KAAK;AAChD,MAAM,MAAM,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC,QAAQ,CAAC;AACnC,MAAM,OAAO,MAAM;AACnB,IAAI,CAAC,EAAE,EAAE;AACT,GAAG;AACH,EAAE,MAAM,UAAU,GAAG,QAAQ,CAAC,MAAM;AACpC,IAAI,MAAM,MAAM,GAAG,EAAE;AACrB,IAAI,CAAC,KAAK,CAAC,UAAU,IAAI,EAAE,EAAE,OAAO,CAAC,CAAC,IAAI,EAAE,CAAC,KAAK;AAClD,MAAM,IAAI,CAAC,IAAI,IAAI,CAAC,IAAI,CAAC,KAAK;AAC9B,QAAQ;AACR,MAAM,MAAM,CAAC,IAAI;AACjB,QAAQ,IAAI,SAAS;AACrB,UAAU;AACV,YAAY,GAAG,IAAI;AACnB,YAAY,KAAK,EAAE,IAAI,CAAC,KAAK,IAAI;AACjC,WAAW;AACX,UAAU,KAAK,CAAC,KAAK;AACrB,UAAU,MAAM,CAAC;AACjB;AACA,OAAO;AACP,IAAI,CAAC,CAAC;AACN,IAAI,IAAI,iBAAiB,CAAC,KAAK,EAAE;AACjC,MAAM,MAAM,CAAC,IAAI,CAAC,iBAAiB,CAAC,KAAK,CAAC;AAC1C,IAAI;AACJ,IAAI,OAAO,MAAM;AACjB,EAAE,CAAC,CAAC;AACJ,EAAE,MAAM,aAAa,GAAG,QAAQ,CAAC,MAAM,aAAa,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC;AACvE,EAAE,MAAM,gBAAgB,GAAG,QAAQ,CAAC,MAAM;AAC1C,IAAI,MAAM,GAAG,GAAG,IAAI,gBAAgB,EAAE;AACtC,IAAI,UAAU,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,IAAI,KAAK;AACvC,MAAM,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,KAAK,KAAK;AACrC,QAAQ,GAAG,CAAC,MAAM,CAAC,IAAI,EAAE,KAAK,EAAE,IAAI,CAAC,KAAK,CAAC;AAC3C,MAAM,CAAC,CAAC;AACR,IAAI,CAAC,CAAC;AACN,IAAI,OAAO,GAAG;AACd,EAAE,CAAC,CAAC;AACJ,EAAE,MAAM,QAAQ,GAAG,QAAQ,CAAC,MAAM;AAClC,IAAI,OAAO,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,MAAM,EAAE,GAAG,KAAK;AAC9C,MAAM,MAAM,CAAC,GAAG,CAAC,QAAQ,CAAC,GAAG,EAAE,GAAG,EAAE,KAAK,EAAE,EAAE,EAAE;AAC/C,MAAM,MAAM,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,gBAAgB,CAAC,KAAK,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC;AAC9E,MAAM,OAAO,MAAM;AACnB,IAAI,CAAC,EAAE,EAAE,CAAC;AACV,EAAE,CAAC,CAAC;AACJ,EAAE,MAAM,qBAAqB,GAAG,CAAC,MAAM,EAAE,aAAa,KAAK;AAC3D,IAAI,MAAM,gBAAgB,GAAG,KAAK,CAAC,eAAe,IAAI,KAAK,CAAC,kBAAkB;AAC9E,IAAI,IAAI,gBAAgB,IAAI,IAAI;AAChC,MAAM,OAAO,EAAE;AACf,IAAI,IAAI,WAAW,CAAC,gBAAgB,CAAC,EAAE;AACvC,MAAM,OAAO,gBAAgB,GAAG,MAAM,GAAG,EAAE;AAC3C,IAAI;AACJ,IAAI,IAAI,gBAAgB,CAAC,UAAU,CAAC,OAAO,CAAC,EAAE;AAC9C,MAAM,OAAO,aAAa,GAAG,CAAC,GAAG,OAAO,GAAG,gBAAgB;AAC3D,IAAI;AACJ,IAAI,OAAO,MAAM,GAAG,CAAC,GAAG,MAAM,GAAG,gBAAgB;AACjD,EAAE,CAAC;AACH,EAAE,MAAM,oBAAoB,GAAG,MAAM;AACrC,IAAI,IAAI,EAAE,EAAE,EAAE;AACd,IAAI,IAAI,CAAC,aAAa,CAAC,KAAK;AAC5B,MAAM,OAAO,IAAI;AACjB,IAAI,MAAM,IAAI,GAAG,UAAU,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,KAAK,KAAK,KAAK,CAAC,OAAO,CAAC,IAAI,UAAU,CAAC,KAAK,CAAC,CAAC,CAAC;AACvF,IAAI,IAAI,CAAC,IAAI,IAAI,CAAC,IAAI,CAAC,SAAS;AAChC,MAAM,OAAO,IAAI;AACjB,IAAI,MAAM,CAAC,KAAK,CAAC,GAAG,IAAI,CAAC,MAAM;AAC/B,IAAI,MAAM,IAAI,GAAG,CAAC,CAAC,EAAE,GAAG,KAAK,CAAC,KAAK,KAAK,IAAI,GAAG,MAAM,GAAG,EAAE,CAAC,IAAI,MAAM,CAAC,EAAE,GAAG,KAAK,CAAC,GAAG,KAAK,IAAI,GAAG,MAAM,GAAG,EAAE,CAAC,IAAI,CAAC;AACjH,IAAI,OAAO,IAAI,GAAG,cAAc,CAAC,IAAI,CAAC,GAAG,IAAI;AAC7C,EAAE,CAAC;AACH,EAAE,MAAM,qBAAqB,GAAG,MAAM;AACtC,IAAI,IAAI,WAAW,CAAC,SAAS,CAAC,KAAK,CAAC;AACpC,MAAM,OAAO,SAAS,CAAC,KAAK;AAC5B,IAAI,MAAM,IAAI,GAAG,oBAAoB,EAAE;AACvC,IAAI,IAAI,WAAW,CAAC,IAAI,CAAC;AACzB,MAAM,OAAO,IAAI;AACjB,IAAI,OAAO,cAAc,iBAAiB,IAAI,IAAI,EAAE,CAAC;AACrD,EAAE,CAAC;AACH,EAAE,MAAM,kBAAkB,GAAG,CAAC,IAAI,EAAE,IAAI,GAAG,EAAE,KAAK;AAClD,IAAI,MAAM,EAAE,IAAI,GAAG,KAAK,CAAC,KAAK,EAAE,QAAQ,GAAG,CAAC,EAAE,KAAK,EAAE,GAAG,IAAI;AAC5D,IAAI,MAAM,UAAU,GAAG,QAAQ,GAAG,CAAC,GAAG,CAAC,GAAG,QAAQ,GAAG,EAAE,KAAK,CAAC,KAAK,GAAG,QAAQ,CAAC;AAC9E,IAAI,IAAI,QAAQ,GAAG,UAAU,CAAC,IAAI,EAAE,UAAU,EAAE,IAAI,CAAC;AACrD,IAAI,IAAI,MAAM,GAAG,UAAU,CAAC,QAAQ,EAAE,KAAK,CAAC,KAAK,GAAG,CAAC,EAAE,IAAI,CAAC;AAC5D,IAAI,IAAI,CAAC,KAAK,EAAE;AAChB,MAAM,IAAI,gBAAgB,CAAC,QAAQ,EAAE,OAAO,CAAC,KAAK,CAAC,EAAE;AACrD,QAAQ,QAAQ,GAAG,OAAO,CAAC,KAAK;AAChC,MAAM,CAAC,MAAM,IAAI,eAAe,CAAC,MAAM,EAAE,OAAO,CAAC,KAAK,CAAC,EAAE;AACzD,QAAQ,QAAQ,GAAG,UAAU,CAAC,OAAO,CAAC,KAAK,EAAE,CAAC,GAAG,KAAK,CAAC,KAAK,CAAC;AAC7D,MAAM;AACN,MAAM,MAAM,GAAG,UAAU,CAAC,QAAQ,EAAE,KAAK,CAAC,KAAK,GAAG,CAAC,CAAC;AACpD,IAAI;AACJ,IAAI,OAAO,EAAE,QAAQ,EAAE,MAAM,EAAE;AAC/B,EAAE,CAAC;AACH,EAAE,MAAM,iBAAiB,GAAG,CAAC,OAAO,EAAE,OAAO,EAAE,iBAAiB,GAAG,EAAE,KAAK;AAC1E,IAAI,IAAI,iBAAiB,KAAK,MAAM,IAAI,iBAAiB,KAAK,MAAM;AACpE,MAAM,OAAO,iBAAiB;AAC9B,IAAI,IAAI,CAAC,OAAO,IAAI,IAAI,GAAG,MAAM,GAAG,OAAO,CAAC,IAAI,OAAO,OAAO,IAAI,IAAI,GAAG,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;AAC/F,MAAM,OAAO,MAAM;AACnB,IAAI,MAAM,SAAS,GAAG,eAAe,CAAC,OAAO,EAAE,OAAO,CAAC;AACvD,IAAI,MAAM,SAAS,GAAG,gBAAgB,CAAC,OAAO,EAAE,OAAO,CAAC;AACxD,IAAI,IAAI,CAAC,SAAS,IAAI,CAAC,SAAS,EAAE;AAClC,MAAM,OAAO,MAAM;AACnB,IAAI;AACJ,IAAI,IAAI,iBAAiB,KAAK,SAAS,EAAE;AACzC,MAAM,OAAO,SAAS,GAAG,YAAY,GAAG,UAAU;AAClD,IAAI;AACJ,IAAI,OAAO,SAAS,GAAG,aAAa,GAAG,YAAY;AACnD,EAAE,CAAC;AACH,EAAE,MAAM,YAAY,GAAG,CAAC,IAAI,GAAG,EAAE,KAAK;AACtC,IAAI,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,MAAM,KAAK;AAC5C,MAAM,MAAM,EAAE,QAAQ,GAAG,CAAC,EAAE,KAAK,GAAG,KAAK,EAAE,UAAU,EAAE,GAAG,IAAI;AAC9D,MAAM,MAAM,IAAI,GAAG,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC,IAAI,GAAG,qBAAqB,EAAE;AAC/E,MAAM,MAAM,EAAE,QAAQ,EAAE,GAAG,kBAAkB,CAAC,IAAI,EAAE;AACpD,QAAQ,QAAQ;AAChB,QAAQ;AACR,OAAO,CAAC;AACR,MAAM,MAAM,KAAK,GAAG,EAAE;AACtB,MAAM,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,KAAK,CAAC,KAAK,EAAE,CAAC,EAAE,EAAE;AAC5C,QAAQ,MAAM,OAAO,GAAG,UAAU,CAAC,QAAQ,EAAE,CAAC,CAAC;AAC/C,QAAQ,MAAM,SAAS,GAAG,CAAC,GAAG,CAAC;AAC/B,QAAQ,MAAM,GAAG,GAAG,IAAI,CAAC,IAAI,CAAC,SAAS,GAAG,KAAK,CAAC,OAAO,CAAC;AACxD,QAAQ,MAAM,UAAU,GAAG,KAAK,CAAC,IAAI,GAAG,GAAG,GAAG,CAAC;AAC/C,QAAQ,MAAM,MAAM,GAAG,SAAS,GAAG,KAAK,CAAC,OAAO,IAAI,KAAK,CAAC,OAAO;AACjE,QAAQ,MAAM,aAAa,GAAG,KAAK,CAAC,OAAO,GAAG,MAAM,GAAG,CAAC;AACxD,QAAQ,MAAM,kBAAkB,GAAG,qBAAqB,CAAC,MAAM,EAAE,aAAa,CAAC;AAC/E,QAAQ,KAAK,CAAC,IAAI;AAClB,UAAU,MAAM,CAAC,KAAK,CAAC,OAAO,CAAC;AAC/B,YAAY,GAAG,OAAO;AACtB,YAAY,IAAI,EAAE,KAAK,CAAC,KAAK;AAC7B,YAAY,aAAa,EAAE,KAAK,CAAC,aAAa;AAC9C,YAAY,SAAS,EAAE,KAAK,CAAC,SAAS;AACtC,YAAY,QAAQ,EAAE,SAAS;AAC/B,YAAY,GAAG;AACf,YAAY,UAAU;AACtB,YAAY,MAAM;AAClB,YAAY,aAAa;AACzB,YAAY,eAAe,EAAE,eAAe,CAAC,KAAK;AAClD,YAAY,kBAAkB,EAAE,kBAAkB,CAAC,KAAK;AACxD,YAAY;AACZ,WAAW;AACX,SAAS;AACT,MAAM;AACN,MAAM,cAAc,CAAC,KAAK,GAAG,iBAAiB;AAC9C,QAAQ,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC;AACvB,QAAQ,KAAK,CAAC,CAAC,CAAC;AAChB,QAAQ;AACR,OAAO;AACP,MAAM,MAAM,CAAC,KAAK,GAAG,KAAK;AAC1B,MAAM,IAAI,cAAc,CAAC,KAAK,IAAI,cAAc,CAAC,KAAK,KAAK,MAAM,EAAE;AACnE,QAAQ,iBAAiB,GAAG;AAC5B,UAAU,OAAO;AACjB,UAAU;AACV,SAAS;AACT,MAAM,CAAC,MAAM;AACb,QAAQ,OAAO,CAAC,IAAI,CAAC;AACrB,MAAM;AACN,IAAI,CAAC,CAAC;AACN,EAAE,CAAC;AACH,EAAE,MAAM,QAAQ,GAAG,CAAC,KAAK,KAAK;AAC9B,IAAI,MAAM,QAAQ,GAAG,SAAS,CAAC,KAAK,IAAI,cAAc,iBAAiB,IAAI,IAAI,EAAE,CAAC;AAClF,IAAI,OAAO,UAAU,CAAC,QAAQ,EAAE,KAAK,CAAC;AACtC,EAAE,CAAC;AACH,EAAE,MAAM,OAAO,GAAG,CAAC,MAAM,EAAE,IAAI,GAAG,EAAE,KAAK;AACzC,IAAI,MAAM,IAAI,GAAG,WAAW,CAAC,MAAM,CAAC,GAAG,MAAM,GAAG,cAAc,CAAC,MAAM,CAAC;AACtE,IAAI,MAAM,CAAC,MAAM;AACjB,MAAM,IAAI;AACV,MAAM,kBAAkB,CAAC,IAAI,EAAE;AAC/B,QAAQ,GAAG,IAAI;AACf,QAAQ,KAAK,EAAE;AACf,OAAO;AACP,KAAK;AACL,IAAI,MAAM,YAAY,GAAG,gBAAgB;AACzC,MAAM,IAAI,CAAC,QAAQ;AACnB,MAAM,IAAI,CAAC,MAAM;AACjB,MAAM,KAAK,CAAC,KAAK;AACjB,MAAM,MAAM,CAAC;AACb,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,KAAK,kBAAkB,CAAC,CAAC,EAAE,OAAO,CAAC,KAAK,EAAE,OAAO,CAAC,KAAK,CAAC,CAAC;AACrE,IAAI,OAAO,YAAY,CAAC,IAAI,CAAC,CAAC,GAAG,KAAK,GAAG,CAAC;AAC1C,EAAE,CAAC;AACH,EAAE,MAAM,SAAS,GAAG,CAAC,KAAK,EAAE,IAAI,GAAG,EAAE,KAAK;AAC1C,IAAI,OAAO,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAC,EAAE,IAAI,CAAC;AACzC,EAAE,CAAC;AACH,EAAE,MAAM,WAAW,GAAG,QAAQ,CAAC,MAAM,SAAS,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;AAC5D,EAAE,MAAM,WAAW,GAAG,QAAQ,CAAC,MAAM,SAAS,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;AAC3D,EAAE,MAAM,IAAI,GAAG,OAAO,MAAM,EAAE,IAAI,GAAG,EAAE,KAAK;AAC5C,IAAI,IAAI,CAAC,IAAI,CAAC,KAAK,IAAI,CAAC,OAAO,CAAC,MAAM,EAAE,IAAI,CAAC;AAC7C,MAAM,OAAO,KAAK;AAClB,IAAI,IAAI,IAAI,CAAC,QAAQ,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC,QAAQ,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE;AAC7E,MAAM,WAAW,CAAC,EAAE,EAAE,EAAE,YAAY,CAAC,KAAK,EAAE,SAAS,EAAE,CAAC,EAAE,CAAC;AAC3D,MAAM,IAAI,IAAI,CAAC,IAAI,EAAE;AACrB,QAAQ,WAAW,CAAC,MAAM,EAAE,EAAE,CAAC;AAC/B,QAAQ,KAAK,CAAC,KAAK,GAAG,IAAI,CAAC,IAAI;AAC/B,MAAM;AACN,MAAM,MAAM,YAAY,CAAC;AACzB,QAAQ,GAAG,IAAI;AACf,QAAQ,IAAI,EAAE,IAAI,CAAC,QAAQ;AAC3B,QAAQ,QAAQ,EAAE,CAAC;AACnB,QAAQ,KAAK,EAAE;AACf,OAAO,CAAC;AACR,MAAM,IAAI,CAAC,UAAU,EAAE,MAAM,CAAC,KAAK,CAAC;AACpC,IAAI;AACJ,IAAI,OAAO,IAAI;AACf,EAAE,CAAC;AACH,EAAE,MAAM,MAAM,GAAG,CAAC,KAAK,EAAE,IAAI,GAAG,EAAE,KAAK;AACvC,IAAI,OAAO,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,EAAE,IAAI,CAAC;AACtC,EAAE,CAAC;AACH,EAAE,MAAM,QAAQ,GAAG,MAAM;AACzB,IAAI,OAAO,MAAM,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC;AAC9B,EAAE,CAAC;AACH,EAAE,MAAM,QAAQ,GAAG,MAAM;AACzB,IAAI,OAAO,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC;AAC7B,EAAE,CAAC;AACH,EAAE,MAAM,YAAY,GAAG,CAAC,IAAI,KAAK;AACjC,IAAI,MAAM,OAAO,GAAG,SAAS,CAAC,KAAK,GAAG,WAAW,GAAG,EAAE;AACtD,IAAI,MAAM,WAAW,GAAG,CAAC,IAAI,EAAE,MAAM,CAAC,KAAK,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,EAAE,OAAO,CAAC,CAAC;AACtE,IAAI,MAAM,QAAQ,GAAG,CAAC,EAAE,WAAW,CAAC,eAAe,EAAE,WAAW,CAAC,cAAc,CAAC;AAChF,IAAI,MAAM,EAAE,GAAG,YAAY,CAAC,KAAK;AACjC,IAAI,IAAI,EAAE,EAAE;AACZ,MAAM,MAAM,WAAW,GAAG,EAAE,CAAC,aAAa,CAAC,QAAQ,CAAC;AACpD,MAAM,IAAI,WAAW,EAAE;AACvB,QAAQ,WAAW,CAAC,KAAK,EAAE;AAC3B,QAAQ,OAAO,IAAI;AACnB,MAAM;AACN,IAAI;AACJ,IAAI,OAAO,KAAK;AAChB,EAAE,CAAC;AACH,EAAE,MAAM,SAAS,GAAG,OAAO,IAAI,EAAE,IAAI,GAAG,EAAE,KAAK;AAC/C,IAAI,IAAI,YAAY,CAAC,IAAI,CAAC;AAC1B,MAAM,OAAO,IAAI;AACjB,IAAI,MAAM,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC;AAC1B,IAAI,OAAO,YAAY,CAAC,IAAI,CAAC;AAC7B,EAAE,CAAC;AACH,EAAE,MAAM,UAAU,GAAG,CAAC,GAAG,EAAE,KAAK,KAAK;AACrC,IAAI,YAAY,CAAC,KAAK,GAAG,GAAG,CAAC,GAAG;AAChC,IAAI,IAAI,CAAC,UAAU,EAAE,GAAG,EAAE,KAAK,CAAC;AAChC,EAAE,CAAC;AACH,EAAE,MAAM,eAAe,GAAG,CAAC,GAAG,EAAE,KAAK,KAAK;AAC1C,IAAI,IAAI,CAAC,eAAe,EAAE,GAAG,EAAE,KAAK,CAAC;AACrC,EAAE,CAAC;AACH,EAAE,MAAM,eAAe,GAAG,CAAC,GAAG,EAAE,KAAK,KAAK;AAC1C,IAAI,IAAI,CAAC,eAAe,EAAE,GAAG,EAAE,KAAK,CAAC;AACrC,EAAE,CAAC;AACH,EAAE,MAAM,YAAY,GAAG,CAAC,GAAG,EAAE,KAAK,KAAK;AACvC,IAAI,YAAY,CAAC,KAAK,GAAG,GAAG,CAAC,GAAG;AAChC,IAAI,UAAU,CAAC,KAAK,GAAG,GAAG;AAC1B,IAAI,GAAG,CAAC,SAAS,GAAG,IAAI;AACxB,IAAI,IAAI,CAAC,YAAY,EAAE,GAAG,EAAE,KAAK,CAAC;AAClC,EAAE,CAAC;AACH,EAAE,MAAM,aAAa,GAAG,CAAC,GAAG,EAAE,KAAK,KAAK;AACxC,IAAI,UAAU,CAAC,KAAK,GAAG,IAAI;AAC3B,IAAI,GAAG,CAAC,SAAS,GAAG,KAAK;AACzB,IAAI,IAAI,CAAC,aAAa,EAAE,GAAG,EAAE,KAAK,CAAC;AACnC,EAAE,CAAC;AACH,EAAE,MAAM,YAAY,GAAG,CAAC,GAAG,EAAE,KAAK,KAAK;AACvC,IAAI,IAAI,CAAC,YAAY,EAAE,GAAG,EAAE,KAAK,CAAC;AAClC,IAAI,MAAM,IAAI,GAAG,GAAG,CAAC,QAAQ;AAC7B,IAAI,IAAI,OAAO,GAAG,IAAI;AACtB,IAAI,QAAQ,KAAK,CAAC,GAAG;AACrB,MAAM,KAAK,WAAW,EAAE;AACxB,QAAQ,OAAO,GAAG,OAAO,CAAC,IAAI,EAAE,EAAE,CAAC;AACnC,QAAQ;AACR,MAAM;AACN,MAAM,KAAK,YAAY,EAAE;AACzB,QAAQ,OAAO,GAAG,OAAO,CAAC,IAAI,EAAE,CAAC,CAAC;AAClC,QAAQ;AACR,MAAM;AACN,MAAM,KAAK,SAAS,EAAE;AACtB,QAAQ,OAAO,GAAG,OAAO,CAAC,IAAI,EAAE,EAAE,CAAC;AACnC,QAAQ;AACR,MAAM;AACN,MAAM,KAAK,WAAW,EAAE;AACxB,QAAQ,OAAO,GAAG,OAAO,CAAC,IAAI,EAAE,CAAC,CAAC;AAClC,QAAQ;AACR,MAAM;AACN,MAAM,KAAK,MAAM,EAAE;AACnB,QAAQ,OAAO,GAAG,OAAO,CAAC,IAAI,EAAE,CAAC,GAAG,CAAC,eAAe,GAAG,CAAC,CAAC;AACzD,QAAQ;AACR,MAAM;AACN,MAAM,KAAK,KAAK,EAAE;AAClB,QAAQ,OAAO,GAAG,OAAO,CAAC,IAAI,EAAE,GAAG,CAAC,sBAAsB,CAAC;AAC3D,QAAQ;AACR,MAAM;AACN,MAAM,KAAK,QAAQ,EAAE;AACrB,QAAQ,IAAI,KAAK,CAAC,MAAM,EAAE;AAC1B,UAAU,OAAO,GAAG,QAAQ,CAAC,IAAI,EAAE,EAAE,CAAC;AACtC,QAAQ,CAAC,MAAM;AACf,UAAU,OAAO,GAAG,SAAS,CAAC,IAAI,EAAE,EAAE,CAAC;AACvC,QAAQ;AACR,QAAQ;AACR,MAAM;AACN,MAAM,KAAK,UAAU,EAAE;AACvB,QAAQ,IAAI,KAAK,CAAC,MAAM,EAAE;AAC1B,UAAU,OAAO,GAAG,QAAQ,CAAC,IAAI,EAAE,CAAC,CAAC;AACrC,QAAQ,CAAC,MAAM;AACf,UAAU,OAAO,GAAG,SAAS,CAAC,IAAI,EAAE,CAAC,CAAC;AACtC,QAAQ;AACR,QAAQ;AACR,MAAM;AACN;AACA,IAAI,IAAI,OAAO,EAAE;AACjB,MAAM,KAAK,CAAC,cAAc,EAAE;AAC5B,MAAM,SAAS,CAAC,OAAO,CAAC,CAAC,KAAK,EAAE;AAChC,IAAI;AACJ,EAAE,CAAC;AACH,EAAE,MAAM,SAAS,GAAG,CAAC,KAAK,KAAK;AAC/B,IAAI,MAAM,GAAG,GAAG,UAAU,CAAC,KAAK;AAChC,IAAI,IAAI,GAAG,IAAI,IAAI,EAAE;AACrB,MAAM,YAAY,CAAC,GAAG,EAAE,KAAK,CAAC;AAC9B,IAAI;AACJ,EAAE,CAAC;AACH,EAAE,MAAM,iBAAiB,GAAG,CAAC,IAAI,EAAE,KAAK,KAAK;AAC7C,IAAI,IAAI,CAAC,iBAAiB,EAAE,IAAI,EAAE,KAAK,CAAC;AACxC,EAAE,CAAC;AACH,EAAE,YAAY,CAAC;AACf,IAAI,IAAI,EAAE,KAAK,CAAC,WAAW;AAC3B,IAAI,QAAQ,EAAE,KAAK,CAAC;AACpB,GAAG,CAAC;AACJ,EAAE,SAAS,CAAC,MAAM;AAClB,IAAI,IAAI,CAAC,KAAK,CAAC,gBAAgB,IAAI,YAAY,CAAC,KAAK,EAAE;AACvD,MAAM,eAAe,GAAG,yBAAyB;AACjD,QAAQ,YAAY,CAAC,KAAK;AAC1B,QAAQ,CAAC,EAAE,MAAM,GAAG,KAAK,EAAE,OAAO,GAAG,KAAK,EAAE,KAAK;AACjD,UAAU,IAAI,MAAM,EAAE;AACtB,YAAY,QAAQ,EAAE;AACtB,UAAU,CAAC,MAAM,IAAI,OAAO,EAAE;AAC9B,YAAY,QAAQ,EAAE;AACtB,UAAU;AACV,QAAQ,CAAC;AACT,QAAQ,UAAU,CAAC,OAAO;AAC1B,OAAO;AACP,IAAI;AACJ,EAAE,CAAC,CAAC;AACJ,EAAE,WAAW,CAAC,MAAM;AACpB,IAAI,MAAM,CAAC,KAAK,GAAG,EAAE;AACrB,IAAI,IAAI,eAAe;AACvB,MAAM,eAAe,EAAE;AACvB,EAAE,CAAC,CAAC;AACJ,EAAE,KAAK;AACP,IAAI,MAAM,MAAM,CAAC,KAAK;AACtB,IAAI,MAAM;AACV,MAAM,YAAY,EAAE;AACpB,IAAI;AACJ,GAAG;AACH,EAAE,KAAK;AACP,IAAI,MAAM,KAAK,CAAC,KAAK;AACrB,IAAI,MAAM,YAAY;AACtB,GAAG;AACH,EAAE,KAAK;AACP,IAAI,MAAM,KAAK,CAAC,IAAI;AACpB,IAAI,MAAM,KAAK,CAAC,KAAK,GAAG,KAAK,CAAC;AAC9B,GAAG;AACH,EAAE,KAAK;AACP,IAAI,MAAM,KAAK,CAAC,KAAK;AACrB,IAAI,MAAM;AACV,MAAM,aAAa,CAAC,MAAM,EAAE,MAAM;AAClC,QAAQ,YAAY,EAAE;AACtB,MAAM,CAAC,CAAC;AACR,MAAM,IAAI,CAAC,aAAa,EAAE,KAAK,CAAC,KAAK,CAAC;AACtC,IAAI;AACJ,GAAG;AACH,EAAE,KAAK;AACP,IAAI,MAAM,YAAY,CAAC,KAAK;AAC5B,IAAI,MAAM;AACV,MAAM,OAAO,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC,GAAG,KAAK,gBAAgB,CAAC,GAAG,CAAC,CAAC;AAC3D,IAAI;AACJ,GAAG;AACH,EAAE,WAAW,CAAC,MAAM;AACpB,IAAI,IAAI,CAAC,cAAc,EAAE,MAAM,CAAC,KAAK,CAAC;AACtC,IAAI,OAAO,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC,GAAG,KAAK;AACnC,MAAM,eAAe,CAAC,GAAG,CAAC;AAC1B,MAAM,gBAAgB,CAAC,GAAG,CAAC;AAC3B,IAAI,CAAC,CAAC;AACN,EAAE,CAAC,CAAC;AACJ,EAAE,MAAM,OAAO,GAAG;AAClB,IAAI,IAAI;AACR,IAAI,YAAY;AAChB,IAAI,UAAU;AACd,IAAI,YAAY;AAChB,IAAI,YAAY;AAChB,IAAI,YAAY;AAChB,IAAI,IAAI,EAAE,KAAK;AACf,IAAI,KAAK,EAAE,MAAM;AACjB,IAAI,cAAc;AAClB,IAAI,KAAK;AACT,IAAI,KAAK;AACT,IAAI,WAAW;AACf,IAAI,MAAM;AACV,IAAI,KAAK,EAAE,MAAM;AACjB,IAAI,UAAU;AACd,IAAI,iBAAiB;AACrB,IAAI,aAAa;AACjB,IAAI,gBAAgB;AACpB,IAAI,IAAI;AACR,IAAI,QAAQ;AACZ,IAAI,KAAK;AACT,IAAI,IAAI;AACR,IAAI,SAAS;AACb,IAAI,QAAQ;AACZ,IAAI,WAAW;AACf,IAAI,WAAW;AACf,IAAI,OAAO;AACX,IAAI,OAAO;AACX,IAAI,SAAS;AACb,IAAI,QAAQ;AACZ,IAAI,OAAO;AACX,IAAI,aAAa;AACjB,IAAI,eAAe;AACnB,IAAI,kBAAkB;AACtB,IAAI,cAAc;AAClB,IAAI,OAAO;AACX,IAAI,SAAS;AACb,IAAI,IAAI;AACR,IAAI,MAAM;AACV,IAAI,QAAQ;AACZ,IAAI,QAAQ;AACZ,IAAI,uBAAuB;AAC3B,IAAI,sBAAsB;AAC1B,IAAI,YAAY;AAChB,IAAI,SAAS;AACb,IAAI,SAAS;AACb,IAAI,YAAY;AAChB,IAAI,UAAU;AACd,IAAI,eAAe;AACnB,IAAI,eAAe;AACnB,IAAI,YAAY;AAChB,IAAI,aAAa;AACjB,IAAI;AACJ,GAAG;AACH,EAAE,OAAO,CAAC,YAAY,EAAE,OAAO,CAAC;AAChC,EAAE,OAAO,OAAO;AAChB;AACA,SAAS,WAAW,GAAG;AACvB,EAAE,MAAM,OAAO,GAAG,MAAM,CAAC,YAAY,CAAC;AACtC,EAAE,IAAI,OAAO;AACb,IAAI,OAAO,OAAO;AAClB,EAAE,MAAM,IAAI,KAAK;AACjB,IAAI;AACJ,GAAG;AACH;AACA,MAAMG,aAAW,GAAG,eAAe,CAAC;AACpC,EAAE,YAAY,EAAE,KAAK;AACrB,EAAE,KAAK,EAAE,CAAC,aAAa,EAAE,YAAY,EAAE,aAAa,EAAE,YAAY,CAAC;AACnE,EAAE,KAAK,EAAE;AACT,IAAI,EAAE,EAAE,EAAE,IAAI,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,QAAQ,EAAE,IAAI,EAAE;AAC1D,IAAI,SAAS,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,CAAC,EAAE;AAC3C,IAAI,SAAS,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,GAAG,EAAE;AAC7C,IAAI,gBAAgB,EAAE,EAAE,IAAI,EAAE,MAAM;AACpC,GAAG;AACH,EAAE,KAAK,CAAC,KAAK,EAAE,EAAE,IAAI,EAAE,EAAE;AACzB,IAAI,IAAI,OAAO,GAAG,MAAM;AACxB,IAAI,MAAM,UAAU,GAAG,GAAG,EAAE;AAC5B,IAAI,IAAI,cAAc,GAAG,IAAI;AAC7B,IAAI,IAAI,MAAM,GAAG,IAAI;AACrB,IAAI,MAAM,MAAM,GAAG,QAAQ,CAAC;AAC5B,MAAM,SAAS,EAAE,KAAK;AACtB,MAAM,MAAM,EAAE,IAAI;AAClB,MAAM,IAAI,EAAE,IAAI;AAChB,MAAM,UAAU,EAAE,YAAY;AAC9B,MAAM,SAAS,EAAE,QAAQ;AACzB,MAAM,SAAS,EAAE,EAAE;AACnB,MAAM,aAAa,EAAE,KAAK;AAC1B,MAAM,SAAS,EAAE,EAAE;AACnB,MAAM,aAAa,EAAE,IAAI;AACzB,MAAM,UAAU,EAAE,OAAO;AACzB,MAAM,SAAS,EAAE,KAAK;AACtB,MAAM,SAAS,EAAE,KAAK;AACtB,MAAM,QAAQ,EAAE,KAAK;AACrB,MAAM,KAAK,EAAE;AACb,KAAK,CAAC;AACN,IAAI,SAAS,eAAe,CAAC,SAAS,EAAE;AACxC,MAAM,IAAI,SAAS;AACnB,QAAQ,MAAM,CAAC,SAAS,GAAG,SAAS,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;AAClD,IAAI;AACJ,IAAI,SAAS,cAAc,CAAC,EAAE,SAAS,EAAE,OAAO,EAAE,EAAE;AACpD,MAAM,eAAe,CAAC,SAAS,KAAK,OAAO,IAAI,IAAI,GAAG,MAAM,GAAG,OAAO,CAAC,SAAS,CAAC,CAAC;AAClF,IAAI;AACJ,IAAI,MAAM,aAAa,GAAG,QAAQ,CAAC,MAAM;AACzC,MAAM,OAAO;AACb,QAAQ,SAAS,EAAE,MAAM,CAAC,SAAS;AACnC,QAAQ,QAAQ,EAAE,MAAM,CAAC,aAAa,GAAG,OAAO,GAAG,UAAU;AAC7D,QAAQ,QAAQ,EAAE,EAAE;AACpB,QAAQ,SAAS,EAAE;AACnB,UAAU;AACV,YAAY,IAAI,EAAE,UAAU;AAC5B,YAAY,OAAO,EAAE,IAAI;AACzB,YAAY,KAAK,EAAE,YAAY;AAC/B,YAAY,EAAE,EAAE;AAChB,WAAW;AACX,UAAU,GAAG,MAAM,CAAC,SAAS,IAAI;AACjC,SAAS;AACT,QAAQ,aAAa,EAAE;AACvB,OAAO;AACP,IAAI,CAAC,CAAC;AACN,IAAI,MAAM,SAAS,GAAG,QAAQ,CAAC,MAAM;AACrC,MAAM,MAAM,WAAW,GAAG,MAAM,CAAC,SAAS,KAAK,MAAM,IAAI,MAAM,CAAC,SAAS,KAAK,OAAO;AACrF,MAAM,IAAI,UAAU,GAAG,EAAE;AACzB,MAAM,IAAI,MAAM,CAAC,SAAS,EAAE;AAC5B,QAAQ,MAAM,KAAK,GAAG,MAAM,CAAC,SAAS,CAAC,KAAK,CAAC,GAAG,CAAC;AACjD,QAAQ,IAAI,KAAK,CAAC,MAAM,GAAG,CAAC;AAC5B,UAAU,UAAU,GAAG,KAAK,CAAC,CAAC,CAAC;AAC/B,MAAM;AACN,MAAM,IAAI,CAAC,OAAO,EAAE,KAAK,EAAE,MAAM,CAAC,CAAC,QAAQ,CAAC,UAAU,CAAC,EAAE;AACzD,QAAQ,OAAO,WAAW,GAAG,KAAK,GAAG,MAAM;AAC3C,MAAM;AACN,MAAM,IAAI,CAAC,KAAK,EAAE,QAAQ,EAAE,OAAO,CAAC,CAAC,QAAQ,CAAC,UAAU,CAAC,EAAE;AAC3D,QAAQ,OAAO,WAAW,GAAG,QAAQ,GAAG,OAAO;AAC/C,MAAM;AACN,MAAM,OAAO,WAAW,GAAG,QAAQ,GAAG,QAAQ;AAC9C,IAAI,CAAC,CAAC;AACN,IAAI,SAAS,aAAa,GAAG;AAC7B,MAAM,IAAI,MAAM,EAAE;AAClB,QAAQ,MAAM,CAAC,OAAO,EAAE;AACxB,QAAQ,MAAM,GAAG,IAAI;AACrB,MAAM;AACN,IAAI;AACJ,IAAI,SAAS,WAAW,GAAG;AAC3B,MAAM,QAAQ,CAAC,MAAM;AACrB,QAAQ,MAAM,EAAE,GAAG,SAAS,CAAC,MAAM,CAAC,MAAM,CAAC;AAC3C,QAAQ,IAAI,CAAC,EAAE,IAAI,CAAC,UAAU,CAAC,KAAK;AACpC,UAAU;AACV,QAAQ,IAAI,MAAM,IAAI,MAAM,CAAC,KAAK,CAAC,QAAQ,CAAC,SAAS,KAAK,EAAE,EAAE;AAC9D,UAAU,aAAa,EAAE;AACzB,QAAQ;AACR,QAAQ,IAAI,CAAC,MAAM,EAAE;AACrB,UAAU,MAAM,GAAG,YAAY;AAC/B,YAAY,EAAE;AACd,YAAY,UAAU,CAAC,KAAK;AAC5B,YAAY,aAAa,CAAC;AAC1B,WAAW;AACX,QAAQ,CAAC,MAAM;AACf,UAAU,MAAM,CAAC,MAAM,EAAE;AACzB,QAAQ;AACR,MAAM,CAAC,CAAC;AACR,IAAI;AACJ,IAAI,SAAS,WAAW,CAAC,QAAQ,EAAE;AACnC,MAAM,MAAM,CAAC,MAAM,CAAC,MAAM,EAAE,IAAI,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC;AACpD,IAAI;AACJ,IAAI,SAAS,QAAQ,CAAC,KAAK,EAAE,EAAE,EAAE;AACjC,MAAM,YAAY,CAAC,OAAO,CAAC;AAC3B,MAAM,IAAI,KAAK,GAAG,CAAC,EAAE;AACrB,QAAQ,OAAO,GAAG,UAAU,CAAC,EAAE,EAAE,KAAK,CAAC;AACvC,MAAM,CAAC,MAAM;AACb,QAAQ,EAAE,EAAE;AACZ,MAAM;AACN,IAAI;AACJ,IAAI,SAAS,eAAe,CAAC,MAAM,EAAE;AACrC,MAAM,IAAI,CAAC,MAAM,IAAI,CAAC,MAAM;AAC5B,QAAQ,OAAO,KAAK;AACpB,MAAM,MAAM,EAAE,GAAG,SAAS,CAAC,MAAM,CAAC;AAClC,MAAM,OAAO,EAAE,KAAK,MAAM,CAAC,KAAK,CAAC,QAAQ,CAAC,SAAS;AACnD,IAAI;AACJ,IAAI,eAAe,IAAI,CAAC,IAAI,GAAG,EAAE,EAAE;AACnC,MAAM,IAAI,MAAM,CAAC,KAAK;AACtB,QAAQ;AACR,MAAM,IAAI,IAAI,CAAC,KAAK;AACpB,QAAQ,MAAM,CAAC,KAAK,GAAG,IAAI;AAC3B,MAAM,QAAQ,CAAC,IAAI,CAAC,SAAS,IAAI,KAAK,CAAC,SAAS,EAAE,MAAM;AACxD,QAAQ,IAAI,MAAM,CAAC,SAAS,EAAE;AAC9B,UAAU,MAAM,CAAC,KAAK,GAAG,KAAK;AAC9B,QAAQ;AACR,QAAQ,WAAW,CAAC;AACpB,UAAU,GAAG,IAAI;AACjB,UAAU,SAAS,EAAE;AACrB,SAAS,CAAC;AACV,QAAQ,WAAW,EAAE;AACrB,MAAM,CAAC,CAAC;AACR,IAAI;AACJ,IAAI,SAAS,IAAI,CAAC,IAAI,GAAG,EAAE,EAAE;AAC7B,MAAM,IAAI,CAAC,MAAM;AACjB,QAAQ;AACR,MAAM,IAAI,IAAI,CAAC,MAAM,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,MAAM,CAAC;AACtD,QAAQ;AACR,MAAM,IAAI,MAAM,CAAC,KAAK;AACtB,QAAQ;AACR,MAAM,IAAI,IAAI,CAAC,KAAK;AACpB,QAAQ,MAAM,CAAC,KAAK,GAAG,IAAI;AAC3B,MAAM,QAAQ,CAAC,IAAI,CAAC,SAAS,IAAI,KAAK,CAAC,SAAS,EAAE,MAAM;AACxD,QAAQ,IAAI,CAAC,MAAM,CAAC,SAAS;AAC7B,UAAU,MAAM,CAAC,KAAK,GAAG,KAAK;AAC9B,QAAQ,MAAM,CAAC,SAAS,GAAG,KAAK;AAChC,MAAM,CAAC,CAAC;AACR,IAAI;AACJ,IAAI,SAAS,MAAM,CAAC,IAAI,GAAG,EAAE,EAAE;AAC/B,MAAM,IAAI,IAAI,CAAC,MAAM,IAAI,IAAI;AAC7B,QAAQ;AACR,MAAM,IAAI,MAAM,CAAC,SAAS,IAAI,eAAe,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE;AAC5D,QAAQ,IAAI,CAAC,IAAI,CAAC;AAClB,MAAM,CAAC,MAAM;AACb,QAAQ,IAAI,CAAC,IAAI,CAAC;AAClB,MAAM;AACN,IAAI;AACJ,IAAI,SAAS,eAAe,CAAC,CAAC,EAAE;AAChC,MAAM,IAAI,CAAC,MAAM;AACjB,QAAQ;AACR,MAAM,MAAM,SAAS,GAAG,MAAM,CAAC,KAAK,CAAC,QAAQ,CAAC,SAAS;AACvD,MAAM,IAAI,CAAC,UAAU,CAAC,KAAK,IAAI,CAAC,SAAS,EAAE;AAC3C,QAAQ;AACR,MAAM;AACN,MAAM,MAAM,MAAM,GAAG,CAAC,CAAC,MAAM;AAC7B,MAAM,IAAI,eAAe,CAAC,UAAU,CAAC,KAAK,EAAE,MAAM,CAAC,IAAI,eAAe,CAAC,SAAS,EAAE,MAAM,CAAC,EAAE;AAC3F,QAAQ;AACR,MAAM;AACN,MAAM,IAAI,CAAC,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC;AAC3B,IAAI;AACJ,IAAI,SAAS,iBAAiB,CAAC,CAAC,EAAE;AAClC,MAAM,IAAI,CAAC,CAAC,GAAG,KAAK,KAAK,IAAI,CAAC,CAAC,GAAG,KAAK,QAAQ,EAAE;AACjD,QAAQ,IAAI,EAAE;AACd,MAAM;AACN,IAAI;AACJ,IAAI,SAAS,qBAAqB,CAAC,EAAE,MAAM,EAAE,EAAE;AAC/C,MAAM,IAAI,CAAC,MAAM,CAAC,EAAE,IAAI,MAAM,CAAC,EAAE,KAAK,KAAK,CAAC,EAAE;AAC9C,QAAQ;AACR,MAAM,IAAI,CAAC,MAAM,CAAC;AAClB,IAAI;AACJ,IAAI,SAAS,qBAAqB,CAAC,EAAE,MAAM,EAAE,EAAE;AAC/C,MAAM,IAAI,CAAC,MAAM,CAAC,EAAE,IAAI,MAAM,CAAC,EAAE,KAAK,KAAK,CAAC,EAAE;AAC9C,QAAQ;AACR,MAAM,IAAI,CAAC,MAAM,CAAC;AAClB,IAAI;AACJ,IAAI,SAAS,uBAAuB,CAAC,EAAE,MAAM,EAAE,EAAE;AACjD,MAAM,IAAI,CAAC,MAAM,CAAC,EAAE,IAAI,MAAM,CAAC,EAAE,KAAK,KAAK,CAAC,EAAE;AAC9C,QAAQ;AACR,MAAM,MAAM,CAAC,MAAM,CAAC;AACpB,IAAI;AACJ,IAAI,SAAS,SAAS,GAAG;AACzB,MAAM,EAAE,CAAC,QAAQ,EAAE,SAAS,EAAE,iBAAiB,CAAC;AAChD,MAAM,EAAE,CAAC,QAAQ,EAAE,OAAO,EAAE,eAAe,CAAC;AAC5C,MAAM,EAAE,CAAC,QAAQ,EAAE,cAAc,EAAE,qBAAqB,CAAC;AACzD,MAAM,EAAE,CAAC,QAAQ,EAAE,cAAc,EAAE,qBAAqB,CAAC;AACzD,MAAM,EAAE,CAAC,QAAQ,EAAE,gBAAgB,EAAE,uBAAuB,CAAC;AAC7D,IAAI;AACJ,IAAI,SAAS,YAAY,GAAG;AAC5B,MAAM,GAAG,CAAC,QAAQ,EAAE,SAAS,EAAE,iBAAiB,CAAC;AACjD,MAAM,GAAG,CAAC,QAAQ,EAAE,OAAO,EAAE,eAAe,CAAC;AAC7C,MAAM,GAAG,CAAC,QAAQ,EAAE,cAAc,EAAE,qBAAqB,CAAC;AAC1D,MAAM,GAAG,CAAC,QAAQ,EAAE,cAAc,EAAE,qBAAqB,CAAC;AAC1D,MAAM,GAAG,CAAC,QAAQ,EAAE,gBAAgB,EAAE,uBAAuB,CAAC;AAC9D,IAAI;AACJ,IAAI,SAAS,WAAW,CAAC,EAAE,EAAE;AAC7B,MAAM,IAAI,CAAC,aAAa,EAAE,EAAE,CAAC;AAC7B,IAAI;AACJ,IAAI,SAAS,UAAU,CAAC,EAAE,EAAE;AAC5B,MAAM,MAAM,CAAC,KAAK,GAAG,KAAK;AAC1B,MAAM,IAAI,CAAC,YAAY,EAAE,EAAE,CAAC;AAC5B,IAAI;AACJ,IAAI,SAAS,WAAW,CAAC,EAAE,EAAE;AAC7B,MAAM,IAAI,CAAC,aAAa,EAAE,EAAE,CAAC;AAC7B,IAAI;AACJ,IAAI,SAAS,UAAU,CAAC,EAAE,EAAE;AAC5B,MAAM,MAAM,CAAC,KAAK,GAAG,KAAK;AAC1B,MAAM,aAAa,EAAE;AACrB,MAAM,IAAI,CAAC,YAAY,EAAE,EAAE,CAAC;AAC5B,IAAI;AACJ,IAAI,SAAS,OAAO,CAAC,CAAC,EAAE;AACxB,MAAM,CAAC,CAAC,eAAe,EAAE;AACzB,IAAI;AACJ,IAAI,SAAS,WAAW,GAAG;AAC3B,MAAM,MAAM,CAAC,SAAS,GAAG,IAAI;AAC7B,MAAM,IAAI,MAAM,CAAC,aAAa,IAAI,CAAC,OAAO,EAAE,aAAa,CAAC,CAAC,QAAQ,CAAC,MAAM,CAAC,UAAU,CAAC,EAAE;AACxF,QAAQ,IAAI,EAAE;AACd,MAAM;AACN,IAAI;AACJ,IAAI,SAAS,YAAY,GAAG;AAC5B,MAAM,MAAM,CAAC,SAAS,GAAG,KAAK;AAC9B,MAAM,IAAI,CAAC,MAAM;AACjB,QAAQ;AACR,MAAM,MAAM,SAAS,GAAG,MAAM,CAAC,KAAK,CAAC,QAAQ,CAAC,SAAS;AACvD,MAAM,IAAI,MAAM,CAAC,QAAQ,IAAI,CAAC,MAAM,CAAC,SAAS,KAAK,CAAC,SAAS,IAAI,SAAS,KAAK,QAAQ,CAAC,aAAa,CAAC,IAAI,CAAC,OAAO,EAAE,aAAa,CAAC,CAAC,QAAQ,CAAC,MAAM,CAAC,UAAU,CAAC,EAAE;AAChK,QAAQ,IAAI,EAAE;AACd,MAAM;AACN,IAAI;AACJ,IAAI,SAAS,SAAS,GAAG;AACzB,MAAM,MAAM,CAAC,SAAS,GAAG,IAAI;AAC7B,MAAM,IAAI,MAAM,CAAC,aAAa,IAAI,CAAC,OAAO,EAAE,aAAa,CAAC,CAAC,QAAQ,CAAC,MAAM,CAAC,UAAU,CAAC,EAAE;AACxF,QAAQ,IAAI,EAAE;AACd,MAAM;AACN,IAAI;AACJ,IAAI,SAAS,UAAU,CAAC,CAAC,EAAE;AAC3B,MAAM,IAAI,CAAC,OAAO,EAAE,aAAa,CAAC,CAAC,QAAQ,CAAC,MAAM,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC,CAAC,aAAa,IAAI,CAAC,eAAe,CAAC,UAAU,CAAC,KAAK,EAAE,CAAC,CAAC,aAAa,CAAC,CAAC,EAAE;AAC7I,QAAQ,MAAM,CAAC,SAAS,GAAG,KAAK;AAChC,QAAQ,IAAI,CAAC,MAAM,CAAC,SAAS,IAAI,MAAM,CAAC,QAAQ;AAChD,UAAU,IAAI,EAAE;AAChB,MAAM;AACN,IAAI;AACJ,IAAI,SAAS,SAAS,GAAG;AACzB,MAAM,IAAI,cAAc,IAAI,IAAI,EAAE;AAClC,QAAQ,cAAc,CAAC,UAAU,EAAE;AACnC,QAAQ,cAAc,GAAG,IAAI;AAC7B,MAAM;AACN,IAAI;AACJ,IAAI,KAAK;AACT,MAAM,MAAM,UAAU,CAAC,KAAK;AAC5B,MAAM,CAAC,GAAG,KAAK;AACf,QAAQ,SAAS,EAAE;AACnB,QAAQ,IAAI,CAAC,GAAG;AAChB,UAAU;AACV,QAAQ,cAAc,GAAG,IAAI,cAAc,CAAC,MAAM;AAClD,UAAU,IAAI,MAAM;AACpB,YAAY,MAAM,CAAC,MAAM,EAAE;AAC3B,QAAQ,CAAC,CAAC;AACV,QAAQ,cAAc,CAAC,OAAO,CAAC,GAAG,CAAC;AACnC,MAAM;AACN,KAAK;AACL,IAAI,KAAK,CAAC,MAAM,MAAM,CAAC,SAAS,EAAE,eAAe,EAAE;AACnD,MAAM,SAAS,EAAE;AACjB,KAAK,CAAC;AACN,IAAI,SAAS,CAAC,MAAM;AACpB,MAAM,SAAS,EAAE;AACjB,IAAI,CAAC,CAAC;AACN,IAAI,WAAW,CAAC,MAAM;AACtB,MAAM,aAAa,EAAE;AACrB,MAAM,SAAS,EAAE;AACjB,MAAM,YAAY,EAAE;AACpB,IAAI,CAAC,CAAC;AACN,IAAI,OAAO;AACX,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC;AACvB,MAAM,UAAU;AAChB,MAAM,SAAS;AACf,MAAM,IAAI;AACV,MAAM,WAAW;AACjB,MAAM,WAAW;AACjB,MAAM,UAAU;AAChB,MAAM,WAAW;AACjB,MAAM,UAAU;AAChB,MAAM,OAAO;AACb,MAAM,WAAW;AACjB,MAAM,YAAY;AAClB,MAAM,SAAS;AACf,MAAM;AACN,KAAK;AACL,EAAE;AACF,CAAC,CAAC;AAEF,MAAM,WAAW,GAAG,CAAC,GAAG,EAAE,KAAK,KAAK;AACpC,EAAE,MAAM,MAAM,GAAG,GAAG,CAAC,SAAS,IAAI,GAAG;AACrC,EAAE,KAAK,MAAM,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,KAAK,EAAE;AAClC,IAAI,MAAM,CAAC,GAAG,CAAC,GAAG,GAAG;AACrB,EAAE;AACF,EAAE,OAAO,MAAM;AACf,CAAC;AACD,SAAS,aAAa,CAAC,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,QAAQ,EAAE;AACtE,EAAE,OAAO,SAAS,EAAE,EAAE,kBAAkB,CAAC,KAAK,EAAE;AAChD,IAAI,KAAK,EAAE,cAAc,CAAC,CAAC,4BAA4B,EAAE,EAAE,gBAAgB,EAAE,IAAI,CAAC,aAAa,EAAE,CAAC,CAAC;AACnG,IAAI,GAAG,EAAE,YAAY;AACrB,IAAI,OAAO,EAAE,MAAM,CAAC,CAAC,CAAC,KAAK,MAAM,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,IAAI,KAAK,IAAI,CAAC,OAAO,IAAI,IAAI,CAAC,OAAO,CAAC,GAAG,IAAI,CAAC,CAAC;AAC1F,IAAI,WAAW,EAAE,MAAM,CAAC,CAAC,CAAC,KAAK,MAAM,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,IAAI,KAAK,IAAI,CAAC,WAAW,IAAI,IAAI,CAAC,WAAW,CAAC,GAAG,IAAI,CAAC,CAAC;AACtG,IAAI,YAAY,EAAE,MAAM,CAAC,CAAC,CAAC,KAAK,MAAM,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,IAAI,KAAK,IAAI,CAAC,YAAY,IAAI,IAAI,CAAC,YAAY,CAAC,GAAG,IAAI,CAAC,CAAC;AACzG,IAAI,SAAS,EAAE,MAAM,CAAC,CAAC,CAAC,KAAK,MAAM,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,IAAI,KAAK,IAAI,CAAC,SAAS,IAAI,IAAI,CAAC,SAAS,CAAC,GAAG,IAAI,CAAC,CAAC;AAChG,IAAI,UAAU,EAAE,MAAM,CAAC,CAAC,CAAC,KAAK,MAAM,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,IAAI,KAAK,IAAI,CAAC,UAAU,IAAI,IAAI,CAAC,UAAU,CAAC,GAAG,IAAI,CAAC;AAClG,GAAG,EAAE;AACL,IAAI,WAAW,CAAC,UAAU,EAAE;AAC5B,MAAM,IAAI,EAAE,CAAC,GAAG,EAAE,IAAI,CAAC,UAAU,CAAC,CAAC;AACnC,MAAM,MAAM,EAAE,EAAE;AAChB,MAAM,aAAa,EAAE,IAAI,CAAC,WAAW;AACrC,MAAM,YAAY,EAAE,IAAI,CAAC,UAAU;AACnC,MAAM,aAAa,EAAE,IAAI,CAAC,WAAW;AACrC,MAAM,YAAY,EAAE,IAAI,CAAC;AACzB,KAAK,EAAE;AACP,MAAM,OAAO,EAAE,OAAO,CAAC,MAAM;AAC7B,QAAQ,IAAI,CAAC,SAAS,IAAI,SAAS,EAAE,EAAE,kBAAkB,CAAC,KAAK,EAAE,UAAU,CAAC;AAC5E,UAAU,GAAG,EAAE,CAAC;AAChB,UAAU,QAAQ,EAAE,IAAI;AACxB,UAAU,KAAK,EAAE,CAAC,6BAA6B,EAAE,IAAI,CAAC,SAAS,CAAC;AAChE,SAAS,EAAE,IAAI,CAAC,MAAM,CAAC,EAAE;AACzB,UAAU,UAAU,CAAC,IAAI,CAAC,MAAM,EAAE,SAAS,EAAE;AAC7C,YAAY,SAAS,EAAE,IAAI,CAAC,SAAS;AACrC,YAAY,SAAS,EAAE,IAAI,CAAC,SAAS;AACrC,YAAY,IAAI,EAAE,IAAI,CAAC,IAAI;AAC3B,YAAY,IAAI,EAAE,IAAI,CAAC;AACvB,WAAW,EAAE,MAAM;AACnB,YAAY,eAAe,CAAC,eAAe,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC;AACzD,WAAW,CAAC;AACZ,UAAU,kBAAkB,CAAC,MAAM,EAAE;AACrC,YAAY,KAAK,EAAE,cAAc,CAAC;AAClC,cAAc,kBAAkB;AAChC,cAAc,CAAC,UAAU,EAAE,IAAI,CAAC,SAAS,CAAC,CAAC;AAC3C,cAAc,CAAC,MAAM,EAAE,IAAI,CAAC,SAAS,CAAC;AACtC,aAAa;AACb,WAAW,EAAE,IAAI,EAAE,CAAC;AACpB,SAAS,EAAE,EAAE,CAAC,IAAI,kBAAkB,CAAC,EAAE,EAAE,IAAI;AAC7C,OAAO,CAAC;AACR,MAAM,CAAC,EAAE;AACT,KAAK,EAAE,CAAC,EAAE,CAAC,MAAM,EAAE,eAAe,EAAE,cAAc,EAAE,eAAe,EAAE,cAAc,CAAC;AACpF,GAAG,EAAE,EAAE,CAAC;AACR;AACA,MAAM,OAAO,mBAAmB,WAAW,CAACA,aAAW,EAAE,CAAC,CAAC,QAAQ,EAAE,aAAa,CAAC,CAAC,CAAC;AACrF,MAAMC,cAAY,GAAG,EAAE,KAAK,EAAE,oBAAoB,EAAE;AACpD,MAAM,YAAY,GAAG;AACrB,EAAE,GAAG,EAAE,CAAC;AACR,EAAE,KAAK,EAAE;AACT,CAAC;AACD,MAAM,YAAY,GAAG,EAAE,KAAK,EAAE,0BAA0B,EAAE;AAC1D,MAAMC,aAAW,mBAAmB,eAAe,CAAC;AACpD,EAAE,MAAM,EAAE,YAAY;AACtB,EAAE,KAAK,EAAE;AACT,IAAI,SAAS,EAAE;AACf,GAAG;AACH,EAAE,KAAK,CAAC,OAAO,EAAE;AACjB,IAAI,MAAM,KAAK,GAAG,OAAO;AACzB,IAAI,MAAM,SAAS,GAAG,QAAQ,CAAC,MAAM;AACrC,MAAM,MAAM,EAAE,OAAO,EAAE,SAAS,EAAE,GAAG,EAAE,GAAG,EAAE,OAAO,EAAE,GAAG,KAAK,CAAC,SAAS;AACvE,MAAM,IAAI,OAAO,IAAI,OAAO,CAAC,aAAa;AAC1C,QAAQ,OAAO,IAAI;AACnB,MAAM,IAAI,OAAO,EAAE;AACnB,QAAQ,OAAO;AACf,UAAU,KAAK,EAAE,CAAC,yCAAyC,EAAE,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC;AAChF,SAAS;AACT,MAAM;AACN,MAAM,IAAI,SAAS,EAAE;AACrB,QAAQ,OAAO;AACf,UAAU,KAAK,EAAE,CAAC,8DAA8D,EAAE,SAAS,CAAC,IAAI,CAAC,KAAK,CAAC;AACvG,SAAS;AACT,MAAM;AACN,MAAM,IAAI,GAAG,EAAE;AACf,QAAQ,OAAO;AACf,UAAU,KAAK,EAAE,CAAC,kBAAkB,EAAE,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC;AACrD,SAAS;AACT,MAAM;AACN,MAAM,IAAI,GAAG,EAAE;AACf,QAAQ,OAAO;AACf,UAAU,KAAK,EAAE,CAAC,yCAAyC,EAAE,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC;AAC5E,SAAS;AACT,MAAM;AACN,MAAM,OAAO,IAAI;AACjB,IAAI,CAAC,CAAC;AACN,IAAI,OAAO,CAAC,IAAI,EAAE,MAAM,KAAK;AAC7B,MAAM,OAAO,SAAS,EAAE,EAAE,kBAAkB,CAAC,KAAK,EAAED,cAAY,EAAE;AAClE,QAAQ,SAAS,CAAC,KAAK,IAAI,SAAS,EAAE,EAAE,kBAAkB,CAAC,KAAK,EAAE,YAAY,EAAE;AAChF,UAAU,kBAAkB,CAAC,MAAM,EAAE;AACrC,YAAY,KAAK,EAAE,cAAc,CAAC,SAAS,CAAC,KAAK,CAAC,KAAK;AACvD,WAAW,EAAE,IAAI,EAAE,CAAC;AACpB,SAAS,CAAC,IAAI,kBAAkB,CAAC,EAAE,EAAE,IAAI,CAAC;AAC1C,QAAQ,kBAAkB,CAAC,KAAK,EAAE,YAAY,EAAE;AAChD,UAAU,UAAU,CAAC,IAAI,CAAC,MAAM,EAAE,SAAS,EAAE,EAAE,EAAE,MAAM;AACvD,YAAY,eAAe,CAAC,eAAe,CAAC,IAAI,CAAC,SAAS,CAAC,OAAO,GAAG,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,KAAK,GAAG,qBAAqB,CAAC,EAAE,CAAC;AAC7H,WAAW;AACX,SAAS;AACT,OAAO,CAAC;AACR,IAAI,CAAC;AACL,EAAE;AACF,CAAC,CAAC;AAEF,MAAM,aAAa,GAAG;AACtB,EAAE,YAAY,EAAE;AAChB,CAAC;AACD,MAAME,aAAW,mBAAmB,eAAe,CAAC;AACpD,EAAE,GAAG,aAAa;AAClB,EAAE,MAAM,EAAE,cAAc;AACxB,EAAE,KAAK,EAAE;AACT,IAAI,IAAI,EAAE;AACV,GAAG;AACH,EAAE,KAAK,CAAC,OAAO,EAAE;AACjB,IAAI,MAAM,KAAK,GAAG,OAAO;AACzB,IAAI,MAAM,KAAK,GAAG,QAAQ,EAAE;AAC5B,IAAI,MAAM,IAAI,GAAG,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC;AACpC,IAAI,OAAO,CAAC,IAAI,EAAE,MAAM,KAAK;AAC7B,MAAM,OAAO,KAAK,CAAC,IAAI,CAAC,IAAI,SAAS,EAAE,EAAE,WAAW,CAAC,uBAAuB,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,EAAE,cAAc,CAAC,UAAU,CAAC,EAAE,GAAG,EAAE,CAAC,EAAE,EAAE,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,EAAE,CAAC,IAAI,UAAU,CAAC,IAAI,CAAC,MAAM,EAAE,SAAS,EAAE,EAAE,GAAG,EAAE,CAAC,EAAE,CAAC;AAC5M,IAAI,CAAC;AACL,EAAE;AACF,CAAC,CAAC;AACF,MAAMC,cAAY,GAAG,EAAE,KAAK,EAAE,0BAA0B,EAAE;AAC1D,MAAM,YAAY,GAAG;AACrB,EAAE,GAAG,EAAE,CAAC;AACR,EAAE,KAAK,EAAE;AACT,CAAC;AACD,MAAMC,aAAW,mBAAmB,eAAe,CAAC;AACpD,EAAE,MAAM,EAAE,oBAAoB;AAC9B,EAAE,KAAK,CAAC,OAAO,EAAE;AACjB,IAAI,MAAM,EAAE,YAAY,EAAE,WAAW,EAAE,KAAK,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,GAAG,WAAW,EAAE;AACrF,IAAI,SAAS,MAAM,CAAC,IAAI,EAAE,IAAI,EAAE;AAChC,MAAM,OAAO,MAAM,CAAC,KAAK,CAAC,UAAU,CAAC,IAAI,EAAE,IAAI,CAAC;AAChD,IAAI;AACJ,IAAI,SAAS,QAAQ,CAAC,GAAG,EAAE;AAC3B,MAAM,OAAO,MAAM,CAAC,KAAK,CAAC,UAAU,CAAC,GAAG,CAAC,IAAI,EAAE,MAAM,CAAC,KAAK,CAAC,UAAU,CAAC;AACvE,IAAI;AACJ,IAAI,OAAO,CAAC,IAAI,EAAE,MAAM,KAAK;AAC7B,MAAM,OAAO,SAAS,EAAE,EAAE,WAAW,CAAC,OAAO,EAAE;AAC/C,QAAQ,EAAE,EAAE,KAAK,CAAC,YAAY,CAAC;AAC/B,QAAQ,KAAK,EAAE,cAAc,CAAC,CAAC,CAAC,GAAG,EAAE,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,EAAE,KAAK,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC;AAChF,OAAO,EAAE;AACT,QAAQ,OAAO,EAAE,OAAO,CAAC,CAAC,EAAE,IAAI,EAAE,EAAE,GAAG,EAAE,UAAU,EAAE,EAAE,IAAI,EAAE,KAAK;AAClE,UAAU,WAAW,CAACF,aAAW,EAAE;AACnC,YAAY,IAAI,EAAE,aAAa;AAC/B,YAAY,GAAG;AACf,YAAY,WAAW,EAAE,QAAQ,CAAC,GAAG,CAAC;AACtC,YAAY,UAAU;AACtB,YAAY,MAAM;AAClB,YAAY,KAAK,EAAE,KAAK,CAAC,MAAM,CAAC;AAChC,YAAY;AACZ,WAAW,EAAE;AACb,YAAY,OAAO,EAAE,OAAO,CAAC,MAAM;AACnC,cAAc,kBAAkB,CAAC,KAAK,EAAEC,cAAY,EAAE;AACtD,gBAAgB,KAAK,CAAC,MAAM,CAAC,CAAC,UAAU,IAAI,SAAS,EAAE,EAAE,kBAAkB,CAAC,KAAK,EAAE,YAAY,EAAE,eAAe,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC,IAAI,kBAAkB,CAAC,EAAE,EAAE,IAAI,CAAC;AACnK,iBAAiB,SAAS,CAAC,IAAI,CAAC,EAAE,kBAAkB,CAAC,QAAQ,EAAE,IAAI,EAAE,UAAU,CAAC,UAAU,EAAE,CAAC,SAAS,KAAK;AAC3G,kBAAkB,OAAO,SAAS,EAAE,EAAE,WAAW,CAACF,aAAW,EAAE;AAC/D,oBAAoB,GAAG,EAAE,SAAS,CAAC,GAAG;AACtC,oBAAoB;AACpB,mBAAmB,EAAE,IAAI,EAAE,CAAC,EAAE,CAAC,WAAW,CAAC,CAAC;AAC5C,gBAAgB,CAAC,CAAC,EAAE,GAAG,CAAC;AACxB,eAAe;AACf,aAAa,CAAC;AACd,YAAY,CAAC,EAAE;AACf,WAAW,EAAE,IAAI,EAAE,CAAC,KAAK,EAAE,WAAW,EAAE,YAAY,EAAE,OAAO,EAAE,MAAM,CAAC;AACtE,SAAS,CAAC;AACV,QAAQ,CAAC,EAAE;AACX,OAAO,EAAE,CAAC,EAAE,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;AAC5B,IAAI,CAAC;AACL,EAAE;AACF,CAAC,CAAC;AACF,MAAMI,aAAW,GAAG,EAAE;AACtB,MAAMC,cAAY,GAAG;AACrB,EAAE,gBAAgB,EAAE,OAAO;AAC3B,EAAE,iBAAiB,EAAE,OAAO;AAC5B,EAAE,OAAO,EAAE;AACX,CAAC;AACD,SAAS,aAAa,CAAC,IAAI,EAAE,MAAM,EAAE;AACrC,EAAE,OAAO,SAAS,EAAE,EAAE,kBAAkB,CAAC,KAAK,EAAEA,cAAY,EAAE,CAAC,GAAG,MAAM,CAAC,CAAC,CAAC,KAAK,MAAM,CAAC,CAAC,CAAC,GAAG;AAC5F,IAAI,kBAAkB,CAAC,UAAU,EAAE,EAAE,MAAM,EAAE,gBAAgB,EAAE,EAAE,IAAI,EAAE,EAAE;AACzE,GAAG,CAAC,CAAC,CAAC;AACN;AACA,MAAM,gBAAgB,mBAAmB,WAAW,CAACD,aAAW,EAAE,CAAC,CAAC,QAAQ,EAAE,aAAa,CAAC,CAAC,CAAC;AAC9F,MAAME,aAAW,GAAG,EAAE;AACtB,MAAMC,cAAY,GAAG;AACrB,EAAE,gBAAgB,EAAE,OAAO;AAC3B,EAAE,iBAAiB,EAAE,OAAO;AAC5B,EAAE,OAAO,EAAE;AACX,CAAC;AACD,SAAS,aAAa,CAAC,IAAI,EAAE,MAAM,EAAE;AACrC,EAAE,OAAO,SAAS,EAAE,EAAE,kBAAkB,CAAC,KAAK,EAAEA,cAAY,EAAE,CAAC,GAAG,MAAM,CAAC,CAAC,CAAC,KAAK,MAAM,CAAC,CAAC,CAAC,GAAG;AAC5F,IAAI,kBAAkB,CAAC,UAAU,EAAE,EAAE,MAAM,EAAE,iBAAiB,EAAE,EAAE,IAAI,EAAE,EAAE;AAC1E,GAAG,CAAC,CAAC,CAAC;AACN;AACA,MAAM,eAAe,mBAAmB,WAAW,CAACD,aAAW,EAAE,CAAC,CAAC,QAAQ,EAAE,aAAa,CAAC,CAAC,CAAC;AAC7F,MAAME,aAAW,GAAG,EAAE;AACtB,MAAMC,cAAY,GAAG;AACrB,EAAE,gBAAgB,EAAE,OAAO;AAC3B,EAAE,iBAAiB,EAAE,OAAO;AAC5B,EAAE,OAAO,EAAE;AACX,CAAC;AACD,SAAS,aAAa,CAAC,IAAI,EAAE,MAAM,EAAE;AACrC,EAAE,OAAO,SAAS,EAAE,EAAE,kBAAkB,CAAC,KAAK,EAAEA,cAAY,EAAE,CAAC,GAAG,MAAM,CAAC,CAAC,CAAC,KAAK,MAAM,CAAC,CAAC,CAAC,GAAG;AAC5F,IAAI,kBAAkB,CAAC,UAAU,EAAE,EAAE,MAAM,EAAE,gBAAgB,EAAE,EAAE,IAAI,EAAE,EAAE;AACzE,GAAG,CAAC,CAAC,CAAC;AACN;AACA,MAAM,eAAe,mBAAmB,WAAW,CAACD,aAAW,EAAE,CAAC,CAAC,QAAQ,EAAE,aAAa,CAAC,CAAC,CAAC;AAC7F,MAAME,aAAW,GAAG,EAAE;AACtB,MAAMC,cAAY,GAAG;AACrB,EAAE,IAAI,EAAE,MAAM;AACd,EAAE,gBAAgB,EAAE,OAAO;AAC3B,EAAE,iBAAiB,EAAE,OAAO;AAC5B,EAAE,cAAc,EAAE,GAAG;AACrB,EAAE,OAAO,EAAE;AACX,CAAC;AACD,SAAS,aAAa,CAAC,IAAI,EAAE,MAAM,EAAE;AACrC,EAAE,OAAO,SAAS,EAAE,EAAE,kBAAkB,CAAC,KAAK,EAAEA,cAAY,EAAE,CAAC,GAAG,MAAM,CAAC,CAAC,CAAC,KAAK,MAAM,CAAC,CAAC,CAAC,GAAG;AAC5F,IAAI,kBAAkB,CAAC,MAAM,EAAE,EAAE,CAAC,EAAE,6CAA6C,EAAE,EAAE,IAAI,EAAE,EAAE;AAC7F,GAAG,CAAC,CAAC,CAAC;AACN;AACA,MAAM,SAAS,mBAAmB,WAAW,CAACD,aAAW,EAAE,CAAC,CAAC,QAAQ,EAAE,aAAa,CAAC,CAAC,CAAC;AACvF,MAAM,KAAK,mBAAmB,MAAM,CAAC,MAAM,iBAAiB,MAAM,CAAC,cAAc,CAAC;AAClF,EAAE,SAAS,EAAE,IAAI;AACjB,EAAE,eAAe;AACjB,EAAE,eAAe;AACjB,EAAE,gBAAgB;AAClB,EAAE;AACF,CAAC,EAAE,MAAM,CAAC,WAAW,EAAE,EAAE,KAAK,EAAE,QAAQ,EAAE,CAAC,CAAC;AAC5C,MAAME,aAAW,mBAAmB,eAAe,CAAC;AACpD,EAAE,MAAM,EAAE,UAAU;AACpB,EAAE,KAAK,EAAE;AACT,IAAI,IAAI,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,IAAI,EAAE;AAC1C,IAAI,KAAK,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE;AAC3B,IAAI,MAAM,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE;AAC5B,IAAI,IAAI,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,IAAI,EAAE;AACzC,IAAI,OAAO,EAAE,EAAE,IAAI,EAAE,MAAM;AAC3B,GAAG;AACH,EAAE,KAAK,CAAC,OAAO,EAAE;AACjB,IAAI,MAAM,KAAK,GAAG,OAAO;AACzB,IAAI,MAAM,KAAK,GAAG,QAAQ,CAAC,MAAM,KAAK,CAAC,KAAK,IAAI,KAAK,CAAC,IAAI,CAAC;AAC3D,IAAI,MAAM,MAAM,GAAG,QAAQ,CAAC,MAAM,KAAK,CAAC,MAAM,IAAI,KAAK,CAAC,IAAI,CAAC;AAC7D,IAAI,MAAM,IAAI,GAAG,QAAQ,CAAC,MAAM,KAAK,CAAC,CAAC,IAAI,EAAE,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;AAC3D,IAAI,OAAO,CAAC,IAAI,EAAE,MAAM,KAAK;AAC7B,MAAM,OAAO,SAAS,EAAE,EAAE,WAAW,CAAC,uBAAuB,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE;AAC3E,QAAQ,KAAK,EAAE,KAAK,CAAC,KAAK;AAC1B,QAAQ,MAAM,EAAE,MAAM,CAAC,KAAK;AAC5B,QAAQ,KAAK,EAAE;AACf,OAAO,EAAE,IAAI,EAAE,CAAC,EAAE,CAAC,OAAO,EAAE,QAAQ,CAAC,CAAC;AACtC,IAAI,CAAC;AACL,EAAE;AACF,CAAC,CAAC;AAEF,MAAMC,cAAY,GAAG,CAAC,UAAU,CAAC;AACjC,MAAMC,cAAY,GAAG;AACrB,EAAE,GAAG,EAAE,CAAC;AACR,EAAE,KAAK,EAAE;AACT,CAAC;AACD,MAAM,YAAY,GAAG;AACrB,EAAE,IAAI,EAAE,QAAQ;AAChB,EAAE,KAAK,EAAE;AACT,CAAC;AACD,MAAM,YAAY,GAAG,CAAC,UAAU,CAAC;AACjC,MAAMC,aAAW,mBAAmB,eAAe,CAAC;AACpD,EAAE,MAAM,EAAE,gBAAgB;AAC1B,EAAE,KAAK,EAAE;AACT,IAAI,IAAI,EAAE,EAAE;AACZ,IAAI,MAAM,EAAE,EAAE;AACd,IAAI,IAAI,EAAE,EAAE,IAAI,EAAE,OAAO,EAAE;AAC3B,IAAI,IAAI,EAAE,EAAE,IAAI,EAAE,OAAO,EAAE;AAC3B,IAAI,KAAK,EAAE,EAAE,IAAI,EAAE,OAAO,EAAE;AAC5B,IAAI,SAAS,EAAE,EAAE,IAAI,EAAE,OAAO,EAAE;AAChC,IAAI,UAAU,EAAE,EAAE,IAAI,EAAE,OAAO;AAC/B,GAAG;AACH,EAAE,KAAK,CAAC,OAAO,EAAE;AACjB,IAAI,MAAM,KAAK,GAAG,OAAO;AACzB,IAAI,MAAM;AACV,MAAM,YAAY;AAClB,MAAM,aAAa;AACnB,MAAM,WAAW;AACjB,MAAM,QAAQ;AACd,MAAM,WAAW;AACjB,MAAM;AACN,KAAK,GAAG,WAAW,EAAE;AACrB,IAAI,MAAM,YAAY,GAAG,QAAQ,CAAC,MAAM;AACxC,MAAM,QAAQ,KAAK,CAAC,IAAI,CAAC,aAAa;AACtC,QAAQ,KAAK,MAAM;AACnB,UAAU,OAAO,cAAc;AAC/B,QAAQ,KAAK,OAAO;AACpB,UAAU,OAAO,YAAY;AAC7B,QAAQ;AACR,UAAU,OAAO,QAAQ;AACzB;AACA,IAAI,CAAC,CAAC;AACN,IAAI,MAAM,iBAAiB,GAAG,QAAQ,CAAC,MAAM;AAC7C,MAAM,MAAM,EAAE,IAAI,EAAE,GAAG,KAAK;AAC5B,MAAM,OAAO;AACb,QAAQ,EAAE,EAAE,YAAY,CAAC,KAAK;AAC9B,QAAQ,UAAU,EAAE,aAAa,CAAC,KAAK;AACvC,QAAQ,SAAS,EAAE,YAAY,CAAC,KAAK;AACrC,QAAQ,SAAS,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,EAAE,kBAAkB,EAAE,CAAC,QAAQ,CAAC,EAAE,EAAE,CAAC;AAClF,QAAQ,IAAI,EAAE,EAAE,IAAI,EAAE;AACtB,QAAQ,aAAa,EAAE;AACvB,OAAO;AACP,IAAI,CAAC,CAAC;AACN,IAAI,MAAM,SAAS,GAAG,QAAQ,CAAC,MAAM,KAAK,CAAC,IAAI,CAAC,aAAa,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC;AAC/E,IAAI,MAAM,UAAU,GAAG,QAAQ,CAAC,MAAM,KAAK,CAAC,IAAI,CAAC,aAAa,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC;AACjF,IAAI,MAAM,OAAO,GAAG,QAAQ,CAAC,MAAM;AACnC,MAAM,IAAI,KAAK,CAAC,MAAM;AACtB,QAAQ,OAAO,KAAK,CAAC,MAAM;AAC3B,MAAM,IAAI,SAAS,CAAC,KAAK;AACzB,QAAQ,OAAO,OAAO;AACtB,MAAM,IAAI,UAAU,CAAC,KAAK;AAC1B,QAAQ,OAAO,OAAO;AACtB,MAAM,OAAO,SAAS;AACtB,IAAI,CAAC,CAAC;AACN,IAAI,MAAM,IAAI,GAAG,QAAQ,CAAC,MAAM;AAChC,MAAM,OAAO;AACb,QAAQ,IAAI,EAAE,OAAO,CAAC,KAAK,CAAC,QAAQ,CAAC,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC,UAAU;AAC9D,QAAQ,KAAK,EAAE,OAAO,CAAC,KAAK,CAAC,QAAQ,CAAC,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC,SAAS;AAC9D,QAAQ,IAAI,EAAE,OAAO,CAAC,KAAK,CAAC,QAAQ,CAAC,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC;AACpD,OAAO;AACP,IAAI,CAAC,CAAC;AACN,IAAI,MAAM,SAAS,GAAG,QAAQ,CAAC,MAAM;AACrC,MAAM,MAAM,mBAAmB,GAAG,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,KAAK;AACrE,QAAQ,QAAQ,CAAC;AACjB,UAAU,KAAK,GAAG;AAClB,YAAY,OAAO,aAAa;AAChC,UAAU,KAAK,GAAG;AAClB,YAAY,OAAO,aAAa;AAChC,UAAU,KAAK,GAAG;AAClB,YAAY,OAAO,cAAc;AACjC,UAAU,KAAK,GAAG;AAClB,YAAY,OAAO,KAAK;AACxB,UAAU;AACV,YAAY,OAAO,EAAE;AACrB;AACA,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC;AAClB,MAAM,OAAO,EAAE,mBAAmB,EAAE;AACpC,IAAI,CAAC,CAAC;AACN,IAAI,OAAO,CAAC,IAAI,EAAE,MAAM,KAAK;AAC7B,MAAM,OAAO,SAAS,EAAE,EAAE,kBAAkB,CAAC,KAAK,EAAE;AACpD,QAAQ,KAAK,EAAE,cAAc,CAAC,CAAC,WAAW,EAAE,EAAE,OAAO,EAAE,IAAI,CAAC,IAAI,EAAE,OAAO,EAAE,IAAI,CAAC,IAAI,EAAE,QAAQ,EAAE,IAAI,CAAC,KAAK,EAAE,CAAC,CAAC;AAC9G,QAAQ,KAAK,EAAE,cAAc,CAAC,SAAS,CAAC,KAAK;AAC7C,OAAO,EAAE;AACT,QAAQ,IAAI,CAAC,KAAK,CAAC,IAAI,IAAI,SAAS,EAAE,EAAE,kBAAkB,CAAC,QAAQ,EAAE;AACrE,UAAU,GAAG,EAAE,CAAC;AAChB,UAAU,IAAI,EAAE,QAAQ;AACxB,UAAU,KAAK,EAAE,2BAA2B;AAC5C,UAAU,QAAQ,EAAE,CAAC,KAAK,CAAC,WAAW,CAAC;AACvC,UAAU,OAAO,EAAE,MAAM,CAAC,CAAC,CAAC,KAAK,MAAM,CAAC,CAAC,CAAC;AAC1C,UAAU,CAAC,GAAG,IAAI,KAAK,KAAK,CAAC,QAAQ,CAAC,IAAI,KAAK,CAAC,QAAQ,CAAC,CAAC,GAAG,IAAI,CAAC,CAAC;AACnE,UAAU,SAAS,EAAE,MAAM,CAAC,CAAC,CAAC,KAAK,MAAM,CAAC,CAAC,CAAC,GAAG,QAAQ;AACvD;AACA,YAAY,CAAC,GAAG,IAAI,KAAK,KAAK,CAAC,QAAQ,CAAC,IAAI,KAAK,CAAC,QAAQ,CAAC,CAAC,GAAG,IAAI,CAAC;AACpE,YAAY,CAAC,OAAO,EAAE,OAAO;AAC7B,WAAW;AACX,SAAS,EAAE;AACX,UAAU,WAAW,CAACd,aAAW,EAAE;AACnC,YAAY,IAAI,EAAE,oBAAoB;AACtC,YAAY,QAAQ,EAAE,CAAC,KAAK,CAAC,WAAW;AACxC,WAAW,EAAE;AACb,YAAY,OAAO,EAAE,OAAO,CAAC,MAAM;AACnC,cAAc,WAAW,CAACW,aAAW,EAAE;AACvC,gBAAgB,IAAI,EAAE,aAAa;AACnC,gBAAgB,IAAI,EAAE;AACtB,eAAe;AACf,aAAa,CAAC;AACd,YAAY,CAAC,EAAE;AACf,WAAW,EAAE,CAAC,EAAE,CAAC,UAAU,CAAC;AAC5B,SAAS,EAAE,EAAE,EAAEC,cAAY,CAAC,IAAI,kBAAkB,CAAC,EAAE,EAAE,IAAI,CAAC;AAC5D,QAAQ,IAAI,CAAC,KAAK,CAAC,KAAK,IAAI,SAAS,EAAE,EAAE,kBAAkB,CAAC,KAAK,EAAEC,cAAY,EAAE;AACjF,UAAU,WAAW,CAACb,aAAW,EAAE,EAAE,IAAI,EAAE,sBAAsB,EAAE,EAAE;AACrE,YAAY,OAAO,EAAE,OAAO,CAAC,MAAM;AACnC,cAAc,cAAc,EAAE,SAAS,EAAE,EAAE,kBAAkB,CAAC,QAAQ,EAAE,YAAY,EAAE;AACtF,gBAAgB,WAAW,CAACA,aAAW,EAAE;AACzC,kBAAkB,IAAI,EAAE,cAAc;AACtC,kBAAkB,KAAK,EAAE,IAAI,CAAC,IAAI,CAAC;AACnC,iBAAiB,EAAE;AACnB,kBAAkB,OAAO,EAAE,OAAO,CAAC,MAAM;AACzC,oBAAoB,kBAAkB,CAAC,MAAM,EAAE,IAAI,EAAE,eAAe,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC;AACxF,mBAAmB,CAAC;AACpB,kBAAkB,CAAC,EAAE;AACrB,iBAAiB,EAAE,CAAC,EAAE,CAAC,OAAO,CAAC;AAC/B,eAAe,CAAC,GAAG;AACnB,gBAAgB,CAAC,KAAK,CAAC,gBAAgB,CAAC,EAAE,iBAAiB,CAAC,KAAK;AACjE,eAAe;AACf,aAAa,CAAC;AACd,YAAY,CAAC,EAAE;AACf,WAAW;AACX,SAAS,CAAC,IAAI,kBAAkB,CAAC,EAAE,EAAE,IAAI,CAAC;AAC1C,QAAQ,IAAI,CAAC,KAAK,CAAC,IAAI,IAAI,SAAS,EAAE,EAAE,kBAAkB,CAAC,QAAQ,EAAE;AACrE,UAAU,GAAG,EAAE,CAAC;AAChB,UAAU,IAAI,EAAE,QAAQ;AACxB,UAAU,KAAK,EAAE,2BAA2B;AAC5C,UAAU,QAAQ,EAAE,CAAC,KAAK,CAAC,WAAW,CAAC;AACvC,UAAU,OAAO,EAAE,MAAM,CAAC,CAAC,CAAC,KAAK,MAAM,CAAC,CAAC,CAAC;AAC1C,UAAU,CAAC,GAAG,IAAI,KAAK,KAAK,CAAC,QAAQ,CAAC,IAAI,KAAK,CAAC,QAAQ,CAAC,CAAC,GAAG,IAAI,CAAC,CAAC;AACnE,UAAU,SAAS,EAAE,MAAM,CAAC,CAAC,CAAC,KAAK,MAAM,CAAC,CAAC,CAAC,GAAG,QAAQ;AACvD;AACA,YAAY,CAAC,GAAG,IAAI,KAAK,KAAK,CAAC,QAAQ,CAAC,IAAI,KAAK,CAAC,QAAQ,CAAC,CAAC,GAAG,IAAI,CAAC;AACpE,YAAY,CAAC,OAAO,EAAE,OAAO;AAC7B,WAAW;AACX,SAAS,EAAE;AACX,UAAU,WAAW,CAACA,aAAW,EAAE;AACnC,YAAY,IAAI,EAAE,oBAAoB;AACtC,YAAY,QAAQ,EAAE,CAAC,KAAK,CAAC,WAAW;AACxC,WAAW,EAAE;AACb,YAAY,OAAO,EAAE,OAAO,CAAC,MAAM;AACnC,cAAc,WAAW,CAACW,aAAW,EAAE;AACvC,gBAAgB,IAAI,EAAE,cAAc;AACpC,gBAAgB,IAAI,EAAE;AACtB,eAAe;AACf,aAAa,CAAC;AACd,YAAY,CAAC,EAAE;AACf,WAAW,EAAE,CAAC,EAAE,CAAC,UAAU,CAAC;AAC5B,SAAS,EAAE,EAAE,EAAE,YAAY,CAAC,IAAI,kBAAkB,CAAC,EAAE,EAAE,IAAI;AAC3D,OAAO,EAAE,CAAC,CAAC;AACX,IAAI,CAAC;AACL,EAAE;AACF,CAAC,CAAC;AAEF,MAAM,YAAY,GAAG,MAAM,CAAC,qBAAqB,CAAC;AAClD,SAAS,UAAU,CAAC,IAAI,EAAE;AAC1B,EAAE,MAAM,EAAE,MAAM,EAAE,cAAc,EAAE,OAAO,EAAE,GAAG,WAAW,EAAE;AAC3D,EAAE,SAAS,aAAa,CAAC,IAAI,EAAE,IAAI,EAAE;AACrC,IAAI,MAAM,EAAE,KAAK,EAAE,SAAS,EAAE,IAAI,EAAE,QAAQ,EAAE,GAAG,cAAc,iBAAiB,IAAI,IAAI,EAAE,CAAC;AAC3F,IAAI,OAAO,aAAa,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,KAAK;AACzC,MAAM,MAAM,KAAK,GAAG,CAAC,GAAG,CAAC;AACzB,MAAM,OAAO;AACb,QAAQ,KAAK;AACb,QAAQ,IAAI;AACZ,QAAQ,EAAE,EAAE,SAAS,CAAC,KAAK,EAAE,IAAI,CAAC;AAClC,QAAQ,KAAK,EAAE,MAAM,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC,EAAE,IAAI,CAAC;AAC/C,QAAQ,SAAS,EAAE,MAAM,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC,EAAE,MAAM,CAAC;AACrD,QAAQ,QAAQ,EAAE,KAAK,KAAK,IAAI,CAAC,KAAK,CAAC,KAAK,IAAI,IAAI,KAAK,IAAI,CAAC,KAAK,CAAC,IAAI;AACxE,QAAQ,SAAS,EAAE,KAAK,KAAK,SAAS,IAAI,IAAI,KAAK,QAAQ;AAC3D,QAAQ,UAAU,EAAE,CAAC,OAAO;AAC5B,UAAU,EAAE,KAAK,EAAE,IAAI,EAAE;AACzB,UAAU,EAAE,QAAQ,EAAE,IAAI,CAAC,KAAK,CAAC,QAAQ;AACzC;AACA,OAAO;AACP,IAAI,CAAC,CAAC;AACN,EAAE;AACF,EAAE,SAAS,YAAY,CAAC,SAAS,EAAE,OAAO,EAAE;AAC5C,IAAI,MAAM,EAAE,IAAI,EAAE,QAAQ,EAAE,GAAG,cAAc,iBAAiB,IAAI,IAAI,EAAE,CAAC;AACzE,IAAI,MAAM,EAAE,QAAQ,EAAE,GAAG,IAAI,CAAC,KAAK;AACnC,IAAI,MAAM,KAAK,GAAG,EAAE;AACpB,IAAI,KAAK,IAAI,IAAI,GAAG,SAAS,EAAE,IAAI,IAAI,OAAO,EAAE,IAAI,IAAI,CAAC,EAAE;AAC3D,MAAM,MAAM,OAAO,GAAG,CAAC,GAAG,KAAK,CAAC,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,IAAI;AAChD,QAAQ,CAAC,CAAC,KAAK,OAAO,CAAC,EAAE,KAAK,EAAE,CAAC,GAAG,CAAC,EAAE,IAAI,EAAE,EAAE,EAAE,QAAQ,EAAE;AAC3D,OAAO;AACP,MAAM,KAAK,CAAC,IAAI,CAAC;AACjB,QAAQ,IAAI;AACZ,QAAQ,EAAE,EAAE,IAAI,CAAC,QAAQ,EAAE;AAC3B,QAAQ,KAAK,EAAE,IAAI,CAAC,QAAQ,EAAE;AAC9B,QAAQ,SAAS,EAAE,IAAI,CAAC,QAAQ,EAAE;AAClC,QAAQ,QAAQ,EAAE,IAAI,KAAK,IAAI,CAAC,KAAK,CAAC,IAAI;AAC1C,QAAQ,SAAS,EAAE,IAAI,KAAK,QAAQ;AACpC,QAAQ,UAAU,EAAE,CAAC;AACrB,OAAO,CAAC;AACR,IAAI;AACJ,IAAI,OAAO,KAAK;AAChB,EAAE;AACF,EAAE,MAAM,OAAO,GAAG,EAAE,IAAI,EAAE,aAAa,EAAE,YAAY,EAAE;AACvD,EAAE,OAAO,CAAC,YAAY,EAAE,OAAO,CAAC;AAChC,EAAE,OAAO,OAAO;AAChB;AACA,SAAS,OAAO,GAAG;AACnB,EAAE,MAAM,OAAO,GAAG,MAAM,CAAC,YAAY,CAAC;AACtC,EAAE,IAAI,OAAO;AACb,IAAI,OAAO,OAAO;AAClB,EAAE,MAAM,IAAI,KAAK;AACjB,IAAI;AACJ,GAAG;AACH;AACA,MAAMI,cAAY,GAAG,EAAE,KAAK,EAAE,eAAe,EAAE;AAC/C,MAAMC,cAAY,GAAG,CAAC,UAAU,CAAC;AACjC,MAAMC,cAAY,GAAG,CAAC,UAAU,CAAC;AACjC,MAAM,YAAY,GAAG,EAAE,KAAK,EAAE,cAAc,EAAE;AAC9C,MAAM,YAAY,GAAG,CAAC,SAAS,EAAE,YAAY,EAAE,UAAU,EAAE,SAAS,EAAE,WAAW,CAAC;AAClF,MAAM,cAAc,GAAG,EAAE;AACzB,MAAMC,aAAW,mBAAmB,eAAe,CAAC;AACpD,EAAE,MAAM,EAAE,aAAa;AACvB,EAAE,KAAK,CAAC,OAAO,EAAE;AACjB,IAAI,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,IAAI,EAAE,GAAG,WAAW,EAAE;AACjD,IAAI,MAAM,EAAE,IAAI,EAAE,aAAa,EAAE,YAAY,EAAE,GAAG,OAAO,EAAE;AAC3D,IAAI,MAAM,SAAS,GAAG,GAAG,CAAC,IAAI,CAAC;AAC/B,IAAI,MAAM,YAAY,GAAG,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC;AAC7C,IAAI,MAAM,iBAAiB,GAAG,GAAG,CAAC,iBAAiB,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;AACrE,IAAI,MAAM,YAAY,GAAG,GAAG,CAAC,IAAI,CAAC;AAClC,IAAI,SAAS,cAAc,GAAG;AAC9B,MAAM,UAAU,CAAC,MAAM;AACvB,QAAQ,IAAI,YAAY,CAAC,KAAK,IAAI,IAAI;AACtC,UAAU;AACV,QAAQ,MAAM,WAAW,GAAG,YAAY,CAAC,KAAK,CAAC,aAAa;AAC5D,UAAU;AACV,SAAS;AACT,QAAQ,IAAI,WAAW,EAAE;AACzB,UAAU,WAAW,CAAC,KAAK,EAAE;AAC7B,QAAQ;AACR,MAAM,CAAC,EAAE,EAAE,CAAC;AACZ,IAAI;AACJ,IAAI,SAAS,iBAAiB,CAAC,IAAI,EAAE;AACrC,MAAM,OAAO,IAAI,CAAC,KAAK,CAAC,IAAI,GAAG,cAAc,CAAC;AAC9C,IAAI;AACJ,IAAI,SAAS,UAAU,GAAG;AAC1B,MAAM,SAAS,CAAC,KAAK,GAAG,CAAC,SAAS,CAAC,KAAK;AACxC,IAAI;AACJ,IAAI,SAAS,YAAY,CAAC,UAAU,EAAE;AACtC,MAAM,OAAO,UAAU,GAAG,cAAc;AACxC,IAAI;AACJ,IAAI,SAAS,UAAU,CAAC,UAAU,EAAE;AACpC,MAAM,OAAO,cAAc,IAAI,UAAU,GAAG,CAAC,CAAC,GAAG,CAAC;AAClD,IAAI;AACJ,IAAI,SAAS,QAAQ,GAAG;AACxB,MAAM,IAAI,CAAC,gBAAgB,CAAC,KAAK;AACjC,QAAQ;AACR,MAAM,IAAI,SAAS,CAAC,KAAK,EAAE;AAC3B,QAAQ,YAAY,EAAE;AACtB,MAAM;AACN,MAAM,iBAAiB,EAAE;AACzB,IAAI;AACJ,IAAI,SAAS,QAAQ,GAAG;AACxB,MAAM,IAAI,CAAC,gBAAgB,CAAC,KAAK;AACjC,QAAQ;AACR,MAAM,IAAI,SAAS,CAAC,KAAK,EAAE;AAC3B,QAAQ,YAAY,EAAE;AACtB,MAAM;AACN,MAAM,iBAAiB,EAAE;AACzB,IAAI;AACJ,IAAI,SAAS,YAAY,GAAG;AAC5B,MAAM,YAAY,CAAC,KAAK,EAAE;AAC1B,IAAI;AACJ,IAAI,SAAS,YAAY,GAAG;AAC5B,MAAM,YAAY,CAAC,KAAK,EAAE;AAC1B,IAAI;AACJ,IAAI,SAAS,iBAAiB,GAAG;AACjC,MAAM,iBAAiB,CAAC,KAAK,EAAE;AAC/B,IAAI;AACJ,IAAI,SAAS,iBAAiB,GAAG;AACjC,MAAM,iBAAiB,CAAC,KAAK,EAAE;AAC/B,IAAI;AACJ,IAAI,MAAM,UAAU,GAAG,QAAQ;AAC/B,MAAM,MAAM,aAAa,CAAC,YAAY,CAAC,KAAK,EAAE,MAAM,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,MAAM;AACrF,QAAQ,GAAG,IAAI;AACf,QAAQ,KAAK,EAAE,MAAM,IAAI;AACzB,UAAU,EAAE,KAAK,EAAE,IAAI,CAAC,KAAK,EAAE,IAAI,EAAE,IAAI,CAAC,IAAI,EAAE;AAChD,UAAU,EAAE,QAAQ,EAAE,IAAI,CAAC,KAAK,CAAC,QAAQ;AACzC;AACA,OAAO,CAAC;AACR,KAAK;AACL,IAAI,MAAM,cAAc,GAAG,QAAQ;AACnC,MAAM,MAAM,aAAa,CAAC,YAAY,CAAC,KAAK,GAAG,CAAC,EAAE,MAAM,CAAC,KAAK,CAAC,SAAS;AACxE,KAAK;AACL,IAAI,MAAM,qBAAqB,GAAG,QAAQ;AAC1C,MAAM,MAAM,cAAc,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,UAAU;AAC1D,KAAK;AACL,IAAI,MAAM,cAAc,GAAG,QAAQ;AACnC,MAAM,MAAM,aAAa,CAAC,YAAY,CAAC,KAAK,GAAG,CAAC,EAAE,MAAM,CAAC,KAAK,CAAC,SAAS;AACxE,KAAK;AACL,IAAI,MAAM,qBAAqB,GAAG,QAAQ;AAC1C,MAAM,MAAM,cAAc,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,UAAU;AAC1D,KAAK;AACL,IAAI,MAAM,SAAS,GAAG,QAAQ;AAC9B,MAAM,MAAM,YAAY;AACxB,QAAQ,YAAY,CAAC,iBAAiB,CAAC,KAAK,CAAC;AAC7C,QAAQ,UAAU,CAAC,iBAAiB,CAAC,KAAK;AAC1C,OAAO,CAAC,GAAG,CAAC,CAAC,IAAI,KAAK;AACtB,QAAQ,OAAO;AACf,UAAU,GAAG,IAAI;AACjB,UAAU,KAAK,EAAE,MAAM;AACvB,YAAY,YAAY,CAAC,KAAK,GAAG,IAAI,CAAC,IAAI;AAC1C,YAAY,SAAS,CAAC,KAAK,GAAG,IAAI;AAClC,YAAY,cAAc,EAAE;AAC5B,UAAU;AACV,SAAS;AACT,MAAM,CAAC;AACP,KAAK;AACL,IAAI,MAAM,aAAa,GAAG,QAAQ;AAClC,MAAM,MAAM,YAAY;AACxB,QAAQ,YAAY,CAAC,iBAAiB,CAAC,KAAK,GAAG,CAAC,CAAC;AACjD,QAAQ,UAAU,CAAC,iBAAiB,CAAC,KAAK,GAAG,CAAC;AAC9C;AACA,KAAK;AACL,IAAI,MAAM,oBAAoB,GAAG,QAAQ;AACzC,MAAM,MAAM,aAAa,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,UAAU;AACzD,KAAK;AACL,IAAI,MAAM,aAAa,GAAG,QAAQ;AAClC,MAAM,MAAM,YAAY;AACxB,QAAQ,YAAY,CAAC,iBAAiB,CAAC,KAAK,GAAG,CAAC,CAAC;AACjD,QAAQ,UAAU,CAAC,iBAAiB,CAAC,KAAK,GAAG,CAAC;AAC9C;AACA,KAAK;AACL,IAAI,MAAM,oBAAoB,GAAG,QAAQ;AACzC,MAAM,MAAM,aAAa,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,UAAU;AACzD,KAAK;AACL,IAAI,MAAM,WAAW,GAAG,QAAQ;AAChC,MAAM,MAAM,SAAS,CAAC,KAAK,GAAG,UAAU,CAAC,KAAK,GAAG,SAAS,CAAC;AAC3D,KAAK;AACL,IAAI,MAAM,gBAAgB,GAAG,QAAQ;AACrC,MAAM,MAAM,SAAS,CAAC,KAAK,GAAG,qBAAqB,CAAC,KAAK,GAAG,oBAAoB,CAAC;AACjF,KAAK;AACL,IAAI,MAAM,gBAAgB,GAAG,QAAQ;AACrC,MAAM,MAAM,SAAS,CAAC,KAAK,GAAG,qBAAqB,CAAC,KAAK,GAAG,oBAAoB,CAAC;AACjF,KAAK;AACL,IAAI,MAAM,SAAS,GAAG,QAAQ,CAAC,MAAM,MAAM,CAAC,SAAS,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC;AAChF,IAAI,MAAM,QAAQ,GAAG,QAAQ,CAAC,MAAM,MAAM,CAAC,SAAS,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC;AAC/E,IAAI,MAAM,MAAM,GAAG,QAAQ,CAAC,MAAM;AAClC,MAAM,OAAO,SAAS,CAAC,KAAK,GAAG,YAAY,CAAC,KAAK,GAAG,CAAC,EAAE,SAAS,CAAC,KAAK,CAAC,GAAG,EAAE,QAAQ,CAAC,KAAK,CAAC,CAAC;AAC5F,IAAI,CAAC,CAAC;AACN,IAAI,WAAW,CAAC,MAAM;AACtB,MAAM,YAAY,CAAC,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI;AAC1C,MAAM,cAAc,EAAE;AACtB,IAAI,CAAC,CAAC;AACN,IAAI,KAAK;AACT,MAAM,MAAM,YAAY,CAAC,KAAK;AAC9B,MAAM,CAAC,GAAG,KAAK,iBAAiB,CAAC,KAAK,GAAG,iBAAiB,CAAC,GAAG;AAC9D,KAAK;AACL,IAAI,SAAS,CAAC,MAAM,cAAc,EAAE,CAAC;AACrC,IAAI,OAAO,CAAC,IAAI,EAAE,MAAM,KAAK;AAC7B,MAAM,OAAO,SAAS,EAAE,EAAE,kBAAkB,CAAC,KAAK,EAAE;AACpD,QAAQ,KAAK,EAAE,kBAAkB;AACjC,QAAQ,OAAO,EAAE,cAAc;AAC/B,QAAQ,GAAG,EAAE;AACb,OAAO,EAAE;AACT,QAAQ,kBAAkB,CAAC,KAAK,EAAEH,cAAY,EAAE;AAChD,UAAU,kBAAkB,CAAC,QAAQ,EAAE;AACvC,YAAY,IAAI,EAAE,QAAQ;AAC1B,YAAY,KAAK,EAAE,+BAA+B;AAClD,YAAY,QAAQ,EAAE,CAAC,gBAAgB,CAAC,KAAK;AAC7C,YAAY,OAAO,EAAE,QAAQ;AAC7B,YAAY,SAAS,EAAE,MAAM,CAAC,CAAC,CAAC,KAAK,MAAM,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,KAAK,KAAK,CAAC,cAAc,CAAC,CAAC,CAAC,EAAE,QAAQ,CAAC;AAC1F,WAAW,EAAE;AACb,YAAY,WAAW,CAACf,aAAW,EAAE;AACrC,cAAc,IAAI,EAAE,iBAAiB;AACrC,cAAc,IAAI,EAAE,QAAQ;AAC5B,cAAc,QAAQ,EAAE,CAAC,gBAAgB,CAAC;AAC1C,aAAa,EAAE;AACf,cAAc,OAAO,EAAE,OAAO,CAAC,MAAM;AACrC,gBAAgB,WAAW,CAACW,aAAW,EAAE;AACzC,kBAAkB,IAAI,EAAE,aAAa;AACrC,kBAAkB,KAAK,EAAE,MAAM;AAC/B,kBAAkB,MAAM,EAAE;AAC1B,iBAAiB;AACjB,eAAe,CAAC;AAChB,cAAc,CAAC,EAAE;AACjB,aAAa,EAAE,CAAC,EAAE,CAAC,UAAU,CAAC;AAC9B,WAAW,EAAE,EAAE,EAAEK,cAAY,CAAC;AAC9B,UAAU,kBAAkB,CAAC,QAAQ,EAAE;AACvC,YAAY,IAAI,EAAE,QAAQ;AAC1B,YAAY,KAAK,EAAE,uBAAuB;AAC1C,YAAY,OAAO,EAAE,UAAU;AAC/B,YAAY,SAAS,EAAE,MAAM,CAAC,CAAC,CAAC,KAAK,MAAM,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,KAAK,KAAK,CAAC,cAAc,CAAC,CAAC,CAAC,EAAE,UAAU,CAAC;AAC5F,WAAW,EAAE,eAAe,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,EAAE,CAAC;AAC/C,UAAU,kBAAkB,CAAC,QAAQ,EAAE;AACvC,YAAY,IAAI,EAAE,QAAQ;AAC1B,YAAY,KAAK,EAAE,gCAAgC;AACnD,YAAY,QAAQ,EAAE,CAAC,gBAAgB,CAAC,KAAK;AAC7C,YAAY,OAAO,EAAE,QAAQ;AAC7B,YAAY,SAAS,EAAE,MAAM,CAAC,CAAC,CAAC,KAAK,MAAM,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,KAAK,KAAK,CAAC,cAAc,CAAC,CAAC,CAAC,EAAE,QAAQ,CAAC;AAC1F,WAAW,EAAE;AACb,YAAY,WAAW,CAAChB,aAAW,EAAE;AACrC,cAAc,IAAI,EAAE,iBAAiB;AACrC,cAAc,IAAI,EAAE,QAAQ;AAC5B,cAAc,QAAQ,EAAE,CAAC,gBAAgB,CAAC;AAC1C,aAAa,EAAE;AACf,cAAc,OAAO,EAAE,OAAO,CAAC,MAAM;AACrC,gBAAgB,WAAW,CAACW,aAAW,EAAE;AACzC,kBAAkB,IAAI,EAAE,cAAc;AACtC,kBAAkB,KAAK,EAAE,MAAM;AAC/B,kBAAkB,MAAM,EAAE;AAC1B,iBAAiB;AACjB,eAAe,CAAC;AAChB,cAAc,CAAC,EAAE;AACjB,aAAa,EAAE,CAAC,EAAE,CAAC,UAAU,CAAC;AAC9B,WAAW,EAAE,EAAE,EAAEM,cAAY;AAC7B,SAAS,CAAC;AACV,QAAQ,kBAAkB,CAAC,KAAK,EAAE,YAAY,EAAE;AAChD,WAAW,SAAS,CAAC,IAAI,CAAC,EAAE,kBAAkB,CAAC,QAAQ,EAAE,IAAI,EAAE,UAAU,CAAC,WAAW,CAAC,KAAK,EAAE,CAAC,IAAI,KAAK;AACvG,YAAY,OAAO,SAAS,EAAE,EAAE,kBAAkB,CAAC,QAAQ,EAAE;AAC7D,cAAc,GAAG,EAAE,IAAI,CAAC,KAAK;AAC7B,cAAc,IAAI,EAAE,QAAQ;AAC5B,cAAc,SAAS,EAAE,IAAI,CAAC,EAAE;AAChC,cAAc,YAAY,EAAE,IAAI,CAAC,SAAS;AAC1C,cAAc,KAAK,EAAE,cAAc,CAAC,CAAC,sBAAsB,EAAE;AAC7D,gBAAgB,IAAI,CAAC,QAAQ,GAAG,WAAW,GAAG,IAAI,CAAC,SAAS,GAAG,YAAY,GAAG;AAC9E,eAAe,CAAC,CAAC;AACjB,cAAc,QAAQ,EAAE,IAAI,CAAC,UAAU;AACvC,cAAc,OAAO,EAAE,IAAI,CAAC,KAAK;AACjC,cAAc,SAAS,EAAE,CAAC,CAAC,KAAK,KAAK,CAAC,cAAc,CAAC,CAAC,CAAC,EAAE,IAAI,CAAC,KAAK;AACnE,aAAa,EAAE,eAAe,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,EAAE,EAAE,YAAY,CAAC;AAC7D,UAAU,CAAC,CAAC,EAAE,GAAG,CAAC;AAClB,SAAS;AACT,OAAO,EAAE,GAAG,CAAC;AACb,IAAI,CAAC;AACL,EAAE;AACF,CAAC,CAAC;AAEF,MAAME,aAAW,mBAAmB,eAAe,CAAC;AACpD,EAAE,MAAM,EAAE,sBAAsB;AAChC,EAAE,KAAK,EAAE;AACT,IAAI,IAAI,EAAE;AACV,GAAG;AACH,EAAE,KAAK,CAAC,OAAO,EAAE;AACjB,IAAI,MAAM,KAAK,GAAG,OAAO;AACzB,IAAI,UAAU,CAAC,KAAK,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC;AACpC,IAAI,OAAO,CAAC,IAAI,EAAE,MAAM,KAAK;AAC7B,MAAM,OAAO,UAAU,CAAC,IAAI,CAAC,MAAM,EAAE,SAAS,CAAC;AAC/C,IAAI,CAAC;AACL,EAAE;AACF,CAAC,CAAC;AACF,MAAMC,aAAW,mBAAmB,eAAe,CAAC;AACpD,EAAE,MAAM,EAAE,oBAAoB;AAC9B,EAAE,KAAK,CAAC,OAAO,EAAE;AACjB,IAAI,MAAM,EAAE,YAAY,EAAE,KAAK,EAAE,WAAW,EAAE,GAAG,WAAW,EAAE;AAC9D,IAAI,OAAO,CAAC,IAAI,EAAE,MAAM,KAAK;AAC7B,MAAM,OAAO,SAAS,EAAE,EAAE,WAAW,CAAC,OAAO,EAAE;AAC/C,QAAQ,EAAE,EAAE,KAAK,CAAC,YAAY,CAAC;AAC/B,QAAQ,KAAK,EAAE,cAAc,CAAC,CAAC,0BAA0B,EAAE,CAAC,GAAG,EAAE,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,EAAE,KAAK,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC;AAC5G,OAAO,EAAE;AACT,QAAQ,OAAO,EAAE,OAAO,CAAC,CAAC,EAAE,IAAI,EAAE,KAAK,EAAE,KAAK;AAC9C,UAAU,WAAW,CAACD,aAAW,EAAE;AACnC,YAAY,IAAI,EAAE,KAAK,CAAC;AACxB,WAAW,EAAE;AACb,YAAY,OAAO,EAAE,OAAO,CAAC,MAAM;AACnC,cAAc,WAAW,CAACnB,aAAW,EAAE,EAAE,IAAI,EAAE,KAAK,EAAE,EAAE;AACxD,gBAAgB,OAAO,EAAE,OAAO,CAAC,MAAM;AACvC,kBAAkB,WAAW,CAACkB,aAAW;AACzC,iBAAiB,CAAC;AAClB,gBAAgB,CAAC,EAAE;AACnB,eAAe;AACf,aAAa,CAAC;AACd,YAAY,CAAC,EAAE;AACf,WAAW,EAAE,CAAC,EAAE,CAAC,MAAM,CAAC;AACxB,SAAS,CAAC;AACV,QAAQ,CAAC,EAAE;AACX,OAAO,EAAE,CAAC,EAAE,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;AAC5B,IAAI,CAAC;AACL,EAAE;AACF,CAAC,CAAC;AACF,MAAMG,aAAW,GAAG,eAAe,CAAC;AACpC,EAAE,UAAU,EAAE,EAAE,OAAO,EAAE,gBAAgB,EAAE;AAC3C,EAAE,UAAU,EAAE,EAAE,YAAY,EAAErB,aAAW,EAAE;AAC3C,EAAE,KAAK,EAAE;AACT,IAAI,GAAG,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,IAAI;AACvC,GAAG;AACH,EAAE,KAAK,CAAC,KAAK,EAAE;AACf,IAAI,MAAM;AACV,MAAM,MAAM;AACZ,MAAM,KAAK;AACX,MAAM,gBAAgB;AACtB,MAAM,YAAY;AAClB,MAAM,UAAU;AAChB,MAAM,eAAe;AACrB,MAAM,eAAe;AACrB,MAAM,YAAY;AAClB,MAAM,aAAa;AACnB,MAAM;AACN,KAAK,GAAG,WAAW,EAAE;AACrB,IAAI,MAAM,GAAG,GAAG,QAAQ,CAAC,MAAM,KAAK,CAAC,GAAG,CAAC;AACzC,IAAI,MAAM,cAAc,GAAG,QAAQ,CAAC,MAAM;AAC1C,MAAM,OAAO,gBAAgB,CAAC,KAAK,CAAC,QAAQ,CAAC,GAAG,CAAC,KAAK,CAAC;AACvD,IAAI,CAAC,CAAC;AACN,IAAI,MAAM,UAAU,GAAG,QAAQ;AAC/B,MAAM,MAAM,cAAc,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,KAAK,IAAI,CAAC,IAAI;AACxD,KAAK;AACL,IAAI,MAAM,aAAa,GAAG,QAAQ,CAAC,MAAM;AACzC,MAAM,OAAO;AACb,QAAQ,GAAG,GAAG,CAAC,KAAK;AACpB,QAAQ,UAAU,EAAE,UAAU,CAAC,KAAK;AACpC,QAAQ,cAAc,EAAE,cAAc,CAAC;AACvC,OAAO;AACP,IAAI,CAAC,CAAC;AACN,IAAI,SAAS,cAAc,CAAC,EAAE,IAAI,EAAE,SAAS,EAAE,EAAE,EAAE,QAAQ,EAAE,SAAS,EAAE,EAAE;AAC1E,MAAM,MAAM,EAAE,GAAG,EAAE,UAAU,EAAE,OAAO,EAAE,GAAG,SAAS;AACpD,MAAM,IAAI,CAAC,OAAO;AAClB,QAAQ;AACR,MAAM,MAAM,eAAe,GAAG,UAAU;AACxC,QAAQ;AACR,UAAU,GAAG;AACb,UAAU,UAAU;AACpB,UAAU;AACV,SAAS;AACT,QAAQ,EAAE,GAAG,OAAO,EAAE;AACtB,QAAQ;AACR,UAAU,UAAU,EAAE,OAAO,CAAC,KAAK,GAAG,OAAO,GAAG,OAAO;AACvD,UAAU,SAAS,EAAE,QAAQ;AAC7B,UAAU,aAAa,EAAE,CAAC,OAAO,CAAC;AAClC;AACA,OAAO;AACP,MAAM,SAAS,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,EAAE,eAAe,CAAC;AAC7C,IAAI;AACJ,IAAI,MAAM,MAAM,GAAG,QAAQ,CAAC,MAAM;AAClC,MAAM,MAAM,MAAM,GAAG;AACrB,QAAQ,GAAG,KAAK,CAAC,KAAK,CAAC,aAAa,CAAC,EAAE,CAAC;AACxC,QAAQ,QAAQ,EAAE;AAClB,OAAO;AACP,MAAM,cAAc,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,IAAI,KAAK;AAC7C,QAAQ,KAAK,CAAC,KAAK,CAAC,MAAM,CAAC,IAAI,EAAE,MAAM,CAAC;AACxC,QAAQ,cAAc,CAAC,IAAI,EAAE,MAAM,CAAC;AACpC,MAAM,CAAC,CAAC;AACR,MAAM,OAAO,MAAM;AACnB,IAAI,CAAC,CAAC;AACN,IAAI,MAAM,UAAU,GAAG,QAAQ,CAAC,MAAM,MAAM,CAAC,KAAK,CAAC,UAAU,CAAC;AAC9D,IAAI,MAAM,aAAa,GAAG,QAAQ,CAAC,MAAM,CAAC,CAAC,aAAa,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC;AAC3E,IAAI,MAAM,OAAO,GAAG,QAAQ,CAAC,MAAM,MAAM,CAAC,KAAK,CAAC,OAAO,CAAC;AACxD,IAAI,MAAM,IAAI,GAAG,QAAQ,CAAC,MAAM,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC;AAClD,IAAI,MAAM,OAAO,GAAG,QAAQ,CAAC,MAAM,CAAC,CAAC,aAAa,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;AAC/D,IAAI,MAAM,IAAI,GAAG,QAAQ,CAAC,MAAM,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC;AAClD,IAAI,MAAM,OAAO,GAAG,QAAQ,CAAC,MAAM,CAAC,CAAC,aAAa,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;AAC/D,IAAI,MAAM,QAAQ,GAAG,QAAQ,CAAC,MAAM,MAAM,CAAC,KAAK,CAAC,QAAQ,CAAC;AAC1D,IAAI,MAAM,YAAY,GAAG,QAAQ;AACjC,MAAM,MAAM,QAAQ,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,SAAS;AACjD,KAAK;AACL,IAAI,MAAM,cAAc,GAAG,OAAO,CAAC,aAAa,CAAC;AACjD,IAAI,MAAM,UAAU,GAAG,QAAQ,CAAC,MAAM;AACtC,MAAM,OAAO;AACb,QAAQ,QAAQ;AAChB,QAAQ,GAAG,GAAG,CAAC,KAAK,CAAC,OAAO;AAC5B,QAAQ,EAAE,0BAA0B,EAAE,CAAC,cAAc,EAAE;AACvD,QAAQ,EAAE,iBAAiB,EAAE,CAAC,KAAK,CAAC,GAAG,CAAC,OAAO;AAC/C,OAAO;AACP,IAAI,CAAC,CAAC;AACN,IAAI,MAAM,eAAe,GAAG,QAAQ,CAAC,MAAM;AAC3C,MAAM,IAAI,QAAQ;AAClB,MAAM,IAAI,GAAG,CAAC,KAAK,CAAC,WAAW,EAAE;AACjC,QAAQ,QAAQ,GAAG,GAAG;AACtB,MAAM,CAAC,MAAM;AACb,QAAQ,QAAQ,GAAG,IAAI;AACvB,MAAM;AACN,MAAM,MAAM,OAAO,GAAG;AACtB,QAAQ,8CAA8C;AACtD,QAAQ,EAAE,aAAa,EAAE,GAAG,CAAC,KAAK,CAAC,UAAU,EAAE;AAC/C,QAAQ,KAAK,CAAC,MAAM,CAAC,UAAU,CAAC,KAAK,CAAC,EAAE,cAAc,CAAC;AACvD,QAAQ,KAAK,CAAC,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,OAAO,CAAC,IAAI;AACjD,OAAO;AACP,MAAM,MAAM,KAAK,GAAG;AACpB,QAAQ,GAAG,KAAK,CAAC,MAAM,CAAC,UAAU,CAAC,KAAK,CAAC,EAAE,cAAc,CAAC;AAC1D,QAAQ,GAAG,KAAK,CAAC,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,OAAO;AAC/C,OAAO;AACP,MAAM,OAAO;AACb,QAAQ,KAAK,EAAE,OAAO;AACtB,QAAQ,KAAK;AACb,QAAQ,QAAQ;AAChB,QAAQ,YAAY,EAAE,GAAG,CAAC,KAAK,CAAC,SAAS;AACzC,QAAQ,eAAe,EAAE,GAAG,CAAC,KAAK,CAAC,UAAU,GAAG,IAAI,GAAG,KAAK;AAC5D,QAAQ,IAAI,EAAE;AACd,OAAO;AACP,IAAI,CAAC,CAAC;AACN,IAAI,MAAM,gBAAgB,GAAG,QAAQ,CAAC,MAAM;AAC5C,MAAM,OAAO;AACb,QAAQ,KAAK,CAAC,KAAK,EAAE;AACrB,UAAU,UAAU,CAAC,aAAa,CAAC,KAAK,EAAE,KAAK,CAAC;AAChD,QAAQ,CAAC;AACT,QAAQ,UAAU,CAAC,KAAK,EAAE;AAC1B,UAAU,eAAe,CAAC,aAAa,CAAC,KAAK,EAAE,KAAK,CAAC;AACrD,QAAQ,CAAC;AACT,QAAQ,UAAU,CAAC,KAAK,EAAE;AAC1B,UAAU,eAAe,CAAC,aAAa,CAAC,KAAK,EAAE,KAAK,CAAC;AACrD,QAAQ,CAAC;AACT,QAAQ,OAAO,CAAC,KAAK,EAAE;AACvB,UAAU,YAAY,CAAC,aAAa,CAAC,KAAK,EAAE,KAAK,CAAC;AAClD,QAAQ,CAAC;AACT,QAAQ,QAAQ,CAAC,KAAK,EAAE;AACxB,UAAU,aAAa,CAAC,aAAa,CAAC,KAAK,EAAE,KAAK,CAAC;AACnD,QAAQ,CAAC;AACT,QAAQ,OAAO,CAAC,KAAK,EAAE;AACvB,UAAU,YAAY,CAAC,aAAa,CAAC,KAAK,EAAE,KAAK,CAAC;AAClD,QAAQ;AACR,OAAO;AACP,IAAI,CAAC,CAAC;AACN,IAAI,MAAM,WAAW,GAAG,QAAQ,CAAC,MAAM;AACvC,MAAM,IAAI,CAAC,aAAa,CAAC,QAAQ,CAAC,KAAK,CAAC;AACxC,QAAQ,OAAO,IAAI;AACnB,MAAM,OAAO,UAAU;AACvB,QAAQ;AACR,UAAU,EAAE,EAAE,YAAY,CAAC,KAAK;AAChC,UAAU,IAAI,EAAE,EAAE,GAAG,EAAE,UAAU,EAAE,YAAY,CAAC,KAAK;AACrD,SAAS;AACT,QAAQ,GAAG,QAAQ,CAAC;AACpB,OAAO;AACP,IAAI,CAAC,CAAC;AACN,IAAI,OAAO;AACX,MAAM,UAAU;AAChB,MAAM,cAAc;AACpB,MAAM,IAAI;AACV,MAAM,UAAU;AAChB,MAAM,eAAe;AACrB,MAAM,gBAAgB;AACtB,MAAM,UAAU,EAAE,WAAW;AAC7B,MAAM,MAAM;AACZ,MAAM,IAAI;AACV,MAAM,OAAO;AACb,MAAM,OAAO;AACb,MAAM,UAAU;AAChB,MAAM,aAAa;AACnB,MAAM,MAAM;AACZ,MAAM;AACN,KAAK;AACL,EAAE;AACF,CAAC,CAAC;AAEF,MAAMsB,cAAY,GAAG;AACrB,EAAE,GAAG,EAAE,CAAC;AACR,EAAE,KAAK,EAAE;AACT,CAAC;AACD,MAAMC,cAAY,GAAG;AACrB,EAAE,GAAG,EAAE,CAAC;AACR,EAAE,KAAK,EAAE;AACT,CAAC;AACD,MAAMC,cAAY,GAAG,EAAE,KAAK,EAAE,SAAS,EAAE;AACzC,MAAMC,cAAY,GAAG;AACrB,EAAE,GAAG,EAAE,CAAC;AACR,EAAE,KAAK,EAAE;AACT,CAAC;AACD,MAAM,YAAY,GAAG,EAAE,KAAK,EAAE,SAAS,EAAE;AACzC,SAAS,aAAa,CAAC,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,QAAQ,EAAE;AACtE,EAAE,MAAM,uBAAuB,GAAG,gBAAgB,CAAC,cAAc,CAAC;AAClE,EAAE,MAAM,kBAAkB,GAAG,gBAAgB,CAAC,SAAS,CAAC;AACxD,EAAE,OAAO,SAAS,EAAE,EAAE,kBAAkB,CAAC,KAAK,EAAE;AAChD,IAAI,KAAK,EAAE,cAAc,CAAC,IAAI,CAAC,UAAU;AACzC,GAAG,EAAE;AACL,IAAI,IAAI,CAAC,aAAa,IAAI,SAAS,EAAE,EAAE,kBAAkB,CAAC,KAAK,EAAEH,cAAY,EAAE;AAC/E,OAAO,SAAS,CAAC,IAAI,CAAC,EAAE,kBAAkB,CAAC,QAAQ,EAAE,IAAI,EAAE,UAAU,CAAC,IAAI,CAAC,UAAU,EAAE,CAAC,EAAE,GAAG,EAAE,YAAY,EAAE,KAAK,EAAE,OAAO,EAAE,KAAK,EAAE,KAAK;AACzI,QAAQ,OAAO,SAAS,EAAE,EAAE,kBAAkB,CAAC,KAAK,EAAE;AACtD,UAAU,GAAG;AACb,UAAU,KAAK,EAAE,cAAc,CAAC,YAAY;AAC5C,SAAS,EAAE;AACX,UAAU,kBAAkB,CAAC,KAAK,EAAE;AACpC,YAAY,KAAK,EAAE,cAAc,CAAC,OAAO,CAAC;AAC1C,YAAY,KAAK,EAAE,cAAc,CAAC,KAAK;AACvC,WAAW,EAAE,IAAI,EAAE,CAAC;AACpB,SAAS,EAAE,CAAC,CAAC;AACb,MAAM,CAAC,CAAC,EAAE,GAAG,CAAC;AACd,KAAK,CAAC,IAAI,kBAAkB,CAAC,EAAE,EAAE,IAAI,CAAC;AACtC,IAAI,WAAW,CAAC,uBAAuB,EAAE;AACzC,MAAM,IAAI,EAAE,aAAa;AACzB,MAAM,GAAG,EAAE,IAAI,CAAC,GAAG;AACnB,MAAM,UAAU,EAAE,IAAI,CAAC,UAAU;AACjC,MAAM,iBAAiB,EAAE,IAAI,CAAC,cAAc;AAC5C,MAAM,QAAQ,EAAE,IAAI,CAAC,eAAe;AACpC,MAAM,SAAS,EAAE,IAAI,CAAC,gBAAgB;AACtC,MAAM,MAAM,EAAE,IAAI,CAAC;AACnB,KAAK,EAAE;AACP,MAAM,OAAO,EAAE,OAAO,CAAC,MAAM;AAC7B,QAAQ,cAAc,EAAE,SAAS,EAAE,EAAE,kBAAkB,CAAC,KAAK,EAAE,UAAU,CAAC,IAAI,CAAC,eAAe,EAAE,UAAU,CAAC,IAAI,CAAC,gBAAgB,EAAE,IAAI,CAAC,CAAC,EAAE;AAC1I,UAAU,eAAe,CAAC,eAAe,CAAC,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,CAAC;AAC5D,SAAS,EAAE,EAAE,CAAC,GAAG;AACjB,UAAU,CAAC,kBAAkB,EAAE,IAAI,CAAC,UAAU;AAC9C,SAAS;AACT,OAAO,CAAC;AACR,MAAM,CAAC,EAAE;AACT,KAAK,EAAE,CAAC,EAAE,CAAC,KAAK,EAAE,YAAY,EAAE,iBAAiB,EAAE,UAAU,EAAE,WAAW,EAAE,QAAQ,CAAC,CAAC;AACtF,IAAI,IAAI,CAAC,OAAO,IAAI,SAAS,EAAE,EAAE,kBAAkB,CAAC,KAAK,EAAEC,cAAY,EAAE;AACzE,MAAM,kBAAkB,CAAC,KAAK,EAAEC,cAAY,EAAE;AAC9C,SAAS,SAAS,CAAC,IAAI,CAAC,EAAE,kBAAkB,CAAC,QAAQ,EAAE,IAAI,EAAE,UAAU,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC,EAAE,GAAG,EAAE,KAAK,EAAE,OAAO,EAAE,KAAK,EAAE,KAAK;AACvH,UAAU,OAAO,SAAS,EAAE,EAAE,kBAAkB,CAAC,MAAM,EAAE;AACzD,YAAY,GAAG;AACf,YAAY,KAAK,EAAE,cAAc,CAAC,OAAO,CAAC;AAC1C,YAAY,KAAK,EAAE,cAAc,CAAC,KAAK;AACvC,WAAW,EAAE,IAAI,EAAE,CAAC,CAAC;AACrB,QAAQ,CAAC,CAAC,EAAE,GAAG,CAAC;AAChB,OAAO;AACP,KAAK,CAAC,IAAI,kBAAkB,CAAC,EAAE,EAAE,IAAI,CAAC;AACtC,IAAI,IAAI,CAAC,OAAO,IAAI,SAAS,EAAE,EAAE,kBAAkB,CAAC,KAAK,EAAEC,cAAY,EAAE;AACzE,MAAM,kBAAkB,CAAC,KAAK,EAAE,YAAY,EAAE;AAC9C,SAAS,SAAS,CAAC,IAAI,CAAC,EAAE,kBAAkB,CAAC,QAAQ,EAAE,IAAI,EAAE,UAAU,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC,EAAE,GAAG,EAAE,KAAK,EAAE,OAAO,EAAE,KAAK,EAAE,KAAK;AACvH,UAAU,OAAO,SAAS,EAAE,EAAE,kBAAkB,CAAC,MAAM,EAAE;AACzD,YAAY,GAAG;AACf,YAAY,KAAK,EAAE,cAAc,CAAC,OAAO,CAAC;AAC1C,YAAY,KAAK,EAAE,cAAc,CAAC,KAAK;AACvC,WAAW,EAAE,IAAI,EAAE,CAAC,CAAC;AACrB,QAAQ,CAAC,CAAC,EAAE,GAAG,CAAC;AAChB,OAAO;AACP,KAAK,CAAC,IAAI,kBAAkB,CAAC,EAAE,EAAE,IAAI;AACrC,GAAG,EAAE,CAAC,CAAC;AACP;AACA,MAAM,WAAW,mBAAmB,WAAW,CAACJ,aAAW,EAAE,CAAC,CAAC,QAAQ,EAAE,aAAa,CAAC,CAAC,CAAC;AACzF,MAAMK,cAAY,GAAG,EAAE,KAAK,EAAE,aAAa,EAAE;AAC7C,MAAMC,cAAY,GAAG,CAAC,SAAS,CAAC;AAChC,MAAM,aAAa,GAAG;AACtB,EAAE,YAAY,EAAE;AAChB,CAAC;AACD,MAAMC,aAAW,mBAAmB,eAAe,CAAC;AACpD,EAAE,GAAG,aAAa;AAClB,EAAE,MAAM,EAAE,cAAc;AACxB,EAAE,KAAK,CAAC,OAAO,EAAE;AACjB,IAAI,MAAM,EAAE,IAAI,EAAE,GAAG,OAAO,EAAE;AAC9B,IAAI,MAAM,EAAE,iBAAiB,EAAE,GAAG,WAAW,EAAE;AAC/C,IAAI,OAAO,CAAC,IAAI,EAAE,MAAM,KAAK;AAC7B,MAAM,OAAO,SAAS,EAAE,EAAE,kBAAkB,CAAC,KAAK,EAAE;AACpD,QAAQ,KAAK,EAAE,cAAc,CAAC;AAC9B,UAAU,SAAS;AACnB,UAAU,CAAC,IAAI,EAAE,KAAK,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC;AAClC,UAAU,CAAC,aAAa,EAAE,KAAK,CAAC,IAAI,CAAC,CAAC,UAAU,CAAC,CAAC;AAClD,UAAU,CAAC,OAAO,EAAE,KAAK,CAAC,IAAI,CAAC,CAAC,MAAM,CAAC,CAAC;AACxC,UAAU,CAAC,gBAAgB,EAAE,KAAK,CAAC,IAAI,CAAC,CAAC,aAAa,CAAC;AACvD,SAAS,CAAC;AACV,QAAQ,GAAG,EAAE;AACb,OAAO,EAAE;AACT,QAAQ,WAAW,CAACd,aAAW,EAAE;AACjC,UAAU,IAAI,EAAE,KAAK,CAAC,IAAI,CAAC;AAC3B,UAAU,OAAO,EAAE,EAAE;AACrB,UAAU,aAAa,EAAE;AACzB,SAAS,EAAE,IAAI,EAAE,CAAC,EAAE,CAAC,MAAM,CAAC,CAAC;AAC7B,QAAQ,kBAAkB,CAAC,KAAK,EAAE;AAClC,UAAU,KAAK,EAAE,cAAc,CAAC,CAAC,UAAU,EAAE;AAC7C,YAAY,CAAC,CAAC,oBAAoB,EAAE,KAAK,CAAC,IAAI,CAAC,CAAC,kBAAkB,CAAC,CAAC,GAAG,KAAK,CAAC,IAAI,CAAC,CAAC;AACnF,WAAW,CAAC;AACZ,SAAS,EAAE;AACX,UAAU,kBAAkB,CAAC,KAAK,EAAEY,cAAY,EAAE;AAClD,aAAa,SAAS,CAAC,IAAI,CAAC,EAAE,kBAAkB,CAAC,QAAQ,EAAE,IAAI,EAAE,UAAU,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,QAAQ,EAAE,CAAC,EAAE,OAAO,EAAE,KAAK,EAAE,EAAE,CAAC,KAAK;AAC7H,cAAc,OAAO,SAAS,EAAE,EAAE,kBAAkB,CAAC,KAAK,EAAE;AAC5D,gBAAgB,GAAG,EAAE,CAAC;AACtB,gBAAgB,KAAK,EAAE,cAAc,CAAC,CAAC,sBAAsB,EAAE,OAAO,CAAC,CAAC;AACxE,eAAe,EAAE,eAAe,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;AAC3C,YAAY,CAAC,CAAC,EAAE,GAAG,CAAC;AACpB,WAAW,CAAC;AACZ,WAAW,SAAS,CAAC,IAAI,CAAC,EAAE,kBAAkB,CAAC,QAAQ,EAAE,IAAI,EAAE,UAAU,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,SAAS,EAAE,CAAC,IAAI,KAAK;AAC3G,YAAY,OAAO,SAAS,EAAE,EAAE,kBAAkB,CAAC,KAAK,EAAE;AAC1D,cAAc,GAAG,EAAE,CAAC,WAAW,EAAE,IAAI,CAAC,UAAU,CAAC,CAAC;AAClD,cAAc,KAAK,EAAE;AACrB,aAAa,EAAE;AACf,cAAc,KAAK,CAAC,IAAI,CAAC,CAAC,kBAAkB,IAAI,SAAS,EAAE,EAAE,kBAAkB,CAAC,KAAK,EAAE;AACvF,gBAAgB,GAAG,EAAE,CAAC;AACtB,gBAAgB,KAAK,EAAE,cAAc,CAAC,CAAC,eAAe,EAAE,CAAC,GAAG,EAAE,KAAK,CAAC,IAAI,CAAC,CAAC,kBAAkB,CAAC,CAAC,CAAC;AAC/F,eAAe,EAAE;AACjB,gBAAgB,kBAAkB,CAAC,MAAM,EAAE;AAC3C,kBAAkB,KAAK,EAAE,cAAc,CAAC,CAAC,uBAAuB,CAAC,CAAC;AAClE,kBAAkB,OAAO,EAAE,CAAC,MAAM,KAAK,KAAK,CAAC,iBAAiB,CAAC,CAAC,IAAI,EAAE,MAAM;AAC5E,iBAAiB,EAAE,eAAe,CAAC,IAAI,CAAC,iBAAiB,CAAC,EAAE,CAAC,EAAEC,cAAY;AAC3E,eAAe,EAAE,CAAC,CAAC,IAAI,kBAAkB,CAAC,EAAE,EAAE,IAAI,CAAC;AACnD,eAAe,SAAS,CAAC,IAAI,CAAC,EAAE,kBAAkB,CAAC,QAAQ,EAAE,IAAI,EAAE,UAAU,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC,GAAG,KAAK;AAClG,gBAAgB,OAAO,SAAS,EAAE,EAAE,WAAW,CAAC,WAAW,EAAE;AAC7D,kBAAkB,GAAG,EAAE,GAAG,CAAC,EAAE;AAC7B,kBAAkB;AAClB,iBAAiB,EAAE,IAAI,EAAE,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC;AACpC,cAAc,CAAC,CAAC,EAAE,GAAG,CAAC;AACtB,aAAa,CAAC;AACd,UAAU,CAAC,CAAC,EAAE,GAAG,CAAC;AAClB,SAAS,EAAE,CAAC;AACZ,OAAO,EAAE,CAAC,CAAC;AACX,IAAI,CAAC;AACL,EAAE;AACF,CAAC,CAAC;AAEF,MAAME,aAAW,GAAG,eAAe,CAAC;AACpC,EAAE,UAAU,EAAE;AACd,IAAI,cAAc,EAAEf,aAAW;AAC/B,IAAI,YAAY,EAAEc,aAAW;AAC7B,IAAI,kBAAkB,EAAER,aAAW;AACnC,IAAI,kBAAkB,EAAElB,aAAW;AACnC,IAAI,oBAAoB,EAAEiB,aAAW;AACrC,IAAI,YAAY,EAAEnB;AAClB,GAAG;AACH,EAAE,KAAK,EAAE,UAAU;AACnB,EAAE,IAAI,EAAE,QAAQ;AAChB,EAAE,KAAK,CAAC,KAAK,EAAE,EAAE,IAAI,EAAE,KAAK,EAAE,EAAE;AAChC,IAAI,OAAO,cAAc,CAAC,KAAK,EAAE,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC;AACjD,EAAE;AACF,CAAC,CAAC;AAEF,MAAM8B,cAAY,GAAG,EAAE,KAAK,EAAE,wBAAwB,EAAE;AACxD,SAAS,aAAa,CAAC,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,QAAQ,EAAE;AACtE,EAAE,MAAM,yBAAyB,GAAG,gBAAgB,CAAC,gBAAgB,CAAC;AACtE,EAAE,MAAM,uBAAuB,GAAG,gBAAgB,CAAC,cAAc,CAAC;AAClE,EAAE,MAAM,uBAAuB,GAAG,gBAAgB,CAAC,cAAc,CAAC;AAClE,EAAE,MAAM,+BAA+B,GAAG,gBAAgB,CAAC,sBAAsB,CAAC;AAClF,EAAE,MAAM,6BAA6B,GAAG,gBAAgB,CAAC,oBAAoB,CAAC;AAC9E,EAAE,MAAM,6BAA6B,GAAG,gBAAgB,CAAC,oBAAoB,CAAC;AAC9E,EAAE,OAAO,SAAS,EAAE,EAAE,kBAAkB,CAAC,QAAQ,EAAE,IAAI,EAAE;AACzD,IAAI,kBAAkB,CAAC,KAAK,EAAE,UAAU,CAAC,EAAE,eAAe,EAAE,2KAA2K,EAAE,EAAE,IAAI,CAAC,MAAM,EAAE;AACxP,MAAM,KAAK,EAAE;AACb,QAAQ,cAAc;AACtB,QAAQ,CAAC,GAAG,EAAE,IAAI,CAAC,IAAI,CAAC,CAAC;AACzB,QAAQ,CAAC,GAAG,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC;AAC1B,QAAQ,CAAC,GAAG,EAAE,IAAI,CAAC,WAAW,CAAC,CAAC;AAChC,QAAQ;AACR,UAAU,aAAa,EAAE,IAAI,CAAC,QAAQ;AACtC,UAAU,aAAa,EAAE,CAAC,IAAI,CAAC,UAAU;AACzC,UAAU,gBAAgB,EAAE,IAAI,CAAC;AACjC;AACA,OAAO;AACP,MAAM,SAAS,EAAE,MAAM,CAAC,CAAC,CAAC,KAAK,MAAM,CAAC,CAAC,CAAC,GAAG,aAAa,CAAC,MAAM;AAC/D,MAAM,CAAC,EAAE,CAAC,SAAS,CAAC,CAAC,CAAC;AACtB,MAAM,GAAG,EAAE;AACX,KAAK,CAAC,EAAE;AACR,MAAM,kBAAkB,CAAC,KAAK,EAAE;AAChC,QAAQ,KAAK,EAAE,cAAc,CAAC,CAAC,mBAAmB,EAAE,EAAE,eAAe,EAAE,IAAI,CAAC,YAAY,EAAE,CAAC;AAC3F,OAAO,EAAE;AACT,QAAQ,kBAAkB,CAAC,KAAK,EAAEA,cAAY,EAAE;AAChD,UAAU,IAAI,CAAC,SAAS,IAAI,SAAS,EAAE,EAAE,WAAW,CAAC,yBAAyB,EAAE;AAChF,YAAY,GAAG,EAAE,CAAC;AAClB,YAAY,IAAI,EAAE,IAAI,CAAC,SAAS;AAChC,YAAY,OAAO,EAAE,EAAE;AACvB,YAAY,YAAY,EAAE;AAC1B,WAAW,EAAE,IAAI,EAAE,CAAC,EAAE,CAAC,MAAM,CAAC,CAAC,IAAI,kBAAkB,CAAC,EAAE,EAAE,IAAI;AAC9D,SAAS,CAAC;AACV,QAAQ,WAAW,CAAC,UAAU,EAAE;AAChC,UAAU,IAAI,EAAE,CAAC,GAAG,EAAE,IAAI,CAAC,cAAc,CAAC,CAAC;AAC3C,UAAU,aAAa,EAAE,IAAI,CAAC,uBAAuB;AACrD,UAAU,YAAY,EAAE,IAAI,CAAC;AAC7B,SAAS,EAAE;AACX,UAAU,OAAO,EAAE,OAAO,CAAC,MAAM;AACjC,aAAa,SAAS,EAAE,EAAE,kBAAkB,CAAC,KAAK,EAAE;AACpD,cAAc,GAAG,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,EAAE;AACnC,cAAc,KAAK,EAAE,gBAAgB;AACrC,cAAc,KAAK,EAAE,cAAc,CAAC;AACpC,gBAAgB,mBAAmB,EAAE,CAAC,OAAO,EAAE,IAAI,CAAC,OAAO,CAAC,MAAM;AAClE,eAAe;AACf,aAAa,EAAE;AACf,eAAe,SAAS,CAAC,IAAI,CAAC,EAAE,kBAAkB,CAAC,QAAQ,EAAE,IAAI,EAAE,UAAU,CAAC,IAAI,CAAC,KAAK,EAAE,CAAC,IAAI,KAAK;AACpG,gBAAgB,OAAO,SAAS,EAAE,EAAE,WAAW,CAAC,+BAA+B,EAAE;AACjF,kBAAkB,GAAG,EAAE,IAAI,CAAC,EAAE;AAC9B,kBAAkB;AAClB,iBAAiB,EAAE;AACnB,kBAAkB,OAAO,EAAE,OAAO,CAAC,MAAM;AACzC,oBAAoB,WAAW,CAAC,uBAAuB,EAAE;AACzD,sBAAsB,IAAI,EAAE,MAAM;AAClC,sBAAsB;AACtB,qBAAqB,EAAE;AACvB,sBAAsB,OAAO,EAAE,OAAO,CAAC,MAAM;AAC7C,wBAAwB,WAAW,CAAC,uBAAuB;AAC3D,uBAAuB,CAAC;AACxB,sBAAsB,CAAC,EAAE;AACzB,qBAAqB,EAAE,CAAC,EAAE,CAAC,MAAM,CAAC;AAClC,mBAAmB,CAAC;AACpB,kBAAkB,CAAC,EAAE;AACrB,iBAAiB,EAAE,IAAI,EAAE,CAAC,MAAM,CAAC,CAAC;AAClC,cAAc,CAAC,CAAC,EAAE,GAAG,CAAC;AACtB,aAAa,EAAE,CAAC,CAAC;AACjB,WAAW,CAAC;AACZ,UAAU,CAAC,EAAE;AACb,SAAS,EAAE,CAAC,EAAE,CAAC,MAAM,EAAE,eAAe,EAAE,cAAc,CAAC,CAAC;AACxD,QAAQ,WAAW,CAAC,uBAAuB,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;AAC/D,OAAO,EAAE,CAAC;AACV,KAAK,EAAE,EAAE,CAAC;AACV,IAAI,WAAW,CAAC,6BAA6B,CAAC;AAC9C,IAAI,WAAW,CAAC,6BAA6B;AAC7C,GAAG,EAAE,EAAE,CAAC;AACR;AACA,MAAM,QAAQ,mBAAmB,WAAW,CAACD,aAAW,EAAE,CAAC,CAAC,QAAQ,EAAE,aAAa,CAAC,CAAC,CAAC;AACtF,MAAM,UAAU,GAAG,MAAM,CAAC,4BAA4B,CAAC;AACvD,MAAM,QAAQ,GAAG;AACjB,EAAE,GAAG,UAAU;AACf,EAAE,IAAI,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE;AACzC,EAAE,UAAU,EAAE;AACd,IAAI,IAAI,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM;AACvC,GAAG;AACH,EAAE,cAAc,EAAE;AAClB,IAAI,IAAI,EAAE,MAAM;AAChB,IAAI,OAAO,EAAE,OAAO,EAAE;AACtB,GAAG;AACH,EAAE,KAAK,EAAE,CAAC,MAAM,EAAE,MAAM,CAAC;AACzB,EAAE,MAAM,EAAE,OAAO;AACjB,EAAE,cAAc,EAAE,OAAO;AACzB,EAAE,YAAY,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,CAAC,EAAE;AAC5C,EAAE,UAAU,EAAE,OAAO;AACrB,EAAE,OAAO,EAAE,OAAO;AAClB,EAAE,aAAa,EAAE;AACjB,IAAI,IAAI,EAAE,OAAO;AACjB,IAAI,OAAO,EAAE,MAAM,UAAU,CAAC,0BAA0B;AACxD,GAAG;AACH,EAAE,aAAa,EAAE;AACjB,IAAI,IAAI,EAAE,MAAM;AAChB,IAAI,OAAO,EAAE,MAAM,UAAU,CAAC,0BAA0B;AACxD,GAAG;AACH,EAAE,OAAO,EAAE;AACX,IAAI,IAAI,EAAE,CAAC,OAAO,EAAE,MAAM,CAAC;AAC3B,IAAI,OAAO,EAAE;AACb,GAAG;AACH,EAAE,aAAa,EAAE,MAAM;AACvB,EAAE,eAAe,EAAE,MAAM;AACzB,EAAE,UAAU,EAAE,CAAC,MAAM,EAAE,KAAK;AAC5B,CAAC;AACD,MAAM,KAAK,GAAG;AACd,EAAE,mBAAmB;AACrB,EAAE,MAAM;AACR,EAAE,UAAU;AACZ,EAAE,YAAY;AACd,EAAE,mBAAmB;AACrB,EAAE,kBAAkB;AACpB,EAAE,mBAAmB;AACrB,EAAE;AACF,CAAC;AACD,SAAS,gBAAgB,CAAC,KAAK,EAAE,EAAE,IAAI,EAAE,KAAK,EAAE,EAAE;AAClD,EAAE,YAAY,CAAC,KAAK,EAAE,EAAE,MAAM,EAAE,WAAW,EAAE,CAAC;AAC9C,EAAE,MAAM,OAAO,GAAG,UAAU,CAAC,KAAK,CAAC;AACnC,EAAE,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,iBAAiB,EAAE,GAAG,OAAO;AAC9D,EAAE,MAAM,YAAY,GAAG,GAAG,CAAC,KAAK,CAAC;AACjC,EAAE,MAAM,mBAAmB,GAAG,GAAG,CAAC,MAAM,EAAE,CAAC;AAC3C,EAAE,MAAM,SAAS,GAAG,GAAG,CAAC,IAAI,CAAC;AAC7B,EAAE,MAAM,SAAS,GAAG,GAAG,CAAC,IAAI,CAAC;AAC7B,EAAE,MAAM,WAAW,GAAG,GAAG,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC;AACnC,EAAE,MAAM,UAAU,GAAG,GAAG,CAAC,IAAI,CAAC;AAC9B,EAAE,MAAM,WAAW,GAAG,GAAG,CAAC,IAAI,CAAC;AAC/B,EAAE,IAAI,aAAa,GAAG,MAAM;AAC5B,EAAE,IAAI,iBAAiB;AACvB,EAAE,IAAI,UAAU,GAAG,IAAI;AACvB,EAAE,MAAM,OAAO,GAAG,QAAQ,CAAC,MAAM;AACjC,IAAI,OAAO,KAAK,CAAC,OAAO,IAAI,KAAK,CAAC,cAAc,CAAC,KAAK,KAAK,IAAI;AAC/D,EAAE,CAAC,CAAC;AACJ,EAAE,MAAM,UAAU,GAAG,QAAQ;AAC7B,IAAI,MAAM,OAAO,CAAC,KAAK,IAAI,SAAS,CAAC,KAAK,IAAI,IAAI,GAAG,SAAS,CAAC,KAAK,CAAC,KAAK,GAAG;AAC7E,GAAG;AACH,EAAE,MAAM,QAAQ,GAAG,QAAQ;AAC3B,IAAI,MAAM,OAAO,CAAC,KAAK,IAAI,SAAS,CAAC,KAAK,IAAI,IAAI,GAAG,SAAS,CAAC,KAAK,CAAC,GAAG,GAAG;AAC3E,GAAG;AACH,EAAE,MAAM,UAAU,GAAG,QAAQ,CAAC,MAAM,KAAK,CAAC,IAAI,CAAC,WAAW,EAAE,KAAK,MAAM,CAAC;AACxE,EAAE,MAAM,cAAc,GAAG,QAAQ;AACjC,IAAI,MAAM,KAAK,CAAC,IAAI,CAAC,WAAW,EAAE,KAAK;AACvC,GAAG;AACH,EAAE,MAAM,UAAU,GAAG,QAAQ,CAAC,MAAM,KAAK,CAAC,IAAI,CAAC,WAAW,EAAE,KAAK,MAAM,CAAC;AACxE,EAAE,MAAM,UAAU,GAAG,QAAQ,CAAC,MAAM,CAAC,CAAC,SAAS,CAAC,KAAK,CAAC;AACtD,EAAE,MAAM,WAAW,GAAG,QAAQ,CAAC,MAAM;AACrC,IAAI,IAAI,IAAI,GAAG,MAAM;AACrB,IAAI,IAAI,KAAK,CAAC,cAAc,CAAC,MAAM;AACnC,MAAM,IAAI,GAAG,QAAQ;AACrB,IAAI,IAAI,KAAK,CAAC,cAAc,CAAC,MAAM;AACnC,MAAM,IAAI,GAAG,QAAQ;AACrB,IAAI,MAAM,IAAI,GAAG,MAAM,CAAC,KAAK,CAAC,UAAU,IAAI,KAAK;AACjD,IAAI,OAAO,gBAAgB,CAAC,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC;AAC3C,EAAE,CAAC,CAAC;AACJ,EAAE,MAAM,SAAS,GAAG,QAAQ;AAC5B,IAAI,MAAM,aAAa,CAAC,SAAS,CAAC,KAAK,IAAI,SAAS,CAAC,KAAK;AAC1D,GAAG;AACH,EAAE,MAAM,SAAS,GAAG,QAAQ,CAAC,MAAM;AACnC,IAAI,IAAI,UAAU,CAAC,KAAK,EAAE;AAC1B,MAAM,OAAO,KAAK,CAAC,MAAM,GAAG,MAAM,CAAC,KAAK,CAAC,aAAa,GAAG,MAAM,CAAC,KAAK,CAAC,SAAS;AAC/E,IAAI;AACJ,IAAI,IAAI,cAAc,CAAC,KAAK,EAAE;AAC9B,MAAM,OAAO,KAAK,CAAC,MAAM,GAAG,MAAM,CAAC,KAAK,CAAC,iBAAiB,GAAG,MAAM,CAAC,KAAK,CAAC,aAAa;AACvF,IAAI;AACJ,IAAI,OAAO,MAAM,CAAC,KAAK,CAAC,KAAK;AAC7B,EAAE,CAAC,CAAC;AACJ,EAAE,MAAM,gBAAgB,GAAG,QAAQ,CAAC,MAAM,OAAO,CAAC,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC;AACxE,EAAE,MAAM,gBAAgB,GAAG,QAAQ;AACnC,IAAI,MAAM,uCAAuC,CAAC,IAAI,CAAC,SAAS,CAAC,KAAK;AACtE,GAAG;AACH,EAAE,MAAM,cAAc,GAAG,QAAQ,CAAC,MAAM;AACxC,IAAI,IAAI,gBAAgB,CAAC,KAAK,IAAI,gBAAgB,CAAC,KAAK,EAAE;AAC1D,MAAM,OAAO,UAAU;AACvB,IAAI;AACJ,IAAI,IAAI,gBAAgB,CAAC,KAAK;AAC9B,MAAM,OAAO,MAAM;AACnB,IAAI,IAAI,gBAAgB,CAAC,KAAK;AAC9B,MAAM,OAAO,MAAM;AACnB,IAAI,OAAO,MAAM;AACjB,EAAE,CAAC,CAAC;AACJ,EAAE,MAAM,OAAO,GAAG,QAAQ,CAAC,MAAM;AACjC,IAAI,IAAI,EAAE;AACV,IAAI,MAAM,MAAM,GAAG,CAAC,CAAC,EAAE,GAAG,UAAU,CAAC,KAAK,KAAK,IAAI,GAAG,MAAM,GAAG,EAAE,CAAC,GAAG,CAAC,sBAAsB,KAAK,MAAM;AACvG,IAAI,OAAO,cAAc,CAAC,EAAE,EAAE,KAAK,CAAC,OAAO,EAAE,UAAU,CAAC,oBAAoB,CAAC,EAAE;AAC/E,MAAM;AACN,KAAK,CAAC;AACN,EAAE,CAAC,CAAC;AACJ,EAAE,MAAM,aAAa,GAAG,QAAQ;AAChC,IAAI,MAAM,uBAAuB,CAAC;AAClC,MAAM,GAAG,OAAO,CAAC,KAAK;AACtB,MAAM,EAAE,EAAE,mBAAmB,CAAC;AAC9B,KAAK;AACL,GAAG;AACH,EAAE,MAAM,UAAU,GAAG,QAAQ,CAAC,MAAM;AACpC,IAAI,OAAO,OAAO,CAAC,KAAK,GAAG;AAC3B,MAAM,KAAK,EAAE,WAAW,CAAC,KAAK,CAAC,CAAC,CAAC;AACjC,MAAM,GAAG,EAAE,WAAW,CAAC,KAAK,CAAC,CAAC;AAC9B,KAAK,GAAG,WAAW,CAAC,KAAK,CAAC,CAAC,CAAC;AAC5B,EAAE,CAAC,CAAC;AACJ,EAAE,MAAM,WAAW,GAAG,QAAQ,CAAC,MAAM;AACrC,IAAI,MAAM,MAAM,GAAG,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC,GAAG,CAAC,CAAC,MAAM,MAAM;AACrD,MAAM,KAAK,EAAE,YAAY,CAAC,MAAM,CAAC;AACjC,MAAM,MAAM,EAAE,aAAa,CAAC,MAAM,CAAC;AACnC,MAAM,KAAK,EAAE,YAAY;AACzB,MAAM,GAAG,KAAK,CAAC,OAAO,IAAI,aAAa,CAAC;AACxC,KAAK,CAAC,CAAC;AACP,IAAI,OAAO,OAAO,CAAC,KAAK,GAAG;AAC3B,MAAM,KAAK,EAAE,MAAM,CAAC,CAAC,CAAC;AACtB,MAAM,GAAG,EAAE,MAAM,CAAC,CAAC;AACnB,KAAK,GAAG,MAAM,CAAC,CAAC,CAAC;AACjB,EAAE,CAAC,CAAC;AACJ,EAAE,MAAM,eAAe,GAAG,QAAQ,CAAC,MAAM;AACzC,IAAI,IAAI,CAAC,QAAQ,CAAC,SAAS,CAAC,KAAK,CAAC;AAClC,MAAM,OAAO,IAAI;AACjB,IAAI,MAAM,SAAS,GAAG;AACtB,MAAM,GAAG,EAAE,aAAa;AACxB,MAAM,GAAG,KAAK,CAAC,eAAe;AAC9B,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK;AAC5B,MAAM,OAAO,EAAE;AACf,KAAK;AACL,IAAI,MAAM,EAAE,GAAG,EAAE,GAAG,EAAE,SAAS,EAAE,OAAO,EAAE,GAAG,SAAS;AACtD,IAAI,IAAI,CAAC,GAAG,IAAI,CAAC,GAAG,IAAI,CAAC,SAAS,IAAI,CAAC,OAAO,EAAE;AAChD,MAAM,SAAS,CAAC,SAAS,GAAG,IAAI;AAChC,IAAI;AACJ,IAAI,OAAO,SAAS;AACpB,EAAE,CAAC,CAAC;AACJ,EAAE,MAAM,aAAa,GAAG,QAAQ,CAAC,MAAM;AACvC,IAAI,IAAI,CAAC,OAAO,CAAC,KAAK,IAAI,CAAC,QAAQ,CAAC,SAAS,CAAC,KAAK,CAAC,EAAE;AACtD,MAAM,OAAO,IAAI;AACjB,IAAI;AACJ,IAAI,MAAM,SAAS,GAAG;AACtB,MAAM,GAAG,EAAE,aAAa;AACxB,MAAM,GAAG,KAAK,CAAC,aAAa;AAC5B,MAAM,KAAK,EAAE,SAAS,CAAC;AACvB,KAAK;AACL,IAAI,MAAM,EAAE,GAAG,EAAE,GAAG,EAAE,SAAS,EAAE,OAAO,EAAE,GAAG,SAAS;AACtD,IAAI,IAAI,CAAC,GAAG,IAAI,CAAC,GAAG,IAAI,CAAC,SAAS,IAAI,CAAC,OAAO,EAAE;AAChD,MAAM,SAAS,CAAC,SAAS,GAAG;AAC5B,QAAQ,QAAQ,EAAE;AAClB,UAAU,QAAQ,EAAE;AACpB;AACA,OAAO;AACP,IAAI;AACJ,IAAI,OAAO,SAAS;AACpB,EAAE,CAAC,CAAC;AACJ,EAAE,MAAM,UAAU,GAAG,QAAQ,CAAC,MAAM;AACpC,IAAI,MAAM,KAAK,GAAG,OAAO,CAAC,KAAK,CAAC,UAAU,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC,UAAU,CAAC,GAAG,EAAE;AACxE,IAAI,IAAI,aAAa,CAAC,KAAK,EAAE;AAC7B,MAAM,KAAK,CAAC,OAAO,CAAC,aAAa,CAAC,KAAK,CAAC;AACxC,IAAI,CAAC,MAAM,IAAI,eAAe,CAAC,KAAK,EAAE;AACtC,MAAM,KAAK,CAAC,OAAO,CAAC,eAAe,CAAC,KAAK,CAAC;AAC1C,IAAI;AACJ,IAAI,OAAO,KAAK;AAChB,EAAE,CAAC,CAAC;AACJ,EAAE,MAAM,KAAK,GAAG,QAAQ,CAAC,MAAM;AAC/B,IAAI,OAAO,gBAAgB;AAC3B,MAAM,KAAK,CAAC,KAAK,KAAK,MAAM,GAAG,YAAY,EAAE,GAAG,KAAK,CAAC,KAAK,IAAI;AAC/D,KAAK;AACL,EAAE,CAAC,CAAC;AACJ,EAAE,SAAS,YAAY,GAAG;AAC1B,IAAI,MAAM,MAAM,GAAG;AACnB,MAAM,EAAE,EAAE,CAAC,CAAC,EAAE,GAAG,CAAC;AAClB,MAAM,GAAG,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC;AAClB,MAAM,GAAG,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC;AAClB,MAAM,EAAE,EAAE,CAAC,CAAC,EAAE,EAAE;AAChB,KAAK;AACL,IAAI,MAAM,QAAQ,GAAG,UAAU,CAAC,KAAK,GAAG,CAAC,GAAG,KAAK,CAAC,YAAY;AAC9D,IAAI,OAAO,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,KAAK;AAC7B,MAAM,QAAQ,QAAQ;AACtB,QAAQ,KAAK,CAAC;AACd,UAAU,OAAO;AACjB,YAAY,KAAK,EAAE,MAAM,CAAC,EAAE,CAAC,CAAC,CAAC;AAC/B,YAAY,OAAO,EAAE,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC;AAClC,YAAY,OAAO,EAAE,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC;AAClC,YAAY,YAAY,EAAE,MAAM,CAAC,EAAE,CAAC,CAAC;AACrC,WAAW;AACX,QAAQ,KAAK,CAAC;AACd,UAAU,OAAO;AACjB,YAAY,OAAO,EAAE,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC;AAClC,YAAY,OAAO,EAAE,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC;AAClC,YAAY,YAAY,EAAE,MAAM,CAAC,EAAE,CAAC,CAAC;AACrC,WAAW;AACX,QAAQ,KAAK,CAAC;AACd,UAAU,OAAO,EAAE,YAAY,EAAE,MAAM,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE;AAC/C,QAAQ,KAAK,CAAC;AACd,UAAU,OAAO,EAAE;AACnB,QAAQ;AACR,UAAU,OAAO,EAAE,OAAO,EAAE,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,YAAY,EAAE,MAAM,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE;AACvE;AACA,IAAI,CAAC,CAAC;AACN,EAAE;AACF,EAAE,SAAS,gBAAgB,CAAC,OAAO,EAAE;AACrC,IAAI,IAAI,OAAO,CAAC,OAAO,CAAC,EAAE;AAC1B,MAAM,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC;AAC9B,QAAQ,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,OAAO,CAAC,CAAC,CAAC,CAAC;AACvC,MAAM,OAAO,OAAO;AACpB,IAAI;AACJ,IAAI,OAAO,CAAC,OAAO,EAAE,OAAO,CAAC;AAC7B,EAAE;AACF,EAAE,SAAS,mBAAmB,CAAC,OAAO,EAAE;AACxC,IAAI,OAAO,gBAAgB,CAAC,OAAO,CAAC,CAAC,GAAG;AACxC,MAAM,CAAC,CAAC,EAAE,CAAC,MAAM;AACjB,QAAQ,GAAG,CAAC;AACZ,QAAQ,KAAK,EAAE,KAAK,CAAC,KAAK,CAAC,CAAC;AAC5B,OAAO;AACP,KAAK;AACL,EAAE;AACF,EAAE,SAAS,YAAY,CAAC,KAAK,EAAE;AAC/B,IAAI,IAAI,KAAK,IAAI,IAAI;AACrB,MAAM,OAAO,KAAK;AAClB,IAAI,IAAI,UAAU,CAAC,KAAK,CAAC;AACzB,MAAM,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC;AAC1B,IAAI,IAAI,MAAM,CAAC,KAAK,CAAC;AACrB,MAAM,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,OAAO,EAAE,CAAC;AACpC,IAAI,IAAI,UAAU,CAAC,KAAK,CAAC;AACzB,MAAM,OAAO,KAAK,KAAK,EAAE;AACzB,IAAI,OAAO,WAAW,CAAC,KAAK,CAAC;AAC7B,EAAE;AACF,EAAE,SAAS,aAAa,CAAC,KAAK,EAAE;AAChC,IAAI,OAAO,QAAQ,CAAC,KAAK,CAAC,IAAI,OAAO,IAAI,KAAK,IAAI,KAAK,IAAI,KAAK,IAAI,YAAY,CAAC,KAAK,CAAC,KAAK,IAAI,IAAI,CAAC,IAAI,YAAY,CAAC,KAAK,CAAC,GAAG,IAAI,IAAI,CAAC;AACxI,EAAE;AACF,EAAE,SAAS,QAAQ,CAAC,KAAK,EAAE;AAC3B,IAAI,OAAO,aAAa,CAAC,KAAK,CAAC,IAAI,YAAY,CAAC,KAAK,CAAC;AACtD,EAAE;AACF,EAAE,SAAS,cAAc,CAAC,CAAC,EAAE,CAAC,EAAE;AAChC,IAAI,IAAI,CAAC,IAAI,IAAI,IAAI,CAAC,IAAI,IAAI;AAC9B,MAAM,OAAO,IAAI;AACjB,IAAI,IAAI,CAAC,IAAI,IAAI,IAAI,CAAC,IAAI,IAAI;AAC9B,MAAM,OAAO,KAAK;AAClB,IAAI,MAAM,OAAO,GAAG,MAAM,CAAC,CAAC,CAAC;AAC7B,IAAI,MAAM,OAAO,GAAG,MAAM,CAAC,CAAC,CAAC;AAC7B,IAAI,IAAI,OAAO,IAAI,OAAO;AAC1B,MAAM,OAAO,CAAC,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC,OAAO,EAAE;AACxC,IAAI,IAAI,OAAO,IAAI,OAAO;AAC1B,MAAM,OAAO,KAAK;AAClB,IAAI,OAAO,cAAc,CAAC,CAAC,CAAC,KAAK,EAAE,CAAC,CAAC,KAAK,CAAC,IAAI,cAAc,CAAC,CAAC,CAAC,GAAG,EAAE,CAAC,CAAC,GAAG,CAAC;AAC3E,EAAE;AACF,EAAE,SAAS,eAAe,CAAC,KAAK,EAAE;AAClC,IAAI,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,IAAI,CAAC,iBAAiB,CAAC,KAAK;AACpD,MAAM,OAAO,KAAK;AAClB,IAAI,OAAO,iBAAiB,CAAC,KAAK,CAAC,eAAe,CAAC,MAAM,CAAC,KAAK,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;AAC7E,EAAE;AACF,EAAE,SAAS,cAAc,CAAC,KAAK,EAAE,OAAO,EAAE,KAAK,EAAE,cAAc,EAAE;AACjE,IAAI,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC;AACxB,MAAM,OAAO,IAAI;AACjB,IAAI,IAAI,aAAa,CAAC,KAAK,CAAC,EAAE;AAC9B,MAAM,MAAM,KAAK,GAAG,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC,KAAK,EAAE;AACrD,QAAQ,GAAG,OAAO,CAAC,CAAC,CAAC;AACrB,QAAQ,QAAQ,EAAE,UAAU,CAAC,KAAK,IAAI,MAAM;AAC5C,QAAQ;AACR,OAAO,CAAC;AACR,MAAM,MAAM,GAAG,GAAG,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC,GAAG,EAAE;AACjD,QAAQ,GAAG,OAAO,CAAC,CAAC,CAAC;AACrB,QAAQ,QAAQ,EAAE,QAAQ,CAAC,KAAK,IAAI,MAAM;AAC1C,QAAQ;AACR,OAAO,CAAC;AACR,MAAM,OAAO,SAAS,CAAC,EAAE,KAAK,EAAE,GAAG,EAAE,EAAE,cAAc,CAAC;AACtD,IAAI;AACJ,IAAI,OAAO,MAAM,CAAC,KAAK,CAAC,YAAY,CAAC,KAAK,EAAE;AAC5C,MAAM,GAAG,OAAO,CAAC,CAAC,CAAC;AACnB,MAAM,QAAQ,EAAE,SAAS,CAAC,KAAK;AAC/B,MAAM;AACN,KAAK,CAAC;AACN,EAAE;AACF,EAAE,SAAS,gBAAgB,CAAC,KAAK,EAAE,OAAO,EAAE;AAC5C,IAAI,IAAI,aAAa,CAAC,KAAK,CAAC,EAAE;AAC9B,MAAM,OAAO;AACb,QAAQ,KAAK,EAAE,MAAM,CAAC,KAAK,CAAC,QAAQ,CAAC,KAAK,CAAC,KAAK,EAAE,OAAO,CAAC,CAAC,CAAC,CAAC;AAC7D,QAAQ,GAAG,EAAE,MAAM,CAAC,KAAK,CAAC,QAAQ,CAAC,KAAK,CAAC,GAAG,EAAE,OAAO,CAAC,CAAC,CAAC;AACxD,OAAO;AACP,IAAI;AACJ,IAAI,IAAI,OAAO,CAAC,KAAK,EAAE;AACvB,MAAM,OAAO,IAAI;AACjB,IAAI;AACJ,IAAI,OAAO,MAAM,CAAC,KAAK,CAAC,QAAQ,CAAC,KAAK,EAAE,OAAO,CAAC,CAAC,CAAC,CAAC;AACnD,EAAE;AACF,EAAE,SAAS,WAAW,CAAC,KAAK,EAAE,IAAI,GAAG,EAAE,EAAE;AACzC,IAAI,YAAY,CAAC,aAAa,CAAC;AAC/B,IAAI,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,KAAK;AACpC,MAAM,MAAM,EAAE,QAAQ,GAAG,CAAC,EAAE,GAAG,IAAI,EAAE,GAAG,IAAI;AAC5C,MAAM,IAAI,QAAQ,GAAG,CAAC,EAAE;AACxB,QAAQ,aAAa,GAAG,MAAM,CAAC,UAAU,CAAC,MAAM;AAChD,UAAU,OAAO,CAAC,gBAAgB,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC;AAChD,QAAQ,CAAC,EAAE,QAAQ,CAAC;AACpB,MAAM,CAAC,MAAM;AACb,QAAQ,OAAO,CAAC,gBAAgB,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC;AAC9C,MAAM;AACN,IAAI,CAAC,CAAC;AACN,EAAE;AACF,EAAE,SAAS,gBAAgB,CAAC,KAAK,EAAE;AACnC,IAAI,MAAM,EAAE,OAAO,GAAG,WAAW,CAAC,KAAK;AACvC,IAAI,KAAK,GAAG,UAAU;AACtB,IAAI,YAAY,GAAG,KAAK;AACxB,IAAI,WAAW,EAAE,MAAM,GAAG,IAAI;AAC9B,IAAI,WAAW,EAAE,QAAQ,GAAG,KAAK;AACjC,IAAI,QAAQ,GAAG,UAAU,CAAC,KAAK;AAC/B,IAAI,cAAc;AAClB,IAAI,WAAW,EAAE,MAAM,GAAG;AAC1B,GAAG,GAAG,EAAE,EAAE;AACV,IAAI,MAAM,gBAAgB,GAAG,mBAAmB,CAAC,OAAO,CAAC;AACzD,IAAI,IAAI,eAAe,GAAG,cAAc;AACxC,MAAM,KAAK;AACX,MAAM,gBAAgB;AACtB,MAAM,KAAK;AACX,MAAM;AACN,KAAK;AACL,IAAI,MAAM,UAAU,GAAG,eAAe,CAAC,eAAe,CAAC;AACvD,IAAI,IAAI,UAAU,EAAE;AACpB,MAAM,IAAI,QAAQ;AAClB,QAAQ,OAAO,IAAI;AACnB,MAAM,eAAe,GAAG,SAAS,CAAC,KAAK;AACvC,MAAM,QAAQ,GAAG,KAAK;AACtB,IAAI,CAAC,MAAM,IAAI,eAAe,IAAI,IAAI,IAAI,KAAK,CAAC,UAAU,EAAE;AAC5D,MAAM,eAAe,GAAG,SAAS,CAAC,KAAK;AACvC,IAAI,CAAC,MAAM;AACX;AACA,MAAM,eAAe,IAAI,IAAI,IAAI,cAAc,CAAC,SAAS,CAAC,KAAK,EAAE,eAAe,CAAC,IAAI;AACrF,MAAM;AACN,MAAM,eAAe,GAAG,IAAI;AAC5B,IAAI;AACJ,IAAI,MAAM,QAAQ,GAAG,QAAQ,GAAG,SAAS,GAAG,SAAS;AACrD,IAAI,MAAM,MAAM,GAAG,CAAC,cAAc,CAAC,QAAQ,CAAC,KAAK,EAAE,eAAe,CAAC;AACnE,IAAI,QAAQ,CAAC,KAAK,GAAG,eAAe;AACpC,IAAI,IAAI,CAAC,QAAQ;AACjB,MAAM,SAAS,CAAC,KAAK,GAAG,IAAI;AAC5B,IAAI,MAAM,iBAAiB,GAAG,gBAAgB;AAC9C,MAAM,eAAe;AACrB,MAAM,WAAW,CAAC;AAClB,KAAK;AACL,IAAI,IAAI,MAAM,EAAE;AAChB,MAAM,UAAU,GAAG,KAAK;AACxB,MAAM,IAAI,CAAC,QAAQ,GAAG,MAAM,GAAG,mBAAmB,EAAE,iBAAiB,CAAC;AACtE,MAAM,QAAQ,CAAC,MAAM,UAAU,GAAG,IAAI,CAAC;AACvC,IAAI;AACJ,IAAI,IAAI,QAAQ,IAAI,CAAC,QAAQ;AAC7B,MAAM,aAAa,EAAE;AACrB,IAAI,IAAI,MAAM;AACd,MAAM,WAAW,EAAE;AACnB,IAAI,IAAI,MAAM,EAAE;AAChB,MAAM,QAAQ,CAAC,MAAM,WAAW,CAAC,cAAc,IAAI,OAAO,CAAC,CAAC;AAC5D,IAAI;AACJ,IAAI,OAAO,iBAAiB;AAC5B,EAAE;AACF,EAAE,SAAS,WAAW,GAAG;AACzB,IAAI,QAAQ,CAAC,MAAM;AACnB,MAAM,MAAM,OAAO,GAAG,mBAAmB,CAAC;AAC1C,QAAQ,IAAI,EAAE,QAAQ;AACtB,QAAQ,IAAI,EAAE,SAAS,CAAC;AACxB,OAAO,CAAC;AACR,MAAM,MAAM,KAAK,GAAG,gBAAgB;AACpC,QAAQ,SAAS,CAAC,KAAK,IAAI,SAAS,CAAC,KAAK;AAC1C,QAAQ;AACR,OAAO;AACP,MAAM,IAAI,OAAO,CAAC,KAAK,EAAE;AACzB,QAAQ,WAAW,CAAC,KAAK,GAAG,CAAC,KAAK,IAAI,KAAK,CAAC,KAAK,EAAE,KAAK,IAAI,KAAK,CAAC,GAAG,CAAC;AACtE,MAAM,CAAC,MAAM;AACb,QAAQ,WAAW,CAAC,KAAK,GAAG,CAAC,KAAK,EAAE,EAAE,CAAC;AACvC,MAAM;AACN,IAAI,CAAC,CAAC;AACN,EAAE;AACF,EAAE,SAAS,aAAa,CAAC,WAAW,EAAE,MAAM,EAAE,IAAI,EAAE;AACpD,IAAI,WAAW,CAAC,KAAK,CAAC,MAAM,CAAC,MAAM,KAAK,OAAO,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,WAAW,CAAC;AACxE,IAAI,MAAM,KAAK,GAAG,OAAO,CAAC,KAAK,GAAG;AAClC,MAAM,KAAK,EAAE,WAAW,CAAC,KAAK,CAAC,CAAC,CAAC;AACjC,MAAM,GAAG,EAAE,WAAW,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,WAAW,CAAC,KAAK,CAAC,CAAC;AACtD,KAAK,GAAG,WAAW;AACnB,IAAI,MAAM,OAAO,GAAG;AACpB,MAAM,IAAI,EAAE,QAAQ;AACpB,MAAM,IAAI,EAAE,SAAS,CAAC;AACtB,KAAK;AACL,IAAI,WAAW,CAAC,KAAK,EAAE;AACvB,MAAM,GAAG,IAAI;AACb,MAAM,MAAM,EAAE,OAAO;AACrB,MAAM,KAAK,EAAE,cAAc,CAAC,KAAK;AACjC,MAAM,cAAc,EAAE,MAAM;AAC5B,MAAM,WAAW,EAAE;AACnB,KAAK,CAAC;AACN,EAAE;AACF,EAAE,SAAS,YAAY,CAAC,MAAM,EAAE;AAChC,IAAI,OAAO,CAAC,CAAC,KAAK;AAClB,MAAM,IAAI,CAAC,KAAK,CAAC,aAAa;AAC9B,QAAQ;AACR,MAAM,aAAa,CAAC,CAAC,CAAC,aAAa,CAAC,KAAK,EAAE,MAAM,EAAE;AACnD,QAAQ,WAAW,EAAE,KAAK;AAC1B,QAAQ,WAAW,EAAE,KAAK;AAC1B,QAAQ,QAAQ,EAAE,KAAK,CAAC;AACxB,OAAO,CAAC;AACR,IAAI,CAAC;AACL,EAAE;AACF,EAAE,SAAS,aAAa,CAAC,MAAM,EAAE;AACjC,IAAI,OAAO,CAAC,CAAC,KAAK;AAClB,MAAM,aAAa,CAAC,CAAC,CAAC,aAAa,CAAC,KAAK,EAAE,MAAM,EAAE;AACnD,QAAQ,WAAW,EAAE,IAAI;AACzB,QAAQ,WAAW,EAAE;AACrB,OAAO,CAAC;AACR,IAAI,CAAC;AACL,EAAE;AACF,EAAE,SAAS,YAAY,CAAC,CAAC,EAAE;AAC3B,IAAI,IAAI,CAAC,CAAC,GAAG,KAAK,QAAQ;AAC1B,MAAM;AACN,IAAI,WAAW,CAAC,SAAS,CAAC,KAAK,EAAE;AACjC,MAAM,WAAW,EAAE,IAAI;AACvB,MAAM,WAAW,EAAE;AACnB,KAAK,CAAC;AACN,EAAE;AACF,EAAE,SAAS,aAAa,CAAC,KAAK,EAAE;AAChC,IAAI,IAAI,OAAO,CAAC,KAAK,EAAE;AACvB,MAAM,OAAO;AACb,QAAQ,KAAK,IAAI,KAAK,CAAC,KAAK,GAAG,MAAM,CAAC,KAAK,CAAC,YAAY,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,IAAI;AAC5E,QAAQ,KAAK,IAAI,KAAK,CAAC,GAAG,GAAG,MAAM,CAAC,KAAK,CAAC,YAAY,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG;AACpE,OAAO;AACP,IAAI;AACJ,IAAI,OAAO,CAAC,KAAK,GAAG,MAAM,CAAC,KAAK,CAAC,YAAY,CAAC,KAAK,CAAC,GAAG,IAAI,CAAC;AAC5D,EAAE;AACF,EAAE,SAAS,UAAU,GAAG;AACxB,IAAI,SAAS,CAAC,KAAK,GAAG,IAAI;AAC1B,IAAI,WAAW,EAAE;AACjB,EAAE;AACF,EAAE,SAAS,mBAAmB,CAAC,EAAE,EAAE;AACnC,IAAI,IAAI,CAAC,mBAAmB,EAAE,EAAE,CAAC;AACjC,EAAE;AACF,EAAE,SAAS,kBAAkB,CAAC,EAAE,EAAE;AAClC,IAAI,IAAI,CAAC,kBAAkB,EAAE,EAAE,CAAC;AAChC,EAAE;AACF,EAAE,SAAS,mBAAmB,CAAC,EAAE,EAAE;AACnC,IAAI,UAAU,EAAE;AAChB,IAAI,IAAI,CAAC,mBAAmB,EAAE,EAAE,CAAC;AACjC,EAAE;AACF,EAAE,SAAS,kBAAkB,CAAC,EAAE,EAAE;AAClC,IAAI,IAAI,CAAC,kBAAkB,EAAE,EAAE,CAAC;AAChC,EAAE;AACF,EAAE,SAAS,cAAc,CAAC,GAAG,EAAE;AAC/B,IAAI,MAAM,IAAI,GAAG;AACjB,MAAM,KAAK,EAAE,MAAM;AACnB,MAAM,WAAW,EAAE,IAAI;AACvB,MAAM,WAAW,EAAE;AACnB,KAAK;AACL,IAAI,IAAI,OAAO,CAAC,KAAK,EAAE;AACvB,MAAM,MAAM,QAAQ,GAAG,CAAC,UAAU,CAAC,KAAK;AACxC,MAAM,IAAI,QAAQ,EAAE;AACpB,QAAQ,iBAAiB,GAAG,EAAE,KAAK,EAAE,GAAG,CAAC,SAAS,EAAE,GAAG,EAAE,GAAG,CAAC,OAAO,EAAE;AACtE,MAAM,CAAC,MAAM,IAAI,iBAAiB,IAAI,IAAI,EAAE;AAC5C,QAAQ,iBAAiB,CAAC,GAAG,GAAG,GAAG,CAAC,IAAI;AACxC,MAAM;AACN,MAAM,WAAW,CAAC,iBAAiB,EAAE;AACrC,QAAQ,GAAG,IAAI;AACf,QAAQ;AACR,OAAO,CAAC;AACR,IAAI,CAAC,MAAM;AACX,MAAM,WAAW,CAAC,GAAG,CAAC,IAAI,EAAE;AAC5B,QAAQ,GAAG,IAAI;AACf,QAAQ,YAAY,EAAE,CAAC,KAAK,CAAC;AAC7B,OAAO,CAAC;AACR,IAAI;AACJ,EAAE;AACF,EAAE,SAAS,UAAU,CAAC,GAAG,EAAE,KAAK,EAAE;AAClC,IAAI,cAAc,CAAC,GAAG,CAAC;AACvB,IAAI,IAAI,CAAC,UAAU,EAAE,GAAG,EAAE,KAAK,CAAC;AAChC,EAAE;AACF,EAAE,SAAS,YAAY,CAAC,GAAG,EAAE,KAAK,EAAE;AACpC,IAAI,QAAQ,KAAK,CAAC,GAAG;AACrB,MAAM,KAAK,GAAG;AACd,MAAM,KAAK,OAAO,EAAE;AACpB,QAAQ,cAAc,CAAC,GAAG,CAAC;AAC3B,QAAQ,KAAK,CAAC,cAAc,EAAE;AAC9B,QAAQ;AACR,MAAM;AACN,MAAM,KAAK,QAAQ,EAAE;AACrB,QAAQ,aAAa,EAAE;AACvB,MAAM;AACN;AACA,IAAI,IAAI,CAAC,YAAY,EAAE,GAAG,EAAE,KAAK,CAAC;AAClC,EAAE;AACF,EAAE,SAAS,eAAe,CAAC,GAAG,EAAE,KAAK,EAAE;AACvC,IAAI,IAAI,CAAC,UAAU,CAAC,KAAK,IAAI,iBAAiB,IAAI,IAAI;AACtD,MAAM;AACN,IAAI,iBAAiB,CAAC,GAAG,GAAG,GAAG,CAAC,IAAI;AACpC,IAAI,WAAW,CAAC,SAAS,CAAC,iBAAiB,CAAC,EAAE;AAC9C,MAAM,KAAK,EAAE,MAAM;AACnB,MAAM,WAAW,EAAE;AACnB,KAAK,CAAC;AACN,EAAE;AACF,EAAE,SAAS,aAAa,CAAC,IAAI,GAAG,EAAE,EAAE;AACpC,IAAI,WAAW,CAAC;AAChB,MAAM,GAAG,OAAO,CAAC,KAAK;AACtB,MAAM,GAAG,IAAI;AACb,MAAM,aAAa,EAAE,IAAI;AACzB,MAAM,EAAE,EAAE,mBAAmB,CAAC;AAC9B,KAAK,CAAC;AACN,EAAE;AACF,EAAE,SAAS,aAAa,CAAC,IAAI,GAAG,EAAE,EAAE;AACpC,IAAI,WAAW,CAAC;AAChB,MAAM,SAAS,EAAE,EAAE;AACnB,MAAM,KAAK,EAAE,IAAI;AACjB,MAAM,GAAG,OAAO,CAAC,KAAK;AACtB,MAAM,GAAG,IAAI;AACb,MAAM,EAAE,EAAE,mBAAmB,CAAC;AAC9B,KAAK,CAAC;AACN,EAAE;AACF,EAAE,SAAS,eAAe,CAAC,IAAI,EAAE;AACjC,IAAI,aAAa,CAAC;AAClB,MAAM,GAAG,OAAO,CAAC,KAAK;AACtB,MAAM,GAAG,IAAI;AACb,MAAM,aAAa,EAAE,IAAI;AACzB,MAAM,EAAE,EAAE,mBAAmB,CAAC;AAC9B,KAAK,CAAC;AACN,EAAE;AACF,EAAE,SAAS,SAAS,CAAC,KAAK,EAAE,QAAQ,EAAE;AACtC,IAAI,MAAM,EAAE,KAAK,EAAE,GAAG,EAAE,GAAG,KAAK;AAChC,IAAI,IAAI,KAAK,GAAG,GAAG,EAAE;AACrB,MAAM,QAAQ,QAAQ;AACtB,QAAQ,KAAK,OAAO;AACpB,UAAU,OAAO,EAAE,KAAK,EAAE,GAAG,EAAE,KAAK,EAAE;AACtC,QAAQ,KAAK,KAAK;AAClB,UAAU,OAAO,EAAE,KAAK,EAAE,GAAG,EAAE,GAAG,EAAE;AACpC,QAAQ;AACR,UAAU,OAAO,EAAE,KAAK,EAAE,GAAG,EAAE,GAAG,EAAE,KAAK,EAAE;AAC3C;AACA,IAAI;AACJ,IAAI,OAAO,EAAE,KAAK,EAAE,GAAG,EAAE;AACzB,EAAE;AACF,EAAE,eAAe,IAAI,CAAC,MAAM,EAAE,IAAI,GAAG,EAAE,EAAE;AACzC,IAAI,IAAI,WAAW,CAAC,KAAK,IAAI,IAAI;AACjC,MAAM,OAAO,KAAK;AAClB,IAAI,OAAO,WAAW,CAAC,KAAK,CAAC,IAAI,CAAC,MAAM,EAAE,IAAI,CAAC;AAC/C,EAAE;AACF,EAAE,eAAe,MAAM,CAAC,KAAK,EAAE,IAAI,GAAG,EAAE,EAAE;AAC1C,IAAI,IAAI,WAAW,CAAC,KAAK,IAAI,IAAI;AACjC,MAAM,OAAO,KAAK;AAClB,IAAI,OAAO,WAAW,CAAC,KAAK,CAAC,MAAM,CAAC,KAAK,EAAE,IAAI,CAAC;AAChD,EAAE;AACF,EAAE,eAAe,WAAW,CAAC,MAAM,EAAE,IAAI,GAAG,EAAE,EAAE;AAChD,IAAI,MAAM,MAAM,GAAG,SAAS,CAAC,KAAK;AAClC,IAAI,IAAI,WAAW,CAAC,KAAK,IAAI,IAAI,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC;AACtD,MAAM,OAAO,KAAK;AAClB,IAAI,MAAM,KAAK,GAAG,MAAM,KAAK,KAAK;AAClC,IAAI,MAAM,QAAQ,GAAG,KAAK,GAAG,CAAC,GAAG,EAAE;AACnC,IAAI,MAAM,IAAI,GAAG,aAAa,CAAC,MAAM,CAAC,GAAG,KAAK,GAAG,MAAM,CAAC,KAAK,GAAG,MAAM,CAAC,GAAG,GAAG,MAAM;AACnF,IAAI,MAAM,IAAI,GAAG,qBAAqB,CAAC,IAAI,EAAE,SAAS,EAAE,MAAM,CAAC,KAAK,CAAC;AACrE,IAAI,OAAO,WAAW,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,EAAE,EAAE,QAAQ,EAAE,GAAG,IAAI,EAAE,CAAC;AAC9D,EAAE;AACF,EAAE,KAAK;AACP,IAAI,MAAM,KAAK,CAAC,OAAO;AACvB,IAAI,CAAC,GAAG,KAAK;AACb,MAAM,IAAI,GAAG,EAAE;AACf,QAAQ,OAAO,CAAC,IAAI;AACpB,UAAU;AACV,SAAS;AACT,MAAM;AACN,IAAI,CAAC;AACL,IAAI,EAAE,SAAS,EAAE,IAAI;AACrB,GAAG;AACH,EAAE,KAAK;AACP,IAAI,MAAM,OAAO,CAAC,KAAK;AACvB,IAAI,MAAM;AACV,MAAM,gBAAgB,CAAC,IAAI,EAAE,EAAE,WAAW,EAAE,IAAI,EAAE,CAAC;AACnD,IAAI;AACJ,GAAG;AACH,EAAE,KAAK;AACP,IAAI,MAAM,SAAS,CAAC,KAAK;AACzB,IAAI,MAAM,WAAW;AACrB,GAAG;AACH,EAAE,KAAK;AACP,IAAI,MAAM,KAAK,CAAC,UAAU;AAC1B,IAAI,CAAC,GAAG,KAAK;AACb,MAAM,IAAI,CAAC,UAAU;AACrB,QAAQ;AACR,MAAM,gBAAgB,CAAC,GAAG,EAAE;AAC5B,QAAQ,WAAW,EAAE,IAAI;AACzB,QAAQ,WAAW,EAAE;AACrB,OAAO,CAAC;AACR,IAAI;AACJ,GAAG;AACH,EAAE,KAAK;AACP,IAAI,MAAM,KAAK,CAAC,KAAK;AACrB,IAAI,MAAM;AACV,MAAM,IAAI,QAAQ,CAAC,KAAK,CAAC,KAAK,CAAC,EAAE;AACjC,QAAQ,gBAAgB,CAAC,KAAK,CAAC,UAAU,EAAE;AAC3C,UAAU,WAAW,EAAE,IAAI;AAC3B,UAAU,WAAW,EAAE;AACvB,SAAS,CAAC;AACV,MAAM;AACN,IAAI;AACJ,GAAG;AACH,EAAE,KAAK;AACP,IAAI,MAAM,KAAK,CAAC,QAAQ;AACxB,IAAI,MAAM;AACV,MAAM,gBAAgB,CAAC,SAAS,CAAC,KAAK,EAAE,EAAE,WAAW,EAAE,IAAI,EAAE,CAAC;AAC9D,IAAI;AACJ,GAAG;AACH,EAAE,MAAM,MAAM,GAAG,gBAAgB,CAAC,WAAW,CAAC,KAAK,CAAC;AACpD,EAAE,SAAS,CAAC,KAAK,GAAG,cAAc;AAClC,IAAI,KAAK,CAAC,UAAU,IAAI,IAAI;AAC5B,IAAI,MAAM;AACV,IAAI;AACJ,GAAG;AACH,EAAE,SAAS,CAAC,MAAM;AAClB,IAAI,gBAAgB,CAAC,KAAK,CAAC,UAAU,EAAE;AACvC,MAAM,WAAW,EAAE,IAAI;AACvB,MAAM,WAAW,EAAE;AACnB,KAAK,CAAC;AACN,EAAE,CAAC,CAAC;AACJ,EAAE,QAAQ,CAAC,MAAM,YAAY,CAAC,KAAK,GAAG,IAAI,CAAC;AAC3C,EAAE,MAAM,OAAO,GAAG;AAClB,IAAI,GAAG,OAAO;AACd,IAAI,YAAY;AAChB,IAAI,mBAAmB;AACvB,IAAI,UAAU;AACd,IAAI,aAAa;AACjB,IAAI,WAAW;AACf,IAAI,OAAO;AACX,IAAI,UAAU;AACd,IAAI,cAAc;AAClB,IAAI,MAAM,EAAE,KAAK,CAAC,KAAK,EAAE,QAAQ,CAAC;AAClC,IAAI,cAAc,EAAE,KAAK,CAAC,KAAK,EAAE,gBAAgB,CAAC;AAClD,IAAI,YAAY,EAAE,KAAK,CAAC,KAAK,EAAE,cAAc,CAAC;AAC9C,IAAI,UAAU;AACd,IAAI,UAAU;AACd,IAAI,WAAW;AACf,IAAI,SAAS;AACb,IAAI,UAAU;AACd,IAAI,KAAK;AACT,IAAI,IAAI;AACR,IAAI,MAAM;AACV,IAAI,WAAW;AACf,IAAI,WAAW;AACf,IAAI,WAAW,EAAE,aAAa;AAC9B,IAAI,WAAW,EAAE,aAAa;AAC9B,IAAI,aAAa,EAAE,eAAe;AAClC,IAAI,UAAU;AACd,IAAI,YAAY;AAChB,IAAI,eAAe;AACnB,IAAI,mBAAmB;AACvB,IAAI,kBAAkB;AACtB,IAAI,mBAAmB;AACvB,IAAI;AACJ,GAAG;AACH,EAAE,OAAO,CAAC,UAAU,EAAE,OAAO,CAAC;AAC9B,EAAE,OAAO,OAAO;AAChB;AACA,SAAS,aAAa,GAAG;AACzB,EAAE,MAAM,OAAO,GAAG,MAAM,CAAC,UAAU,CAAC;AACpC,EAAE,IAAI,OAAO;AACb,IAAI,OAAO,OAAO;AAClB,EAAE,MAAM,IAAI,KAAK;AACjB,IAAI;AACJ,GAAG;AACH;AACA,MAAM,UAAU,GAAG;AACnB,EAAE,EAAE,KAAK,EAAE,CAAC,EAAE,KAAK,EAAE,IAAI,EAAE;AAC3B,EAAE,EAAE,KAAK,EAAE,CAAC,EAAE,KAAK,EAAE,GAAG,EAAE;AAC1B,EAAE,EAAE,KAAK,EAAE,CAAC,EAAE,KAAK,EAAE,GAAG,EAAE;AAC1B,EAAE,EAAE,KAAK,EAAE,CAAC,EAAE,KAAK,EAAE,GAAG,EAAE;AAC1B,EAAE,EAAE,KAAK,EAAE,CAAC,EAAE,KAAK,EAAE,GAAG,EAAE;AAC1B,EAAE,EAAE,KAAK,EAAE,CAAC,EAAE,KAAK,EAAE,GAAG,EAAE;AAC1B,EAAE,EAAE,KAAK,EAAE,CAAC,EAAE,KAAK,EAAE,GAAG,EAAE;AAC1B,EAAE,EAAE,KAAK,EAAE,CAAC,EAAE,KAAK,EAAE,GAAG,EAAE;AAC1B,EAAE,EAAE,KAAK,EAAE,CAAC,EAAE,KAAK,EAAE,GAAG,EAAE;AAC1B,EAAE,EAAE,KAAK,EAAE,CAAC,EAAE,KAAK,EAAE,GAAG,EAAE;AAC1B,EAAE,EAAE,KAAK,EAAE,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE;AAC5B,EAAE,EAAE,KAAK,EAAE,EAAE,EAAE,KAAK,EAAE,IAAI;AAC1B,CAAC;AACD,MAAM,UAAU,GAAG;AACnB,EAAE,EAAE,KAAK,EAAE,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE;AAC5B,EAAE,EAAE,KAAK,EAAE,EAAE,EAAE,KAAK,EAAE,GAAG,EAAE;AAC3B,EAAE,EAAE,KAAK,EAAE,EAAE,EAAE,KAAK,EAAE,GAAG,EAAE;AAC3B,EAAE,EAAE,KAAK,EAAE,EAAE,EAAE,KAAK,EAAE,GAAG,EAAE;AAC3B,EAAE,EAAE,KAAK,EAAE,EAAE,EAAE,KAAK,EAAE,GAAG,EAAE;AAC3B,EAAE,EAAE,KAAK,EAAE,EAAE,EAAE,KAAK,EAAE,GAAG,EAAE;AAC3B,EAAE,EAAE,KAAK,EAAE,EAAE,EAAE,KAAK,EAAE,GAAG,EAAE;AAC3B,EAAE,EAAE,KAAK,EAAE,EAAE,EAAE,KAAK,EAAE,GAAG,EAAE;AAC3B,EAAE,EAAE,KAAK,EAAE,EAAE,EAAE,KAAK,EAAE,GAAG,EAAE;AAC3B,EAAE,EAAE,KAAK,EAAE,EAAE,EAAE,KAAK,EAAE,GAAG,EAAE;AAC3B,EAAE,EAAE,KAAK,EAAE,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE;AAC5B,EAAE,EAAE,KAAK,EAAE,EAAE,EAAE,KAAK,EAAE,IAAI;AAC1B,CAAC;AACD,SAAS,gBAAgB,CAAC,KAAK,EAAE;AACjC,EAAE,MAAM,GAAG,GAAG,aAAa,EAAE;AAC7B,EAAE,MAAM;AACR,IAAI,MAAM;AACV,IAAI,OAAO;AACX,IAAI,UAAU;AACd,IAAI,SAAS;AACb,IAAI,KAAK;AACT,IAAI,MAAM;AACV,IAAI,cAAc;AAClB,IAAI,YAAY;AAChB,IAAI,WAAW,EAAE;AACjB,GAAG,GAAG,GAAG;AACT,EAAE,SAAS,WAAW,CAAC,QAAQ,EAAE;AACjC,IAAI,QAAQ,GAAG,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,KAAK,EAAE,QAAQ,CAAC;AACnD,IAAI,IAAI,QAAQ,GAAG,IAAI;AACvB,IAAI,IAAI,OAAO,CAAC,KAAK,EAAE;AACvB,MAAM,MAAM,KAAK,GAAG,OAAO,CAAC,KAAK,GAAG,QAAQ,GAAG,SAAS,CAAC,KAAK,CAAC,CAAC,CAAC;AACjE,MAAM,MAAM,GAAG,GAAG,OAAO,CAAC,KAAK,GAAG,SAAS,CAAC,KAAK,CAAC,CAAC,CAAC,GAAG,QAAQ;AAC/D,MAAM,QAAQ,GAAG,EAAE,KAAK,EAAE,GAAG,EAAE;AAC/B,IAAI,CAAC,MAAM;AACX,MAAM,QAAQ,GAAG,QAAQ;AACzB,IAAI;AACJ,IAAI,aAAa,CAAC,QAAQ,EAAE;AAC5B,MAAM,KAAK,EAAE,MAAM;AACnB,MAAM,cAAc,EAAE,OAAO,CAAC,KAAK,GAAG,OAAO,GAAG,KAAK;AACrD,MAAM,WAAW,EAAE;AACnB,KAAK,CAAC;AACN,EAAE;AACF,EAAE,MAAM,OAAO,GAAG,QAAQ,CAAC,MAAM,KAAK,CAAC,QAAQ,KAAK,CAAC,CAAC;AACtD,EAAE,MAAM,KAAK,GAAG,QAAQ;AACxB,IAAI,MAAM,SAAS,CAAC,KAAK,CAAC,KAAK,CAAC,QAAQ,CAAC,IAAI,EAAE,OAAO,EAAE,KAAK;AAC7D,GAAG;AACH,EAAE,MAAM,UAAU,GAAG,QAAQ,CAAC,MAAM,WAAW,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;AAC7D,EAAE,MAAM,OAAO,GAAG,QAAQ,CAAC,MAAM,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC,OAAO,CAAC;AACvD,EAAE,MAAM,UAAU,GAAG,QAAQ,CAAC,MAAM;AACpC,IAAI,OAAO,CAAC,cAAc,CAAC,KAAK,IAAI,OAAO,CAAC,KAAK;AACjD,EAAE,CAAC,CAAC;AACJ,EAAE,MAAM,IAAI,GAAG,QAAQ,CAAC,MAAM;AAC9B,IAAI,IAAI,CAAC,UAAU,CAAC,KAAK;AACzB,MAAM,OAAO,IAAI;AACjB,IAAI,IAAI,KAAK,GAAG,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC,KAAK,CAAC;AAChD,IAAI,IAAI,KAAK,CAAC,KAAK,CAAC,KAAK,KAAK,EAAE,EAAE;AAClC,MAAM,KAAK,GAAG,IAAI,IAAI,CAAC,KAAK,CAAC,OAAO,EAAE,GAAG,CAAC,CAAC;AAC3C,IAAI;AACJ,IAAI,OAAO,KAAK;AAChB,EAAE,CAAC,CAAC;AACJ,EAAE,MAAM,MAAM,GAAG,QAAQ,CAAC;AAC1B,IAAI,GAAG,GAAG;AACV,MAAM,OAAO,KAAK,CAAC,KAAK,CAAC,KAAK;AAC9B,IAAI,CAAC;AACL,IAAI,GAAG,CAAC,GAAG,EAAE;AACb,MAAM,WAAW,CAAC,EAAE,KAAK,EAAE,GAAG,EAAE,CAAC;AACjC,IAAI;AACJ,GAAG,CAAC;AACJ,EAAE,MAAM,OAAO,GAAG,QAAQ,CAAC;AAC3B,IAAI,GAAG,GAAG;AACV,MAAM,OAAO,KAAK,CAAC,KAAK,CAAC,OAAO;AAChC,IAAI,CAAC;AACL,IAAI,GAAG,CAAC,GAAG,EAAE;AACb,MAAM,WAAW,CAAC,EAAE,OAAO,EAAE,GAAG,EAAE,CAAC;AACnC,IAAI;AACJ,GAAG,CAAC;AACJ,EAAE,MAAM,OAAO,GAAG,QAAQ,CAAC;AAC3B,IAAI,GAAG,GAAG;AACV,MAAM,OAAO,KAAK,CAAC,KAAK,CAAC,OAAO;AAChC,IAAI,CAAC;AACL,IAAI,GAAG,CAAC,GAAG,EAAE;AACb,MAAM,WAAW,CAAC,EAAE,OAAO,EAAE,GAAG,EAAE,CAAC;AACnC,IAAI;AACJ,GAAG,CAAC;AACJ,EAAE,MAAM,YAAY,GAAG,QAAQ,CAAC;AAChC,IAAI,GAAG,GAAG;AACV,MAAM,OAAO,KAAK,CAAC,KAAK,CAAC,YAAY;AACrC,IAAI,CAAC;AACL,IAAI,GAAG,CAAC,GAAG,EAAE;AACb,MAAM,WAAW,CAAC,EAAE,YAAY,EAAE,GAAG,EAAE,CAAC;AACxC,IAAI;AACJ,GAAG,CAAC;AACJ,EAAE,MAAM,IAAI,GAAG,QAAQ,CAAC;AACxB,IAAI,GAAG,GAAG;AACV,MAAM,OAAO,KAAK,CAAC,KAAK,CAAC,KAAK,GAAG,EAAE;AACnC,IAAI,CAAC;AACL,IAAI,GAAG,CAAC,KAAK,EAAE;AACf,MAAM,KAAK,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC,WAAW,EAAE,IAAI,MAAM;AACnD,MAAM,IAAI,MAAM,GAAG,MAAM,CAAC,KAAK;AAC/B,MAAM,IAAI,KAAK,IAAI,MAAM,IAAI,EAAE,EAAE;AACjC,QAAQ,MAAM,IAAI,EAAE;AACpB,MAAM,CAAC,MAAM,IAAI,CAAC,KAAK,IAAI,MAAM,GAAG,EAAE,EAAE;AACxC,QAAQ,MAAM,IAAI,EAAE;AACpB,MAAM;AACN,MAAM,WAAW,CAAC,EAAE,KAAK,EAAE,MAAM,EAAE,CAAC;AACpC,IAAI;AACJ,GAAG,CAAC;AACJ,EAAE,MAAM,OAAO,GAAG,QAAQ;AAC1B,IAAI,MAAM,mBAAmB,CAAC,KAAK,CAAC,KAAK,EAAE,KAAK,CAAC,KAAK,CAAC,KAAK,CAAC,QAAQ,CAAC;AACtE,GAAG;AACH,EAAE,MAAM,aAAa,GAAG,QAAQ,CAAC,MAAM;AACvC,IAAI,OAAO,UAAU,CAAC,MAAM;AAC5B,MAAM,CAAC,GAAG,KAAK,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC,KAAK,KAAK,GAAG,CAAC,KAAK;AACtE,KAAK;AACL,EAAE,CAAC,CAAC;AACJ,EAAE,MAAM,aAAa,GAAG,QAAQ,CAAC,MAAM;AACvC,IAAI,OAAO,UAAU,CAAC,MAAM;AAC5B,MAAM,CAAC,GAAG,KAAK,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC,KAAK,KAAK,GAAG,CAAC,KAAK;AACtE,KAAK;AACL,EAAE,CAAC,CAAC;AACJ,EAAE,MAAM,WAAW,GAAG,QAAQ,CAAC,MAAM;AACrC,IAAI,IAAI,MAAM,CAAC,KAAK;AACpB,MAAM,OAAO,OAAO,CAAC,KAAK,CAAC,KAAK;AAChC,IAAI,IAAI,IAAI,CAAC,KAAK;AAClB,MAAM,OAAO,aAAa,CAAC,KAAK;AAChC,IAAI,OAAO,aAAa,CAAC,KAAK;AAC9B,EAAE,CAAC,CAAC;AACJ,EAAE,MAAM,WAAW,GAAG,QAAQ,CAAC,MAAM;AACrC,IAAI,MAAM,MAAM,GAAG,EAAE;AACrB,IAAI,IAAI,aAAa,CAAC,aAAa,CAAC,KAAK,CAAC;AAC1C,MAAM,MAAM,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC;AAC/C,IAAI,IAAI,aAAa,CAAC,aAAa,CAAC,KAAK,CAAC;AAC1C,MAAM,MAAM,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC;AAChD,IAAI,OAAO,MAAM;AACjB,EAAE,CAAC,CAAC;AACJ,EAAE,OAAO;AACT,IAAI,GAAG,GAAG;AACV,IAAI,UAAU;AACd,IAAI,YAAY;AAChB,IAAI,KAAK;AACT,IAAI,OAAO;AACX,IAAI,IAAI;AACR,IAAI,KAAK,EAAE,MAAM;AACjB,IAAI,OAAO;AACX,IAAI,OAAO;AACX,IAAI,YAAY;AAChB,IAAI,OAAO;AACX,IAAI,WAAW;AACf,IAAI,IAAI;AACR,IAAI,WAAW;AACf,IAAI;AACJ,GAAG;AACH;AACA,MAAME,cAAY,GAAG,CAAC,OAAO,CAAC;AAC9B,MAAMC,cAAY,GAAG,CAAC,OAAO,EAAE,UAAU,CAAC;AAC1C,MAAMC,cAAY,GAAG;AACrB,EAAE,GAAG,EAAE,CAAC;AACR,EAAE,KAAK,EAAE,eAAe;AACxB,EAAE,aAAa,EAAE;AACjB,CAAC;AACD,MAAM,aAAa,GAAG;AACtB,EAAE,YAAY,EAAE;AAChB,CAAC;AACD,MAAMC,aAAW,mBAAmB,eAAe,CAAC;AACpD,EAAE,GAAG,aAAa;AAClB,EAAE,MAAM,EAAE,YAAY;AACtB,EAAE,KAAK,EAAE;AACT,IAAI,OAAO,EAAE,EAAE;AACf,IAAI,UAAU,EAAE,EAAE;AAClB,IAAI,UAAU,EAAE,EAAE,IAAI,EAAE,OAAO,EAAE;AACjC,IAAI,SAAS,EAAE,EAAE,IAAI,EAAE,OAAO,EAAE;AAChC,IAAI,QAAQ,EAAE,EAAE,IAAI,EAAE,OAAO,EAAE;AAC/B,IAAI,UAAU,EAAE,EAAE,IAAI,EAAE,OAAO;AAC/B,GAAG;AACH,EAAE,KAAK,EAAE,CAAC,mBAAmB,CAAC;AAC9B,EAAE,KAAK,CAAC,OAAO,EAAE;AACjB,IAAI,MAAM,KAAK,GAAG,OAAO;AACzB,IAAI,MAAM,aAAa,GAAG,QAAQ,CAAC,MAAM;AACzC,MAAM,MAAM,MAAM,GAAG,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,GAAG,KAAK,GAAG,CAAC,KAAK,KAAK,KAAK,CAAC,UAAU,CAAC;AAChF,MAAM,OAAO,MAAM,IAAI,IAAI,GAAG,MAAM,GAAG,MAAM,CAAC,KAAK;AACnD,IAAI,CAAC,CAAC;AACN,IAAI,OAAO,CAAC,IAAI,EAAE,MAAM,KAAK;AAC7B,MAAM,OAAO,SAAS,EAAE,EAAE,kBAAkB,CAAC,KAAK,EAAE;AACpD,QAAQ,KAAK,EAAE,cAAc,CAAC,CAAC,gBAAgB,EAAE;AACjD,UAAU,gBAAgB,EAAE,IAAI,CAAC,UAAU;AAC3C,UAAU,aAAa,EAAE,IAAI,CAAC;AAC9B,SAAS,CAAC;AACV,OAAO,EAAE;AACT,QAAQ,kBAAkB,CAAC,QAAQ,EAAE,UAAU,CAAC,IAAI,CAAC,MAAM,EAAE;AAC7D,UAAU,KAAK,EAAE,IAAI,CAAC,UAAU;AAChC,UAAU,KAAK,EAAE,CAAC,UAAU,EAAE;AAC9B,YAAY,gBAAgB,EAAE,IAAI,CAAC,UAAU;AAC7C,YAAY,eAAe,EAAE,IAAI,CAAC;AAClC,WAAW,CAAC;AACZ,UAAU,QAAQ,EAAE,MAAM,CAAC,CAAC,CAAC,KAAK,MAAM,CAAC,CAAC,CAAC,GAAG,CAAC,MAAM,KAAK,IAAI,CAAC,KAAK,CAAC,mBAAmB,EAAE,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC;AAC9G,SAAS,CAAC,EAAE;AACZ,WAAW,SAAS,CAAC,IAAI,CAAC,EAAE,kBAAkB,CAAC,QAAQ,EAAE,IAAI,EAAE,UAAU,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC,MAAM,KAAK;AACpG,YAAY,OAAO,SAAS,EAAE,EAAE,kBAAkB,CAAC,QAAQ,EAAE;AAC7D,cAAc,GAAG,EAAE,MAAM,CAAC,KAAK;AAC/B,cAAc,KAAK,EAAE,MAAM,CAAC,KAAK;AACjC,cAAc,QAAQ,EAAE,MAAM,CAAC;AAC/B,aAAa,EAAE,eAAe,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,CAAC,EAAEF,cAAY,CAAC;AAC9D,UAAU,CAAC,CAAC,EAAE,GAAG,CAAC;AAClB,SAAS,EAAE,EAAE,EAAED,cAAY,CAAC;AAC5B,QAAQ,IAAI,CAAC,QAAQ,IAAI,SAAS,EAAE,EAAE,WAAW,CAACpB,aAAW,EAAE;AAC/D,UAAU,GAAG,EAAE,CAAC;AAChB,UAAU,IAAI,EAAE,aAAa;AAC7B,UAAU,IAAI,EAAE;AAChB,SAAS,CAAC,IAAI,kBAAkB,CAAC,EAAE,EAAE,IAAI,CAAC;AAC1C,QAAQ,IAAI,CAAC,UAAU,IAAI,SAAS,EAAE,EAAE,kBAAkB,CAAC,KAAK,EAAEsB,cAAY,EAAE,eAAe,CAAC,aAAa,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,IAAI,kBAAkB,CAAC,EAAE,EAAE,IAAI;AACvJ,OAAO,EAAE,CAAC,CAAC;AACX,IAAI,CAAC;AACL,EAAE;AACF,CAAC,CAAC;AAEF,MAAMhF,YAAU,GAAG;AACnB,EAAE,GAAG,EAAE,CAAC;AACR,EAAE,KAAK,EAAE;AACT,CAAC;AACD,MAAME,YAAU,GAAG,EAAE,KAAK,EAAE,iBAAiB,EAAE;AAC/C,MAAMT,YAAU,GAAG,EAAE,KAAK,EAAE,eAAe,EAAE;AAC7C,MAAMW,YAAU,GAAG,EAAE,KAAK,EAAE,aAAa,EAAE;AAC3C,MAAM,UAAU,GAAG,EAAE,KAAK,EAAE,cAAc,EAAE;AAC5C,MAAM,UAAU,GAAG,EAAE,KAAK,EAAE,sBAAsB,EAAE;AACpD,MAAM8E,aAAW,mBAAmB,eAAe,CAAC;AACpD,EAAE,MAAM,EAAE,YAAY;AACtB,EAAE,KAAK,EAAE;AACT,IAAI,QAAQ,EAAE;AACd,GAAG;AACH,EAAE,KAAK,CAAC,OAAO,EAAE,EAAE,MAAM,EAAE,QAAQ,EAAE,EAAE;AACvC,IAAI,MAAM,KAAK,GAAG,OAAO;AACzB,IAAI,MAAM,UAAU,GAAG,gBAAgB,CAAC,KAAK,CAAC;AAC9C,IAAI,QAAQ,CAAC,UAAU,CAAC;AACxB,IAAI,MAAM;AACV,MAAM,MAAM;AACZ,MAAM,OAAO;AACb,MAAM,IAAI;AACV,MAAM,KAAK,EAAE,MAAM;AACnB,MAAM,OAAO;AACb,MAAM,OAAO;AACb,MAAM,YAAY;AAClB,MAAM,OAAO;AACb,MAAM,WAAW;AACjB,MAAM,UAAU;AAChB,MAAM,IAAI;AACV,MAAM,WAAW;AACjB,MAAM,MAAM;AACZ,MAAM,UAAU;AAChB,MAAM;AACN,KAAK,GAAG,UAAU;AAClB,IAAI,OAAO,CAAC,IAAI,EAAE,MAAM,KAAK;AAC7B,MAAM,OAAO,SAAS,EAAE,EAAE,kBAAkB,CAAC,KAAK,EAAE;AACpD,QAAQ,KAAK,EAAE,cAAc,CAAC,CAAC,gBAAgB,EAAE,CAAC,EAAE,YAAY,EAAE,CAAC,KAAK,CAAC,OAAO,CAAC,EAAE,aAAa,EAAE,CAAC,KAAK,CAAC,UAAU,CAAC,EAAE,CAAC,CAAC;AACxH,OAAO,EAAE;AACT,QAAQ,WAAW,CAACnC,aAAW,EAAE,EAAE,IAAI,EAAE,aAAa,EAAE,EAAE;AAC1D,UAAU,OAAO,EAAE,OAAO,CAAC,MAAM;AACjC,YAAY,KAAK,CAAC,UAAU,CAAC,IAAI,KAAK,CAAC,IAAI,CAAC,IAAI,SAAS,EAAE,EAAE,kBAAkB,CAAC,KAAK,EAAE/C,YAAU,EAAE;AACnG,cAAc,kBAAkB,CAAC,MAAM,EAAEE,YAAU,EAAE,eAAe,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,UAAU,CAAC,KAAK,CAAC,IAAI,CAAC,EAAE,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC;AACtH,cAAc,kBAAkB,CAAC,MAAM,EAAET,YAAU,EAAE,eAAe,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,UAAU,CAAC,KAAK,CAAC,IAAI,CAAC,EAAE,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC;AACtH,cAAc,kBAAkB,CAAC,MAAM,EAAEW,YAAU,EAAE,eAAe,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,UAAU,CAAC,KAAK,CAAC,IAAI,CAAC,EAAE,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC;AACpH,cAAc,kBAAkB,CAAC,MAAM,EAAE,UAAU,EAAE,eAAe,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,UAAU,CAAC,KAAK,CAAC,IAAI,CAAC,EAAE,MAAM,CAAC,CAAC,EAAE,CAAC;AACtH,aAAa,CAAC,IAAI,kBAAkB,CAAC,EAAE,EAAE,IAAI;AAC7C,WAAW,CAAC;AACZ,UAAU,CAAC,EAAE;AACb,SAAS,CAAC;AACV,QAAQ,kBAAkB,CAAC,KAAK,EAAE,UAAU,EAAE;AAC9C,UAAU,WAAW,CAACsD,aAAW,EAAE;AACnC,YAAY,IAAI,EAAE,OAAO;AACzB,YAAY,IAAI,EAAE;AAClB,WAAW,CAAC;AACZ,UAAU,WAAW,CAACuB,aAAW,EAAE;AACnC,YAAY,UAAU,EAAE,KAAK,CAAC,MAAM,CAAC;AACrC,YAAY,qBAAqB,EAAE,MAAM,CAAC,CAAC,CAAC,KAAK,MAAM,CAAC,CAAC,CAAC,GAAG,CAAC,MAAM,KAAK,KAAK,CAAC,MAAM,CAAC,GAAG,MAAM,CAAC,KAAK,GAAG,MAAM,GAAG,IAAI,CAAC;AACtH,YAAY,cAAc,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE;AAC5C,YAAY,OAAO,EAAE,KAAK,CAAC,WAAW,CAAC;AACvC,YAAY,KAAK,EAAE,sBAAsB;AACzC,YAAY,aAAa,EAAE;AAC3B,WAAW,EAAE,IAAI,EAAE,CAAC,EAAE,CAAC,YAAY,EAAE,SAAS,CAAC,CAAC;AAChD,UAAU,KAAK,CAAC,YAAY,CAAC,GAAG,CAAC,IAAI,SAAS,EAAE,EAAE,kBAAkB,CAAC,QAAQ,EAAE,EAAE,GAAG,EAAE,CAAC,EAAE,EAAE;AAC3F,YAAY,MAAM,CAAC,CAAC,CAAC,KAAK,MAAM,CAAC,CAAC,CAAC,GAAG,kBAAkB,CAAC,MAAM,EAAE,EAAE,KAAK,EAAE,eAAe,EAAE,EAAE,GAAG,EAAE,EAAE,CAAC,CAAC;AACtG,YAAY,WAAW,CAACA,aAAW,EAAE;AACrC,cAAc,UAAU,EAAE,KAAK,CAAC,OAAO,CAAC;AACxC,cAAc,qBAAqB,EAAE,MAAM,CAAC,CAAC,CAAC,KAAK,MAAM,CAAC,CAAC,CAAC,GAAG,CAAC,MAAM,KAAK,KAAK,CAAC,OAAO,CAAC,GAAG,OAAO,CAAC,KAAK,GAAG,MAAM,GAAG,IAAI,CAAC;AAC1H,cAAc,cAAc,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE;AAC9C,cAAc,OAAO,EAAE,KAAK,CAAC,OAAO,CAAC,CAAC,OAAO;AAC7C,cAAc,KAAK,EAAE,wBAAwB;AAC7C,cAAc,YAAY,EAAE,KAAK,CAAC,YAAY,CAAC,KAAK;AACpD,aAAa,EAAE,IAAI,EAAE,CAAC,EAAE,CAAC,YAAY,EAAE,SAAS,EAAE,YAAY,CAAC;AAC/D,WAAW,EAAE,EAAE,CAAC,IAAI,kBAAkB,CAAC,EAAE,EAAE,IAAI,CAAC;AAChD,UAAU,KAAK,CAAC,YAAY,CAAC,GAAG,CAAC,IAAI,SAAS,EAAE,EAAE,kBAAkB,CAAC,QAAQ,EAAE,EAAE,GAAG,EAAE,CAAC,EAAE,EAAE;AAC3F,YAAY,MAAM,CAAC,CAAC,CAAC,KAAK,MAAM,CAAC,CAAC,CAAC,GAAG,kBAAkB,CAAC,MAAM,EAAE,EAAE,KAAK,EAAE,eAAe,EAAE,EAAE,GAAG,EAAE,EAAE,CAAC,CAAC;AACtG,YAAY,WAAW,CAACA,aAAW,EAAE;AACrC,cAAc,UAAU,EAAE,KAAK,CAAC,OAAO,CAAC;AACxC,cAAc,qBAAqB,EAAE,MAAM,CAAC,CAAC,CAAC,KAAK,MAAM,CAAC,CAAC,CAAC,GAAG,CAAC,MAAM,KAAK,KAAK,CAAC,OAAO,CAAC,GAAG,OAAO,CAAC,KAAK,GAAG,MAAM,GAAG,IAAI,CAAC;AAC1H,cAAc,cAAc,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE;AAC9C,cAAc,OAAO,EAAE,KAAK,CAAC,OAAO,CAAC,CAAC,OAAO;AAC7C,cAAc,KAAK,EAAE,wBAAwB;AAC7C,cAAc,YAAY,EAAE,KAAK,CAAC,YAAY,CAAC,KAAK;AACpD,aAAa,EAAE,IAAI,EAAE,CAAC,EAAE,CAAC,YAAY,EAAE,SAAS,EAAE,YAAY,CAAC;AAC/D,WAAW,EAAE,EAAE,CAAC,IAAI,kBAAkB,CAAC,EAAE,EAAE,IAAI,CAAC;AAChD,UAAU,KAAK,CAAC,YAAY,CAAC,GAAG,CAAC,IAAI,SAAS,EAAE,EAAE,kBAAkB,CAAC,QAAQ,EAAE,EAAE,GAAG,EAAE,CAAC,EAAE,EAAE;AAC3F,YAAY,MAAM,CAAC,CAAC,CAAC,KAAK,MAAM,CAAC,CAAC,CAAC,GAAG,kBAAkB,CAAC,MAAM,EAAE,EAAE,KAAK,EAAE,iBAAiB,EAAE,EAAE,GAAG,EAAE,EAAE,CAAC,CAAC;AACxG,YAAY,WAAW,CAACA,aAAW,EAAE;AACrC,cAAc,UAAU,EAAE,KAAK,CAAC,YAAY,CAAC;AAC7C,cAAc,qBAAqB,EAAE,MAAM,CAAC,CAAC,CAAC,KAAK,MAAM,CAAC,CAAC,CAAC,GAAG,CAAC,MAAM,KAAK,KAAK,CAAC,YAAY,CAAC,GAAG,YAAY,CAAC,KAAK,GAAG,MAAM,GAAG,IAAI,CAAC;AACpI,cAAc,cAAc,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE;AAC9C,cAAc,OAAO,EAAE,KAAK,CAAC,OAAO,CAAC,CAAC,YAAY;AAClD,cAAc,KAAK,EAAE,6BAA6B;AAClD,cAAc,YAAY,EAAE;AAC5B,aAAa,EAAE,IAAI,EAAE,CAAC,EAAE,CAAC,YAAY,EAAE,SAAS,CAAC;AACjD,WAAW,EAAE,EAAE,CAAC,IAAI,kBAAkB,CAAC,EAAE,EAAE,IAAI,CAAC;AAChD,UAAU,CAAC,KAAK,CAAC,MAAM,CAAC,IAAI,SAAS,EAAE,EAAE,WAAW,CAACA,aAAW,EAAE;AAClE,YAAY,GAAG,EAAE,CAAC;AAClB,YAAY,UAAU,EAAE,KAAK,CAAC,IAAI,CAAC;AACnC,YAAY,qBAAqB,EAAE,MAAM,CAAC,CAAC,CAAC,KAAK,MAAM,CAAC,CAAC,CAAC,GAAG,CAAC,MAAM,KAAK,KAAK,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC,KAAK,GAAG,MAAM,GAAG,IAAI,CAAC;AAClH,YAAY,OAAO,EAAE,KAAK,CAAC,WAAW;AACtC,WAAW,EAAE,IAAI,EAAE,CAAC,EAAE,CAAC,YAAY,EAAE,SAAS,CAAC,CAAC,IAAI,kBAAkB,CAAC,EAAE,EAAE,IAAI;AAC/E,SAAS;AACT,OAAO,EAAE,CAAC,CAAC;AACX,IAAI,CAAC;AACL,EAAE;AACF,CAAC,CAAC;AAEF,MAAME,aAAW,mBAAmB,eAAe,CAAC;AACpD,EAAE,MAAM,EAAE,gBAAgB;AAC1B,EAAE,KAAK,CAAC,OAAO,EAAE;AACjB,IAAI,MAAM;AACV,MAAM,UAAU;AAChB,MAAM,WAAW;AACjB,MAAM,KAAK;AACX,MAAM,WAAW;AACjB,MAAM,cAAc;AACpB,MAAM,UAAU;AAChB,MAAM,OAAO;AACb,MAAM,UAAU;AAChB,MAAM,eAAe;AACrB,MAAM;AACN,KAAK,GAAG,aAAa,EAAE;AACvB,IAAI,MAAM,SAAS,GAAG,OAAO,CAAC,KAAK,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;AAClD,IAAI,OAAO,CAAC,IAAI,EAAE,MAAM,KAAK;AAC7B,MAAM,OAAO,KAAK,CAAC,UAAU,CAAC,IAAI,SAAS,EAAE,EAAE,kBAAkB,CAAC,KAAK,EAAE;AACzE,QAAQ,GAAG,EAAE,CAAC;AACd,QAAQ,KAAK,EAAE,cAAc,CAAC,CAAC,4BAA4B,EAAE,KAAK,CAAC,KAAK,CAAC,CAAC,IAAI,EAAE,KAAK,CAAC,WAAW,CAAC,CAAC,CAAC;AACpG,OAAO,EAAE;AACT,SAAS,SAAS,CAAC,IAAI,CAAC,EAAE,kBAAkB,CAAC,QAAQ,EAAE,IAAI,EAAE,UAAU,CAAC,KAAK,CAAC,SAAS,CAAC,EAAE,CAAC,QAAQ,KAAK;AACxG,UAAU,OAAO,SAAS,EAAE,EAAE,WAAW,CAACD,aAAW,EAAE;AACvD,YAAY,GAAG,EAAE,QAAQ;AACzB,YAAY;AACZ,WAAW,EAAE,IAAI,EAAE,CAAC,EAAE,CAAC,UAAU,CAAC,CAAC;AACnC,QAAQ,CAAC,CAAC,EAAE,GAAG,CAAC;AAChB,OAAO,EAAE,CAAC,CAAC,KAAK,SAAS,EAAE,EAAE,WAAW,CAAC,QAAQ,EAAE;AACnD,QAAQ,GAAG,EAAE,CAAC;AACd,QAAQ,UAAU,EAAE,KAAK,CAAC,UAAU,CAAC;AACrC,QAAQ,OAAO,EAAE,aAAa;AAC9B,QAAQ,GAAG,EAAE,WAAW;AACxB,QAAQ,UAAU,EAAE,KAAK,CAAC,UAAU,CAAC;AACrC,QAAQ,eAAe,EAAE,KAAK,CAAC,eAAe,CAAC;AAC/C,QAAQ,YAAY,EAAE,KAAK,CAAC,YAAY;AACxC,OAAO,EAAE;AACT,QAAQ,MAAM,EAAE,OAAO,CAAC,MAAM;AAC9B,UAAU,KAAK,CAAC,cAAc,CAAC,IAAI,SAAS,CAAC,IAAI,CAAC,EAAE,kBAAkB,CAAC,QAAQ,EAAE,EAAE,GAAG,EAAE,CAAC,EAAE,EAAE,UAAU,CAAC,KAAK,CAAC,SAAS,CAAC,EAAE,CAAC,QAAQ,KAAK;AACxI,YAAY,OAAO,SAAS,EAAE,EAAE,WAAW,CAACA,aAAW,EAAE;AACzD,cAAc,GAAG,EAAE,QAAQ;AAC3B,cAAc;AACd,aAAa,EAAE,IAAI,EAAE,CAAC,EAAE,CAAC,UAAU,CAAC,CAAC;AACrC,UAAU,CAAC,CAAC,EAAE,GAAG,CAAC,IAAI,kBAAkB,CAAC,EAAE,EAAE,IAAI,CAAC;AAClD,UAAU,WAAW,CAACnC,aAAW,EAAE,EAAE,IAAI,EAAE,WAAW,EAAE;AACxD,SAAS,CAAC;AACV,QAAQ,CAAC,EAAE;AACX,OAAO,EAAE,CAAC,EAAE,CAAC,YAAY,EAAE,YAAY,EAAE,iBAAiB,EAAE,cAAc,CAAC,CAAC,CAAC;AAC7E,IAAI,CAAC;AACL,EAAE;AACF,CAAC,CAAC;AACF,MAAM,WAAW,GAAG;AACpB,EAAE,YAAY,EAAE;AAChB,CAAC;AACD,MAAMqC,aAAW,mBAAmB,eAAe,CAAC;AACpD,EAAE,GAAG,WAAW;AAChB,EAAE,MAAM,EAAE,mBAAmB;AAC7B,EAAE,KAAK,CAAC,OAAO,EAAE;AACjB,IAAI,MAAM;AACV,MAAM,mBAAmB;AACzB,MAAM,KAAK;AACX,MAAM,WAAW;AACjB,MAAM,UAAU;AAChB,MAAM,mBAAmB;AACzB,MAAM,kBAAkB;AACxB,MAAM,mBAAmB;AACzB,MAAM;AACN,KAAK,GAAG,aAAa,EAAE;AACvB,IAAI,OAAO,CAAC,IAAI,EAAE,MAAM,KAAK;AAC7B,MAAM,OAAO,SAAS,EAAE,EAAE,WAAW,CAAC,OAAO,EAAE;AAC/C,QAAQ,EAAE,EAAE,KAAK,CAAC,mBAAmB,CAAC;AACtC,QAAQ,SAAS,EAAE,cAAc;AACjC,QAAQ,KAAK,EAAE,cAAc,CAAC,CAAC,0BAA0B,EAAE,KAAK,CAAC,KAAK,CAAC,CAAC,IAAI,EAAE,KAAK,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC;AACnG,QAAQ,OAAO,EAAE,YAAY;AAC7B,QAAQ,GAAG,EAAE,UAAU;AACvB,QAAQ,YAAY,EAAE,KAAK,CAAC,mBAAmB,CAAC;AAChD,QAAQ,WAAW,EAAE,KAAK,CAAC,kBAAkB,CAAC;AAC9C,QAAQ,YAAY,EAAE,KAAK,CAAC,mBAAmB,CAAC;AAChD,QAAQ,WAAW,EAAE,KAAK,CAAC,kBAAkB;AAC7C,OAAO,EAAE;AACT,QAAQ,OAAO,EAAE,OAAO,CAAC,MAAM;AAC/B,UAAU,WAAW,CAACD,aAAW,EAAE,cAAc,CAAC,kBAAkB,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,EAAE,IAAI,EAAE,EAAE;AAC5F,SAAS,CAAC;AACV,QAAQ,CAAC,EAAE;AACX,OAAO,EAAE,CAAC,EAAE,CAAC,IAAI,EAAE,OAAO,EAAE,cAAc,EAAE,aAAa,EAAE,cAAc,EAAE,aAAa,CAAC,CAAC;AAC1F,IAAI,CAAC;AACL,EAAE;AACF,CAAC,CAAC;AACF,MAAME,WAAS,GAAG,eAAe,CAAC;AAClC,EAAE,YAAY,EAAE,KAAK;AACrB,EAAE,KAAK;AACP,EAAE,KAAK,EAAE,QAAQ;AACjB,EAAE,UAAU,EAAE,EAAE,cAAc,EAAEF,aAAW,EAAE,iBAAiB,EAAEC,aAAW,EAAE;AAC7E,EAAE,KAAK,CAAC,KAAK,EAAE,GAAG,EAAE;AACpB,IAAI,MAAM,UAAU,GAAG,gBAAgB,CAAC,KAAK,EAAE,GAAG,CAAC;AACnD,IAAI,MAAM,OAAO,GAAG,QAAQ,CAAC,IAAI,CAAC,UAAU,EAAE,aAAa,EAAE,YAAY,CAAC,CAAC;AAC3E,IAAI,OAAO,EAAE,GAAG,UAAU,EAAE,OAAO,EAAE;AACrC,EAAE;AACF,CAAC,CAAC;AACF,SAAS,WAAW,CAAC,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,QAAQ,EAAE;AACpE,EAAE,MAAM,4BAA4B,GAAG,gBAAgB,CAAC,mBAAmB,CAAC;AAC5E,EAAE,MAAM,yBAAyB,GAAG,gBAAgB,CAAC,gBAAgB,CAAC;AACtE,EAAE,OAAO,IAAI,CAAC,MAAM,CAAC,OAAO,IAAI,SAAS,EAAE,EAAE,kBAAkB,CAAC,QAAQ,EAAE,EAAE,GAAG,EAAE,CAAC,EAAE,EAAE;AACtF,IAAI,UAAU,CAAC,IAAI,CAAC,MAAM,EAAE,SAAS,EAAE,cAAc,CAAC,kBAAkB,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC;AACxF,IAAI,WAAW,CAAC,4BAA4B,EAAE,cAAc,CAAC,kBAAkB,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,EAAE,IAAI,EAAE,EAAE;AACvG,GAAG,EAAE,EAAE,CAAC,KAAK,SAAS,EAAE,EAAE,WAAW,CAAC,yBAAyB,EAAE,cAAc,CAAC,UAAU,CAAC,EAAE,GAAG,EAAE,CAAC,EAAE,EAAE,IAAI,CAAC,MAAM,CAAC,CAAC,EAAE,IAAI,EAAE,EAAE,CAAC,CAAC;AAChI;AACA,MAAM,UAAU,mBAAmB,WAAW,CAACC,WAAS,EAAE,CAAC,CAAC,QAAQ,EAAE,WAAW,CAAC,CAAC,CAAC;;AC/hQ7E,MAAM,eAAA,GAAkB,CAAC,KAAA,KAA+B;AAC7D,EAAA,IAAI,CAAC,KAAA,EAAO;AACV,IAAA,OAAO,IAAA;AAAA,EACT;AAEA,EAAA,MAAM,QAAA,GAAW,+BAAA,CAAgC,IAAA,CAAK,KAAK,CAAA;AAC3D,EAAA,IAAI,QAAA,EAAU;AACZ,IAAA,MAAMC,KAAI,IAAI,IAAA;AAAA,MACZ,MAAA,CAAO,QAAA,CAAS,CAAC,CAAC,CAAA;AAAA,MAClB,MAAA,CAAO,QAAA,CAAS,CAAC,CAAC,CAAA,GAAI,CAAA;AAAA,MACtB,MAAA,CAAO,QAAA,CAAS,CAAC,CAAC;AAAA,KACpB;AACA,IAAA,OAAO,OAAO,KAAA,CAAMA,EAAAA,CAAE,OAAA,EAAS,IAAI,IAAA,GAAOA,EAAAA;AAAA,EAC5C;AACA,EAAA,MAAM,CAAA,GAAI,IAAI,IAAA,CAAK,KAAK,CAAA;AACxB,EAAA,OAAO,OAAO,KAAA,CAAM,CAAA,CAAE,OAAA,EAAS,IAAI,IAAA,GAAO,CAAA;AAC5C,CAAA;AAEO,MAAM,eAAA,GAAkB,CAAC,KAAA,KAA+B;AAC7D,EAAA,IAAI,CAAC,KAAA,EAAO;AACV,IAAA,OAAO,IAAA;AAAA,EACT;AAEA,EAAA,MAAM,KAAA,GAAQ,2BAAA,CAA4B,IAAA,CAAK,KAAK,CAAA;AACpD,EAAA,IAAI,CAAC,KAAA,EAAO;AACV,IAAA,OAAO,IAAA;AAAA,EACT;AACA,EAAA,MAAM,IAAA,GAAO,MAAA,CAAO,KAAA,CAAM,CAAC,CAAC,CAAA;AAC5B,EAAA,MAAM,KAAA,GAAQ,MAAA,CAAO,KAAA,CAAM,CAAC,CAAC,CAAA;AAC7B,EAAA,MAAM,GAAA,GAAM,MAAA,CAAO,KAAA,CAAM,CAAC,CAAC,CAAA;AAE3B,EAAA,MAAM,OAAO,IAAI,IAAA,CAAK,IAAA,EAAM,KAAA,GAAQ,GAAG,GAAG,CAAA;AAG1C,EAAA,IACE,IAAA,CAAK,WAAA,EAAY,KAAM,IAAA,IACvB,IAAA,CAAK,QAAA,EAAS,KAAM,KAAA,GAAQ,CAAA,IAC5B,IAAA,CAAK,OAAA,EAAQ,KAAM,GAAA,EACnB;AACA,IAAA,OAAO,IAAA;AAAA,EACT;AAEA,EAAA,OAAO,IAAA;AACT,CAAA;AAEO,MAAM,kBAAA,GAAqB,CAAC,IAAA,KAAuC;AACxE,EAAA,IAAI,CAAC,IAAA,EAAM;AACT,IAAA,OAAO,EAAA;AAAA,EACT;AACA,EAAA,MAAM,IAAI,IAAA,YAAgB,IAAA,GAAO,IAAA,GAAO,IAAI,KAAK,IAAI,CAAA;AAErD,EAAA,IAAI,MAAA,CAAO,KAAA,CAAM,CAAA,CAAE,OAAA,EAAS,CAAA,EAAG;AAC7B,IAAA,OAAO,EAAA;AAAA,EACT;AAEA,EAAA,OAAO,CAAC,CAAA,CAAE,WAAA,EAAY,EAAG,CAAA,CAAE,UAAS,GAAI,CAAA,EAAG,CAAA,CAAE,OAAA,EAAS,CAAA,CACnD,IAAI,CAAC,CAAA,KAAM,MAAA,CAAO,CAAC,CAAA,CAAE,QAAA,CAAS,GAAG,GAAG,CAAC,CAAA,CACrC,IAAA,CAAK,GAAG,CAAA;AACb,CAAA;;ACvBA,MAAM,gBAAA,GAAmB,YAAA;AAKzB,MAAM,wBAAA,GACJ,gFAAA;;;;;;;;;;;;;;;;;;;;;;;AAXF,IAAA,MAAM,EAAE,UAAA,EAAW,GAAI,cAAA,EAAe;AAEtC,IAAA,MAAM,UAAA,GAAa/E,QAAA,CAAmB,OAAA,EAAA,YAAgB,CAAA;AACtD,IAAA,MAAM,SAAA,GAAY,eAAe,WAAW,CAAA;AAC5C,IAAA,MAAM,gBAAA,GAAmB,IAAI,KAAK,CAAA;AAElC,IAAA,MAAM,UAAA,GAAa,eAAe,YAAY,CAAA;AAE9C,IAAA,MAAM,UAAA,GAAa,IAAI,KAAK,CAAA;AAI5B,IAAA,MAAM,iBAAiB,QAAA,CAAS,MAAM,OAAA,CAAA,KAAA,IAAS,WAAW,KAAK,CAAA;AAC/D,IAAA,MAAM,gBAAA,GAAmB,QAAA;AAAA,MAAS,MAChC,UAAA,CAAW,KAAA,GAAQ,wBAAA,GAA2B,OAAA,CAAA;AAAA,KAChD;AAEA,IAAA,MAAM,eAAA,GAAkB,SAAS,MAAM;AACrC,MAAA,IAAI,OAAO,UAAA,CAAW,KAAA,KAAU,QAAA,EAAU;AACxC,QAAA,OAAO,IAAA;AAAA,MACT;AACA,MAAA,OAAO,eAAA,CAAgB,WAAW,KAAK,CAAA;AAAA,IACzC,CAAC,CAAA;AAED,IAAA,MAAM,iBAAA,GAAoB,CAAC,IAAA,KAA+B;AACxD,MAAA,UAAA,CAAW,KAAA,GAAQ,mBAAmB,IAAI,CAAA;AAC1C,MAAA,UAAA,CAAW,KAAA,GAAQ,KAAA;AACnB,MAAA,gBAAA,CAAiB,KAAA,GAAQ,KAAA;AAAA,IAC3B,CAAA;AAEA,IAAA,MAAM,kBAAkB,MAAM;AAC5B,MAAA,IAAI,CAAC,WAAW,KAAA,EAAO;AACrB,QAAA,UAAA,CAAW,KAAA,GAAQ,KAAA;AACnB,QAAA;AAAA,MACF;AACA,MAAA,MAAM,MAAA,GAAS,eAAA,CAAgB,UAAA,CAAW,KAAK,CAAA;AAE/C,MAAA,IAAI,MAAA,EAAQ;AACV,QAAA,UAAA,CAAW,KAAA,GAAQ,mBAAmB,MAAM,CAAA;AAC5C,QAAA,UAAA,CAAW,KAAA,GAAQ,KAAA;AAAA,MACrB,CAAA,MAAO;AACL,QAAA,UAAA,CAAW,KAAA,GAAQ,IAAA;AAAA,MACrB;AAAA,IACF,CAAA;AAEA,IAAA,QAAA,CAAiC;AAAA,MAC/B,KAAA,EAAO,MAAM,SAAA,CAAU,KAAA,EAAO,KAAA;AAAM,KACrC,CAAA;;0BAICX,WAAA,CA+DuB,oBAAA,EA/DvBU,UAAA,CA+DuB,KAAA,MAAA,EA9DP;AAAA,QACb,OAAO,cAAA,CAAA,KAAA;AAAA,QACP,YAAU,gBAAA,CAAA;AAAA;QAEA,OAAA,EAAOY,OAAA,CAChB,CAuDY,SAAA,KAxDe;AAAA,UAC3Bf,WAAA,CAuDY,WAvDZG,UAAA,CAuDY;AAAA,qBAtDN,WAAA;AAAA,YAAJ,GAAA,EAAI;AAAA,aACI,SAAA,EAAS;AAAA,wBACR,UAAA,CAAA,KAAA;AAAA,yEAAA,UAAA,CAAU,KAAA,GAAA,MAAA,CAAA;AAAA,YACnB,IAAA,EAAK,MAAA;AAAA,YACJ,aAAA,OAAA,CAAA,WAAA;AAAA,YACA,UAAA,OAAA,CAAA,QAAA;AAAA,YACA,OAAO,cAAA,CAAA,KAAA;AAAA,YACP,cAAA,OAAA,CAAA,YAAA;AAAA,YACA,KAAA,EAAO,WAAA,KAAA,EAAY,WAAA;AAAA,YACnB,eAAA,EAAe,WAAA,KAAA,EAAY,SAAA;AAAA,YAC3B,MAAA,EAAM;AAAA;YAEI,QAAA,UACT,MAYE;AAAA,cAZFH,YAYEY,WAAA,EAAA;AAAA,4BAXS,gBAAA,CAAA,KAAA;AAAA,6EAAA,gBAAA,CAAgB,KAAA,GAAA,MAAA,CAAA;AAAA,gBACzB,IAAA,EAAK,QAAA;AAAA,gBACL,IAAA,EAAK,QAAA;AAAA,gBACL,OAAA,EAAQ,UAAA;AAAA,gBACR,cAAA,EAAa,UAAA;AAAA,gBACb,YAAA,EAAW,kBAAA;AAAA,gBACV,UAAA,OAAA,CAAA,QAAA;AAAA,gBACA,eAAA,EAAe,WAAA,KAAA,EAAY,SAAA;AAAA,gBAC5B,eAAA,EAAc,QAAA;AAAA,gBACb,iBAAe,gBAAA,CAAA,KAAA;AAAA,gBACf,KAAA,EAAO,gBAAA,CAAA,KAAA,GAAgB,mBAAA,GAAA;AAAA;cAG1BZ,YAyBa,UAAA,EAAA;AAAA,yBAxBP,YAAA;AAAA,gBAAJ,GAAA,EAAI,UAAA;AAAA,4BACK,gBAAA,CAAA,KAAA;AAAA,6EAAA,gBAAA,CAAgB,KAAA,GAAA,MAAA,CAAA;AAAA,gBACzB,SAAA,EAAU,cAAA;AAAA,gBACV,IAAA,EAAK,QAAA;AAAA,gBACL,oBAAA,EAAmB;AAAA;iCAEnB,MAiBE;AAAA,kBAhBM,iBAAA,KAAA,iBADRP,WAAA,CAiBED,KAAA,CAAA,UAAA,CAAA,EAAA;AAAA;oBAfC,eAAa,eAAA,CAAA,KAAA;AAAA,oBACb,SAAA,EAASA,MAAA,UAAA,CAAA;AAAA,oBACV,KAAA,EAAM,wBAAA;AAAA,oBACL,aAAA,EAAa,IAAA;AAAA,oBACd,KAAA,EAAM,QAAA;AAAA,oBACL,OAAA,EAAS;AAAA;;qBAGT;AAAA,oBACA,KAAA,OAAY,gBAAA,EAAgB;AAAA,oBAC5B,YAAU,OAAA,CAAA,aAAA;AAAA,oBACV,YAAU,OAAA,CAAA,aAAA;AAAA,oBACV,iBAAA,wCAAmB,gBAAA,CAAA,KAAA,GAAgB,KAAA,CAAA;AAAA,oBACnC,iBAAA,wCAAmB,gBAAA,CAAA,KAAA,GAAgB,IAAA,CAAA;AAAA,oBACnC,qBAAA,EAAoB;AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;ACtHnC,IAAA,MAAM,KAAA,GAAQ,OAAA;AAEd,IAAA,MAAM,SAAA,GAAYY,QAAA,UAAoB,WAA4B,CAAA;AAElE,IAAA,MAAM,uBAAA,GAA2D;AAAA,MAC/D,IAAA,EAAM,MAAA;AAAA,MACN,SAAA,EAAW,aAAA;AAAA,MACX,IAAA,EAAM,MAAA;AAAA,MACN,eAAA,EAAiB;AAAA,KACnB;AAEA,IAAA,MAAM,qBAAA,GAA+D;AAAA,MACnE,MAAA,EAAQ,QAAA;AAAA,MACR,QAAA,EAAU,KAAA;AAAA,MACV,QAAA,EAAU,UAAA;AAAA,MACV,QAAA,EAAU;AAAA,KACZ;AAEA,IAAA,MAAM,gBAAA,GAAmB,SAAS,MAAM;AACtC,MAAA,MAAM,UAAU,KAAA,CAAM,iBAAA;AAGtB,MAAA,IAAI,KAAA,CAAM,mBAAmB,MAAA,EAAW;AACtC,QAAA,OAAO,OAAA;AAAA,MACT;AAGA,MAAA,IAAI,KAAA,CAAM,cAAA,CAAe,MAAA,KAAW,CAAA,EAAG;AACrC,QAAA,OAAO,EAAC;AAAA,MACV;AAEA,MAAA,MAAM,OAAA,GAAU,IAAI,GAAA,CAAI,KAAA,CAAM,cAAc,CAAA;AAC5C,MAAA,OAAO,OAAA,CAAQ,OAAO,CAAC,KAAA,KAAU,QAAQ,GAAA,CAAI,KAAA,CAAM,YAAY,CAAC,CAAA;AAAA,IAClE,CAAC,CAAA;AAED,IAAA,MAAM,WAAA,GAAc,SAAS,MAAM;AACjC,MAAA,MAAM,IAAA,uBAAW,GAAA,EAAY;AAC7B,MAAA,MAAM,UAAoB,EAAC;AAE3B,MAAA,KAAA,MAAW,KAAA,IAAS,iBAAiB,KAAA,EAAO;AAC1C,QAAA,MAAM,KAAA,GAAQ,uBAAA,CAAwB,KAAA,CAAM,YAAY,CAAA;AACxD,QAAA,IAAI,CAAC,IAAA,CAAK,GAAA,CAAI,KAAK,CAAA,EAAG;AACpB,UAAA,IAAA,CAAK,IAAI,KAAK,CAAA;AACd,UAAA,OAAA,CAAQ,KAAK,KAAK,CAAA;AAAA,QACpB;AAAA,MACF;AAEA,MAAA,OAAO,OAAA;AAAA,IACT,CAAC,CAAA;AAED,IAAA,MAAM,aAAA,GAAgB,SAAS,MAAM;AACnC,MAAA,MAAM,SAAS,qBAAA,CAAsB,MAAA;AACrC,MAAA,MAAM,IAAA,uBAAW,GAAA,EAAY;AAC7B,MAAA,MAAM,OAAA,GAAoB,CAAC,MAAM,CAAA;AACjC,MAAA,IAAA,CAAK,IAAI,MAAM,CAAA;AAEf,MAAA,KAAA,MAAW,KAAA,IAAS,iBAAiB,KAAA,EAAO;AAC1C,QAAA,MAAM,KAAA,GAAQ,qBAAA,CAAsB,KAAA,CAAM,QAAQ,CAAA;AAClD,QAAA,IAAI,CAAC,IAAA,CAAK,GAAA,CAAI,KAAK,CAAA,EAAG;AACpB,UAAA,IAAA,CAAK,IAAI,KAAK,CAAA;AACd,UAAA,OAAA,CAAQ,KAAK,KAAK,CAAA;AAAA,QACpB;AAAA,MACF;AAEA,MAAA,OAAO,OAAA;AAAA,IACT,CAAC,CAAA;AAED,IAAA,MAAM,mBAAA,GAAsB,SAAS,MAAM;AACzC,MAAA,IAAI,CAAC,UAAU,KAAA,EAAO;AACpB,QAAA,OAAO,IAAA;AAAA,MACT;AAEA,MAAA,OACE,gBAAA,CAAiB,MAAM,IAAA,CAAK,CAAC,UAAU,KAAA,CAAM,MAAA,KAAW,SAAA,CAAU,KAAK,CAAA,IACvE,IAAA;AAAA,IAEJ,CAAC,CAAA;AAGD,IAAA,MAAM,YAAA,GAAe,IAAwB,MAAS,CAAA;AACtD,IAAA,MAAM,cAAA,GAAiB,IAAwB,MAAS,CAAA;AAExD,IAAA,MAAM,qBAAA,GAAwB,SAAS,MAAM;AAC3C,MAAA,MAAM,QAAQ,mBAAA,CAAoB,KAAA;AAClC,MAAA,OAAO,KAAA,GAAQ,uBAAA,CAAwB,KAAA,CAAM,YAAY,CAAA,GAAI,IAAA;AAAA,IAC/D,CAAC,CAAA;AAED,IAAA,MAAM,uBAAA,GAA0B,SAAS,MAAM;AAC7C,MAAA,MAAM,QAAQ,mBAAA,CAAoB,KAAA;AAClC,MAAA,OAAO,KAAA,GAAQ,qBAAA,CAAsB,KAAA,CAAM,QAAQ,CAAA,GAAI,IAAA;AAAA,IACzD,CAAC,CAAA;AAED,IAAA,MAAM,qBAAA,GAAwB,SAAS,MAAM;AAC3C,MAAA,MAAM,QAAQ,WAAA,CAAY,KAAA;AAE1B,MAAA,IAAI,KAAA,CAAM,WAAW,CAAA,EAAG;AACtB,QAAA,OAAO,EAAA;AAAA,MACT;AAGA,MAAA,MAAM,SAAS,YAAA,CAAa,KAAA;AAC5B,MAAA,IAAI,MAAA,IAAU,KAAA,CAAM,QAAA,CAAS,MAAM,CAAA,EAAG;AACpC,QAAA,OAAO,MAAA;AAAA,MACT;AAGA,MAAA,MAAM,YAAY,qBAAA,CAAsB,KAAA;AACxC,MAAA,IAAI,SAAA,IAAa,KAAA,CAAM,QAAA,CAAS,SAAS,CAAA,EAAG;AAC1C,QAAA,OAAO,SAAA;AAAA,MACT;AAEA,MAAA,OAAO,MAAM,CAAC,CAAA;AAAA,IAChB,CAAC,CAAA;AAED,IAAA,MAAM,uBAAA,GAA0B,SAAS,MAAM;AAC7C,MAAA,MAAM,UAAU,aAAA,CAAc,KAAA;AAE9B,MAAA,IAAI,OAAA,CAAQ,WAAW,CAAA,EAAG;AACxB,QAAA,OAAO,EAAA;AAAA,MACT;AAGA,MAAA,MAAM,SAAS,cAAA,CAAe,KAAA;AAC9B,MAAA,IAAI,MAAA,IAAU,OAAA,CAAQ,QAAA,CAAS,MAAM,CAAA,EAAG;AACtC,QAAA,OAAO,MAAA;AAAA,MACT;AAGA,MAAA,MAAM,YAAY,uBAAA,CAAwB,KAAA;AAC1C,MAAA,IAAI,SAAA,IAAa,OAAA,CAAQ,QAAA,CAAS,SAAS,CAAA,EAAG;AAC5C,QAAA,OAAO,SAAA;AAAA,MACT;AAEA,MAAA,OAAO,QAAQ,CAAC,CAAA;AAAA,IAClB,CAAC,CAAA;AAID,IAAA,MAAM,8BAAA,GAAiC,SAAS,MAAM;AACpD,MAAA,MAAM,GAAA,uBAAU,GAAA,EAAoC;AAEpD,MAAA,KAAA,MAAW,KAAA,IAAS,iBAAiB,KAAA,EAAO;AAC1C,QAAA,MAAM,SAAA,GAAY,uBAAA,CAAwB,KAAA,CAAM,YAAY,CAAA;AAC5D,QAAA,MAAM,WAAA,GAAc,qBAAA,CAAsB,KAAA,CAAM,QAAQ,CAAA;AACxD,QAAA,MAAM,GAAA,GAAM,CAAA,EAAG,SAAS,CAAA,EAAA,EAAK,WAAW,CAAA,CAAA;AAExC,QAAA,MAAM,OAAA,GAAU,GAAA,CAAI,GAAA,CAAI,GAAG,KAAK,EAAC;AACjC,QAAA,OAAA,CAAQ,IAAA,CAAK;AAAA,UACX,EAAA,EAAI,kBAAA,CAAmB,KAAA,CAAM,MAAM,CAAA;AAAA,UACnC,MAAM,KAAA,CAAM,MAAA;AAAA,UACZ,SAAS,KAAA,CAAM;AAAA,SAChB,CAAA;AACD,QAAA,GAAA,CAAI,GAAA,CAAI,KAAK,OAAO,CAAA;AAAA,MACtB;AAEA,MAAA,OAAO,GAAA;AAAA,IACT,CAAC,CAAA;AAED,IAAA,MAAM,eAAA,GAAkB,SAA0B,MAAM;AACtD,MAAA,MAAM,OAAO,qBAAA,CAAsB,KAAA;AACnC,MAAA,MAAM,SAAS,uBAAA,CAAwB,KAAA;AAEvC,MAAA,IAAI,CAAC,IAAA,IAAQ,CAAC,MAAA,EAAQ;AACpB,QAAA,OAAO,EAAC;AAAA,MACV;AAEA,MAAA,MAAM,GAAA,GAAM,CAAA,EAAG,IAAI,CAAA,EAAA,EAAK,MAAM,CAAA,CAAA;AAC9B,MAAA,MAAM,UAAU,8BAAA,CAA+B,KAAA,CAAM,GAAA,CAAI,GAAG,KAAK,EAAC;AAClE,MAAA,OAAO,OAAA,CAAQ,GAAA,CAAI,CAAC,MAAA,MAAY;AAAA,QAC9B,GAAG,MAAA;AAAA,QACH,QAAA,EAAU,MAAA,CAAO,EAAA,KAAO,kBAAA,CAAmB,UAAU,KAAK;AAAA,OAC5D,CAAE,CAAA;AAAA,IACJ,CAAC,CAAA;;AAIC,MAAA,OAAAf,SAAA,EAAA,EAAAF,kBAAA,CAiCM,KAAA,EAjCNU,YAAA,EAiCM;AAAA,QA/BI,YAAA,KAAA,CAAY,MAAA,GAAM,kBAD1BJ,YAUE,cAAA,EAAA;AAAA;UARC,eAAa,qBAAA,CAAA,KAAA;AAAA,UACd,IAAA,EAAK,OAAA;AAAA,UACJ,mBAAiB,WAAA,CAAA,KAAA;AAAA,UACjB,qBAAA,EAAkB,OAAA,CAAA,CAAA,KAAA,OAAA,CAAA,CAAA,IAAY,KAAA,KAAK;AAAiB,YAAA,YAAA,CAAA,KAAA,GAAe,KAAA;AAAA;;QAQ9D,cAAA,KAAA,CAAc,MAAA,GAAM,kBAD5BA,YAUE,cAAA,EAAA;AAAA;UARC,eAAa,uBAAA,CAAA,KAAA;AAAA,UACd,IAAA,EAAK,OAAA;AAAA,UACJ,mBAAiB,aAAA,CAAA,KAAA;AAAA,UACjB,qBAAA,EAAkB,OAAA,CAAA,CAAA,KAAA,OAAA,CAAA,CAAA,IAAY,KAAA,KAAK;AAAiB,YAAA,cAAA,CAAA,KAAA,GAAiB,KAAA;AAAA;;QAOxEO,WAAA,CAOER,KAAA,CAAA,gBAAA,CAAA,EAAA;AAAA,UANA,KAAA,EAAM,mCAAA;AAAA,UACN,YAAA,EAAW,mBAAA;AAAA,UACX,OAAA,EAAQ,OAAA;AAAA,UACP,mBAAiB,eAAA,CAAA,KAAA;AAAA,UAClB,YAAA,EAAW,0BAAA;AAAA,UACV,WAAA,EAAU,MAAA,CAAA,CAAA,CAAA,KAAA,MAAA,CAAA,CAAA,CAAA,GAAA,CAAA,MAAA,KAAE,SAAA,CAAA,KAAA,GAAY,kBAAA,CAAmB,MAAM,CAAA;AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACxNxD,IAAA,MAAM,KAAA,GAAQ,OAAA;AAQd,IAAA,MAAM,UAAA,GAAaY,QAAA,CAAmB,OAAA,EAAA,YAAgB,CAAA;AACtD,IAAA,MAAM,IAAA,GAAO,IAAI,KAAK,CAAA;AAEtB,IAAA,MAAM,SAAA,GAAY,eAAe,WAAW,CAAA;;AAI1C,MAAA,OAAAf,SAAA,IAAAI,WAAA,CAmDuB,oBAAA,oCAnDO,KAAK,CAAA,CAAA,EAAA;AAAA,QACtB,OAAA,EAAOsB,OAAA,CAChB,CA+CM,SAAA,KAhDqB;AAAA,UAC3BxB,mBA+CM,KAAA,EAAA;AAAA,YA/CA,KAAA,EAAK8B,cAAA,CAAE,SAAA,CAAA,KAAA,EAAW,WAAW;AAAA;YACjCrB,WAAA,CA4BY,SAAA,EA5BZG,UAAA,CA4BY,SAAA,EA3BO;AAAA,0BACR,UAAA,CAAA,KAAA;AAAA,2EAAA,UAAA,CAAU,KAAA,GAAA,MAAA,CAAA;AAAA,cACnB,IAAA,EAAK,MAAA;AAAA,cACJ,aAAa,KAAA,CAAM,WAAA;AAAA,cACnB,UAAU,KAAA,CAAM,QAAA;AAAA,cAChB,OAAO,KAAA,CAAM,KAAA;AAAA,cACb,YAAY,KAAA,CAAM,UAAA;AAAA,cAClB,cAAc,KAAA,CAAM;AAAA;cAEV,QAAA,UACT,MAeE;AAAA,gBAfFH,WAAA,CAeER,KAAA,CAAAoB,WAAA,CAAA,EAAA;AAAA,8BAdS,IAAA,CAAA,KAAA;AAAA,+EAAA,IAAA,CAAI,KAAA,GAAA,MAAA,CAAA;AAAA,kBACb,IAAA,EAAK,QAAA;AAAA,kBACL,OAAA,EAAQ,UAAA;AAAA,kBACR,cAAA,EAAa,WAAA;AAAA,kBACb,YAAA,EAAW,8BAAA;AAAA,kBACV,eAAA,EAAe,UAAA,KAAA,EAAW,SAAA;AAAA,kBAC1B,iBAAe,IAAA,CAAA,KAAA;AAAA,kBAChB,eAAA,EAAc,QAAA;AAAA,kBACb,UAAU,KAAA,CAAM,QAAA;AAAA,kBAChB,KAAA,EAAwB,IAAA,CAAA,KAAA;;;;;YAS/BZ,YAea,UAAA,EAAA;AAAA,uBAdP,WAAA;AAAA,cAAJ,GAAA,EAAI,SAAA;AAAA,0BACK,IAAA,CAAA,KAAA;AAAA,2EAAA,IAAA,CAAI,KAAA,GAAA,MAAA,CAAA;AAAA,cACb,SAAA,EAAU,cAAA;AAAA,cACV,oBAAA,EAAmB;AAAA;+BAEnB,MAQE;AAAA,gBARFA,YAQE,qBAAA,EAAA;AAAA,kBAPC,WAAW,UAAA,CAAA,KAAA;AAAA,kBACX,uBAAqB,KAAA,CAAM,iBAAA;AAAA,kBAC3B,mBAAiB,KAAA,CAAM,cAAA;AAAA,kBACvB,oBAAA,EAAgB,OAAA,CAAA,CAAA,KAAA,OAAA,CAAA,CAAA,GAAA,CAAA,MAAA,KAAA;AAAiB,oBAAA,UAAA,CAAA,KAAA,GAAa,MAAA;AAAsB,oBAAA,IAAA,CAAA,KAAA,GAAI,KAAA;AAAA;;;;;;;;;;;;;ACrE9E,MAAM,eAAA,GAAkB;AAAA,EAC7B,IAAA,EAAM,MAAA;AAAA,EACN,IAAA,EAAM,MAAA;AAAA,EACN,SAAA,EAAW,WAAA;AAAA,EACX,eAAA,EAAiB;AACnB;AAEO,MAAM,gBAAA,GAAmB,MAAA,CAAO,MAAA,CAAO,eAAe;AAEtD,MAAM,qBAAA,GAAwB;AAAA,EACnC,MAAA,EAAQ,QAAA;AAAA,EACR,QAAA,EAAU,UAAA;AAAA,EACV,QAAA,EAAU,UAAA;AAAA,EACV,QAAA,EAAU;AACZ;AAEO,MAAM,uBAAA,GAA0B,MAAA,CAAO,MAAA,CAAO,qBAAqB;;ACM1E,MAAM,yBAAA,GAA4B,CAAC,GAAA,EAAK,GAAA,EAAU,GAAQ,CAAA;AAC1D,MAAM,sBAAA,GAAyB,GAAA;AAC/B,MAAM,oBAAA,GAAuB,MAAA;AAE7B,MAAM,mBAAA,GAAsB,CAAC,KAAA,KAAkB;AAC7C,EAAA,IAAI,CAAC,MAAA,CAAO,QAAA,CAAS,KAAK,CAAA,EAAG;AAC3B,IAAA,OAAO,CAAA;AAAA,EACT;AAQA,EAAA,MAAM,GAAA,GAAM,MAAM,aAAA,EAAc;AAChC,EAAA,MAAM,KAAA,GAAQ,sCAAA,CAAuC,IAAA,CAAK,GAAG,CAAA;AAC7D,EAAA,IAAI,CAAC,KAAA,EAAO;AACV,IAAA,OAAO,CAAA;AAAA,EACT;AAEA,EAAA,MAAM,wBAAA,GAA2B,KAAA,CAAM,CAAC,CAAA,EAAG,MAAA,IAAU,CAAA;AACrD,EAAA,MAAM,WAAW,MAAA,CAAO,QAAA,CAAS,KAAA,CAAM,CAAC,GAAG,EAAE,CAAA;AAE7C,EAAA,IAAI,YAAY,CAAA,EAAG;AAEjB,IAAA,OAAO,IAAA,CAAK,GAAA,CAAI,CAAA,EAAG,wBAAA,GAA2B,QAAQ,CAAA;AAAA,EACxD;AAGA,EAAA,OAAO,wBAAA,GAA2B,IAAA,CAAK,GAAA,CAAI,QAAQ,CAAA;AACrD,CAAA;AAEO,MAAM,qBAAA,GAAwB,CAAC,MAAA,KAGf;AACrB,EAAA,MAAM,SAAA,GAAY,IAAI,IAAA,CAAK,YAAA,CAAa,OAAO,MAAM,CAAA;AAErD,EAAA,MAAM,gBAAA,GACJ,SAAA,CACG,aAAA,CAAc,sBAAsB,CAAA,CACpC,IAAA,CAAK,CAAC,IAAA,KAAS,IAAA,CAAK,IAAA,KAAS,SAAS,CAAA,EAAG,KAAA,IAAS,GAAA;AAEvD,EAAA,MAAM,cAAA,GACJ,SAAA,CACG,aAAA,CAAc,oBAAoB,CAAA,CAClC,IAAA,CAAK,CAAC,IAAA,KAAS,IAAA,CAAK,IAAA,KAAS,OAAO,CAAA,EAAG,KAAA,IAAS,GAAA;AAErD,EAAA,MAAM,2BAA2B,CAAC,KAAA,KAChC,CAAC,cAAA,EAAgB,GAAG,yBAAyB,CAAA,CAAE,MAAA;AAAA,IAC7C,CAAC,GAAA,EAAK,QAAA,KACJ,QAAA,CAAS,MAAA,GAAS,CAAA,GAAI,GAAA,CAAI,KAAA,CAAM,QAAQ,CAAA,CAAE,IAAA,CAAK,EAAE,CAAA,GAAI,GAAA;AAAA,IACvD;AAAA,GACF;AAEF,EAAA,MAAM,uBAAA,uBAA8B,GAAA,EAA+B;AACnE,EAAA,MAAM,0BAAA,GAA6B,CAAC,WAAA,KAAwB;AAC1D,IAAA,MAAM,MAAA,GAAS,uBAAA,CAAwB,GAAA,CAAI,WAAW,CAAA;AACtD,IAAA,IAAI,MAAA,EAAQ;AACV,MAAA,OAAO,MAAA;AAAA,IACT;AAEA,IAAA,MAAM,OAAA,GAAU,IAAI,IAAA,CAAK,YAAA,CAAa,OAAO,MAAA,EAAQ;AAAA,MACnD,WAAA,EAAa,KAAA;AAAA,MACb,qBAAA,EAAuB,CAAA;AAAA,MACvB,qBAAA,EAAuB;AAAA,KACxB,CAAA;AAED,IAAA,uBAAA,CAAwB,GAAA,CAAI,aAAa,OAAO,CAAA;AAChD,IAAA,OAAO,OAAA;AAAA,EACT,CAAA;AAEA,EAAA,MAAM,kBAAA,GAAqB,mBAAA,CAAoB,MAAA,CAAO,IAAI,CAAA;AAC1D,EAAA,MAAM,eAAA,GAAkB,MAAA,CAAO,CAAA,EAAA,EAAK,kBAAkB,CAAA,CAAE,CAAA;AAExD,EAAA,MAAM,gBAAA,GAAmB,CAAC,KAAA,KAAkB;AAC1C,IAAA,IAAI,CAAC,MAAA,CAAO,QAAA,CAAS,KAAK,CAAA,EAAG;AAC3B,MAAA,OAAO,EAAA;AAAA,IACT;AAIA,IAAA,MAAM,aAAA,GAAgB,oBAAoB,KAAK,CAAA;AAE/C,IAAA,MAAM,WAAA,GAAc,IAAA,CAAK,GAAA,CAAI,kBAAA,EAAoB,aAAa,CAAA;AAE9D,IAAA,OAAO,0BAAA,CAA2B,WAAW,CAAA,CAAE,MAAA,CAAO,KAAK,CAAA;AAAA,EAC7D,CAAA;AAEA,EAAA,MAAM,WAAA,GAAc,CAAC,KAAA,KAAkB;AACrC,IAAA,IAAI,CAAC,MAAA,CAAO,QAAA,CAAS,KAAK,CAAA,EAAG;AAC3B,MAAA,OAAO,MAAA,CAAO,GAAA;AAAA,IAChB;AAEA,IAAA,MAAM,OAAO,MAAA,CAAO,IAAA;AAEpB,IAAA,IAAI,CAAC,MAAA,CAAO,QAAA,CAAS,IAAI,CAAA,IAAK,QAAQ,CAAA,EAAG;AACvC,MAAA,OAAO,KAAA;AAAA,IACT;AAIA,IAAA,IAAI,CAAC,MAAA,CAAO,QAAA,CAAS,eAAe,CAAA,IAAK,mBAAmB,CAAA,EAAG;AAC7D,MAAA,OAAO,KAAA;AAAA,IACT;AAEA,IAAA,MAAM,UAAA,GAAa,IAAA,CAAK,KAAA,CAAM,KAAA,GAAQ,eAAe,CAAA;AACrD,IAAA,MAAM,UAAA,GAAa,IAAA,CAAK,KAAA,CAAM,IAAA,GAAO,eAAe,CAAA;AAGpD,IAAA,IAAI,eAAe,CAAA,EAAG;AACpB,MAAA,OAAO,KAAA;AAAA,IACT;AAEA,IAAA,MAAM,aAAA,GAAgB,IAAA,CAAK,KAAA,CAAM,UAAA,GAAa,UAAU,CAAA,GAAI,UAAA;AAC5D,IAAA,OAAO,aAAA,GAAgB,eAAA;AAAA,EACzB,CAAA;AAEA,EAAA,MAAM,0BAA0B,CAAC,UAAA;AAAA;AAAA;AAAA,IAG/B,iDAAA,CAAkD,KAAK,UAAU;AAAA,GAAA;AAEnE,EAAA,MAAM,sBAAA,GAAyB,CAAC,KAAA,EAAe,aAAA,KAA0B;AACvE,IAAA,MAAM,eAAA,GAAkB,yBAAyB,KAAK,CAAA;AACtD,IAAA,MAAM,aAAa,eAAA,CAAgB,KAAA,CAAM,aAAa,CAAA,CAAE,KAAK,GAAG,CAAA;AAChE,IAAA,IAAI,CAAC,uBAAA,CAAwB,UAAU,CAAA,EAAG;AACxC,MAAA,OAAO,MAAA,CAAO,GAAA;AAAA,IAChB;AACA,IAAA,MAAM,MAAA,GAAS,MAAA,CAAO,UAAA,CAAW,UAAU,CAAA;AAC3C,IAAA,OAAO,MAAA,CAAO,QAAA,CAAS,MAAM,CAAA,GAAI,SAAS,MAAA,CAAO,GAAA;AAAA,EACnD,CAAA;AAEA,EAAA,MAAM,oBAAA,GAAuB,CAAC,KAAA,KAAkB;AAC9C,IAAA,MAAM,YAAA,GAAe,KAAA,CAAM,WAAA,CAAY,GAAG,CAAA;AAC1C,IAAA,MAAM,cAAA,GAAiB,KAAA,CAAM,KAAA,CAAM,YAAA,GAAe,CAAC,CAAA;AAEnD,IAAA,MAAM,gBAAA,GACJ,cAAA,CAAe,MAAA,GAAS,CAAA,IAAK,eAAe,MAAA,IAAU,CAAA;AAExD,IAAA,MAAM,UAAA,GAAa,gBAAA,GACf,CAAA,EAAG,wBAAA,CAAyB,KAAA,CAAM,MAAM,CAAA,EAAG,YAAY,CAAC,CAAC,CAAA,CAAA,EAAI,wBAAA;AAAA,MAC3D;AAAA,KACD,CAAA,CAAA,GACD,wBAAA,CAAyB,KAAK,CAAA;AAElC,IAAA,IAAI,CAAC,uBAAA,CAAwB,UAAU,CAAA,EAAG;AACxC,MAAA,OAAO,MAAA,CAAO,GAAA;AAAA,IAChB;AAEA,IAAA,MAAM,MAAA,GAAS,MAAA,CAAO,UAAA,CAAW,UAAU,CAAA;AAC3C,IAAA,OAAO,MAAA,CAAO,QAAA,CAAS,MAAM,CAAA,GAAI,SAAS,MAAA,CAAO,GAAA;AAAA,EACnD,CAAA;AAEA,EAAA,MAAM,yBAAA,GAA4B,CAAC,KAAA,KAAkB;AACnD,IAAA,MAAM,UAAA,GAAa,yBAAyB,KAAK,CAAA;AACjD,IAAA,IAAI,CAAC,uBAAA,CAAwB,UAAU,CAAA,EAAG;AACxC,MAAA,OAAO,MAAA,CAAO,GAAA;AAAA,IAChB;AACA,IAAA,MAAM,MAAA,GAAS,MAAA,CAAO,UAAA,CAAW,UAAU,CAAA;AAC3C,IAAA,OAAO,MAAA,CAAO,QAAA,CAAS,MAAM,CAAA,GAAI,SAAS,MAAA,CAAO,GAAA;AAAA,EACnD,CAAA;AAWA,EAAA,SAAS,eAAe,KAAA,EAAe;AACrC,IAAA,MAAM,OAAA,GAAU,MAAM,IAAA,EAAK;AAC3B,IAAA,IAAI,OAAA,CAAQ,WAAW,CAAA,EAAG;AACxB,MAAA,OAAO,MAAA,CAAO,GAAA;AAAA,IAChB;AAEA,IAAA,MAAM,aAAA,GAAgB,gBAAA;AAEtB,IAAA,MAAM,mBACJ,aAAA,CAAc,MAAA,GAAS,CAAA,IAAK,OAAA,CAAQ,SAAS,aAAa,CAAA;AAG5D,IAAA,IAAI,gBAAA,EAAkB;AACpB,MAAA,OAAO,sBAAA,CAAuB,SAAS,aAAa,CAAA;AAAA,IACtD;AAMA,IAAA,IAAI,aAAA,KAAkB,GAAA,IAAO,OAAA,CAAQ,QAAA,CAAS,GAAG,CAAA,EAAG;AAClD,MAAA,OAAO,qBAAqB,OAAO,CAAA;AAAA,IACrC;AAKA,IAAA,OAAO,0BAA0B,OAAO,CAAA;AAAA,EAC1C;AAEA,EAAA,OAAO;AAAA,IACL,QAAQ,MAAA,CAAO,MAAA;AAAA,IACf,gBAAA;AAAA,IACA,cAAA;AAAA,IACA,kBAAA;AAAA,IACA,gBAAA;AAAA,IACA,cAAA;AAAA,IACA;AAAA,GACF;AACF,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;AC/NA,IAAA,MAAM,KAAA,GAAQ,OAAA;AASd,IAAA,MAAM,UAAA,GAAaI,QAAA,CAAmB,OAAA,EAAA,YAAwB,CAAA;AAE9D,IAAA,MAAM,SAAA,GAAY,IAAI,KAAK,CAAA;AAS3B,IAAA,MAAM,UAAA,GAAa,IAAY,EAAE,CAAA;AAEjC,IAAA,MAAM,YAAA,GAAe,QAAA;AAAA,MAAS,MAC5B,sBAAsB,EAAE,MAAA,EAAQ,SAAS,IAAA,EAAM,KAAA,CAAM,MAAM;AAAA,KAC7D;AAEA,IAAA,MAAM,YAAA,GAAe,QAAA;AAAA,MAAS,MAC5B,MAAA,CAAO,QAAA,CAAS,WAAW,KAAK,CAAA,GAAI,WAAW,KAAA,GAAQ;AAAA,KACzD;AAEA,IAAA,MAAM,aAAA,GAAgB,SAAS,MAAM;AACnC,MAAA,IAAI,CAAC,MAAA,CAAO,QAAA,CAAS,UAAA,CAAW,KAAK,CAAA,EAAG;AACtC,QAAA,OAAO,MAAA;AAAA,MACT;AAGA,MAAA,OAAO,YAAA,CAAa,KAAA,CAAM,gBAAA,CAAiB,UAAA,CAAW,KAAK,CAAA;AAAA,IAC7D,CAAC,CAAA;AAED,IAAA,MAAM,KAAA,GAAQ,CAAC,KAAA,KAAkB;AAC/B,MAAA,IAAI,CAAC,MAAA,CAAO,QAAA,CAAS,KAAK,CAAA,EAAG;AAC3B,QAAA,OAAO,MAAA,CAAO,GAAA;AAAA,MAChB;AAEA,MAAA,IAAI,MAAA,GAAS,KAAA;AAEb,MAAA,IAAI,KAAA,CAAM,QAAQ,MAAA,IAAa,CAAC,OAAO,KAAA,CAAM,KAAA,CAAM,GAAG,CAAA,EAAG;AACvD,QAAA,MAAA,GAAS,IAAA,CAAK,GAAA,CAAI,KAAA,CAAM,GAAA,EAAK,MAAM,CAAA;AAAA,MACrC;AACA,MAAA,IAAI,KAAA,CAAM,QAAQ,MAAA,IAAa,CAAC,OAAO,KAAA,CAAM,KAAA,CAAM,GAAG,CAAA,EAAG;AACvD,QAAA,MAAA,GAAS,IAAA,CAAK,GAAA,CAAI,KAAA,CAAM,GAAA,EAAK,MAAM,CAAA;AAAA,MACrC;AAEA,MAAA,OAAO,MAAA;AAAA,IACT,CAAA;AAEA,IAAA,KAAA;AAAA,MACE,MAAM,UAAA,CAAW,KAAA;AAAA,MACjB,CAAC,IAAA,KAAS;AAER,QAAA,IAAI,UAAU,KAAA,EAAO;AACnB,UAAA;AAAA,QACF;AACA,QAAA,UAAA,CAAW,KAAA,GAAQ,YAAA,CAAa,KAAA,CAAM,gBAAA,CAAiB,IAAI,CAAA;AAAA,MAC7D,CAAA;AAAA,MACA,EAAE,WAAW,IAAA;AAAK,KACpB;AAEA,IAAA,MAAM,WAAA,GAAc,SAAS,MAAM;AACjC,MAAA,IAAI,MAAM,QAAA,EAAU;AAClB,QAAA,OAAO,KAAA;AAAA,MACT;AAEA,MAAA,IAAI,MAAM,GAAA,KAAQ,MAAA,IAAa,OAAO,KAAA,CAAM,KAAA,CAAM,GAAG,CAAA,EAAG;AACtD,QAAA,OAAO,IAAA;AAAA,MACT;AAEA,MAAA,IAAI,MAAA,CAAO,KAAA,CAAM,UAAA,CAAW,KAAK,CAAA,EAAG;AAClC,QAAA,OAAO,IAAA;AAAA,MACT;AAEA,MAAA,OAAO,UAAA,CAAW,QAAQ,KAAA,CAAM,GAAA;AAAA,IAClC,CAAC,CAAA;AAED,IAAA,MAAM,WAAA,GAAc,SAAS,MAAM;AACjC,MAAA,IAAI,MAAM,QAAA,EAAU;AAClB,QAAA,OAAO,KAAA;AAAA,MACT;AAEA,MAAA,IAAI,MAAM,GAAA,KAAQ,MAAA,IAAa,OAAO,KAAA,CAAM,KAAA,CAAM,GAAG,CAAA,EAAG;AACtD,QAAA,OAAO,IAAA;AAAA,MACT;AAEA,MAAA,IAAI,MAAA,CAAO,KAAA,CAAM,UAAA,CAAW,KAAK,CAAA,EAAG;AAClC,QAAA,OAAO,IAAA;AAAA,MACT;AAEA,MAAA,OAAO,UAAA,CAAW,QAAQ,KAAA,CAAM,GAAA;AAAA,IAClC,CAAC,CAAA;AAED,IAAA,MAAM,YAAA,GAAe,CAAC,SAAA,KAAsB;AAC1C,MAAA,IAAI,KAAA,CAAM,QAAQ,CAAA,EAAG;AACnB,QAAA;AAAA,MACF;AAEA,MAAA,MAAM,IAAA,GAAO,MAAA,CAAO,QAAA,CAAS,UAAA,CAAW,KAAK,CAAA,GACzC,UAAA,CAAW,KAAA,GACX,YAAA,CAAa,KAAA,CAAM,cAAA,CAAe,UAAA,CAAW,KAAK,CAAA;AAEtD,MAAA,MAAM,OAAA,GAAU,OAAO,QAAA,CAAS,IAAI,IAAI,IAAA,GAAO,SAAA,GAAY,MAAM,IAAA,GAAO,CAAA;AAExE,MAAA,MAAM,OAAA,GAAU,YAAA,CAAa,KAAA,CAAM,WAAA,CAAY,OAAO,CAAA;AACtD,MAAA,MAAM,IAAA,GAAO,MAAM,OAAO,CAAA;AAE1B,MAAA,UAAA,CAAW,KAAA,GAAQ,IAAA;AACnB,MAAA,UAAA,CAAW,KAAA,GAAQ,YAAA,CAAa,KAAA,CAAM,gBAAA,CAAiB,IAAI,CAAA;AAAA,IAC7D,CAAA;AAEA,IAAA,MAAM,aAAA,GAAgB,CAAC,KAAA,KAAyB;AAC9C,MAAA,IAAI,MAAM,QAAA,EAAU;AAClB,QAAA;AAAA,MACF;AAEA,MAAA,IAAI,KAAA,CAAM,GAAA,KAAQ,SAAA,IAAa,WAAA,CAAY,KAAA,EAAO;AAChD,QAAA,KAAA,CAAM,cAAA,EAAe;AACrB,QAAA,YAAA,CAAa,CAAC,CAAA;AACd,QAAA;AAAA,MACF;AACA,MAAA,IAAI,KAAA,CAAM,GAAA,KAAQ,WAAA,IAAe,WAAA,CAAY,KAAA,EAAO;AAClD,QAAA,KAAA,CAAM,cAAA,EAAe;AACrB,QAAA,YAAA,CAAa,EAAE,CAAA;AAAA,MACjB;AAAA,IACF,CAAA;AAEA,IAAA,MAAM,sBAAA,GAAyB,CAAC,KAAA,KAAkB;AAChD,MAAA,UAAA,CAAW,KAAA,GAAQ,KAAA;AACnB,MAAA,UAAA,CAAW,KAAA,GAAQ,YAAA,CAAa,KAAA,CAAM,cAAA,CAAe,KAAK,CAAA;AAAA,IAC5D,CAAA;AAEA,IAAA,MAAM,aAAa,MAAM;AACvB,MAAA,SAAA,CAAU,KAAA,GAAQ,KAAA;AAGlB,MAAA,MAAM,MAAA,GAAS,YAAA,CAAa,KAAA,CAAM,cAAA,CAAe,WAAW,KAAK,CAAA;AACjE,MAAA,MAAM,UAAA,GAAa,MAAM,MAAM,CAAA;AAE/B,MAAA,UAAA,CAAW,KAAA,GAAQ,UAAA;AACnB,MAAA,UAAA,CAAW,KAAA,GAAQ,YAAA,CAAa,KAAA,CAAM,gBAAA,CAAiB,UAAU,CAAA;AAAA,IACnE,CAAA;AAEA,IAAA,MAAM,SAAA,GAAY,eAAe,WAAW,CAAA;AAE5C,IAAA,QAAA,CAAiC;AAAA,MAC/B,KAAA,EAAO,MAAM,SAAA,CAAU,KAAA,EAAO,KAAA;AAAM,KACrC,CAAA;;AAIC,MAAA,OAAAf,SAAA,IAAAI,WAAA,CA6CuB,oBAAA,oCA7CO,KAAK,CAAA,CAAA,EAAA;AAAA,QACtB,OAAA,EAAOsB,OAAA,CAChB,CAyCY,SAAA,KA1Ce;AAAA,UAC3Bf,WAAA,CAyCY,WAzCZG,UAAA,CAyCY;AAAA,qBAxCN,WAAA;AAAA,YAAJ,GAAA,EAAI;AAAA,aACI,SAAA,EAAS;AAAA,YAChB,eAAa,UAAA,CAAA,KAAA;AAAA,YACd,IAAA,EAAK,MAAA;AAAA,YACJ,SAAA,EAAW,KAAA,CAAM,IAAA,IAAI,CAAA,GAAA,SAAA,GAAA,SAAA;AAAA,YACrB,aAAa,KAAA,CAAM,WAAA;AAAA,YACnB,UAAU,KAAA,CAAM,QAAA;AAAA,YAChB,OAAO,KAAA,CAAM,KAAA;AAAA,YACb,cAAc,KAAA,CAAM,YAAA;AAAA,YACpB,MAAM,KAAA,CAAM,IAAA;AAAA,YACb,IAAA,EAAK,YAAA;AAAA,YACJ,iBAAe,YAAA,CAAA,KAAA;AAAA,YACf,iBAAe,KAAA,CAAM,GAAA;AAAA,YACrB,iBAAe,KAAA,CAAM,GAAA;AAAA,YACrB,kBAAgB,aAAA,CAAA,KAAA;AAAA,YAChB,qBAAA,EAAoB,sBAAA;AAAA,YACpB,SAAA,EAAS,aAAA;AAAA,YACT,OAAA,wCAAO,SAAA,CAAA,KAAA,GAAS,IAAA,CAAA;AAAA,YAChB,MAAA,EAAM;AAAA;YAEI,QAAA,UACT,MAQE;AAAA,cARFH,YAQEM,WAAA,EAAA;AAAA,gBAPA,IAAA,EAAK,QAAA;AAAA,gBACL,IAAA,EAAK,QAAA;AAAA,gBACL,OAAA,EAAQ,UAAA;AAAA,gBACR,cAAA,EAAa,OAAA;AAAA,gBACZ,YAAA,cAAwB,KAAA,CAAM,KAAA,IAAS,MAAM,SAAS,CAAA,CAAA;AAAA,gBACtD,QAAA,GAAW,WAAA,CAAA,KAAA;AAAA,gBACX,OAAA,wCAAO,YAAA,CAAY,EAAA,CAAA;AAAA;cAEtBN,YAQEM,WAAA,EAAA;AAAA,gBAPA,IAAA,EAAK,QAAA;AAAA,gBACL,IAAA,EAAK,QAAA;AAAA,gBACL,OAAA,EAAQ,UAAA;AAAA,gBACR,cAAA,EAAa,MAAA;AAAA,gBACZ,YAAA,cAAwB,KAAA,CAAM,KAAA,IAAS,MAAM,SAAS,CAAA,CAAA;AAAA,gBACtD,QAAA,GAAW,WAAA,CAAA,KAAA;AAAA,gBACX,OAAA,wCAAO,YAAA,CAAY,CAAA,CAAA;AAAA;;;;;;;;;;;AC3MhC,MAAM,cAAc,CAAC,KAAA,KACnB,MAAM,UAAA,CAAW,qBAAA,EAAuB,OAAO,GAAA,CAAA,GAAA,CAAQ,CAAA;AAEzD,MAAM,mBAAA,GAAsB,CAAC,OAAA,KAAoB;AAK/C,EAAA,IAAI,IAAA,GAAO,EAAA;AACX,EAAA,KAAA,MAAW,QAAQ,OAAA,EAAS;AAC1B,IAAA,IAAI,SAAS,GAAA,EAAK;AAChB,MAAA,IAAA,IAAQ,IAAA;AACR,MAAA;AAAA,IACF;AAEA,IAAA,IAAI,SAAS,GAAA,EAAK;AAChB,MAAA,IAAA,IAAQ,GAAA;AACR,MAAA;AAAA,IACF;AAEA,IAAA,IAAA,IAAQ,YAAY,IAAI,CAAA;AAAA,EAC1B;AAEA,EAAA,OAAO,IAAA;AACT,CAAA;AAEA,MAAM,mBAAA,GAAsB,CAAC,SAAA,KAAsB;AAMjD,EAAA,IAAI,QAAA,GAAW,EAAA;AACf,EAAA,KAAA,IAAS,IAAI,CAAA,EAAG,CAAA,GAAI,SAAA,CAAU,MAAA,EAAQ,KAAK,CAAA,EAAG;AAC5C,IAAA,MAAM,IAAA,GAAO,UAAU,CAAC,CAAA;AAExB,IAAA,IAAI,SAAS,IAAA,EAAM;AACjB,MAAA,MAAM,IAAA,GAAO,SAAA,CAAU,CAAA,GAAI,CAAC,CAAA;AAC5B,MAAA,IAAI,SAAS,MAAA,EAAW;AACtB,QAAA,OAAO,MAAA;AAAA,MACT;AACA,MAAA,QAAA,IAAY,IAAA;AACZ,MAAA,CAAA,IAAK,CAAA;AACL,MAAA;AAAA,IACF;AAEA,IAAA,IAAI,SAAS,GAAA,EAAK;AAChB,MAAA,MAAM,IAAA,GAAO,SAAA,CAAU,CAAA,GAAI,CAAC,CAAA;AAC5B,MAAA,IAAI,SAAS,GAAA,EAAK;AAChB,QAAA,QAAA,IAAY,GAAA;AACZ,QAAA,CAAA,IAAK,CAAA;AACL,QAAA;AAAA,MACF;AACA,MAAA,QAAA,IAAY,GAAA;AACZ,MAAA;AAAA,IACF;AAEA,IAAA,IAAI,eAAA,CAAgB,IAAA,CAAK,IAAI,CAAA,EAAG;AAC9B,MAAA,OAAO,MAAA;AAAA,IACT;AAEA,IAAA,QAAA,IAAY,IAAA;AAAA,EACd;AAEA,EAAA,OAAO,QAAA;AACT,CAAA;AAEA,MAAM,uBAAA,GAA0B,MAAA;AAEhC,MAAM,eAAA,GAAkB,CAAC,OAAA,EAAiB,MAAA,KAAmB;AAC3D,EAAA,MAAM,OAAA,GAAU,QAAQ,IAAA,EAAK;AAC7B,EAAA,IAAI,QAAQ,UAAA,CAAW,MAAM,KAAK,OAAA,CAAQ,QAAA,CAAS,GAAG,CAAA,EAAG;AACvD,IAAA,OAAO,OAAA,CAAQ,KAAA,CAAM,MAAA,CAAO,MAAA,EAAQ,EAAE,CAAA;AAAA,EACxC;AACA,EAAA,OAAO,OAAA;AACT,CAAA;AAEO,MAAM,0BAAA,GAA6B,CACxC,KAAA,EACA,OAAA,KACW;AACX,EAAA,MAAM,IAAA,GAAO,OAAA,CAAQ,QAAA,GAAW,KAAA,GAAQ,oBAAoB,KAAK,CAAA;AACjE,EAAA,MAAM,OAAA,GAAU,MAAM,IAAI,CAAA,CAAA,CAAA;AAC1B,EAAA,MAAM,WAAW,OAAA,CAAQ,aAAA,GACrB,UACA,CAAA,EAAG,uBAAuB,GAAG,OAAO,CAAA,CAAA,CAAA;AAExC,EAAA,IAAI,CAAC,QAAQ,cAAA,EAAgB;AAC3B,IAAA,OAAO,QAAA;AAAA,EACT;AAEA,EAAA,OAAO,SAAS,QAAQ,CAAA,IAAA,CAAA;AAC1B,CAAA;AAKA,MAAM,2BAAA,GAA8B,CAAC,OAAA,KACnC,eAAA,CAAgB,SAAS,KAAK,CAAA;AAEhC,MAAM,2BAAA,GAA8B,CAAC,OAAA,KACnC,eAAA,CAAgB,SAAS,uBAAuB,CAAA;AAElD,MAAM,gBAAA,GAAmB,CAAC,KAAA,KAA8C;AAEtE,EAAA,MAAM,KAAA,GAAQ,gCAAA,CAAiC,IAAA,CAAK,KAAA,CAAM,MAAM,CAAA;AAChE,EAAA,IAAI,CAAC,KAAA,EAAO;AACV,IAAA,OAAO,EAAC;AAAA,EACV;AACA,EAAA,OAAO,EAAE,aAAA,EAAe,KAAA,CAAM,CAAC,CAAA,EAAE;AACnC,CAAA;AAEO,MAAM,6BAAA,GAAgC,CAC3C,KAAA,EACA,OAAA,KAGW;AACX,EAAA,IAAI,UAAU,EAAA,EAAI;AAChB,IAAA,OAAO,EAAA;AAAA,EACT;AAEA,EAAA,MAAM,EAAE,aAAA,EAAc,GAAI,gBAAA,CAAiB,KAAK,CAAA;AAChD,EAAA,MAAM,QAAQ,aAAA,IAAiB,KAAA;AAE/B,EAAA,MAAM,WAAA,GAAc,OAAA,CAAQ,aAAA,GACxB,KAAA,GACA,4BAA4B,KAAK,CAAA;AAErC,EAAA,MAAM,IAAA,GAAO,4BAA4B,WAAW,CAAA;AAEpD,EAAA,IAAI,QAAQ,QAAA,EAAU;AACpB,IAAA,OAAO,IAAA;AAAA,EACT;AAEA,EAAA,MAAM,QAAA,GAAW,oBAAoB,IAAI,CAAA;AACzC,EAAA,OAAO,QAAA,IAAY,IAAA;AACrB,CAAA;;;;;;;;;;;;;;;;;;;;;;ACjIA,IAAA,MAAM,KAAA,GAAQ,OAAA;AAQd,IAAA,MAAM,KAAA,GAAQF,QAAA,CAAmB,OAAA,EAAA,YAAgB,CAAA;AAGjD,IAAA,MAAM,OAAA,GAAU,IAAI,EAAE,CAAA;AACtB,IAAA,MAAM,aAAA,GAAgB,IAAI,KAAK,CAAA;AAC/B,IAAA,MAAM,cAAA,GAAiB,IAAI,KAAK,CAAA;AAChC,IAAA,MAAM,QAAA,GAAW,IAAI,KAAK,CAAA;AAE1B,IAAA,MAAM,qBAAqB,MAAM;AAC/B,MAAA,KAAA,CAAM,KAAA,GAAQ,0BAAA,CAA2B,OAAA,CAAQ,KAAA,EAAO;AAAA,QACtD,eAAe,aAAA,CAAc,KAAA;AAAA,QAC7B,gBAAgB,cAAA,CAAe,KAAA;AAAA,QAC/B,UAAU,QAAA,CAAS;AAAA,OACpB,CAAA;AAAA,IACH,CAAA;AAEA,IAAA,KAAA;AAAA,MACE,MAAM,KAAA,CAAM,KAAA;AAAA,MACZ,CAAC,QAAA,KAAa;AACZ,QAAA,OAAA,CAAQ,KAAA,GAAQ,8BAA8B,QAAA,EAAU;AAAA,UACtD,UAAU,QAAA,CAAS,KAAA;AAAA,UACnB,gBAAgB,cAAA,CAAe,KAAA;AAAA,UAC/B,eAAe,aAAA,CAAc;AAAA,SAC9B,CAAA;AAAA,MACH,CAAA;AAAA,MACA,EAAE,WAAW,IAAA;AAAK,KACpB;AAEA,IAAA,MAAM,sBAAA,GAAyB,QAAA;AAAA,MAAS,MACtC,aAAA,CAAc,KAAA,GAAQ,sBAAA,GAAyB;AAAA,KACjD;AACA,IAAA,MAAM,uBAAA,GAA0B,QAAA;AAAA,MAAS,MACvC,cAAA,CAAe,KAAA,GAAQ,iBAAA,GAAoB;AAAA,KAC7C;AACA,IAAA,MAAM,oBAAA,GAAuB,QAAA;AAAA,MAAS,MACpC,QAAA,CAAS,KAAA,GAAQ,mBAAA,GAAsB;AAAA,KACzC;AAEA,IAAA,MAAM,SAAA,GAAY,eAAe,WAAW,CAAA;AAE5C,IAAA,QAAA,CAAiC;AAAA,MAC/B,KAAA,EAAO,MAAM,SAAA,CAAU,KAAA,EAAO,KAAA;AAAM,KACrC,CAAA;;AAIC,MAAA,OAAAf,SAAA,IAAAI,WAAA,CAmDuB,oBAAA,oCAnDO,KAAK,CAAA,CAAA,EAAA;AAAA,QACtB,OAAA,EAAOsB,OAAA,CAChB,CA+CY,SAAA,KAhDe;AAAA,UAC3Bf,WAAA,CA+CY,WA/CZG,UAAA,CA+CY;AAAA,qBA9CN,WAAA;AAAA,YAAJ,GAAA,EAAI;AAAA,aACI,SAAA,EAAS;AAAA,wBACR,OAAA,CAAA,KAAA;AAAA;oDAAA,OAAA,CAAO,KAAA,GAAA,MAAA,CAAA;AAAA,cAQK;AAAA;YAPrB,IAAA,EAAK,MAAA;AAAA,YACJ,aAAa,KAAA,CAAM,WAAA;AAAA,YACnB,UAAU,KAAA,CAAM,QAAA;AAAA,YAChB,OAAO,KAAA,CAAM,KAAA;AAAA,YACb,cAAc,KAAA,CAAM,YAAA;AAAA,YACrB,cAAA,EAAa,QAAA;AAAA,YACb,SAAA,EAAA;AAAA;YAGW,QAAA,UACT,MASE;AAAA,cATFH,YASEY,WAAA,EAAA;AAAA,4BARS,aAAA,CAAA,KAAA;AAAA;wDAAA,aAAA,CAAa,KAAA,GAAA,MAAA,CAAA;AAAA,kBAOD;AAAA;gBANrB,IAAA,EAAK,QAAA;AAAA,gBACL,OAAA,EAAQ,UAAA;AAAA,gBACR,cAAA,EAAa,gBAAA;AAAA,gBACZ,OAAO,sBAAA,CAAA,KAAA;AAAA,gBACP,cAAY,sBAAA,CAAA,KAAA;AAAA,gBACZ,UAAU,KAAA,CAAM;AAAA;cAInBZ,YASEY,WAAA,EAAA;AAAA,4BARS,cAAA,CAAA,KAAA;AAAA;wDAAA,cAAA,CAAc,KAAA,GAAA,MAAA,CAAA;AAAA,kBAOF;AAAA;gBANrB,IAAA,EAAK,QAAA;AAAA,gBACL,OAAA,EAAQ,UAAA;AAAA,gBACR,cAAA,EAAa,cAAA;AAAA,gBACZ,OAAO,uBAAA,CAAA,KAAA;AAAA,gBACP,cAAY,uBAAA,CAAA,KAAA;AAAA,gBACZ,UAAU,KAAA,CAAM;AAAA;cAInBZ,YASEY,WAAA,EAAA;AAAA,4BARS,QAAA,CAAA,KAAA;AAAA;wDAAA,QAAA,CAAQ,KAAA,GAAA,MAAA,CAAA;AAAA,kBAOI;AAAA;gBANrB,IAAA,EAAK,QAAA;AAAA,gBACL,OAAA,EAAQ,UAAA;AAAA,gBACR,cAAA,EAAa,OAAA;AAAA,gBACZ,OAAO,oBAAA,CAAA,KAAA;AAAA,gBACP,cAAY,oBAAA,CAAA,KAAA;AAAA,gBACZ,UAAU,KAAA,CAAM;AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACxG7B,IAAA,MAAM,KAAA,GAAQ,OAAA;AAQd,IAAA,MAAM,UAAA,GAAaR,QAAA,CAAmB,OAAA,EAAA,YAAgB,CAAA;AAEtD,IAAA,MAAM,IAAA,GAAO,MAAA;AASb,IAAA,MAAM,SAAA,GAAY,eAAe,WAAW,CAAA;AAE5C,IAAA,QAAA,CAAiC;AAAA,MAC/B,KAAA,EAAO,MAAM,SAAA,CAAU,KAAA,EAAO,KAAA;AAAM,KACrC,CAAA;;AAIC,MAAA,OAAAf,SAAA,IAAAI,WAAA,CAkBuB,oBAAA,oCAlBO,KAAK,CAAA,CAAA,EAAA;AAAA,QACtB,OAAA,EAAOsB,OAAA,CAChB,CAcE,SAAA,KAfyB;AAAA,UAC3Bf,WAAA,CAcE,WAdFG,UAAA,CAcE;AAAA,qBAbI,WAAA;AAAA,YAAJ,GAAA,EAAI;AAAA,aACI,SAAA,EAAS;AAAA,wBACR,UAAA,CAAA,KAAA;AAAA,yEAAA,UAAA,CAAU,KAAA,GAAA,MAAA,CAAA;AAAA,YACnB,IAAA,EAAK,QAAA;AAAA,YACJ,aAAa,KAAA,CAAM,WAAA;AAAA,YACnB,UAAU,KAAA,CAAM,QAAA;AAAA,YAChB,OAAO,KAAA,CAAM,KAAA;AAAA,YACb,cAAc,KAAA,CAAM,YAAA;AAAA,YACrB,cAAA,EAAa,QAAA;AAAA,YACZ,SAAA,EAAW,IAAA;AAAA,YACX,OAAA,EAAK,MAAA,CAAA,CAAA,CAAA,KAAA,MAAA,CAAA,CAAA,CAAA,GAAA,CAAA,MAAA,KAAE,IAAA,CAAI,OAAA,EAAU,MAAM,CAAA,CAAA;AAAA,YAC3B,MAAA,EAAI,MAAA,CAAA,CAAA,CAAA,KAAA,MAAA,CAAA,CAAA,CAAA,GAAA,CAAA,MAAA,KAAE,IAAA,CAAI,MAAA,EAAS,MAAM,CAAA,CAAA;AAAA,YACzB,SAAA,EAAO,MAAA,CAAA,CAAA,CAAA,KAAA,MAAA,CAAA,CAAA,CAAA,GAAA,CAAA,MAAA,KAAE,IAAA,CAAI,SAAA,EAAY,MAAM,CAAA;AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AC1CxC,IAAA,MAAM,KAAA,GAAQ,OAAA;AASd,IAAA,MAAM,cAAA,GAAiB,SAAS,MAAM,IAAA,CAAK,IAAI,CAAA,EAAG,KAAA,CAAM,IAAI,CAAC,CAAA;AAE7D,IAAA,MAAM,UAAA,GAAaC,QAAA,CAAmB,OAAA,EAAA,YAAgB,CAAA;AAEtD,IAAA,MAAM,eAAA,GAAkB,eAAe,iBAAiB,CAAA;AAExD,IAAA,SAAS,MAAA,GAAS;AAChB,MAAA,MAAM,UAAU,eAAA,CAAgB,KAAA;AAChC,MAAA,IAAI,CAAC,OAAA,EAAS;AACZ,QAAA;AAAA,MACF;AAGA,MAAA,OAAA,CAAQ,MAAM,MAAA,GAAS,MAAA;AAEvB,MAAA,MAAM,eAAe,OAAA,CAAQ,YAAA;AAC7B,MAAA,MAAM,eAAe,OAAA,CAAQ,YAAA;AAC7B,MAAA,IAAI,gBAAgB,YAAA,EAAc;AAChC,QAAA;AAAA,MACF;AAEA,MAAA,OAAA,CAAQ,KAAA,CAAM,MAAA,GAAS,CAAA,EAAG,YAAY,CAAA,EAAA,CAAA;AAAA,IACxC;AAEA,IAAA,iBAAA,CAAkB,iBAAiB,MAAM,CAAA;AACzC,IAAA,KAAA,CAAM,UAAA,EAAY,MAAA,EAAQ,EAAE,SAAA,EAAW,MAAM,CAAA;AAE7C,IAAA,QAAA,CAAiC;AAAA,MAC/B,OAAO,MAAM;AACX,QAAA,eAAA,CAAgB,OAAO,KAAA,EAAM;AAAA,MAC/B;AAAA,KACD,CAAA;;AAIC,MAAA,OAAAf,SAAA,IAAAI,WAAA,CAauB,oBAAA,oCAbO,KAAK,CAAA,CAAA,EAAA;AAAA,QACtB,OAAA,EAAOsB,OAAA,CAChB,CASE,SAAA,KAVyB;AAAA,yBAC3BxB,kBAAA,CASE,UAAA,EATFY,UAAA,CASE,SAAA,EARiB;AAAA,qBACb,iBAAA;AAAA,YAAJ,GAAA,EAAI,eAAA;AAAA,yEACK,UAAA,CAAU,KAAA,GAAA,MAAA,CAAA;AAAA,YAClB,KAAA,EAAK,EAAA,OAAA,EAAa,KAAA,CAAM,KAAA,EAAK;AAAA,YAC7B,MAAM,cAAA,CAAA,KAAA;AAAA,YACN,aAAa,KAAA,CAAM,WAAA;AAAA,YACnB,UAAU,KAAA,CAAM,QAAA;AAAA,YAChB,cAAc,KAAA,CAAM;AAAA;yBALZ,UAAA,CAAA,KAAU;AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AClD3B,IAAA,MAAM,KAAA,GAAQ,OAAA;AAed,IAAA,MAAM,IAAA,GAAOC,QAAA,CAAoB,OAAA,EAAC,MAA0B,CAAA;AAE5D,IAAA,MAAM,cAAc,KAAA,EAAM;AAE1B,IAAA,MAAM,cAAA,GAAiB,SAAS,MAAM;AACpC,MAAA,IAAI,MAAM,SAAA,EAAW;AACnB,QAAA,OAAO,MAAA;AAAA,MACT;AACA,MAAA,IAAI,CAAC,MAAM,cAAA,EAAgB;AACzB,QAAA,OAAO,WAAA;AAAA,MACT;AACA,MAAA,OAAO,CAAA,EAAG,KAAA,CAAM,cAAc,CAAA,CAAA,EAAI,WAAW,CAAA,CAAA;AAAA,IAC/C,CAAC,CAAA;AAED,IAAA,MAAM,kBAAA,GAAqB,SAAS,MAAM;AACxC,MAAA,IAAI,CAAC,MAAM,SAAA,EAAW;AACpB,QAAA,OAAO,MAAA;AAAA,MACT;AACA,MAAA,MAAM,WAAA,GAAc,KAAA,CAAM,IAAA,IAAQ,KAAA,CAAM,WAAA;AACxC,MAAA,OAAO,CAAA,EAAG,KAAA,CAAM,SAAS,CAAA,EAAA,EAAK,WAAW,CAAA,CAAA;AAAA,IAC3C,CAAC,CAAA;AAED,IAAA,MAAM,IAAA,GAAO,MAAA;AAKb,IAAA,MAAM,SAAA,GAAY,CAAC,KAAA,KAAyB;AAC1C,MAAA,IAAI,MAAM,QAAA,EAAU;AAClB,QAAA;AAAA,MACF;AAEA,MAAA,IAAA,CAAK,WAAW,KAAK,CAAA;AAErB,MAAA,QAAQ,MAAM,GAAA;AAAK,QACjB,KAAK,WAAA;AAAA,QACL,KAAK,SAAA;AACH,UAAA,KAAA,CAAM,cAAA,EAAe;AACrB,UAAA,IAAI,CAAC,KAAK,KAAA,EAAO;AACf,YAAA,IAAA,CAAK,KAAA,GAAQ,IAAA;AAAA,UACf;AACA,UAAA;AAAA;AACJ,IACF,CAAA;;0BAIEjB,kBAAA,CAkCS,QAAA,EAAA;AAAA,QAjCN,IAAI,KAAA,CAAM,EAAA;AAAA,QACX,KAAA,EAAKC,eAAA,CAAC,6BAAA,EAA6B,EAAA,KAAA,EAUlB,KAAA,CAAM,KAAA,EAAK,CAAA,CAAA;AAAA,QAT5B,IAAA,EAAK,QAAA;AAAA,QACJ,iBAAe,IAAA,CAAA,KAAA;AAAA,QACf,mBAAiB,cAAA,CAAA,KAAA;AAAA,QACjB,oBAAkB,KAAA,CAAM,eAAA;AAAA,QACxB,cAAY,kBAAA,CAAA,KAAA;AAAA,QACZ,gBAAc,KAAA,CAAM,WAAA;AAAA,QACpB,iBAAe,KAAA,CAAM,SAAA;AAAA,QACtB,eAAA,EAAc,QAAA;AAAA,QACb,UAAU,KAAA,CAAM,QAAA;AAAA,QAEhB,OAAA,EAAK,MAAA,CAAA,CAAA,CAAA,KAAA,MAAA,CAAA,CAAA,CAAA,GAAA,CAAA,MAAA,KAAA,CAAG,KAAA,CAAM,QAAA,IAAY,KAAI,OAAA,CAAA,CAAA;AAAA,QAC9B;AAAA;QAEW,MAAM,SAAA,IAAlBC,SAAA,EAAA,EAAAF,kBAAA,CAEO,QAFPY,YAAA,EAEO;AAAA,UADLC,YAAgEO,WAAA,EAAA;AAAA,YAA5C,WAAW,KAAA,CAAM,SAAA;AAAA,YAAW,IAAA,EAAK;AAAA;;QAGvDhB,mBASO,MAAA,EAAA;AAAA,UARJ,EAAA,EAAIC,MAAA,WAAA,CAAA;AAAA,UACL,KAAA,kBAAM,MAAA,EAAM;AAAA,YACoB,WAAA,EAAA,CAAA,KAAA,CAAM,IAAA,IAAI,CAAK,KAAA,CAAM,QAAA;AAAA,YAA2B,SAAA,KAAA,CAAM;AAAA;SAKnF,EAAAM,gBAAA,KAAA,CAAM,IAAA,IAAQ,MAAM,WAAW,CAAA,EAAA,IAAAR,YAAA,CAAA;AAAA,QAGpCC,kBAAA,CAEO,QAFPU,YAAA,EAEO;AAAA,UADLD,YAAqE,OAAA,EAAA;AAAA,YAA3D,IAAA,EAAM,IAAA,CAAA,KAAA,GAAI,YAAA,GAAA,cAAA;AAAA,YAAkC,IAAA,EAAK;AAAA;;;;;;;;;;;;;;;;;;;;;;;AC7FjE,IAAA,MAAM,KAAA,GAAQ,OAAA;AAEd,IAAA,MAAM,UAAA,GAAaI,QAAA,CAAmB,OAAA,EAAA,YAAgB,CAAA;AAEtD,IAAA,MAAM,WAAA,GAAc,IAAI,EAAE,CAAA;AAE1B,IAAA,MAAM,QAAA,GAAW,eAAe,UAAU,CAAA;AAC1C,IAAA,MAAM,gBAAA,GAAmB,eAAe,eAAe,CAAA;AAIvD,IAAA,MAAM,2BAAA,GAA8B,QAAA;AAAA,MAClC,MAAM;AACJ,QAAA,IAAI,CAAC,WAAW,KAAA,EAAO;AACrB,UAAA,OAAO,KAAA,CAAM,cAAA;AAAA,QACf;AAEA,QAAA,MAAM,WAAA,GAAc,MAAM,cAAA,CAAe,IAAA;AAAA,UACvC,CAAC,CAAA,KAAM,CAAA,CAAE,EAAA,KAAO,UAAA,CAAW;AAAA,SAC7B;AACA,QAAA,IAAI,WAAA,EAAa;AACf,UAAA,OAAO,KAAA,CAAM,cAAA;AAAA,QACf;AAEA,QAAA,OAAO;AAAA,UACL;AAAA,YACE,IAAI,UAAA,CAAW,KAAA;AAAA,YACf,MAAM,UAAA,CAAW,KAAA;AAAA,YACjB,OAAA,EAAS;AAAA,WACX;AAAA,UACA,GAAG,KAAA,CAAM;AAAA,SACX;AAAA,MACF;AAAA,KACF;AAEA,IAAA,MAAM,eAAA,GAAkB,SAAS,MAAM;AACrC,MAAA,MAAM,eAAA,GAAkB,WAAA,CAAY,KAAA,CAAM,IAAA,GAAO,WAAA,EAAY;AAE7D,MAAA,MAAM,OAAO,2BAAA,CAA4B,KAAA;AACzC,MAAA,IAAI,eAAA,CAAgB,WAAW,CAAA,EAAG;AAChC,QAAA,OAAO,IAAA;AAAA,MACT;AAEA,MAAA,OAAO,IAAA,CAAK,MAAA;AAAA,QAAO,CAAC,MAAA,KAClB,MAAA,CAAO,KAAK,WAAA,EAAY,CAAE,SAAS,eAAe;AAAA,OACpD;AAAA,IACF,CAAC,CAAA;AAED,IAAA,MAAM,WAAA,GAAc,QAAA;AAAA,MAA0B,MAC5C,eAAA,CAAgB,KAAA,CAAM,GAAA,CAAI,CAAC,MAAA,MAAY;AAAA,QACrC,IAAI,MAAA,CAAO,EAAA;AAAA,QACX,MAAM,MAAA,CAAO,IAAA;AAAA,QACb,SAAS,MAAA,CAAO,OAAA;AAAA,QAChB,WAAW,MAAA,CAAO,SAAA;AAAA,QAClB,QAAA,EAAU,MAAA,CAAO,QAAA,IAAY,MAAA,CAAO,OAAA;AAAA,QACpC,QAAA,EAAU,MAAA,CAAO,EAAA,KAAO,UAAA,CAAW,KAAA;AAAA,QACnC,SAAS,MAAA,CAAO,OAAA;AAAA,QAChB,SAAS,MAAA,CAAO;AAAA,OAClB,CAAE;AAAA,KACJ;AAEA,IAAA,MAAM,YAAA,GAAe,QAAA;AAAA,MAAS,MAC5B,MAAM,cAAA,CAAe,IAAA,CAAK,CAAC,CAAA,KAAM,CAAA,CAAE,YAAY,MAAS;AAAA,KAC1D;AAEA,IAAA,QAAA,CAAa;AAAA,MACX,KAAA,EAAO,MAAM,QAAA,CAAS,KAAA,EAAO,KAAA;AAAM,KACpC,CAAA;;AAIC,MAAA,OAAAf,SAAA,EAAA,EAAAF,kBAAA,CA4BM,KAAA,EA5BNU,YAAA,EA4BM;AAAA,QA3BJN,kBAAA,CAcM,OAdNQ,YAAA,EAcM;AAAA,UAbJC,YAYE,SAAA,EAAA;AAAA,qBAXI,UAAA;AAAA,YAAJ,GAAA,EAAI,QAAA;AAAA,wBACK,WAAA,CAAA,KAAA;AAAA,yEAAA,WAAA,CAAW,KAAA,GAAA,MAAA,CAAA;AAAA,YACpB,IAAA,EAAK,QAAA;AAAA,YACL,WAAA,EAAY,QAAA;AAAA,YACX,YAAA,EAAY,gBAAA;AAAA,YACZ,uBAAA,EAAuB,iBAAA,KAAA,EAAkB,gBAAA;AAAA,YAC1C,cAAA,EAAa,QAAA;AAAA,YACZ,SAAA,EAAW,IAAA;AAAA,YACX,SAAA,EAAO,MAAA,CAAA,CAAA,CAAA,KAAA,MAAA,CAAA,CAAA,CAAA,GAAA,CAAA,MAAA,KAAE,gBAAA,CAAA,KAAA,EAAkB,aAAA,CAAc,MAAM,CAAA,CAAA;AAAA,YAC/C,OAAA,EAAK,MAAA,CAAA,CAAA,CAAA,KAAA,MAAA,CAAA,CAAA,CAAA,GAAA,CAAA,MAAA,KAAE,gBAAA,CAAA,KAAA,EAAkB,WAAA,EAAW,CAAA;AAAA,YACpC,MAAA,EAAI,MAAA,CAAA,CAAA,CAAA,KAAA,MAAA,CAAA,CAAA,CAAA,GAAA,CAAA,MAAA,KAAE,gBAAA,CAAA,KAAA,EAAkB,UAAA,EAAU;AAAA;;QAIvCA,WAAA,CAUER,KAAA,CAAA,gBAAA,CAAA,EAAA;AAAA,UATA,GAAA,EAAI,eAAA;AAAA,UACJ,KAAA,EAAKJ,eAAA,CAAC,6BAAA,EAA6B,EAAA,SAAA,EACd,YAAA,CAAA,KAAA,EAAY,CAAA,CAAA;AAAA,UAChC,iBAAA,EAAiB,KAAA,CAAM,OAAA,QAAe,WAAA,CAAA,KAAA;AAAA,UACtC,SAAS,KAAA,CAAM,OAAA;AAAA,UACf,cAAY,KAAA,CAAM,SAAA;AAAA,UACnB,uBAAA,EAAA,EAAA;AAAA,UACA,YAAA,EAAW,kBAAA;AAAA,UACV,WAAA,EAAU,MAAA,CAAA,CAAA,CAAA,KAAA,MAAA,CAAA,CAAA,CAAA,GAAA,CAAA,MAAA,KAAE,UAAA,CAAA,KAAA,GAAa,MAAA;AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACzFhC,IAAA,MAAM,KAAA,GAAQ,OAAA;AASd,IAAA,MAAM,UAAA,GAAagB,QAAA,CAAmB,OAAA,EAAA,YAAgB,CAAA;AAEtD,IAAA,MAAM,IAAA,GAAO,IAAI,KAAK,CAAA;AACtB,IAAA,MAAM,SAAA,GAAY,eAAe,WAAW,CAAA;AAC5C,IAAA,MAAM,mBAAA,GAAsB,eAAe,qBAAqB,CAAA;AAEhE,IAAA,MAAM,cAAA,GAAiB,QAAA;AAAA,MAAS,MAC9B,MAAM,cAAA,CAAe,IAAA,CAAK,CAAC,CAAA,KAAM,CAAA,CAAE,EAAA,KAAO,UAAA,CAAW,KAAK;AAAA,KAC5D;AAGA,IAAA,WAAA,CAAY,MAAM;AAChB,MAAA,IAAI,KAAK,KAAA,EAAO;AACd,QAAA,QAAA,CAAS,MAAM,mBAAA,CAAoB,KAAA,EAAO,KAAA,EAAO,CAAA;AAAA,MACnD;AAAA,IACF,CAAC,CAAA;AAGD,IAAA,KAAA,CAAM,YAAY,MAAM;AACtB,MAAA,IAAI,KAAK,KAAA,EAAO;AACd,QAAA,IAAA,CAAK,KAAA,GAAQ,KAAA;AAAA,MACf;AAAA,IACF,CAAC,CAAA;;0BAICX,WAAA,CA8CuB,oBAAA,EAAA;AAAA,QA7CpB,IAAI,KAAA,CAAM,EAAA;AAAA,QACV,OAAO,KAAA,CAAM,KAAA;AAAA,QACb,cAAY,KAAA,CAAM,SAAA;AAAA,QAClB,aAAa,KAAA,CAAM,WAAA;AAAA,QACnB,YAAU,KAAA,CAAM,OAAA;AAAA,QAChB,OAAO,KAAA,CAAM,KAAA;AAAA,QACb,YAAY,KAAA,CAAM,UAAA;AAAA,QAClB,2BAAyB,KAAA,CAAM;AAAA;QAErB,OAAA,EAAOsB,OAAA,CAChB,CAgBE,SAAA,KAjByB;AAAA,UAC3Bf,WAAA,CAgBE,YAAA,EAhBFG,UAAA,CAgBE,SAAA,EAfiB;AAAA,YACT,MAAM,IAAA,CAAA,KAAA;AAAA,mEAAA,IAAA,CAAI,KAAA,GAAA,MAAA,CAAA;AAAA,YACjB,IAAA,EAAiB,UAAA,CAAA,KAAA,KAAe,cAAA,CAAA,KAAA,gBAA0C,UAAA,CAAA,KAAU,CAAA,CAAA,GAAiB,cAAA,CAAA,KAAA,EAAgB,IAAA;AAAA,YAKrH,aAAa,KAAA,CAAM,WAAA;AAAA,YACnB,UAAU,KAAA,CAAM,QAAA;AAAA,YAChB,OAAO,KAAA,CAAM,KAAA;AAAA,YACb,SAAO,CAAA,CAAI,UAAA,CAAA,KAAA,IAAU,CAAK,cAAA,CAAA,KAAA;AAAA,YAC1B,SAAA,EAAW,eAAA,KAAA,EAAgB,SAAA;AAAA,YAC3B,KAAA,EAAO,UAAA,KAAA,EAAW,WAAA;AAAA,YAClB,YAAA,EAAY,UAAA,KAAA,EAAW,SAAA;AAAA,YACvB,OAAA,EAAK,MAAA,CAAA,CAAA,CAAA,KAAA,MAAA,CAAA,CAAA,CAAA,GAAA,CAAA,MAAA,KAAE,IAAA,CAAA,KAAA,GAAI,CAAI,IAAA,CAAA,KAAA;AAAA;UAGlBH,YAea,UAAA,EAAA;AAAA,qBAdP,WAAA;AAAA,YAAJ,GAAA,EAAI,SAAA;AAAA,wBACK,IAAA,CAAA,KAAA;AAAA,yEAAA,IAAA,CAAI,KAAA,GAAA,MAAA,CAAA;AAAA,YACb,SAAA,EAAU,aAAA;AAAA,YACV,IAAA,EAAK,QAAA;AAAA,YACL,YAAA,EAAA,EAAA;AAAA,YACA,oBAAA,EAAmB;AAAA;6BAEnB,MAME;AAAA,cANFA,YAME,iBAAA,EAAA;AAAA,yBALI,qBAAA;AAAA,gBAAJ,GAAA,EAAI,mBAAA;AAAA,4BACK,UAAA,CAAA,KAAA;AAAA,6EAAA,UAAA,CAAU,KAAA,GAAA,MAAA,CAAA;AAAA,gBAClB,mBAAiB,KAAA,CAAM,cAAA;AAAA,gBACvB,SAAS,KAAA,CAAM,OAAA;AAAA,gBAChB,YAAA,EAAW;AAAA;;;;;;;;;;;;;;;;;;;;;;ACtFrB,IAAA,MAAM,KAAA,GAAQ,OAAA;AAId,IAAA,MAAM,IAAA,GAAO,MAAA;AAOb,IAAA,MAAM,OAAA,GAAU,eAAe,SAAS,CAAA;AACxC,IAAA,MAAM,EAAE,WAAA,EAAa,gBAAA,EAAiB,GAAI,kBAAkB,OAAO,CAAA;;0BAIjEb,kBAAA,CAmBS,QAAA,EAAA;AAAA,QAlBP,IAAA,EAAK,QAAA;AAAA,QACJ,UAAU,KAAA,CAAM,QAAA;AAAA,QACjB,KAAA,EAAM,sBAAA;AAAA,QACL,OAAA,EAAK,MAAA,CAAA,CAAA,CAAA,KAAA,MAAA,CAAA,CAAA,CAAA,GAAA,CAAA,MAAA,KAAE,IAAA,CAAI,OAAA,EAAU,MAAM,CAAA;AAAA;QAE5Ba,WAAA,CAIER,KAAA,CAAA,OAAA,CAAA,EAAA;AAAA,UAHC,MAAM,KAAA,CAAM,WAAA;AAAA,UACb,IAAA,EAAK,OAAA;AAAA,UACJ,UAAU,KAAA,CAAM;AAAA;QAGnBD,mBAMO,MAAA,EAAA;AAAA,mBALD,SAAA;AAAA,UAAJ,GAAA,EAAI,OAAA;AAAA,UACJ,KAAA,EAAM,OAAA;AAAA,UACL,KAAA,EAAOC,KAAA,CAAA,gBAAA,CAAA,GAAmB,MAAM,KAAA,GAAQ;AAAA,WAEtCM,eAAA,CAAA,KAAA,CAAM,KAAK,CAAA,EAAA,GAAAC,YAAA;AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;AC5BpB,IAAA,MAAM,gBAAA,GAAmB,CAAA,cAAA,EAAiB,KAAA,EAAO,CAAA,EAAA,CAAA;AAEjD,IAAA,MAAM,KAAA,GAAQ,OAAA;AAQd,IAAA,MAAM,IAAA,GAAO,MAAA;AAKb,IAAA,MAAM,UAAA,GAAaK,QAAA,sBAA2C,CAAA;AAE9D,IAAA,MAAM,WAAA,GAAcA,QAAA,CAAmB,OAAA,EAAC,aAA8B,CAAA;AACtE,IAAA,MAAM,QAAA,GAAW,eAAe,UAAU,CAAA;AAC1C,IAAA,MAAM,gBAAA,GAAmB,eAAe,eAAe,CAAA;AAGvD,IAAA,MAAM,kBAAA,GAAqB,GAAA,iBAAI,IAAI,GAAA,EAAa,CAAA;AAEhD,IAAA,MAAM,QAAA,GAAW,QAAA,CAAS,MAAM,IAAI,GAAA,CAAI,KAAA,CAAM,cAAA,CAAe,GAAA,CAAI,CAAC,CAAA,KAAM,CAAA,CAAE,EAAE,CAAC,CAAC,CAAA;AAE9E,IAAA,MAAM,uBAAA,GAA0B,QAAA;AAAA,MAA8B,MAC5D,WAAW,KAAA,CACR,MAAA,CAAO,CAAC,EAAA,KAAO,CAAC,SAAS,KAAA,CAAM,GAAA,CAAI,EAAE,CAAC,CAAA,CACtC,IAAI,CAAC,EAAA,MAAQ,EAAE,EAAA,EAAI,IAAA,EAAM,IAAG,CAAE;AAAA,KACnC;AAEA,IAAA,MAAM,eAAA,GAAkB,SAA8B,MAAM;AAC1D,MAAA,MAAM,eAAA,GAAkB,WAAA,CAAY,KAAA,CAAM,IAAA,GAAO,WAAA,EAAY;AAE7D,MAAA,IAAI,eAAA,CAAgB,WAAW,CAAA,EAAG;AAChC,QAAA,OAAO,KAAA,CAAM,cAAA;AAAA,MACf;AAEA,MAAA,OAAO,MAAM,cAAA,CAAe,MAAA;AAAA,QAAO,CAAC,MAAA,KAClC,MAAA,CAAO,KAAK,WAAA,EAAY,CAAE,SAAS,eAAe;AAAA,OACpD;AAAA,IACF,CAAC,CAAA;AAED,IAAA,MAAM,cAAA,GAAiB,SAAS,MAAM;AACpC,MAAA,MAAM,OAAA,GAAU,WAAA,CAAY,KAAA,CAAM,IAAA,EAAK;AACvC,MAAA,IAAI,CAAC,KAAA,CAAM,cAAA,IAAkB,OAAA,CAAQ,WAAW,CAAA,EAAG;AACjD,QAAA,OAAO,KAAA;AAAA,MACT;AACA,MAAA,MAAM,KAAA,GAAQ,QAAQ,WAAA,EAAY;AAClC,MAAA,MAAM,eAAA,GAAkB,MAAM,cAAA,CAAe,IAAA;AAAA,QAC3C,CAAC,CAAA,KAAM,CAAA,CAAE,IAAA,CAAK,aAAY,KAAM;AAAA,OAClC;AACA,MAAA,MAAM,WAAA,GAAc,QAAA,CAAS,KAAA,CAAM,GAAA,CAAI,OAAO,CAAA;AAC9C,MAAA,MAAM,eAAA,GAAkB,UAAA,CAAW,KAAA,CAAM,QAAA,CAAS,OAAO,CAAA;AACzD,MAAA,OAAO,CAAC,eAAA,IAAmB,CAAC,WAAA,IAAe,CAAC,eAAA;AAAA,IAC9C,CAAC,CAAA;AAED,IAAA,MAAM,WAAA,GAAc,SAA0B,MAAM;AAClD,MAAA,MAAM,WAAA,GAAc,IAAI,GAAA,CAAI,UAAA,CAAW,KAAK,CAAA;AAE5C,MAAA,MAAM,UAAA,GAA8B,eAAe,KAAA,GAC/C;AAAA,QACE;AAAA,UACE,EAAA,EAAI,gBAAA;AAAA,UACJ,IAAA,EAAM,WAAA,CAAY,KAAA,CAAM,IAAA,EAAK;AAAA,UAC7B,SAAA,EAAW,EAAE,IAAA,EAAM,MAAA,EAAQ,MAAM,MAAA,EAAO;AAAA,UACxC,SAAA,EAAW;AAAA;AACb,UAEF,EAAC;AAEL,MAAA,MAAM,YAAA,GAAgC,wBAAwB,KAAA,CAAM,GAAA;AAAA,QAClE,CAAC,MAAA,MAAY;AAAA,UACX,IAAI,MAAA,CAAO,EAAA;AAAA,UACX,MAAM,MAAA,CAAO,IAAA;AAAA,UACb,QAAA,EAAU,IAAA;AAAA,UACV,OAAA,EAAS;AAAA,SACX;AAAA,OACF;AAEA,MAAA,MAAM,YAAA,GAAgC,eAAA,CAAgB,KAAA,CACnD,GAAA,CAAI,CAAC,MAAA,MAAY;AAAA,QAChB,IAAI,MAAA,CAAO,EAAA;AAAA,QACX,MAAM,MAAA,CAAO,IAAA;AAAA,QACb,SAAS,MAAA,CAAO,OAAA;AAAA,QAChB,SAAS,MAAA,CAAO,OAAA;AAAA,QAChB,WAAW,MAAA,CAAO,SAAA;AAAA,QAClB,QAAA,EAAU,WAAA,CAAY,GAAA,CAAI,MAAA,CAAO,EAAE,CAAA;AAAA,QACnC,UAAU,MAAA,CAAO;AAAA,OACnB,CAAE,CAAA,CACD,KAAA,EAAM,CACN,IAAA;AAAA,QACC,CAAC,CAAA,EAAG,CAAA,KACF,MAAA,CAAO,kBAAA,CAAmB,MAAM,GAAA,CAAI,CAAA,CAAE,EAAE,CAAC,IACzC,MAAA,CAAO,kBAAA,CAAmB,MAAM,GAAA,CAAI,CAAA,CAAE,EAAE,CAAC;AAAA,OAC7C;AAEF,MAAA,OAAO,CAAC,GAAG,UAAA,EAAY,GAAG,YAAA,EAAc,GAAG,YAAY,CAAA;AAAA,IACzD,CAAC,CAAA;AAED,IAAA,MAAM,iBAAA,GAAoB,QAAA;AAAA,MAAS,MACjC,eAAA,CAAgB,KAAA,CAAM,MAAA,CAAO,CAAC,CAAA,KAAM,CAAC,CAAA,CAAE,QAAQ,CAAA,CAAE,GAAA,CAAI,CAAC,CAAA,KAAM,EAAE,EAAE;AAAA,KAClE;AAEA,IAAA,MAAM,kBAAA,GAAqB,QAAA;AAAA,MAAS,MAClC,iBAAA,CAAkB,KAAA,CAAM,IAAA,CAAK,CAAC,OAAO,UAAA,CAAW,KAAA,CAAM,QAAA,CAAS,EAAE,CAAC;AAAA,KACpE;AAEA,IAAA,MAAM,WAAA,GAAc,CAAC,EAAA,KAAe;AAClC,MAAA,IAAI,OAAO,gBAAA,EAAkB;AAC3B,QAAA,MAAM,OAAA,GAAU,WAAA,CAAY,KAAA,CAAM,IAAA,EAAK;AACvC,QAAA,IAAI,OAAA,CAAQ,SAAS,CAAA,EAAG;AACtB,UAAA,IAAA,CAAK,YAAY,OAAO,CAAA;AACxB,UAAA,WAAA,CAAY,KAAA,GAAQ,EAAA;AAAA,QACtB;AACA,QAAA;AAAA,MACF;AACA,MAAA,UAAA,CAAW,QAAQ,UAAA,CAAW,KAAA,CAAM,SAAS,EAAE,CAAA,GAC3C,WAAW,KAAA,CAAM,MAAA,CAAO,CAAC,OAAA,KAAY,YAAY,EAAE,CAAA,GACnD,CAAC,GAAG,UAAA,CAAW,OAAO,EAAE,CAAA;AAAA,IAC9B,CAAA;AAEA,IAAA,MAAM,wBAAwB,MAAM;AAClC,MAAA,MAAM,GAAA,GAAM,IAAI,GAAA,CAAI,iBAAA,CAAkB,KAAK,CAAA;AAC3C,MAAA,IAAI,mBAAmB,KAAA,EAAO;AAC5B,QAAA,UAAA,CAAW,KAAA,GAAQ,UAAA,CAAW,KAAA,CAAM,MAAA,CAAO,CAAC,OAAO,CAAC,GAAA,CAAI,GAAA,CAAI,EAAE,CAAC,CAAA;AAAA,MACjE,CAAA,MAAO;AACL,QAAA,MAAM,eAAA,GAAkB,IAAI,GAAA,CAAI,UAAA,CAAW,KAAK,CAAA;AAChD,QAAA,MAAM,KAAA,GAAQ,kBAAkB,KAAA,CAAM,MAAA;AAAA,UACpC,CAAC,EAAA,KAAO,CAAC,eAAA,CAAgB,IAAI,EAAE;AAAA,SACjC;AACA,QAAA,UAAA,CAAW,QAAQ,CAAC,GAAG,UAAA,CAAW,KAAA,EAAO,GAAG,KAAK,CAAA;AAAA,MACnD;AAAA,IACF,CAAA;AAEA,IAAA,QAAA,CAAa;AAAA,MACX,OAAO,MAAM;AACX,QAAA,kBAAA,CAAmB,KAAA,GAAQ,IAAI,GAAA,CAAI,UAAA,CAAW,KAAK,CAAA;AACnD,QAAA,QAAA,CAAS,OAAO,KAAA,EAAM;AAAA,MACxB;AAAA,KACD,CAAA;;AAIC,MAAA,OAAAf,SAAA,EAAA,EAAAF,kBAAA,CA0CM,KAAA,EA1CNU,YAAA,EA0CM;AAAA,QAzCJN,kBAAA,CAcM,OAdNQ,YAAA,EAcM;AAAA,UAbJC,YAYE,SAAA,EAAA;AAAA,qBAXI,UAAA;AAAA,YAAJ,GAAA,EAAI,QAAA;AAAA,wBACK,WAAA,CAAA,KAAA;AAAA,yEAAA,WAAA,CAAW,KAAA,GAAA,MAAA,CAAA;AAAA,YACpB,IAAA,EAAK,QAAA;AAAA,YACL,WAAA,EAAY,QAAA;AAAA,YACX,YAAA,EAAY,gBAAA;AAAA,YACZ,uBAAA,EAAuB,iBAAA,KAAA,EAAkB,gBAAA;AAAA,YAC1C,cAAA,EAAa,QAAA;AAAA,YACZ,SAAA,EAAW,IAAA;AAAA,YACX,SAAA,EAAO,MAAA,CAAA,CAAA,CAAA,KAAA,MAAA,CAAA,CAAA,CAAA,GAAA,CAAA,MAAA,KAAE,gBAAA,CAAA,KAAA,EAAkB,aAAA,CAAc,MAAM,CAAA,CAAA;AAAA,YAC/C,OAAA,EAAK,MAAA,CAAA,CAAA,CAAA,KAAA,MAAA,CAAA,CAAA,CAAA,GAAA,CAAA,MAAA,KAAE,gBAAA,CAAA,KAAA,EAAkB,WAAA,EAAW,CAAA;AAAA,YACpC,MAAA,EAAI,MAAA,CAAA,CAAA,CAAA,KAAA,MAAA,CAAA,CAAA,CAAA,GAAA,CAAA,MAAA,KAAE,gBAAA,CAAA,KAAA,EAAkB,UAAA,EAAU;AAAA;;QAIvCA,WAAA,CAYER,KAAA,CAAA,gBAAA,CAAA,EAAA;AAAA,UAXA,GAAA,EAAI,eAAA;AAAA,UACJ,KAAA,kBAAM,gCAAA,EAAgC;AAAA,uBACT,MAAM,cAAA,CAAe,IAAA,CAAI,CAAE,CAAA,KAAM,CAAA,CAAE,YAAY,MAAS;AAAA;UAGpF,iBAAA,EAAiB,KAAA,CAAM,OAAA,QAAe,WAAA,CAAA,KAAA;AAAA,UACtC,SAAS,KAAA,CAAM,OAAA;AAAA,UACf,cAAY,KAAA,CAAM,SAAA;AAAA,UACnB,uBAAA,EAAA,EAAA;AAAA,UACA,YAAA,EAAW,kBAAA;AAAA,UACV;AAAA;QAIM,CAAA,KAAA,CAAM,OAAA,IAAW,iBAAA,CAAA,KAAA,CAAkB,MAAA,GAAM,CAAA,IADlDH,SAAA,EAAA,EAAAF,kBAAA,CAUM,KAAA,EAVNG,YAAA,EAUM;AAAA,UANJU,WAAA,CAKER,KAAA,CAAA,iBAAA,CAAA,EAAA;AAAA,YAJC,KAAA,EAAO,kBAAA,CAAA,KAAA,GAAkB,WAAA,GAAA,YAAA;AAAA,YACzB,cAAA,EAAc,kBAAA,CAAA,KAAA,GAAkB,OAAA,GAAA,WAAA;AAAA,YAChC,UAAU,eAAA,OAAgB,OAAO,CAAA,KAAM,EAAE,QAAQ,CAAA;AAAA,YACjD,OAAA,EAAO;AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACpLhB,IAAA,MAAM,KAAA,GAAQ,OAAA;AAUd,IAAA,MAAM,UAAA,GAAaY,QAAA,sBAA2C,CAAA;AAE9D,IAAA,MAAM,IAAA,GAAO,IAAI,KAAK,CAAA;AACtB,IAAA,MAAM,mBAAA,GAAsB,eAAe,qBAAqB,CAAA;AAChE,IAAA,MAAM,SAAA,GAAY,eAAe,WAAW,CAAA;AAE5C,IAAA,WAAA,CAAY,MAAM;AAChB,MAAA,IAAI,KAAK,KAAA,EAAO;AACd,QAAA,QAAA,CAAS,MAAM,mBAAA,CAAoB,KAAA,EAAO,KAAA,EAAO,CAAA;AAAA,MACnD;AAAA,IACF,CAAC,CAAA;AAGD,IAAA,MAAM,YAAA,GAAe,GAAA,CAAyB,EAAE,CAAA;AAOhD,IAAA,KAAA;AAAA,MACE,CAAC,MAAM,KAAA,CAAM,cAAA,EAAgB,MAAM,MAAM,cAAc,CAAA;AAAA,MACvD,CAAC,GAAG,QAAQ,CAAA,KAAM;AAChB,QAAA,IAAI,CAAC,QAAA,EAAU;AACb,UAAA,YAAA,CAAa,QAAQ,EAAC;AAAA,QACxB;AAAA,MACF;AAAA,KACF;AAEA,IAAA,MAAM,iBAAA,GAAoB,SAAS,MAAM;AACvC,MAAA,MAAM,OAAA,GAAU,IAAI,GAAA,CAAI,KAAA,CAAM,cAAA,CAAe,IAAI,CAAC,CAAA,KAAM,CAAA,CAAE,EAAE,CAAC,CAAA;AAC7D,MAAA,MAAM,OAAA,GAAU,YAAA,CAAa,KAAA,CAAM,MAAA,CAAO,CAAC,CAAA,KAAM,CAAC,OAAA,CAAQ,GAAA,CAAI,CAAA,CAAE,EAAE,CAAC,CAAA;AACnE,MAAA,OAAO,CAAC,GAAG,KAAA,CAAM,cAAA,EAAgB,GAAG,OAAO,CAAA;AAAA,IAC7C,CAAC,CAAA;AAED,IAAA,MAAM,UAAA,GAAa,QAAA;AAAA,MACjB,MAAM,IAAI,GAAA,CAAI,iBAAA,CAAkB,KAAA,CAAM,GAAA,CAAI,CAAC,IAAA,KAAS,CAAC,IAAA,CAAK,EAAA,EAAI,IAAI,CAAC,CAAC;AAAA,KACtE;AAEA,IAAA,MAAM,UAAA,GAAa,QAAA;AAAA,MAAS,MAC1B,UAAA,CAAW,KAAA,CAAM,MAAA,CAAO,CAAC,EAAA,KAAO,CAAC,UAAA,CAAW,KAAA,CAAM,GAAA,CAAI,EAAE,CAAC;AAAA,KAC3D;AAEA,IAAA,MAAM,OAAA,GAAU,SAAS,MAAM;AAC7B,MAAA,IAAI,UAAA,CAAW,KAAA,CAAM,MAAA,KAAW,CAAA,EAAG;AACjC,QAAA,OAAO,MAAA;AAAA,MACT;AAEA,MAAA,IAAI,UAAA,CAAW,KAAA,CAAM,MAAA,GAAS,CAAA,EAAG;AAC/B,QAAA,OAAO,CAAA,UAAA,EAAa,UAAA,CAAW,KAAA,CAAM,CAAC,CAAC,CAAA,CAAA;AAAA,MACzC;AAEA,MAAA,IAAI,UAAA,CAAW,KAAA,CAAM,MAAA,KAAW,CAAA,EAAG;AACjC,QAAA,OAAO,WAAW,KAAA,CAAM,GAAA,CAAI,WAAW,KAAA,CAAM,CAAC,CAAC,CAAA,EAAG,IAAA;AAAA,MACpD;AAEA,MAAA,OAAO,aAAa,UAAA,CAAW,KAAA,CAAM,MAAM,CAAA,CAAA,EAAI,iBAAA,CAAkB,MAAM,MAAM,CAAA,CAAA,CAAA;AAAA,IAC/E,CAAC,CAAA;AAED,IAAA,MAAM,UAAA,GAAa,CAAC,IAAA,KAAiB;AACnC,MAAA,YAAA,CAAa,KAAA,GAAQ,CAAC,GAAG,YAAA,CAAa,OAAO,EAAE,EAAA,EAAI,IAAA,EAAM,IAAA,EAAM,CAAA;AAC/D,MAAA,UAAA,CAAW,KAAA,GAAQ,CAAC,GAAG,UAAA,CAAW,OAAO,IAAI,CAAA;AAAA,IAC/C,CAAA;;0BAIEX,WAAA,CA2CuB,oBAAA,EAAA;AAAA,QA1CpB,IAAI,KAAA,CAAM,EAAA;AAAA,QACV,OAAO,KAAA,CAAM,KAAA;AAAA,QACb,cAAY,KAAA,CAAM,SAAA;AAAA,QAClB,aAAa,KAAA,CAAM,WAAA;AAAA,QACnB,YAAU,KAAA,CAAM,OAAA;AAAA,QAChB,OAAO,KAAA,CAAM,KAAA;AAAA,QACb,YAAY,KAAA,CAAM,UAAA;AAAA,QAClB,2BAAyB,KAAA,CAAM;AAAA;QAErB,OAAA,EAAOsB,OAAA,CAChB,CAWE,SAAA,KAZyB;AAAA,UAC3Bf,WAAA,CAWE,YAAA,EAXFG,UAAA,CAWE,SAAA,EAViB;AAAA,YACT,MAAM,IAAA,CAAA,KAAA;AAAA,mEAAA,IAAA,CAAI,KAAA,GAAA,MAAA,CAAA;AAAA,YACjB,MAAM,OAAA,CAAA,KAAA;AAAA,YACN,aAAa,KAAA,CAAM,WAAA;AAAA,YACnB,UAAU,KAAA,CAAM,QAAA;AAAA,YAChB,OAAO,KAAA,CAAM,KAAA;AAAA,YACb,OAAA,EAAS,UAAA,CAAA,KAAA,CAAW,MAAA,GAAM,CAAA;AAAA,YAC1B,KAAA,EAAO,UAAA,KAAA,EAAW,WAAA;AAAA,YAClB,YAAA,EAAY,UAAA,KAAA,EAAW,SAAA;AAAA,YACvB,OAAA,EAAK,MAAA,CAAA,CAAA,CAAA,KAAA,MAAA,CAAA,CAAA,CAAA,GAAA,CAAA,MAAA,KAAE,IAAA,CAAA,KAAA,GAAI,CAAI,IAAA,CAAA,KAAA;AAAA;UAGlBH,YAiBa,UAAA,EAAA;AAAA,qBAhBP,WAAA;AAAA,YAAJ,GAAA,EAAI,SAAA;AAAA,wBACK,IAAA,CAAA,KAAA;AAAA,yEAAA,IAAA,CAAI,KAAA,GAAA,MAAA,CAAA;AAAA,YACb,SAAA,EAAU,aAAA;AAAA,YACV,IAAA,EAAK,QAAA;AAAA,YACL,YAAA,EAAA,EAAA;AAAA,YACA,oBAAA,EAAmB;AAAA;6BAEnB,MAQE;AAAA,cARFA,YAQE,4BAAA,EAAA;AAAA,yBAPI,qBAAA;AAAA,gBAAJ,GAAA,EAAI,mBAAA;AAAA,4BACK,UAAA,CAAA,KAAA;AAAA,6EAAA,UAAA,CAAU,KAAA,GAAA,MAAA,CAAA;AAAA,gBAClB,mBAAiB,iBAAA,CAAA,KAAA;AAAA,gBACjB,SAAS,KAAA,CAAM,OAAA;AAAA,gBACf,oBAAkB,KAAA,CAAM,cAAA;AAAA,gBACzB,YAAA,EAAW,kBAAA;AAAA,gBACV;AAAA;;;;;;;;;;;;;;;;;;AC/HX,IAAA,MAAM,KAAA,GAAQ,OAAA;;AASZ,MAAA,OAAAX,SAAA,EAAA,EAAAF,kBAAA,CAEM,KAAA,EAFNU,YAAA,EAEM;AAAA,QADJK,WAAgC,IAAA,wBAAhC,MAAgC;AAAA,UAAvBkF,eAAA,CAAAtF,eAAA,CAAA,KAAA,CAAM,OAAO,GAAA,CAAA;AAAA;;;;;;;;;ACE1B,MAAM,KAAA,GAAQ,4BAAA;;;;;;;;;;;;AAJd,IAAA,MAAM,KAAA,GAAQ,OAAA;AAMd,IAAA,MAAM,UAAA,GAAaM,QAAA,sBAAuC,CAAA;AAC1D,IAAA,MAAM,SAAA,GAAY,eAAe,WAAW,CAAA;AAC5C,IAAA,MAAM,SAAA,GAAY,IAAI,KAAK,CAAA;AAC3B,IAAA,MAAM,SAAA,GAAY,IAAI,KAAK,CAAA;;;QAIzBb,kBAAA,CAsBS,QAAA,EAtBTY,UAAA,CAsBS,IAAA,CAAA,MAAA,EArBO;AAAA,UACb,KAAA,EAAK;AAAA;sBAAsD,UAAA,CAAA,KAAA;AAAA,YAA0B,MAAA,EAAA,KAAA,CAAM,MAAA,IAAM,CAAK,UAAA,UAAU,CAAK,SAAA,CAAA,KAAA,KAAc,SAAA,CAAA;AAAA;UAKnI,KAAA,EAAO,KAAA;AAAA,UACP,YAAA,EAAY,KAAA;AAAA,UACZ,gBAAc,UAAA,CAAA,KAAA;AAAA,UACd,iBAAe,UAAA,CAAA,KAAA;AAAA,UACf,eAAA,EAAe,UAAA,KAAA,EAAW,SAAA;AAAA,UAC3B,eAAA,EAAc,QAAA;AAAA,UACb,KAAA,EAAO,UAAA,KAAA,EAAW,WAAA;AAAA,UACnB,IAAA,EAAK,QAAA;AAAA,UACJ,OAAA,EAAK,MAAA,CAAA,CAAA,CAAA,KAAA,MAAA,CAAA,CAAA,CAAA,GAAA,CAAA,MAAA,KAAE,UAAA,CAAA,KAAA,GAAU,CAAI,UAAA,CAAA,KAAA,CAAA;AAAA,UACrB,YAAA,wCAAY,SAAA,CAAA,KAAA,GAAS,IAAA,CAAA;AAAA,UACrB,YAAA,wCAAY,SAAA,CAAA,KAAA,GAAS,KAAA,CAAA;AAAA,UACrB,OAAA,wCAAO,SAAA,CAAA,KAAA,GAAS,IAAA,CAAA;AAAA,UAChB,MAAA,wCAAM,SAAA,CAAA,KAAA,GAAS,KAAA;AAAA;UAEhBH,YAA+C,OAAA,EAAA;AAAA,YAAtC,IAAA,EAAK,iBAAA;AAAA,YAAkB,IAAA,EAAK;AAAA;;QAGvCA,YAUa,UAAA,EAAA;AAAA,mBATP,WAAA;AAAA,UAAJ,GAAA,EAAI,SAAA;AAAA,sBACK,UAAA,CAAA,KAAA;AAAA,uEAAA,UAAA,CAAU,KAAA,GAAA,MAAA,CAAA;AAAA,UACnB,SAAA,EAAU,WAAA;AAAA,UACV,IAAA,EAAK,QAAA;AAAA,UACL,oBAAA,EAAmB;AAAA;2BAEnB,MAEc;AAAA,YAFdA,YAEc,WAAA,EAAA;AAAA,cAFA,SAAS,KAAA,CAAM;AAAA;+BAC3B,MAAQ;AAAA,gBAARE,WAAQ,IAAA,CAAA,MAAA,EAAA,WAAA,EAAA,EAAA,QAAA,IAAA;AAAA;;;;;;;;;;;;;;;;;;;;;;;;;ACtDd,IAAA,MAAM,KAAA,GAAQ,OAAA;;AASZ,MAAA,OAAAb,SAAA,EAAA,EAAAF,kBAAA,CAEM,KAAA,EAFNU,YAAA,EAEM;AAAA,QADJK,WAAgC,IAAA,wBAAhC,MAAgC;AAAA,UAAvBkF,eAAA,CAAAtF,eAAA,CAAA,KAAA,CAAM,OAAO,GAAA,CAAA;AAAA;;;;;;;;;;;;;;;;;;;;;;;ACD1B,IAAA,MAAM,KAAA,GAAQ,OAAA;AAOd,IAAA,MAAM,UAAA,GAAaM,QAAA,sBAAuC,CAAA;AAC1D,IAAA,MAAM,SAAA,GAAY,eAAe,WAAW,CAAA;AAC5C,IAAA,MAAM,SAAA,GAAY,IAAI,KAAK,CAAA;AAC3B,IAAA,MAAM,SAAA,GAAY,IAAI,KAAK,CAAA;AAE3B,IAAA,MAAM,SAAA,GAAY,SAAS,MAAM;AAC/B,MAAA,IAAI,KAAA,CAAM,KAAA,IAAS,KAAA,CAAM,MAAA,EAAQ;AAC/B,QAAA,OAAO,QAAA;AAAA,MACT;AAEA,MAAA,IAAI,MAAM,KAAA,EAAO;AACf,QAAA,OAAO,IAAA;AAAA,MACT;AAEA,MAAA,IAAI,MAAM,MAAA,EAAQ;AAChB,QAAA,OAAO,KAAA;AAAA,MACT;AAEA,MAAA,OAAO,MAAA;AAAA,IACT,CAAC,CAAA;AAED,IAAA,MAAM,QAAA,GAAW,SAAS,MAAM;AAC9B,MAAA,QAAQ,UAAU,KAAA;AAAO,QACvB,KAAK,IAAA;AACH,UAAA,OAAO,kBAAA;AAAA,QACT,KAAK,KAAA;AACH,UAAA,OAAO,mBAAA;AAAA,QACT,KAAK,QAAA;AACH,UAAA,OAAO,sBAAA;AAAA,QACT,KAAK,MAAA;AAAA,QACL;AACE,UAAA,OAAO,uBAAA;AAAA;AACX,IACF,CAAC,CAAA;AAED,IAAA,MAAM,gBAAA,GAA2D;AAAA,MAC/D,EAAA,EAAI,qBAAA;AAAA,MACJ,GAAA,EAAK,sBAAA;AAAA,MACL,QAAA,EAAU,gCAAA;AAAA,MACV,IAAA,EAAM;AAAA,KACR;AAEA,IAAA,MAAM,iBAAA,GAAqE;AAAA,MACzE,EAAA,EAAI,8BAAA;AAAA,MACJ,GAAA,EAAK,+BAAA;AAAA,MACL,QAAA,EAAU;AAAA,KACZ;AAEA,IAAA,MAAM,KAAA,GAAQ,SAAS,MAAM;AAC3B,MAAA,MAAM,SAAA,GAAY,gBAAA,CAAiB,SAAA,CAAU,KAAK,CAAA;AAClD,MAAA,IAAI,CAAC,MAAM,KAAA,EAAO;AAChB,QAAA,OAAO,SAAA;AAAA,MACT;AACA,MAAA,OAAO,iBAAA,CAAkB,SAAA,CAAU,KAAK,CAAA,IAAK,SAAA;AAAA,IAC/C,CAAC,CAAA;;;QAICb,kBAAA,CAuBS,QAAA,EAvBTY,UAAA,CAuBS,IAAA,CAAA,MAAA,EAtBO;AAAA,UACb,KAAA,EAAK;AAAA;YAAuD,OAAA,KAAA,CAAM,KAAA;AAAA,YAA+B,gBAAA,EAAA,UAAA,CAAA,KAAA,IAAc,KAAA,CAAM,SAAS,KAAA,CAAM,MAAA;AAAA,YAAsB,MAAA,EAAA,KAAA,CAAM,MAAA,IAAM,CAAK,UAAA,UAAU,CAAK,SAAA,CAAA,KAAA,KAAc,SAAA,CAAA;AAAA;UAMxM,OAAO,KAAA,CAAA,KAAA;AAAA,UACP,cAAY,KAAA,CAAA,KAAA;AAAA,UACZ,gBAAc,UAAA,CAAA,KAAA;AAAA,UACd,iBAAe,UAAA,CAAA,KAAA;AAAA,UACf,eAAA,EAAe,UAAA,KAAA,EAAW,SAAA;AAAA,UAC3B,eAAA,EAAc,QAAA;AAAA,UACb,KAAA,EAAO,UAAA,KAAA,EAAW,WAAA;AAAA,UACnB,IAAA,EAAK,QAAA;AAAA,UACJ,OAAA,EAAK,MAAA,CAAA,CAAA,CAAA,KAAA,MAAA,CAAA,CAAA,CAAA,GAAA,CAAA,MAAA,KAAE,UAAA,CAAA,KAAA,GAAU,CAAI,UAAA,CAAA,KAAA,CAAA;AAAA,UACrB,YAAA,wCAAY,SAAA,CAAA,KAAA,GAAS,IAAA,CAAA;AAAA,UACrB,YAAA,wCAAY,SAAA,CAAA,KAAA,GAAS,KAAA,CAAA;AAAA,UACrB,OAAA,wCAAO,SAAA,CAAA,KAAA,GAAS,IAAA,CAAA;AAAA,UAChB,MAAA,wCAAM,SAAA,CAAA,KAAA,GAAS,KAAA;AAAA;UAEhBH,YAAyC,OAAA,EAAA;AAAA,YAA/B,MAAM,QAAA,CAAA,KAAA;AAAA,YAAU,IAAA,EAAK;AAAA;;QAGjCA,YAUa,UAAA,EAAA;AAAA,mBATP,WAAA;AAAA,UAAJ,GAAA,EAAI,SAAA;AAAA,sBACK,UAAA,CAAA,KAAA;AAAA,uEAAA,UAAA,CAAU,KAAA,GAAA,MAAA,CAAA;AAAA,UACnB,SAAA,EAAU,cAAA;AAAA,UACV,IAAA,EAAK,QAAA;AAAA,UACL,oBAAA,EAAmB;AAAA;2BAEnB,MAEkB;AAAA,YAFK,UAAA,CAAA,KAAA,iBAAvBP,YAEkB,eAAA,EAAA;AAAA;cAFkB,SAAS,KAAA,CAAM;AAAA;+BACjD,MAAQ;AAAA,gBAARS,WAAQ,IAAA,CAAA,MAAA,EAAA,WAAA,EAAA,EAAA,QAAA,IAAA;AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;AC9Fd,IAAA,MAAM,UAAA,GAAaE,QAAA,sBAAuC,CAAA;AAE1D,IAAA,MAAM,IAAA,GAAO,MAAA;AAUb,IAAA,MAAM,WAAW,QAAA,CAAS,MAAM,UAAA,CAAW,KAAA,IAAS,QAAA,UAAU,CAAA;AAE9D,IAAA,MAAM,WAAA,GAAc,CAAC,KAAA,KAAsB;AACzC,MAAA,IAAI,QAAA,UAAA,EAAY;AACd,QAAA,UAAA,CAAW,KAAA,GAAQ,CAAC,UAAA,CAAW,KAAA;AAAA,MACjC,CAAA,MAAO;AACL,QAAA,IAAA,CAAK,SAAS,KAAK,CAAA;AAAA,MACrB;AAAA,IACF,CAAA;;0BAIEjB,kBAAA,CAWS,QAAA,EAAA;AAAA,QAVP,IAAA,EAAK,QAAA;AAAA,QACL,KAAA,EAAKC,cAAA,CAAA,CAAC,UAAA,EAAU,CAAA,CAAA,QAAA,EACI,OAAA,CAAA,OAAO,CAAA,CAAA,cAAgB,QAAA,CAAA,KAAA,EAAQ,CAAA,CAAA,CAAA;AAAA,QAClD,cAAY,OAAA,CAAA,SAAA;AAAA,QACZ,mBAAiB,OAAA,CAAA,cAAA;AAAA,QACjB,cAAA,EAAc,OAAA,CAAA,UAAA,GAAa,UAAA,CAAA,KAAA,GAAa,MAAA;AAAA,QACxC,UAAU,OAAA,CAAA,QAAA;AAAA,QACV,OAAA,EAAO;AAAA;QAERc,WAAQ,IAAA,CAAA,MAAA,EAAA,WAAA,EAAA,EAAA,QAAA,IAAA;AAAA;;;;;;;ACnDL,MAAM,cAAA,GAAiB;AAAA,EAC5B,MAAA,EAAQ,QAAA;AAAA,EACR,QAAA,EAAU,UAAA;AAAA,EACV,WAAA,EAAa;AACf;AAEO,MAAM,eAAA,GAAkB,MAAA,CAAO,MAAA,CAAO,cAAc;;ACApD,MAAM,yBAAyB,MAA8B;AAClE,EAAA,IAAI,UAA+C,MAAM;AAAA,EAAC,CAAA;AAC1D,EAAA,IAAI,SAAqC,MAAM;AAAA,EAAC,CAAA;AAEhD,EAAA,MAAM,OAAA,GAAU,IAAI,OAAA,CAAW,CAAC,KAAK,GAAA,KAAQ;AAC3C,IAAA,OAAA,GAAU,GAAA;AACV,IAAA,MAAA,GAAS,GAAA;AAAA,EACX,CAAC,CAAA;AAED,EAAA,OAAO,EAAE,OAAA,EAAS,MAAA,EAAQ,OAAA,EAAQ;AACpC,CAAA;;ACbA,SAAwB,MAAM,EAAA,EAAY;AACxC,EAAA,OAAO,IAAI,OAAA,CAAQ,CAAC,YAAY,UAAA,CAAW,OAAA,EAAS,EAAE,CAAC,CAAA;AACzD;;ACLO,MAAM,gBAAA,GAAmB;AAAA,EAC9B,GAAA,EAAK,KAAA;AAAA,EACL,YAAA,EAAc,cAAA;AAAA,EACd,IAAA,EAAM;AACR;AAEO,MAAM,uBAAA,GAA0B,MAAA,CAAO,MAAA,CAAO,gBAAgB;AAE9D,MAAM,aAAA,GAAgB;AAAA,EAC3B,KAAA,EAAO,OAAA;AAAA,EACP,MAAA,EAAQ,QAAA;AAAA,EACR,KAAA,EAAO,OAAA;AAAA,EACP,MAAA,EAAQ,QAAA;AAAA,EACR,IAAA,EAAM;AACR;AAEO,MAAM,kBAAA,GAAqB,MAAA,CAAO,MAAA,CAAO,aAAa;AAEtD,MAAM,cAAA,GAAiB;AAAA,EAC5B,IAAA,EAAM,MAAA;AAAA,EACN,IAAA,EAAM;AACR;AAEO,MAAM,mBAAA,GAAsB,MAAA,CAAO,MAAA,CAAO,cAAc;AAExD,MAAM,eAAA,GAAkB;AAAA,EAC7B,MAAA,EAAQ,QAAA;AAAA,EACR,KAAA,EAAO;AACT;AAEO,MAAM,gBAAA,GAAmB,MAAA,CAAO,MAAA,CAAO,eAAe;AAEtD,MAAM,0BAAA,GAA6B;AAAA,EACxC,QAAA,EAAU,EAAA;AAAA,EACV,SAAS,eAAA,CAAgB,MAAA;AAAA,EACzB,QAAA,EAAU,MAAA;AAAA,EACV,WAAA,EAAa;AACf,CAAA;AAEO,MAAM,oBAAA,GAAuB;AAAA,EAClC,MAAA,EAAQ,KAAA;AAAA,EACR,QAAQ,cAAA,CAAe,IAAA;AAAA,EACvB,OAAO,aAAA,CAAc,MAAA;AAAA,EACrB,UAAU,gBAAA,CAAiB,YAAA;AAAA,EAC3B,GAAG;AACL,CAAA;;;;;;;;;;;;;;;;;;;;;;;ACtCA,IAAA,MAAM,KAAA,GAAQ,OAAA;;;QAQZX,kBAAA,CAUS,UAVTM,YAAA,EAUS;AAAA,UATQ,KAAA,CAAM,WAAA,iBAArBJ,YAA4E,OAAA,EAAA;AAAA;YAAzC,MAAM,KAAA,CAAM,WAAA;AAAA,YAAa,IAAA,EAAK;AAAA;UACjEF,mBAA6D,KAAA,EAA7DQ,YAAA,EAA6DD,gBAAvB,KAAA,CAAM,QAAQ,GAAA,CAAA,CAAA;AAAA,UACpDE,YAMEM,WAAA,EAAA;AAAA,YALA,cAAA,EAAa,SAAA;AAAA,YACb,OAAA,EAAQ,aAAA;AAAA,YACR,IAAA,EAAK,QAAA;AAAA,YACL,KAAA,EAAM,OAAA;AAAA,YACL,SAAO,KAAA,CAAM;AAAA;;QAIlBf,mBAEM,KAAA,EAAA;AAAA,UAFD,KAAA,EAAM,YAAA;AAAA,UAAc,gBAAc,OAAA,CAAA;AAAA;UACrCW,WAAoB,IAAA,CAAA,MAAA,EAAA,QAAA,EAAA,EAAA,QAAA,IAAA;AAAA;QAGRY,KAAAA,MAAAA,CAAO,MAAA,IAArBzB,WAAA,EAAAF,kBAAA,CAES,UAFT,UAAA,EAES;AAAA,UADPe,WAAsB,IAAA,CAAA,MAAA,EAAA,UAAA,EAAA,EAAA,QAAA,IAAA;AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;ACvB1B,IAAA,MAAM,KAAA,GAAQ,OAAA;AAEd,IAAA,MAAM,IAAA,GAAO,MAAA;AAOb,IAAA,MAAM,MAAA,GAAS,eAAe,eAAe,CAAA;AAE7C,IAAA,MAAM,OAAA,GAAU,CAAC,KAAA,KAAkB;AACjC,MAAA,IAAA,CAAK,SAAS,KAAK,CAAA;AAAA,IACrB,CAAA;AAEA,IAAA,KAAA;AAAA,MACE,MAAM,KAAA,CAAM,MAAA;AAAA,MACZ,OAAO,MAAA,KAAW;AAChB,QAAA,IAAI,MAAA,EAAQ;AACV,UAAA,MAAM,QAAA,EAAS;AACf,UAAA,MAAA,CAAO,OAAO,SAAA,EAAU;AAAA,QAC1B,CAAA,MAAO;AACL,UAAA,MAAA,CAAO,OAAO,KAAA,EAAM;AAAA,QACtB;AAAA,MACF,CAAA;AAAA,MACA,EAAE,WAAW,IAAA;AAAK,KACpB;AAEA,IAAA,MAAM,YAAA,GAAe,GAAA,CAAI,KAAA,CAAM,MAAM,CAAA;AAErC,IAAA,MAAM,eAAe,MAAM;AACzB,MAAA,IAAI,CAAC,aAAa,KAAA,EAAO;AACvB,QAAA;AAAA,MACF;AACA,MAAA,YAAA,CAAa,KAAA,GAAQ,KAAA;AACrB,MAAA,IAAA,CAAK,QAAQ,CAAA;AAAA,IACf,CAAA;AAEA,IAAA,KAAA;AAAA,MACE,MAAM,KAAA,CAAM,MAAA;AAAA,MACZ,OAAO,OAAO,SAAA,KAAc;AAE1B,QAAA,IAAI,KAAA,KAAU,KAAA,IAAS,SAAA,KAAc,IAAA,EAAM;AACzC,UAAA,IAAI,OAAO,KAAA,EAAO;AAChB,YAAA,OAAA,CAAQ,GAAA;AAAA,cACN,MAAA,CAAO,KAAA,CACJ,aAAA,CAAc,EAAE,OAAA,EAAS,IAAA,EAAM,CAAA,CAC/B,GAAA,CAAI,CAAC,SAAA,KAAc,SAAA,CAAU,QAAQ;AAAA,aAC1C,CAAE,KAAK,YAAY,CAAA;AAEnB,YAAA,MAAM,MAAM,GAAG,CAAA;AAEf,YAAA,YAAA,EAAa;AAAA,UACf,CAAA,MAAO;AAEL,YAAA,YAAA,EAAa;AAAA,UACf;AAAA,QACF,CAAA,MAAO;AACL,UAAA,YAAA,CAAa,KAAA,GAAQ,KAAA;AAAA,QACvB;AAAA,MACF;AAAA,KACF;;aAKU,YAAA,CAAA,KAAA,iBADRf,mBAmCS,QAAA,EAAA;AAAA;QAjCP,GAAA,EAAI,eAAA;AAAA,QACH,OAAKC,cAAA,CAAA;AAAA;mBAAsC,QAAA,KAAK,CAAA,CAAA;AAAA,oBAAoB,QAAA,MAAM,CAAA,CAAA;AAAA,sBAAsB,QAAA,QAAQ,CAAA;AAAA;QAMxG,UAAU,OAAA,CAAA,QAAA;AAAA,QACV,QAAA,gBAAgB,OAAA,EAAO,CAAA,SAAA,CAAA;AAAA;QAExBc,UAAA,CAsBO,IAAA,CAAA,MAAA,EAAA,SAAA,EAAA;AAAA,UArBJ,UAAU,OAAA,CAAA,QAAA;AAAA,UACV,aAAc,OAAA,CAAA,WAAA;AAAA,UACd,SAAS,OAAA,CAAA,OAAA;AAAA,UACT,UAAU,OAAA,CAAA,QAAA;AAAA,UACV;AAAA,WALH,MAsBO;AAAA,UAfLF,YAciB,cAAA,EAAA;AAAA,YAbd,UAAU,OAAA,CAAA,QAAA;AAAA,YACV,gBAAc,OAAA,CAAA,WAAA;AAAA,YACd,SAAS,OAAA,CAAA,OAAA;AAAA,YACT,UAAU,OAAA,CAAA,QAAA;AAAA,YACV;AAAA;YAEU,IAAA,UACT,MAAoB;AAAA,cAApBE,WAAoB,IAAA,CAAA,MAAA,EAAA,QAAA,EAAA,EAAA,QAAA,IAAA;AAAA;YAGX,MAAA,UACT,MAAsB;AAAA,cAAtBA,WAAsB,IAAA,CAAA,MAAA,EAAA,UAAA,EAAA,EAAA,QAAA,IAAA;AAAA;;;;;;;;;;;ACPhC,MAAM,mBAAA,GAA0C;AAAA,EAC9C,IAAA,EAAM,QAAA;AAAA,EACN,KAAA,EAAO;AACT,CAAA;AAEA,MAAM,oBAAA,GAA2C;AAAA,EAC/C,IAAA,EAAM,SAAA;AAAA,EACN,KAAA,EAAO;AACT,CAAA;AAIA,MAAM,QAAA,GAAW,IAAI,KAAK,CAAA;AAC1B,MAAM,iBAAA,GAAoB,IAIxB,IAAI,CAAA;AAEN,MAAM,gBAAA,GAAmB,GAAA,CAAImF,sBAAa,EAAwB,CAAA;AAElE,MAAM,qBAAqB,MAAM;AAC/B,EAAA,QAAA,CAAS,KAAA,GAAQ,KAAA;AACjB,EAAA,gBAAA,CAAiB,KAAA,GAAQA,sBAAa,EAAuB;AAE/D,CAAA;AAGA,MAAM,WAAW,MAAM;AACrB,EAAA,iBAAA,CAAkB,KAAA,GAAQ,IAAA;AAC5B,CAAA;AAOA,MAAM,OAAA,GAAU,CAAC,aAAA,GAAgB,KAAA,KAAU;AACzC,EAAA,gBAAA,CAAiB,MAAM,OAAA,CAAQ;AAAA,IAC7B,SAAA,EAAW,IAAA;AAAA,IACX;AAAA,GACD,CAAA;AACD,EAAA,kBAAA,EAAmB;AACrB,CAAA;AAKA,MAAM,QAAQ,MAAM;AAClB,EAAA,MAAM,SAAA,GAAY,iBAAA,CAAkB,KAAA,EAAO,IAAA,KAAS,SAAA;AACpD,EAAA,gBAAA,CAAiB,MAAM,OAAA,CAAQ,SAAA,GAAY,EAAE,SAAA,EAAW,KAAA,KAAU,MAAS,CAAA;AAC3E,EAAA,kBAAA,EAAmB;AACrB,CAAA;AAEA,MAAM,sBAAA,GAAyB,CAC7B,MAAA,KAC8C;AAC9C,EAAA,OAAO,WAAA,IAAe,MAAA;AACxB,CAAA;AAEA,MAAM,YAAA,GAAe,CAAC,MAAA,KAA6B;AACjD,EAAA,IACE,CAAC,SAAS,KAAA,IACV,CAAC,kBAAkB,KAAA,IACnB,iBAAA,CAAkB,KAAA,CAAM,IAAA,KAAS,SAAA,EACjC;AACA,IAAA,OAAA,CAAQ,KAAK,wDAAwD,CAAA;AACrE,IAAA;AAAA,EACF;AAEA,EAAA,iBAAA,CAAkB,MAAM,KAAA,GAAQ;AAAA,IAC9B,GAAG,kBAAkB,KAAA,CAAM,KAAA;AAAA,IAC3B,GAAG;AAAA,GACL;AACF,CAAA;AAEO,MAAM,QAAA,GAAW;AAAA,EACtB,OAAA;AAAA,EACA,KAAA;AAAA,EACA,sBAAA;AAAA,EACA,QAAA;AAAA,EACA;AACF,CAAA;AAEO,MAAM,qBAAqB,MAAM;AAWtC,EAAA,SAAS,gBACP,MAAA,EACwB;AACxB,IAAA,iBAAA,CAAkB,KAAA,GAAQ;AAAA,MACxB,IAAA,EAAM,SAAA;AAAA,MACN,KAAA,EAAO;AAAA,QACL,OAAA,EAAS,CAAC,mBAAA,EAAqB,oBAAoB,CAAA;AAAA,QACnD,GAAG;AAAA;AACL,KACF;AAEA,IAAA,QAAA,CAAS,KAAA,GAAQ,IAAA;AACjB,IAAA,OAAO,iBAAiB,KAAA,CAAM,OAAA;AAAA,EAChC;AAEA,EAAA,MAAM,cAAA,GAAiB,CACrB,MAAA,KACkB;AAClB,IAAA,iBAAA,CAAkB,KAAA,GAAQ;AAAA,MACxB,IAAA,EAAM,SAAA;AAAA,MACN,KAAA,EAAO;AAAA,KACT;AAEA,IAAA,QAAA,CAAS,KAAA,GAAQ,IAAA;AACjB,IAAA,OAAO,iBAAiB,KAAA,CAAM,OAAA;AAAA,EAChC,CAAA;AAEA,EAAA,OAAO;AAAA,IACL,eAAA;AAAA,IACA,cAAA;AAAA,IACA,MAAA,EAAQ,QAAA,CAAS,MAAM,iBAAA,CAAkB,KAAK,CAAA;AAAA,IAC9C,QAAA,EAAU,QAAA,CAAS,MAAM,QAAA,CAAS,KAAK,CAAA;AAAA,IACvC,KAAA,EAAO,MAAM,QAAA,CAAS,KAAA;AAAM,GAC9B;AACF;;;;;;;;;;;;;;ACrNA,IAAA,MAAM,QAAA,GAAW,IAAI,KAAK,CAAA;AAC1B,IAAA,MAAM,EAAE,MAAA,EAAQ,QAAA,EAAS,GAAI,kBAAA,EAAmB;AAEhD,IAAA,MAAM,QAAQ,MAAM;AAClB,MAAA,QAAA,CAAS,KAAA,GAAQ,KAAA;AAAA,IACnB,CAAA;AAEA,IAAA,MAAM,YAAY,MAAM;AACtB,MAAA,QAAA,CAAS,OAAA,CAAQ,SAAS,KAAK,CAAA;AAC/B,MAAA,KAAA,EAAM;AAAA,IACR,CAAA;AAEA,IAAA,MAAM,UAAU,MAAM;AACpB,MAAA,QAAA,CAAS,KAAA,EAAM;AACf,MAAA,KAAA,EAAM;AAAA,IACR,CAAA;AAEA,IAAA,MAAM,mBAAA,GAAsB,CAAC,MAAA,KAA+B;AAC1D,MAAA,IAAI,CAAC,OAAO,aAAA,EAAe;AACzB,QAAA,MAAM,OAAA,GAAU,MAAA,CAAO,IAAA,KAAS,QAAA,GAAW,OAAA,GAAU,SAAA;AACrD,QAAA,OAAA,EAAQ;AACR,QAAA;AAAA,MACF;AAEA,MAAA,IAAI,MAAA,CAAO,SAAS,QAAA,EAAU;AAC5B,QAAA,MAAA,CAAO,aAAA,CAAc,EAAE,MAAA,EAAQ,OAAA,EAAS,CAAA;AAAA,MAC1C;AAEA,MAAA,IAAI,MAAA,CAAO,SAAS,SAAA,EAAW;AAC7B,QAAA,MAAA,CAAO,aAAA,CAAc,EAAE,OAAA,EAAS,SAAA,EAAW,CAAA;AAAA,MAC7C;AAAA,IACF,CAAA;AAEA,IAAA,MAAM,cAAA,GAAiB,CACrB,IAAA,KAC+B,IAAA,KAAS,WAAW,aAAA,GAAgB,QAAA;AAErE,IAAA,MAAM,aAAA,GAAgB,SAAS,MAAM;AACnC,MAAA,IAAI,CAAC,OAAO,KAAA,EAAO;AACjB,QAAA,OAAO,EAAC;AAAA,MACV;AAEA,MAAA,MAAM,EAAE,WAAA,EAAa,QAAA,EAAU,MAAA,EAAQ,KAAA,EAAO,SAAS,QAAA,EAAU,QAAA,EAAS,GACxE,MAAA,CAAO,KAAA,CAAM,KAAA;AAEf,MAAA,OAAO;AAAA,QACL,WAAA;AAAA,QACA,QAAA;AAAA,QACA,MAAA;AAAA,QACA,KAAA;AAAA,QACA,OAAA;AAAA,QACA,QAAA;AAAA,QACA,QAAA;AAAA,QACA,OAAA;AAAA,QACA,UAAU,QAAA,CAAS,QAAA;AAAA,QACnB,QAAQ,QAAA,CAAS;AAAA,OACnB;AAAA,IACF,CAAC,CAAA;;AAIC,MAAA,OAAAhG,WAAA,EAAAI,WAAA,CA2CW,QAAA,EA3CXU,UAAA,CA2CW,EA3CD,KAAA,EAAM,eAAA,IAAwB,aAAA,CAAA,KAAa,CAAA,EAAAmF,WAAA,CAAA,EAAA,CAAA,EAAA,GAAA,EAAA;AAAA,QACnC9F,KAAA,CAAA,MAAA,CAAA,EAAQ,IAAA,KAAI,SAAA;gBAAiB,MAAA;AAAA,sBAC3C,MAGE;AAAA,YADMA,KAAA,CAAA,QAAA,CAAA,CAAS,sBAAA,CAAuBA,KAAA,CAAA,MAAA,CAAA,CAAO,KAAK,CAAA,IAFpDH,SAAA,EAAA,EAAAI,WAAA,CAGEC,uBAAA,CAFKF,KAAA,CAAA,MAAA,CAAA,CAAO,KAAA,CAAM,SAAS,CAAA,EAAA,EAAA,GAAA,EAAA,CAAA,EAAA,CAAA,KAI7BH,SAAA,EAAA,EAAAF,kBAAA,CASM,KAAA,EATN,UAAA,EASM;AAAA,cARJI,kBAAA,CAAqD,KAAA,EAArD,UAAA,EAAqDO,eAAA,CAA7BN,KAAA,SAAO,KAAA,CAAM,OAAO,CAAA,EAAA,CAAA,CAAA;AAAA,cACjCA,KAAA,CAAA,MAAA,CAAA,CAAO,KAAA,CAAM,iBAAxBH,SAAA,EAAA,EAAAF,kBAAA,CAMM,KAAA,EANN,UAAA,EAMM;AAAA,gBALJa,YAIEuF,WAAA,EAAA;AAAA,8BAHS,QAAA,CAAA,KAAA;AAAA,+EAAA,QAAA,CAAQ,KAAA,GAAA,MAAA,CAAA;AAAA,kBAChB,KAAA,EAAO/F,KAAA,CAAA,MAAA,CAAA,CAAO,MAAM,aAAA,CAAc,KAAA;AAAA,kBAClC,UAAA,EAAUA,KAAA,CAAA,MAAA,CAAA,CAAO,MAAM,aAAA,CAAc;AAAA;;;;;;QAM9BA,KAAA,CAAA,MAAA,CAAA,EAAQ,IAAA,KAAI,SAAA;gBAAiB,QAAA;AAAA,sBAEzC,MAA+C;AAAA,8BADjDL,kBAAA,CAUEuB,UAAA,IAAA,EAAAC,UAAA,CAT0BnB,KAAA,SAAO,KAAA,CAAM,OAAA,EAAO,CAAtC,QAAQ,KAAA,KAAK;kCADvBC,WAAA,CAUEa,WAAA,EAAA;AAAA,gBARC,GAAA,EAAK,KAAA;AAAA,gBACL,aAAa,MAAA,CAAO,WAAA;AAAA,gBACpB,WAAW,MAAA,CAAO,SAAA;AAAA,gBAClB,OAAO,MAAA,CAAO,KAAA;AAAA,gBACd,OAAA,EAAS,MAAA,CAAO,OAAA,IAAW,cAAA,CAAe,OAAO,IAAI,CAAA;AAAA,gBACrD,OAAKlB,cAAA,CAAA,EAAA,YAAA,EAAkB,MAAA,CAAO,WAAS,CAAA;AAAA,gBACvC,cAAA,EAAY,CAAA,EAAK,MAAA,CAAO,IAAI,CAAA,OAAA,CAAA;AAAA,gBAC5B,OAAA,EAAK,CAAA,MAAA,KAAE,mBAAA,CAAoB,MAAM;AAAA;;;;;QAItBI,KAAA,CAAA,MAAA,CAAA,EAAQ,IAAA,KAAI,SAAA;gBAAiB,SAAA;AAAA,UAC3C,EAAA,EAAAuB,OAAA,CAAA,CADoD,SAAA,KAAS;AAAA,aAC7D1B,SAAA,EAAA,EAAAI,WAAA,CAOEC,uBAAA,CANKF,KAAA,CAAA,MAAA,CAAA,CAAO,KAAA,CAAM,SAAS,CAAA,EAAAgG,cAAA,CAAAC,kBAAA,CAAA;AAAA,iBACJ,SAAA;AAAA,uBAA8BjG,KAAA,CAAA,MAAA,CAAA,CAAO,KAAA,CAAM,OAAA;AAAA,cAAiC,YAAA,EAAAA,KAAA,CAAA,QAAA,CAAA,CAAS;AAAA;;;;;;;;;;;;;","x_google_ignoreList":[63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,82,83,84,85,86,87,88,89,90,91,92,93,94,95,96,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,141,142]}
|