valtech-components 2.0.113 → 2.0.115

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.
@@ -1 +1 @@
1
- {"version":3,"file":"valtech-components.mjs","sources":["../../../projects/valtech-components/src/lib/components/atoms/avatar/avatar.component.ts","../../../projects/valtech-components/src/lib/services/icons.service.ts","../../../projects/valtech-components/src/lib/components/atoms/box/box.component.ts","../../../projects/valtech-components/src/lib/components/types.ts","../../../projects/valtech-components/src/lib/services/download.service.ts","../../../projects/valtech-components/src/lib/components/atoms/button/button.component.ts","../../../projects/valtech-components/src/lib/components/atoms/button/factory.ts","../../../projects/valtech-components/src/lib/components/atoms/display/display.component.ts","../../../projects/valtech-components/src/lib/components/atoms/divider/divider.component.ts","../../../projects/valtech-components/src/lib/components/atoms/href/href.component.ts","../../../projects/valtech-components/src/lib/components/atoms/icon/icon.component.ts","../../../projects/valtech-components/src/lib/components/atoms/image/image.component.ts","../../../projects/valtech-components/src/lib/components/atoms/progress-bar/progress-bar.component.ts","../../../projects/valtech-components/src/lib/components/atoms/text/text.component.ts","../../../projects/valtech-components/src/lib/components/atoms/title/title.component.ts","../../../projects/valtech-components/src/lib/components/molecules/alert-box/alert-box.component.ts","../../../projects/valtech-components/src/lib/components/molecules/button-group/button-group.component.ts","../../../projects/valtech-components/src/lib/components/molecules/card/types.ts","../../../projects/valtech-components/src/lib/components/molecules/card/card.component.ts","../../../projects/valtech-components/src/lib/components/molecules/check-input/check-input.component.ts","../../../projects/valtech-components/src/lib/components/molecules/comment-input/comment-input.component.ts","../../../projects/valtech-components/src/lib/components/molecules/content-loader/content-loader.component.ts","../../../projects/valtech-components/src/lib/components/molecules/date-input/date-input.component.ts","../../../projects/valtech-components/src/lib/components/molecules/email-input/email-input.component.ts","../../../projects/valtech-components/src/lib/shared/utils/styles.ts","../../../projects/valtech-components/src/lib/components/molecules/expandable-text/expandable-text.component.ts","../../../projects/valtech-components/src/lib/components/molecules/file-input/file-input.component.ts","../../../projects/valtech-components/src/lib/components/molecules/hint/hint.component.ts","../../../projects/valtech-components/src/lib/components/molecules/hour-input/hour-input.component.ts","../../../projects/valtech-components/src/lib/services/in-app-browser.service.ts","../../../projects/valtech-components/src/lib/services/navigation.service.ts","../../../projects/valtech-components/src/lib/components/molecules/link/link.component.ts","../../../projects/valtech-components/src/lib/components/molecules/links-cake/links-cake.component.ts","../../../projects/valtech-components/src/lib/components/molecules/notes-box/notes-box.component.ts","../../../projects/valtech-components/src/lib/components/molecules/number-input/number-input.component.ts","../../../projects/valtech-components/src/lib/components/molecules/password-input/password-input.component.ts","../../../projects/valtech-components/src/lib/components/molecules/pin-input/pin-input.component.ts","../../../projects/valtech-components/src/lib/components/molecules/title-block/title-block.component.ts","../../../projects/valtech-components/src/lib/components/molecules/progress-status/progress-status.component.ts","../../../projects/valtech-components/src/lib/components/molecules/prompter/prompter.component.ts","../../../projects/valtech-components/src/lib/components/molecules/radio-input/radio-input.component.ts","../../../projects/valtech-components/src/lib/shared/utils/text.ts","../../../projects/valtech-components/src/lib/components/molecules/searchbar/searchbar.component.ts","../../../projects/valtech-components/src/lib/components/molecules/search-selector-input/search-selector-input.component.ts","../../../projects/valtech-components/src/lib/components/molecules/select-input/select-input.component.ts","../../../projects/valtech-components/src/lib/components/molecules/text-input/text-input.component.ts","../../../projects/valtech-components/src/lib/components/organisms/banner/banner.component.ts","../../../projects/valtech-components/src/lib/components/organisms/toolbar/toolbar.component.ts","../../../projects/valtech-components/src/lib/components/organisms/footer/footer.component.ts","../../../projects/valtech-components/src/lib/components/organisms/form/factory.ts","../../../projects/valtech-components/src/lib/components/organisms/form/form-footer/form-footer.component.ts","../../../projects/valtech-components/src/lib/shared/utils/dom.ts","../../../projects/valtech-components/src/lib/components/organisms/form/form.component.ts","../../../projects/valtech-components/src/lib/components/organisms/header/header.component.ts","../../../projects/valtech-components/src/lib/components/organisms/item-list/item-list.component.ts","../../../projects/valtech-components/src/lib/components/organisms/no-content/no-content.component.ts","../../../projects/valtech-components/src/lib/components/organisms/wizard/types.ts","../../../projects/valtech-components/src/lib/components/organisms/wizard/wizard-footer/wizard-footer.component.ts","../../../projects/valtech-components/src/lib/components/organisms/wizard/wizard.component.ts","../../../projects/valtech-components/src/lib/components/templates/layout/layout.component.ts","../../../projects/valtech-components/src/lib/services/local-storage.service.ts","../../../projects/valtech-components/src/lib/shared/constants/storage.ts","../../../projects/valtech-components/src/lib/services/theme.service.ts","../../../projects/valtech-components/src/lib/components/templates/simple/simple.component.ts","../../../projects/valtech-components/src/lib/services/lang-provider/types.ts","../../../projects/valtech-components/src/lib/services/types.ts","../../../projects/valtech-components/src/lib/services/lang-provider/lang-provider.service.ts","../../../projects/valtech-components/src/lib/services/toast.service.ts","../../../projects/valtech-components/src/public-api.ts","../../../projects/valtech-components/src/valtech-components.ts"],"sourcesContent":["import { Component, EventEmitter, Input, OnInit, Output } from '@angular/core';\nimport { IonAvatar } from '@ionic/angular/standalone';\nimport { AvatarMetadata } from './types';\n\n@Component({\n selector: 'val-avatar',\n standalone: true,\n imports: [IonAvatar],\n template: `\n <ion-avatar aria-hidden=\"true\" [class]=\"props.size\" [class.box]=\"props.box\" (click)=\"onClickHandler()\">\n <img alt=\"profile image\" [src]=\"props.image || props.default\" />\n </ion-avatar>\n `,\n styleUrls: ['./avatar.component.scss'],\n})\nexport class AvatarComponent implements OnInit {\n @Input() props: AvatarMetadata;\n\n @Output()\n onClick = new EventEmitter();\n\n constructor() {}\n\n ngOnInit() {}\n\n onClickHandler() {\n this.onClick.emit();\n }\n}\n","/* eslint-disable no-underscore-dangle */\n\nimport { Injectable } from '@angular/core';\nimport { addIcons } from 'ionicons';\nimport {\n addCircleOutline,\n addOutline,\n alertCircleOutline,\n alertOutline,\n arrowBackOutline,\n arrowDownOutline,\n arrowForwardOutline,\n chatbubblesOutline,\n checkmarkCircleOutline,\n closeOutline,\n ellipsisHorizontalOutline,\n eyeOffOutline,\n eyeOutline,\n heart,\n heartOutline,\n homeOutline,\n notificationsOutline,\n openOutline,\n shareOutline,\n} from 'ionicons/icons';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class IconService {\n constructor() {\n addIcons({\n addOutline,\n addCircleOutline,\n alertOutline,\n alertCircleOutline,\n arrowBackOutline,\n arrowForwardOutline,\n arrowDownOutline,\n checkmarkCircleOutline,\n ellipsisHorizontalOutline,\n notificationsOutline,\n openOutline,\n closeOutline,\n chatbubblesOutline,\n shareOutline,\n heart,\n heartOutline,\n homeOutline,\n eyeOffOutline,\n eyeOutline,\n });\n }\n}\n","import { CommonModule, NgStyle } from '@angular/common';\nimport { Component, EventEmitter, Input, OnInit, Output } from '@angular/core';\nimport { IonCard, IonIcon } from '@ionic/angular/standalone';\nimport { IconService } from '../../../services/icons.service';\nimport { BoxMetadata } from './types';\n\n@Component({\n selector: 'val-box',\n standalone: true,\n imports: [CommonModule, IonCard, IonIcon, NgStyle],\n template: `\n <ion-card\n class=\"box\"\n [color]=\"props.color\"\n [class.rounded]=\"props.rounded\"\n [class.bordered]=\"props.bordered\"\n [class.transparent]=\"!props.color\"\n [class.left-border]=\"props.leftBorder\"\n >\n @if (props.icon) {\n <ion-icon class=\"icon\" [name]=\"props.icon\" (click)=\"clickHandler()\"></ion-icon>\n }\n <div\n style=\"padding: 8px;\"\n [ngStyle]=\"{\n 'margin-right': props.icon ? '24px' : '0px',\n }\"\n >\n <ng-content select=\"[body]\"></ng-content>\n </div>\n </ion-card>\n `,\n styleUrls: ['./box.component.scss'],\n})\nexport class BoxComponent implements OnInit {\n @Input()\n props: BoxMetadata;\n\n @Output()\n onClick = new EventEmitter();\n\n constructor(icon: IconService) {}\n\n ngOnInit() {}\n\n clickHandler() {\n this.onClick.emit();\n }\n}\n","import { FormControl, ValidatorFn } from '@angular/forms';\nimport { ImageMetadata } from './atoms/image/types';\nimport { Color } from '@ionic/core';\n\nexport type ComponentState = 'ENABLED' | 'DISABLED' | 'WORKING' | 'ERROR';\nconst ENABLED: ComponentState = 'ENABLED';\nconst DISABLED: ComponentState = 'DISABLED';\nconst WORKING: ComponentState = 'WORKING';\nconst ERROR: ComponentState = 'ERROR';\nexport const ComponentStates = { ENABLED, DISABLED, WORKING, ERROR };\n\nexport enum ActionType {\n BROWSER_NEW_TAB,\n BROWSER_DOWNLOAD,\n NATIVE_DOWNLOAD,\n APP_NAVIGATION,\n BROWSER_NAVIGATION,\n}\n\nexport type Action = {\n description: string;\n type: ActionType;\n source: string;\n};\n\nexport enum InputType {\n TEXT,\n EMAIL,\n PASSWORD,\n COMMENT,\n NUMBER,\n PIN_CODE,\n DATE,\n HOUR,\n CHECK,\n RADIO,\n SELECT,\n SEARCH_SELECT,\n FILE,\n}\n\nexport type InputOption = {\n id: string;\n name: string;\n selected?: boolean;\n order: number;\n};\n\nexport type InputMetadata = {\n control: FormControl;\n token: string;\n label: string;\n name: string;\n hint: string;\n placeholder: string;\n type: InputType;\n order: number;\n validators: ValidatorFn[];\n options?: InputOption[];\n range?: {\n min: number;\n max: number;\n };\n errors: {\n [key: string]: string;\n };\n value?: string;\n};\n\nexport type FormSection = {\n name: string;\n order: number;\n fields: InputMetadata[];\n};\n\nexport type FormSubmit = {\n fields: { key: string; value: string }[];\n token?: string;\n};\n\nexport type FormMetadata = {\n name: string;\n sections: FormSection[];\n actions: ButtonMetadata;\n state: ComponentState;\n};\n\nexport enum ToolbarActionType {\n AVATAR = 'AVATAR',\n ICON = 'ICON',\n IMAGE = 'IMAGE',\n BUTTON = 'BUTTON',\n}\n\nexport type ToolbarAction = {\n type: 'AVATAR' | 'ICON' | 'IMAGE' | 'BUTTON';\n token?: string;\n position: 'left' | 'right' | 'center';\n description?: string;\n image?: ImageMetadata;\n};\n\nexport interface IconMetada {\n name: string;\n slot: 'start' | 'end';\n}\n\nexport interface ButtonMetadata {\n actionType?: ActionType;\n expand?: 'full' | 'block';\n href?: string;\n target?: '_blank' | '_self' | '_parent' | '_top';\n download?: string;\n color: Color;\n state: ComponentState;\n text: string;\n icon?: IconMetada;\n shape?: 'round';\n size?: 'small' | 'default' | 'large';\n fill?: 'clear' | 'outline' | 'solid' | 'default';\n type: 'button' | 'submit' | 'reset';\n token?: string;\n}\n","import { Injectable } from '@angular/core';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class DownloadService {\n getFileNameFromUrl(url: string): string {\n try {\n const pathSegments = url.split('/');\n const lastSegment = pathSegments[pathSegments.length - 1];\n const fileName = decodeURIComponent(lastSegment);\n return fileName;\n } catch (error) {\n console.error('Error al obtener nombre de archivo: ', JSON.stringify(error));\n return 'filename';\n }\n }\n\n openNewTab(url: string): void {\n if (url) {\n const fileName = this.getFileNameFromUrl(url);\n const link = document.createElement('a');\n link.href = url;\n link.download = fileName;\n link.target = '_blank';\n document.body.appendChild(link);\n link.click();\n document.body.removeChild(link);\n } else {\n console.error('La URL no está definida');\n }\n }\n\n downloadLinkFromBrowser(url: string): void {\n console.log('trying to download file from url');\n if (url) {\n fetch(url)\n .then(response => response.blob())\n .then(blob => {\n const url = window.URL.createObjectURL(blob);\n const link = document.createElement('a');\n link.href = url;\n\n const fileName = this.getFileNameFromUrl(url);\n link.download = `${+new Date()}-${fileName}`;\n link.target = '_self';\n link.click();\n\n window.URL.revokeObjectURL(url);\n })\n .catch(error => {\n console.error('Error al descargar el archivo:', JSON.stringify(error));\n });\n } else {\n console.error('La URL no está definida');\n }\n }\n}\n","import { CommonModule } from '@angular/common';\nimport { Component, EventEmitter, Input, Output } from '@angular/core';\nimport { IonButton, IonIcon, IonSpinner, IonText } from '@ionic/angular/standalone';\nimport { DownloadService } from '../../../services/download.service';\nimport { ButtonMetadata, ComponentStates } from '../../types';\nimport { IconService } from '../../../services/icons.service';\n\n@Component({\n selector: 'val-button',\n standalone: true,\n imports: [CommonModule, IonButton, IonIcon, IonSpinner, IonText],\n template: `\n <ion-button\n [type]=\"props.type\"\n [color]=\"props.color\"\n [expand]=\"props.expand\"\n [fill]=\"props.fill\"\n [size]=\"props.size\"\n [href]=\"props.href\"\n [target]=\"props.target\"\n [shape]=\"props.shape\"\n (click)=\"clickHandler()\"\n [disabled]=\"props.state === states.DISABLED\"\n >\n <ion-icon *ngIf=\"props.icon\" [slot]=\"props.icon.slot\" [name]=\"props.icon.name\"></ion-icon>\n <ion-spinner *ngIf=\"props.state === states.WORKING\" name=\"circular\"></ion-spinner>\n <ion-text *ngIf=\"props.state !== states.WORKING\">{{ props.text }}</ion-text>\n </ion-button>\n `,\n styleUrls: ['./button.component.scss'],\n})\nexport class ButtonComponent {\n states = ComponentStates;\n\n @Input()\n props!: ButtonMetadata;\n\n @Output()\n onClick = new EventEmitter<string>();\n\n constructor(private download: DownloadService, icon: IconService) {}\n\n ngOnInit() {}\n\n clickHandler() {\n if (this.props.download) {\n this.download.downloadLinkFromBrowser(this.props.download);\n }\n if (this.props.state === this.states.DISABLED) {\n return;\n }\n this.onClick.emit(this.props.token);\n }\n}\n","import { ButtonMetadata, IconMetada } from '../../types';\n\nexport const Icon = (name: string, slot: 'start' | 'end'): IconMetada => {\n return {\n name,\n slot,\n };\n};\n\n/* name convention: COLOR FILL SIZE [optionals: SHAPE EXPAND ICON HREF/DOWNLOAD] TYPE */\n\nexport const BaseDefault = (text: string, type: 'button' | 'submit' | 'reset'): ButtonMetadata => {\n return {\n color: 'primary',\n state: 'ENABLED',\n text,\n size: 'default',\n type,\n };\n};\n\nexport const ClearDefault = (text: string, type: 'button' | 'submit' | 'reset'): ButtonMetadata => {\n return { ...BaseDefault(text, type), fill: 'clear' };\n};\n\nexport const ClearDefaultRound = (\n text: string,\n type: 'button' | 'submit' | 'reset'\n): ButtonMetadata => {\n return { ...ClearDefault(text, type), shape: 'round' };\n};\n\nexport const SolidDefault = (text: string, type: 'button' | 'submit' | 'reset'): ButtonMetadata => {\n return { ...BaseDefault(text, type), fill: 'solid' };\n};\n\nexport const SolidDefaultRound = (\n text: string,\n type: 'button' | 'submit' | 'reset'\n): ButtonMetadata => {\n return { ...SolidDefault(text, type), shape: 'round' };\n};\n\nexport const OutlineDefault = (\n text: string,\n type: 'button' | 'submit' | 'reset'\n): ButtonMetadata => {\n return { ...BaseDefault(text, type), fill: 'outline' };\n};\n\nexport const OutlineDefaultRound = (\n text: string,\n type: 'button' | 'submit' | 'reset'\n): ButtonMetadata => {\n return { ...OutlineDefault(text, type), shape: 'round' };\n};\n\nexport const ClearDefaultFull = (\n text: string,\n type: 'button' | 'submit' | 'reset'\n): ButtonMetadata => {\n return { ...ClearDefault(text, type), expand: 'full' };\n};\n\nexport const ClearDefaultRoundFull = (\n text: string,\n type: 'button' | 'submit' | 'reset'\n): ButtonMetadata => {\n return { ...ClearDefaultRound(text, type), expand: 'full' };\n};\n\nexport const ClearDefaultBlock = (\n text: string,\n type: 'button' | 'submit' | 'reset'\n): ButtonMetadata => {\n return { ...ClearDefault(text, type), expand: 'block' };\n};\n\nexport const ClearDefaultRoundBlock = (\n text: string,\n type: 'button' | 'submit' | 'reset'\n): ButtonMetadata => {\n return { ...ClearDefaultRound(text, type), expand: 'block' };\n};\n\nexport const SolidDefaultFull = (\n text: string,\n type: 'button' | 'submit' | 'reset'\n): ButtonMetadata => {\n return { ...SolidDefault(text, type), expand: 'full' };\n};\n\nexport const SolidDefaultRoundFull = (\n text: string,\n type: 'button' | 'submit' | 'reset'\n): ButtonMetadata => {\n return { ...SolidDefaultRound(text, type), expand: 'full' };\n};\n\nexport const SolidDefaultBlock = (\n text: string,\n type: 'button' | 'submit' | 'reset'\n): ButtonMetadata => {\n return { ...SolidDefault(text, type), expand: 'block' };\n};\n\nexport const SolidDefaultRoundBlock = (\n text: string,\n type: 'button' | 'submit' | 'reset'\n): ButtonMetadata => {\n return { ...SolidDefaultRound(text, type), expand: 'block' };\n};\n\nexport const OutlineDefaultFull = (\n text: string,\n type: 'button' | 'submit' | 'reset'\n): ButtonMetadata => {\n return { ...OutlineDefault(text, type), expand: 'full' };\n};\n\nexport const OutlineDefaultRoundFull = (\n text: string,\n type: 'button' | 'submit' | 'reset'\n): ButtonMetadata => {\n return { ...OutlineDefaultRound(text, type), expand: 'full' };\n};\n\nexport const OutlineDefaultBlock = (\n text: string,\n type: 'button' | 'submit' | 'reset'\n): ButtonMetadata => {\n return { ...OutlineDefault(text, type), expand: 'block' };\n};\n\nexport const OutlineDefaultRoundBlock = (\n text: string,\n type: 'button' | 'submit' | 'reset'\n): ButtonMetadata => {\n return { ...OutlineDefaultRound(text, type), expand: 'block' };\n};\n\nexport const SolidDefaultButton = (text: string): ButtonMetadata => {\n return SolidDefault(text, 'button');\n};\n\nexport const SolidSmallButton = (text: string): ButtonMetadata => {\n return { ...SolidDefault(text, 'button'), size: 'small' };\n};\n\nexport const SolidLargeButton = (text: string): ButtonMetadata => {\n return { ...SolidDefault(text, 'button'), size: 'large' };\n};\n\nexport const SolidDefaultRoundButton = (text: string): ButtonMetadata => {\n return SolidDefaultRound(text, 'button');\n};\n\nexport const SolidSmallRoundButton = (text: string): ButtonMetadata => {\n return { ...SolidDefaultRound(text, 'button'), size: 'small' };\n};\n\nexport const SolidLargeRoundButton = (text: string): ButtonMetadata => {\n return { ...SolidDefaultRound(text, 'button'), size: 'large' };\n};\n\nexport const SolidFullButton = (text: string): ButtonMetadata => {\n return SolidDefaultFull(text, 'button');\n};\n\nexport const SolidBlockButton = (text: string): ButtonMetadata => {\n return SolidDefaultBlock(text, 'button');\n};\n\n/** PRIMARY */\n\nexport const PrimarySolidDefaultRoundButton = (text: string): ButtonMetadata => {\n return { ...SolidDefaultRoundButton(text), color: 'primary' };\n};\n\nexport const PrimarySolidDefaultRoundIconButton = (\n text: string,\n icon: IconMetada\n): ButtonMetadata => {\n return { ...PrimarySolidDefaultRoundButton(text), icon };\n};\n\nexport const PrimarySolidDefaultRoundHrefButton = (\n text: string,\n href: string,\n target: '_blank' | '_self' | '_parent' | '_top'\n): ButtonMetadata => {\n return { ...PrimarySolidDefaultRoundButton(text), href, target };\n};\n\nexport const PrimarySolidDefaultRoundIconHrefButton = (\n text: string,\n icon: IconMetada,\n href: string,\n target: '_blank' | '_self' | '_parent' | '_top'\n): ButtonMetadata => {\n return { ...PrimarySolidDefaultRoundIconButton(text, icon), href, target };\n};\n\nexport const PrimarySolidSmallRoundButton = (text: string): ButtonMetadata => {\n return { ...SolidSmallRoundButton(text), color: 'primary' };\n};\n\nexport const PrimarySolidSmallRoundIconButton = (\n text: string,\n icon: IconMetada\n): ButtonMetadata => {\n return { ...PrimarySolidSmallRoundButton(text), icon };\n};\n\nexport const PrimarySolidSmallRoundHrefButton = (\n text: string,\n href: string,\n target: '_blank' | '_self' | '_parent' | '_top'\n): ButtonMetadata => {\n return { ...PrimarySolidSmallRoundButton(text), href, target };\n};\n\nexport const PrimarySolidSmallRoundIconHrefButton = (\n text: string,\n icon: IconMetada,\n href: string,\n target: '_blank' | '_self' | '_parent' | '_top'\n): ButtonMetadata => {\n return { ...PrimarySolidSmallRoundIconButton(text, icon), href, target };\n};\n\nexport const PrimarySolidLargeRoundButton = (text: string): ButtonMetadata => {\n return { ...SolidLargeRoundButton(text), color: 'primary' };\n};\n\nexport const PrimarySolidLargeRoundIconButton = (\n text: string,\n icon: IconMetada\n): ButtonMetadata => {\n return { ...PrimarySolidLargeRoundButton(text), icon };\n};\n\nexport const PrimarySolidLargeRoundHrefButton = (\n text: string,\n href: string,\n target: '_blank' | '_self' | '_parent' | '_top'\n): ButtonMetadata => {\n return { ...PrimarySolidLargeRoundButton(text), href, target };\n};\n\nexport const PrimarySolidLargeRoundIconHrefButton = (\n text: string,\n icon: IconMetada,\n href: string,\n target: '_blank' | '_self' | '_parent' | '_top'\n): ButtonMetadata => {\n return { ...PrimarySolidLargeRoundIconButton(text, icon), href, target };\n};\n\nexport const PrimarySolidBlockButton = (text: string): ButtonMetadata => {\n return { ...SolidBlockButton(text), color: 'primary' };\n};\n\nexport const PrimarySolidBlockIconButton = (text: string, icon: IconMetada): ButtonMetadata => {\n return { ...PrimarySolidBlockButton(text), icon };\n};\n\nexport const PrimarySolidBlockHrefButton = (\n text: string,\n href: string,\n target: '_blank' | '_self' | '_parent' | '_top'\n): ButtonMetadata => {\n return { ...PrimarySolidBlockButton(text), href, target };\n};\n\nexport const PrimarySolidBlockIconHrefButton = (\n text: string,\n icon: IconMetada,\n href: string,\n target: '_blank' | '_self' | '_parent' | '_top'\n): ButtonMetadata => {\n return { ...PrimarySolidBlockIconButton(text, icon), href, target };\n};\n\nexport const PrimarySolidFullButton = (text: string): ButtonMetadata => {\n return { ...SolidFullButton(text), color: 'primary' };\n};\n\nexport const PrimarySolidFullIconButton = (text: string, icon: IconMetada): ButtonMetadata => {\n return { ...PrimarySolidFullButton(text), icon };\n};\n\nexport const PrimarySolidFullHrefButton = (\n text: string,\n href: string,\n target: '_blank' | '_self' | '_parent' | '_top'\n): ButtonMetadata => {\n return { ...PrimarySolidFullButton(text), href, target };\n};\n\nexport const PrimarySolidFullIconHrefButton = (\n text: string,\n icon: IconMetada,\n href: string,\n target: '_blank' | '_self' | '_parent' | '_top'\n): ButtonMetadata => {\n return { ...PrimarySolidFullIconButton(text, icon), href, target };\n};\n\n/** SECONDARY */\n\nexport const SecondarySolidDefaultRoundButton = (text: string): ButtonMetadata => {\n return { ...SolidDefaultRoundButton(text), color: 'secondary' };\n};\n\nexport const SecondarySolidDefaultRoundIconButton = (\n text: string,\n icon: IconMetada\n): ButtonMetadata => {\n return { ...SecondarySolidDefaultRoundButton(text), icon };\n};\n\nexport const SecondarySolidDefaultRoundHrefButton = (\n text: string,\n href: string,\n target: '_blank' | '_self' | '_parent' | '_top'\n): ButtonMetadata => {\n return { ...SecondarySolidDefaultRoundButton(text), href, target };\n};\n\nexport const SecondarySolidDefaultRoundIconHrefButton = (\n text: string,\n icon: IconMetada,\n href: string,\n target: '_blank' | '_self' | '_parent' | '_top'\n): ButtonMetadata => {\n return { ...SecondarySolidDefaultRoundIconButton(text, icon), href, target };\n};\n\nexport const SecondarySolidSmallRoundButton = (text: string): ButtonMetadata => {\n return { ...SolidSmallRoundButton(text), color: 'secondary' };\n};\n\nexport const SecondarySolidSmallRoundIconButton = (\n text: string,\n icon: IconMetada\n): ButtonMetadata => {\n return { ...SecondarySolidSmallRoundButton(text), icon };\n};\n\nexport const SecondarySolidSmallRoundHrefButton = (\n text: string,\n href: string,\n target: '_blank' | '_self' | '_parent' | '_top'\n): ButtonMetadata => {\n return { ...SecondarySolidSmallRoundButton(text), href, target };\n};\n\nexport const SecondarySolidSmallRoundIconHrefButton = (\n text: string,\n icon: IconMetada,\n href: string,\n target: '_blank' | '_self' | '_parent' | '_top'\n): ButtonMetadata => {\n return { ...SecondarySolidSmallRoundIconButton(text, icon), href, target };\n};\n\nexport const SecondarySolidLargeRoundButton = (text: string): ButtonMetadata => {\n return { ...SolidLargeRoundButton(text), color: 'secondary' };\n};\n\nexport const SecondarySolidLargeRoundIconButton = (\n text: string,\n icon: IconMetada\n): ButtonMetadata => {\n return { ...SecondarySolidLargeRoundButton(text), icon };\n};\n\nexport const SecondarySolidLargeRoundHrefButton = (\n text: string,\n href: string,\n target: '_blank' | '_self' | '_parent' | '_top'\n): ButtonMetadata => {\n return { ...SecondarySolidLargeRoundButton(text), href, target };\n};\n\nexport const SecondarySolidLargeRoundIconHrefButton = (\n text: string,\n icon: IconMetada,\n href: string,\n target: '_blank' | '_self' | '_parent' | '_top'\n): ButtonMetadata => {\n return { ...SecondarySolidLargeRoundIconButton(text, icon), href, target };\n};\n\nexport const SecondarySolidFullButton = (text: string): ButtonMetadata => {\n return { ...SolidFullButton(text), color: 'secondary' };\n};\n\nexport const SecondarySolidFullIconButton = (text: string, icon: IconMetada): ButtonMetadata => {\n return { ...SecondarySolidFullButton(text), icon };\n};\n\nexport const SecondarySolidFullHrefButton = (\n text: string,\n href: string,\n target: '_blank' | '_self' | '_parent' | '_top'\n): ButtonMetadata => {\n return { ...SecondarySolidFullButton(text), href, target };\n};\n\nexport const SecondarySolidFullIconHrefButton = (\n text: string,\n icon: IconMetada,\n href: string,\n target: '_blank' | '_self' | '_parent' | '_top'\n): ButtonMetadata => {\n return { ...SecondarySolidFullIconButton(text, icon), href, target };\n};\n\nexport const SecondarySolidBlockButton = (text: string): ButtonMetadata => {\n return { ...SolidBlockButton(text), color: 'secondary' };\n};\n\nexport const SecondarySolidBlockIconButton = (text: string, icon: IconMetada): ButtonMetadata => {\n return { ...SecondarySolidBlockButton(text), icon };\n};\n\nexport const SecondarySolidBlockHrefButton = (\n text: string,\n href: string,\n target: '_blank' | '_self' | '_parent' | '_top'\n): ButtonMetadata => {\n return { ...SecondarySolidBlockButton(text), href, target };\n};\n\nexport const SecondarySolidBlockIconHrefButton = (\n text: string,\n icon: IconMetada,\n href: string,\n target: '_blank' | '_self' | '_parent' | '_top'\n): ButtonMetadata => {\n return { ...SecondarySolidBlockIconButton(text, icon), href, target };\n};\n","import { Component, Input, OnInit } from '@angular/core';\nimport { IonText } from '@ionic/angular/standalone';\nimport { DisplayMetadata } from './types';\n\n@Component({\n selector: 'val-display',\n standalone: true,\n imports: [IonText],\n template: `\n <ion-text [color]=\"props.color\">\n <p [class]=\"props.size\">\n {{ props.content }}\n </p>\n </ion-text>\n `,\n styleUrls: ['./display.component.scss'],\n})\nexport class DisplayComponent implements OnInit {\n @Input()\n props: DisplayMetadata;\n\n constructor() {}\n\n ngOnInit() {}\n}\n","import { CommonModule } from '@angular/common';\nimport { Component, Input, OnInit } from '@angular/core';\nimport { DividerMetadata } from './types';\n\n//TODO: fix the class name colission between medium size and medium color\n@Component({\n selector: 'val-divider',\n standalone: true,\n imports: [CommonModule],\n template: ` <div [ngClass]=\"['divider', props.size, props.color, props.fill]\"></div> `,\n styleUrls: ['./divider.component.scss'],\n})\nexport class DividerComponent implements OnInit {\n @Input()\n props: DividerMetadata;\n constructor() {}\n\n ngOnInit() {}\n}\n","import { CommonModule } from '@angular/common';\nimport { Component, EventEmitter, Input, OnInit, Output } from '@angular/core';\nimport { DownloadService } from '../../../services/download.service';\nimport { HrefMetadata } from './types';\n\n@Component({\n selector: 'val-href',\n standalone: true,\n imports: [CommonModule],\n template: `\n <a\n [ngClass]=\"[props.color]\"\n [class.hoverable]=\"props.hoverable\"\n [href]=\"props.url\"\n target=\"_blank\"\n (click)=\"onClickHandler($event)\"\n >{{ props.text }}</a\n >\n `,\n styleUrls: ['./href.component.scss'],\n})\nexport class HrefComponent implements OnInit {\n @Input() props: HrefMetadata;\n\n @Output()\n onClick = new EventEmitter<string>();\n\n constructor(private downloadService: DownloadService) {}\n\n ngOnInit() {}\n\n getFileName() {\n return this.downloadService.getFileNameFromUrl(this.props.url);\n }\n\n onClickHandler(event: MouseEvent) {\n if (this.props.download && this.props.url) {\n event.preventDefault();\n this.downloadService.downloadLinkFromBrowser(this.props.url);\n }\n this.onClick.emit(this.props.token);\n }\n}\n","import { CommonModule } from '@angular/common';\nimport { Component, Input, OnInit } from '@angular/core';\nimport { IonIcon } from '@ionic/angular/standalone';\nimport { IconService } from '../../../services/icons.service';\nimport { IconMetadata } from './types';\n\n@Component({\n selector: 'val-icon',\n standalone: true,\n imports: [CommonModule, IonIcon],\n template: ` <ion-icon aria-hidden=\"true\" [ngClass]=\"[props.size]\" [name]=\"props.name\" [color]=\"props.color\" /> `,\n styleUrls: ['./icon.component.scss'],\n})\nexport class IconComponent implements OnInit {\n @Input()\n props: IconMetadata;\n\n constructor(service: IconService) {}\n\n ngOnInit() {}\n}\n","import { CommonModule } from '@angular/common';\nimport { Component, Input, OnInit } from '@angular/core';\nimport { ImageMetadata } from './types';\n\n@Component({\n selector: 'val-image',\n standalone: true,\n imports: [CommonModule],\n template: `\n <img\n [ngClass]=\"['image', props.mode, props.size]\"\n [class.bordered]=\"props.bordered\"\n [class.shaded]=\"props.shaded\"\n [class.limited]=\"props.limited\"\n [class.visible]=\"available\"\n [src]=\"props.src\"\n [alt]=\"props.alt\"\n [style.width.px]=\"props.width\"\n [style.max-width.px]=\"props.width\"\n [style.height.px]=\"props.height\"\n />\n `,\n styleUrls: ['./image.component.scss'],\n})\nexport class ImageComponent implements OnInit {\n @Input()\n props: ImageMetadata;\n\n available: boolean = true;\n\n constructor() {}\n\n ngOnInit() {}\n\n changeToVisible() {\n setInterval(() => {\n this.available = true;\n }, 100);\n }\n}\n","import { CommonModule } from '@angular/common';\nimport { Component, Input, OnInit } from '@angular/core';\nimport { IonProgressBar } from '@ionic/angular/standalone';\nimport { ProgressBarMetadata } from './types';\n\n@Component({\n selector: 'val-progress-bar',\n standalone: true,\n imports: [CommonModule, IonProgressBar],\n template: `\n <ion-progress-bar\n [ngClass]=\"[props.size]\"\n [class.rounded]=\"props.rounded\"\n [value]=\"props.progress\"\n [color]=\"props.color\"\n [buffer]=\"props.buffer\"\n [type]=\"props.type\"\n ></ion-progress-bar>\n `,\n styleUrls: ['./progress-bar.component.scss'],\n})\nexport class ProgressBarComponent implements OnInit {\n @Input()\n props: ProgressBarMetadata;\n\n constructor() {}\n\n ngOnInit() {}\n}\n","import { Component, Input, OnInit } from '@angular/core';\nimport { IonText } from '@ionic/angular/standalone';\nimport { TextMetadata } from './types';\n\n@Component({\n selector: 'val-text',\n standalone: true,\n imports: [IonText],\n template: `\n <ion-text [color]=\"props.color\">\n <p [class]=\"props.size\" [class.bold]=\"props.bold\">{{ props.content }}</p>\n </ion-text>\n `,\n styleUrls: ['./text.component.scss'],\n})\nexport class TextComponent implements OnInit {\n @Input()\n props: TextMetadata;\n\n constructor() {}\n\n ngOnInit() {}\n}\n","import { NgIf } from '@angular/common';\nimport { Component, Input, OnInit } from '@angular/core';\nimport { IonText } from '@ionic/angular/standalone';\nimport { TitleMetadata } from './types';\n\n@Component({\n selector: 'val-title',\n standalone: true,\n imports: [NgIf, IonText],\n template: `\n <ion-text [color]=\"props.color\">\n <p *ngIf=\"!props.bold\" [class]=\"props.size\">{{ props.content }}</p>\n <b *ngIf=\"props.bold\">\n <p [class]=\"props.size\">{{ props.content }}</p>\n </b>\n </ion-text>\n `,\n styleUrls: ['./title.component.scss'],\n})\nexport class TitleComponent implements OnInit {\n @Input()\n props: TitleMetadata;\n\n constructor() {}\n\n ngOnInit() {}\n}\n","import { Component, Input, OnInit } from '@angular/core';\nimport { BoxComponent } from '../../atoms/box/box.component';\nimport { IconComponent } from '../../atoms/icon/icon.component';\nimport { TextComponent } from '../../atoms/text/text.component';\nimport { AlertBoxMetadata } from './types';\n\n@Component({\n selector: 'val-alert-box',\n standalone: true,\n imports: [BoxComponent, IconComponent, TextComponent],\n template: `\n <val-box [props]=\"props.box\">\n <div class=\"content-container\" body>\n <val-icon [props]=\"props.icon\"></val-icon>\n <val-text class=\"text\" [props]=\"props.text\"></val-text>\n </div>\n </val-box>\n `,\n styleUrls: ['./alert-box.component.scss'],\n})\nexport class AlertBoxComponent implements OnInit {\n @Input()\n props: AlertBoxMetadata;\n\n constructor() {}\n\n ngOnInit() {}\n}\n","import { CommonModule } from '@angular/common';\nimport { Component, EventEmitter, Input, OnInit, Output } from '@angular/core';\nimport { ButtonGroupMetadata } from './types';\nimport { ButtonComponent } from '../../atoms/button/button.component';\n\n@Component({\n selector: 'val-button-group',\n standalone: true,\n imports: [CommonModule, ButtonComponent],\n template: `\n <div [ngClass]=\"['group-container', Position]\" [class.column]=\"props.columned\" style=\"width: 100%;\">\n <val-button\n *ngFor=\"let b of props.buttons\"\n [props]=\"b\"\n (onClick)=\"clickHandler(b?.token)\"\n [ngStyle]=\"{ width: props.buttons.length === 1 ? '100%' : 'auto' }\"\n ></val-button>\n </div>\n `,\n styleUrls: ['./button-group.component.scss'],\n})\nexport class ButtonGroupComponent implements OnInit {\n @Input()\n props: ButtonGroupMetadata;\n\n @Output()\n onClick = new EventEmitter<string>();\n\n constructor() {}\n\n ngOnInit() {}\n\n clickHandler(token?: string) {\n this.onClick.emit(token);\n }\n\n get Position(): string {\n if (this.props.buttons.length === 1 && this.props.position === 'spaced') {\n return 'right';\n }\n\n return this.props.position;\n }\n}\n","import { ButtonMetadata, ToolbarAction } from '../../types';\n\nexport enum CardType {\n native = 'native',\n checker = 'checker',\n tappable = 'tappable',\n complex = 'complex',\n}\n\nexport interface CardClickEvent {\n section: CardSection;\n token?: string;\n}\n\nexport enum CardSection {\n headerLeft,\n headerRight,\n content,\n footer,\n footerExtra,\n}\n\nexport interface CardMetadata {\n token?: string;\n type: CardType;\n title?: string;\n overtitle?: string;\n content?: string;\n image?: string;\n footerActions: ButtonMetadata[];\n footerComplexActions: ToolbarAction[];\n leftActions: ToolbarAction[];\n rightActions: ToolbarAction[];\n selected: boolean;\n headerText?: string;\n}\n","import { CommonModule } from '@angular/common';\nimport { Component, EventEmitter, Input, OnInit, Output } from '@angular/core';\nimport {\n IonButton,\n IonButtons,\n IonCard,\n IonCardContent,\n IonCardHeader,\n IonCardSubtitle,\n IonCardTitle,\n IonCheckbox,\n IonIcon,\n} from '@ionic/angular/standalone';\nimport { AvatarComponent } from '../../atoms/avatar/avatar.component';\nimport { ButtonComponent } from '../../atoms/button/button.component';\nimport { ImageComponent } from '../../atoms/image/image.component';\nimport { TextComponent } from '../../atoms/text/text.component';\nimport { ToolbarActionType } from '../../types';\nimport { CardClickEvent, CardMetadata, CardSection, CardType } from './types';\n\n@Component({\n selector: 'val-card',\n standalone: true,\n imports: [\n CommonModule,\n ButtonComponent,\n AvatarComponent,\n ImageComponent,\n TextComponent,\n IonCard,\n IonCardContent,\n IonCardHeader,\n IonCardTitle,\n IonCardSubtitle,\n IonCheckbox,\n IonButtons,\n IonButton,\n IonIcon,\n ],\n template: `\n <ion-card *ngIf=\"props.type === types.native\">\n <img alt=\"image\" [src]=\"props.image\" />\n <ion-card-header *ngIf=\"props.title || props.overtitle\">\n <ion-card-title *ngIf=\"props.title\">{{ props.title }}</ion-card-title>\n <ion-card-subtitle *ngIf=\"props.overtitle\">{{ props.overtitle }}</ion-card-subtitle>\n </ion-card-header>\n\n <ion-card-content *ngIf=\"props.content\">{{ props.content }}</ion-card-content>\n\n <val-button\n *ngFor=\"let b of props.footerActions\"\n [props]=\"b\"\n (onClick)=\"clickHandler(sections.footer, b.token)\"\n ></val-button>\n </ion-card>\n\n <ion-card\n *ngIf=\"props.type === types.tappable\"\n (click)=\"clickHandler(sections.content, props.token)\"\n class=\"tapable\"\n >\n <img alt=\"image\" [src]=\"props.image\" />\n <ion-card-header *ngIf=\"props.title || props.overtitle\">\n <ion-card-title *ngIf=\"props.title\">{{ props.title }}</ion-card-title>\n <ion-card-subtitle *ngIf=\"props.overtitle\">{{ props.overtitle }}</ion-card-subtitle>\n </ion-card-header>\n\n <ion-card-content *ngIf=\"props.content\">{{ props.content }}</ion-card-content>\n </ion-card>\n\n <ion-card\n *ngIf=\"props.type === types.checker\"\n (click)=\"clickHandler(sections.content, props.token)\"\n class=\"tapable\"\n >\n <ion-card-header *ngIf=\"props.title || props.overtitle\" class=\"checker\">\n <div>\n <ion-card-subtitle *ngIf=\"props.overtitle\">{{ props.overtitle }}</ion-card-subtitle>\n <ion-card-title *ngIf=\"props.title\">{{ props.title }}</ion-card-title>\n </div>\n <div>\n <ion-checkbox [checked]=\"props.selected\"></ion-checkbox>\n </div>\n </ion-card-header>\n\n <ion-card-content *ngIf=\"props.content\">{{ props.content }}</ion-card-content>\n </ion-card>\n\n <ion-card *ngIf=\"props.type === types.complex\" class=\"complex\">\n <ion-card-header class=\"complex-header\">\n <ion-buttons style=\"display: flex; align-items: center\" *ngIf=\"props.leftActions.length > 0\">\n <ng-container *ngFor=\"let action of props.leftActions\">\n <ion-button\n *ngIf=\"action.type === actionTypes.ICON\"\n (click)=\"clickHandler(sections.headerLeft, action.token)\"\n >\n <ion-icon slot=\"icon-only\" [name]=\"action.description\" color=\"dark\"></ion-icon>\n </ion-button>\n <val-avatar\n style=\"margin-right: 4px; cursor: pointer\"\n *ngIf=\"action.type === actionTypes.AVATAR\"\n [props]=\"{ size: 'small', image: action.description, default: '' }\"\n (onClick)=\"clickHandler(sections.headerLeft, action.token)\"\n ></val-avatar>\n <val-image\n *ngIf=\"action.type === actionTypes.IMAGE\"\n [props]=\"action.image\"\n (click)=\"clickHandler(sections.headerLeft, action.token)\"\n ></val-image>\n <ion-button\n *ngIf=\"action.type === actionTypes.BUTTON\"\n (click)=\"clickHandler(sections.headerLeft, action.token)\"\n >\n {{ action.description }}\n </ion-button>\n <div *ngIf=\"props.headerText\">\n <val-text [props]=\"{ content: props.headerText, color: 'dark', bold: true, size: 'medium' }\" />\n </div>\n </ng-container>\n </ion-buttons>\n <ion-buttons style=\"display: flex; align-items: center\" *ngIf=\"props.rightActions.length > 0\">\n <ng-container *ngFor=\"let action of props.rightActions\">\n <ion-button\n *ngIf=\"action.type === actionTypes.ICON\"\n (click)=\"clickHandler(sections.headerRight, action.token)\"\n >\n <ion-icon slot=\"icon-only\" [name]=\"action.description\" color=\"dark\"></ion-icon>\n </ion-button>\n <val-avatar\n style=\"margin-right: 4px; cursor: pointer\"\n *ngIf=\"action.type === actionTypes.AVATAR\"\n [props]=\"{ size: 'small', image: action.description, default: '' }\"\n (onClick)=\"clickHandler(sections.headerRight, action.token)\"\n ></val-avatar>\n <val-image\n *ngIf=\"action.type === actionTypes.IMAGE\"\n [props]=\"action.image\"\n (click)=\"clickHandler(sections.headerRight, action.token)\"\n ></val-image>\n <ion-button\n *ngIf=\"action.type === actionTypes.BUTTON\"\n (click)=\"clickHandler(sections.headerRight, action.token)\"\n >\n {{ action.description }}\n </ion-button>\n </ng-container>\n </ion-buttons>\n </ion-card-header>\n\n <div class=\"tapable\" (click)=\"clickHandler(sections.content, props.token)\">\n <ion-card-header *ngIf=\"props.title || props.overtitle\" class=\"complex-header\">\n <div>\n <ion-card-subtitle *ngIf=\"props.overtitle\">{{ props.overtitle }}</ion-card-subtitle>\n <ion-card-title *ngIf=\"props.title\">{{ props.title }}</ion-card-title>\n </div>\n </ion-card-header>\n\n <img alt=\"image\" [src]=\"props.image\" />\n <ion-card-content *ngIf=\"props.content\" class=\"complex-content\">{{ props.content }}</ion-card-content>\n </div>\n <val-button\n *ngFor=\"let b of props.footerActions\"\n [props]=\"b\"\n (onClick)=\"clickHandler(sections.footer, b.token)\"\n ></val-button>\n <ion-buttons\n style=\"display: flex; align-items: center; justify-content: flex-end; margin: 8px\"\n *ngIf=\"props.footerComplexActions.length > 0\"\n >\n <ng-container *ngFor=\"let action of props.footerComplexActions\">\n <ion-button\n *ngIf=\"action.type === actionTypes.ICON\"\n (click)=\"clickHandler(sections.footerExtra, action.token)\"\n >\n <ion-icon slot=\"icon-only\" [name]=\"action.description\" color=\"dark\"></ion-icon>\n </ion-button>\n <val-avatar\n style=\"margin-right: 4px; cursor: pointer\"\n *ngIf=\"action.type === actionTypes.AVATAR\"\n [props]=\"{ size: 'small', image: action.description, default: '' }\"\n (onClick)=\"clickHandler(sections.footerExtra, action.token)\"\n ></val-avatar>\n <val-image\n *ngIf=\"action.type === actionTypes.IMAGE\"\n [props]=\"action.image\"\n (click)=\"clickHandler(sections.footerExtra, action.token)\"\n ></val-image>\n <ion-button\n *ngIf=\"action.type === actionTypes.BUTTON\"\n (click)=\"clickHandler(sections.footerExtra, action.token)\"\n color=\"dark\"\n >\n {{ action.description }}\n </ion-button>\n </ng-container>\n </ion-buttons>\n </ion-card>\n `,\n styleUrls: ['./card.component.scss'],\n})\nexport class CardComponent implements OnInit {\n @Input() props: CardMetadata;\n\n @Output()\n onClick = new EventEmitter<CardClickEvent>();\n\n types = CardType;\n actionTypes = ToolbarActionType;\n sections = CardSection;\n\n constructor() {}\n\n ngOnInit() {}\n\n clickHandler(section: CardSection, token?: string) {\n this.onClick.emit({ section, token });\n }\n}\n","import { CommonModule } from '@angular/common';\nimport { Component, OnInit } from '@angular/core';\nimport { IonCheckbox } from '@ionic/angular/standalone';\n\n@Component({\n selector: 'val-check-input',\n standalone: true,\n imports: [CommonModule, IonCheckbox],\n template: ` <ion-checkbox>I agree to the terms and conditions</ion-checkbox> `,\n styleUrls: ['./check-input.component.scss'],\n})\nexport class CheckInputComponent implements OnInit {\n constructor() {}\n\n ngOnInit() {}\n}\n","import { CommonModule } from '@angular/common';\nimport { Component, Input, OnInit } from '@angular/core';\nimport { ReactiveFormsModule } from '@angular/forms';\nimport { IonCheckbox, IonTextarea } from '@ionic/angular/standalone';\nimport { InputMetadata } from '../../types';\n\n@Component({\n selector: 'val-comment-input',\n standalone: true,\n imports: [CommonModule, ReactiveFormsModule, IonCheckbox, IonTextarea],\n template: `\n <ion-textarea [formControl]=\"props.control\" [counter]=\"true\" [maxlength]=\"props.range.max\"></ion-textarea>\n `,\n styleUrls: ['./comment-input.component.scss'],\n})\nexport class CommentInputComponent implements OnInit {\n @Input() props: InputMetadata;\n\n constructor() {}\n\n ngOnInit() {}\n}\n","import { CommonModule } from '@angular/common';\nimport { Component, Input, OnInit } from '@angular/core';\nimport { IonSpinner, IonText } from '@ionic/angular/standalone';\nimport { ContentLoaderMetadata } from './types';\n\n@Component({\n selector: 'val-content-loader',\n standalone: true,\n imports: [CommonModule, IonSpinner, IonText],\n template: `\n <div [ngClass]=\"['spinner-wrapper', props.size]\">\n <ion-spinner [ngClass]=\"[props.size]\" [name]=\"props.name\" [color]=\"props.color\"></ion-spinner>\n <ion-text [color]=\"props.color\">\n <p>{{ props.text }}</p>\n </ion-text>\n </div>\n `,\n styleUrls: ['./content-loader.component.scss'],\n})\nexport class ContentLoaderComponent implements OnInit {\n @Input()\n props: ContentLoaderMetadata;\n\n constructor() {}\n\n ngOnInit() {}\n}\n","import { CommonModule } from '@angular/common';\nimport { Component, Input, OnInit } from '@angular/core';\nimport { ReactiveFormsModule } from '@angular/forms';\nimport { IonDatetime, IonDatetimeButton, IonModal } from '@ionic/angular/standalone';\nimport { InputMetadata } from '../../types';\n\n@Component({\n selector: 'val-date-input',\n standalone: true,\n imports: [CommonModule, ReactiveFormsModule, IonDatetime, IonDatetimeButton, IonModal],\n template: `\n <div class=\"button-container\">\n <ion-datetime-button class=\"action\" datetime=\"datetime\"></ion-datetime-button>\n </div>\n <ion-modal [keepContentsMounted]=\"true\">\n <ng-template>\n <ion-datetime\n [formControl]=\"props.control\"\n id=\"datetime\"\n presentation=\"date\"\n locale=\"es-ES\"\n [firstDayOfWeek]=\"1\"\n [showDefaultButtons]=\"true\"\n doneText=\"Aceptar\"\n cancelText=\"Cancelar\"\n formatOptions=\"{\n date: { weekday: 'short', month: 'long', day: '2-digit' },\n time: {\n hour: '2-digit',\n minute: '2-digit',\n },\n }\"\n >\n <span slot=\"title\">{{ props.hint }}</span>\n </ion-datetime>\n </ng-template>\n </ion-modal>\n `,\n styleUrls: ['./date-input.component.scss'],\n})\nexport class DateInputComponent implements OnInit {\n @Input() props: InputMetadata;\n\n constructor() {}\n\n ngOnInit() {}\n}\n","import { CommonModule } from '@angular/common';\nimport { Component, Input, OnInit } from '@angular/core';\nimport { ReactiveFormsModule } from '@angular/forms';\nimport { IonInput } from '@ionic/angular/standalone';\nimport { InputMetadata } from '../../types';\n\n@Component({\n selector: 'val-email-input',\n standalone: true,\n imports: [CommonModule, ReactiveFormsModule, IonInput],\n template: ` <ion-input [formControl]=\"props.control\" type=\"email\" [placeholder]=\"props.placeholder\"></ion-input> `,\n styleUrls: ['./email-input.component.scss'],\n})\nexport class EmailInputComponent implements OnInit {\n @Input() props: InputMetadata;\n\n constructor() {}\n\n ngOnInit() {}\n}\n","export function resolveColor(color: string): string {\n // Si el color empieza con \"--\", se asume que es una variable CSS válida\n if (color.startsWith('--')) {\n return `var(${color})`;\n }\n\n // Lista de colores predefinidos de Ionic\n const ionicColors = [\n 'primary',\n 'secondary',\n 'tertiary',\n 'success',\n 'warning',\n 'danger',\n 'light',\n 'medium',\n 'dark',\n ];\n\n // Verificar si el color es un color de Ionic\n if (ionicColors.includes(color)) {\n return `var(--ion-color-${color})`;\n }\n\n // Si no es una variable CSS ni un color de Ionic, devolver el color tal cual\n return color;\n}\n","import { Component, Input } from '@angular/core';\nimport { IonText } from '@ionic/angular/standalone';\nimport { ExpandableTextInput } from './types';\nimport { resolveColor } from '../../../shared/utils/styles';\n\n@Component({\n selector: 'val-expandable-text',\n standalone: true,\n imports: [IonText],\n template: `\n <div class=\"description-container\" [class.expanded]=\"expanded\" [class.has-gradient]=\"!expanded && isTruncated\">\n <ion-text>\n <p class=\"description\">\n <span class=\"content\">{{ expanded ? props.content : truncatedText }}</span>\n @if (!expanded && isTruncated) {\n <span class=\"see-more\" [style.color]=\"this.color()\" (click)=\"toggleExpand()\">\n {{ props.expandText || 'ver más' }}\n </span>\n }\n </p>\n </ion-text>\n </div>\n `,\n styles: [\n `\n .description-container {\n position: relative;\n overflow: hidden;\n max-height: 10rem; /* Altura para texto truncado */\n transition: max-height 0.3s ease-in-out;\n }\n\n .description-container.expanded {\n max-height: none; /* Sin límite de altura al expandir */\n }\n\n .description {\n position: relative;\n overflow: hidden;\n text-overflow: ellipsis;\n }\n\n .description-container:not(.expanded) .description::after {\n content: '';\n position: absolute;\n bottom: 0;\n left: 0;\n right: 0;\n height: 3.5rem; /* Altura del gradiente */\n background: linear-gradient(to top, var(--ion-background-color), rgba(255, 255, 255, 0));\n pointer-events: none; /* Ignorar interacciones en el gradiente */\n }\n\n .description-container:not(.has-gradient) .description::after {\n background: transparent; /* Fondo transparente si no hay gradiente */\n }\n\n .see-more {\n position: relative;\n font-weight: bold;\n cursor: pointer;\n z-index: 1;\n margin-left: 0.3rem;\n }\n `,\n ],\n})\nexport class ExpandableTextComponent {\n @Input() props: ExpandableTextInput;\n expanded = false;\n defaultColor = 'primary';\n\n get truncatedText(): string {\n const maxLength = this.props.limit || 100; // Longitud por defecto\n return this.props.content?.length > maxLength ? this.props.content.slice(0, maxLength) + '...' : this.props.content;\n }\n\n get isTruncated(): boolean {\n return this.props.content?.length > (this.props.limit || 100);\n }\n\n toggleExpand() {\n this.expanded = !this.expanded;\n }\n\n color() {\n return resolveColor(this.props.color || this.defaultColor);\n }\n}\n","import { Component, Input, OnInit, ViewChild } from '@angular/core';\nimport { IonIcon } from '@ionic/angular/standalone';\nimport { ButtonComponent } from '../../atoms/button/button.component';\nimport { PrimarySolidDefaultRoundButton } from '../../atoms/button/factory';\nimport { TextComponent } from '../../atoms/text/text.component';\nimport { ButtonMetadata, InputMetadata } from '../../types';\n\n@Component({\n selector: 'val-file-input',\n standalone: true,\n imports: [IonIcon, TextComponent, ButtonComponent],\n template: `\n <div class=\"file-container\">\n <input style=\"display: none\" type=\"file\" (change)=\"onFileSelected($event)\" #fileInput />\n <div class=\"name-container\">\n <ion-icon [name]=\"selectedFile ? 'checkmark-circle-outline' : 'alert-circle-outline'\"></ion-icon>\n <val-text\n style=\"margin-left: 4px;\"\n [props]=\"{\n content: selectedFile ? selectedFile.name : 'No has seleccionado archivo',\n color: 'dark',\n bold: false,\n size: 'medium',\n }\"\n ></val-text>\n </div>\n <val-button [props]=\"contrastButton\" (onClick)=\"fileInput.click()\"></val-button>\n </div>\n `,\n styleUrls: ['./file-input.component.scss'],\n})\nexport class FileInputComponent implements OnInit {\n @ViewChild('fileInput') fileInput;\n\n @Input() props: InputMetadata;\n\n contrastButton: ButtonMetadata = {\n ...PrimarySolidDefaultRoundButton('Subir archivo'),\n color: 'light',\n };\n selectedFile: File;\n\n constructor() {}\n\n ngOnInit() {}\n\n onFileSelected(event): void {\n this.selectedFile = event.target.files[0];\n this.props.control.setValue(this.selectedFile);\n }\n\n reset(): void {\n this.selectedFile = null;\n this.fileInput.nativeElement.value = '';\n }\n}\n","import { CommonModule } from '@angular/common';\nimport { Component, Input, OnInit } from '@angular/core';\nimport { TextComponent } from '../../atoms/text/text.component';\nimport { InputMetadata } from '../../types';\n\n@Component({\n selector: 'val-hint',\n standalone: true,\n imports: [CommonModule, TextComponent],\n template: `\n <div class=\"hint-container\" *ngIf=\"props.control.invalid && (props.control.touched || props.control.dirty)\">\n <val-text\n *ngFor=\"let e of Errors\"\n [props]=\"{\n content: e,\n color: 'danger',\n bold: false,\n size: 'small',\n }\"\n ></val-text>\n </div>\n `,\n styleUrls: ['./hint.component.scss'],\n})\nexport class HintComponent implements OnInit {\n @Input() props: InputMetadata;\n\n constructor() {}\n\n ngOnInit() {}\n\n get Errors(): string[] {\n const keys = Object.keys(this.props.errors);\n const errors = [];\n keys.map((e: string) => {\n if (this.props.control.hasError(e)) {\n errors.push(this.props.errors[e]);\n }\n });\n return errors;\n }\n}\n","import { Component, Input, OnInit } from '@angular/core';\nimport { FormControl, ReactiveFormsModule } from '@angular/forms';\nimport { IonDatetime } from '@ionic/angular/standalone';\nimport { InputMetadata } from '../../types';\n\n@Component({\n selector: 'val-hour-input',\n standalone: true,\n imports: [ReactiveFormsModule, IonDatetime],\n template: ` <ion-datetime [formControl]=\"props.control\" presentation=\"time\"></ion-datetime>`,\n styleUrls: ['./hour-input.component.scss'],\n})\nexport class HourInputComponent implements OnInit {\n @Input() props: InputMetadata;\n\n constructor() {}\n\n ngOnInit() {}\n}\n","/* eslint-disable no-underscore-dangle */\n\nimport { Injectable } from '@angular/core';\nimport { Browser, OpenOptions } from '@capacitor/browser';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class InAppBrowserService {\n options: OpenOptions = {\n presentationStyle: 'popover',\n url: '',\n };\n constructor() {}\n\n async openWithInAppBrowser(url: string) {\n await Browser.open({ ...this.options, url });\n }\n}\n","import { inject, Injectable } from '@angular/core';\nimport { NavigationExtras, Router } from '@angular/router';\nimport { InAppBrowserService } from './in-app-browser.service';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class NavigationService {\n data: any;\n router = inject(Router);\n inAppBrowser = inject(InAppBrowserService);\n\n constructor() {}\n\n navigateInApp(url: string) {\n this.inAppBrowser.openWithInAppBrowser(url);\n }\n\n navigateWithData(route: string, dataTransfer: any) {\n const navigationExtras: NavigationExtras = {\n state: {\n data: dataTransfer,\n },\n };\n\n this.router.navigate([route], navigationExtras);\n }\n\n navigateByUrl(url: string) {\n this.router\n .navigateByUrl(url)\n .then(response => {})\n .catch(error => {});\n }\n\n openInNewTab(url: string): void {\n window.open(url, '_blank', 'noopener,noreferrer');\n }\n}\n","import { Component, EventEmitter, inject, Input, OnInit, Output } from '@angular/core';\nimport { IonButton, IonIcon, IonText } from '@ionic/angular/standalone';\nimport { addIcons } from 'ionicons';\nimport { chevronForwardOutline } from 'ionicons/icons';\nimport { NavigationService } from '../../../services/navigation.service';\nimport { LinkMetadata } from './types';\n\n@Component({\n selector: 'val-link',\n standalone: true,\n imports: [IonButton, IonIcon, IonText],\n template: `\n <div>\n <ion-button type=\"button\" [color]=\"props.color\" fill=\"clear\" [size]=\"props.size\" (click)=\"onClickHandler()\">\n <ion-icon slot=\"end\" name=\"chevron-forward-outline\"></ion-icon>\n <ion-text>{{ props.text }}</ion-text>\n </ion-button>\n </div>\n `,\n styleUrls: ['./link.component.scss'],\n})\nexport class LinkComponent implements OnInit {\n @Input()\n props: LinkMetadata;\n\n @Output()\n onClick = new EventEmitter<string>();\n\n service = inject(NavigationService);\n\n constructor() {\n addIcons({ chevronForwardOutline });\n }\n\n ngOnInit() {}\n\n onClickHandler() {\n this.onClick.emit(this.props.token);\n\n switch (this.props.type) {\n case 'internal':\n this.service.navigateByUrl(this.props.link);\n break;\n case 'browse':\n this.service.navigateInApp(this.props.link);\n break;\n case 'tab':\n this.service.openInNewTab(this.props.link);\n break;\n }\n }\n}\n","import { CommonModule } from '@angular/common';\nimport { Component, Input, OnInit } from '@angular/core';\nimport { HrefComponent } from '../../atoms/href/href.component';\nimport { TitleComponent } from '../../atoms/title/title.component';\nimport { LinkCakeMetadata } from './types';\n\n@Component({\n selector: 'val-links-cake',\n standalone: true,\n imports: [CommonModule, TitleComponent, HrefComponent],\n template: `\n <div>\n @if (props.title) {\n <div class=\"title\">\n <val-title [props]=\"{ content: props.title, color: 'dark', bold: false, size: props.size }\"></val-title>\n </div>\n }\n <div class=\"link\" *ngFor=\"let l of props.links\">\n <val-href [props]=\"l\"></val-href>\n </div>\n </div>\n `,\n styleUrls: ['./links-cake.component.scss'],\n})\nexport class LinksCakeComponent implements OnInit {\n @Input()\n props: LinkCakeMetadata;\n\n constructor() {}\n\n ngOnInit() {}\n}\n","import { CommonModule } from '@angular/common';\nimport { Component, Input, OnInit } from '@angular/core';\nimport { BoxComponent } from '../../atoms/box/box.component';\nimport { TextComponent } from '../../atoms/text/text.component';\nimport { NotesBoxMetadata } from './types';\n\n@Component({\n selector: 'val-notes-box',\n standalone: true,\n imports: [CommonModule, BoxComponent, TextComponent],\n template: `\n <val-box [props]=\"{ icon: '', bordered: false, color: props.color, leftBorder: true, rounded: props.rounded }\">\n <div [ngClass]=\"['content-container', props.size]\" body>\n @if (props.prefix) {\n <val-text\n [props]=\"{ content: props.prefix, color: props.textColor, bold: true, size: props.size }\"\n ></val-text>\n }\n <val-text [props]=\"{ content: props.text, color: props.textColor, bold: false, size: props.size }\"></val-text>\n </div>\n </val-box>\n `,\n styleUrls: ['./notes-box.component.scss'],\n})\nexport class NotesBoxComponent implements OnInit {\n @Input()\n props: NotesBoxMetadata;\n\n constructor() {}\n\n ngOnInit() {}\n}\n","import { Component, Input, OnInit } from '@angular/core';\nimport { ReactiveFormsModule } from '@angular/forms';\nimport { IonInput } from '@ionic/angular/standalone';\nimport { InputMetadata } from '../../types';\n\n@Component({\n selector: 'val-number-input',\n standalone: true,\n imports: [ReactiveFormsModule, IonInput],\n template: ` <ion-input [formControl]=\"props.control\" type=\"number\" [placeholder]=\"props.placeholder\"></ion-input> `,\n styleUrls: ['./number-input.component.scss'],\n})\nexport class NumberInputComponent implements OnInit {\n @Input() props: InputMetadata;\n\n constructor() {}\n\n ngOnInit() {}\n}\n","import { Component, Input, OnInit } from '@angular/core';\nimport { ReactiveFormsModule } from '@angular/forms';\nimport { IonButton, IonIcon, IonInput } from '@ionic/angular/standalone';\nimport { InputMetadata } from '../../types';\nimport { IconService } from '../../../services/icons.service';\n\n@Component({\n selector: 'val-password-input',\n standalone: true,\n imports: [ReactiveFormsModule, IonInput, IonButton, IonIcon],\n template: `\n <div class=\"input-container\">\n <ion-input\n class=\"sign-in__input-password\"\n [formControl]=\"props.control\"\n [type]=\"hidePassword ? 'password' : 'text'\"\n [placeholder]=\"props.placeholder\"\n ></ion-input>\n <ion-button color=\"dark\" fill=\"clear\" (click)=\"hidePassword = !hidePassword\" size=\"small\">\n <ion-icon slot=\"icon-only\" [name]=\"hidePassword ? 'eye-off-outline' : 'eye-outline'\"></ion-icon>\n </ion-button>\n </div>\n `,\n styleUrls: ['./password-input.component.scss'],\n})\nexport class PasswordInputComponent implements OnInit {\n @Input() props: InputMetadata;\n\n hidePassword = true;\n\n constructor(\n icon: IconService,\n ) {}\n\n ngOnInit() {}\n}\n","import { Component, Input, OnInit, ViewChild } from '@angular/core';\nimport { NgOtpInputComponent, NgOtpInputConfig, NgOtpInputModule } from 'ng-otp-input';\nimport { InputMetadata } from '../../types';\n\n@Component({\n selector: 'val-pin-input',\n standalone: true,\n imports: [NgOtpInputModule],\n template: `\n <div class=\"otp\">\n <ng-otp-input [formCtrl]=\"props.control\" [config]=\"otpInputConfig\"></ng-otp-input>\n </div>\n `,\n styleUrls: ['./pin-input.component.scss'],\n})\nexport class PinInputComponent implements OnInit {\n @ViewChild(NgOtpInputComponent, { static: false }) pinCode: NgOtpInputComponent | undefined;\n\n @Input() props: InputMetadata;\n\n codeLength = 5;\n otpInputConfig: NgOtpInputConfig = {\n inputStyles: {\n 'font-size': '36px',\n width: '55px',\n height: '55px',\n },\n inputClass: 'otp-input-box',\n length: this.codeLength,\n allowNumbersOnly: true,\n };\n\n constructor() {}\n\n ngOnInit() {}\n\n reset() {\n if (this.pinCode) {\n this.pinCode.setValue('');\n }\n }\n}\n","import { CommonModule } from '@angular/common';\nimport { Component, Input, OnInit } from '@angular/core';\nimport { DisplayComponent } from '../../atoms/display/display.component';\nimport { TitleComponent } from '../../atoms/title/title.component';\nimport { TitleBlockMetada } from './types';\n\n@Component({\n selector: 'val-title-block',\n standalone: true,\n imports: [CommonModule, TitleComponent, DisplayComponent],\n template: `\n <div [ngClass]=\"['titles-container', props.position]\">\n <val-title\n *ngIf=\"props.aboveTitle\"\n [props]=\"{\n content: props.aboveTitle.text | uppercase,\n color: props.aboveTitle.color,\n bold: false,\n size: props.aboveTitle.size,\n }\"\n ></val-title>\n <val-display\n *ngIf=\"props.title\"\n [props]=\"{\n content: props.title.text,\n color: props.title.color,\n size: props.title.size,\n }\"\n ></val-display>\n <val-title\n *ngIf=\"props.bellowTitle\"\n [props]=\"{\n content: props.bellowTitle.text,\n color: props.bellowTitle.color,\n bold: false,\n size: props.bellowTitle.size,\n }\"\n ></val-title>\n </div>\n `,\n styleUrls: ['./title-block.component.scss'],\n})\nexport class TitleBlockComponent implements OnInit {\n @Input()\n props: TitleBlockMetada;\n\n constructor() {}\n\n ngOnInit() {}\n}\n","import { Component, Input, OnInit } from '@angular/core';\nimport { ProgressBarComponent } from '../../atoms/progress-bar/progress-bar.component';\nimport { TextComponent } from '../../atoms/text/text.component';\nimport { TitleBlockComponent } from '../title-block/title-block.component';\nimport { ProgressStatusMetadata } from './types';\n\n//TODO: support automatic or manual interval for messages. Include the interval number as a parameter.\n@Component({\n selector: 'val-progress-status',\n standalone: true,\n imports: [TitleBlockComponent, ProgressBarComponent, TextComponent],\n template: `\n <div class=\"status-container\">\n <div class=\"title-container\">\n <val-title-block\n [props]=\"{\n position: 'center',\n aboveTitle: props.titles.aboveTitle,\n title: props.titles.title,\n bellowTitle: props.titles.bellowTitle,\n }\"\n ></val-title-block>\n </div>\n <div class=\"progress-bar-container\">\n <val-progress-bar\n [props]=\"{\n progress: props.progress,\n size: 'xlarge',\n color: props.color,\n rounded: true,\n type: 'determinate',\n buffer: 1,\n }\"\n ></val-progress-bar>\n </div>\n <div class=\"subtitle-container\">\n <div class=\"subtitle\" [class.blink]=\"blinking\">\n <val-text [props]=\"{ content: Content, color: 'medium', bold: false, size: props.size }\"></val-text>\n </div>\n </div>\n </div>\n `,\n styleUrls: ['./progress-status.component.scss'],\n})\nexport class ProgressStatusComponent implements OnInit {\n @Input()\n props: ProgressStatusMetadata;\n\n currentIndex = 0;\n blinking = false;\n\n constructor() {}\n\n ngOnInit() {\n setInterval(() => {\n this.blinking = !this.blinking;\n }, 1000);\n\n setInterval(() => {\n this.getNextMessage();\n }, 9000);\n }\n\n get Content(): string {\n return this.props.messages[this.currentIndex];\n }\n\n getNextMessage(): void {\n this.currentIndex = (this.currentIndex + 1) % this.props.messages.length;\n }\n}\n","import { CommonModule } from '@angular/common';\nimport { Component, EventEmitter, Input, OnInit, Output } from '@angular/core';\nimport { BoxComponent } from '../../atoms/box/box.component';\nimport { HrefComponent } from '../../atoms/href/href.component';\nimport { TextComponent } from '../../atoms/text/text.component';\nimport { ButtonGroupComponent } from '../button-group/button-group.component';\nimport { PrompterMetadata } from './types';\n\n@Component({\n selector: 'val-prompter',\n standalone: true,\n imports: [CommonModule, BoxComponent, ButtonGroupComponent, TextComponent, HrefComponent],\n template: `\n <val-box\n class=\"teleprompter-container\"\n [props]=\"{ icon: '', bordered: props.bordered, color: props.color, leftBorder: false }\"\n >\n <div class=\"container\" [class.teleprompter-content]=\"props.teleprompter\" body>\n <div>\n <val-text\n [props]=\"{\n content: props.content,\n color: '',\n bold: true,\n size: props.size,\n }\"\n ></val-text>\n </div>\n @if (props.buttons || props.hrefs) {\n <div class=\"actions-container\">\n <val-button-group\n class=\"buttons-container\"\n [props]=\"{ buttons: props.buttons, position: 'right', columned: false }\"\n (onClick)=\"clickHandler($event)\"\n ></val-button-group>\n <val-href\n class=\"link\"\n *ngFor=\"let l of props.hrefs\"\n [props]=\"l\"\n (onClick)=\"clickHandler($event)\"\n ></val-href>\n </div>\n }\n </div>\n </val-box>\n `,\n styleUrls: ['./prompter.component.scss'],\n})\nexport class PrompterComponent implements OnInit {\n @Input()\n props: PrompterMetadata;\n\n @Output()\n onClick = new EventEmitter<string>();\n\n constructor() {}\n\n ngOnInit() {}\n\n clickHandler(token?: string) {\n this.onClick.emit(token);\n }\n}\n","import { NgFor } from '@angular/common';\nimport { Component, Input, OnInit } from '@angular/core';\nimport { ReactiveFormsModule } from '@angular/forms';\nimport { IonRadio, IonRadioGroup } from '@ionic/angular/standalone';\nimport { InputMetadata } from '../../types';\n\n@Component({\n selector: 'val-radio-input',\n standalone: true,\n imports: [NgFor, ReactiveFormsModule, IonRadioGroup, IonRadio],\n template: `\n <ion-radio-group [allowEmptySelection]=\"true\" [formControl]=\"props.control\">\n <ng-container *ngFor=\"let o of props.options\">\n <ion-radio [value]=\"o.id\">{{ o.name }}</ion-radio>\n <br />\n </ng-container>\n </ion-radio-group>\n `,\n styleUrls: ['./radio-input.component.scss'],\n})\nexport class RadioInputComponent implements OnInit {\n @Input() props: InputMetadata;\n\n constructor() {}\n\n ngOnInit() {}\n}\n","export const replaceSpecialChars = (text: string) =>\n text.normalize('NFD').replace(/[\\u0300-\\u036f]/g, '');\n","import { Component, EventEmitter, Input, Output } from '@angular/core';\nimport { IonSearchbar } from '@ionic/angular/standalone';\n\n@Component({\n selector: 'val-searchbar',\n standalone: true,\n imports: [IonSearchbar],\n template: `\n <ion-searchbar\n mode=\"ios\"\n debounce=\"500\"\n placeholder=\"Búsqueda\"\n [disabled]=\"disabled\"\n showCancelButton=\"focus\"\n cancelButtonText=\"Cancelar\"\n (ionInput)=\"onSearch($event)\"\n (ionBlur)=\"onBlur()\"\n (ionFocus)=\"onFocus()\"\n >\n </ion-searchbar>\n `,\n styleUrls: ['./searchbar.component.scss'],\n})\nexport class SearchbarComponent {\n @Input() disabled: boolean;\n\n @Output() focusEvent = new EventEmitter<void>();\n\n @Output() blurEvent = new EventEmitter<void>();\n\n @Output() filterEvent = new EventEmitter<string>();\n\n constructor() {}\n\n onSearch($event: any) {\n const searchTerm = $event.detail.value;\n this.filterEvent.emit(searchTerm);\n }\n\n onFocus() {\n this.focusEvent.emit();\n }\n\n onBlur() {\n this.blurEvent.emit();\n }\n}\n","/* eslint-disable @typescript-eslint/naming-convention */\nimport { CommonModule } from '@angular/common';\nimport { Component, Input, OnInit } from '@angular/core';\nimport { ReactiveFormsModule } from '@angular/forms';\nimport {\n IonButton,\n IonButtons,\n IonContent,\n IonFooter,\n IonHeader,\n IonInput,\n IonItem,\n IonLabel,\n IonList,\n IonModal,\n IonRadio,\n IonRadioGroup,\n IonSelect,\n IonTitle,\n IonToolbar,\n} from '@ionic/angular/standalone';\nimport { replaceSpecialChars } from '../../../shared/utils/text';\nimport { InputMetadata, InputOption } from '../../types';\nimport { SearchbarComponent } from '../searchbar/searchbar.component';\n\nexport const SEARCH_SELECTOR_NO_RESULT = {\n title: 'No se encontraron resultados',\n subtitle: 'Intenta con otras palabras.',\n};\n\nexport const SEARCH_SELECTOR_NO_OPTIONS = {\n title: 'No hay opciones',\n subtitle: 'El campo seleccionado no tiene opciones. Intenta nuevamente más tarde.',\n};\n\n@Component({\n selector: 'val-search-selector-input',\n standalone: true,\n imports: [\n CommonModule,\n ReactiveFormsModule,\n IonHeader,\n IonToolbar,\n IonTitle,\n IonButtons,\n IonButton,\n IonFooter,\n IonList,\n IonContent,\n IonItem,\n IonLabel,\n IonRadio,\n SearchbarComponent,\n IonModal,\n IonInput,\n IonSelect,\n IonRadioGroup,\n ],\n template: `\n <!-- <ion-select\n id=\"select-search-option-action\"\n [formControl]=\"props.control\"\n [label]=\"props.label\"\n [interfaceOptions]=\"customModalOptions\"\n interface=\"popover\"\n [placeholder]=\"[props.placeholder]\"\n cancelText=\"Cancelar\"\n okText=\"Ok\"\n (mousedown)=\"preventDefaultBehavior($event)\"\n >\n </ion-select> -->\n <ion-input\n type=\"text\"\n [value]=\"showSelected()\"\n [placeholder]=\"props.placeholder\"\n readonly\n (mousedown)=\"preventDefaultBehavior($event)\"\n />\n\n <!-- <ion-input [formControl]=\"props.control\" type=\"hidden\"></ion-input> -->\n\n <ion-modal #modal [isOpen]=\"isModalOpen\">\n <ng-template>\n <ion-header>\n <ion-toolbar>\n <ion-title>Seleccione</ion-title>\n <ion-buttons slot=\"end\">\n <ion-button (click)=\"dismiss()\">Cancelar</ion-button>\n </ion-buttons>\n </ion-toolbar>\n </ion-header>\n\n <ion-content>\n <val-searchbar (filterEvent)=\"onFilter($event)\" (focusEvent)=\"onFocus()\" (blurEvent)=\"onBlur()\" />\n\n <div class=\"unit-list-container\" *ngIf=\"listVolatile.length > 0\">\n <ion-list class=\"unit-list\">\n <ion-radio-group allow-empty-selection [formControl]=\"props.control\">\n <ion-item *ngFor=\"let option of listVolatile\">\n <ion-radio justify=\"space-between\" color=\"primary\" [value]=\"option.id\">{{ option.name }}</ion-radio>\n </ion-item>\n </ion-radio-group>\n </ion-list>\n </div>\n </ion-content>\n <ion-footer style=\"display: flex;justify-content: space-around;padding: 8px 0px;\">\n <ion-button color=\"dark\" shape=\"round\" fill=\"outline\" (click)=\"dismiss()\"> Cancelar </ion-button>\n <ion-button color=\"primary\" shape=\"round\" (click)=\"applyChanges()\"> Confirmar </ion-button>\n </ion-footer>\n </ng-template>\n </ion-modal>\n `,\n styleUrls: ['./search-selector-input.component.scss'],\n})\nexport class SelectorModalComponent implements OnInit {\n @Input() props: InputMetadata;\n\n @Input() selection = -1;\n\n @Input() showAllAtStart = true;\n\n searching = false;\n isModalOpen = false;\n\n listVolatile: InputOption[] = [];\n\n noResult = SEARCH_SELECTOR_NO_RESULT;\n noNothing = SEARCH_SELECTOR_NO_OPTIONS;\n\n customModalOptions = {\n header: 'Seleccione',\n breakpoints: [0, 0.6],\n initialBreakpoint: 0.6,\n };\n\n constructor() {}\n\n ngOnInit() {\n this.listVolatile = this.props.options;\n }\n\n dismiss() {\n this.toggleModal(false);\n }\n\n applyChanges() {\n console.log(this.props.control);\n if (this.props.control.invalid) {\n return;\n }\n }\n\n onFilter(event: string) {\n console.log('💡 onSearch::: ', event);\n if (!event) {\n this.listVolatile = this.props.options;\n return;\n }\n if (this.listVolatile.length === 0) {\n return;\n }\n const text = replaceSpecialChars(event.toLowerCase());\n const filter = this.listVolatile.filter(element => {\n const values = Object.values(element).map((a: string) => replaceSpecialChars(`${a}`).toLocaleLowerCase());\n if (values.some((value: string) => value.indexOf(text) > -1)) {\n return true;\n }\n return false;\n });\n console.log('filter: ', filter);\n this.listVolatile = filter;\n }\n\n onBlur() {\n this.searching = false;\n }\n\n onFocus() {\n this.searching = true;\n }\n\n showSelected(): string {\n const option = this.props.options.find(x => x.id === this.props.control.value);\n if (option) {\n return option.name;\n }\n return '';\n }\n\n toggleModal(isOpen) {\n this.isModalOpen = isOpen;\n }\n\n preventDefaultBehavior(event: MouseEvent) {\n event.preventDefault(); // Evita el comportamiento predeterminado del selector\n event.stopPropagation(); // Detiene la propagación del evento\n this.toggleModal(!this.isModalOpen); // Abre el modal personalizado\n }\n}\n","import { Component, Input, OnInit } from '@angular/core';\nimport { ReactiveFormsModule } from '@angular/forms';\nimport { IonSelect, IonSelectOption } from '@ionic/angular/standalone';\nimport { InputMetadata } from '../../types';\n\n@Component({\n selector: 'val-select-input',\n standalone: true,\n imports: [ReactiveFormsModule, IonSelect, IonSelectOption],\n template: `\n <ion-select\n [formControl]=\"props.control\"\n [label]=\"props.label\"\n [interfaceOptions]=\"customModalOptions\"\n interface=\"modal\"\n [placeholder]=\"[props.placeholder]\"\n cancelText=\"Cancelar\"\n okText=\"Ok\"\n >\n @for (o of props.options; track o.id) {\n <ion-select-option [value]=\"o.id\">{{ o.name }}</ion-select-option>\n }\n </ion-select>\n `,\n styleUrls: ['./select-input.component.scss'],\n})\nexport class SearchSelectorComponent implements OnInit {\n @Input() props: InputMetadata;\n\n customModalOptions = {\n header: 'Seleccione',\n breakpoints: [0, 0.6],\n initialBreakpoint: 0.6,\n };\n\n constructor() {}\n\n ngOnInit() {\n this.customModalOptions.header = this.props.label;\n }\n}\n","import { Component, Input, OnInit } from '@angular/core';\nimport { FormControl, ReactiveFormsModule } from '@angular/forms';\nimport { IonInput } from '@ionic/angular/standalone';\nimport { InputMetadata } from '../../types';\n\n@Component({\n selector: 'val-text-input',\n standalone: true,\n imports: [ReactiveFormsModule, IonInput],\n template: ` <ion-input [formControl]=\"props.control\" type=\"text\" [placeholder]=\"props.placeholder\"></ion-input> `,\n styleUrls: ['./text-input.component.scss'],\n})\nexport class TextInputComponent implements OnInit {\n @Input() props: InputMetadata;\n\n constructor() {}\n\n ngOnInit() {}\n}\n","import { CommonModule } from '@angular/common';\nimport { Component, EventEmitter, Input, OnInit, Output } from '@angular/core';\nimport { BoxComponent } from '../../atoms/box/box.component';\nimport { ButtonGroupComponent } from '../../molecules/button-group/button-group.component';\nimport { TitleBlockComponent } from '../../molecules/title-block/title-block.component';\nimport { BannerMetadata } from './types';\n\n@Component({\n selector: 'val-banner',\n standalone: true,\n imports: [CommonModule, BoxComponent, TitleBlockComponent, ButtonGroupComponent],\n template: `\n <val-box\n [props]=\"{ icon: props.closable ? 'close-outline' : '', bordered: props.bordered, color: '' }\"\n (onClick)=\"closeHandler()\"\n >\n <div [ngClass]=\"['content-container', props.mode, props.alignment]\" body>\n <val-title-block\n [props]=\"{\n position: props.mode === 'center' ? 'center' : 'left',\n aboveTitle: props.content.aboveTitle,\n title: props.content.title,\n bellowTitle: props.content.bellowTitle,\n }\"\n ></val-title-block>\n @if (props.actions) {\n <val-button-group\n class=\"buttons-container\"\n [props]=\"props.actions\"\n (onClick)=\"clickHandler($event)\"\n ></val-button-group>\n }\n </div>\n </val-box>\n `,\n styleUrls: ['./banner.component.scss'],\n})\nexport class BannerComponent implements OnInit {\n @Input()\n props: BannerMetadata;\n\n @Output()\n onClick = new EventEmitter<string>();\n\n @Output()\n onClose = new EventEmitter();\n\n constructor() {}\n\n ngOnInit() {}\n\n clickHandler(token?: string) {\n this.onClick.emit(token);\n }\n\n closeHandler() {\n this.onClose.emit();\n }\n}\n","import { CommonModule } from '@angular/common';\nimport { Component, EventEmitter, Input, OnInit, Output } from '@angular/core';\nimport { NavController } from '@ionic/angular';\nimport { IonButton, IonButtons, IonIcon, IonText, IonTitle, IonToolbar } from '@ionic/angular/standalone';\nimport { addIcons } from 'ionicons';\nimport { chevronBackOutline } from 'ionicons/icons';\nimport { AvatarComponent } from '../../atoms/avatar/avatar.component';\nimport { ImageComponent } from '../../atoms/image/image.component';\nimport { ToolbarAction, ToolbarActionType } from '../../types';\nimport { ToolbarMetadata } from './types';\nimport { IconService } from '../../../services/icons.service';\n\n@Component({\n selector: 'val-toolbar',\n standalone: true,\n imports: [\n CommonModule,\n IonToolbar,\n IonButtons,\n IonButton,\n IonIcon,\n IonText,\n IonTitle,\n AvatarComponent,\n ImageComponent,\n ],\n template: `\n <ion-toolbar [color]=\"props.color\" [class.background]=\"props.color === 'background'\">\n <ng-container *ngIf=\"props.withBack\">\n <ion-buttons class=\"left-buttons\" slot=\"start\" *ngIf=\"props.withBack\">\n <ion-button fill=\"clear\" (click)=\"goBack()\" [color]=\"props.textColor\">\n <ion-icon name=\"chevron-back-outline\" [slot]=\"props.backText ? 'start' : 'icon-only'\"></ion-icon>\n <ion-text *ngIf=\"props.backText\">{{ props.backText }}</ion-text>\n </ion-button>\n </ion-buttons>\n </ng-container>\n <ng-container *ngIf=\"props.withActions\">\n <ion-buttons slot=\"end\" *ngIf=\"someInRight()\">\n <ng-container *ngFor=\"let action of rightActions()\">\n <ion-button *ngIf=\"action.type === actionTypes.ICON\" (click)=\"clickHandler(action.token)\">\n <ion-icon slot=\"icon-only\" [name]=\"action.description\" [color]=\"props.textColor\"></ion-icon>\n </ion-button>\n <val-avatar\n *ngIf=\"action.type === actionTypes.AVATAR\"\n [props]=\"{ size: 'small', image: action.description, default: '' }\"\n (onClick)=\"clickHandler(action.token)\"\n ></val-avatar>\n <val-image\n *ngIf=\"action.type === actionTypes.IMAGE\"\n [props]=\"action.image\"\n (click)=\"clickHandler(action.token)\"\n ></val-image>\n <ion-button *ngIf=\"action.type === actionTypes.BUTTON\" (click)=\"clickHandler(action.token)\">{{\n action.description\n }}</ion-button>\n </ng-container>\n </ion-buttons>\n <ion-buttons slot=\"start\" *ngIf=\"someInLeft()\">\n <ng-container *ngFor=\"let action of leftActions()\">\n <ion-button *ngIf=\"action.type === actionTypes.ICON\" (click)=\"clickHandler(action.token)\">\n <ion-icon slot=\"icon-only\" [name]=\"action.description\" [color]=\"props.textColor\"></ion-icon>\n </ion-button>\n <val-avatar\n *ngIf=\"action.type === actionTypes.AVATAR\"\n [props]=\"{ size: 'small', image: action.description, default: '' }\"\n (onClick)=\"clickHandler(action.token)\"\n ></val-avatar>\n <val-image\n *ngIf=\"action.type === actionTypes.IMAGE\"\n [props]=\"action.image\"\n (click)=\"clickHandler(action.token)\"\n ></val-image>\n <ion-button *ngIf=\"action.type === actionTypes.BUTTON\" (click)=\"clickHandler(action.token)\">{{\n action.description\n }}</ion-button>\n </ng-container>\n </ion-buttons>\n </ng-container>\n <ion-title *ngIf=\"props.title\" [color]=\"props.textColor\">{{ props.title }}</ion-title>\n <!-- experimental -->\n <ng-content select=\"[toolbar-bottom]\"></ng-content>\n </ion-toolbar>\n `,\n styleUrls: ['./toolbar.component.scss'],\n})\nexport class ToolbarComponent implements OnInit {\n @Input()\n props: ToolbarMetadata;\n\n @Output()\n onClick = new EventEmitter<string>();\n\n actionTypes = ToolbarActionType;\n\n constructor(\n private navCtrl: NavController,\n icon: IconService\n ) {\n addIcons({ chevronBackOutline });\n }\n\n ngOnInit() {}\n\n goBack(): void {\n this.navCtrl.back();\n }\n\n rightActions(): ToolbarAction[] {\n return this.props.actions.filter(x => x.position === 'right');\n }\n\n leftActions(): ToolbarAction[] {\n return this.props.actions.filter(x => x.position === 'left');\n }\n\n someInRight(): boolean {\n return !!this.props.actions.find(x => x.position === 'right');\n }\n\n someInLeft(): boolean {\n return !!this.props.actions.find(x => x.position === 'left');\n }\n\n clickHandler(token?: string) {\n this.onClick.emit(token);\n }\n}\n","import { Component, EventEmitter, Input, OnInit, Output } from '@angular/core';\nimport { FooterMetadata } from './types';\nimport { IonFooter } from '@ionic/angular/standalone';\nimport { ToolbarComponent } from '../toolbar/toolbar.component';\nimport { CommonModule } from '@angular/common';\n\n@Component({\n selector: 'val-footer',\n standalone: true,\n imports: [CommonModule, IonFooter, ToolbarComponent],\n template: `\n <ion-footer\n [class.ion-no-border]=\"!props.bordered\"\n [translucent]=\"props.translucent\"\n [class.background]=\"props.toolbar.color === 'background'\"\n >\n <val-toolbar\n *ngIf=\"props.toolbar.title || props.toolbar.withActions || props.toolbar.withBack\"\n [props]=\"props.toolbar\"\n (onClick)=\"clickHandler($event)\"\n ></val-toolbar>\n <ng-content select=\"[extra]\"></ng-content>\n </ion-footer>\n `,\n styleUrls: ['./footer.component.scss'],\n})\nexport class FooterComponent implements OnInit {\n @Input()\n props: FooterMetadata;\n\n @Output()\n onClick = new EventEmitter<string>();\n\n constructor() {}\n\n ngOnInit() {}\n\n clickHandler(token?: string) {\n this.onClick.emit(token);\n }\n}\n","import { ValidatorFn, Validators } from '@angular/forms';\n\nexport const maxLength = (\n field: string,\n max: number\n): { validator: ValidatorFn; error: string } => {\n return {\n validator: Validators.maxLength(max),\n error: `El campo ${field} no debe superar los ${max} caracteres.`,\n };\n};\n","import { Component, EventEmitter, Input, OnInit, Output } from '@angular/core';\nimport { FormGroup } from '@angular/forms';\nimport { ButtonGroupComponent } from '../../../molecules/button-group/button-group.component';\nimport { ButtonMetadata, ComponentStates, FormMetadata, FormSubmit } from '../../../types';\nimport { FooterComponent } from '../../footer/footer.component';\n\n@Component({\n selector: 'val-form-footer',\n standalone: true,\n imports: [FooterComponent, ButtonGroupComponent],\n template: `\n <val-footer\n [props]=\"{\n bordered: false,\n translucent: false,\n toolbar: {\n title: '',\n actions: [],\n color: 'background',\n withBack: false,\n withActions: false,\n },\n }\"\n >\n <val-button-group\n extra\n [props]=\"{ buttons: actions, position: 'center', columned: false }\"\n (onClick)=\"submitHandler($event)\"\n ></val-button-group>\n </val-footer>\n `,\n styleUrls: ['./form-footer.component.scss'],\n})\nexport class FormFooterComponent implements OnInit {\n @Input()\n props: { form: FormGroup; data: FormMetadata };\n\n @Output()\n onSubmit = new EventEmitter<FormSubmit>();\n\n constructor() {}\n\n ngOnInit() {}\n\n async submitHandler(token?: string) {\n this.onSubmit.emit({ fields: this.props.form.value, token });\n }\n\n get actions(): ButtonMetadata[] {\n if (!this.props.form) {\n return [];\n }\n\n if (this.props.form.valid) {\n this.props.data.actions.state = ComponentStates.ENABLED;\n }\n\n if (this.props.data.state === ComponentStates.WORKING) {\n this.props.data.actions.state = ComponentStates.WORKING;\n }\n\n if (this.props.data.state === ComponentStates.ENABLED) {\n this.props.data.actions.state = ComponentStates.ENABLED;\n }\n\n if (this.props.data.state === ComponentStates.DISABLED) {\n this.props.data.actions.state = ComponentStates.DISABLED;\n }\n\n return [this.props.data.actions];\n }\n}\n","import { ElementRef } from '@angular/core';\n\nexport const goToTop = (id: string): void => {\n const element = document.getElementById(id);\n if (element) {\n element.scrollIntoView({\n block: 'start',\n inline: 'nearest',\n behavior: 'smooth',\n });\n }\n};\n\nexport const isAtEnd = (elementRef: ElementRef): boolean => {\n const formElement = elementRef.nativeElement;\n const rect = formElement.getBoundingClientRect();\n const windowHeight = window.innerHeight;\n return rect.bottom <= windowHeight;\n};\n","import { CommonModule } from '@angular/common';\nimport { Component, ElementRef, EventEmitter, Input, OnInit, Output } from '@angular/core';\nimport { FormBuilder, FormControl, FormGroup, ReactiveFormsModule } from '@angular/forms';\nimport { Subscription } from 'rxjs';\nimport { isAtEnd } from '../../../shared/utils/dom';\nimport { DisplayComponent } from '../../atoms/display/display.component';\nimport { DividerComponent } from '../../atoms/divider/divider.component';\nimport { TitleComponent } from '../../atoms/title/title.component';\nimport { ButtonGroupComponent } from '../../molecules/button-group/button-group.component';\nimport { CheckInputComponent } from '../../molecules/check-input/check-input.component';\nimport { CommentInputComponent } from '../../molecules/comment-input/comment-input.component';\nimport { DateInputComponent } from '../../molecules/date-input/date-input.component';\nimport { EmailInputComponent } from '../../molecules/email-input/email-input.component';\nimport { FileInputComponent } from '../../molecules/file-input/file-input.component';\nimport { HintComponent } from '../../molecules/hint/hint.component';\nimport { HourInputComponent } from '../../molecules/hour-input/hour-input.component';\nimport { NumberInputComponent } from '../../molecules/number-input/number-input.component';\nimport { PasswordInputComponent } from '../../molecules/password-input/password-input.component';\nimport { PinInputComponent } from '../../molecules/pin-input/pin-input.component';\nimport { RadioInputComponent } from '../../molecules/radio-input/radio-input.component';\nimport { SelectorModalComponent } from '../../molecules/search-selector-input/search-selector-input.component';\nimport { SearchSelectorComponent } from '../../molecules/select-input/select-input.component';\nimport { TextInputComponent } from '../../molecules/text-input/text-input.component';\nimport { ButtonMetadata, ComponentStates, FormMetadata, FormSubmit, InputMetadata, InputType } from '../../types';\n\n@Component({\n selector: 'val-form',\n standalone: true,\n imports: [\n CommonModule,\n ReactiveFormsModule,\n DisplayComponent,\n TitleComponent,\n TextInputComponent,\n CheckInputComponent,\n ButtonGroupComponent,\n DividerComponent,\n HintComponent,\n CommentInputComponent,\n DateInputComponent,\n FileInputComponent,\n HourInputComponent,\n EmailInputComponent,\n NumberInputComponent,\n RadioInputComponent,\n PasswordInputComponent,\n PinInputComponent,\n SearchSelectorComponent,\n SelectorModalComponent,\n ],\n template: `\n <div class=\"container\">\n <form [formGroup]=\"form\">\n <val-display\n *ngIf=\"props.name\"\n [props]=\"{\n content: props.name,\n color: 'dark',\n size: 'large',\n }\"\n ></val-display>\n <div class=\"section\" *ngFor=\"let s of props.sections\">\n <val-title [props]=\"{ content: s.name, size: 'large', color: '', bold: false }\"></val-title>\n <div class=\"input\" *ngFor=\"let f of s.fields\">\n <val-title [props]=\"{ content: f.label, size: 'small', color: 'dark', bold: false }\"></val-title>\n <ng-container *ngIf=\"f.type === types.TEXT\">\n <val-text-input [props]=\"getFieldProp(f)\"></val-text-input>\n </ng-container>\n <ng-container *ngIf=\"f.type === types.CHECK\">\n <val-check-input></val-check-input>\n </ng-container>\n <ng-container *ngIf=\"f.type === types.COMMENT\">\n <val-comment-input [props]=\"getFieldProp(f)\"></val-comment-input>\n </ng-container>\n <ng-container *ngIf=\"f.type === types.DATE\">\n <val-date-input [props]=\"getFieldProp(f)\"></val-date-input>\n </ng-container>\n <ng-container *ngIf=\"f.type === types.EMAIL\">\n <val-email-input [props]=\"getFieldProp(f)\"></val-email-input>\n </ng-container>\n <ng-container *ngIf=\"f.type === types.FILE\">\n <val-file-input [props]=\"getFieldProp(f)\"></val-file-input>\n </ng-container>\n <ng-container *ngIf=\"f.type === types.HOUR\">\n <val-hour-input [props]=\"getFieldProp(f)\"></val-hour-input>\n </ng-container>\n <ng-container *ngIf=\"f.type === types.NUMBER\">\n <val-number-input [props]=\"getFieldProp(f)\"></val-number-input>\n </ng-container>\n <ng-container *ngIf=\"f.type === types.PASSWORD\">\n <val-password-input [props]=\"getFieldProp(f)\"></val-password-input>\n </ng-container>\n <ng-container *ngIf=\"f.type === types.PIN_CODE\">\n <val-pin-input [props]=\"getFieldProp(f)\"></val-pin-input>\n </ng-container>\n <ng-container *ngIf=\"f.type === types.RADIO\">\n <val-radio-input [props]=\"getFieldProp(f)\"></val-radio-input>\n </ng-container>\n <ng-container *ngIf=\"f.type === types.SELECT\">\n <val-select-input [props]=\"getFieldProp(f)\"></val-select-input>\n </ng-container>\n <ng-container *ngIf=\"f.type === types.SEARCH_SELECT\">\n <val-search-selector-input [props]=\"getFieldProp(f)\"></val-search-selector-input>\n </ng-container>\n <val-hint [props]=\"getFieldProp(f)\"></val-hint>\n </div>\n <val-divider [props]=\"{ fill: 'solid', size: 'medium', color: 'medium' }\"></val-divider>\n </div>\n <val-button-group\n [props]=\"{ buttons: actions, position: 'center', columned: false }\"\n (onClick)=\"submitHandler($event)\"\n ></val-button-group>\n </form>\n </div>\n `,\n styleUrls: ['./form.component.scss'],\n})\nexport class FormComponent implements OnInit {\n @Input()\n props: FormMetadata;\n\n @Output()\n onSubmit = new EventEmitter<FormSubmit>();\n\n @Output()\n onInvalid = new EventEmitter();\n\n @Output()\n onSelectChange = new EventEmitter<{ field: string; value: any }>();\n\n form: FormGroup;\n types = InputType;\n private subscriptions: Subscription[] = [];\n\n constructor(\n private fb: FormBuilder,\n private elementRef: ElementRef\n ) {}\n\n ngOnInit() {\n const formControls = {};\n this.props.sections.forEach(section => {\n section.fields.forEach(field => {\n formControls[field.name] = [undefined, field.validators || []];\n });\n });\n this.form = this.fb.group(formControls);\n this.props.sections.forEach(section => {\n section.fields\n .filter(x => x.type === this.types.SELECT)\n .forEach(field => {\n this.trackSelectChanges(field.name);\n });\n });\n }\n\n ngOnDestroy() {\n // Cleanup subscriptions to avoid memory leaks\n this.subscriptions.forEach(sub => sub.unsubscribe());\n }\n\n trackSelectChanges(fieldName: string) {\n const control = this.getControl(fieldName);\n const subscription = control.valueChanges.subscribe(value => {\n this.onSelectChange.emit({ field: fieldName, value });\n });\n this.subscriptions.push(subscription);\n }\n\n async submitHandler(token?: string) {\n this.onSubmit.emit({ fields: this.form.value, token });\n }\n\n getControl(field: string): FormControl {\n return this.Form.get(field) as FormControl;\n }\n\n getFieldProp(field: InputMetadata): InputMetadata {\n field.token;\n if (!field.token) {\n field.token = `input-${field.type}-${field.name}`;\n }\n return {\n ...field,\n control: this.getControl(field.name),\n };\n }\n\n get isAtEndOfForm(): boolean {\n return isAtEnd(this.elementRef);\n }\n\n get Form(): FormGroup {\n return this.form;\n }\n\n get FormState(): { form: FormGroup; data: FormMetadata } {\n return {\n form: this.Form,\n data: this.props,\n };\n }\n\n get actions(): ButtonMetadata[] {\n if (!this.form) {\n return [];\n }\n\n if (this.form.valid) {\n this.props.actions.state = ComponentStates.ENABLED;\n }\n\n if (this.props.state === ComponentStates.WORKING) {\n this.props.actions.state = ComponentStates.WORKING;\n }\n\n if (this.props.state === ComponentStates.ENABLED) {\n this.props.actions.state = ComponentStates.ENABLED;\n }\n\n if (this.props.state === ComponentStates.DISABLED) {\n this.props.actions.state = ComponentStates.DISABLED;\n }\n\n return [this.props.actions];\n }\n}\n","import { Component, EventEmitter, Input, OnInit, Output } from '@angular/core';\nimport { IonHeader } from '@ionic/angular/standalone';\nimport { ToolbarComponent } from '../toolbar/toolbar.component';\nimport { HeaderMetadata } from './types';\n\n@Component({\n selector: 'val-header',\n standalone: true,\n imports: [IonHeader, ToolbarComponent],\n template: `\n <ion-header [class.ion-no-border]=\"!props.bordered\" [translucent]=\"props.translucent\">\n <val-toolbar [props]=\"props.toolbar\" (onClick)=\"clickHandler($event)\"></val-toolbar>\n </ion-header>\n `,\n styleUrls: ['./header.component.scss'],\n})\nexport class HeaderComponent implements OnInit {\n @Input()\n props: HeaderMetadata;\n\n @Output()\n onClick = new EventEmitter<string>();\n\n constructor() {}\n\n ngOnInit() {}\n\n clickHandler(token?: string) {\n this.onClick.emit(token);\n }\n}\n","import { NgClass, NgStyle } from '@angular/common';\nimport { Component, EventEmitter, Input, OnInit, Output } from '@angular/core';\nimport { RouterLink } from '@angular/router';\nimport {\n IonAvatar,\n IonButton,\n IonIcon,\n IonItem,\n IonLabel,\n IonList,\n IonListHeader,\n IonNote,\n IonSpinner,\n} from '@ionic/angular/standalone';\nimport { IconService } from '../../../services/icons.service';\nimport { resolveColor } from '../../../shared/utils/styles';\nimport { ComponentStates } from '../../types';\nimport { ListMetadata } from './types';\n\n@Component({\n selector: 'val-item-list',\n standalone: true,\n imports: [\n RouterLink,\n NgStyle,\n NgClass,\n IonList,\n IonListHeader,\n IonLabel,\n IonNote,\n IonItem,\n IonAvatar,\n IonIcon,\n IonButton,\n IonSpinner,\n ],\n template: `\n <ion-list\n [inset]=\"props.rounded\"\n [class.shadowed]=\"props.shadowed\"\n [class.bordered]=\"props.bordered\"\n [style.borderColor]=\"this.color()\"\n >\n @if (props.title) {\n <ion-list-header>\n <ion-label>{{ props.title }}</ion-label>\n </ion-list-header>\n }\n @for (item of props.items; track item.text) {\n @if (item.mode == 'justext') {\n <ion-item\n [lines]=\"item.lines\"\n [button]=\"item.clickable\"\n [disabled]=\"item.disabled\"\n (click)=\"clickHandler(item.token)\"\n >\n @if (item.unreadIndicator) {\n <div class=\"unread-indicator-wrapper\" slot=\"start\">\n <div class=\"unread-indicator\"></div>\n </div>\n }\n\n <ion-label [ngClass]=\"{ 'ion-text-nowrap': item.ellipsis }\">\n <h2>{{ item.text }}</h2>\n\n @if (item.comments) {\n <ion-note color=\"medium\"> {{ item.comments }} </ion-note>\n }\n </ion-label>\n\n @if (item.endNote) {\n <ion-note slot=\"end\">{{ item.endNote }}</ion-note>\n }\n </ion-item>\n }\n\n @if (item.mode == 'actionable') {\n <ion-item [lines]=\"item.lines\" [button]=\"item.clickable\" [disabled]=\"item.disabled\">\n @if (item.unreadIndicator) {\n <div class=\"unread-indicator-wrapper\" slot=\"start\">\n <div class=\"unread-indicator\"></div>\n </div>\n }\n\n <ion-label [ngClass]=\"{ 'ion-text-nowrap': item.ellipsis }\">\n <h2>{{ item.text }}</h2>\n\n @if (item.comments) {\n <ion-note color=\"medium\"> {{ item.comments }} </ion-note>\n }\n </ion-label>\n\n @if (item.actions) {\n @for (action of item.actions; track action.token) {\n <ion-button\n fill=\"outline\"\n color=\"dark\"\n slot=\"end\"\n [disabled]=\"action.state === states.WORKING\"\n (click)=\"onActionClickHandler(action.token)\"\n >\n @if (action.state !== states.WORKING) {\n @if (action.icon) {\n <ion-icon aria-hidden=\"true\" [name]=\"action.icon\" size=\"medium\" slot=\"start\"></ion-icon>\n }\n\n {{ action.description }}\n }\n\n @if (action.state === states.WORKING) {\n <ion-spinner class=\"action-spinner\" name=\"circular\"></ion-spinner>\n }\n </ion-button>\n }\n }\n </ion-item>\n }\n\n @if (item.mode == 'route') {\n <ion-item\n [lines]=\"item.lines\"\n [button]=\"item.clickable\"\n [disabled]=\"item.disabled\"\n (click)=\"clickHandler(item.token)\"\n [routerLink]=\"item.routerLink\"\n >\n @if (item.unreadIndicator) {\n <div class=\"unread-indicator-wrapper\" slot=\"start\">\n <div class=\"unread-indicator\"></div>\n </div>\n }\n\n <ion-label [ngClass]=\"{ 'ion-text-nowrap': item.ellipsis }\">\n <h2>{{ item.text }}</h2>\n\n @if (item.comments) {\n <ion-note color=\"medium\"> {{ item.comments }} </ion-note>\n }\n </ion-label>\n </ion-item>\n }\n\n @if (item.mode == 'subtitule') {\n <ion-item\n [lines]=\"item.lines\"\n [button]=\"item.clickable\"\n [disabled]=\"item.disabled\"\n (click)=\"clickHandler(item.token)\"\n >\n @if (item.unreadIndicator) {\n <div class=\"unread-indicator-wrapper\" slot=\"start\">\n <div class=\"unread-indicator\"></div>\n </div>\n }\n\n <ion-label [ngClass]=\"{ 'ion-text-nowrap': item.ellipsis }\">\n <h1>{{ item.text }}</h1>\n <p>{{ item.subtitle }}</p>\n </ion-label>\n </ion-item>\n }\n\n @if (item.mode == 'avatar') {\n <ion-item\n [lines]=\"item.lines\"\n [button]=\"item.clickable\"\n [disabled]=\"item.disabled\"\n (click)=\"clickHandler(item.token)\"\n >\n <ion-avatar aria-hidden=\"true\" slot=\"start\">\n <img alt=\"\" [src]=\"item.image\" />\n </ion-avatar>\n <ion-label>{{ item.text }}</ion-label>\n </ion-item>\n }\n\n @if (item.mode == 'icon') {\n <ion-item\n [lines]=\"item.lines\"\n [button]=\"item.clickable\"\n [disabled]=\"item.disabled\"\n (click)=\"clickHandler(item.token)\"\n >\n <ion-icon aria-hidden=\"true\" [name]=\"item.icon\" size=\"medium\" slot=\"start\"></ion-icon>\n <ion-label>{{ item.text }}</ion-label>\n </ion-item>\n }\n }\n </ion-list>\n `,\n styleUrls: ['./item-list.component.scss'],\n})\nexport class ItemListComponent implements OnInit {\n states = ComponentStates;\n defaultColor = 'primary';\n\n @Input()\n props: ListMetadata;\n\n @Output()\n onClick = new EventEmitter<string>();\n\n @Output()\n onActionClick = new EventEmitter<string>();\n\n constructor(icon: IconService) {}\n\n ngOnInit() {}\n\n clickHandler(token?: string) {\n this.onClick.emit(token);\n }\n\n onActionClickHandler(token?: string) {\n this.onActionClick.emit(token);\n }\n\n color() {\n return resolveColor(this.props.color || this.defaultColor);\n }\n}\n","import { Component, EventEmitter, Input, OnInit, Output } from '@angular/core';\nimport { ImageComponent } from '../../atoms/image/image.component';\nimport { BannerComponent } from '../banner/banner.component';\nimport { NoContentMetadata } from './types';\n\n@Component({\n selector: 'val-no-content',\n standalone: true,\n imports: [ImageComponent, BannerComponent],\n template: `\n @if (props.topContent) {\n <div>\n <val-banner [props]=\"props.topContent\" (onClick)=\"onClickHandler($event)\"></val-banner>\n </div>\n }\n <val-image class=\"image-container\" [props]=\"props.image\"></val-image>\n <div>\n <val-banner [props]=\"props.bottomContent\" (onClick)=\"onClickHandler($event)\"></val-banner>\n </div>\n `,\n styleUrls: ['./no-content.component.scss'],\n})\nexport class NoContentComponent implements OnInit {\n @Input()\n props: NoContentMetadata;\n\n @Output()\n onClick = new EventEmitter<string>();\n\n constructor() {}\n\n ngOnInit() {}\n\n onClickHandler(token: string) {\n this.onClick.emit(token);\n }\n}\n","import { ButtonMetadata, ComponentState } from '../../types';\nimport { NoContentMetadata } from '../no-content/types';\n\nexport type WizardMetadata = {\n state: ComponentState;\n current: number;\n steps: Steps;\n error: Step;\n};\n\nexport type Step = {\n titles: NoContentMetadata;\n buttons: ButtonMetadata[];\n};\n\nexport type Steps = {\n [step: number]: Step;\n};\n\nexport enum MOTION {\n BACKWARD,\n FORWARD,\n RETRY,\n}\n","import { Component, EventEmitter, Input, OnInit, Output } from '@angular/core';\nimport { ProgressBarComponent } from '../../../atoms/progress-bar/progress-bar.component';\nimport { ButtonGroupComponent } from '../../../molecules/button-group/button-group.component';\nimport { ButtonMetadata, ComponentStates } from '../../../types';\nimport { FooterComponent } from '../../footer/footer.component';\nimport { MOTION, Step, WizardMetadata } from '../types';\n\n@Component({\n selector: 'val-wizard-footer',\n standalone: true,\n imports: [FooterComponent, ProgressBarComponent, ButtonGroupComponent],\n template: `\n <val-footer\n [props]=\"{\n bordered: false,\n translucent: false,\n toolbar: {\n title: '',\n actions: [],\n color: 'background',\n withBack: false,\n withActions: false,\n },\n }\"\n >\n <val-progress-bar\n extra\n [props]=\"{ progress: Progress, color: '', type: 'determinate', buffer: 1, size: 'small', rounded: false }\"\n ></val-progress-bar>\n <val-button-group\n extra\n [props]=\"{ buttons: actions, position: 'left', columned: false }\"\n position=\"spaced\"\n (onClick)=\"clickHandler($event)\"\n ></val-button-group>\n </val-footer>\n `,\n styleUrls: ['./wizard-footer.component.scss'],\n})\nexport class WizardFooterComponent implements OnInit {\n @Input()\n props: WizardMetadata;\n\n @Output()\n onClick = new EventEmitter<{ current: number; motion: MOTION }>();\n\n wrapperId = 'wizard-wrapper';\n\n constructor() {}\n\n ngOnInit() {}\n\n clickHandler(token?: string) {\n if (!token) {\n return;\n }\n if (token.includes('right')) {\n this.tryToStep(MOTION.FORWARD);\n }\n if (token.includes('left')) {\n this.tryToStep(MOTION.BACKWARD);\n }\n }\n\n get Current(): Step {\n return this.props.steps[this.props.current];\n }\n\n get Progress(): number {\n if (this.props.steps && this.props.current) {\n return this.props.current / Object.keys(this.props.steps).length;\n }\n return 0;\n }\n\n get actions(): ButtonMetadata[] {\n if (this.props.state === ComponentStates.ERROR && this.Current.buttons.length > 1) {\n this.Current.buttons[1].state = ComponentStates.DISABLED;\n }\n\n if (this.props.current === 1 && this.Current.buttons.length > 1) {\n return [this.Current.buttons[1]];\n }\n return this.Current.buttons;\n }\n\n tryToStep(motion: MOTION): void {\n this.onClick.emit({ current: this.props.current, motion });\n }\n}\n","import { CommonModule } from '@angular/common';\nimport { Component, EventEmitter, Input, OnInit, Output } from '@angular/core';\nimport { goToTop } from '../../../shared/utils/dom';\nimport { ContentLoaderComponent } from '../../molecules/content-loader/content-loader.component';\nimport { ComponentStates } from '../../types';\nimport { NoContentComponent } from '../no-content/no-content.component';\nimport { MOTION, Step, WizardMetadata } from './types';\n\n@Component({\n selector: 'val-wizard',\n standalone: true,\n imports: [CommonModule, NoContentComponent, ContentLoaderComponent],\n template: `\n <div [id]=\"wrapperId\" class=\"wrapper\">\n <ng-container *ngIf=\"props.state !== 'ERROR'\">\n <val-no-content [props]=\"Current.titles\"></val-no-content>\n <div class=\"step\">\n <div *ngIf=\"props.state === 'WORKING'\">\n <val-content-loader\n [props]=\"{\n name: 'circular',\n color: 'primary',\n size: 'large',\n text: 'Por favor espere...',\n }\"\n ></val-content-loader>\n </div>\n <ng-content select=\"[step]\"></ng-content>\n </div>\n </ng-container>\n <ng-container *ngIf=\"props.state === 'ERROR'\">\n <val-no-content [props]=\"props.error.titles\" (onClick)=\"clickHandler($event)\"></val-no-content>\n </ng-container>\n </div>\n `,\n styleUrls: ['./wizard.component.scss'],\n})\nexport class WizardComponent implements OnInit {\n @Input()\n props: WizardMetadata;\n\n @Output()\n onClick = new EventEmitter<{ current: number; motion: MOTION }>();\n\n wrapperId = 'wizard-wrapper';\n\n constructor() {}\n\n ngOnInit() {}\n\n working() {\n this.props.state = ComponentStates.WORKING;\n this.Current.buttons.map(x => {\n x.state = ComponentStates.DISABLED;\n });\n }\n\n done() {\n if (this.props.state === ComponentStates.ENABLED) {\n return;\n }\n\n this.props.state = ComponentStates.ENABLED;\n this.Current.buttons.map(x => {\n x.state = ComponentStates.ENABLED;\n });\n }\n\n get Current(): Step {\n return this.props.steps[this.props.current];\n }\n\n setCurrent(newStep: number) {\n if (newStep === this.props.current) {\n return;\n }\n this.props.current = newStep;\n goToTop(this.wrapperId);\n }\n\n setError(error: string) {\n if (this.props.state === ComponentStates.ERROR) {\n return;\n }\n\n this.props.error.titles.bottomContent.content.bellowTitle.text = error;\n this.props.state = ComponentStates.ERROR;\n goToTop(this.wrapperId);\n }\n\n reset() {\n this.props.error.titles.bottomContent.content.bellowTitle.text = '';\n this.done();\n }\n\n clickHandler(token?: string) {\n if (!token) {\n return;\n }\n if (token.includes('retry')) {\n this.reset();\n }\n\n this.onClick.emit({ current: this.props.current, motion: MOTION.RETRY });\n }\n}\n","import { Component } from '@angular/core';\n\n@Component({\n selector: 'val-layout',\n standalone: true,\n imports: [],\n template: `\n <div class=\"layout-container\">\n <ng-content></ng-content>\n </div>\n `,\n styleUrl: './layout.component.scss',\n})\nexport class LayoutComponent {}\n","export class LocalStorageService {\n static set<T>(reference: string, value: T): void {\n localStorage.setItem(reference, JSON.stringify(value));\n }\n\n static get<T>(reference: string): T {\n const value = localStorage.getItem(reference);\n return JSON.parse(value) as T;\n }\n\n static remove(reference: string): void {\n localStorage.removeItem(reference);\n }\n\n static clear() {\n localStorage.clear();\n }\n}\n","export const LANG = 'LANG';\nexport const THEME = 'THEME';\n","import { Injectable } from '@angular/core';\nimport { BehaviorSubject } from 'rxjs';\nimport { LocalStorageService } from './local-storage.service';\nimport { THEME } from '../shared/constants/storage';\n\nexport enum ThemeOption {\n LIGHT = 'light',\n DARK = 'dark',\n AUTO = 'auto',\n}\n\n@Injectable({\n providedIn: 'root',\n})\nexport class ThemeService {\n lightToggle = false;\n darkToggle = false;\n autoToggle = false;\n currentOption = ThemeOption.AUTO;\n themeOptions = ThemeOption;\n prefersDark = false;\n default = ThemeOption.AUTO;\n theme: BehaviorSubject<ThemeOption>;\n\n constructor() {\n const current = LocalStorageService.get<ThemeOption>(THEME);\n console.log('💡 ThemeConfig current::: ', current);\n this.theme = new BehaviorSubject<ThemeOption>(current || this.default);\n this.currentOption = this.Theme;\n console.log('💡 ThemeConfig this.currentOption::: ', this.currentOption);\n this.toggleUserPreference(this.currentOption);\n\n const prefersDarkQuery = window.matchMedia('(prefers-color-scheme: dark)');\n this.prefersDark = prefersDarkQuery.matches;\n this.handleAutoConfiguration();\n\n prefersDarkQuery.addEventListener('change', mediaQuery => {\n console.log('💡 ThemeConfig addEventListener change::: ', mediaQuery);\n this.prefersDark = mediaQuery.matches;\n this.handleAutoConfiguration();\n });\n }\n\n private handleAutoConfiguration() {\n if (this.prefersDark && this.currentOption === ThemeOption.AUTO) {\n console.log('💡 ThemeConfig prefersDark::: ', this.prefersDark);\n this.toggleUserPreference(ThemeOption.AUTO);\n }\n if (!this.prefersDark && this.currentOption === ThemeOption.AUTO) {\n console.log('💡 ThemeConfig prefersDark::: ', this.prefersDark);\n this.toggleUserPreference(ThemeOption.AUTO);\n }\n }\n\n private handleDarkPreference() {\n this.toggleTheme(ThemeOption.DARK, true);\n this.toggleTheme(ThemeOption.LIGHT, false);\n }\n\n private handleLightPreference() {\n this.toggleTheme(ThemeOption.LIGHT, true);\n this.toggleTheme(ThemeOption.DARK, false);\n }\n\n get IsDark(): boolean {\n return this.prefersDark;\n }\n\n get Theme(): ThemeOption {\n return this.theme.value;\n }\n\n set Theme(theme: ThemeOption) {\n this.theme.next(theme);\n LocalStorageService.set<ThemeOption>(THEME, theme);\n }\n\n toggleTheme(name: string, shouldAdd: boolean) {\n console.log('toggleTheme::: ', name, shouldAdd);\n document.body.classList.toggle(name, shouldAdd);\n }\n\n toggleUserPreference(option: ThemeOption) {\n this.currentOption = option;\n this.Theme = option;\n this.lightToggle = option === ThemeOption.LIGHT;\n this.darkToggle = option === ThemeOption.DARK;\n this.autoToggle = option === ThemeOption.AUTO;\n\n switch (option) {\n case ThemeOption.LIGHT:\n this.handleLightPreference();\n break;\n case ThemeOption.DARK:\n this.handleDarkPreference();\n break;\n case ThemeOption.AUTO:\n if (this.prefersDark) {\n this.handleDarkPreference();\n } else {\n this.handleLightPreference();\n }\n break;\n }\n }\n}\n","import { NgStyle } from '@angular/common';\nimport { Component, EventEmitter, inject, Input, Output } from '@angular/core';\nimport { IonContent, IonHeader, IonTitle, IonToolbar } from '@ionic/angular/standalone';\nimport { ThemeService } from '../../../services/theme.service';\nimport { DividerComponent } from '../../atoms/divider/divider.component';\nimport { ExpandableTextComponent } from '../../molecules/expandable-text/expandable-text.component';\nimport { LinkComponent } from '../../molecules/link/link.component';\nimport { HeaderComponent } from '../../organisms/header/header.component';\nimport { LayoutComponent } from '../layout/layout.component';\nimport { SimpleMetadata } from './types';\n\n@Component({\n selector: 'val-simple',\n standalone: true,\n imports: [\n NgStyle,\n IonHeader,\n IonToolbar,\n IonTitle,\n IonContent,\n HeaderComponent,\n LayoutComponent,\n DividerComponent,\n LinkComponent,\n ExpandableTextComponent,\n ],\n template: `\n <val-header [props]=\"props.header\" />\n\n <ion-content\n [fullscreen]=\"true\"\n [ngStyle]=\"{\n '--background': theme.IsDark ? 'var(--ion-background-color)' : props.background,\n }\"\n [scrollEvents]=\"true\"\n (ionScroll)=\"onScrollHandler($event)\"\n >\n <ion-header collapse=\"condense\">\n <ion-toolbar style=\"--background: transparent;\">\n <ion-title style=\"padding: 0;\" size=\"large\">{{ props.pageTitle }}</ion-title>\n </ion-toolbar>\n </ion-header>\n @if (props.pageDescription) {\n <div class=\"description-container\">\n <val-expandable-text\n [props]=\"{\n limit: 180,\n content: props.pageDescription,\n color: 'primary',\n expandText: 'más',\n }\"\n />\n </div>\n }\n @if (props.link) {\n <val-link [props]=\"props.link\" (onClick)=\"onClickHandler($event)\"></val-link>\n }\n @if (props.withDivider) {\n <val-divider [props]=\"{ fill: 'solid', size: 'medium', color: 'dark' }\" />\n }\n <val-layout>\n <ng-content select=\"[inner-container]\"></ng-content>\n </val-layout>\n </ion-content>\n <ng-content select=\"[outter-container]\"></ng-content>\n `,\n styles: `\n .description-container {\n padding: 0px 16px;\n }\n `,\n})\nexport class SimpleComponent {\n @Input()\n props: SimpleMetadata;\n\n @Output()\n onClick = new EventEmitter<string>();\n\n @Output()\n onScrollEvent = new EventEmitter<boolean>();\n\n theme = inject(ThemeService);\n\n onClickHandler(token?: string) {\n this.onClick.emit(token);\n }\n\n onScrollHandler($event: Event) {\n this.onScrollEvent.emit(true);\n }\n}\n","import { Provider } from './content';\n\nexport type LanguageText = {\n [key: string]: string;\n};\n\nexport type LanguagesContent = {\n [key: string]: LanguageText;\n};\n\nexport class TextContent {\n text: LanguagesContent;\n constructor(text: LanguagesContent) {\n this.text = text;\n }\n\n get Content(): LanguagesContent {\n return this.text;\n }\n}\n\nexport enum LangOption {\n ES = 'es',\n EN = 'en',\n}\n","import { InjectionToken } from '@angular/core';\nimport { Provider } from './lang-provider/content';\n\nexport interface ValtechConfig {\n content: Provider;\n}\n\nexport const ValtechConfigService = new InjectionToken<ValtechConfig>('ValtechConfig');\n","import { Inject, Injectable } from '@angular/core';\nimport { BehaviorSubject } from 'rxjs';\nimport { Provider } from './content';\nimport { LangOption, LanguageText } from './types';\nimport { LocalStorageService } from '../local-storage.service';\nimport { LANG } from '../../shared/constants/storage';\nimport { ValtechConfig, ValtechConfigService } from '../types';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class LangService {\n content: Provider;\n default = LangOption.ES;\n selectedLang: BehaviorSubject<LangOption>;\n config: ValtechConfig;\n\n constructor(@Inject(ValtechConfigService) config: ValtechConfig) {\n console.log('injected config: ', config);\n this.content = config.content;\n this.config = config;\n const current = LocalStorageService.get<LangOption>(LANG);\n this.selectedLang = new BehaviorSubject<LangOption>(current || this.default);\n }\n\n Text(className: string): LanguageText {\n return this.content[className].Content[this.selectedLang.value];\n }\n\n get Lang(): LangOption {\n return this.selectedLang.value;\n }\n\n set Lang(lang: LangOption) {\n this.selectedLang.next(lang);\n LocalStorageService.set<LangOption>(LANG, lang);\n }\n}\n","import { Injectable } from '@angular/core';\nimport { ToastController, ToastOptions } from '@ionic/angular';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class ToastService {\n constructor(private toastController: ToastController) {}\n\n async presentToast(request: ToastOptions) {\n const toast = await this.toastController.create({\n message: request.message,\n duration: request.duration,\n position: request.position,\n color: request.color,\n });\n\n await toast.present();\n }\n\n show(request: ToastOptions) {\n this.presentToast(request)\n .then(() => {\n console.info('Toast created');\n })\n .catch((error) => {\n console.error(JSON.stringify(error));\n });\n }\n}\n","/*\n * Public API Surface of valtech-components\n */\n\n/*\n * Public API Surface of valtech-components\n */\n\nexport * from './lib/components/atoms/avatar/avatar.component';\nexport * from './lib/components/atoms/avatar/types';\nexport * from './lib/components/atoms/box/box.component';\nexport * from './lib/components/atoms/box/types';\nexport * from './lib/components/atoms/button/button.component';\nexport * from './lib/components/atoms/button/factory';\nexport * from './lib/components/atoms/display/display.component';\nexport * from './lib/components/atoms/display/types';\nexport * from './lib/components/atoms/divider/divider.component';\nexport * from './lib/components/atoms/divider/types';\nexport * from './lib/components/atoms/href/href.component';\nexport * from './lib/components/atoms/href/types';\nexport * from './lib/components/atoms/icon/icon.component';\nexport * from './lib/components/atoms/icon/types';\nexport * from './lib/components/atoms/image/image.component';\nexport * from './lib/components/atoms/image/types';\nexport * from './lib/components/atoms/progress-bar/progress-bar.component';\nexport * from './lib/components/atoms/progress-bar/types';\nexport * from './lib/components/atoms/text/text.component';\nexport * from './lib/components/atoms/text/types';\nexport * from './lib/components/atoms/title/title.component';\nexport * from './lib/components/atoms/title/types';\n\nexport * from './lib/components/molecules/alert-box/alert-box.component';\nexport * from './lib/components/molecules/alert-box/types';\nexport * from './lib/components/molecules/button-group/button-group.component';\nexport * from './lib/components/molecules/button-group/types';\nexport * from './lib/components/molecules/card/card.component';\nexport * from './lib/components/molecules/card/types';\nexport * from './lib/components/molecules/check-input/check-input.component';\nexport * from './lib/components/molecules/comment-input/comment-input.component';\nexport * from './lib/components/molecules/content-loader/content-loader.component';\nexport * from './lib/components/molecules/content-loader/types';\nexport * from './lib/components/molecules/date-input/date-input.component';\nexport * from './lib/components/molecules/email-input/email-input.component';\nexport * from './lib/components/molecules/expandable-text/expandable-text.component';\nexport * from './lib/components/molecules/expandable-text/types';\nexport * from './lib/components/molecules/file-input/file-input.component';\nexport * from './lib/components/molecules/hint/hint.component';\nexport * from './lib/components/molecules/hour-input/hour-input.component';\nexport * from './lib/components/molecules/link/link.component';\nexport * from './lib/components/molecules/link/types';\nexport * from './lib/components/molecules/links-cake/links-cake.component';\nexport * from './lib/components/molecules/links-cake/types';\nexport * from './lib/components/molecules/notes-box/notes-box.component';\nexport * from './lib/components/molecules/notes-box/types';\nexport * from './lib/components/molecules/number-input/number-input.component';\nexport * from './lib/components/molecules/password-input/password-input.component';\nexport * from './lib/components/molecules/pin-input/pin-input.component';\nexport * from './lib/components/molecules/progress-status/progress-status.component';\nexport * from './lib/components/molecules/progress-status/types';\nexport * from './lib/components/molecules/prompter/prompter.component';\nexport * from './lib/components/molecules/prompter/types';\nexport * from './lib/components/molecules/radio-input/radio-input.component';\nexport * from './lib/components/molecules/search-selector-input/search-selector-input.component';\nexport * from './lib/components/molecules/searchbar/searchbar.component';\nexport * from './lib/components/molecules/select-input/select-input.component';\nexport * from './lib/components/molecules/text-input/text-input.component';\nexport * from './lib/components/molecules/title-block/title-block.component';\nexport * from './lib/components/molecules/title-block/types';\n\nexport * from './lib/components/organisms/banner/banner.component';\nexport * from './lib/components/organisms/banner/types';\nexport * from './lib/components/organisms/footer/footer.component';\nexport * from './lib/components/organisms/form/factory';\nexport * from './lib/components/organisms/form/form-footer/form-footer.component';\nexport * from './lib/components/organisms/form/form.component';\nexport * from './lib/components/organisms/header/header.component';\nexport * from './lib/components/organisms/header/types';\nexport * from './lib/components/organisms/item-list/item-list.component';\nexport * from './lib/components/organisms/item-list/types';\nexport * from './lib/components/organisms/no-content/no-content.component';\nexport * from './lib/components/organisms/no-content/types';\nexport * from './lib/components/organisms/toolbar/toolbar.component';\nexport * from './lib/components/organisms/toolbar/types';\nexport * from './lib/components/organisms/wizard/types';\nexport * from './lib/components/organisms/wizard/wizard-footer/wizard-footer.component';\nexport * from './lib/components/organisms/wizard/wizard.component';\n\nexport * from './lib/components/templates/layout/layout.component';\nexport * from './lib/components/templates/simple/simple.component';\nexport * from './lib/components/templates/simple/types';\n\nexport * from './lib/services/download.service';\nexport * from './lib/services/icons.service';\nexport * from './lib/services/in-app-browser.service';\nexport * from './lib/services/lang-provider/lang-provider.service';\nexport * from './lib/services/lang-provider/types';\nexport * from './lib/services/local-storage.service';\nexport * from './lib/services/navigation.service';\nexport * from './lib/services/theme.service';\nexport * from './lib/services/toast.service';\nexport * from './lib/services/types';\n\nexport * from './lib/components/types';\nexport * from './lib/shared/utils/dom';\nexport * from './lib/shared/utils/text';\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["i1.IconService","i2","i1.DownloadService","i2.IconService","i1","i3"],"mappings":";;;;;;;;;;;;;;;;MAea,eAAe,CAAA;AAM1B,IAAA,WAAA,GAAA;AAFA,QAAA,IAAA,CAAA,OAAO,GAAG,IAAI,YAAY,EAAE;;AAI5B,IAAA,QAAQ;IAER,cAAc,GAAA;AACZ,QAAA,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE;;+GAXV,eAAe,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;AAAf,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,eAAe,EAPhB,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,YAAA,EAAA,MAAA,EAAA,EAAA,KAAA,EAAA,OAAA,EAAA,EAAA,OAAA,EAAA,EAAA,OAAA,EAAA,SAAA,EAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,EAAA;;;;AAIT,EAAA,CAAA,EAAA,QAAA,EAAA,IAAA,EAAA,MAAA,EAAA,CAAA,8IAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EALS,SAAS,EAAA,QAAA,EAAA,YAAA,EAAA,CAAA,EAAA,CAAA,CAAA;;4FAQR,eAAe,EAAA,UAAA,EAAA,CAAA;kBAX3B,SAAS;AACE,YAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,YAAY,cACV,IAAI,EAAA,OAAA,EACP,CAAC,SAAS,CAAC,EACV,QAAA,EAAA;;;;AAIT,EAAA,CAAA,EAAA,MAAA,EAAA,CAAA,8IAAA,CAAA,EAAA;wDAIQ,KAAK,EAAA,CAAA;sBAAb;gBAGD,OAAO,EAAA,CAAA;sBADN;;;AClBH;MA6Ba,WAAW,CAAA;AACtB,IAAA,WAAA,GAAA;AACE,QAAA,QAAQ,CAAC;YACP,UAAU;YACV,gBAAgB;YAChB,YAAY;YACZ,kBAAkB;YAClB,gBAAgB;YAChB,mBAAmB;YACnB,gBAAgB;YAChB,sBAAsB;YACtB,yBAAyB;YACzB,oBAAoB;YACpB,WAAW;YACX,YAAY;YACZ,kBAAkB;YAClB,YAAY;YACZ,KAAK;YACL,YAAY;YACZ,WAAW;YACX,aAAa;YACb,UAAU;AACX,SAAA,CAAC;;+GAtBO,WAAW,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,UAAA,EAAA,CAAA,CAAA;AAAX,IAAA,SAAA,IAAA,CAAA,KAAA,GAAA,EAAA,CAAA,qBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAW,cAFV,MAAM,EAAA,CAAA,CAAA;;4FAEP,WAAW,EAAA,UAAA,EAAA,CAAA;kBAHvB,UAAU;AAAC,YAAA,IAAA,EAAA,CAAA;AACV,oBAAA,UAAU,EAAE,MAAM;AACnB,iBAAA;;;MCMY,YAAY,CAAA;AAOvB,IAAA,WAAA,CAAY,IAAiB,EAAA;AAF7B,QAAA,IAAA,CAAA,OAAO,GAAG,IAAI,YAAY,EAAE;;AAI5B,IAAA,QAAQ;IAER,YAAY,GAAA;AACV,QAAA,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE;;+GAZV,YAAY,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAAA,WAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;AAAZ,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,YAAY,EAxBb,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,SAAA,EAAA,MAAA,EAAA,EAAA,KAAA,EAAA,OAAA,EAAA,EAAA,OAAA,EAAA,EAAA,OAAA,EAAA,SAAA,EAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,EAAA;;;;;;;;;;;;;;;;;;;;;AAqBT,EAAA,CAAA,EAAA,QAAA,EAAA,IAAA,EAAA,MAAA,EAAA,CAAA,koBAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EAtBS,YAAY,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAC,EAAA,CAAA,OAAA,EAAA,QAAA,EAAA,WAAA,EAAA,MAAA,EAAA,CAAA,SAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAE,OAAO,EAAA,QAAA,EAAA,UAAA,EAAA,MAAA,EAAA,CAAA,QAAA,EAAA,OAAA,EAAA,UAAA,EAAA,UAAA,EAAA,MAAA,EAAA,MAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,iBAAA,EAAA,QAAA,EAAA,MAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAE,OAAO,EAAA,QAAA,EAAA,UAAA,EAAA,MAAA,EAAA,CAAA,OAAA,EAAA,SAAA,EAAA,MAAA,EAAA,KAAA,EAAA,MAAA,EAAA,IAAA,EAAA,MAAA,EAAA,MAAA,EAAA,UAAA,EAAA,MAAA,EAAA,KAAA,CAAA,EAAA,CAAA,EAAA,CAAA,CAAA;;4FAyB7B,YAAY,EAAA,UAAA,EAAA,CAAA;kBA5BxB,SAAS;AACE,YAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,SAAS,EACP,UAAA,EAAA,IAAI,EACP,OAAA,EAAA,CAAC,YAAY,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,CAAC,EACxC,QAAA,EAAA;;;;;;;;;;;;;;;;;;;;;AAqBT,EAAA,CAAA,EAAA,MAAA,EAAA,CAAA,koBAAA,CAAA,EAAA;6EAKD,KAAK,EAAA,CAAA;sBADJ;gBAID,OAAO,EAAA,CAAA;sBADN;;;ACjCH,MAAM,OAAO,GAAmB,SAAS;AACzC,MAAM,QAAQ,GAAmB,UAAU;AAC3C,MAAM,OAAO,GAAmB,SAAS;AACzC,MAAM,KAAK,GAAmB,OAAO;AAC9B,MAAM,eAAe,GAAG,EAAE,OAAO,EAAE,QAAQ,EAAE,OAAO,EAAE,KAAK;IAEtD;AAAZ,CAAA,UAAY,UAAU,EAAA;AACpB,IAAA,UAAA,CAAA,UAAA,CAAA,iBAAA,CAAA,GAAA,CAAA,CAAA,GAAA,iBAAe;AACf,IAAA,UAAA,CAAA,UAAA,CAAA,kBAAA,CAAA,GAAA,CAAA,CAAA,GAAA,kBAAgB;AAChB,IAAA,UAAA,CAAA,UAAA,CAAA,iBAAA,CAAA,GAAA,CAAA,CAAA,GAAA,iBAAe;AACf,IAAA,UAAA,CAAA,UAAA,CAAA,gBAAA,CAAA,GAAA,CAAA,CAAA,GAAA,gBAAc;AACd,IAAA,UAAA,CAAA,UAAA,CAAA,oBAAA,CAAA,GAAA,CAAA,CAAA,GAAA,oBAAkB;AACpB,CAAC,EANW,UAAU,KAAV,UAAU,GAMrB,EAAA,CAAA,CAAA;IAQW;AAAZ,CAAA,UAAY,SAAS,EAAA;AACnB,IAAA,SAAA,CAAA,SAAA,CAAA,MAAA,CAAA,GAAA,CAAA,CAAA,GAAA,MAAI;AACJ,IAAA,SAAA,CAAA,SAAA,CAAA,OAAA,CAAA,GAAA,CAAA,CAAA,GAAA,OAAK;AACL,IAAA,SAAA,CAAA,SAAA,CAAA,UAAA,CAAA,GAAA,CAAA,CAAA,GAAA,UAAQ;AACR,IAAA,SAAA,CAAA,SAAA,CAAA,SAAA,CAAA,GAAA,CAAA,CAAA,GAAA,SAAO;AACP,IAAA,SAAA,CAAA,SAAA,CAAA,QAAA,CAAA,GAAA,CAAA,CAAA,GAAA,QAAM;AACN,IAAA,SAAA,CAAA,SAAA,CAAA,UAAA,CAAA,GAAA,CAAA,CAAA,GAAA,UAAQ;AACR,IAAA,SAAA,CAAA,SAAA,CAAA,MAAA,CAAA,GAAA,CAAA,CAAA,GAAA,MAAI;AACJ,IAAA,SAAA,CAAA,SAAA,CAAA,MAAA,CAAA,GAAA,CAAA,CAAA,GAAA,MAAI;AACJ,IAAA,SAAA,CAAA,SAAA,CAAA,OAAA,CAAA,GAAA,CAAA,CAAA,GAAA,OAAK;AACL,IAAA,SAAA,CAAA,SAAA,CAAA,OAAA,CAAA,GAAA,CAAA,CAAA,GAAA,OAAK;AACL,IAAA,SAAA,CAAA,SAAA,CAAA,QAAA,CAAA,GAAA,EAAA,CAAA,GAAA,QAAM;AACN,IAAA,SAAA,CAAA,SAAA,CAAA,eAAA,CAAA,GAAA,EAAA,CAAA,GAAA,eAAa;AACb,IAAA,SAAA,CAAA,SAAA,CAAA,MAAA,CAAA,GAAA,EAAA,CAAA,GAAA,MAAI;AACN,CAAC,EAdW,SAAS,KAAT,SAAS,GAcpB,EAAA,CAAA,CAAA;IAgDW;AAAZ,CAAA,UAAY,iBAAiB,EAAA;AAC3B,IAAA,iBAAA,CAAA,QAAA,CAAA,GAAA,QAAiB;AACjB,IAAA,iBAAA,CAAA,MAAA,CAAA,GAAA,MAAa;AACb,IAAA,iBAAA,CAAA,OAAA,CAAA,GAAA,OAAe;AACf,IAAA,iBAAA,CAAA,QAAA,CAAA,GAAA,QAAiB;AACnB,CAAC,EALW,iBAAiB,KAAjB,iBAAiB,GAK5B,EAAA,CAAA,CAAA;;MCvFY,eAAe,CAAA;AAC1B,IAAA,kBAAkB,CAAC,GAAW,EAAA;AAC5B,QAAA,IAAI;YACF,MAAM,YAAY,GAAG,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC;YACnC,MAAM,WAAW,GAAG,YAAY,CAAC,YAAY,CAAC,MAAM,GAAG,CAAC,CAAC;AACzD,YAAA,MAAM,QAAQ,GAAG,kBAAkB,CAAC,WAAW,CAAC;AAChD,YAAA,OAAO,QAAQ;;QACf,OAAO,KAAK,EAAE;AACd,YAAA,OAAO,CAAC,KAAK,CAAC,sCAAsC,EAAE,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC;AAC5E,YAAA,OAAO,UAAU;;;AAIrB,IAAA,UAAU,CAAC,GAAW,EAAA;QACpB,IAAI,GAAG,EAAE;YACP,MAAM,QAAQ,GAAG,IAAI,CAAC,kBAAkB,CAAC,GAAG,CAAC;YAC7C,MAAM,IAAI,GAAG,QAAQ,CAAC,aAAa,CAAC,GAAG,CAAC;AACxC,YAAA,IAAI,CAAC,IAAI,GAAG,GAAG;AACf,YAAA,IAAI,CAAC,QAAQ,GAAG,QAAQ;AACxB,YAAA,IAAI,CAAC,MAAM,GAAG,QAAQ;AACtB,YAAA,QAAQ,CAAC,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC;YAC/B,IAAI,CAAC,KAAK,EAAE;AACZ,YAAA,QAAQ,CAAC,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC;;aAC1B;AACL,YAAA,OAAO,CAAC,KAAK,CAAC,yBAAyB,CAAC;;;AAI5C,IAAA,uBAAuB,CAAC,GAAW,EAAA;AACjC,QAAA,OAAO,CAAC,GAAG,CAAC,kCAAkC,CAAC;QAC/C,IAAI,GAAG,EAAE;YACP,KAAK,CAAC,GAAG;iBACN,IAAI,CAAC,QAAQ,IAAI,QAAQ,CAAC,IAAI,EAAE;iBAChC,IAAI,CAAC,IAAI,IAAG;gBACX,MAAM,GAAG,GAAG,MAAM,CAAC,GAAG,CAAC,eAAe,CAAC,IAAI,CAAC;gBAC5C,MAAM,IAAI,GAAG,QAAQ,CAAC,aAAa,CAAC,GAAG,CAAC;AACxC,gBAAA,IAAI,CAAC,IAAI,GAAG,GAAG;gBAEf,MAAM,QAAQ,GAAG,IAAI,CAAC,kBAAkB,CAAC,GAAG,CAAC;gBAC7C,IAAI,CAAC,QAAQ,GAAG,CAAG,EAAA,CAAC,IAAI,IAAI,EAAE,CAAA,CAAA,EAAI,QAAQ,CAAA,CAAE;AAC5C,gBAAA,IAAI,CAAC,MAAM,GAAG,OAAO;gBACrB,IAAI,CAAC,KAAK,EAAE;AAEZ,gBAAA,MAAM,CAAC,GAAG,CAAC,eAAe,CAAC,GAAG,CAAC;AACjC,aAAC;iBACA,KAAK,CAAC,KAAK,IAAG;AACb,gBAAA,OAAO,CAAC,KAAK,CAAC,gCAAgC,EAAE,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC;AACxE,aAAC,CAAC;;aACC;AACL,YAAA,OAAO,CAAC,KAAK,CAAC,yBAAyB,CAAC;;;+GAjDjC,eAAe,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,UAAA,EAAA,CAAA,CAAA;AAAf,IAAA,SAAA,IAAA,CAAA,KAAA,GAAA,EAAA,CAAA,qBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,eAAe,cAFd,MAAM,EAAA,CAAA,CAAA;;4FAEP,eAAe,EAAA,UAAA,EAAA,CAAA;kBAH3B,UAAU;AAAC,YAAA,IAAA,EAAA,CAAA;AACV,oBAAA,UAAU,EAAE,MAAM;AACnB,iBAAA;;;MC2BY,eAAe,CAAA;IAS1B,WAAoB,CAAA,QAAyB,EAAE,IAAiB,EAAA;QAA5C,IAAQ,CAAA,QAAA,GAAR,QAAQ;QAR5B,IAAM,CAAA,MAAA,GAAG,eAAe;AAMxB,QAAA,IAAA,CAAA,OAAO,GAAG,IAAI,YAAY,EAAU;;AAIpC,IAAA,QAAQ;IAER,YAAY,GAAA;AACV,QAAA,IAAI,IAAI,CAAC,KAAK,CAAC,QAAQ,EAAE;YACvB,IAAI,CAAC,QAAQ,CAAC,uBAAuB,CAAC,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC;;AAE5D,QAAA,IAAI,IAAI,CAAC,KAAK,CAAC,KAAK,KAAK,IAAI,CAAC,MAAM,CAAC,QAAQ,EAAE;YAC7C;;QAEF,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC;;+GApB1B,eAAe,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAAC,eAAA,EAAA,EAAA,EAAA,KAAA,EAAAC,WAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;AAAf,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,eAAe,EApBhB,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,YAAA,EAAA,MAAA,EAAA,EAAA,KAAA,EAAA,OAAA,EAAA,EAAA,OAAA,EAAA,EAAA,OAAA,EAAA,SAAA,EAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,EAAA;;;;;;;;;;;;;;;;;GAiBT,EAlBS,QAAA,EAAA,IAAA,EAAA,MAAA,EAAA,CAAA,2FAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EAAA,YAAY,mIAAE,SAAS,EAAA,QAAA,EAAA,YAAA,EAAA,MAAA,EAAA,CAAA,YAAA,EAAA,OAAA,EAAA,UAAA,EAAA,UAAA,EAAA,QAAA,EAAA,MAAA,EAAA,MAAA,EAAA,MAAA,EAAA,MAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,iBAAA,EAAA,OAAA,EAAA,MAAA,EAAA,QAAA,EAAA,QAAA,EAAA,MAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAE,OAAO,EAAE,QAAA,EAAA,UAAA,EAAA,MAAA,EAAA,CAAA,OAAA,EAAA,SAAA,EAAA,MAAA,EAAA,KAAA,EAAA,MAAA,EAAA,IAAA,EAAA,MAAA,EAAA,MAAA,EAAA,UAAA,EAAA,MAAA,EAAA,KAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,UAAU,yGAAE,OAAO,EAAA,QAAA,EAAA,UAAA,EAAA,MAAA,EAAA,CAAA,OAAA,EAAA,MAAA,CAAA,EAAA,CAAA,EAAA,CAAA,CAAA;;4FAqBpD,eAAe,EAAA,UAAA,EAAA,CAAA;kBAxB3B,SAAS;AACE,YAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,YAAY,EACV,UAAA,EAAA,IAAI,EACP,OAAA,EAAA,CAAC,YAAY,EAAE,SAAS,EAAE,OAAO,EAAE,UAAU,EAAE,OAAO,CAAC,EACtD,QAAA,EAAA;;;;;;;;;;;;;;;;;AAiBT,EAAA,CAAA,EAAA,MAAA,EAAA,CAAA,2FAAA,CAAA,EAAA;wGAOD,KAAK,EAAA,CAAA;sBADJ;gBAID,OAAO,EAAA,CAAA;sBADN;;;MCnCU,IAAI,GAAG,CAAC,IAAY,EAAE,IAAqB,KAAgB;IACtE,OAAO;QACL,IAAI;QACJ,IAAI;KACL;AACH;AAEA;MAEa,WAAW,GAAG,CAAC,IAAY,EAAE,IAAmC,KAAoB;IAC/F,OAAO;AACL,QAAA,KAAK,EAAE,SAAS;AAChB,QAAA,KAAK,EAAE,SAAS;QAChB,IAAI;AACJ,QAAA,IAAI,EAAE,SAAS;QACf,IAAI;KACL;AACH;MAEa,YAAY,GAAG,CAAC,IAAY,EAAE,IAAmC,KAAoB;AAChG,IAAA,OAAO,EAAE,GAAG,WAAW,CAAC,IAAI,EAAE,IAAI,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE;AACtD;MAEa,iBAAiB,GAAG,CAC/B,IAAY,EACZ,IAAmC,KACjB;AAClB,IAAA,OAAO,EAAE,GAAG,YAAY,CAAC,IAAI,EAAE,IAAI,CAAC,EAAE,KAAK,EAAE,OAAO,EAAE;AACxD;MAEa,YAAY,GAAG,CAAC,IAAY,EAAE,IAAmC,KAAoB;AAChG,IAAA,OAAO,EAAE,GAAG,WAAW,CAAC,IAAI,EAAE,IAAI,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE;AACtD;MAEa,iBAAiB,GAAG,CAC/B,IAAY,EACZ,IAAmC,KACjB;AAClB,IAAA,OAAO,EAAE,GAAG,YAAY,CAAC,IAAI,EAAE,IAAI,CAAC,EAAE,KAAK,EAAE,OAAO,EAAE;AACxD;MAEa,cAAc,GAAG,CAC5B,IAAY,EACZ,IAAmC,KACjB;AAClB,IAAA,OAAO,EAAE,GAAG,WAAW,CAAC,IAAI,EAAE,IAAI,CAAC,EAAE,IAAI,EAAE,SAAS,EAAE;AACxD;MAEa,mBAAmB,GAAG,CACjC,IAAY,EACZ,IAAmC,KACjB;AAClB,IAAA,OAAO,EAAE,GAAG,cAAc,CAAC,IAAI,EAAE,IAAI,CAAC,EAAE,KAAK,EAAE,OAAO,EAAE;AAC1D;MAEa,gBAAgB,GAAG,CAC9B,IAAY,EACZ,IAAmC,KACjB;AAClB,IAAA,OAAO,EAAE,GAAG,YAAY,CAAC,IAAI,EAAE,IAAI,CAAC,EAAE,MAAM,EAAE,MAAM,EAAE;AACxD;MAEa,qBAAqB,GAAG,CACnC,IAAY,EACZ,IAAmC,KACjB;AAClB,IAAA,OAAO,EAAE,GAAG,iBAAiB,CAAC,IAAI,EAAE,IAAI,CAAC,EAAE,MAAM,EAAE,MAAM,EAAE;AAC7D;MAEa,iBAAiB,GAAG,CAC/B,IAAY,EACZ,IAAmC,KACjB;AAClB,IAAA,OAAO,EAAE,GAAG,YAAY,CAAC,IAAI,EAAE,IAAI,CAAC,EAAE,MAAM,EAAE,OAAO,EAAE;AACzD;MAEa,sBAAsB,GAAG,CACpC,IAAY,EACZ,IAAmC,KACjB;AAClB,IAAA,OAAO,EAAE,GAAG,iBAAiB,CAAC,IAAI,EAAE,IAAI,CAAC,EAAE,MAAM,EAAE,OAAO,EAAE;AAC9D;MAEa,gBAAgB,GAAG,CAC9B,IAAY,EACZ,IAAmC,KACjB;AAClB,IAAA,OAAO,EAAE,GAAG,YAAY,CAAC,IAAI,EAAE,IAAI,CAAC,EAAE,MAAM,EAAE,MAAM,EAAE;AACxD;MAEa,qBAAqB,GAAG,CACnC,IAAY,EACZ,IAAmC,KACjB;AAClB,IAAA,OAAO,EAAE,GAAG,iBAAiB,CAAC,IAAI,EAAE,IAAI,CAAC,EAAE,MAAM,EAAE,MAAM,EAAE;AAC7D;MAEa,iBAAiB,GAAG,CAC/B,IAAY,EACZ,IAAmC,KACjB;AAClB,IAAA,OAAO,EAAE,GAAG,YAAY,CAAC,IAAI,EAAE,IAAI,CAAC,EAAE,MAAM,EAAE,OAAO,EAAE;AACzD;MAEa,sBAAsB,GAAG,CACpC,IAAY,EACZ,IAAmC,KACjB;AAClB,IAAA,OAAO,EAAE,GAAG,iBAAiB,CAAC,IAAI,EAAE,IAAI,CAAC,EAAE,MAAM,EAAE,OAAO,EAAE;AAC9D;MAEa,kBAAkB,GAAG,CAChC,IAAY,EACZ,IAAmC,KACjB;AAClB,IAAA,OAAO,EAAE,GAAG,cAAc,CAAC,IAAI,EAAE,IAAI,CAAC,EAAE,MAAM,EAAE,MAAM,EAAE;AAC1D;MAEa,uBAAuB,GAAG,CACrC,IAAY,EACZ,IAAmC,KACjB;AAClB,IAAA,OAAO,EAAE,GAAG,mBAAmB,CAAC,IAAI,EAAE,IAAI,CAAC,EAAE,MAAM,EAAE,MAAM,EAAE;AAC/D;MAEa,mBAAmB,GAAG,CACjC,IAAY,EACZ,IAAmC,KACjB;AAClB,IAAA,OAAO,EAAE,GAAG,cAAc,CAAC,IAAI,EAAE,IAAI,CAAC,EAAE,MAAM,EAAE,OAAO,EAAE;AAC3D;MAEa,wBAAwB,GAAG,CACtC,IAAY,EACZ,IAAmC,KACjB;AAClB,IAAA,OAAO,EAAE,GAAG,mBAAmB,CAAC,IAAI,EAAE,IAAI,CAAC,EAAE,MAAM,EAAE,OAAO,EAAE;AAChE;AAEa,MAAA,kBAAkB,GAAG,CAAC,IAAY,KAAoB;AACjE,IAAA,OAAO,YAAY,CAAC,IAAI,EAAE,QAAQ,CAAC;AACrC;AAEa,MAAA,gBAAgB,GAAG,CAAC,IAAY,KAAoB;AAC/D,IAAA,OAAO,EAAE,GAAG,YAAY,CAAC,IAAI,EAAE,QAAQ,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE;AAC3D;AAEa,MAAA,gBAAgB,GAAG,CAAC,IAAY,KAAoB;AAC/D,IAAA,OAAO,EAAE,GAAG,YAAY,CAAC,IAAI,EAAE,QAAQ,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE;AAC3D;AAEa,MAAA,uBAAuB,GAAG,CAAC,IAAY,KAAoB;AACtE,IAAA,OAAO,iBAAiB,CAAC,IAAI,EAAE,QAAQ,CAAC;AAC1C;AAEa,MAAA,qBAAqB,GAAG,CAAC,IAAY,KAAoB;AACpE,IAAA,OAAO,EAAE,GAAG,iBAAiB,CAAC,IAAI,EAAE,QAAQ,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE;AAChE;AAEa,MAAA,qBAAqB,GAAG,CAAC,IAAY,KAAoB;AACpE,IAAA,OAAO,EAAE,GAAG,iBAAiB,CAAC,IAAI,EAAE,QAAQ,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE;AAChE;AAEa,MAAA,eAAe,GAAG,CAAC,IAAY,KAAoB;AAC9D,IAAA,OAAO,gBAAgB,CAAC,IAAI,EAAE,QAAQ,CAAC;AACzC;AAEa,MAAA,gBAAgB,GAAG,CAAC,IAAY,KAAoB;AAC/D,IAAA,OAAO,iBAAiB,CAAC,IAAI,EAAE,QAAQ,CAAC;AAC1C;AAEA;AAEa,MAAA,8BAA8B,GAAG,CAAC,IAAY,KAAoB;IAC7E,OAAO,EAAE,GAAG,uBAAuB,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,SAAS,EAAE;AAC/D;MAEa,kCAAkC,GAAG,CAChD,IAAY,EACZ,IAAgB,KACE;IAClB,OAAO,EAAE,GAAG,8BAA8B,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE;AAC1D;AAEa,MAAA,kCAAkC,GAAG,CAChD,IAAY,EACZ,IAAY,EACZ,MAA+C,KAC7B;IAClB,OAAO,EAAE,GAAG,8BAA8B,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE;AAClE;AAEO,MAAM,sCAAsC,GAAG,CACpD,IAAY,EACZ,IAAgB,EAChB,IAAY,EACZ,MAA+C,KAC7B;AAClB,IAAA,OAAO,EAAE,GAAG,kCAAkC,CAAC,IAAI,EAAE,IAAI,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE;AAC5E;AAEa,MAAA,4BAA4B,GAAG,CAAC,IAAY,KAAoB;IAC3E,OAAO,EAAE,GAAG,qBAAqB,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,SAAS,EAAE;AAC7D;MAEa,gCAAgC,GAAG,CAC9C,IAAY,EACZ,IAAgB,KACE;IAClB,OAAO,EAAE,GAAG,4BAA4B,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE;AACxD;AAEa,MAAA,gCAAgC,GAAG,CAC9C,IAAY,EACZ,IAAY,EACZ,MAA+C,KAC7B;IAClB,OAAO,EAAE,GAAG,4BAA4B,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE;AAChE;AAEO,MAAM,oCAAoC,GAAG,CAClD,IAAY,EACZ,IAAgB,EAChB,IAAY,EACZ,MAA+C,KAC7B;AAClB,IAAA,OAAO,EAAE,GAAG,gCAAgC,CAAC,IAAI,EAAE,IAAI,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE;AAC1E;AAEa,MAAA,4BAA4B,GAAG,CAAC,IAAY,KAAoB;IAC3E,OAAO,EAAE,GAAG,qBAAqB,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,SAAS,EAAE;AAC7D;MAEa,gCAAgC,GAAG,CAC9C,IAAY,EACZ,IAAgB,KACE;IAClB,OAAO,EAAE,GAAG,4BAA4B,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE;AACxD;AAEa,MAAA,gCAAgC,GAAG,CAC9C,IAAY,EACZ,IAAY,EACZ,MAA+C,KAC7B;IAClB,OAAO,EAAE,GAAG,4BAA4B,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE;AAChE;AAEO,MAAM,oCAAoC,GAAG,CAClD,IAAY,EACZ,IAAgB,EAChB,IAAY,EACZ,MAA+C,KAC7B;AAClB,IAAA,OAAO,EAAE,GAAG,gCAAgC,CAAC,IAAI,EAAE,IAAI,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE;AAC1E;AAEa,MAAA,uBAAuB,GAAG,CAAC,IAAY,KAAoB;IACtE,OAAO,EAAE,GAAG,gBAAgB,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,SAAS,EAAE;AACxD;MAEa,2BAA2B,GAAG,CAAC,IAAY,EAAE,IAAgB,KAAoB;IAC5F,OAAO,EAAE,GAAG,uBAAuB,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE;AACnD;AAEa,MAAA,2BAA2B,GAAG,CACzC,IAAY,EACZ,IAAY,EACZ,MAA+C,KAC7B;IAClB,OAAO,EAAE,GAAG,uBAAuB,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE;AAC3D;AAEO,MAAM,+BAA+B,GAAG,CAC7C,IAAY,EACZ,IAAgB,EAChB,IAAY,EACZ,MAA+C,KAC7B;AAClB,IAAA,OAAO,EAAE,GAAG,2BAA2B,CAAC,IAAI,EAAE,IAAI,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE;AACrE;AAEa,MAAA,sBAAsB,GAAG,CAAC,IAAY,KAAoB;IACrE,OAAO,EAAE,GAAG,eAAe,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,SAAS,EAAE;AACvD;MAEa,0BAA0B,GAAG,CAAC,IAAY,EAAE,IAAgB,KAAoB;IAC3F,OAAO,EAAE,GAAG,sBAAsB,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE;AAClD;AAEa,MAAA,0BAA0B,GAAG,CACxC,IAAY,EACZ,IAAY,EACZ,MAA+C,KAC7B;IAClB,OAAO,EAAE,GAAG,sBAAsB,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE;AAC1D;AAEO,MAAM,8BAA8B,GAAG,CAC5C,IAAY,EACZ,IAAgB,EAChB,IAAY,EACZ,MAA+C,KAC7B;AAClB,IAAA,OAAO,EAAE,GAAG,0BAA0B,CAAC,IAAI,EAAE,IAAI,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE;AACpE;AAEA;AAEa,MAAA,gCAAgC,GAAG,CAAC,IAAY,KAAoB;IAC/E,OAAO,EAAE,GAAG,uBAAuB,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,WAAW,EAAE;AACjE;MAEa,oCAAoC,GAAG,CAClD,IAAY,EACZ,IAAgB,KACE;IAClB,OAAO,EAAE,GAAG,gCAAgC,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE;AAC5D;AAEa,MAAA,oCAAoC,GAAG,CAClD,IAAY,EACZ,IAAY,EACZ,MAA+C,KAC7B;IAClB,OAAO,EAAE,GAAG,gCAAgC,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE;AACpE;AAEO,MAAM,wCAAwC,GAAG,CACtD,IAAY,EACZ,IAAgB,EAChB,IAAY,EACZ,MAA+C,KAC7B;AAClB,IAAA,OAAO,EAAE,GAAG,oCAAoC,CAAC,IAAI,EAAE,IAAI,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE;AAC9E;AAEa,MAAA,8BAA8B,GAAG,CAAC,IAAY,KAAoB;IAC7E,OAAO,EAAE,GAAG,qBAAqB,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,WAAW,EAAE;AAC/D;MAEa,kCAAkC,GAAG,CAChD,IAAY,EACZ,IAAgB,KACE;IAClB,OAAO,EAAE,GAAG,8BAA8B,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE;AAC1D;AAEa,MAAA,kCAAkC,GAAG,CAChD,IAAY,EACZ,IAAY,EACZ,MAA+C,KAC7B;IAClB,OAAO,EAAE,GAAG,8BAA8B,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE;AAClE;AAEO,MAAM,sCAAsC,GAAG,CACpD,IAAY,EACZ,IAAgB,EAChB,IAAY,EACZ,MAA+C,KAC7B;AAClB,IAAA,OAAO,EAAE,GAAG,kCAAkC,CAAC,IAAI,EAAE,IAAI,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE;AAC5E;AAEa,MAAA,8BAA8B,GAAG,CAAC,IAAY,KAAoB;IAC7E,OAAO,EAAE,GAAG,qBAAqB,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,WAAW,EAAE;AAC/D;MAEa,kCAAkC,GAAG,CAChD,IAAY,EACZ,IAAgB,KACE;IAClB,OAAO,EAAE,GAAG,8BAA8B,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE;AAC1D;AAEa,MAAA,kCAAkC,GAAG,CAChD,IAAY,EACZ,IAAY,EACZ,MAA+C,KAC7B;IAClB,OAAO,EAAE,GAAG,8BAA8B,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE;AAClE;AAEO,MAAM,sCAAsC,GAAG,CACpD,IAAY,EACZ,IAAgB,EAChB,IAAY,EACZ,MAA+C,KAC7B;AAClB,IAAA,OAAO,EAAE,GAAG,kCAAkC,CAAC,IAAI,EAAE,IAAI,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE;AAC5E;AAEa,MAAA,wBAAwB,GAAG,CAAC,IAAY,KAAoB;IACvE,OAAO,EAAE,GAAG,eAAe,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,WAAW,EAAE;AACzD;MAEa,4BAA4B,GAAG,CAAC,IAAY,EAAE,IAAgB,KAAoB;IAC7F,OAAO,EAAE,GAAG,wBAAwB,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE;AACpD;AAEa,MAAA,4BAA4B,GAAG,CAC1C,IAAY,EACZ,IAAY,EACZ,MAA+C,KAC7B;IAClB,OAAO,EAAE,GAAG,wBAAwB,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE;AAC5D;AAEO,MAAM,gCAAgC,GAAG,CAC9C,IAAY,EACZ,IAAgB,EAChB,IAAY,EACZ,MAA+C,KAC7B;AAClB,IAAA,OAAO,EAAE,GAAG,4BAA4B,CAAC,IAAI,EAAE,IAAI,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE;AACtE;AAEa,MAAA,yBAAyB,GAAG,CAAC,IAAY,KAAoB;IACxE,OAAO,EAAE,GAAG,gBAAgB,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,WAAW,EAAE;AAC1D;MAEa,6BAA6B,GAAG,CAAC,IAAY,EAAE,IAAgB,KAAoB;IAC9F,OAAO,EAAE,GAAG,yBAAyB,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE;AACrD;AAEa,MAAA,6BAA6B,GAAG,CAC3C,IAAY,EACZ,IAAY,EACZ,MAA+C,KAC7B;IAClB,OAAO,EAAE,GAAG,yBAAyB,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE;AAC7D;AAEO,MAAM,iCAAiC,GAAG,CAC/C,IAAY,EACZ,IAAgB,EAChB,IAAY,EACZ,MAA+C,KAC7B;AAClB,IAAA,OAAO,EAAE,GAAG,6BAA6B,CAAC,IAAI,EAAE,IAAI,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE;AACvE;;MC1aa,gBAAgB,CAAA;AAI3B,IAAA,WAAA,GAAA;AAEA,IAAA,QAAQ;+GANG,gBAAgB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;AAAhB,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,gBAAgB,EATjB,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,aAAA,EAAA,MAAA,EAAA,EAAA,KAAA,EAAA,OAAA,EAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,EAAA;;;;;;AAMT,EAAA,CAAA,EAAA,QAAA,EAAA,IAAA,EAAA,MAAA,EAAA,CAAA,4fAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAPS,OAAO,EAAA,QAAA,EAAA,UAAA,EAAA,MAAA,EAAA,CAAA,OAAA,EAAA,MAAA,CAAA,EAAA,CAAA,EAAA,CAAA,CAAA;;4FAUN,gBAAgB,EAAA,UAAA,EAAA,CAAA;kBAb5B,SAAS;AACE,YAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,aAAa,cACX,IAAI,EAAA,OAAA,EACP,CAAC,OAAO,CAAC,EACR,QAAA,EAAA;;;;;;AAMT,EAAA,CAAA,EAAA,MAAA,EAAA,CAAA,4fAAA,CAAA,EAAA;wDAKD,KAAK,EAAA,CAAA;sBADJ;;;ACdH;MAQa,gBAAgB,CAAA;AAG3B,IAAA,WAAA,GAAA;AAEA,IAAA,QAAQ;+GALG,gBAAgB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;mGAAhB,gBAAgB,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,aAAA,EAAA,MAAA,EAAA,EAAA,KAAA,EAAA,OAAA,EAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,EAHjB,CAA4E,0EAAA,CAAA,EAAA,QAAA,EAAA,IAAA,EAAA,MAAA,EAAA,CAAA,+0BAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EAD5E,YAAY,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,OAAA,EAAA,QAAA,EAAA,WAAA,EAAA,MAAA,EAAA,CAAA,OAAA,EAAA,SAAA,CAAA,EAAA,CAAA,EAAA,CAAA,CAAA;;4FAIX,gBAAgB,EAAA,UAAA,EAAA,CAAA;kBAP5B,SAAS;AACE,YAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,aAAa,cACX,IAAI,EAAA,OAAA,EACP,CAAC,YAAY,CAAC,YACb,CAA4E,0EAAA,CAAA,EAAA,MAAA,EAAA,CAAA,+0BAAA,CAAA,EAAA;wDAKtF,KAAK,EAAA,CAAA;sBADJ;;;MCQU,aAAa,CAAA;AAMxB,IAAA,WAAA,CAAoB,eAAgC,EAAA;QAAhC,IAAe,CAAA,eAAA,GAAf,eAAe;AAFnC,QAAA,IAAA,CAAA,OAAO,GAAG,IAAI,YAAY,EAAU;;AAIpC,IAAA,QAAQ;IAER,WAAW,GAAA;AACT,QAAA,OAAO,IAAI,CAAC,eAAe,CAAC,kBAAkB,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC;;AAGhE,IAAA,cAAc,CAAC,KAAiB,EAAA;AAC9B,QAAA,IAAI,IAAI,CAAC,KAAK,CAAC,QAAQ,IAAI,IAAI,CAAC,KAAK,CAAC,GAAG,EAAE;YACzC,KAAK,CAAC,cAAc,EAAE;YACtB,IAAI,CAAC,eAAe,CAAC,uBAAuB,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC;;QAE9D,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC;;+GAnB1B,aAAa,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAAD,eAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;AAAb,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,aAAa,EAZd,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,UAAA,EAAA,MAAA,EAAA,EAAA,KAAA,EAAA,OAAA,EAAA,EAAA,OAAA,EAAA,EAAA,OAAA,EAAA,SAAA,EAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,EAAA;;;;;;;;;AAST,EAAA,CAAA,EAAA,QAAA,EAAA,IAAA,EAAA,MAAA,EAAA,CAAA,2OAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EAVS,YAAY,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAD,EAAA,CAAA,OAAA,EAAA,QAAA,EAAA,WAAA,EAAA,MAAA,EAAA,CAAA,OAAA,EAAA,SAAA,CAAA,EAAA,CAAA,EAAA,CAAA,CAAA;;4FAaX,aAAa,EAAA,UAAA,EAAA,CAAA;kBAhBzB,SAAS;AACE,YAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,UAAU,cACR,IAAI,EAAA,OAAA,EACP,CAAC,YAAY,CAAC,EACb,QAAA,EAAA;;;;;;;;;AAST,EAAA,CAAA,EAAA,MAAA,EAAA,CAAA,2OAAA,CAAA,EAAA;iFAIQ,KAAK,EAAA,CAAA;sBAAb;gBAGD,OAAO,EAAA,CAAA;sBADN;;;MCXU,aAAa,CAAA;IAIxB,WAAY,CAAA,OAAoB;AAEhC,IAAA,QAAQ;+GANG,aAAa,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAAD,WAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;AAAb,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,aAAa,EAHd,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,UAAA,EAAA,MAAA,EAAA,EAAA,KAAA,EAAA,OAAA,EAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,EAAA,CAAA,oGAAA,CAAsG,EADtG,QAAA,EAAA,IAAA,EAAA,MAAA,EAAA,CAAA,26BAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EAAA,YAAY,6HAAE,OAAO,EAAA,QAAA,EAAA,UAAA,EAAA,MAAA,EAAA,CAAA,OAAA,EAAA,SAAA,EAAA,MAAA,EAAA,KAAA,EAAA,MAAA,EAAA,IAAA,EAAA,MAAA,EAAA,MAAA,EAAA,UAAA,EAAA,MAAA,EAAA,KAAA,CAAA,EAAA,CAAA,EAAA,CAAA,CAAA;;4FAIpB,aAAa,EAAA,UAAA,EAAA,CAAA;kBAPzB,SAAS;+BACE,UAAU,EAAA,UAAA,EACR,IAAI,EACP,OAAA,EAAA,CAAC,YAAY,EAAE,OAAO,CAAC,EAAA,QAAA,EACtB,CAAsG,oGAAA,CAAA,EAAA,MAAA,EAAA,CAAA,26BAAA,CAAA,EAAA;6EAKhH,KAAK,EAAA,CAAA;sBADJ;;;MCUU,cAAc,CAAA;AAMzB,IAAA,WAAA,GAAA;QAFA,IAAS,CAAA,SAAA,GAAY,IAAI;;AAIzB,IAAA,QAAQ;IAER,eAAe,GAAA;QACb,WAAW,CAAC,MAAK;AACf,YAAA,IAAI,CAAC,SAAS,GAAG,IAAI;SACtB,EAAE,GAAG,CAAC;;+GAbE,cAAc,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;AAAd,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,cAAc,EAhBf,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,WAAA,EAAA,MAAA,EAAA,EAAA,KAAA,EAAA,OAAA,EAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,EAAA;;;;;;;;;;;;;AAaT,EAAA,CAAA,EAAA,QAAA,EAAA,IAAA,EAAA,MAAA,EAAA,CAAA,uhBAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EAdS,YAAY,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,OAAA,EAAA,QAAA,EAAA,WAAA,EAAA,MAAA,EAAA,CAAA,OAAA,EAAA,SAAA,CAAA,EAAA,CAAA,EAAA,CAAA,CAAA;;4FAiBX,cAAc,EAAA,UAAA,EAAA,CAAA;kBApB1B,SAAS;AACE,YAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,WAAW,cACT,IAAI,EAAA,OAAA,EACP,CAAC,YAAY,CAAC,EACb,QAAA,EAAA;;;;;;;;;;;;;AAaT,EAAA,CAAA,EAAA,MAAA,EAAA,CAAA,uhBAAA,CAAA,EAAA;wDAKD,KAAK,EAAA,CAAA;sBADJ;;;MCJU,oBAAoB,CAAA;AAI/B,IAAA,WAAA,GAAA;AAEA,IAAA,QAAQ;+GANG,oBAAoB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;AAApB,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,oBAAoB,EAZrB,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,kBAAA,EAAA,MAAA,EAAA,EAAA,KAAA,EAAA,OAAA,EAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,EAAA;;;;;;;;;GAST,EAVS,QAAA,EAAA,IAAA,EAAA,MAAA,EAAA,CAAA,kHAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EAAA,YAAY,6HAAE,cAAc,EAAA,QAAA,EAAA,kBAAA,EAAA,MAAA,EAAA,CAAA,QAAA,EAAA,OAAA,EAAA,MAAA,EAAA,UAAA,EAAA,MAAA,EAAA,OAAA,CAAA,EAAA,CAAA,EAAA,CAAA,CAAA;;4FAa3B,oBAAoB,EAAA,UAAA,EAAA,CAAA;kBAhBhC,SAAS;+BACE,kBAAkB,EAAA,UAAA,EAChB,IAAI,EACP,OAAA,EAAA,CAAC,YAAY,EAAE,cAAc,CAAC,EAC7B,QAAA,EAAA;;;;;;;;;AAST,EAAA,CAAA,EAAA,MAAA,EAAA,CAAA,kHAAA,CAAA,EAAA;wDAKD,KAAK,EAAA,CAAA;sBADJ;;;MCPU,aAAa,CAAA;AAIxB,IAAA,WAAA,GAAA;AAEA,IAAA,QAAQ;+GANG,aAAa,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;AAAb,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,aAAa,EAPd,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,UAAA,EAAA,MAAA,EAAA,EAAA,KAAA,EAAA,OAAA,EAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,EAAA;;;;AAIT,EAAA,CAAA,EAAA,QAAA,EAAA,IAAA,EAAA,MAAA,EAAA,CAAA,26BAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EALS,OAAO,EAAA,QAAA,EAAA,UAAA,EAAA,MAAA,EAAA,CAAA,OAAA,EAAA,MAAA,CAAA,EAAA,CAAA,EAAA,CAAA,CAAA;;4FAQN,aAAa,EAAA,UAAA,EAAA,CAAA;kBAXzB,SAAS;AACE,YAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,UAAU,cACR,IAAI,EAAA,OAAA,EACP,CAAC,OAAO,CAAC,EACR,QAAA,EAAA;;;;AAIT,EAAA,CAAA,EAAA,MAAA,EAAA,CAAA,26BAAA,CAAA,EAAA;wDAKD,KAAK,EAAA,CAAA;sBADJ;;;MCGU,cAAc,CAAA;AAIzB,IAAA,WAAA,GAAA;AAEA,IAAA,QAAQ;+GANG,cAAc,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;AAAd,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,cAAc,EAVf,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,WAAA,EAAA,MAAA,EAAA,EAAA,KAAA,EAAA,OAAA,EAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,EAAA;;;;;;;GAOT,EARS,QAAA,EAAA,IAAA,EAAA,MAAA,EAAA,CAAA,2gBAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,IAAI,6FAAE,OAAO,EAAA,QAAA,EAAA,UAAA,EAAA,MAAA,EAAA,CAAA,OAAA,EAAA,MAAA,CAAA,EAAA,CAAA,EAAA,CAAA,CAAA;;4FAWZ,cAAc,EAAA,UAAA,EAAA,CAAA;kBAd1B,SAAS;+BACE,WAAW,EAAA,UAAA,EACT,IAAI,EACP,OAAA,EAAA,CAAC,IAAI,EAAE,OAAO,CAAC,EACd,QAAA,EAAA;;;;;;;AAOT,EAAA,CAAA,EAAA,MAAA,EAAA,CAAA,2gBAAA,CAAA,EAAA;wDAKD,KAAK,EAAA,CAAA;sBADJ;;;MCAU,iBAAiB,CAAA;AAI5B,IAAA,WAAA,GAAA;AAEA,IAAA,QAAQ;+GANG,iBAAiB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;AAAjB,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,iBAAiB,EAVlB,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,eAAA,EAAA,MAAA,EAAA,EAAA,KAAA,EAAA,OAAA,EAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,EAAA;;;;;;;AAOT,EAAA,CAAA,EAAA,QAAA,EAAA,IAAA,EAAA,MAAA,EAAA,CAAA,oFAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EARS,YAAY,EAAA,QAAA,EAAA,SAAA,EAAA,MAAA,EAAA,CAAA,OAAA,CAAA,EAAA,OAAA,EAAA,CAAA,SAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAE,aAAa,EAAA,QAAA,EAAA,UAAA,EAAA,MAAA,EAAA,CAAA,OAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAE,aAAa,EAAA,QAAA,EAAA,UAAA,EAAA,MAAA,EAAA,CAAA,OAAA,CAAA,EAAA,CAAA,EAAA,CAAA,CAAA;;4FAWzC,iBAAiB,EAAA,UAAA,EAAA,CAAA;kBAd7B,SAAS;+BACE,eAAe,EAAA,UAAA,EACb,IAAI,EAAA,OAAA,EACP,CAAC,YAAY,EAAE,aAAa,EAAE,aAAa,CAAC,EAC3C,QAAA,EAAA;;;;;;;AAOT,EAAA,CAAA,EAAA,MAAA,EAAA,CAAA,oFAAA,CAAA,EAAA;wDAKD,KAAK,EAAA,CAAA;sBADJ;;;MCAU,oBAAoB,CAAA;AAO/B,IAAA,WAAA,GAAA;AAFA,QAAA,IAAA,CAAA,OAAO,GAAG,IAAI,YAAY,EAAU;;AAIpC,IAAA,QAAQ;AAER,IAAA,YAAY,CAAC,KAAc,EAAA;AACzB,QAAA,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC;;AAG1B,IAAA,IAAI,QAAQ,GAAA;AACV,QAAA,IAAI,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,MAAM,KAAK,CAAC,IAAI,IAAI,CAAC,KAAK,CAAC,QAAQ,KAAK,QAAQ,EAAE;AACvE,YAAA,OAAO,OAAO;;AAGhB,QAAA,OAAO,IAAI,CAAC,KAAK,CAAC,QAAQ;;+GApBjB,oBAAoB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;AAApB,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,oBAAoB,EAZrB,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,kBAAA,EAAA,MAAA,EAAA,EAAA,KAAA,EAAA,OAAA,EAAA,EAAA,OAAA,EAAA,EAAA,OAAA,EAAA,SAAA,EAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,EAAA;;;;;;;;;GAST,EAVS,QAAA,EAAA,IAAA,EAAA,MAAA,EAAA,CAAA,8TAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EAAA,YAAY,+UAAE,eAAe,EAAA,QAAA,EAAA,YAAA,EAAA,MAAA,EAAA,CAAA,OAAA,CAAA,EAAA,OAAA,EAAA,CAAA,SAAA,CAAA,EAAA,CAAA,EAAA,CAAA,CAAA;;4FAa5B,oBAAoB,EAAA,UAAA,EAAA,CAAA;kBAhBhC,SAAS;+BACE,kBAAkB,EAAA,UAAA,EAChB,IAAI,EACP,OAAA,EAAA,CAAC,YAAY,EAAE,eAAe,CAAC,EAC9B,QAAA,EAAA;;;;;;;;;AAST,EAAA,CAAA,EAAA,MAAA,EAAA,CAAA,8TAAA,CAAA,EAAA;wDAKD,KAAK,EAAA,CAAA;sBADJ;gBAID,OAAO,EAAA,CAAA;sBADN;;;ICvBS;AAAZ,CAAA,UAAY,QAAQ,EAAA;AAClB,IAAA,QAAA,CAAA,QAAA,CAAA,GAAA,QAAiB;AACjB,IAAA,QAAA,CAAA,SAAA,CAAA,GAAA,SAAmB;AACnB,IAAA,QAAA,CAAA,UAAA,CAAA,GAAA,UAAqB;AACrB,IAAA,QAAA,CAAA,SAAA,CAAA,GAAA,SAAmB;AACrB,CAAC,EALW,QAAQ,KAAR,QAAQ,GAKnB,EAAA,CAAA,CAAA;IAOW;AAAZ,CAAA,UAAY,WAAW,EAAA;AACrB,IAAA,WAAA,CAAA,WAAA,CAAA,YAAA,CAAA,GAAA,CAAA,CAAA,GAAA,YAAU;AACV,IAAA,WAAA,CAAA,WAAA,CAAA,aAAA,CAAA,GAAA,CAAA,CAAA,GAAA,aAAW;AACX,IAAA,WAAA,CAAA,WAAA,CAAA,SAAA,CAAA,GAAA,CAAA,CAAA,GAAA,SAAO;AACP,IAAA,WAAA,CAAA,WAAA,CAAA,QAAA,CAAA,GAAA,CAAA,CAAA,GAAA,QAAM;AACN,IAAA,WAAA,CAAA,WAAA,CAAA,aAAA,CAAA,GAAA,CAAA,CAAA,GAAA,aAAW;AACb,CAAC,EANW,WAAW,KAAX,WAAW,GAMtB,EAAA,CAAA,CAAA;;MCoLY,aAAa,CAAA;AAUxB,IAAA,WAAA,GAAA;AANA,QAAA,IAAA,CAAA,OAAO,GAAG,IAAI,YAAY,EAAkB;QAE5C,IAAK,CAAA,KAAA,GAAG,QAAQ;QAChB,IAAW,CAAA,WAAA,GAAG,iBAAiB;QAC/B,IAAQ,CAAA,QAAA,GAAG,WAAW;;AAItB,IAAA,QAAQ;IAER,YAAY,CAAC,OAAoB,EAAE,KAAc,EAAA;QAC/C,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,OAAO,EAAE,KAAK,EAAE,CAAC;;+GAf5B,aAAa,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;AAAb,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,aAAa,EAjKd,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,UAAA,EAAA,MAAA,EAAA,EAAA,KAAA,EAAA,OAAA,EAAA,EAAA,OAAA,EAAA,EAAA,OAAA,EAAA,SAAA,EAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,EAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA8JT,EA7KC,QAAA,EAAA,IAAA,EAAA,MAAA,EAAA,CAAA,meAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EAAA,YAAY,EACZ,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,OAAA,EAAA,QAAA,EAAA,kBAAA,EAAA,MAAA,EAAA,CAAA,SAAA,EAAA,cAAA,EAAA,eAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,IAAA,EAAA,QAAA,EAAA,QAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,UAAA,EAAA,UAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,eAAe,EACf,QAAA,EAAA,YAAA,EAAA,MAAA,EAAA,CAAA,OAAA,CAAA,EAAA,OAAA,EAAA,CAAA,SAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,eAAe,EACf,QAAA,EAAA,YAAA,EAAA,MAAA,EAAA,CAAA,OAAA,CAAA,EAAA,OAAA,EAAA,CAAA,SAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,cAAc,EACd,QAAA,EAAA,WAAA,EAAA,MAAA,EAAA,CAAA,OAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,aAAa,EACb,QAAA,EAAA,UAAA,EAAA,MAAA,EAAA,CAAA,OAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,OAAO,EACP,QAAA,EAAA,UAAA,EAAA,MAAA,EAAA,CAAA,QAAA,EAAA,OAAA,EAAA,UAAA,EAAA,UAAA,EAAA,MAAA,EAAA,MAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,iBAAA,EAAA,QAAA,EAAA,MAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,cAAc,+EACd,aAAa,EAAA,QAAA,EAAA,iBAAA,EAAA,MAAA,EAAA,CAAA,OAAA,EAAA,MAAA,EAAA,aAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EACb,YAAY,EAAA,QAAA,EAAA,gBAAA,EAAA,MAAA,EAAA,CAAA,OAAA,EAAA,MAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EACZ,eAAe,EAAA,QAAA,EAAA,mBAAA,EAAA,MAAA,EAAA,CAAA,OAAA,EAAA,MAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EACf,WAAW,EAAA,QAAA,EAAA,cAAA,EAAA,MAAA,EAAA,CAAA,SAAA,EAAA,OAAA,EAAA,UAAA,EAAA,eAAA,EAAA,SAAA,EAAA,gBAAA,EAAA,MAAA,EAAA,MAAA,EAAA,OAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EACX,UAAU,EAAA,QAAA,EAAA,aAAA,EAAA,MAAA,EAAA,CAAA,UAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EACV,SAAS,EAAA,QAAA,EAAA,YAAA,EAAA,MAAA,EAAA,CAAA,YAAA,EAAA,OAAA,EAAA,UAAA,EAAA,UAAA,EAAA,QAAA,EAAA,MAAA,EAAA,MAAA,EAAA,MAAA,EAAA,MAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,iBAAA,EAAA,OAAA,EAAA,MAAA,EAAA,QAAA,EAAA,QAAA,EAAA,MAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EACT,OAAO,EAAA,QAAA,EAAA,UAAA,EAAA,MAAA,EAAA,CAAA,OAAA,EAAA,SAAA,EAAA,MAAA,EAAA,KAAA,EAAA,MAAA,EAAA,IAAA,EAAA,MAAA,EAAA,MAAA,EAAA,UAAA,EAAA,MAAA,EAAA,KAAA,CAAA,EAAA,CAAA,EAAA,CAAA,CAAA;;4FAmKE,aAAa,EAAA,UAAA,EAAA,CAAA;kBApLzB,SAAS;+BACE,UAAU,EAAA,UAAA,EACR,IAAI,EACP,OAAA,EAAA;wBACP,YAAY;wBACZ,eAAe;wBACf,eAAe;wBACf,cAAc;wBACd,aAAa;wBACb,OAAO;wBACP,cAAc;wBACd,aAAa;wBACb,YAAY;wBACZ,eAAe;wBACf,WAAW;wBACX,UAAU;wBACV,SAAS;wBACT,OAAO;qBACR,EACS,QAAA,EAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AA8JT,EAAA,CAAA,EAAA,MAAA,EAAA,CAAA,meAAA,CAAA,EAAA;wDAIQ,KAAK,EAAA,CAAA;sBAAb;gBAGD,OAAO,EAAA,CAAA;sBADN;;;MChMU,mBAAmB,CAAA;AAC9B,IAAA,WAAA,GAAA;AAEA,IAAA,QAAQ;+GAHG,mBAAmB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;AAAnB,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,mBAAmB,EAHpB,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,iBAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,EAAA,CAAA,kEAAA,CAAoE,EADpE,QAAA,EAAA,IAAA,EAAA,MAAA,EAAA,CAAA,EAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EAAA,YAAY,+BAAE,WAAW,EAAA,QAAA,EAAA,cAAA,EAAA,MAAA,EAAA,CAAA,SAAA,EAAA,OAAA,EAAA,UAAA,EAAA,eAAA,EAAA,SAAA,EAAA,gBAAA,EAAA,MAAA,EAAA,MAAA,EAAA,OAAA,CAAA,EAAA,CAAA,EAAA,CAAA,CAAA;;4FAIxB,mBAAmB,EAAA,UAAA,EAAA,CAAA;kBAP/B,SAAS;+BACE,iBAAiB,EAAA,UAAA,EACf,IAAI,EACP,OAAA,EAAA,CAAC,YAAY,EAAE,WAAW,CAAC,EAAA,QAAA,EAC1B,CAAoE,kEAAA,CAAA,EAAA;;;MCOnE,qBAAqB,CAAA;AAGhC,IAAA,WAAA,GAAA;AAEA,IAAA,QAAQ;+GALG,qBAAqB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;AAArB,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,qBAAqB,EALtB,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,mBAAA,EAAA,MAAA,EAAA,EAAA,KAAA,EAAA,OAAA,EAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,EAAA;;AAET,EAAA,CAAA,EAAA,QAAA,EAAA,IAAA,EAAA,MAAA,EAAA,CAAA,EAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EAHS,YAAY,EAAA,EAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EAAE,mBAAmB,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAI,IAAA,CAAA,eAAA,EAAA,QAAA,EAAA,2CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,kBAAA,EAAA,QAAA,EAAA,4EAAA,EAAA,MAAA,EAAA,CAAA,WAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,oBAAA,EAAA,QAAA,EAAA,eAAA,EAAA,MAAA,EAAA,CAAA,aAAA,EAAA,UAAA,EAAA,SAAA,CAAA,EAAA,OAAA,EAAA,CAAA,eAAA,CAAA,EAAA,QAAA,EAAA,CAAA,QAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAe,WAAW,EAAA,QAAA,EAAA,cAAA,EAAA,MAAA,EAAA,CAAA,UAAA,EAAA,gBAAA,EAAA,WAAA,EAAA,aAAA,EAAA,OAAA,EAAA,MAAA,EAAA,SAAA,EAAA,kBAAA,EAAA,UAAA,EAAA,UAAA,EAAA,cAAA,EAAA,WAAA,EAAA,MAAA,EAAA,YAAA,EAAA,WAAA,EAAA,OAAA,EAAA,gBAAA,EAAA,WAAA,EAAA,WAAA,EAAA,MAAA,EAAA,MAAA,EAAA,aAAA,EAAA,UAAA,EAAA,UAAA,EAAA,MAAA,EAAA,OAAA,EAAA,YAAA,EAAA,OAAA,EAAA,MAAA,CAAA,EAAA,CAAA,EAAA,CAAA,CAAA;;4FAM1D,qBAAqB,EAAA,UAAA,EAAA,CAAA;kBATjC,SAAS;AACE,YAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,mBAAmB,EACjB,UAAA,EAAA,IAAI,EACP,OAAA,EAAA,CAAC,YAAY,EAAE,mBAAmB,EAAE,WAAW,EAAE,WAAW,CAAC,EAC5D,QAAA,EAAA;;AAET,EAAA,CAAA,EAAA;wDAIQ,KAAK,EAAA,CAAA;sBAAb;;;MCGU,sBAAsB,CAAA;AAIjC,IAAA,WAAA,GAAA;AAEA,IAAA,QAAQ;+GANG,sBAAsB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;AAAtB,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,sBAAsB,EAVvB,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,oBAAA,EAAA,MAAA,EAAA,EAAA,KAAA,EAAA,OAAA,EAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,EAAA;;;;;;;AAOT,EAAA,CAAA,EAAA,QAAA,EAAA,IAAA,EAAA,MAAA,EAAA,CAAA,8oBAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EARS,YAAY,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,OAAA,EAAA,QAAA,EAAA,WAAA,EAAA,MAAA,EAAA,CAAA,OAAA,EAAA,SAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAE,UAAU,EAAA,QAAA,EAAA,aAAA,EAAA,MAAA,EAAA,CAAA,OAAA,EAAA,UAAA,EAAA,MAAA,EAAA,QAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAE,OAAO,EAAA,QAAA,EAAA,UAAA,EAAA,MAAA,EAAA,CAAA,OAAA,EAAA,MAAA,CAAA,EAAA,CAAA,EAAA,CAAA,CAAA;;4FAWhC,sBAAsB,EAAA,UAAA,EAAA,CAAA;kBAdlC,SAAS;+BACE,oBAAoB,EAAA,UAAA,EAClB,IAAI,EAAA,OAAA,EACP,CAAC,YAAY,EAAE,UAAU,EAAE,OAAO,CAAC,EAClC,QAAA,EAAA;;;;;;;AAOT,EAAA,CAAA,EAAA,MAAA,EAAA,CAAA,8oBAAA,CAAA,EAAA;wDAKD,KAAK,EAAA,CAAA;sBADJ;;;MCoBU,kBAAkB,CAAA;AAG7B,IAAA,WAAA,GAAA;AAEA,IAAA,QAAQ;+GALG,kBAAkB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;AAAlB,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,kBAAkB,EA9BnB,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,gBAAA,EAAA,MAAA,EAAA,EAAA,KAAA,EAAA,OAAA,EAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,EAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;GA2BT,EA5BS,QAAA,EAAA,IAAA,EAAA,MAAA,EAAA,CAAA,2MAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EAAA,YAAY,8BAAE,mBAAmB,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,eAAA,EAAA,QAAA,EAAA,2CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,oBAAA,EAAA,QAAA,EAAA,eAAA,EAAA,MAAA,EAAA,CAAA,aAAA,EAAA,UAAA,EAAA,SAAA,CAAA,EAAA,OAAA,EAAA,CAAA,eAAA,CAAA,EAAA,QAAA,EAAA,CAAA,QAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAE,WAAW,EAAE,QAAA,EAAA,cAAA,EAAA,MAAA,EAAA,CAAA,YAAA,EAAA,WAAA,EAAA,OAAA,EAAA,WAAA,EAAA,UAAA,EAAA,UAAA,EAAA,gBAAA,EAAA,kBAAA,EAAA,WAAA,EAAA,YAAA,EAAA,eAAA,EAAA,QAAA,EAAA,KAAA,EAAA,KAAA,EAAA,cAAA,EAAA,MAAA,EAAA,aAAA,EAAA,UAAA,EAAA,MAAA,EAAA,aAAA,EAAA,cAAA,EAAA,UAAA,EAAA,iBAAA,EAAA,oBAAA,EAAA,sBAAA,EAAA,kBAAA,EAAA,MAAA,EAAA,6BAAA,EAAA,OAAA,EAAA,YAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,iBAAiB,mHAAE,QAAQ,EAAA,QAAA,EAAA,WAAA,EAAA,CAAA,EAAA,CAAA,CAAA;;4FA+B1E,kBAAkB,EAAA,UAAA,EAAA,CAAA;kBAlC9B,SAAS;AACE,YAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,gBAAgB,EACd,UAAA,EAAA,IAAI,EACP,OAAA,EAAA,CAAC,YAAY,EAAE,mBAAmB,EAAE,WAAW,EAAE,iBAAiB,EAAE,QAAQ,CAAC,EAC5E,QAAA,EAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;AA2BT,EAAA,CAAA,EAAA,MAAA,EAAA,CAAA,2MAAA,CAAA,EAAA;wDAIQ,KAAK,EAAA,CAAA;sBAAb;;;MC5BU,mBAAmB,CAAA;AAG9B,IAAA,WAAA,GAAA;AAEA,IAAA,QAAQ;+GALG,mBAAmB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;AAAnB,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,mBAAmB,uGAHpB,CAAwG,sGAAA,CAAA,EAAA,QAAA,EAAA,IAAA,EAAA,MAAA,EAAA,CAAA,EAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EADxG,YAAY,EAAE,EAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EAAA,mBAAmB,8TAAE,QAAQ,EAAA,QAAA,EAAA,WAAA,EAAA,MAAA,EAAA,CAAA,QAAA,EAAA,gBAAA,EAAA,cAAA,EAAA,aAAA,EAAA,WAAA,EAAA,YAAA,EAAA,aAAA,EAAA,OAAA,EAAA,SAAA,EAAA,kBAAA,EAAA,UAAA,EAAA,UAAA,EAAA,cAAA,EAAA,WAAA,EAAA,MAAA,EAAA,YAAA,EAAA,WAAA,EAAA,OAAA,EAAA,gBAAA,EAAA,KAAA,EAAA,WAAA,EAAA,KAAA,EAAA,WAAA,EAAA,MAAA,EAAA,UAAA,EAAA,MAAA,EAAA,SAAA,EAAA,aAAA,EAAA,UAAA,EAAA,UAAA,EAAA,OAAA,EAAA,MAAA,EAAA,YAAA,EAAA,MAAA,EAAA,MAAA,EAAA,OAAA,CAAA,EAAA,CAAA,EAAA,CAAA,CAAA;;4FAI1C,mBAAmB,EAAA,UAAA,EAAA,CAAA;kBAP/B,SAAS;+BACE,iBAAiB,EAAA,UAAA,EACf,IAAI,EAAA,OAAA,EACP,CAAC,YAAY,EAAE,mBAAmB,EAAE,QAAQ,CAAC,EAAA,QAAA,EAC5C,CAAwG,sGAAA,CAAA,EAAA;wDAIzG,KAAK,EAAA,CAAA;sBAAb;;;ACdG,SAAU,YAAY,CAAC,KAAa,EAAA;;AAExC,IAAA,IAAI,KAAK,CAAC,UAAU,CAAC,IAAI,CAAC,EAAE;QAC1B,OAAO,CAAA,IAAA,EAAO,KAAK,CAAA,CAAA,CAAG;;;AAIxB,IAAA,MAAM,WAAW,GAAG;QAClB,SAAS;QACT,WAAW;QACX,UAAU;QACV,SAAS;QACT,SAAS;QACT,QAAQ;QACR,OAAO;QACP,QAAQ;QACR,MAAM;KACP;;AAGD,IAAA,IAAI,WAAW,CAAC,QAAQ,CAAC,KAAK,CAAC,EAAE;QAC/B,OAAO,CAAA,gBAAA,EAAmB,KAAK,CAAA,CAAA,CAAG;;;AAIpC,IAAA,OAAO,KAAK;AACd;;MCyCa,uBAAuB,CAAA;AA9DpC,IAAA,WAAA,GAAA;QAgEE,IAAQ,CAAA,QAAA,GAAG,KAAK;QAChB,IAAY,CAAA,YAAA,GAAG,SAAS;AAkBzB;AAhBC,IAAA,IAAI,aAAa,GAAA;QACf,MAAM,SAAS,GAAG,IAAI,CAAC,KAAK,CAAC,KAAK,IAAI,GAAG,CAAC;AAC1C,QAAA,OAAO,IAAI,CAAC,KAAK,CAAC,OAAO,EAAE,MAAM,GAAG,SAAS,GAAG,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,EAAE,SAAS,CAAC,GAAG,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,OAAO;;AAGrH,IAAA,IAAI,WAAW,GAAA;AACb,QAAA,OAAO,IAAI,CAAC,KAAK,CAAC,OAAO,EAAE,MAAM,IAAI,IAAI,CAAC,KAAK,CAAC,KAAK,IAAI,GAAG,CAAC;;IAG/D,YAAY,GAAA;AACV,QAAA,IAAI,CAAC,QAAQ,GAAG,CAAC,IAAI,CAAC,QAAQ;;IAGhC,KAAK,GAAA;AACH,QAAA,OAAO,YAAY,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,IAAI,IAAI,CAAC,YAAY,CAAC;;+GAnBjD,uBAAuB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;AAAvB,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,uBAAuB,EA1DxB,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,qBAAA,EAAA,MAAA,EAAA,EAAA,KAAA,EAAA,OAAA,EAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,EAAA;;;;;;;;;;;;;AAaT,EAAA,CAAA,EAAA,QAAA,EAAA,IAAA,EAAA,MAAA,EAAA,CAAA,0nBAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAdS,OAAO,EAAA,QAAA,EAAA,UAAA,EAAA,MAAA,EAAA,CAAA,OAAA,EAAA,MAAA,CAAA,EAAA,CAAA,EAAA,CAAA,CAAA;;4FA2DN,uBAAuB,EAAA,UAAA,EAAA,CAAA;kBA9DnC,SAAS;AACE,YAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,qBAAqB,cACnB,IAAI,EAAA,OAAA,EACP,CAAC,OAAO,CAAC,EACR,QAAA,EAAA;;;;;;;;;;;;;AAaT,EAAA,CAAA,EAAA,MAAA,EAAA,CAAA,0nBAAA,CAAA,EAAA;8BA8CQ,KAAK,EAAA,CAAA;sBAAb;;;MCrCU,kBAAkB,CAAA;AAW7B,IAAA,WAAA,GAAA;AANA,QAAA,IAAA,CAAA,cAAc,GAAmB;YAC/B,GAAG,8BAA8B,CAAC,eAAe,CAAC;AAClD,YAAA,KAAK,EAAE,OAAO;SACf;;AAKD,IAAA,QAAQ;AAER,IAAA,cAAc,CAAC,KAAK,EAAA;QAClB,IAAI,CAAC,YAAY,GAAG,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC;QACzC,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAC,YAAY,CAAC;;IAGhD,KAAK,GAAA;AACH,QAAA,IAAI,CAAC,YAAY,GAAG,IAAI;QACxB,IAAI,CAAC,SAAS,CAAC,aAAa,CAAC,KAAK,GAAG,EAAE;;+GAtB9B,kBAAkB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;AAAlB,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,kBAAkB,EApBnB,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,gBAAA,EAAA,MAAA,EAAA,EAAA,KAAA,EAAA,OAAA,EAAA,EAAA,WAAA,EAAA,CAAA,EAAA,YAAA,EAAA,WAAA,EAAA,KAAA,EAAA,IAAA,EAAA,SAAA,EAAA,CAAA,WAAA,CAAA,EAAA,WAAA,EAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,EAAA;;;;;;;;;;;;;;;;;AAiBT,EAAA,CAAA,EAAA,QAAA,EAAA,IAAA,EAAA,MAAA,EAAA,CAAA,8MAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAlBS,OAAO,EAAA,QAAA,EAAA,UAAA,EAAA,MAAA,EAAA,CAAA,OAAA,EAAA,SAAA,EAAA,MAAA,EAAA,KAAA,EAAA,MAAA,EAAA,IAAA,EAAA,MAAA,EAAA,MAAA,EAAA,UAAA,EAAA,MAAA,EAAA,KAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAE,aAAa,EAAA,QAAA,EAAA,UAAA,EAAA,MAAA,EAAA,CAAA,OAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAE,eAAe,EAAA,QAAA,EAAA,YAAA,EAAA,MAAA,EAAA,CAAA,OAAA,CAAA,EAAA,OAAA,EAAA,CAAA,SAAA,CAAA,EAAA,CAAA,EAAA,CAAA,CAAA;;4FAqBtC,kBAAkB,EAAA,UAAA,EAAA,CAAA;kBAxB9B,SAAS;+BACE,gBAAgB,EAAA,UAAA,EACd,IAAI,EAAA,OAAA,EACP,CAAC,OAAO,EAAE,aAAa,EAAE,eAAe,CAAC,EACxC,QAAA,EAAA;;;;;;;;;;;;;;;;;AAiBT,EAAA,CAAA,EAAA,MAAA,EAAA,CAAA,8MAAA,CAAA,EAAA;wDAIuB,SAAS,EAAA,CAAA;sBAAhC,SAAS;uBAAC,WAAW;gBAEb,KAAK,EAAA,CAAA;sBAAb;;;MCVU,aAAa,CAAA;AAGxB,IAAA,WAAA,GAAA;AAEA,IAAA,QAAQ;AAER,IAAA,IAAI,MAAM,GAAA;AACR,QAAA,MAAM,IAAI,GAAG,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC;QAC3C,MAAM,MAAM,GAAG,EAAE;AACjB,QAAA,IAAI,CAAC,GAAG,CAAC,CAAC,CAAS,KAAI;YACrB,IAAI,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE;AAClC,gBAAA,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;;AAErC,SAAC,CAAC;AACF,QAAA,OAAO,MAAM;;+GAfJ,aAAa,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;AAAb,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,aAAa,EAfd,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,UAAA,EAAA,MAAA,EAAA,EAAA,KAAA,EAAA,OAAA,EAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,EAAA;;;;;;;;;;;;GAYT,EAbS,QAAA,EAAA,IAAA,EAAA,MAAA,EAAA,CAAA,uIAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EAAA,YAAY,gQAAE,aAAa,EAAA,QAAA,EAAA,UAAA,EAAA,MAAA,EAAA,CAAA,OAAA,CAAA,EAAA,CAAA,EAAA,CAAA,CAAA;;4FAgB1B,aAAa,EAAA,UAAA,EAAA,CAAA;kBAnBzB,SAAS;+BACE,UAAU,EAAA,UAAA,EACR,IAAI,EACP,OAAA,EAAA,CAAC,YAAY,EAAE,aAAa,CAAC,EAC5B,QAAA,EAAA;;;;;;;;;;;;AAYT,EAAA,CAAA,EAAA,MAAA,EAAA,CAAA,uIAAA,CAAA,EAAA;wDAIQ,KAAK,EAAA,CAAA;sBAAb;;;MCbU,kBAAkB,CAAA;AAG7B,IAAA,WAAA,GAAA;AAEA,IAAA,QAAQ;+GALG,kBAAkB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;AAAlB,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,kBAAkB,EAHnB,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,gBAAA,EAAA,MAAA,EAAA,EAAA,KAAA,EAAA,OAAA,EAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,EAAA,CAAA,gFAAA,CAAkF,EADlF,QAAA,EAAA,IAAA,EAAA,MAAA,EAAA,CAAA,EAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EAAA,mBAAmB,8TAAE,WAAW,EAAA,QAAA,EAAA,cAAA,EAAA,MAAA,EAAA,CAAA,YAAA,EAAA,WAAA,EAAA,OAAA,EAAA,WAAA,EAAA,UAAA,EAAA,UAAA,EAAA,gBAAA,EAAA,kBAAA,EAAA,WAAA,EAAA,YAAA,EAAA,eAAA,EAAA,QAAA,EAAA,KAAA,EAAA,KAAA,EAAA,cAAA,EAAA,MAAA,EAAA,aAAA,EAAA,UAAA,EAAA,MAAA,EAAA,aAAA,EAAA,cAAA,EAAA,UAAA,EAAA,iBAAA,EAAA,oBAAA,EAAA,sBAAA,EAAA,kBAAA,EAAA,MAAA,EAAA,6BAAA,EAAA,OAAA,EAAA,YAAA,CAAA,EAAA,CAAA,EAAA,CAAA,CAAA;;4FAI/B,kBAAkB,EAAA,UAAA,EAAA,CAAA;kBAP9B,SAAS;+BACE,gBAAgB,EAAA,UAAA,EACd,IAAI,EACP,OAAA,EAAA,CAAC,mBAAmB,EAAE,WAAW,CAAC,EAAA,QAAA,EACjC,CAAkF,gFAAA,CAAA,EAAA;wDAInF,KAAK,EAAA,CAAA;sBAAb;;;ACbH;MAQa,mBAAmB,CAAA;AAK9B,IAAA,WAAA,GAAA;AAJA,QAAA,IAAA,CAAA,OAAO,GAAgB;AACrB,YAAA,iBAAiB,EAAE,SAAS;AAC5B,YAAA,GAAG,EAAE,EAAE;SACR;;IAGD,MAAM,oBAAoB,CAAC,GAAW,EAAA;AACpC,QAAA,MAAM,OAAO,CAAC,IAAI,CAAC,EAAE,GAAG,IAAI,CAAC,OAAO,EAAE,GAAG,EAAE,CAAC;;+GARnC,mBAAmB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,UAAA,EAAA,CAAA,CAAA;AAAnB,IAAA,SAAA,IAAA,CAAA,KAAA,GAAA,EAAA,CAAA,qBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,mBAAmB,cAFlB,MAAM,EAAA,CAAA,CAAA;;4FAEP,mBAAmB,EAAA,UAAA,EAAA,CAAA;kBAH/B,UAAU;AAAC,YAAA,IAAA,EAAA,CAAA;AACV,oBAAA,UAAU,EAAE,MAAM;AACnB,iBAAA;;;MCAY,iBAAiB,CAAA;AAK5B,IAAA,WAAA,GAAA;AAHA,QAAA,IAAA,CAAA,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC;AACvB,QAAA,IAAA,CAAA,YAAY,GAAG,MAAM,CAAC,mBAAmB,CAAC;;AAI1C,IAAA,aAAa,CAAC,GAAW,EAAA;AACvB,QAAA,IAAI,CAAC,YAAY,CAAC,oBAAoB,CAAC,GAAG,CAAC;;IAG7C,gBAAgB,CAAC,KAAa,EAAE,YAAiB,EAAA;AAC/C,QAAA,MAAM,gBAAgB,GAAqB;AACzC,YAAA,KAAK,EAAE;AACL,gBAAA,IAAI,EAAE,YAAY;AACnB,aAAA;SACF;QAED,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,KAAK,CAAC,EAAE,gBAAgB,CAAC;;AAGjD,IAAA,aAAa,CAAC,GAAW,EAAA;AACvB,QAAA,IAAI,CAAC;aACF,aAAa,CAAC,GAAG;AACjB,aAAA,IAAI,CAAC,QAAQ,IAAG,GAAG;AACnB,aAAA,KAAK,CAAC,KAAK,IAAK,GAAC,CAAC;;AAGvB,IAAA,YAAY,CAAC,GAAW,EAAA;QACtB,MAAM,CAAC,IAAI,CAAC,GAAG,EAAE,QAAQ,EAAE,qBAAqB,CAAC;;+GA7BxC,iBAAiB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,UAAA,EAAA,CAAA,CAAA;AAAjB,IAAA,SAAA,IAAA,CAAA,KAAA,GAAA,EAAA,CAAA,qBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,iBAAiB,cAFhB,MAAM,EAAA,CAAA,CAAA;;4FAEP,iBAAiB,EAAA,UAAA,EAAA,CAAA;kBAH7B,UAAU;AAAC,YAAA,IAAA,EAAA,CAAA;AACV,oBAAA,UAAU,EAAE,MAAM;AACnB,iBAAA;;;MCeY,aAAa,CAAA;AASxB,IAAA,WAAA,GAAA;AAJA,QAAA,IAAA,CAAA,OAAO,GAAG,IAAI,YAAY,EAAU;AAEpC,QAAA,IAAA,CAAA,OAAO,GAAG,MAAM,CAAC,iBAAiB,CAAC;AAGjC,QAAA,QAAQ,CAAC,EAAE,qBAAqB,EAAE,CAAC;;AAGrC,IAAA,QAAQ;IAER,cAAc,GAAA;QACZ,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC;AAEnC,QAAA,QAAQ,IAAI,CAAC,KAAK,CAAC,IAAI;AACrB,YAAA,KAAK,UAAU;gBACb,IAAI,CAAC,OAAO,CAAC,aAAa,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC;gBAC3C;AACF,YAAA,KAAK,QAAQ;gBACX,IAAI,CAAC,OAAO,CAAC,aAAa,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC;gBAC3C;AACF,YAAA,KAAK,KAAK;gBACR,IAAI,CAAC,OAAO,CAAC,YAAY,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC;gBAC1C;;;+GA3BK,aAAa,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;AAAb,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,aAAa,EAVd,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,UAAA,EAAA,MAAA,EAAA,EAAA,KAAA,EAAA,OAAA,EAAA,EAAA,OAAA,EAAA,EAAA,OAAA,EAAA,SAAA,EAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,EAAA;;;;;;;AAOT,EAAA,CAAA,EAAA,QAAA,EAAA,IAAA,EAAA,MAAA,EAAA,CAAA,oEAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EARS,SAAS,EAAA,QAAA,EAAA,YAAA,EAAA,MAAA,EAAA,CAAA,YAAA,EAAA,OAAA,EAAA,UAAA,EAAA,UAAA,EAAA,QAAA,EAAA,MAAA,EAAA,MAAA,EAAA,MAAA,EAAA,MAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,iBAAA,EAAA,OAAA,EAAA,MAAA,EAAA,QAAA,EAAA,QAAA,EAAA,MAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAE,OAAO,EAAA,QAAA,EAAA,UAAA,EAAA,MAAA,EAAA,CAAA,OAAA,EAAA,SAAA,EAAA,MAAA,EAAA,KAAA,EAAA,MAAA,EAAA,IAAA,EAAA,MAAA,EAAA,MAAA,EAAA,UAAA,EAAA,MAAA,EAAA,KAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAE,OAAO,EAAA,QAAA,EAAA,UAAA,EAAA,MAAA,EAAA,CAAA,OAAA,EAAA,MAAA,CAAA,EAAA,CAAA,EAAA,CAAA,CAAA;;4FAW1B,aAAa,EAAA,UAAA,EAAA,CAAA;kBAdzB,SAAS;+BACE,UAAU,EAAA,UAAA,EACR,IAAI,EAAA,OAAA,EACP,CAAC,SAAS,EAAE,OAAO,EAAE,OAAO,CAAC,EAC5B,QAAA,EAAA;;;;;;;AAOT,EAAA,CAAA,EAAA,MAAA,EAAA,CAAA,oEAAA,CAAA,EAAA;wDAKD,KAAK,EAAA,CAAA;sBADJ;gBAID,OAAO,EAAA,CAAA;sBADN;;;MCDU,kBAAkB,CAAA;AAI7B,IAAA,WAAA,GAAA;AAEA,IAAA,QAAQ;+GANG,kBAAkB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;AAAlB,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,kBAAkB,EAdnB,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,gBAAA,EAAA,MAAA,EAAA,EAAA,KAAA,EAAA,OAAA,EAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,EAAA;;;;;;;;;;;AAWT,EAAA,CAAA,EAAA,QAAA,EAAA,IAAA,EAAA,MAAA,EAAA,CAAA,mDAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EAZS,YAAY,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,OAAA,EAAA,QAAA,EAAA,kBAAA,EAAA,MAAA,EAAA,CAAA,SAAA,EAAA,cAAA,EAAA,eAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAE,cAAc,EAAA,QAAA,EAAA,WAAA,EAAA,MAAA,EAAA,CAAA,OAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAE,aAAa,EAAA,QAAA,EAAA,UAAA,EAAA,MAAA,EAAA,CAAA,OAAA,CAAA,EAAA,OAAA,EAAA,CAAA,SAAA,CAAA,EAAA,CAAA,EAAA,CAAA,CAAA;;4FAe1C,kBAAkB,EAAA,UAAA,EAAA,CAAA;kBAlB9B,SAAS;+BACE,gBAAgB,EAAA,UAAA,EACd,IAAI,EAAA,OAAA,EACP,CAAC,YAAY,EAAE,cAAc,EAAE,aAAa,CAAC,EAC5C,QAAA,EAAA;;;;;;;;;;;AAWT,EAAA,CAAA,EAAA,MAAA,EAAA,CAAA,mDAAA,CAAA,EAAA;wDAKD,KAAK,EAAA,CAAA;sBADJ;;;MCDU,iBAAiB,CAAA;AAI5B,IAAA,WAAA,GAAA;AAEA,IAAA,QAAQ;+GANG,iBAAiB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;AAAjB,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,iBAAiB,EAdlB,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,eAAA,EAAA,MAAA,EAAA,EAAA,KAAA,EAAA,OAAA,EAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,EAAA;;;;;;;;;;;AAWT,EAAA,CAAA,EAAA,QAAA,EAAA,IAAA,EAAA,MAAA,EAAA,CAAA,2CAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EAZS,YAAY,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,OAAA,EAAA,QAAA,EAAA,WAAA,EAAA,MAAA,EAAA,CAAA,OAAA,EAAA,SAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAE,YAAY,EAAA,QAAA,EAAA,SAAA,EAAA,MAAA,EAAA,CAAA,OAAA,CAAA,EAAA,OAAA,EAAA,CAAA,SAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAE,aAAa,EAAA,QAAA,EAAA,UAAA,EAAA,MAAA,EAAA,CAAA,OAAA,CAAA,EAAA,CAAA,EAAA,CAAA,CAAA;;4FAexC,iBAAiB,EAAA,UAAA,EAAA,CAAA;kBAlB7B,SAAS;+BACE,eAAe,EAAA,UAAA,EACb,IAAI,EAAA,OAAA,EACP,CAAC,YAAY,EAAE,YAAY,EAAE,aAAa,CAAC,EAC1C,QAAA,EAAA;;;;;;;;;;;AAWT,EAAA,CAAA,EAAA,MAAA,EAAA,CAAA,2CAAA,CAAA,EAAA;wDAKD,KAAK,EAAA,CAAA;sBADJ;;;MCbU,oBAAoB,CAAA;AAG/B,IAAA,WAAA,GAAA;AAEA,IAAA,QAAQ;+GALG,oBAAoB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;AAApB,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,oBAAoB,EAHrB,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,kBAAA,EAAA,MAAA,EAAA,EAAA,KAAA,EAAA,OAAA,EAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,EAAA,CAAA,uGAAA,CAAyG,EADzG,QAAA,EAAA,IAAA,EAAA,MAAA,EAAA,CAAA,EAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EAAA,mBAAmB,8TAAE,QAAQ,EAAA,QAAA,EAAA,WAAA,EAAA,MAAA,EAAA,CAAA,QAAA,EAAA,gBAAA,EAAA,cAAA,EAAA,aAAA,EAAA,WAAA,EAAA,YAAA,EAAA,aAAA,EAAA,OAAA,EAAA,SAAA,EAAA,kBAAA,EAAA,UAAA,EAAA,UAAA,EAAA,cAAA,EAAA,WAAA,EAAA,MAAA,EAAA,YAAA,EAAA,WAAA,EAAA,OAAA,EAAA,gBAAA,EAAA,KAAA,EAAA,WAAA,EAAA,KAAA,EAAA,WAAA,EAAA,MAAA,EAAA,UAAA,EAAA,MAAA,EAAA,SAAA,EAAA,aAAA,EAAA,UAAA,EAAA,UAAA,EAAA,OAAA,EAAA,MAAA,EAAA,YAAA,EAAA,MAAA,EAAA,MAAA,EAAA,OAAA,CAAA,EAAA,CAAA,EAAA,CAAA,CAAA;;4FAI5B,oBAAoB,EAAA,UAAA,EAAA,CAAA;kBAPhC,SAAS;+BACE,kBAAkB,EAAA,UAAA,EAChB,IAAI,EACP,OAAA,EAAA,CAAC,mBAAmB,EAAE,QAAQ,CAAC,EAAA,QAAA,EAC9B,CAAyG,uGAAA,CAAA,EAAA;wDAI1G,KAAK,EAAA,CAAA;sBAAb;;;MCYU,sBAAsB,CAAA;AAKjC,IAAA,WAAA,CACE,IAAiB,EAAA;QAHnB,IAAY,CAAA,YAAA,GAAG,IAAI;;AAMnB,IAAA,QAAQ;+GATG,sBAAsB,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAAJ,WAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;AAAtB,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,sBAAsB,EAfvB,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,oBAAA,EAAA,MAAA,EAAA,EAAA,KAAA,EAAA,OAAA,EAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,EAAA;;;;;;;;;;;;AAYT,EAAA,CAAA,EAAA,QAAA,EAAA,IAAA,EAAA,MAAA,EAAA,CAAA,yKAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EAbS,mBAAmB,EAAE,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAC,IAAA,CAAA,eAAA,EAAA,QAAA,EAAA,2CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,oBAAA,EAAA,QAAA,EAAA,eAAA,EAAA,MAAA,EAAA,CAAA,aAAA,EAAA,UAAA,EAAA,SAAA,CAAA,EAAA,OAAA,EAAA,CAAA,eAAA,CAAA,EAAA,QAAA,EAAA,CAAA,QAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,QAAQ,EAAE,QAAA,EAAA,WAAA,EAAA,MAAA,EAAA,CAAA,QAAA,EAAA,gBAAA,EAAA,cAAA,EAAA,aAAA,EAAA,WAAA,EAAA,YAAA,EAAA,aAAA,EAAA,OAAA,EAAA,SAAA,EAAA,kBAAA,EAAA,UAAA,EAAA,UAAA,EAAA,cAAA,EAAA,WAAA,EAAA,MAAA,EAAA,YAAA,EAAA,WAAA,EAAA,OAAA,EAAA,gBAAA,EAAA,KAAA,EAAA,WAAA,EAAA,KAAA,EAAA,WAAA,EAAA,MAAA,EAAA,UAAA,EAAA,MAAA,EAAA,SAAA,EAAA,aAAA,EAAA,UAAA,EAAA,UAAA,EAAA,OAAA,EAAA,MAAA,EAAA,YAAA,EAAA,MAAA,EAAA,MAAA,EAAA,OAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,SAAS,oPAAE,OAAO,EAAA,QAAA,EAAA,UAAA,EAAA,MAAA,EAAA,CAAA,OAAA,EAAA,SAAA,EAAA,MAAA,EAAA,KAAA,EAAA,MAAA,EAAA,IAAA,EAAA,MAAA,EAAA,MAAA,EAAA,UAAA,EAAA,MAAA,EAAA,KAAA,CAAA,EAAA,CAAA,EAAA,CAAA,CAAA;;4FAgBhD,sBAAsB,EAAA,UAAA,EAAA,CAAA;kBAnBlC,SAAS;AACE,YAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,oBAAoB,EAClB,UAAA,EAAA,IAAI,EACP,OAAA,EAAA,CAAC,mBAAmB,EAAE,QAAQ,EAAE,SAAS,EAAE,OAAO,CAAC,EAClD,QAAA,EAAA;;;;;;;;;;;;AAYT,EAAA,CAAA,EAAA,MAAA,EAAA,CAAA,yKAAA,CAAA,EAAA;6EAIQ,KAAK,EAAA,CAAA;sBAAb;;;MCXU,iBAAiB,CAAA;AAiB5B,IAAA,WAAA,GAAA;QAZA,IAAU,CAAA,UAAA,GAAG,CAAC;AACd,QAAA,IAAA,CAAA,cAAc,GAAqB;AACjC,YAAA,WAAW,EAAE;AACX,gBAAA,WAAW,EAAE,MAAM;AACnB,gBAAA,KAAK,EAAE,MAAM;AACb,gBAAA,MAAM,EAAE,MAAM;AACf,aAAA;AACD,YAAA,UAAU,EAAE,eAAe;YAC3B,MAAM,EAAE,IAAI,CAAC,UAAU;AACvB,YAAA,gBAAgB,EAAE,IAAI;SACvB;;AAID,IAAA,QAAQ;IAER,KAAK,GAAA;AACH,QAAA,IAAI,IAAI,CAAC,OAAO,EAAE;AAChB,YAAA,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,EAAE,CAAC;;;+GAvBlB,iBAAiB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;mGAAjB,iBAAiB,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,eAAA,EAAA,MAAA,EAAA,EAAA,KAAA,EAAA,OAAA,EAAA,EAAA,WAAA,EAAA,CAAA,EAAA,YAAA,EAAA,SAAA,EAAA,KAAA,EAAA,IAAA,EAAA,SAAA,EACjB,mBAAmB,EARpB,WAAA,EAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,EAAA;;;;AAIT,EAAA,CAAA,EAAA,QAAA,EAAA,IAAA,EAAA,MAAA,EAAA,CAAA,0OAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EALS,gBAAgB,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAG,IAAA,CAAA,mBAAA,EAAA,QAAA,EAAA,cAAA,EAAA,MAAA,EAAA,CAAA,QAAA,EAAA,UAAA,CAAA,EAAA,OAAA,EAAA,CAAA,eAAA,CAAA,EAAA,CAAA,EAAA,CAAA,CAAA;;4FAQf,iBAAiB,EAAA,UAAA,EAAA,CAAA;kBAX7B,SAAS;AACE,YAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,eAAe,cACb,IAAI,EAAA,OAAA,EACP,CAAC,gBAAgB,CAAC,EACjB,QAAA,EAAA;;;;AAIT,EAAA,CAAA,EAAA,MAAA,EAAA,CAAA,0OAAA,CAAA,EAAA;wDAIkD,OAAO,EAAA,CAAA;sBAAzD,SAAS;AAAC,gBAAA,IAAA,EAAA,CAAA,mBAAmB,EAAE,EAAE,MAAM,EAAE,KAAK,EAAE;gBAExC,KAAK,EAAA,CAAA;sBAAb;;;MCwBU,mBAAmB,CAAA;AAI9B,IAAA,WAAA,GAAA;AAEA,IAAA,QAAQ;+GANG,mBAAmB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;AAAnB,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,mBAAmB,EAhCpB,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,iBAAA,EAAA,MAAA,EAAA,EAAA,KAAA,EAAA,OAAA,EAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,EAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AA6BT,EAAA,CAAA,EAAA,QAAA,EAAA,IAAA,EAAA,MAAA,EAAA,CAAA,uaAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EA9BS,YAAY,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,OAAA,EAAA,QAAA,EAAA,WAAA,EAAA,MAAA,EAAA,CAAA,OAAA,EAAA,SAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,IAAA,EAAA,QAAA,EAAA,QAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,UAAA,EAAA,UAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,MAAA,EAAA,IAAA,EAAA,EAAA,CAAA,aAAA,EAAA,IAAA,EAAA,WAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAE,cAAc,EAAA,QAAA,EAAA,WAAA,EAAA,MAAA,EAAA,CAAA,OAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAE,gBAAgB,EAAA,QAAA,EAAA,aAAA,EAAA,MAAA,EAAA,CAAA,OAAA,CAAA,EAAA,CAAA,EAAA,CAAA,CAAA;;4FAiC7C,mBAAmB,EAAA,UAAA,EAAA,CAAA;kBApC/B,SAAS;+BACE,iBAAiB,EAAA,UAAA,EACf,IAAI,EAAA,OAAA,EACP,CAAC,YAAY,EAAE,cAAc,EAAE,gBAAgB,CAAC,EAC/C,QAAA,EAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AA6BT,EAAA,CAAA,EAAA,MAAA,EAAA,CAAA,uaAAA,CAAA,EAAA;wDAKD,KAAK,EAAA,CAAA;sBADJ;;;ACrCH;MAsCa,uBAAuB,CAAA;AAOlC,IAAA,WAAA,GAAA;QAHA,IAAY,CAAA,YAAA,GAAG,CAAC;QAChB,IAAQ,CAAA,QAAA,GAAG,KAAK;;IAIhB,QAAQ,GAAA;QACN,WAAW,CAAC,MAAK;AACf,YAAA,IAAI,CAAC,QAAQ,GAAG,CAAC,IAAI,CAAC,QAAQ;SAC/B,EAAE,IAAI,CAAC;QAER,WAAW,CAAC,MAAK;YACf,IAAI,CAAC,cAAc,EAAE;SACtB,EAAE,IAAI,CAAC;;AAGV,IAAA,IAAI,OAAO,GAAA;QACT,OAAO,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,IAAI,CAAC,YAAY,CAAC;;IAG/C,cAAc,GAAA;AACZ,QAAA,IAAI,CAAC,YAAY,GAAG,CAAC,IAAI,CAAC,YAAY,GAAG,CAAC,IAAI,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,MAAM;;+GAxB/D,uBAAuB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;AAAvB,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,uBAAuB,EAjCxB,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,qBAAA,EAAA,MAAA,EAAA,EAAA,KAAA,EAAA,OAAA,EAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,EAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AA8BT,EAAA,CAAA,EAAA,QAAA,EAAA,IAAA,EAAA,MAAA,EAAA,CAAA,8WAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EA/BS,mBAAmB,EAAA,QAAA,EAAA,iBAAA,EAAA,MAAA,EAAA,CAAA,OAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAE,oBAAoB,EAAA,QAAA,EAAA,kBAAA,EAAA,MAAA,EAAA,CAAA,OAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAE,aAAa,EAAA,QAAA,EAAA,UAAA,EAAA,MAAA,EAAA,CAAA,OAAA,CAAA,EAAA,CAAA,EAAA,CAAA,CAAA;;4FAkCvD,uBAAuB,EAAA,UAAA,EAAA,CAAA;kBArCnC,SAAS;+BACE,qBAAqB,EAAA,UAAA,EACnB,IAAI,EAAA,OAAA,EACP,CAAC,mBAAmB,EAAE,oBAAoB,EAAE,aAAa,CAAC,EACzD,QAAA,EAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AA8BT,EAAA,CAAA,EAAA,MAAA,EAAA,CAAA,8WAAA,CAAA,EAAA;wDAKD,KAAK,EAAA,CAAA;sBADJ;;;MCGU,iBAAiB,CAAA;AAO5B,IAAA,WAAA,GAAA;AAFA,QAAA,IAAA,CAAA,OAAO,GAAG,IAAI,YAAY,EAAU;;AAIpC,IAAA,QAAQ;AAER,IAAA,YAAY,CAAC,KAAc,EAAA;AACzB,QAAA,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC;;+GAZf,iBAAiB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;AAAjB,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,iBAAiB,EApClB,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,cAAA,EAAA,MAAA,EAAA,EAAA,KAAA,EAAA,OAAA,EAAA,EAAA,OAAA,EAAA,EAAA,OAAA,EAAA,SAAA,EAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,EAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAiCT,EAlCS,QAAA,EAAA,IAAA,EAAA,MAAA,EAAA,CAAA,keAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EAAA,YAAY,4JAAE,YAAY,EAAA,QAAA,EAAA,SAAA,EAAA,MAAA,EAAA,CAAA,OAAA,CAAA,EAAA,OAAA,EAAA,CAAA,SAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAE,oBAAoB,EAAE,QAAA,EAAA,kBAAA,EAAA,MAAA,EAAA,CAAA,OAAA,CAAA,EAAA,OAAA,EAAA,CAAA,SAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,aAAa,wEAAE,aAAa,EAAA,QAAA,EAAA,UAAA,EAAA,MAAA,EAAA,CAAA,OAAA,CAAA,EAAA,OAAA,EAAA,CAAA,SAAA,CAAA,EAAA,CAAA,EAAA,CAAA,CAAA;;4FAqC7E,iBAAiB,EAAA,UAAA,EAAA,CAAA;kBAxC7B,SAAS;AACE,YAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,cAAc,EACZ,UAAA,EAAA,IAAI,EACP,OAAA,EAAA,CAAC,YAAY,EAAE,YAAY,EAAE,oBAAoB,EAAE,aAAa,EAAE,aAAa,CAAC,EAC/E,QAAA,EAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAiCT,EAAA,CAAA,EAAA,MAAA,EAAA,CAAA,keAAA,CAAA,EAAA;wDAKD,KAAK,EAAA,CAAA;sBADJ;gBAID,OAAO,EAAA,CAAA;sBADN;;;MChCU,mBAAmB,CAAA;AAG9B,IAAA,WAAA,GAAA;AAEA,IAAA,QAAQ;+GALG,mBAAmB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;AAAnB,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,mBAAmB,EAVpB,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,iBAAA,EAAA,MAAA,EAAA,EAAA,KAAA,EAAA,OAAA,EAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,EAAA;;;;;;;AAOT,EAAA,CAAA,EAAA,QAAA,EAAA,IAAA,EAAA,MAAA,EAAA,CAAA,EAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EARS,KAAK,EAAE,QAAA,EAAA,kBAAA,EAAA,MAAA,EAAA,CAAA,SAAA,EAAA,cAAA,EAAA,eAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EAAA,mBAAmB,EAAE,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,eAAA,EAAA,QAAA,EAAA,2CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,oBAAA,EAAA,QAAA,EAAA,eAAA,EAAA,MAAA,EAAA,CAAA,aAAA,EAAA,UAAA,EAAA,SAAA,CAAA,EAAA,OAAA,EAAA,CAAA,eAAA,CAAA,EAAA,QAAA,EAAA,CAAA,QAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,aAAa,8GAAE,QAAQ,EAAA,QAAA,EAAA,WAAA,EAAA,MAAA,EAAA,CAAA,WAAA,EAAA,OAAA,EAAA,UAAA,EAAA,SAAA,EAAA,gBAAA,EAAA,MAAA,EAAA,MAAA,EAAA,OAAA,CAAA,EAAA,CAAA,EAAA,CAAA,CAAA;;4FAWlD,mBAAmB,EAAA,UAAA,EAAA,CAAA;kBAd/B,SAAS;AACE,YAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,iBAAiB,EACf,UAAA,EAAA,IAAI,EACP,OAAA,EAAA,CAAC,KAAK,EAAE,mBAAmB,EAAE,aAAa,EAAE,QAAQ,CAAC,EACpD,QAAA,EAAA;;;;;;;AAOT,EAAA,CAAA,EAAA;wDAIQ,KAAK,EAAA,CAAA;sBAAb;;;MCrBU,mBAAmB,GAAG,CAAC,IAAY,KAC9C,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC,OAAO,CAAC,kBAAkB,EAAE,EAAE;;MCsBzC,kBAAkB,CAAA;AAS7B,IAAA,WAAA,GAAA;AANU,QAAA,IAAA,CAAA,UAAU,GAAG,IAAI,YAAY,EAAQ;AAErC,QAAA,IAAA,CAAA,SAAS,GAAG,IAAI,YAAY,EAAQ;AAEpC,QAAA,IAAA,CAAA,WAAW,GAAG,IAAI,YAAY,EAAU;;AAIlD,IAAA,QAAQ,CAAC,MAAW,EAAA;AAClB,QAAA,MAAM,UAAU,GAAG,MAAM,CAAC,MAAM,CAAC,KAAK;AACtC,QAAA,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,UAAU,CAAC;;IAGnC,OAAO,GAAA;AACL,QAAA,IAAI,CAAC,UAAU,CAAC,IAAI,EAAE;;IAGxB,MAAM,GAAA;AACJ,QAAA,IAAI,CAAC,SAAS,CAAC,IAAI,EAAE;;+GArBZ,kBAAkB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;AAAlB,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,kBAAkB,EAhBnB,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,eAAA,EAAA,MAAA,EAAA,EAAA,QAAA,EAAA,UAAA,EAAA,EAAA,OAAA,EAAA,EAAA,UAAA,EAAA,YAAA,EAAA,SAAA,EAAA,WAAA,EAAA,WAAA,EAAA,aAAA,EAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,EAAA;;;;;;;;;;;;;AAaT,EAAA,CAAA,EAAA,QAAA,EAAA,IAAA,EAAA,MAAA,EAAA,CAAA,yJAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAdS,YAAY,EAAA,QAAA,EAAA,eAAA,EAAA,MAAA,EAAA,CAAA,UAAA,EAAA,cAAA,EAAA,aAAA,EAAA,kBAAA,EAAA,kBAAA,EAAA,WAAA,EAAA,OAAA,EAAA,UAAA,EAAA,UAAA,EAAA,cAAA,EAAA,WAAA,EAAA,MAAA,EAAA,MAAA,EAAA,aAAA,EAAA,YAAA,EAAA,kBAAA,EAAA,iBAAA,EAAA,YAAA,EAAA,MAAA,EAAA,OAAA,CAAA,EAAA,CAAA,EAAA,CAAA,CAAA;;4FAiBX,kBAAkB,EAAA,UAAA,EAAA,CAAA;kBApB9B,SAAS;AACE,YAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,eAAe,cACb,IAAI,EAAA,OAAA,EACP,CAAC,YAAY,CAAC,EACb,QAAA,EAAA;;;;;;;;;;;;;AAaT,EAAA,CAAA,EAAA,MAAA,EAAA,CAAA,yJAAA,CAAA,EAAA;wDAIQ,QAAQ,EAAA,CAAA;sBAAhB;gBAES,UAAU,EAAA,CAAA;sBAAnB;gBAES,SAAS,EAAA,CAAA;sBAAlB;gBAES,WAAW,EAAA,CAAA;sBAApB;;;AC9BH;AAyBa,MAAA,yBAAyB,GAAG;AACvC,IAAA,KAAK,EAAE,8BAA8B;AACrC,IAAA,QAAQ,EAAE,6BAA6B;;AAG5B,MAAA,0BAA0B,GAAG;AACxC,IAAA,KAAK,EAAE,iBAAiB;AACxB,IAAA,QAAQ,EAAE,wEAAwE;;MAkFvE,sBAAsB,CAAA;AAqBjC,IAAA,WAAA,GAAA;QAlBS,IAAS,CAAA,SAAA,GAAG,CAAC,CAAC;QAEd,IAAc,CAAA,cAAA,GAAG,IAAI;QAE9B,IAAS,CAAA,SAAA,GAAG,KAAK;QACjB,IAAW,CAAA,WAAA,GAAG,KAAK;QAEnB,IAAY,CAAA,YAAA,GAAkB,EAAE;QAEhC,IAAQ,CAAA,QAAA,GAAG,yBAAyB;QACpC,IAAS,CAAA,SAAA,GAAG,0BAA0B;AAEtC,QAAA,IAAA,CAAA,kBAAkB,GAAG;AACnB,YAAA,MAAM,EAAE,YAAY;AACpB,YAAA,WAAW,EAAE,CAAC,CAAC,EAAE,GAAG,CAAC;AACrB,YAAA,iBAAiB,EAAE,GAAG;SACvB;;IAID,QAAQ,GAAA;QACN,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC,KAAK,CAAC,OAAO;;IAGxC,OAAO,GAAA;AACL,QAAA,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC;;IAGzB,YAAY,GAAA;QACV,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC;QAC/B,IAAI,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,OAAO,EAAE;YAC9B;;;AAIJ,IAAA,QAAQ,CAAC,KAAa,EAAA;AACpB,QAAA,OAAO,CAAC,GAAG,CAAC,iBAAiB,EAAE,KAAK,CAAC;QACrC,IAAI,CAAC,KAAK,EAAE;YACV,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC,KAAK,CAAC,OAAO;YACtC;;QAEF,IAAI,IAAI,CAAC,YAAY,CAAC,MAAM,KAAK,CAAC,EAAE;YAClC;;QAEF,MAAM,IAAI,GAAG,mBAAmB,CAAC,KAAK,CAAC,WAAW,EAAE,CAAC;QACrD,MAAM,MAAM,GAAG,IAAI,CAAC,YAAY,CAAC,MAAM,CAAC,OAAO,IAAG;YAChD,MAAM,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,GAAG,CAAC,CAAC,CAAS,KAAK,mBAAmB,CAAC,CAAG,EAAA,CAAC,CAAE,CAAA,CAAC,CAAC,iBAAiB,EAAE,CAAC;YACzG,IAAI,MAAM,CAAC,IAAI,CAAC,CAAC,KAAa,KAAK,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE;AAC5D,gBAAA,OAAO,IAAI;;AAEb,YAAA,OAAO,KAAK;AACd,SAAC,CAAC;AACF,QAAA,OAAO,CAAC,GAAG,CAAC,UAAU,EAAE,MAAM,CAAC;AAC/B,QAAA,IAAI,CAAC,YAAY,GAAG,MAAM;;IAG5B,MAAM,GAAA;AACJ,QAAA,IAAI,CAAC,SAAS,GAAG,KAAK;;IAGxB,OAAO,GAAA;AACL,QAAA,IAAI,CAAC,SAAS,GAAG,IAAI;;IAGvB,YAAY,GAAA;QACV,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC,EAAE,KAAK,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC;QAC9E,IAAI,MAAM,EAAE;YACV,OAAO,MAAM,CAAC,IAAI;;AAEpB,QAAA,OAAO,EAAE;;AAGX,IAAA,WAAW,CAAC,MAAM,EAAA;AAChB,QAAA,IAAI,CAAC,WAAW,GAAG,MAAM;;AAG3B,IAAA,sBAAsB,CAAC,KAAiB,EAAA;AACtC,QAAA,KAAK,CAAC,cAAc,EAAE,CAAC;AACvB,QAAA,KAAK,CAAC,eAAe,EAAE,CAAC;QACxB,IAAI,CAAC,WAAW,CAAC,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;;+GAlF3B,sBAAsB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;AAAtB,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,sBAAsB,EAxDvB,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,2BAAA,EAAA,MAAA,EAAA,EAAA,KAAA,EAAA,OAAA,EAAA,SAAA,EAAA,WAAA,EAAA,cAAA,EAAA,gBAAA,EAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,EAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAqDT,EAAA,CAAA,EAAA,QAAA,EAAA,IAAA,EAAA,MAAA,EAAA,CAAA,myBAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EAxEC,YAAY,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,OAAA,EAAA,QAAA,EAAA,kBAAA,EAAA,MAAA,EAAA,CAAA,SAAA,EAAA,cAAA,EAAA,eAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,IAAA,EAAA,QAAA,EAAA,QAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,UAAA,EAAA,UAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EACZ,mBAAmB,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAH,IAAA,CAAA,eAAA,EAAA,QAAA,EAAA,2CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,oBAAA,EAAA,QAAA,EAAA,eAAA,EAAA,MAAA,EAAA,CAAA,aAAA,EAAA,UAAA,EAAA,SAAA,CAAA,EAAA,OAAA,EAAA,CAAA,eAAA,CAAA,EAAA,QAAA,EAAA,CAAA,QAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EACnB,SAAS,EAAA,QAAA,EAAA,YAAA,EAAA,MAAA,EAAA,CAAA,UAAA,EAAA,MAAA,EAAA,aAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EACT,UAAU,EAAA,QAAA,EAAA,aAAA,EAAA,MAAA,EAAA,CAAA,OAAA,EAAA,MAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EACV,QAAQ,EAAA,QAAA,EAAA,WAAA,EAAA,MAAA,EAAA,CAAA,OAAA,EAAA,MAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EACR,UAAU,EAAA,QAAA,EAAA,aAAA,EAAA,MAAA,EAAA,CAAA,UAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EACV,SAAS,EACT,QAAA,EAAA,YAAA,EAAA,MAAA,EAAA,CAAA,YAAA,EAAA,OAAA,EAAA,UAAA,EAAA,UAAA,EAAA,QAAA,EAAA,MAAA,EAAA,MAAA,EAAA,MAAA,EAAA,MAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,iBAAA,EAAA,OAAA,EAAA,MAAA,EAAA,QAAA,EAAA,QAAA,EAAA,MAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,SAAS,EACT,QAAA,EAAA,YAAA,EAAA,MAAA,EAAA,CAAA,UAAA,EAAA,MAAA,EAAA,aAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,OAAO,EACP,QAAA,EAAA,UAAA,EAAA,MAAA,EAAA,CAAA,OAAA,EAAA,OAAA,EAAA,MAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,UAAU,EACV,QAAA,EAAA,aAAA,EAAA,MAAA,EAAA,CAAA,OAAA,EAAA,iBAAA,EAAA,YAAA,EAAA,cAAA,EAAA,SAAA,EAAA,SAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,OAAO,EAEP,QAAA,EAAA,UAAA,EAAA,MAAA,EAAA,CAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,YAAA,EAAA,UAAA,EAAA,UAAA,EAAA,MAAA,EAAA,OAAA,EAAA,MAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,iBAAA,EAAA,QAAA,EAAA,MAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,QAAQ,EACR,QAAA,EAAA,WAAA,EAAA,MAAA,EAAA,CAAA,WAAA,EAAA,OAAA,EAAA,UAAA,EAAA,SAAA,EAAA,gBAAA,EAAA,MAAA,EAAA,MAAA,EAAA,OAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,kBAAkB,EAClB,QAAA,EAAA,eAAA,EAAA,MAAA,EAAA,CAAA,UAAA,CAAA,EAAA,OAAA,EAAA,CAAA,YAAA,EAAA,WAAA,EAAA,aAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,QAAQ,EACR,QAAA,EAAA,WAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,QAAQ,8eAER,aAAa,EAAA,QAAA,EAAA,iBAAA,EAAA,MAAA,EAAA,CAAA,qBAAA,EAAA,MAAA,EAAA,OAAA,CAAA,EAAA,CAAA,EAAA,CAAA,CAAA;;4FA0DJ,sBAAsB,EAAA,UAAA,EAAA,CAAA;kBA/ElC,SAAS;+BACE,2BAA2B,EAAA,UAAA,EACzB,IAAI,EACP,OAAA,EAAA;wBACP,YAAY;wBACZ,mBAAmB;wBACnB,SAAS;wBACT,UAAU;wBACV,QAAQ;wBACR,UAAU;wBACV,SAAS;wBACT,SAAS;wBACT,OAAO;wBACP,UAAU;wBACV,OAAO;wBACP,QAAQ;wBACR,QAAQ;wBACR,kBAAkB;wBAClB,QAAQ;wBACR,QAAQ;wBACR,SAAS;wBACT,aAAa;qBACd,EACS,QAAA,EAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAqDT,EAAA,CAAA,EAAA,MAAA,EAAA,CAAA,myBAAA,CAAA,EAAA;wDAIQ,KAAK,EAAA,CAAA;sBAAb;gBAEQ,SAAS,EAAA,CAAA;sBAAjB;gBAEQ,cAAc,EAAA,CAAA;sBAAtB;;;MC7FU,uBAAuB,CAAA;AASlC,IAAA,WAAA,GAAA;AANA,QAAA,IAAA,CAAA,kBAAkB,GAAG;AACnB,YAAA,MAAM,EAAE,YAAY;AACpB,YAAA,WAAW,EAAE,CAAC,CAAC,EAAE,GAAG,CAAC;AACrB,YAAA,iBAAiB,EAAE,GAAG;SACvB;;IAID,QAAQ,GAAA;QACN,IAAI,CAAC,kBAAkB,CAAC,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,KAAK;;+GAZxC,uBAAuB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;AAAvB,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,uBAAuB,EAjBxB,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,kBAAA,EAAA,MAAA,EAAA,EAAA,KAAA,EAAA,OAAA,EAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,EAAA;;;;;;;;;;;;;;AAcT,EAAA,CAAA,EAAA,QAAA,EAAA,IAAA,EAAA,MAAA,EAAA,CAAA,EAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EAfS,mBAAmB,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAG,IAAA,CAAA,eAAA,EAAA,QAAA,EAAA,2CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,oBAAA,EAAA,QAAA,EAAA,eAAA,EAAA,MAAA,EAAA,CAAA,aAAA,EAAA,UAAA,EAAA,SAAA,CAAA,EAAA,OAAA,EAAA,CAAA,eAAA,CAAA,EAAA,QAAA,EAAA,CAAA,QAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAE,SAAS,EAAA,QAAA,EAAA,YAAA,EAAA,MAAA,EAAA,CAAA,YAAA,EAAA,OAAA,EAAA,aAAA,EAAA,UAAA,EAAA,cAAA,EAAA,MAAA,EAAA,WAAA,EAAA,kBAAA,EAAA,SAAA,EAAA,OAAA,EAAA,gBAAA,EAAA,MAAA,EAAA,UAAA,EAAA,MAAA,EAAA,QAAA,EAAA,aAAA,EAAA,cAAA,EAAA,OAAA,EAAA,YAAA,EAAA,OAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAE,eAAe,EAAA,QAAA,EAAA,mBAAA,EAAA,MAAA,EAAA,CAAA,UAAA,EAAA,OAAA,CAAA,EAAA,CAAA,EAAA,CAAA,CAAA;;4FAkB9C,uBAAuB,EAAA,UAAA,EAAA,CAAA;kBArBnC,SAAS;+BACE,kBAAkB,EAAA,UAAA,EAChB,IAAI,EAAA,OAAA,EACP,CAAC,mBAAmB,EAAE,SAAS,EAAE,eAAe,CAAC,EAChD,QAAA,EAAA;;;;;;;;;;;;;;AAcT,EAAA,CAAA,EAAA;wDAIQ,KAAK,EAAA,CAAA;sBAAb;;;MCfU,kBAAkB,CAAA;AAG7B,IAAA,WAAA,GAAA;AAEA,IAAA,QAAQ;+GALG,kBAAkB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;AAAlB,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,kBAAkB,EAHnB,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,gBAAA,EAAA,MAAA,EAAA,EAAA,KAAA,EAAA,OAAA,EAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,EAAA,CAAA,qGAAA,CAAuG,EADvG,QAAA,EAAA,IAAA,EAAA,MAAA,EAAA,CAAA,qGAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EAAA,mBAAmB,8TAAE,QAAQ,EAAA,QAAA,EAAA,WAAA,EAAA,MAAA,EAAA,CAAA,QAAA,EAAA,gBAAA,EAAA,cAAA,EAAA,aAAA,EAAA,WAAA,EAAA,YAAA,EAAA,aAAA,EAAA,OAAA,EAAA,SAAA,EAAA,kBAAA,EAAA,UAAA,EAAA,UAAA,EAAA,cAAA,EAAA,WAAA,EAAA,MAAA,EAAA,YAAA,EAAA,WAAA,EAAA,OAAA,EAAA,gBAAA,EAAA,KAAA,EAAA,WAAA,EAAA,KAAA,EAAA,WAAA,EAAA,MAAA,EAAA,UAAA,EAAA,MAAA,EAAA,SAAA,EAAA,aAAA,EAAA,UAAA,EAAA,UAAA,EAAA,OAAA,EAAA,MAAA,EAAA,YAAA,EAAA,MAAA,EAAA,MAAA,EAAA,OAAA,CAAA,EAAA,CAAA,EAAA,CAAA,CAAA;;4FAI5B,kBAAkB,EAAA,UAAA,EAAA,CAAA;kBAP9B,SAAS;+BACE,gBAAgB,EAAA,UAAA,EACd,IAAI,EACP,OAAA,EAAA,CAAC,mBAAmB,EAAE,QAAQ,CAAC,EAAA,QAAA,EAC9B,CAAuG,qGAAA,CAAA,EAAA,MAAA,EAAA,CAAA,qGAAA,CAAA,EAAA;wDAIxG,KAAK,EAAA,CAAA;sBAAb;;;MCwBU,eAAe,CAAA;AAU1B,IAAA,WAAA,GAAA;AALA,QAAA,IAAA,CAAA,OAAO,GAAG,IAAI,YAAY,EAAU;AAGpC,QAAA,IAAA,CAAA,OAAO,GAAG,IAAI,YAAY,EAAE;;AAI5B,IAAA,QAAQ;AAER,IAAA,YAAY,CAAC,KAAc,EAAA;AACzB,QAAA,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC;;IAG1B,YAAY,GAAA;AACV,QAAA,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE;;+GAnBV,eAAe,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;AAAf,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,eAAe,EA1BhB,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,YAAA,EAAA,MAAA,EAAA,EAAA,KAAA,EAAA,OAAA,EAAA,EAAA,OAAA,EAAA,EAAA,OAAA,EAAA,SAAA,EAAA,OAAA,EAAA,SAAA,EAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,EAAA;;;;;;;;;;;;;;;;;;;;;;;AAuBT,EAAA,CAAA,EAAA,QAAA,EAAA,IAAA,EAAA,MAAA,EAAA,CAAA,2iBAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EAxBS,YAAY,EAAE,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,OAAA,EAAA,QAAA,EAAA,WAAA,EAAA,MAAA,EAAA,CAAA,OAAA,EAAA,SAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,YAAY,EAAE,QAAA,EAAA,SAAA,EAAA,MAAA,EAAA,CAAA,OAAA,CAAA,EAAA,OAAA,EAAA,CAAA,SAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,mBAAmB,+EAAE,oBAAoB,EAAA,QAAA,EAAA,kBAAA,EAAA,MAAA,EAAA,CAAA,OAAA,CAAA,EAAA,OAAA,EAAA,CAAA,SAAA,CAAA,EAAA,CAAA,EAAA,CAAA,CAAA;;4FA2BpE,eAAe,EAAA,UAAA,EAAA,CAAA;kBA9B3B,SAAS;AACE,YAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,YAAY,EACV,UAAA,EAAA,IAAI,EACP,OAAA,EAAA,CAAC,YAAY,EAAE,YAAY,EAAE,mBAAmB,EAAE,oBAAoB,CAAC,EACtE,QAAA,EAAA;;;;;;;;;;;;;;;;;;;;;;;AAuBT,EAAA,CAAA,EAAA,MAAA,EAAA,CAAA,2iBAAA,CAAA,EAAA;wDAKD,KAAK,EAAA,CAAA;sBADJ;gBAID,OAAO,EAAA,CAAA;sBADN;gBAID,OAAO,EAAA,CAAA;sBADN;;;MCyCU,gBAAgB,CAAA;IAS3B,WACU,CAAA,OAAsB,EAC9B,IAAiB,EAAA;QADT,IAAO,CAAA,OAAA,GAAP,OAAO;AALjB,QAAA,IAAA,CAAA,OAAO,GAAG,IAAI,YAAY,EAAU;QAEpC,IAAW,CAAA,WAAA,GAAG,iBAAiB;AAM7B,QAAA,QAAQ,CAAC,EAAE,kBAAkB,EAAE,CAAC;;AAGlC,IAAA,QAAQ;IAER,MAAM,GAAA;AACJ,QAAA,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE;;IAGrB,YAAY,GAAA;AACV,QAAA,OAAO,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,CAAC,QAAQ,KAAK,OAAO,CAAC;;IAG/D,WAAW,GAAA;AACT,QAAA,OAAO,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,CAAC,QAAQ,KAAK,MAAM,CAAC;;IAG9D,WAAW,GAAA;QACT,OAAO,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC,QAAQ,KAAK,OAAO,CAAC;;IAG/D,UAAU,GAAA;QACR,OAAO,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC,QAAQ,KAAK,MAAM,CAAC;;AAG9D,IAAA,YAAY,CAAC,KAAc,EAAA;AACzB,QAAA,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC;;+GAvCf,gBAAgB,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAAA,IAAA,CAAA,aAAA,EAAA,EAAA,EAAA,KAAA,EAAAD,WAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;AAAhB,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,gBAAgB,EA3DjB,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,aAAA,EAAA,MAAA,EAAA,EAAA,KAAA,EAAA,OAAA,EAAA,EAAA,OAAA,EAAA,EAAA,OAAA,EAAA,SAAA,EAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,EAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAwDT,EAAA,CAAA,EAAA,QAAA,EAAA,IAAA,EAAA,MAAA,EAAA,CAAA,uJAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EAlEC,YAAY,EACZ,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAE,EAAA,CAAA,OAAA,EAAA,QAAA,EAAA,kBAAA,EAAA,MAAA,EAAA,CAAA,SAAA,EAAA,cAAA,EAAA,eAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,EAAA,CAAA,IAAA,EAAA,QAAA,EAAA,QAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,UAAA,EAAA,UAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,UAAU,EACV,QAAA,EAAA,aAAA,EAAA,MAAA,EAAA,CAAA,OAAA,EAAA,MAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,UAAU,8EACV,SAAS,EAAA,QAAA,EAAA,YAAA,EAAA,MAAA,EAAA,CAAA,YAAA,EAAA,OAAA,EAAA,UAAA,EAAA,UAAA,EAAA,QAAA,EAAA,MAAA,EAAA,MAAA,EAAA,MAAA,EAAA,MAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,iBAAA,EAAA,OAAA,EAAA,MAAA,EAAA,QAAA,EAAA,QAAA,EAAA,MAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EACT,OAAO,EAAA,QAAA,EAAA,UAAA,EAAA,MAAA,EAAA,CAAA,OAAA,EAAA,SAAA,EAAA,MAAA,EAAA,KAAA,EAAA,MAAA,EAAA,IAAA,EAAA,MAAA,EAAA,MAAA,EAAA,UAAA,EAAA,MAAA,EAAA,KAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EACP,OAAO,EACP,QAAA,EAAA,UAAA,EAAA,MAAA,EAAA,CAAA,OAAA,EAAA,MAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,QAAQ,EACR,QAAA,EAAA,WAAA,EAAA,MAAA,EAAA,CAAA,OAAA,EAAA,MAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,eAAe,gGACf,cAAc,EAAA,QAAA,EAAA,WAAA,EAAA,MAAA,EAAA,CAAA,OAAA,CAAA,EAAA,CAAA,EAAA,CAAA,CAAA;;4FA6DL,gBAAgB,EAAA,UAAA,EAAA,CAAA;kBAzE5B,SAAS;+BACE,aAAa,EAAA,UAAA,EACX,IAAI,EACP,OAAA,EAAA;wBACP,YAAY;wBACZ,UAAU;wBACV,UAAU;wBACV,SAAS;wBACT,OAAO;wBACP,OAAO;wBACP,QAAQ;wBACR,eAAe;wBACf,cAAc;qBACf,EACS,QAAA,EAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAwDT,EAAA,CAAA,EAAA,MAAA,EAAA,CAAA,uJAAA,CAAA,EAAA;2GAKD,KAAK,EAAA,CAAA;sBADJ;gBAID,OAAO,EAAA,CAAA;sBADN;;;MC/DU,eAAe,CAAA;AAO1B,IAAA,WAAA,GAAA;AAFA,QAAA,IAAA,CAAA,OAAO,GAAG,IAAI,YAAY,EAAU;;AAIpC,IAAA,QAAQ;AAER,IAAA,YAAY,CAAC,KAAc,EAAA;AACzB,QAAA,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC;;+GAZf,eAAe,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;AAAf,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,eAAe,EAhBhB,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,YAAA,EAAA,MAAA,EAAA,EAAA,KAAA,EAAA,OAAA,EAAA,EAAA,OAAA,EAAA,EAAA,OAAA,EAAA,SAAA,EAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,EAAA;;;;;;;;;;;;;AAaT,EAAA,CAAA,EAAA,QAAA,EAAA,IAAA,EAAA,MAAA,EAAA,CAAA,uDAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EAdS,YAAY,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,IAAA,EAAA,QAAA,EAAA,QAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,UAAA,EAAA,UAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAE,SAAS,EAAA,QAAA,EAAA,YAAA,EAAA,MAAA,EAAA,CAAA,UAAA,EAAA,MAAA,EAAA,aAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAE,gBAAgB,EAAA,QAAA,EAAA,aAAA,EAAA,MAAA,EAAA,CAAA,OAAA,CAAA,EAAA,OAAA,EAAA,CAAA,SAAA,CAAA,EAAA,CAAA,EAAA,CAAA,CAAA;;4FAiBxC,eAAe,EAAA,UAAA,EAAA,CAAA;kBApB3B,SAAS;+BACE,YAAY,EAAA,UAAA,EACV,IAAI,EAAA,OAAA,EACP,CAAC,YAAY,EAAE,SAAS,EAAE,gBAAgB,CAAC,EAC1C,QAAA,EAAA;;;;;;;;;;;;;AAaT,EAAA,CAAA,EAAA,MAAA,EAAA,CAAA,uDAAA,CAAA,EAAA;wDAKD,KAAK,EAAA,CAAA;sBADJ;gBAID,OAAO,EAAA,CAAA;sBADN;;;MC5BU,SAAS,GAAG,CACvB,KAAa,EACb,GAAW,KACkC;IAC7C,OAAO;AACL,QAAA,SAAS,EAAE,UAAU,CAAC,SAAS,CAAC,GAAG,CAAC;AACpC,QAAA,KAAK,EAAE,CAAA,SAAA,EAAY,KAAK,CAAA,qBAAA,EAAwB,GAAG,CAAc,YAAA,CAAA;KAClE;AACH;;MCuBa,mBAAmB,CAAA;AAO9B,IAAA,WAAA,GAAA;AAFA,QAAA,IAAA,CAAA,QAAQ,GAAG,IAAI,YAAY,EAAc;;AAIzC,IAAA,QAAQ;IAER,MAAM,aAAa,CAAC,KAAc,EAAA;AAChC,QAAA,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,MAAM,EAAE,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,KAAK,EAAE,KAAK,EAAE,CAAC;;AAG9D,IAAA,IAAI,OAAO,GAAA;AACT,QAAA,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,EAAE;AACpB,YAAA,OAAO,EAAE;;QAGX,IAAI,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,KAAK,EAAE;AACzB,YAAA,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,KAAK,GAAG,eAAe,CAAC,OAAO;;AAGzD,QAAA,IAAI,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,KAAK,KAAK,eAAe,CAAC,OAAO,EAAE;AACrD,YAAA,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,KAAK,GAAG,eAAe,CAAC,OAAO;;AAGzD,QAAA,IAAI,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,KAAK,KAAK,eAAe,CAAC,OAAO,EAAE;AACrD,YAAA,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,KAAK,GAAG,eAAe,CAAC,OAAO;;AAGzD,QAAA,IAAI,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,KAAK,KAAK,eAAe,CAAC,QAAQ,EAAE;AACtD,YAAA,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,KAAK,GAAG,eAAe,CAAC,QAAQ;;QAG1D,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC;;+GApCvB,mBAAmB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;AAAnB,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,mBAAmB,EAvBpB,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,iBAAA,EAAA,MAAA,EAAA,EAAA,KAAA,EAAA,OAAA,EAAA,EAAA,OAAA,EAAA,EAAA,QAAA,EAAA,UAAA,EAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,EAAA;;;;;;;;;;;;;;;;;;;;GAoBT,EArBS,QAAA,EAAA,IAAA,EAAA,MAAA,EAAA,CAAA,EAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,eAAe,gGAAE,oBAAoB,EAAA,QAAA,EAAA,kBAAA,EAAA,MAAA,EAAA,CAAA,OAAA,CAAA,EAAA,OAAA,EAAA,CAAA,SAAA,CAAA,EAAA,CAAA,EAAA,CAAA,CAAA;;4FAwBpC,mBAAmB,EAAA,UAAA,EAAA,CAAA;kBA3B/B,SAAS;+BACE,iBAAiB,EAAA,UAAA,EACf,IAAI,EACP,OAAA,EAAA,CAAC,eAAe,EAAE,oBAAoB,CAAC,EACtC,QAAA,EAAA;;;;;;;;;;;;;;;;;;;;AAoBT,EAAA,CAAA,EAAA;wDAKD,KAAK,EAAA,CAAA;sBADJ;gBAID,QAAQ,EAAA,CAAA;sBADP;;;ACnCU,MAAA,OAAO,GAAG,CAAC,EAAU,KAAU;IAC1C,MAAM,OAAO,GAAG,QAAQ,CAAC,cAAc,CAAC,EAAE,CAAC;IAC3C,IAAI,OAAO,EAAE;QACX,OAAO,CAAC,cAAc,CAAC;AACrB,YAAA,KAAK,EAAE,OAAO;AACd,YAAA,MAAM,EAAE,SAAS;AACjB,YAAA,QAAQ,EAAE,QAAQ;AACnB,SAAA,CAAC;;AAEN;AAEa,MAAA,OAAO,GAAG,CAAC,UAAsB,KAAa;AACzD,IAAA,MAAM,WAAW,GAAG,UAAU,CAAC,aAAa;AAC5C,IAAA,MAAM,IAAI,GAAG,WAAW,CAAC,qBAAqB,EAAE;AAChD,IAAA,MAAM,YAAY,GAAG,MAAM,CAAC,WAAW;AACvC,IAAA,OAAO,IAAI,CAAC,MAAM,IAAI,YAAY;AACpC;;MCmGa,aAAa,CAAA;IAiBxB,WACU,CAAA,EAAe,EACf,UAAsB,EAAA;QADtB,IAAE,CAAA,EAAA,GAAF,EAAE;QACF,IAAU,CAAA,UAAA,GAAV,UAAU;AAdpB,QAAA,IAAA,CAAA,QAAQ,GAAG,IAAI,YAAY,EAAc;AAGzC,QAAA,IAAA,CAAA,SAAS,GAAG,IAAI,YAAY,EAAE;AAG9B,QAAA,IAAA,CAAA,cAAc,GAAG,IAAI,YAAY,EAAiC;QAGlE,IAAK,CAAA,KAAA,GAAG,SAAS;QACT,IAAa,CAAA,aAAA,GAAmB,EAAE;;IAO1C,QAAQ,GAAA;QACN,MAAM,YAAY,GAAG,EAAE;QACvB,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,OAAO,CAAC,OAAO,IAAG;AACpC,YAAA,OAAO,CAAC,MAAM,CAAC,OAAO,CAAC,KAAK,IAAG;AAC7B,gBAAA,YAAY,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,SAAS,EAAE,KAAK,CAAC,UAAU,IAAI,EAAE,CAAC;AAChE,aAAC,CAAC;AACJ,SAAC,CAAC;QACF,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,EAAE,CAAC,KAAK,CAAC,YAAY,CAAC;QACvC,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,OAAO,CAAC,OAAO,IAAG;AACpC,YAAA,OAAO,CAAC;AACL,iBAAA,MAAM,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,KAAK,IAAI,CAAC,KAAK,CAAC,MAAM;iBACxC,OAAO,CAAC,KAAK,IAAG;AACf,gBAAA,IAAI,CAAC,kBAAkB,CAAC,KAAK,CAAC,IAAI,CAAC;AACrC,aAAC,CAAC;AACN,SAAC,CAAC;;IAGJ,WAAW,GAAA;;AAET,QAAA,IAAI,CAAC,aAAa,CAAC,OAAO,CAAC,GAAG,IAAI,GAAG,CAAC,WAAW,EAAE,CAAC;;AAGtD,IAAA,kBAAkB,CAAC,SAAiB,EAAA;QAClC,MAAM,OAAO,GAAG,IAAI,CAAC,UAAU,CAAC,SAAS,CAAC;QAC1C,MAAM,YAAY,GAAG,OAAO,CAAC,YAAY,CAAC,SAAS,CAAC,KAAK,IAAG;AAC1D,YAAA,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,SAAS,EAAE,KAAK,EAAE,CAAC;AACvD,SAAC,CAAC;AACF,QAAA,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,YAAY,CAAC;;IAGvC,MAAM,aAAa,CAAC,KAAc,EAAA;AAChC,QAAA,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,MAAM,EAAE,IAAI,CAAC,IAAI,CAAC,KAAK,EAAE,KAAK,EAAE,CAAC;;AAGxD,IAAA,UAAU,CAAC,KAAa,EAAA;QACtB,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,KAAK,CAAgB;;AAG5C,IAAA,YAAY,CAAC,KAAoB,EAAA;QAC/B,KAAK,CAAC,KAAK;AACX,QAAA,IAAI,CAAC,KAAK,CAAC,KAAK,EAAE;AAChB,YAAA,KAAK,CAAC,KAAK,GAAG,CAAA,MAAA,EAAS,KAAK,CAAC,IAAI,CAAA,CAAA,EAAI,KAAK,CAAC,IAAI,CAAA,CAAE;;QAEnD,OAAO;AACL,YAAA,GAAG,KAAK;YACR,OAAO,EAAE,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC,IAAI,CAAC;SACrC;;AAGH,IAAA,IAAI,aAAa,GAAA;AACf,QAAA,OAAO,OAAO,CAAC,IAAI,CAAC,UAAU,CAAC;;AAGjC,IAAA,IAAI,IAAI,GAAA;QACN,OAAO,IAAI,CAAC,IAAI;;AAGlB,IAAA,IAAI,SAAS,GAAA;QACX,OAAO;YACL,IAAI,EAAE,IAAI,CAAC,IAAI;YACf,IAAI,EAAE,IAAI,CAAC,KAAK;SACjB;;AAGH,IAAA,IAAI,OAAO,GAAA;AACT,QAAA,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE;AACd,YAAA,OAAO,EAAE;;AAGX,QAAA,IAAI,IAAI,CAAC,IAAI,CAAC,KAAK,EAAE;YACnB,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,GAAG,eAAe,CAAC,OAAO;;QAGpD,IAAI,IAAI,CAAC,KAAK,CAAC,KAAK,KAAK,eAAe,CAAC,OAAO,EAAE;YAChD,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,GAAG,eAAe,CAAC,OAAO;;QAGpD,IAAI,IAAI,CAAC,KAAK,CAAC,KAAK,KAAK,eAAe,CAAC,OAAO,EAAE;YAChD,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,GAAG,eAAe,CAAC,OAAO;;QAGpD,IAAI,IAAI,CAAC,KAAK,CAAC,KAAK,KAAK,eAAe,CAAC,QAAQ,EAAE;YACjD,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,GAAG,eAAe,CAAC,QAAQ;;AAGrD,QAAA,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC;;+GA3GlB,aAAa,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAAD,IAAA,CAAA,WAAA,EAAA,EAAA,EAAA,KAAA,EAAA,EAAA,CAAA,UAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;AAAb,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,aAAa,EAnEd,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,UAAA,EAAA,MAAA,EAAA,EAAA,KAAA,EAAA,OAAA,EAAA,EAAA,OAAA,EAAA,EAAA,QAAA,EAAA,UAAA,EAAA,SAAA,EAAA,WAAA,EAAA,cAAA,EAAA,gBAAA,EAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,EAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAgET,EAAA,CAAA,EAAA,QAAA,EAAA,IAAA,EAAA,MAAA,EAAA,CAAA,qGAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EArFC,YAAY,EACZ,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAH,EAAA,CAAA,OAAA,EAAA,QAAA,EAAA,kBAAA,EAAA,MAAA,EAAA,CAAA,SAAA,EAAA,cAAA,EAAA,eAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,EAAA,CAAA,IAAA,EAAA,QAAA,EAAA,QAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,UAAA,EAAA,UAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EAAA,mBAAmB,EACnB,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAG,IAAA,CAAA,aAAA,EAAA,QAAA,EAAA,8CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,oBAAA,EAAA,QAAA,EAAA,0FAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,kBAAA,EAAA,QAAA,EAAA,aAAA,EAAA,MAAA,EAAA,CAAA,WAAA,CAAA,EAAA,OAAA,EAAA,CAAA,UAAA,CAAA,EAAA,QAAA,EAAA,CAAA,QAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,gBAAgB,2EAChB,cAAc,EAAA,QAAA,EAAA,WAAA,EAAA,MAAA,EAAA,CAAA,OAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EACd,kBAAkB,EAAA,QAAA,EAAA,gBAAA,EAAA,MAAA,EAAA,CAAA,OAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAClB,mBAAmB,EACnB,QAAA,EAAA,iBAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,oBAAoB,sGACpB,gBAAgB,EAAA,QAAA,EAAA,aAAA,EAAA,MAAA,EAAA,CAAA,OAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAChB,aAAa,EACb,QAAA,EAAA,UAAA,EAAA,MAAA,EAAA,CAAA,OAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,qBAAqB,EACrB,QAAA,EAAA,mBAAA,EAAA,MAAA,EAAA,CAAA,OAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,kBAAkB,8EAClB,kBAAkB,EAAA,QAAA,EAAA,gBAAA,EAAA,MAAA,EAAA,CAAA,OAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAClB,kBAAkB,EAAA,QAAA,EAAA,gBAAA,EAAA,MAAA,EAAA,CAAA,OAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAClB,mBAAmB,EACnB,QAAA,EAAA,iBAAA,EAAA,MAAA,EAAA,CAAA,OAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,oBAAoB,EACpB,QAAA,EAAA,kBAAA,EAAA,MAAA,EAAA,CAAA,OAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,mBAAmB,+EACnB,sBAAsB,EAAA,QAAA,EAAA,oBAAA,EAAA,MAAA,EAAA,CAAA,OAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EACtB,iBAAiB,EACjB,QAAA,EAAA,eAAA,EAAA,MAAA,EAAA,CAAA,OAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,uBAAuB,gFACvB,sBAAsB,EAAA,QAAA,EAAA,2BAAA,EAAA,MAAA,EAAA,CAAA,OAAA,EAAA,WAAA,EAAA,gBAAA,CAAA,EAAA,CAAA,EAAA,CAAA,CAAA;;4FAqEb,aAAa,EAAA,UAAA,EAAA,CAAA;kBA5FzB,SAAS;+BACE,UAAU,EAAA,UAAA,EACR,IAAI,EACP,OAAA,EAAA;wBACP,YAAY;wBACZ,mBAAmB;wBACnB,gBAAgB;wBAChB,cAAc;wBACd,kBAAkB;wBAClB,mBAAmB;wBACnB,oBAAoB;wBACpB,gBAAgB;wBAChB,aAAa;wBACb,qBAAqB;wBACrB,kBAAkB;wBAClB,kBAAkB;wBAClB,kBAAkB;wBAClB,mBAAmB;wBACnB,oBAAoB;wBACpB,mBAAmB;wBACnB,sBAAsB;wBACtB,iBAAiB;wBACjB,uBAAuB;wBACvB,sBAAsB;qBACvB,EACS,QAAA,EAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAgET,EAAA,CAAA,EAAA,MAAA,EAAA,CAAA,qGAAA,CAAA,EAAA;2GAKD,KAAK,EAAA,CAAA;sBADJ;gBAID,QAAQ,EAAA,CAAA;sBADP;gBAID,SAAS,EAAA,CAAA;sBADR;gBAID,cAAc,EAAA,CAAA;sBADb;;;MC/GU,eAAe,CAAA;AAO1B,IAAA,WAAA,GAAA;AAFA,QAAA,IAAA,CAAA,OAAO,GAAG,IAAI,YAAY,EAAU;;AAIpC,IAAA,QAAQ;AAER,IAAA,YAAY,CAAC,KAAc,EAAA;AACzB,QAAA,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC;;+GAZf,eAAe,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;AAAf,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,eAAe,EAPhB,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,YAAA,EAAA,MAAA,EAAA,EAAA,KAAA,EAAA,OAAA,EAAA,EAAA,OAAA,EAAA,EAAA,OAAA,EAAA,SAAA,EAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,EAAA;;;;GAIT,EALS,QAAA,EAAA,IAAA,EAAA,MAAA,EAAA,CAAA,+BAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,SAAS,oGAAE,gBAAgB,EAAA,QAAA,EAAA,aAAA,EAAA,MAAA,EAAA,CAAA,OAAA,CAAA,EAAA,OAAA,EAAA,CAAA,SAAA,CAAA,EAAA,CAAA,EAAA,CAAA,CAAA;;4FAQ1B,eAAe,EAAA,UAAA,EAAA,CAAA;kBAX3B,SAAS;+BACE,YAAY,EAAA,UAAA,EACV,IAAI,EACP,OAAA,EAAA,CAAC,SAAS,EAAE,gBAAgB,CAAC,EAC5B,QAAA,EAAA;;;;AAIT,EAAA,CAAA,EAAA,MAAA,EAAA,CAAA,+BAAA,CAAA,EAAA;wDAKD,KAAK,EAAA,CAAA;sBADJ;gBAID,OAAO,EAAA,CAAA;sBADN;;;MC4KU,iBAAiB,CAAA;AAa5B,IAAA,WAAA,CAAY,IAAiB,EAAA;QAZ7B,IAAM,CAAA,MAAA,GAAG,eAAe;QACxB,IAAY,CAAA,YAAA,GAAG,SAAS;AAMxB,QAAA,IAAA,CAAA,OAAO,GAAG,IAAI,YAAY,EAAU;AAGpC,QAAA,IAAA,CAAA,aAAa,GAAG,IAAI,YAAY,EAAU;;AAI1C,IAAA,QAAQ;AAER,IAAA,YAAY,CAAC,KAAc,EAAA;AACzB,QAAA,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC;;AAG1B,IAAA,oBAAoB,CAAC,KAAc,EAAA;AACjC,QAAA,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,KAAK,CAAC;;IAGhC,KAAK,GAAA;AACH,QAAA,OAAO,YAAY,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,IAAI,IAAI,CAAC,YAAY,CAAC;;+GA1BjD,iBAAiB,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAAJ,WAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;AAAjB,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,iBAAiB,EA5JlB,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,eAAA,EAAA,MAAA,EAAA,EAAA,KAAA,EAAA,OAAA,EAAA,EAAA,OAAA,EAAA,EAAA,OAAA,EAAA,SAAA,EAAA,aAAA,EAAA,eAAA,EAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,EAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAyJT,EAtKC,QAAA,EAAA,IAAA,EAAA,MAAA,EAAA,CAAA,0eAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,UAAU,oOAEV,OAAO,EAAA,QAAA,EAAA,WAAA,EAAA,MAAA,EAAA,CAAA,OAAA,EAAA,SAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EACP,OAAO,EACP,QAAA,EAAA,UAAA,EAAA,MAAA,EAAA,CAAA,OAAA,EAAA,OAAA,EAAA,MAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,aAAa,gGACb,QAAQ,EAAA,QAAA,EAAA,WAAA,EAAA,MAAA,EAAA,CAAA,OAAA,EAAA,MAAA,EAAA,UAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EACR,OAAO,EACP,QAAA,EAAA,UAAA,EAAA,MAAA,EAAA,CAAA,OAAA,EAAA,MAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,OAAO,0NACP,SAAS,EAAA,QAAA,EAAA,YAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EACT,OAAO,EACP,QAAA,EAAA,UAAA,EAAA,MAAA,EAAA,CAAA,OAAA,EAAA,SAAA,EAAA,MAAA,EAAA,KAAA,EAAA,MAAA,EAAA,IAAA,EAAA,MAAA,EAAA,MAAA,EAAA,UAAA,EAAA,MAAA,EAAA,KAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,SAAS,oPACT,UAAU,EAAA,QAAA,EAAA,aAAA,EAAA,MAAA,EAAA,CAAA,OAAA,EAAA,UAAA,EAAA,MAAA,EAAA,QAAA,CAAA,EAAA,CAAA,EAAA,CAAA,CAAA;;4FA8JD,iBAAiB,EAAA,UAAA,EAAA,CAAA;kBA7K7B,SAAS;+BACE,eAAe,EAAA,UAAA,EACb,IAAI,EACP,OAAA,EAAA;wBACP,UAAU;wBACV,OAAO;wBACP,OAAO;wBACP,OAAO;wBACP,aAAa;wBACb,QAAQ;wBACR,OAAO;wBACP,OAAO;wBACP,SAAS;wBACT,OAAO;wBACP,SAAS;wBACT,UAAU;qBACX,EACS,QAAA,EAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAyJT,EAAA,CAAA,EAAA,MAAA,EAAA,CAAA,0eAAA,CAAA,EAAA;6EAQD,KAAK,EAAA,CAAA;sBADJ;gBAID,OAAO,EAAA,CAAA;sBADN;gBAID,aAAa,EAAA,CAAA;sBADZ;;;MCpLU,kBAAkB,CAAA;AAO7B,IAAA,WAAA,GAAA;AAFA,QAAA,IAAA,CAAA,OAAO,GAAG,IAAI,YAAY,EAAU;;AAIpC,IAAA,QAAQ;AAER,IAAA,cAAc,CAAC,KAAa,EAAA;AAC1B,QAAA,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC;;+GAZf,kBAAkB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;AAAlB,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,kBAAkB,EAbnB,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,gBAAA,EAAA,MAAA,EAAA,EAAA,KAAA,EAAA,OAAA,EAAA,EAAA,OAAA,EAAA,EAAA,OAAA,EAAA,SAAA,EAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,EAAA;;;;;;;;;;GAUT,EAXS,QAAA,EAAA,IAAA,EAAA,MAAA,EAAA,CAAA,2GAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,cAAc,yEAAE,eAAe,EAAA,QAAA,EAAA,YAAA,EAAA,MAAA,EAAA,CAAA,OAAA,CAAA,EAAA,OAAA,EAAA,CAAA,SAAA,EAAA,SAAA,CAAA,EAAA,CAAA,EAAA,CAAA,CAAA;;4FAc9B,kBAAkB,EAAA,UAAA,EAAA,CAAA;kBAjB9B,SAAS;+BACE,gBAAgB,EAAA,UAAA,EACd,IAAI,EACP,OAAA,EAAA,CAAC,cAAc,EAAE,eAAe,CAAC,EAChC,QAAA,EAAA;;;;;;;;;;AAUT,EAAA,CAAA,EAAA,MAAA,EAAA,CAAA,2GAAA,CAAA,EAAA;wDAKD,KAAK,EAAA,CAAA;sBADJ;gBAID,OAAO,EAAA,CAAA;sBADN;;;ICPS;AAAZ,CAAA,UAAY,MAAM,EAAA;AAChB,IAAA,MAAA,CAAA,MAAA,CAAA,UAAA,CAAA,GAAA,CAAA,CAAA,GAAA,UAAQ;AACR,IAAA,MAAA,CAAA,MAAA,CAAA,SAAA,CAAA,GAAA,CAAA,CAAA,GAAA,SAAO;AACP,IAAA,MAAA,CAAA,MAAA,CAAA,OAAA,CAAA,GAAA,CAAA,CAAA,GAAA,OAAK;AACP,CAAC,EAJW,MAAM,KAAN,MAAM,GAIjB,EAAA,CAAA,CAAA;;MCgBY,qBAAqB,CAAA;AAShC,IAAA,WAAA,GAAA;AAJA,QAAA,IAAA,CAAA,OAAO,GAAG,IAAI,YAAY,EAAuC;QAEjE,IAAS,CAAA,SAAA,GAAG,gBAAgB;;AAI5B,IAAA,QAAQ;AAER,IAAA,YAAY,CAAC,KAAc,EAAA;QACzB,IAAI,CAAC,KAAK,EAAE;YACV;;AAEF,QAAA,IAAI,KAAK,CAAC,QAAQ,CAAC,OAAO,CAAC,EAAE;AAC3B,YAAA,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,OAAO,CAAC;;AAEhC,QAAA,IAAI,KAAK,CAAC,QAAQ,CAAC,MAAM,CAAC,EAAE;AAC1B,YAAA,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,QAAQ,CAAC;;;AAInC,IAAA,IAAI,OAAO,GAAA;AACT,QAAA,OAAO,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC;;AAG7C,IAAA,IAAI,QAAQ,GAAA;AACV,QAAA,IAAI,IAAI,CAAC,KAAK,CAAC,KAAK,IAAI,IAAI,CAAC,KAAK,CAAC,OAAO,EAAE;AAC1C,YAAA,OAAO,IAAI,CAAC,KAAK,CAAC,OAAO,GAAG,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,MAAM;;AAElE,QAAA,OAAO,CAAC;;AAGV,IAAA,IAAI,OAAO,GAAA;QACT,IAAI,IAAI,CAAC,KAAK,CAAC,KAAK,KAAK,eAAe,CAAC,KAAK,IAAI,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,MAAM,GAAG,CAAC,EAAE;AACjF,YAAA,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,KAAK,GAAG,eAAe,CAAC,QAAQ;;AAG1D,QAAA,IAAI,IAAI,CAAC,KAAK,CAAC,OAAO,KAAK,CAAC,IAAI,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,MAAM,GAAG,CAAC,EAAE;YAC/D,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;;AAElC,QAAA,OAAO,IAAI,CAAC,OAAO,CAAC,OAAO;;AAG7B,IAAA,SAAS,CAAC,MAAc,EAAA;AACtB,QAAA,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,OAAO,EAAE,IAAI,CAAC,KAAK,CAAC,OAAO,EAAE,MAAM,EAAE,CAAC;;+GAhDjD,qBAAqB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;AAArB,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,qBAAqB,EA5BtB,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,mBAAA,EAAA,MAAA,EAAA,EAAA,KAAA,EAAA,OAAA,EAAA,EAAA,OAAA,EAAA,EAAA,OAAA,EAAA,SAAA,EAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,EAAA;;;;;;;;;;;;;;;;;;;;;;;;;AAyBT,EAAA,CAAA,EAAA,QAAA,EAAA,IAAA,EAAA,MAAA,EAAA,CAAA,EAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EA1BS,eAAe,EAAA,QAAA,EAAA,YAAA,EAAA,MAAA,EAAA,CAAA,OAAA,CAAA,EAAA,OAAA,EAAA,CAAA,SAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAE,oBAAoB,EAAA,QAAA,EAAA,kBAAA,EAAA,MAAA,EAAA,CAAA,OAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAE,oBAAoB,EAAA,QAAA,EAAA,kBAAA,EAAA,MAAA,EAAA,CAAA,OAAA,CAAA,EAAA,OAAA,EAAA,CAAA,SAAA,CAAA,EAAA,CAAA,EAAA,CAAA,CAAA;;4FA6B1D,qBAAqB,EAAA,UAAA,EAAA,CAAA;kBAhCjC,SAAS;+BACE,mBAAmB,EAAA,UAAA,EACjB,IAAI,EAAA,OAAA,EACP,CAAC,eAAe,EAAE,oBAAoB,EAAE,oBAAoB,CAAC,EAC5D,QAAA,EAAA;;;;;;;;;;;;;;;;;;;;;;;;;AAyBT,EAAA,CAAA,EAAA;wDAKD,KAAK,EAAA,CAAA;sBADJ;gBAID,OAAO,EAAA,CAAA;sBADN;;;MCNU,eAAe,CAAA;AAS1B,IAAA,WAAA,GAAA;AAJA,QAAA,IAAA,CAAA,OAAO,GAAG,IAAI,YAAY,EAAuC;QAEjE,IAAS,CAAA,SAAA,GAAG,gBAAgB;;AAI5B,IAAA,QAAQ;IAER,OAAO,GAAA;QACL,IAAI,CAAC,KAAK,CAAC,KAAK,GAAG,eAAe,CAAC,OAAO;QAC1C,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,IAAG;AAC3B,YAAA,CAAC,CAAC,KAAK,GAAG,eAAe,CAAC,QAAQ;AACpC,SAAC,CAAC;;IAGJ,IAAI,GAAA;QACF,IAAI,IAAI,CAAC,KAAK,CAAC,KAAK,KAAK,eAAe,CAAC,OAAO,EAAE;YAChD;;QAGF,IAAI,CAAC,KAAK,CAAC,KAAK,GAAG,eAAe,CAAC,OAAO;QAC1C,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,IAAG;AAC3B,YAAA,CAAC,CAAC,KAAK,GAAG,eAAe,CAAC,OAAO;AACnC,SAAC,CAAC;;AAGJ,IAAA,IAAI,OAAO,GAAA;AACT,QAAA,OAAO,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC;;AAG7C,IAAA,UAAU,CAAC,OAAe,EAAA;QACxB,IAAI,OAAO,KAAK,IAAI,CAAC,KAAK,CAAC,OAAO,EAAE;YAClC;;AAEF,QAAA,IAAI,CAAC,KAAK,CAAC,OAAO,GAAG,OAAO;AAC5B,QAAA,OAAO,CAAC,IAAI,CAAC,SAAS,CAAC;;AAGzB,IAAA,QAAQ,CAAC,KAAa,EAAA;QACpB,IAAI,IAAI,CAAC,KAAK,CAAC,KAAK,KAAK,eAAe,CAAC,KAAK,EAAE;YAC9C;;AAGF,QAAA,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,MAAM,CAAC,aAAa,CAAC,OAAO,CAAC,WAAW,CAAC,IAAI,GAAG,KAAK;QACtE,IAAI,CAAC,KAAK,CAAC,KAAK,GAAG,eAAe,CAAC,KAAK;AACxC,QAAA,OAAO,CAAC,IAAI,CAAC,SAAS,CAAC;;IAGzB,KAAK,GAAA;AACH,QAAA,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,MAAM,CAAC,aAAa,CAAC,OAAO,CAAC,WAAW,CAAC,IAAI,GAAG,EAAE;QACnE,IAAI,CAAC,IAAI,EAAE;;AAGb,IAAA,YAAY,CAAC,KAAc,EAAA;QACzB,IAAI,CAAC,KAAK,EAAE;YACV;;AAEF,QAAA,IAAI,KAAK,CAAC,QAAQ,CAAC,OAAO,CAAC,EAAE;YAC3B,IAAI,CAAC,KAAK,EAAE;;QAGd,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,OAAO,EAAE,IAAI,CAAC,KAAK,CAAC,OAAO,EAAE,MAAM,EAAE,MAAM,CAAC,KAAK,EAAE,CAAC;;+GAlE/D,eAAe,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;AAAf,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,eAAe,EAzBhB,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,YAAA,EAAA,MAAA,EAAA,EAAA,KAAA,EAAA,OAAA,EAAA,EAAA,OAAA,EAAA,EAAA,OAAA,EAAA,SAAA,EAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,EAAA;;;;;;;;;;;;;;;;;;;;;;AAsBT,EAAA,CAAA,EAAA,QAAA,EAAA,IAAA,EAAA,MAAA,EAAA,CAAA,sKAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EAvBS,YAAY,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,IAAA,EAAA,QAAA,EAAA,QAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,UAAA,EAAA,UAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAE,kBAAkB,EAAA,QAAA,EAAA,gBAAA,EAAA,MAAA,EAAA,CAAA,OAAA,CAAA,EAAA,OAAA,EAAA,CAAA,SAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAE,sBAAsB,EAAA,QAAA,EAAA,oBAAA,EAAA,MAAA,EAAA,CAAA,OAAA,CAAA,EAAA,CAAA,EAAA,CAAA,CAAA;;4FA0BvD,eAAe,EAAA,UAAA,EAAA,CAAA;kBA7B3B,SAAS;+BACE,YAAY,EAAA,UAAA,EACV,IAAI,EAAA,OAAA,EACP,CAAC,YAAY,EAAE,kBAAkB,EAAE,sBAAsB,CAAC,EACzD,QAAA,EAAA;;;;;;;;;;;;;;;;;;;;;;AAsBT,EAAA,CAAA,EAAA,MAAA,EAAA,CAAA,sKAAA,CAAA,EAAA;wDAKD,KAAK,EAAA,CAAA;sBADJ;gBAID,OAAO,EAAA,CAAA;sBADN;;;MC5BU,eAAe,CAAA;+GAAf,eAAe,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;AAAf,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,eAAe,EAPhB,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,YAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,EAAA;;;;AAIT,EAAA,CAAA,EAAA,QAAA,EAAA,IAAA,EAAA,MAAA,EAAA,CAAA,+VAAA,CAAA,EAAA,CAAA,CAAA;;4FAGU,eAAe,EAAA,UAAA,EAAA,CAAA;kBAX3B,SAAS;AACE,YAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,YAAY,EACV,UAAA,EAAA,IAAI,EACP,OAAA,EAAA,EAAE,EACD,QAAA,EAAA;;;;AAIT,EAAA,CAAA,EAAA,MAAA,EAAA,CAAA,+VAAA,CAAA,EAAA;;;MCVU,mBAAmB,CAAA;AAC9B,IAAA,OAAO,GAAG,CAAI,SAAiB,EAAE,KAAQ,EAAA;AACvC,QAAA,YAAY,CAAC,OAAO,CAAC,SAAS,EAAE,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC;;IAGxD,OAAO,GAAG,CAAI,SAAiB,EAAA;QAC7B,MAAM,KAAK,GAAG,YAAY,CAAC,OAAO,CAAC,SAAS,CAAC;AAC7C,QAAA,OAAO,IAAI,CAAC,KAAK,CAAC,KAAK,CAAM;;IAG/B,OAAO,MAAM,CAAC,SAAiB,EAAA;AAC7B,QAAA,YAAY,CAAC,UAAU,CAAC,SAAS,CAAC;;AAGpC,IAAA,OAAO,KAAK,GAAA;QACV,YAAY,CAAC,KAAK,EAAE;;AAEvB;;ACjBM,MAAM,IAAI,GAAG,MAAM;AACnB,MAAM,KAAK,GAAG,OAAO;;ICIhB;AAAZ,CAAA,UAAY,WAAW,EAAA;AACrB,IAAA,WAAA,CAAA,OAAA,CAAA,GAAA,OAAe;AACf,IAAA,WAAA,CAAA,MAAA,CAAA,GAAA,MAAa;AACb,IAAA,WAAA,CAAA,MAAA,CAAA,GAAA,MAAa;AACf,CAAC,EAJW,WAAW,KAAX,WAAW,GAItB,EAAA,CAAA,CAAA;MAKY,YAAY,CAAA;AAUvB,IAAA,WAAA,GAAA;QATA,IAAW,CAAA,WAAA,GAAG,KAAK;QACnB,IAAU,CAAA,UAAA,GAAG,KAAK;QAClB,IAAU,CAAA,UAAA,GAAG,KAAK;AAClB,QAAA,IAAA,CAAA,aAAa,GAAG,WAAW,CAAC,IAAI;QAChC,IAAY,CAAA,YAAA,GAAG,WAAW;QAC1B,IAAW,CAAA,WAAA,GAAG,KAAK;AACnB,QAAA,IAAA,CAAA,OAAO,GAAG,WAAW,CAAC,IAAI;QAIxB,MAAM,OAAO,GAAG,mBAAmB,CAAC,GAAG,CAAc,KAAK,CAAC;AAC3D,QAAA,OAAO,CAAC,GAAG,CAAC,4BAA4B,EAAE,OAAO,CAAC;AAClD,QAAA,IAAI,CAAC,KAAK,GAAG,IAAI,eAAe,CAAc,OAAO,IAAI,IAAI,CAAC,OAAO,CAAC;AACtE,QAAA,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC,KAAK;QAC/B,OAAO,CAAC,GAAG,CAAC,uCAAuC,EAAE,IAAI,CAAC,aAAa,CAAC;AACxE,QAAA,IAAI,CAAC,oBAAoB,CAAC,IAAI,CAAC,aAAa,CAAC;QAE7C,MAAM,gBAAgB,GAAG,MAAM,CAAC,UAAU,CAAC,8BAA8B,CAAC;AAC1E,QAAA,IAAI,CAAC,WAAW,GAAG,gBAAgB,CAAC,OAAO;QAC3C,IAAI,CAAC,uBAAuB,EAAE;AAE9B,QAAA,gBAAgB,CAAC,gBAAgB,CAAC,QAAQ,EAAE,UAAU,IAAG;AACvD,YAAA,OAAO,CAAC,GAAG,CAAC,4CAA4C,EAAE,UAAU,CAAC;AACrE,YAAA,IAAI,CAAC,WAAW,GAAG,UAAU,CAAC,OAAO;YACrC,IAAI,CAAC,uBAAuB,EAAE;AAChC,SAAC,CAAC;;IAGI,uBAAuB,GAAA;AAC7B,QAAA,IAAI,IAAI,CAAC,WAAW,IAAI,IAAI,CAAC,aAAa,KAAK,WAAW,CAAC,IAAI,EAAE;YAC/D,OAAO,CAAC,GAAG,CAAC,gCAAgC,EAAE,IAAI,CAAC,WAAW,CAAC;AAC/D,YAAA,IAAI,CAAC,oBAAoB,CAAC,WAAW,CAAC,IAAI,CAAC;;AAE7C,QAAA,IAAI,CAAC,IAAI,CAAC,WAAW,IAAI,IAAI,CAAC,aAAa,KAAK,WAAW,CAAC,IAAI,EAAE;YAChE,OAAO,CAAC,GAAG,CAAC,gCAAgC,EAAE,IAAI,CAAC,WAAW,CAAC;AAC/D,YAAA,IAAI,CAAC,oBAAoB,CAAC,WAAW,CAAC,IAAI,CAAC;;;IAIvC,oBAAoB,GAAA;QAC1B,IAAI,CAAC,WAAW,CAAC,WAAW,CAAC,IAAI,EAAE,IAAI,CAAC;QACxC,IAAI,CAAC,WAAW,CAAC,WAAW,CAAC,KAAK,EAAE,KAAK,CAAC;;IAGpC,qBAAqB,GAAA;QAC3B,IAAI,CAAC,WAAW,CAAC,WAAW,CAAC,KAAK,EAAE,IAAI,CAAC;QACzC,IAAI,CAAC,WAAW,CAAC,WAAW,CAAC,IAAI,EAAE,KAAK,CAAC;;AAG3C,IAAA,IAAI,MAAM,GAAA;QACR,OAAO,IAAI,CAAC,WAAW;;AAGzB,IAAA,IAAI,KAAK,GAAA;AACP,QAAA,OAAO,IAAI,CAAC,KAAK,CAAC,KAAK;;IAGzB,IAAI,KAAK,CAAC,KAAkB,EAAA;AAC1B,QAAA,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC;AACtB,QAAA,mBAAmB,CAAC,GAAG,CAAc,KAAK,EAAE,KAAK,CAAC;;IAGpD,WAAW,CAAC,IAAY,EAAE,SAAkB,EAAA;QAC1C,OAAO,CAAC,GAAG,CAAC,iBAAiB,EAAE,IAAI,EAAE,SAAS,CAAC;QAC/C,QAAQ,CAAC,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,IAAI,EAAE,SAAS,CAAC;;AAGjD,IAAA,oBAAoB,CAAC,MAAmB,EAAA;AACtC,QAAA,IAAI,CAAC,aAAa,GAAG,MAAM;AAC3B,QAAA,IAAI,CAAC,KAAK,GAAG,MAAM;QACnB,IAAI,CAAC,WAAW,GAAG,MAAM,KAAK,WAAW,CAAC,KAAK;QAC/C,IAAI,CAAC,UAAU,GAAG,MAAM,KAAK,WAAW,CAAC,IAAI;QAC7C,IAAI,CAAC,UAAU,GAAG,MAAM,KAAK,WAAW,CAAC,IAAI;QAE7C,QAAQ,MAAM;YACZ,KAAK,WAAW,CAAC,KAAK;gBACpB,IAAI,CAAC,qBAAqB,EAAE;gBAC5B;YACF,KAAK,WAAW,CAAC,IAAI;gBACnB,IAAI,CAAC,oBAAoB,EAAE;gBAC3B;YACF,KAAK,WAAW,CAAC,IAAI;AACnB,gBAAA,IAAI,IAAI,CAAC,WAAW,EAAE;oBACpB,IAAI,CAAC,oBAAoB,EAAE;;qBACtB;oBACL,IAAI,CAAC,qBAAqB,EAAE;;gBAE9B;;;+GAxFK,YAAY,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,UAAA,EAAA,CAAA,CAAA;AAAZ,IAAA,SAAA,IAAA,CAAA,KAAA,GAAA,EAAA,CAAA,qBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,YAAY,cAFX,MAAM,EAAA,CAAA,CAAA;;4FAEP,YAAY,EAAA,UAAA,EAAA,CAAA;kBAHxB,UAAU;AAAC,YAAA,IAAA,EAAA,CAAA;AACV,oBAAA,UAAU,EAAE,MAAM;AACnB,iBAAA;;;MC2DY,eAAe,CAAA;AA7D5B,IAAA,WAAA,GAAA;AAkEE,QAAA,IAAA,CAAA,OAAO,GAAG,IAAI,YAAY,EAAU;AAGpC,QAAA,IAAA,CAAA,aAAa,GAAG,IAAI,YAAY,EAAW;AAE3C,QAAA,IAAA,CAAA,KAAK,GAAG,MAAM,CAAC,YAAY,CAAC;AAS7B;AAPC,IAAA,cAAc,CAAC,KAAc,EAAA;AAC3B,QAAA,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC;;AAG1B,IAAA,eAAe,CAAC,MAAa,EAAA;AAC3B,QAAA,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC;;+GAjBpB,eAAe,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;AAAf,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,eAAe,EA9ChB,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,YAAA,EAAA,MAAA,EAAA,EAAA,KAAA,EAAA,OAAA,EAAA,EAAA,OAAA,EAAA,EAAA,OAAA,EAAA,SAAA,EAAA,aAAA,EAAA,eAAA,EAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,EAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAuCT,EAAA,CAAA,EAAA,QAAA,EAAA,IAAA,EAAA,MAAA,EAAA,CAAA,0CAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAlDC,OAAO,EACP,QAAA,EAAA,WAAA,EAAA,MAAA,EAAA,CAAA,SAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,SAAS,oGACT,UAAU,EAAA,QAAA,EAAA,aAAA,EAAA,MAAA,EAAA,CAAA,OAAA,EAAA,MAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EACV,QAAQ,EACR,QAAA,EAAA,WAAA,EAAA,MAAA,EAAA,CAAA,OAAA,EAAA,MAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,UAAU,EACV,QAAA,EAAA,aAAA,EAAA,MAAA,EAAA,CAAA,OAAA,EAAA,iBAAA,EAAA,YAAA,EAAA,cAAA,EAAA,SAAA,EAAA,SAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,eAAe,gGACf,eAAe,EAAA,QAAA,EAAA,YAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EACf,gBAAgB,EAChB,QAAA,EAAA,aAAA,EAAA,MAAA,EAAA,CAAA,OAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,aAAa,8FACb,uBAAuB,EAAA,QAAA,EAAA,qBAAA,EAAA,MAAA,EAAA,CAAA,OAAA,CAAA,EAAA,CAAA,EAAA,CAAA,CAAA;;4FAgDd,eAAe,EAAA,UAAA,EAAA,CAAA;kBA7D3B,SAAS;+BACE,YAAY,EAAA,UAAA,EACV,IAAI,EACP,OAAA,EAAA;wBACP,OAAO;wBACP,SAAS;wBACT,UAAU;wBACV,QAAQ;wBACR,UAAU;wBACV,eAAe;wBACf,eAAe;wBACf,gBAAgB;wBAChB,aAAa;wBACb,uBAAuB;qBACxB,EACS,QAAA,EAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAuCT,EAAA,CAAA,EAAA,MAAA,EAAA,CAAA,0CAAA,CAAA,EAAA;8BASD,KAAK,EAAA,CAAA;sBADJ;gBAID,OAAO,EAAA,CAAA;sBADN;gBAID,aAAa,EAAA,CAAA;sBADZ;;;MCrEU,WAAW,CAAA;AAEtB,IAAA,WAAA,CAAY,IAAsB,EAAA;AAChC,QAAA,IAAI,CAAC,IAAI,GAAG,IAAI;;AAGlB,IAAA,IAAI,OAAO,GAAA;QACT,OAAO,IAAI,CAAC,IAAI;;AAEnB;IAEW;AAAZ,CAAA,UAAY,UAAU,EAAA;AACpB,IAAA,UAAA,CAAA,IAAA,CAAA,GAAA,IAAS;AACT,IAAA,UAAA,CAAA,IAAA,CAAA,GAAA,IAAS;AACX,CAAC,EAHW,UAAU,KAAV,UAAU,GAGrB,EAAA,CAAA,CAAA;;MCjBY,oBAAoB,GAAG,IAAI,cAAc,CAAgB,eAAe;;MCIxE,WAAW,CAAA;AAMtB,IAAA,WAAA,CAA0C,MAAqB,EAAA;AAJ/D,QAAA,IAAA,CAAA,OAAO,GAAG,UAAU,CAAC,EAAE;AAKrB,QAAA,OAAO,CAAC,GAAG,CAAC,mBAAmB,EAAE,MAAM,CAAC;AACxC,QAAA,IAAI,CAAC,OAAO,GAAG,MAAM,CAAC,OAAO;AAC7B,QAAA,IAAI,CAAC,MAAM,GAAG,MAAM;QACpB,MAAM,OAAO,GAAG,mBAAmB,CAAC,GAAG,CAAa,IAAI,CAAC;AACzD,QAAA,IAAI,CAAC,YAAY,GAAG,IAAI,eAAe,CAAa,OAAO,IAAI,IAAI,CAAC,OAAO,CAAC;;AAG9E,IAAA,IAAI,CAAC,SAAiB,EAAA;AACpB,QAAA,OAAO,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC,YAAY,CAAC,KAAK,CAAC;;AAGjE,IAAA,IAAI,IAAI,GAAA;AACN,QAAA,OAAO,IAAI,CAAC,YAAY,CAAC,KAAK;;IAGhC,IAAI,IAAI,CAAC,IAAgB,EAAA;AACvB,QAAA,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC;AAC5B,QAAA,mBAAmB,CAAC,GAAG,CAAa,IAAI,EAAE,IAAI,CAAC;;AAxBtC,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,kBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAW,kBAMF,oBAAoB,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,UAAA,EAAA,CAAA,CAAA;AAN7B,IAAA,SAAA,IAAA,CAAA,KAAA,GAAA,EAAA,CAAA,qBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAW,cAFV,MAAM,EAAA,CAAA,CAAA;;4FAEP,WAAW,EAAA,UAAA,EAAA,CAAA;kBAHvB,UAAU;AAAC,YAAA,IAAA,EAAA,CAAA;AACV,oBAAA,UAAU,EAAE,MAAM;AACnB,iBAAA;;0BAOc,MAAM;2BAAC,oBAAoB;;;MCX7B,YAAY,CAAA;AACvB,IAAA,WAAA,CAAoB,eAAgC,EAAA;QAAhC,IAAe,CAAA,eAAA,GAAf,eAAe;;IAEnC,MAAM,YAAY,CAAC,OAAqB,EAAA;QACtC,MAAM,KAAK,GAAG,MAAM,IAAI,CAAC,eAAe,CAAC,MAAM,CAAC;YAC9C,OAAO,EAAE,OAAO,CAAC,OAAO;YACxB,QAAQ,EAAE,OAAO,CAAC,QAAQ;YAC1B,QAAQ,EAAE,OAAO,CAAC,QAAQ;YAC1B,KAAK,EAAE,OAAO,CAAC,KAAK;AACrB,SAAA,CAAC;AAEF,QAAA,MAAM,KAAK,CAAC,OAAO,EAAE;;AAGvB,IAAA,IAAI,CAAC,OAAqB,EAAA;AACxB,QAAA,IAAI,CAAC,YAAY,CAAC,OAAO;aACtB,IAAI,CAAC,MAAK;AACT,YAAA,OAAO,CAAC,IAAI,CAAC,eAAe,CAAC;AAC/B,SAAC;AACA,aAAA,KAAK,CAAC,CAAC,KAAK,KAAI;YACf,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC;AACtC,SAAC,CAAC;;+GArBK,YAAY,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAAI,IAAA,CAAA,eAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,UAAA,EAAA,CAAA,CAAA;AAAZ,IAAA,SAAA,IAAA,CAAA,KAAA,GAAA,EAAA,CAAA,qBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,YAAY,cAFX,MAAM,EAAA,CAAA,CAAA;;4FAEP,YAAY,EAAA,UAAA,EAAA,CAAA;kBAHxB,UAAU;AAAC,YAAA,IAAA,EAAA,CAAA;AACV,oBAAA,UAAU,EAAE,MAAM;AACnB,iBAAA;;;ACLD;;AAEG;AAEH;;AAEG;;ACNH;;AAEG;;;;"}
1
+ {"version":3,"file":"valtech-components.mjs","sources":["../../../projects/valtech-components/src/lib/components/atoms/avatar/avatar.component.ts","../../../projects/valtech-components/src/lib/services/icons.service.ts","../../../projects/valtech-components/src/lib/components/atoms/box/box.component.ts","../../../projects/valtech-components/src/lib/components/types.ts","../../../projects/valtech-components/src/lib/services/download.service.ts","../../../projects/valtech-components/src/lib/components/atoms/button/button.component.ts","../../../projects/valtech-components/src/lib/components/atoms/button/factory.ts","../../../projects/valtech-components/src/lib/components/atoms/display/display.component.ts","../../../projects/valtech-components/src/lib/components/atoms/divider/divider.component.ts","../../../projects/valtech-components/src/lib/components/atoms/href/href.component.ts","../../../projects/valtech-components/src/lib/components/atoms/icon/icon.component.ts","../../../projects/valtech-components/src/lib/components/atoms/image/image.component.ts","../../../projects/valtech-components/src/lib/components/atoms/progress-bar/progress-bar.component.ts","../../../projects/valtech-components/src/lib/components/atoms/text/text.component.ts","../../../projects/valtech-components/src/lib/components/atoms/title/title.component.ts","../../../projects/valtech-components/src/lib/components/molecules/alert-box/alert-box.component.ts","../../../projects/valtech-components/src/lib/components/molecules/button-group/button-group.component.ts","../../../projects/valtech-components/src/lib/components/molecules/card/types.ts","../../../projects/valtech-components/src/lib/components/molecules/card/card.component.ts","../../../projects/valtech-components/src/lib/components/molecules/check-input/check-input.component.ts","../../../projects/valtech-components/src/lib/components/molecules/comment-input/comment-input.component.ts","../../../projects/valtech-components/src/lib/components/molecules/content-loader/content-loader.component.ts","../../../projects/valtech-components/src/lib/components/molecules/date-input/date-input.component.ts","../../../projects/valtech-components/src/lib/components/molecules/email-input/email-input.component.ts","../../../projects/valtech-components/src/lib/shared/utils/styles.ts","../../../projects/valtech-components/src/lib/components/molecules/expandable-text/expandable-text.component.ts","../../../projects/valtech-components/src/lib/components/molecules/file-input/file-input.component.ts","../../../projects/valtech-components/src/lib/components/molecules/hint/hint.component.ts","../../../projects/valtech-components/src/lib/components/molecules/hour-input/hour-input.component.ts","../../../projects/valtech-components/src/lib/services/in-app-browser.service.ts","../../../projects/valtech-components/src/lib/services/navigation.service.ts","../../../projects/valtech-components/src/lib/components/molecules/link/link.component.ts","../../../projects/valtech-components/src/lib/components/molecules/links-cake/links-cake.component.ts","../../../projects/valtech-components/src/lib/components/molecules/notes-box/notes-box.component.ts","../../../projects/valtech-components/src/lib/components/molecules/number-input/number-input.component.ts","../../../projects/valtech-components/src/lib/components/molecules/password-input/password-input.component.ts","../../../projects/valtech-components/src/lib/components/molecules/pin-input/pin-input.component.ts","../../../projects/valtech-components/src/lib/components/molecules/title-block/title-block.component.ts","../../../projects/valtech-components/src/lib/components/molecules/progress-status/progress-status.component.ts","../../../projects/valtech-components/src/lib/components/molecules/prompter/prompter.component.ts","../../../projects/valtech-components/src/lib/components/molecules/radio-input/radio-input.component.ts","../../../projects/valtech-components/src/lib/shared/utils/text.ts","../../../projects/valtech-components/src/lib/components/molecules/searchbar/searchbar.component.ts","../../../projects/valtech-components/src/lib/components/molecules/search-selector-input/search-selector-input.component.ts","../../../projects/valtech-components/src/lib/components/molecules/select-input/select-input.component.ts","../../../projects/valtech-components/src/lib/components/molecules/text-input/text-input.component.ts","../../../projects/valtech-components/src/lib/components/organisms/banner/banner.component.ts","../../../projects/valtech-components/src/lib/components/organisms/toolbar/toolbar.component.ts","../../../projects/valtech-components/src/lib/components/organisms/footer/footer.component.ts","../../../projects/valtech-components/src/lib/components/organisms/form/factory.ts","../../../projects/valtech-components/src/lib/components/organisms/form/form-footer/form-footer.component.ts","../../../projects/valtech-components/src/lib/shared/utils/dom.ts","../../../projects/valtech-components/src/lib/components/organisms/form/form.component.ts","../../../projects/valtech-components/src/lib/components/organisms/header/header.component.ts","../../../projects/valtech-components/src/lib/components/organisms/item-list/item-list.component.ts","../../../projects/valtech-components/src/lib/components/organisms/no-content/no-content.component.ts","../../../projects/valtech-components/src/lib/components/organisms/wizard/types.ts","../../../projects/valtech-components/src/lib/components/organisms/wizard/wizard-footer/wizard-footer.component.ts","../../../projects/valtech-components/src/lib/components/organisms/wizard/wizard.component.ts","../../../projects/valtech-components/src/lib/components/templates/layout/layout.component.ts","../../../projects/valtech-components/src/lib/services/local-storage.service.ts","../../../projects/valtech-components/src/lib/shared/constants/storage.ts","../../../projects/valtech-components/src/lib/services/theme.service.ts","../../../projects/valtech-components/src/lib/components/templates/simple/simple.component.ts","../../../projects/valtech-components/src/lib/services/lang-provider/types.ts","../../../projects/valtech-components/src/lib/services/types.ts","../../../projects/valtech-components/src/lib/services/lang-provider/lang-provider.service.ts","../../../projects/valtech-components/src/lib/services/toast.service.ts","../../../projects/valtech-components/src/public-api.ts","../../../projects/valtech-components/src/valtech-components.ts"],"sourcesContent":["import { Component, EventEmitter, Input, OnInit, Output } from '@angular/core';\nimport { IonAvatar } from '@ionic/angular/standalone';\nimport { AvatarMetadata } from './types';\n\n@Component({\n selector: 'val-avatar',\n standalone: true,\n imports: [IonAvatar],\n template: `\n <ion-avatar aria-hidden=\"true\" [class]=\"props.size\" [class.box]=\"props.box\" (click)=\"onClickHandler()\">\n <img alt=\"profile image\" [src]=\"props.image || props.default\" />\n </ion-avatar>\n `,\n styleUrls: ['./avatar.component.scss'],\n})\nexport class AvatarComponent implements OnInit {\n @Input() props: AvatarMetadata;\n\n @Output()\n onClick = new EventEmitter();\n\n constructor() {}\n\n ngOnInit() {}\n\n onClickHandler() {\n this.onClick.emit();\n }\n}\n","/* eslint-disable no-underscore-dangle */\n\nimport { Injectable } from '@angular/core';\nimport { addIcons } from 'ionicons';\nimport {\n addCircleOutline,\n addOutline,\n alertCircleOutline,\n alertOutline,\n arrowBackOutline,\n arrowDownOutline,\n arrowForwardOutline,\n chatbubblesOutline,\n checkmarkCircleOutline,\n closeOutline,\n ellipsisHorizontalOutline,\n eyeOffOutline,\n eyeOutline,\n heart,\n heartOutline,\n homeOutline,\n notificationsOutline,\n openOutline,\n shareOutline,\n} from 'ionicons/icons';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class IconService {\n constructor() {\n addIcons({\n addOutline,\n addCircleOutline,\n alertOutline,\n alertCircleOutline,\n arrowBackOutline,\n arrowForwardOutline,\n arrowDownOutline,\n checkmarkCircleOutline,\n ellipsisHorizontalOutline,\n notificationsOutline,\n openOutline,\n closeOutline,\n chatbubblesOutline,\n shareOutline,\n heart,\n heartOutline,\n homeOutline,\n eyeOffOutline,\n eyeOutline,\n });\n }\n}\n","import { CommonModule, NgStyle } from '@angular/common';\nimport { Component, EventEmitter, Input, OnInit, Output } from '@angular/core';\nimport { IonCard, IonIcon } from '@ionic/angular/standalone';\nimport { IconService } from '../../../services/icons.service';\nimport { BoxMetadata } from './types';\n\n@Component({\n selector: 'val-box',\n standalone: true,\n imports: [CommonModule, IonCard, IonIcon, NgStyle],\n template: `\n <ion-card\n class=\"box\"\n [color]=\"props.color\"\n [class.rounded]=\"props.rounded\"\n [class.bordered]=\"props.bordered\"\n [class.transparent]=\"!props.color\"\n [class.left-border]=\"props.leftBorder\"\n >\n @if (props.icon) {\n <ion-icon class=\"icon\" [name]=\"props.icon\" (click)=\"clickHandler()\"></ion-icon>\n }\n <div\n style=\"padding: 8px;\"\n [ngStyle]=\"{\n 'margin-right': props.icon ? '24px' : '0px',\n }\"\n >\n <ng-content select=\"[body]\"></ng-content>\n </div>\n </ion-card>\n `,\n styleUrls: ['./box.component.scss'],\n})\nexport class BoxComponent implements OnInit {\n @Input()\n props: BoxMetadata;\n\n @Output()\n onClick = new EventEmitter();\n\n constructor(icon: IconService) {}\n\n ngOnInit() {}\n\n clickHandler() {\n this.onClick.emit();\n }\n}\n","import { FormControl, ValidatorFn } from '@angular/forms';\nimport { ImageMetadata } from './atoms/image/types';\nimport { Color } from '@ionic/core';\n\nexport type ComponentState = 'ENABLED' | 'DISABLED' | 'WORKING' | 'ERROR';\nconst ENABLED: ComponentState = 'ENABLED';\nconst DISABLED: ComponentState = 'DISABLED';\nconst WORKING: ComponentState = 'WORKING';\nconst ERROR: ComponentState = 'ERROR';\nexport const ComponentStates = { ENABLED, DISABLED, WORKING, ERROR };\n\nexport enum ActionType {\n BROWSER_NEW_TAB,\n BROWSER_DOWNLOAD,\n NATIVE_DOWNLOAD,\n APP_NAVIGATION,\n BROWSER_NAVIGATION,\n}\n\nexport type Action = {\n description: string;\n type: ActionType;\n source: string;\n};\n\nexport enum InputType {\n TEXT,\n EMAIL,\n PASSWORD,\n COMMENT,\n NUMBER,\n PIN_CODE,\n DATE,\n HOUR,\n CHECK,\n RADIO,\n SELECT,\n SEARCH_SELECT,\n FILE,\n}\n\nexport type InputOption = {\n id: string;\n name: string;\n selected?: boolean;\n order: number;\n};\n\nexport type InputMetadata = {\n control: FormControl;\n token: string;\n label: string;\n name: string;\n hint: string;\n placeholder: string;\n type: InputType;\n order: number;\n validators: ValidatorFn[];\n options?: InputOption[];\n range?: {\n min: number;\n max: number;\n };\n errors: {\n [key: string]: string;\n };\n value?: string;\n};\n\nexport type FormSection = {\n name: string;\n order: number;\n fields: InputMetadata[];\n};\n\nexport type FormSubmit = {\n fields: { key: string; value: string }[];\n token?: string;\n};\n\nexport type FormMetadata = {\n name: string;\n sections: FormSection[];\n actions: ButtonMetadata;\n state: ComponentState;\n};\n\nexport enum ToolbarActionType {\n AVATAR = 'AVATAR',\n ICON = 'ICON',\n IMAGE = 'IMAGE',\n BUTTON = 'BUTTON',\n}\n\nexport type ToolbarAction = {\n type: 'AVATAR' | 'ICON' | 'IMAGE' | 'BUTTON';\n token?: string;\n position: 'left' | 'right' | 'center';\n description?: string;\n image?: ImageMetadata;\n};\n\nexport interface IconMetada {\n name: string;\n slot: 'start' | 'end';\n}\n\nexport interface ButtonMetadata {\n actionType?: ActionType;\n expand?: 'full' | 'block';\n href?: string;\n target?: '_blank' | '_self' | '_parent' | '_top';\n download?: string;\n color: Color;\n state: ComponentState;\n text: string;\n icon?: IconMetada;\n shape?: 'round';\n size?: 'small' | 'default' | 'large';\n fill?: 'clear' | 'outline' | 'solid' | 'default';\n type: 'button' | 'submit' | 'reset';\n token?: string;\n}\n","import { Injectable } from '@angular/core';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class DownloadService {\n getFileNameFromUrl(url: string): string {\n try {\n const pathSegments = url.split('/');\n const lastSegment = pathSegments[pathSegments.length - 1];\n const fileName = decodeURIComponent(lastSegment);\n return fileName;\n } catch (error) {\n console.error('Error al obtener nombre de archivo: ', JSON.stringify(error));\n return 'filename';\n }\n }\n\n openNewTab(url: string): void {\n if (url) {\n const fileName = this.getFileNameFromUrl(url);\n const link = document.createElement('a');\n link.href = url;\n link.download = fileName;\n link.target = '_blank';\n document.body.appendChild(link);\n link.click();\n document.body.removeChild(link);\n } else {\n console.error('La URL no está definida');\n }\n }\n\n downloadLinkFromBrowser(url: string): void {\n console.log('trying to download file from url');\n if (url) {\n fetch(url)\n .then(response => response.blob())\n .then(blob => {\n const url = window.URL.createObjectURL(blob);\n const link = document.createElement('a');\n link.href = url;\n\n const fileName = this.getFileNameFromUrl(url);\n link.download = `${+new Date()}-${fileName}`;\n link.target = '_self';\n link.click();\n\n window.URL.revokeObjectURL(url);\n })\n .catch(error => {\n console.error('Error al descargar el archivo:', JSON.stringify(error));\n });\n } else {\n console.error('La URL no está definida');\n }\n }\n}\n","import { CommonModule } from '@angular/common';\nimport { Component, EventEmitter, Input, Output } from '@angular/core';\nimport { IonButton, IonIcon, IonSpinner, IonText } from '@ionic/angular/standalone';\nimport { DownloadService } from '../../../services/download.service';\nimport { ButtonMetadata, ComponentStates } from '../../types';\nimport { IconService } from '../../../services/icons.service';\n\n@Component({\n selector: 'val-button',\n standalone: true,\n imports: [CommonModule, IonButton, IonIcon, IonSpinner, IonText],\n template: `\n <ion-button\n [type]=\"props.type\"\n [color]=\"props.color\"\n [expand]=\"props.expand\"\n [fill]=\"props.fill\"\n [size]=\"props.size\"\n [href]=\"props.href\"\n [target]=\"props.target\"\n [shape]=\"props.shape\"\n (click)=\"clickHandler()\"\n [disabled]=\"props.state === states.DISABLED\"\n >\n <ion-icon *ngIf=\"props.icon\" [slot]=\"props.icon.slot\" [name]=\"props.icon.name\"></ion-icon>\n <ion-spinner *ngIf=\"props.state === states.WORKING\" name=\"circular\"></ion-spinner>\n <ion-text *ngIf=\"props.state !== states.WORKING\">{{ props.text }}</ion-text>\n </ion-button>\n `,\n styleUrls: ['./button.component.scss'],\n})\nexport class ButtonComponent {\n states = ComponentStates;\n\n @Input()\n props!: ButtonMetadata;\n\n @Output()\n onClick = new EventEmitter<string>();\n\n constructor(private download: DownloadService, icon: IconService) {}\n\n ngOnInit() {}\n\n clickHandler() {\n if (this.props.download) {\n this.download.downloadLinkFromBrowser(this.props.download);\n }\n if (this.props.state === this.states.DISABLED) {\n return;\n }\n this.onClick.emit(this.props.token);\n }\n}\n","import { ButtonMetadata, IconMetada } from '../../types';\n\nexport const Icon = (name: string, slot: 'start' | 'end'): IconMetada => {\n return {\n name,\n slot,\n };\n};\n\n/* name convention: COLOR FILL SIZE [optionals: SHAPE EXPAND ICON HREF/DOWNLOAD] TYPE */\n\nexport const BaseDefault = (text: string, type: 'button' | 'submit' | 'reset'): ButtonMetadata => {\n return {\n color: 'primary',\n state: 'ENABLED',\n text,\n size: 'default',\n type,\n };\n};\n\nexport const ClearDefault = (text: string, type: 'button' | 'submit' | 'reset'): ButtonMetadata => {\n return { ...BaseDefault(text, type), fill: 'clear' };\n};\n\nexport const ClearDefaultRound = (\n text: string,\n type: 'button' | 'submit' | 'reset'\n): ButtonMetadata => {\n return { ...ClearDefault(text, type), shape: 'round' };\n};\n\nexport const SolidDefault = (text: string, type: 'button' | 'submit' | 'reset'): ButtonMetadata => {\n return { ...BaseDefault(text, type), fill: 'solid' };\n};\n\nexport const SolidDefaultRound = (\n text: string,\n type: 'button' | 'submit' | 'reset'\n): ButtonMetadata => {\n return { ...SolidDefault(text, type), shape: 'round' };\n};\n\nexport const OutlineDefault = (\n text: string,\n type: 'button' | 'submit' | 'reset'\n): ButtonMetadata => {\n return { ...BaseDefault(text, type), fill: 'outline' };\n};\n\nexport const OutlineDefaultRound = (\n text: string,\n type: 'button' | 'submit' | 'reset'\n): ButtonMetadata => {\n return { ...OutlineDefault(text, type), shape: 'round' };\n};\n\nexport const ClearDefaultFull = (\n text: string,\n type: 'button' | 'submit' | 'reset'\n): ButtonMetadata => {\n return { ...ClearDefault(text, type), expand: 'full' };\n};\n\nexport const ClearDefaultRoundFull = (\n text: string,\n type: 'button' | 'submit' | 'reset'\n): ButtonMetadata => {\n return { ...ClearDefaultRound(text, type), expand: 'full' };\n};\n\nexport const ClearDefaultBlock = (\n text: string,\n type: 'button' | 'submit' | 'reset'\n): ButtonMetadata => {\n return { ...ClearDefault(text, type), expand: 'block' };\n};\n\nexport const ClearDefaultRoundBlock = (\n text: string,\n type: 'button' | 'submit' | 'reset'\n): ButtonMetadata => {\n return { ...ClearDefaultRound(text, type), expand: 'block' };\n};\n\nexport const SolidDefaultFull = (\n text: string,\n type: 'button' | 'submit' | 'reset'\n): ButtonMetadata => {\n return { ...SolidDefault(text, type), expand: 'full' };\n};\n\nexport const SolidDefaultRoundFull = (\n text: string,\n type: 'button' | 'submit' | 'reset'\n): ButtonMetadata => {\n return { ...SolidDefaultRound(text, type), expand: 'full' };\n};\n\nexport const SolidDefaultBlock = (\n text: string,\n type: 'button' | 'submit' | 'reset'\n): ButtonMetadata => {\n return { ...SolidDefault(text, type), expand: 'block' };\n};\n\nexport const SolidDefaultRoundBlock = (\n text: string,\n type: 'button' | 'submit' | 'reset'\n): ButtonMetadata => {\n return { ...SolidDefaultRound(text, type), expand: 'block' };\n};\n\nexport const OutlineDefaultFull = (\n text: string,\n type: 'button' | 'submit' | 'reset'\n): ButtonMetadata => {\n return { ...OutlineDefault(text, type), expand: 'full' };\n};\n\nexport const OutlineDefaultRoundFull = (\n text: string,\n type: 'button' | 'submit' | 'reset'\n): ButtonMetadata => {\n return { ...OutlineDefaultRound(text, type), expand: 'full' };\n};\n\nexport const OutlineDefaultBlock = (\n text: string,\n type: 'button' | 'submit' | 'reset'\n): ButtonMetadata => {\n return { ...OutlineDefault(text, type), expand: 'block' };\n};\n\nexport const OutlineDefaultRoundBlock = (\n text: string,\n type: 'button' | 'submit' | 'reset'\n): ButtonMetadata => {\n return { ...OutlineDefaultRound(text, type), expand: 'block' };\n};\n\nexport const SolidDefaultButton = (text: string): ButtonMetadata => {\n return SolidDefault(text, 'button');\n};\n\nexport const SolidSmallButton = (text: string): ButtonMetadata => {\n return { ...SolidDefault(text, 'button'), size: 'small' };\n};\n\nexport const SolidLargeButton = (text: string): ButtonMetadata => {\n return { ...SolidDefault(text, 'button'), size: 'large' };\n};\n\nexport const SolidDefaultRoundButton = (text: string): ButtonMetadata => {\n return SolidDefaultRound(text, 'button');\n};\n\nexport const SolidSmallRoundButton = (text: string): ButtonMetadata => {\n return { ...SolidDefaultRound(text, 'button'), size: 'small' };\n};\n\nexport const SolidLargeRoundButton = (text: string): ButtonMetadata => {\n return { ...SolidDefaultRound(text, 'button'), size: 'large' };\n};\n\nexport const SolidFullButton = (text: string): ButtonMetadata => {\n return SolidDefaultFull(text, 'button');\n};\n\nexport const SolidBlockButton = (text: string): ButtonMetadata => {\n return SolidDefaultBlock(text, 'button');\n};\n\n/** PRIMARY */\n\nexport const PrimarySolidDefaultRoundButton = (text: string): ButtonMetadata => {\n return { ...SolidDefaultRoundButton(text), color: 'primary' };\n};\n\nexport const PrimarySolidDefaultRoundIconButton = (\n text: string,\n icon: IconMetada\n): ButtonMetadata => {\n return { ...PrimarySolidDefaultRoundButton(text), icon };\n};\n\nexport const PrimarySolidDefaultRoundHrefButton = (\n text: string,\n href: string,\n target: '_blank' | '_self' | '_parent' | '_top'\n): ButtonMetadata => {\n return { ...PrimarySolidDefaultRoundButton(text), href, target };\n};\n\nexport const PrimarySolidDefaultRoundIconHrefButton = (\n text: string,\n icon: IconMetada,\n href: string,\n target: '_blank' | '_self' | '_parent' | '_top'\n): ButtonMetadata => {\n return { ...PrimarySolidDefaultRoundIconButton(text, icon), href, target };\n};\n\nexport const PrimarySolidSmallRoundButton = (text: string): ButtonMetadata => {\n return { ...SolidSmallRoundButton(text), color: 'primary' };\n};\n\nexport const PrimarySolidSmallRoundIconButton = (\n text: string,\n icon: IconMetada\n): ButtonMetadata => {\n return { ...PrimarySolidSmallRoundButton(text), icon };\n};\n\nexport const PrimarySolidSmallRoundHrefButton = (\n text: string,\n href: string,\n target: '_blank' | '_self' | '_parent' | '_top'\n): ButtonMetadata => {\n return { ...PrimarySolidSmallRoundButton(text), href, target };\n};\n\nexport const PrimarySolidSmallRoundIconHrefButton = (\n text: string,\n icon: IconMetada,\n href: string,\n target: '_blank' | '_self' | '_parent' | '_top'\n): ButtonMetadata => {\n return { ...PrimarySolidSmallRoundIconButton(text, icon), href, target };\n};\n\nexport const PrimarySolidLargeRoundButton = (text: string): ButtonMetadata => {\n return { ...SolidLargeRoundButton(text), color: 'primary' };\n};\n\nexport const PrimarySolidLargeRoundIconButton = (\n text: string,\n icon: IconMetada\n): ButtonMetadata => {\n return { ...PrimarySolidLargeRoundButton(text), icon };\n};\n\nexport const PrimarySolidLargeRoundHrefButton = (\n text: string,\n href: string,\n target: '_blank' | '_self' | '_parent' | '_top'\n): ButtonMetadata => {\n return { ...PrimarySolidLargeRoundButton(text), href, target };\n};\n\nexport const PrimarySolidLargeRoundIconHrefButton = (\n text: string,\n icon: IconMetada,\n href: string,\n target: '_blank' | '_self' | '_parent' | '_top'\n): ButtonMetadata => {\n return { ...PrimarySolidLargeRoundIconButton(text, icon), href, target };\n};\n\nexport const PrimarySolidBlockButton = (text: string): ButtonMetadata => {\n return { ...SolidBlockButton(text), color: 'primary' };\n};\n\nexport const PrimarySolidBlockIconButton = (text: string, icon: IconMetada): ButtonMetadata => {\n return { ...PrimarySolidBlockButton(text), icon };\n};\n\nexport const PrimarySolidBlockHrefButton = (\n text: string,\n href: string,\n target: '_blank' | '_self' | '_parent' | '_top'\n): ButtonMetadata => {\n return { ...PrimarySolidBlockButton(text), href, target };\n};\n\nexport const PrimarySolidBlockIconHrefButton = (\n text: string,\n icon: IconMetada,\n href: string,\n target: '_blank' | '_self' | '_parent' | '_top'\n): ButtonMetadata => {\n return { ...PrimarySolidBlockIconButton(text, icon), href, target };\n};\n\nexport const PrimarySolidFullButton = (text: string): ButtonMetadata => {\n return { ...SolidFullButton(text), color: 'primary' };\n};\n\nexport const PrimarySolidFullIconButton = (text: string, icon: IconMetada): ButtonMetadata => {\n return { ...PrimarySolidFullButton(text), icon };\n};\n\nexport const PrimarySolidFullHrefButton = (\n text: string,\n href: string,\n target: '_blank' | '_self' | '_parent' | '_top'\n): ButtonMetadata => {\n return { ...PrimarySolidFullButton(text), href, target };\n};\n\nexport const PrimarySolidFullIconHrefButton = (\n text: string,\n icon: IconMetada,\n href: string,\n target: '_blank' | '_self' | '_parent' | '_top'\n): ButtonMetadata => {\n return { ...PrimarySolidFullIconButton(text, icon), href, target };\n};\n\n/** SECONDARY */\n\nexport const SecondarySolidDefaultRoundButton = (text: string): ButtonMetadata => {\n return { ...SolidDefaultRoundButton(text), color: 'secondary' };\n};\n\nexport const SecondarySolidDefaultRoundIconButton = (\n text: string,\n icon: IconMetada\n): ButtonMetadata => {\n return { ...SecondarySolidDefaultRoundButton(text), icon };\n};\n\nexport const SecondarySolidDefaultRoundHrefButton = (\n text: string,\n href: string,\n target: '_blank' | '_self' | '_parent' | '_top'\n): ButtonMetadata => {\n return { ...SecondarySolidDefaultRoundButton(text), href, target };\n};\n\nexport const SecondarySolidDefaultRoundIconHrefButton = (\n text: string,\n icon: IconMetada,\n href: string,\n target: '_blank' | '_self' | '_parent' | '_top'\n): ButtonMetadata => {\n return { ...SecondarySolidDefaultRoundIconButton(text, icon), href, target };\n};\n\nexport const SecondarySolidSmallRoundButton = (text: string): ButtonMetadata => {\n return { ...SolidSmallRoundButton(text), color: 'secondary' };\n};\n\nexport const SecondarySolidSmallRoundIconButton = (\n text: string,\n icon: IconMetada\n): ButtonMetadata => {\n return { ...SecondarySolidSmallRoundButton(text), icon };\n};\n\nexport const SecondarySolidSmallRoundHrefButton = (\n text: string,\n href: string,\n target: '_blank' | '_self' | '_parent' | '_top'\n): ButtonMetadata => {\n return { ...SecondarySolidSmallRoundButton(text), href, target };\n};\n\nexport const SecondarySolidSmallRoundIconHrefButton = (\n text: string,\n icon: IconMetada,\n href: string,\n target: '_blank' | '_self' | '_parent' | '_top'\n): ButtonMetadata => {\n return { ...SecondarySolidSmallRoundIconButton(text, icon), href, target };\n};\n\nexport const SecondarySolidLargeRoundButton = (text: string): ButtonMetadata => {\n return { ...SolidLargeRoundButton(text), color: 'secondary' };\n};\n\nexport const SecondarySolidLargeRoundIconButton = (\n text: string,\n icon: IconMetada\n): ButtonMetadata => {\n return { ...SecondarySolidLargeRoundButton(text), icon };\n};\n\nexport const SecondarySolidLargeRoundHrefButton = (\n text: string,\n href: string,\n target: '_blank' | '_self' | '_parent' | '_top'\n): ButtonMetadata => {\n return { ...SecondarySolidLargeRoundButton(text), href, target };\n};\n\nexport const SecondarySolidLargeRoundIconHrefButton = (\n text: string,\n icon: IconMetada,\n href: string,\n target: '_blank' | '_self' | '_parent' | '_top'\n): ButtonMetadata => {\n return { ...SecondarySolidLargeRoundIconButton(text, icon), href, target };\n};\n\nexport const SecondarySolidFullButton = (text: string): ButtonMetadata => {\n return { ...SolidFullButton(text), color: 'secondary' };\n};\n\nexport const SecondarySolidFullIconButton = (text: string, icon: IconMetada): ButtonMetadata => {\n return { ...SecondarySolidFullButton(text), icon };\n};\n\nexport const SecondarySolidFullHrefButton = (\n text: string,\n href: string,\n target: '_blank' | '_self' | '_parent' | '_top'\n): ButtonMetadata => {\n return { ...SecondarySolidFullButton(text), href, target };\n};\n\nexport const SecondarySolidFullIconHrefButton = (\n text: string,\n icon: IconMetada,\n href: string,\n target: '_blank' | '_self' | '_parent' | '_top'\n): ButtonMetadata => {\n return { ...SecondarySolidFullIconButton(text, icon), href, target };\n};\n\nexport const SecondarySolidBlockButton = (text: string): ButtonMetadata => {\n return { ...SolidBlockButton(text), color: 'secondary' };\n};\n\nexport const SecondarySolidBlockIconButton = (text: string, icon: IconMetada): ButtonMetadata => {\n return { ...SecondarySolidBlockButton(text), icon };\n};\n\nexport const SecondarySolidBlockHrefButton = (\n text: string,\n href: string,\n target: '_blank' | '_self' | '_parent' | '_top'\n): ButtonMetadata => {\n return { ...SecondarySolidBlockButton(text), href, target };\n};\n\nexport const SecondarySolidBlockIconHrefButton = (\n text: string,\n icon: IconMetada,\n href: string,\n target: '_blank' | '_self' | '_parent' | '_top'\n): ButtonMetadata => {\n return { ...SecondarySolidBlockIconButton(text, icon), href, target };\n};\n","import { Component, Input, OnInit } from '@angular/core';\nimport { IonText } from '@ionic/angular/standalone';\nimport { DisplayMetadata } from './types';\n\n@Component({\n selector: 'val-display',\n standalone: true,\n imports: [IonText],\n template: `\n <ion-text [color]=\"props.color\">\n <p [class]=\"props.size\">\n {{ props.content }}\n </p>\n </ion-text>\n `,\n styleUrls: ['./display.component.scss'],\n})\nexport class DisplayComponent implements OnInit {\n @Input()\n props: DisplayMetadata;\n\n constructor() {}\n\n ngOnInit() {}\n}\n","import { CommonModule } from '@angular/common';\nimport { Component, Input, OnInit } from '@angular/core';\nimport { DividerMetadata } from './types';\n\n//TODO: fix the class name colission between medium size and medium color\n@Component({\n selector: 'val-divider',\n standalone: true,\n imports: [CommonModule],\n template: ` <div [ngClass]=\"['divider', props.size, props.color, props.fill]\"></div> `,\n styleUrls: ['./divider.component.scss'],\n})\nexport class DividerComponent implements OnInit {\n @Input()\n props: DividerMetadata;\n constructor() {}\n\n ngOnInit() {}\n}\n","import { CommonModule } from '@angular/common';\nimport { Component, EventEmitter, Input, OnInit, Output } from '@angular/core';\nimport { DownloadService } from '../../../services/download.service';\nimport { HrefMetadata } from './types';\n\n@Component({\n selector: 'val-href',\n standalone: true,\n imports: [CommonModule],\n template: `\n <a\n [ngClass]=\"[props.color]\"\n [class.hoverable]=\"props.hoverable\"\n [href]=\"props.url\"\n target=\"_blank\"\n (click)=\"onClickHandler($event)\"\n >{{ props.text }}</a\n >\n `,\n styleUrls: ['./href.component.scss'],\n})\nexport class HrefComponent implements OnInit {\n @Input() props: HrefMetadata;\n\n @Output()\n onClick = new EventEmitter<string>();\n\n constructor(private downloadService: DownloadService) {}\n\n ngOnInit() {}\n\n getFileName() {\n return this.downloadService.getFileNameFromUrl(this.props.url);\n }\n\n onClickHandler(event: MouseEvent) {\n if (this.props.download && this.props.url) {\n event.preventDefault();\n this.downloadService.downloadLinkFromBrowser(this.props.url);\n }\n this.onClick.emit(this.props.token);\n }\n}\n","import { CommonModule } from '@angular/common';\nimport { Component, Input, OnInit } from '@angular/core';\nimport { IonIcon } from '@ionic/angular/standalone';\nimport { IconService } from '../../../services/icons.service';\nimport { IconMetadata } from './types';\n\n@Component({\n selector: 'val-icon',\n standalone: true,\n imports: [CommonModule, IonIcon],\n template: ` <ion-icon aria-hidden=\"true\" [ngClass]=\"[props.size]\" [name]=\"props.name\" [color]=\"props.color\" /> `,\n styleUrls: ['./icon.component.scss'],\n})\nexport class IconComponent implements OnInit {\n @Input()\n props: IconMetadata;\n\n constructor(service: IconService) {}\n\n ngOnInit() {}\n}\n","import { CommonModule } from '@angular/common';\nimport { Component, Input, OnInit } from '@angular/core';\nimport { ImageMetadata } from './types';\n\n@Component({\n selector: 'val-image',\n standalone: true,\n imports: [CommonModule],\n template: `\n <img\n [ngClass]=\"['image', props.mode, props.size]\"\n [class.bordered]=\"props.bordered\"\n [class.shaded]=\"props.shaded\"\n [class.limited]=\"props.limited\"\n [class.visible]=\"available\"\n [src]=\"props.src\"\n [alt]=\"props.alt\"\n [style.width.px]=\"props.width\"\n [style.max-width.px]=\"props.width\"\n [style.height.px]=\"props.height\"\n />\n `,\n styleUrls: ['./image.component.scss'],\n})\nexport class ImageComponent implements OnInit {\n @Input()\n props: ImageMetadata;\n\n available: boolean = true;\n\n constructor() {}\n\n ngOnInit() {}\n\n changeToVisible() {\n setInterval(() => {\n this.available = true;\n }, 100);\n }\n}\n","import { CommonModule } from '@angular/common';\nimport { Component, Input, OnInit } from '@angular/core';\nimport { IonProgressBar } from '@ionic/angular/standalone';\nimport { ProgressBarMetadata } from './types';\n\n@Component({\n selector: 'val-progress-bar',\n standalone: true,\n imports: [CommonModule, IonProgressBar],\n template: `\n <ion-progress-bar\n [ngClass]=\"[props.size]\"\n [class.rounded]=\"props.rounded\"\n [value]=\"props.progress\"\n [color]=\"props.color\"\n [buffer]=\"props.buffer\"\n [type]=\"props.type\"\n ></ion-progress-bar>\n `,\n styleUrls: ['./progress-bar.component.scss'],\n})\nexport class ProgressBarComponent implements OnInit {\n @Input()\n props: ProgressBarMetadata;\n\n constructor() {}\n\n ngOnInit() {}\n}\n","import { Component, Input, OnInit } from '@angular/core';\nimport { IonText } from '@ionic/angular/standalone';\nimport { TextMetadata } from './types';\n\n@Component({\n selector: 'val-text',\n standalone: true,\n imports: [IonText],\n template: `\n <ion-text [color]=\"props.color\">\n <p [class]=\"props.size\" [class.bold]=\"props.bold\">{{ props.content }}</p>\n </ion-text>\n `,\n styleUrls: ['./text.component.scss'],\n})\nexport class TextComponent implements OnInit {\n @Input()\n props: TextMetadata;\n\n constructor() {}\n\n ngOnInit() {}\n}\n","import { NgIf } from '@angular/common';\nimport { Component, Input, OnInit } from '@angular/core';\nimport { IonText } from '@ionic/angular/standalone';\nimport { TitleMetadata } from './types';\n\n@Component({\n selector: 'val-title',\n standalone: true,\n imports: [NgIf, IonText],\n template: `\n <ion-text [color]=\"props.color\">\n <p *ngIf=\"!props.bold\" [class]=\"props.size\">{{ props.content }}</p>\n <b *ngIf=\"props.bold\">\n <p [class]=\"props.size\">{{ props.content }}</p>\n </b>\n </ion-text>\n `,\n styleUrls: ['./title.component.scss'],\n})\nexport class TitleComponent implements OnInit {\n @Input()\n props: TitleMetadata;\n\n constructor() {}\n\n ngOnInit() {}\n}\n","import { Component, Input, OnInit } from '@angular/core';\nimport { BoxComponent } from '../../atoms/box/box.component';\nimport { IconComponent } from '../../atoms/icon/icon.component';\nimport { TextComponent } from '../../atoms/text/text.component';\nimport { AlertBoxMetadata } from './types';\n\n@Component({\n selector: 'val-alert-box',\n standalone: true,\n imports: [BoxComponent, IconComponent, TextComponent],\n template: `\n <val-box [props]=\"props.box\">\n <div class=\"content-container\" body>\n <val-icon [props]=\"props.icon\"></val-icon>\n <val-text class=\"text\" [props]=\"props.text\"></val-text>\n </div>\n </val-box>\n `,\n styleUrls: ['./alert-box.component.scss'],\n})\nexport class AlertBoxComponent implements OnInit {\n @Input()\n props: AlertBoxMetadata;\n\n constructor() {}\n\n ngOnInit() {}\n}\n","import { CommonModule } from '@angular/common';\nimport { Component, EventEmitter, Input, OnInit, Output } from '@angular/core';\nimport { ButtonGroupMetadata } from './types';\nimport { ButtonComponent } from '../../atoms/button/button.component';\n\n@Component({\n selector: 'val-button-group',\n standalone: true,\n imports: [CommonModule, ButtonComponent],\n template: `\n <div [ngClass]=\"['group-container', Position]\" [class.column]=\"props.columned\" style=\"width: 100%;\">\n <val-button\n *ngFor=\"let b of props.buttons\"\n [props]=\"b\"\n (onClick)=\"clickHandler(b?.token)\"\n [ngStyle]=\"{ width: props.buttons.length === 1 ? '100%' : 'auto' }\"\n ></val-button>\n </div>\n `,\n styleUrls: ['./button-group.component.scss'],\n})\nexport class ButtonGroupComponent implements OnInit {\n @Input()\n props: ButtonGroupMetadata;\n\n @Output()\n onClick = new EventEmitter<string>();\n\n constructor() {}\n\n ngOnInit() {}\n\n clickHandler(token?: string) {\n this.onClick.emit(token);\n }\n\n get Position(): string {\n if (this.props.buttons.length === 1 && this.props.position === 'spaced') {\n return 'right';\n }\n\n return this.props.position;\n }\n}\n","import { ButtonMetadata, ToolbarAction } from '../../types';\n\nexport enum CardType {\n native = 'native',\n checker = 'checker',\n tappable = 'tappable',\n complex = 'complex',\n}\n\nexport interface CardClickEvent {\n section: CardSection;\n token?: string;\n}\n\nexport enum CardSection {\n headerLeft,\n headerRight,\n content,\n footer,\n footerExtra,\n}\n\nexport interface CardMetadata {\n token?: string;\n type: CardType;\n title?: string;\n overtitle?: string;\n content?: string;\n image?: string;\n footerActions: ButtonMetadata[];\n footerComplexActions: ToolbarAction[];\n leftActions: ToolbarAction[];\n rightActions: ToolbarAction[];\n selected: boolean;\n headerText?: string;\n}\n","import { CommonModule } from '@angular/common';\nimport { Component, EventEmitter, Input, OnInit, Output } from '@angular/core';\nimport {\n IonButton,\n IonButtons,\n IonCard,\n IonCardContent,\n IonCardHeader,\n IonCardSubtitle,\n IonCardTitle,\n IonCheckbox,\n IonIcon,\n} from '@ionic/angular/standalone';\nimport { AvatarComponent } from '../../atoms/avatar/avatar.component';\nimport { ButtonComponent } from '../../atoms/button/button.component';\nimport { ImageComponent } from '../../atoms/image/image.component';\nimport { TextComponent } from '../../atoms/text/text.component';\nimport { ToolbarActionType } from '../../types';\nimport { CardClickEvent, CardMetadata, CardSection, CardType } from './types';\n\n@Component({\n selector: 'val-card',\n standalone: true,\n imports: [\n CommonModule,\n ButtonComponent,\n AvatarComponent,\n ImageComponent,\n TextComponent,\n IonCard,\n IonCardContent,\n IonCardHeader,\n IonCardTitle,\n IonCardSubtitle,\n IonCheckbox,\n IonButtons,\n IonButton,\n IonIcon,\n ],\n template: `\n <ion-card *ngIf=\"props.type === types.native\">\n <img alt=\"image\" [src]=\"props.image\" />\n <ion-card-header *ngIf=\"props.title || props.overtitle\">\n <ion-card-title *ngIf=\"props.title\">{{ props.title }}</ion-card-title>\n <ion-card-subtitle *ngIf=\"props.overtitle\">{{ props.overtitle }}</ion-card-subtitle>\n </ion-card-header>\n\n <ion-card-content *ngIf=\"props.content\">{{ props.content }}</ion-card-content>\n\n <val-button\n *ngFor=\"let b of props.footerActions\"\n [props]=\"b\"\n (onClick)=\"clickHandler(sections.footer, b.token)\"\n ></val-button>\n </ion-card>\n\n <ion-card\n *ngIf=\"props.type === types.tappable\"\n (click)=\"clickHandler(sections.content, props.token)\"\n class=\"tapable\"\n >\n <img alt=\"image\" [src]=\"props.image\" />\n <ion-card-header *ngIf=\"props.title || props.overtitle\">\n <ion-card-title *ngIf=\"props.title\">{{ props.title }}</ion-card-title>\n <ion-card-subtitle *ngIf=\"props.overtitle\">{{ props.overtitle }}</ion-card-subtitle>\n </ion-card-header>\n\n <ion-card-content *ngIf=\"props.content\">{{ props.content }}</ion-card-content>\n </ion-card>\n\n <ion-card\n *ngIf=\"props.type === types.checker\"\n (click)=\"clickHandler(sections.content, props.token)\"\n class=\"tapable\"\n >\n <ion-card-header *ngIf=\"props.title || props.overtitle\" class=\"checker\">\n <div>\n <ion-card-subtitle *ngIf=\"props.overtitle\">{{ props.overtitle }}</ion-card-subtitle>\n <ion-card-title *ngIf=\"props.title\">{{ props.title }}</ion-card-title>\n </div>\n <div>\n <ion-checkbox [checked]=\"props.selected\"></ion-checkbox>\n </div>\n </ion-card-header>\n\n <ion-card-content *ngIf=\"props.content\">{{ props.content }}</ion-card-content>\n </ion-card>\n\n <ion-card *ngIf=\"props.type === types.complex\" class=\"complex\">\n <ion-card-header class=\"complex-header\">\n <ion-buttons style=\"display: flex; align-items: center\" *ngIf=\"props.leftActions.length > 0\">\n <ng-container *ngFor=\"let action of props.leftActions\">\n <ion-button\n *ngIf=\"action.type === actionTypes.ICON\"\n (click)=\"clickHandler(sections.headerLeft, action.token)\"\n >\n <ion-icon slot=\"icon-only\" [name]=\"action.description\" color=\"dark\"></ion-icon>\n </ion-button>\n <val-avatar\n style=\"margin-right: 4px; cursor: pointer\"\n *ngIf=\"action.type === actionTypes.AVATAR\"\n [props]=\"{ size: 'small', image: action.description, default: '' }\"\n (onClick)=\"clickHandler(sections.headerLeft, action.token)\"\n ></val-avatar>\n <val-image\n *ngIf=\"action.type === actionTypes.IMAGE\"\n [props]=\"action.image\"\n (click)=\"clickHandler(sections.headerLeft, action.token)\"\n ></val-image>\n <ion-button\n *ngIf=\"action.type === actionTypes.BUTTON\"\n (click)=\"clickHandler(sections.headerLeft, action.token)\"\n >\n {{ action.description }}\n </ion-button>\n <div *ngIf=\"props.headerText\">\n <val-text [props]=\"{ content: props.headerText, color: 'dark', bold: true, size: 'medium' }\" />\n </div>\n </ng-container>\n </ion-buttons>\n <ion-buttons style=\"display: flex; align-items: center\" *ngIf=\"props.rightActions.length > 0\">\n <ng-container *ngFor=\"let action of props.rightActions\">\n <ion-button\n *ngIf=\"action.type === actionTypes.ICON\"\n (click)=\"clickHandler(sections.headerRight, action.token)\"\n >\n <ion-icon slot=\"icon-only\" [name]=\"action.description\" color=\"dark\"></ion-icon>\n </ion-button>\n <val-avatar\n style=\"margin-right: 4px; cursor: pointer\"\n *ngIf=\"action.type === actionTypes.AVATAR\"\n [props]=\"{ size: 'small', image: action.description, default: '' }\"\n (onClick)=\"clickHandler(sections.headerRight, action.token)\"\n ></val-avatar>\n <val-image\n *ngIf=\"action.type === actionTypes.IMAGE\"\n [props]=\"action.image\"\n (click)=\"clickHandler(sections.headerRight, action.token)\"\n ></val-image>\n <ion-button\n *ngIf=\"action.type === actionTypes.BUTTON\"\n (click)=\"clickHandler(sections.headerRight, action.token)\"\n >\n {{ action.description }}\n </ion-button>\n </ng-container>\n </ion-buttons>\n </ion-card-header>\n\n <div class=\"tapable\" (click)=\"clickHandler(sections.content, props.token)\">\n <ion-card-header *ngIf=\"props.title || props.overtitle\" class=\"complex-header\">\n <div>\n <ion-card-subtitle *ngIf=\"props.overtitle\">{{ props.overtitle }}</ion-card-subtitle>\n <ion-card-title *ngIf=\"props.title\">{{ props.title }}</ion-card-title>\n </div>\n </ion-card-header>\n\n <img alt=\"image\" [src]=\"props.image\" />\n <ion-card-content *ngIf=\"props.content\" class=\"complex-content\">{{ props.content }}</ion-card-content>\n </div>\n <val-button\n *ngFor=\"let b of props.footerActions\"\n [props]=\"b\"\n (onClick)=\"clickHandler(sections.footer, b.token)\"\n ></val-button>\n <ion-buttons\n style=\"display: flex; align-items: center; justify-content: flex-end; margin: 8px\"\n *ngIf=\"props.footerComplexActions.length > 0\"\n >\n <ng-container *ngFor=\"let action of props.footerComplexActions\">\n <ion-button\n *ngIf=\"action.type === actionTypes.ICON\"\n (click)=\"clickHandler(sections.footerExtra, action.token)\"\n >\n <ion-icon slot=\"icon-only\" [name]=\"action.description\" color=\"dark\"></ion-icon>\n </ion-button>\n <val-avatar\n style=\"margin-right: 4px; cursor: pointer\"\n *ngIf=\"action.type === actionTypes.AVATAR\"\n [props]=\"{ size: 'small', image: action.description, default: '' }\"\n (onClick)=\"clickHandler(sections.footerExtra, action.token)\"\n ></val-avatar>\n <val-image\n *ngIf=\"action.type === actionTypes.IMAGE\"\n [props]=\"action.image\"\n (click)=\"clickHandler(sections.footerExtra, action.token)\"\n ></val-image>\n <ion-button\n *ngIf=\"action.type === actionTypes.BUTTON\"\n (click)=\"clickHandler(sections.footerExtra, action.token)\"\n color=\"dark\"\n >\n {{ action.description }}\n </ion-button>\n </ng-container>\n </ion-buttons>\n </ion-card>\n `,\n styleUrls: ['./card.component.scss'],\n})\nexport class CardComponent implements OnInit {\n @Input() props: CardMetadata;\n\n @Output()\n onClick = new EventEmitter<CardClickEvent>();\n\n types = CardType;\n actionTypes = ToolbarActionType;\n sections = CardSection;\n\n constructor() {}\n\n ngOnInit() {}\n\n clickHandler(section: CardSection, token?: string) {\n this.onClick.emit({ section, token });\n }\n}\n","import { CommonModule } from '@angular/common';\nimport { Component, OnInit } from '@angular/core';\nimport { IonCheckbox } from '@ionic/angular/standalone';\n\n@Component({\n selector: 'val-check-input',\n standalone: true,\n imports: [CommonModule, IonCheckbox],\n template: ` <ion-checkbox>I agree to the terms and conditions</ion-checkbox> `,\n styleUrls: ['./check-input.component.scss'],\n})\nexport class CheckInputComponent implements OnInit {\n constructor() {}\n\n ngOnInit() {}\n}\n","import { CommonModule } from '@angular/common';\nimport { Component, Input, OnInit } from '@angular/core';\nimport { ReactiveFormsModule } from '@angular/forms';\nimport { IonCheckbox, IonTextarea } from '@ionic/angular/standalone';\nimport { InputMetadata } from '../../types';\n\n@Component({\n selector: 'val-comment-input',\n standalone: true,\n imports: [CommonModule, ReactiveFormsModule, IonCheckbox, IonTextarea],\n template: `\n <ion-textarea [formControl]=\"props.control\" [counter]=\"true\" [maxlength]=\"props.range.max\"></ion-textarea>\n `,\n styleUrls: ['./comment-input.component.scss'],\n})\nexport class CommentInputComponent implements OnInit {\n @Input() props: InputMetadata;\n\n constructor() {}\n\n ngOnInit() {}\n}\n","import { CommonModule } from '@angular/common';\nimport { Component, Input, OnInit } from '@angular/core';\nimport { IonSpinner, IonText } from '@ionic/angular/standalone';\nimport { ContentLoaderMetadata } from './types';\n\n@Component({\n selector: 'val-content-loader',\n standalone: true,\n imports: [CommonModule, IonSpinner, IonText],\n template: `\n <div [ngClass]=\"['spinner-wrapper', props.size]\">\n <ion-spinner [ngClass]=\"[props.size]\" [name]=\"props.name\" [color]=\"props.color\"></ion-spinner>\n <ion-text [color]=\"props.color\">\n <p>{{ props.text }}</p>\n </ion-text>\n </div>\n `,\n styleUrls: ['./content-loader.component.scss'],\n})\nexport class ContentLoaderComponent implements OnInit {\n @Input()\n props: ContentLoaderMetadata;\n\n constructor() {}\n\n ngOnInit() {}\n}\n","import { CommonModule } from '@angular/common';\nimport { Component, Input, OnInit } from '@angular/core';\nimport { ReactiveFormsModule } from '@angular/forms';\nimport { IonDatetime, IonDatetimeButton, IonModal } from '@ionic/angular/standalone';\nimport { InputMetadata } from '../../types';\n\n@Component({\n selector: 'val-date-input',\n standalone: true,\n imports: [CommonModule, ReactiveFormsModule, IonDatetime, IonDatetimeButton, IonModal],\n template: `\n <div class=\"button-container\">\n <ion-datetime-button class=\"action\" datetime=\"datetime\"></ion-datetime-button>\n </div>\n <ion-modal [keepContentsMounted]=\"true\">\n <ng-template>\n <ion-datetime\n [formControl]=\"props.control\"\n id=\"datetime\"\n presentation=\"date\"\n locale=\"es-ES\"\n [firstDayOfWeek]=\"1\"\n [showDefaultButtons]=\"true\"\n doneText=\"Aceptar\"\n cancelText=\"Cancelar\"\n formatOptions=\"{\n date: { weekday: 'short', month: 'long', day: '2-digit' },\n time: {\n hour: '2-digit',\n minute: '2-digit',\n },\n }\"\n >\n <span slot=\"title\">{{ props.hint }}</span>\n </ion-datetime>\n </ng-template>\n </ion-modal>\n `,\n styleUrls: ['./date-input.component.scss'],\n})\nexport class DateInputComponent implements OnInit {\n @Input() props: InputMetadata;\n\n constructor() {}\n\n ngOnInit() {}\n}\n","import { CommonModule } from '@angular/common';\nimport { Component, Input, OnInit } from '@angular/core';\nimport { ReactiveFormsModule } from '@angular/forms';\nimport { IonInput } from '@ionic/angular/standalone';\nimport { InputMetadata } from '../../types';\n\n@Component({\n selector: 'val-email-input',\n standalone: true,\n imports: [CommonModule, ReactiveFormsModule, IonInput],\n template: ` <ion-input [formControl]=\"props.control\" type=\"email\" [placeholder]=\"props.placeholder\"></ion-input> `,\n styleUrls: ['./email-input.component.scss'],\n})\nexport class EmailInputComponent implements OnInit {\n @Input() props: InputMetadata;\n\n constructor() {}\n\n ngOnInit() {}\n}\n","export function resolveColor(color: string): string {\n // Si el color empieza con \"--\", se asume que es una variable CSS válida\n if (color.startsWith('--')) {\n return `var(${color})`;\n }\n\n // Lista de colores predefinidos de Ionic\n const ionicColors = [\n 'primary',\n 'secondary',\n 'tertiary',\n 'success',\n 'warning',\n 'danger',\n 'light',\n 'medium',\n 'dark',\n ];\n\n // Verificar si el color es un color de Ionic\n if (ionicColors.includes(color)) {\n return `var(--ion-color-${color})`;\n }\n\n // Si no es una variable CSS ni un color de Ionic, devolver el color tal cual\n return color;\n}\n","import { Component, Input } from '@angular/core';\nimport { IonText } from '@ionic/angular/standalone';\nimport { ExpandableTextInput } from './types';\nimport { resolveColor } from '../../../shared/utils/styles';\n\n@Component({\n selector: 'val-expandable-text',\n standalone: true,\n imports: [IonText],\n template: `\n <div class=\"description-container\" [class.expanded]=\"expanded\" [class.has-gradient]=\"!expanded && isTruncated\">\n <ion-text>\n <p class=\"description\">\n <span class=\"content\">{{ expanded ? props.content : truncatedText }}</span>\n @if (!expanded && isTruncated) {\n <span class=\"see-more\" [style.color]=\"this.color()\" (click)=\"toggleExpand()\">\n {{ props.expandText || 'ver más' }}\n </span>\n }\n </p>\n </ion-text>\n </div>\n `,\n styles: [\n `\n .description-container {\n position: relative;\n overflow: hidden;\n max-height: 10rem; /* Altura para texto truncado */\n transition: max-height 0.3s ease-in-out;\n }\n\n .description-container.expanded {\n max-height: none; /* Sin límite de altura al expandir */\n }\n\n .description {\n position: relative;\n overflow: hidden;\n text-overflow: ellipsis;\n }\n\n .description-container:not(.expanded) .description::after {\n content: '';\n position: absolute;\n bottom: 0;\n left: 0;\n right: 0;\n height: 3.5rem; /* Altura del gradiente */\n background: linear-gradient(to top, var(--ion-background-color), rgba(255, 255, 255, 0));\n pointer-events: none; /* Ignorar interacciones en el gradiente */\n }\n\n .description-container:not(.has-gradient) .description::after {\n background: transparent; /* Fondo transparente si no hay gradiente */\n }\n\n .see-more {\n position: relative;\n font-weight: bold;\n cursor: pointer;\n z-index: 1;\n margin-left: 0.3rem;\n }\n `,\n ],\n})\nexport class ExpandableTextComponent {\n @Input() props: ExpandableTextInput;\n expanded = false;\n defaultColor = 'primary';\n\n get truncatedText(): string {\n const maxLength = this.props.limit || 100; // Longitud por defecto\n return this.props.content?.length > maxLength ? this.props.content.slice(0, maxLength) + '...' : this.props.content;\n }\n\n get isTruncated(): boolean {\n return this.props.content?.length > (this.props.limit || 100);\n }\n\n toggleExpand() {\n this.expanded = !this.expanded;\n }\n\n color() {\n return resolveColor(this.props.color || this.defaultColor);\n }\n}\n","import { Component, Input, OnInit, ViewChild } from '@angular/core';\nimport { IonIcon } from '@ionic/angular/standalone';\nimport { ButtonComponent } from '../../atoms/button/button.component';\nimport { PrimarySolidDefaultRoundButton } from '../../atoms/button/factory';\nimport { TextComponent } from '../../atoms/text/text.component';\nimport { ButtonMetadata, InputMetadata } from '../../types';\n\n@Component({\n selector: 'val-file-input',\n standalone: true,\n imports: [IonIcon, TextComponent, ButtonComponent],\n template: `\n <div class=\"file-container\">\n <input style=\"display: none\" type=\"file\" (change)=\"onFileSelected($event)\" #fileInput />\n <div class=\"name-container\">\n <ion-icon [name]=\"selectedFile ? 'checkmark-circle-outline' : 'alert-circle-outline'\"></ion-icon>\n <val-text\n style=\"margin-left: 4px;\"\n [props]=\"{\n content: selectedFile ? selectedFile.name : 'No has seleccionado archivo',\n color: 'dark',\n bold: false,\n size: 'medium',\n }\"\n ></val-text>\n </div>\n <val-button [props]=\"contrastButton\" (onClick)=\"fileInput.click()\"></val-button>\n </div>\n `,\n styleUrls: ['./file-input.component.scss'],\n})\nexport class FileInputComponent implements OnInit {\n @ViewChild('fileInput') fileInput;\n\n @Input() props: InputMetadata;\n\n contrastButton: ButtonMetadata = {\n ...PrimarySolidDefaultRoundButton('Subir archivo'),\n color: 'light',\n };\n selectedFile: File;\n\n constructor() {}\n\n ngOnInit() {}\n\n onFileSelected(event): void {\n this.selectedFile = event.target.files[0];\n this.props.control.setValue(this.selectedFile);\n }\n\n reset(): void {\n this.selectedFile = null;\n this.fileInput.nativeElement.value = '';\n }\n}\n","import { CommonModule } from '@angular/common';\nimport { Component, Input, OnInit } from '@angular/core';\nimport { TextComponent } from '../../atoms/text/text.component';\nimport { InputMetadata } from '../../types';\n\n@Component({\n selector: 'val-hint',\n standalone: true,\n imports: [CommonModule, TextComponent],\n template: `\n <div class=\"hint-container\" *ngIf=\"props.control.invalid && (props.control.touched || props.control.dirty)\">\n <val-text\n *ngFor=\"let e of Errors\"\n [props]=\"{\n content: e,\n color: 'danger',\n bold: false,\n size: 'small',\n }\"\n ></val-text>\n </div>\n `,\n styleUrls: ['./hint.component.scss'],\n})\nexport class HintComponent implements OnInit {\n @Input() props: InputMetadata;\n\n constructor() {}\n\n ngOnInit() {}\n\n get Errors(): string[] {\n const keys = Object.keys(this.props.errors);\n const errors = [];\n keys.map((e: string) => {\n if (this.props.control.hasError(e)) {\n errors.push(this.props.errors[e]);\n }\n });\n return errors;\n }\n}\n","import { Component, Input, OnInit } from '@angular/core';\nimport { FormControl, ReactiveFormsModule } from '@angular/forms';\nimport { IonDatetime } from '@ionic/angular/standalone';\nimport { InputMetadata } from '../../types';\n\n@Component({\n selector: 'val-hour-input',\n standalone: true,\n imports: [ReactiveFormsModule, IonDatetime],\n template: ` <ion-datetime [formControl]=\"props.control\" presentation=\"time\"></ion-datetime>`,\n styleUrls: ['./hour-input.component.scss'],\n})\nexport class HourInputComponent implements OnInit {\n @Input() props: InputMetadata;\n\n constructor() {}\n\n ngOnInit() {}\n}\n","/* eslint-disable no-underscore-dangle */\n\nimport { Injectable } from '@angular/core';\nimport { Browser, OpenOptions } from '@capacitor/browser';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class InAppBrowserService {\n options: OpenOptions = {\n presentationStyle: 'popover',\n url: '',\n };\n constructor() {}\n\n async openWithInAppBrowser(url: string) {\n await Browser.open({ ...this.options, url });\n }\n}\n","import { inject, Injectable } from '@angular/core';\nimport { NavigationExtras, Router } from '@angular/router';\nimport { InAppBrowserService } from './in-app-browser.service';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class NavigationService {\n data: any;\n router = inject(Router);\n inAppBrowser = inject(InAppBrowserService);\n\n constructor() {}\n\n navigateInApp(url: string) {\n this.inAppBrowser.openWithInAppBrowser(url);\n }\n\n navigateWithData(route: string, dataTransfer: any) {\n const navigationExtras: NavigationExtras = {\n state: {\n data: dataTransfer,\n },\n };\n\n this.router.navigate([route], navigationExtras);\n }\n\n navigateByUrl(url: string) {\n this.router\n .navigateByUrl(url)\n .then(response => {})\n .catch(error => {});\n }\n\n openInNewTab(url: string): void {\n window.open(url, '_blank', 'noopener,noreferrer');\n }\n}\n","import { Component, EventEmitter, inject, Input, OnInit, Output } from '@angular/core';\nimport { IonButton, IonIcon, IonText } from '@ionic/angular/standalone';\nimport { addIcons } from 'ionicons';\nimport { chevronForwardOutline } from 'ionicons/icons';\nimport { NavigationService } from '../../../services/navigation.service';\nimport { LinkMetadata } from './types';\n\n@Component({\n selector: 'val-link',\n standalone: true,\n imports: [IonButton, IonIcon, IonText],\n template: `\n <div>\n <ion-button type=\"button\" [color]=\"props.color\" fill=\"clear\" [size]=\"props.size\" (click)=\"onClickHandler()\">\n <ion-icon slot=\"end\" name=\"chevron-forward-outline\"></ion-icon>\n <ion-text>{{ props.text }}</ion-text>\n </ion-button>\n </div>\n `,\n styleUrls: ['./link.component.scss'],\n})\nexport class LinkComponent implements OnInit {\n @Input()\n props: LinkMetadata;\n\n @Output()\n onClick = new EventEmitter<string>();\n\n service = inject(NavigationService);\n\n constructor() {\n addIcons({ chevronForwardOutline });\n }\n\n ngOnInit() {}\n\n onClickHandler() {\n this.onClick.emit(this.props.token);\n\n switch (this.props.type) {\n case 'internal':\n this.service.navigateByUrl(this.props.link);\n break;\n case 'browse':\n this.service.navigateInApp(this.props.link);\n break;\n case 'tab':\n this.service.openInNewTab(this.props.link);\n break;\n }\n }\n}\n","import { CommonModule } from '@angular/common';\nimport { Component, Input, OnInit } from '@angular/core';\nimport { HrefComponent } from '../../atoms/href/href.component';\nimport { TitleComponent } from '../../atoms/title/title.component';\nimport { LinkCakeMetadata } from './types';\n\n@Component({\n selector: 'val-links-cake',\n standalone: true,\n imports: [CommonModule, TitleComponent, HrefComponent],\n template: `\n <div>\n @if (props.title) {\n <div class=\"title\">\n <val-title [props]=\"{ content: props.title, color: 'dark', bold: false, size: props.size }\"></val-title>\n </div>\n }\n <div class=\"link\" *ngFor=\"let l of props.links\">\n <val-href [props]=\"l\"></val-href>\n </div>\n </div>\n `,\n styleUrls: ['./links-cake.component.scss'],\n})\nexport class LinksCakeComponent implements OnInit {\n @Input()\n props: LinkCakeMetadata;\n\n constructor() {}\n\n ngOnInit() {}\n}\n","import { CommonModule } from '@angular/common';\nimport { Component, Input, OnInit } from '@angular/core';\nimport { BoxComponent } from '../../atoms/box/box.component';\nimport { TextComponent } from '../../atoms/text/text.component';\nimport { NotesBoxMetadata } from './types';\n\n@Component({\n selector: 'val-notes-box',\n standalone: true,\n imports: [CommonModule, BoxComponent, TextComponent],\n template: `\n <val-box [props]=\"{ icon: '', bordered: false, color: props.color, leftBorder: true, rounded: props.rounded }\">\n <div [ngClass]=\"['content-container', props.size]\" body>\n @if (props.prefix) {\n <val-text\n [props]=\"{ content: props.prefix, color: props.textColor, bold: true, size: props.size }\"\n ></val-text>\n }\n <val-text [props]=\"{ content: props.text, color: props.textColor, bold: false, size: props.size }\"></val-text>\n </div>\n </val-box>\n `,\n styleUrls: ['./notes-box.component.scss'],\n})\nexport class NotesBoxComponent implements OnInit {\n @Input()\n props: NotesBoxMetadata;\n\n constructor() {}\n\n ngOnInit() {}\n}\n","import { Component, Input, OnInit } from '@angular/core';\nimport { ReactiveFormsModule } from '@angular/forms';\nimport { IonInput } from '@ionic/angular/standalone';\nimport { InputMetadata } from '../../types';\n\n@Component({\n selector: 'val-number-input',\n standalone: true,\n imports: [ReactiveFormsModule, IonInput],\n template: ` <ion-input [formControl]=\"props.control\" type=\"number\" [placeholder]=\"props.placeholder\"></ion-input> `,\n styleUrls: ['./number-input.component.scss'],\n})\nexport class NumberInputComponent implements OnInit {\n @Input() props: InputMetadata;\n\n constructor() {}\n\n ngOnInit() {}\n}\n","import { Component, Input, OnInit } from '@angular/core';\nimport { ReactiveFormsModule } from '@angular/forms';\nimport { IonButton, IonIcon, IonInput } from '@ionic/angular/standalone';\nimport { InputMetadata } from '../../types';\nimport { IconService } from '../../../services/icons.service';\n\n@Component({\n selector: 'val-password-input',\n standalone: true,\n imports: [ReactiveFormsModule, IonInput, IonButton, IonIcon],\n template: `\n <div class=\"input-container\">\n <ion-input\n class=\"sign-in__input-password\"\n [formControl]=\"props.control\"\n [type]=\"hidePassword ? 'password' : 'text'\"\n [placeholder]=\"props.placeholder\"\n ></ion-input>\n <ion-button color=\"dark\" fill=\"clear\" (click)=\"hidePassword = !hidePassword\" size=\"small\">\n <ion-icon slot=\"icon-only\" [name]=\"hidePassword ? 'eye-off-outline' : 'eye-outline'\"></ion-icon>\n </ion-button>\n </div>\n `,\n styleUrls: ['./password-input.component.scss'],\n})\nexport class PasswordInputComponent implements OnInit {\n @Input() props: InputMetadata;\n\n hidePassword = true;\n\n constructor(\n icon: IconService,\n ) {}\n\n ngOnInit() {}\n}\n","import { Component, Input, OnInit, ViewChild } from '@angular/core';\nimport { NgOtpInputComponent, NgOtpInputConfig, NgOtpInputModule } from 'ng-otp-input';\nimport { InputMetadata } from '../../types';\n\n@Component({\n selector: 'val-pin-input',\n standalone: true,\n imports: [NgOtpInputModule],\n template: `\n <div class=\"otp\">\n <ng-otp-input [formCtrl]=\"props.control\" [config]=\"otpInputConfig\"></ng-otp-input>\n </div>\n `,\n styleUrls: ['./pin-input.component.scss'],\n})\nexport class PinInputComponent implements OnInit {\n @ViewChild(NgOtpInputComponent, { static: false }) pinCode: NgOtpInputComponent | undefined;\n\n @Input() props: InputMetadata;\n\n codeLength = 5;\n otpInputConfig: NgOtpInputConfig = {\n inputStyles: {\n 'font-size': '36px',\n width: '55px',\n height: '55px',\n },\n inputClass: 'otp-input-box',\n length: this.codeLength,\n allowNumbersOnly: true,\n };\n\n constructor() {}\n\n ngOnInit() {}\n\n reset() {\n if (this.pinCode) {\n this.pinCode.setValue('');\n }\n }\n}\n","import { CommonModule } from '@angular/common';\nimport { Component, Input, OnInit } from '@angular/core';\nimport { DisplayComponent } from '../../atoms/display/display.component';\nimport { TitleComponent } from '../../atoms/title/title.component';\nimport { TitleBlockMetada } from './types';\n\n@Component({\n selector: 'val-title-block',\n standalone: true,\n imports: [CommonModule, TitleComponent, DisplayComponent],\n template: `\n <div [ngClass]=\"['titles-container', props.position]\">\n <val-title\n *ngIf=\"props.aboveTitle\"\n [props]=\"{\n content: props.aboveTitle.text | uppercase,\n color: props.aboveTitle.color,\n bold: false,\n size: props.aboveTitle.size,\n }\"\n ></val-title>\n <val-display\n *ngIf=\"props.title\"\n [props]=\"{\n content: props.title.text,\n color: props.title.color,\n size: props.title.size,\n }\"\n ></val-display>\n <val-title\n *ngIf=\"props.bellowTitle\"\n [props]=\"{\n content: props.bellowTitle.text,\n color: props.bellowTitle.color,\n bold: false,\n size: props.bellowTitle.size,\n }\"\n ></val-title>\n </div>\n `,\n styleUrls: ['./title-block.component.scss'],\n})\nexport class TitleBlockComponent implements OnInit {\n @Input()\n props: TitleBlockMetada;\n\n constructor() {}\n\n ngOnInit() {}\n}\n","import { Component, Input, OnInit } from '@angular/core';\nimport { ProgressBarComponent } from '../../atoms/progress-bar/progress-bar.component';\nimport { TextComponent } from '../../atoms/text/text.component';\nimport { TitleBlockComponent } from '../title-block/title-block.component';\nimport { ProgressStatusMetadata } from './types';\n\n//TODO: support automatic or manual interval for messages. Include the interval number as a parameter.\n@Component({\n selector: 'val-progress-status',\n standalone: true,\n imports: [TitleBlockComponent, ProgressBarComponent, TextComponent],\n template: `\n <div class=\"status-container\">\n <div class=\"title-container\">\n <val-title-block\n [props]=\"{\n position: 'center',\n aboveTitle: props.titles.aboveTitle,\n title: props.titles.title,\n bellowTitle: props.titles.bellowTitle,\n }\"\n ></val-title-block>\n </div>\n <div class=\"progress-bar-container\">\n <val-progress-bar\n [props]=\"{\n progress: props.progress,\n size: 'xlarge',\n color: props.color,\n rounded: true,\n type: 'determinate',\n buffer: 1,\n }\"\n ></val-progress-bar>\n </div>\n <div class=\"subtitle-container\">\n <div class=\"subtitle\" [class.blink]=\"blinking\">\n <val-text [props]=\"{ content: Content, color: 'medium', bold: false, size: props.size }\"></val-text>\n </div>\n </div>\n </div>\n `,\n styleUrls: ['./progress-status.component.scss'],\n})\nexport class ProgressStatusComponent implements OnInit {\n @Input()\n props: ProgressStatusMetadata;\n\n currentIndex = 0;\n blinking = false;\n\n constructor() {}\n\n ngOnInit() {\n setInterval(() => {\n this.blinking = !this.blinking;\n }, 1000);\n\n setInterval(() => {\n this.getNextMessage();\n }, 9000);\n }\n\n get Content(): string {\n return this.props.messages[this.currentIndex];\n }\n\n getNextMessage(): void {\n this.currentIndex = (this.currentIndex + 1) % this.props.messages.length;\n }\n}\n","import { CommonModule } from '@angular/common';\nimport { Component, EventEmitter, Input, OnInit, Output } from '@angular/core';\nimport { BoxComponent } from '../../atoms/box/box.component';\nimport { HrefComponent } from '../../atoms/href/href.component';\nimport { TextComponent } from '../../atoms/text/text.component';\nimport { ButtonGroupComponent } from '../button-group/button-group.component';\nimport { PrompterMetadata } from './types';\n\n@Component({\n selector: 'val-prompter',\n standalone: true,\n imports: [CommonModule, BoxComponent, ButtonGroupComponent, TextComponent, HrefComponent],\n template: `\n <val-box\n class=\"teleprompter-container\"\n [props]=\"{ icon: '', bordered: props.bordered, color: props.color, leftBorder: false }\"\n >\n <div class=\"container\" [class.teleprompter-content]=\"props.teleprompter\" body>\n <div>\n <val-text\n [props]=\"{\n content: props.content,\n color: '',\n bold: true,\n size: props.size,\n }\"\n ></val-text>\n </div>\n @if (props.buttons || props.hrefs) {\n <div class=\"actions-container\">\n <val-button-group\n class=\"buttons-container\"\n [props]=\"{ buttons: props.buttons, position: 'right', columned: false }\"\n (onClick)=\"clickHandler($event)\"\n ></val-button-group>\n <val-href\n class=\"link\"\n *ngFor=\"let l of props.hrefs\"\n [props]=\"l\"\n (onClick)=\"clickHandler($event)\"\n ></val-href>\n </div>\n }\n </div>\n </val-box>\n `,\n styleUrls: ['./prompter.component.scss'],\n})\nexport class PrompterComponent implements OnInit {\n @Input()\n props: PrompterMetadata;\n\n @Output()\n onClick = new EventEmitter<string>();\n\n constructor() {}\n\n ngOnInit() {}\n\n clickHandler(token?: string) {\n this.onClick.emit(token);\n }\n}\n","import { NgFor } from '@angular/common';\nimport { Component, Input, OnInit } from '@angular/core';\nimport { ReactiveFormsModule } from '@angular/forms';\nimport { IonRadio, IonRadioGroup } from '@ionic/angular/standalone';\nimport { InputMetadata } from '../../types';\n\n@Component({\n selector: 'val-radio-input',\n standalone: true,\n imports: [NgFor, ReactiveFormsModule, IonRadioGroup, IonRadio],\n template: `\n <ion-radio-group [allowEmptySelection]=\"true\" [formControl]=\"props.control\">\n <ng-container *ngFor=\"let o of props.options\">\n <ion-radio [value]=\"o.id\">{{ o.name }}</ion-radio>\n <br />\n </ng-container>\n </ion-radio-group>\n `,\n styleUrls: ['./radio-input.component.scss'],\n})\nexport class RadioInputComponent implements OnInit {\n @Input() props: InputMetadata;\n\n constructor() {}\n\n ngOnInit() {}\n}\n","export const replaceSpecialChars = (text: string) =>\n text.normalize('NFD').replace(/[\\u0300-\\u036f]/g, '');\n","import { Component, EventEmitter, Input, Output } from '@angular/core';\nimport { IonSearchbar } from '@ionic/angular/standalone';\n\n@Component({\n selector: 'val-searchbar',\n standalone: true,\n imports: [IonSearchbar],\n template: `\n <ion-searchbar\n mode=\"ios\"\n debounce=\"500\"\n placeholder=\"Búsqueda\"\n [disabled]=\"disabled\"\n showCancelButton=\"focus\"\n cancelButtonText=\"Cancelar\"\n (ionInput)=\"onSearch($event)\"\n (ionBlur)=\"onBlur()\"\n (ionFocus)=\"onFocus()\"\n >\n </ion-searchbar>\n `,\n styleUrls: ['./searchbar.component.scss'],\n})\nexport class SearchbarComponent {\n @Input() disabled: boolean;\n\n @Output() focusEvent = new EventEmitter<void>();\n\n @Output() blurEvent = new EventEmitter<void>();\n\n @Output() filterEvent = new EventEmitter<string>();\n\n constructor() {}\n\n onSearch($event: any) {\n const searchTerm = $event.detail.value;\n this.filterEvent.emit(searchTerm);\n }\n\n onFocus() {\n this.focusEvent.emit();\n }\n\n onBlur() {\n this.blurEvent.emit();\n }\n}\n","/* eslint-disable @typescript-eslint/naming-convention */\nimport { CommonModule } from '@angular/common';\nimport { Component, Input, OnInit } from '@angular/core';\nimport { FormsModule, NgModel, ReactiveFormsModule } from '@angular/forms';\nimport {\n IonButton,\n IonButtons,\n IonContent,\n IonFooter,\n IonHeader,\n IonInput,\n IonItem,\n IonLabel,\n IonList,\n IonModal,\n IonRadio,\n IonRadioGroup,\n IonSelect,\n IonTitle,\n IonToolbar,\n} from '@ionic/angular/standalone';\nimport { replaceSpecialChars } from '../../../shared/utils/text';\nimport { InputMetadata, InputOption } from '../../types';\nimport { SearchbarComponent } from '../searchbar/searchbar.component';\n\nexport const SEARCH_SELECTOR_NO_RESULT = {\n title: 'No se encontraron resultados',\n subtitle: 'Intenta con otras palabras.',\n};\n\nexport const SEARCH_SELECTOR_NO_OPTIONS = {\n title: 'No hay opciones',\n subtitle: 'El campo seleccionado no tiene opciones. Intenta nuevamente más tarde.',\n};\n\n@Component({\n selector: 'val-search-selector-input',\n standalone: true,\n imports: [\n CommonModule,\n FormsModule,\n ReactiveFormsModule,\n IonHeader,\n IonToolbar,\n IonTitle,\n IonButtons,\n IonButton,\n IonFooter,\n IonList,\n IonContent,\n IonItem,\n IonLabel,\n IonRadio,\n SearchbarComponent,\n IonModal,\n IonInput,\n IonSelect,\n IonRadioGroup,\n ],\n template: `\n <!-- <ion-select\n id=\"select-search-option-action\"\n [formControl]=\"props.control\"\n [label]=\"props.label\"\n [interfaceOptions]=\"customModalOptions\"\n interface=\"popover\"\n [placeholder]=\"[props.placeholder]\"\n cancelText=\"Cancelar\"\n okText=\"Ok\"\n (mousedown)=\"preventDefaultBehavior($event)\"\n >\n </ion-select> -->\n <ion-input\n type=\"text\"\n [value]=\"showSelected()\"\n [placeholder]=\"props.placeholder\"\n readonly\n (mousedown)=\"preventDefaultBehavior($event)\"\n />\n\n <ion-input [formControl]=\"props.control\" type=\"hidden\"></ion-input>\n\n <ion-modal #modal [isOpen]=\"isModalOpen\">\n <ng-template>\n <ion-header>\n <ion-toolbar>\n <ion-title>Seleccione</ion-title>\n <ion-buttons slot=\"end\">\n <ion-button (click)=\"dismiss()\">Cancelar</ion-button>\n </ion-buttons>\n </ion-toolbar>\n </ion-header>\n\n <ion-content>\n <val-searchbar (filterEvent)=\"onFilter($event)\" (focusEvent)=\"onFocus()\" (blurEvent)=\"onBlur()\" />\n\n <div class=\"unit-list-container\" *ngIf=\"listVolatile.length > 0\">\n <ion-list class=\"unit-list\">\n <ion-radio-group allow-empty-selection [(ngModel)]=\"selectedOption\">\n <ion-item *ngFor=\"let option of listVolatile\">\n <ion-radio justify=\"space-between\" color=\"primary\" [value]=\"option.id\">{{ option.name }}</ion-radio>\n </ion-item>\n </ion-radio-group>\n </ion-list>\n </div>\n </ion-content>\n <ion-footer style=\"display: flex;justify-content: space-around;padding: 8px 0px;\">\n <ion-button color=\"dark\" shape=\"round\" fill=\"outline\" (click)=\"dismiss()\"> Cancelar </ion-button>\n <ion-button color=\"primary\" shape=\"round\" (click)=\"applyChanges()\"> Confirmar </ion-button>\n </ion-footer>\n </ng-template>\n </ion-modal>\n `,\n styleUrls: ['./search-selector-input.component.scss'],\n})\nexport class SelectorModalComponent implements OnInit {\n @Input() props: InputMetadata;\n\n @Input() selection = -1;\n\n @Input() showAllAtStart = true;\n\n searching = false;\n isModalOpen = false;\n\n listVolatile: InputOption[] = [];\n\n noResult = SEARCH_SELECTOR_NO_RESULT;\n noNothing = SEARCH_SELECTOR_NO_OPTIONS;\n\n customModalOptions = {\n header: 'Seleccione',\n breakpoints: [0, 0.6],\n initialBreakpoint: 0.6,\n };\n\n selectedOption = '';\n\n constructor() {}\n\n ngOnInit() {\n this.listVolatile = this.props.options;\n }\n\n dismiss() {\n this.toggleModal(false);\n }\n\n applyChanges() {\n console.log(this.props.control);\n if (this.props.control.invalid) {\n return;\n }\n\n this.props.control.setValue(this.selectedOption);\n }\n\n onFilter(event: string) {\n console.log('💡 onSearch::: ', event);\n if (!event) {\n this.listVolatile = this.props.options;\n return;\n }\n if (this.listVolatile.length === 0) {\n return;\n }\n const text = replaceSpecialChars(event.toLowerCase());\n const filter = this.listVolatile.filter(element => {\n const values = Object.values(element).map((a: string) => replaceSpecialChars(`${a}`).toLocaleLowerCase());\n if (values.some((value: string) => value.indexOf(text) > -1)) {\n return true;\n }\n return false;\n });\n console.log('filter: ', filter);\n this.listVolatile = filter;\n }\n\n onBlur() {\n this.searching = false;\n }\n\n onFocus() {\n this.searching = true;\n }\n\n showSelected(): string {\n const option = this.props.options.find(x => x.id === this.props.control.value);\n if (option) {\n return option.name;\n }\n return '';\n }\n\n toggleModal(isOpen) {\n this.isModalOpen = isOpen;\n }\n\n preventDefaultBehavior(event: MouseEvent) {\n event.preventDefault(); // Evita el comportamiento predeterminado del selector\n event.stopPropagation(); // Detiene la propagación del evento\n this.toggleModal(!this.isModalOpen); // Abre el modal personalizado\n }\n}\n","import { Component, Input, OnInit } from '@angular/core';\nimport { ReactiveFormsModule } from '@angular/forms';\nimport { IonSelect, IonSelectOption } from '@ionic/angular/standalone';\nimport { InputMetadata } from '../../types';\n\n@Component({\n selector: 'val-select-input',\n standalone: true,\n imports: [ReactiveFormsModule, IonSelect, IonSelectOption],\n template: `\n <ion-select\n [formControl]=\"props.control\"\n [label]=\"props.label\"\n [interfaceOptions]=\"customModalOptions\"\n interface=\"modal\"\n [placeholder]=\"[props.placeholder]\"\n cancelText=\"Cancelar\"\n okText=\"Ok\"\n >\n @for (o of props.options; track o.id) {\n <ion-select-option [value]=\"o.id\">{{ o.name }}</ion-select-option>\n }\n </ion-select>\n `,\n styleUrls: ['./select-input.component.scss'],\n})\nexport class SearchSelectorComponent implements OnInit {\n @Input() props: InputMetadata;\n\n customModalOptions = {\n header: 'Seleccione',\n breakpoints: [0, 0.6],\n initialBreakpoint: 0.6,\n };\n\n constructor() {}\n\n ngOnInit() {\n this.customModalOptions.header = this.props.label;\n }\n}\n","import { Component, Input, OnInit } from '@angular/core';\nimport { FormControl, ReactiveFormsModule } from '@angular/forms';\nimport { IonInput } from '@ionic/angular/standalone';\nimport { InputMetadata } from '../../types';\n\n@Component({\n selector: 'val-text-input',\n standalone: true,\n imports: [ReactiveFormsModule, IonInput],\n template: ` <ion-input [formControl]=\"props.control\" type=\"text\" [placeholder]=\"props.placeholder\"></ion-input> `,\n styleUrls: ['./text-input.component.scss'],\n})\nexport class TextInputComponent implements OnInit {\n @Input() props: InputMetadata;\n\n constructor() {}\n\n ngOnInit() {}\n}\n","import { CommonModule } from '@angular/common';\nimport { Component, EventEmitter, Input, OnInit, Output } from '@angular/core';\nimport { BoxComponent } from '../../atoms/box/box.component';\nimport { ButtonGroupComponent } from '../../molecules/button-group/button-group.component';\nimport { TitleBlockComponent } from '../../molecules/title-block/title-block.component';\nimport { BannerMetadata } from './types';\n\n@Component({\n selector: 'val-banner',\n standalone: true,\n imports: [CommonModule, BoxComponent, TitleBlockComponent, ButtonGroupComponent],\n template: `\n <val-box\n [props]=\"{ icon: props.closable ? 'close-outline' : '', bordered: props.bordered, color: '' }\"\n (onClick)=\"closeHandler()\"\n >\n <div [ngClass]=\"['content-container', props.mode, props.alignment]\" body>\n <val-title-block\n [props]=\"{\n position: props.mode === 'center' ? 'center' : 'left',\n aboveTitle: props.content.aboveTitle,\n title: props.content.title,\n bellowTitle: props.content.bellowTitle,\n }\"\n ></val-title-block>\n @if (props.actions) {\n <val-button-group\n class=\"buttons-container\"\n [props]=\"props.actions\"\n (onClick)=\"clickHandler($event)\"\n ></val-button-group>\n }\n </div>\n </val-box>\n `,\n styleUrls: ['./banner.component.scss'],\n})\nexport class BannerComponent implements OnInit {\n @Input()\n props: BannerMetadata;\n\n @Output()\n onClick = new EventEmitter<string>();\n\n @Output()\n onClose = new EventEmitter();\n\n constructor() {}\n\n ngOnInit() {}\n\n clickHandler(token?: string) {\n this.onClick.emit(token);\n }\n\n closeHandler() {\n this.onClose.emit();\n }\n}\n","import { CommonModule } from '@angular/common';\nimport { Component, EventEmitter, Input, OnInit, Output } from '@angular/core';\nimport { NavController } from '@ionic/angular';\nimport { IonButton, IonButtons, IonIcon, IonText, IonTitle, IonToolbar } from '@ionic/angular/standalone';\nimport { addIcons } from 'ionicons';\nimport { chevronBackOutline } from 'ionicons/icons';\nimport { AvatarComponent } from '../../atoms/avatar/avatar.component';\nimport { ImageComponent } from '../../atoms/image/image.component';\nimport { ToolbarAction, ToolbarActionType } from '../../types';\nimport { ToolbarMetadata } from './types';\nimport { IconService } from '../../../services/icons.service';\n\n@Component({\n selector: 'val-toolbar',\n standalone: true,\n imports: [\n CommonModule,\n IonToolbar,\n IonButtons,\n IonButton,\n IonIcon,\n IonText,\n IonTitle,\n AvatarComponent,\n ImageComponent,\n ],\n template: `\n <ion-toolbar [color]=\"props.color\" [class.background]=\"props.color === 'background'\">\n <ng-container *ngIf=\"props.withBack\">\n <ion-buttons class=\"left-buttons\" slot=\"start\" *ngIf=\"props.withBack\">\n <ion-button fill=\"clear\" (click)=\"goBack()\" [color]=\"props.textColor\">\n <ion-icon name=\"chevron-back-outline\" [slot]=\"props.backText ? 'start' : 'icon-only'\"></ion-icon>\n <ion-text *ngIf=\"props.backText\">{{ props.backText }}</ion-text>\n </ion-button>\n </ion-buttons>\n </ng-container>\n <ng-container *ngIf=\"props.withActions\">\n <ion-buttons slot=\"end\" *ngIf=\"someInRight()\">\n <ng-container *ngFor=\"let action of rightActions()\">\n <ion-button *ngIf=\"action.type === actionTypes.ICON\" (click)=\"clickHandler(action.token)\">\n <ion-icon slot=\"icon-only\" [name]=\"action.description\" [color]=\"props.textColor\"></ion-icon>\n </ion-button>\n <val-avatar\n *ngIf=\"action.type === actionTypes.AVATAR\"\n [props]=\"{ size: 'small', image: action.description, default: '' }\"\n (onClick)=\"clickHandler(action.token)\"\n ></val-avatar>\n <val-image\n *ngIf=\"action.type === actionTypes.IMAGE\"\n [props]=\"action.image\"\n (click)=\"clickHandler(action.token)\"\n ></val-image>\n <ion-button *ngIf=\"action.type === actionTypes.BUTTON\" (click)=\"clickHandler(action.token)\">{{\n action.description\n }}</ion-button>\n </ng-container>\n </ion-buttons>\n <ion-buttons slot=\"start\" *ngIf=\"someInLeft()\">\n <ng-container *ngFor=\"let action of leftActions()\">\n <ion-button *ngIf=\"action.type === actionTypes.ICON\" (click)=\"clickHandler(action.token)\">\n <ion-icon slot=\"icon-only\" [name]=\"action.description\" [color]=\"props.textColor\"></ion-icon>\n </ion-button>\n <val-avatar\n *ngIf=\"action.type === actionTypes.AVATAR\"\n [props]=\"{ size: 'small', image: action.description, default: '' }\"\n (onClick)=\"clickHandler(action.token)\"\n ></val-avatar>\n <val-image\n *ngIf=\"action.type === actionTypes.IMAGE\"\n [props]=\"action.image\"\n (click)=\"clickHandler(action.token)\"\n ></val-image>\n <ion-button *ngIf=\"action.type === actionTypes.BUTTON\" (click)=\"clickHandler(action.token)\">{{\n action.description\n }}</ion-button>\n </ng-container>\n </ion-buttons>\n </ng-container>\n <ion-title *ngIf=\"props.title\" [color]=\"props.textColor\">{{ props.title }}</ion-title>\n <!-- experimental -->\n <ng-content select=\"[toolbar-bottom]\"></ng-content>\n </ion-toolbar>\n `,\n styleUrls: ['./toolbar.component.scss'],\n})\nexport class ToolbarComponent implements OnInit {\n @Input()\n props: ToolbarMetadata;\n\n @Output()\n onClick = new EventEmitter<string>();\n\n actionTypes = ToolbarActionType;\n\n constructor(\n private navCtrl: NavController,\n icon: IconService\n ) {\n addIcons({ chevronBackOutline });\n }\n\n ngOnInit() {}\n\n goBack(): void {\n this.navCtrl.back();\n }\n\n rightActions(): ToolbarAction[] {\n return this.props.actions.filter(x => x.position === 'right');\n }\n\n leftActions(): ToolbarAction[] {\n return this.props.actions.filter(x => x.position === 'left');\n }\n\n someInRight(): boolean {\n return !!this.props.actions.find(x => x.position === 'right');\n }\n\n someInLeft(): boolean {\n return !!this.props.actions.find(x => x.position === 'left');\n }\n\n clickHandler(token?: string) {\n this.onClick.emit(token);\n }\n}\n","import { Component, EventEmitter, Input, OnInit, Output } from '@angular/core';\nimport { FooterMetadata } from './types';\nimport { IonFooter } from '@ionic/angular/standalone';\nimport { ToolbarComponent } from '../toolbar/toolbar.component';\nimport { CommonModule } from '@angular/common';\n\n@Component({\n selector: 'val-footer',\n standalone: true,\n imports: [CommonModule, IonFooter, ToolbarComponent],\n template: `\n <ion-footer\n [class.ion-no-border]=\"!props.bordered\"\n [translucent]=\"props.translucent\"\n [class.background]=\"props.toolbar.color === 'background'\"\n >\n <val-toolbar\n *ngIf=\"props.toolbar.title || props.toolbar.withActions || props.toolbar.withBack\"\n [props]=\"props.toolbar\"\n (onClick)=\"clickHandler($event)\"\n ></val-toolbar>\n <ng-content select=\"[extra]\"></ng-content>\n </ion-footer>\n `,\n styleUrls: ['./footer.component.scss'],\n})\nexport class FooterComponent implements OnInit {\n @Input()\n props: FooterMetadata;\n\n @Output()\n onClick = new EventEmitter<string>();\n\n constructor() {}\n\n ngOnInit() {}\n\n clickHandler(token?: string) {\n this.onClick.emit(token);\n }\n}\n","import { ValidatorFn, Validators } from '@angular/forms';\n\nexport const maxLength = (\n field: string,\n max: number\n): { validator: ValidatorFn; error: string } => {\n return {\n validator: Validators.maxLength(max),\n error: `El campo ${field} no debe superar los ${max} caracteres.`,\n };\n};\n","import { Component, EventEmitter, Input, OnInit, Output } from '@angular/core';\nimport { FormGroup } from '@angular/forms';\nimport { ButtonGroupComponent } from '../../../molecules/button-group/button-group.component';\nimport { ButtonMetadata, ComponentStates, FormMetadata, FormSubmit } from '../../../types';\nimport { FooterComponent } from '../../footer/footer.component';\n\n@Component({\n selector: 'val-form-footer',\n standalone: true,\n imports: [FooterComponent, ButtonGroupComponent],\n template: `\n <val-footer\n [props]=\"{\n bordered: false,\n translucent: false,\n toolbar: {\n title: '',\n actions: [],\n color: 'background',\n withBack: false,\n withActions: false,\n },\n }\"\n >\n <val-button-group\n extra\n [props]=\"{ buttons: actions, position: 'center', columned: false }\"\n (onClick)=\"submitHandler($event)\"\n ></val-button-group>\n </val-footer>\n `,\n styleUrls: ['./form-footer.component.scss'],\n})\nexport class FormFooterComponent implements OnInit {\n @Input()\n props: { form: FormGroup; data: FormMetadata };\n\n @Output()\n onSubmit = new EventEmitter<FormSubmit>();\n\n constructor() {}\n\n ngOnInit() {}\n\n async submitHandler(token?: string) {\n this.onSubmit.emit({ fields: this.props.form.value, token });\n }\n\n get actions(): ButtonMetadata[] {\n if (!this.props.form) {\n return [];\n }\n\n if (this.props.form.valid) {\n this.props.data.actions.state = ComponentStates.ENABLED;\n }\n\n if (this.props.data.state === ComponentStates.WORKING) {\n this.props.data.actions.state = ComponentStates.WORKING;\n }\n\n if (this.props.data.state === ComponentStates.ENABLED) {\n this.props.data.actions.state = ComponentStates.ENABLED;\n }\n\n if (this.props.data.state === ComponentStates.DISABLED) {\n this.props.data.actions.state = ComponentStates.DISABLED;\n }\n\n return [this.props.data.actions];\n }\n}\n","import { ElementRef } from '@angular/core';\n\nexport const goToTop = (id: string): void => {\n const element = document.getElementById(id);\n if (element) {\n element.scrollIntoView({\n block: 'start',\n inline: 'nearest',\n behavior: 'smooth',\n });\n }\n};\n\nexport const isAtEnd = (elementRef: ElementRef): boolean => {\n const formElement = elementRef.nativeElement;\n const rect = formElement.getBoundingClientRect();\n const windowHeight = window.innerHeight;\n return rect.bottom <= windowHeight;\n};\n","import { CommonModule } from '@angular/common';\nimport { Component, ElementRef, EventEmitter, Input, OnInit, Output } from '@angular/core';\nimport { FormBuilder, FormControl, FormGroup, ReactiveFormsModule } from '@angular/forms';\nimport { Subscription } from 'rxjs';\nimport { isAtEnd } from '../../../shared/utils/dom';\nimport { DisplayComponent } from '../../atoms/display/display.component';\nimport { DividerComponent } from '../../atoms/divider/divider.component';\nimport { TitleComponent } from '../../atoms/title/title.component';\nimport { ButtonGroupComponent } from '../../molecules/button-group/button-group.component';\nimport { CheckInputComponent } from '../../molecules/check-input/check-input.component';\nimport { CommentInputComponent } from '../../molecules/comment-input/comment-input.component';\nimport { DateInputComponent } from '../../molecules/date-input/date-input.component';\nimport { EmailInputComponent } from '../../molecules/email-input/email-input.component';\nimport { FileInputComponent } from '../../molecules/file-input/file-input.component';\nimport { HintComponent } from '../../molecules/hint/hint.component';\nimport { HourInputComponent } from '../../molecules/hour-input/hour-input.component';\nimport { NumberInputComponent } from '../../molecules/number-input/number-input.component';\nimport { PasswordInputComponent } from '../../molecules/password-input/password-input.component';\nimport { PinInputComponent } from '../../molecules/pin-input/pin-input.component';\nimport { RadioInputComponent } from '../../molecules/radio-input/radio-input.component';\nimport { SelectorModalComponent } from '../../molecules/search-selector-input/search-selector-input.component';\nimport { SearchSelectorComponent } from '../../molecules/select-input/select-input.component';\nimport { TextInputComponent } from '../../molecules/text-input/text-input.component';\nimport { ButtonMetadata, ComponentStates, FormMetadata, FormSubmit, InputMetadata, InputType } from '../../types';\n\n@Component({\n selector: 'val-form',\n standalone: true,\n imports: [\n CommonModule,\n ReactiveFormsModule,\n DisplayComponent,\n TitleComponent,\n TextInputComponent,\n CheckInputComponent,\n ButtonGroupComponent,\n DividerComponent,\n HintComponent,\n CommentInputComponent,\n DateInputComponent,\n FileInputComponent,\n HourInputComponent,\n EmailInputComponent,\n NumberInputComponent,\n RadioInputComponent,\n PasswordInputComponent,\n PinInputComponent,\n SearchSelectorComponent,\n SelectorModalComponent,\n ],\n template: `\n <div class=\"container\">\n <form [formGroup]=\"form\">\n <val-display\n *ngIf=\"props.name\"\n [props]=\"{\n content: props.name,\n color: 'dark',\n size: 'large',\n }\"\n ></val-display>\n <div class=\"section\" *ngFor=\"let s of props.sections\">\n <val-title [props]=\"{ content: s.name, size: 'large', color: '', bold: false }\"></val-title>\n <div class=\"input\" *ngFor=\"let f of s.fields\">\n <val-title [props]=\"{ content: f.label, size: 'small', color: 'dark', bold: false }\"></val-title>\n <ng-container *ngIf=\"f.type === types.TEXT\">\n <val-text-input [props]=\"getFieldProp(f)\"></val-text-input>\n </ng-container>\n <ng-container *ngIf=\"f.type === types.CHECK\">\n <val-check-input></val-check-input>\n </ng-container>\n <ng-container *ngIf=\"f.type === types.COMMENT\">\n <val-comment-input [props]=\"getFieldProp(f)\"></val-comment-input>\n </ng-container>\n <ng-container *ngIf=\"f.type === types.DATE\">\n <val-date-input [props]=\"getFieldProp(f)\"></val-date-input>\n </ng-container>\n <ng-container *ngIf=\"f.type === types.EMAIL\">\n <val-email-input [props]=\"getFieldProp(f)\"></val-email-input>\n </ng-container>\n <ng-container *ngIf=\"f.type === types.FILE\">\n <val-file-input [props]=\"getFieldProp(f)\"></val-file-input>\n </ng-container>\n <ng-container *ngIf=\"f.type === types.HOUR\">\n <val-hour-input [props]=\"getFieldProp(f)\"></val-hour-input>\n </ng-container>\n <ng-container *ngIf=\"f.type === types.NUMBER\">\n <val-number-input [props]=\"getFieldProp(f)\"></val-number-input>\n </ng-container>\n <ng-container *ngIf=\"f.type === types.PASSWORD\">\n <val-password-input [props]=\"getFieldProp(f)\"></val-password-input>\n </ng-container>\n <ng-container *ngIf=\"f.type === types.PIN_CODE\">\n <val-pin-input [props]=\"getFieldProp(f)\"></val-pin-input>\n </ng-container>\n <ng-container *ngIf=\"f.type === types.RADIO\">\n <val-radio-input [props]=\"getFieldProp(f)\"></val-radio-input>\n </ng-container>\n <ng-container *ngIf=\"f.type === types.SELECT\">\n <val-select-input [props]=\"getFieldProp(f)\"></val-select-input>\n </ng-container>\n <ng-container *ngIf=\"f.type === types.SEARCH_SELECT\">\n <val-search-selector-input [props]=\"getFieldProp(f)\"></val-search-selector-input>\n </ng-container>\n <val-hint [props]=\"getFieldProp(f)\"></val-hint>\n </div>\n <val-divider [props]=\"{ fill: 'solid', size: 'medium', color: 'medium' }\"></val-divider>\n </div>\n <val-button-group\n [props]=\"{ buttons: actions, position: 'center', columned: false }\"\n (onClick)=\"submitHandler($event)\"\n ></val-button-group>\n </form>\n </div>\n `,\n styleUrls: ['./form.component.scss'],\n})\nexport class FormComponent implements OnInit {\n @Input()\n props: FormMetadata;\n\n @Output()\n onSubmit = new EventEmitter<FormSubmit>();\n\n @Output()\n onInvalid = new EventEmitter();\n\n @Output()\n onSelectChange = new EventEmitter<{ field: string; value: any }>();\n\n form: FormGroup;\n types = InputType;\n private subscriptions: Subscription[] = [];\n\n constructor(\n private fb: FormBuilder,\n private elementRef: ElementRef\n ) {}\n\n ngOnInit() {\n const formControls = {};\n this.props.sections.forEach(section => {\n section.fields.forEach(field => {\n formControls[field.name] = [undefined, field.validators || []];\n });\n });\n this.form = this.fb.group(formControls);\n this.props.sections.forEach(section => {\n section.fields\n .filter(x => x.type === this.types.SELECT)\n .forEach(field => {\n this.trackSelectChanges(field.name);\n });\n });\n }\n\n ngOnDestroy() {\n // Cleanup subscriptions to avoid memory leaks\n this.subscriptions.forEach(sub => sub.unsubscribe());\n }\n\n trackSelectChanges(fieldName: string) {\n const control = this.getControl(fieldName);\n const subscription = control.valueChanges.subscribe(value => {\n this.onSelectChange.emit({ field: fieldName, value });\n });\n this.subscriptions.push(subscription);\n }\n\n async submitHandler(token?: string) {\n this.onSubmit.emit({ fields: this.form.value, token });\n }\n\n getControl(field: string): FormControl {\n return this.Form.get(field) as FormControl;\n }\n\n getFieldProp(field: InputMetadata): InputMetadata {\n field.token;\n if (!field.token) {\n field.token = `input-${field.type}-${field.name}`;\n }\n return {\n ...field,\n control: this.getControl(field.name),\n };\n }\n\n get isAtEndOfForm(): boolean {\n return isAtEnd(this.elementRef);\n }\n\n get Form(): FormGroup {\n return this.form;\n }\n\n get FormState(): { form: FormGroup; data: FormMetadata } {\n return {\n form: this.Form,\n data: this.props,\n };\n }\n\n get actions(): ButtonMetadata[] {\n if (!this.form) {\n return [];\n }\n\n if (this.form.valid) {\n this.props.actions.state = ComponentStates.ENABLED;\n }\n\n if (this.props.state === ComponentStates.WORKING) {\n this.props.actions.state = ComponentStates.WORKING;\n }\n\n if (this.props.state === ComponentStates.ENABLED) {\n this.props.actions.state = ComponentStates.ENABLED;\n }\n\n if (this.props.state === ComponentStates.DISABLED) {\n this.props.actions.state = ComponentStates.DISABLED;\n }\n\n return [this.props.actions];\n }\n}\n","import { Component, EventEmitter, Input, OnInit, Output } from '@angular/core';\nimport { IonHeader } from '@ionic/angular/standalone';\nimport { ToolbarComponent } from '../toolbar/toolbar.component';\nimport { HeaderMetadata } from './types';\n\n@Component({\n selector: 'val-header',\n standalone: true,\n imports: [IonHeader, ToolbarComponent],\n template: `\n <ion-header [class.ion-no-border]=\"!props.bordered\" [translucent]=\"props.translucent\">\n <val-toolbar [props]=\"props.toolbar\" (onClick)=\"clickHandler($event)\"></val-toolbar>\n </ion-header>\n `,\n styleUrls: ['./header.component.scss'],\n})\nexport class HeaderComponent implements OnInit {\n @Input()\n props: HeaderMetadata;\n\n @Output()\n onClick = new EventEmitter<string>();\n\n constructor() {}\n\n ngOnInit() {}\n\n clickHandler(token?: string) {\n this.onClick.emit(token);\n }\n}\n","import { NgClass, NgStyle } from '@angular/common';\nimport { Component, EventEmitter, Input, OnInit, Output } from '@angular/core';\nimport { RouterLink } from '@angular/router';\nimport {\n IonAvatar,\n IonButton,\n IonIcon,\n IonItem,\n IonLabel,\n IonList,\n IonListHeader,\n IonNote,\n IonSpinner,\n} from '@ionic/angular/standalone';\nimport { IconService } from '../../../services/icons.service';\nimport { resolveColor } from '../../../shared/utils/styles';\nimport { ComponentStates } from '../../types';\nimport { ListMetadata } from './types';\n\n@Component({\n selector: 'val-item-list',\n standalone: true,\n imports: [\n RouterLink,\n NgStyle,\n NgClass,\n IonList,\n IonListHeader,\n IonLabel,\n IonNote,\n IonItem,\n IonAvatar,\n IonIcon,\n IonButton,\n IonSpinner,\n ],\n template: `\n <ion-list\n [inset]=\"props.rounded\"\n [class.shadowed]=\"props.shadowed\"\n [class.bordered]=\"props.bordered\"\n [style.borderColor]=\"this.color()\"\n >\n @if (props.title) {\n <ion-list-header>\n <ion-label>{{ props.title }}</ion-label>\n </ion-list-header>\n }\n @for (item of props.items; track item.text) {\n @if (item.mode == 'justext') {\n <ion-item\n [lines]=\"item.lines\"\n [button]=\"item.clickable\"\n [disabled]=\"item.disabled\"\n (click)=\"clickHandler(item.token)\"\n >\n @if (item.unreadIndicator) {\n <div class=\"unread-indicator-wrapper\" slot=\"start\">\n <div class=\"unread-indicator\"></div>\n </div>\n }\n\n <ion-label [ngClass]=\"{ 'ion-text-nowrap': item.ellipsis }\">\n <h2>{{ item.text }}</h2>\n\n @if (item.comments) {\n <ion-note color=\"medium\"> {{ item.comments }} </ion-note>\n }\n </ion-label>\n\n @if (item.endNote) {\n <ion-note slot=\"end\">{{ item.endNote }}</ion-note>\n }\n </ion-item>\n }\n\n @if (item.mode == 'actionable') {\n <ion-item [lines]=\"item.lines\" [button]=\"item.clickable\" [disabled]=\"item.disabled\">\n @if (item.unreadIndicator) {\n <div class=\"unread-indicator-wrapper\" slot=\"start\">\n <div class=\"unread-indicator\"></div>\n </div>\n }\n\n <ion-label [ngClass]=\"{ 'ion-text-nowrap': item.ellipsis }\">\n <h2>{{ item.text }}</h2>\n\n @if (item.comments) {\n <ion-note color=\"medium\"> {{ item.comments }} </ion-note>\n }\n </ion-label>\n\n @if (item.actions) {\n @for (action of item.actions; track action.token) {\n <ion-button\n fill=\"outline\"\n color=\"dark\"\n slot=\"end\"\n [disabled]=\"action.state === states.WORKING\"\n (click)=\"onActionClickHandler(action.token)\"\n >\n @if (action.state !== states.WORKING) {\n @if (action.icon) {\n <ion-icon aria-hidden=\"true\" [name]=\"action.icon\" size=\"medium\" slot=\"start\"></ion-icon>\n }\n\n {{ action.description }}\n }\n\n @if (action.state === states.WORKING) {\n <ion-spinner class=\"action-spinner\" name=\"circular\"></ion-spinner>\n }\n </ion-button>\n }\n }\n </ion-item>\n }\n\n @if (item.mode == 'route') {\n <ion-item\n [lines]=\"item.lines\"\n [button]=\"item.clickable\"\n [disabled]=\"item.disabled\"\n (click)=\"clickHandler(item.token)\"\n [routerLink]=\"item.routerLink\"\n >\n @if (item.unreadIndicator) {\n <div class=\"unread-indicator-wrapper\" slot=\"start\">\n <div class=\"unread-indicator\"></div>\n </div>\n }\n\n <ion-label [ngClass]=\"{ 'ion-text-nowrap': item.ellipsis }\">\n <h2>{{ item.text }}</h2>\n\n @if (item.comments) {\n <ion-note color=\"medium\"> {{ item.comments }} </ion-note>\n }\n </ion-label>\n </ion-item>\n }\n\n @if (item.mode == 'subtitule') {\n <ion-item\n [lines]=\"item.lines\"\n [button]=\"item.clickable\"\n [disabled]=\"item.disabled\"\n (click)=\"clickHandler(item.token)\"\n >\n @if (item.unreadIndicator) {\n <div class=\"unread-indicator-wrapper\" slot=\"start\">\n <div class=\"unread-indicator\"></div>\n </div>\n }\n\n <ion-label [ngClass]=\"{ 'ion-text-nowrap': item.ellipsis }\">\n <h1>{{ item.text }}</h1>\n <p>{{ item.subtitle }}</p>\n </ion-label>\n </ion-item>\n }\n\n @if (item.mode == 'avatar') {\n <ion-item\n [lines]=\"item.lines\"\n [button]=\"item.clickable\"\n [disabled]=\"item.disabled\"\n (click)=\"clickHandler(item.token)\"\n >\n <ion-avatar aria-hidden=\"true\" slot=\"start\">\n <img alt=\"\" [src]=\"item.image\" />\n </ion-avatar>\n <ion-label>{{ item.text }}</ion-label>\n </ion-item>\n }\n\n @if (item.mode == 'icon') {\n <ion-item\n [lines]=\"item.lines\"\n [button]=\"item.clickable\"\n [disabled]=\"item.disabled\"\n (click)=\"clickHandler(item.token)\"\n >\n <ion-icon aria-hidden=\"true\" [name]=\"item.icon\" size=\"medium\" slot=\"start\"></ion-icon>\n <ion-label>{{ item.text }}</ion-label>\n </ion-item>\n }\n }\n </ion-list>\n `,\n styleUrls: ['./item-list.component.scss'],\n})\nexport class ItemListComponent implements OnInit {\n states = ComponentStates;\n defaultColor = 'primary';\n\n @Input()\n props: ListMetadata;\n\n @Output()\n onClick = new EventEmitter<string>();\n\n @Output()\n onActionClick = new EventEmitter<string>();\n\n constructor(icon: IconService) {}\n\n ngOnInit() {}\n\n clickHandler(token?: string) {\n this.onClick.emit(token);\n }\n\n onActionClickHandler(token?: string) {\n this.onActionClick.emit(token);\n }\n\n color() {\n return resolveColor(this.props.color || this.defaultColor);\n }\n}\n","import { Component, EventEmitter, Input, OnInit, Output } from '@angular/core';\nimport { ImageComponent } from '../../atoms/image/image.component';\nimport { BannerComponent } from '../banner/banner.component';\nimport { NoContentMetadata } from './types';\n\n@Component({\n selector: 'val-no-content',\n standalone: true,\n imports: [ImageComponent, BannerComponent],\n template: `\n @if (props.topContent) {\n <div>\n <val-banner [props]=\"props.topContent\" (onClick)=\"onClickHandler($event)\"></val-banner>\n </div>\n }\n <val-image class=\"image-container\" [props]=\"props.image\"></val-image>\n <div>\n <val-banner [props]=\"props.bottomContent\" (onClick)=\"onClickHandler($event)\"></val-banner>\n </div>\n `,\n styleUrls: ['./no-content.component.scss'],\n})\nexport class NoContentComponent implements OnInit {\n @Input()\n props: NoContentMetadata;\n\n @Output()\n onClick = new EventEmitter<string>();\n\n constructor() {}\n\n ngOnInit() {}\n\n onClickHandler(token: string) {\n this.onClick.emit(token);\n }\n}\n","import { ButtonMetadata, ComponentState } from '../../types';\nimport { NoContentMetadata } from '../no-content/types';\n\nexport type WizardMetadata = {\n state: ComponentState;\n current: number;\n steps: Steps;\n error: Step;\n};\n\nexport type Step = {\n titles: NoContentMetadata;\n buttons: ButtonMetadata[];\n};\n\nexport type Steps = {\n [step: number]: Step;\n};\n\nexport enum MOTION {\n BACKWARD,\n FORWARD,\n RETRY,\n}\n","import { Component, EventEmitter, Input, OnInit, Output } from '@angular/core';\nimport { ProgressBarComponent } from '../../../atoms/progress-bar/progress-bar.component';\nimport { ButtonGroupComponent } from '../../../molecules/button-group/button-group.component';\nimport { ButtonMetadata, ComponentStates } from '../../../types';\nimport { FooterComponent } from '../../footer/footer.component';\nimport { MOTION, Step, WizardMetadata } from '../types';\n\n@Component({\n selector: 'val-wizard-footer',\n standalone: true,\n imports: [FooterComponent, ProgressBarComponent, ButtonGroupComponent],\n template: `\n <val-footer\n [props]=\"{\n bordered: false,\n translucent: false,\n toolbar: {\n title: '',\n actions: [],\n color: 'background',\n withBack: false,\n withActions: false,\n },\n }\"\n >\n <val-progress-bar\n extra\n [props]=\"{ progress: Progress, color: '', type: 'determinate', buffer: 1, size: 'small', rounded: false }\"\n ></val-progress-bar>\n <val-button-group\n extra\n [props]=\"{ buttons: actions, position: 'left', columned: false }\"\n position=\"spaced\"\n (onClick)=\"clickHandler($event)\"\n ></val-button-group>\n </val-footer>\n `,\n styleUrls: ['./wizard-footer.component.scss'],\n})\nexport class WizardFooterComponent implements OnInit {\n @Input()\n props: WizardMetadata;\n\n @Output()\n onClick = new EventEmitter<{ current: number; motion: MOTION }>();\n\n wrapperId = 'wizard-wrapper';\n\n constructor() {}\n\n ngOnInit() {}\n\n clickHandler(token?: string) {\n if (!token) {\n return;\n }\n if (token.includes('right')) {\n this.tryToStep(MOTION.FORWARD);\n }\n if (token.includes('left')) {\n this.tryToStep(MOTION.BACKWARD);\n }\n }\n\n get Current(): Step {\n return this.props.steps[this.props.current];\n }\n\n get Progress(): number {\n if (this.props.steps && this.props.current) {\n return this.props.current / Object.keys(this.props.steps).length;\n }\n return 0;\n }\n\n get actions(): ButtonMetadata[] {\n if (this.props.state === ComponentStates.ERROR && this.Current.buttons.length > 1) {\n this.Current.buttons[1].state = ComponentStates.DISABLED;\n }\n\n if (this.props.current === 1 && this.Current.buttons.length > 1) {\n return [this.Current.buttons[1]];\n }\n return this.Current.buttons;\n }\n\n tryToStep(motion: MOTION): void {\n this.onClick.emit({ current: this.props.current, motion });\n }\n}\n","import { CommonModule } from '@angular/common';\nimport { Component, EventEmitter, Input, OnInit, Output } from '@angular/core';\nimport { goToTop } from '../../../shared/utils/dom';\nimport { ContentLoaderComponent } from '../../molecules/content-loader/content-loader.component';\nimport { ComponentStates } from '../../types';\nimport { NoContentComponent } from '../no-content/no-content.component';\nimport { MOTION, Step, WizardMetadata } from './types';\n\n@Component({\n selector: 'val-wizard',\n standalone: true,\n imports: [CommonModule, NoContentComponent, ContentLoaderComponent],\n template: `\n <div [id]=\"wrapperId\" class=\"wrapper\">\n <ng-container *ngIf=\"props.state !== 'ERROR'\">\n <val-no-content [props]=\"Current.titles\"></val-no-content>\n <div class=\"step\">\n <div *ngIf=\"props.state === 'WORKING'\">\n <val-content-loader\n [props]=\"{\n name: 'circular',\n color: 'primary',\n size: 'large',\n text: 'Por favor espere...',\n }\"\n ></val-content-loader>\n </div>\n <ng-content select=\"[step]\"></ng-content>\n </div>\n </ng-container>\n <ng-container *ngIf=\"props.state === 'ERROR'\">\n <val-no-content [props]=\"props.error.titles\" (onClick)=\"clickHandler($event)\"></val-no-content>\n </ng-container>\n </div>\n `,\n styleUrls: ['./wizard.component.scss'],\n})\nexport class WizardComponent implements OnInit {\n @Input()\n props: WizardMetadata;\n\n @Output()\n onClick = new EventEmitter<{ current: number; motion: MOTION }>();\n\n wrapperId = 'wizard-wrapper';\n\n constructor() {}\n\n ngOnInit() {}\n\n working() {\n this.props.state = ComponentStates.WORKING;\n this.Current.buttons.map(x => {\n x.state = ComponentStates.DISABLED;\n });\n }\n\n done() {\n if (this.props.state === ComponentStates.ENABLED) {\n return;\n }\n\n this.props.state = ComponentStates.ENABLED;\n this.Current.buttons.map(x => {\n x.state = ComponentStates.ENABLED;\n });\n }\n\n get Current(): Step {\n return this.props.steps[this.props.current];\n }\n\n setCurrent(newStep: number) {\n if (newStep === this.props.current) {\n return;\n }\n this.props.current = newStep;\n goToTop(this.wrapperId);\n }\n\n setError(error: string) {\n if (this.props.state === ComponentStates.ERROR) {\n return;\n }\n\n this.props.error.titles.bottomContent.content.bellowTitle.text = error;\n this.props.state = ComponentStates.ERROR;\n goToTop(this.wrapperId);\n }\n\n reset() {\n this.props.error.titles.bottomContent.content.bellowTitle.text = '';\n this.done();\n }\n\n clickHandler(token?: string) {\n if (!token) {\n return;\n }\n if (token.includes('retry')) {\n this.reset();\n }\n\n this.onClick.emit({ current: this.props.current, motion: MOTION.RETRY });\n }\n}\n","import { Component } from '@angular/core';\n\n@Component({\n selector: 'val-layout',\n standalone: true,\n imports: [],\n template: `\n <div class=\"layout-container\">\n <ng-content></ng-content>\n </div>\n `,\n styleUrl: './layout.component.scss',\n})\nexport class LayoutComponent {}\n","export class LocalStorageService {\n static set<T>(reference: string, value: T): void {\n localStorage.setItem(reference, JSON.stringify(value));\n }\n\n static get<T>(reference: string): T {\n const value = localStorage.getItem(reference);\n return JSON.parse(value) as T;\n }\n\n static remove(reference: string): void {\n localStorage.removeItem(reference);\n }\n\n static clear() {\n localStorage.clear();\n }\n}\n","export const LANG = 'LANG';\nexport const THEME = 'THEME';\n","import { Injectable } from '@angular/core';\nimport { BehaviorSubject } from 'rxjs';\nimport { LocalStorageService } from './local-storage.service';\nimport { THEME } from '../shared/constants/storage';\n\nexport enum ThemeOption {\n LIGHT = 'light',\n DARK = 'dark',\n AUTO = 'auto',\n}\n\n@Injectable({\n providedIn: 'root',\n})\nexport class ThemeService {\n lightToggle = false;\n darkToggle = false;\n autoToggle = false;\n currentOption = ThemeOption.AUTO;\n themeOptions = ThemeOption;\n prefersDark = false;\n default = ThemeOption.AUTO;\n theme: BehaviorSubject<ThemeOption>;\n\n constructor() {\n const current = LocalStorageService.get<ThemeOption>(THEME);\n console.log('💡 ThemeConfig current::: ', current);\n this.theme = new BehaviorSubject<ThemeOption>(current || this.default);\n this.currentOption = this.Theme;\n console.log('💡 ThemeConfig this.currentOption::: ', this.currentOption);\n this.toggleUserPreference(this.currentOption);\n\n const prefersDarkQuery = window.matchMedia('(prefers-color-scheme: dark)');\n this.prefersDark = prefersDarkQuery.matches;\n this.handleAutoConfiguration();\n\n prefersDarkQuery.addEventListener('change', mediaQuery => {\n console.log('💡 ThemeConfig addEventListener change::: ', mediaQuery);\n this.prefersDark = mediaQuery.matches;\n this.handleAutoConfiguration();\n });\n }\n\n private handleAutoConfiguration() {\n if (this.prefersDark && this.currentOption === ThemeOption.AUTO) {\n console.log('💡 ThemeConfig prefersDark::: ', this.prefersDark);\n this.toggleUserPreference(ThemeOption.AUTO);\n }\n if (!this.prefersDark && this.currentOption === ThemeOption.AUTO) {\n console.log('💡 ThemeConfig prefersDark::: ', this.prefersDark);\n this.toggleUserPreference(ThemeOption.AUTO);\n }\n }\n\n private handleDarkPreference() {\n this.toggleTheme(ThemeOption.DARK, true);\n this.toggleTheme(ThemeOption.LIGHT, false);\n }\n\n private handleLightPreference() {\n this.toggleTheme(ThemeOption.LIGHT, true);\n this.toggleTheme(ThemeOption.DARK, false);\n }\n\n get IsDark(): boolean {\n return this.prefersDark;\n }\n\n get Theme(): ThemeOption {\n return this.theme.value;\n }\n\n set Theme(theme: ThemeOption) {\n this.theme.next(theme);\n LocalStorageService.set<ThemeOption>(THEME, theme);\n }\n\n toggleTheme(name: string, shouldAdd: boolean) {\n console.log('toggleTheme::: ', name, shouldAdd);\n document.body.classList.toggle(name, shouldAdd);\n }\n\n toggleUserPreference(option: ThemeOption) {\n this.currentOption = option;\n this.Theme = option;\n this.lightToggle = option === ThemeOption.LIGHT;\n this.darkToggle = option === ThemeOption.DARK;\n this.autoToggle = option === ThemeOption.AUTO;\n\n switch (option) {\n case ThemeOption.LIGHT:\n this.handleLightPreference();\n break;\n case ThemeOption.DARK:\n this.handleDarkPreference();\n break;\n case ThemeOption.AUTO:\n if (this.prefersDark) {\n this.handleDarkPreference();\n } else {\n this.handleLightPreference();\n }\n break;\n }\n }\n}\n","import { NgStyle } from '@angular/common';\nimport { Component, EventEmitter, inject, Input, Output } from '@angular/core';\nimport { IonContent, IonHeader, IonTitle, IonToolbar } from '@ionic/angular/standalone';\nimport { ThemeService } from '../../../services/theme.service';\nimport { DividerComponent } from '../../atoms/divider/divider.component';\nimport { ExpandableTextComponent } from '../../molecules/expandable-text/expandable-text.component';\nimport { LinkComponent } from '../../molecules/link/link.component';\nimport { HeaderComponent } from '../../organisms/header/header.component';\nimport { LayoutComponent } from '../layout/layout.component';\nimport { SimpleMetadata } from './types';\n\n@Component({\n selector: 'val-simple',\n standalone: true,\n imports: [\n NgStyle,\n IonHeader,\n IonToolbar,\n IonTitle,\n IonContent,\n HeaderComponent,\n LayoutComponent,\n DividerComponent,\n LinkComponent,\n ExpandableTextComponent,\n ],\n template: `\n <val-header [props]=\"props.header\" />\n\n <ion-content\n [fullscreen]=\"true\"\n [ngStyle]=\"{\n '--background': theme.IsDark ? 'var(--ion-background-color)' : props.background,\n }\"\n [scrollEvents]=\"true\"\n (ionScroll)=\"onScrollHandler($event)\"\n >\n <ion-header collapse=\"condense\">\n <ion-toolbar style=\"--background: transparent;\">\n <ion-title style=\"padding: 0;\" size=\"large\">{{ props.pageTitle }}</ion-title>\n </ion-toolbar>\n </ion-header>\n @if (props.pageDescription) {\n <div class=\"description-container\">\n <val-expandable-text\n [props]=\"{\n limit: 180,\n content: props.pageDescription,\n color: 'primary',\n expandText: 'más',\n }\"\n />\n </div>\n }\n @if (props.link) {\n <val-link [props]=\"props.link\" (onClick)=\"onClickHandler($event)\"></val-link>\n }\n @if (props.withDivider) {\n <val-divider [props]=\"{ fill: 'solid', size: 'medium', color: 'dark' }\" />\n }\n <val-layout>\n <ng-content select=\"[inner-container]\"></ng-content>\n </val-layout>\n </ion-content>\n <ng-content select=\"[outter-container]\"></ng-content>\n `,\n styles: `\n .description-container {\n padding: 0px 16px;\n }\n `,\n})\nexport class SimpleComponent {\n @Input()\n props: SimpleMetadata;\n\n @Output()\n onClick = new EventEmitter<string>();\n\n @Output()\n onScrollEvent = new EventEmitter<boolean>();\n\n theme = inject(ThemeService);\n\n onClickHandler(token?: string) {\n this.onClick.emit(token);\n }\n\n onScrollHandler($event: Event) {\n this.onScrollEvent.emit(true);\n }\n}\n","import { Provider } from './content';\n\nexport type LanguageText = {\n [key: string]: string;\n};\n\nexport type LanguagesContent = {\n [key: string]: LanguageText;\n};\n\nexport class TextContent {\n text: LanguagesContent;\n constructor(text: LanguagesContent) {\n this.text = text;\n }\n\n get Content(): LanguagesContent {\n return this.text;\n }\n}\n\nexport enum LangOption {\n ES = 'es',\n EN = 'en',\n}\n","import { InjectionToken } from '@angular/core';\nimport { Provider } from './lang-provider/content';\n\nexport interface ValtechConfig {\n content: Provider;\n}\n\nexport const ValtechConfigService = new InjectionToken<ValtechConfig>('ValtechConfig');\n","import { Inject, Injectable } from '@angular/core';\nimport { BehaviorSubject } from 'rxjs';\nimport { Provider } from './content';\nimport { LangOption, LanguageText } from './types';\nimport { LocalStorageService } from '../local-storage.service';\nimport { LANG } from '../../shared/constants/storage';\nimport { ValtechConfig, ValtechConfigService } from '../types';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class LangService {\n content: Provider;\n default = LangOption.ES;\n selectedLang: BehaviorSubject<LangOption>;\n config: ValtechConfig;\n\n constructor(@Inject(ValtechConfigService) config: ValtechConfig) {\n console.log('injected config: ', config);\n this.content = config.content;\n this.config = config;\n const current = LocalStorageService.get<LangOption>(LANG);\n this.selectedLang = new BehaviorSubject<LangOption>(current || this.default);\n }\n\n Text(className: string): LanguageText {\n return this.content[className].Content[this.selectedLang.value];\n }\n\n get Lang(): LangOption {\n return this.selectedLang.value;\n }\n\n set Lang(lang: LangOption) {\n this.selectedLang.next(lang);\n LocalStorageService.set<LangOption>(LANG, lang);\n }\n}\n","import { Injectable } from '@angular/core';\nimport { ToastController, ToastOptions } from '@ionic/angular';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class ToastService {\n constructor(private toastController: ToastController) {}\n\n async presentToast(request: ToastOptions) {\n const toast = await this.toastController.create({\n message: request.message,\n duration: request.duration,\n position: request.position,\n color: request.color,\n });\n\n await toast.present();\n }\n\n show(request: ToastOptions) {\n this.presentToast(request)\n .then(() => {\n console.info('Toast created');\n })\n .catch((error) => {\n console.error(JSON.stringify(error));\n });\n }\n}\n","/*\n * Public API Surface of valtech-components\n */\n\n/*\n * Public API Surface of valtech-components\n */\n\nexport * from './lib/components/atoms/avatar/avatar.component';\nexport * from './lib/components/atoms/avatar/types';\nexport * from './lib/components/atoms/box/box.component';\nexport * from './lib/components/atoms/box/types';\nexport * from './lib/components/atoms/button/button.component';\nexport * from './lib/components/atoms/button/factory';\nexport * from './lib/components/atoms/display/display.component';\nexport * from './lib/components/atoms/display/types';\nexport * from './lib/components/atoms/divider/divider.component';\nexport * from './lib/components/atoms/divider/types';\nexport * from './lib/components/atoms/href/href.component';\nexport * from './lib/components/atoms/href/types';\nexport * from './lib/components/atoms/icon/icon.component';\nexport * from './lib/components/atoms/icon/types';\nexport * from './lib/components/atoms/image/image.component';\nexport * from './lib/components/atoms/image/types';\nexport * from './lib/components/atoms/progress-bar/progress-bar.component';\nexport * from './lib/components/atoms/progress-bar/types';\nexport * from './lib/components/atoms/text/text.component';\nexport * from './lib/components/atoms/text/types';\nexport * from './lib/components/atoms/title/title.component';\nexport * from './lib/components/atoms/title/types';\n\nexport * from './lib/components/molecules/alert-box/alert-box.component';\nexport * from './lib/components/molecules/alert-box/types';\nexport * from './lib/components/molecules/button-group/button-group.component';\nexport * from './lib/components/molecules/button-group/types';\nexport * from './lib/components/molecules/card/card.component';\nexport * from './lib/components/molecules/card/types';\nexport * from './lib/components/molecules/check-input/check-input.component';\nexport * from './lib/components/molecules/comment-input/comment-input.component';\nexport * from './lib/components/molecules/content-loader/content-loader.component';\nexport * from './lib/components/molecules/content-loader/types';\nexport * from './lib/components/molecules/date-input/date-input.component';\nexport * from './lib/components/molecules/email-input/email-input.component';\nexport * from './lib/components/molecules/expandable-text/expandable-text.component';\nexport * from './lib/components/molecules/expandable-text/types';\nexport * from './lib/components/molecules/file-input/file-input.component';\nexport * from './lib/components/molecules/hint/hint.component';\nexport * from './lib/components/molecules/hour-input/hour-input.component';\nexport * from './lib/components/molecules/link/link.component';\nexport * from './lib/components/molecules/link/types';\nexport * from './lib/components/molecules/links-cake/links-cake.component';\nexport * from './lib/components/molecules/links-cake/types';\nexport * from './lib/components/molecules/notes-box/notes-box.component';\nexport * from './lib/components/molecules/notes-box/types';\nexport * from './lib/components/molecules/number-input/number-input.component';\nexport * from './lib/components/molecules/password-input/password-input.component';\nexport * from './lib/components/molecules/pin-input/pin-input.component';\nexport * from './lib/components/molecules/progress-status/progress-status.component';\nexport * from './lib/components/molecules/progress-status/types';\nexport * from './lib/components/molecules/prompter/prompter.component';\nexport * from './lib/components/molecules/prompter/types';\nexport * from './lib/components/molecules/radio-input/radio-input.component';\nexport * from './lib/components/molecules/search-selector-input/search-selector-input.component';\nexport * from './lib/components/molecules/searchbar/searchbar.component';\nexport * from './lib/components/molecules/select-input/select-input.component';\nexport * from './lib/components/molecules/text-input/text-input.component';\nexport * from './lib/components/molecules/title-block/title-block.component';\nexport * from './lib/components/molecules/title-block/types';\n\nexport * from './lib/components/organisms/banner/banner.component';\nexport * from './lib/components/organisms/banner/types';\nexport * from './lib/components/organisms/footer/footer.component';\nexport * from './lib/components/organisms/form/factory';\nexport * from './lib/components/organisms/form/form-footer/form-footer.component';\nexport * from './lib/components/organisms/form/form.component';\nexport * from './lib/components/organisms/header/header.component';\nexport * from './lib/components/organisms/header/types';\nexport * from './lib/components/organisms/item-list/item-list.component';\nexport * from './lib/components/organisms/item-list/types';\nexport * from './lib/components/organisms/no-content/no-content.component';\nexport * from './lib/components/organisms/no-content/types';\nexport * from './lib/components/organisms/toolbar/toolbar.component';\nexport * from './lib/components/organisms/toolbar/types';\nexport * from './lib/components/organisms/wizard/types';\nexport * from './lib/components/organisms/wizard/wizard-footer/wizard-footer.component';\nexport * from './lib/components/organisms/wizard/wizard.component';\n\nexport * from './lib/components/templates/layout/layout.component';\nexport * from './lib/components/templates/simple/simple.component';\nexport * from './lib/components/templates/simple/types';\n\nexport * from './lib/services/download.service';\nexport * from './lib/services/icons.service';\nexport * from './lib/services/in-app-browser.service';\nexport * from './lib/services/lang-provider/lang-provider.service';\nexport * from './lib/services/lang-provider/types';\nexport * from './lib/services/local-storage.service';\nexport * from './lib/services/navigation.service';\nexport * from './lib/services/theme.service';\nexport * from './lib/services/toast.service';\nexport * from './lib/services/types';\n\nexport * from './lib/components/types';\nexport * from './lib/shared/utils/dom';\nexport * from './lib/shared/utils/text';\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["i1.IconService","i2","i1.DownloadService","i2.IconService","i1","i3"],"mappings":"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"}