cps-ui-kit 0.2.0 → 0.4.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/README.md +6 -5
- package/esm2020/lib/components/cps-autocomplete/cps-autocomplete.component.mjs +509 -0
- package/esm2020/lib/components/cps-button/cps-button.component.mjs +3 -3
- package/esm2020/lib/components/cps-checkbox/cps-checkbox.component.mjs +3 -3
- package/esm2020/lib/components/cps-chip/cps-chip.component.mjs +3 -3
- package/esm2020/lib/components/cps-icon/cps-icon.component.mjs +3 -4
- package/esm2020/lib/components/cps-input/cps-input.component.mjs +7 -4
- package/esm2020/lib/components/cps-radio/cps-radio.component.mjs +3 -3
- package/esm2020/lib/components/cps-select/cps-select.component.mjs +106 -7
- package/esm2020/lib/components/cps-tag/cps-tag.component.mjs +3 -3
- package/esm2020/lib/directives/click-outside.directive.mjs +1 -1
- package/esm2020/lib/pipes/combine-labels.pipe.mjs +1 -1
- package/esm2020/lib/pipes/label-by-value.pipe.mjs +1 -1
- package/esm2020/public-api.mjs +3 -1
- package/fesm2015/cps-ui-kit.mjs +634 -23
- package/fesm2015/cps-ui-kit.mjs.map +1 -1
- package/fesm2020/cps-ui-kit.mjs +619 -23
- package/fesm2020/cps-ui-kit.mjs.map +1 -1
- package/lib/components/cps-autocomplete/cps-autocomplete.component.d.ts +81 -0
- package/lib/components/cps-input/cps-input.component.d.ts +2 -1
- package/lib/components/cps-select/cps-select.component.d.ts +15 -2
- package/package.json +6 -6
- package/public-api.d.ts +2 -0
- package/styles/_variables.scss +1 -1
- package/styles/styles.scss +2 -2
- package/assets/icons/absa-logo.svg +0 -12
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"cps-ui-kit.mjs","sources":["../../../projects/cps-ui-kit/src/lib/utils/colors-utils.ts","../../../projects/cps-ui-kit/src/lib/utils/size-utils.ts","../../../projects/cps-ui-kit/src/lib/components/cps-icon/cps-icon.component.ts","../../../projects/cps-ui-kit/src/lib/components/cps-icon/cps-icon.component.html","../../../projects/cps-ui-kit/src/lib/components/cps-input/cps-input.component.ts","../../../projects/cps-ui-kit/src/lib/components/cps-input/cps-input.component.html","../../../projects/cps-ui-kit/src/lib/components/cps-chip/cps-chip.component.ts","../../../projects/cps-ui-kit/src/lib/components/cps-chip/cps-chip.component.html","../../../projects/cps-ui-kit/src/lib/directives/click-outside.directive.ts","../../../projects/cps-ui-kit/src/lib/pipes/label-by-value.pipe.ts","../../../projects/cps-ui-kit/src/lib/pipes/combine-labels.pipe.ts","../../../projects/cps-ui-kit/src/lib/components/cps-select/cps-select.component.ts","../../../projects/cps-ui-kit/src/lib/components/cps-select/cps-select.component.html","../../../projects/cps-ui-kit/src/lib/components/cps-button/cps-button.component.ts","../../../projects/cps-ui-kit/src/lib/components/cps-button/cps-button.component.html","../../../projects/cps-ui-kit/src/lib/components/cps-checkbox/cps-checkbox.component.ts","../../../projects/cps-ui-kit/src/lib/components/cps-checkbox/cps-checkbox.component.html","../../../projects/cps-ui-kit/src/lib/components/cps-radio/cps-radio.component.ts","../../../projects/cps-ui-kit/src/lib/components/cps-radio/cps-radio.component.html","../../../projects/cps-ui-kit/src/lib/components/cps-tag/cps-tag.component.ts","../../../projects/cps-ui-kit/src/lib/components/cps-tag/cps-tag.component.html","../../../projects/cps-ui-kit/src/public-api.ts","../../../projects/cps-ui-kit/src/cps-ui-kit.ts"],"sourcesContent":["const isSameDomain = (styleSheet: any): boolean => {\n if (!styleSheet.href) {\n return true;\n }\n\n return styleSheet.href.indexOf(window.location.origin) === 0;\n};\n\nconst isStyleRule = (rule: any): boolean => rule.type === 1;\n\nconst isValidCSSColor = (val: string): boolean => {\n if (val === 'currentColor') return true;\n const element = document.createElement('div');\n element.style.backgroundColor = val;\n return element && element.style.backgroundColor !== '';\n};\n\nconst isDark = (color: string): boolean => {\n let r = 0;\n let g = 0;\n let b = 0;\n if (color.match(/^rgb/)) {\n const colorMatched = color.match(\n /^rgba?\\((\\d+),\\s*(\\d+),\\s*(\\d+)(?:,\\s*(\\d+(?:\\.\\d+)?))?\\)$/\n ) as any;\n r = colorMatched[1];\n g = colorMatched[2];\n b = colorMatched[3];\n } else {\n const colorNum = +(\n '0x' + color.slice(1).replace(color.length < 5 && (/./g as any), '$&$&')\n );\n\n r = colorNum >> 16;\n g = (colorNum >> 8) & 255;\n b = colorNum & 255;\n }\n\n const hsp = Math.sqrt(0.299 * (r * r) + 0.587 * (g * g) + 0.114 * (b * b));\n\n // Using the HSP value, determine whether the color is light or dark\n return hsp <= 127.5;\n};\n\nexport const getCpsColors = (): [string, string][] =>\n [...(document.styleSheets as any)].filter(isSameDomain).reduce(\n (finalArr, sheet) =>\n finalArr.concat(\n [...sheet.cssRules].filter(isStyleRule).reduce((propValArr, rule) => {\n const props = [...rule.style]\n .map((propName) => [\n propName.trim(),\n rule.style.getPropertyValue(propName).trim()\n ])\n .filter(([propName]) => propName.indexOf('--cps-color') === 0);\n\n return [...propValArr, ...props];\n }, [])\n ),\n []\n );\n\nexport const getCSSColor = (val: string): string => {\n return isValidCSSColor(val) ? val : `var(--cps-color-${val})`;\n};\n\nexport const getTextColor = (backgroundColor: string): string => {\n if (isDark(backgroundColor)) {\n return '#FFFFFF';\n } else {\n return '#000000';\n }\n};\n","export const convertSize = (size: number | string): string => {\n const res = String(size).trim();\n if (!res) {\n return '';\n }\n if (/^\\d+(\\.\\d+)?$/i.test(res)) {\n return res + 'px';\n }\n if (/^\\d+(\\.\\d+)?(px|rem|em|%)$/i.test(res)) {\n return res;\n }\n\n throw new Error(`Invalid size value: ${size}`);\n};\n\nexport const parseSize = (size: string): { value: number; unit: string } => {\n const match = size.match(/^(\\d+(?:\\.\\d+)?)(px|rem|em|%)$/);\n if (!match) throw new Error(`Invalid size value: ${size}`);\n const value = parseFloat(match[1]);\n const unit = match[2];\n return { value, unit };\n};\n","import { CommonModule } from '@angular/common';\nimport { Component, Input, OnChanges } from '@angular/core';\nimport { getCSSColor } from '../../utils/colors-utils';\nimport { convertSize } from '../../utils/size-utils';\n\nexport const iconNames = [\n 'absa-logo',\n 'access',\n 'access-denied',\n 'access-menu',\n 'access-unlock',\n 'add',\n 'add-domain',\n 'avatar',\n 'avatar-top-menu',\n 'bell',\n 'book',\n 'bookmark',\n 'browse',\n 'burger-arrow',\n 'caret-down',\n 'change',\n 'checked',\n 'chevron-down',\n 'chevron-down-2',\n 'circle',\n 'close-x',\n 'close-x-2',\n 'community',\n 'construction',\n 'controls',\n 'csv',\n 'cub',\n 'database',\n 'datepicker',\n 'delete',\n 'dislike',\n 'dots',\n 'download',\n 'dq',\n 'dropdown-menu',\n 'edit',\n 'expand',\n 'export',\n 'eye',\n 'filter',\n 'filter_2',\n 'follow',\n 'glossary',\n 'graph',\n 'grid',\n 'grid-view',\n 'health',\n 'heart',\n 'help-circle',\n 'home',\n 'insight',\n 'issues',\n 'jpeg',\n 'kris',\n 'last-seen-product',\n 'like',\n 'line-vertical',\n 'lock',\n 'logout',\n 'menu-expand',\n 'minus',\n 'multiple_users',\n 'open',\n 'path',\n 'pdf',\n 'plus',\n 'projects',\n 'question',\n 'questions',\n 'rectangle-rounded',\n 'refresh-browse',\n 'remove',\n 'right',\n 'schema_filter',\n 'search',\n 'settings',\n 'smart',\n 'star',\n 'stepper-completed',\n 'success',\n 'suggestion',\n 'survivorship',\n 'table-row-error',\n 'table-row-success',\n 'table-row-warning',\n 'toast-error',\n 'toast-info',\n 'toast-success',\n 'toast-warning',\n 'tools',\n 'user',\n 'users',\n 'vector',\n 'vector-down',\n 'vector-right',\n 'vector-up',\n 'wallet',\n 'warning',\n 'widget-button-icon',\n 'xls'\n];\n\nexport type IconType = (typeof iconNames)[number];\n\nexport type iconSizeType =\n | number\n | string\n | 'fill'\n | 'xsmall'\n | 'small'\n | 'normal'\n | 'large';\n\n@Component({\n standalone: true,\n imports: [CommonModule],\n selector: 'cps-icon',\n templateUrl: './cps-icon.component.html',\n styleUrls: ['./cps-icon.component.scss']\n})\nexport class CpsIconComponent implements OnChanges {\n @Input() icon: IconType = '';\n @Input() size: iconSizeType = 'small';\n\n @Input() color = 'currentColor';\n\n iconColor = 'currentColor';\n url = '../../../../assets/icons/';\n cvtSize = '';\n\n classesList: string[] = ['icon'];\n\n ngOnChanges (): void {\n this.iconColor = getCSSColor(this.color);\n this.setClasses();\n }\n\n setClasses (): void {\n switch (this.size) {\n case 'fill': {\n this.classesList.push('icon--fill');\n break;\n }\n case 'xsmall': {\n this.classesList.push('icon--xsmall');\n break;\n }\n case 'small': {\n this.classesList.push('icon--small');\n break;\n }\n case 'normal': {\n this.classesList.push('icon--normal');\n break;\n }\n case 'large': {\n this.classesList.push('icon--large');\n break;\n }\n default:\n this.cvtSize = convertSize(this.size);\n break;\n }\n }\n}\n","<i *ngIf=\"icon\" [ngClass]=\"classesList\" [style.color]=\"iconColor\" [ngStyle]=\"{width: cvtSize || 'none', height: cvtSize || 'none'}\">\n <svg>\n <use attr.xlink:href=\"{{ url }}{{ icon }}.svg#{{ icon }}\"></use>\n </svg>\n</i>\n","import { CommonModule } from '@angular/common';\nimport {\n AfterViewInit,\n ChangeDetectorRef,\n Component,\n ElementRef,\n EventEmitter,\n Input,\n OnDestroy,\n OnInit,\n Optional,\n Output,\n Self,\n ViewChild\n} from '@angular/core';\nimport { ControlValueAccessor, NgControl } from '@angular/forms';\nimport { CpsIconComponent, iconSizeType } from '../cps-icon/cps-icon.component';\nimport { Subscription } from 'rxjs';\nimport { convertSize } from '../../utils/size-utils';\n\n@Component({\n standalone: true,\n imports: [CommonModule, CpsIconComponent],\n selector: 'cps-input',\n templateUrl: './cps-input.component.html',\n styleUrls: ['./cps-input.component.scss']\n})\nexport class CpsInputComponent\nimplements ControlValueAccessor, OnInit, AfterViewInit, OnDestroy {\n @Input() label = '';\n @Input() placeholder = 'Please enter';\n @Input() hint = '';\n @Input() disabled = false;\n @Input() width: number | string = '100%';\n @Input() type: 'text' | 'number' | 'password' = 'text';\n @Input() loading = false;\n @Input() clearable = false;\n @Input() prefixIcon = '';\n @Input() prefixIconSize: iconSizeType = 'small';\n @Input() prefixText = '';\n @Input() hideDetails = false;\n @Input() set value (value: string) {\n this._value = value;\n this.onChange(value);\n }\n\n get value (): string {\n return this._value;\n }\n\n @Output() valueChanged = new EventEmitter<string>();\n\n @ViewChild('prefixTextSpan') prefixTextSpan: ElementRef | undefined;\n\n private _statusChangesSubscription: Subscription = new Subscription();\n\n private _value = '';\n\n error = '';\n currentType = '';\n prefixWidth = '';\n cvtWidth = '';\n\n constructor (\n @Self() @Optional() private _control: NgControl,\n private _elementRef: ElementRef<HTMLElement>,\n private cdRef: ChangeDetectorRef\n ) {\n if (this._control) {\n this._control.valueAccessor = this;\n }\n }\n\n ngOnInit (): void {\n this.currentType = this.type;\n this.cvtWidth = convertSize(this.width);\n\n this._statusChangesSubscription = this._control?.statusChanges?.subscribe(\n () => {\n this._checkErrors();\n }\n ) as Subscription;\n }\n\n ngAfterViewInit () {\n let w = 0;\n if (this.prefixText) {\n w = this.prefixTextSpan?.nativeElement?.offsetWidth + 22;\n }\n if (this.prefixIcon) {\n w += 38 - (this.prefixText ? 14 : 0);\n }\n this.prefixWidth = w > 0 ? `${w}px` : '';\n this.cdRef.detectChanges();\n }\n\n ngOnDestroy () {\n this._statusChangesSubscription?.unsubscribe();\n }\n\n private _checkErrors () {\n const errors = this._control?.errors;\n\n if (!this._control?.control?.touched || !errors) {\n this.error = '';\n return;\n }\n\n if ('required' in errors) {\n this.error = 'Field is required';\n return;\n }\n\n if ('minlength' in errors) {\n // eslint-disable-next-line dot-notation\n this.error = `Field must contain at least ${errors['minlength'].requiredLength} characters`;\n return;\n }\n\n const errArr = Object.values(errors);\n if (errArr.length < 1) {\n this.error = '';\n return;\n }\n const message = errArr.find((msg) => typeof msg === 'string');\n\n this.error = message || 'Unknown error';\n }\n\n // eslint-disable-next-line @typescript-eslint/no-empty-function\n onChange = (event: any) => {};\n // eslint-disable-next-line @typescript-eslint/no-empty-function\n onTouched = () => {};\n\n registerOnChange (fn: any) {\n this.onChange = fn;\n }\n\n registerOnTouched (fn: any) {\n this.onTouched = fn;\n }\n\n writeValue (value: string) {\n this.value = value;\n }\n\n updateValueEvent (event: any) {\n const value = event?.target?.value || '';\n this._updateValue(value);\n }\n\n private _updateValue (value: string) {\n this.writeValue(value);\n this.onChange(value);\n this.valueChanged.emit(value);\n }\n\n clear () {\n if (this.value !== '') this._updateValue('');\n }\n\n togglePassword () {\n this.currentType = this.currentType === 'password' ? 'text' : 'password';\n }\n\n // eslint-disable-next-line @typescript-eslint/no-empty-function\n setDisabledState (disabled: boolean) {}\n\n onBlur () {\n this._control?.control?.markAsTouched();\n this._checkErrors();\n }\n\n focus () {\n this._elementRef?.nativeElement?.querySelector('input')?.focus();\n }\n}\n","<div class=\"input-container\">\n <label class=\"label-text\" [ngClass]=\"{ 'label-text-disabled': disabled }\">{{\n label\n }}</label>\n\n <div\n class=\"input-wrap\"\n [ngClass]=\"{\n password: type === 'password',\n 'input-wrap-error': error,\n clearable: clearable,\n }\"\n >\n <input\n [type]=\"currentType\"\n [value]=\"value\"\n (input)=\"updateValueEvent($event)\"\n [placeholder]=\"placeholder\"\n [disabled]=\"disabled\"\n [ngStyle]=\"{\n width: cvtWidth,\n 'padding-left': prefixWidth || 'none'\n }\"\n (blur)=\"onBlur()\"\n />\n\n <div class=\"prefix\">\n <span *ngIf=\"prefixIcon\" class=\"prefix-icon\">\n <cps-icon [icon]=\"prefixIcon\" [size]=\"prefixIconSize\"></cps-icon>\n </span>\n\n <span *ngIf=\"prefixText\" class=\"prefix-text\" #prefixTextSpan>\n {{ prefixText }}\n </span>\n </div>\n\n <div class=\"action-btns\">\n <span *ngIf=\"clearable\" class=\"clear-btn\">\n <cps-icon icon=\"delete\" size=\"small\" (click)=\"clear()\"></cps-icon>\n </span>\n\n <span\n *ngIf=\"type === 'password'\"\n class=\"password-show-btn\"\n [ngClass]=\"{ 'password-show-btn-active': currentType === 'text' }\"\n >\n <cps-icon icon=\"eye\" size=\"18px\" (click)=\"togglePassword()\"></cps-icon>\n </span>\n </div>\n </div>\n\n <div *ngIf=\"loading\" class=\"progress-bar\" [ngStyle]=\"{ width: cvtWidth }\">\n <div class=\"progress-bar-line inc\"></div>\n <div class=\"progress-bar-line dec\"></div>\n </div>\n <div *ngIf=\"!error && !hideDetails\" class=\"hint-text\">{{ hint }}</div>\n <div *ngIf=\"error && !hideDetails\" class=\"error-text\">{{ error }}</div>\n</div>\n","import {\n Component,\n EventEmitter,\n Input,\n OnChanges,\n Output\n} from '@angular/core';\nimport { CpsIconComponent } from '../cps-icon/cps-icon.component';\nimport { CommonModule } from '@angular/common';\n\n@Component({\n standalone: true,\n imports: [CommonModule, CpsIconComponent],\n selector: 'cps-chip',\n templateUrl: './cps-chip.component.html',\n styleUrls: ['./cps-chip.component.scss']\n})\nexport class CpsChipComponent implements OnChanges {\n @Input() label = '';\n @Input() icon = '';\n @Input() iconPosition: 'before' | 'after' = 'before';\n @Input() closable = false;\n @Input() disabled = false;\n\n @Output() closed = new EventEmitter();\n\n classesList = ['chip'];\n\n ngOnChanges () {\n this.setClasses();\n }\n\n setClasses () {\n if (this.disabled) this.classesList.push('chip-disabled');\n\n if (this.icon && this.label) {\n switch (this.iconPosition) {\n case 'before': {\n this.classesList.push('chip--icon-before');\n break;\n }\n case 'after': {\n this.classesList.push('chip--icon-after');\n break;\n }\n }\n }\n }\n\n onCloseClick (event: any) {\n event.stopPropagation();\n this.closed.emit();\n }\n}\n","<div [ngClass]=\"classesList\">\n <cps-icon\n *ngIf=\"icon\"\n class=\"chip-icon\"\n [icon]=\"icon\"\n color=\"text-darkest\"\n ></cps-icon>\n <span class=\"chip-label\">{{ label }}</span>\n <cps-icon\n *ngIf=\"closable\"\n class=\"chip-close-icon\"\n icon=\"close-x\"\n size=\"xsmall\"\n color=\"text-darkest\"\n (click)=\"onCloseClick($event)\"\n ></cps-icon>\n</div>\n","import {\n Directive,\n Output,\n EventEmitter,\n ElementRef,\n HostListener\n} from '@angular/core';\n\n@Directive({\n standalone: true,\n selector: '[clickOutside]'\n})\nexport class ClickOutsideDirective {\n @Output() clickOutside = new EventEmitter<void>();\n\n // eslint-disable-next-line no-useless-constructor\n constructor (private elementRef: ElementRef) {}\n\n @HostListener('document:click', ['$event.target'])\n public onClick (target: any) {\n if (!this.elementRef?.nativeElement?.classList?.contains('focused')) return;\n const clickedInside = this.elementRef?.nativeElement?.contains(target);\n if (!clickedInside) {\n this.clickOutside.emit();\n }\n }\n}\n","import { Pipe, PipeTransform } from '@angular/core';\n\n@Pipe({ standalone: true, name: 'labelByValue' })\nexport class LabelByValuePipe implements PipeTransform {\n transform (\n value: string,\n options: any[],\n valueKey: string,\n labelKey: string\n ): string {\n const option = options.find((opt) => opt[valueKey] === value);\n return option ? option[labelKey] : 'unknown';\n }\n}\n","import { Pipe, PipeTransform } from '@angular/core';\n\n@Pipe({ standalone: true, name: 'combineLabels' })\nexport class CombineLabelsPipe implements PipeTransform {\n transform (\n values: any[],\n options: any[],\n valueKey: string,\n labelKey: string,\n returnObject: boolean\n ): string {\n return values\n .map((v) => {\n if (returnObject) {\n return v[labelKey];\n } else {\n const option = options.find((opt) => opt[valueKey] === v);\n return option ? option[labelKey] : 'unknown';\n }\n })\n .join(', ');\n }\n}\n","import { CommonModule } from '@angular/common';\nimport {\n Component,\n ElementRef,\n EventEmitter,\n Input,\n OnChanges,\n OnDestroy,\n OnInit,\n Optional,\n Output,\n Self,\n SimpleChanges,\n ViewChild\n} from '@angular/core';\nimport { ControlValueAccessor, FormsModule, NgControl } from '@angular/forms';\nimport { Subscription } from 'rxjs';\nimport { convertSize } from '../../utils/size-utils';\nimport { CpsIconComponent } from '../cps-icon/cps-icon.component';\nimport { CpsChipComponent } from '../cps-chip/cps-chip.component';\nimport { ClickOutsideDirective } from '../../directives/click-outside.directive';\nimport { LabelByValuePipe } from '../../pipes/label-by-value.pipe';\nimport { CombineLabelsPipe } from '../../pipes/combine-labels.pipe';\n\n@Component({\n standalone: true,\n imports: [\n CommonModule,\n FormsModule,\n ClickOutsideDirective,\n CpsIconComponent,\n CpsChipComponent,\n LabelByValuePipe,\n CombineLabelsPipe\n ],\n selector: 'cps-select',\n templateUrl: './cps-select.component.html',\n styleUrls: ['./cps-select.component.scss']\n})\nexport class CpsSelectComponent\nimplements ControlValueAccessor, OnInit, OnDestroy, OnChanges {\n @Input() label = '';\n @Input() placeholder = 'Please select';\n @Input() hint = '';\n @Input() returnObject = true;\n @Input() multiple = false;\n @Input() disabled = false;\n @Input() width: number | string = '100%';\n @Input() selectAll = true;\n @Input() chips = true;\n @Input() closableChips = true;\n @Input() clearable = false;\n @Input() openOnClear = true;\n @Input() options = [] as any[];\n @Input() optionLabel = 'label';\n @Input() optionValue = 'value'; // works only if returnObject === false (TODO potentially can be of any type)\n @Input() optionInfo = 'info';\n @Input() hideDetails = false;\n\n @Input('value') _value: any = undefined;\n\n set value (value: any) {\n value = this._convertValue(value);\n this._value = value;\n this.onChange(value);\n }\n\n get value (): any {\n return this._value;\n }\n\n @Output() valueChanged = new EventEmitter<any>();\n\n @ViewChild('selectContainer')\n selectContainer!: ElementRef;\n\n private _statusChangesSubscription: Subscription = new Subscription();\n\n error = '';\n cvtWidth = '';\n\n isOpened = false;\n\n constructor (@Self() @Optional() private _control: NgControl) {\n if (this._control) {\n this._control.valueAccessor = this;\n }\n }\n\n ngOnChanges (changes: SimpleChanges): void {\n // eslint-disable-next-line dot-notation\n if ('_value' in changes && changes['_value'].isFirstChange()) {\n this.value = this._convertValue(this.value);\n }\n }\n\n ngOnInit () {\n this.cvtWidth = convertSize(this.width);\n if (this.multiple && !this._value) {\n this._value = [];\n }\n\n this._statusChangesSubscription = this._control?.statusChanges?.subscribe(\n () => {\n this._checkErrors();\n }\n ) as Subscription;\n }\n\n ngOnDestroy () {\n this._statusChangesSubscription?.unsubscribe();\n }\n\n toggleOptions (dd: HTMLElement, show?: boolean): void {\n if (this.disabled || !dd) return;\n if (typeof show === 'boolean') {\n if (show) dd.classList.add('active');\n else dd.classList.remove('active');\n } else dd.classList.toggle('active');\n\n this.isOpened = dd.classList.contains('active');\n\n if (this.isOpened) {\n const selected =\n this.selectContainer.nativeElement.querySelector('.selected');\n if (selected) selected.scrollIntoView();\n }\n }\n\n // private _filterOptions() {\n // if (!this.optionsFilter || !this.multiple) return;\n // this.filteredOptions = this.options.filter((o) => {\n // if (this.returnObject) {\n // return !this.value.find((v: any) => v === o);\n // }\n // return !this.value.find((v: any) => v === o[this.optionValue]);\n // });\n // }\n\n select (option: any, byValue: boolean): void {\n const val = byValue\n ? option\n : this.returnObject\n ? option\n : option[this.optionValue];\n if (this.multiple) {\n let res = [] as any;\n if (this.value.includes(val)) {\n res = this.value.filter((v: any) => v !== val);\n } else {\n this.options.forEach((o) => {\n const ov = this.returnObject ? o : o[this.optionValue];\n if (this.value.some((v: any) => v === ov) || val === ov) {\n res.push(ov);\n }\n });\n }\n this.updateValue(res);\n } else {\n this.updateValue(val);\n }\n }\n\n onOptionClick (option: any, dd: HTMLElement) {\n this.select(option, false);\n if (!this.multiple) {\n this.toggleOptions(dd, false);\n }\n }\n\n toggleAll () {\n let res = [];\n if (this.value.length < this.options.length) {\n if (this.returnObject) {\n res = this.options;\n } else {\n this.options.forEach((o) => {\n res.push(o[this.optionValue]);\n });\n }\n }\n this.updateValue(res);\n }\n\n private _checkErrors (): void {\n const errors = this._control?.errors;\n\n if (!this._control?.control?.touched || !errors) {\n this.error = '';\n return;\n }\n\n if ('required' in errors) {\n this.error = 'Field is required';\n return;\n }\n\n const errArr = Object.values(errors);\n if (errArr.length < 1) {\n this.error = '';\n return;\n }\n const message = errArr.find((msg) => typeof msg === 'string');\n\n this.error = message || 'Unknown error';\n }\n\n // eslint-disable-next-line @typescript-eslint/no-empty-function\n onChange = (event: any) => {};\n // eslint-disable-next-line @typescript-eslint/no-empty-function\n onTouched = () => {};\n\n registerOnChange (fn: any) {\n this.onChange = fn;\n }\n\n registerOnTouched (fn: any) {\n this.onTouched = fn;\n }\n\n private _convertValue (value: any): any {\n if (!this.returnObject) {\n if (this.multiple) {\n if (Array.isArray(value)) {\n const temp: any = [];\n value.forEach((v) => {\n if (typeof v !== 'string') {\n temp.push(v ? v[this.optionValue] : '');\n } else temp.push(v);\n });\n value = temp;\n } else {\n if (!value) value = [];\n else {\n if (typeof value !== 'string') {\n value = [value[this.optionValue]];\n } else value = [value];\n }\n }\n } else {\n if (typeof value !== 'string') {\n value = value ? value[this.optionValue] : '';\n }\n }\n } else {\n if (this.multiple) {\n if (!Array.isArray(value)) {\n value = [value];\n }\n }\n }\n return value;\n }\n\n writeValue (value: any) {\n value = this._convertValue(value);\n this.value = value;\n }\n\n private updateValue (value: any): void {\n this.writeValue(value);\n this.onChange(value);\n this.valueChanged.emit(value);\n }\n\n clear (dd: HTMLElement, event: any): void {\n event.stopPropagation();\n\n if (\n (!this.multiple && this.value) ||\n (this.multiple && this.value?.length > 0)\n ) {\n if (this.openOnClear) {\n this.toggleOptions(dd, true);\n }\n const val = this.multiple ? [] : this.returnObject ? undefined : '';\n this.updateValue(val);\n }\n }\n\n // eslint-disable-next-line @typescript-eslint/no-empty-function\n setDisabledState (disabled: boolean) {}\n\n onBlur () {\n this._control?.control?.markAsTouched();\n this._checkErrors();\n }\n\n focus () {\n this.selectContainer?.nativeElement?.focus();\n this.toggleOptions(this.selectContainer?.nativeElement, true);\n }\n}\n","<div\n [ngStyle]=\"{ width: cvtWidth }\"\n class=\"cps-select\"\n tabindex=\"0\"\n [ngClass]=\"{ disabled: disabled, error: error }\"\n #selectContainer\n (keydown.escape)=\"toggleOptions(selectContainer, false)\"\n (blur)=\"onBlur()\"\n>\n <label *ngIf=\"label\" class=\"cps-select-label\">{{ label }}</label>\n <div\n [class.focused]=\"isOpened\"\n (clickOutside)=\"toggleOptions(selectContainer, false)\"\n >\n <div class=\"cps-select-box\" (click)=\"toggleOptions(selectContainer)\">\n <div\n class=\"cps-select-box-placeholder\"\n *ngIf=\"(!value && !multiple) || (value?.length < 1 && multiple)\"\n >\n {{ placeholder }}\n </div>\n <div\n class=\"cps-select-box-items\"\n *ngIf=\"(value && !multiple) || (value?.length > 0 && multiple)\"\n >\n <span *ngIf=\"!multiple\" class=\"single-item\">\n {{\n returnObject\n ? value[optionLabel]\n : (value | labelByValue : options : optionValue : optionLabel)\n }}</span\n >\n <div *ngIf=\"multiple && !chips\" class=\"text-group\">\n <span>\n {{\n value\n | combineLabels\n : options\n : optionValue\n : optionLabel\n : returnObject\n }}</span\n >\n </div>\n\n <div *ngIf=\"multiple && chips\" class=\"chips-group\">\n <cps-chip\n *ngFor=\"let val of value\"\n [disabled]=\"disabled\"\n [closable]=\"closableChips\"\n (closed)=\"select(val, true)\"\n [label]=\"\n returnObject\n ? val[optionLabel]\n : (val | labelByValue : options : optionValue : optionLabel)\n \"\n >\n </cps-chip>\n </div>\n </div>\n <span class=\"cps-select-box-icons\">\n <span *ngIf=\"clearable && !disabled\" class=\"cps-select-box-clear-icon\">\n <cps-icon\n icon=\"delete\"\n size=\"small\"\n (click)=\"clear(selectContainer, $event)\"\n ></cps-icon>\n </span>\n <span class=\"cps-select-box-chevron\">\n <cps-icon\n icon=\"chevron-down\"\n size=\"small\"\n color=\"text-dark\"\n ></cps-icon>\n </span>\n </span>\n </div>\n\n <div class=\"cps-select-options\">\n <div\n class=\"cps-select-options-option select-all-option\"\n [class.allselected]=\"value?.length === options.length\"\n *ngIf=\"multiple && selectAll\"\n (click)=\"toggleAll()\"\n >\n <span>\n <span *ngIf=\"multiple\" class=\"cps-select-options-option-check\">\n </span>\n <span class=\"cps-select-options-option-label\">Select all</span>\n </span>\n </div>\n <div\n class=\"cps-select-options-option\"\n *ngFor=\"let option of options\"\n (click)=\"onOptionClick(option, selectContainer)\"\n [class.selected]=\"\n multiple\n ? returnObject\n ? value?.includes(option)\n : value?.includes(option[optionValue])\n : returnObject\n ? option === value\n : option[optionValue] === value\n \"\n >\n <span>\n <span *ngIf=\"multiple\" class=\"cps-select-options-option-check\">\n </span>\n <span class=\"cps-select-options-option-label\">{{\n option[optionLabel]\n }}</span>\n </span>\n\n <span class=\"cps-select-options-option-info\">{{\n option[optionInfo]\n }}</span>\n </div>\n </div>\n </div>\n <div *ngIf=\"!error && !hideDetails\" class=\"cps-select-hint\">{{ hint }}</div>\n <div *ngIf=\"error && !hideDetails\" class=\"cps-select-error\">{{ error }}</div>\n</div>\n","import { CommonModule } from '@angular/common';\nimport {\n Component,\n EventEmitter,\n HostBinding,\n Input,\n OnInit,\n Output\n} from '@angular/core';\nimport { getCSSColor } from '../../utils/colors-utils';\nimport { CpsIconComponent } from '../cps-icon/cps-icon.component';\nimport { convertSize, parseSize } from '../../utils/size-utils';\n\n@Component({\n standalone: true,\n imports: [CommonModule, CpsIconComponent],\n selector: 'cps-button',\n templateUrl: './cps-button.component.html',\n styleUrls: ['./cps-button.component.scss']\n})\nexport class CpsButtonComponent implements OnInit {\n @Input() color = 'calm';\n @Input() contentColor = 'white'; // works only with solid type\n @Input() type: 'solid' | 'outlined' | 'borderless' = 'solid';\n @Input() label = '';\n @Input() icon = '';\n @Input() iconPosition: 'before' | 'after' = 'before';\n @Input() size: 'xsmall' | 'small' | 'normal' | 'large' = 'normal';\n @Input() width: number | string = 0;\n @Input() height: number | string = 0;\n @Input() disabled = false;\n @Input() loading = false;\n\n @Output() clicked = new EventEmitter();\n\n buttonColor = '';\n textColor = '';\n\n @HostBinding('style.width')\n cvtWidth = '';\n\n cvtHeight = '';\n cvtFontSize = '';\n cvtIconSize = '';\n\n classesList: string[] = [];\n\n ngOnInit (): void {\n this.buttonColor = getCSSColor(this.color);\n this.textColor =\n this.type === 'solid' ? getCSSColor(this.contentColor) : this.buttonColor;\n this.setClasses();\n }\n\n setClasses () {\n this.classesList = ['button'];\n\n if (this.width) {\n this.cvtWidth = convertSize(this.width);\n }\n\n if (this.height) {\n this.cvtHeight = convertSize(this.height);\n if (this.cvtHeight) {\n const parsedHeight = parseSize(this.cvtHeight);\n const unit = parsedHeight.unit;\n const size = parsedHeight.value * 0.4;\n const isPx = unit === 'px';\n\n this.cvtFontSize = `${isPx ? Math.floor(size) : size}${unit}`;\n this.cvtIconSize = `${isPx ? Math.ceil(size) : size}${unit}`;\n }\n } else {\n switch (this.size) {\n case 'normal': {\n this.classesList.push('button--normal');\n break;\n }\n case 'large': {\n this.classesList.push('button--large');\n break;\n }\n case 'small': {\n this.classesList.push('button--small');\n break;\n }\n case 'xsmall': {\n this.classesList.push('button--xsmall');\n break;\n }\n }\n }\n\n switch (this.type) {\n case 'solid': {\n this.classesList.push('button--solid');\n break;\n }\n case 'outlined': {\n this.classesList.push('button--outlined');\n break;\n }\n case 'borderless': {\n this.classesList.push('button--borderless');\n break;\n }\n }\n\n if (this.icon && this.label) {\n switch (this.iconPosition) {\n case 'before': {\n this.classesList.push('button--icon-before');\n break;\n }\n case 'after': {\n this.classesList.push('button--icon-after');\n break;\n }\n }\n }\n }\n\n onClick (event: Event) {\n this.clicked.emit(event);\n }\n}\n","<div>\n <button\n type=\"button\"\n [ngClass]=\"classesList\"\n [disabled]=\"disabled || loading\"\n [class.spinner]=\"loading\"\n (click)=\"onClick($event)\"\n [ngStyle]=\"{\n 'background-color': type==='solid' ? buttonColor : 'transparent',\n color: textColor,\n height: cvtHeight || 'none',\n }\"\n >\n <div class=\"button__content\">\n <cps-icon\n *ngIf=\"icon\"\n class=\"button__icon\"\n [icon]=\"icon\"\n [color]=\"disabled ? 'text-light' : textColor\"\n [size]=\"cvtIconSize\"\n >\n </cps-icon>\n <span\n class=\"button__text\"\n *ngIf=\"label\"\n [ngStyle]=\"{ 'font-size': cvtFontSize || null }\"\n >{{ label }}</span\n >\n </div>\n </button>\n</div>\n","import { CommonModule } from '@angular/common';\nimport {\n Component,\n ElementRef,\n EventEmitter,\n Input,\n Optional,\n Output,\n Self\n} from '@angular/core';\nimport { ControlValueAccessor, NgControl } from '@angular/forms';\n\n@Component({\n standalone: true,\n imports: [CommonModule],\n selector: 'cps-checkbox',\n templateUrl: './cps-checkbox.component.html',\n styleUrls: ['./cps-checkbox.component.scss']\n})\nexport class CpsCheckboxComponent implements ControlValueAccessor {\n @Input() label = '';\n @Input() disabled = false;\n @Input() set value (value: boolean) {\n this._value = value;\n this.onChange(value);\n }\n\n get value (): boolean {\n return this._value;\n }\n\n @Output() valueChanged = new EventEmitter<boolean>();\n\n private _value = false;\n\n constructor (\n @Self() @Optional() private _control: NgControl,\n private _elementRef: ElementRef<HTMLElement>\n ) {\n if (this._control) {\n this._control.valueAccessor = this;\n }\n }\n\n // eslint-disable-next-line @typescript-eslint/no-empty-function\n onChange = (event: any) => {};\n // eslint-disable-next-line @typescript-eslint/no-empty-function\n onTouched = () => {};\n\n registerOnChange (fn: any) {\n this.onChange = fn;\n }\n\n registerOnTouched (fn: any) {\n this.onTouched = fn;\n }\n\n writeValue (value: boolean) {\n this.value = value;\n }\n\n updateValueEvent (event: any) {\n event.preventDefault();\n if (this.disabled) return;\n this._updateValue(!this.value);\n }\n\n private _updateValue (value: boolean) {\n this.writeValue(value);\n this.onChange(value);\n this.valueChanged.emit(value);\n }\n\n // eslint-disable-next-line @typescript-eslint/no-empty-function\n setDisabledState (disabled: boolean) {}\n\n focus () {\n this._elementRef?.nativeElement?.querySelector('input')?.focus();\n }\n}\n","<div class=\"checkbox-container\">\n <label\n class=\"checkbox\"\n [ngStyle]=\"{ cursor: disabled ? 'default' : 'pointer' }\"\n >\n <span class=\"label\" [ngClass]=\"{ 'label-disabled': disabled }\">{{\n label\n }}</span>\n <input\n type=\"checkbox\"\n [disabled]=\"disabled\"\n [checked]=\"value\"\n (change)=\"updateValueEvent($event)\"\n />\n <span class=\"indicator\"></span>\n </label>\n</div>\n","import { CommonModule } from '@angular/common';\nimport {\n Component,\n EventEmitter,\n Input,\n Optional,\n Output,\n Self\n} from '@angular/core';\nimport { ControlValueAccessor, NgControl } from '@angular/forms';\n\nexport type RadioOption = {\n value: any;\n label: string;\n disabled?: boolean;\n};\n\n@Component({\n standalone: true,\n imports: [CommonModule],\n selector: 'cps-radio',\n templateUrl: './cps-radio.component.html',\n styleUrls: ['./cps-radio.component.scss']\n})\nexport class CpsRadioComponent implements ControlValueAccessor {\n @Input() options = [] as RadioOption[];\n @Input() groupLabel = '';\n @Input() vertical = false;\n @Input() disabled = false;\n @Input() set value (value: any) {\n this._value = value;\n this.onChange(value);\n }\n\n get value (): any {\n return this._value;\n }\n\n @Output() valueChanged = new EventEmitter<boolean>();\n\n private _value: any = undefined;\n\n constructor (@Self() @Optional() private _control: NgControl) {\n if (this._control) {\n this._control.valueAccessor = this;\n }\n }\n\n // eslint-disable-next-line @typescript-eslint/no-empty-function\n onChange = (event: any) => {};\n // eslint-disable-next-line @typescript-eslint/no-empty-function\n onTouched = () => {};\n\n registerOnChange (fn: any) {\n this.onChange = fn;\n }\n\n registerOnTouched (fn: any) {\n this.onTouched = fn;\n }\n\n writeValue (value: any) {\n this.value = value;\n }\n\n updateValueEvent (event: any) {\n event.preventDefault();\n if (this.disabled) return;\n const value = event?.target?.value || '';\n this._updateValue(value);\n }\n\n private _updateValue (value: any) {\n this.writeValue(value);\n this.onChange(value);\n this.valueChanged.emit(value);\n }\n\n // eslint-disable-next-line @typescript-eslint/no-empty-function\n setDisabledState (disabled: boolean) {}\n}\n","<div class=\"radio-group\">\n <div class=\"radio-group-label\" *ngIf=\"groupLabel\">\n <span>{{ groupLabel }}</span>\n </div>\n <div\n class=\"radio-group-content\"\n [ngClass]=\"\n vertical\n ? 'radio-group-content-vertical'\n : 'radio-group-content-horizontal'\n \"\n >\n <label\n *ngFor=\"let option of options\"\n class=\"radio-group-content-button\"\n [ngStyle]=\"{\n cursor: option.disabled || disabled ? 'default' : 'pointer'\n }\"\n >\n <input\n type=\"radio\"\n [disabled]=\"option.disabled || disabled\"\n [value]=\"option.value\"\n [checked]=\"value === option.value\"\n (change)=\"updateValueEvent($event)\"\n />\n <span class=\"radio-group-content-button-label\">{{ option.label }}</span>\n </label>\n </div>\n</div>\n","import { CommonModule } from '@angular/common';\nimport {\n Component,\n EventEmitter,\n Input,\n OnChanges,\n Optional,\n Output,\n Self\n} from '@angular/core';\nimport { getCSSColor } from '../../utils/colors-utils';\nimport { ControlValueAccessor, NgControl } from '@angular/forms';\n\n@Component({\n standalone: true,\n imports: [CommonModule],\n selector: 'cps-tag',\n templateUrl: './cps-tag.component.html',\n styleUrls: ['./cps-tag.component.scss']\n})\nexport class CpsTagComponent implements ControlValueAccessor, OnChanges {\n @Input() type: 'security' | 'classification' | 'custom' = 'custom'; // higher precedence over color\n @Input() label = '';\n @Input() color = '';\n @Input() disabled = false;\n @Input() selectable = false;\n @Input() set value (value: boolean) {\n this._value = value;\n this.onChange(value);\n }\n\n get value (): boolean {\n return this._value;\n }\n\n @Output() valueChanged = new EventEmitter<boolean>();\n\n classesList: string[] = [];\n tagColor = '';\n\n private _value = false;\n\n constructor (@Self() @Optional() private _control: NgControl) {\n if (this._control) {\n this._control.valueAccessor = this;\n }\n }\n\n ngOnChanges (): void {\n this.setClasses();\n }\n\n setClasses (): void {\n this.classesList = ['tag'];\n\n if (this.selectable) {\n this.classesList.push('tag--selectable');\n }\n if (this.disabled) {\n this.classesList.push('tag--disabled');\n }\n switch (this.type) {\n case 'security': {\n this.classesList.push('tag--security');\n break;\n }\n case 'classification': {\n this.classesList.push('tag--classification');\n break;\n }\n default:\n if (this.color) this.tagColor = getCSSColor(this.color);\n }\n }\n\n // eslint-disable-next-line @typescript-eslint/no-empty-function\n onChange = (event: any) => {};\n // eslint-disable-next-line @typescript-eslint/no-empty-function\n onTouched = () => {};\n\n registerOnChange (fn: any) {\n this.onChange = fn;\n }\n\n registerOnTouched (fn: any) {\n this.onTouched = fn;\n }\n\n writeValue (value: boolean) {\n this.value = value;\n }\n\n toggleSelected () {\n if (this.disabled || !this.selectable) return;\n this._updateValue(!this.value);\n }\n\n private _updateValue (value: boolean) {\n this.writeValue(value);\n this.onChange(value);\n this.valueChanged.emit(value);\n }\n}\n","<div\n [ngClass]=\"classesList\"\n [class.unselected]=\"!value && selectable\"\n [ngStyle]=\"{ 'border-color': tagColor || 'none' }\"\n (click)=\"toggleSelected()\"\n>\n <p>{{ label }}</p>\n</div>\n","/*\n * Public API Surface of cps-ui-kit\n */\n\nexport * from './lib/components/cps-icon/cps-icon.component';\nexport * from './lib/components/cps-input/cps-input.component';\nexport * from './lib/components/cps-select/cps-select.component';\nexport * from './lib/components/cps-button/cps-button.component';\nexport * from './lib/components/cps-checkbox/cps-checkbox.component';\nexport * from './lib/components/cps-radio/cps-radio.component';\nexport * from './lib/components/cps-tag/cps-tag.component';\nexport * from './lib/components/cps-chip/cps-chip.component';\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["i1"],"mappings":";;;;;;;;AAAA,MAAM,YAAY,GAAG,CAAC,UAAe,KAAa;AAChD,IAAA,IAAI,CAAC,UAAU,CAAC,IAAI,EAAE;AACpB,QAAA,OAAO,IAAI,CAAC;AACb,KAAA;AAED,IAAA,OAAO,UAAU,CAAC,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;AAC/D,CAAC,CAAC;AAEF,MAAM,WAAW,GAAG,CAAC,IAAS,KAAc,IAAI,CAAC,IAAI,KAAK,CAAC,CAAC;AAE5D,MAAM,eAAe,GAAG,CAAC,GAAW,KAAa;IAC/C,IAAI,GAAG,KAAK,cAAc;AAAE,QAAA,OAAO,IAAI,CAAC;IACxC,MAAM,OAAO,GAAG,QAAQ,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC;AAC9C,IAAA,OAAO,CAAC,KAAK,CAAC,eAAe,GAAG,GAAG,CAAC;IACpC,OAAO,OAAO,IAAI,OAAO,CAAC,KAAK,CAAC,eAAe,KAAK,EAAE,CAAC;AACzD,CAAC,CAAC;AAEF,MAAM,MAAM,GAAG,CAAC,KAAa,KAAa;IACxC,IAAI,CAAC,GAAG,CAAC,CAAC;IACV,IAAI,CAAC,GAAG,CAAC,CAAC;IACV,IAAI,CAAC,GAAG,CAAC,CAAC;AACV,IAAA,IAAI,KAAK,CAAC,KAAK,CAAC,MAAM,CAAC,EAAE;QACvB,MAAM,YAAY,GAAG,KAAK,CAAC,KAAK,CAC9B,4DAA4D,CACtD,CAAC;AACT,QAAA,CAAC,GAAG,YAAY,CAAC,CAAC,CAAC,CAAC;AACpB,QAAA,CAAC,GAAG,YAAY,CAAC,CAAC,CAAC,CAAC;AACpB,QAAA,CAAC,GAAG,YAAY,CAAC,CAAC,CAAC,CAAC;AACrB,KAAA;AAAM,SAAA;QACL,MAAM,QAAQ,GAAG,EACf,IAAI,GAAG,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,IAAK,IAAY,EAAE,MAAM,CAAC,CACzE,CAAC;AAEF,QAAA,CAAC,GAAG,QAAQ,IAAI,EAAE,CAAC;QACnB,CAAC,GAAG,CAAC,QAAQ,IAAI,CAAC,IAAI,GAAG,CAAC;AAC1B,QAAA,CAAC,GAAG,QAAQ,GAAG,GAAG,CAAC;AACpB,KAAA;AAED,IAAA,MAAM,GAAG,GAAG,IAAI,CAAC,IAAI,CAAC,KAAK,IAAI,CAAC,GAAG,CAAC,CAAC,GAAG,KAAK,IAAI,CAAC,GAAG,CAAC,CAAC,GAAG,KAAK,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;;IAG3E,OAAO,GAAG,IAAI,KAAK,CAAC;AACtB,CAAC,CAAC;AAEK,MAAM,YAAY,GAAG,MAC1B,CAAC,GAAI,QAAQ,CAAC,WAAmB,CAAC,CAAC,MAAM,CAAC,YAAY,CAAC,CAAC,MAAM,CAC5D,CAAC,QAAQ,EAAE,KAAK,KACd,QAAQ,CAAC,MAAM,CACb,CAAC,GAAG,KAAK,CAAC,QAAQ,CAAC,CAAC,MAAM,CAAC,WAAW,CAAC,CAAC,MAAM,CAAC,CAAC,UAAU,EAAE,IAAI,KAAI;AAClE,IAAA,MAAM,KAAK,GAAG,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC;AAC1B,SAAA,GAAG,CAAC,CAAC,QAAQ,KAAK;QACjB,QAAQ,CAAC,IAAI,EAAE;QACf,IAAI,CAAC,KAAK,CAAC,gBAAgB,CAAC,QAAQ,CAAC,CAAC,IAAI,EAAE;KAC7C,CAAC;AACD,SAAA,MAAM,CAAC,CAAC,CAAC,QAAQ,CAAC,KAAK,QAAQ,CAAC,OAAO,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC,CAAC;AAEjE,IAAA,OAAO,CAAC,GAAG,UAAU,EAAE,GAAG,KAAK,CAAC,CAAC;AACnC,CAAC,EAAE,EAAE,CAAC,CACP,EACH,EAAE,CACH,CAAC;AAEG,MAAM,WAAW,GAAG,CAAC,GAAW,KAAY;AACjD,IAAA,OAAO,eAAe,CAAC,GAAG,CAAC,GAAG,GAAG,GAAG,CAAmB,gBAAA,EAAA,GAAG,GAAG,CAAC;AAChE,CAAC,CAAC;AAEK,MAAM,YAAY,GAAG,CAAC,eAAuB,KAAY;AAC9D,IAAA,IAAI,MAAM,CAAC,eAAe,CAAC,EAAE;AAC3B,QAAA,OAAO,SAAS,CAAC;AAClB,KAAA;AAAM,SAAA;AACL,QAAA,OAAO,SAAS,CAAC;AAClB,KAAA;AACH,CAAC;;ACxEM,MAAM,WAAW,GAAG,CAAC,IAAqB,KAAY;IAC3D,MAAM,GAAG,GAAG,MAAM,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,CAAC;IAChC,IAAI,CAAC,GAAG,EAAE;AACR,QAAA,OAAO,EAAE,CAAC;AACX,KAAA;AACD,IAAA,IAAI,gBAAgB,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE;QAC9B,OAAO,GAAG,GAAG,IAAI,CAAC;AACnB,KAAA;AACD,IAAA,IAAI,6BAA6B,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE;AAC3C,QAAA,OAAO,GAAG,CAAC;AACZ,KAAA;AAED,IAAA,MAAM,IAAI,KAAK,CAAC,uBAAuB,IAAI,CAAA,CAAE,CAAC,CAAC;AACjD,CAAC,CAAC;AAEK,MAAM,SAAS,GAAG,CAAC,IAAY,KAAqC;IACzE,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,gCAAgC,CAAC,CAAC;AAC3D,IAAA,IAAI,CAAC,KAAK;AAAE,QAAA,MAAM,IAAI,KAAK,CAAC,uBAAuB,IAAI,CAAA,CAAE,CAAC,CAAC;IAC3D,MAAM,KAAK,GAAG,UAAU,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;AACnC,IAAA,MAAM,IAAI,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC;AACtB,IAAA,OAAO,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC;AACzB,CAAC;;AChBY,MAAA,SAAS,GAAG;IACvB,WAAW;IACX,QAAQ;IACR,eAAe;IACf,aAAa;IACb,eAAe;IACf,KAAK;IACL,YAAY;IACZ,QAAQ;IACR,iBAAiB;IACjB,MAAM;IACN,MAAM;IACN,UAAU;IACV,QAAQ;IACR,cAAc;IACd,YAAY;IACZ,QAAQ;IACR,SAAS;IACT,cAAc;IACd,gBAAgB;IAChB,QAAQ;IACR,SAAS;IACT,WAAW;IACX,WAAW;IACX,cAAc;IACd,UAAU;IACV,KAAK;IACL,KAAK;IACL,UAAU;IACV,YAAY;IACZ,QAAQ;IACR,SAAS;IACT,MAAM;IACN,UAAU;IACV,IAAI;IACJ,eAAe;IACf,MAAM;IACN,QAAQ;IACR,QAAQ;IACR,KAAK;IACL,QAAQ;IACR,UAAU;IACV,QAAQ;IACR,UAAU;IACV,OAAO;IACP,MAAM;IACN,WAAW;IACX,QAAQ;IACR,OAAO;IACP,aAAa;IACb,MAAM;IACN,SAAS;IACT,QAAQ;IACR,MAAM;IACN,MAAM;IACN,mBAAmB;IACnB,MAAM;IACN,eAAe;IACf,MAAM;IACN,QAAQ;IACR,aAAa;IACb,OAAO;IACP,gBAAgB;IAChB,MAAM;IACN,MAAM;IACN,KAAK;IACL,MAAM;IACN,UAAU;IACV,UAAU;IACV,WAAW;IACX,mBAAmB;IACnB,gBAAgB;IAChB,QAAQ;IACR,OAAO;IACP,eAAe;IACf,QAAQ;IACR,UAAU;IACV,OAAO;IACP,MAAM;IACN,mBAAmB;IACnB,SAAS;IACT,YAAY;IACZ,cAAc;IACd,iBAAiB;IACjB,mBAAmB;IACnB,mBAAmB;IACnB,aAAa;IACb,YAAY;IACZ,eAAe;IACf,eAAe;IACf,OAAO;IACP,MAAM;IACN,OAAO;IACP,QAAQ;IACR,aAAa;IACb,cAAc;IACd,WAAW;IACX,QAAQ;IACR,SAAS;IACT,oBAAoB;IACpB,KAAK;EACL;MAoBW,gBAAgB,CAAA;AAP7B,IAAA,WAAA,GAAA;AAQW,QAAA,IAAI,CAAA,IAAA,GAAa,EAAE,CAAC;AACpB,QAAA,IAAI,CAAA,IAAA,GAAiB,OAAO,CAAC;AAE7B,QAAA,IAAK,CAAA,KAAA,GAAG,cAAc,CAAC;AAEhC,QAAA,IAAS,CAAA,SAAA,GAAG,cAAc,CAAC;AAC3B,QAAA,IAAG,CAAA,GAAA,GAAG,2BAA2B,CAAC;AAClC,QAAA,IAAO,CAAA,OAAA,GAAG,EAAE,CAAC;AAEb,QAAA,IAAA,CAAA,WAAW,GAAa,CAAC,MAAM,CAAC,CAAC;KAkClC;IAhCC,WAAW,GAAA;QACT,IAAI,CAAC,SAAS,GAAG,WAAW,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QACzC,IAAI,CAAC,UAAU,EAAE,CAAC;KACnB;IAED,UAAU,GAAA;QACR,QAAQ,IAAI,CAAC,IAAI;YACf,KAAK,MAAM,EAAE;AACX,gBAAA,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;gBACpC,MAAM;AACP,aAAA;YACD,KAAK,QAAQ,EAAE;AACb,gBAAA,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC;gBACtC,MAAM;AACP,aAAA;YACD,KAAK,OAAO,EAAE;AACZ,gBAAA,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;gBACrC,MAAM;AACP,aAAA;YACD,KAAK,QAAQ,EAAE;AACb,gBAAA,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC;gBACtC,MAAM;AACP,aAAA;YACD,KAAK,OAAO,EAAE;AACZ,gBAAA,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;gBACrC,MAAM;AACP,aAAA;AACD,YAAA;gBACE,IAAI,CAAC,OAAO,GAAG,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;gBACtC,MAAM;AACT,SAAA;KACF;;6GA3CU,gBAAgB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;iGAAhB,gBAAgB,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,UAAA,EAAA,MAAA,EAAA,EAAA,IAAA,EAAA,MAAA,EAAA,IAAA,EAAA,MAAA,EAAA,KAAA,EAAA,OAAA,EAAA,EAAA,aAAA,EAAA,IAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,EC9H7B,iPAKA,EAAA,MAAA,EAAA,CAAA,4SAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EDoHY,YAAY,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,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,IAAA,EAAA,QAAA,EAAA,QAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,UAAA,EAAA,UAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,EAAA,CAAA,OAAA,EAAA,QAAA,EAAA,WAAA,EAAA,MAAA,EAAA,CAAA,SAAA,CAAA,EAAA,CAAA,EAAA,CAAA,CAAA;2FAKX,gBAAgB,EAAA,UAAA,EAAA,CAAA;kBAP5B,SAAS;YACI,IAAA,EAAA,CAAA,EAAA,UAAA,EAAA,IAAI,EACP,OAAA,EAAA,CAAC,YAAY,CAAC,YACb,UAAU,EAAA,QAAA,EAAA,iPAAA,EAAA,MAAA,EAAA,CAAA,4SAAA,CAAA,EAAA,CAAA;8BAKX,IAAI,EAAA,CAAA;sBAAZ,KAAK;gBACG,IAAI,EAAA,CAAA;sBAAZ,KAAK;gBAEG,KAAK,EAAA,CAAA;sBAAb,KAAK;;;MEvGK,iBAAiB,CAAA;IAc5B,IAAa,KAAK,CAAE,KAAa,EAAA;AAC/B,QAAA,IAAI,CAAC,MAAM,GAAG,KAAK,CAAC;AACpB,QAAA,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;KACtB;AAED,IAAA,IAAI,KAAK,GAAA;QACP,OAAO,IAAI,CAAC,MAAM,CAAC;KACpB;AAeD,IAAA,WAAA,CAC8B,QAAmB,EACvC,WAAoC,EACpC,KAAwB,EAAA;AAFJ,QAAA,IAAQ,CAAA,QAAA,GAAR,QAAQ,CAAW;AACvC,QAAA,IAAW,CAAA,WAAA,GAAX,WAAW,CAAyB;AACpC,QAAA,IAAK,CAAA,KAAA,GAAL,KAAK,CAAmB;AArCzB,QAAA,IAAK,CAAA,KAAA,GAAG,EAAE,CAAC;AACX,QAAA,IAAW,CAAA,WAAA,GAAG,cAAc,CAAC;AAC7B,QAAA,IAAI,CAAA,IAAA,GAAG,EAAE,CAAC;AACV,QAAA,IAAQ,CAAA,QAAA,GAAG,KAAK,CAAC;AACjB,QAAA,IAAK,CAAA,KAAA,GAAoB,MAAM,CAAC;AAChC,QAAA,IAAI,CAAA,IAAA,GAAmC,MAAM,CAAC;AAC9C,QAAA,IAAO,CAAA,OAAA,GAAG,KAAK,CAAC;AAChB,QAAA,IAAS,CAAA,SAAA,GAAG,KAAK,CAAC;AAClB,QAAA,IAAU,CAAA,UAAA,GAAG,EAAE,CAAC;AAChB,QAAA,IAAc,CAAA,cAAA,GAAiB,OAAO,CAAC;AACvC,QAAA,IAAU,CAAA,UAAA,GAAG,EAAE,CAAC;AAChB,QAAA,IAAW,CAAA,WAAA,GAAG,KAAK,CAAC;AAUnB,QAAA,IAAA,CAAA,YAAY,GAAG,IAAI,YAAY,EAAU,CAAC;AAI5C,QAAA,IAAA,CAAA,0BAA0B,GAAiB,IAAI,YAAY,EAAE,CAAC;AAE9D,QAAA,IAAM,CAAA,MAAA,GAAG,EAAE,CAAC;AAEpB,QAAA,IAAK,CAAA,KAAA,GAAG,EAAE,CAAC;AACX,QAAA,IAAW,CAAA,WAAA,GAAG,EAAE,CAAC;AACjB,QAAA,IAAW,CAAA,WAAA,GAAG,EAAE,CAAC;AACjB,QAAA,IAAQ,CAAA,QAAA,GAAG,EAAE,CAAC;;QAqEd,IAAA,CAAA,QAAQ,GAAG,CAAC,KAAU,KAAM,GAAC,CAAC;;AAE9B,QAAA,IAAA,CAAA,SAAS,GAAG,MAAK,GAAG,CAAC;QAhEnB,IAAI,IAAI,CAAC,QAAQ,EAAE;AACjB,YAAA,IAAI,CAAC,QAAQ,CAAC,aAAa,GAAG,IAAI,CAAC;AACpC,SAAA;KACF;IAED,QAAQ,GAAA;;AACN,QAAA,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,IAAI,CAAC;QAC7B,IAAI,CAAC,QAAQ,GAAG,WAAW,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;AAExC,QAAA,IAAI,CAAC,0BAA0B,GAAG,CAAA,EAAA,GAAA,MAAA,IAAI,CAAC,QAAQ,MAAA,IAAA,IAAA,EAAA,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAA,EAAA,CAAE,aAAa,MAAA,IAAA,IAAA,EAAA,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAA,EAAA,CAAE,SAAS,CACvE,MAAK;YACH,IAAI,CAAC,YAAY,EAAE,CAAC;AACtB,SAAC,CACc,CAAC;KACnB;IAED,eAAe,GAAA;;QACb,IAAI,CAAC,GAAG,CAAC,CAAC;QACV,IAAI,IAAI,CAAC,UAAU,EAAE;AACnB,YAAA,CAAC,GAAG,CAAA,CAAA,EAAA,GAAA,CAAA,EAAA,GAAA,IAAI,CAAC,cAAc,MAAA,IAAA,IAAA,EAAA,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAA,EAAA,CAAE,aAAa,MAAA,IAAA,IAAA,EAAA,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAA,EAAA,CAAE,WAAW,IAAG,EAAE,CAAC;AAC1D,SAAA;QACD,IAAI,IAAI,CAAC,UAAU,EAAE;AACnB,YAAA,CAAC,IAAI,EAAE,IAAI,IAAI,CAAC,UAAU,GAAG,EAAE,GAAG,CAAC,CAAC,CAAC;AACtC,SAAA;AACD,QAAA,IAAI,CAAC,WAAW,GAAG,CAAC,GAAG,CAAC,GAAG,CAAA,EAAG,CAAC,CAAI,EAAA,CAAA,GAAG,EAAE,CAAC;AACzC,QAAA,IAAI,CAAC,KAAK,CAAC,aAAa,EAAE,CAAC;KAC5B;IAED,WAAW,GAAA;;AACT,QAAA,CAAA,EAAA,GAAA,IAAI,CAAC,0BAA0B,MAAE,IAAA,IAAA,EAAA,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAA,EAAA,CAAA,WAAW,EAAE,CAAC;KAChD;IAEO,YAAY,GAAA;;QAClB,MAAM,MAAM,GAAG,CAAA,EAAA,GAAA,IAAI,CAAC,QAAQ,MAAA,IAAA,IAAA,EAAA,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAA,EAAA,CAAE,MAAM,CAAC;AAErC,QAAA,IAAI,EAAC,CAAA,EAAA,GAAA,CAAA,EAAA,GAAA,IAAI,CAAC,QAAQ,MAAE,IAAA,IAAA,EAAA,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAA,EAAA,CAAA,OAAO,0CAAE,OAAO,CAAA,IAAI,CAAC,MAAM,EAAE;AAC/C,YAAA,IAAI,CAAC,KAAK,GAAG,EAAE,CAAC;YAChB,OAAO;AACR,SAAA;QAED,IAAI,UAAU,IAAI,MAAM,EAAE;AACxB,YAAA,IAAI,CAAC,KAAK,GAAG,mBAAmB,CAAC;YACjC,OAAO;AACR,SAAA;QAED,IAAI,WAAW,IAAI,MAAM,EAAE;;YAEzB,IAAI,CAAC,KAAK,GAAG,CAA+B,4BAAA,EAAA,MAAM,CAAC,WAAW,CAAC,CAAC,cAAc,CAAA,WAAA,CAAa,CAAC;YAC5F,OAAO;AACR,SAAA;QAED,MAAM,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;AACrC,QAAA,IAAI,MAAM,CAAC,MAAM,GAAG,CAAC,EAAE;AACrB,YAAA,IAAI,CAAC,KAAK,GAAG,EAAE,CAAC;YAChB,OAAO;AACR,SAAA;AACD,QAAA,MAAM,OAAO,GAAG,MAAM,CAAC,IAAI,CAAC,CAAC,GAAG,KAAK,OAAO,GAAG,KAAK,QAAQ,CAAC,CAAC;AAE9D,QAAA,IAAI,CAAC,KAAK,GAAG,OAAO,IAAI,eAAe,CAAC;KACzC;AAOD,IAAA,gBAAgB,CAAE,EAAO,EAAA;AACvB,QAAA,IAAI,CAAC,QAAQ,GAAG,EAAE,CAAC;KACpB;AAED,IAAA,iBAAiB,CAAE,EAAO,EAAA;AACxB,QAAA,IAAI,CAAC,SAAS,GAAG,EAAE,CAAC;KACrB;AAED,IAAA,UAAU,CAAE,KAAa,EAAA;AACvB,QAAA,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;KACpB;AAED,IAAA,gBAAgB,CAAE,KAAU,EAAA;;AAC1B,QAAA,MAAM,KAAK,GAAG,CAAA,CAAA,EAAA,GAAA,KAAK,KAAL,IAAA,IAAA,KAAK,KAAL,KAAA,CAAA,GAAA,KAAA,CAAA,GAAA,KAAK,CAAE,MAAM,MAAA,IAAA,IAAA,EAAA,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAA,EAAA,CAAE,KAAK,KAAI,EAAE,CAAC;AACzC,QAAA,IAAI,CAAC,YAAY,CAAC,KAAK,CAAC,CAAC;KAC1B;AAEO,IAAA,YAAY,CAAE,KAAa,EAAA;AACjC,QAAA,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC;AACvB,QAAA,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;AACrB,QAAA,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;KAC/B;IAED,KAAK,GAAA;AACH,QAAA,IAAI,IAAI,CAAC,KAAK,KAAK,EAAE;AAAE,YAAA,IAAI,CAAC,YAAY,CAAC,EAAE,CAAC,CAAC;KAC9C;IAED,cAAc,GAAA;AACZ,QAAA,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,WAAW,KAAK,UAAU,GAAG,MAAM,GAAG,UAAU,CAAC;KAC1E;;IAGD,gBAAgB,CAAE,QAAiB,EAAA,GAAI;IAEvC,MAAM,GAAA;;QACJ,CAAA,EAAA,GAAA,CAAA,EAAA,GAAA,IAAI,CAAC,QAAQ,0CAAE,OAAO,MAAA,IAAA,IAAA,EAAA,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAA,EAAA,CAAE,aAAa,EAAE,CAAC;QACxC,IAAI,CAAC,YAAY,EAAE,CAAC;KACrB;IAED,KAAK,GAAA;;AACH,QAAA,CAAA,EAAA,GAAA,CAAA,EAAA,GAAA,CAAA,EAAA,GAAA,IAAI,CAAC,WAAW,MAAE,IAAA,IAAA,EAAA,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAA,EAAA,CAAA,aAAa,MAAE,IAAA,IAAA,EAAA,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAA,EAAA,CAAA,aAAa,CAAC,OAAO,CAAC,MAAE,IAAA,IAAA,EAAA,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAA,EAAA,CAAA,KAAK,EAAE,CAAC;KAClE;;8GApJU,iBAAiB,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAA,EAAA,CAAA,SAAA,EAAA,QAAA,EAAA,IAAA,EAAA,IAAA,EAAA,IAAA,EAAA,EAAA,EAAA,KAAA,EAAA,EAAA,CAAA,UAAA,EAAA,EAAA,EAAA,KAAA,EAAA,EAAA,CAAA,iBAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;AAAjB,iBAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,iBAAiB,EC3B9B,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,WAAA,EAAA,MAAA,EAAA,EAAA,KAAA,EAAA,OAAA,EAAA,WAAA,EAAA,aAAA,EAAA,IAAA,EAAA,MAAA,EAAA,QAAA,EAAA,UAAA,EAAA,KAAA,EAAA,OAAA,EAAA,IAAA,EAAA,MAAA,EAAA,OAAA,EAAA,SAAA,EAAA,SAAA,EAAA,WAAA,EAAA,UAAA,EAAA,YAAA,EAAA,cAAA,EAAA,gBAAA,EAAA,UAAA,EAAA,YAAA,EAAA,WAAA,EAAA,aAAA,EAAA,KAAA,EAAA,OAAA,EAAA,EAAA,OAAA,EAAA,EAAA,YAAA,EAAA,cAAA,EAAA,EAAA,WAAA,EAAA,CAAA,EAAA,YAAA,EAAA,gBAAA,EAAA,KAAA,EAAA,IAAA,EAAA,SAAA,EAAA,CAAA,gBAAA,CAAA,EAAA,WAAA,EAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,EAAA,6vDA0DA,EDpCY,MAAA,EAAA,CAAA,kkHAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EAAA,YAAY,sTAAE,gBAAgB,EAAA,QAAA,EAAA,UAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,MAAA,EAAA,OAAA,CAAA,EAAA,CAAA,EAAA,CAAA,CAAA;2FAK7B,iBAAiB,EAAA,UAAA,EAAA,CAAA;kBAP7B,SAAS;AACI,YAAA,IAAA,EAAA,CAAA,EAAA,UAAA,EAAA,IAAI,WACP,CAAC,YAAY,EAAE,gBAAgB,CAAC,YAC/B,WAAW,EAAA,QAAA,EAAA,6vDAAA,EAAA,MAAA,EAAA,CAAA,kkHAAA,CAAA,EAAA,CAAA;;;8BAyClB,IAAI;;8BAAI,QAAQ;;yBAnCV,KAAK,EAAA,CAAA;sBAAb,KAAK;gBACG,WAAW,EAAA,CAAA;sBAAnB,KAAK;gBACG,IAAI,EAAA,CAAA;sBAAZ,KAAK;gBACG,QAAQ,EAAA,CAAA;sBAAhB,KAAK;gBACG,KAAK,EAAA,CAAA;sBAAb,KAAK;gBACG,IAAI,EAAA,CAAA;sBAAZ,KAAK;gBACG,OAAO,EAAA,CAAA;sBAAf,KAAK;gBACG,SAAS,EAAA,CAAA;sBAAjB,KAAK;gBACG,UAAU,EAAA,CAAA;sBAAlB,KAAK;gBACG,cAAc,EAAA,CAAA;sBAAtB,KAAK;gBACG,UAAU,EAAA,CAAA;sBAAlB,KAAK;gBACG,WAAW,EAAA,CAAA;sBAAnB,KAAK;gBACO,KAAK,EAAA,CAAA;sBAAjB,KAAK;gBASI,YAAY,EAAA,CAAA;sBAArB,MAAM;gBAEsB,cAAc,EAAA,CAAA;sBAA1C,SAAS;uBAAC,gBAAgB,CAAA;;;MEnChB,gBAAgB,CAAA;AAP7B,IAAA,WAAA,GAAA;AAQW,QAAA,IAAK,CAAA,KAAA,GAAG,EAAE,CAAC;AACX,QAAA,IAAI,CAAA,IAAA,GAAG,EAAE,CAAC;AACV,QAAA,IAAY,CAAA,YAAA,GAAuB,QAAQ,CAAC;AAC5C,QAAA,IAAQ,CAAA,QAAA,GAAG,KAAK,CAAC;AACjB,QAAA,IAAQ,CAAA,QAAA,GAAG,KAAK,CAAC;AAEhB,QAAA,IAAA,CAAA,MAAM,GAAG,IAAI,YAAY,EAAE,CAAC;AAEtC,QAAA,IAAA,CAAA,WAAW,GAAG,CAAC,MAAM,CAAC,CAAC;KA2BxB;IAzBC,WAAW,GAAA;QACT,IAAI,CAAC,UAAU,EAAE,CAAC;KACnB;IAED,UAAU,GAAA;QACR,IAAI,IAAI,CAAC,QAAQ;AAAE,YAAA,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC;AAE1D,QAAA,IAAI,IAAI,CAAC,IAAI,IAAI,IAAI,CAAC,KAAK,EAAE;YAC3B,QAAQ,IAAI,CAAC,YAAY;gBACvB,KAAK,QAAQ,EAAE;AACb,oBAAA,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,mBAAmB,CAAC,CAAC;oBAC3C,MAAM;AACP,iBAAA;gBACD,KAAK,OAAO,EAAE;AACZ,oBAAA,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,kBAAkB,CAAC,CAAC;oBAC1C,MAAM;AACP,iBAAA;AACF,aAAA;AACF,SAAA;KACF;AAED,IAAA,YAAY,CAAE,KAAU,EAAA;QACtB,KAAK,CAAC,eAAe,EAAE,CAAC;AACxB,QAAA,IAAI,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC;KACpB;;6GAnCU,gBAAgB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;AAAhB,gBAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,gBAAgB,ECjB7B,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,UAAA,EAAA,MAAA,EAAA,EAAA,KAAA,EAAA,OAAA,EAAA,IAAA,EAAA,MAAA,EAAA,YAAA,EAAA,cAAA,EAAA,QAAA,EAAA,UAAA,EAAA,QAAA,EAAA,UAAA,EAAA,EAAA,OAAA,EAAA,EAAA,MAAA,EAAA,QAAA,EAAA,EAAA,aAAA,EAAA,IAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,EAAA,wZAiBA,EDLY,MAAA,EAAA,CAAA,k3BAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EAAA,YAAY,iOAAE,gBAAgB,EAAA,QAAA,EAAA,UAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,MAAA,EAAA,OAAA,CAAA,EAAA,CAAA,EAAA,CAAA,CAAA;2FAK7B,gBAAgB,EAAA,UAAA,EAAA,CAAA;kBAP5B,SAAS;AACI,YAAA,IAAA,EAAA,CAAA,EAAA,UAAA,EAAA,IAAI,WACP,CAAC,YAAY,EAAE,gBAAgB,CAAC,YAC/B,UAAU,EAAA,QAAA,EAAA,wZAAA,EAAA,MAAA,EAAA,CAAA,k3BAAA,CAAA,EAAA,CAAA;8BAKX,KAAK,EAAA,CAAA;sBAAb,KAAK;gBACG,IAAI,EAAA,CAAA;sBAAZ,KAAK;gBACG,YAAY,EAAA,CAAA;sBAApB,KAAK;gBACG,QAAQ,EAAA,CAAA;sBAAhB,KAAK;gBACG,QAAQ,EAAA,CAAA;sBAAhB,KAAK;gBAEI,MAAM,EAAA,CAAA;sBAAf,MAAM;;;MEZI,qBAAqB,CAAA;;AAIhC,IAAA,WAAA,CAAqB,UAAsB,EAAA;AAAtB,QAAA,IAAU,CAAA,UAAA,GAAV,UAAU,CAAY;AAHjC,QAAA,IAAA,CAAA,YAAY,GAAG,IAAI,YAAY,EAAQ,CAAC;KAGH;AAGxC,IAAA,OAAO,CAAE,MAAW,EAAA;;AACzB,QAAA,IAAI,EAAC,CAAA,EAAA,GAAA,CAAA,EAAA,GAAA,CAAA,EAAA,GAAA,IAAI,CAAC,UAAU,MAAE,IAAA,IAAA,EAAA,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAA,EAAA,CAAA,aAAa,0CAAE,SAAS,MAAA,IAAA,IAAA,EAAA,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAA,EAAA,CAAE,QAAQ,CAAC,SAAS,CAAC,CAAA;YAAE,OAAO;AAC5E,QAAA,MAAM,aAAa,GAAG,CAAA,EAAA,GAAA,CAAA,EAAA,GAAA,IAAI,CAAC,UAAU,MAAE,IAAA,IAAA,EAAA,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAA,EAAA,CAAA,aAAa,MAAE,IAAA,IAAA,EAAA,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAA,EAAA,CAAA,QAAQ,CAAC,MAAM,CAAC,CAAC;QACvE,IAAI,CAAC,aAAa,EAAE;AAClB,YAAA,IAAI,CAAC,YAAY,CAAC,IAAI,EAAE,CAAC;AAC1B,SAAA;KACF;;kHAbU,qBAAqB,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAA,EAAA,CAAA,UAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;sGAArB,qBAAqB,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,gBAAA,EAAA,OAAA,EAAA,EAAA,YAAA,EAAA,cAAA,EAAA,EAAA,IAAA,EAAA,EAAA,SAAA,EAAA,EAAA,gBAAA,EAAA,wBAAA,EAAA,EAAA,EAAA,QAAA,EAAA,EAAA,EAAA,CAAA,CAAA;2FAArB,qBAAqB,EAAA,UAAA,EAAA,CAAA;kBAJjC,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACT,oBAAA,UAAU,EAAE,IAAI;AAChB,oBAAA,QAAQ,EAAE,gBAAgB;iBAC3B,CAAA;iGAEW,YAAY,EAAA,CAAA;sBAArB,MAAM;gBAMA,OAAO,EAAA,CAAA;sBADb,YAAY;uBAAC,gBAAgB,EAAE,CAAC,eAAe,CAAC,CAAA;;;MCftC,gBAAgB,CAAA;AAC3B,IAAA,SAAS,CACP,KAAa,EACb,OAAc,EACd,QAAgB,EAChB,QAAgB,EAAA;AAEhB,QAAA,MAAM,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC,GAAG,KAAK,GAAG,CAAC,QAAQ,CAAC,KAAK,KAAK,CAAC,CAAC;AAC9D,QAAA,OAAO,MAAM,GAAG,MAAM,CAAC,QAAQ,CAAC,GAAG,SAAS,CAAC;KAC9C;;6GATU,gBAAgB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,IAAA,EAAA,CAAA,CAAA;2GAAhB,gBAAgB,EAAA,YAAA,EAAA,IAAA,EAAA,IAAA,EAAA,cAAA,EAAA,CAAA,CAAA;2FAAhB,gBAAgB,EAAA,UAAA,EAAA,CAAA;kBAD5B,IAAI;YAAC,IAAA,EAAA,CAAA,EAAE,UAAU,EAAE,IAAI,EAAE,IAAI,EAAE,cAAc,EAAE,CAAA;;;MCCnC,iBAAiB,CAAA;IAC5B,SAAS,CACP,MAAa,EACb,OAAc,EACd,QAAgB,EAChB,QAAgB,EAChB,YAAqB,EAAA;AAErB,QAAA,OAAO,MAAM;AACV,aAAA,GAAG,CAAC,CAAC,CAAC,KAAI;AACT,YAAA,IAAI,YAAY,EAAE;AAChB,gBAAA,OAAO,CAAC,CAAC,QAAQ,CAAC,CAAC;AACpB,aAAA;AAAM,iBAAA;AACL,gBAAA,MAAM,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC,GAAG,KAAK,GAAG,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC;AAC1D,gBAAA,OAAO,MAAM,GAAG,MAAM,CAAC,QAAQ,CAAC,GAAG,SAAS,CAAC;AAC9C,aAAA;AACH,SAAC,CAAC;aACD,IAAI,CAAC,IAAI,CAAC,CAAC;KACf;;8GAlBU,iBAAiB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,IAAA,EAAA,CAAA,CAAA;4GAAjB,iBAAiB,EAAA,YAAA,EAAA,IAAA,EAAA,IAAA,EAAA,eAAA,EAAA,CAAA,CAAA;2FAAjB,iBAAiB,EAAA,UAAA,EAAA,CAAA;kBAD7B,IAAI;YAAC,IAAA,EAAA,CAAA,EAAE,UAAU,EAAE,IAAI,EAAE,IAAI,EAAE,eAAe,EAAE,CAAA;;;MCqCpC,kBAAkB,CAAA;IAsB7B,IAAI,KAAK,CAAE,KAAU,EAAA;AACnB,QAAA,KAAK,GAAG,IAAI,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC;AAClC,QAAA,IAAI,CAAC,MAAM,GAAG,KAAK,CAAC;AACpB,QAAA,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;KACtB;AAED,IAAA,IAAI,KAAK,GAAA;QACP,OAAO,IAAI,CAAC,MAAM,CAAC;KACpB;AAcD,IAAA,WAAA,CAAyC,QAAmB,EAAA;AAAnB,QAAA,IAAQ,CAAA,QAAA,GAAR,QAAQ,CAAW;AA1CnD,QAAA,IAAK,CAAA,KAAA,GAAG,EAAE,CAAC;AACX,QAAA,IAAW,CAAA,WAAA,GAAG,eAAe,CAAC;AAC9B,QAAA,IAAI,CAAA,IAAA,GAAG,EAAE,CAAC;AACV,QAAA,IAAY,CAAA,YAAA,GAAG,IAAI,CAAC;AACpB,QAAA,IAAQ,CAAA,QAAA,GAAG,KAAK,CAAC;AACjB,QAAA,IAAQ,CAAA,QAAA,GAAG,KAAK,CAAC;AACjB,QAAA,IAAK,CAAA,KAAA,GAAoB,MAAM,CAAC;AAChC,QAAA,IAAS,CAAA,SAAA,GAAG,IAAI,CAAC;AACjB,QAAA,IAAK,CAAA,KAAA,GAAG,IAAI,CAAC;AACb,QAAA,IAAa,CAAA,aAAA,GAAG,IAAI,CAAC;AACrB,QAAA,IAAS,CAAA,SAAA,GAAG,KAAK,CAAC;AAClB,QAAA,IAAW,CAAA,WAAA,GAAG,IAAI,CAAC;AACnB,QAAA,IAAO,CAAA,OAAA,GAAG,EAAW,CAAC;AACtB,QAAA,IAAW,CAAA,WAAA,GAAG,OAAO,CAAC;AACtB,QAAA,IAAA,CAAA,WAAW,GAAG,OAAO,CAAC;AACtB,QAAA,IAAU,CAAA,UAAA,GAAG,MAAM,CAAC;AACpB,QAAA,IAAW,CAAA,WAAA,GAAG,KAAK,CAAC;AAEb,QAAA,IAAM,CAAA,MAAA,GAAQ,SAAS,CAAC;AAY9B,QAAA,IAAA,CAAA,YAAY,GAAG,IAAI,YAAY,EAAO,CAAC;AAKzC,QAAA,IAAA,CAAA,0BAA0B,GAAiB,IAAI,YAAY,EAAE,CAAC;AAEtE,QAAA,IAAK,CAAA,KAAA,GAAG,EAAE,CAAC;AACX,QAAA,IAAQ,CAAA,QAAA,GAAG,EAAE,CAAC;AAEd,QAAA,IAAQ,CAAA,QAAA,GAAG,KAAK,CAAC;;QA+HjB,IAAA,CAAA,QAAQ,GAAG,CAAC,KAAU,KAAM,GAAC,CAAC;;AAE9B,QAAA,IAAA,CAAA,SAAS,GAAG,MAAK,GAAG,CAAC;QA9HnB,IAAI,IAAI,CAAC,QAAQ,EAAE;AACjB,YAAA,IAAI,CAAC,QAAQ,CAAC,aAAa,GAAG,IAAI,CAAC;AACpC,SAAA;KACF;AAED,IAAA,WAAW,CAAE,OAAsB,EAAA;;QAEjC,IAAI,QAAQ,IAAI,OAAO,IAAI,OAAO,CAAC,QAAQ,CAAC,CAAC,aAAa,EAAE,EAAE;YAC5D,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;AAC7C,SAAA;KACF;IAED,QAAQ,GAAA;;QACN,IAAI,CAAC,QAAQ,GAAG,WAAW,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QACxC,IAAI,IAAI,CAAC,QAAQ,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE;AACjC,YAAA,IAAI,CAAC,MAAM,GAAG,EAAE,CAAC;AAClB,SAAA;AAED,QAAA,IAAI,CAAC,0BAA0B,GAAG,CAAA,EAAA,GAAA,MAAA,IAAI,CAAC,QAAQ,MAAA,IAAA,IAAA,EAAA,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAA,EAAA,CAAE,aAAa,MAAA,IAAA,IAAA,EAAA,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAA,EAAA,CAAE,SAAS,CACvE,MAAK;YACH,IAAI,CAAC,YAAY,EAAE,CAAC;AACtB,SAAC,CACc,CAAC;KACnB;IAED,WAAW,GAAA;;AACT,QAAA,CAAA,EAAA,GAAA,IAAI,CAAC,0BAA0B,MAAE,IAAA,IAAA,EAAA,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAA,EAAA,CAAA,WAAW,EAAE,CAAC;KAChD;IAED,aAAa,CAAE,EAAe,EAAE,IAAc,EAAA;AAC5C,QAAA,IAAI,IAAI,CAAC,QAAQ,IAAI,CAAC,EAAE;YAAE,OAAO;AACjC,QAAA,IAAI,OAAO,IAAI,KAAK,SAAS,EAAE;AAC7B,YAAA,IAAI,IAAI;AAAE,gBAAA,EAAE,CAAC,SAAS,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;;AAChC,gBAAA,EAAE,CAAC,SAAS,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;AACpC,SAAA;;AAAM,YAAA,EAAE,CAAC,SAAS,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;QAErC,IAAI,CAAC,QAAQ,GAAG,EAAE,CAAC,SAAS,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC;QAEhD,IAAI,IAAI,CAAC,QAAQ,EAAE;AACjB,YAAA,MAAM,QAAQ,GACZ,IAAI,CAAC,eAAe,CAAC,aAAa,CAAC,aAAa,CAAC,WAAW,CAAC,CAAC;AAChE,YAAA,IAAI,QAAQ;gBAAE,QAAQ,CAAC,cAAc,EAAE,CAAC;AACzC,SAAA;KACF;;;;;;;;;;IAYD,MAAM,CAAE,MAAW,EAAE,OAAgB,EAAA;QACnC,MAAM,GAAG,GAAG,OAAO;AACjB,cAAE,MAAM;cACN,IAAI,CAAC,YAAY;AACjB,kBAAE,MAAM;AACR,kBAAE,MAAM,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;QAC/B,IAAI,IAAI,CAAC,QAAQ,EAAE;YACjB,IAAI,GAAG,GAAG,EAAS,CAAC;YACpB,IAAI,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE;AAC5B,gBAAA,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAM,KAAK,CAAC,KAAK,GAAG,CAAC,CAAC;AAChD,aAAA;AAAM,iBAAA;gBACL,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,KAAI;AACzB,oBAAA,MAAM,EAAE,GAAG,IAAI,CAAC,YAAY,GAAG,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;AACvD,oBAAA,IAAI,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAM,KAAK,CAAC,KAAK,EAAE,CAAC,IAAI,GAAG,KAAK,EAAE,EAAE;AACvD,wBAAA,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;AACd,qBAAA;AACH,iBAAC,CAAC,CAAC;AACJ,aAAA;AACD,YAAA,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC;AACvB,SAAA;AAAM,aAAA;AACL,YAAA,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC;AACvB,SAAA;KACF;IAED,aAAa,CAAE,MAAW,EAAE,EAAe,EAAA;AACzC,QAAA,IAAI,CAAC,MAAM,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC;AAC3B,QAAA,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE;AAClB,YAAA,IAAI,CAAC,aAAa,CAAC,EAAE,EAAE,KAAK,CAAC,CAAC;AAC/B,SAAA;KACF;IAED,SAAS,GAAA;QACP,IAAI,GAAG,GAAG,EAAE,CAAC;QACb,IAAI,IAAI,CAAC,KAAK,CAAC,MAAM,GAAG,IAAI,CAAC,OAAO,CAAC,MAAM,EAAE;YAC3C,IAAI,IAAI,CAAC,YAAY,EAAE;AACrB,gBAAA,GAAG,GAAG,IAAI,CAAC,OAAO,CAAC;AACpB,aAAA;AAAM,iBAAA;gBACL,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,KAAI;oBACzB,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC;AAChC,iBAAC,CAAC,CAAC;AACJ,aAAA;AACF,SAAA;AACD,QAAA,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC;KACvB;IAEO,YAAY,GAAA;;QAClB,MAAM,MAAM,GAAG,CAAA,EAAA,GAAA,IAAI,CAAC,QAAQ,MAAA,IAAA,IAAA,EAAA,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAA,EAAA,CAAE,MAAM,CAAC;AAErC,QAAA,IAAI,EAAC,CAAA,EAAA,GAAA,CAAA,EAAA,GAAA,IAAI,CAAC,QAAQ,MAAE,IAAA,IAAA,EAAA,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAA,EAAA,CAAA,OAAO,0CAAE,OAAO,CAAA,IAAI,CAAC,MAAM,EAAE;AAC/C,YAAA,IAAI,CAAC,KAAK,GAAG,EAAE,CAAC;YAChB,OAAO;AACR,SAAA;QAED,IAAI,UAAU,IAAI,MAAM,EAAE;AACxB,YAAA,IAAI,CAAC,KAAK,GAAG,mBAAmB,CAAC;YACjC,OAAO;AACR,SAAA;QAED,MAAM,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;AACrC,QAAA,IAAI,MAAM,CAAC,MAAM,GAAG,CAAC,EAAE;AACrB,YAAA,IAAI,CAAC,KAAK,GAAG,EAAE,CAAC;YAChB,OAAO;AACR,SAAA;AACD,QAAA,MAAM,OAAO,GAAG,MAAM,CAAC,IAAI,CAAC,CAAC,GAAG,KAAK,OAAO,GAAG,KAAK,QAAQ,CAAC,CAAC;AAE9D,QAAA,IAAI,CAAC,KAAK,GAAG,OAAO,IAAI,eAAe,CAAC;KACzC;AAOD,IAAA,gBAAgB,CAAE,EAAO,EAAA;AACvB,QAAA,IAAI,CAAC,QAAQ,GAAG,EAAE,CAAC;KACpB;AAED,IAAA,iBAAiB,CAAE,EAAO,EAAA;AACxB,QAAA,IAAI,CAAC,SAAS,GAAG,EAAE,CAAC;KACrB;AAEO,IAAA,aAAa,CAAE,KAAU,EAAA;AAC/B,QAAA,IAAI,CAAC,IAAI,CAAC,YAAY,EAAE;YACtB,IAAI,IAAI,CAAC,QAAQ,EAAE;AACjB,gBAAA,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE;oBACxB,MAAM,IAAI,GAAQ,EAAE,CAAC;AACrB,oBAAA,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,KAAI;AAClB,wBAAA,IAAI,OAAO,CAAC,KAAK,QAAQ,EAAE;AACzB,4BAAA,IAAI,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,WAAW,CAAC,GAAG,EAAE,CAAC,CAAC;AACzC,yBAAA;;AAAM,4BAAA,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;AACtB,qBAAC,CAAC,CAAC;oBACH,KAAK,GAAG,IAAI,CAAC;AACd,iBAAA;AAAM,qBAAA;AACL,oBAAA,IAAI,CAAC,KAAK;wBAAE,KAAK,GAAG,EAAE,CAAC;AAClB,yBAAA;AACH,wBAAA,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE;4BAC7B,KAAK,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC;AACnC,yBAAA;;AAAM,4BAAA,KAAK,GAAG,CAAC,KAAK,CAAC,CAAC;AACxB,qBAAA;AACF,iBAAA;AACF,aAAA;AAAM,iBAAA;AACL,gBAAA,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE;AAC7B,oBAAA,KAAK,GAAG,KAAK,GAAG,KAAK,CAAC,IAAI,CAAC,WAAW,CAAC,GAAG,EAAE,CAAC;AAC9C,iBAAA;AACF,aAAA;AACF,SAAA;AAAM,aAAA;YACL,IAAI,IAAI,CAAC,QAAQ,EAAE;AACjB,gBAAA,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE;AACzB,oBAAA,KAAK,GAAG,CAAC,KAAK,CAAC,CAAC;AACjB,iBAAA;AACF,aAAA;AACF,SAAA;AACD,QAAA,OAAO,KAAK,CAAC;KACd;AAED,IAAA,UAAU,CAAE,KAAU,EAAA;AACpB,QAAA,KAAK,GAAG,IAAI,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC;AAClC,QAAA,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;KACpB;AAEO,IAAA,WAAW,CAAE,KAAU,EAAA;AAC7B,QAAA,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC;AACvB,QAAA,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;AACrB,QAAA,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;KAC/B;IAED,KAAK,CAAE,EAAe,EAAE,KAAU,EAAA;;QAChC,KAAK,CAAC,eAAe,EAAE,CAAC;QAExB,IACE,CAAC,CAAC,IAAI,CAAC,QAAQ,IAAI,IAAI,CAAC,KAAK;AAC7B,aAAC,IAAI,CAAC,QAAQ,IAAI,CAAA,CAAA,EAAA,GAAA,IAAI,CAAC,KAAK,MAAE,IAAA,IAAA,EAAA,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAA,EAAA,CAAA,MAAM,IAAG,CAAC,CAAC,EACzC;YACA,IAAI,IAAI,CAAC,WAAW,EAAE;AACpB,gBAAA,IAAI,CAAC,aAAa,CAAC,EAAE,EAAE,IAAI,CAAC,CAAC;AAC9B,aAAA;YACD,MAAM,GAAG,GAAG,IAAI,CAAC,QAAQ,GAAG,EAAE,GAAG,IAAI,CAAC,YAAY,GAAG,SAAS,GAAG,EAAE,CAAC;AACpE,YAAA,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC;AACvB,SAAA;KACF;;IAGD,gBAAgB,CAAE,QAAiB,EAAA,GAAI;IAEvC,MAAM,GAAA;;QACJ,CAAA,EAAA,GAAA,CAAA,EAAA,GAAA,IAAI,CAAC,QAAQ,0CAAE,OAAO,MAAA,IAAA,IAAA,EAAA,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAA,EAAA,CAAE,aAAa,EAAE,CAAC;QACxC,IAAI,CAAC,YAAY,EAAE,CAAC;KACrB;IAED,KAAK,GAAA;;QACH,CAAA,EAAA,GAAA,CAAA,EAAA,GAAA,IAAI,CAAC,eAAe,0CAAE,aAAa,MAAA,IAAA,IAAA,EAAA,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAA,EAAA,CAAE,KAAK,EAAE,CAAC;AAC7C,QAAA,IAAI,CAAC,aAAa,CAAC,CAAA,EAAA,GAAA,IAAI,CAAC,eAAe,MAAA,IAAA,IAAA,EAAA,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAA,EAAA,CAAE,aAAa,EAAE,IAAI,CAAC,CAAC;KAC/D;;+GA5PU,kBAAkB,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAA,EAAA,CAAA,SAAA,EAAA,QAAA,EAAA,IAAA,EAAA,IAAA,EAAA,IAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;AAAlB,kBAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,kBAAkB,ECvC/B,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,YAAA,EAAA,MAAA,EAAA,EAAA,KAAA,EAAA,OAAA,EAAA,WAAA,EAAA,aAAA,EAAA,IAAA,EAAA,MAAA,EAAA,YAAA,EAAA,cAAA,EAAA,QAAA,EAAA,UAAA,EAAA,QAAA,EAAA,UAAA,EAAA,KAAA,EAAA,OAAA,EAAA,SAAA,EAAA,WAAA,EAAA,KAAA,EAAA,OAAA,EAAA,aAAA,EAAA,eAAA,EAAA,SAAA,EAAA,WAAA,EAAA,WAAA,EAAA,aAAA,EAAA,OAAA,EAAA,SAAA,EAAA,WAAA,EAAA,aAAA,EAAA,WAAA,EAAA,aAAA,EAAA,UAAA,EAAA,YAAA,EAAA,WAAA,EAAA,aAAA,EAAA,MAAA,EAAA,CAAA,OAAA,EAAA,QAAA,CAAA,EAAA,EAAA,OAAA,EAAA,EAAA,YAAA,EAAA,cAAA,EAAA,EAAA,WAAA,EAAA,CAAA,EAAA,YAAA,EAAA,iBAAA,EAAA,KAAA,EAAA,IAAA,EAAA,SAAA,EAAA,CAAA,iBAAA,CAAA,EAAA,WAAA,EAAA,IAAA,EAAA,CAAA,EAAA,aAAA,EAAA,IAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,EAAA,w3HA0HA,ED/FI,MAAA,EAAA,CAAA,oxJAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EAAA,YAAY,kbACZ,WAAW,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EACX,qBAAqB,EAAA,QAAA,EAAA,gBAAA,EAAA,OAAA,EAAA,CAAA,cAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EACrB,gBAAgB,EAChB,QAAA,EAAA,UAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,MAAA,EAAA,OAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,gBAAgB,EAChB,QAAA,EAAA,UAAA,EAAA,MAAA,EAAA,CAAA,OAAA,EAAA,MAAA,EAAA,cAAA,EAAA,UAAA,EAAA,UAAA,CAAA,EAAA,OAAA,EAAA,CAAA,QAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,MAAA,EAAA,IAAA,EAAA,gBAAgB,gDAChB,iBAAiB,EAAA,IAAA,EAAA,eAAA,EAAA,CAAA,EAAA,CAAA,CAAA;2FAMR,kBAAkB,EAAA,UAAA,EAAA,CAAA;kBAf9B,SAAS;YACI,IAAA,EAAA,CAAA,EAAA,UAAA,EAAA,IAAI,EACP,OAAA,EAAA;wBACP,YAAY;wBACZ,WAAW;wBACX,qBAAqB;wBACrB,gBAAgB;wBAChB,gBAAgB;wBAChB,gBAAgB;wBAChB,iBAAiB;AAClB,qBAAA,EAAA,QAAA,EACS,YAAY,EAAA,QAAA,EAAA,w3HAAA,EAAA,MAAA,EAAA,CAAA,oxJAAA,CAAA,EAAA,CAAA;;;8BAgDR,IAAI;;8BAAI,QAAQ;;yBA1CrB,KAAK,EAAA,CAAA;sBAAb,KAAK;gBACG,WAAW,EAAA,CAAA;sBAAnB,KAAK;gBACG,IAAI,EAAA,CAAA;sBAAZ,KAAK;gBACG,YAAY,EAAA,CAAA;sBAApB,KAAK;gBACG,QAAQ,EAAA,CAAA;sBAAhB,KAAK;gBACG,QAAQ,EAAA,CAAA;sBAAhB,KAAK;gBACG,KAAK,EAAA,CAAA;sBAAb,KAAK;gBACG,SAAS,EAAA,CAAA;sBAAjB,KAAK;gBACG,KAAK,EAAA,CAAA;sBAAb,KAAK;gBACG,aAAa,EAAA,CAAA;sBAArB,KAAK;gBACG,SAAS,EAAA,CAAA;sBAAjB,KAAK;gBACG,WAAW,EAAA,CAAA;sBAAnB,KAAK;gBACG,OAAO,EAAA,CAAA;sBAAf,KAAK;gBACG,WAAW,EAAA,CAAA;sBAAnB,KAAK;gBACG,WAAW,EAAA,CAAA;sBAAnB,KAAK;gBACG,UAAU,EAAA,CAAA;sBAAlB,KAAK;gBACG,WAAW,EAAA,CAAA;sBAAnB,KAAK;gBAEU,MAAM,EAAA,CAAA;sBAArB,KAAK;uBAAC,OAAO,CAAA;gBAYJ,YAAY,EAAA,CAAA;sBAArB,MAAM;gBAGL,eAAe,EAAA,CAAA;sBADhB,SAAS;uBAAC,iBAAiB,CAAA;;;MErDjB,kBAAkB,CAAA;AAP/B,IAAA,WAAA,GAAA;AAQW,QAAA,IAAK,CAAA,KAAA,GAAG,MAAM,CAAC;AACf,QAAA,IAAA,CAAA,YAAY,GAAG,OAAO,CAAC;AACvB,QAAA,IAAI,CAAA,IAAA,GAAwC,OAAO,CAAC;AACpD,QAAA,IAAK,CAAA,KAAA,GAAG,EAAE,CAAC;AACX,QAAA,IAAI,CAAA,IAAA,GAAG,EAAE,CAAC;AACV,QAAA,IAAY,CAAA,YAAA,GAAuB,QAAQ,CAAC;AAC5C,QAAA,IAAI,CAAA,IAAA,GAA4C,QAAQ,CAAC;AACzD,QAAA,IAAK,CAAA,KAAA,GAAoB,CAAC,CAAC;AAC3B,QAAA,IAAM,CAAA,MAAA,GAAoB,CAAC,CAAC;AAC5B,QAAA,IAAQ,CAAA,QAAA,GAAG,KAAK,CAAC;AACjB,QAAA,IAAO,CAAA,OAAA,GAAG,KAAK,CAAC;AAEf,QAAA,IAAA,CAAA,OAAO,GAAG,IAAI,YAAY,EAAE,CAAC;AAEvC,QAAA,IAAW,CAAA,WAAA,GAAG,EAAE,CAAC;AACjB,QAAA,IAAS,CAAA,SAAA,GAAG,EAAE,CAAC;AAGb,QAAA,IAAQ,CAAA,QAAA,GAAG,EAAE,CAAC;AAEhB,QAAA,IAAS,CAAA,SAAA,GAAG,EAAE,CAAC;AACf,QAAA,IAAW,CAAA,WAAA,GAAG,EAAE,CAAC;AACjB,QAAA,IAAW,CAAA,WAAA,GAAG,EAAE,CAAC;AAEjB,QAAA,IAAW,CAAA,WAAA,GAAa,EAAE,CAAC;KAgF5B;IA9EC,QAAQ,GAAA;QACN,IAAI,CAAC,WAAW,GAAG,WAAW,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;AAC3C,QAAA,IAAI,CAAC,SAAS;AACZ,YAAA,IAAI,CAAC,IAAI,KAAK,OAAO,GAAG,WAAW,CAAC,IAAI,CAAC,YAAY,CAAC,GAAG,IAAI,CAAC,WAAW,CAAC;QAC5E,IAAI,CAAC,UAAU,EAAE,CAAC;KACnB;IAED,UAAU,GAAA;AACR,QAAA,IAAI,CAAC,WAAW,GAAG,CAAC,QAAQ,CAAC,CAAC;QAE9B,IAAI,IAAI,CAAC,KAAK,EAAE;YACd,IAAI,CAAC,QAAQ,GAAG,WAAW,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;AACzC,SAAA;QAED,IAAI,IAAI,CAAC,MAAM,EAAE;YACf,IAAI,CAAC,SAAS,GAAG,WAAW,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;YAC1C,IAAI,IAAI,CAAC,SAAS,EAAE;gBAClB,MAAM,YAAY,GAAG,SAAS,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;AAC/C,gBAAA,MAAM,IAAI,GAAG,YAAY,CAAC,IAAI,CAAC;AAC/B,gBAAA,MAAM,IAAI,GAAG,YAAY,CAAC,KAAK,GAAG,GAAG,CAAC;AACtC,gBAAA,MAAM,IAAI,GAAG,IAAI,KAAK,IAAI,CAAC;gBAE3B,IAAI,CAAC,WAAW,GAAG,CAAA,EAAG,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,IAAI,CAAA,EAAG,IAAI,CAAA,CAAE,CAAC;gBAC9D,IAAI,CAAC,WAAW,GAAG,CAAA,EAAG,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,IAAI,CAAA,EAAG,IAAI,CAAA,CAAE,CAAC;AAC9D,aAAA;AACF,SAAA;AAAM,aAAA;YACL,QAAQ,IAAI,CAAC,IAAI;gBACf,KAAK,QAAQ,EAAE;AACb,oBAAA,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAC;oBACxC,MAAM;AACP,iBAAA;gBACD,KAAK,OAAO,EAAE;AACZ,oBAAA,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC;oBACvC,MAAM;AACP,iBAAA;gBACD,KAAK,OAAO,EAAE;AACZ,oBAAA,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC;oBACvC,MAAM;AACP,iBAAA;gBACD,KAAK,QAAQ,EAAE;AACb,oBAAA,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAC;oBACxC,MAAM;AACP,iBAAA;AACF,aAAA;AACF,SAAA;QAED,QAAQ,IAAI,CAAC,IAAI;YACf,KAAK,OAAO,EAAE;AACZ,gBAAA,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC;gBACvC,MAAM;AACP,aAAA;YACD,KAAK,UAAU,EAAE;AACf,gBAAA,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,kBAAkB,CAAC,CAAC;gBAC1C,MAAM;AACP,aAAA;YACD,KAAK,YAAY,EAAE;AACjB,gBAAA,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,oBAAoB,CAAC,CAAC;gBAC5C,MAAM;AACP,aAAA;AACF,SAAA;AAED,QAAA,IAAI,IAAI,CAAC,IAAI,IAAI,IAAI,CAAC,KAAK,EAAE;YAC3B,QAAQ,IAAI,CAAC,YAAY;gBACvB,KAAK,QAAQ,EAAE;AACb,oBAAA,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,qBAAqB,CAAC,CAAC;oBAC7C,MAAM;AACP,iBAAA;gBACD,KAAK,OAAO,EAAE;AACZ,oBAAA,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,oBAAoB,CAAC,CAAC;oBAC5C,MAAM;AACP,iBAAA;AACF,aAAA;AACF,SAAA;KACF;AAED,IAAA,OAAO,CAAE,KAAY,EAAA;AACnB,QAAA,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;KAC1B;;+GAxGU,kBAAkB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;AAAlB,kBAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,kBAAkB,ECpB/B,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,YAAA,EAAA,MAAA,EAAA,EAAA,KAAA,EAAA,OAAA,EAAA,YAAA,EAAA,cAAA,EAAA,IAAA,EAAA,MAAA,EAAA,KAAA,EAAA,OAAA,EAAA,IAAA,EAAA,MAAA,EAAA,YAAA,EAAA,cAAA,EAAA,IAAA,EAAA,MAAA,EAAA,KAAA,EAAA,OAAA,EAAA,MAAA,EAAA,QAAA,EAAA,QAAA,EAAA,UAAA,EAAA,OAAA,EAAA,SAAA,EAAA,EAAA,OAAA,EAAA,EAAA,OAAA,EAAA,SAAA,EAAA,EAAA,IAAA,EAAA,EAAA,UAAA,EAAA,EAAA,aAAA,EAAA,eAAA,EAAA,EAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,EAAA,qxBA+BA,EDhBY,MAAA,EAAA,CAAA,iiFAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EAAA,YAAY,sTAAE,gBAAgB,EAAA,QAAA,EAAA,UAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,MAAA,EAAA,OAAA,CAAA,EAAA,CAAA,EAAA,CAAA,CAAA;2FAK7B,kBAAkB,EAAA,UAAA,EAAA,CAAA;kBAP9B,SAAS;AACI,YAAA,IAAA,EAAA,CAAA,EAAA,UAAA,EAAA,IAAI,WACP,CAAC,YAAY,EAAE,gBAAgB,CAAC,YAC/B,YAAY,EAAA,QAAA,EAAA,qxBAAA,EAAA,MAAA,EAAA,CAAA,iiFAAA,CAAA,EAAA,CAAA;8BAKb,KAAK,EAAA,CAAA;sBAAb,KAAK;gBACG,YAAY,EAAA,CAAA;sBAApB,KAAK;gBACG,IAAI,EAAA,CAAA;sBAAZ,KAAK;gBACG,KAAK,EAAA,CAAA;sBAAb,KAAK;gBACG,IAAI,EAAA,CAAA;sBAAZ,KAAK;gBACG,YAAY,EAAA,CAAA;sBAApB,KAAK;gBACG,IAAI,EAAA,CAAA;sBAAZ,KAAK;gBACG,KAAK,EAAA,CAAA;sBAAb,KAAK;gBACG,MAAM,EAAA,CAAA;sBAAd,KAAK;gBACG,QAAQ,EAAA,CAAA;sBAAhB,KAAK;gBACG,OAAO,EAAA,CAAA;sBAAf,KAAK;gBAEI,OAAO,EAAA,CAAA;sBAAhB,MAAM;gBAML,QAAQ,EAAA,CAAA;sBADT,WAAW;uBAAC,aAAa,CAAA;;;MEnBf,oBAAoB,CAAA;IAG/B,IAAa,KAAK,CAAE,KAAc,EAAA;AAChC,QAAA,IAAI,CAAC,MAAM,GAAG,KAAK,CAAC;AACpB,QAAA,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;KACtB;AAED,IAAA,IAAI,KAAK,GAAA;QACP,OAAO,IAAI,CAAC,MAAM,CAAC;KACpB;IAMD,WAC8B,CAAA,QAAmB,EACvC,WAAoC,EAAA;AADhB,QAAA,IAAQ,CAAA,QAAA,GAAR,QAAQ,CAAW;AACvC,QAAA,IAAW,CAAA,WAAA,GAAX,WAAW,CAAyB;AAjBrC,QAAA,IAAK,CAAA,KAAA,GAAG,EAAE,CAAC;AACX,QAAA,IAAQ,CAAA,QAAA,GAAG,KAAK,CAAC;AAUhB,QAAA,IAAA,CAAA,YAAY,GAAG,IAAI,YAAY,EAAW,CAAC;AAE7C,QAAA,IAAM,CAAA,MAAA,GAAG,KAAK,CAAC;;QAYvB,IAAA,CAAA,QAAQ,GAAG,CAAC,KAAU,KAAM,GAAC,CAAC;;AAE9B,QAAA,IAAA,CAAA,SAAS,GAAG,MAAK,GAAG,CAAC;QARnB,IAAI,IAAI,CAAC,QAAQ,EAAE;AACjB,YAAA,IAAI,CAAC,QAAQ,CAAC,aAAa,GAAG,IAAI,CAAC;AACpC,SAAA;KACF;AAOD,IAAA,gBAAgB,CAAE,EAAO,EAAA;AACvB,QAAA,IAAI,CAAC,QAAQ,GAAG,EAAE,CAAC;KACpB;AAED,IAAA,iBAAiB,CAAE,EAAO,EAAA;AACxB,QAAA,IAAI,CAAC,SAAS,GAAG,EAAE,CAAC;KACrB;AAED,IAAA,UAAU,CAAE,KAAc,EAAA;AACxB,QAAA,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;KACpB;AAED,IAAA,gBAAgB,CAAE,KAAU,EAAA;QAC1B,KAAK,CAAC,cAAc,EAAE,CAAC;QACvB,IAAI,IAAI,CAAC,QAAQ;YAAE,OAAO;QAC1B,IAAI,CAAC,YAAY,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;KAChC;AAEO,IAAA,YAAY,CAAE,KAAc,EAAA;AAClC,QAAA,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC;AACvB,QAAA,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;AACrB,QAAA,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;KAC/B;;IAGD,gBAAgB,CAAE,QAAiB,EAAA,GAAI;IAEvC,KAAK,GAAA;;AACH,QAAA,CAAA,EAAA,GAAA,CAAA,EAAA,GAAA,CAAA,EAAA,GAAA,IAAI,CAAC,WAAW,MAAE,IAAA,IAAA,EAAA,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAA,EAAA,CAAA,aAAa,MAAE,IAAA,IAAA,EAAA,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAA,EAAA,CAAA,aAAa,CAAC,OAAO,CAAC,MAAE,IAAA,IAAA,EAAA,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAA,EAAA,CAAA,KAAK,EAAE,CAAC;KAClE;;iHA3DU,oBAAoB,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAA,EAAA,CAAA,SAAA,EAAA,QAAA,EAAA,IAAA,EAAA,IAAA,EAAA,IAAA,EAAA,EAAA,EAAA,KAAA,EAAA,EAAA,CAAA,UAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;qGAApB,oBAAoB,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,cAAA,EAAA,MAAA,EAAA,EAAA,KAAA,EAAA,OAAA,EAAA,QAAA,EAAA,UAAA,EAAA,KAAA,EAAA,OAAA,EAAA,EAAA,OAAA,EAAA,EAAA,YAAA,EAAA,cAAA,EAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,ECnBjC,mcAiBA,EAAA,MAAA,EAAA,CAAA,ytEAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EDHY,YAAY,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,OAAA,EAAA,QAAA,EAAA,WAAA,EAAA,MAAA,EAAA,CAAA,OAAA,EAAA,SAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,OAAA,EAAA,QAAA,EAAA,WAAA,EAAA,MAAA,EAAA,CAAA,SAAA,CAAA,EAAA,CAAA,EAAA,CAAA,CAAA;2FAKX,oBAAoB,EAAA,UAAA,EAAA,CAAA;kBAPhC,SAAS;YACI,IAAA,EAAA,CAAA,EAAA,UAAA,EAAA,IAAI,EACP,OAAA,EAAA,CAAC,YAAY,CAAC,YACb,cAAc,EAAA,QAAA,EAAA,mcAAA,EAAA,MAAA,EAAA,CAAA,ytEAAA,CAAA,EAAA,CAAA;;;8BAqBrB,IAAI;;8BAAI,QAAQ;;yBAhBV,KAAK,EAAA,CAAA;sBAAb,KAAK;gBACG,QAAQ,EAAA,CAAA;sBAAhB,KAAK;gBACO,KAAK,EAAA,CAAA;sBAAjB,KAAK;gBASI,YAAY,EAAA,CAAA;sBAArB,MAAM;;;MEPI,iBAAiB,CAAA;IAK5B,IAAa,KAAK,CAAE,KAAU,EAAA;AAC5B,QAAA,IAAI,CAAC,MAAM,GAAG,KAAK,CAAC;AACpB,QAAA,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;KACtB;AAED,IAAA,IAAI,KAAK,GAAA;QACP,OAAO,IAAI,CAAC,MAAM,CAAC;KACpB;AAMD,IAAA,WAAA,CAAyC,QAAmB,EAAA;AAAnB,QAAA,IAAQ,CAAA,QAAA,GAAR,QAAQ,CAAW;AAjBnD,QAAA,IAAO,CAAA,OAAA,GAAG,EAAmB,CAAC;AAC9B,QAAA,IAAU,CAAA,UAAA,GAAG,EAAE,CAAC;AAChB,QAAA,IAAQ,CAAA,QAAA,GAAG,KAAK,CAAC;AACjB,QAAA,IAAQ,CAAA,QAAA,GAAG,KAAK,CAAC;AAUhB,QAAA,IAAA,CAAA,YAAY,GAAG,IAAI,YAAY,EAAW,CAAC;AAE7C,QAAA,IAAM,CAAA,MAAA,GAAQ,SAAS,CAAC;;QAShC,IAAA,CAAA,QAAQ,GAAG,CAAC,KAAU,KAAM,GAAC,CAAC;;AAE9B,QAAA,IAAA,CAAA,SAAS,GAAG,MAAK,GAAG,CAAC;QARnB,IAAI,IAAI,CAAC,QAAQ,EAAE;AACjB,YAAA,IAAI,CAAC,QAAQ,CAAC,aAAa,GAAG,IAAI,CAAC;AACpC,SAAA;KACF;AAOD,IAAA,gBAAgB,CAAE,EAAO,EAAA;AACvB,QAAA,IAAI,CAAC,QAAQ,GAAG,EAAE,CAAC;KACpB;AAED,IAAA,iBAAiB,CAAE,EAAO,EAAA;AACxB,QAAA,IAAI,CAAC,SAAS,GAAG,EAAE,CAAC;KACrB;AAED,IAAA,UAAU,CAAE,KAAU,EAAA;AACpB,QAAA,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;KACpB;AAED,IAAA,gBAAgB,CAAE,KAAU,EAAA;;QAC1B,KAAK,CAAC,cAAc,EAAE,CAAC;QACvB,IAAI,IAAI,CAAC,QAAQ;YAAE,OAAO;AAC1B,QAAA,MAAM,KAAK,GAAG,CAAA,CAAA,EAAA,GAAA,KAAK,KAAL,IAAA,IAAA,KAAK,KAAL,KAAA,CAAA,GAAA,KAAA,CAAA,GAAA,KAAK,CAAE,MAAM,MAAA,IAAA,IAAA,EAAA,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAA,EAAA,CAAE,KAAK,KAAI,EAAE,CAAC;AACzC,QAAA,IAAI,CAAC,YAAY,CAAC,KAAK,CAAC,CAAC;KAC1B;AAEO,IAAA,YAAY,CAAE,KAAU,EAAA;AAC9B,QAAA,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC;AACvB,QAAA,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;AACrB,QAAA,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;KAC/B;;IAGD,gBAAgB,CAAE,QAAiB,EAAA,GAAI;;8GAvD5B,iBAAiB,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAA,EAAA,CAAA,SAAA,EAAA,QAAA,EAAA,IAAA,EAAA,IAAA,EAAA,IAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;kGAAjB,iBAAiB,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,WAAA,EAAA,MAAA,EAAA,EAAA,OAAA,EAAA,SAAA,EAAA,UAAA,EAAA,YAAA,EAAA,QAAA,EAAA,UAAA,EAAA,QAAA,EAAA,UAAA,EAAA,KAAA,EAAA,OAAA,EAAA,EAAA,OAAA,EAAA,EAAA,YAAA,EAAA,cAAA,EAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,ECxB9B,u1BA8BA,EAAA,MAAA,EAAA,CAAA,orDAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EDXY,YAAY,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,OAAA,EAAA,QAAA,EAAA,WAAA,EAAA,MAAA,EAAA,CAAA,OAAA,EAAA,SAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,OAAA,EAAA,QAAA,EAAA,kBAAA,EAAA,MAAA,EAAA,CAAA,SAAA,EAAA,cAAA,EAAA,eAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,IAAA,EAAA,QAAA,EAAA,QAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,UAAA,EAAA,UAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,OAAA,EAAA,QAAA,EAAA,WAAA,EAAA,MAAA,EAAA,CAAA,SAAA,CAAA,EAAA,CAAA,EAAA,CAAA,CAAA;2FAKX,iBAAiB,EAAA,UAAA,EAAA,CAAA;kBAP7B,SAAS;YACI,IAAA,EAAA,CAAA,EAAA,UAAA,EAAA,IAAI,EACP,OAAA,EAAA,CAAC,YAAY,CAAC,YACb,WAAW,EAAA,QAAA,EAAA,u1BAAA,EAAA,MAAA,EAAA,CAAA,orDAAA,CAAA,EAAA,CAAA;;;8BAsBP,IAAI;;8BAAI,QAAQ;;yBAjBrB,OAAO,EAAA,CAAA;sBAAf,KAAK;gBACG,UAAU,EAAA,CAAA;sBAAlB,KAAK;gBACG,QAAQ,EAAA,CAAA;sBAAhB,KAAK;gBACG,QAAQ,EAAA,CAAA;sBAAhB,KAAK;gBACO,KAAK,EAAA,CAAA;sBAAjB,KAAK;gBASI,YAAY,EAAA,CAAA;sBAArB,MAAM;;;MElBI,eAAe,CAAA;IAM1B,IAAa,KAAK,CAAE,KAAc,EAAA;AAChC,QAAA,IAAI,CAAC,MAAM,GAAG,KAAK,CAAC;AACpB,QAAA,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;KACtB;AAED,IAAA,IAAI,KAAK,GAAA;QACP,OAAO,IAAI,CAAC,MAAM,CAAC;KACpB;AASD,IAAA,WAAA,CAAyC,QAAmB,EAAA;AAAnB,QAAA,IAAQ,CAAA,QAAA,GAAR,QAAQ,CAAW;AArBnD,QAAA,IAAA,CAAA,IAAI,GAA6C,QAAQ,CAAC;AAC1D,QAAA,IAAK,CAAA,KAAA,GAAG,EAAE,CAAC;AACX,QAAA,IAAK,CAAA,KAAA,GAAG,EAAE,CAAC;AACX,QAAA,IAAQ,CAAA,QAAA,GAAG,KAAK,CAAC;AACjB,QAAA,IAAU,CAAA,UAAA,GAAG,KAAK,CAAC;AAUlB,QAAA,IAAA,CAAA,YAAY,GAAG,IAAI,YAAY,EAAW,CAAC;AAErD,QAAA,IAAW,CAAA,WAAA,GAAa,EAAE,CAAC;AAC3B,QAAA,IAAQ,CAAA,QAAA,GAAG,EAAE,CAAC;AAEN,QAAA,IAAM,CAAA,MAAA,GAAG,KAAK,CAAC;;QAoCvB,IAAA,CAAA,QAAQ,GAAG,CAAC,KAAU,KAAM,GAAC,CAAC;;AAE9B,QAAA,IAAA,CAAA,SAAS,GAAG,MAAK,GAAG,CAAC;QAnCnB,IAAI,IAAI,CAAC,QAAQ,EAAE;AACjB,YAAA,IAAI,CAAC,QAAQ,CAAC,aAAa,GAAG,IAAI,CAAC;AACpC,SAAA;KACF;IAED,WAAW,GAAA;QACT,IAAI,CAAC,UAAU,EAAE,CAAC;KACnB;IAED,UAAU,GAAA;AACR,QAAA,IAAI,CAAC,WAAW,GAAG,CAAC,KAAK,CAAC,CAAC;QAE3B,IAAI,IAAI,CAAC,UAAU,EAAE;AACnB,YAAA,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,iBAAiB,CAAC,CAAC;AAC1C,SAAA;QACD,IAAI,IAAI,CAAC,QAAQ,EAAE;AACjB,YAAA,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC;AACxC,SAAA;QACD,QAAQ,IAAI,CAAC,IAAI;YACf,KAAK,UAAU,EAAE;AACf,gBAAA,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC;gBACvC,MAAM;AACP,aAAA;YACD,KAAK,gBAAgB,EAAE;AACrB,gBAAA,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,qBAAqB,CAAC,CAAC;gBAC7C,MAAM;AACP,aAAA;AACD,YAAA;gBACE,IAAI,IAAI,CAAC,KAAK;oBAAE,IAAI,CAAC,QAAQ,GAAG,WAAW,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;AAC3D,SAAA;KACF;AAOD,IAAA,gBAAgB,CAAE,EAAO,EAAA;AACvB,QAAA,IAAI,CAAC,QAAQ,GAAG,EAAE,CAAC;KACpB;AAED,IAAA,iBAAiB,CAAE,EAAO,EAAA;AACxB,QAAA,IAAI,CAAC,SAAS,GAAG,EAAE,CAAC;KACrB;AAED,IAAA,UAAU,CAAE,KAAc,EAAA;AACxB,QAAA,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;KACpB;IAED,cAAc,GAAA;AACZ,QAAA,IAAI,IAAI,CAAC,QAAQ,IAAI,CAAC,IAAI,CAAC,UAAU;YAAE,OAAO;QAC9C,IAAI,CAAC,YAAY,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;KAChC;AAEO,IAAA,YAAY,CAAE,KAAc,EAAA;AAClC,QAAA,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC;AACvB,QAAA,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;AACrB,QAAA,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;KAC/B;;4GAjFU,eAAe,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAA,EAAA,CAAA,SAAA,EAAA,QAAA,EAAA,IAAA,EAAA,IAAA,EAAA,IAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;gGAAf,eAAe,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,SAAA,EAAA,MAAA,EAAA,EAAA,IAAA,EAAA,MAAA,EAAA,KAAA,EAAA,OAAA,EAAA,KAAA,EAAA,OAAA,EAAA,QAAA,EAAA,UAAA,EAAA,UAAA,EAAA,YAAA,EAAA,KAAA,EAAA,OAAA,EAAA,EAAA,OAAA,EAAA,EAAA,YAAA,EAAA,cAAA,EAAA,EAAA,aAAA,EAAA,IAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,ECpB5B,6MAQA,EAAA,MAAA,EAAA,CAAA,g0BAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EDOY,YAAY,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,OAAA,EAAA,QAAA,EAAA,WAAA,EAAA,MAAA,EAAA,CAAA,OAAA,EAAA,SAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,OAAA,EAAA,QAAA,EAAA,WAAA,EAAA,MAAA,EAAA,CAAA,SAAA,CAAA,EAAA,CAAA,EAAA,CAAA,CAAA;2FAKX,eAAe,EAAA,UAAA,EAAA,CAAA;kBAP3B,SAAS;YACI,IAAA,EAAA,CAAA,EAAA,UAAA,EAAA,IAAI,EACP,OAAA,EAAA,CAAC,YAAY,CAAC,YACb,SAAS,EAAA,QAAA,EAAA,6MAAA,EAAA,MAAA,EAAA,CAAA,g0BAAA,CAAA,EAAA,CAAA;;;8BA0BL,IAAI;;8BAAI,QAAQ;;yBArBrB,IAAI,EAAA,CAAA;sBAAZ,KAAK;gBACG,KAAK,EAAA,CAAA;sBAAb,KAAK;gBACG,KAAK,EAAA,CAAA;sBAAb,KAAK;gBACG,QAAQ,EAAA,CAAA;sBAAhB,KAAK;gBACG,UAAU,EAAA,CAAA;sBAAlB,KAAK;gBACO,KAAK,EAAA,CAAA;sBAAjB,KAAK;gBASI,YAAY,EAAA,CAAA;sBAArB,MAAM;;;AEnCT;;AAEG;;ACFH;;AAEG;;;;"}
|
|
1
|
+
{"version":3,"file":"cps-ui-kit.mjs","sources":["../../../projects/cps-ui-kit/src/lib/utils/colors-utils.ts","../../../projects/cps-ui-kit/src/lib/utils/size-utils.ts","../../../projects/cps-ui-kit/src/lib/components/cps-icon/cps-icon.component.ts","../../../projects/cps-ui-kit/src/lib/components/cps-icon/cps-icon.component.html","../../../projects/cps-ui-kit/src/lib/components/cps-input/cps-input.component.ts","../../../projects/cps-ui-kit/src/lib/components/cps-input/cps-input.component.html","../../../projects/cps-ui-kit/src/lib/components/cps-chip/cps-chip.component.ts","../../../projects/cps-ui-kit/src/lib/components/cps-chip/cps-chip.component.html","../../../projects/cps-ui-kit/src/lib/directives/click-outside.directive.ts","../../../projects/cps-ui-kit/src/lib/pipes/label-by-value.pipe.ts","../../../projects/cps-ui-kit/src/lib/pipes/combine-labels.pipe.ts","../../../projects/cps-ui-kit/src/lib/components/cps-select/cps-select.component.ts","../../../projects/cps-ui-kit/src/lib/components/cps-select/cps-select.component.html","../../../projects/cps-ui-kit/src/lib/components/cps-autocomplete/cps-autocomplete.component.ts","../../../projects/cps-ui-kit/src/lib/components/cps-autocomplete/cps-autocomplete.component.html","../../../projects/cps-ui-kit/src/lib/components/cps-button/cps-button.component.ts","../../../projects/cps-ui-kit/src/lib/components/cps-button/cps-button.component.html","../../../projects/cps-ui-kit/src/lib/components/cps-checkbox/cps-checkbox.component.ts","../../../projects/cps-ui-kit/src/lib/components/cps-checkbox/cps-checkbox.component.html","../../../projects/cps-ui-kit/src/lib/components/cps-radio/cps-radio.component.ts","../../../projects/cps-ui-kit/src/lib/components/cps-radio/cps-radio.component.html","../../../projects/cps-ui-kit/src/lib/components/cps-tag/cps-tag.component.ts","../../../projects/cps-ui-kit/src/lib/components/cps-tag/cps-tag.component.html","../../../projects/cps-ui-kit/src/public-api.ts","../../../projects/cps-ui-kit/src/cps-ui-kit.ts"],"sourcesContent":["const isSameDomain = (styleSheet: any): boolean => {\n if (!styleSheet.href) {\n return true;\n }\n\n return styleSheet.href.indexOf(window.location.origin) === 0;\n};\n\nconst isStyleRule = (rule: any): boolean => rule.type === 1;\n\nconst isValidCSSColor = (val: string): boolean => {\n if (val === 'currentColor') return true;\n const element = document.createElement('div');\n element.style.backgroundColor = val;\n return element && element.style.backgroundColor !== '';\n};\n\nconst isDark = (color: string): boolean => {\n let r = 0;\n let g = 0;\n let b = 0;\n if (color.match(/^rgb/)) {\n const colorMatched = color.match(\n /^rgba?\\((\\d+),\\s*(\\d+),\\s*(\\d+)(?:,\\s*(\\d+(?:\\.\\d+)?))?\\)$/\n ) as any;\n r = colorMatched[1];\n g = colorMatched[2];\n b = colorMatched[3];\n } else {\n const colorNum = +(\n '0x' + color.slice(1).replace(color.length < 5 && (/./g as any), '$&$&')\n );\n\n r = colorNum >> 16;\n g = (colorNum >> 8) & 255;\n b = colorNum & 255;\n }\n\n const hsp = Math.sqrt(0.299 * (r * r) + 0.587 * (g * g) + 0.114 * (b * b));\n\n // Using the HSP value, determine whether the color is light or dark\n return hsp <= 127.5;\n};\n\nexport const getCpsColors = (): [string, string][] =>\n [...(document.styleSheets as any)].filter(isSameDomain).reduce(\n (finalArr, sheet) =>\n finalArr.concat(\n [...sheet.cssRules].filter(isStyleRule).reduce((propValArr, rule) => {\n const props = [...rule.style]\n .map((propName) => [\n propName.trim(),\n rule.style.getPropertyValue(propName).trim()\n ])\n .filter(([propName]) => propName.indexOf('--cps-color') === 0);\n\n return [...propValArr, ...props];\n }, [])\n ),\n []\n );\n\nexport const getCSSColor = (val: string): string => {\n return isValidCSSColor(val) ? val : `var(--cps-color-${val})`;\n};\n\nexport const getTextColor = (backgroundColor: string): string => {\n if (isDark(backgroundColor)) {\n return '#FFFFFF';\n } else {\n return '#000000';\n }\n};\n","export const convertSize = (size: number | string): string => {\n const res = String(size).trim();\n if (!res) {\n return '';\n }\n if (/^\\d+(\\.\\d+)?$/i.test(res)) {\n return res + 'px';\n }\n if (/^\\d+(\\.\\d+)?(px|rem|em|%)$/i.test(res)) {\n return res;\n }\n\n throw new Error(`Invalid size value: ${size}`);\n};\n\nexport const parseSize = (size: string): { value: number; unit: string } => {\n const match = size.match(/^(\\d+(?:\\.\\d+)?)(px|rem|em|%)$/);\n if (!match) throw new Error(`Invalid size value: ${size}`);\n const value = parseFloat(match[1]);\n const unit = match[2];\n return { value, unit };\n};\n","import { CommonModule } from '@angular/common';\nimport { Component, Input, OnChanges } from '@angular/core';\nimport { getCSSColor } from '../../utils/colors-utils';\nimport { convertSize } from '../../utils/size-utils';\n\nexport const iconNames = [\n 'access',\n 'access-denied',\n 'access-menu',\n 'access-unlock',\n 'add',\n 'add-domain',\n 'avatar',\n 'avatar-top-menu',\n 'bell',\n 'book',\n 'bookmark',\n 'browse',\n 'burger-arrow',\n 'caret-down',\n 'change',\n 'checked',\n 'chevron-down',\n 'chevron-down-2',\n 'circle',\n 'close-x',\n 'close-x-2',\n 'community',\n 'construction',\n 'controls',\n 'csv',\n 'cub',\n 'database',\n 'datepicker',\n 'delete',\n 'dislike',\n 'dots',\n 'download',\n 'dq',\n 'dropdown-menu',\n 'edit',\n 'expand',\n 'export',\n 'eye',\n 'filter',\n 'filter_2',\n 'follow',\n 'glossary',\n 'graph',\n 'grid',\n 'grid-view',\n 'health',\n 'heart',\n 'help-circle',\n 'home',\n 'insight',\n 'issues',\n 'jpeg',\n 'kris',\n 'last-seen-product',\n 'like',\n 'line-vertical',\n 'lock',\n 'logout',\n 'menu-expand',\n 'minus',\n 'multiple_users',\n 'open',\n 'path',\n 'pdf',\n 'plus',\n 'projects',\n 'question',\n 'questions',\n 'rectangle-rounded',\n 'refresh-browse',\n 'remove',\n 'right',\n 'schema_filter',\n 'search',\n 'settings',\n 'smart',\n 'star',\n 'stepper-completed',\n 'success',\n 'suggestion',\n 'survivorship',\n 'table-row-error',\n 'table-row-success',\n 'table-row-warning',\n 'toast-error',\n 'toast-info',\n 'toast-success',\n 'toast-warning',\n 'tools',\n 'user',\n 'users',\n 'vector',\n 'vector-down',\n 'vector-right',\n 'vector-up',\n 'wallet',\n 'warning',\n 'widget-button-icon',\n 'xls'\n];\n\nexport type IconType = (typeof iconNames)[number];\n\nexport type iconSizeType =\n | number\n | string\n | 'fill'\n | 'xsmall'\n | 'small'\n | 'normal'\n | 'large';\n\n@Component({\n standalone: true,\n imports: [CommonModule],\n selector: 'cps-icon',\n templateUrl: './cps-icon.component.html',\n styleUrls: ['./cps-icon.component.scss']\n})\nexport class CpsIconComponent implements OnChanges {\n @Input() icon: IconType = '';\n @Input() size: iconSizeType = 'small';\n\n @Input() color = 'currentColor';\n\n iconColor = 'currentColor';\n url = '../../../../assets/icons/';\n cvtSize = '';\n\n classesList: string[] = ['icon'];\n\n ngOnChanges(): void {\n this.iconColor = getCSSColor(this.color);\n this.setClasses();\n }\n\n setClasses(): void {\n switch (this.size) {\n case 'fill': {\n this.classesList.push('icon--fill');\n break;\n }\n case 'xsmall': {\n this.classesList.push('icon--xsmall');\n break;\n }\n case 'small': {\n this.classesList.push('icon--small');\n break;\n }\n case 'normal': {\n this.classesList.push('icon--normal');\n break;\n }\n case 'large': {\n this.classesList.push('icon--large');\n break;\n }\n default:\n this.cvtSize = convertSize(this.size);\n break;\n }\n }\n}\n","<i\n *ngIf=\"icon\"\n [ngClass]=\"classesList\"\n [style.color]=\"iconColor\"\n [ngStyle]=\"{ width: cvtSize || 'none', height: cvtSize || 'none' }\">\n <svg>\n <use attr.xlink:href=\"{{ url }}{{ icon }}.svg#{{ icon }}\"></use>\n </svg>\n</i>\n","import { CommonModule } from '@angular/common';\nimport {\n AfterViewInit,\n ChangeDetectorRef,\n Component,\n ElementRef,\n EventEmitter,\n Input,\n OnDestroy,\n OnInit,\n Optional,\n Output,\n Self,\n ViewChild\n} from '@angular/core';\nimport { ControlValueAccessor, NgControl } from '@angular/forms';\nimport { CpsIconComponent, iconSizeType } from '../cps-icon/cps-icon.component';\nimport { Subscription } from 'rxjs';\nimport { convertSize } from '../../utils/size-utils';\n\n@Component({\n standalone: true,\n imports: [CommonModule, CpsIconComponent],\n selector: 'cps-input',\n templateUrl: './cps-input.component.html',\n styleUrls: ['./cps-input.component.scss']\n})\nexport class CpsInputComponent\n implements ControlValueAccessor, OnInit, AfterViewInit, OnDestroy\n{\n @Input() label = '';\n @Input() placeholder = 'Please enter';\n @Input() hint = '';\n @Input() disabled = false;\n @Input() width: number | string = '100%';\n @Input() type: 'text' | 'number' | 'password' = 'text';\n @Input() loading = false;\n @Input() clearable = false;\n @Input() prefixIcon = '';\n @Input() prefixIconSize: iconSizeType = '18px';\n @Input() prefixText = '';\n @Input() hideDetails = false;\n @Input() persistentClear = false;\n @Input() set value(value: string) {\n this._value = value;\n this.onChange(value);\n }\n\n get value(): string {\n return this._value;\n }\n\n @Output() valueChanged = new EventEmitter<string>();\n\n @ViewChild('prefixTextSpan') prefixTextSpan: ElementRef | undefined;\n\n private _statusChangesSubscription: Subscription = new Subscription();\n\n private _value = '';\n\n error = '';\n currentType = '';\n prefixWidth = '';\n cvtWidth = '';\n\n constructor(\n @Self() @Optional() private _control: NgControl,\n private _elementRef: ElementRef<HTMLElement>,\n private cdRef: ChangeDetectorRef\n ) {\n if (this._control) {\n this._control.valueAccessor = this;\n }\n }\n\n ngOnInit(): void {\n this.currentType = this.type;\n this.cvtWidth = convertSize(this.width);\n\n this._statusChangesSubscription = this._control?.statusChanges?.subscribe(\n () => {\n this._checkErrors();\n }\n ) as Subscription;\n }\n\n ngAfterViewInit() {\n let w = 0;\n if (this.prefixText) {\n w = this.prefixTextSpan?.nativeElement?.offsetWidth + 22;\n }\n if (this.prefixIcon) {\n w += 38 - (this.prefixText ? 14 : 0);\n }\n this.prefixWidth = w > 0 ? `${w}px` : '';\n this.cdRef.detectChanges();\n }\n\n ngOnDestroy() {\n this._statusChangesSubscription?.unsubscribe();\n }\n\n private _checkErrors() {\n const errors = this._control?.errors;\n\n if (!this._control?.control?.touched || !errors) {\n this.error = '';\n return;\n }\n\n if ('required' in errors) {\n this.error = 'Field is required';\n return;\n }\n\n if ('minlength' in errors) {\n // eslint-disable-next-line dot-notation\n this.error = `Field must contain at least ${errors['minlength'].requiredLength} characters`;\n return;\n }\n\n const errArr = Object.values(errors);\n if (errArr.length < 1) {\n this.error = '';\n return;\n }\n const message = errArr.find((msg) => typeof msg === 'string');\n\n this.error = message || 'Unknown error';\n }\n\n // eslint-disable-next-line @typescript-eslint/no-empty-function\n onChange = (event: any) => {};\n // eslint-disable-next-line @typescript-eslint/no-empty-function\n onTouched = () => {};\n\n registerOnChange(fn: any) {\n this.onChange = fn;\n }\n\n registerOnTouched(fn: any) {\n this.onTouched = fn;\n }\n\n writeValue(value: string) {\n this.value = value;\n }\n\n updateValueEvent(event: any) {\n const value = event?.target?.value || '';\n this._updateValue(value);\n }\n\n private _updateValue(value: string) {\n this.writeValue(value);\n this.onChange(value);\n this.valueChanged.emit(value);\n }\n\n clear() {\n if (this.value !== '') this._updateValue('');\n }\n\n togglePassword() {\n this.currentType = this.currentType === 'password' ? 'text' : 'password';\n }\n\n // eslint-disable-next-line @typescript-eslint/no-empty-function\n setDisabledState(disabled: boolean) {}\n\n onBlur() {\n this._control?.control?.markAsTouched();\n this._checkErrors();\n }\n\n focus() {\n this._elementRef?.nativeElement?.querySelector('input')?.focus();\n }\n}\n","<div class=\"input-container\">\n <label class=\"label-text\" [ngClass]=\"{ 'label-text-disabled': disabled }\">{{\n label\n }}</label>\n\n <div\n class=\"input-wrap\"\n [ngClass]=\"{\n password: type === 'password',\n 'input-wrap-error': error,\n clearable: clearable,\n 'persistent-clear': persistentClear\n }\">\n <input\n [type]=\"currentType\"\n [value]=\"value\"\n (input)=\"updateValueEvent($event)\"\n [placeholder]=\"placeholder\"\n [disabled]=\"disabled\"\n [ngStyle]=\"{\n width: cvtWidth,\n 'padding-left': prefixWidth || 'none'\n }\"\n (blur)=\"onBlur()\" />\n\n <div class=\"prefix\">\n <span *ngIf=\"prefixIcon\" class=\"prefix-icon\">\n <cps-icon [icon]=\"prefixIcon\" [size]=\"prefixIconSize\"></cps-icon>\n </span>\n\n <span *ngIf=\"prefixText\" class=\"prefix-text\" #prefixTextSpan>\n {{ prefixText }}\n </span>\n </div>\n\n <div class=\"action-btns\">\n <span\n *ngIf=\"clearable\"\n [style.visibility]=\"\n persistentClear || (!persistentClear && value) ? 'visible' : 'hidden'\n \"\n class=\"clear-btn\">\n <cps-icon icon=\"delete\" size=\"small\" (click)=\"clear()\"></cps-icon>\n </span>\n\n <span\n *ngIf=\"type === 'password'\"\n class=\"password-show-btn\"\n [ngClass]=\"{ 'password-show-btn-active': currentType === 'text' }\">\n <cps-icon icon=\"eye\" size=\"18px\" (click)=\"togglePassword()\"></cps-icon>\n </span>\n </div>\n </div>\n\n <div *ngIf=\"loading\" class=\"progress-bar\" [ngStyle]=\"{ width: cvtWidth }\">\n <div class=\"progress-bar-line inc\"></div>\n <div class=\"progress-bar-line dec\"></div>\n </div>\n <div *ngIf=\"!error && !hideDetails\" class=\"hint-text\">{{ hint }}</div>\n <div *ngIf=\"error && !hideDetails\" class=\"error-text\">{{ error }}</div>\n</div>\n","import {\n Component,\n EventEmitter,\n Input,\n OnChanges,\n Output\n} from '@angular/core';\nimport { CpsIconComponent } from '../cps-icon/cps-icon.component';\nimport { CommonModule } from '@angular/common';\n\n@Component({\n standalone: true,\n imports: [CommonModule, CpsIconComponent],\n selector: 'cps-chip',\n templateUrl: './cps-chip.component.html',\n styleUrls: ['./cps-chip.component.scss']\n})\nexport class CpsChipComponent implements OnChanges {\n @Input() label = '';\n @Input() icon = '';\n @Input() iconPosition: 'before' | 'after' = 'before';\n @Input() closable = false;\n @Input() disabled = false;\n\n @Output() closed = new EventEmitter();\n\n classesList = ['chip'];\n\n ngOnChanges() {\n this.setClasses();\n }\n\n setClasses() {\n if (this.disabled) this.classesList.push('chip-disabled');\n\n if (this.icon && this.label) {\n switch (this.iconPosition) {\n case 'before': {\n this.classesList.push('chip--icon-before');\n break;\n }\n case 'after': {\n this.classesList.push('chip--icon-after');\n break;\n }\n }\n }\n }\n\n onCloseClick(event: any) {\n event.stopPropagation();\n this.closed.emit();\n }\n}\n","<div [ngClass]=\"classesList\">\n <cps-icon\n *ngIf=\"icon\"\n class=\"chip-icon\"\n [icon]=\"icon\"\n color=\"text-darkest\"></cps-icon>\n <span class=\"chip-label\">{{ label }}</span>\n <cps-icon\n *ngIf=\"closable\"\n class=\"chip-close-icon\"\n icon=\"close-x\"\n size=\"xsmall\"\n color=\"text-darkest\"\n (click)=\"onCloseClick($event)\"></cps-icon>\n</div>\n","import {\n Directive,\n Output,\n EventEmitter,\n ElementRef,\n HostListener\n} from '@angular/core';\n\n@Directive({\n standalone: true,\n selector: '[clickOutside]'\n})\nexport class ClickOutsideDirective {\n @Output() clickOutside = new EventEmitter<void>();\n\n // eslint-disable-next-line no-useless-constructor\n constructor(private elementRef: ElementRef) {}\n\n @HostListener('document:click', ['$event.target'])\n public onClick(target: any) {\n if (!this.elementRef?.nativeElement?.classList?.contains('focused')) return;\n const clickedInside = this.elementRef?.nativeElement?.contains(target);\n if (!clickedInside) {\n this.clickOutside.emit();\n }\n }\n}\n","import { Pipe, PipeTransform } from '@angular/core';\n\n@Pipe({ standalone: true, name: 'labelByValue' })\nexport class LabelByValuePipe implements PipeTransform {\n transform(\n value: string,\n options: any[],\n valueKey: string,\n labelKey: string\n ): string {\n const option = options.find((opt) => opt[valueKey] === value);\n return option ? option[labelKey] : 'unknown';\n }\n}\n","import { Pipe, PipeTransform } from '@angular/core';\n\n@Pipe({ standalone: true, name: 'combineLabels' })\nexport class CombineLabelsPipe implements PipeTransform {\n transform(\n values: any[],\n options: any[],\n valueKey: string,\n labelKey: string,\n returnObject: boolean\n ): string {\n return values\n .map((v) => {\n if (returnObject) {\n return v[labelKey];\n } else {\n const option = options.find((opt) => opt[valueKey] === v);\n return option ? option[labelKey] : 'unknown';\n }\n })\n .join(', ');\n }\n}\n","import { CommonModule } from '@angular/common';\nimport {\n Component,\n ElementRef,\n EventEmitter,\n Input,\n OnChanges,\n OnDestroy,\n OnInit,\n Optional,\n Output,\n Self,\n SimpleChanges,\n ViewChild\n} from '@angular/core';\nimport { ControlValueAccessor, FormsModule, NgControl } from '@angular/forms';\nimport { Subscription } from 'rxjs';\nimport { convertSize } from '../../utils/size-utils';\nimport { CpsIconComponent, iconSizeType } from '../cps-icon/cps-icon.component';\nimport { CpsChipComponent } from '../cps-chip/cps-chip.component';\nimport { ClickOutsideDirective } from '../../directives/click-outside.directive';\nimport { LabelByValuePipe } from '../../pipes/label-by-value.pipe';\nimport { CombineLabelsPipe } from '../../pipes/combine-labels.pipe';\n\n@Component({\n standalone: true,\n imports: [\n CommonModule,\n FormsModule,\n ClickOutsideDirective,\n CpsIconComponent,\n CpsChipComponent,\n LabelByValuePipe,\n CombineLabelsPipe\n ],\n selector: 'cps-select',\n templateUrl: './cps-select.component.html',\n styleUrls: ['./cps-select.component.scss']\n})\nexport class CpsSelectComponent\n implements ControlValueAccessor, OnInit, OnDestroy, OnChanges\n{\n @Input() label = '';\n @Input() placeholder = 'Please select';\n @Input() hint = '';\n @Input() returnObject = true;\n @Input() multiple = false;\n @Input() disabled = false;\n @Input() width: number | string = '100%';\n @Input() selectAll = true;\n @Input() chips = true;\n @Input() closableChips = true;\n @Input() clearable = false;\n @Input() openOnClear = true;\n @Input() options = [] as any[];\n @Input() optionLabel = 'label';\n @Input() optionValue = 'value'; // works only if returnObject === false (TODO potentially can be of any type)\n @Input() optionInfo = 'info';\n @Input() hideDetails = false;\n @Input() persistentClear = false;\n @Input() prefixIcon = '';\n @Input() prefixIconSize: iconSizeType = '18px';\n\n @Input('value') _value: any = undefined;\n\n set value(value: any) {\n value = this._convertValue(value);\n this._value = value;\n this.onChange(value);\n }\n\n get value(): any {\n return this._value;\n }\n\n @Output() valueChanged = new EventEmitter<any>();\n\n @ViewChild('selectContainer')\n selectContainer!: ElementRef;\n\n private _statusChangesSubscription: Subscription = new Subscription();\n\n error = '';\n cvtWidth = '';\n\n isOpened = false;\n\n optionHighlightedIndex = -1;\n\n constructor(@Self() @Optional() private _control: NgControl) {\n if (this._control) {\n this._control.valueAccessor = this;\n }\n }\n\n ngOnChanges(changes: SimpleChanges): void {\n // eslint-disable-next-line dot-notation\n if ('_value' in changes && changes['_value'].isFirstChange()) {\n this.value = this._convertValue(this.value);\n }\n }\n\n ngOnInit() {\n this.cvtWidth = convertSize(this.width);\n if (this.multiple && !this._value) {\n this._value = [];\n }\n\n this._statusChangesSubscription = this._control?.statusChanges?.subscribe(\n () => {\n this._checkErrors();\n }\n ) as Subscription;\n }\n\n ngOnDestroy() {\n this._statusChangesSubscription?.unsubscribe();\n }\n\n private _toggleOptions(dd: HTMLElement, show?: boolean): void {\n if (this.disabled || !dd) return;\n if (typeof show === 'boolean') {\n if (show) dd.classList.add('active');\n else dd.classList.remove('active');\n } else dd.classList.toggle('active');\n\n this.isOpened = dd.classList.contains('active');\n\n if (this.isOpened) {\n const selected =\n this.selectContainer.nativeElement.querySelector('.selected');\n if (selected) selected.scrollIntoView();\n }\n }\n\n // private _filterOptions() {\n // if (!this.optionsFilter || !this.multiple) return;\n // this.filteredOptions = this.options.filter((o) => {\n // if (this.returnObject) {\n // return !this.value.find((v: any) => v === o);\n // }\n // return !this.value.find((v: any) => v === o[this.optionValue]);\n // });\n // }\n\n select(option: any, byValue: boolean): void {\n const val = byValue\n ? option\n : this.returnObject\n ? option\n : option[this.optionValue];\n if (this.multiple) {\n let res = [] as any;\n if (this.value.includes(val)) {\n res = this.value.filter((v: any) => v !== val);\n } else {\n this.options.forEach((o) => {\n const ov = this.returnObject ? o : o[this.optionValue];\n if (this.value.some((v: any) => v === ov) || val === ov) {\n res.push(ov);\n }\n });\n }\n this.updateValue(res);\n } else {\n this.updateValue(val);\n }\n }\n\n onOptionClick(option: any, dd: HTMLElement) {\n this._clickOption(option, dd);\n }\n\n private _clickOption(option: any, dd: HTMLElement) {\n this.select(option, false);\n if (!this.multiple) {\n this._toggleOptions(dd, false);\n }\n }\n\n private _getHTMLOptions() {\n return (\n this.selectContainer?.nativeElement?.querySelectorAll(\n '.cps-select-options-option'\n ) || []\n );\n }\n\n private _dehighlightOption(el?: HTMLElement) {\n if (el) el.classList.remove('highlighten');\n else {\n if (this.optionHighlightedIndex < 0) return;\n const optionItems = this._getHTMLOptions();\n optionItems[this.optionHighlightedIndex].classList.remove('highlighten');\n this.optionHighlightedIndex = -1;\n }\n }\n\n private _highlightOption(el: HTMLElement) {\n el.classList.add('highlighten');\n const parent = el.parentElement;\n if (!parent) return;\n const parentRect = parent.getBoundingClientRect();\n const elRect = el.getBoundingClientRect();\n if (elRect.top < parentRect.top || elRect.bottom > parentRect.bottom) {\n el.scrollIntoView();\n }\n }\n\n private _navigateOptionsByArrows(up: boolean) {\n if (!this.isOpened) return;\n\n const optionItems = this._getHTMLOptions();\n const len = optionItems.length;\n if (len < 1) return;\n\n if (len === 1) {\n this._highlightOption(optionItems[0]);\n return;\n }\n\n if (up) {\n this._dehighlightOption(optionItems[this.optionHighlightedIndex]);\n this.optionHighlightedIndex =\n this.optionHighlightedIndex < 1\n ? len - 1\n : this.optionHighlightedIndex - 1;\n this._highlightOption(optionItems[this.optionHighlightedIndex]);\n } else {\n this._dehighlightOption(optionItems[this.optionHighlightedIndex]);\n this.optionHighlightedIndex = [-1, len - 1].includes(\n this.optionHighlightedIndex\n )\n ? 0\n : this.optionHighlightedIndex + 1;\n this._highlightOption(optionItems[this.optionHighlightedIndex]);\n }\n }\n\n onClickOutside(dd: HTMLElement) {\n this._toggleOptions(dd, false);\n this._dehighlightOption();\n }\n\n onBoxClick(dd: HTMLElement) {\n this._toggleOptions(dd);\n this._dehighlightOption();\n }\n\n onKeyDown(event: any, dd: HTMLElement) {\n const code = event.keyCode;\n // escape\n if (code === 27) {\n this._toggleOptions(dd, false);\n this._dehighlightOption();\n }\n // enter\n else if (code === 13) {\n let idx = this.optionHighlightedIndex;\n if (this.multiple && this.selectAll) {\n if (idx === 0) {\n this.toggleAll();\n return;\n } else idx--;\n }\n\n this._clickOption(this.options[idx], dd);\n }\n // vertical arrows\n else if ([38, 40].includes(code)) {\n this._navigateOptionsByArrows(code === 38);\n }\n }\n\n toggleAll() {\n let res = [];\n if (this.value.length < this.options.length) {\n if (this.returnObject) {\n res = this.options;\n } else {\n this.options.forEach((o) => {\n res.push(o[this.optionValue]);\n });\n }\n }\n this.updateValue(res);\n }\n\n private _checkErrors(): void {\n const errors = this._control?.errors;\n\n if (!this._control?.control?.touched || !errors) {\n this.error = '';\n return;\n }\n\n if ('required' in errors) {\n this.error = 'Field is required';\n return;\n }\n\n const errArr = Object.values(errors);\n if (errArr.length < 1) {\n this.error = '';\n return;\n }\n const message = errArr.find((msg) => typeof msg === 'string');\n\n this.error = message || 'Unknown error';\n }\n\n // eslint-disable-next-line @typescript-eslint/no-empty-function\n onChange = (event: any) => {};\n // eslint-disable-next-line @typescript-eslint/no-empty-function\n onTouched = () => {};\n\n registerOnChange(fn: any) {\n this.onChange = fn;\n }\n\n registerOnTouched(fn: any) {\n this.onTouched = fn;\n }\n\n private _convertValue(value: any): any {\n if (!this.returnObject) {\n if (this.multiple) {\n if (Array.isArray(value)) {\n const temp: any = [];\n value.forEach((v) => {\n if (typeof v !== 'string') {\n temp.push(v ? v[this.optionValue] : '');\n } else temp.push(v);\n });\n value = temp;\n } else {\n if (!value) value = [];\n else {\n if (typeof value !== 'string') {\n value = [value[this.optionValue]];\n } else value = [value];\n }\n }\n } else {\n if (typeof value !== 'string') {\n value = value ? value[this.optionValue] : '';\n }\n }\n } else {\n if (this.multiple) {\n if (!Array.isArray(value)) {\n value = [value];\n }\n }\n }\n return value;\n }\n\n writeValue(value: any) {\n value = this._convertValue(value);\n this.value = value;\n }\n\n private updateValue(value: any): void {\n this.writeValue(value);\n this.onChange(value);\n this.valueChanged.emit(value);\n }\n\n clear(dd: HTMLElement, event: any): void {\n event.stopPropagation();\n\n if (\n (!this.multiple && this.value) ||\n (this.multiple && this.value?.length > 0)\n ) {\n if (this.openOnClear) {\n this._toggleOptions(dd, true);\n }\n const val = this.multiple ? [] : this.returnObject ? undefined : '';\n this.updateValue(val);\n }\n this._dehighlightOption();\n }\n\n // eslint-disable-next-line @typescript-eslint/no-empty-function\n setDisabledState(disabled: boolean) {}\n\n onBlur() {\n this._control?.control?.markAsTouched();\n this._checkErrors();\n }\n\n focus() {\n this.selectContainer?.nativeElement?.focus();\n this._toggleOptions(this.selectContainer?.nativeElement, true);\n }\n}\n","<div\n [ngStyle]=\"{ width: cvtWidth }\"\n class=\"cps-select\"\n tabindex=\"0\"\n [ngClass]=\"{ disabled: disabled, error: error }\"\n #selectContainer\n (keydown)=\"onKeyDown($event, selectContainer)\"\n (blur)=\"onBlur()\">\n <label *ngIf=\"label\" class=\"cps-select-label\">{{ label }} </label>\n <div\n class=\"cps-select-container\"\n [class.focused]=\"isOpened\"\n [ngClass]=\"{\n 'persistent-clear': persistentClear\n }\"\n (clickOutside)=\"onClickOutside(selectContainer)\">\n <div class=\"cps-select-box\" (click)=\"onBoxClick(selectContainer)\">\n <div class=\"cps-select-box-left\">\n <cps-icon\n *ngIf=\"prefixIcon\"\n [icon]=\"prefixIcon\"\n [size]=\"prefixIconSize\"\n class=\"prefix-icon\">\n </cps-icon>\n <div\n class=\"cps-select-box-placeholder\"\n *ngIf=\"(!value && !multiple) || (value?.length < 1 && multiple)\">\n {{ placeholder }}\n </div>\n <div\n class=\"cps-select-box-items\"\n *ngIf=\"(value && !multiple) || (value?.length > 0 && multiple)\">\n <span *ngIf=\"!multiple\" class=\"single-item\">\n {{\n returnObject\n ? value[optionLabel]\n : (value | labelByValue : options : optionValue : optionLabel)\n }}</span\n >\n <div *ngIf=\"multiple && !chips\" class=\"text-group\">\n <span class=\"text-group-item\">\n {{\n value\n | combineLabels\n : options\n : optionValue\n : optionLabel\n : returnObject\n }}\n </span>\n </div>\n\n <div *ngIf=\"multiple && chips\" class=\"chips-group\">\n <cps-chip\n *ngFor=\"let val of value\"\n [disabled]=\"disabled\"\n [closable]=\"closableChips\"\n (closed)=\"select(val, true)\"\n [label]=\"\n returnObject\n ? val[optionLabel]\n : (val | labelByValue : options : optionValue : optionLabel)\n \">\n </cps-chip>\n </div>\n </div>\n </div>\n <span class=\"cps-select-box-icons\">\n <span\n *ngIf=\"clearable && !disabled\"\n [style.visibility]=\"\n persistentClear ||\n (!persistentClear &&\n ((multiple && value?.length) || (!multiple && value)))\n ? 'visible'\n : 'hidden'\n \"\n class=\"cps-select-box-clear-icon\">\n <cps-icon\n icon=\"delete\"\n size=\"small\"\n (click)=\"clear(selectContainer, $event)\"></cps-icon>\n </span>\n <span class=\"cps-select-box-chevron\">\n <cps-icon\n icon=\"chevron-down\"\n size=\"small\"\n color=\"text-dark\"></cps-icon>\n </span>\n </span>\n </div>\n\n <div class=\"cps-select-options\">\n <div\n class=\"cps-select-options-option select-all-option\"\n [class.allselected]=\"value?.length === options.length\"\n *ngIf=\"multiple && selectAll\"\n (click)=\"toggleAll()\">\n <span class=\"cps-select-options-option-left\">\n <span *ngIf=\"multiple\" class=\"cps-select-options-option-check\">\n </span>\n <span class=\"cps-select-options-option-label\">Select all</span>\n </span>\n </div>\n <div\n class=\"cps-select-options-option\"\n *ngFor=\"let option of options\"\n (click)=\"onOptionClick(option, selectContainer)\"\n [class.selected]=\"\n multiple\n ? returnObject\n ? value?.includes(option)\n : value?.includes(option[optionValue])\n : returnObject\n ? option === value\n : option[optionValue] === value\n \">\n <span class=\"cps-select-options-option-left\">\n <span *ngIf=\"multiple\" class=\"cps-select-options-option-check\">\n </span>\n <span class=\"cps-select-options-option-label\">{{\n option[optionLabel]\n }}</span>\n </span>\n\n <span class=\"cps-select-options-option-right\">{{\n option[optionInfo]\n }}</span>\n </div>\n </div>\n </div>\n <div *ngIf=\"!error && !hideDetails\" class=\"cps-select-hint\">{{ hint }}</div>\n <div *ngIf=\"error && !hideDetails\" class=\"cps-select-error\">{{ error }}</div>\n</div>\n","import { CommonModule } from '@angular/common';\nimport {\n Component,\n ElementRef,\n EventEmitter,\n Input,\n OnChanges,\n OnDestroy,\n OnInit,\n Optional,\n Output,\n Self,\n SimpleChanges,\n ViewChild\n} from '@angular/core';\nimport { ControlValueAccessor, FormsModule, NgControl } from '@angular/forms';\nimport { Subscription } from 'rxjs';\nimport { convertSize } from '../../utils/size-utils';\nimport { CpsIconComponent, iconSizeType } from '../cps-icon/cps-icon.component';\nimport { CpsChipComponent } from '../cps-chip/cps-chip.component';\nimport { ClickOutsideDirective } from '../../directives/click-outside.directive';\nimport { LabelByValuePipe } from '../../pipes/label-by-value.pipe';\nimport { CombineLabelsPipe } from '../../pipes/combine-labels.pipe';\n\n@Component({\n standalone: true,\n imports: [\n CommonModule,\n FormsModule,\n ClickOutsideDirective,\n CpsIconComponent,\n CpsChipComponent,\n LabelByValuePipe,\n CombineLabelsPipe\n ],\n providers: [LabelByValuePipe],\n selector: 'cps-autocomplete',\n templateUrl: './cps-autocomplete.component.html',\n styleUrls: ['./cps-autocomplete.component.scss']\n})\nexport class CpsAutocompleteComponent\n implements ControlValueAccessor, OnInit, OnDestroy, OnChanges\n{\n @Input() label = '';\n @Input() placeholder = 'Please enter';\n @Input() hint = '';\n @Input() returnObject = true;\n @Input() multiple = false;\n @Input() disabled = false;\n @Input() width: number | string = '100%';\n @Input() selectAll = true;\n @Input() chips = true;\n @Input() closableChips = true;\n @Input() clearable = false;\n @Input() openOnClear = true;\n @Input() options = [] as any[];\n @Input() optionLabel = 'label';\n @Input() optionValue = 'value'; // works only if returnObject === false (TODO potentially can be of any type)\n @Input() optionInfo = 'info';\n @Input() hideDetails = false;\n @Input() persistentClear = false;\n @Input() prefixIcon = '';\n @Input() prefixIconSize: iconSizeType = '18px';\n\n @Input('value') _value: any = undefined;\n\n set value(value: any) {\n value = this._convertValue(value);\n this._value = value;\n this.onChange(value);\n }\n\n get value(): any {\n return this._value;\n }\n\n @Output() valueChanged = new EventEmitter<any>();\n\n @ViewChild('autocompleteContainer')\n autocompleteContainer!: ElementRef;\n\n private _statusChangesSubscription: Subscription = new Subscription();\n\n error = '';\n cvtWidth = '';\n isOpened = false;\n inputText = '';\n filteredOptions = [] as any[];\n backspaceClickedOnce = false;\n activeSingle = false;\n optionHighlightedIndex = -1;\n\n constructor(\n @Self() @Optional() private _control: NgControl,\n private _labelByValue: LabelByValuePipe\n ) {\n if (this._control) {\n this._control.valueAccessor = this;\n }\n }\n\n ngOnChanges(changes: SimpleChanges): void {\n // eslint-disable-next-line dot-notation\n if ('_value' in changes && changes['_value'].isFirstChange()) {\n this.value = this._convertValue(this.value);\n }\n }\n\n ngOnInit() {\n this.filteredOptions = this.options;\n this.cvtWidth = convertSize(this.width);\n if (this.multiple && !this._value) {\n this._value = [];\n }\n\n this._statusChangesSubscription = this._control?.statusChanges?.subscribe(\n () => {\n this._checkErrors();\n }\n ) as Subscription;\n }\n\n ngOnDestroy() {\n this._statusChangesSubscription?.unsubscribe();\n }\n\n private _toggleOptions(dd: HTMLElement, show?: boolean): void {\n if (this.disabled || !dd) return;\n this.backspaceClickedOnce = false;\n if (typeof show === 'boolean') {\n if (show) dd.classList.add('active');\n else dd.classList.remove('active');\n } else dd.classList.toggle('active');\n\n this.isOpened = dd.classList.contains('active');\n\n if (this.isOpened) {\n const selected =\n this.autocompleteContainer.nativeElement.querySelector('.selected');\n if (selected) selected.scrollIntoView();\n }\n }\n\n select(option: any, byValue: boolean): void {\n this.backspaceClickedOnce = false;\n const val = byValue\n ? option\n : this.returnObject\n ? option\n : option[this.optionValue];\n if (this.multiple) {\n let res = [] as any;\n if (this.value.includes(val)) {\n res = this.value.filter((v: any) => v !== val);\n } else {\n this.options.forEach((o) => {\n const ov = this.returnObject ? o : o[this.optionValue];\n if (this.value.some((v: any) => v === ov) || val === ov) {\n res.push(ov);\n }\n });\n }\n this.updateValue(res);\n } else {\n this.updateValue(val);\n }\n this._clearInput();\n setTimeout(() => {\n this.focusInput();\n }, 0);\n }\n\n onOptionClick(option: any, dd: HTMLElement) {\n this._clickOption(option, dd);\n }\n\n toggleAll() {\n let res = [];\n if (this.value.length < this.options.length) {\n if (this.returnObject) {\n res = this.options;\n } else {\n this.options.forEach((o) => {\n res.push(o[this.optionValue]);\n });\n }\n }\n this.updateValue(res);\n setTimeout(() => {\n this.focusInput();\n }, 0);\n }\n\n private _clickOption(option: any, dd: HTMLElement) {\n this.select(option, false);\n if (!this.multiple) {\n this._toggleOptions(dd, false);\n }\n }\n\n private _checkErrors(): void {\n const errors = this._control?.errors;\n\n if (!this._control?.control?.touched || !errors) {\n this.error = '';\n return;\n }\n\n if ('required' in errors) {\n this.error = 'Field is required';\n return;\n }\n\n const errArr = Object.values(errors);\n if (errArr.length < 1) {\n this.error = '';\n return;\n }\n const message = errArr.find((msg) => typeof msg === 'string');\n\n this.error = message || 'Unknown error';\n }\n\n // eslint-disable-next-line @typescript-eslint/no-empty-function\n onChange = (event: any) => {};\n // eslint-disable-next-line @typescript-eslint/no-empty-function\n onTouched = () => {};\n\n registerOnChange(fn: any) {\n this.onChange = fn;\n }\n\n registerOnTouched(fn: any) {\n this.onTouched = fn;\n }\n\n filterOptions(event: any) {\n if (!this.isOpened) {\n this._toggleOptions(this.autocompleteContainer?.nativeElement, true);\n }\n this.backspaceClickedOnce = false;\n const searchVal = (event?.target?.value || '').toLowerCase();\n\n this.filteredOptions = this.options.filter((o: any) =>\n o[this.optionLabel].toLowerCase().includes(searchVal)\n );\n }\n\n private _convertValue(value: any): any {\n if (!this.returnObject) {\n if (this.multiple) {\n if (Array.isArray(value)) {\n const temp: any = [];\n value.forEach((v) => {\n if (typeof v !== 'string') {\n temp.push(v ? v[this.optionValue] : '');\n } else temp.push(v);\n });\n value = temp;\n } else {\n if (!value) value = [];\n else {\n if (typeof value !== 'string') {\n value = [value[this.optionValue]];\n } else value = [value];\n }\n }\n } else {\n if (typeof value !== 'string') {\n value = value ? value[this.optionValue] : '';\n }\n }\n } else {\n if (this.multiple) {\n if (!Array.isArray(value)) {\n value = [value];\n }\n }\n }\n return value;\n }\n\n writeValue(value: any) {\n value = this._convertValue(value);\n this.value = value;\n }\n\n private updateValue(value: any): void {\n this.writeValue(value);\n this.onChange(value);\n this.valueChanged.emit(value);\n }\n\n private _getValueLabel() {\n return this.value\n ? this.returnObject\n ? this.value[this.optionLabel]\n : this._labelByValue.transform(\n this.value,\n this.options,\n this.optionValue,\n this.optionLabel\n )\n : '';\n }\n\n clear(dd: HTMLElement, event: any): void {\n event.stopPropagation();\n\n if (\n (!this.multiple && this.value) ||\n (this.multiple && this.value?.length > 0)\n ) {\n if (this.openOnClear) {\n this._toggleOptions(dd, true);\n }\n const val = this.multiple ? [] : this.returnObject ? undefined : '';\n this.updateValue(val);\n }\n this._clearInput();\n this._dehighlightOption();\n setTimeout(() => {\n this.focusInput();\n }, 0);\n }\n\n // eslint-disable-next-line @typescript-eslint/no-empty-function\n setDisabledState(disabled: boolean) {}\n\n onBlur() {\n this._control?.control?.markAsTouched();\n this._checkErrors();\n }\n\n private _clearInput() {\n this.filteredOptions = this.options;\n this.inputText = '';\n this.activeSingle = false;\n }\n\n private _closeAndClear(dd: HTMLElement) {\n this._clearInput();\n this._toggleOptions(dd, false);\n this._dehighlightOption();\n }\n\n onClickOutside(dd: HTMLElement) {\n this._closeAndClear(dd);\n }\n\n private _getHTMLOptions() {\n return (\n this.autocompleteContainer?.nativeElement?.querySelectorAll(\n '.cps-autocomplete-options-option'\n ) || []\n );\n }\n\n private _dehighlightOption(el?: HTMLElement) {\n if (el) el.classList.remove('highlighten');\n else {\n if (this.optionHighlightedIndex < 0) return;\n const optionItems = this._getHTMLOptions();\n optionItems[this.optionHighlightedIndex].classList.remove('highlighten');\n this.optionHighlightedIndex = -1;\n }\n }\n\n private _highlightOption(el: HTMLElement) {\n el.classList.add('highlighten');\n const parent = el.parentElement;\n if (!parent) return;\n const parentRect = parent.getBoundingClientRect();\n const elRect = el.getBoundingClientRect();\n if (elRect.top < parentRect.top || elRect.bottom > parentRect.bottom) {\n el.scrollIntoView();\n }\n }\n\n onBoxClick() {\n if (!this.multiple) {\n this.activeSingle = true;\n this.inputText = this._getValueLabel();\n this.filteredOptions = this.options;\n }\n this.focus();\n this._dehighlightOption();\n }\n\n onContainerKeyDown(event: any, dd: HTMLElement) {\n const code = event.keyCode;\n // escape\n if (code === 27) {\n this._closeAndClear(dd);\n }\n // enter\n else if (code === 13) {\n let idx = this.optionHighlightedIndex;\n if (this.multiple && this.selectAll) {\n if (idx === 0) {\n this.toggleAll();\n return;\n } else idx--;\n }\n const option = this.filteredOptions[idx];\n this._clickOption(option, dd);\n }\n // vertical arrows\n else if ([38, 40].includes(code)) {\n this._navigateOptionsByArrows(code === 38);\n }\n }\n\n onInputKeyDown(event: any) {\n const code = event.keyCode;\n // backspace\n if (code === 8) {\n this._removeLastValue();\n event.stopPropagation();\n }\n // enter\n else if (code === 13) {\n if (this.optionHighlightedIndex < 0) {\n this._confirmInput(event?.target?.value || '');\n event.stopPropagation();\n }\n } else if ([38, 40].includes(code)) {\n event.preventDefault();\n } else {\n this._dehighlightOption();\n }\n }\n\n private _navigateOptionsByArrows(up: boolean) {\n if (!this.isOpened) return;\n\n const optionItems = this._getHTMLOptions();\n const len = optionItems.length;\n if (len < 1) return;\n\n if (len === 1) {\n this._highlightOption(optionItems[0]);\n return;\n }\n\n if (up) {\n this._dehighlightOption(optionItems[this.optionHighlightedIndex]);\n this.optionHighlightedIndex =\n this.optionHighlightedIndex < 1\n ? len - 1\n : this.optionHighlightedIndex - 1;\n this._highlightOption(optionItems[this.optionHighlightedIndex]);\n } else {\n this._dehighlightOption(optionItems[this.optionHighlightedIndex]);\n this.optionHighlightedIndex = [-1, len - 1].includes(\n this.optionHighlightedIndex\n )\n ? 0\n : this.optionHighlightedIndex + 1;\n this._highlightOption(optionItems[this.optionHighlightedIndex]);\n }\n }\n\n private _confirmInput(searchVal: string) {\n if (!this.isOpened) return;\n searchVal = searchVal.toLowerCase();\n if (!searchVal) {\n if (this.multiple) return;\n const val = this.returnObject ? undefined : '';\n this.updateValue(val);\n this._closeAndClear(this.autocompleteContainer?.nativeElement);\n return;\n }\n\n const found = this.filteredOptions.find(\n (o: any) => o[this.optionLabel].toLowerCase() === searchVal\n );\n if (found) {\n this.select(found, false);\n this._toggleOptions(\n this.autocompleteContainer?.nativeElement,\n this.multiple\n );\n } else {\n if (!this.multiple) {\n this.inputText = this._getValueLabel();\n this.filteredOptions = this.options;\n return;\n }\n }\n\n this._clearInput();\n }\n\n private _removeLastValue() {\n if (!this.multiple || this.inputText) return;\n\n if (this.value?.length) {\n if (this.backspaceClickedOnce) {\n this.updateValue(\n this.value.filter(\n (v: any, index: number) => index !== this.value.length - 1\n )\n );\n\n this.backspaceClickedOnce = false;\n } else this.backspaceClickedOnce = true;\n } else this.backspaceClickedOnce = false;\n\n setTimeout(() => {\n this.focusInput();\n }, 0);\n }\n\n focusInput() {\n this.autocompleteContainer?.nativeElement?.querySelector('input')?.focus();\n }\n\n focus() {\n this.autocompleteContainer?.nativeElement?.focus();\n this.focusInput();\n this._toggleOptions(this.autocompleteContainer?.nativeElement, true);\n }\n}\n","<div\n [ngStyle]=\"{ width: cvtWidth }\"\n class=\"cps-autocomplete\"\n tabindex=\"1\"\n [ngClass]=\"{ disabled: disabled, error: error }\"\n #autocompleteContainer>\n <label *ngIf=\"label\" class=\"cps-autocomplete-label\">{{ label }}</label>\n <div\n (keydown)=\"onContainerKeyDown($event, autocompleteContainer)\"\n class=\"cps-autocomplete-container\"\n [class.focused]=\"isOpened\"\n [ngClass]=\"{\n 'persistent-clear': persistentClear\n }\"\n (clickOutside)=\"onClickOutside(autocompleteContainer)\">\n <div class=\"cps-autocomplete-box\" (click)=\"onBoxClick()\">\n <div class=\"cps-autocomplete-box-area\">\n <cps-icon\n *ngIf=\"prefixIcon\"\n [icon]=\"prefixIcon\"\n [size]=\"prefixIconSize\"\n class=\"prefix-icon\">\n </cps-icon>\n <div\n class=\"cps-autocomplete-box-items\"\n *ngIf=\"\n (value && !multiple) || (value?.length > 0 && multiple);\n else autocompleteInput\n \">\n <span *ngIf=\"!multiple\" class=\"single-item\">\n <div class=\"single-item-selection\">\n <span [style.opacity]=\"activeSingle ? 0 : 1\">{{\n returnObject\n ? value[optionLabel]\n : (value | labelByValue : options : optionValue : optionLabel)\n }}</span>\n </div>\n <ng-container\n *ngTemplateOutlet=\"\n autocompleteInput;\n context: {\n inputClass: 'single-item-input',\n inputStyle: activeSingle ? 'opacity: 1' : null\n }\n \">\n </ng-container>\n </span>\n\n <div *ngIf=\"multiple && !chips\" class=\"text-group\">\n <div\n *ngFor=\"let val of value; let last = last\"\n class=\"text-group-item\"\n [ngClass]=\"{ 'about-to-remove': last && backspaceClickedOnce }\">\n {{\n returnObject\n ? val[optionLabel]\n : (val | labelByValue : options : optionValue : optionLabel)\n }}{{ !last ? ',' : '' }}\n </div>\n <ng-container *ngTemplateOutlet=\"autocompleteInput\"></ng-container>\n </div>\n\n <div *ngIf=\"multiple && chips\" class=\"chips-group\">\n <cps-chip\n *ngFor=\"let val of value; let last = last\"\n [disabled]=\"disabled\"\n [closable]=\"closableChips\"\n (closed)=\"select(val, true)\"\n [ngClass]=\"{ 'about-to-remove': last && backspaceClickedOnce }\"\n [label]=\"\n returnObject\n ? val[optionLabel]\n : (val | labelByValue : options : optionValue : optionLabel)\n \">\n </cps-chip>\n <ng-container *ngTemplateOutlet=\"autocompleteInput\"></ng-container>\n </div>\n </div>\n <span class=\"cps-autocomplete-box-icons\">\n <span\n *ngIf=\"clearable && !disabled\"\n [style.visibility]=\"\n persistentClear ||\n (!persistentClear &&\n ((multiple && value?.length) || (!multiple && value)))\n ? 'visible'\n : 'hidden'\n \"\n class=\"cps-autocomplete-box-clear-icon\">\n <cps-icon\n icon=\"delete\"\n size=\"small\"\n (click)=\"clear(autocompleteContainer, $event)\"></cps-icon>\n </span>\n <span class=\"cps-autocomplete-box-chevron\">\n <cps-icon\n icon=\"chevron-down\"\n size=\"small\"\n color=\"text-dark\"></cps-icon>\n </span>\n </span>\n </div>\n </div>\n\n <div class=\"cps-autocomplete-options\">\n <div\n class=\"cps-autocomplete-options-option select-all-option\"\n [class.allselected]=\"value?.length === options.length\"\n *ngIf=\"multiple && selectAll\"\n (click)=\"toggleAll()\">\n <span class=\"cps-autocomplete-options-option-left\">\n <span *ngIf=\"multiple\" class=\"cps-autocomplete-options-option-check\">\n </span>\n <span class=\"cps-autocomplete-options-option-label\">Select all</span>\n </span>\n </div>\n <div\n class=\"cps-autocomplete-options-option\"\n *ngFor=\"let option of filteredOptions\"\n (click)=\"onOptionClick(option, autocompleteContainer)\"\n [class.selected]=\"\n multiple\n ? returnObject\n ? value?.includes(option)\n : value?.includes(option[optionValue])\n : returnObject\n ? option === value\n : option[optionValue] === value\n \">\n <span class=\"cps-autocomplete-options-option-left\">\n <span *ngIf=\"multiple\" class=\"cps-autocomplete-options-option-check\">\n </span>\n <span class=\"cps-autocomplete-options-option-label\">{{\n option[optionLabel]\n }}</span>\n </span>\n\n <span class=\"cps-autocomplete-options-option-right\">{{\n option[optionInfo]\n }}</span>\n </div>\n </div>\n </div>\n <div *ngIf=\"!error && !hideDetails\" class=\"cps-autocomplete-hint\">\n {{ hint }}\n </div>\n <div *ngIf=\"error && !hideDetails\" class=\"cps-autocomplete-error\">\n {{ error }}\n </div>\n</div>\n\n<ng-template\n #autocompleteInput\n let-inputClass=\"inputClass\"\n let-inputStyle=\"inputStyle\">\n <input\n class=\"cps-autocomplete-box-input\"\n [class]=\"inputClass\"\n [style]=\"inputStyle\"\n [placeholder]=\"\n (!value && !multiple) || (value?.length < 1 && multiple)\n ? placeholder\n : ''\n \"\n (input)=\"filterOptions($event)\"\n (keydown)=\"onInputKeyDown($event)\"\n [(ngModel)]=\"inputText\"\n (blur)=\"onBlur()\" />\n</ng-template>\n","import { CommonModule } from '@angular/common';\nimport {\n Component,\n EventEmitter,\n HostBinding,\n Input,\n OnInit,\n Output\n} from '@angular/core';\nimport { getCSSColor } from '../../utils/colors-utils';\nimport { CpsIconComponent } from '../cps-icon/cps-icon.component';\nimport { convertSize, parseSize } from '../../utils/size-utils';\n\n@Component({\n standalone: true,\n imports: [CommonModule, CpsIconComponent],\n selector: 'cps-button',\n templateUrl: './cps-button.component.html',\n styleUrls: ['./cps-button.component.scss']\n})\nexport class CpsButtonComponent implements OnInit {\n @Input() color = 'calm';\n @Input() contentColor = 'white'; // works only with solid type\n @Input() type: 'solid' | 'outlined' | 'borderless' = 'solid';\n @Input() label = '';\n @Input() icon = '';\n @Input() iconPosition: 'before' | 'after' = 'before';\n @Input() size: 'xsmall' | 'small' | 'normal' | 'large' = 'normal';\n @Input() width: number | string = 0;\n @Input() height: number | string = 0;\n @Input() disabled = false;\n @Input() loading = false;\n\n @Output() clicked = new EventEmitter();\n\n buttonColor = '';\n textColor = '';\n\n @HostBinding('style.width')\n cvtWidth = '';\n\n cvtHeight = '';\n cvtFontSize = '';\n cvtIconSize = '';\n\n classesList: string[] = [];\n\n ngOnInit(): void {\n this.buttonColor = getCSSColor(this.color);\n this.textColor =\n this.type === 'solid' ? getCSSColor(this.contentColor) : this.buttonColor;\n this.setClasses();\n }\n\n setClasses() {\n this.classesList = ['button'];\n\n if (this.width) {\n this.cvtWidth = convertSize(this.width);\n }\n\n if (this.height) {\n this.cvtHeight = convertSize(this.height);\n if (this.cvtHeight) {\n const parsedHeight = parseSize(this.cvtHeight);\n const unit = parsedHeight.unit;\n const size = parsedHeight.value * 0.4;\n const isPx = unit === 'px';\n\n this.cvtFontSize = `${isPx ? Math.floor(size) : size}${unit}`;\n this.cvtIconSize = `${isPx ? Math.ceil(size) : size}${unit}`;\n }\n } else {\n switch (this.size) {\n case 'normal': {\n this.classesList.push('button--normal');\n break;\n }\n case 'large': {\n this.classesList.push('button--large');\n break;\n }\n case 'small': {\n this.classesList.push('button--small');\n break;\n }\n case 'xsmall': {\n this.classesList.push('button--xsmall');\n break;\n }\n }\n }\n\n switch (this.type) {\n case 'solid': {\n this.classesList.push('button--solid');\n break;\n }\n case 'outlined': {\n this.classesList.push('button--outlined');\n break;\n }\n case 'borderless': {\n this.classesList.push('button--borderless');\n break;\n }\n }\n\n if (this.icon && this.label) {\n switch (this.iconPosition) {\n case 'before': {\n this.classesList.push('button--icon-before');\n break;\n }\n case 'after': {\n this.classesList.push('button--icon-after');\n break;\n }\n }\n }\n }\n\n onClick(event: Event) {\n this.clicked.emit(event);\n }\n}\n","<div>\n <button\n type=\"button\"\n [ngClass]=\"classesList\"\n [disabled]=\"disabled || loading\"\n [class.spinner]=\"loading\"\n (click)=\"onClick($event)\"\n [ngStyle]=\"{\n 'background-color': type==='solid' ? buttonColor : 'transparent',\n color: textColor,\n height: cvtHeight || 'none',\n }\">\n <div class=\"button__content\">\n <cps-icon\n *ngIf=\"icon\"\n class=\"button__icon\"\n [icon]=\"icon\"\n [color]=\"disabled ? 'text-light' : textColor\"\n [size]=\"cvtIconSize\">\n </cps-icon>\n <span\n class=\"button__text\"\n *ngIf=\"label\"\n [ngStyle]=\"{ 'font-size': cvtFontSize || null }\"\n >{{ label }}</span\n >\n </div>\n </button>\n</div>\n","import { CommonModule } from '@angular/common';\nimport {\n Component,\n ElementRef,\n EventEmitter,\n Input,\n Optional,\n Output,\n Self\n} from '@angular/core';\nimport { ControlValueAccessor, NgControl } from '@angular/forms';\n\n@Component({\n standalone: true,\n imports: [CommonModule],\n selector: 'cps-checkbox',\n templateUrl: './cps-checkbox.component.html',\n styleUrls: ['./cps-checkbox.component.scss']\n})\nexport class CpsCheckboxComponent implements ControlValueAccessor {\n @Input() label = '';\n @Input() disabled = false;\n @Input() set value(value: boolean) {\n this._value = value;\n this.onChange(value);\n }\n\n get value(): boolean {\n return this._value;\n }\n\n @Output() valueChanged = new EventEmitter<boolean>();\n\n private _value = false;\n\n constructor(\n @Self() @Optional() private _control: NgControl,\n private _elementRef: ElementRef<HTMLElement>\n ) {\n if (this._control) {\n this._control.valueAccessor = this;\n }\n }\n\n // eslint-disable-next-line @typescript-eslint/no-empty-function\n onChange = (event: any) => {};\n // eslint-disable-next-line @typescript-eslint/no-empty-function\n onTouched = () => {};\n\n registerOnChange(fn: any) {\n this.onChange = fn;\n }\n\n registerOnTouched(fn: any) {\n this.onTouched = fn;\n }\n\n writeValue(value: boolean) {\n this.value = value;\n }\n\n updateValueEvent(event: any) {\n event.preventDefault();\n if (this.disabled) return;\n this._updateValue(!this.value);\n }\n\n private _updateValue(value: boolean) {\n this.writeValue(value);\n this.onChange(value);\n this.valueChanged.emit(value);\n }\n\n // eslint-disable-next-line @typescript-eslint/no-empty-function\n setDisabledState(disabled: boolean) {}\n\n focus() {\n this._elementRef?.nativeElement?.querySelector('input')?.focus();\n }\n}\n","<div class=\"checkbox-container\">\n <label\n class=\"checkbox\"\n [ngStyle]=\"{ cursor: disabled ? 'default' : 'pointer' }\">\n <span class=\"label\" [ngClass]=\"{ 'label-disabled': disabled }\">{{\n label\n }}</span>\n <input\n type=\"checkbox\"\n [disabled]=\"disabled\"\n [checked]=\"value\"\n (change)=\"updateValueEvent($event)\" />\n <span class=\"indicator\"></span>\n </label>\n</div>\n","import { CommonModule } from '@angular/common';\nimport {\n Component,\n EventEmitter,\n Input,\n Optional,\n Output,\n Self\n} from '@angular/core';\nimport { ControlValueAccessor, NgControl } from '@angular/forms';\n\nexport type RadioOption = {\n value: any;\n label: string;\n disabled?: boolean;\n};\n\n@Component({\n standalone: true,\n imports: [CommonModule],\n selector: 'cps-radio',\n templateUrl: './cps-radio.component.html',\n styleUrls: ['./cps-radio.component.scss']\n})\nexport class CpsRadioComponent implements ControlValueAccessor {\n @Input() options = [] as RadioOption[];\n @Input() groupLabel = '';\n @Input() vertical = false;\n @Input() disabled = false;\n @Input() set value(value: any) {\n this._value = value;\n this.onChange(value);\n }\n\n get value(): any {\n return this._value;\n }\n\n @Output() valueChanged = new EventEmitter<boolean>();\n\n private _value: any = undefined;\n\n constructor(@Self() @Optional() private _control: NgControl) {\n if (this._control) {\n this._control.valueAccessor = this;\n }\n }\n\n // eslint-disable-next-line @typescript-eslint/no-empty-function\n onChange = (event: any) => {};\n // eslint-disable-next-line @typescript-eslint/no-empty-function\n onTouched = () => {};\n\n registerOnChange(fn: any) {\n this.onChange = fn;\n }\n\n registerOnTouched(fn: any) {\n this.onTouched = fn;\n }\n\n writeValue(value: any) {\n this.value = value;\n }\n\n updateValueEvent(event: any) {\n event.preventDefault();\n if (this.disabled) return;\n const value = event?.target?.value || '';\n this._updateValue(value);\n }\n\n private _updateValue(value: any) {\n this.writeValue(value);\n this.onChange(value);\n this.valueChanged.emit(value);\n }\n\n // eslint-disable-next-line @typescript-eslint/no-empty-function\n setDisabledState(disabled: boolean) {}\n}\n","<div class=\"radio-group\">\n <div class=\"radio-group-label\" *ngIf=\"groupLabel\">\n <span>{{ groupLabel }}</span>\n </div>\n <div\n class=\"radio-group-content\"\n [ngClass]=\"\n vertical\n ? 'radio-group-content-vertical'\n : 'radio-group-content-horizontal'\n \">\n <label\n *ngFor=\"let option of options\"\n class=\"radio-group-content-button\"\n [ngStyle]=\"{\n cursor: option.disabled || disabled ? 'default' : 'pointer'\n }\">\n <input\n type=\"radio\"\n [disabled]=\"option.disabled || disabled\"\n [value]=\"option.value\"\n [checked]=\"value === option.value\"\n (change)=\"updateValueEvent($event)\" />\n <span class=\"radio-group-content-button-label\">{{ option.label }}</span>\n </label>\n </div>\n</div>\n","import { CommonModule } from '@angular/common';\nimport {\n Component,\n EventEmitter,\n Input,\n OnChanges,\n Optional,\n Output,\n Self\n} from '@angular/core';\nimport { getCSSColor } from '../../utils/colors-utils';\nimport { ControlValueAccessor, NgControl } from '@angular/forms';\n\n@Component({\n standalone: true,\n imports: [CommonModule],\n selector: 'cps-tag',\n templateUrl: './cps-tag.component.html',\n styleUrls: ['./cps-tag.component.scss']\n})\nexport class CpsTagComponent implements ControlValueAccessor, OnChanges {\n @Input() type: 'security' | 'classification' | 'custom' = 'custom'; // higher precedence over color\n @Input() label = '';\n @Input() color = '';\n @Input() disabled = false;\n @Input() selectable = false;\n @Input() set value(value: boolean) {\n this._value = value;\n this.onChange(value);\n }\n\n get value(): boolean {\n return this._value;\n }\n\n @Output() valueChanged = new EventEmitter<boolean>();\n\n classesList: string[] = [];\n tagColor = '';\n\n private _value = false;\n\n constructor(@Self() @Optional() private _control: NgControl) {\n if (this._control) {\n this._control.valueAccessor = this;\n }\n }\n\n ngOnChanges(): void {\n this.setClasses();\n }\n\n setClasses(): void {\n this.classesList = ['tag'];\n\n if (this.selectable) {\n this.classesList.push('tag--selectable');\n }\n if (this.disabled) {\n this.classesList.push('tag--disabled');\n }\n switch (this.type) {\n case 'security': {\n this.classesList.push('tag--security');\n break;\n }\n case 'classification': {\n this.classesList.push('tag--classification');\n break;\n }\n default:\n if (this.color) this.tagColor = getCSSColor(this.color);\n }\n }\n\n // eslint-disable-next-line @typescript-eslint/no-empty-function\n onChange = (event: any) => {};\n // eslint-disable-next-line @typescript-eslint/no-empty-function\n onTouched = () => {};\n\n registerOnChange(fn: any) {\n this.onChange = fn;\n }\n\n registerOnTouched(fn: any) {\n this.onTouched = fn;\n }\n\n writeValue(value: boolean) {\n this.value = value;\n }\n\n toggleSelected() {\n if (this.disabled || !this.selectable) return;\n this._updateValue(!this.value);\n }\n\n private _updateValue(value: boolean) {\n this.writeValue(value);\n this.onChange(value);\n this.valueChanged.emit(value);\n }\n}\n","<div\n [ngClass]=\"classesList\"\n [class.unselected]=\"!value && selectable\"\n [ngStyle]=\"{ 'border-color': tagColor || 'none' }\"\n (click)=\"toggleSelected()\">\n <p>{{ label }}</p>\n</div>\n","/*\n * Public API Surface of cps-ui-kit\n */\n\nexport * from './lib/components/cps-icon/cps-icon.component';\nexport * from './lib/components/cps-input/cps-input.component';\nexport * from './lib/components/cps-select/cps-select.component';\nexport * from './lib/components/cps-autocomplete/cps-autocomplete.component';\nexport * from './lib/components/cps-button/cps-button.component';\nexport * from './lib/components/cps-checkbox/cps-checkbox.component';\nexport * from './lib/components/cps-radio/cps-radio.component';\nexport * from './lib/components/cps-tag/cps-tag.component';\nexport * from './lib/components/cps-chip/cps-chip.component';\nexport * from './lib/utils/colors-utils';\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["i1","i2.LabelByValuePipe","i3"],"mappings":"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"}
|