asksuite-citrus 0.17.0 → 0.18.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/esm2022/lib/asksuite-citrus.module.mjs +13 -3
- package/esm2022/lib/components/accordion/accordion.component.mjs +35 -0
- package/esm2022/lib/components/accordion/extendable-panel/extendable-panel.component.mjs +35 -0
- package/esm2022/public-api.mjs +3 -1
- package/fesm2022/asksuite-citrus.mjs +76 -4
- package/fesm2022/asksuite-citrus.mjs.map +1 -1
- package/lib/asksuite-citrus.module.d.ts +9 -7
- package/lib/components/accordion/accordion.component.d.ts +8 -0
- package/lib/components/accordion/extendable-panel/extendable-panel.component.d.ts +13 -0
- package/package.json +1 -1
- package/public-api.d.ts +2 -0
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"asksuite-citrus.mjs","sources":["../../../projects/asksuite-citrus/src/lib/components/button/button.component.ts","../../../projects/asksuite-citrus/src/lib/components/button/button.component.html","../../../projects/asksuite-citrus/src/lib/components/input/input.component.ts","../../../projects/asksuite-citrus/src/lib/components/input/input.component.html","../../../projects/asksuite-citrus/src/lib/components/select/select.component.ts","../../../projects/asksuite-citrus/src/lib/components/select/select.component.html","../../../projects/asksuite-citrus/src/lib/components/box/box.component.ts","../../../projects/asksuite-citrus/src/lib/components/box/box.component.html","../../../projects/asksuite-citrus/src/lib/directives/tooltip/ask-tooltip.directive.ts","../../../projects/asksuite-citrus/src/lib/components/avatar/avatar.component.ts","../../../projects/asksuite-citrus/src/lib/components/avatar/avatar.component.html","../../../projects/asksuite-citrus/src/lib/components/dropdown-container/dropdown-container.component.ts","../../../projects/asksuite-citrus/src/lib/components/dropdown-container/dropdown-container.component.html","../../../projects/asksuite-citrus/src/lib/components/chips/chips.component.ts","../../../projects/asksuite-citrus/src/lib/components/chips/chips.component.html","../../../projects/asksuite-citrus/src/lib/components/checkbox/checkbox.component.ts","../../../projects/asksuite-citrus/src/lib/components/checkbox/checkbox.component.html","../../../projects/asksuite-citrus/src/lib/directives/autofocus/autofocus.directive.ts","../../../projects/asksuite-citrus/src/lib/directives/scroll/scroll.directive.ts","../../../projects/asksuite-citrus/src/lib/components/autocomplete/autocomplete.component.ts","../../../projects/asksuite-citrus/src/lib/components/autocomplete/autocomplete.component.html","../../../projects/asksuite-citrus/src/lib/components/date-picker/date-picker-calendar/date-picker-calendar.component.ts","../../../projects/asksuite-citrus/src/lib/components/date-picker/date-picker-calendar/date-picker-calendar.component.html","../../../projects/asksuite-citrus/src/lib/components/date-picker/date-picker.component.ts","../../../projects/asksuite-citrus/src/lib/components/date-picker/date-picker.component.html","../../../projects/asksuite-citrus/src/lib/components/skeleton/skeleton.component.ts","../../../projects/asksuite-citrus/src/lib/components/skeleton/skeleton.component.html","../../../projects/asksuite-citrus/src/lib/services/toast/toast.config.ts","../../../projects/asksuite-citrus/src/lib/services/toast/toast-ref.ts","../../../projects/asksuite-citrus/src/lib/components/toast/toast.component.ts","../../../projects/asksuite-citrus/src/lib/components/toast/toast.component.html","../../../projects/asksuite-citrus/src/lib/directives/spinner/spinner.component.ts","../../../projects/asksuite-citrus/src/lib/directives/spinner/spinner.component.html","../../../projects/asksuite-citrus/src/lib/directives/badge/badge.directive.ts","../../../projects/asksuite-citrus/src/lib/directives/button/ask-button.directive.ts","../../../projects/asksuite-citrus/src/lib/directives/spinner/spinner.directive.ts","../../../projects/asksuite-citrus/src/lib/directives/ask-dropdown.directive.ts","../../../projects/asksuite-citrus/src/lib/components/modal/modal.component.ts","../../../projects/asksuite-citrus/src/lib/components/modal/modal.component.html","../../../projects/asksuite-citrus/src/lib/components/modal/directives/modal-body.directive.ts","../../../projects/asksuite-citrus/src/lib/components/modal/directives/modal-footer.directive.ts","../../../projects/asksuite-citrus/src/lib/components/modal/directives/modal-header.directive.ts","../../../projects/asksuite-citrus/src/lib/components/character-counter/character-counter.component.ts","../../../projects/asksuite-citrus/src/lib/components/character-counter/character-counter.component.html","../../../projects/asksuite-citrus/src/lib/asksuite-citrus.module.ts","../../../projects/asksuite-citrus/src/lib/services/toast/toast.service.ts","../../../projects/asksuite-citrus/src/lib/services/modal/modal-ref.ts","../../../projects/asksuite-citrus/src/lib/services/modal/modal.config.ts","../../../projects/asksuite-citrus/src/lib/services/modal/modal.service.ts","../../../projects/asksuite-citrus/src/public-api.ts","../../../projects/asksuite-citrus/src/asksuite-citrus.ts"],"sourcesContent":["import { Component, EventEmitter, Input, OnInit, Output } from '@angular/core';\n\n@Component({\n selector: 'ask-button',\n templateUrl: './button.component.html',\n styleUrls: ['./button.component.scss'],\n})\nexport class ButtonComponent {\n // Properties\n @Input() label = '';\n @Input() size: 'xsmall' | 'small' | 'normal' | 'medium' | 'large' = 'normal';\n @Input() type: 'primary' | 'secondary' | 'outline' | 'livechat' | 'dropdown' | 'icon-only' = 'primary';\n @Input() rounded: boolean = false;\n @Input() disabled = false;\n @Input() labelSide: 'left' | 'right' = 'left';\n @Input() loading: boolean = false;\n\n // Event handlers\n @Output() onClick = new EventEmitter<MouseEvent>();\n @Output() onFocus = new EventEmitter<FocusEvent>();\n @Output() onBlur = new EventEmitter<FocusEvent>();\n\n buttonClasses: string = '-primary';\n labelClass: string = '';\n\n\n ngOnChanges(){\n this.buttonClasses = `-${this.type} ${this.size} ${this.rounded ? 'rounded' : ''}`;\n this.labelClass = `-${this.labelSide}`\n } \n}\n","<button\n type=\"button\"\n data-testid=\"button\"\n [ngClass]=\"buttonClasses\"\n [disabled]=\"disabled\"\n (click)=\"onClick.emit($event)\"\n (focus)=\"onFocus.emit($event)\"\n (blur)=\"onBlur.emit($event)\"\n>\n <span data-testid=\"spinner\" *ngIf=\"loading\" class=\"spinner\"></span>\n <span data-testid=\"label\" *ngIf=\"label\" class=\"label\" [ngClass]=\"labelClass\">{{ label }}</span>\n <ng-content></ng-content>\n</button>\n","import {\n Component,\n ElementRef,\n EventEmitter,\n forwardRef,\n Input,\n OnInit,\n Output,\n Provider,\n ViewChild,\n} from '@angular/core';\nimport { ControlValueAccessor, NG_VALUE_ACCESSOR } from '@angular/forms';\n\nconst valueAccessor: Provider = {\n provide: NG_VALUE_ACCESSOR,\n multi: true,\n useExisting: forwardRef(() => InputComponent),\n};\n\n@Component({\n selector: 'ask-input',\n templateUrl: './input.component.html',\n styleUrls: ['./input.component.scss'],\n providers: [valueAccessor],\n})\nexport class InputComponent implements ControlValueAccessor {\n _iconColor = '';\n\n @Input() value: string = '';\n @Input() type: 'text' | 'email' | 'password' = 'text';\n @Input() variation: 'filled' | 'outlined' = 'outlined'\n @Input() placeholder!: string;\n @Input() leftIcon?: string;\n @Input() rightIcon?: string;\n @Input() disabled: boolean = false;\n @Input() noBorder: boolean = false;\n\n\n @Input() set iconColor(color: string) {\n this._iconColor = `var(--${color})`;\n }\n\n @Output() valueChange = new EventEmitter<string>();\n @Output() change = new EventEmitter<Event>();\n @Output() input = new EventEmitter<Event>();\n @Output() click = new EventEmitter<MouseEvent>();\n @Output() focus = new EventEmitter<FocusEvent>();\n @Output() blur = new EventEmitter<FocusEvent>();\n @Output() leftIconClick = new EventEmitter<MouseEvent>();\n @Output() rightIconClick = new EventEmitter<MouseEvent>();\n\n onChange!: (value?: any) => void;\n onTouch!: () => void;\n\n isFocused = false;\n\n @ViewChild('inputElement', { static: true }) inputElement!: ElementRef;\n\n\n onModelChange(newValue: string) {\n if (this.value !== newValue) {\n this.writeValue(newValue);\n this.onChange(newValue);\n }\n this.onTouch();\n }\n\n handleChange(event: Event) {\n this.change.emit(event);\n }\n\n handleInput(event: Event) {\n this.input.emit(event);\n }\n\n handleFocus(event: FocusEvent) {\n this.isFocused = true;\n this.focus.emit(event);\n }\n\n handleBlur(event: FocusEvent) {\n this.isFocused = false;\n this.blur.emit(event);\n }\n\n /*\n * Control value accessor methods\n */\n\n registerOnChange(fn: any): void {\n this.onChange = fn;\n }\n\n registerOnTouched(fn: any): void {\n this.onTouch = fn;\n }\n\n setDisabledState(isDisabled: boolean): void {\n this.disabled = isDisabled;\n }\n\n writeValue(value: string): void {\n this.value = value;\n this.valueChange.emit(this.value);\n }\n}\n","<div\n class=\"input-container\"\n [ngClass]=\"{\n 'focus': isFocused,\n 'disabled': disabled,\n 'left-icon': leftIcon,\n 'right-icon': rightIcon,\n }\"\n (click)=\"inputElement.focus()\"\n>\n <span\n *ngIf=\"leftIcon\"\n class=\"material-icons icon-left\"\n [style.color]=\"_iconColor\"\n (click)=\"leftIconClick.emit($event)\"\n >\n {{ leftIcon }}\n </span>\n\n <input\n #inputElement\n class=\"ask-input\"\n [class.-no-border]=\"noBorder\"\n [class.-filled]=\"variation === 'filled'\"\n [type]=\"type\"\n [placeholder]=\"placeholder || ''\"\n (click)=\"click.emit($event)\"\n (focus)=\"handleFocus($event)\"\n (blur)=\"handleBlur($event)\"\n (change)=\"handleChange($event)\"\n (input)=\"handleInput($event)\"\n [disabled]=\"disabled\"\n [ngModel]=\"value\"\n (ngModelChange)=\"onModelChange($event)\"\n />\n\n <span\n *ngIf=\"rightIcon\"\n class=\"material-icons icon-right\"\n [style.color]=\"_iconColor\"\n (click)=\"rightIconClick.emit($event)\"\n >\n {{ rightIcon }}\n </span>\n</div>\n","import {Component, ElementRef, EventEmitter, forwardRef, HostListener, Input, Output, Provider} from '@angular/core';\nimport {ControlValueAccessor, NG_VALUE_ACCESSOR} from \"@angular/forms\";\n\nexport interface Option {\n value: string;\n label: string;\n}\n\nconst valueAccessor: Provider = {\n provide: NG_VALUE_ACCESSOR,\n multi: true,\n useExisting: forwardRef(() => SelectComponent),\n}\n\n@Component({\n selector: 'ask-select',\n templateUrl: './select.component.html',\n styleUrls: ['./select.component.scss'],\n providers: [ valueAccessor ]\n})\nexport class SelectComponent implements ControlValueAccessor {\n\n @Input() value: any;\n @Output() valueChange = new EventEmitter();\n @Input() options: Array<Option> = [];\n @Input() maxItems = 4;\n @Input() showNoneOption = true;\n\n // Labels\n @Input() selectAnOptionLabel = 'Selecione uma opção';\n @Input() noOptionLabel = 'Nenhuma opção disponível';\n @Input() noneLabel = 'Nenhum';\n\n showList = false;\n selectedOption?: Option;\n\n constructor(\n private elementRef: ElementRef\n ) { }\n\n @HostListener('document:click', ['$event'])\n clickOut(event: PointerEvent) {\n const hasComponentInPath = event.composedPath().find((el: any) => el?.nodeName?.toLowerCase() === 'ask-select');\n\n if (\n this.elementRef.nativeElement.contains(event.target) ||\n hasComponentInPath\n ) {\n return;\n }\n\n this.showList = false;\n }\n\n get listMaxHeight() {\n const optionHeight = 46;\n\n return this.maxItems * optionHeight + this.maxItems + 1;\n }\n\n handleSelectClick() {\n this.showList = !this.showList;\n }\n\n handleOptionClick(option: Option | undefined) {\n this.setSelectedOption(option);\n\n }\n\n setSelectedOption(option: Option | undefined, emit: boolean = true) {\n if (option?.value === this.value) {\n return;\n }\n\n this.selectedOption = option;\n this.value = option?.value || null;\n\n if (emit) {\n this.onChange(this.value);\n this.onTouch(this.value);\n this.valueChange.emit(this.value);\n }\n }\n\n onChange: any = () => {\n }\n onTouch: any = () => {\n }\n\n writeValue(value: any) {\n this.value = value;\n this.setSelectedOption(this.value, false);\n }\n\n registerOnChange(fn: any) {\n this.onChange = fn\n }\n\n registerOnTouched(fn: any) {\n this.onTouch = fn\n }\n\n}\n","<div\n class=\"select-container\"\n (click)=\"handleSelectClick()\"\n>\n <select [hidden]=\"true\"></select>\n\n <span class=\"label\">{{ selectedOption?.label || selectAnOptionLabel }}</span>\n <span class=\"material-icons arrow\">arrow_drop_down</span>\n\n <div\n *ngIf=\"showList\"\n class=\"options-list\"\n [style.max-height]=\"listMaxHeight + 'px'\"\n >\n <!-- No options available -->\n <div\n *ngIf=\"!options?.length\"\n class=\"option\"\n >\n {{ noOptionLabel }}\n </div>\n\n <div\n *ngIf=\"showNoneOption && options?.length\"\n class=\"option\"\n (click)=\"handleOptionClick(undefined)\"\n >\n {{ noneLabel }}\n </div>\n\n <div\n *ngFor=\"let option of options\"\n class=\"option\"\n (click)=\"handleOptionClick(option)\"\n >\n {{ option.label }}\n </div>\n </div>\n</div>\n","import {Component, Input, OnInit} from '@angular/core';\n\n@Component({\n selector: 'ask-box',\n templateUrl: './box.component.html',\n styleUrls: ['./box.component.scss']\n})\nexport class BoxComponent implements OnInit {\n\n @Input() title?: string;\n @Input() subtitle?: string;\n @Input() canCollapse = false;\n @Input() collapse = false;\n\n constructor() { }\n\n ngOnInit(): void {\n }\n\n toggleCollapse() {\n this.collapse = !this.collapse;\n }\n\n}\n","<div class=\"box-container\">\n <header *ngIf=\"canCollapse || title || subtitle\">\n <h1 *ngIf=\"title\" class=\"title\">{{ title }}</h1>\n <h2 *ngIf=\"subtitle\" class=\"subtitle\">{{ subtitle }}</h2>\n\n <span\n *ngIf=\"canCollapse\"\n class=\"collapse-icon material-icons\"\n [class.collapsed]=\"!collapse\"\n (click)=\"toggleCollapse()\"\n >\n expand_more\n </span>\n </header>\n\n <div *ngIf=\"!collapse\" class=\"content\" [style.padding-top]=\"canCollapse ? '32px' : '0'\">\n <ng-content></ng-content>\n </div>\n</div>\n","import { Directive, HostListener, Input, OnInit } from '@angular/core';\nimport { MatTooltip, TooltipPosition } from '@angular/material/tooltip';\n\n@Directive({\n selector: '[askTooltip]',\n providers: [\n MatTooltip\n ]\n})\nexport class AskTooltipDirective implements OnInit {\n\n @Input() askTooltipMessage: string = '';\n @Input() askTooltipPosition: TooltipPosition = 'below';\n\n constructor(private tooltip: MatTooltip) { }\n\n ngOnInit(): void {\n this.tooltip.position = this.askTooltipPosition;\n this.tooltip.tooltipClass = ['ask-tooltip', `-${this.askTooltipPosition}`];\n this.tooltip.touchGestures = 'off';\n }\n \n @HostListener('mouseenter')\n onMouseEnter() {\n if (!this.askTooltipMessage) return;\n \n this.tooltip.message = this.askTooltipMessage;\n this.tooltip.show();\n }\n \n @HostListener('mouseleave')\n onMouseLeave() {\n this.tooltip.hide();\n }\n}\n","import {Component, Input} from '@angular/core';\nimport { TooltipPosition } from '@angular/material/tooltip';\n\nexport enum AvatarStatus {\n NONE = '',\n ONLINE = 'online',\n BUSY = 'busy',\n ABSENT = 'absent',\n OFFLINE = 'offline'\n}\n\n@Component({\n selector: 'ask-avatar',\n templateUrl: './avatar.component.html',\n styleUrls: ['./avatar.component.scss']\n})\nexport class AvatarComponent {\n\n @Input() src: string = '';\n @Input() status: AvatarStatus | 'none' | 'online' | 'busy' | 'absent' = AvatarStatus.NONE;\n @Input() background: 'primary' | 'secondary' | 'dark' = \"primary\";\n @Input() avatarTitle: string = '';\n @Input() avatarTitlePosition: TooltipPosition = 'after';\n @Input() statusTitle: string = '';\n @Input()\n set name(value: string) {\n if (value) {\n const nameParts = value.trim().split(' ');\n this._initials = nameParts.length > 1\n ? `${nameParts[0].toUpperCase().at(0)}${nameParts[nameParts.length - 1].toUpperCase().at(0)}`\n : `${nameParts[0].toUpperCase().at(0)}`\n this.background = 'dark'\n } else {\n this._initials = '';\n }\n };\n\n static readonly BOT_ICON: string = '../assets/img/asksuite-icon.svg';\n\n protected _initials = '';\n\n get image() {\n return this.src || AvatarComponent.BOT_ICON;\n }\n\n}\n","<div class=\"avatar-container\"\n [ngClass]=\"{\n '-primary': !this.src && background === 'primary',\n '-secondary': !this.src && background === 'secondary',\n '-dark': !this.src && background === 'dark',\n '-initials': !!_initials\n }\"\n>\n <img \n *ngIf=\"src || !_initials\" \n [src]=\"image\"\n alt=\"avatar\"\n askTooltip\n [askTooltipMessage]=\"avatarTitle\"\n [askTooltipPosition]=\"avatarTitlePosition\"\n />\n <span \n *ngIf=\"!src && _initials\"\n class=\"initials\"\n askTooltip\n [askTooltipMessage]=\"avatarTitle\"\n [askTooltipPosition]=\"avatarTitlePosition\"\n >{{_initials}}</span>\n\n <span \n [class]=\"'status ' + status\"\n askTooltip\n [askTooltipMessage]=\"statusTitle\"\n [askTooltipPosition]=\"'after'\"\n ></span>\n</div>\n","import {Component, Input, OnInit, TemplateRef} from '@angular/core';\n\n@Component({\n selector: 'ask-dropdown-container',\n templateUrl: './dropdown-container.component.html',\n styleUrls: ['./dropdown-container.component.scss']\n})\nexport class DropdownContainerComponent implements OnInit {\n\n @Input() content!: TemplateRef<any>;\n\n constructor() { }\n\n ngOnInit(): void {\n }\n\n}\n","<div class=\"dropdown-container\">\n <ng-container>\n <ng-template [ngTemplateOutlet]=\"content\"></ng-template>\n </ng-container>\n</div>\n","import {ChangeDetectionStrategy, ChangeDetectorRef, Component, EventEmitter, Input, Output} from '@angular/core';\n\n@Component({\n selector: 'ask-chips',\n templateUrl: './chips.component.html',\n styleUrls: ['./chips.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class ChipsComponent {\n\n @Input()\n set appearance(value: 'light' | 'regular' | 'primary' | 'tag') {\n this._isAppearanceLight = value === 'light';\n this._isAppearancePrimary = value === 'primary'\n this._isAppearanceTag = value === 'tag'\n };\n @Input()\n showAction: boolean = false;\n @Input()\n set size(value: 'small' | 'regular') {\n this._isSmall = value === \"small\";\n };\n\n @Input() color?: string;\n\n protected _isSmall = false;\n protected _isAppearanceLight = false;\n protected _isAppearancePrimary = false;\n protected _isAppearanceTag = false;\n\n constructor(private change: ChangeDetectorRef) {}\n\n @Output()\n protected action = new EventEmitter<void>()\n\n}\n","<div class=\"chip-container\"\n [ngClass]=\"{\n '-action': showAction,\n '-small': _isSmall,\n '-light': _isAppearanceLight,\n '-primary': _isAppearancePrimary,\n '-tag': _isAppearanceTag,\n }\"\n [style.background-color]=\"color\"\n>\n <span class=\"body\" #body [title]=\"body.innerText\"><ng-content></ng-content></span>\n <div class=\"action\" *ngIf=\"showAction\">\n <span class=\"material-icons\" data-testid=\"icon\" (click)=\"$event.stopPropagation(); action.emit()\">cancel</span>\n </div>\n</div>\n","import {\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component,\n EventEmitter,\n forwardRef,\n Input,\n Output,\n Provider\n} from '@angular/core';\nimport {ControlValueAccessor, NG_VALUE_ACCESSOR} from \"@angular/forms\";\n\nconst valueAccessor: Provider = {\n provide: NG_VALUE_ACCESSOR,\n multi: true,\n useExisting: forwardRef(() => CheckboxComponent),\n}\n\n@Component({\n selector: 'ask-checkbox',\n templateUrl: './checkbox.component.html',\n styleUrls: ['./checkbox.component.scss'],\n providers: [valueAccessor],\n})\nexport class CheckboxComponent implements ControlValueAccessor {\n @Input() value: boolean | undefined;\n @Input() disabled: boolean = false;\n\n @Output() valueChange = new EventEmitter<boolean>();\n @Output() change = new EventEmitter<Event>();\n @Output() click = new EventEmitter<MouseEvent>();\n @Output() focus = new EventEmitter<FocusEvent>();\n\n isFocused = false;\n\n handleFocus(event: FocusEvent) {\n this.isFocused = true;\n this.focus.emit(event);\n }\n\n onModelChange(newValue: boolean) {\n this.value = newValue;\n this.onChange(newValue);\n this.valueChange.emit(newValue);\n }\n\n handleChange(event: Event) {\n this.change.emit(event);\n }\n\n /*\n * Control value accessor methods\n */\n\n registerOnChange(fn: any): void {\n this.onChange = fn;\n }\n\n onChange(_: any): void {\n }\n\n registerOnTouched(fn: any): void {\n this.onTouch = fn;\n }\n\n onTouch = () => {};\n\n setDisabledState(isDisabled: boolean): void {\n this.disabled = isDisabled;\n }\n\n writeValue(value: boolean): void {\n this.value = value;\n }\n\n}\n","<label class=\"ask-checkbox\">\n <input type=\"checkbox\"\n (click)=\"click.emit($event)\"\n (focus)=\"handleFocus($event)\"\n (change)=\"handleChange($event)\"\n (touchend)=\"onTouch()\"\n [disabled]=\"disabled\"\n [ngModel]=\"value\"\n (ngModelChange)=\"onModelChange($event)\"\n />\n <span #text [title]=\"text.innerText\"><ng-content></ng-content></span>\n</label>\n","import {AfterViewInit, Directive, ElementRef} from '@angular/core';\n\n@Directive({\n selector: '[askAutofocus]'\n})\nexport class AutofocusDirective implements AfterViewInit{\n\n constructor(private elRef: ElementRef) { }\n\n ngAfterViewInit() {\n if (this.elRef) this.elRef.nativeElement.focus();\n }\n\n}\n","import {Directive, ElementRef, EventEmitter, HostListener, Input, Output} from '@angular/core';\n\n@Directive({\n selector: '[askScroll]'\n})\nexport class ScrollDirective {\n @Input() askScrollThreshold: number = 0;\n\n @Output() scrollEnd = new EventEmitter<void>();\n\n constructor(private el: ElementRef) {}\n\n @HostListener('scroll', ['$event'])\n onScroll(event: Event) {\n const element = event.target as HTMLElement;\n if (this.isScrollAtEnd(element)) {\n this.scrollEnd.emit();\n }\n }\n\n private isScrollAtEnd(element: HTMLElement): boolean {\n const scrollTop = element.scrollTop || element.scrollTop === 0 ? element.scrollTop : 0;\n const scrollHeight = element.scrollHeight || 0;\n const clientHeight = element.clientHeight || 0;\n return scrollTop + clientHeight >= (scrollHeight - Number(this.askScrollThreshold));\n }\n\n}\n","import {\n AfterViewInit,\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component,\n DestroyRef,\n ElementRef,\n EventEmitter,\n forwardRef,\n HostListener,\n inject,\n Input,\n OnChanges,\n Output,\n Provider,\n SimpleChanges,\n TemplateRef,\n ViewChild,\n ViewContainerRef\n} from '@angular/core';\nimport {ControlValueAccessor, FormBuilder, FormControl, FormGroup, NG_VALUE_ACCESSOR} from \"@angular/forms\";\nimport {debounceTime, map, tap} from \"rxjs\";\nimport {Overlay, OverlayRef} from \"@angular/cdk/overlay\";\nimport {TemplatePortal} from \"@angular/cdk/portal\";\nimport {takeUntilDestroyed} from \"@angular/core/rxjs-interop\";\nimport { TranslateService } from '@ngx-translate/core';\n\nconst valueAccessor: Provider = {\n provide: NG_VALUE_ACCESSOR,\n multi: true,\n useExisting: forwardRef(() => AutocompleteComponent),\n}\n\n@Component({\n selector: 'ask-autocomplete',\n templateUrl: './autocomplete.component.html',\n styleUrls: ['./autocomplete.component.scss'],\n providers: [valueAccessor],\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class AutocompleteComponent implements AfterViewInit, ControlValueAccessor, OnChanges {\n\n @ViewChild(\"autocomplete\") input: ElementRef | undefined\n @ViewChild(\"list\") list: ElementRef | undefined\n @ViewChild(\"wrapper\") wrapper: ElementRef | undefined\n @ViewChild('overlayContent') overlayContent: TemplateRef<any> | undefined\n\n protected inputControl = new FormControl(\"\")\n protected filteredOptions: any[] = [];\n protected paginatedFilteredOptions: any[] = [];\n protected selectedOption?: any;\n protected selection: any[] = [];\n protected closed = true;\n protected chipsCollapsed = true\n protected checkAllValue = false\n protected disabled = false;\n protected showChips = false;\n protected showAllSelectionBtn = false;\n protected showPlaceholder = false;\n protected showExpandedSelectionActions = false;\n protected showSelectAllCheckbox = false;\n protected chipsContainerClasses = {\n \"-two\": false,\n \"-three\": false,\n \"-four\": false,\n \"-many\": false\n };\n protected optionsSelected: {[key: string | number]: boolean} = {}\n\n private _overlayRef: OverlayRef | undefined;\n private _portal: TemplatePortal<any> | undefined;\n private _destroy = inject(DestroyRef)\n private readonly ITEMS_PER_PAGE = 40\n private _pageNumber = 1\n private _reachedEnd = false;\n _selectAllMessage = '';\n\n\n\n @Input()\n filterFn?: (item: string) => any[];\n\n @Input()\n displayFn?: (item: any) => string;\n\n @Input()\n multiple = false;\n\n @Input()\n valueProp: string = ''\n\n @Input()\n options: any[] = []\n\n @Input()\n placeholder = ''\n\n @Input()\n emptyMessage = 'NO_OPTIONS';\n\n @Input()\n selectAll = false\n\n @Input()\n allOptionsSelectedText: string | null = null;\n\n @Input()\n selectAllMessage = this.translate.instant('SELECT_ALL');\n \n @Input()\n iconPropReference?: string;\n\n @Output()\n itemCheck = new EventEmitter();\n\n constructor(private formBuilder: FormBuilder,\n private overlay: Overlay,\n private viewContainerRef: ViewContainerRef,\n private change: ChangeDetectorRef,\n private translate: TranslateService) {\n }\n\n ngAfterViewInit() {\n this.checkAllValue = this.isAllOptionsSelected\n this.handleInputChange();\n }\n\n get isAllOptionsSelected() {\n return this.selection.length === this.options.length\n }\n\n ngOnChanges(changes: SimpleChanges) {\n if (changes['options']) {\n this._pageNumber = 1\n this._reachedEnd = false\n this.paginatedFilteredOptions = []\n\n this.filteredOptions = changes['options'].currentValue\n this.updateValidation()\n }\n }\n\n private handleInputChange() {\n this.inputControl.valueChanges.pipe(\n takeUntilDestroyed(this._destroy),\n debounceTime(300),\n tap(() => {\n this._pageNumber = 1\n this._reachedEnd = false\n this.paginatedFilteredOptions = []\n }),\n map(value => this.filterFn ? this.filterFn(value || '') : [])\n ).subscribe(items => {\n this.filteredOptions = items\n this.getMoreItems()\n })\n }\n\n private handleSelectionChange(values: any[]) {\n this.selection = values\n this.checkAllValue = this.isAllOptionsSelected\n\n if (!this.chipsCollapsed) {\n this.chipsCollapsed = this.selection.length < 2\n }\n this.updateValidation()\n this.change.detectChanges()\n }\n\n private updateChipsContainerClasses() {\n this.chipsContainerClasses = {\n \"-two\": this.selectedOptions.length === 2,\n \"-three\": this.selectedOptions.length === 3,\n \"-four\": this.selectedOptions.length === 4,\n \"-many\": this.selectedOptions.length >= 5\n }\n }\n\n handleOptionSelected(item: any) {\n this.selectedOption = item;\n this.onChange(this.selectedOption)\n this.hideOptions()\n this.change.detectChanges();\n }\n\n handleAutocompleteClick(event?: Event) {\n event?.stopPropagation()\n if (!this.disabled) {\n this.chipsCollapsed = true;\n this.closed\n ? this.showOptions()\n : this.hideOptions()\n }\n this.updateValidation();\n this.updateChipsContainerClasses()\n this.change.detectChanges()\n }\n\n protected handleChipsListActionClick(event: Event) {\n event.stopPropagation()\n this.chipsCollapsed = !this.chipsCollapsed;\n this.updateValidation()\n this.updateChipsContainerClasses()\n this.change.detectChanges()\n }\n\n showOptions() {\n this.closed = false\n if (!this._overlayRef && this.wrapper) {\n this._overlayRef = this.getOverlayConfig(this.wrapper)\n\n this._portal = new TemplatePortal(this.overlayContent!, this.viewContainerRef)\n }\n\n this._overlayRef?.attach(this._portal);\n\n this.updateValidation();\n if (this.paginatedFilteredOptions.length === 0) this.getMoreItems()\n }\n\n private getOverlayConfig(wrapper: ElementRef) {\n return this.overlay.create({\n width: wrapper.nativeElement.offsetWidth,\n positionStrategy: this.overlay.position()\n .flexibleConnectedTo(wrapper.nativeElement)\n .withPositions([{\n originX: \"start\",\n originY: \"bottom\",\n overlayX: \"start\",\n overlayY: \"top\"\n }])\n });\n }\n\n hideOptions() {\n this.closed = true;\n this.chipsCollapsed = true;\n this._overlayRef?.detach()\n this.change.detectChanges()\n this._pageNumber = 1;\n this.paginatedFilteredOptions = [];\n this.updateValidation();\n this.change.detectChanges()\n }\n\n @HostListener(\"window:mousedown\", ['$event'])\n handleClick(event: MouseEvent) {\n if (\n !this.closed\n && !this.wrapper?.nativeElement.contains(event.target)\n && !this.list?.nativeElement.contains(event.target)) {\n this.hideOptions()\n this.change.detectChanges()\n }\n }\n\n get selectedOptions(): any[] {\n if (!this.multiple) return this.selectedOption ? [this.selectedOption] : []\n\n return this.chipsCollapsed\n ? this.selection.slice(0, 1)\n : this.selection;\n }\n\n handleSelectAll(checked: boolean) {\n this.selectAllOptions(checked);\n this.selection = checked ? this.options : []\n this.onChange(this.selection)\n this.updateValidation()\n this.change.detectChanges()\n this.itemCheck.emit(this.selection);\n }\n\n valueChange(option: any, value: boolean) {\n this.optionsSelected[option[this.valueProp]] = value\n this.selection = this.options.filter(o => this.optionsSelected[o[this.valueProp]])\n this.checkAllValue = this.selection.length === this.options.length\n this.onChange(this.selection)\n this.onTouched()\n\n this.updateChipsContainerClasses()\n this.updateValidation();\n this.change.detectChanges();\n this.itemCheck.emit(this.selection);\n }\n\n selectAllOptions(selected: boolean) {\n this.optionsSelected = this.options\n .reduce((acc, curr) => {\n acc[curr[this.valueProp]] = selected\n return acc;\n }, {} as { [key: string]: boolean })\n }\n\n handleChipAction(option: any) {\n if (this.multiple) {\n this.optionsSelected[option[this.valueProp]] = false\n this.selection = this.selection.filter(selectedOption =>\n selectedOption[this.valueProp] !== option[this.valueProp])\n this.onChange(this.selection)\n } else {\n this.selectedOption = null;\n this.onChange([])\n }\n\n this.updateChipsContainerClasses()\n this.updateValidation();\n this.change.detectChanges();\n }\n\n display(option: any) {\n return this.displayFn && this.displayFn(option)\n }\n\n getMoreItems() {\n const sortedFilteredOptions = [...this.filteredOptions];\n\n this.sortSelectedFirst(sortedFilteredOptions, this.selection, this.valueProp)\n const nextPageItems = sortedFilteredOptions\n .slice(\n this.ITEMS_PER_PAGE * (this._pageNumber - 1),\n this.ITEMS_PER_PAGE * this._pageNumber\n );\n\n if (nextPageItems.length) {\n this.paginatedFilteredOptions = [...this.paginatedFilteredOptions, ...nextPageItems];\n this._pageNumber += 1\n } else {\n this._reachedEnd = true\n }\n this.updateValidation();\n this.change.detectChanges()\n }\n\n sortSelectedFirst(items: Array<any>, selectedItems: Array<any>, prop: string) {\n items.sort((a, b) => {\n const aIsSelected = selectedItems.some(item => item[prop] === a[prop]);\n const bIsSelected = selectedItems.some(item => item[prop] === b[prop]);\n\n if (aIsSelected && !bIsSelected) {\n return -1;\n } else if (!aIsSelected && bIsSelected) {\n return 1;\n } else {\n return 0;\n }\n });\n }\n\n protected updateValidation() {\n this.checkAllValue = this.isAllOptionsSelected\n this.showChips = Boolean(this.selectedOptions.length) && this.closed && (\n !this.multiple || !this.checkAllValue || (this.checkAllValue && !Boolean(this.allOptionsSelectedText))\n );\n this.showAllSelectionBtn = this.multiple && Boolean(this.selection.length > 1) && this.chipsCollapsed;\n this.showPlaceholder = this.closed && (\n !this.selectedOptions.length || (this.checkAllValue && Boolean(this.allOptionsSelectedText) && this.multiple)\n );\n this.showExpandedSelectionActions = this.multiple && !this.chipsCollapsed;\n this.showSelectAllCheckbox = Boolean(this.paginatedFilteredOptions.length) && this.selectAll;\n }\n\n // Control Value Accessor\n\n writeValue(obj: any[] | any): void {\n this.selection = [];\n\n if (this.multiple && Array.isArray(obj)) {\n this.optionsSelected = {}\n obj.forEach(option => this.optionsSelected[option[this.valueProp]] = true)\n } else {\n this.selectedOption = obj\n }\n\n if (this.multiple) {\n this.handleSelectionChange(obj)\n }\n\n this.change.detectChanges();\n }\n\n onChange = (_: any) => {}\n\n registerOnChange(fn: any): void {\n this.onChange = fn;\n }\n\n onTouched = () => {}\n\n registerOnTouched(fn: any): void {\n this.onTouched = fn;\n }\n\n setDisabledState(isDisabled: boolean): void {\n this.disabled = isDisabled;\n }\n}\n","<div\n class=\"autocomplete-wrapper\"\n data-testid=\"autocomplete-wrapper\"\n [class.-closed]=\"closed\"\n [class.-opened]=\"!closed\"\n #wrapper\n (click)=\"handleAutocompleteClick()\"\n>\n <div class=\"autocomplete\" #autocomplete>\n <input\n class=\"search-field\"\n askAutofocus\n *ngIf=\"!closed; else selectionOrPlaceholder\"\n (click)=\"$event.stopPropagation()\"\n [formControl]=\"inputControl\"\n [placeholder]=\"placeholder\"\n />\n <ng-template #selectionOrPlaceholder>\n <ng-container *ngIf=\"showChips\">\n <div\n class=\"chip-list\"\n [class.-collapsed]=\"chipsCollapsed\"\n [ngClass]=\"chipsContainerClasses\"\n >\n <ask-chips\n [style.max-width]=\"chipsCollapsed ? '85%' : '95%'\"\n [showAction]=\"true\"\n *ngFor=\"let option of selectedOptions\"\n (action)=\"handleChipAction(option)\"\n >\n {{ display(option) }}\n </ask-chips>\n <span\n class=\"expand\"\n data-testid=\"see-more\"\n *ngIf=\"showAllSelectionBtn\"\n (click)=\"handleChipsListActionClick($event)\"\n >\n +{{ selection.length - 1 }}\n </span>\n </div>\n </ng-container>\n <span\n class=\"empty-placeholder\"\n data-testid=\"placeholder\"\n *ngIf=\"showPlaceholder\"\n >\n {{\n checkAllValue && allOptionsSelectedText\n ? allOptionsSelectedText\n : placeholder\n }}\n </span>\n </ng-template>\n <span\n class=\"btn-expand material-icons\"\n data-testid=\"btn-expand\"\n [class.-disabled]=\"disabled\"\n *ngIf=\"chipsCollapsed\"\n >\n {{ closed ? \"expand_more\" : \"expand_less\" }}\n </span>\n </div>\n <div class=\"actions\" *ngIf=\"showExpandedSelectionActions\">\n <span\n class=\"see-more\"\n data-testid=\"see-less\"\n (click)=\"handleChipsListActionClick($event)\"\n >\n {{ \"SEE_LESS\" | translate }}\n </span>\n <span\n class=\"btn-expand material-icons\"\n data-testid=\"btn-expand\"\n [class.-disabled]=\"disabled\"\n >\n {{ closed ? \"expand_more\" : \"expand_less\" }}\n </span>\n </div>\n</div>\n\n<ng-template #overlayContent>\n <div #list class=\"menu-container\" [class.-multiple]=\"multiple\">\n <ng-container *ngIf=\"!multiple; else multipleSelection\">\n <div class=\"list\" askScroll [askScrollThreshold]=\"50\">\n <ng-container *ngFor=\"let option of paginatedFilteredOptions\">\n <div\n class=\"option-item\"\n [class.-highlighted]=\"\n selectedOption && selectedOption[valueProp] === option[valueProp]\n \"\n (click)=\"handleOptionSelected(option)\"\n >\n <p class=\"text\">{{ display(option) }}</p>\n </div>\n </ng-container>\n </div>\n </ng-container>\n <ng-template #multipleSelection>\n <div class=\"option-item\" *ngIf=\"showSelectAllCheckbox\">\n <ask-checkbox\n (valueChange)=\"handleSelectAll($event)\"\n [(ngModel)]=\"checkAllValue\"\n >{{selectAllMessage}}</ask-checkbox\n >\n </div>\n <div\n askScroll\n [askScrollThreshold]=\"50\"\n (scrollEnd)=\"getMoreItems()\"\n data-testid=\"options-form\"\n class=\"options-form\"\n [class.-select-all]=\"showSelectAllCheckbox\"\n >\n <ng-container *ngFor=\"let option of paginatedFilteredOptions\">\n <div class=\"option-item\">\n <ask-checkbox\n [value]=\"optionsSelected[option[valueProp]]\"\n (valueChange)=\"valueChange(option, $event)\"\n >\n <div class=\"checkbox-content\">\n <img\n data-testid=\"checkbox-item-icon\"\n class=\"icon\"\n *ngIf=\"iconPropReference\"\n [src]=\"option[iconPropReference]\"\n alt=\"\"\n />\n {{ display(option) }}\n </div>\n </ask-checkbox>\n </div>\n </ng-container>\n </div>\n </ng-template>\n <span class=\"empty\" *ngIf=\"!filteredOptions.length\">{{\n emptyMessage | translate\n }}</span>\n </div>\n</ng-template>\n","import {Component, EventEmitter, Input, OnInit, Output} from '@angular/core';\nimport moment from 'moment';\n\nexport enum PeriodLabel {\n TODAY = 'TODAY',\n YESTERDAY = 'YESTERDAY',\n LAST_7_DAYS = 'LAST_7_DAYS',\n LAST_30_DAYS = 'LAST_30_DAYS',\n THIS_MONTH = 'THIS_MONTH',\n LAST_QUARTER = 'LAST_QUARTER',\n CUSTOM_PERIOD = 'CUSTOM_PERIOD',\n}\n\nexport interface Day {\n timestamp: number;\n day: string;\n month: number;\n weekDay: number;\n formatted: string;\n isFuture: boolean;\n}\n\nexport interface WeekDay {\n name: string;\n}\n\nexport type DateRange = { from?: string; to?: string; label?: PeriodLabel; };\n\nexport type DatePickerValue = string | DateRange;\n\ntype DayRange = { from?: Day; to?: Day; label?: string; };\n\ntype DatePickerInnerValue = Day | DayRange;\n\nexport const DEFAULT_DATE_FORMAT = 'YYYY-MM-DDTHH:mm:ssZ';\nexport const formatFrom = (from: moment.Moment) => from.startOf('day').format(DEFAULT_DATE_FORMAT)\nexport const formatTo = (from: moment.Moment) => from.endOf('day').format(DEFAULT_DATE_FORMAT)\n\n@Component({\n selector: 'ask-date-picker-calendar',\n templateUrl: './date-picker-calendar.component.html',\n styleUrls: ['./date-picker-calendar.component.scss']\n})\nexport class DatePickerCalendarComponent implements OnInit {\n @Input() isRange: boolean = false;\n @Input() disableFutureDate: boolean = false;\n @Input() date!: DatePickerValue;\n @Output() dateChange: EventEmitter<DatePickerValue> = new EventEmitter<DatePickerValue>();\n\n private innerDate!: DatePickerInnerValue;\n private displayDate!: moment.Moment;\n private firstDayOfWeek!: number;\n private _weekDays: Array<WeekDay> = [];\n private _days: Array<Day> = [];\n\n get shouldDisableNextMonth () {\n return this.isFutureDate(this.displayDate.clone().add(1, 'month').unix());\n }\n\n get days(): Array<Day> {\n return this._days\n }\n\n get month(): string {\n return this.displayDate.format('MMMM');\n }\n\n get monthNumber(): number {\n return this.displayDate.month();\n }\n\n get year(): string {\n return this.displayDate.format('YYYY');\n }\n\n get weekDays(): Array<WeekDay> {\n return this._weekDays;\n }\n\n isDaySelected(day: Day): boolean {\n if (this.isRange) {\n\n const from = (this.innerDate as DayRange).from?.timestamp;\n const to = (this.innerDate as DayRange).to?.timestamp;\n\n if (!from) {\n return false;\n }\n else if (!to) {\n return day.timestamp === from;\n }\n\n return day.timestamp >= from && day.timestamp <= to;\n }\n\n return (this.innerDate as Day)?.timestamp === day.timestamp;\n }\n\n isFirstSelectedDay(day: Day) {\n if (this.isRange) {\n return day.formatted === (this.innerDate as DayRange).from?.formatted;\n }\n\n return (this.innerDate as Day).formatted === day.formatted;\n }\n\n isLastSelectedDay(day: Day) {\n if (this.isRange) {\n return day.formatted === ((this.innerDate as DayRange).to?.formatted || (this.innerDate as DayRange).from?.formatted);\n }\n\n return (this.innerDate as Day).formatted === day.formatted;\n }\n\n ngOnInit() {\n this.assignInitialValues();\n this.refreshDisplay();\n }\n\n private assignInitialValues() {\n if (this.isRange) {\n const receivedDate = this.date as DateRange;\n if (receivedDate.from && receivedDate.to) {\n (this.innerDate as DayRange) = {\n from: this.getDayFromString(receivedDate.from),\n to: this.getDayFromString(receivedDate.to),\n label: PeriodLabel[receivedDate.label || 'CUSTOM_PERIOD'].toString()\n }\n }\n else {\n (this.innerDate as DayRange) = {\n label: 'CUSTOM_PERIOD'\n };\n }\n this.displayDate = moment.unix((this.innerDate as DayRange).from?.timestamp || (Date.now() / 1000));\n }\n else {\n this.innerDate = this.getDayFromString(this.date as string);\n this.displayDate = moment.unix(this.innerDate.timestamp);\n }\n\n this.firstDayOfWeek = this.displayDate.clone().startOf('week').day();\n }\n\n private refreshDisplay() {\n this.buildWeekDays();\n this.buildDays();\n }\n\n private buildWeekDays() {\n const startOfWeek = this.displayDate.clone().startOf('week');\n const endOfWeek = this.displayDate.clone().endOf('week');\n this._weekDays = [];\n\n do {\n this._weekDays.push({\n name: startOfWeek.format('ddd')\n });\n\n startOfWeek.add(1, 'day');\n }\n while (startOfWeek.isBefore(endOfWeek));\n }\n\n private buildDays() {\n let startDay = this.displayDate.clone().startOf('month');\n let endDay = this.displayDate.clone().endOf('month');\n\n let daysOfPastMonth: Array<Day> = [];\n let daysOfThisMonth: Array<Day> = [];\n let daysOfNextMonth: Array<Day> = [];\n\n // Builds this month days\n daysOfThisMonth = this.getDaysBetween(startDay, endDay);\n\n // Builds past month days\n if (daysOfThisMonth[0].weekDay !== this.firstDayOfWeek) {\n startDay = this.displayDate.clone().startOf('month').startOf('week');\n }\n else {\n startDay = this.displayDate.clone().subtract(1, 'month').endOf('month').startOf('week');\n }\n endDay = startDay.clone().endOf('month');\n daysOfPastMonth = this.getDaysBetween(startDay, endDay);\n\n // Builds next month days\n startDay = this.displayDate.clone().add(1, 'month').startOf('month');\n endDay = startDay.clone().endOf('week');\n daysOfNextMonth = this.getDaysBetween(startDay, endDay);\n\n this._days = [\n ...daysOfPastMonth,\n ...daysOfThisMonth,\n ...daysOfNextMonth,\n ];\n\n // If calendar isn't complete yet (all 7 columns and 6 rows are full), adds another week to complete the calendar\n if (this._days.length < 42) {\n endDay = endDay.clone().add(1, 'day').endOf('week');\n startDay = endDay.clone().startOf('week');\n this._days.push(...this.getDaysBetween(startDay, endDay));\n }\n }\n\n private getDaysBetween(start: moment.Moment, end: moment.Moment): Array<Day> {\n start = start.clone();\n end = end.clone();\n\n const days = [];\n do {\n days.push(this.getDayFromMoment(start));\n\n start.add(1, 'day');\n }\n while (start.isBefore(end));\n\n return days;\n }\n\n getDayFromMoment(day: moment.Moment): Day {\n day = day.clone().startOf('day');\n\n return {\n timestamp: day.unix(),\n day: day.format('D'),\n month: day.month(),\n weekDay: day.day(),\n formatted: day.format(DEFAULT_DATE_FORMAT),\n isFuture: this.isFutureDate(day.unix())\n }\n }\n\n getDayFromString(date: string): Day {\n return this.getDayFromMoment(moment(date));\n }\n\n getDateFromDay(day: Day): string {\n return moment.unix(day.timestamp).startOf('day').format(DEFAULT_DATE_FORMAT);\n }\n\n incrementMonth(amount: number) {\n this.displayDate.add(amount, 'month');\n this.refreshDisplay();\n }\n\n selectDate(timestamp: number) {\n const momentDate = moment.unix(timestamp);\n\n if (this.isRange) {\n this.handleRangeSelect(momentDate);\n }\n else {\n this.handleSingleSelect(momentDate);\n }\n }\n\n private handleRangeSelect(selectedDate: moment.Moment) {\n const innerDate = (this.innerDate as DayRange);\n\n // First selection\n if (!innerDate.from) {\n innerDate.from = this.getDayFromMoment(selectedDate);\n }\n\n // Second selection\n else if (!innerDate.to) {\n const actualFrom = moment.unix(innerDate.from.timestamp);\n\n // Selected date is past the previous selected date\n if (selectedDate.isBefore(actualFrom, 'day')) {\n innerDate.to = innerDate.from;\n innerDate.from = this.getDayFromMoment(selectedDate);\n }\n\n // Selected date is future of the previous selected date\n else {\n innerDate.to = this.getDayFromMoment(selectedDate);\n }\n }\n\n // Selection when both from and to are already selected\n else {\n innerDate.from = this.getDayFromMoment(selectedDate);\n innerDate.to = undefined;\n }\n\n this.emitRange(innerDate);\n }\n\n private emitRange(range: DayRange) {\n const newRange: DateRange = {};\n newRange.label = PeriodLabel.CUSTOM_PERIOD;\n\n if (range.from) {\n newRange.from = this.getDateFromDay(range.from);\n\n if (range.to) newRange.to = formatTo(moment.unix(range.to.timestamp));\n }\n\n this.dateChange.emit(newRange);\n }\n\n private handleSingleSelect(momentDate: moment.Moment) {\n this.innerDate = this.getDayFromMoment(momentDate);\n this.dateChange.emit(momentDate.format(DEFAULT_DATE_FORMAT));\n }\n\n public isFutureDate(timestamp: number) {\n if (!this.disableFutureDate) return false;\n\n const date = moment.unix(timestamp);\n const now = moment();\n\n return date.isAfter(now);\n }\n}\n","<div class=\"date-picker-calendar-container\">\n <header class=\"month-selector\">\n <button type=\"button\" class=\"selector-button\" (click)=\"incrementMonth(-1)\">\n <span class=\"material-icons icon\">chevron_left</span>\n </button>\n\n <span class=\"month-year-display\" data-testid=\"month-year-display\">{{ month }} {{ year }}</span>\n\n <button\n type=\"button\"\n class=\"selector-button\"\n [disabled]=\"shouldDisableNextMonth\"\n (click)=\"incrementMonth(1)\"\n >\n <span class=\"material-icons icon\">chevron_right</span>\n </button>\n </header>\n\n <main class=\"calendar\">\n <div class=\"week-days-header\">\n <span class=\"week-day\" *ngFor=\"let weekDay of weekDays\">{{ weekDay.name }}</span>\n </div>\n\n <div class=\"days-block\" data-testid=\"days-block\">\n <button\n *ngFor=\"let day of days\"\n (click)=\"selectDate(day.timestamp)\"\n [disabled]=\"day.isFuture\"\n [ngClass]=\"{\n 'day': true,\n 'another-month': monthNumber != day.month,\n 'selected': isDaySelected(day),\n 'first': isFirstSelectedDay(day),\n 'last': isLastSelectedDay(day),\n }\"\n >\n {{ day.day }}\n </button>\n </div>\n </main>\n</div>\n","import {Component, EventEmitter, forwardRef, Input, OnInit, Output, Provider} from '@angular/core';\nimport moment from 'moment';\nimport {DatePickerValue, DateRange, PeriodLabel, formatFrom, formatTo} from \"./date-picker-calendar/date-picker-calendar.component\";\nimport {ControlValueAccessor, NG_VALUE_ACCESSOR} from \"@angular/forms\";\n\ninterface Period {\n label: PeriodLabel;\n getRange: () => DateRange;\n isCustomRange?: boolean;\n}\n\nconst VALUE_ACCESSOR: Provider = {\n provide: NG_VALUE_ACCESSOR,\n multi: true,\n useExisting: forwardRef(() => DatePickerComponent),\n}\n\n\n\n@Component({\n selector: 'ask-date-picker',\n templateUrl: './date-picker.component.html',\n styleUrls: ['./date-picker.component.scss'],\n providers: [ VALUE_ACCESSOR ],\n})\nexport class DatePickerComponent implements OnInit, ControlValueAccessor {\n\n static readonly PERIODS: Array<Period> = [\n { label: PeriodLabel.TODAY, getRange: () => ({ from: formatFrom(moment()), to: formatTo(moment()) }) },\n { label: PeriodLabel.YESTERDAY, getRange: () => ({ from: formatFrom(moment().subtract(1, 'day')), to: formatTo(moment().subtract(1, 'day')) }) },\n { label: PeriodLabel.LAST_7_DAYS, getRange: () => ({ from: formatFrom(moment().subtract(1, 'week')), to: formatTo(moment()) }) },\n { label: PeriodLabel.LAST_30_DAYS, getRange: () => ({ from: formatFrom(moment().subtract(30, 'days')), to: formatTo(moment()) }) },\n { label: PeriodLabel.THIS_MONTH, getRange: () => ({ from: formatFrom(moment().startOf('month')), to: formatTo(moment().endOf('month')) }) },\n { label: PeriodLabel.LAST_QUARTER, getRange: () => ({ from: formatFrom(moment().subtract(3, 'months')), to: formatTo(moment().endOf('month')) }) },\n { label: PeriodLabel.CUSTOM_PERIOD, getRange: () => ({}), isCustomRange: true },\n ];\n\n @Input() date: DatePickerValue = moment().format();\n @Input() isRange: boolean = false;\n @Input() disableFutureDate: boolean = false;\n @Input() periodsFilter: PeriodLabel[] = [];\n\n @Output() dateChange = new EventEmitter<DatePickerValue>();\n @Output() close = new EventEmitter();\n\n selectedPeriod?: Period;\n isCustomRange = false;\n\n get filteredPeriods() {\n if (!this.periodsFilter?.length) {\n return DatePickerComponent.PERIODS;\n }\n\n return DatePickerComponent.PERIODS.filter(p => this.periodsFilter.includes(p.label));\n }\n\n get from(): string | undefined {\n if (!this.isRange) {\n return;\n }\n\n return (this.date as DateRange).from;\n }\n\n get to(): string | undefined {\n if (!this.isRange) {\n return;\n }\n\n return (this.date as DateRange).to;\n }\n\n get dateDisplay(): string {\n const from = this.from ? moment(this.from).format('L') : '';\n const to = this.to ? moment(this.to).format('L') : '';\n\n return `${from} ${ to ? '- ' + to : '' }`;\n }\n\n ngOnInit(): void {\n }\n\n selectPeriod(period: Period) {\n this.selectedPeriod = period;\n\n this.date = {\n ...(this.date as DateRange),\n ...period.getRange()\n };\n this.date.label = period.label;\n this.isCustomRange = period.isCustomRange || false;\n\n if (!this.isCustomRange) {\n this.emitValue();\n }\n }\n\n handleDateChange(value: DatePickerValue) {\n this.date = value;\n\n if (!this.isRange) {\n this.emitValue();\n }\n }\n\n emitValue() {\n if (this.isCustomRange && !(this.date as DateRange).to) {\n (this.date as DateRange).to = (this.date as DateRange).from;\n }\n\n this.dateChange.emit(this.date);\n this.onChange(this.date);\n this.close.emit();\n }\n\n handleCancelClick() {\n this.close.emit();\n }\n\n public static getPeriodOrDefault(periodName: PeriodLabel, defaultPeriodName: PeriodLabel = PeriodLabel.TODAY) {\n return DatePickerComponent.PERIODS.find(p => p.label === periodName) ||\n DatePickerComponent.PERIODS.find(p => p.label === defaultPeriodName);\n }\n\n checkPeriodShouldBeSelectedByValue() {\n if (!this.isRange) {\n return;\n }\n\n const period = DatePickerComponent.PERIODS.find(p => p.label === (this.date as DateRange)?.label);\n\n if (!period) {\n return;\n }\n\n this.selectedPeriod = period;\n this.isCustomRange = period.isCustomRange || false;\n }\n\n writeValue(value: DatePickerValue) {\n if (this.isRange) {\n const valueRange = value as DateRange;\n\n if (valueRange.label && valueRange.label !== PeriodLabel.CUSTOM_PERIOD) {\n const period = DatePickerComponent.getPeriodOrDefault(valueRange.label)?.getRange() || {};\n this.date = { ...period, label: valueRange.label };\n }\n\n else if (valueRange.from && valueRange.to) {\n this.date = { from: valueRange.from, to: valueRange.to, label: PeriodLabel.CUSTOM_PERIOD };\n }\n\n this.checkPeriodShouldBeSelectedByValue();\n }\n\n else {\n this.date = value;\n }\n }\n\n registerOnChange(fn: (value: DatePickerValue) => void): void {\n this.onChange = fn;\n }\n\n onChange = (value: DatePickerValue) => {};\n\n registerOnTouched(fn: any): void {\n this.onTouch = fn;\n }\n\n onTouch = () => {};\n}\n","<div class=\"date-picker-container\">\n <main class=\"main-content\">\n <div\n class=\"periods-list\"\n *ngIf=\"isRange\"\n [ngClass]=\"{ 'show-divider': isCustomRange }\"\n >\n <button\n *ngFor=\"let period of filteredPeriods\"\n type=\"button\"\n class=\"period\"\n [ngClass]=\"{ 'selected': period.label === selectedPeriod?.label }\"\n (click)=\"selectPeriod(period)\"\n >\n {{ period.label.toString() | translate }}\n </button>\n </div>\n\n <ask-date-picker-calendar\n *ngIf=\"!isRange || (isRange && isCustomRange)\"\n [date]=\"date\"\n (dateChange)=\"handleDateChange($event)\"\n [isRange]=\"isRange\"\n [disableFutureDate]=\"disableFutureDate\"\n ></ask-date-picker-calendar>\n </main>\n\n <footer class=\"footer\" *ngIf=\"isCustomRange && isRange\">\n <div class=\"date-display\">{{ dateDisplay }}</div>\n\n <div class=\"button-tray\">\n <ask-button\n [size]=\"'xsmall'\"\n [type]=\"'secondary'\"\n (click)=\"handleCancelClick()\"\n >\n {{ 'CANCEL' | translate }}\n </ask-button>\n\n <ask-button\n [size]=\"'xsmall'\"\n [type]=\"'primary'\"\n (click)=\"emitValue()\"\n >\n {{ 'APPLY' | translate }}\n </ask-button>\n </div>\n </footer>\n</div>\n","import { Component, ElementRef, Input } from '@angular/core';\n\n@Component({\n selector: 'ask-skeleton',\n templateUrl: './skeleton.component.html',\n styleUrls: ['./skeleton.component.scss'],\n})\nexport class SkeletonComponent {\n @Input() barsHeight = 100;\n @Input() radius = 5;\n public barsCount = 0;\n\n constructor(private elementRef: ElementRef<HTMLElement>) {}\n\n ngOnInit() {\n const height = this.elementRef.nativeElement.clientHeight;\n this.barsCount = Math.round(height / this.barsHeight) || 1;\n }\n}\n","<ngx-skeleton-loader\n data-testid=\"skeleton-loader\"\n class=\"skeleton-component\"\n [count]=\"barsCount\"\n appearance=\"line\"\n animation=\"progress\"\n [theme]=\"{\n 'border-radius': radius + 'px',\n height: barsHeight+'px',\n margin: 0,\n display: 'block',\n }\"\n></ngx-skeleton-loader>\n","import {InjectionToken} from \"@angular/core\";\n\nexport type ToastType = 'success' | 'warning' | 'danger' | 'info';\n\nexport interface ToastData {\n type: ToastType;\n message: string;\n config?: ToastConfig;\n}\n\nexport interface ToastConfig {\n timeout?: number;\n}\n\nexport const ASK_TOAST_CONFIG = new InjectionToken<ToastData>('Default toast options');\n","import {OverlayRef} from \"@angular/cdk/overlay\";\n\nexport class ToastRef {\n constructor(readonly overlay: OverlayRef) {\n }\n\n close() {\n this.overlay.dispose();\n }\n\n getPosition(): DOMRect {\n return this.overlay.overlayElement.getBoundingClientRect();\n }\n}\n","import {ChangeDetectionStrategy, Component, HostBinding, Inject, Input, OnDestroy, OnInit} from '@angular/core';\nimport {ASK_TOAST_CONFIG, ToastConfig, ToastData, ToastType} from '../../services/toast/toast.config';\nimport {ToastRef} from \"../../services/toast/toast-ref\";\n\n\n@Component({\n selector: 'ask-toast',\n templateUrl: './toast.component.html',\n styleUrls: ['./toast.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class ToastComponent implements OnInit, OnDestroy {\n message = '';\n icon = 'check_small';\n timeoutRef!: NodeJS.Timeout;\n config: ToastConfig = {\n timeout: 5000,\n }\n\n @HostBinding('style.background-color') color = 'var(--success-green)';\n @HostBinding('style.color') fontColor = 'var(--white)';\n @HostBinding('class.closing') isClosing = false;\n\n private readonly TYPES: { [key in ToastType]: { color: string; icon: string; fontColor: string; } } = {\n success: { color: 'var(--success-green)', icon: 'check_small', fontColor: 'var(--white)' },\n warning: { color: 'var(--warning-yellow)', icon: 'warning', fontColor: 'var(--grey-800)' },\n danger: { color: 'var(--error-red)', icon: 'error', fontColor: 'var(--white)' },\n info: { color: 'var(--facebook-blue)', icon: 'info', fontColor: 'var(--white)' },\n }\n\n constructor(\n @Inject(ASK_TOAST_CONFIG) readonly data: ToastData,\n private ref: ToastRef\n ) {\n this.message = data.message;\n this.type = data.type;\n this.config = {\n ...this.config,\n ...data.config\n }\n }\n\n @Input() set type(type: 'success' | 'warning' | 'danger' | 'info' | ToastType) {\n this.icon = this.TYPES[type].icon;\n this.fontColor = this.TYPES[type].fontColor;\n this.color = this.TYPES[type].color;\n }\n\n ngOnInit() {\n if (this.config?.timeout) {\n this.timeoutRef = setTimeout(() => this.close(), this.config.timeout);\n }\n }\n\n ngOnDestroy() {\n clearTimeout(this.timeoutRef);\n }\n\n close() {\n this.isClosing = true;\n\n setTimeout(() => this.ref.close(), 250);\n }\n}\n","<span class=\"material-icons icon\">\n {{ icon }}\n</span>\n\n<p class=\"message\">\n {{ message }}\n</p>\n\n<button type=\"button\" class=\"close-icon\" (click)=\"close()\">\n <span class=\"material-icons icon\" [style.color]=\"fontColor\">close</span>\n</button>\n","import {Component, Input} from '@angular/core';\n\n@Component({\n selector: 'app-spinner',\n templateUrl: './spinner.component.html',\n styleUrls: ['./spinner.component.scss']\n})\nexport class SpinnerComponent {\n @Input() size: 'medium' | 'small' | 'big' = 'small'\n}\n","<span class=\"spin-circle\" [ngClass]=\"{\n '-big': size === 'big',\n '-medium': size === 'medium'\n}\"></span>\n","import {Directive, ElementRef, Inject, Input, OnChanges, OnDestroy, SimpleChanges} from '@angular/core';\nimport {DOCUMENT} from \"@angular/common\";\n\n@Directive({\n selector: '[askBadge]'\n})\nexport class BadgeDirective implements OnChanges, OnDestroy {\n\n @Input()\n askBadge: number | null = null;\n\n @Input()\n badgePosition: 'top-right' | 'top-left' | 'bottom-left' | 'bottom-right' = 'top-right';\n\n @Input()\n badgeCustomClasses?: string;\n\n @Input()\n badgeVariant: 'secondary' | 'primary' = 'primary';\n\n @Input()\n badgeSize: 'regular' | 'large' | 'small' = 'regular';\n\n badgeElement: HTMLElement | null = null;\n\n constructor(private elRef: ElementRef, @Inject(DOCUMENT) private document: Document) {\n }\n\n ngOnChanges(changes: SimpleChanges) {\n if ('askBadge' in changes) {\n const value = `${changes['askBadge'].currentValue}`.trim();\n if (value?.length > 0) {\n this.updateBadgeText(value)\n }\n }\n }\n\n ngOnDestroy() {\n if (this.badgeElement) {\n this.badgeElement.remove();\n }\n }\n\n private updateBadgeText(value: string) {\n if (!this.badgeElement && value !== '0') {\n this.badgeElement = this.createBadge(value);\n } else if (this.badgeElement && value !== '0') {\n this.badgeElement.textContent = value;\n } else if (this.badgeElement) {\n this.badgeElement.classList.add('scale-out-center');\n setTimeout(() => {\n this.badgeElement?.remove();\n this.badgeElement = null;\n }, 300)\n }\n }\n\n private createBadge(value: string): HTMLElement {\n const badgeElement = this.document.createElement(\"span\");\n this.addClasses(badgeElement);\n badgeElement.textContent = value;\n this.elRef.nativeElement.classList.add(\"ask-badge\");\n this.elRef.nativeElement.appendChild(badgeElement);\n return badgeElement;\n }\n\n private addClasses(badgeElement: HTMLElement) {\n const [vPos, hPos] = this.badgePosition.split(\"-\");\n badgeElement.classList.add(\"badge\", `-${vPos}`, `-${hPos}`, 'scale-in-center');\n if (this.badgeCustomClasses) {\n const customClasses = this.badgeCustomClasses.split(\" \");\n badgeElement.classList.add(...customClasses);\n }\n badgeElement.classList.add(`-${this.badgeVariant}`);\n badgeElement.classList.add(`-${this.badgeSize}`);\n }\n\n}\n","import {Directive, ElementRef, Input} from '@angular/core';\n\n@Directive({\n selector: '[askButton]'\n})\nexport class AskButtonDirective {\n @Input()\n set color(value: 'primary' | 'secondary' | '') {\n const element = (this.el.nativeElement as HTMLElement);\n if (value) {\n element.classList.add('-' + value)\n } else {\n element.classList.remove('-primary', '-secondary')\n }\n }\n\n constructor(private el: ElementRef) {\n const element: HTMLElement = this.el.nativeElement;\n\n if (element.tagName.toLowerCase() !== 'button') {\n throw new Error(`AskButton can only be applied to buttons.`);\n }\n\n element.classList.add('ask-button');\n }\n}\n","import {\n ComponentRef,\n Directive,\n ElementRef,\n HostBinding,\n Input,\n Renderer2,\n ViewContainerRef,\n} from '@angular/core';\nimport { SpinnerComponent } from './spinner.component';\n\n@Directive({\n selector: '[askSpinner]',\n})\nexport class SpinnerDirective {\n private shouldShow = false;\n spinner: ComponentRef<SpinnerComponent> | undefined;\n\n @Input('askSpinner')\n set nbSpinner(val: boolean) {\n if (val) {\n this.show();\n } else {\n this.hide();\n }\n }\n\n @Input() spinnerSize: 'small' | 'medium' | 'big' = 'small'\n @Input() spinnerBlur = true\n\n @HostBinding('class.nb-spinner-container') isSpinnerExist = false;\n\n constructor(\n private directiveView: ViewContainerRef,\n private renderer: Renderer2,\n private directiveElement: ElementRef\n ) {}\n\n ngOnInit() {\n if (this.shouldShow) {\n this.show();\n }\n }\n\n hide() {\n if (this.isSpinnerExist) {\n this.directiveView.remove();\n this.isSpinnerExist = false;\n }\n }\n\n show() {\n if (!this.isSpinnerExist) {\n this.spinner = this.directiveView.createComponent(SpinnerComponent);\n this.spinner.instance.size = this.spinnerSize\n this.spinner.changeDetectorRef.detectChanges();\n if (this.spinnerBlur) {\n this.directiveElement.nativeElement.classList.add('-blur')\n }\n this.renderer.setStyle(this.directiveElement.nativeElement, 'position', 'relative');\n this.renderer.appendChild(\n this.directiveElement.nativeElement,\n this.spinner.location.nativeElement\n );\n this.isSpinnerExist = true;\n }\n }\n}\n","import {\n ComponentRef,\n DestroyRef,\n Directive,\n ElementRef,\n EventEmitter,\n HostListener,\n inject,\n Input,\n OnInit,\n Output,\n TemplateRef\n} from '@angular/core';\nimport {DropdownContainerComponent} from \"../components/dropdown-container/dropdown-container.component\";\nimport {ConnectedPosition, Overlay, OverlayConfig, OverlayPositionBuilder, OverlayRef} from \"@angular/cdk/overlay\";\nimport {ComponentPortal} from \"@angular/cdk/portal\";\nimport {takeUntilDestroyed} from \"@angular/core/rxjs-interop\";\n\n@Directive({\n selector: '[askDropdown]'\n})\nexport class AskDropdownDirective implements OnInit {\n\n @Input() askDropdown?: TemplateRef<any>;\n @Input() dropdownName = '';\n @Input() positions?: Array<ConnectedPosition> | 'TOP_RIGHT' | 'TOP_LEFT' | 'BOTTOM_RIGHT' | 'BOTTOM_LEFT';\n @Input() dropdownDisabled = false;\n\n @Output() askDropdownOnClose = new EventEmitter();\n\n private _isRendered: boolean = false;\n private overlayConfig: OverlayConfig = {};\n private overlayRef!: OverlayRef;\n private containerRef!: ComponentRef<DropdownContainerComponent> | undefined;\n\n private readonly AVAILABLE_POSITIONS: { TOP_RIGHT: ConnectedPosition; TOP_LEFT: ConnectedPosition; BOTTOM_RIGHT: ConnectedPosition; BOTTOM_LEFT: ConnectedPosition; } = {\n TOP_RIGHT: { panelClass: 'ask-dropdown-top-right', originX: 'end', originY: 'top', overlayX: 'start', overlayY: 'top' },\n TOP_LEFT: { panelClass: 'ask-dropdown-top-left', originX: 'start', originY: 'top', overlayX: 'end', overlayY: 'top' },\n BOTTOM_RIGHT: { panelClass: 'ask-dropdown-bottom-right', originX: 'end', originY: 'bottom', overlayX: 'end', overlayY: 'top' },\n BOTTOM_LEFT: { panelClass: 'ask-dropdown-bottom-left', originX: 'start', originY: 'bottom', overlayX: 'start', overlayY: 'top' },\n }\n\n constructor(\n private overlayPositionBuilder: OverlayPositionBuilder,\n private elementRef: ElementRef,\n private overlay: Overlay,\n private _destroyRef: DestroyRef,\n ) { }\n\n ngOnInit() {\n this.setOverlayConfig();\n this.createOverlay();\n this.listenOutsideClicks();\n }\n\n private setOverlayConfig() {\n const positionStrategy = this.overlayPositionBuilder\n .flexibleConnectedTo(this.elementRef)\n .withPositions(this.getOverlayPosition());\n\n const scrollStrategy = this.overlay.scrollStrategies.block();\n\n this.overlayConfig = {\n hasBackdrop: true,\n backdropClass: 'cdk-overlay-transparent-backdrop',\n positionStrategy,\n scrollStrategy\n };\n }\n\n private createOverlay() {\n this.overlayRef = this.overlay.create(this.overlayConfig);\n }\n\n private getOverlayPosition(): ConnectedPosition[] {\n if (this.positions) {\n let chosenPositions: Array<ConnectedPosition> = [];\n\n if (typeof this.positions === 'string') {\n chosenPositions.push(this.AVAILABLE_POSITIONS[this.positions]);\n }\n\n else if (Array.isArray(this.positions)) {\n chosenPositions = [...this.positions];\n }\n\n chosenPositions = chosenPositions.filter(p => !!p);\n\n if (chosenPositions.length) return chosenPositions;\n }\n\n return [\n this.AVAILABLE_POSITIONS.BOTTOM_RIGHT,\n this.AVAILABLE_POSITIONS.BOTTOM_LEFT,\n this.AVAILABLE_POSITIONS.TOP_RIGHT,\n this.AVAILABLE_POSITIONS.TOP_LEFT,\n ]\n }\n\n private listenOutsideClicks() {\n this.overlayRef.backdropClick()\n .pipe(takeUntilDestroyed(this._destroyRef))\n .subscribe((event) => {\n this.close();\n event.stopPropagation()\n })\n }\n\n @HostListener('click')\n public show() {\n if (!this.askDropdown || this.isRendered || this.dropdownDisabled ) {\n this.close();\n return;\n }\n\n this.containerRef = this.overlayRef.attach(new ComponentPortal(DropdownContainerComponent));\n this.containerRef.instance.content = this.askDropdown;\n this._isRendered = true;\n }\n\n public close() {\n this.containerRef = undefined;\n this.overlayRef.detach();\n this._isRendered = false;\n this.askDropdownOnClose.emit();\n }\n\n public get isRendered() {\n return this._isRendered;\n }\n\n}\n","import {Component, DestroyRef, HostListener, Input} from '@angular/core';\nimport {ModalRef} from \"../../services/modal\";\nimport {fromEvent} from \"rxjs\";\nimport {takeUntilDestroyed} from \"@angular/core/rxjs-interop\";\n\nexport interface ComponentType<T> {\n new (...args: any[]): T;\n}\n\n@Component({\n selector: 'ask-modal',\n templateUrl: './modal.component.html',\n styleUrls: ['./modal.component.scss']\n})\nexport class ModalComponent<T extends ComponentType<T>> {\n @Input() content!: T\n}\n","<div data-testid=\"ask-modal\" class=\"ask-modal\">\n <div class=\"body\">\n <ng-container *ngComponentOutlet=\"content\"></ng-container>\n </div>\n</div>\n","import {Directive, ElementRef} from '@angular/core';\n\n@Directive({\n selector: '[askModalBody]'\n})\nexport class ModalBodyDirective {\n\n constructor(el: ElementRef) {\n el.nativeElement.classList.add('ask-modal-body')\n }\n\n}\n","import {Directive, ElementRef} from '@angular/core';\n\n@Directive({\n selector: '[askModalFooter]'\n})\nexport class ModalFooterDirective {\n\n constructor(el: ElementRef) {\n el.nativeElement.classList.add('ask-modal-footer')\n }\n\n}\n","import {Directive, ElementRef} from '@angular/core';\n\n@Directive({\n selector: '[askModalHeader]'\n})\nexport class ModalHeaderDirective {\n\n constructor(el: ElementRef) {\n el.nativeElement.classList.add('ask-modal-header')\n }\n\n}\n","import {Component, HostBinding, Input} from '@angular/core';\n\n@Component({\n selector: 'ask-character-counter',\n templateUrl: './character-counter.component.html',\n styleUrls: ['./character-counter.component.scss']\n})\nexport class CharacterCounterComponent {\n protected _count: number = 0;\n\n @Input() public threshold = 100;\n\n @Input() public set count(num: number) {\n this._count = num;\n this.show = num <= this.threshold;\n this.limitReached = num <= 0;\n }\n\n @HostBinding('class.-show') show = false;\n @HostBinding('class.-limit') limitReached = false;\n}\n","{{ _count }}\n","import { NgModule } from '@angular/core';\nimport { ButtonComponent } from './components/button/button.component';\nimport { CommonModule } from '@angular/common';\nimport { MatTooltipModule } from '@angular/material/tooltip';\nimport { InputComponent } from './components/input/input.component';\nimport { SelectComponent } from './components/select/select.component';\nimport { BoxComponent } from './components/box/box.component';\nimport { FormsModule, ReactiveFormsModule } from '@angular/forms';\nimport { AvatarComponent } from './components/avatar/avatar.component';\nimport { DropdownContainerComponent } from './components/dropdown-container/dropdown-container.component';\nimport { AutocompleteComponent } from './components/autocomplete/autocomplete.component';\nimport {\n CdkConnectedOverlay,\n CdkOverlayOrigin,\n OverlayModule,\n} from '@angular/cdk/overlay';\nimport { ChipsComponent } from './components/chips/chips.component';\nimport { CheckboxComponent } from './components/checkbox/checkbox.component';\nimport { DatePickerComponent } from './components/date-picker/date-picker.component';\nimport { DatePickerCalendarComponent } from './components/date-picker/date-picker-calendar/date-picker-calendar.component';\nimport { TranslateModule } from '@ngx-translate/core';\nimport { SkeletonComponent } from './components/skeleton/skeleton.component';\nimport { NgxSkeletonLoaderModule } from 'ngx-skeleton-loader';\nimport { ToastComponent } from './components/toast/toast.component';\nimport {SpinnerComponent} from \"./directives/spinner/spinner.component\";\nimport {\n AskButtonDirective,\n AskTooltipDirective,\n AutofocusDirective,\n BadgeDirective,\n ScrollDirective,\n SpinnerDirective,\n AskDropdownDirective\n} from \"./directives\";\nimport {ModalBodyDirective, ModalComponent, ModalFooterDirective, ModalHeaderDirective} from './components/modal';\nimport { CharacterCounterComponent } from './components/character-counter/character-counter.component';\n\n@NgModule({\n declarations: [\n ButtonComponent,\n InputComponent,\n SelectComponent,\n BoxComponent,\n AvatarComponent,\n DropdownContainerComponent,\n AskDropdownDirective,\n AutocompleteComponent,\n ChipsComponent,\n CheckboxComponent,\n DatePickerComponent,\n DatePickerCalendarComponent,\n SkeletonComponent,\n SpinnerComponent,\n SpinnerDirective,\n BadgeDirective,\n AutofocusDirective,\n ScrollDirective,\n AskTooltipDirective,\n ToastComponent,\n AskButtonDirective,\n ModalComponent,\n ModalBodyDirective,\n ModalHeaderDirective,\n ModalFooterDirective,\n CharacterCounterComponent,\n ],\n imports: [\n CommonModule,\n FormsModule,\n ReactiveFormsModule,\n CdkOverlayOrigin,\n CdkConnectedOverlay,\n OverlayModule,\n TranslateModule.forChild(),\n NgxSkeletonLoaderModule,\n MatTooltipModule,\n ],\n exports: [\n ButtonComponent,\n InputComponent,\n SelectComponent,\n BoxComponent,\n AvatarComponent,\n DropdownContainerComponent,\n AskDropdownDirective,\n AutocompleteComponent,\n ChipsComponent,\n CheckboxComponent,\n DatePickerComponent,\n DatePickerCalendarComponent,\n SkeletonComponent,\n SpinnerDirective,\n BadgeDirective,\n AutofocusDirective,\n ScrollDirective,\n AskTooltipDirective,\n AskButtonDirective,\n ModalBodyDirective,\n ModalHeaderDirective,\n ModalFooterDirective,\n CharacterCounterComponent,\n ],\n})\nexport class AsksuiteCitrusModule {}\n","import {Injectable, Injector} from '@angular/core';\nimport {Overlay, PositionStrategy} from \"@angular/cdk/overlay\";\nimport {ComponentPortal} from \"@angular/cdk/portal\";\nimport {ToastComponent} from \"../../components/toast/toast.component\";\nimport {ASK_TOAST_CONFIG, ToastConfig, ToastData, ToastType} from \"./toast.config\";\nimport {ToastRef} from \"./toast-ref\";\n\n@Injectable({\n providedIn: 'root'\n})\nexport class ToastService {\n\n lastToast?: ToastRef;\n\n private readonly TOP_MARGIN = 72;\n private readonly GAP = 8;\n\n constructor(\n private overlay: Overlay,\n private injector: Injector\n ) { }\n\n success(message: string, config?: ToastConfig) {\n this.pop('success', message, config);\n }\n\n info(message: string, config?: ToastConfig) {\n this.pop('info', message, config);\n }\n\n danger(message: string, config?: ToastConfig) {\n this.pop('danger', message, config);\n }\n\n warning(message: string, config?: ToastConfig) {\n this.pop('warning', message, config);\n }\n\n pop(type: ToastType, message: string, config?: ToastConfig) {\n if (this.lastToast && !this.lastToast?.overlay.overlayElement) {\n this.lastToast = undefined;\n }\n\n const positionStrategy = this.getPositionStrategy();\n const overlayRef = this.overlay.create({\n positionStrategy,\n });\n const toastRef = new ToastRef(overlayRef);\n const injector = this.createInjector({ type, message, config }, toastRef);\n const toastPortal = new ComponentPortal(ToastComponent, null, injector);\n\n overlayRef.attach(toastPortal);\n this.lastToast = toastRef;\n }\n\n private createInjector(data: ToastData, toastRef: ToastRef): Injector {\n return Injector.create({\n parent: this.injector,\n providers: [\n { provide: ASK_TOAST_CONFIG, useValue: data },\n { provide: ToastRef, useValue: toastRef },\n ]\n });\n }\n\n private getPositionStrategy(): PositionStrategy {\n return this.overlay.position().global().top(this.getTopOffset()).centerHorizontally();\n }\n\n private getTopOffset(): string {\n const offset = this.lastToast ?\n this.lastToast.getPosition().bottom + this.GAP :\n this.TOP_MARGIN;\n\n return `${offset}px`;\n }\n}\n","import {Subject} from \"rxjs\";\nimport {OverlayRef} from \"@angular/cdk/overlay\";\nimport {ElementRef} from \"@angular/core\";\n\nexport class ModalRef {\n private closeSubject = new Subject<any | null>()\n public element?: HTMLElement\n\n constructor(private overlayRef: OverlayRef) {\n }\n\n close(data?: any) {\n this.closeSubject.next(data ?? null)\n this.overlayRef.dispose()\n }\n\n get afterClose() {\n return this.closeSubject.asObservable()\n }\n}\n","import {InjectionToken} from \"@angular/core\";\n\nexport type ModalConfig = {\n hasBackdrop: boolean\n onScroll: 'close' | 'keep'\n data: any\n}\n\nexport const ASK_MODAL_CONFIG = new InjectionToken<ModalConfig>('Default modal options')\nexport const ASK_MODAL_DATA = new InjectionToken<any>('Modal data')\n","import {Injectable, Injector} from '@angular/core';\nimport {Overlay, PositionStrategy} from \"@angular/cdk/overlay\";\nimport {ModalRef} from \"./modal-ref\";\nimport {ASK_MODAL_DATA, ModalConfig} from \"./modal.config\";\nimport {ComponentPortal} from \"@angular/cdk/portal\";\nimport {ComponentType, ModalComponent} from \"../../components/modal/modal.component\";\n\n@Injectable({\n providedIn: 'root'\n})\nexport class ModalService {\n\n // TODO: create a state of open modals\n\n constructor(private overlay: Overlay,\n private injector: Injector,\n ) { }\n\n open<T>(component: ComponentType<T>, config?: ModalConfig) {\n const overlayRef = this.getOverlay(config)\n const finalConfig = {\n data: config?.data ?? null\n }\n const modalRef = new ModalRef(overlayRef)\n const injector = this.createInjector({ ...finalConfig }, modalRef);\n const modalPortal = new ComponentPortal(ModalComponent, null, injector);\n const ref = overlayRef.attach(modalPortal);\n\n modalRef.element = ref.location.nativeElement\n // If necessary, this can be parametrized using ModalConfig interface\n overlayRef.backdropClick().subscribe(() => modalRef.close())\n\n ref.instance.content = component\n\n return modalRef\n }\n\n private createInjector(config: ModalConfig[\"data\"], modalRef: ModalRef): Injector {\n return Injector.create({\n parent: this.injector,\n providers: [\n { provide: ASK_MODAL_DATA, useValue: config.data },\n { provide: ModalRef, useValue: modalRef },\n ]\n });\n }\n\n private getPositionStrategy(): PositionStrategy {\n return this.overlay.position().global().centerVertically().centerHorizontally();\n }\n\n // Modal config can be used to parametrize the overlay creation params\n getOverlay(config?: ModalConfig) {\n const positionStrategy = this.getPositionStrategy();\n return this.overlay.create({\n positionStrategy,\n hasBackdrop: config?.hasBackdrop || true,\n backdropClass: 'cdk-overlay-dark-backdrop',\n disposeOnNavigation: true,\n scrollStrategy: this.overlay.scrollStrategies.block(),\n maxWidth: '80vw'\n });\n }\n\n}\n","/*\n * Public API Surface of asksuite-citrus\n */\n\nexport * from './lib/asksuite-citrus.module';\n\n// Components\nexport * from './lib/components/button/button.component'\nexport * from './lib/components/input/input.component'\nexport * from './lib/components/select/select.component'\nexport * from './lib/components/box/box.component'\nexport * from './lib/components/avatar/avatar.component'\nexport * from './lib/components/dropdown-container/dropdown-container.component'\nexport * from './lib/components/autocomplete/autocomplete.component'\nexport * from './lib/components/checkbox/checkbox.component'\nexport * from './lib/components/chips/chips.component'\nexport * from './lib/components/date-picker/date-picker.component'\nexport * from './lib/components/date-picker/date-picker-calendar/date-picker-calendar.component'\nexport * from './lib/components/skeleton/skeleton.component'\nexport * from './lib/components/character-counter/character-counter.component'\n\n// Directives\nexport * from './lib/directives'\nexport * from './lib/components/modal/directives'\n\n// Services\nexport * from './lib/services/toast/toast.service';\nexport * from './lib/services/modal';\n\n// Config\nexport * from './lib/services/toast/toast.config';\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["valueAccessor","i2","i1","i2.AskTooltipDirective","i4","i5.ChipsComponent","i6.CheckboxComponent","i7.AutofocusDirective","i8.ScrollDirective","i2.ButtonComponent","i3.DatePickerCalendarComponent","i1.ToastRef"],"mappings":";;;;;;;;;;;;;;;;;;;MAOa,eAAe,CAAA;AAL5B,IAAA,WAAA,GAAA;;QAOW,IAAK,CAAA,KAAA,GAAG,EAAE,CAAC;QACX,IAAI,CAAA,IAAA,GAAuD,QAAQ,CAAC;QACpE,IAAI,CAAA,IAAA,GAAgF,SAAS,CAAC;QAC9F,IAAO,CAAA,OAAA,GAAY,KAAK,CAAC;QACzB,IAAQ,CAAA,QAAA,GAAG,KAAK,CAAC;QACjB,IAAS,CAAA,SAAA,GAAqB,MAAM,CAAC;QACrC,IAAO,CAAA,OAAA,GAAY,KAAK,CAAC;;AAGxB,QAAA,IAAA,CAAA,OAAO,GAAG,IAAI,YAAY,EAAc,CAAC;AACzC,QAAA,IAAA,CAAA,OAAO,GAAG,IAAI,YAAY,EAAc,CAAC;AACzC,QAAA,IAAA,CAAA,MAAM,GAAG,IAAI,YAAY,EAAc,CAAC;QAElD,IAAa,CAAA,aAAA,GAAW,UAAU,CAAC;QACnC,IAAU,CAAA,UAAA,GAAW,EAAE,CAAC;AAOzB,KAAA;IAJC,WAAW,GAAA;QACT,IAAI,CAAC,aAAa,GAAG,CAAI,CAAA,EAAA,IAAI,CAAC,IAAI,CAAA,CAAA,EAAI,IAAI,CAAC,IAAI,CAAA,CAAA,EAAI,IAAI,CAAC,OAAO,GAAG,SAAS,GAAG,EAAE,CAAA,CAAE,CAAC;QACnF,IAAI,CAAC,UAAU,GAAG,CAAA,CAAA,EAAI,IAAI,CAAC,SAAS,EAAE,CAAA;KACvC;8GAtBU,eAAe,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA,EAAA;AAAf,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,eAAe,4RCP5B,+bAaA,EAAA,MAAA,EAAA,CAAA,25PAAA,CAAA,EAAA,YAAA,EAAA,CAAA,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,CAAA,EAAA,CAAA,CAAA,EAAA;;2FDNa,eAAe,EAAA,UAAA,EAAA,CAAA;kBAL3B,SAAS;+BACE,YAAY,EAAA,QAAA,EAAA,+bAAA,EAAA,MAAA,EAAA,CAAA,25PAAA,CAAA,EAAA,CAAA;8BAMb,KAAK,EAAA,CAAA;sBAAb,KAAK;gBACG,IAAI,EAAA,CAAA;sBAAZ,KAAK;gBACG,IAAI,EAAA,CAAA;sBAAZ,KAAK;gBACG,OAAO,EAAA,CAAA;sBAAf,KAAK;gBACG,QAAQ,EAAA,CAAA;sBAAhB,KAAK;gBACG,SAAS,EAAA,CAAA;sBAAjB,KAAK;gBACG,OAAO,EAAA,CAAA;sBAAf,KAAK;gBAGI,OAAO,EAAA,CAAA;sBAAhB,MAAM;gBACG,OAAO,EAAA,CAAA;sBAAhB,MAAM;gBACG,MAAM,EAAA,CAAA;sBAAf,MAAM;;;AEPT,MAAMA,eAAa,GAAa;AAC9B,IAAA,OAAO,EAAE,iBAAiB;AAC1B,IAAA,KAAK,EAAE,IAAI;AACX,IAAA,WAAW,EAAE,UAAU,CAAC,MAAM,cAAc,CAAC;CAC9C,CAAC;MAQW,cAAc,CAAA;AAN3B,IAAA,WAAA,GAAA;QAOE,IAAU,CAAA,UAAA,GAAG,EAAE,CAAC;QAEP,IAAK,CAAA,KAAA,GAAW,EAAE,CAAC;QACnB,IAAI,CAAA,IAAA,GAAkC,MAAM,CAAC;QAC7C,IAAS,CAAA,SAAA,GAA0B,UAAU,CAAA;QAI7C,IAAQ,CAAA,QAAA,GAAY,KAAK,CAAC;QAC1B,IAAQ,CAAA,QAAA,GAAY,KAAK,CAAC;AAOzB,QAAA,IAAA,CAAA,WAAW,GAAG,IAAI,YAAY,EAAU,CAAC;AACzC,QAAA,IAAA,CAAA,MAAM,GAAG,IAAI,YAAY,EAAS,CAAC;AACnC,QAAA,IAAA,CAAA,KAAK,GAAG,IAAI,YAAY,EAAS,CAAC;AAClC,QAAA,IAAA,CAAA,KAAK,GAAG,IAAI,YAAY,EAAc,CAAC;AACvC,QAAA,IAAA,CAAA,KAAK,GAAG,IAAI,YAAY,EAAc,CAAC;AACvC,QAAA,IAAA,CAAA,IAAI,GAAG,IAAI,YAAY,EAAc,CAAC;AACtC,QAAA,IAAA,CAAA,aAAa,GAAG,IAAI,YAAY,EAAc,CAAC;AAC/C,QAAA,IAAA,CAAA,cAAc,GAAG,IAAI,YAAY,EAAc,CAAC;QAK1D,IAAS,CAAA,SAAA,GAAG,KAAK,CAAC;AAmDnB,KAAA;IAnEC,IAAa,SAAS,CAAC,KAAa,EAAA;AAClC,QAAA,IAAI,CAAC,UAAU,GAAG,CAAS,MAAA,EAAA,KAAK,GAAG,CAAC;KACrC;AAmBD,IAAA,aAAa,CAAC,QAAgB,EAAA;AAC5B,QAAA,IAAI,IAAI,CAAC,KAAK,KAAK,QAAQ,EAAE;AAC3B,YAAA,IAAI,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAC;AAC1B,YAAA,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC;AACzB,SAAA;QACD,IAAI,CAAC,OAAO,EAAE,CAAC;KAChB;AAED,IAAA,YAAY,CAAC,KAAY,EAAA;AACvB,QAAA,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;KACzB;AAED,IAAA,WAAW,CAAC,KAAY,EAAA;AACtB,QAAA,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;KACxB;AAED,IAAA,WAAW,CAAC,KAAiB,EAAA;AAC3B,QAAA,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC;AACtB,QAAA,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;KACxB;AAED,IAAA,UAAU,CAAC,KAAiB,EAAA;AAC1B,QAAA,IAAI,CAAC,SAAS,GAAG,KAAK,CAAC;AACvB,QAAA,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;KACvB;AAED;;AAEG;AAEH,IAAA,gBAAgB,CAAC,EAAO,EAAA;AACtB,QAAA,IAAI,CAAC,QAAQ,GAAG,EAAE,CAAC;KACpB;AAED,IAAA,iBAAiB,CAAC,EAAO,EAAA;AACvB,QAAA,IAAI,CAAC,OAAO,GAAG,EAAE,CAAC;KACnB;AAED,IAAA,gBAAgB,CAAC,UAAmB,EAAA;AAClC,QAAA,IAAI,CAAC,QAAQ,GAAG,UAAU,CAAC;KAC5B;AAED,IAAA,UAAU,CAAC,KAAa,EAAA;AACtB,QAAA,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;QACnB,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;KACnC;8GA/EU,cAAc,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA,EAAA;AAAd,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,cAAc,EAFd,QAAA,EAAA,WAAA,EAAA,MAAA,EAAA,EAAA,KAAA,EAAA,OAAA,EAAA,IAAA,EAAA,MAAA,EAAA,SAAA,EAAA,WAAA,EAAA,WAAA,EAAA,aAAA,EAAA,QAAA,EAAA,UAAA,EAAA,SAAA,EAAA,WAAA,EAAA,QAAA,EAAA,UAAA,EAAA,QAAA,EAAA,UAAA,EAAA,SAAA,EAAA,WAAA,EAAA,EAAA,OAAA,EAAA,EAAA,WAAA,EAAA,aAAA,EAAA,MAAA,EAAA,QAAA,EAAA,KAAA,EAAA,OAAA,EAAA,KAAA,EAAA,OAAA,EAAA,KAAA,EAAA,OAAA,EAAA,IAAA,EAAA,MAAA,EAAA,aAAA,EAAA,eAAA,EAAA,cAAA,EAAA,gBAAA,EAAA,EAAA,SAAA,EAAA,CAACA,eAAa,CAAC,sJCvB5B,okCA6CA,EAAA,MAAA,EAAA,CAAA,2uMAAA,CAAA,EAAA,YAAA,EAAA,CAAA,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,WAAA,EAAA,IAAA,EAAAC,IAAA,CAAA,oBAAA,EAAA,QAAA,EAAA,8MAAA,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,OAAA,EAAA,QAAA,EAAA,qDAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,UAAA,EAAA,SAAA,EAAA,gBAAA,CAAA,EAAA,OAAA,EAAA,CAAA,eAAA,CAAA,EAAA,QAAA,EAAA,CAAA,SAAA,CAAA,EAAA,CAAA,EAAA,CAAA,CAAA,EAAA;;2FDpBa,cAAc,EAAA,UAAA,EAAA,CAAA;kBAN1B,SAAS;+BACE,WAAW,EAAA,SAAA,EAGV,CAACD,eAAa,CAAC,EAAA,QAAA,EAAA,okCAAA,EAAA,MAAA,EAAA,CAAA,2uMAAA,CAAA,EAAA,CAAA;8BAKjB,KAAK,EAAA,CAAA;sBAAb,KAAK;gBACG,IAAI,EAAA,CAAA;sBAAZ,KAAK;gBACG,SAAS,EAAA,CAAA;sBAAjB,KAAK;gBACG,WAAW,EAAA,CAAA;sBAAnB,KAAK;gBACG,QAAQ,EAAA,CAAA;sBAAhB,KAAK;gBACG,SAAS,EAAA,CAAA;sBAAjB,KAAK;gBACG,QAAQ,EAAA,CAAA;sBAAhB,KAAK;gBACG,QAAQ,EAAA,CAAA;sBAAhB,KAAK;gBAGO,SAAS,EAAA,CAAA;sBAArB,KAAK;gBAII,WAAW,EAAA,CAAA;sBAApB,MAAM;gBACG,MAAM,EAAA,CAAA;sBAAf,MAAM;gBACG,KAAK,EAAA,CAAA;sBAAd,MAAM;gBACG,KAAK,EAAA,CAAA;sBAAd,MAAM;gBACG,KAAK,EAAA,CAAA;sBAAd,MAAM;gBACG,IAAI,EAAA,CAAA;sBAAb,MAAM;gBACG,aAAa,EAAA,CAAA;sBAAtB,MAAM;gBACG,cAAc,EAAA,CAAA;sBAAvB,MAAM;gBAOsC,YAAY,EAAA,CAAA;sBAAxD,SAAS;AAAC,gBAAA,IAAA,EAAA,CAAA,cAAc,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,CAAA;;;AEhD7C,MAAMA,eAAa,GAAa;AAC9B,IAAA,OAAO,EAAE,iBAAiB;AAC1B,IAAA,KAAK,EAAE,IAAI;AACX,IAAA,WAAW,EAAE,UAAU,CAAC,MAAM,eAAe,CAAC;CAC/C,CAAA;MAQY,eAAe,CAAA;AAgB1B,IAAA,WAAA,CACU,UAAsB,EAAA;QAAtB,IAAU,CAAA,UAAA,GAAV,UAAU,CAAY;AAdtB,QAAA,IAAA,CAAA,WAAW,GAAG,IAAI,YAAY,EAAE,CAAC;QAClC,IAAO,CAAA,OAAA,GAAkB,EAAE,CAAC;QAC5B,IAAQ,CAAA,QAAA,GAAG,CAAC,CAAC;QACb,IAAc,CAAA,cAAA,GAAG,IAAI,CAAC;;QAGtB,IAAmB,CAAA,mBAAA,GAAG,qBAAqB,CAAC;QAC5C,IAAa,CAAA,aAAA,GAAG,0BAA0B,CAAC;QAC3C,IAAS,CAAA,SAAA,GAAG,QAAQ,CAAC;QAE9B,IAAQ,CAAA,QAAA,GAAG,KAAK,CAAC;QAmDjB,IAAQ,CAAA,QAAA,GAAQ,MAAK;AACrB,SAAC,CAAA;QACD,IAAO,CAAA,OAAA,GAAQ,MAAK;AACpB,SAAC,CAAA;KAjDI;AAGL,IAAA,QAAQ,CAAC,KAAmB,EAAA;QAC1B,MAAM,kBAAkB,GAAG,KAAK,CAAC,YAAY,EAAE,CAAC,IAAI,CAAC,CAAC,EAAO,KAAK,EAAE,EAAE,QAAQ,EAAE,WAAW,EAAE,KAAK,YAAY,CAAC,CAAC;QAEhH,IACE,IAAI,CAAC,UAAU,CAAC,aAAa,CAAC,QAAQ,CAAC,KAAK,CAAC,MAAM,CAAC;AACpD,YAAA,kBAAkB,EAClB;YACA,OAAO;AACR,SAAA;AAED,QAAA,IAAI,CAAC,QAAQ,GAAG,KAAK,CAAC;KACvB;AAED,IAAA,IAAI,aAAa,GAAA;QACf,MAAM,YAAY,GAAG,EAAE,CAAC;QAExB,OAAO,IAAI,CAAC,QAAQ,GAAG,YAAY,GAAG,IAAI,CAAC,QAAQ,GAAG,CAAC,CAAC;KACzD;IAED,iBAAiB,GAAA;AACf,QAAA,IAAI,CAAC,QAAQ,GAAG,CAAC,IAAI,CAAC,QAAQ,CAAC;KAChC;AAED,IAAA,iBAAiB,CAAC,MAA0B,EAAA;AAC1C,QAAA,IAAI,CAAC,iBAAiB,CAAC,MAAM,CAAC,CAAC;KAEhC;AAED,IAAA,iBAAiB,CAAC,MAA0B,EAAE,IAAA,GAAgB,IAAI,EAAA;AAChE,QAAA,IAAI,MAAM,EAAE,KAAK,KAAK,IAAI,CAAC,KAAK,EAAE;YAChC,OAAO;AACR,SAAA;AAED,QAAA,IAAI,CAAC,cAAc,GAAG,MAAM,CAAC;QAC7B,IAAI,CAAC,KAAK,GAAG,MAAM,EAAE,KAAK,IAAI,IAAI,CAAC;AAEnC,QAAA,IAAI,IAAI,EAAE;AACR,YAAA,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;AAC1B,YAAA,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;YACzB,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;AACnC,SAAA;KACF;AAOD,IAAA,UAAU,CAAC,KAAU,EAAA;AACnB,QAAA,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;QACnB,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC;KAC3C;AAED,IAAA,gBAAgB,CAAC,EAAO,EAAA;AACtB,QAAA,IAAI,CAAC,QAAQ,GAAG,EAAE,CAAA;KACnB;AAED,IAAA,iBAAiB,CAAC,EAAO,EAAA;AACvB,QAAA,IAAI,CAAC,OAAO,GAAG,EAAE,CAAA;KAClB;8GAhFU,eAAe,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAA,EAAA,CAAA,UAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA,EAAA;AAAf,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,eAAe,EAFf,QAAA,EAAA,YAAA,EAAA,MAAA,EAAA,EAAA,KAAA,EAAA,OAAA,EAAA,OAAA,EAAA,SAAA,EAAA,QAAA,EAAA,UAAA,EAAA,cAAA,EAAA,gBAAA,EAAA,mBAAA,EAAA,qBAAA,EAAA,aAAA,EAAA,eAAA,EAAA,SAAA,EAAA,WAAA,EAAA,EAAA,OAAA,EAAA,EAAA,WAAA,EAAA,aAAA,EAAA,EAAA,IAAA,EAAA,EAAA,SAAA,EAAA,EAAA,gBAAA,EAAA,kBAAA,EAAA,EAAA,EAAA,SAAA,EAAA,CAAEA,eAAa,CAAE,0BClB9B,y3BAuCA,EAAA,MAAA,EAAA,CAAA,0nMAAA,CAAA,EAAA,YAAA,EAAA,CAAA,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,CAAA,EAAA,CAAA,CAAA,EAAA;;2FDnBa,eAAe,EAAA,UAAA,EAAA,CAAA;kBAN3B,SAAS;+BACE,YAAY,EAAA,SAAA,EAGX,CAAEA,eAAa,CAAE,EAAA,QAAA,EAAA,y3BAAA,EAAA,MAAA,EAAA,CAAA,0nMAAA,CAAA,EAAA,CAAA;iGAInB,KAAK,EAAA,CAAA;sBAAb,KAAK;gBACI,WAAW,EAAA,CAAA;sBAApB,MAAM;gBACE,OAAO,EAAA,CAAA;sBAAf,KAAK;gBACG,QAAQ,EAAA,CAAA;sBAAhB,KAAK;gBACG,cAAc,EAAA,CAAA;sBAAtB,KAAK;gBAGG,mBAAmB,EAAA,CAAA;sBAA3B,KAAK;gBACG,aAAa,EAAA,CAAA;sBAArB,KAAK;gBACG,SAAS,EAAA,CAAA;sBAAjB,KAAK;gBAUN,QAAQ,EAAA,CAAA;sBADP,YAAY;uBAAC,gBAAgB,EAAE,CAAC,QAAQ,CAAC,CAAA;;;MEjC/B,YAAY,CAAA;AAOvB,IAAA,WAAA,GAAA;QAHS,IAAW,CAAA,WAAA,GAAG,KAAK,CAAC;QACpB,IAAQ,CAAA,QAAA,GAAG,KAAK,CAAC;KAET;IAEjB,QAAQ,GAAA;KACP;IAED,cAAc,GAAA;AACZ,QAAA,IAAI,CAAC,QAAQ,GAAG,CAAC,IAAI,CAAC,QAAQ,CAAC;KAChC;8GAdU,YAAY,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA,EAAA;AAAZ,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,YAAY,mJCPzB,ikBAmBA,EAAA,MAAA,EAAA,CAAA,w3KAAA,CAAA,EAAA,YAAA,EAAA,CAAA,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,CAAA,EAAA,CAAA,CAAA,EAAA;;2FDZa,YAAY,EAAA,UAAA,EAAA,CAAA;kBALxB,SAAS;+BACE,SAAS,EAAA,QAAA,EAAA,ikBAAA,EAAA,MAAA,EAAA,CAAA,w3KAAA,CAAA,EAAA,CAAA;0EAMV,KAAK,EAAA,CAAA;sBAAb,KAAK;gBACG,QAAQ,EAAA,CAAA;sBAAhB,KAAK;gBACG,WAAW,EAAA,CAAA;sBAAnB,KAAK;gBACG,QAAQ,EAAA,CAAA;sBAAhB,KAAK;;;MEHK,mBAAmB,CAAA;AAK9B,IAAA,WAAA,CAAoB,OAAmB,EAAA;QAAnB,IAAO,CAAA,OAAA,GAAP,OAAO,CAAY;QAH9B,IAAiB,CAAA,iBAAA,GAAW,EAAE,CAAC;QAC/B,IAAkB,CAAA,kBAAA,GAAoB,OAAO,CAAC;KAEX;IAE5C,QAAQ,GAAA;QACN,IAAI,CAAC,OAAO,CAAC,QAAQ,GAAG,IAAI,CAAC,kBAAkB,CAAC;AAChD,QAAA,IAAI,CAAC,OAAO,CAAC,YAAY,GAAG,CAAC,aAAa,EAAE,CAAA,CAAA,EAAI,IAAI,CAAC,kBAAkB,CAAA,CAAE,CAAC,CAAC;AAC3E,QAAA,IAAI,CAAC,OAAO,CAAC,aAAa,GAAG,KAAK,CAAC;KACpC;IAGD,YAAY,GAAA;QACV,IAAI,CAAC,IAAI,CAAC,iBAAiB;YAAE,OAAO;QAEpC,IAAI,CAAC,OAAO,CAAC,OAAO,GAAG,IAAI,CAAC,iBAAiB,CAAC;AAC9C,QAAA,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC;KACrB;IAGD,YAAY,GAAA;AACV,QAAA,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC;KACrB;8GAxBU,mBAAmB,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAAE,IAAA,CAAA,UAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA,EAAA;AAAnB,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,mBAAmB,EAJnB,QAAA,EAAA,cAAA,EAAA,MAAA,EAAA,EAAA,iBAAA,EAAA,mBAAA,EAAA,kBAAA,EAAA,oBAAA,EAAA,EAAA,IAAA,EAAA,EAAA,SAAA,EAAA,EAAA,YAAA,EAAA,gBAAA,EAAA,YAAA,EAAA,gBAAA,EAAA,EAAA,EAAA,SAAA,EAAA;YACT,UAAU;AACX,SAAA,EAAA,QAAA,EAAA,EAAA,EAAA,CAAA,CAAA,EAAA;;2FAEU,mBAAmB,EAAA,UAAA,EAAA,CAAA;kBAN/B,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACT,oBAAA,QAAQ,EAAE,cAAc;AACxB,oBAAA,SAAS,EAAE;wBACT,UAAU;AACX,qBAAA;AACF,iBAAA,CAAA;mGAGU,iBAAiB,EAAA,CAAA;sBAAzB,KAAK;gBACG,kBAAkB,EAAA,CAAA;sBAA1B,KAAK;gBAWN,YAAY,EAAA,CAAA;sBADX,YAAY;uBAAC,YAAY,CAAA;gBAS1B,YAAY,EAAA,CAAA;sBADX,YAAY;uBAAC,YAAY,CAAA;;;IC3BhB,aAMX;AAND,CAAA,UAAY,YAAY,EAAA;AACtB,IAAA,YAAA,CAAA,MAAA,CAAA,GAAA,EAAS,CAAA;AACT,IAAA,YAAA,CAAA,QAAA,CAAA,GAAA,QAAiB,CAAA;AACjB,IAAA,YAAA,CAAA,MAAA,CAAA,GAAA,MAAa,CAAA;AACb,IAAA,YAAA,CAAA,QAAA,CAAA,GAAA,QAAiB,CAAA;AACjB,IAAA,YAAA,CAAA,SAAA,CAAA,GAAA,SAAmB,CAAA;AACrB,CAAC,EANW,YAAY,KAAZ,YAAY,GAMvB,EAAA,CAAA,CAAA,CAAA;MAOY,eAAe,CAAA;AAL5B,IAAA,WAAA,GAAA;QAOW,IAAG,CAAA,GAAA,GAAW,EAAE,CAAC;AACjB,QAAA,IAAA,CAAA,MAAM,GAAyD,YAAY,CAAC,IAAI,CAAC;QACjF,IAAU,CAAA,UAAA,GAAqC,SAAS,CAAC;QACzD,IAAW,CAAA,WAAA,GAAW,EAAE,CAAC;QACzB,IAAmB,CAAA,mBAAA,GAAoB,OAAO,CAAC;QAC/C,IAAW,CAAA,WAAA,GAAW,EAAE,CAAC;QAgBxB,IAAS,CAAA,SAAA,GAAG,EAAE,CAAC;AAM1B,KAAA;IArBC,IACI,IAAI,CAAC,KAAa,EAAA;AACpB,QAAA,IAAI,KAAK,EAAE;YACT,MAAM,SAAS,GAAG,KAAK,CAAC,IAAI,EAAE,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;AAC1C,YAAA,IAAI,CAAC,SAAS,GAAG,SAAS,CAAC,MAAM,GAAG,CAAC;AACnC,kBAAE,CAAA,EAAG,SAAS,CAAC,CAAC,CAAC,CAAC,WAAW,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,CAAA,EAAG,SAAS,CAAC,SAAS,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,WAAW,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,CAAE,CAAA;AAC7F,kBAAE,CAAA,EAAG,SAAS,CAAC,CAAC,CAAC,CAAC,WAAW,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAA;AACzC,YAAA,IAAI,CAAC,UAAU,GAAG,MAAM,CAAA;AACzB,SAAA;AAAM,aAAA;AACL,YAAA,IAAI,CAAC,SAAS,GAAG,EAAE,CAAC;AACrB,SAAA;KACF;;aAEe,IAAQ,CAAA,QAAA,GAAW,iCAAiC,CAAC,EAAA;AAIrE,IAAA,IAAI,KAAK,GAAA;AACP,QAAA,OAAO,IAAI,CAAC,GAAG,IAAI,eAAe,CAAC,QAAQ,CAAC;KAC7C;8GA3BU,eAAe,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA,EAAA;AAAf,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,eAAe,wOChB5B,+zBA+BA,EAAA,MAAA,EAAA,CAAA,83LAAA,CAAA,EAAA,YAAA,EAAA,CAAA,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,WAAA,EAAA,IAAA,EAAAC,mBAAA,EAAA,QAAA,EAAA,cAAA,EAAA,MAAA,EAAA,CAAA,mBAAA,EAAA,oBAAA,CAAA,EAAA,CAAA,EAAA,CAAA,CAAA,EAAA;;2FDfa,eAAe,EAAA,UAAA,EAAA,CAAA;kBAL3B,SAAS;+BACE,YAAY,EAAA,QAAA,EAAA,+zBAAA,EAAA,MAAA,EAAA,CAAA,83LAAA,CAAA,EAAA,CAAA;8BAMb,GAAG,EAAA,CAAA;sBAAX,KAAK;gBACG,MAAM,EAAA,CAAA;sBAAd,KAAK;gBACG,UAAU,EAAA,CAAA;sBAAlB,KAAK;gBACG,WAAW,EAAA,CAAA;sBAAnB,KAAK;gBACG,mBAAmB,EAAA,CAAA;sBAA3B,KAAK;gBACG,WAAW,EAAA,CAAA;sBAAnB,KAAK;gBAEF,IAAI,EAAA,CAAA;sBADP,KAAK;;;MEjBK,0BAA0B,CAAA;AAIrC,IAAA,WAAA,GAAA,GAAiB;IAEjB,QAAQ,GAAA;KACP;8GAPU,0BAA0B,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA,EAAA;AAA1B,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,0BAA0B,8FCPvC,mJAKA,EAAA,MAAA,EAAA,CAAA,i9JAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,gBAAA,EAAA,QAAA,EAAA,oBAAA,EAAA,MAAA,EAAA,CAAA,yBAAA,EAAA,kBAAA,EAAA,0BAAA,CAAA,EAAA,CAAA,EAAA,CAAA,CAAA,EAAA;;2FDEa,0BAA0B,EAAA,UAAA,EAAA,CAAA;kBALtC,SAAS;+BACE,wBAAwB,EAAA,QAAA,EAAA,mJAAA,EAAA,MAAA,EAAA,CAAA,i9JAAA,CAAA,EAAA,CAAA;0EAMzB,OAAO,EAAA,CAAA;sBAAf,KAAK;;;MEDK,cAAc,CAAA;IAEzB,IACI,UAAU,CAAC,KAA8C,EAAA;AAC3D,QAAA,IAAI,CAAC,kBAAkB,GAAG,KAAK,KAAK,OAAO,CAAC;AAC5C,QAAA,IAAI,CAAC,oBAAoB,GAAG,KAAK,KAAK,SAAS,CAAA;AAC/C,QAAA,IAAI,CAAC,gBAAgB,GAAG,KAAK,KAAK,KAAK,CAAA;KACxC;;IAGD,IACI,IAAI,CAAC,KAA0B,EAAA;AACjC,QAAA,IAAI,CAAC,QAAQ,GAAG,KAAK,KAAK,OAAO,CAAC;KACnC;;AASD,IAAA,WAAA,CAAoB,MAAyB,EAAA;QAAzB,IAAM,CAAA,MAAA,GAAN,MAAM,CAAmB;QAb7C,IAAU,CAAA,UAAA,GAAY,KAAK,CAAC;QAQlB,IAAQ,CAAA,QAAA,GAAG,KAAK,CAAC;QACjB,IAAkB,CAAA,kBAAA,GAAG,KAAK,CAAC;QAC3B,IAAoB,CAAA,oBAAA,GAAG,KAAK,CAAC;QAC7B,IAAgB,CAAA,gBAAA,GAAG,KAAK,CAAC;AAKzB,QAAA,IAAA,CAAA,MAAM,GAAG,IAAI,YAAY,EAAQ,CAAA;KAHM;8GAtBtC,cAAc,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAA,EAAA,CAAA,iBAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA,EAAA;AAAd,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,cAAc,8KCR3B,oiBAeA,EAAA,MAAA,EAAA,CAAA,+yLAAA,CAAA,EAAA,YAAA,EAAA,CAAA,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,CAAA,EAAA,eAAA,EAAA,EAAA,CAAA,uBAAA,CAAA,MAAA,EAAA,CAAA,CAAA,EAAA;;2FDPa,cAAc,EAAA,UAAA,EAAA,CAAA;kBAN1B,SAAS;+BACE,WAAW,EAAA,eAAA,EAGJ,uBAAuB,CAAC,MAAM,EAAA,QAAA,EAAA,oiBAAA,EAAA,MAAA,EAAA,CAAA,+yLAAA,CAAA,EAAA,CAAA;wGAK3C,UAAU,EAAA,CAAA;sBADb,KAAK;gBAON,UAAU,EAAA,CAAA;sBADT,KAAK;gBAGF,IAAI,EAAA,CAAA;sBADP,KAAK;gBAKG,KAAK,EAAA,CAAA;sBAAb,KAAK;gBAUI,MAAM,EAAA,CAAA;sBADf,MAAM;;;AEpBT,MAAMH,eAAa,GAAa;AAC9B,IAAA,OAAO,EAAE,iBAAiB;AAC1B,IAAA,KAAK,EAAE,IAAI;AACX,IAAA,WAAW,EAAE,UAAU,CAAC,MAAM,iBAAiB,CAAC;CACjD,CAAA;MAQY,iBAAiB,CAAA;AAN9B,IAAA,WAAA,GAAA;QAQW,IAAQ,CAAA,QAAA,GAAY,KAAK,CAAC;AAEzB,QAAA,IAAA,CAAA,WAAW,GAAG,IAAI,YAAY,EAAW,CAAC;AAC1C,QAAA,IAAA,CAAA,MAAM,GAAG,IAAI,YAAY,EAAS,CAAC;AACnC,QAAA,IAAA,CAAA,KAAK,GAAG,IAAI,YAAY,EAAc,CAAC;AACvC,QAAA,IAAA,CAAA,KAAK,GAAG,IAAI,YAAY,EAAc,CAAC;QAEjD,IAAS,CAAA,SAAA,GAAG,KAAK,CAAC;AAgClB,QAAA,IAAA,CAAA,OAAO,GAAG,MAAK,GAAG,CAAC;AAUpB,KAAA;AAxCC,IAAA,WAAW,CAAC,KAAiB,EAAA;AAC3B,QAAA,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC;AACtB,QAAA,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;KACxB;AAED,IAAA,aAAa,CAAC,QAAiB,EAAA;AAC7B,QAAA,IAAI,CAAC,KAAK,GAAG,QAAQ,CAAC;AACtB,QAAA,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC;AACxB,QAAA,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;KACjC;AAED,IAAA,YAAY,CAAC,KAAY,EAAA;AACvB,QAAA,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;KACzB;AAED;;AAEC;AAED,IAAA,gBAAgB,CAAC,EAAO,EAAA;AACtB,QAAA,IAAI,CAAC,QAAQ,GAAG,EAAE,CAAC;KACpB;AAED,IAAA,QAAQ,CAAC,CAAM,EAAA;KACd;AAED,IAAA,iBAAiB,CAAC,EAAO,EAAA;AACvB,QAAA,IAAI,CAAC,OAAO,GAAG,EAAE,CAAC;KACnB;AAID,IAAA,gBAAgB,CAAC,UAAmB,EAAA;AAClC,QAAA,IAAI,CAAC,QAAQ,GAAG,UAAU,CAAC;KAC5B;AAED,IAAA,UAAU,CAAC,KAAc,EAAA;AACvB,QAAA,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;KACpB;8GAjDU,iBAAiB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA,EAAA;AAAjB,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,iBAAiB,EAFjB,QAAA,EAAA,cAAA,EAAA,MAAA,EAAA,EAAA,KAAA,EAAA,OAAA,EAAA,QAAA,EAAA,UAAA,EAAA,EAAA,OAAA,EAAA,EAAA,WAAA,EAAA,aAAA,EAAA,MAAA,EAAA,QAAA,EAAA,KAAA,EAAA,OAAA,EAAA,KAAA,EAAA,OAAA,EAAA,EAAA,SAAA,EAAA,CAACA,eAAa,CAAC,0BCtB5B,+aAYA,EAAA,MAAA,EAAA,CAAA,isLAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAE,IAAA,CAAA,4BAAA,EAAA,QAAA,EAAA,uGAAA,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,OAAA,EAAA,QAAA,EAAA,qDAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,UAAA,EAAA,SAAA,EAAA,gBAAA,CAAA,EAAA,OAAA,EAAA,CAAA,eAAA,CAAA,EAAA,QAAA,EAAA,CAAA,SAAA,CAAA,EAAA,CAAA,EAAA,CAAA,CAAA,EAAA;;2FDYa,iBAAiB,EAAA,UAAA,EAAA,CAAA;kBAN7B,SAAS;+BACE,cAAc,EAAA,SAAA,EAGb,CAACF,eAAa,CAAC,EAAA,QAAA,EAAA,+aAAA,EAAA,MAAA,EAAA,CAAA,isLAAA,CAAA,EAAA,CAAA;8BAGjB,KAAK,EAAA,CAAA;sBAAb,KAAK;gBACG,QAAQ,EAAA,CAAA;sBAAhB,KAAK;gBAEI,WAAW,EAAA,CAAA;sBAApB,MAAM;gBACG,MAAM,EAAA,CAAA;sBAAf,MAAM;gBACG,KAAK,EAAA,CAAA;sBAAd,MAAM;gBACG,KAAK,EAAA,CAAA;sBAAd,MAAM;;;ME1BI,kBAAkB,CAAA;AAE7B,IAAA,WAAA,CAAoB,KAAiB,EAAA;QAAjB,IAAK,CAAA,KAAA,GAAL,KAAK,CAAY;KAAK;IAE1C,eAAe,GAAA;QACb,IAAI,IAAI,CAAC,KAAK;AAAE,YAAA,IAAI,CAAC,KAAK,CAAC,aAAa,CAAC,KAAK,EAAE,CAAC;KAClD;8GANU,kBAAkB,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAA,EAAA,CAAA,UAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA,EAAA;kGAAlB,kBAAkB,EAAA,QAAA,EAAA,gBAAA,EAAA,QAAA,EAAA,EAAA,EAAA,CAAA,CAAA,EAAA;;2FAAlB,kBAAkB,EAAA,UAAA,EAAA,CAAA;kBAH9B,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACT,oBAAA,QAAQ,EAAE,gBAAgB;AAC3B,iBAAA,CAAA;;;MCCY,eAAe,CAAA;AAK1B,IAAA,WAAA,CAAoB,EAAc,EAAA;QAAd,IAAE,CAAA,EAAA,GAAF,EAAE,CAAY;QAJzB,IAAkB,CAAA,kBAAA,GAAW,CAAC,CAAC;AAE9B,QAAA,IAAA,CAAA,SAAS,GAAG,IAAI,YAAY,EAAQ,CAAC;KAET;AAGtC,IAAA,QAAQ,CAAC,KAAY,EAAA;AACnB,QAAA,MAAM,OAAO,GAAG,KAAK,CAAC,MAAqB,CAAC;AAC5C,QAAA,IAAI,IAAI,CAAC,aAAa,CAAC,OAAO,CAAC,EAAE;AAC/B,YAAA,IAAI,CAAC,SAAS,CAAC,IAAI,EAAE,CAAC;AACvB,SAAA;KACF;AAEO,IAAA,aAAa,CAAC,OAAoB,EAAA;QACxC,MAAM,SAAS,GAAG,OAAO,CAAC,SAAS,IAAI,OAAO,CAAC,SAAS,KAAK,CAAC,GAAG,OAAO,CAAC,SAAS,GAAG,CAAC,CAAC;AACvF,QAAA,MAAM,YAAY,GAAG,OAAO,CAAC,YAAY,IAAI,CAAC,CAAC;AAC/C,QAAA,MAAM,YAAY,GAAG,OAAO,CAAC,YAAY,IAAI,CAAC,CAAC;AAC/C,QAAA,OAAO,SAAS,GAAG,YAAY,KAAK,YAAY,GAAG,MAAM,CAAC,IAAI,CAAC,kBAAkB,CAAC,CAAC,CAAC;KACrF;8GApBU,eAAe,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAA,EAAA,CAAA,UAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA,EAAA;kGAAf,eAAe,EAAA,QAAA,EAAA,aAAA,EAAA,MAAA,EAAA,EAAA,kBAAA,EAAA,oBAAA,EAAA,EAAA,OAAA,EAAA,EAAA,SAAA,EAAA,WAAA,EAAA,EAAA,IAAA,EAAA,EAAA,SAAA,EAAA,EAAA,QAAA,EAAA,kBAAA,EAAA,EAAA,EAAA,QAAA,EAAA,EAAA,EAAA,CAAA,CAAA,EAAA;;2FAAf,eAAe,EAAA,UAAA,EAAA,CAAA;kBAH3B,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACT,oBAAA,QAAQ,EAAE,aAAa;AACxB,iBAAA,CAAA;iGAEU,kBAAkB,EAAA,CAAA;sBAA1B,KAAK;gBAEI,SAAS,EAAA,CAAA;sBAAlB,MAAM;gBAKP,QAAQ,EAAA,CAAA;sBADP,YAAY;uBAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,CAAA;;;ACepC,MAAM,aAAa,GAAa;AAC9B,IAAA,OAAO,EAAE,iBAAiB;AAC1B,IAAA,KAAK,EAAE,IAAI;AACX,IAAA,WAAW,EAAE,UAAU,CAAC,MAAM,qBAAqB,CAAC;CACrD,CAAA;MASY,qBAAqB,CAAA;IA2EhC,WAAoB,CAAA,WAAwB,EACxB,OAAgB,EAChB,gBAAkC,EAClC,MAAyB,EACzB,SAA2B,EAAA;QAJ3B,IAAW,CAAA,WAAA,GAAX,WAAW,CAAa;QACxB,IAAO,CAAA,OAAA,GAAP,OAAO,CAAS;QAChB,IAAgB,CAAA,gBAAA,GAAhB,gBAAgB,CAAkB;QAClC,IAAM,CAAA,MAAA,GAAN,MAAM,CAAmB;QACzB,IAAS,CAAA,SAAA,GAAT,SAAS,CAAkB;AAxErC,QAAA,IAAA,CAAA,YAAY,GAAG,IAAI,WAAW,CAAC,EAAE,CAAC,CAAA;QAClC,IAAe,CAAA,eAAA,GAAU,EAAE,CAAC;QAC5B,IAAwB,CAAA,wBAAA,GAAU,EAAE,CAAC;QAErC,IAAS,CAAA,SAAA,GAAU,EAAE,CAAC;QACtB,IAAM,CAAA,MAAA,GAAG,IAAI,CAAC;QACd,IAAc,CAAA,cAAA,GAAG,IAAI,CAAA;QACrB,IAAa,CAAA,aAAA,GAAG,KAAK,CAAA;QACrB,IAAQ,CAAA,QAAA,GAAG,KAAK,CAAC;QACjB,IAAS,CAAA,SAAA,GAAG,KAAK,CAAC;QAClB,IAAmB,CAAA,mBAAA,GAAG,KAAK,CAAC;QAC5B,IAAe,CAAA,eAAA,GAAG,KAAK,CAAC;QACxB,IAA4B,CAAA,4BAAA,GAAG,KAAK,CAAC;QACrC,IAAqB,CAAA,qBAAA,GAAG,KAAK,CAAC;AAC9B,QAAA,IAAA,CAAA,qBAAqB,GAAG;AAChC,YAAA,MAAM,EAAE,KAAK;AACb,YAAA,QAAQ,EAAE,KAAK;AACf,YAAA,OAAO,EAAE,KAAK;AACd,YAAA,OAAO,EAAE,KAAK;SACf,CAAC;QACQ,IAAe,CAAA,eAAA,GAAsC,EAAE,CAAA;AAIzD,QAAA,IAAA,CAAA,QAAQ,GAAG,MAAM,CAAC,UAAU,CAAC,CAAA;QACpB,IAAc,CAAA,cAAA,GAAG,EAAE,CAAA;QAC5B,IAAW,CAAA,WAAA,GAAG,CAAC,CAAA;QACf,IAAW,CAAA,WAAA,GAAG,KAAK,CAAC;QAC5B,IAAiB,CAAA,iBAAA,GAAG,EAAE,CAAC;QAWvB,IAAQ,CAAA,QAAA,GAAG,KAAK,CAAC;QAGjB,IAAS,CAAA,SAAA,GAAW,EAAE,CAAA;QAGtB,IAAO,CAAA,OAAA,GAAU,EAAE,CAAA;QAGnB,IAAW,CAAA,WAAA,GAAG,EAAE,CAAA;QAGhB,IAAY,CAAA,YAAA,GAAG,YAAY,CAAC;QAG5B,IAAS,CAAA,SAAA,GAAG,KAAK,CAAA;QAGjB,IAAsB,CAAA,sBAAA,GAAkB,IAAI,CAAC;QAG7C,IAAgB,CAAA,gBAAA,GAAG,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,YAAY,CAAC,CAAC;AAMxD,QAAA,IAAA,CAAA,SAAS,GAAG,IAAI,YAAY,EAAE,CAAC;AA4Q/B,QAAA,IAAA,CAAA,QAAQ,GAAG,CAAC,CAAM,KAAI,GAAG,CAAA;AAMzB,QAAA,IAAA,CAAA,SAAS,GAAG,MAAK,GAAG,CAAA;KA3QnB;IAED,eAAe,GAAA;AACb,QAAA,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC,oBAAoB,CAAA;QAC9C,IAAI,CAAC,iBAAiB,EAAE,CAAC;KAC1B;AAED,IAAA,IAAI,oBAAoB,GAAA;QACtB,OAAO,IAAI,CAAC,SAAS,CAAC,MAAM,KAAK,IAAI,CAAC,OAAO,CAAC,MAAM,CAAA;KACrD;AAED,IAAA,WAAW,CAAC,OAAsB,EAAA;AAChC,QAAA,IAAI,OAAO,CAAC,SAAS,CAAC,EAAE;AACtB,YAAA,IAAI,CAAC,WAAW,GAAG,CAAC,CAAA;AACpB,YAAA,IAAI,CAAC,WAAW,GAAG,KAAK,CAAA;AACxB,YAAA,IAAI,CAAC,wBAAwB,GAAG,EAAE,CAAA;YAElC,IAAI,CAAC,eAAe,GAAG,OAAO,CAAC,SAAS,CAAC,CAAC,YAAY,CAAA;YACtD,IAAI,CAAC,gBAAgB,EAAE,CAAA;AACxB,SAAA;KACF;IAEO,iBAAiB,GAAA;QACvB,IAAI,CAAC,YAAY,CAAC,YAAY,CAAC,IAAI,CACjC,kBAAkB,CAAC,IAAI,CAAC,QAAQ,CAAC,EACjC,YAAY,CAAC,GAAG,CAAC,EACjB,GAAG,CAAC,MAAK;AACP,YAAA,IAAI,CAAC,WAAW,GAAG,CAAC,CAAA;AACpB,YAAA,IAAI,CAAC,WAAW,GAAG,KAAK,CAAA;AACxB,YAAA,IAAI,CAAC,wBAAwB,GAAG,EAAE,CAAA;AACpC,SAAC,CAAC,EACF,GAAG,CAAC,KAAK,IAAI,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC,KAAK,IAAI,EAAE,CAAC,GAAG,EAAE,CAAC,CAC9D,CAAC,SAAS,CAAC,KAAK,IAAG;AAClB,YAAA,IAAI,CAAC,eAAe,GAAG,KAAK,CAAA;YAC5B,IAAI,CAAC,YAAY,EAAE,CAAA;AACrB,SAAC,CAAC,CAAA;KACH;AAEO,IAAA,qBAAqB,CAAC,MAAa,EAAA;AACzC,QAAA,IAAI,CAAC,SAAS,GAAG,MAAM,CAAA;AACvB,QAAA,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC,oBAAoB,CAAA;AAE9C,QAAA,IAAI,CAAC,IAAI,CAAC,cAAc,EAAE;YACxB,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC,SAAS,CAAC,MAAM,GAAG,CAAC,CAAA;AAChD,SAAA;QACD,IAAI,CAAC,gBAAgB,EAAE,CAAA;AACvB,QAAA,IAAI,CAAC,MAAM,CAAC,aAAa,EAAE,CAAA;KAC5B;IAEO,2BAA2B,GAAA;QACjC,IAAI,CAAC,qBAAqB,GAAG;AAC3B,YAAA,MAAM,EAAE,IAAI,CAAC,eAAe,CAAC,MAAM,KAAK,CAAC;AACzC,YAAA,QAAQ,EAAE,IAAI,CAAC,eAAe,CAAC,MAAM,KAAK,CAAC;AAC3C,YAAA,OAAO,EAAE,IAAI,CAAC,eAAe,CAAC,MAAM,KAAK,CAAC;AAC1C,YAAA,OAAO,EAAE,IAAI,CAAC,eAAe,CAAC,MAAM,IAAI,CAAC;SAC1C,CAAA;KACF;AAED,IAAA,oBAAoB,CAAC,IAAS,EAAA;AAC5B,QAAA,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC;AAC3B,QAAA,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,cAAc,CAAC,CAAA;QAClC,IAAI,CAAC,WAAW,EAAE,CAAA;AAClB,QAAA,IAAI,CAAC,MAAM,CAAC,aAAa,EAAE,CAAC;KAC7B;AAED,IAAA,uBAAuB,CAAC,KAAa,EAAA;QACnC,KAAK,EAAE,eAAe,EAAE,CAAA;AACxB,QAAA,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE;AAClB,YAAA,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC;AAC3B,YAAA,IAAI,CAAC,MAAM;AACT,kBAAE,IAAI,CAAC,WAAW,EAAE;AACpB,kBAAE,IAAI,CAAC,WAAW,EAAE,CAAA;AACvB,SAAA;QACD,IAAI,CAAC,gBAAgB,EAAE,CAAC;QACxB,IAAI,CAAC,2BAA2B,EAAE,CAAA;AAClC,QAAA,IAAI,CAAC,MAAM,CAAC,aAAa,EAAE,CAAA;KAC5B;AAES,IAAA,0BAA0B,CAAC,KAAY,EAAA;QAC/C,KAAK,CAAC,eAAe,EAAE,CAAA;AACvB,QAAA,IAAI,CAAC,cAAc,GAAG,CAAC,IAAI,CAAC,cAAc,CAAC;QAC3C,IAAI,CAAC,gBAAgB,EAAE,CAAA;QACvB,IAAI,CAAC,2BAA2B,EAAE,CAAA;AAClC,QAAA,IAAI,CAAC,MAAM,CAAC,aAAa,EAAE,CAAA;KAC5B;IAED,WAAW,GAAA;AACT,QAAA,IAAI,CAAC,MAAM,GAAG,KAAK,CAAA;QACnB,IAAI,CAAC,IAAI,CAAC,WAAW,IAAI,IAAI,CAAC,OAAO,EAAE;YACrC,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,OAAO,CAAC,CAAA;AAEtD,YAAA,IAAI,CAAC,OAAO,GAAG,IAAI,cAAc,CAAC,IAAI,CAAC,cAAe,EAAE,IAAI,CAAC,gBAAgB,CAAC,CAAA;AAC/E,SAAA;QAED,IAAI,CAAC,WAAW,EAAE,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;QAEvC,IAAI,CAAC,gBAAgB,EAAE,CAAC;AACxB,QAAA,IAAI,IAAI,CAAC,wBAAwB,CAAC,MAAM,KAAK,CAAC;YAAE,IAAI,CAAC,YAAY,EAAE,CAAA;KACpE;AAEO,IAAA,gBAAgB,CAAC,OAAmB,EAAA;AAC1C,QAAA,OAAO,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC;AACzB,YAAA,KAAK,EAAE,OAAO,CAAC,aAAa,CAAC,WAAW;AACxC,YAAA,gBAAgB,EAAE,IAAI,CAAC,OAAO,CAAC,QAAQ,EAAE;AACtC,iBAAA,mBAAmB,CAAC,OAAO,CAAC,aAAa,CAAC;AAC1C,iBAAA,aAAa,CAAC,CAAC;AACd,oBAAA,OAAO,EAAE,OAAO;AAChB,oBAAA,OAAO,EAAE,QAAQ;AACjB,oBAAA,QAAQ,EAAE,OAAO;AACjB,oBAAA,QAAQ,EAAE,KAAK;AAChB,iBAAA,CAAC,CAAC;AACN,SAAA,CAAC,CAAC;KACJ;IAED,WAAW,GAAA;AACT,QAAA,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC;AACnB,QAAA,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC;AAC3B,QAAA,IAAI,CAAC,WAAW,EAAE,MAAM,EAAE,CAAA;AAC1B,QAAA,IAAI,CAAC,MAAM,CAAC,aAAa,EAAE,CAAA;AAC3B,QAAA,IAAI,CAAC,WAAW,GAAG,CAAC,CAAC;AACrB,QAAA,IAAI,CAAC,wBAAwB,GAAG,EAAE,CAAC;QACnC,IAAI,CAAC,gBAAgB,EAAE,CAAC;AACxB,QAAA,IAAI,CAAC,MAAM,CAAC,aAAa,EAAE,CAAA;KAC5B;AAGD,IAAA,WAAW,CAAC,KAAiB,EAAA;QAC3B,IACE,CAAC,IAAI,CAAC,MAAM;eACT,CAAC,IAAI,CAAC,OAAO,EAAE,aAAa,CAAC,QAAQ,CAAC,KAAK,CAAC,MAAM,CAAC;AACnD,eAAA,CAAC,IAAI,CAAC,IAAI,EAAE,aAAa,CAAC,QAAQ,CAAC,KAAK,CAAC,MAAM,CAAC,EAAE;YACrD,IAAI,CAAC,WAAW,EAAE,CAAA;AAClB,YAAA,IAAI,CAAC,MAAM,CAAC,aAAa,EAAE,CAAA;AAC5B,SAAA;KACF;AAED,IAAA,IAAI,eAAe,GAAA;QACjB,IAAI,CAAC,IAAI,CAAC,QAAQ;AAAE,YAAA,OAAO,IAAI,CAAC,cAAc,GAAG,CAAC,IAAI,CAAC,cAAc,CAAC,GAAG,EAAE,CAAA;QAE3E,OAAO,IAAI,CAAC,cAAc;cACtB,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC;AAC5B,cAAE,IAAI,CAAC,SAAS,CAAC;KACpB;AAED,IAAA,eAAe,CAAC,OAAgB,EAAA;AAC9B,QAAA,IAAI,CAAC,gBAAgB,CAAC,OAAO,CAAC,CAAC;AAC/B,QAAA,IAAI,CAAC,SAAS,GAAG,OAAO,GAAG,IAAI,CAAC,OAAO,GAAG,EAAE,CAAA;AAC5C,QAAA,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,SAAS,CAAC,CAAA;QAC7B,IAAI,CAAC,gBAAgB,EAAE,CAAA;AACvB,QAAA,IAAI,CAAC,MAAM,CAAC,aAAa,EAAE,CAAA;QAC3B,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;KACrC;IAED,WAAW,CAAC,MAAW,EAAE,KAAc,EAAA;AACrC,QAAA,IAAI,CAAC,eAAe,CAAC,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,GAAG,KAAK,CAAA;QACpD,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,IAAI,IAAI,CAAC,eAAe,CAAC,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,CAAA;AAClF,QAAA,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC,SAAS,CAAC,MAAM,KAAK,IAAI,CAAC,OAAO,CAAC,MAAM,CAAA;AAClE,QAAA,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,SAAS,CAAC,CAAA;QAC7B,IAAI,CAAC,SAAS,EAAE,CAAA;QAEhB,IAAI,CAAC,2BAA2B,EAAE,CAAA;QAClC,IAAI,CAAC,gBAAgB,EAAE,CAAC;AACxB,QAAA,IAAI,CAAC,MAAM,CAAC,aAAa,EAAE,CAAC;QAC5B,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;KACrC;AAED,IAAA,gBAAgB,CAAC,QAAiB,EAAA;AAChC,QAAA,IAAI,CAAC,eAAe,GAAG,IAAI,CAAC,OAAO;AAChC,aAAA,MAAM,CAAC,CAAC,GAAG,EAAE,IAAI,KAAI;YACpB,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,GAAG,QAAQ,CAAA;AACpC,YAAA,OAAO,GAAG,CAAC;SACZ,EAAE,EAAgC,CAAC,CAAA;KACvC;AAED,IAAA,gBAAgB,CAAC,MAAW,EAAA;QAC1B,IAAI,IAAI,CAAC,QAAQ,EAAE;AACjB,YAAA,IAAI,CAAC,eAAe,CAAC,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,GAAG,KAAK,CAAA;YACpD,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,cAAc,IACnD,cAAc,CAAC,IAAI,CAAC,SAAS,CAAC,KAAK,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,CAAA;AAC5D,YAAA,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,SAAS,CAAC,CAAA;AAC9B,SAAA;AAAM,aAAA;AACL,YAAA,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC;AAC3B,YAAA,IAAI,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAA;AAClB,SAAA;QAED,IAAI,CAAC,2BAA2B,EAAE,CAAA;QAClC,IAAI,CAAC,gBAAgB,EAAE,CAAC;AACxB,QAAA,IAAI,CAAC,MAAM,CAAC,aAAa,EAAE,CAAC;KAC7B;AAED,IAAA,OAAO,CAAC,MAAW,EAAA;QACjB,OAAO,IAAI,CAAC,SAAS,IAAI,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,CAAA;KAChD;IAED,YAAY,GAAA;QACV,MAAM,qBAAqB,GAAG,CAAC,GAAG,IAAI,CAAC,eAAe,CAAC,CAAC;AAExD,QAAA,IAAI,CAAC,iBAAiB,CAAC,qBAAqB,EAAE,IAAI,CAAC,SAAS,EAAE,IAAI,CAAC,SAAS,CAAC,CAAA;QAC7E,MAAM,aAAa,GAAG,qBAAqB;aACxC,KAAK,CACJ,IAAI,CAAC,cAAc,IAAI,IAAI,CAAC,WAAW,GAAG,CAAC,CAAC,EAC5C,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC,WAAW,CACvC,CAAC;QAEJ,IAAI,aAAa,CAAC,MAAM,EAAE;AACxB,YAAA,IAAI,CAAC,wBAAwB,GAAG,CAAC,GAAG,IAAI,CAAC,wBAAwB,EAAE,GAAG,aAAa,CAAC,CAAC;AACrF,YAAA,IAAI,CAAC,WAAW,IAAI,CAAC,CAAA;AACtB,SAAA;AAAM,aAAA;AACL,YAAA,IAAI,CAAC,WAAW,GAAG,IAAI,CAAA;AACxB,SAAA;QACD,IAAI,CAAC,gBAAgB,EAAE,CAAC;AACxB,QAAA,IAAI,CAAC,MAAM,CAAC,aAAa,EAAE,CAAA;KAC5B;AAED,IAAA,iBAAiB,CAAC,KAAiB,EAAE,aAAyB,EAAE,IAAY,EAAA;QAC1E,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,KAAI;YAClB,MAAM,WAAW,GAAG,aAAa,CAAC,IAAI,CAAC,IAAI,IAAI,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC;YACvE,MAAM,WAAW,GAAG,aAAa,CAAC,IAAI,CAAC,IAAI,IAAI,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC;AAEvE,YAAA,IAAI,WAAW,IAAI,CAAC,WAAW,EAAE;gBAC/B,OAAO,CAAC,CAAC,CAAC;AACX,aAAA;AAAM,iBAAA,IAAI,CAAC,WAAW,IAAI,WAAW,EAAE;AACtC,gBAAA,OAAO,CAAC,CAAC;AACV,aAAA;AAAM,iBAAA;AACL,gBAAA,OAAO,CAAC,CAAC;AACV,aAAA;AACH,SAAC,CAAC,CAAC;KACJ;IAES,gBAAgB,GAAA;AACxB,QAAA,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC,oBAAoB,CAAA;AAC9C,QAAA,IAAI,CAAC,SAAS,GAAG,OAAO,CAAC,IAAI,CAAC,eAAe,CAAC,MAAM,CAAC,IAAI,IAAI,CAAC,MAAM,KAClE,CAAC,IAAI,CAAC,QAAQ,IAAI,CAAC,IAAI,CAAC,aAAa,KAAK,IAAI,CAAC,aAAa,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,sBAAsB,CAAC,CAAC,CACvG,CAAC;QACF,IAAI,CAAC,mBAAmB,GAAG,IAAI,CAAC,QAAQ,IAAI,OAAO,CAAC,IAAI,CAAC,SAAS,CAAC,MAAM,GAAG,CAAC,CAAC,IAAI,IAAI,CAAC,cAAc,CAAC;AACtG,QAAA,IAAI,CAAC,eAAe,GAAG,IAAI,CAAC,MAAM,KAChC,CAAC,IAAI,CAAC,eAAe,CAAC,MAAM,KAAK,IAAI,CAAC,aAAa,IAAI,OAAO,CAAC,IAAI,CAAC,sBAAsB,CAAC,IAAI,IAAI,CAAC,QAAQ,CAAC,CAC9G,CAAC;QACF,IAAI,CAAC,4BAA4B,GAAG,IAAI,CAAC,QAAQ,IAAI,CAAC,IAAI,CAAC,cAAc,CAAC;AAC1E,QAAA,IAAI,CAAC,qBAAqB,GAAG,OAAO,CAAC,IAAI,CAAC,wBAAwB,CAAC,MAAM,CAAC,IAAI,IAAI,CAAC,SAAS,CAAC;KAC9F;;AAID,IAAA,UAAU,CAAC,GAAgB,EAAA;AACzB,QAAA,IAAI,CAAC,SAAS,GAAG,EAAE,CAAC;QAEpB,IAAI,IAAI,CAAC,QAAQ,IAAI,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE;AACvC,YAAA,IAAI,CAAC,eAAe,GAAG,EAAE,CAAA;YACzB,GAAG,CAAC,OAAO,CAAC,MAAM,IAAI,IAAI,CAAC,eAAe,CAAC,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,GAAG,IAAI,CAAC,CAAA;AAC3E,SAAA;AAAM,aAAA;AACL,YAAA,IAAI,CAAC,cAAc,GAAG,GAAG,CAAA;AAC1B,SAAA;QAED,IAAI,IAAI,CAAC,QAAQ,EAAE;AACjB,YAAA,IAAI,CAAC,qBAAqB,CAAC,GAAG,CAAC,CAAA;AAChC,SAAA;AAED,QAAA,IAAI,CAAC,MAAM,CAAC,aAAa,EAAE,CAAC;KAC7B;AAID,IAAA,gBAAgB,CAAC,EAAO,EAAA;AACtB,QAAA,IAAI,CAAC,QAAQ,GAAG,EAAE,CAAC;KACpB;AAID,IAAA,iBAAiB,CAAC,EAAO,EAAA;AACvB,QAAA,IAAI,CAAC,SAAS,GAAG,EAAE,CAAC;KACrB;AAED,IAAA,gBAAgB,CAAC,UAAmB,EAAA;AAClC,QAAA,IAAI,CAAC,QAAQ,GAAG,UAAU,CAAC;KAC5B;8GAnWU,qBAAqB,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAAE,IAAA,CAAA,WAAA,EAAA,EAAA,EAAA,KAAA,EAAAD,IAAA,CAAA,OAAA,EAAA,EAAA,EAAA,KAAA,EAAA,EAAA,CAAA,gBAAA,EAAA,EAAA,EAAA,KAAA,EAAA,EAAA,CAAA,iBAAA,EAAA,EAAA,EAAA,KAAA,EAAA,EAAA,CAAA,gBAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA,EAAA;AAArB,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,qBAAqB,EAHrB,QAAA,EAAA,kBAAA,EAAA,MAAA,EAAA,EAAA,QAAA,EAAA,UAAA,EAAA,SAAA,EAAA,WAAA,EAAA,QAAA,EAAA,UAAA,EAAA,SAAA,EAAA,WAAA,EAAA,OAAA,EAAA,SAAA,EAAA,WAAA,EAAA,aAAA,EAAA,YAAA,EAAA,cAAA,EAAA,SAAA,EAAA,WAAA,EAAA,sBAAA,EAAA,wBAAA,EAAA,gBAAA,EAAA,kBAAA,EAAA,iBAAA,EAAA,mBAAA,EAAA,EAAA,OAAA,EAAA,EAAA,SAAA,EAAA,WAAA,EAAA,EAAA,IAAA,EAAA,EAAA,SAAA,EAAA,EAAA,kBAAA,EAAA,qBAAA,EAAA,EAAA,EAAA,SAAA,EAAA,CAAC,aAAa,CAAC,6ZCrC5B,+2IA4IA,EAAA,MAAA,EAAA,CAAA,6hOAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAG,EAAA,CAAA,OAAA,EAAA,QAAA,EAAA,WAAA,EAAA,MAAA,EAAA,CAAA,OAAA,EAAA,SAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,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,EAAAF,IAAA,CAAA,oBAAA,EAAA,QAAA,EAAA,8MAAA,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,OAAA,EAAA,QAAA,EAAA,qDAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,UAAA,EAAA,SAAA,EAAA,gBAAA,CAAA,EAAA,OAAA,EAAA,CAAA,eAAA,CAAA,EAAA,QAAA,EAAA,CAAA,SAAA,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,EAAAG,cAAA,EAAA,QAAA,EAAA,WAAA,EAAA,MAAA,EAAA,CAAA,YAAA,EAAA,YAAA,EAAA,MAAA,EAAA,OAAA,CAAA,EAAA,OAAA,EAAA,CAAA,QAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAC,iBAAA,EAAA,QAAA,EAAA,cAAA,EAAA,MAAA,EAAA,CAAA,OAAA,EAAA,UAAA,CAAA,EAAA,OAAA,EAAA,CAAA,aAAA,EAAA,QAAA,EAAA,OAAA,EAAA,OAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAC,kBAAA,EAAA,QAAA,EAAA,gBAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAC,eAAA,EAAA,QAAA,EAAA,aAAA,EAAA,MAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,OAAA,EAAA,CAAA,WAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,MAAA,EAAA,IAAA,EAAA,EAAA,CAAA,aAAA,EAAA,IAAA,EAAA,WAAA,EAAA,CAAA,EAAA,eAAA,EAAA,EAAA,CAAA,uBAAA,CAAA,MAAA,EAAA,CAAA,CAAA,EAAA;;2FDpGa,qBAAqB,EAAA,UAAA,EAAA,CAAA;kBAPjC,SAAS;AACE,YAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,kBAAkB,aAGjB,CAAC,aAAa,CAAC,EACT,eAAA,EAAA,uBAAuB,CAAC,MAAM,EAAA,QAAA,EAAA,+2IAAA,EAAA,MAAA,EAAA,CAAA,6hOAAA,CAAA,EAAA,CAAA;0NAIpB,KAAK,EAAA,CAAA;sBAA/B,SAAS;uBAAC,cAAc,CAAA;gBACN,IAAI,EAAA,CAAA;sBAAtB,SAAS;uBAAC,MAAM,CAAA;gBACK,OAAO,EAAA,CAAA;sBAA5B,SAAS;uBAAC,SAAS,CAAA;gBACS,cAAc,EAAA,CAAA;sBAA1C,SAAS;uBAAC,gBAAgB,CAAA;gBAmC3B,QAAQ,EAAA,CAAA;sBADP,KAAK;gBAIN,SAAS,EAAA,CAAA;sBADR,KAAK;gBAIN,QAAQ,EAAA,CAAA;sBADP,KAAK;gBAIN,SAAS,EAAA,CAAA;sBADR,KAAK;gBAIN,OAAO,EAAA,CAAA;sBADN,KAAK;gBAIN,WAAW,EAAA,CAAA;sBADV,KAAK;gBAIN,YAAY,EAAA,CAAA;sBADX,KAAK;gBAIN,SAAS,EAAA,CAAA;sBADR,KAAK;gBAIN,sBAAsB,EAAA,CAAA;sBADrB,KAAK;gBAIN,gBAAgB,EAAA,CAAA;sBADf,KAAK;gBAIN,iBAAiB,EAAA,CAAA;sBADhB,KAAK;gBAIN,SAAS,EAAA,CAAA;sBADR,MAAM;gBAsIP,WAAW,EAAA,CAAA;sBADV,YAAY;uBAAC,kBAAkB,EAAE,CAAC,QAAQ,CAAC,CAAA;;;IElPlC,YAQX;AARD,CAAA,UAAY,WAAW,EAAA;AACrB,IAAA,WAAA,CAAA,OAAA,CAAA,GAAA,OAAe,CAAA;AACf,IAAA,WAAA,CAAA,WAAA,CAAA,GAAA,WAAuB,CAAA;AACvB,IAAA,WAAA,CAAA,aAAA,CAAA,GAAA,aAA2B,CAAA;AAC3B,IAAA,WAAA,CAAA,cAAA,CAAA,GAAA,cAA6B,CAAA;AAC7B,IAAA,WAAA,CAAA,YAAA,CAAA,GAAA,YAAyB,CAAA;AACzB,IAAA,WAAA,CAAA,cAAA,CAAA,GAAA,cAA6B,CAAA;AAC7B,IAAA,WAAA,CAAA,eAAA,CAAA,GAAA,eAA+B,CAAA;AACjC,CAAC,EARW,WAAW,KAAX,WAAW,GAQtB,EAAA,CAAA,CAAA,CAAA;AAuBM,MAAM,mBAAmB,GAAG,uBAAuB;MAC7C,UAAU,GAAG,CAAC,IAAmB,KAAK,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,MAAM,CAAC,mBAAmB,EAAC;MACrF,QAAQ,GAAG,CAAC,IAAmB,KAAK,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,MAAM,CAAC,mBAAmB,EAAC;MAOjF,2BAA2B,CAAA;AALxC,IAAA,WAAA,GAAA;QAMW,IAAO,CAAA,OAAA,GAAY,KAAK,CAAC;QACzB,IAAiB,CAAA,iBAAA,GAAY,KAAK,CAAC;AAElC,QAAA,IAAA,CAAA,UAAU,GAAkC,IAAI,YAAY,EAAmB,CAAC;QAKlF,IAAS,CAAA,SAAA,GAAmB,EAAE,CAAC;QAC/B,IAAK,CAAA,KAAA,GAAe,EAAE,CAAC;AAsQhC,KAAA;AApQC,IAAA,IAAI,sBAAsB,GAAA;QACxB,OAAO,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,WAAW,CAAC,KAAK,EAAE,CAAC,GAAG,CAAC,CAAC,EAAE,OAAO,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC;KAC3E;AAED,IAAA,IAAI,IAAI,GAAA;QACN,OAAO,IAAI,CAAC,KAAK,CAAA;KAClB;AAED,IAAA,IAAI,KAAK,GAAA;QACP,OAAO,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;KACxC;AAED,IAAA,IAAI,WAAW,GAAA;AACb,QAAA,OAAO,IAAI,CAAC,WAAW,CAAC,KAAK,EAAE,CAAC;KACjC;AAED,IAAA,IAAI,IAAI,GAAA;QACN,OAAO,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;KACxC;AAED,IAAA,IAAI,QAAQ,GAAA;QACV,OAAO,IAAI,CAAC,SAAS,CAAC;KACvB;AAED,IAAA,aAAa,CAAC,GAAQ,EAAA;QACpB,IAAI,IAAI,CAAC,OAAO,EAAE;YAEhB,MAAM,IAAI,GAAI,IAAI,CAAC,SAAsB,CAAC,IAAI,EAAE,SAAS,CAAC;YAC1D,MAAM,EAAE,GAAI,IAAI,CAAC,SAAsB,CAAC,EAAE,EAAE,SAAS,CAAC;YAEtD,IAAI,CAAC,IAAI,EAAE;AACT,gBAAA,OAAO,KAAK,CAAC;AACd,aAAA;iBACI,IAAI,CAAC,EAAE,EAAE;AACZ,gBAAA,OAAO,GAAG,CAAC,SAAS,KAAK,IAAI,CAAC;AAC/B,aAAA;YAED,OAAO,GAAG,CAAC,SAAS,IAAI,IAAI,IAAI,GAAG,CAAC,SAAS,IAAI,EAAE,CAAC;AACrD,SAAA;QAED,OAAQ,IAAI,CAAC,SAAiB,EAAE,SAAS,KAAK,GAAG,CAAC,SAAS,CAAC;KAC7D;AAED,IAAA,kBAAkB,CAAC,GAAQ,EAAA;QACzB,IAAI,IAAI,CAAC,OAAO,EAAE;YAChB,OAAO,GAAG,CAAC,SAAS,KAAM,IAAI,CAAC,SAAsB,CAAC,IAAI,EAAE,SAAS,CAAC;AACvE,SAAA;QAED,OAAQ,IAAI,CAAC,SAAiB,CAAC,SAAS,KAAK,GAAG,CAAC,SAAS,CAAC;KAC5D;AAED,IAAA,iBAAiB,CAAC,GAAQ,EAAA;QACxB,IAAI,IAAI,CAAC,OAAO,EAAE;YAChB,OAAO,GAAG,CAAC,SAAS,MAAO,IAAI,CAAC,SAAsB,CAAC,EAAE,EAAE,SAAS,IAAK,IAAI,CAAC,SAAsB,CAAC,IAAI,EAAE,SAAS,CAAC,CAAC;AACvH,SAAA;QAED,OAAQ,IAAI,CAAC,SAAiB,CAAC,SAAS,KAAK,GAAG,CAAC,SAAS,CAAC;KAC5D;IAED,QAAQ,GAAA;QACN,IAAI,CAAC,mBAAmB,EAAE,CAAC;QAC3B,IAAI,CAAC,cAAc,EAAE,CAAC;KACvB;IAEO,mBAAmB,GAAA;QACzB,IAAI,IAAI,CAAC,OAAO,EAAE;AAChB,YAAA,MAAM,YAAY,GAAG,IAAI,CAAC,IAAiB,CAAC;AAC5C,YAAA,IAAI,YAAY,CAAC,IAAI,IAAI,YAAY,CAAC,EAAE,EAAE;gBACvC,IAAI,CAAC,SAAsB,GAAG;oBAC7B,IAAI,EAAE,IAAI,CAAC,gBAAgB,CAAC,YAAY,CAAC,IAAI,CAAC;oBAC9C,EAAE,EAAE,IAAI,CAAC,gBAAgB,CAAC,YAAY,CAAC,EAAE,CAAC;oBAC1C,KAAK,EAAE,WAAW,CAAC,YAAY,CAAC,KAAK,IAAI,eAAe,CAAC,CAAC,QAAQ,EAAE;iBACrE,CAAA;AACF,aAAA;AACI,iBAAA;gBACF,IAAI,CAAC,SAAsB,GAAG;AAC7B,oBAAA,KAAK,EAAE,eAAe;iBACvB,CAAC;AACH,aAAA;YACD,IAAI,CAAC,WAAW,GAAG,MAAM,CAAC,IAAI,CAAE,IAAI,CAAC,SAAsB,CAAC,IAAI,EAAE,SAAS,KAAK,IAAI,CAAC,GAAG,EAAE,GAAG,IAAI,CAAC,CAAC,CAAC;AACrG,SAAA;AACI,aAAA;YACH,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,IAAc,CAAC,CAAC;AAC5D,YAAA,IAAI,CAAC,WAAW,GAAG,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,SAAS,CAAC,CAAC;AAC1D,SAAA;AAED,QAAA,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC,WAAW,CAAC,KAAK,EAAE,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,CAAC;KACtE;IAEO,cAAc,GAAA;QACpB,IAAI,CAAC,aAAa,EAAE,CAAC;QACrB,IAAI,CAAC,SAAS,EAAE,CAAC;KAClB;IAEO,aAAa,GAAA;AACnB,QAAA,MAAM,WAAW,GAAG,IAAI,CAAC,WAAW,CAAC,KAAK,EAAE,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;AAC7D,QAAA,MAAM,SAAS,GAAG,IAAI,CAAC,WAAW,CAAC,KAAK,EAAE,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;AACzD,QAAA,IAAI,CAAC,SAAS,GAAG,EAAE,CAAC;QAEpB,GAAG;AACD,YAAA,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC;AAClB,gBAAA,IAAI,EAAE,WAAW,CAAC,MAAM,CAAC,KAAK,CAAC;AAChC,aAAA,CAAC,CAAC;AAEH,YAAA,WAAW,CAAC,GAAG,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC;AAC3B,SAAA,QACM,WAAW,CAAC,QAAQ,CAAC,SAAS,CAAC,EAAE;KACzC;IAEO,SAAS,GAAA;AACf,QAAA,IAAI,QAAQ,GAAG,IAAI,CAAC,WAAW,CAAC,KAAK,EAAE,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;AACzD,QAAA,IAAI,MAAM,GAAG,IAAI,CAAC,WAAW,CAAC,KAAK,EAAE,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;QAErD,IAAI,eAAe,GAAe,EAAE,CAAC;QACrC,IAAI,eAAe,GAAe,EAAE,CAAC;QACrC,IAAI,eAAe,GAAe,EAAE,CAAC;;QAGrC,eAAe,GAAG,IAAI,CAAC,cAAc,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAC;;QAGxD,IAAI,eAAe,CAAC,CAAC,CAAC,CAAC,OAAO,KAAK,IAAI,CAAC,cAAc,EAAE;AACtD,YAAA,QAAQ,GAAG,IAAI,CAAC,WAAW,CAAC,KAAK,EAAE,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;AACtE,SAAA;AACI,aAAA;YACH,QAAQ,GAAG,IAAI,CAAC,WAAW,CAAC,KAAK,EAAE,CAAC,QAAQ,CAAC,CAAC,EAAE,OAAO,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;AACzF,SAAA;QACD,MAAM,GAAG,QAAQ,CAAC,KAAK,EAAE,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;QACzC,eAAe,GAAG,IAAI,CAAC,cAAc,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAC;;AAGxD,QAAA,QAAQ,GAAG,IAAI,CAAC,WAAW,CAAC,KAAK,EAAE,CAAC,GAAG,CAAC,CAAC,EAAE,OAAO,CAAC,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;QACrE,MAAM,GAAG,QAAQ,CAAC,KAAK,EAAE,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;QACxC,eAAe,GAAG,IAAI,CAAC,cAAc,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAC;QAExD,IAAI,CAAC,KAAK,GAAG;AACX,YAAA,GAAG,eAAe;AAClB,YAAA,GAAG,eAAe;AAClB,YAAA,GAAG,eAAe;SACnB,CAAC;;AAGF,QAAA,IAAI,IAAI,CAAC,KAAK,CAAC,MAAM,GAAG,EAAE,EAAE;AAC1B,YAAA,MAAM,GAAG,MAAM,CAAC,KAAK,EAAE,CAAC,GAAG,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;YACpD,QAAQ,GAAG,MAAM,CAAC,KAAK,EAAE,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;AAC1C,YAAA,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC,cAAc,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAC,CAAC;AAC3D,SAAA;KACF;IAEO,cAAc,CAAC,KAAoB,EAAE,GAAkB,EAAA;AAC7D,QAAA,KAAK,GAAG,KAAK,CAAC,KAAK,EAAE,CAAC;AACtB,QAAA,GAAG,GAAG,GAAG,CAAC,KAAK,EAAE,CAAC;QAElB,MAAM,IAAI,GAAG,EAAE,CAAC;QAChB,GAAG;YACD,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,gBAAgB,CAAC,KAAK,CAAC,CAAC,CAAC;AAExC,YAAA,KAAK,CAAC,GAAG,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC;AACrB,SAAA,QACM,KAAK,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE;AAE5B,QAAA,OAAO,IAAI,CAAC;KACb;AAED,IAAA,gBAAgB,CAAC,GAAkB,EAAA;QACjC,GAAG,GAAG,GAAG,CAAC,KAAK,EAAE,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;QAEjC,OAAO;AACL,YAAA,SAAS,EAAE,GAAG,CAAC,IAAI,EAAE;AACrB,YAAA,GAAG,EAAE,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC;AACpB,YAAA,KAAK,EAAE,GAAG,CAAC,KAAK,EAAE;AAClB,YAAA,OAAO,EAAE,GAAG,CAAC,GAAG,EAAE;AAClB,YAAA,SAAS,EAAE,GAAG,CAAC,MAAM,CAAC,mBAAmB,CAAC;YAC1C,QAAQ,EAAE,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,IAAI,EAAE,CAAC;SACxC,CAAA;KACF;AAED,IAAA,gBAAgB,CAAC,IAAY,EAAA;QAC3B,OAAO,IAAI,CAAC,gBAAgB,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC;KAC5C;AAED,IAAA,cAAc,CAAC,GAAQ,EAAA;AACrB,QAAA,OAAO,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,MAAM,CAAC,mBAAmB,CAAC,CAAC;KAC9E;AAED,IAAA,cAAc,CAAC,MAAc,EAAA;QAC3B,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;QACtC,IAAI,CAAC,cAAc,EAAE,CAAC;KACvB;AAED,IAAA,UAAU,CAAC,SAAiB,EAAA;QAC1B,MAAM,UAAU,GAAG,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;QAE1C,IAAI,IAAI,CAAC,OAAO,EAAE;AAChB,YAAA,IAAI,CAAC,iBAAiB,CAAC,UAAU,CAAC,CAAC;AACpC,SAAA;AACI,aAAA;AACH,YAAA,IAAI,CAAC,kBAAkB,CAAC,UAAU,CAAC,CAAC;AACrC,SAAA;KACF;AAEO,IAAA,iBAAiB,CAAC,YAA2B,EAAA;AACnD,QAAA,MAAM,SAAS,GAAI,IAAI,CAAC,SAAsB,CAAC;;AAG/C,QAAA,IAAI,CAAC,SAAS,CAAC,IAAI,EAAE;YACnB,SAAS,CAAC,IAAI,GAAG,IAAI,CAAC,gBAAgB,CAAC,YAAY,CAAC,CAAC;AACtD,SAAA;;AAGI,aAAA,IAAI,CAAC,SAAS,CAAC,EAAE,EAAE;AACtB,YAAA,MAAM,UAAU,GAAG,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;;YAGzD,IAAI,YAAY,CAAC,QAAQ,CAAC,UAAU,EAAE,KAAK,CAAC,EAAE;AAC5C,gBAAA,SAAS,CAAC,EAAE,GAAG,SAAS,CAAC,IAAI,CAAC;gBAC9B,SAAS,CAAC,IAAI,GAAG,IAAI,CAAC,gBAAgB,CAAC,YAAY,CAAC,CAAC;AACtD,aAAA;;AAGI,iBAAA;gBACH,SAAS,CAAC,EAAE,GAAG,IAAI,CAAC,gBAAgB,CAAC,YAAY,CAAC,CAAC;AACpD,aAAA;AACF,SAAA;;AAGI,aAAA;YACH,SAAS,CAAC,IAAI,GAAG,IAAI,CAAC,gBAAgB,CAAC,YAAY,CAAC,CAAC;AACrD,YAAA,SAAS,CAAC,EAAE,GAAG,SAAS,CAAC;AAC1B,SAAA;AAED,QAAA,IAAI,CAAC,SAAS,CAAC,SAAS,CAAC,CAAC;KAC3B;AAEO,IAAA,SAAS,CAAC,KAAe,EAAA;QAC/B,MAAM,QAAQ,GAAc,EAAE,CAAC;AAC/B,QAAA,QAAQ,CAAC,KAAK,GAAG,WAAW,CAAC,aAAa,CAAC;QAE3C,IAAI,KAAK,CAAC,IAAI,EAAE;YACd,QAAQ,CAAC,IAAI,GAAG,IAAI,CAAC,cAAc,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;YAEhD,IAAI,KAAK,CAAC,EAAE;AAAE,gBAAA,QAAQ,CAAC,EAAE,GAAG,QAAQ,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,SAAS,CAAC,CAAC,CAAC;AACvE,SAAA;AAED,QAAA,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;KAChC;AAEO,IAAA,kBAAkB,CAAC,UAAyB,EAAA;QAClD,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,gBAAgB,CAAC,UAAU,CAAC,CAAC;AACnD,QAAA,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,mBAAmB,CAAC,CAAC,CAAC;KAC9D;AAEM,IAAA,YAAY,CAAC,SAAiB,EAAA;QACnC,IAAI,CAAC,IAAI,CAAC,iBAAiB;AAAE,YAAA,OAAO,KAAK,CAAC;QAE1C,MAAM,IAAI,GAAG,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;AACpC,QAAA,MAAM,GAAG,GAAG,MAAM,EAAE,CAAC;AAErB,QAAA,OAAO,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;KAC1B;8GA/QU,2BAA2B,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA,EAAA;AAA3B,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,2BAA2B,6LC3CxC,0xCAyCA,EAAA,MAAA,EAAA,CAAA,68NAAA,CAAA,EAAA,YAAA,EAAA,CAAA,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,OAAA,EAAA,QAAA,EAAA,kBAAA,EAAA,MAAA,EAAA,CAAA,SAAA,EAAA,cAAA,EAAA,eAAA,CAAA,EAAA,CAAA,EAAA,CAAA,CAAA,EAAA;;2FDEa,2BAA2B,EAAA,UAAA,EAAA,CAAA;kBALvC,SAAS;+BACE,0BAA0B,EAAA,QAAA,EAAA,0xCAAA,EAAA,MAAA,EAAA,CAAA,68NAAA,CAAA,EAAA,CAAA;8BAK3B,OAAO,EAAA,CAAA;sBAAf,KAAK;gBACG,iBAAiB,EAAA,CAAA;sBAAzB,KAAK;gBACG,IAAI,EAAA,CAAA;sBAAZ,KAAK;gBACI,UAAU,EAAA,CAAA;sBAAnB,MAAM;;;AEpCT,MAAM,cAAc,GAAa;AAC/B,IAAA,OAAO,EAAE,iBAAiB;AAC1B,IAAA,KAAK,EAAE,IAAI;AACX,IAAA,WAAW,EAAE,UAAU,CAAC,MAAM,mBAAmB,CAAC;CACnD,CAAA;MAUY,mBAAmB,CAAA;AANhC,IAAA,WAAA,GAAA;AAkBW,QAAA,IAAA,CAAA,IAAI,GAAoB,MAAM,EAAE,CAAC,MAAM,EAAE,CAAC;QAC1C,IAAO,CAAA,OAAA,GAAY,KAAK,CAAC;QACzB,IAAiB,CAAA,iBAAA,GAAY,KAAK,CAAC;QACnC,IAAa,CAAA,aAAA,GAAkB,EAAE,CAAC;AAEjC,QAAA,IAAA,CAAA,UAAU,GAAG,IAAI,YAAY,EAAmB,CAAC;AACjD,QAAA,IAAA,CAAA,KAAK,GAAG,IAAI,YAAY,EAAE,CAAC;QAGrC,IAAa,CAAA,aAAA,GAAG,KAAK,CAAC;AAsHtB,QAAA,IAAA,CAAA,QAAQ,GAAG,CAAC,KAAsB,KAAI,GAAG,CAAC;AAM1C,QAAA,IAAA,CAAA,OAAO,GAAG,MAAK,GAAG,CAAC;AACpB,KAAA;AAhJiB,IAAA,SAAA,IAAA,CAAA,OAAO,GAAkB;AACvC,QAAA,EAAE,KAAK,EAAE,WAAW,CAAC,KAAK,EAAE,QAAQ,EAAE,OAAO,EAAE,IAAI,EAAE,UAAU,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,EAAE,QAAQ,CAAC,MAAM,EAAE,CAAC,EAAE,CAAC,EAAE;QACtG,EAAE,KAAK,EAAE,WAAW,CAAC,SAAS,EAAE,QAAQ,EAAE,OAAO,EAAE,IAAI,EAAE,UAAU,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC,EAAE,EAAE,EAAE,QAAQ,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC,EAAE,CAAC,EAAE;AAChJ,QAAA,EAAE,KAAK,EAAE,WAAW,CAAC,WAAW,EAAE,QAAQ,EAAE,OAAO,EAAE,IAAI,EAAE,UAAU,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,CAAC,EAAE,MAAM,CAAC,CAAC,EAAE,EAAE,EAAE,QAAQ,CAAC,MAAM,EAAE,CAAC,EAAE,CAAC,EAAE;AAChI,QAAA,EAAE,KAAK,EAAE,WAAW,CAAC,YAAY,EAAE,QAAQ,EAAE,OAAO,EAAE,IAAI,EAAE,UAAU,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAC,CAAC,EAAE,EAAE,EAAE,QAAQ,CAAC,MAAM,EAAE,CAAC,EAAE,CAAC,EAAE;AAClI,QAAA,EAAE,KAAK,EAAE,WAAW,CAAC,UAAU,EAAE,QAAQ,EAAE,OAAO,EAAE,IAAI,EAAE,UAAU,CAAC,MAAM,EAAE,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,EAAE,EAAE,EAAE,QAAQ,CAAC,MAAM,EAAE,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,EAAE,CAAC,EAAE;AAC3I,QAAA,EAAE,KAAK,EAAE,WAAW,CAAC,YAAY,EAAE,QAAQ,EAAE,OAAO,EAAE,IAAI,EAAE,UAAU,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,CAAC,EAAE,QAAQ,CAAC,CAAC,EAAE,EAAE,EAAE,QAAQ,CAAC,MAAM,EAAE,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,EAAE,CAAC,EAAE;AAClJ,QAAA,EAAE,KAAK,EAAE,WAAW,CAAC,aAAa,EAAE,QAAQ,EAAE,OAAO,EAAE,CAAC,EAAE,aAAa,EAAE,IAAI,EAAE;KAChF,CAAC,EAAA;AAaF,IAAA,IAAI,eAAe,GAAA;AACjB,QAAA,IAAI,CAAC,IAAI,CAAC,aAAa,EAAE,MAAM,EAAE;YAC/B,OAAO,mBAAmB,CAAC,OAAO,CAAC;AACpC,SAAA;QAED,OAAO,mBAAmB,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,IAAI,IAAI,CAAC,aAAa,CAAC,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC;KACtF;AAED,IAAA,IAAI,IAAI,GAAA;AACN,QAAA,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE;YACjB,OAAO;AACR,SAAA;AAED,QAAA,OAAQ,IAAI,CAAC,IAAkB,CAAC,IAAI,CAAC;KACtC;AAED,IAAA,IAAI,EAAE,GAAA;AACJ,QAAA,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE;YACjB,OAAO;AACR,SAAA;AAED,QAAA,OAAQ,IAAI,CAAC,IAAkB,CAAC,EAAE,CAAC;KACpC;AAED,IAAA,IAAI,WAAW,GAAA;QACb,MAAM,IAAI,GAAG,IAAI,CAAC,IAAI,GAAG,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,GAAG,EAAE,CAAC;QAC5D,MAAM,EAAE,GAAG,IAAI,CAAC,EAAE,GAAG,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,GAAG,EAAE,CAAC;AAEtD,QAAA,OAAO,CAAG,EAAA,IAAI,CAAK,CAAA,EAAA,EAAE,GAAG,IAAI,GAAG,EAAE,GAAG,EAAG,EAAE,CAAC;KAC3C;IAED,QAAQ,GAAA;KACP;AAED,IAAA,YAAY,CAAC,MAAc,EAAA;AACzB,QAAA,IAAI,CAAC,cAAc,GAAG,MAAM,CAAC;QAE7B,IAAI,CAAC,IAAI,GAAG;YACV,GAAI,IAAI,CAAC,IAAkB;YAC3B,GAAG,MAAM,CAAC,QAAQ,EAAE;SACrB,CAAC;QACF,IAAI,CAAC,IAAI,CAAC,KAAK,GAAG,MAAM,CAAC,KAAK,CAAC;QAC/B,IAAI,CAAC,aAAa,GAAG,MAAM,CAAC,aAAa,IAAI,KAAK,CAAC;AAEnD,QAAA,IAAI,CAAC,IAAI,CAAC,aAAa,EAAE;YACvB,IAAI,CAAC,SAAS,EAAE,CAAC;AAClB,SAAA;KACF;AAED,IAAA,gBAAgB,CAAC,KAAsB,EAAA;AACrC,QAAA,IAAI,CAAC,IAAI,GAAG,KAAK,CAAC;AAElB,QAAA,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE;YACjB,IAAI,CAAC,SAAS,EAAE,CAAC;AAClB,SAAA;KACF;IAED,SAAS,GAAA;QACP,IAAI,IAAI,CAAC,aAAa,IAAI,CAAE,IAAI,CAAC,IAAkB,CAAC,EAAE,EAAE;YACrD,IAAI,CAAC,IAAkB,CAAC,EAAE,GAAI,IAAI,CAAC,IAAkB,CAAC,IAAI,CAAC;AAC7D,SAAA;QAED,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AAChC,QAAA,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AACzB,QAAA,IAAI,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC;KACnB;IAED,iBAAiB,GAAA;AACf,QAAA,IAAI,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC;KACnB;IAEM,OAAO,kBAAkB,CAAC,UAAuB,EAAE,iBAAiC,GAAA,WAAW,CAAC,KAAK,EAAA;AAC1G,QAAA,OAAO,mBAAmB,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC,KAAK,KAAK,UAAU,CAAC;AAClE,YAAA,mBAAmB,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC,KAAK,KAAK,iBAAiB,CAAC,CAAC;KACxE;IAED,kCAAkC,GAAA;AAChC,QAAA,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE;YACjB,OAAO;AACR,SAAA;QAED,MAAM,MAAM,GAAG,mBAAmB,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC,KAAK,KAAM,IAAI,CAAC,IAAkB,EAAE,KAAK,CAAC,CAAC;QAElG,IAAI,CAAC,MAAM,EAAE;YACX,OAAO;AACR,SAAA;AAED,QAAA,IAAI,CAAC,cAAc,GAAG,MAAM,CAAC;QAC7B,IAAI,CAAC,aAAa,GAAG,MAAM,CAAC,aAAa,IAAI,KAAK,CAAC;KACpD;AAED,IAAA,UAAU,CAAC,KAAsB,EAAA;QAC/B,IAAI,IAAI,CAAC,OAAO,EAAE;YAChB,MAAM,UAAU,GAAG,KAAkB,CAAC;YAEtC,IAAI,UAAU,CAAC,KAAK,IAAI,UAAU,CAAC,KAAK,KAAK,WAAW,CAAC,aAAa,EAAE;AACtE,gBAAA,MAAM,MAAM,GAAG,mBAAmB,CAAC,kBAAkB,CAAC,UAAU,CAAC,KAAK,CAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;AAC1F,gBAAA,IAAI,CAAC,IAAI,GAAG,EAAE,GAAG,MAAM,EAAE,KAAK,EAAE,UAAU,CAAC,KAAK,EAAE,CAAC;AACpD,aAAA;AAEI,iBAAA,IAAI,UAAU,CAAC,IAAI,IAAI,UAAU,CAAC,EAAE,EAAE;gBACzC,IAAI,CAAC,IAAI,GAAG,EAAE,IAAI,EAAE,UAAU,CAAC,IAAI,EAAE,EAAE,EAAE,UAAU,CAAC,EAAE,EAAE,KAAK,EAAE,WAAW,CAAC,aAAa,EAAE,CAAC;AAC5F,aAAA;YAED,IAAI,CAAC,kCAAkC,EAAE,CAAC;AAC3C,SAAA;AAEI,aAAA;AACH,YAAA,IAAI,CAAC,IAAI,GAAG,KAAK,CAAC;AACnB,SAAA;KACF;AAED,IAAA,gBAAgB,CAAC,EAAoC,EAAA;AACnD,QAAA,IAAI,CAAC,QAAQ,GAAG,EAAE,CAAC;KACpB;AAID,IAAA,iBAAiB,CAAC,EAAO,EAAA;AACvB,QAAA,IAAI,CAAC,OAAO,GAAG,EAAE,CAAC;KACnB;8GA/IU,mBAAmB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA,EAAA;AAAnB,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,mBAAmB,EAFnB,QAAA,EAAA,iBAAA,EAAA,MAAA,EAAA,EAAA,IAAA,EAAA,MAAA,EAAA,OAAA,EAAA,SAAA,EAAA,iBAAA,EAAA,mBAAA,EAAA,aAAA,EAAA,eAAA,EAAA,EAAA,OAAA,EAAA,EAAA,UAAA,EAAA,YAAA,EAAA,KAAA,EAAA,OAAA,EAAA,EAAA,SAAA,EAAA,CAAE,cAAc,CAAE,0BCvB/B,s1CAiDA,EAAA,MAAA,EAAA,CAAA,ysLAAA,CAAA,EAAA,YAAA,EAAA,CAAA,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,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,EAAAC,eAAA,EAAA,QAAA,EAAA,YAAA,EAAA,MAAA,EAAA,CAAA,OAAA,EAAA,MAAA,EAAA,MAAA,EAAA,SAAA,EAAA,UAAA,EAAA,WAAA,EAAA,SAAA,CAAA,EAAA,OAAA,EAAA,CAAA,SAAA,EAAA,SAAA,EAAA,QAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAC,2BAAA,EAAA,QAAA,EAAA,0BAAA,EAAA,MAAA,EAAA,CAAA,SAAA,EAAA,mBAAA,EAAA,MAAA,CAAA,EAAA,OAAA,EAAA,CAAA,YAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,MAAA,EAAA,IAAA,EAAAN,EAAA,CAAA,aAAA,EAAA,IAAA,EAAA,WAAA,EAAA,CAAA,EAAA,CAAA,CAAA,EAAA;;2FDxBa,mBAAmB,EAAA,UAAA,EAAA,CAAA;kBAN/B,SAAS;+BACE,iBAAiB,EAAA,SAAA,EAGhB,CAAE,cAAc,CAAE,EAAA,QAAA,EAAA,s1CAAA,EAAA,MAAA,EAAA,CAAA,ysLAAA,CAAA,EAAA,CAAA;8BAcpB,IAAI,EAAA,CAAA;sBAAZ,KAAK;gBACG,OAAO,EAAA,CAAA;sBAAf,KAAK;gBACG,iBAAiB,EAAA,CAAA;sBAAzB,KAAK;gBACG,aAAa,EAAA,CAAA;sBAArB,KAAK;gBAEI,UAAU,EAAA,CAAA;sBAAnB,MAAM;gBACG,KAAK,EAAA,CAAA;sBAAd,MAAM;;;MEpCI,iBAAiB,CAAA;AAK5B,IAAA,WAAA,CAAoB,UAAmC,EAAA;QAAnC,IAAU,CAAA,UAAA,GAAV,UAAU,CAAyB;QAJ9C,IAAU,CAAA,UAAA,GAAG,GAAG,CAAC;QACjB,IAAM,CAAA,MAAA,GAAG,CAAC,CAAC;QACb,IAAS,CAAA,SAAA,GAAG,CAAC,CAAC;KAEsC;IAE3D,QAAQ,GAAA;QACN,MAAM,MAAM,GAAG,IAAI,CAAC,UAAU,CAAC,aAAa,CAAC,YAAY,CAAC;AAC1D,QAAA,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,GAAG,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC;KAC5D;8GAVU,iBAAiB,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAA,EAAA,CAAA,UAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA,EAAA;AAAjB,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,iBAAiB,4GCP9B,8TAaA,EAAA,MAAA,EAAA,CAAA,oGAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAF,IAAA,CAAA,0BAAA,EAAA,QAAA,EAAA,qBAAA,EAAA,MAAA,EAAA,CAAA,OAAA,EAAA,aAAA,EAAA,YAAA,EAAA,WAAA,EAAA,WAAA,EAAA,OAAA,CAAA,EAAA,CAAA,EAAA,CAAA,CAAA,EAAA;;2FDNa,iBAAiB,EAAA,UAAA,EAAA,CAAA;kBAL7B,SAAS;+BACE,cAAc,EAAA,QAAA,EAAA,8TAAA,EAAA,MAAA,EAAA,CAAA,oGAAA,CAAA,EAAA,CAAA;iGAKf,UAAU,EAAA,CAAA;sBAAlB,KAAK;gBACG,MAAM,EAAA,CAAA;sBAAd,KAAK;;;MEKK,gBAAgB,GAAG,IAAI,cAAc,CAAY,uBAAuB;;MCZxE,QAAQ,CAAA;AACnB,IAAA,WAAA,CAAqB,OAAmB,EAAA;QAAnB,IAAO,CAAA,OAAA,GAAP,OAAO,CAAY;KACvC;IAED,KAAK,GAAA;AACH,QAAA,IAAI,CAAC,OAAO,CAAC,OAAO,EAAE,CAAC;KACxB;IAED,WAAW,GAAA;QACT,OAAO,IAAI,CAAC,OAAO,CAAC,cAAc,CAAC,qBAAqB,EAAE,CAAC;KAC5D;AACF;;MCFY,cAAc,CAAA;IAmBzB,WACqC,CAAA,IAAe,EAC1C,GAAa,EAAA;QADc,IAAI,CAAA,IAAA,GAAJ,IAAI,CAAW;QAC1C,IAAG,CAAA,GAAA,GAAH,GAAG,CAAU;QApBvB,IAAO,CAAA,OAAA,GAAG,EAAE,CAAC;QACb,IAAI,CAAA,IAAA,GAAG,aAAa,CAAC;AAErB,QAAA,IAAA,CAAA,MAAM,GAAgB;AACpB,YAAA,OAAO,EAAE,IAAI;SACd,CAAA;QAEsC,IAAK,CAAA,KAAA,GAAG,sBAAsB,CAAC;QAC1C,IAAS,CAAA,SAAA,GAAG,cAAc,CAAC;QACzB,IAAS,CAAA,SAAA,GAAG,KAAK,CAAC;AAE/B,QAAA,IAAA,CAAA,KAAK,GAAgF;AACpG,YAAA,OAAO,EAAE,EAAE,KAAK,EAAE,sBAAsB,EAAE,IAAI,EAAE,aAAa,EAAE,SAAS,EAAE,cAAc,EAAE;AAC1F,YAAA,OAAO,EAAE,EAAE,KAAK,EAAE,uBAAuB,EAAE,IAAI,EAAE,SAAS,EAAE,SAAS,EAAE,iBAAiB,EAAE;AAC1F,YAAA,MAAM,EAAE,EAAE,KAAK,EAAE,kBAAkB,EAAE,IAAI,EAAE,OAAO,EAAE,SAAS,EAAE,cAAc,EAAE;AAC/E,YAAA,IAAI,EAAE,EAAE,KAAK,EAAE,sBAAsB,EAAE,IAAI,EAAE,MAAM,EAAE,SAAS,EAAE,cAAc,EAAE;SACjF,CAAA;AAMC,QAAA,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC;AAC5B,QAAA,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC;QACtB,IAAI,CAAC,MAAM,GAAG;YACZ,GAAG,IAAI,CAAC,MAAM;YACd,GAAG,IAAI,CAAC,MAAM;SACf,CAAA;KACF;IAED,IAAa,IAAI,CAAC,IAA2D,EAAA;QAC3E,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC;QAClC,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,SAAS,CAAC;QAC5C,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,KAAK,CAAC;KACrC;IAED,QAAQ,GAAA;AACN,QAAA,IAAI,IAAI,CAAC,MAAM,EAAE,OAAO,EAAE;AACxB,YAAA,IAAI,CAAC,UAAU,GAAG,UAAU,CAAC,MAAM,IAAI,CAAC,KAAK,EAAE,EAAE,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;AACvE,SAAA;KACF;IAED,WAAW,GAAA;AACT,QAAA,YAAY,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;KAC/B;IAED,KAAK,GAAA;AACH,QAAA,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC;AAEtB,QAAA,UAAU,CAAC,MAAM,IAAI,CAAC,GAAG,CAAC,KAAK,EAAE,EAAE,GAAG,CAAC,CAAC;KACzC;AAnDU,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,kBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,cAAc,kBAoBf,gBAAgB,EAAA,EAAA,EAAA,KAAA,EAAAS,QAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA,EAAA;AApBf,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,cAAc,iNCX3B,+QAWA,EAAA,MAAA,EAAA,CAAA,8lLAAA,CAAA,EAAA,eAAA,EAAA,EAAA,CAAA,uBAAA,CAAA,MAAA,EAAA,CAAA,CAAA,EAAA;;2FDAa,cAAc,EAAA,UAAA,EAAA,CAAA;kBAN1B,SAAS;+BACE,WAAW,EAAA,eAAA,EAGJ,uBAAuB,CAAC,MAAM,EAAA,QAAA,EAAA,+QAAA,EAAA,MAAA,EAAA,CAAA,8lLAAA,CAAA,EAAA,CAAA;;0BAsB5C,MAAM;2BAAC,gBAAgB,CAAA;gEAZa,KAAK,EAAA,CAAA;sBAA3C,WAAW;uBAAC,wBAAwB,CAAA;gBACT,SAAS,EAAA,CAAA;sBAApC,WAAW;uBAAC,aAAa,CAAA;gBACI,SAAS,EAAA,CAAA;sBAAtC,WAAW;uBAAC,eAAe,CAAA;gBAqBf,IAAI,EAAA,CAAA;sBAAhB,KAAK;;;MEnCK,gBAAgB,CAAA;AAL7B,IAAA,WAAA,GAAA;QAMW,IAAI,CAAA,IAAA,GAA+B,OAAO,CAAA;AACpD,KAAA;8GAFY,gBAAgB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA,EAAA;AAAhB,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,gBAAgB,6ECP7B,qHAIA,EAAA,MAAA,EAAA,CAAA,gyBAAA,CAAA,EAAA,YAAA,EAAA,CAAA,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,EAAA;;2FDGa,gBAAgB,EAAA,UAAA,EAAA,CAAA;kBAL5B,SAAS;+BACE,aAAa,EAAA,QAAA,EAAA,qHAAA,EAAA,MAAA,EAAA,CAAA,gyBAAA,CAAA,EAAA,CAAA;8BAKd,IAAI,EAAA,CAAA;sBAAZ,KAAK;;;MEFK,cAAc,CAAA;IAmBzB,WAAoB,CAAA,KAAiB,EAA4B,QAAkB,EAAA;QAA/D,IAAK,CAAA,KAAA,GAAL,KAAK,CAAY;QAA4B,IAAQ,CAAA,QAAA,GAAR,QAAQ,CAAU;QAhBnF,IAAQ,CAAA,QAAA,GAAkB,IAAI,CAAC;QAG/B,IAAa,CAAA,aAAA,GAA8D,WAAW,CAAC;QAMvF,IAAY,CAAA,YAAA,GAA4B,SAAS,CAAC;QAGlD,IAAS,CAAA,SAAA,GAAkC,SAAS,CAAC;QAErD,IAAY,CAAA,YAAA,GAAuB,IAAI,CAAC;KAGvC;AAED,IAAA,WAAW,CAAC,OAAsB,EAAA;QAChC,IAAI,UAAU,IAAI,OAAO,EAAE;AACzB,YAAA,MAAM,KAAK,GAAG,CAAG,EAAA,OAAO,CAAC,UAAU,CAAC,CAAC,YAAY,CAAA,CAAE,CAAC,IAAI,EAAE,CAAC;AAC3D,YAAA,IAAI,KAAK,EAAE,MAAM,GAAG,CAAC,EAAE;AACrB,gBAAA,IAAI,CAAC,eAAe,CAAC,KAAK,CAAC,CAAA;AAC5B,aAAA;AACF,SAAA;KACF;IAED,WAAW,GAAA;QACT,IAAI,IAAI,CAAC,YAAY,EAAE;AACrB,YAAA,IAAI,CAAC,YAAY,CAAC,MAAM,EAAE,CAAC;AAC5B,SAAA;KACF;AAEO,IAAA,eAAe,CAAC,KAAa,EAAA;QACnC,IAAI,CAAC,IAAI,CAAC,YAAY,IAAI,KAAK,KAAK,GAAG,EAAE;YACvC,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC;AAC7C,SAAA;AAAM,aAAA,IAAI,IAAI,CAAC,YAAY,IAAI,KAAK,KAAK,GAAG,EAAE;AAC7C,YAAA,IAAI,CAAC,YAAY,CAAC,WAAW,GAAG,KAAK,CAAC;AACvC,SAAA;aAAM,IAAI,IAAI,CAAC,YAAY,EAAE;YAC5B,IAAI,CAAC,YAAY,CAAC,SAAS,CAAC,GAAG,CAAC,kBAAkB,CAAC,CAAC;YACpD,UAAU,CAAC,MAAK;AACd,gBAAA,IAAI,CAAC,YAAY,EAAE,MAAM,EAAE,CAAC;AAC5B,gBAAA,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC;aAC1B,EAAE,GAAG,CAAC,CAAA;AACR,SAAA;KACF;AAEO,IAAA,WAAW,CAAC,KAAa,EAAA;QAC/B,MAAM,YAAY,GAAG,IAAI,CAAC,QAAQ,CAAC,aAAa,CAAC,MAAM,CAAC,CAAC;AACzD,QAAA,IAAI,CAAC,UAAU,CAAC,YAAY,CAAC,CAAC;AAC9B,QAAA,YAAY,CAAC,WAAW,GAAG,KAAK,CAAC;QACjC,IAAI,CAAC,KAAK,CAAC,aAAa,CAAC,SAAS,CAAC,GAAG,CAAC,WAAW,CAAC,CAAC;QACpD,IAAI,CAAC,KAAK,CAAC,aAAa,CAAC,WAAW,CAAC,YAAY,CAAC,CAAC;AACnD,QAAA,OAAO,YAAY,CAAC;KACrB;AAEO,IAAA,UAAU,CAAC,YAAyB,EAAA;AAC1C,QAAA,MAAM,CAAC,IAAI,EAAE,IAAI,CAAC,GAAG,IAAI,CAAC,aAAa,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;AACnD,QAAA,YAAY,CAAC,SAAS,CAAC,GAAG,CAAC,OAAO,EAAE,CAAA,CAAA,EAAI,IAAI,CAAA,CAAE,EAAE,CAAI,CAAA,EAAA,IAAI,EAAE,EAAE,iBAAiB,CAAC,CAAC;QAC/E,IAAI,IAAI,CAAC,kBAAkB,EAAE;YAC3B,MAAM,aAAa,GAAG,IAAI,CAAC,kBAAkB,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;YACzD,YAAY,CAAC,SAAS,CAAC,GAAG,CAAC,GAAG,aAAa,CAAC,CAAC;AAC9C,SAAA;QACD,YAAY,CAAC,SAAS,CAAC,GAAG,CAAC,CAAI,CAAA,EAAA,IAAI,CAAC,YAAY,CAAE,CAAA,CAAC,CAAC;QACpD,YAAY,CAAC,SAAS,CAAC,GAAG,CAAC,CAAI,CAAA,EAAA,IAAI,CAAC,SAAS,CAAE,CAAA,CAAC,CAAC;KAClD;AArEU,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,kBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,cAAc,4CAmBsB,QAAQ,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA,EAAA;kGAnB5C,cAAc,EAAA,QAAA,EAAA,YAAA,EAAA,MAAA,EAAA,EAAA,QAAA,EAAA,UAAA,EAAA,aAAA,EAAA,eAAA,EAAA,kBAAA,EAAA,oBAAA,EAAA,YAAA,EAAA,cAAA,EAAA,SAAA,EAAA,WAAA,EAAA,EAAA,aAAA,EAAA,IAAA,EAAA,QAAA,EAAA,EAAA,EAAA,CAAA,CAAA,EAAA;;2FAAd,cAAc,EAAA,UAAA,EAAA,CAAA;kBAH1B,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACT,oBAAA,QAAQ,EAAE,YAAY;AACvB,iBAAA,CAAA;;0BAoByC,MAAM;2BAAC,QAAQ,CAAA;4CAhBvD,QAAQ,EAAA,CAAA;sBADP,KAAK;gBAIN,aAAa,EAAA,CAAA;sBADZ,KAAK;gBAIN,kBAAkB,EAAA,CAAA;sBADjB,KAAK;gBAIN,YAAY,EAAA,CAAA;sBADX,KAAK;gBAIN,SAAS,EAAA,CAAA;sBADR,KAAK;;;MCfK,kBAAkB,CAAA;IAC7B,IACI,KAAK,CAAC,KAAmC,EAAA;AAC3C,QAAA,MAAM,OAAO,GAAI,IAAI,CAAC,EAAE,CAAC,aAA6B,CAAC;AACvD,QAAA,IAAI,KAAK,EAAE;YACT,OAAO,CAAC,SAAS,CAAC,GAAG,CAAC,GAAG,GAAG,KAAK,CAAC,CAAA;AACnC,SAAA;AAAM,aAAA;YACL,OAAO,CAAC,SAAS,CAAC,MAAM,CAAC,UAAU,EAAE,YAAY,CAAC,CAAA;AACnD,SAAA;KACF;AAED,IAAA,WAAA,CAAoB,EAAc,EAAA;QAAd,IAAE,CAAA,EAAA,GAAF,EAAE,CAAY;AAChC,QAAA,MAAM,OAAO,GAAgB,IAAI,CAAC,EAAE,CAAC,aAAa,CAAC;QAEnD,IAAI,OAAO,CAAC,OAAO,CAAC,WAAW,EAAE,KAAK,QAAQ,EAAE;AAC9C,YAAA,MAAM,IAAI,KAAK,CAAC,CAAA,yCAAA,CAA2C,CAAC,CAAC;AAC9D,SAAA;AAED,QAAA,OAAO,CAAC,SAAS,CAAC,GAAG,CAAC,YAAY,CAAC,CAAC;KACrC;8GAnBU,kBAAkB,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAA,EAAA,CAAA,UAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA,EAAA;kGAAlB,kBAAkB,EAAA,QAAA,EAAA,aAAA,EAAA,MAAA,EAAA,EAAA,KAAA,EAAA,OAAA,EAAA,EAAA,QAAA,EAAA,EAAA,EAAA,CAAA,CAAA,EAAA;;2FAAlB,kBAAkB,EAAA,UAAA,EAAA,CAAA;kBAH9B,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACT,oBAAA,QAAQ,EAAE,aAAa;AACxB,iBAAA,CAAA;iGAGK,KAAK,EAAA,CAAA;sBADR,KAAK;;;MCQK,gBAAgB,CAAA;IAI3B,IACI,SAAS,CAAC,GAAY,EAAA;AACxB,QAAA,IAAI,GAAG,EAAE;YACP,IAAI,CAAC,IAAI,EAAE,CAAC;AACb,SAAA;AAAM,aAAA;YACL,IAAI,CAAC,IAAI,EAAE,CAAC;AACb,SAAA;KACF;AAOD,IAAA,WAAA,CACU,aAA+B,EAC/B,QAAmB,EACnB,gBAA4B,EAAA;QAF5B,IAAa,CAAA,aAAA,GAAb,aAAa,CAAkB;QAC/B,IAAQ,CAAA,QAAA,GAAR,QAAQ,CAAW;QACnB,IAAgB,CAAA,gBAAA,GAAhB,gBAAgB,CAAY;QApB9B,IAAU,CAAA,UAAA,GAAG,KAAK,CAAC;QAYlB,IAAW,CAAA,WAAA,GAA+B,OAAO,CAAA;QACjD,IAAW,CAAA,WAAA,GAAG,IAAI,CAAA;QAEgB,IAAc,CAAA,cAAA,GAAG,KAAK,CAAC;KAM9D;IAEJ,QAAQ,GAAA;QACN,IAAI,IAAI,CAAC,UAAU,EAAE;YACnB,IAAI,CAAC,IAAI,EAAE,CAAC;AACb,SAAA;KACF;IAED,IAAI,GAAA;QACF,IAAI,IAAI,CAAC,cAAc,EAAE;AACvB,YAAA,IAAI,CAAC,aAAa,CAAC,MAAM,EAAE,CAAC;AAC5B,YAAA,IAAI,CAAC,cAAc,GAAG,KAAK,CAAC;AAC7B,SAAA;KACF;IAED,IAAI,GAAA;AACF,QAAA,IAAI,CAAC,IAAI,CAAC,cAAc,EAAE;YACxB,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC,aAAa,CAAC,eAAe,CAAC,gBAAgB,CAAC,CAAC;YACpE,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,IAAI,GAAG,IAAI,CAAC,WAAW,CAAA;AAC7C,YAAA,IAAI,CAAC,OAAO,CAAC,iBAAiB,CAAC,aAAa,EAAE,CAAC;YAC/C,IAAI,IAAI,CAAC,WAAW,EAAE;gBACpB,IAAI,CAAC,gBAAgB,CAAC,aAAa,CAAC,SAAS,CAAC,GAAG,CAAC,OAAO,CAAC,CAAA;AAC3D,aAAA;AACD,YAAA,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,IAAI,CAAC,gBAAgB,CAAC,aAAa,EAAE,UAAU,EAAE,UAAU,CAAC,CAAC;AACpF,YAAA,IAAI,CAAC,QAAQ,CAAC,WAAW,CACvB,IAAI,CAAC,gBAAgB,CAAC,aAAa,EACnC,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,aAAa,CACpC,CAAC;AACF,YAAA,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC;AAC5B,SAAA;KACF;8GApDU,gBAAgB,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAA,EAAA,CAAA,gBAAA,EAAA,EAAA,EAAA,KAAA,EAAA,EAAA,CAAA,SAAA,EAAA,EAAA,EAAA,KAAA,EAAA,EAAA,CAAA,UAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA,EAAA;kGAAhB,gBAAgB,EAAA,QAAA,EAAA,cAAA,EAAA,MAAA,EAAA,EAAA,SAAA,EAAA,CAAA,YAAA,EAAA,WAAA,CAAA,EAAA,WAAA,EAAA,aAAA,EAAA,WAAA,EAAA,aAAA,EAAA,EAAA,IAAA,EAAA,EAAA,UAAA,EAAA,EAAA,4BAAA,EAAA,qBAAA,EAAA,EAAA,EAAA,QAAA,EAAA,EAAA,EAAA,CAAA,CAAA,EAAA;;2FAAhB,gBAAgB,EAAA,UAAA,EAAA,CAAA;kBAH5B,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACT,oBAAA,QAAQ,EAAE,cAAc;AACzB,iBAAA,CAAA;wJAMK,SAAS,EAAA,CAAA;sBADZ,KAAK;uBAAC,YAAY,CAAA;gBASV,WAAW,EAAA,CAAA;sBAAnB,KAAK;gBACG,WAAW,EAAA,CAAA;sBAAnB,KAAK;gBAEqC,cAAc,EAAA,CAAA;sBAAxD,WAAW;uBAAC,4BAA4B,CAAA;;;MCT9B,oBAAoB,CAAA;AAqB/B,IAAA,WAAA,CACU,sBAA8C,EAC9C,UAAsB,EACtB,OAAgB,EAChB,WAAuB,EAAA;QAHvB,IAAsB,CAAA,sBAAA,GAAtB,sBAAsB,CAAwB;QAC9C,IAAU,CAAA,UAAA,GAAV,UAAU,CAAY;QACtB,IAAO,CAAA,OAAA,GAAP,OAAO,CAAS;QAChB,IAAW,CAAA,WAAA,GAAX,WAAW,CAAY;QAtBxB,IAAY,CAAA,YAAA,GAAG,EAAE,CAAC;QAElB,IAAgB,CAAA,gBAAA,GAAG,KAAK,CAAC;AAExB,QAAA,IAAA,CAAA,kBAAkB,GAAG,IAAI,YAAY,EAAE,CAAC;QAE1C,IAAW,CAAA,WAAA,GAAY,KAAK,CAAC;QAC7B,IAAa,CAAA,aAAA,GAAkB,EAAE,CAAC;AAIzB,QAAA,IAAA,CAAA,mBAAmB,GAAoI;YACtK,SAAS,EAAE,EAAE,UAAU,EAAE,wBAAwB,EAAE,OAAO,EAAE,KAAK,EAAE,OAAO,EAAE,KAAK,EAAE,QAAQ,EAAE,OAAO,EAAE,QAAQ,EAAE,KAAK,EAAE;YACvH,QAAQ,EAAE,EAAE,UAAU,EAAE,uBAAuB,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,QAAQ,EAAE,KAAK,EAAE,QAAQ,EAAE,KAAK,EAAE;YACrH,YAAY,EAAE,EAAE,UAAU,EAAE,2BAA2B,EAAE,OAAO,EAAE,KAAK,EAAE,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,KAAK,EAAE,QAAQ,EAAE,KAAK,EAAE;YAC9H,WAAW,EAAE,EAAE,UAAU,EAAE,0BAA0B,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,OAAO,EAAE,QAAQ,EAAE,KAAK,EAAE;SACjI,CAAA;KAOI;IAEL,QAAQ,GAAA;QACN,IAAI,CAAC,gBAAgB,EAAE,CAAC;QACxB,IAAI,CAAC,aAAa,EAAE,CAAC;QACrB,IAAI,CAAC,mBAAmB,EAAE,CAAC;KAC5B;IAEO,gBAAgB,GAAA;AACtB,QAAA,MAAM,gBAAgB,GAAG,IAAI,CAAC,sBAAsB;AACjD,aAAA,mBAAmB,CAAC,IAAI,CAAC,UAAU,CAAC;AACpC,aAAA,aAAa,CAAC,IAAI,CAAC,kBAAkB,EAAE,CAAC,CAAC;QAE5C,MAAM,cAAc,GAAG,IAAI,CAAC,OAAO,CAAC,gBAAgB,CAAC,KAAK,EAAE,CAAC;QAE7D,IAAI,CAAC,aAAa,GAAG;AACnB,YAAA,WAAW,EAAE,IAAI;AACjB,YAAA,aAAa,EAAE,kCAAkC;YACjD,gBAAgB;YAChB,cAAc;SACf,CAAC;KACH;IAEO,aAAa,GAAA;AACnB,QAAA,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;KAC3D;IAEO,kBAAkB,GAAA;QACxB,IAAI,IAAI,CAAC,SAAS,EAAE;YAClB,IAAI,eAAe,GAA6B,EAAE,CAAC;AAEnD,YAAA,IAAI,OAAO,IAAI,CAAC,SAAS,KAAK,QAAQ,EAAE;AACtC,gBAAA,eAAe,CAAC,IAAI,CAAC,IAAI,CAAC,mBAAmB,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC;AAChE,aAAA;iBAEI,IAAI,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,SAAS,CAAC,EAAE;AACtC,gBAAA,eAAe,GAAG,CAAC,GAAG,IAAI,CAAC,SAAS,CAAC,CAAC;AACvC,aAAA;AAED,YAAA,eAAe,GAAG,eAAe,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC;YAEnD,IAAI,eAAe,CAAC,MAAM;AAAE,gBAAA,OAAO,eAAe,CAAC;AACpD,SAAA;QAED,OAAO;YACL,IAAI,CAAC,mBAAmB,CAAC,YAAY;YACrC,IAAI,CAAC,mBAAmB,CAAC,WAAW;YACpC,IAAI,CAAC,mBAAmB,CAAC,SAAS;YAClC,IAAI,CAAC,mBAAmB,CAAC,QAAQ;SAClC,CAAA;KACF;IAEO,mBAAmB,GAAA;AACzB,QAAA,IAAI,CAAC,UAAU,CAAC,aAAa,EAAE;AAC5B,aAAA,IAAI,CAAC,kBAAkB,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;AAC1C,aAAA,SAAS,CAAC,CAAC,KAAK,KAAI;YACrB,IAAI,CAAC,KAAK,EAAE,CAAC;YACb,KAAK,CAAC,eAAe,EAAE,CAAA;AACzB,SAAC,CAAC,CAAA;KACH;IAGM,IAAI,GAAA;AACT,QAAA,IAAI,CAAC,IAAI,CAAC,WAAW,IAAI,IAAI,CAAC,UAAU,IAAI,IAAI,CAAC,gBAAgB,EAAG;YAClE,IAAI,CAAC,KAAK,EAAE,CAAC;YACb,OAAO;AACR,SAAA;AAED,QAAA,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,IAAI,eAAe,CAAC,0BAA0B,CAAC,CAAC,CAAC;QAC5F,IAAI,CAAC,YAAY,CAAC,QAAQ,CAAC,OAAO,GAAG,IAAI,CAAC,WAAW,CAAC;AACtD,QAAA,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC;KACzB;IAEM,KAAK,GAAA;AACV,QAAA,IAAI,CAAC,YAAY,GAAG,SAAS,CAAC;AAC9B,QAAA,IAAI,CAAC,UAAU,CAAC,MAAM,EAAE,CAAC;AACzB,QAAA,IAAI,CAAC,WAAW,GAAG,KAAK,CAAC;AACzB,QAAA,IAAI,CAAC,kBAAkB,CAAC,IAAI,EAAE,CAAC;KAChC;AAED,IAAA,IAAW,UAAU,GAAA;QACnB,OAAO,IAAI,CAAC,WAAW,CAAC;KACzB;8GA5GU,oBAAoB,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAAT,IAAA,CAAA,sBAAA,EAAA,EAAA,EAAA,KAAA,EAAA,EAAA,CAAA,UAAA,EAAA,EAAA,EAAA,KAAA,EAAAA,IAAA,CAAA,OAAA,EAAA,EAAA,EAAA,KAAA,EAAA,EAAA,CAAA,UAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA,EAAA;kGAApB,oBAAoB,EAAA,QAAA,EAAA,eAAA,EAAA,MAAA,EAAA,EAAA,WAAA,EAAA,aAAA,EAAA,YAAA,EAAA,cAAA,EAAA,SAAA,EAAA,WAAA,EAAA,gBAAA,EAAA,kBAAA,EAAA,EAAA,OAAA,EAAA,EAAA,kBAAA,EAAA,oBAAA,EAAA,EAAA,IAAA,EAAA,EAAA,SAAA,EAAA,EAAA,OAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,EAAA,EAAA,EAAA,CAAA,CAAA,EAAA;;2FAApB,oBAAoB,EAAA,UAAA,EAAA,CAAA;kBAHhC,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACT,oBAAA,QAAQ,EAAE,eAAe;AAC1B,iBAAA,CAAA;yLAGU,WAAW,EAAA,CAAA;sBAAnB,KAAK;gBACG,YAAY,EAAA,CAAA;sBAApB,KAAK;gBACG,SAAS,EAAA,CAAA;sBAAjB,KAAK;gBACG,gBAAgB,EAAA,CAAA;sBAAxB,KAAK;gBAEI,kBAAkB,EAAA,CAAA;sBAA3B,MAAM;gBAiFA,IAAI,EAAA,CAAA;sBADV,YAAY;uBAAC,OAAO,CAAA;;;MC9FV,cAAc,CAAA;8GAAd,cAAc,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA,EAAA;AAAd,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,cAAc,iFCd3B,mKAKA,EAAA,MAAA,EAAA,CAAA,unKAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,iBAAA,EAAA,QAAA,EAAA,qBAAA,EAAA,MAAA,EAAA,CAAA,mBAAA,EAAA,2BAAA,EAAA,0BAAA,EAAA,2BAAA,EAAA,kCAAA,CAAA,EAAA,CAAA,EAAA,CAAA,CAAA,EAAA;;2FDSa,cAAc,EAAA,UAAA,EAAA,CAAA;kBAL1B,SAAS;+BACE,WAAW,EAAA,QAAA,EAAA,mKAAA,EAAA,MAAA,EAAA,CAAA,unKAAA,CAAA,EAAA,CAAA;8BAKZ,OAAO,EAAA,CAAA;sBAAf,KAAK;;;MEVK,kBAAkB,CAAA;AAE7B,IAAA,WAAA,CAAY,EAAc,EAAA;QACxB,EAAE,CAAC,aAAa,CAAC,SAAS,CAAC,GAAG,CAAC,gBAAgB,CAAC,CAAA;KACjD;8GAJU,kBAAkB,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAA,EAAA,CAAA,UAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA,EAAA;kGAAlB,kBAAkB,EAAA,QAAA,EAAA,gBAAA,EAAA,QAAA,EAAA,EAAA,EAAA,CAAA,CAAA,EAAA;;2FAAlB,kBAAkB,EAAA,UAAA,EAAA,CAAA;kBAH9B,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACT,oBAAA,QAAQ,EAAE,gBAAgB;AAC3B,iBAAA,CAAA;;;MCCY,oBAAoB,CAAA;AAE/B,IAAA,WAAA,CAAY,EAAc,EAAA;QACxB,EAAE,CAAC,aAAa,CAAC,SAAS,CAAC,GAAG,CAAC,kBAAkB,CAAC,CAAA;KACnD;8GAJU,oBAAoB,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAA,EAAA,CAAA,UAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA,EAAA;kGAApB,oBAAoB,EAAA,QAAA,EAAA,kBAAA,EAAA,QAAA,EAAA,EAAA,EAAA,CAAA,CAAA,EAAA;;2FAApB,oBAAoB,EAAA,UAAA,EAAA,CAAA;kBAHhC,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACT,oBAAA,QAAQ,EAAE,kBAAkB;AAC7B,iBAAA,CAAA;;;MCCY,oBAAoB,CAAA;AAE/B,IAAA,WAAA,CAAY,EAAc,EAAA;QACxB,EAAE,CAAC,aAAa,CAAC,SAAS,CAAC,GAAG,CAAC,kBAAkB,CAAC,CAAA;KACnD;8GAJU,oBAAoB,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAA,EAAA,CAAA,UAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA,EAAA;kGAApB,oBAAoB,EAAA,QAAA,EAAA,kBAAA,EAAA,QAAA,EAAA,EAAA,EAAA,CAAA,CAAA,EAAA;;2FAApB,oBAAoB,EAAA,UAAA,EAAA,CAAA;kBAHhC,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACT,oBAAA,QAAQ,EAAE,kBAAkB;AAC7B,iBAAA,CAAA;;;MCGY,yBAAyB,CAAA;AALtC,IAAA,WAAA,GAAA;QAMY,IAAM,CAAA,MAAA,GAAW,CAAC,CAAC;QAEb,IAAS,CAAA,SAAA,GAAG,GAAG,CAAC;QAQJ,IAAI,CAAA,IAAA,GAAG,KAAK,CAAC;QACZ,IAAY,CAAA,YAAA,GAAG,KAAK,CAAC;AACnD,KAAA;IARC,IAAoB,KAAK,CAAC,GAAW,EAAA;AACnC,QAAA,IAAI,CAAC,MAAM,GAAG,GAAG,CAAC;QAClB,IAAI,CAAC,IAAI,GAAG,GAAG,IAAI,IAAI,CAAC,SAAS,CAAC;AAClC,QAAA,IAAI,CAAC,YAAY,GAAG,GAAG,IAAI,CAAC,CAAC;KAC9B;8GATU,yBAAyB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA,EAAA;AAAzB,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,yBAAyB,4MCPtC,gBACA,EAAA,MAAA,EAAA,CAAA,8jKAAA,CAAA,EAAA,CAAA,CAAA,EAAA;;2FDMa,yBAAyB,EAAA,UAAA,EAAA,CAAA;kBALrC,SAAS;+BACE,uBAAuB,EAAA,QAAA,EAAA,gBAAA,EAAA,MAAA,EAAA,CAAA,8jKAAA,CAAA,EAAA,CAAA;8BAOjB,SAAS,EAAA,CAAA;sBAAxB,KAAK;gBAEc,KAAK,EAAA,CAAA;sBAAxB,KAAK;gBAMsB,IAAI,EAAA,CAAA;sBAA/B,WAAW;uBAAC,aAAa,CAAA;gBACG,YAAY,EAAA,CAAA;sBAAxC,WAAW;uBAAC,cAAc,CAAA;;;MEoFhB,oBAAoB,CAAA;8GAApB,oBAAoB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,QAAA,EAAA,CAAA,CAAA,EAAA;AAApB,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,mBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,oBAAoB,iBAhE7B,eAAe;YACf,cAAc;YACd,eAAe;YACf,YAAY;YACZ,eAAe;YACf,0BAA0B;YAC1B,oBAAoB;YACpB,qBAAqB;YACrB,cAAc;YACd,iBAAiB;YACjB,mBAAmB;YACnB,2BAA2B;YAC3B,iBAAiB;YACjB,gBAAgB;YAChB,gBAAgB;YAChB,cAAc;YACd,kBAAkB;YAClB,eAAe;YACf,mBAAmB;YACnB,cAAc;YACd,kBAAkB;YAClB,cAAc;YACd,kBAAkB;YAClB,oBAAoB;YACpB,oBAAoB;AACpB,YAAA,yBAAyB,aAGzB,YAAY;YACZ,WAAW;YACX,mBAAmB;YACnB,gBAAgB;YAChB,mBAAmB;AACnB,YAAA,aAAa,sBAEb,uBAAuB;AACvB,YAAA,gBAAgB,aAGhB,eAAe;YACf,cAAc;YACd,eAAe;YACf,YAAY;YACZ,eAAe;YACf,0BAA0B;YAC1B,oBAAoB;YACpB,qBAAqB;YACrB,cAAc;YACd,iBAAiB;YACjB,mBAAmB;YACnB,2BAA2B;YAC3B,iBAAiB;YACjB,gBAAgB;YAChB,cAAc;YACd,kBAAkB;YAClB,eAAe;YACf,mBAAmB;YACnB,kBAAkB;YAClB,kBAAkB;YAClB,oBAAoB;YACpB,oBAAoB;YACpB,yBAAyB,CAAA,EAAA,CAAA,CAAA,EAAA;AAGhB,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,mBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,oBAAoB,YApC7B,YAAY;YACZ,WAAW;YACX,mBAAmB;YAGnB,aAAa;YACb,eAAe,CAAC,QAAQ,EAAE;YAC1B,uBAAuB;YACvB,gBAAgB,CAAA,EAAA,CAAA,CAAA,EAAA;;2FA4BP,oBAAoB,EAAA,UAAA,EAAA,CAAA;kBAlEhC,QAAQ;AAAC,YAAA,IAAA,EAAA,CAAA;AACR,oBAAA,YAAY,EAAE;wBACZ,eAAe;wBACf,cAAc;wBACd,eAAe;wBACf,YAAY;wBACZ,eAAe;wBACf,0BAA0B;wBAC1B,oBAAoB;wBACpB,qBAAqB;wBACrB,cAAc;wBACd,iBAAiB;wBACjB,mBAAmB;wBACnB,2BAA2B;wBAC3B,iBAAiB;wBACjB,gBAAgB;wBAChB,gBAAgB;wBAChB,cAAc;wBACd,kBAAkB;wBAClB,eAAe;wBACf,mBAAmB;wBACnB,cAAc;wBACd,kBAAkB;wBAClB,cAAc;wBACd,kBAAkB;wBAClB,oBAAoB;wBACpB,oBAAoB;wBACpB,yBAAyB;AAC1B,qBAAA;AACD,oBAAA,OAAO,EAAE;wBACP,YAAY;wBACZ,WAAW;wBACX,mBAAmB;wBACnB,gBAAgB;wBAChB,mBAAmB;wBACnB,aAAa;wBACb,eAAe,CAAC,QAAQ,EAAE;wBAC1B,uBAAuB;wBACvB,gBAAgB;AACjB,qBAAA;AACD,oBAAA,OAAO,EAAE;wBACP,eAAe;wBACf,cAAc;wBACd,eAAe;wBACf,YAAY;wBACZ,eAAe;wBACf,0BAA0B;wBAC1B,oBAAoB;wBACpB,qBAAqB;wBACrB,cAAc;wBACd,iBAAiB;wBACjB,mBAAmB;wBACnB,2BAA2B;wBAC3B,iBAAiB;wBACjB,gBAAgB;wBAChB,cAAc;wBACd,kBAAkB;wBAClB,eAAe;wBACf,mBAAmB;wBACnB,kBAAkB;wBAClB,kBAAkB;wBAClB,oBAAoB;wBACpB,oBAAoB;wBACpB,yBAAyB;AAC1B,qBAAA;AACF,iBAAA,CAAA;;;MC5FY,YAAY,CAAA;IAOvB,WACU,CAAA,OAAgB,EAChB,QAAkB,EAAA;QADlB,IAAO,CAAA,OAAA,GAAP,OAAO,CAAS;QAChB,IAAQ,CAAA,QAAA,GAAR,QAAQ,CAAU;QALX,IAAU,CAAA,UAAA,GAAG,EAAE,CAAC;QAChB,IAAG,CAAA,GAAA,GAAG,CAAC,CAAC;KAKpB;IAEL,OAAO,CAAC,OAAe,EAAE,MAAoB,EAAA;QAC3C,IAAI,CAAC,GAAG,CAAC,SAAS,EAAE,OAAO,EAAE,MAAM,CAAC,CAAC;KACtC;IAED,IAAI,CAAC,OAAe,EAAE,MAAoB,EAAA;QACxC,IAAI,CAAC,GAAG,CAAC,MAAM,EAAE,OAAO,EAAE,MAAM,CAAC,CAAC;KACnC;IAED,MAAM,CAAC,OAAe,EAAE,MAAoB,EAAA;QAC1C,IAAI,CAAC,GAAG,CAAC,QAAQ,EAAE,OAAO,EAAE,MAAM,CAAC,CAAC;KACrC;IAED,OAAO,CAAC,OAAe,EAAE,MAAoB,EAAA;QAC3C,IAAI,CAAC,GAAG,CAAC,SAAS,EAAE,OAAO,EAAE,MAAM,CAAC,CAAC;KACtC;AAED,IAAA,GAAG,CAAC,IAAe,EAAE,OAAe,EAAE,MAAoB,EAAA;AACxD,QAAA,IAAI,IAAI,CAAC,SAAS,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,OAAO,CAAC,cAAc,EAAE;AAC7D,YAAA,IAAI,CAAC,SAAS,GAAG,SAAS,CAAC;AAC5B,SAAA;AAED,QAAA,MAAM,gBAAgB,GAAG,IAAI,CAAC,mBAAmB,EAAE,CAAC;AACpD,QAAA,MAAM,UAAU,GAAG,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC;YACrC,gBAAgB;AACjB,SAAA,CAAC,CAAC;AACH,QAAA,MAAM,QAAQ,GAAG,IAAI,QAAQ,CAAC,UAAU,CAAC,CAAC;AAC1C,QAAA,MAAM,QAAQ,GAAG,IAAI,CAAC,cAAc,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,MAAM,EAAE,EAAE,QAAQ,CAAC,CAAC;QAC1E,MAAM,WAAW,GAAG,IAAI,eAAe,CAAC,cAAc,EAAE,IAAI,EAAE,QAAQ,CAAC,CAAC;AAExE,QAAA,UAAU,CAAC,MAAM,CAAC,WAAW,CAAC,CAAC;AAC/B,QAAA,IAAI,CAAC,SAAS,GAAG,QAAQ,CAAC;KAC3B;IAEO,cAAc,CAAC,IAAe,EAAE,QAAkB,EAAA;QACxD,OAAO,QAAQ,CAAC,MAAM,CAAC;YACrB,MAAM,EAAE,IAAI,CAAC,QAAQ;AACrB,YAAA,SAAS,EAAE;AACT,gBAAA,EAAE,OAAO,EAAE,gBAAgB,EAAE,QAAQ,EAAE,IAAI,EAAE;AAC7C,gBAAA,EAAE,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,QAAQ,EAAE;AAC1C,aAAA;AACF,SAAA,CAAC,CAAC;KACJ;IAEO,mBAAmB,GAAA;QACzB,OAAO,IAAI,CAAC,OAAO,CAAC,QAAQ,EAAE,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,IAAI,CAAC,YAAY,EAAE,CAAC,CAAC,kBAAkB,EAAE,CAAC;KACvF;IAEO,YAAY,GAAA;AAClB,QAAA,MAAM,MAAM,GAAG,IAAI,CAAC,SAAS;AAC3B,YAAA,IAAI,CAAC,SAAS,CAAC,WAAW,EAAE,CAAC,MAAM,GAAG,IAAI,CAAC,GAAG;YAC9C,IAAI,CAAC,UAAU,CAAC;QAElB,OAAO,CAAA,EAAG,MAAM,CAAA,EAAA,CAAI,CAAC;KACtB;8GAjEU,YAAY,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAAA,IAAA,CAAA,OAAA,EAAA,EAAA,EAAA,KAAA,EAAA,EAAA,CAAA,QAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,UAAA,EAAA,CAAA,CAAA,EAAA;AAAZ,IAAA,SAAA,IAAA,CAAA,KAAA,GAAA,EAAA,CAAA,qBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,YAAY,cAFX,MAAM,EAAA,CAAA,CAAA,EAAA;;2FAEP,YAAY,EAAA,UAAA,EAAA,CAAA;kBAHxB,UAAU;AAAC,YAAA,IAAA,EAAA,CAAA;AACV,oBAAA,UAAU,EAAE,MAAM;AACnB,iBAAA,CAAA;;;MCLY,QAAQ,CAAA;AAInB,IAAA,WAAA,CAAoB,UAAsB,EAAA;QAAtB,IAAU,CAAA,UAAA,GAAV,UAAU,CAAY;AAHlC,QAAA,IAAA,CAAA,YAAY,GAAG,IAAI,OAAO,EAAc,CAAA;KAI/C;AAED,IAAA,KAAK,CAAC,IAAU,EAAA;QACd,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,IAAI,IAAI,IAAI,CAAC,CAAA;AACpC,QAAA,IAAI,CAAC,UAAU,CAAC,OAAO,EAAE,CAAA;KAC1B;AAED,IAAA,IAAI,UAAU,GAAA;AACZ,QAAA,OAAO,IAAI,CAAC,YAAY,CAAC,YAAY,EAAE,CAAA;KACxC;AACF;;MCXY,gBAAgB,GAAG,IAAI,cAAc,CAAc,uBAAuB,EAAC;MAC3E,cAAc,GAAG,IAAI,cAAc,CAAM,YAAY;;MCCrD,YAAY,CAAA;;IAIvB,WAAoB,CAAA,OAAgB,EAChB,QAAkB,EAAA;QADlB,IAAO,CAAA,OAAA,GAAP,OAAO,CAAS;QAChB,IAAQ,CAAA,QAAA,GAAR,QAAQ,CAAU;KACjC;IAEL,IAAI,CAAI,SAA2B,EAAE,MAAoB,EAAA;QACvD,MAAM,UAAU,GAAG,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,CAAA;AAC1C,QAAA,MAAM,WAAW,GAAG;AAClB,YAAA,IAAI,EAAE,MAAM,EAAE,IAAI,IAAI,IAAI;SAC3B,CAAA;AACD,QAAA,MAAM,QAAQ,GAAG,IAAI,QAAQ,CAAC,UAAU,CAAC,CAAA;AACzC,QAAA,MAAM,QAAQ,GAAG,IAAI,CAAC,cAAc,CAAC,EAAE,GAAG,WAAW,EAAE,EAAE,QAAQ,CAAC,CAAC;QACnE,MAAM,WAAW,GAAG,IAAI,eAAe,CAAC,cAAc,EAAE,IAAI,EAAE,QAAQ,CAAC,CAAC;QACxE,MAAM,GAAG,GAAG,UAAU,CAAC,MAAM,CAAC,WAAW,CAAC,CAAC;QAE3C,QAAQ,CAAC,OAAO,GAAG,GAAG,CAAC,QAAQ,CAAC,aAAa,CAAA;;AAE7C,QAAA,UAAU,CAAC,aAAa,EAAE,CAAC,SAAS,CAAC,MAAM,QAAQ,CAAC,KAAK,EAAE,CAAC,CAAA;AAE5D,QAAA,GAAG,CAAC,QAAQ,CAAC,OAAO,GAAG,SAAS,CAAA;AAEhC,QAAA,OAAO,QAAQ,CAAA;KAChB;IAEO,cAAc,CAAC,MAA2B,EAAE,QAAkB,EAAA;QACpE,OAAO,QAAQ,CAAC,MAAM,CAAC;YACrB,MAAM,EAAE,IAAI,CAAC,QAAQ;AACrB,YAAA,SAAS,EAAE;gBACT,EAAE,OAAO,EAAE,cAAc,EAAE,QAAQ,EAAE,MAAM,CAAC,IAAI,EAAE;AAClD,gBAAA,EAAE,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,QAAQ,EAAE;AAC1C,aAAA;AACF,SAAA,CAAC,CAAC;KACJ;IAEO,mBAAmB,GAAA;AACzB,QAAA,OAAO,IAAI,CAAC,OAAO,CAAC,QAAQ,EAAE,CAAC,MAAM,EAAE,CAAC,gBAAgB,EAAE,CAAC,kBAAkB,EAAE,CAAC;KACjF;;AAGD,IAAA,UAAU,CAAC,MAAoB,EAAA;AAC7B,QAAA,MAAM,gBAAgB,GAAG,IAAI,CAAC,mBAAmB,EAAE,CAAC;AACpD,QAAA,OAAO,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC;YACzB,gBAAgB;AAChB,YAAA,WAAW,EAAE,MAAM,EAAE,WAAW,IAAI,IAAI;AACxC,YAAA,aAAa,EAAE,2BAA2B;AAC1C,YAAA,mBAAmB,EAAE,IAAI;YACzB,cAAc,EAAE,IAAI,CAAC,OAAO,CAAC,gBAAgB,CAAC,KAAK,EAAE;AACrD,YAAA,QAAQ,EAAE,MAAM;AACjB,SAAA,CAAC,CAAC;KACJ;8GApDU,YAAY,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAAA,IAAA,CAAA,OAAA,EAAA,EAAA,EAAA,KAAA,EAAA,EAAA,CAAA,QAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,UAAA,EAAA,CAAA,CAAA,EAAA;AAAZ,IAAA,SAAA,IAAA,CAAA,KAAA,GAAA,EAAA,CAAA,qBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,YAAY,cAFX,MAAM,EAAA,CAAA,CAAA,EAAA;;2FAEP,YAAY,EAAA,UAAA,EAAA,CAAA;kBAHxB,UAAU;AAAC,YAAA,IAAA,EAAA,CAAA;AACV,oBAAA,UAAU,EAAE,MAAM;AACnB,iBAAA,CAAA;;;ACTD;;AAEG;;ACFH;;AAEG;;;;"}
|
1
|
+
{"version":3,"file":"asksuite-citrus.mjs","sources":["../../../projects/asksuite-citrus/src/lib/components/button/button.component.ts","../../../projects/asksuite-citrus/src/lib/components/button/button.component.html","../../../projects/asksuite-citrus/src/lib/components/input/input.component.ts","../../../projects/asksuite-citrus/src/lib/components/input/input.component.html","../../../projects/asksuite-citrus/src/lib/components/select/select.component.ts","../../../projects/asksuite-citrus/src/lib/components/select/select.component.html","../../../projects/asksuite-citrus/src/lib/components/box/box.component.ts","../../../projects/asksuite-citrus/src/lib/components/box/box.component.html","../../../projects/asksuite-citrus/src/lib/directives/tooltip/ask-tooltip.directive.ts","../../../projects/asksuite-citrus/src/lib/components/avatar/avatar.component.ts","../../../projects/asksuite-citrus/src/lib/components/avatar/avatar.component.html","../../../projects/asksuite-citrus/src/lib/components/dropdown-container/dropdown-container.component.ts","../../../projects/asksuite-citrus/src/lib/components/dropdown-container/dropdown-container.component.html","../../../projects/asksuite-citrus/src/lib/components/chips/chips.component.ts","../../../projects/asksuite-citrus/src/lib/components/chips/chips.component.html","../../../projects/asksuite-citrus/src/lib/components/checkbox/checkbox.component.ts","../../../projects/asksuite-citrus/src/lib/components/checkbox/checkbox.component.html","../../../projects/asksuite-citrus/src/lib/directives/autofocus/autofocus.directive.ts","../../../projects/asksuite-citrus/src/lib/directives/scroll/scroll.directive.ts","../../../projects/asksuite-citrus/src/lib/components/autocomplete/autocomplete.component.ts","../../../projects/asksuite-citrus/src/lib/components/autocomplete/autocomplete.component.html","../../../projects/asksuite-citrus/src/lib/components/date-picker/date-picker-calendar/date-picker-calendar.component.ts","../../../projects/asksuite-citrus/src/lib/components/date-picker/date-picker-calendar/date-picker-calendar.component.html","../../../projects/asksuite-citrus/src/lib/components/date-picker/date-picker.component.ts","../../../projects/asksuite-citrus/src/lib/components/date-picker/date-picker.component.html","../../../projects/asksuite-citrus/src/lib/components/skeleton/skeleton.component.ts","../../../projects/asksuite-citrus/src/lib/components/skeleton/skeleton.component.html","../../../projects/asksuite-citrus/src/lib/services/toast/toast.config.ts","../../../projects/asksuite-citrus/src/lib/services/toast/toast-ref.ts","../../../projects/asksuite-citrus/src/lib/components/toast/toast.component.ts","../../../projects/asksuite-citrus/src/lib/components/toast/toast.component.html","../../../projects/asksuite-citrus/src/lib/directives/spinner/spinner.component.ts","../../../projects/asksuite-citrus/src/lib/directives/spinner/spinner.component.html","../../../projects/asksuite-citrus/src/lib/directives/badge/badge.directive.ts","../../../projects/asksuite-citrus/src/lib/directives/button/ask-button.directive.ts","../../../projects/asksuite-citrus/src/lib/directives/spinner/spinner.directive.ts","../../../projects/asksuite-citrus/src/lib/directives/ask-dropdown.directive.ts","../../../projects/asksuite-citrus/src/lib/components/modal/modal.component.ts","../../../projects/asksuite-citrus/src/lib/components/modal/modal.component.html","../../../projects/asksuite-citrus/src/lib/components/modal/directives/modal-body.directive.ts","../../../projects/asksuite-citrus/src/lib/components/modal/directives/modal-footer.directive.ts","../../../projects/asksuite-citrus/src/lib/components/modal/directives/modal-header.directive.ts","../../../projects/asksuite-citrus/src/lib/components/character-counter/character-counter.component.ts","../../../projects/asksuite-citrus/src/lib/components/character-counter/character-counter.component.html","../../../projects/asksuite-citrus/src/lib/components/accordion/extendable-panel/extendable-panel.component.ts","../../../projects/asksuite-citrus/src/lib/components/accordion/extendable-panel/extendable-panel.component.html","../../../projects/asksuite-citrus/src/lib/components/accordion/accordion.component.ts","../../../projects/asksuite-citrus/src/lib/components/accordion/accordion.component.html","../../../projects/asksuite-citrus/src/lib/asksuite-citrus.module.ts","../../../projects/asksuite-citrus/src/lib/services/toast/toast.service.ts","../../../projects/asksuite-citrus/src/lib/services/modal/modal-ref.ts","../../../projects/asksuite-citrus/src/lib/services/modal/modal.config.ts","../../../projects/asksuite-citrus/src/lib/services/modal/modal.service.ts","../../../projects/asksuite-citrus/src/public-api.ts","../../../projects/asksuite-citrus/src/asksuite-citrus.ts"],"sourcesContent":["import { Component, EventEmitter, Input, OnInit, Output } from '@angular/core';\n\n@Component({\n selector: 'ask-button',\n templateUrl: './button.component.html',\n styleUrls: ['./button.component.scss'],\n})\nexport class ButtonComponent {\n // Properties\n @Input() label = '';\n @Input() size: 'xsmall' | 'small' | 'normal' | 'medium' | 'large' = 'normal';\n @Input() type: 'primary' | 'secondary' | 'outline' | 'livechat' | 'dropdown' | 'icon-only' = 'primary';\n @Input() rounded: boolean = false;\n @Input() disabled = false;\n @Input() labelSide: 'left' | 'right' = 'left';\n @Input() loading: boolean = false;\n\n // Event handlers\n @Output() onClick = new EventEmitter<MouseEvent>();\n @Output() onFocus = new EventEmitter<FocusEvent>();\n @Output() onBlur = new EventEmitter<FocusEvent>();\n\n buttonClasses: string = '-primary';\n labelClass: string = '';\n\n\n ngOnChanges(){\n this.buttonClasses = `-${this.type} ${this.size} ${this.rounded ? 'rounded' : ''}`;\n this.labelClass = `-${this.labelSide}`\n } \n}\n","<button\n type=\"button\"\n data-testid=\"button\"\n [ngClass]=\"buttonClasses\"\n [disabled]=\"disabled\"\n (click)=\"onClick.emit($event)\"\n (focus)=\"onFocus.emit($event)\"\n (blur)=\"onBlur.emit($event)\"\n>\n <span data-testid=\"spinner\" *ngIf=\"loading\" class=\"spinner\"></span>\n <span data-testid=\"label\" *ngIf=\"label\" class=\"label\" [ngClass]=\"labelClass\">{{ label }}</span>\n <ng-content></ng-content>\n</button>\n","import {\n Component,\n ElementRef,\n EventEmitter,\n forwardRef,\n Input,\n OnInit,\n Output,\n Provider,\n ViewChild,\n} from '@angular/core';\nimport { ControlValueAccessor, NG_VALUE_ACCESSOR } from '@angular/forms';\n\nconst valueAccessor: Provider = {\n provide: NG_VALUE_ACCESSOR,\n multi: true,\n useExisting: forwardRef(() => InputComponent),\n};\n\n@Component({\n selector: 'ask-input',\n templateUrl: './input.component.html',\n styleUrls: ['./input.component.scss'],\n providers: [valueAccessor],\n})\nexport class InputComponent implements ControlValueAccessor {\n _iconColor = '';\n\n @Input() value: string = '';\n @Input() type: 'text' | 'email' | 'password' = 'text';\n @Input() variation: 'filled' | 'outlined' = 'outlined'\n @Input() placeholder!: string;\n @Input() leftIcon?: string;\n @Input() rightIcon?: string;\n @Input() disabled: boolean = false;\n @Input() noBorder: boolean = false;\n\n\n @Input() set iconColor(color: string) {\n this._iconColor = `var(--${color})`;\n }\n\n @Output() valueChange = new EventEmitter<string>();\n @Output() change = new EventEmitter<Event>();\n @Output() input = new EventEmitter<Event>();\n @Output() click = new EventEmitter<MouseEvent>();\n @Output() focus = new EventEmitter<FocusEvent>();\n @Output() blur = new EventEmitter<FocusEvent>();\n @Output() leftIconClick = new EventEmitter<MouseEvent>();\n @Output() rightIconClick = new EventEmitter<MouseEvent>();\n\n onChange!: (value?: any) => void;\n onTouch!: () => void;\n\n isFocused = false;\n\n @ViewChild('inputElement', { static: true }) inputElement!: ElementRef;\n\n\n onModelChange(newValue: string) {\n if (this.value !== newValue) {\n this.writeValue(newValue);\n this.onChange(newValue);\n }\n this.onTouch();\n }\n\n handleChange(event: Event) {\n this.change.emit(event);\n }\n\n handleInput(event: Event) {\n this.input.emit(event);\n }\n\n handleFocus(event: FocusEvent) {\n this.isFocused = true;\n this.focus.emit(event);\n }\n\n handleBlur(event: FocusEvent) {\n this.isFocused = false;\n this.blur.emit(event);\n }\n\n /*\n * Control value accessor methods\n */\n\n registerOnChange(fn: any): void {\n this.onChange = fn;\n }\n\n registerOnTouched(fn: any): void {\n this.onTouch = fn;\n }\n\n setDisabledState(isDisabled: boolean): void {\n this.disabled = isDisabled;\n }\n\n writeValue(value: string): void {\n this.value = value;\n this.valueChange.emit(this.value);\n }\n}\n","<div\n class=\"input-container\"\n [ngClass]=\"{\n 'focus': isFocused,\n 'disabled': disabled,\n 'left-icon': leftIcon,\n 'right-icon': rightIcon,\n }\"\n (click)=\"inputElement.focus()\"\n>\n <span\n *ngIf=\"leftIcon\"\n class=\"material-icons icon-left\"\n [style.color]=\"_iconColor\"\n (click)=\"leftIconClick.emit($event)\"\n >\n {{ leftIcon }}\n </span>\n\n <input\n #inputElement\n class=\"ask-input\"\n [class.-no-border]=\"noBorder\"\n [class.-filled]=\"variation === 'filled'\"\n [type]=\"type\"\n [placeholder]=\"placeholder || ''\"\n (click)=\"click.emit($event)\"\n (focus)=\"handleFocus($event)\"\n (blur)=\"handleBlur($event)\"\n (change)=\"handleChange($event)\"\n (input)=\"handleInput($event)\"\n [disabled]=\"disabled\"\n [ngModel]=\"value\"\n (ngModelChange)=\"onModelChange($event)\"\n />\n\n <span\n *ngIf=\"rightIcon\"\n class=\"material-icons icon-right\"\n [style.color]=\"_iconColor\"\n (click)=\"rightIconClick.emit($event)\"\n >\n {{ rightIcon }}\n </span>\n</div>\n","import {Component, ElementRef, EventEmitter, forwardRef, HostListener, Input, Output, Provider} from '@angular/core';\nimport {ControlValueAccessor, NG_VALUE_ACCESSOR} from \"@angular/forms\";\n\nexport interface Option {\n value: string;\n label: string;\n}\n\nconst valueAccessor: Provider = {\n provide: NG_VALUE_ACCESSOR,\n multi: true,\n useExisting: forwardRef(() => SelectComponent),\n}\n\n@Component({\n selector: 'ask-select',\n templateUrl: './select.component.html',\n styleUrls: ['./select.component.scss'],\n providers: [ valueAccessor ]\n})\nexport class SelectComponent implements ControlValueAccessor {\n\n @Input() value: any;\n @Output() valueChange = new EventEmitter();\n @Input() options: Array<Option> = [];\n @Input() maxItems = 4;\n @Input() showNoneOption = true;\n\n // Labels\n @Input() selectAnOptionLabel = 'Selecione uma opção';\n @Input() noOptionLabel = 'Nenhuma opção disponível';\n @Input() noneLabel = 'Nenhum';\n\n showList = false;\n selectedOption?: Option;\n\n constructor(\n private elementRef: ElementRef\n ) { }\n\n @HostListener('document:click', ['$event'])\n clickOut(event: PointerEvent) {\n const hasComponentInPath = event.composedPath().find((el: any) => el?.nodeName?.toLowerCase() === 'ask-select');\n\n if (\n this.elementRef.nativeElement.contains(event.target) ||\n hasComponentInPath\n ) {\n return;\n }\n\n this.showList = false;\n }\n\n get listMaxHeight() {\n const optionHeight = 46;\n\n return this.maxItems * optionHeight + this.maxItems + 1;\n }\n\n handleSelectClick() {\n this.showList = !this.showList;\n }\n\n handleOptionClick(option: Option | undefined) {\n this.setSelectedOption(option);\n\n }\n\n setSelectedOption(option: Option | undefined, emit: boolean = true) {\n if (option?.value === this.value) {\n return;\n }\n\n this.selectedOption = option;\n this.value = option?.value || null;\n\n if (emit) {\n this.onChange(this.value);\n this.onTouch(this.value);\n this.valueChange.emit(this.value);\n }\n }\n\n onChange: any = () => {\n }\n onTouch: any = () => {\n }\n\n writeValue(value: any) {\n this.value = value;\n this.setSelectedOption(this.value, false);\n }\n\n registerOnChange(fn: any) {\n this.onChange = fn\n }\n\n registerOnTouched(fn: any) {\n this.onTouch = fn\n }\n\n}\n","<div\n class=\"select-container\"\n (click)=\"handleSelectClick()\"\n>\n <select [hidden]=\"true\"></select>\n\n <span class=\"label\">{{ selectedOption?.label || selectAnOptionLabel }}</span>\n <span class=\"material-icons arrow\">arrow_drop_down</span>\n\n <div\n *ngIf=\"showList\"\n class=\"options-list\"\n [style.max-height]=\"listMaxHeight + 'px'\"\n >\n <!-- No options available -->\n <div\n *ngIf=\"!options?.length\"\n class=\"option\"\n >\n {{ noOptionLabel }}\n </div>\n\n <div\n *ngIf=\"showNoneOption && options?.length\"\n class=\"option\"\n (click)=\"handleOptionClick(undefined)\"\n >\n {{ noneLabel }}\n </div>\n\n <div\n *ngFor=\"let option of options\"\n class=\"option\"\n (click)=\"handleOptionClick(option)\"\n >\n {{ option.label }}\n </div>\n </div>\n</div>\n","import {Component, Input, OnInit} from '@angular/core';\n\n@Component({\n selector: 'ask-box',\n templateUrl: './box.component.html',\n styleUrls: ['./box.component.scss']\n})\nexport class BoxComponent implements OnInit {\n\n @Input() title?: string;\n @Input() subtitle?: string;\n @Input() canCollapse = false;\n @Input() collapse = false;\n\n constructor() { }\n\n ngOnInit(): void {\n }\n\n toggleCollapse() {\n this.collapse = !this.collapse;\n }\n\n}\n","<div class=\"box-container\">\n <header *ngIf=\"canCollapse || title || subtitle\">\n <h1 *ngIf=\"title\" class=\"title\">{{ title }}</h1>\n <h2 *ngIf=\"subtitle\" class=\"subtitle\">{{ subtitle }}</h2>\n\n <span\n *ngIf=\"canCollapse\"\n class=\"collapse-icon material-icons\"\n [class.collapsed]=\"!collapse\"\n (click)=\"toggleCollapse()\"\n >\n expand_more\n </span>\n </header>\n\n <div *ngIf=\"!collapse\" class=\"content\" [style.padding-top]=\"canCollapse ? '32px' : '0'\">\n <ng-content></ng-content>\n </div>\n</div>\n","import { Directive, HostListener, Input, OnInit } from '@angular/core';\nimport { MatTooltip, TooltipPosition } from '@angular/material/tooltip';\n\n@Directive({\n selector: '[askTooltip]',\n providers: [\n MatTooltip\n ]\n})\nexport class AskTooltipDirective implements OnInit {\n\n @Input() askTooltipMessage: string = '';\n @Input() askTooltipPosition: TooltipPosition = 'below';\n\n constructor(private tooltip: MatTooltip) { }\n\n ngOnInit(): void {\n this.tooltip.position = this.askTooltipPosition;\n this.tooltip.tooltipClass = ['ask-tooltip', `-${this.askTooltipPosition}`];\n this.tooltip.touchGestures = 'off';\n }\n \n @HostListener('mouseenter')\n onMouseEnter() {\n if (!this.askTooltipMessage) return;\n \n this.tooltip.message = this.askTooltipMessage;\n this.tooltip.show();\n }\n \n @HostListener('mouseleave')\n onMouseLeave() {\n this.tooltip.hide();\n }\n}\n","import {Component, Input} from '@angular/core';\nimport { TooltipPosition } from '@angular/material/tooltip';\n\nexport enum AvatarStatus {\n NONE = '',\n ONLINE = 'online',\n BUSY = 'busy',\n ABSENT = 'absent',\n OFFLINE = 'offline'\n}\n\n@Component({\n selector: 'ask-avatar',\n templateUrl: './avatar.component.html',\n styleUrls: ['./avatar.component.scss']\n})\nexport class AvatarComponent {\n\n @Input() src: string = '';\n @Input() status: AvatarStatus | 'none' | 'online' | 'busy' | 'absent' = AvatarStatus.NONE;\n @Input() background: 'primary' | 'secondary' | 'dark' = \"primary\";\n @Input() avatarTitle: string = '';\n @Input() avatarTitlePosition: TooltipPosition = 'after';\n @Input() statusTitle: string = '';\n @Input()\n set name(value: string) {\n if (value) {\n const nameParts = value.trim().split(' ');\n this._initials = nameParts.length > 1\n ? `${nameParts[0].toUpperCase().at(0)}${nameParts[nameParts.length - 1].toUpperCase().at(0)}`\n : `${nameParts[0].toUpperCase().at(0)}`\n this.background = 'dark'\n } else {\n this._initials = '';\n }\n };\n\n static readonly BOT_ICON: string = '../assets/img/asksuite-icon.svg';\n\n protected _initials = '';\n\n get image() {\n return this.src || AvatarComponent.BOT_ICON;\n }\n\n}\n","<div class=\"avatar-container\"\n [ngClass]=\"{\n '-primary': !this.src && background === 'primary',\n '-secondary': !this.src && background === 'secondary',\n '-dark': !this.src && background === 'dark',\n '-initials': !!_initials\n }\"\n>\n <img \n *ngIf=\"src || !_initials\" \n [src]=\"image\"\n alt=\"avatar\"\n askTooltip\n [askTooltipMessage]=\"avatarTitle\"\n [askTooltipPosition]=\"avatarTitlePosition\"\n />\n <span \n *ngIf=\"!src && _initials\"\n class=\"initials\"\n askTooltip\n [askTooltipMessage]=\"avatarTitle\"\n [askTooltipPosition]=\"avatarTitlePosition\"\n >{{_initials}}</span>\n\n <span \n [class]=\"'status ' + status\"\n askTooltip\n [askTooltipMessage]=\"statusTitle\"\n [askTooltipPosition]=\"'after'\"\n ></span>\n</div>\n","import {Component, Input, OnInit, TemplateRef} from '@angular/core';\n\n@Component({\n selector: 'ask-dropdown-container',\n templateUrl: './dropdown-container.component.html',\n styleUrls: ['./dropdown-container.component.scss']\n})\nexport class DropdownContainerComponent implements OnInit {\n\n @Input() content!: TemplateRef<any>;\n\n constructor() { }\n\n ngOnInit(): void {\n }\n\n}\n","<div class=\"dropdown-container\">\n <ng-container>\n <ng-template [ngTemplateOutlet]=\"content\"></ng-template>\n </ng-container>\n</div>\n","import {ChangeDetectionStrategy, ChangeDetectorRef, Component, EventEmitter, Input, Output} from '@angular/core';\n\n@Component({\n selector: 'ask-chips',\n templateUrl: './chips.component.html',\n styleUrls: ['./chips.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class ChipsComponent {\n\n @Input()\n set appearance(value: 'light' | 'regular' | 'primary' | 'tag') {\n this._isAppearanceLight = value === 'light';\n this._isAppearancePrimary = value === 'primary'\n this._isAppearanceTag = value === 'tag'\n };\n @Input()\n showAction: boolean = false;\n @Input()\n set size(value: 'small' | 'regular') {\n this._isSmall = value === \"small\";\n };\n\n @Input() color?: string;\n\n protected _isSmall = false;\n protected _isAppearanceLight = false;\n protected _isAppearancePrimary = false;\n protected _isAppearanceTag = false;\n\n constructor(private change: ChangeDetectorRef) {}\n\n @Output()\n protected action = new EventEmitter<void>()\n\n}\n","<div class=\"chip-container\"\n [ngClass]=\"{\n '-action': showAction,\n '-small': _isSmall,\n '-light': _isAppearanceLight,\n '-primary': _isAppearancePrimary,\n '-tag': _isAppearanceTag,\n }\"\n [style.background-color]=\"color\"\n>\n <span class=\"body\" #body [title]=\"body.innerText\"><ng-content></ng-content></span>\n <div class=\"action\" *ngIf=\"showAction\">\n <span class=\"material-icons\" data-testid=\"icon\" (click)=\"$event.stopPropagation(); action.emit()\">cancel</span>\n </div>\n</div>\n","import {\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component,\n EventEmitter,\n forwardRef,\n Input,\n Output,\n Provider\n} from '@angular/core';\nimport {ControlValueAccessor, NG_VALUE_ACCESSOR} from \"@angular/forms\";\n\nconst valueAccessor: Provider = {\n provide: NG_VALUE_ACCESSOR,\n multi: true,\n useExisting: forwardRef(() => CheckboxComponent),\n}\n\n@Component({\n selector: 'ask-checkbox',\n templateUrl: './checkbox.component.html',\n styleUrls: ['./checkbox.component.scss'],\n providers: [valueAccessor],\n})\nexport class CheckboxComponent implements ControlValueAccessor {\n @Input() value: boolean | undefined;\n @Input() disabled: boolean = false;\n\n @Output() valueChange = new EventEmitter<boolean>();\n @Output() change = new EventEmitter<Event>();\n @Output() click = new EventEmitter<MouseEvent>();\n @Output() focus = new EventEmitter<FocusEvent>();\n\n isFocused = false;\n\n handleFocus(event: FocusEvent) {\n this.isFocused = true;\n this.focus.emit(event);\n }\n\n onModelChange(newValue: boolean) {\n this.value = newValue;\n this.onChange(newValue);\n this.valueChange.emit(newValue);\n }\n\n handleChange(event: Event) {\n this.change.emit(event);\n }\n\n /*\n * Control value accessor methods\n */\n\n registerOnChange(fn: any): void {\n this.onChange = fn;\n }\n\n onChange(_: any): void {\n }\n\n registerOnTouched(fn: any): void {\n this.onTouch = fn;\n }\n\n onTouch = () => {};\n\n setDisabledState(isDisabled: boolean): void {\n this.disabled = isDisabled;\n }\n\n writeValue(value: boolean): void {\n this.value = value;\n }\n\n}\n","<label class=\"ask-checkbox\">\n <input type=\"checkbox\"\n (click)=\"click.emit($event)\"\n (focus)=\"handleFocus($event)\"\n (change)=\"handleChange($event)\"\n (touchend)=\"onTouch()\"\n [disabled]=\"disabled\"\n [ngModel]=\"value\"\n (ngModelChange)=\"onModelChange($event)\"\n />\n <span #text [title]=\"text.innerText\"><ng-content></ng-content></span>\n</label>\n","import {AfterViewInit, Directive, ElementRef} from '@angular/core';\n\n@Directive({\n selector: '[askAutofocus]'\n})\nexport class AutofocusDirective implements AfterViewInit{\n\n constructor(private elRef: ElementRef) { }\n\n ngAfterViewInit() {\n if (this.elRef) this.elRef.nativeElement.focus();\n }\n\n}\n","import {Directive, ElementRef, EventEmitter, HostListener, Input, Output} from '@angular/core';\n\n@Directive({\n selector: '[askScroll]'\n})\nexport class ScrollDirective {\n @Input() askScrollThreshold: number = 0;\n\n @Output() scrollEnd = new EventEmitter<void>();\n\n constructor(private el: ElementRef) {}\n\n @HostListener('scroll', ['$event'])\n onScroll(event: Event) {\n const element = event.target as HTMLElement;\n if (this.isScrollAtEnd(element)) {\n this.scrollEnd.emit();\n }\n }\n\n private isScrollAtEnd(element: HTMLElement): boolean {\n const scrollTop = element.scrollTop || element.scrollTop === 0 ? element.scrollTop : 0;\n const scrollHeight = element.scrollHeight || 0;\n const clientHeight = element.clientHeight || 0;\n return scrollTop + clientHeight >= (scrollHeight - Number(this.askScrollThreshold));\n }\n\n}\n","import {\n AfterViewInit,\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component,\n DestroyRef,\n ElementRef,\n EventEmitter,\n forwardRef,\n HostListener,\n inject,\n Input,\n OnChanges,\n Output,\n Provider,\n SimpleChanges,\n TemplateRef,\n ViewChild,\n ViewContainerRef\n} from '@angular/core';\nimport {ControlValueAccessor, FormBuilder, FormControl, FormGroup, NG_VALUE_ACCESSOR} from \"@angular/forms\";\nimport {debounceTime, map, tap} from \"rxjs\";\nimport {Overlay, OverlayRef} from \"@angular/cdk/overlay\";\nimport {TemplatePortal} from \"@angular/cdk/portal\";\nimport {takeUntilDestroyed} from \"@angular/core/rxjs-interop\";\nimport { TranslateService } from '@ngx-translate/core';\n\nconst valueAccessor: Provider = {\n provide: NG_VALUE_ACCESSOR,\n multi: true,\n useExisting: forwardRef(() => AutocompleteComponent),\n}\n\n@Component({\n selector: 'ask-autocomplete',\n templateUrl: './autocomplete.component.html',\n styleUrls: ['./autocomplete.component.scss'],\n providers: [valueAccessor],\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class AutocompleteComponent implements AfterViewInit, ControlValueAccessor, OnChanges {\n\n @ViewChild(\"autocomplete\") input: ElementRef | undefined\n @ViewChild(\"list\") list: ElementRef | undefined\n @ViewChild(\"wrapper\") wrapper: ElementRef | undefined\n @ViewChild('overlayContent') overlayContent: TemplateRef<any> | undefined\n\n protected inputControl = new FormControl(\"\")\n protected filteredOptions: any[] = [];\n protected paginatedFilteredOptions: any[] = [];\n protected selectedOption?: any;\n protected selection: any[] = [];\n protected closed = true;\n protected chipsCollapsed = true\n protected checkAllValue = false\n protected disabled = false;\n protected showChips = false;\n protected showAllSelectionBtn = false;\n protected showPlaceholder = false;\n protected showExpandedSelectionActions = false;\n protected showSelectAllCheckbox = false;\n protected chipsContainerClasses = {\n \"-two\": false,\n \"-three\": false,\n \"-four\": false,\n \"-many\": false\n };\n protected optionsSelected: {[key: string | number]: boolean} = {}\n\n private _overlayRef: OverlayRef | undefined;\n private _portal: TemplatePortal<any> | undefined;\n private _destroy = inject(DestroyRef)\n private readonly ITEMS_PER_PAGE = 40\n private _pageNumber = 1\n private _reachedEnd = false;\n _selectAllMessage = '';\n\n\n\n @Input()\n filterFn?: (item: string) => any[];\n\n @Input()\n displayFn?: (item: any) => string;\n\n @Input()\n multiple = false;\n\n @Input()\n valueProp: string = ''\n\n @Input()\n options: any[] = []\n\n @Input()\n placeholder = ''\n\n @Input()\n emptyMessage = 'NO_OPTIONS';\n\n @Input()\n selectAll = false\n\n @Input()\n allOptionsSelectedText: string | null = null;\n\n @Input()\n selectAllMessage = this.translate.instant('SELECT_ALL');\n \n @Input()\n iconPropReference?: string;\n\n @Output()\n itemCheck = new EventEmitter();\n\n constructor(private formBuilder: FormBuilder,\n private overlay: Overlay,\n private viewContainerRef: ViewContainerRef,\n private change: ChangeDetectorRef,\n private translate: TranslateService) {\n }\n\n ngAfterViewInit() {\n this.checkAllValue = this.isAllOptionsSelected\n this.handleInputChange();\n }\n\n get isAllOptionsSelected() {\n return this.selection.length === this.options.length\n }\n\n ngOnChanges(changes: SimpleChanges) {\n if (changes['options']) {\n this._pageNumber = 1\n this._reachedEnd = false\n this.paginatedFilteredOptions = []\n\n this.filteredOptions = changes['options'].currentValue\n this.updateValidation()\n }\n }\n\n private handleInputChange() {\n this.inputControl.valueChanges.pipe(\n takeUntilDestroyed(this._destroy),\n debounceTime(300),\n tap(() => {\n this._pageNumber = 1\n this._reachedEnd = false\n this.paginatedFilteredOptions = []\n }),\n map(value => this.filterFn ? this.filterFn(value || '') : [])\n ).subscribe(items => {\n this.filteredOptions = items\n this.getMoreItems()\n })\n }\n\n private handleSelectionChange(values: any[]) {\n this.selection = values\n this.checkAllValue = this.isAllOptionsSelected\n\n if (!this.chipsCollapsed) {\n this.chipsCollapsed = this.selection.length < 2\n }\n this.updateValidation()\n this.change.detectChanges()\n }\n\n private updateChipsContainerClasses() {\n this.chipsContainerClasses = {\n \"-two\": this.selectedOptions.length === 2,\n \"-three\": this.selectedOptions.length === 3,\n \"-four\": this.selectedOptions.length === 4,\n \"-many\": this.selectedOptions.length >= 5\n }\n }\n\n handleOptionSelected(item: any) {\n this.selectedOption = item;\n this.onChange(this.selectedOption)\n this.hideOptions()\n this.change.detectChanges();\n }\n\n handleAutocompleteClick(event?: Event) {\n event?.stopPropagation()\n if (!this.disabled) {\n this.chipsCollapsed = true;\n this.closed\n ? this.showOptions()\n : this.hideOptions()\n }\n this.updateValidation();\n this.updateChipsContainerClasses()\n this.change.detectChanges()\n }\n\n protected handleChipsListActionClick(event: Event) {\n event.stopPropagation()\n this.chipsCollapsed = !this.chipsCollapsed;\n this.updateValidation()\n this.updateChipsContainerClasses()\n this.change.detectChanges()\n }\n\n showOptions() {\n this.closed = false\n if (!this._overlayRef && this.wrapper) {\n this._overlayRef = this.getOverlayConfig(this.wrapper)\n\n this._portal = new TemplatePortal(this.overlayContent!, this.viewContainerRef)\n }\n\n this._overlayRef?.attach(this._portal);\n\n this.updateValidation();\n if (this.paginatedFilteredOptions.length === 0) this.getMoreItems()\n }\n\n private getOverlayConfig(wrapper: ElementRef) {\n return this.overlay.create({\n width: wrapper.nativeElement.offsetWidth,\n positionStrategy: this.overlay.position()\n .flexibleConnectedTo(wrapper.nativeElement)\n .withPositions([{\n originX: \"start\",\n originY: \"bottom\",\n overlayX: \"start\",\n overlayY: \"top\"\n }])\n });\n }\n\n hideOptions() {\n this.closed = true;\n this.chipsCollapsed = true;\n this._overlayRef?.detach()\n this.change.detectChanges()\n this._pageNumber = 1;\n this.paginatedFilteredOptions = [];\n this.updateValidation();\n this.change.detectChanges()\n }\n\n @HostListener(\"window:mousedown\", ['$event'])\n handleClick(event: MouseEvent) {\n if (\n !this.closed\n && !this.wrapper?.nativeElement.contains(event.target)\n && !this.list?.nativeElement.contains(event.target)) {\n this.hideOptions()\n this.change.detectChanges()\n }\n }\n\n get selectedOptions(): any[] {\n if (!this.multiple) return this.selectedOption ? [this.selectedOption] : []\n\n return this.chipsCollapsed\n ? this.selection.slice(0, 1)\n : this.selection;\n }\n\n handleSelectAll(checked: boolean) {\n this.selectAllOptions(checked);\n this.selection = checked ? this.options : []\n this.onChange(this.selection)\n this.updateValidation()\n this.change.detectChanges()\n this.itemCheck.emit(this.selection);\n }\n\n valueChange(option: any, value: boolean) {\n this.optionsSelected[option[this.valueProp]] = value\n this.selection = this.options.filter(o => this.optionsSelected[o[this.valueProp]])\n this.checkAllValue = this.selection.length === this.options.length\n this.onChange(this.selection)\n this.onTouched()\n\n this.updateChipsContainerClasses()\n this.updateValidation();\n this.change.detectChanges();\n this.itemCheck.emit(this.selection);\n }\n\n selectAllOptions(selected: boolean) {\n this.optionsSelected = this.options\n .reduce((acc, curr) => {\n acc[curr[this.valueProp]] = selected\n return acc;\n }, {} as { [key: string]: boolean })\n }\n\n handleChipAction(option: any) {\n if (this.multiple) {\n this.optionsSelected[option[this.valueProp]] = false\n this.selection = this.selection.filter(selectedOption =>\n selectedOption[this.valueProp] !== option[this.valueProp])\n this.onChange(this.selection)\n } else {\n this.selectedOption = null;\n this.onChange([])\n }\n\n this.updateChipsContainerClasses()\n this.updateValidation();\n this.change.detectChanges();\n }\n\n display(option: any) {\n return this.displayFn && this.displayFn(option)\n }\n\n getMoreItems() {\n const sortedFilteredOptions = [...this.filteredOptions];\n\n this.sortSelectedFirst(sortedFilteredOptions, this.selection, this.valueProp)\n const nextPageItems = sortedFilteredOptions\n .slice(\n this.ITEMS_PER_PAGE * (this._pageNumber - 1),\n this.ITEMS_PER_PAGE * this._pageNumber\n );\n\n if (nextPageItems.length) {\n this.paginatedFilteredOptions = [...this.paginatedFilteredOptions, ...nextPageItems];\n this._pageNumber += 1\n } else {\n this._reachedEnd = true\n }\n this.updateValidation();\n this.change.detectChanges()\n }\n\n sortSelectedFirst(items: Array<any>, selectedItems: Array<any>, prop: string) {\n items.sort((a, b) => {\n const aIsSelected = selectedItems.some(item => item[prop] === a[prop]);\n const bIsSelected = selectedItems.some(item => item[prop] === b[prop]);\n\n if (aIsSelected && !bIsSelected) {\n return -1;\n } else if (!aIsSelected && bIsSelected) {\n return 1;\n } else {\n return 0;\n }\n });\n }\n\n protected updateValidation() {\n this.checkAllValue = this.isAllOptionsSelected\n this.showChips = Boolean(this.selectedOptions.length) && this.closed && (\n !this.multiple || !this.checkAllValue || (this.checkAllValue && !Boolean(this.allOptionsSelectedText))\n );\n this.showAllSelectionBtn = this.multiple && Boolean(this.selection.length > 1) && this.chipsCollapsed;\n this.showPlaceholder = this.closed && (\n !this.selectedOptions.length || (this.checkAllValue && Boolean(this.allOptionsSelectedText) && this.multiple)\n );\n this.showExpandedSelectionActions = this.multiple && !this.chipsCollapsed;\n this.showSelectAllCheckbox = Boolean(this.paginatedFilteredOptions.length) && this.selectAll;\n }\n\n // Control Value Accessor\n\n writeValue(obj: any[] | any): void {\n this.selection = [];\n\n if (this.multiple && Array.isArray(obj)) {\n this.optionsSelected = {}\n obj.forEach(option => this.optionsSelected[option[this.valueProp]] = true)\n } else {\n this.selectedOption = obj\n }\n\n if (this.multiple) {\n this.handleSelectionChange(obj)\n }\n\n this.change.detectChanges();\n }\n\n onChange = (_: any) => {}\n\n registerOnChange(fn: any): void {\n this.onChange = fn;\n }\n\n onTouched = () => {}\n\n registerOnTouched(fn: any): void {\n this.onTouched = fn;\n }\n\n setDisabledState(isDisabled: boolean): void {\n this.disabled = isDisabled;\n }\n}\n","<div\n class=\"autocomplete-wrapper\"\n data-testid=\"autocomplete-wrapper\"\n [class.-closed]=\"closed\"\n [class.-opened]=\"!closed\"\n #wrapper\n (click)=\"handleAutocompleteClick()\"\n>\n <div class=\"autocomplete\" #autocomplete>\n <input\n class=\"search-field\"\n askAutofocus\n *ngIf=\"!closed; else selectionOrPlaceholder\"\n (click)=\"$event.stopPropagation()\"\n [formControl]=\"inputControl\"\n [placeholder]=\"placeholder\"\n />\n <ng-template #selectionOrPlaceholder>\n <ng-container *ngIf=\"showChips\">\n <div\n class=\"chip-list\"\n [class.-collapsed]=\"chipsCollapsed\"\n [ngClass]=\"chipsContainerClasses\"\n >\n <ask-chips\n [style.max-width]=\"chipsCollapsed ? '85%' : '95%'\"\n [showAction]=\"true\"\n *ngFor=\"let option of selectedOptions\"\n (action)=\"handleChipAction(option)\"\n >\n {{ display(option) }}\n </ask-chips>\n <span\n class=\"expand\"\n data-testid=\"see-more\"\n *ngIf=\"showAllSelectionBtn\"\n (click)=\"handleChipsListActionClick($event)\"\n >\n +{{ selection.length - 1 }}\n </span>\n </div>\n </ng-container>\n <span\n class=\"empty-placeholder\"\n data-testid=\"placeholder\"\n *ngIf=\"showPlaceholder\"\n >\n {{\n checkAllValue && allOptionsSelectedText\n ? allOptionsSelectedText\n : placeholder\n }}\n </span>\n </ng-template>\n <span\n class=\"btn-expand material-icons\"\n data-testid=\"btn-expand\"\n [class.-disabled]=\"disabled\"\n *ngIf=\"chipsCollapsed\"\n >\n {{ closed ? \"expand_more\" : \"expand_less\" }}\n </span>\n </div>\n <div class=\"actions\" *ngIf=\"showExpandedSelectionActions\">\n <span\n class=\"see-more\"\n data-testid=\"see-less\"\n (click)=\"handleChipsListActionClick($event)\"\n >\n {{ \"SEE_LESS\" | translate }}\n </span>\n <span\n class=\"btn-expand material-icons\"\n data-testid=\"btn-expand\"\n [class.-disabled]=\"disabled\"\n >\n {{ closed ? \"expand_more\" : \"expand_less\" }}\n </span>\n </div>\n</div>\n\n<ng-template #overlayContent>\n <div #list class=\"menu-container\" [class.-multiple]=\"multiple\">\n <ng-container *ngIf=\"!multiple; else multipleSelection\">\n <div class=\"list\" askScroll [askScrollThreshold]=\"50\">\n <ng-container *ngFor=\"let option of paginatedFilteredOptions\">\n <div\n class=\"option-item\"\n [class.-highlighted]=\"\n selectedOption && selectedOption[valueProp] === option[valueProp]\n \"\n (click)=\"handleOptionSelected(option)\"\n >\n <p class=\"text\">{{ display(option) }}</p>\n </div>\n </ng-container>\n </div>\n </ng-container>\n <ng-template #multipleSelection>\n <div class=\"option-item\" *ngIf=\"showSelectAllCheckbox\">\n <ask-checkbox\n (valueChange)=\"handleSelectAll($event)\"\n [(ngModel)]=\"checkAllValue\"\n >{{selectAllMessage}}</ask-checkbox\n >\n </div>\n <div\n askScroll\n [askScrollThreshold]=\"50\"\n (scrollEnd)=\"getMoreItems()\"\n data-testid=\"options-form\"\n class=\"options-form\"\n [class.-select-all]=\"showSelectAllCheckbox\"\n >\n <ng-container *ngFor=\"let option of paginatedFilteredOptions\">\n <div class=\"option-item\">\n <ask-checkbox\n [value]=\"optionsSelected[option[valueProp]]\"\n (valueChange)=\"valueChange(option, $event)\"\n >\n <div class=\"checkbox-content\">\n <img\n data-testid=\"checkbox-item-icon\"\n class=\"icon\"\n *ngIf=\"iconPropReference\"\n [src]=\"option[iconPropReference]\"\n alt=\"\"\n />\n {{ display(option) }}\n </div>\n </ask-checkbox>\n </div>\n </ng-container>\n </div>\n </ng-template>\n <span class=\"empty\" *ngIf=\"!filteredOptions.length\">{{\n emptyMessage | translate\n }}</span>\n </div>\n</ng-template>\n","import {Component, EventEmitter, Input, OnInit, Output} from '@angular/core';\nimport moment from 'moment';\n\nexport enum PeriodLabel {\n TODAY = 'TODAY',\n YESTERDAY = 'YESTERDAY',\n LAST_7_DAYS = 'LAST_7_DAYS',\n LAST_30_DAYS = 'LAST_30_DAYS',\n THIS_MONTH = 'THIS_MONTH',\n LAST_QUARTER = 'LAST_QUARTER',\n CUSTOM_PERIOD = 'CUSTOM_PERIOD',\n}\n\nexport interface Day {\n timestamp: number;\n day: string;\n month: number;\n weekDay: number;\n formatted: string;\n isFuture: boolean;\n}\n\nexport interface WeekDay {\n name: string;\n}\n\nexport type DateRange = { from?: string; to?: string; label?: PeriodLabel; };\n\nexport type DatePickerValue = string | DateRange;\n\ntype DayRange = { from?: Day; to?: Day; label?: string; };\n\ntype DatePickerInnerValue = Day | DayRange;\n\nexport const DEFAULT_DATE_FORMAT = 'YYYY-MM-DDTHH:mm:ssZ';\nexport const formatFrom = (from: moment.Moment) => from.startOf('day').format(DEFAULT_DATE_FORMAT)\nexport const formatTo = (from: moment.Moment) => from.endOf('day').format(DEFAULT_DATE_FORMAT)\n\n@Component({\n selector: 'ask-date-picker-calendar',\n templateUrl: './date-picker-calendar.component.html',\n styleUrls: ['./date-picker-calendar.component.scss']\n})\nexport class DatePickerCalendarComponent implements OnInit {\n @Input() isRange: boolean = false;\n @Input() disableFutureDate: boolean = false;\n @Input() date!: DatePickerValue;\n @Output() dateChange: EventEmitter<DatePickerValue> = new EventEmitter<DatePickerValue>();\n\n private innerDate!: DatePickerInnerValue;\n private displayDate!: moment.Moment;\n private firstDayOfWeek!: number;\n private _weekDays: Array<WeekDay> = [];\n private _days: Array<Day> = [];\n\n get shouldDisableNextMonth () {\n return this.isFutureDate(this.displayDate.clone().add(1, 'month').unix());\n }\n\n get days(): Array<Day> {\n return this._days\n }\n\n get month(): string {\n return this.displayDate.format('MMMM');\n }\n\n get monthNumber(): number {\n return this.displayDate.month();\n }\n\n get year(): string {\n return this.displayDate.format('YYYY');\n }\n\n get weekDays(): Array<WeekDay> {\n return this._weekDays;\n }\n\n isDaySelected(day: Day): boolean {\n if (this.isRange) {\n\n const from = (this.innerDate as DayRange).from?.timestamp;\n const to = (this.innerDate as DayRange).to?.timestamp;\n\n if (!from) {\n return false;\n }\n else if (!to) {\n return day.timestamp === from;\n }\n\n return day.timestamp >= from && day.timestamp <= to;\n }\n\n return (this.innerDate as Day)?.timestamp === day.timestamp;\n }\n\n isFirstSelectedDay(day: Day) {\n if (this.isRange) {\n return day.formatted === (this.innerDate as DayRange).from?.formatted;\n }\n\n return (this.innerDate as Day).formatted === day.formatted;\n }\n\n isLastSelectedDay(day: Day) {\n if (this.isRange) {\n return day.formatted === ((this.innerDate as DayRange).to?.formatted || (this.innerDate as DayRange).from?.formatted);\n }\n\n return (this.innerDate as Day).formatted === day.formatted;\n }\n\n ngOnInit() {\n this.assignInitialValues();\n this.refreshDisplay();\n }\n\n private assignInitialValues() {\n if (this.isRange) {\n const receivedDate = this.date as DateRange;\n if (receivedDate.from && receivedDate.to) {\n (this.innerDate as DayRange) = {\n from: this.getDayFromString(receivedDate.from),\n to: this.getDayFromString(receivedDate.to),\n label: PeriodLabel[receivedDate.label || 'CUSTOM_PERIOD'].toString()\n }\n }\n else {\n (this.innerDate as DayRange) = {\n label: 'CUSTOM_PERIOD'\n };\n }\n this.displayDate = moment.unix((this.innerDate as DayRange).from?.timestamp || (Date.now() / 1000));\n }\n else {\n this.innerDate = this.getDayFromString(this.date as string);\n this.displayDate = moment.unix(this.innerDate.timestamp);\n }\n\n this.firstDayOfWeek = this.displayDate.clone().startOf('week').day();\n }\n\n private refreshDisplay() {\n this.buildWeekDays();\n this.buildDays();\n }\n\n private buildWeekDays() {\n const startOfWeek = this.displayDate.clone().startOf('week');\n const endOfWeek = this.displayDate.clone().endOf('week');\n this._weekDays = [];\n\n do {\n this._weekDays.push({\n name: startOfWeek.format('ddd')\n });\n\n startOfWeek.add(1, 'day');\n }\n while (startOfWeek.isBefore(endOfWeek));\n }\n\n private buildDays() {\n let startDay = this.displayDate.clone().startOf('month');\n let endDay = this.displayDate.clone().endOf('month');\n\n let daysOfPastMonth: Array<Day> = [];\n let daysOfThisMonth: Array<Day> = [];\n let daysOfNextMonth: Array<Day> = [];\n\n // Builds this month days\n daysOfThisMonth = this.getDaysBetween(startDay, endDay);\n\n // Builds past month days\n if (daysOfThisMonth[0].weekDay !== this.firstDayOfWeek) {\n startDay = this.displayDate.clone().startOf('month').startOf('week');\n }\n else {\n startDay = this.displayDate.clone().subtract(1, 'month').endOf('month').startOf('week');\n }\n endDay = startDay.clone().endOf('month');\n daysOfPastMonth = this.getDaysBetween(startDay, endDay);\n\n // Builds next month days\n startDay = this.displayDate.clone().add(1, 'month').startOf('month');\n endDay = startDay.clone().endOf('week');\n daysOfNextMonth = this.getDaysBetween(startDay, endDay);\n\n this._days = [\n ...daysOfPastMonth,\n ...daysOfThisMonth,\n ...daysOfNextMonth,\n ];\n\n // If calendar isn't complete yet (all 7 columns and 6 rows are full), adds another week to complete the calendar\n if (this._days.length < 42) {\n endDay = endDay.clone().add(1, 'day').endOf('week');\n startDay = endDay.clone().startOf('week');\n this._days.push(...this.getDaysBetween(startDay, endDay));\n }\n }\n\n private getDaysBetween(start: moment.Moment, end: moment.Moment): Array<Day> {\n start = start.clone();\n end = end.clone();\n\n const days = [];\n do {\n days.push(this.getDayFromMoment(start));\n\n start.add(1, 'day');\n }\n while (start.isBefore(end));\n\n return days;\n }\n\n getDayFromMoment(day: moment.Moment): Day {\n day = day.clone().startOf('day');\n\n return {\n timestamp: day.unix(),\n day: day.format('D'),\n month: day.month(),\n weekDay: day.day(),\n formatted: day.format(DEFAULT_DATE_FORMAT),\n isFuture: this.isFutureDate(day.unix())\n }\n }\n\n getDayFromString(date: string): Day {\n return this.getDayFromMoment(moment(date));\n }\n\n getDateFromDay(day: Day): string {\n return moment.unix(day.timestamp).startOf('day').format(DEFAULT_DATE_FORMAT);\n }\n\n incrementMonth(amount: number) {\n this.displayDate.add(amount, 'month');\n this.refreshDisplay();\n }\n\n selectDate(timestamp: number) {\n const momentDate = moment.unix(timestamp);\n\n if (this.isRange) {\n this.handleRangeSelect(momentDate);\n }\n else {\n this.handleSingleSelect(momentDate);\n }\n }\n\n private handleRangeSelect(selectedDate: moment.Moment) {\n const innerDate = (this.innerDate as DayRange);\n\n // First selection\n if (!innerDate.from) {\n innerDate.from = this.getDayFromMoment(selectedDate);\n }\n\n // Second selection\n else if (!innerDate.to) {\n const actualFrom = moment.unix(innerDate.from.timestamp);\n\n // Selected date is past the previous selected date\n if (selectedDate.isBefore(actualFrom, 'day')) {\n innerDate.to = innerDate.from;\n innerDate.from = this.getDayFromMoment(selectedDate);\n }\n\n // Selected date is future of the previous selected date\n else {\n innerDate.to = this.getDayFromMoment(selectedDate);\n }\n }\n\n // Selection when both from and to are already selected\n else {\n innerDate.from = this.getDayFromMoment(selectedDate);\n innerDate.to = undefined;\n }\n\n this.emitRange(innerDate);\n }\n\n private emitRange(range: DayRange) {\n const newRange: DateRange = {};\n newRange.label = PeriodLabel.CUSTOM_PERIOD;\n\n if (range.from) {\n newRange.from = this.getDateFromDay(range.from);\n\n if (range.to) newRange.to = formatTo(moment.unix(range.to.timestamp));\n }\n\n this.dateChange.emit(newRange);\n }\n\n private handleSingleSelect(momentDate: moment.Moment) {\n this.innerDate = this.getDayFromMoment(momentDate);\n this.dateChange.emit(momentDate.format(DEFAULT_DATE_FORMAT));\n }\n\n public isFutureDate(timestamp: number) {\n if (!this.disableFutureDate) return false;\n\n const date = moment.unix(timestamp);\n const now = moment();\n\n return date.isAfter(now);\n }\n}\n","<div class=\"date-picker-calendar-container\">\n <header class=\"month-selector\">\n <button type=\"button\" class=\"selector-button\" (click)=\"incrementMonth(-1)\">\n <span class=\"material-icons icon\">chevron_left</span>\n </button>\n\n <span class=\"month-year-display\" data-testid=\"month-year-display\">{{ month }} {{ year }}</span>\n\n <button\n type=\"button\"\n class=\"selector-button\"\n [disabled]=\"shouldDisableNextMonth\"\n (click)=\"incrementMonth(1)\"\n >\n <span class=\"material-icons icon\">chevron_right</span>\n </button>\n </header>\n\n <main class=\"calendar\">\n <div class=\"week-days-header\">\n <span class=\"week-day\" *ngFor=\"let weekDay of weekDays\">{{ weekDay.name }}</span>\n </div>\n\n <div class=\"days-block\" data-testid=\"days-block\">\n <button\n *ngFor=\"let day of days\"\n (click)=\"selectDate(day.timestamp)\"\n [disabled]=\"day.isFuture\"\n [ngClass]=\"{\n 'day': true,\n 'another-month': monthNumber != day.month,\n 'selected': isDaySelected(day),\n 'first': isFirstSelectedDay(day),\n 'last': isLastSelectedDay(day),\n }\"\n >\n {{ day.day }}\n </button>\n </div>\n </main>\n</div>\n","import {Component, EventEmitter, forwardRef, Input, OnInit, Output, Provider} from '@angular/core';\nimport moment from 'moment';\nimport {DatePickerValue, DateRange, PeriodLabel, formatFrom, formatTo} from \"./date-picker-calendar/date-picker-calendar.component\";\nimport {ControlValueAccessor, NG_VALUE_ACCESSOR} from \"@angular/forms\";\n\ninterface Period {\n label: PeriodLabel;\n getRange: () => DateRange;\n isCustomRange?: boolean;\n}\n\nconst VALUE_ACCESSOR: Provider = {\n provide: NG_VALUE_ACCESSOR,\n multi: true,\n useExisting: forwardRef(() => DatePickerComponent),\n}\n\n\n\n@Component({\n selector: 'ask-date-picker',\n templateUrl: './date-picker.component.html',\n styleUrls: ['./date-picker.component.scss'],\n providers: [ VALUE_ACCESSOR ],\n})\nexport class DatePickerComponent implements OnInit, ControlValueAccessor {\n\n static readonly PERIODS: Array<Period> = [\n { label: PeriodLabel.TODAY, getRange: () => ({ from: formatFrom(moment()), to: formatTo(moment()) }) },\n { label: PeriodLabel.YESTERDAY, getRange: () => ({ from: formatFrom(moment().subtract(1, 'day')), to: formatTo(moment().subtract(1, 'day')) }) },\n { label: PeriodLabel.LAST_7_DAYS, getRange: () => ({ from: formatFrom(moment().subtract(1, 'week')), to: formatTo(moment()) }) },\n { label: PeriodLabel.LAST_30_DAYS, getRange: () => ({ from: formatFrom(moment().subtract(30, 'days')), to: formatTo(moment()) }) },\n { label: PeriodLabel.THIS_MONTH, getRange: () => ({ from: formatFrom(moment().startOf('month')), to: formatTo(moment().endOf('month')) }) },\n { label: PeriodLabel.LAST_QUARTER, getRange: () => ({ from: formatFrom(moment().subtract(3, 'months')), to: formatTo(moment().endOf('month')) }) },\n { label: PeriodLabel.CUSTOM_PERIOD, getRange: () => ({}), isCustomRange: true },\n ];\n\n @Input() date: DatePickerValue = moment().format();\n @Input() isRange: boolean = false;\n @Input() disableFutureDate: boolean = false;\n @Input() periodsFilter: PeriodLabel[] = [];\n\n @Output() dateChange = new EventEmitter<DatePickerValue>();\n @Output() close = new EventEmitter();\n\n selectedPeriod?: Period;\n isCustomRange = false;\n\n get filteredPeriods() {\n if (!this.periodsFilter?.length) {\n return DatePickerComponent.PERIODS;\n }\n\n return DatePickerComponent.PERIODS.filter(p => this.periodsFilter.includes(p.label));\n }\n\n get from(): string | undefined {\n if (!this.isRange) {\n return;\n }\n\n return (this.date as DateRange).from;\n }\n\n get to(): string | undefined {\n if (!this.isRange) {\n return;\n }\n\n return (this.date as DateRange).to;\n }\n\n get dateDisplay(): string {\n const from = this.from ? moment(this.from).format('L') : '';\n const to = this.to ? moment(this.to).format('L') : '';\n\n return `${from} ${ to ? '- ' + to : '' }`;\n }\n\n ngOnInit(): void {\n }\n\n selectPeriod(period: Period) {\n this.selectedPeriod = period;\n\n this.date = {\n ...(this.date as DateRange),\n ...period.getRange()\n };\n this.date.label = period.label;\n this.isCustomRange = period.isCustomRange || false;\n\n if (!this.isCustomRange) {\n this.emitValue();\n }\n }\n\n handleDateChange(value: DatePickerValue) {\n this.date = value;\n\n if (!this.isRange) {\n this.emitValue();\n }\n }\n\n emitValue() {\n if (this.isCustomRange && !(this.date as DateRange).to) {\n (this.date as DateRange).to = (this.date as DateRange).from;\n }\n\n this.dateChange.emit(this.date);\n this.onChange(this.date);\n this.close.emit();\n }\n\n handleCancelClick() {\n this.close.emit();\n }\n\n public static getPeriodOrDefault(periodName: PeriodLabel, defaultPeriodName: PeriodLabel = PeriodLabel.TODAY) {\n return DatePickerComponent.PERIODS.find(p => p.label === periodName) ||\n DatePickerComponent.PERIODS.find(p => p.label === defaultPeriodName);\n }\n\n checkPeriodShouldBeSelectedByValue() {\n if (!this.isRange) {\n return;\n }\n\n const period = DatePickerComponent.PERIODS.find(p => p.label === (this.date as DateRange)?.label);\n\n if (!period) {\n return;\n }\n\n this.selectedPeriod = period;\n this.isCustomRange = period.isCustomRange || false;\n }\n\n writeValue(value: DatePickerValue) {\n if (this.isRange) {\n const valueRange = value as DateRange;\n\n if (valueRange.label && valueRange.label !== PeriodLabel.CUSTOM_PERIOD) {\n const period = DatePickerComponent.getPeriodOrDefault(valueRange.label)?.getRange() || {};\n this.date = { ...period, label: valueRange.label };\n }\n\n else if (valueRange.from && valueRange.to) {\n this.date = { from: valueRange.from, to: valueRange.to, label: PeriodLabel.CUSTOM_PERIOD };\n }\n\n this.checkPeriodShouldBeSelectedByValue();\n }\n\n else {\n this.date = value;\n }\n }\n\n registerOnChange(fn: (value: DatePickerValue) => void): void {\n this.onChange = fn;\n }\n\n onChange = (value: DatePickerValue) => {};\n\n registerOnTouched(fn: any): void {\n this.onTouch = fn;\n }\n\n onTouch = () => {};\n}\n","<div class=\"date-picker-container\">\n <main class=\"main-content\">\n <div\n class=\"periods-list\"\n *ngIf=\"isRange\"\n [ngClass]=\"{ 'show-divider': isCustomRange }\"\n >\n <button\n *ngFor=\"let period of filteredPeriods\"\n type=\"button\"\n class=\"period\"\n [ngClass]=\"{ 'selected': period.label === selectedPeriod?.label }\"\n (click)=\"selectPeriod(period)\"\n >\n {{ period.label.toString() | translate }}\n </button>\n </div>\n\n <ask-date-picker-calendar\n *ngIf=\"!isRange || (isRange && isCustomRange)\"\n [date]=\"date\"\n (dateChange)=\"handleDateChange($event)\"\n [isRange]=\"isRange\"\n [disableFutureDate]=\"disableFutureDate\"\n ></ask-date-picker-calendar>\n </main>\n\n <footer class=\"footer\" *ngIf=\"isCustomRange && isRange\">\n <div class=\"date-display\">{{ dateDisplay }}</div>\n\n <div class=\"button-tray\">\n <ask-button\n [size]=\"'xsmall'\"\n [type]=\"'secondary'\"\n (click)=\"handleCancelClick()\"\n >\n {{ 'CANCEL' | translate }}\n </ask-button>\n\n <ask-button\n [size]=\"'xsmall'\"\n [type]=\"'primary'\"\n (click)=\"emitValue()\"\n >\n {{ 'APPLY' | translate }}\n </ask-button>\n </div>\n </footer>\n</div>\n","import { Component, ElementRef, Input } from '@angular/core';\n\n@Component({\n selector: 'ask-skeleton',\n templateUrl: './skeleton.component.html',\n styleUrls: ['./skeleton.component.scss'],\n})\nexport class SkeletonComponent {\n @Input() barsHeight = 100;\n @Input() radius = 5;\n public barsCount = 0;\n\n constructor(private elementRef: ElementRef<HTMLElement>) {}\n\n ngOnInit() {\n const height = this.elementRef.nativeElement.clientHeight;\n this.barsCount = Math.round(height / this.barsHeight) || 1;\n }\n}\n","<ngx-skeleton-loader\n data-testid=\"skeleton-loader\"\n class=\"skeleton-component\"\n [count]=\"barsCount\"\n appearance=\"line\"\n animation=\"progress\"\n [theme]=\"{\n 'border-radius': radius + 'px',\n height: barsHeight+'px',\n margin: 0,\n display: 'block',\n }\"\n></ngx-skeleton-loader>\n","import {InjectionToken} from \"@angular/core\";\n\nexport type ToastType = 'success' | 'warning' | 'danger' | 'info';\n\nexport interface ToastData {\n type: ToastType;\n message: string;\n config?: ToastConfig;\n}\n\nexport interface ToastConfig {\n timeout?: number;\n}\n\nexport const ASK_TOAST_CONFIG = new InjectionToken<ToastData>('Default toast options');\n","import {OverlayRef} from \"@angular/cdk/overlay\";\n\nexport class ToastRef {\n constructor(readonly overlay: OverlayRef) {\n }\n\n close() {\n this.overlay.dispose();\n }\n\n getPosition(): DOMRect {\n return this.overlay.overlayElement.getBoundingClientRect();\n }\n}\n","import {ChangeDetectionStrategy, Component, HostBinding, Inject, Input, OnDestroy, OnInit} from '@angular/core';\nimport {ASK_TOAST_CONFIG, ToastConfig, ToastData, ToastType} from '../../services/toast/toast.config';\nimport {ToastRef} from \"../../services/toast/toast-ref\";\n\n\n@Component({\n selector: 'ask-toast',\n templateUrl: './toast.component.html',\n styleUrls: ['./toast.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class ToastComponent implements OnInit, OnDestroy {\n message = '';\n icon = 'check_small';\n timeoutRef!: NodeJS.Timeout;\n config: ToastConfig = {\n timeout: 5000,\n }\n\n @HostBinding('style.background-color') color = 'var(--success-green)';\n @HostBinding('style.color') fontColor = 'var(--white)';\n @HostBinding('class.closing') isClosing = false;\n\n private readonly TYPES: { [key in ToastType]: { color: string; icon: string; fontColor: string; } } = {\n success: { color: 'var(--success-green)', icon: 'check_small', fontColor: 'var(--white)' },\n warning: { color: 'var(--warning-yellow)', icon: 'warning', fontColor: 'var(--grey-800)' },\n danger: { color: 'var(--error-red)', icon: 'error', fontColor: 'var(--white)' },\n info: { color: 'var(--facebook-blue)', icon: 'info', fontColor: 'var(--white)' },\n }\n\n constructor(\n @Inject(ASK_TOAST_CONFIG) readonly data: ToastData,\n private ref: ToastRef\n ) {\n this.message = data.message;\n this.type = data.type;\n this.config = {\n ...this.config,\n ...data.config\n }\n }\n\n @Input() set type(type: 'success' | 'warning' | 'danger' | 'info' | ToastType) {\n this.icon = this.TYPES[type].icon;\n this.fontColor = this.TYPES[type].fontColor;\n this.color = this.TYPES[type].color;\n }\n\n ngOnInit() {\n if (this.config?.timeout) {\n this.timeoutRef = setTimeout(() => this.close(), this.config.timeout);\n }\n }\n\n ngOnDestroy() {\n clearTimeout(this.timeoutRef);\n }\n\n close() {\n this.isClosing = true;\n\n setTimeout(() => this.ref.close(), 250);\n }\n}\n","<span class=\"material-icons icon\">\n {{ icon }}\n</span>\n\n<p class=\"message\">\n {{ message }}\n</p>\n\n<button type=\"button\" class=\"close-icon\" (click)=\"close()\">\n <span class=\"material-icons icon\" [style.color]=\"fontColor\">close</span>\n</button>\n","import {Component, Input} from '@angular/core';\n\n@Component({\n selector: 'app-spinner',\n templateUrl: './spinner.component.html',\n styleUrls: ['./spinner.component.scss']\n})\nexport class SpinnerComponent {\n @Input() size: 'medium' | 'small' | 'big' = 'small'\n}\n","<span class=\"spin-circle\" [ngClass]=\"{\n '-big': size === 'big',\n '-medium': size === 'medium'\n}\"></span>\n","import {Directive, ElementRef, Inject, Input, OnChanges, OnDestroy, SimpleChanges} from '@angular/core';\nimport {DOCUMENT} from \"@angular/common\";\n\n@Directive({\n selector: '[askBadge]'\n})\nexport class BadgeDirective implements OnChanges, OnDestroy {\n\n @Input()\n askBadge: number | null = null;\n\n @Input()\n badgePosition: 'top-right' | 'top-left' | 'bottom-left' | 'bottom-right' = 'top-right';\n\n @Input()\n badgeCustomClasses?: string;\n\n @Input()\n badgeVariant: 'secondary' | 'primary' = 'primary';\n\n @Input()\n badgeSize: 'regular' | 'large' | 'small' = 'regular';\n\n badgeElement: HTMLElement | null = null;\n\n constructor(private elRef: ElementRef, @Inject(DOCUMENT) private document: Document) {\n }\n\n ngOnChanges(changes: SimpleChanges) {\n if ('askBadge' in changes) {\n const value = `${changes['askBadge'].currentValue}`.trim();\n if (value?.length > 0) {\n this.updateBadgeText(value)\n }\n }\n }\n\n ngOnDestroy() {\n if (this.badgeElement) {\n this.badgeElement.remove();\n }\n }\n\n private updateBadgeText(value: string) {\n if (!this.badgeElement && value !== '0') {\n this.badgeElement = this.createBadge(value);\n } else if (this.badgeElement && value !== '0') {\n this.badgeElement.textContent = value;\n } else if (this.badgeElement) {\n this.badgeElement.classList.add('scale-out-center');\n setTimeout(() => {\n this.badgeElement?.remove();\n this.badgeElement = null;\n }, 300)\n }\n }\n\n private createBadge(value: string): HTMLElement {\n const badgeElement = this.document.createElement(\"span\");\n this.addClasses(badgeElement);\n badgeElement.textContent = value;\n this.elRef.nativeElement.classList.add(\"ask-badge\");\n this.elRef.nativeElement.appendChild(badgeElement);\n return badgeElement;\n }\n\n private addClasses(badgeElement: HTMLElement) {\n const [vPos, hPos] = this.badgePosition.split(\"-\");\n badgeElement.classList.add(\"badge\", `-${vPos}`, `-${hPos}`, 'scale-in-center');\n if (this.badgeCustomClasses) {\n const customClasses = this.badgeCustomClasses.split(\" \");\n badgeElement.classList.add(...customClasses);\n }\n badgeElement.classList.add(`-${this.badgeVariant}`);\n badgeElement.classList.add(`-${this.badgeSize}`);\n }\n\n}\n","import {Directive, ElementRef, Input} from '@angular/core';\n\n@Directive({\n selector: '[askButton]'\n})\nexport class AskButtonDirective {\n @Input()\n set color(value: 'primary' | 'secondary' | '') {\n const element = (this.el.nativeElement as HTMLElement);\n if (value) {\n element.classList.add('-' + value)\n } else {\n element.classList.remove('-primary', '-secondary')\n }\n }\n\n constructor(private el: ElementRef) {\n const element: HTMLElement = this.el.nativeElement;\n\n if (element.tagName.toLowerCase() !== 'button') {\n throw new Error(`AskButton can only be applied to buttons.`);\n }\n\n element.classList.add('ask-button');\n }\n}\n","import {\n ComponentRef,\n Directive,\n ElementRef,\n HostBinding,\n Input,\n Renderer2,\n ViewContainerRef,\n} from '@angular/core';\nimport { SpinnerComponent } from './spinner.component';\n\n@Directive({\n selector: '[askSpinner]',\n})\nexport class SpinnerDirective {\n private shouldShow = false;\n spinner: ComponentRef<SpinnerComponent> | undefined;\n\n @Input('askSpinner')\n set nbSpinner(val: boolean) {\n if (val) {\n this.show();\n } else {\n this.hide();\n }\n }\n\n @Input() spinnerSize: 'small' | 'medium' | 'big' = 'small'\n @Input() spinnerBlur = true\n\n @HostBinding('class.nb-spinner-container') isSpinnerExist = false;\n\n constructor(\n private directiveView: ViewContainerRef,\n private renderer: Renderer2,\n private directiveElement: ElementRef\n ) {}\n\n ngOnInit() {\n if (this.shouldShow) {\n this.show();\n }\n }\n\n hide() {\n if (this.isSpinnerExist) {\n this.directiveView.remove();\n this.isSpinnerExist = false;\n }\n }\n\n show() {\n if (!this.isSpinnerExist) {\n this.spinner = this.directiveView.createComponent(SpinnerComponent);\n this.spinner.instance.size = this.spinnerSize\n this.spinner.changeDetectorRef.detectChanges();\n if (this.spinnerBlur) {\n this.directiveElement.nativeElement.classList.add('-blur')\n }\n this.renderer.setStyle(this.directiveElement.nativeElement, 'position', 'relative');\n this.renderer.appendChild(\n this.directiveElement.nativeElement,\n this.spinner.location.nativeElement\n );\n this.isSpinnerExist = true;\n }\n }\n}\n","import {\n ComponentRef,\n DestroyRef,\n Directive,\n ElementRef,\n EventEmitter,\n HostListener,\n inject,\n Input,\n OnInit,\n Output,\n TemplateRef\n} from '@angular/core';\nimport {DropdownContainerComponent} from \"../components/dropdown-container/dropdown-container.component\";\nimport {ConnectedPosition, Overlay, OverlayConfig, OverlayPositionBuilder, OverlayRef} from \"@angular/cdk/overlay\";\nimport {ComponentPortal} from \"@angular/cdk/portal\";\nimport {takeUntilDestroyed} from \"@angular/core/rxjs-interop\";\n\n@Directive({\n selector: '[askDropdown]'\n})\nexport class AskDropdownDirective implements OnInit {\n\n @Input() askDropdown?: TemplateRef<any>;\n @Input() dropdownName = '';\n @Input() positions?: Array<ConnectedPosition> | 'TOP_RIGHT' | 'TOP_LEFT' | 'BOTTOM_RIGHT' | 'BOTTOM_LEFT';\n @Input() dropdownDisabled = false;\n\n @Output() askDropdownOnClose = new EventEmitter();\n\n private _isRendered: boolean = false;\n private overlayConfig: OverlayConfig = {};\n private overlayRef!: OverlayRef;\n private containerRef!: ComponentRef<DropdownContainerComponent> | undefined;\n\n private readonly AVAILABLE_POSITIONS: { TOP_RIGHT: ConnectedPosition; TOP_LEFT: ConnectedPosition; BOTTOM_RIGHT: ConnectedPosition; BOTTOM_LEFT: ConnectedPosition; } = {\n TOP_RIGHT: { panelClass: 'ask-dropdown-top-right', originX: 'end', originY: 'top', overlayX: 'start', overlayY: 'top' },\n TOP_LEFT: { panelClass: 'ask-dropdown-top-left', originX: 'start', originY: 'top', overlayX: 'end', overlayY: 'top' },\n BOTTOM_RIGHT: { panelClass: 'ask-dropdown-bottom-right', originX: 'end', originY: 'bottom', overlayX: 'end', overlayY: 'top' },\n BOTTOM_LEFT: { panelClass: 'ask-dropdown-bottom-left', originX: 'start', originY: 'bottom', overlayX: 'start', overlayY: 'top' },\n }\n\n constructor(\n private overlayPositionBuilder: OverlayPositionBuilder,\n private elementRef: ElementRef,\n private overlay: Overlay,\n private _destroyRef: DestroyRef,\n ) { }\n\n ngOnInit() {\n this.setOverlayConfig();\n this.createOverlay();\n this.listenOutsideClicks();\n }\n\n private setOverlayConfig() {\n const positionStrategy = this.overlayPositionBuilder\n .flexibleConnectedTo(this.elementRef)\n .withPositions(this.getOverlayPosition());\n\n const scrollStrategy = this.overlay.scrollStrategies.block();\n\n this.overlayConfig = {\n hasBackdrop: true,\n backdropClass: 'cdk-overlay-transparent-backdrop',\n positionStrategy,\n scrollStrategy\n };\n }\n\n private createOverlay() {\n this.overlayRef = this.overlay.create(this.overlayConfig);\n }\n\n private getOverlayPosition(): ConnectedPosition[] {\n if (this.positions) {\n let chosenPositions: Array<ConnectedPosition> = [];\n\n if (typeof this.positions === 'string') {\n chosenPositions.push(this.AVAILABLE_POSITIONS[this.positions]);\n }\n\n else if (Array.isArray(this.positions)) {\n chosenPositions = [...this.positions];\n }\n\n chosenPositions = chosenPositions.filter(p => !!p);\n\n if (chosenPositions.length) return chosenPositions;\n }\n\n return [\n this.AVAILABLE_POSITIONS.BOTTOM_RIGHT,\n this.AVAILABLE_POSITIONS.BOTTOM_LEFT,\n this.AVAILABLE_POSITIONS.TOP_RIGHT,\n this.AVAILABLE_POSITIONS.TOP_LEFT,\n ]\n }\n\n private listenOutsideClicks() {\n this.overlayRef.backdropClick()\n .pipe(takeUntilDestroyed(this._destroyRef))\n .subscribe((event) => {\n this.close();\n event.stopPropagation()\n })\n }\n\n @HostListener('click')\n public show() {\n if (!this.askDropdown || this.isRendered || this.dropdownDisabled ) {\n this.close();\n return;\n }\n\n this.containerRef = this.overlayRef.attach(new ComponentPortal(DropdownContainerComponent));\n this.containerRef.instance.content = this.askDropdown;\n this._isRendered = true;\n }\n\n public close() {\n this.containerRef = undefined;\n this.overlayRef.detach();\n this._isRendered = false;\n this.askDropdownOnClose.emit();\n }\n\n public get isRendered() {\n return this._isRendered;\n }\n\n}\n","import {Component, DestroyRef, HostListener, Input} from '@angular/core';\nimport {ModalRef} from \"../../services/modal\";\nimport {fromEvent} from \"rxjs\";\nimport {takeUntilDestroyed} from \"@angular/core/rxjs-interop\";\n\nexport interface ComponentType<T> {\n new (...args: any[]): T;\n}\n\n@Component({\n selector: 'ask-modal',\n templateUrl: './modal.component.html',\n styleUrls: ['./modal.component.scss']\n})\nexport class ModalComponent<T extends ComponentType<T>> {\n @Input() content!: T\n}\n","<div data-testid=\"ask-modal\" class=\"ask-modal\">\n <div class=\"body\">\n <ng-container *ngComponentOutlet=\"content\"></ng-container>\n </div>\n</div>\n","import {Directive, ElementRef} from '@angular/core';\n\n@Directive({\n selector: '[askModalBody]'\n})\nexport class ModalBodyDirective {\n\n constructor(el: ElementRef) {\n el.nativeElement.classList.add('ask-modal-body')\n }\n\n}\n","import {Directive, ElementRef} from '@angular/core';\n\n@Directive({\n selector: '[askModalFooter]'\n})\nexport class ModalFooterDirective {\n\n constructor(el: ElementRef) {\n el.nativeElement.classList.add('ask-modal-footer')\n }\n\n}\n","import {Directive, ElementRef} from '@angular/core';\n\n@Directive({\n selector: '[askModalHeader]'\n})\nexport class ModalHeaderDirective {\n\n constructor(el: ElementRef) {\n el.nativeElement.classList.add('ask-modal-header')\n }\n\n}\n","import {Component, HostBinding, Input} from '@angular/core';\n\n@Component({\n selector: 'ask-character-counter',\n templateUrl: './character-counter.component.html',\n styleUrls: ['./character-counter.component.scss']\n})\nexport class CharacterCounterComponent {\n protected _count: number = 0;\n\n @Input() public threshold = 100;\n\n @Input() public set count(num: number) {\n this._count = num;\n this.show = num <= this.threshold;\n this.limitReached = num <= 0;\n }\n\n @HostBinding('class.-show') show = false;\n @HostBinding('class.-limit') limitReached = false;\n}\n","{{ _count }}\n","import {Component, EventEmitter, HostBinding, Input, Output} from '@angular/core';\n\n@Component({\n selector: 'ask-extendable-panel',\n templateUrl: './extendable-panel.component.html',\n styleUrls: ['./extendable-panel.component.scss']\n})\nexport class ExtendablePanelComponent {\n isOpen = false\n id?: number\n\n @HostBinding('class.-highlight')\n @Input()\n highlight = false\n\n @Output() closed = new EventEmitter<void>()\n @Output() opened = new EventEmitter<void>()\n\n public open() {\n this.opened.emit()\n this.isOpen = true\n }\n\n public close() {\n this.closed.emit()\n this.isOpen = false\n }\n\n}\n","<div [class.-closed]=\"!isOpen\" [class.-open]=\"isOpen\" class=\"panel-container\">\n <div (click)=\"isOpen ? close() : open()\" class=\"header\" data-testid=\"extendable-panel-header\">\n <div class=\"header-title\">\n <ng-content select=\"[title]\"></ng-content>\n </div>\n <div class=\"header-description\">\n <ng-content select=\"[description]\"></ng-content>\n </div>\n <span\n class=\"header-action material-icons\">{{isOpen ? 'expand_less' : 'expand_more'}}</span>\n </div>\n <div *ngIf=\"isOpen\" [class.fade-in-bck]=\"isOpen\" class=\"content\">\n <ng-container>\n <ng-content select=\"[content]\"></ng-content>\n </ng-container>\n </div>\n</div>\n\n","import {Component, ContentChildren} from '@angular/core';\nimport {ExtendablePanelComponent} from \"./extendable-panel/extendable-panel.component\";\nimport {Subscription} from \"rxjs\";\n\n@Component({\n selector: 'ask-accordion',\n templateUrl: './accordion.component.html',\n styleUrls: ['./accordion.component.scss']\n})\nexport class AccordionComponent {\n private subscriptions: Subscription[] = []\n\n @ContentChildren(ExtendablePanelComponent) set panels(elements: ExtendablePanelComponent[]) {\n if (this.subscriptions.length) {\n this.subscriptions.forEach(sub => sub.unsubscribe())\n this.subscriptions = []\n }\n if (!elements) return;\n\n elements.forEach((element, index) => {\n element.id = index\n this.subscriptions.push(element.opened.subscribe(() => {\n elements.forEach(el => {\n if (el.id !== element.id) el.close()\n })\n }))\n })\n }\n\n}\n","<ng-content select=\"ask-extendable-panel\"></ng-content>\n","import { NgModule } from '@angular/core';\nimport { ButtonComponent } from './components/button/button.component';\nimport { CommonModule } from '@angular/common';\nimport { MatTooltipModule } from '@angular/material/tooltip';\nimport { InputComponent } from './components/input/input.component';\nimport { SelectComponent } from './components/select/select.component';\nimport { BoxComponent } from './components/box/box.component';\nimport { FormsModule, ReactiveFormsModule } from '@angular/forms';\nimport { AvatarComponent } from './components/avatar/avatar.component';\nimport { DropdownContainerComponent } from './components/dropdown-container/dropdown-container.component';\nimport { AutocompleteComponent } from './components/autocomplete/autocomplete.component';\nimport {\n CdkConnectedOverlay,\n CdkOverlayOrigin,\n OverlayModule,\n} from '@angular/cdk/overlay';\nimport { ChipsComponent } from './components/chips/chips.component';\nimport { CheckboxComponent } from './components/checkbox/checkbox.component';\nimport { DatePickerComponent } from './components/date-picker/date-picker.component';\nimport { DatePickerCalendarComponent } from './components/date-picker/date-picker-calendar/date-picker-calendar.component';\nimport { TranslateModule } from '@ngx-translate/core';\nimport { SkeletonComponent } from './components/skeleton/skeleton.component';\nimport { NgxSkeletonLoaderModule } from 'ngx-skeleton-loader';\nimport { ToastComponent } from './components/toast/toast.component';\nimport {SpinnerComponent} from \"./directives/spinner/spinner.component\";\nimport {\n AskButtonDirective,\n AskTooltipDirective,\n AutofocusDirective,\n BadgeDirective,\n ScrollDirective,\n SpinnerDirective,\n AskDropdownDirective\n} from \"./directives\";\nimport {ModalBodyDirective, ModalComponent, ModalFooterDirective, ModalHeaderDirective} from './components/modal';\nimport { CharacterCounterComponent } from './components/character-counter/character-counter.component';\nimport {AccordionComponent} from \"./components/accordion/accordion.component\";\nimport {ExtendablePanelComponent} from \"./components/accordion/extendable-panel/extendable-panel.component\";\n\n@NgModule({\n declarations: [\n ButtonComponent,\n InputComponent,\n SelectComponent,\n BoxComponent,\n AvatarComponent,\n DropdownContainerComponent,\n AskDropdownDirective,\n AutocompleteComponent,\n ChipsComponent,\n CheckboxComponent,\n DatePickerComponent,\n DatePickerCalendarComponent,\n SkeletonComponent,\n SpinnerComponent,\n SpinnerDirective,\n BadgeDirective,\n AutofocusDirective,\n ScrollDirective,\n AskTooltipDirective,\n ToastComponent,\n AskButtonDirective,\n ModalComponent,\n ModalBodyDirective,\n ModalHeaderDirective,\n ModalFooterDirective,\n CharacterCounterComponent,\n AccordionComponent,\n ExtendablePanelComponent\n ],\n imports: [\n CommonModule,\n FormsModule,\n ReactiveFormsModule,\n CdkOverlayOrigin,\n CdkConnectedOverlay,\n OverlayModule,\n TranslateModule.forChild(),\n NgxSkeletonLoaderModule,\n MatTooltipModule,\n ],\n exports: [\n ButtonComponent,\n InputComponent,\n SelectComponent,\n BoxComponent,\n AvatarComponent,\n DropdownContainerComponent,\n AskDropdownDirective,\n AutocompleteComponent,\n ChipsComponent,\n CheckboxComponent,\n DatePickerComponent,\n DatePickerCalendarComponent,\n SkeletonComponent,\n SpinnerDirective,\n BadgeDirective,\n AutofocusDirective,\n ScrollDirective,\n AskTooltipDirective,\n AskButtonDirective,\n ModalBodyDirective,\n ModalHeaderDirective,\n ModalFooterDirective,\n CharacterCounterComponent,\n AccordionComponent,\n ExtendablePanelComponent,\n ],\n})\nexport class AsksuiteCitrusModule {}\n","import {Injectable, Injector} from '@angular/core';\nimport {Overlay, PositionStrategy} from \"@angular/cdk/overlay\";\nimport {ComponentPortal} from \"@angular/cdk/portal\";\nimport {ToastComponent} from \"../../components/toast/toast.component\";\nimport {ASK_TOAST_CONFIG, ToastConfig, ToastData, ToastType} from \"./toast.config\";\nimport {ToastRef} from \"./toast-ref\";\n\n@Injectable({\n providedIn: 'root'\n})\nexport class ToastService {\n\n lastToast?: ToastRef;\n\n private readonly TOP_MARGIN = 72;\n private readonly GAP = 8;\n\n constructor(\n private overlay: Overlay,\n private injector: Injector\n ) { }\n\n success(message: string, config?: ToastConfig) {\n this.pop('success', message, config);\n }\n\n info(message: string, config?: ToastConfig) {\n this.pop('info', message, config);\n }\n\n danger(message: string, config?: ToastConfig) {\n this.pop('danger', message, config);\n }\n\n warning(message: string, config?: ToastConfig) {\n this.pop('warning', message, config);\n }\n\n pop(type: ToastType, message: string, config?: ToastConfig) {\n if (this.lastToast && !this.lastToast?.overlay.overlayElement) {\n this.lastToast = undefined;\n }\n\n const positionStrategy = this.getPositionStrategy();\n const overlayRef = this.overlay.create({\n positionStrategy,\n });\n const toastRef = new ToastRef(overlayRef);\n const injector = this.createInjector({ type, message, config }, toastRef);\n const toastPortal = new ComponentPortal(ToastComponent, null, injector);\n\n overlayRef.attach(toastPortal);\n this.lastToast = toastRef;\n }\n\n private createInjector(data: ToastData, toastRef: ToastRef): Injector {\n return Injector.create({\n parent: this.injector,\n providers: [\n { provide: ASK_TOAST_CONFIG, useValue: data },\n { provide: ToastRef, useValue: toastRef },\n ]\n });\n }\n\n private getPositionStrategy(): PositionStrategy {\n return this.overlay.position().global().top(this.getTopOffset()).centerHorizontally();\n }\n\n private getTopOffset(): string {\n const offset = this.lastToast ?\n this.lastToast.getPosition().bottom + this.GAP :\n this.TOP_MARGIN;\n\n return `${offset}px`;\n }\n}\n","import {Subject} from \"rxjs\";\nimport {OverlayRef} from \"@angular/cdk/overlay\";\nimport {ElementRef} from \"@angular/core\";\n\nexport class ModalRef {\n private closeSubject = new Subject<any | null>()\n public element?: HTMLElement\n\n constructor(private overlayRef: OverlayRef) {\n }\n\n close(data?: any) {\n this.closeSubject.next(data ?? null)\n this.overlayRef.dispose()\n }\n\n get afterClose() {\n return this.closeSubject.asObservable()\n }\n}\n","import {InjectionToken} from \"@angular/core\";\n\nexport type ModalConfig = {\n hasBackdrop: boolean\n onScroll: 'close' | 'keep'\n data: any\n}\n\nexport const ASK_MODAL_CONFIG = new InjectionToken<ModalConfig>('Default modal options')\nexport const ASK_MODAL_DATA = new InjectionToken<any>('Modal data')\n","import {Injectable, Injector} from '@angular/core';\nimport {Overlay, PositionStrategy} from \"@angular/cdk/overlay\";\nimport {ModalRef} from \"./modal-ref\";\nimport {ASK_MODAL_DATA, ModalConfig} from \"./modal.config\";\nimport {ComponentPortal} from \"@angular/cdk/portal\";\nimport {ComponentType, ModalComponent} from \"../../components/modal/modal.component\";\n\n@Injectable({\n providedIn: 'root'\n})\nexport class ModalService {\n\n // TODO: create a state of open modals\n\n constructor(private overlay: Overlay,\n private injector: Injector,\n ) { }\n\n open<T>(component: ComponentType<T>, config?: ModalConfig) {\n const overlayRef = this.getOverlay(config)\n const finalConfig = {\n data: config?.data ?? null\n }\n const modalRef = new ModalRef(overlayRef)\n const injector = this.createInjector({ ...finalConfig }, modalRef);\n const modalPortal = new ComponentPortal(ModalComponent, null, injector);\n const ref = overlayRef.attach(modalPortal);\n\n modalRef.element = ref.location.nativeElement\n // If necessary, this can be parametrized using ModalConfig interface\n overlayRef.backdropClick().subscribe(() => modalRef.close())\n\n ref.instance.content = component\n\n return modalRef\n }\n\n private createInjector(config: ModalConfig[\"data\"], modalRef: ModalRef): Injector {\n return Injector.create({\n parent: this.injector,\n providers: [\n { provide: ASK_MODAL_DATA, useValue: config.data },\n { provide: ModalRef, useValue: modalRef },\n ]\n });\n }\n\n private getPositionStrategy(): PositionStrategy {\n return this.overlay.position().global().centerVertically().centerHorizontally();\n }\n\n // Modal config can be used to parametrize the overlay creation params\n getOverlay(config?: ModalConfig) {\n const positionStrategy = this.getPositionStrategy();\n return this.overlay.create({\n positionStrategy,\n hasBackdrop: config?.hasBackdrop || true,\n backdropClass: 'cdk-overlay-dark-backdrop',\n disposeOnNavigation: true,\n scrollStrategy: this.overlay.scrollStrategies.block(),\n maxWidth: '80vw'\n });\n }\n\n}\n","/*\n * Public API Surface of asksuite-citrus\n */\n\nexport * from './lib/asksuite-citrus.module';\n\n// Components\nexport * from './lib/components/button/button.component'\nexport * from './lib/components/input/input.component'\nexport * from './lib/components/select/select.component'\nexport * from './lib/components/box/box.component'\nexport * from './lib/components/avatar/avatar.component'\nexport * from './lib/components/dropdown-container/dropdown-container.component'\nexport * from './lib/components/autocomplete/autocomplete.component'\nexport * from './lib/components/checkbox/checkbox.component'\nexport * from './lib/components/chips/chips.component'\nexport * from './lib/components/date-picker/date-picker.component'\nexport * from './lib/components/date-picker/date-picker-calendar/date-picker-calendar.component'\nexport * from './lib/components/skeleton/skeleton.component'\nexport * from './lib/components/character-counter/character-counter.component'\nexport * from './lib/components/accordion/accordion.component'\nexport * from './lib/components/accordion/extendable-panel/extendable-panel.component'\n\n// Directives\nexport * from './lib/directives'\nexport * from './lib/components/modal/directives'\n\n// Services\nexport * from './lib/services/toast/toast.service';\nexport * from './lib/services/modal';\n\n// Config\nexport * from './lib/services/toast/toast.config';\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["valueAccessor","i2","i1","i2.AskTooltipDirective","i4","i5.ChipsComponent","i6.CheckboxComponent","i7.AutofocusDirective","i8.ScrollDirective","i2.ButtonComponent","i3.DatePickerCalendarComponent","i1.ToastRef"],"mappings":"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"}
|