cmat 0.0.70 → 0.0.71

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1 +1 @@
1
- {"version":3,"file":"cmat-components-custom-formly.mjs","sources":["../../../projects/cmat/components/custom-formly/extension/addons.extension.ts","../../../projects/cmat/components/custom-formly/wrappers/addons/addons.component.ts","../../../projects/cmat/components/custom-formly/wrappers/card/card.component.ts","../../../projects/cmat/components/custom-formly/wrappers/card/card.component.html","../../../projects/cmat/components/custom-formly/wrappers/expansion/expansion.component.ts","../../../projects/cmat/components/custom-formly/wrappers/expansion/expansion.component.html","../../../projects/cmat/components/custom-formly/wrappers/panel/panel.component.ts","../../../projects/cmat/components/custom-formly/wrappers/panel/panel.component.html","../../../projects/cmat/components/custom-formly/wrappers/form-field/form-field.component.ts","../../../projects/cmat/components/custom-formly/wrappers/form-field/form-field.component.html","../../../projects/cmat/components/custom-formly/types/button/button.component.ts","../../../projects/cmat/components/custom-formly/types/button/button.component.html","../../../projects/cmat/components/custom-formly/types/cascade/cascade.component.ts","../../../projects/cmat/components/custom-formly/types/cascade/cascade.component.html","../../../projects/cmat/components/custom-formly/types/checklist/checklist.component.ts","../../../projects/cmat/components/custom-formly/types/checklist/checklist.component.html","../../../projects/cmat/components/custom-formly/types/chips/chips.component.ts","../../../projects/cmat/components/custom-formly/types/chips/chips.component.html","../../../projects/cmat/components/custom-formly/types/color-picker/color-picker.component.ts","../../../projects/cmat/components/custom-formly/types/color-picker/color-picker.component.html","../../../projects/cmat/components/custom-formly/types/date-range/date-range.component.ts","../../../projects/cmat/components/custom-formly/types/date-range/date-range.component.html","../../../projects/cmat/components/custom-formly/types/datepicker/datepicker.component.ts","../../../projects/cmat/components/custom-formly/types/datepicker/datepicker.component.html","../../../projects/cmat/components/custom-formly/types/multicheckbox/multicheckbox.component.ts","../../../projects/cmat/components/custom-formly/types/multicheckbox/multicheckbox.component.html","../../../projects/cmat/components/custom-formly/types/number/number.component.ts","../../../projects/cmat/components/custom-formly/types/number/number.component.html","../../../projects/cmat/components/custom-formly/types/rating/rating.component.ts","../../../projects/cmat/components/custom-formly/types/rating/rating.component.html","../../../projects/cmat/components/custom-formly/types/radio/radio.component.ts","../../../projects/cmat/components/custom-formly/types/radio/radio.component.html","../../../projects/cmat/components/custom-formly/types/repeat/repeat.component.ts","../../../projects/cmat/components/custom-formly/types/repeat/repeat.component.html","../../../projects/cmat/components/custom-formly/types/select/select.component.ts","../../../projects/cmat/components/custom-formly/types/select/select.component.html","../../../projects/cmat/components/custom-formly/types/select-tree/select-tree.component.ts","../../../projects/cmat/components/custom-formly/types/select-tree/select-tree.component.html","../../../projects/cmat/components/custom-formly/types/select-table/select-table.component.ts","../../../projects/cmat/components/custom-formly/types/select-table/select-table.component.html","../../../projects/cmat/components/custom-formly/types/stepper/horizontal/stepper.component.ts","../../../projects/cmat/components/custom-formly/types/stepper/horizontal/stepper.component.html","../../../projects/cmat/components/custom-formly/types/stepper/vertical/stepper.component.ts","../../../projects/cmat/components/custom-formly/types/stepper/vertical/stepper.component.html","../../../projects/cmat/components/custom-formly/types/table/table.component.ts","../../../projects/cmat/components/custom-formly/types/table/table.component.html","../../../projects/cmat/components/custom-formly/types/tabs/tab.component.ts","../../../projects/cmat/components/custom-formly/types/tabs/tab.component.html","../../../projects/cmat/components/custom-formly/types/tags/tags.component.ts","../../../projects/cmat/components/custom-formly/types/tags/tags.component.html","../../../projects/cmat/components/custom-formly/types/textarea/textarea.component.ts","../../../projects/cmat/components/custom-formly/types/textarea/textarea.component.html","../../../projects/cmat/components/custom-formly/types/upload/upload.component.ts","../../../projects/cmat/components/custom-formly/types/upload/upload.component.html","../../../projects/cmat/components/custom-formly/types/quill/quill.component.ts","../../../projects/cmat/components/custom-formly/types/quill/quill.component.html","../../../projects/cmat/components/custom-formly/types/knob/knob.component.ts","../../../projects/cmat/components/custom-formly/types/knob/knob.component.html","../../../projects/cmat/components/custom-formly/types/slider/slider.component.ts","../../../projects/cmat/components/custom-formly/types/slider/slider.component.html","../../../projects/cmat/components/custom-formly/cmat-components-custom-formly.ts"],"sourcesContent":["import { FormlyFieldConfig } from '@ngx-formly/core';\r\nimport { isNil } from 'lodash-es';\r\n\r\nexport function addonsExtension(field: FormlyFieldConfig): void {\r\n if (!field.props || (field.wrappers?.includes('addons'))) {\r\n return;\r\n }\r\n\r\n if ((field.props.addonLeft && ((!isNil(field.props.addonLeft.icon) && field.props.addonLeft.icon !== '')\r\n || (!isNil(field.props.addonLeft.text)) && field.props.addonLeft.text !== ''))\r\n || (field.props.addonRight && ((!isNil(field.props.addonRight.icon) && field.props.addonRight.icon !== '')\r\n || (!isNil(field.props.addonRight.text)) && field.props.addonRight.text !== ''))) {\r\n field.wrappers = [...(field.wrappers ?? []), 'addons'];\r\n }\r\n}","import { Component, TemplateRef, ViewChild, AfterViewInit } from '@angular/core';\r\nimport { MatIconModule } from '@angular/material/icon';\r\nimport { FieldWrapper } from '@ngx-formly/core';\r\nimport { FormlyMaterialModule } from '@ngx-formly/material';\r\n\r\n@Component({\r\n selector: 'cmat-addons-wrapper',\r\n template: `\r\n <ng-template #matPrefix>\r\n @if(props.addonLeft){\r\n <span>\r\n @if(props.addonLeft.icon){\r\n <mat-icon [svgIcon]=\"props.addonLeft.icon\"></mat-icon>\r\n }\r\n @if(props.addonLeft.text){\r\n <span>{{ props.addonLeft.text }}</span>\r\n } \r\n \r\n </span>\r\n } \r\n </ng-template>\r\n\r\n <ng-container #fieldComponent></ng-container>\r\n\r\n <ng-template #matSuffix>\r\n @if(props.addonRight){\r\n <span>\r\n @if(props.addonRight.icon){\r\n <mat-icon [svgIcon]=\"props.addonRight.icon\"></mat-icon>\r\n }\r\n @if(props.addonRight.text) {\r\n <span>{{ props.addonRight.text }}</span>\r\n }\r\n </span>\r\n }\r\n </ng-template>\r\n `,\r\n imports: [MatIconModule, FormlyMaterialModule]\r\n})\r\nexport class CmatAddonsWrapperComponent extends FieldWrapper implements AfterViewInit {\r\n @ViewChild('matPrefix', { static: true }) matPrefix!: TemplateRef<any>;\r\n @ViewChild('matSuffix', { static: true }) matSuffix!: TemplateRef<any>;\r\n\r\n ngAfterViewInit(): void {\r\n if (this.matPrefix) {\r\n this.props.prefix = this.matPrefix;\r\n }\r\n\r\n if (this.matSuffix) {\r\n this.props.suffix = this.matSuffix;\r\n }\r\n }\r\n}","import { ChangeDetectionStrategy, Component } from '@angular/core';\r\nimport { MatCardModule } from '@angular/material/card';\r\nimport { FieldWrapper } from '@ngx-formly/core';\r\n\r\n@Component({\r\n selector: 'cmat-card-wrapper',\r\n templateUrl: './card.component.html',\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n imports: [MatCardModule]\r\n})\r\nexport class CmatCardWrapperComponent extends FieldWrapper {}\r\n","<mat-card class=\"dark:bg-white/5\">\r\n @if(props.label){\r\n <mat-card-title class=\"p-4\">{{ props.label }}</mat-card-title>\r\n }\r\n \r\n <mat-card-content>\r\n <ng-container #fieldComponent></ng-container>\r\n </mat-card-content> \r\n</mat-card>","import { ChangeDetectionStrategy, Component } from '@angular/core';\r\nimport { MatExpansionModule } from '@angular/material/expansion';\r\nimport { FieldWrapper } from '@ngx-formly/core';\r\n\r\n@Component({\r\n selector: 'cmat-expansion-wrapper',\r\n templateUrl: './expansion.component.html',\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n imports: [MatExpansionModule]\r\n})\r\nexport class CmatExpansionWrapperComponent extends FieldWrapper {}\r\n","<mat-expansion-panel [expanded]=\"true\">\r\n <mat-expansion-panel-header>\r\n <mat-panel-title>\r\n {{ to.label }}\r\n </mat-panel-title>\r\n <mat-panel-description>\r\n {{ to.description }}\r\n </mat-panel-description>\r\n </mat-expansion-panel-header>\r\n <ng-template #fieldComponent matExpansionPanelContent></ng-template>\r\n</mat-expansion-panel>","import { ChangeDetectionStrategy, Component } from '@angular/core';\r\nimport { FieldWrapper } from '@ngx-formly/core';\r\n\r\n@Component({\r\n selector: 'cmat-panel-wrapper',\r\n templateUrl: './panel.component.html',\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n imports: []\r\n})\r\nexport class CmatPanelWrapperComponent extends FieldWrapper {}\r\n","<h3 class=\"px-2\">{{ to.label }}</h3>\r\n<div>\r\n <ng-container #fieldComponent></ng-container>\r\n</div>","import { FocusMonitor } from '@angular/cdk/a11y';\r\nimport { CommonModule } from '@angular/common';\r\nimport { AfterViewInit, ChangeDetectionStrategy, Component, ElementRef, OnDestroy, OnInit, Renderer2, ViewChild, ViewEncapsulation, inject } from '@angular/core';\r\nimport { ReactiveFormsModule } from '@angular/forms';\r\nimport { MatFormField, MatFormFieldModule } from '@angular/material/form-field';\r\nimport { FieldWrapper, FormlyFieldConfig, FormlyModule, ɵdefineHiddenProp as defineHiddenProp } from '@ngx-formly/core';\r\nimport { FormlyFieldProps } from '@ngx-formly/material/form-field';\r\n\r\ninterface MatFormlyFieldConfig extends FormlyFieldConfig<CustomFormFieldProps> {\r\n _formField?: CmatFormFieldWrapperComponent;\r\n}\r\n\r\nexport interface CustomFormFieldProps extends FormlyFieldProps {\r\n showValidationMessage?: boolean;\r\n}\r\n\r\n@Component({\r\n selector: 'cmat-form-field-wrapper',\r\n templateUrl: './form-field.component.html',\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n styleUrls: ['./form-field.wrapper.scss'],\r\n encapsulation: ViewEncapsulation.None,\r\n imports: [MatFormFieldModule, ReactiveFormsModule, CommonModule, FormlyModule]\r\n})\r\nexport class CmatFormFieldWrapperComponent extends FieldWrapper<MatFormlyFieldConfig>\r\n implements OnInit, OnDestroy, AfterViewInit {\r\n @ViewChild(MatFormField, { static: true }) formField!: MatFormField;\r\n\r\n private _renderer = inject(Renderer2);\r\n private _elementRef = inject(ElementRef);\r\n private _focusMonitor = inject(FocusMonitor);\r\n\r\n constructor() {\r\n super();\r\n }\r\n\r\n ngOnInit(): void {\r\n defineHiddenProp(this.field, '_formField', this.formField);\r\n this._focusMonitor.monitor(this._elementRef, true).subscribe((origin) => {\r\n if (!origin && this.field.focus) {\r\n this.field.focus = false;\r\n }\r\n });\r\n }\r\n\r\n ngAfterViewInit(): void {\r\n // temporary fix for https://github.com/angular/material2/issues/7891\r\n if (this.formField.appearance !== 'outline' && this.props.hideFieldUnderline === true) {\r\n const underlineElement = this.formField._elementRef.nativeElement.querySelector('.mat-form-field-underline');\r\n underlineElement && this._renderer.removeChild(underlineElement.parentNode, underlineElement);\r\n }\r\n }\r\n\r\n ngOnDestroy(): void {\r\n delete this.field._formField;\r\n this._focusMonitor.stopMonitoring(this._elementRef);\r\n }\r\n}\r\n\r\n","<mat-form-field [hideRequiredMarker]=\"true\" [floatLabel]=\"$any(props.floatLabel)\" [appearance]=\"$any(props.appearance)\"\r\n [subscriptSizing]=\"$any(props.subscriptSizing)\" [color]=\"props.color ?? 'primary'\">\r\n <ng-container #fieldComponent></ng-container>\r\n @if(props.label && props.hideLabel !== true){\r\n <mat-label>\r\n {{ props.label }}\r\n @if(props.required && props.hideRequiredMarker !== true){\r\n <span aria-hidden=\"true\" class=\"mat-form-field-required-marker mat-mdc-form-field-required-marker\">*</span>\r\n }\r\n </mat-label>\r\n }\r\n\r\n @if(props.textPrefix){\r\n <ng-container matTextPrefix>\r\n <ng-container [ngTemplateOutlet]=\"props.textPrefix\" [ngTemplateOutletContext]=\"{ field: field }\"></ng-container>\r\n </ng-container>\r\n }\r\n\r\n @if(props.prefix){\r\n <ng-container matPrefix>\r\n <ng-container [ngTemplateOutlet]=\"props.prefix\" [ngTemplateOutletContext]=\"{ field: field }\"></ng-container>\r\n </ng-container>\r\n }\r\n\r\n @if(props.textSuffix){\r\n <ng-container matTextSuffix>\r\n <ng-container [ngTemplateOutlet]=\"props.textSuffix\" [ngTemplateOutletContext]=\"{ field: field }\"></ng-container>\r\n </ng-container>\r\n }\r\n\r\n @if(props.suffix){\r\n <ng-container matSuffix>\r\n <ng-container [ngTemplateOutlet]=\"props.suffix\" [ngTemplateOutletContext]=\"{ field: field }\"></ng-container>\r\n </ng-container>\r\n }\r\n\r\n @if(props.showValidationMessage){\r\n <mat-error>\r\n <formly-validation-message [field]=\"field\"></formly-validation-message>\r\n </mat-error>\r\n }\r\n\r\n @if(props.description || props.hintStart){\r\n <mat-hint>\r\n <ng-container [ngTemplateOutlet]=\"stringOrTemplate\" [ngTemplateOutletContext]=\"{ content: props.description || props.hintStart }\">\r\n </ng-container>\r\n </mat-hint>\r\n }\r\n\r\n @if(props.hintEnd){\r\n <mat-hint align=\"end\">\r\n <ng-container [ngTemplateOutlet]=\"stringOrTemplate\" [ngTemplateOutletContext]=\"{ content: props.hintEnd }\">\r\n </ng-container>\r\n </mat-hint>\r\n }\r\n</mat-form-field>\r\n\r\n<ng-template #stringOrTemplate let-content=\"content\">\r\n @if(!content.createEmbeddedView){\r\n <ng-container>{{ content }}</ng-container>\r\n }@else {\r\n <ng-container [ngTemplateOutlet]=\"content\" [ngTemplateOutletContext]=\"{ field: field }\"></ng-container>\r\n }\r\n</ng-template>","import { ChangeDetectionStrategy, Component, OnDestroy, OnInit, inject } from '@angular/core';\r\nimport { MatButtonModule } from '@angular/material/button';\r\nimport { MatSnackBar } from '@angular/material/snack-bar';\r\nimport { FieldTypeConfig } from '@ngx-formly/core';\r\nimport { FieldType } from '@ngx-formly/material/form-field';\r\nimport { isString } from 'lodash-es';\r\nimport { Subject, takeUntil } from 'rxjs';\r\nimport { CmatToastService, GlobalType } from 'cmat/components/toast';\r\nimport { CmatAlertMessage } from 'cmat/services/alert';\r\nimport { CmatMediaWatcherService } from 'cmat/services/media-watcher';\r\nimport { CustomFormFieldProps } from '../../wrappers/form-field/form-field.component';\r\n\r\ninterface ButtonProps extends CustomFormFieldProps {\r\n color?: 'primary' | 'accent' | 'warn';\r\n onClick?: any;\r\n}\r\n\r\n@Component({\r\n selector: 'cmat-button-type',\r\n templateUrl: './button.component.html',\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n imports: [MatButtonModule]\r\n})\r\nexport class CmatButtonTypeComponent extends FieldType<FieldTypeConfig<ButtonProps>> implements OnInit, OnDestroy {\r\n override defaultOptions = {\r\n props: {\r\n color: 'primary' as const\r\n }\r\n };\r\n\r\n private _cmatToastService = inject(CmatToastService);\r\n private _snackBar = inject(MatSnackBar);\r\n private _cmatMediaWatcherService = inject(CmatMediaWatcherService);\r\n\r\n private _isPhone: boolean;\r\n private _unsubscribeAll: Subject<any> = new Subject<any>();\r\n\r\n constructor() {\r\n super();\r\n }\r\n\r\n ngOnInit(): void {\r\n this._cmatMediaWatcherService.onMediaChange$\r\n .pipe(takeUntil(this._unsubscribeAll))\r\n .subscribe(({ matchingAliases }) => {\r\n this._isPhone = !matchingAliases.includes('md');\r\n });\r\n }\r\n override ngOnDestroy(): void {\r\n this._unsubscribeAll.next(void 0);\r\n this._unsubscribeAll.complete();\r\n }\r\n\r\n onClick($event: Event): void {\r\n $event.preventDefault();\r\n\r\n if (this.props.onClick) {\r\n if (isString(this.props.onClick)) {\r\n this._executeFunctionFromString(this.props.onClick, $event, this);\r\n }\r\n else {\r\n this.props.onClick($event);\r\n }\r\n }\r\n }\r\n\r\n showMessage(message: CmatAlertMessage | void): void {\r\n if (message == null) {\r\n this._cmatToastService.clearAll();\r\n\r\n return;\r\n }\r\n\r\n if (this._isPhone) {\r\n if (message) {\r\n this._snackBar.open(message.detail, '关闭', { duration: message.isPostionBottom ? 0 : 1000 });\r\n }\r\n } else {\r\n if (message)\r\n this._cmatToastService.addToast({\r\n title: message.summary, type: message.severity as GlobalType,\r\n message: message.detail, timeout: 2000, position: message.isPostionBottom ? 'bottom-right' : 'top-right'\r\n });\r\n }\r\n }\r\n\r\n private _executeFunctionFromString(funcString: string, event: Event, context?: any): void {\r\n try {\r\n // eslint-disable-next-line @typescript-eslint/no-implied-eval\r\n const func = new Function('event', 'context', `with (context) { ${funcString} }`);\r\n\r\n func(event, context);\r\n\r\n } catch (error) {\r\n console.error('Error executing function from string:', error);\r\n }\r\n }\r\n}","<button class=\"print:hidden\" matButton=\"filled\" [type]=\"props.type\" [color]=\"props.color\" [disabled]=\"disabled\" (click)=\"onClick($event)\">\r\n {{ to.label }}\r\n</button>","import { HttpClient } from '@angular/common/http';\r\nimport { ChangeDetectionStrategy, ChangeDetectorRef, Component, OnDestroy, OnInit, inject } from '@angular/core';\r\nimport { ReactiveFormsModule } from '@angular/forms';\r\nimport { FieldTypeConfig } from '@ngx-formly/core';\r\nimport { FieldType } from '@ngx-formly/material/form-field';\r\nimport { Subject, takeUntil } from 'rxjs';\r\nimport { CmatCascadeListComponent } from 'cmat/components/cascade';\r\nimport { CmatMediaWatcherService } from 'cmat/services/media-watcher';\r\nimport { CustomFormFieldProps } from '../../wrappers/form-field/form-field.component';\r\n\r\ninterface ChipsCascadeProps extends CustomFormFieldProps {\r\n clearable: boolean;\r\n fullLevels: boolean;\r\n changeOnSelect: boolean;\r\n domain?: {\r\n url?: string;\r\n code?: string;\r\n key?: string;\r\n value?: string;\r\n }\r\n}\r\n\r\n@Component({\r\n selector: 'cmat-cascade-type',\r\n templateUrl: './cascade.component.html',\r\n styleUrls: ['./cascade.component.scss'],\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n imports: [ReactiveFormsModule, CmatCascadeListComponent]\r\n})\r\nexport class CmatCascadeTypeComponent extends FieldType<FieldTypeConfig<ChipsCascadeProps>> implements OnInit, OnDestroy {\r\n \r\n\r\n override defaultOptions = {\r\n props: {\r\n clearable: false,\r\n fullLevels: true,\r\n changeOnSelect: false\r\n },\r\n };\r\n urlData: [] = [];\r\n isHandSet: boolean;\r\n\r\n private _http = inject(HttpClient);\r\n private _changeDetectorRef = inject(ChangeDetectorRef);\r\n private _cmatMediaWatcherService = inject(CmatMediaWatcherService);\r\n private _unsubscribeAll: Subject<any> = new Subject<any>();\r\n\r\n constructor() {\r\n super();\r\n }\r\n\r\n ngOnInit(): void {\r\n const url = this.props?.domain?.url;\r\n if (url && this.props?.domain?.code && this.props?.domain?.key && this.props?.domain?.value) {\r\n this._http.get(url).pipe(takeUntil(this._unsubscribeAll)).subscribe(\r\n (data: any) => {\r\n if (data) {\r\n const datas = data.filter((i: any) => {\r\n if (this.field.props?.domain?.key)\r\n return i[this.field.props?.domain?.key] === this.field.props?.domain?.code;\r\n\r\n return false;\r\n }\r\n );\r\n if (datas && this.field.props?.domain?.value) {\r\n this.urlData = datas[0][this.field.props?.domain?.value];\r\n } else {\r\n this.urlData = [];\r\n }\r\n } else {\r\n this.urlData = [];\r\n }\r\n this._changeDetectorRef.markForCheck();\r\n }\r\n );\r\n } else {\r\n this.urlData = [];\r\n\r\n this._changeDetectorRef.markForCheck();\r\n }\r\n\r\n this._cmatMediaWatcherService.onMediaChange$\r\n .pipe(takeUntil(this._unsubscribeAll))\r\n .subscribe(({ matchingAliases }) => {\r\n this.isHandSet = !matchingAliases.includes('lg');\r\n\r\n this._changeDetectorRef.markForCheck();\r\n });\r\n }\r\n\r\n override ngOnDestroy(): void {\r\n this._unsubscribeAll.next(void 0);\r\n this._unsubscribeAll.complete();\r\n }\r\n}","<cmat-cascade-list [formControl]=\"formControl\" [clearable]=\"props.clearable\" [fullLevels]=\"props.fullLevels\"\r\n [changeOnSelect]=\"props.changeOnSelect\" [placeholder]=\"placeholder\" [options]=\"urlData\" [tabIndex]=\"props.tabindex\"\r\n [required]=\"required\" [touchUi]=\"isHandSet\"></cmat-cascade-list>","import { NgClass, AsyncPipe } from '@angular/common';\r\nimport { HttpClient } from '@angular/common/http';\r\nimport { Component, OnInit, OnDestroy, ChangeDetectionStrategy, ViewEncapsulation, inject } from '@angular/core';\r\nimport { MatCheckboxModule } from '@angular/material/checkbox';\r\nimport { MatRippleModule } from '@angular/material/core';\r\nimport { MatIconModule } from '@angular/material/icon';\r\nimport { FieldTypeConfig } from '@ngx-formly/core';\r\nimport { FieldType } from '@ngx-formly/material/form-field';\r\nimport { isArray } from 'lodash-es';\r\nimport { Subject, BehaviorSubject, Observable } from 'rxjs';\r\nimport { takeUntil } from 'rxjs/operators';\r\nimport { CustomFormFieldProps } from '../../wrappers/form-field/form-field.component';\r\n\r\ninterface CheckListProps extends CustomFormFieldProps {\r\n showAllCheck: boolean;\r\n controlMaxHeight: boolean;\r\n domain?: {\r\n url?: string;\r\n code?: string;\r\n key?: string;\r\n value?: string;\r\n }\r\n}\r\n\r\n@Component({\r\n selector: 'cmat-checklist-type',\r\n templateUrl: './checklist.component.html',\r\n styleUrls: ['./checklist.component.scss'],\r\n encapsulation: ViewEncapsulation.None,\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n imports: [MatCheckboxModule, MatIconModule, NgClass, MatRippleModule, AsyncPipe]\r\n})\r\nexport class CmatCheckListTypeComponent extends FieldType<FieldTypeConfig<CheckListProps>> implements OnInit, OnDestroy {\r\n\r\n\r\n isIndeterminate = false;\r\n isChecked = false;\r\n\r\n urlData: [];\r\n optionsData: any[];\r\n checklist: any[] = [];\r\n filteredData: any[] = [];\r\n\r\n private _http = inject(HttpClient);\r\n private _filteredItems: BehaviorSubject<any[] | null> = new BehaviorSubject<any[] | null>(null);\r\n private _unsubscribeAll: Subject<void> = new Subject<void>();\r\n\r\n constructor() {\r\n super();\r\n }\r\n\r\n get filteredItems$(): Observable<any[] | null> {\r\n return this._filteredItems.asObservable();\r\n }\r\n\r\n get datas(): any[] {\r\n if (isArray(this.field.props?.options)) {\r\n return this.urlData?.length > 0 ? this.urlData : this.field.props?.options ?? [];\r\n } else {\r\n return this.urlData?.length > 0 ? this.urlData : this.optionsData || [];\r\n }\r\n }\r\n\r\n ngOnInit(): void {\r\n if (this.field.props?.options && !isArray(this.field.props?.options)) {\r\n this.field.props?.options.pipe(takeUntil(this._unsubscribeAll)).subscribe(\r\n (data) => {\r\n this.optionsData = data;\r\n }\r\n );\r\n }\r\n const url = this.field.props?.domain?.url;\r\n if (url && this.field.props?.domain?.code && this.field.props?.domain?.key && this.field.props?.domain?.value) {\r\n this._http.get(url).pipe(takeUntil(this._unsubscribeAll)).subscribe(\r\n (data: any) => {\r\n if (data) {\r\n const datas = data.filter((i: any) => {\r\n if (this.field.props?.domain?.key)\r\n return i[this.field.props?.domain?.key] === this.field.props?.domain?.code;\r\n\r\n return false;\r\n }\r\n );\r\n if (datas && this.field.props?.domain?.value) {\r\n this.urlData = datas[0][this.field.props?.domain?.value];\r\n } else {\r\n this.urlData = [];\r\n }\r\n } else {\r\n this.urlData = [];\r\n }\r\n this.filteredData = this.datas;\r\n\r\n this._filteredItems.next(this.filteredData);\r\n }\r\n );\r\n } else {\r\n this.urlData = [];\r\n this.filteredData = this.datas;\r\n\r\n this._filteredItems.next(this.filteredData);\r\n }\r\n\r\n this.formControl.valueChanges.pipe(takeUntil(this._unsubscribeAll)).subscribe(\r\n (value) => {\r\n this.checklist = value ?? [];\r\n\r\n this._getAllCheckCountState();\r\n }\r\n );\r\n }\r\n\r\n override ngOnDestroy(): void {\r\n this._unsubscribeAll.next(void (0));\r\n this._unsubscribeAll.complete();\r\n }\r\n\r\n trackByFn(index: number, item: any): any {\r\n return item.id ?? index;\r\n }\r\n\r\n filterByQuery(event: any): void {\r\n this.filteredData = this.datas.filter(data => data.value.toString().toLowerCase().includes(event) ?? data.label.toLowerCase().includes(event));\r\n this._filteredItems.next(this.filteredData);\r\n\r\n this._getAllCheckCountState();\r\n }\r\n\r\n toggleCheckList(data: any, event: any): void {\r\n event.preventDefault();\r\n\r\n if (data.disabled || this.props.disabled)\r\n return;\r\n\r\n const index = this.checklist.findIndex(item => item.value === data.value);\r\n if (index > -1) {\r\n this.checklist.splice(index, 1);\r\n } else {\r\n this.checklist = [...this.checklist, data];\r\n }\r\n\r\n this.formControl.setValue(this.checklist);\r\n }\r\n\r\n allCheckChange(check: boolean): void {\r\n if (check) {\r\n const itemsToAdd = this.filteredData.filter((t) => {\r\n const index = this.checklist.findIndex(item => item.value === t.value);\r\n return index < 0 && !t.disabled;\r\n });\r\n this.checklist = [...this.checklist, ...itemsToAdd];\r\n } else {\r\n this.checklist = this.checklist.filter((item) => {\r\n const existsInFiltered = this.filteredData.some(t => t.value === item.value);\r\n const shouldRemove = existsInFiltered && this.filteredData.find(t => t.value === item.value)?.disabled === false;\r\n return !shouldRemove;\r\n });\r\n }\r\n\r\n this.formControl.setValue(this.checklist);\r\n }\r\n\r\n isCheck(data: any): boolean {\r\n return this.formControl.value?.filter((i: { value: any; }) => i.value === data.value).length > 0;\r\n }\r\n\r\n private _getAllCheckCountState(): void {\r\n if (this.props.showAllCheck && !this.props.disabled) {\r\n let allCheckCount = 0;\r\n\r\n if (this.checklist?.length > 0) {\r\n this.filteredData.forEach((t) => {\r\n const index = this.checklist.findIndex(item => item.value === t.value && !t.disabled);\r\n if (index > -1) {\r\n allCheckCount += 1;\r\n }\r\n });\r\n\r\n if (this.filteredData.filter(i => !i.disabled).length === allCheckCount) {\r\n this.isChecked = true;\r\n this.isIndeterminate = false;\r\n } else if (allCheckCount === 0) {\r\n this.isChecked = false;\r\n this.isIndeterminate = false;\r\n } else {\r\n this.isChecked = false;\r\n this.isIndeterminate = true;\r\n }\r\n } else {\r\n this.checklist = [];\r\n\r\n this.isChecked = false;\r\n this.isIndeterminate = false;\r\n }\r\n }\r\n }\r\n}\r\n\r\n","<div class=\"flex flex-col\">\r\n <div class=\"p-2\">\r\n @if(props.label){\r\n <legend class=\"text-lg\">\r\n {{ props.label }}\r\n @if(props.required){\r\n <span>*</span>\r\n }\r\n </legend>\r\n }\r\n @if(props.description){\r\n <p>{{ props.description }}</p>\r\n }\r\n </div>\r\n\r\n <div class=\"w-full h-full rounded-sm border shadow-sm bg-card\" [tabIndex]=\"props.tabindex\">\r\n <div class=\"flex items-center m-1 mr-2 min-h-12 print:hidden\">\r\n @if (props.showAllCheck&&!props.disabled) {\r\n <div>\r\n <mat-checkbox class=\"flex items-center h-10 min-h-10 m-1\" [color]=\"'primary'\" [checked]=\"isChecked\"\r\n [indeterminate]=\"isIndeterminate\" (change)=\"allCheckChange($event.checked)\">\r\n </mat-checkbox>\r\n </div>\r\n }\r\n <div class=\"flex items-center w-full\">\r\n <mat-icon class=\"icon-size-5\" [svgIcon]=\"'heroicons_solid:magnifying-glass'\"></mat-icon>\r\n <div class=\"ml-2\">\r\n <input #query class=\"w-full min-w-0 py-1 border-none\" type=\"text\"\r\n placeholder=\"输入过滤信息\" (input)=\"filterByQuery(query.value)\">\r\n </div>\r\n </div>\r\n </div>\r\n <div class=\"border-t overflow-y-auto scrollbar-custom\"\r\n [ngClass]=\"props.controlMaxHeight?'max-h-64 sm:max-h-128 lg:max-h-64':''\">\r\n @if ((filteredItems$ | async); as filteredItems) {\r\n @if(filteredItems.length>0){\r\n @for (data of filteredItems; track trackByFn($index, data)) {\r\n <div role=\"presentation\" class=\"flex items-center pl-2 pr-4 py-2 cursor-pointer hover:bg-hover\" matRipple\r\n (click)=\"toggleCheckList(data,$event)\">\r\n <mat-checkbox class=\"flex items-center h-10 min-h-10 pointer-events-none\" disableRipple [color]=\"'primary'\"\r\n [checked]=\"isCheck(data)\" [value]=\"data\" [disabled]=\"data.disabled||props.disabled\">\r\n <div class=\"flex flex-col flex-auto\">\r\n <div class=\"font-medium leading-5 truncate\">{{data.label}}</div>\r\n </div>\r\n </mat-checkbox>\r\n </div>\r\n }\r\n } @else {\r\n <div\r\n class=\"flex flex-auto flex-col items-center justify-center bg-slate-100 dark:bg-transparent h-64 sm:h-128 lg:h-64\">\r\n <mat-icon class=\"icon-size-24\" [svgIcon]=\"'heroicons_outline:document-magnifying-glass'\"></mat-icon>\r\n <div class=\"mt-4 text-2xl font-bold tracking-tight text-secondary\">没有数据!</div>\r\n </div>\r\n }\r\n }\r\n </div>\r\n </div>\r\n</div>","import { HttpClient } from '@angular/common/http';\r\nimport { ChangeDetectionStrategy, Component, OnDestroy, OnInit, inject } from '@angular/core';\r\nimport { ReactiveFormsModule } from '@angular/forms';\r\nimport { FieldTypeConfig } from '@ngx-formly/core';\r\nimport { FieldType } from '@ngx-formly/material/form-field';\r\nimport { Subject, takeUntil } from 'rxjs';\r\nimport { CmatChipInputComponent } from 'cmat/components/chip-input';\r\nimport { CustomFormFieldProps } from '../../wrappers/form-field/form-field.component';\r\n\r\ninterface ChipsInputProps extends CustomFormFieldProps {\r\n hasAutocomplete?: boolean;\r\n autocompleteText?: string;\r\n domain?: {\r\n url?: string;\r\n code?: string;\r\n key?: string;\r\n value?: string;\r\n }\r\n}\r\n\r\n@Component({\r\n selector: 'cmat-chips-input-type',\r\n templateUrl: './chips.component.html',\r\n styleUrls: ['./chips.component.scss'],\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n imports: [ReactiveFormsModule, CmatChipInputComponent]\r\n})\r\nexport class CmatChipsInputTypeComponent extends FieldType<FieldTypeConfig<ChipsInputProps>> implements OnInit, OnDestroy {\r\n autocompleteUrlData: [];\r\n\r\n private _http = inject(HttpClient);\r\n private _unsubscribeAll: Subject<any> = new Subject<any>();\r\n\r\n constructor() {\r\n super();\r\n }\r\n\r\n get autocompleteText(): string[] {\r\n return this.autocompleteUrlData?.length > 0 ? this.autocompleteUrlData : this.props?.autocompleteText?.split(',') ?? [];\r\n }\r\n\r\n ngOnInit(): void {\r\n const url = this.props?.domain?.url;\r\n if (url && this.props?.domain?.code && this.props?.domain?.key && this.props?.domain?.value) {\r\n this._http.get(url).pipe(takeUntil(this._unsubscribeAll)).subscribe(\r\n (data: any) => {\r\n if (data) {\r\n const datas = data.filter((i: any) => {\r\n if (this.field.props?.domain?.key)\r\n return i[this.field.props?.domain?.key] === this.field.props?.domain?.code;\r\n\r\n return false;\r\n }\r\n );\r\n if (datas && this.field.props?.domain?.value) {\r\n this.autocompleteUrlData = datas[0][this.field.props?.domain?.value];\r\n } else {\r\n this.autocompleteUrlData = [];\r\n }\r\n } else {\r\n this.autocompleteUrlData = [];\r\n }\r\n }\r\n );\r\n } else {\r\n this.autocompleteUrlData = [];\r\n }\r\n }\r\n\r\n override ngOnDestroy(): void {\r\n this._unsubscribeAll.next(void 0);\r\n this._unsubscribeAll.complete();\r\n }\r\n}","<cmat-chip-input [hasAutocomplete]=\"props.hasAutocomplete??false\" [formControl]=\"formControl\"\r\n [placeholder]=\"placeholder\" [selectableOptions]=\"autocompleteText\" [tabIndex]=\"props.tabindex\" [required]=\"required\"></cmat-chip-input>","import { ChangeDetectionStrategy, Component } from '@angular/core';\r\nimport { ReactiveFormsModule } from '@angular/forms';\r\nimport { FieldTypeConfig } from '@ngx-formly/core';\r\nimport { FieldType } from '@ngx-formly/material';\r\nimport { CmatMaterialColorPickerComponent } from 'cmat/components/material-color-picker';\r\n\r\n@Component({\r\n selector: 'cmat-color-picker-type',\r\n templateUrl: './color-picker.component.html',\r\n styleUrls: ['./color-picker.component.scss'],\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n imports: [ReactiveFormsModule, CmatMaterialColorPickerComponent]\r\n})\r\nexport class CmatColorPickerTypeComponent extends FieldType<FieldTypeConfig> {\r\n}","<cmat-material-color-picker [title]=\"props.label??''\" [formControl]=\"formControl\" [readonly]=\"disabled\"\r\n [tabindex]=\"props.tabindex\"></cmat-material-color-picker>","import { ChangeDetectionStrategy, Component } from '@angular/core';\r\nimport { ReactiveFormsModule } from '@angular/forms';\r\nimport { FieldTypeConfig } from '@ngx-formly/core';\r\nimport { FieldType } from '@ngx-formly/material/form-field';\r\nimport { CmatDateRangeComponent } from 'cmat/components/date-range';\r\nimport { CustomFormFieldProps } from '../../wrappers/form-field/form-field.component';\r\n\r\ninterface DateRangeProps extends CustomFormFieldProps {\r\n dateFormat: string;\r\n timeFormat: string;\r\n timeRange: boolean;\r\n}\r\n\r\n@Component({\r\n selector: 'cmat-date-range-type',\r\n templateUrl: './date-range.component.html',\r\n styleUrls: ['./date-range.component.scss'],\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n imports: [CmatDateRangeComponent, ReactiveFormsModule]\r\n})\r\nexport class CmatDateRangeTypeComponent extends FieldType<FieldTypeConfig<DateRangeProps>>{\r\n override defaultOptions = {\r\n props: {\r\n dateFormat: 'YYYY/MM/DD',\r\n timeFormat: '24',\r\n timeRange: true\r\n },\r\n };\r\n}","<cmat-date-range [dateFormat]=\"props.dateFormat\" [timeFormat]=\"props.timeFormat\" [timeRange]=\"props.timeRange\" \r\n[formControl]=\"formControl\" [tabindex]=\"props.tabindex\" [readonly]=\"disabled\">\r\n</cmat-date-range>","import { ChangeDetectionStrategy, ChangeDetectorRef, Component, OnDestroy, OnInit, inject } from '@angular/core';\r\nimport { FormsModule, ReactiveFormsModule } from '@angular/forms';\r\nimport { MatInputModule } from '@angular/material/input';\r\nimport { FieldTypeConfig } from '@ngx-formly/core';\r\nimport { FieldType } from '@ngx-formly/material/form-field';\r\nimport { Subject, takeUntil } from 'rxjs';\r\nimport { CmatCalendarView, CmatDatetimepickerComponent, CmatDatetimepickerInputDirective, CmatDatetimepickerMode, CmatDatetimepickerToggleComponent, CmatDatetimepickerType } from 'cmat/components/material-datetimepicker';\r\nimport { CmatMediaWatcherService } from 'cmat/services/media-watcher';\r\nimport { CustomFormFieldProps } from '../../wrappers/form-field/form-field.component';\r\n\r\ninterface DatepickerProps extends CustomFormFieldProps {\r\n startView: CmatCalendarView;\r\n mode: CmatDatetimepickerMode;\r\n togglePosition: 'left' | 'right';\r\n timeInterval: number;\r\n type: CmatDatetimepickerType;\r\n multiYearSelector: boolean;\r\n twelvehour: boolean;\r\n timeInput: boolean;\r\n}\r\n\r\n@Component({\r\n selector: 'cmat-datepicker-type',\r\n templateUrl: './datepicker.component.html',\r\n styleUrls: ['./datepicker.component.scss'],\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n imports: [CmatDatetimepickerToggleComponent, CmatDatetimepickerInputDirective, CmatDatetimepickerComponent, MatInputModule, FormsModule, ReactiveFormsModule]\r\n})\r\nexport class CmatDatepickerTypeComponent extends FieldType<FieldTypeConfig<DatepickerProps>> implements OnInit, OnDestroy {\r\n override defaultOptions = {\r\n props: {\r\n startView: 'month' as const,\r\n mode: 'auto' as const,\r\n togglePosition: 'left' as const,\r\n timeInterval: 5,\r\n type: 'datetime' as const,\r\n multiYearSelector: false,\r\n disabled: false,\r\n timeInput: true,\r\n twelvehour: false\r\n }\r\n };\r\n\r\n isHandSet: boolean;\r\n\r\n private _changeDetectorRef = inject(ChangeDetectorRef);\r\n private _cmatMediaWatcherService = inject(CmatMediaWatcherService);\r\n\r\n private _unsubscribeAll: Subject<void> = new Subject<void>();\r\n\r\n constructor() {\r\n super();\r\n }\r\n\r\n ngOnInit(): void {\r\n this._cmatMediaWatcherService.onMediaChange$\r\n .pipe(takeUntil(this._unsubscribeAll))\r\n .subscribe(({ matchingAliases }) => {\r\n this.isHandSet = !matchingAliases.includes('lg');\r\n\r\n this._changeDetectorRef.markForCheck();\r\n });\r\n }\r\n\r\n override ngOnDestroy(): void {\r\n this._unsubscribeAll.next(void 0);\r\n this._unsubscribeAll.complete();\r\n }\r\n}","@if(props.togglePosition==='left'){\r\n<cmat-datetimepicker-toggle matPrefix [for]=\"datetimePicker\" [disabled]=\"disabled\"></cmat-datetimepicker-toggle>\r\n}\r\n\r\n<cmat-datetimepicker #datetimePicker openOnFocus=\"true\" [startView]=\"props.startView\" [mode]=\"props.mode\"\r\n [timeInterval]=\"props.timeInterval\" [twelvehour]=\"props.twelvehour\" [type]=\"props.type\"\r\n [multiYearSelector]=\"props.multiYearSelector\" [timeInput]=\"props.timeInput\" [touchUi]=\"isHandSet\"\r\n [disabled]=\"disabled\"></cmat-datetimepicker>\r\n\r\n<input autocomplete=\"false\" matInput [cmatDatetimepicker]=\"datetimePicker\" [required]=\"required\"\r\n [formControl]=\"formControl\" [placeholder]=\"placeholder\" />\r\n\r\n@if(props.togglePosition==='right'){\r\n<cmat-datetimepicker-toggle matSuffix [for]=\"datetimePicker\" [disabled]=\"disabled\"></cmat-datetimepicker-toggle>\r\n}","import { AsyncPipe } from '@angular/common';\r\nimport { HttpClient } from '@angular/common/http';\r\nimport { Component, ChangeDetectionStrategy, ViewChildren, QueryList, Type, OnDestroy, OnInit, inject } from '@angular/core';\r\nimport { MatCheckbox, MatCheckboxModule } from '@angular/material/checkbox';\r\nimport { FieldTypeConfig, FormlyFieldConfig } from '@ngx-formly/core';\r\nimport { FormlySelectModule } from '@ngx-formly/core/select';\r\nimport { FieldType } from '@ngx-formly/material/form-field';\r\nimport { BehaviorSubject, Observable, Subject, takeUntil } from 'rxjs';\r\nimport { CustomFormFieldProps } from '../../wrappers/form-field/form-field.component';\r\n\r\ninterface MultiCheckboxProps extends CustomFormFieldProps {\r\n labelPosition: 'before' | 'after';\r\n domain?: {\r\n url?: string;\r\n code?: string;\r\n key?: string;\r\n value?: string;\r\n }\r\n}\r\n\r\nexport interface FormlyMultiCheckboxFieldConfig extends FormlyFieldConfig<MultiCheckboxProps> {\r\n type: 'multicheckbox' | Type<CmatMultiCheckboxTypeComponent>;\r\n}\r\n\r\n@Component({\r\n selector: 'cmat-multicheckbox-type',\r\n templateUrl: './multicheckbox.component.html',\r\n styleUrls: ['./multicheckbox.component.scss'],\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n imports: [MatCheckboxModule, AsyncPipe, FormlySelectModule]\r\n})\r\nexport class CmatMultiCheckboxTypeComponent extends FieldType<FieldTypeConfig<MultiCheckboxProps>> implements OnInit, OnDestroy {\r\n @ViewChildren(MatCheckbox) checkboxes!: QueryList<MatCheckbox>;\r\n\r\n override defaultOptions = {\r\n props: {\r\n hideFieldUnderline: true,\r\n floatLabel: 'always' as const,\r\n color: 'accent' as const,\r\n labelPosition: 'after' as const\r\n },\r\n };\r\n private _http = inject(HttpClient);\r\n private _urlData: BehaviorSubject<any[]> = new BehaviorSubject<any[]>([]);\r\n private _unsubscribeAll: Subject<any> = new Subject<any>();\r\n\r\n constructor() {\r\n super();\r\n }\r\n\r\n get urlData$(): Observable<any[]> {\r\n return this._urlData.asObservable();\r\n }\r\n\r\n onChange(value: any, checked: boolean): void {\r\n this.formControl.markAsDirty();\r\n if (this.props.type === 'array') {\r\n this.formControl.patchValue(\r\n checked\r\n ? [...(this.formControl.value ?? []), value]\r\n : [...(this.formControl.value ?? [])].filter(o => o !== value),\r\n );\r\n } else {\r\n this.formControl.patchValue({ ...this.formControl.value, [value]: checked });\r\n }\r\n this.formControl.markAsTouched();\r\n }\r\n\r\n ngOnInit(): void {\r\n const url = this.field.props?.domain?.url;\r\n if (url && this.field.props?.domain?.code && this.field.props?.domain?.key && this.field.props?.domain?.value) {\r\n this._http.get(url).pipe(takeUntil(this._unsubscribeAll)).subscribe(\r\n (data: any) => {\r\n if (data) {\r\n const datas = data.filter((i: any) => {\r\n if (this.field.props?.domain?.key)\r\n return i[this.field.props?.domain?.key] === this.field.props?.domain?.code;\r\n\r\n return false;\r\n }\r\n );\r\n if (datas && this.field.props?.domain?.value) {\r\n this._urlData.next(datas[0][this.field.props?.domain?.value]);\r\n } else {\r\n this._urlData.next([]);\r\n }\r\n } else {\r\n this._urlData.next([]);\r\n }\r\n }\r\n );\r\n } else {\r\n this._urlData.next([]);\r\n }\r\n }\r\n\r\n override ngOnDestroy(): void {\r\n this._unsubscribeAll.next(void 0);\r\n this._unsubscribeAll.complete();\r\n }\r\n\r\n isChecked(option: any): any {\r\n const value = this.formControl.value;\r\n\r\n return value && (this.props.type === 'array' ? value.includes(option.value) : value[option.value]);\r\n }\r\n\r\n trackByFn(index: number): any {\r\n return index;\r\n }\r\n}\r\n","@if ((urlData$ | async); as urlData) {\r\n@for (option of (urlData.length > 0 ? urlData : (props.options | formlySelectOptions : field | async)); track\r\ntrackByFn($index)) {\r\n<mat-checkbox [tabIndex]=\"props.tabindex\" [color]=\"props.color\" [labelPosition]=\"props.labelPosition\"\r\n [checked]=\"isChecked(option)\" [disabled]=\"formControl.disabled || option.disabled\"\r\n (change)=\"onChange(option.value, $event.checked)\">\r\n {{ option.label }}\r\n</mat-checkbox>\r\n}\r\n}","import { ChangeDetectionStrategy, Component } from '@angular/core';\r\nimport { ReactiveFormsModule } from '@angular/forms';\r\nimport { MatInputModule } from '@angular/material/input';\r\nimport { FieldTypeConfig } from '@ngx-formly/core';\r\nimport { FieldType } from '@ngx-formly/material/form-field';\r\nimport { CmatDigitOnlyDirective } from 'cmat/directives/digit-only';\r\nimport { CustomFormFieldProps } from '../../wrappers/form-field/form-field.component';\r\n\r\ninterface NumberProps extends CustomFormFieldProps {\r\n decimal: boolean;\r\n min: number;\r\n max: number;\r\n}\r\n\r\n@Component({\r\n selector: 'cmat-number-type',\r\n templateUrl: './number.component.html',\r\n styleUrls: ['./number.component.scss'],\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n imports: [CmatDigitOnlyDirective, MatInputModule, ReactiveFormsModule]\r\n})\r\nexport class CmatNumberTypeComponent extends FieldType<FieldTypeConfig<NumberProps>>{\r\n override defaultOptions = {\r\n props: {\r\n decimal: false,\r\n min: -Infinity,\r\n max: Infinity\r\n },\r\n };\r\n}","<input matInput cmatDigitOnly [formControl]=\"formControl\" [readonly]=\"props.readonly\" [placeholder]=\"placeholder\" [tabIndex]=\"props.tabindex\" [required]=\"required\" [decimal]=\"props.decimal\" [allowNegatives]=\"true\" [allowPaste]=\"true\"\r\n [min]=\"props.min\" [max]=\"props.max\" [errorStateMatcher]=\"errorStateMatcher\">\r\n\r\n","import { NgStyle } from '@angular/common';\r\nimport { ChangeDetectionStrategy, Component } from '@angular/core';\r\nimport { ReactiveFormsModule } from '@angular/forms';\r\nimport { FieldTypeConfig } from '@ngx-formly/core';\r\nimport { FieldType } from '@ngx-formly/material/form-field';\r\nimport { CmatRatingComponent } from 'cmat/components/rating';\r\nimport { CustomFormFieldProps } from '../../wrappers/form-field/form-field.component';\r\n\r\ninterface RatingProps extends CustomFormFieldProps {\r\n stars: number;\r\n readonly: boolean;\r\n hover: boolean;\r\n half: boolean;\r\n customColor?: string;\r\n showMode?: 'horizontal' | 'vertical';\r\n}\r\n\r\n@Component({\r\n selector: 'cmat-rating-type',\r\n templateUrl: './rating.component.html',\r\n styleUrls: ['./rating.component.scss'],\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n imports: [CmatRatingComponent, ReactiveFormsModule, NgStyle]\r\n})\r\nexport class CmatRatingTypeComponent extends FieldType<FieldTypeConfig<RatingProps>>{\r\n override defaultOptions = {\r\n props: {\r\n stars: 5,\r\n readonly: false,\r\n hover: true,\r\n half: true\r\n },\r\n };\r\n\r\n}","@if(props.customColor&&props.customColor.indexOf('#')>-1){\r\n<div [ngStyle]=\"{'color': props.customColor}\">\r\n <cmat-rating [formControl]=\"formControl\" [tabIndex]=\"props.tabindex\" [stars]=\"props.stars\"\r\n [readonly]=\"props.readonly\" [hover]=\"props.hover\" [half]=\"props.half\" [showMode]=\"props.showMode\"></cmat-rating>\r\n</div>\r\n}@else{\r\n<cmat-rating [formControl]=\"formControl\" [tabIndex]=\"props.tabindex\" [stars]=\"props.stars\" [readonly]=\"props.readonly\"\r\n [hover]=\"props.hover\" [half]=\"props.half\" [color]=\"props.customColor\" [showMode]=\"props.showMode\"></cmat-rating>\r\n}","import { AsyncPipe } from '@angular/common';\r\nimport { HttpClient } from '@angular/common/http';\r\nimport { Component, ChangeDetectionStrategy, ViewChild, AfterViewInit, OnDestroy, Type, OnInit, inject } from '@angular/core';\r\nimport { ReactiveFormsModule } from '@angular/forms';\r\nimport { MatRadioGroup, MatRadioModule } from '@angular/material/radio';\r\nimport { FieldTypeConfig, FormlyFieldConfig, ɵobserve as observe } from '@ngx-formly/core';\r\nimport { FormlySelectModule } from '@ngx-formly/core/select';\r\nimport { FieldType } from '@ngx-formly/material/form-field';\r\nimport { BehaviorSubject, Observable, Subject, takeUntil } from 'rxjs';\r\nimport { CustomFormFieldProps } from '../../wrappers/form-field/form-field.component';\r\n\r\ninterface RadioProps extends CustomFormFieldProps {\r\n labelPosition: 'before' | 'after';\r\n domain?: {\r\n url?: string;\r\n code?: string;\r\n key?: string;\r\n value?: string;\r\n }\r\n}\r\n\r\nexport interface FormlyRadioFieldConfig extends FormlyFieldConfig<RadioProps> {\r\n type: 'radio' | Type<CmatRadioTypeComponent>;\r\n}\r\n\r\n@Component({\r\n selector: 'cmat-radio-type',\r\n templateUrl: './radio.component.html',\r\n styleUrls: ['./radio.component.scss'],\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n imports: [MatRadioModule, AsyncPipe, FormlySelectModule, ReactiveFormsModule]\r\n})\r\nexport class CmatRadioTypeComponent extends FieldType<FieldTypeConfig<RadioProps>> implements OnInit, AfterViewInit, OnDestroy {\r\n @ViewChild(MatRadioGroup, { static: true }) radioGroup!: MatRadioGroup;\r\n\r\n override defaultOptions = {\r\n props: {\r\n hideFieldUnderline: true,\r\n floatLabel: 'always' as const,\r\n tabindex: -1,\r\n labelPosition: 'after' as const\r\n },\r\n };\r\n\r\n private _http = inject(HttpClient);\r\n private focusObserver!: ReturnType<typeof observe>;\r\n private _urlData: BehaviorSubject<any[]> = new BehaviorSubject<any[]>([]);\r\n private _unsubscribeAll: Subject<any> = new Subject<any>();\r\n\r\n constructor() {\r\n super();\r\n }\r\n get urlData$(): Observable<any[]> {\r\n return this._urlData.asObservable();\r\n }\r\n ngOnInit(): void {\r\n const url = this.field.props?.domain?.url;\r\n if (url && this.field.props?.domain?.code && this.field.props?.domain?.key && this.field.props?.domain?.value) {\r\n this._http.get(url).pipe(takeUntil(this._unsubscribeAll)).subscribe(\r\n (data: any) => {\r\n if (data) {\r\n const datas = data.filter((i: any) => {\r\n if (this.field.props?.domain?.key)\r\n return i[this.field.props?.domain?.key] === this.field.props?.domain?.code;\r\n\r\n return false;\r\n }\r\n );\r\n if (datas && this.field.props?.domain?.value) {\r\n this._urlData.next(datas[0][this.field.props?.domain?.value]);\r\n } else {\r\n this._urlData.next([]);\r\n }\r\n } else {\r\n this._urlData.next([]);\r\n }\r\n }\r\n );\r\n } else {\r\n this._urlData.next([]);\r\n }\r\n }\r\n\r\n\r\n ngAfterViewInit(): void {\r\n this.focusObserver = observe(this.field, ['focus'], ({ currentValue }) => {\r\n if (this.props.tabindex === -1 && currentValue && this.radioGroup._radios.length > 0) {\r\n setTimeout(() => {\r\n const radio = this.radioGroup.selected ?? this.radioGroup._radios.first;\r\n radio.focus();\r\n });\r\n }\r\n });\r\n }\r\n\r\n override ngOnDestroy(): void {\r\n super.ngOnDestroy();\r\n this.focusObserver?.unsubscribe();\r\n this._unsubscribeAll.next(void 0);\r\n this._unsubscribeAll.complete();\r\n }\r\n\r\n trackByFn(index: number): any {\r\n return index;\r\n }\r\n}\r\n","<mat-radio-group [formControl]=\"formControl\" [required]=\"required\" [tabindex]=\"props.tabindex\">\r\n @if ((urlData$ | async); as urlData) {\r\n @for (option of (urlData.length > 0 ? urlData : (props.options | formlySelectOptions : field | async)); track\r\n trackByFn($index)) {\r\n <mat-radio-button [color]=\"props.color\" [labelPosition]=\"props.labelPosition\" [disabled]=\"option.disabled\"\r\n [value]=\"option.value\">\r\n {{ option.label }}\r\n </mat-radio-button>\r\n }\r\n }\r\n</mat-radio-group>","import { ChangeDetectionStrategy, Component } from '@angular/core';\r\nimport { MatButtonModule } from '@angular/material/button';\r\nimport { MatIconModule } from '@angular/material/icon';\r\nimport { FieldArrayType, FieldTypeConfig, FormlyModule } from '@ngx-formly/core';\r\nimport { CustomFormFieldProps } from '../../wrappers/form-field/form-field.component';\r\n\r\ninterface RepeatProps extends CustomFormFieldProps {\r\n addText: string;\r\n}\r\n\r\n@Component({\r\n selector: 'cmat-repeat-type',\r\n templateUrl: './repeat.component.html',\r\n styleUrls: ['./repeat.component.scss'],\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n imports: [FormlyModule, MatIconModule, MatButtonModule]\r\n})\r\nexport class CmatRepeatTypeComponent extends FieldArrayType<FieldTypeConfig<RepeatProps>> {\r\n override defaultOptions = {\r\n props: {\r\n addText: '新增'\r\n },\r\n };\r\n}\r\n","<div class=\"mb-2\" [tabIndex]=\"props.tabindex\">\r\n @if(props.label){\r\n <legend class=\"text-lg\">\r\n {{ props.label }}\r\n @if(props.required){\r\n <span>*</span>\r\n }\r\n </legend>\r\n }\r\n\r\n @if(props.description){\r\n <p>{{ props.description }}</p>\r\n }\r\n\r\n <div class=\"mb-2 h-1 border-solid border-b-2\"></div>\r\n <div class=\"flex flex-col repeat-body\">\r\n @for (field of field.fieldGroup; track $index) {\r\n <div class=\"flex flex-row repeat-item\">\r\n <formly-field class=\"repeat-field\" [field]=\"field\"></formly-field>\r\n @if(!props.disabled){\r\n <div class=\"flex items-center pl-2 print:hidden\">\r\n <button matIconButton color=\"warn\" matTooltip=\"删除\" (click)=\"remove($index)\">\r\n <mat-icon color=\"warn\" [svgIcon]=\"'heroicons_outline:trash'\"></mat-icon>\r\n </button>\r\n </div>\r\n }\r\n </div>\r\n }\r\n </div>\r\n\r\n @if(!props.disabled){\r\n <div class=\"mt-2 print:hidden\">\r\n <button matButton=\"filled\" color=\"primary\" (click)=\"add()\">{{ props.addText}}</button>\r\n </div>\r\n }\r\n\r\n</div>","import { AsyncPipe } from '@angular/common';\r\nimport { HttpClient } from '@angular/common/http';\r\nimport { Component, ChangeDetectionStrategy, OnDestroy, OnInit, inject } from '@angular/core';\r\nimport { FormControl, ReactiveFormsModule } from '@angular/forms';\r\nimport { MatCheckboxModule } from '@angular/material/checkbox';\r\nimport { MatSelectModule } from '@angular/material/select';\r\nimport { FieldTypeConfig } from '@ngx-formly/core';\r\nimport { FormlyFieldSelectProps } from '@ngx-formly/core/select';\r\nimport { FieldType } from '@ngx-formly/material/form-field';\r\nimport { isArray, isString, isUndefined } from 'lodash-es';\r\nimport { ReplaySubject, Subject, of, take, takeUntil } from 'rxjs';\r\nimport { CmatSelectSearchComponent } from 'cmat/components/select-search';\r\nimport { CustomFormFieldProps } from '../../wrappers/form-field/form-field.component';\r\n\r\ninterface SelectProps extends CustomFormFieldProps, FormlyFieldSelectProps {\r\n multiple?: boolean;\r\n disableOptionCentering?: boolean;\r\n typeaheadDebounceInterval?: number;\r\n search: boolean;\r\n canNull: boolean;\r\n showToggleAllCheckbox: boolean;\r\n domain?: {\r\n url?: string;\r\n code?: string;\r\n key?: string;\r\n value?: string;\r\n }\r\n}\r\n\r\n@Component({\r\n selector: 'cmat-select-search-type',\r\n templateUrl: './select.component.html',\r\n styleUrls: ['./select.component.scss'],\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n imports: [MatCheckboxModule, MatSelectModule, CmatSelectSearchComponent, ReactiveFormsModule, AsyncPipe]\r\n})\r\nexport class CmatSelectTypeComponent extends FieldType<FieldTypeConfig<SelectProps>> implements OnInit, OnDestroy {\r\n override defaultOptions = {\r\n props: {\r\n search: true,\r\n canNull: false,\r\n showToggleAllCheckbox: false\r\n },\r\n };\r\n\r\n optionsData: any[];\r\n\r\n filteredCustomDetails: ReplaySubject<any[]> = new ReplaySubject<any[]>(1);\r\n filteredCache: any[] = [];\r\n isIndeterminate = false;\r\n isChecked = false;\r\n multiFilterCtrl: FormControl = new FormControl<string>('');\r\n\r\n private _http = inject(HttpClient);\r\n private _urlData: [] = [];\r\n private _unsubscribeAll: Subject<void> = new Subject<void>();\r\n\r\n constructor() {\r\n super();\r\n }\r\n\r\n get datas(): any[] {\r\n if (isArray(this.field.props?.options)) {\r\n return this._urlData?.length > 0 ? this._urlData : this.field.props?.options || [];\r\n } else {\r\n return this._urlData?.length > 0 ? this._urlData : this.optionsData || [];\r\n }\r\n }\r\n\r\n ngOnInit(): void {\r\n if (this.field.props?.options && !isArray(this.field.props?.options)) {\r\n this.field.props?.options.pipe(takeUntil(this._unsubscribeAll)).subscribe(\r\n (data) => {\r\n this.optionsData = data;\r\n }\r\n );\r\n }\r\n\r\n const url = this.field.props?.domain?.url;\r\n if (url && this.field.props?.domain?.code && this.field.props?.domain?.key && this.field.props?.domain?.value) {\r\n this._http.get(url).pipe(takeUntil(this._unsubscribeAll)).subscribe(\r\n (data: any) => {\r\n if (data) {\r\n const datas = data.filter((i: any) => {\r\n if (this.field.props?.domain?.key)\r\n return i[this.field.props?.domain?.key] === this.field.props?.domain?.code;\r\n\r\n return false;\r\n }\r\n );\r\n if (datas && this.field.props?.domain?.value) {\r\n this._urlData = datas[0][this.field.props?.domain?.value];\r\n\r\n } else {\r\n this._urlData = [];\r\n }\r\n\r\n } else {\r\n this._urlData = [];\r\n }\r\n this.filteredCache = this.datas.slice();\r\n this.filteredCustomDetails.next(this.filteredCache);\r\n }\r\n );\r\n } else {\r\n this._urlData = [];\r\n this.filteredCache = this.datas.slice();\r\n this.filteredCustomDetails.next(this.filteredCache);\r\n }\r\n\r\n of(this.props.multiple).pipe(takeUntil(this._unsubscribeAll))\r\n .subscribe((multiple) => {\r\n if (!isUndefined(this.formControl.value) && !isArray(this.formControl.value) && multiple) {\r\n const value = [this.formControl.value];\r\n\r\n this.formControl.setValue(value);\r\n }\r\n });\r\n\r\n this.multiFilterCtrl.valueChanges\r\n .pipe(takeUntil(this._unsubscribeAll))\r\n .subscribe(() => {\r\n this.filterMulti();\r\n\r\n if (this.props.multiple)\r\n this.setToggleAllCheckboxState();\r\n });\r\n\r\n this.formControl.valueChanges\r\n .pipe(takeUntil(this._unsubscribeAll))\r\n .subscribe(() => {\r\n if (this.props.multiple)\r\n this.setToggleAllCheckboxState();\r\n });\r\n }\r\n\r\n ngOnDestroy(): void {\r\n this._unsubscribeAll.next(void (0));\r\n this._unsubscribeAll.complete();\r\n }\r\n\r\n getAriaLabelledby(): string {\r\n if (this.props.attributes?.['aria-labelledby']) {\r\n return this.props.attributes['aria-labelledby'] as string;\r\n }\r\n\r\n return this.formField?._labelId;\r\n }\r\n\r\n getAriaLabel(): string {\r\n return this.props.attributes?.['aria-label'] as string;\r\n }\r\n\r\n toggleSelectAll(selectAllValue: boolean): void {\r\n this.filteredCustomDetails.pipe(\r\n take(1),\r\n takeUntil(this._unsubscribeAll)\r\n )\r\n .subscribe((val) => {\r\n if (selectAllValue) {\r\n this.formControl.setValue(val.filter(o => !o.disabled));\r\n } else {\r\n this.formControl.setValue([]);\r\n }\r\n this.formControl.markAsDirty();\r\n });\r\n }\r\n\r\n filterMulti(): void {\r\n if (!this.datas) {\r\n return;\r\n }\r\n\r\n let search = this.multiFilterCtrl.value;\r\n if (!search) {\r\n this.filteredCache = this.datas.slice();\r\n this.filteredCustomDetails.next(this.filteredCache);\r\n return;\r\n } else {\r\n search = search.toLowerCase();\r\n }\r\n\r\n this.filteredCache = this.datas.filter(items => isString(items) ? items.toString().toLowerCase().includes(search) : (items?.value.toString().toLowerCase().includes(search) ?? items?.label.toString().toLowerCase().includes(search)));\r\n this.filteredCustomDetails.next(this.filteredCache);\r\n }\r\n\r\n setToggleAllCheckboxState(): void {\r\n let filteredLength = 0;\r\n if (this.formControl.value && this.props.search) {\r\n const cache = this.filteredCache.filter(o => !o.disabled);\r\n\r\n const v = isArray(this.formControl.value) || isUndefined(this.formControl.value) ? this.formControl.value : [this.formControl.value];\r\n if (v)\r\n cache.forEach((el) => {\r\n if (v.findIndex((t: any) => isString(t) ? el === t : (t?.value === el.value && t?.label === el.label)) > -1) {\r\n filteredLength++;\r\n }\r\n });\r\n\r\n this.isIndeterminate = filteredLength > 0 && filteredLength < cache.length;\r\n this.isChecked = filteredLength > 0 && filteredLength === cache.length;\r\n } else {\r\n this.isIndeterminate = false;\r\n this.isChecked = false;\r\n }\r\n }\r\n\r\n compareWithFn(o1: any, o2: any): boolean {\r\n return o1 && o2 ? o1?.label === o2?.label && o1?.value === o2?.value : o1 === o2;\r\n }\r\n}\r\n","@if(props.multiple){\r\n<mat-select #multiSelect multiple [id]=\"id\" [formControl]=\"formControl\" [placeholder]=\"props.placeholder??''\"\r\n [required]=\"required\" [tabIndex]=\"props.tabindex\" [compareWith]=\"compareWithFn\"\r\n [errorStateMatcher]=\"errorStateMatcher\" [aria-label]=\"getAriaLabel()\" [aria-labelledby]=\"getAriaLabelledby()\"\r\n [disableOptionCentering]=\"props.disableOptionCentering\"\r\n [typeaheadDebounceInterval]=\"props.typeaheadDebounceInterval\"\r\n [panelClass]=\"'overflow-y-auto scrollbar-custom'\">\r\n @if ((filteredCustomDetails | async); as customDetails) {\r\n @if (props.search) {\r\n <mat-option>\r\n <cmat-select-search [formControl]=\"multiFilterCtrl\" [showToggleAllCheckbox]=\"props.showToggleAllCheckbox\"\r\n [toggleAllCheckboxIndeterminate]=\"isIndeterminate\" [toggleAllCheckboxChecked]=\"isChecked\"\r\n (toggleAll)=\"toggleSelectAll($event)\">\r\n </cmat-select-search>\r\n </mat-option>\r\n }\r\n @if (customDetails?.length!==0&&props.canNull&&!props.multiple) {\r\n <mat-option>空</mat-option>\r\n }\r\n @for (i of customDetails; track $index) {\r\n @if(i.label){\r\n @if(i.group){\r\n <mat-optgroup [label]=\"i.label\">\r\n @for (child of i.group; track $index) {\r\n <mat-option [value]=\"child\" [disabled]=\"child.disabled\">\r\n {{ child.label }}\r\n </mat-option>\r\n }\r\n </mat-optgroup>\r\n }@else {\r\n <mat-option [value]=\"i\" [disabled]=\"i.disabled\">{{i.label}}</mat-option>\r\n }\r\n }@else {\r\n <mat-option [value]=\"i\">{{i}}</mat-option>\r\n }\r\n }\r\n }\r\n</mat-select>\r\n}@else {\r\n<mat-select #multiSelect [id]=\"id\" [formControl]=\"formControl\" [placeholder]=\"props.placeholder??''\"\r\n [required]=\"required\" [tabIndex]=\"props.tabindex\" [compareWith]=\"compareWithFn\"\r\n [errorStateMatcher]=\"errorStateMatcher\" [aria-label]=\"getAriaLabel()\" [aria-labelledby]=\"getAriaLabelledby()\"\r\n [disableOptionCentering]=\"props.disableOptionCentering\"\r\n [typeaheadDebounceInterval]=\"props.typeaheadDebounceInterval\"\r\n [panelClass]=\"'overflow-y-auto scrollbar-custom'\">\r\n @if ((filteredCustomDetails | async); as customDetails) {\r\n @if (props.search) {\r\n <mat-option>\r\n <cmat-select-search [formControl]=\"multiFilterCtrl\" [showToggleAllCheckbox]=\"props.showToggleAllCheckbox\"\r\n [toggleAllCheckboxIndeterminate]=\"isIndeterminate\" [toggleAllCheckboxChecked]=\"isChecked\"\r\n (toggleAll)=\"toggleSelectAll($event)\">\r\n </cmat-select-search>\r\n </mat-option>\r\n }\r\n @if (customDetails?.length!==0&&props.canNull&&!props.multiple) {\r\n <mat-option>空</mat-option>\r\n }\r\n @for (i of customDetails; track $index) {\r\n @if(i.label){\r\n @if(i.group){\r\n <mat-optgroup [label]=\"i.label\">\r\n @for (child of i.group; track $index) {\r\n <mat-option [value]=\"child\" [disabled]=\"child.disabled\">\r\n {{ child.label }}\r\n </mat-option>\r\n }\r\n </mat-optgroup>\r\n }@else {\r\n <mat-option [value]=\"i\" [disabled]=\"i.disabled\">{{i.label}}</mat-option>\r\n }\r\n }@else {\r\n <mat-option [value]=\"i\">{{i}}</mat-option>\r\n }\r\n }\r\n }\r\n</mat-select>\r\n}","import { HttpClient } from '@angular/common/http';\r\nimport { ChangeDetectionStrategy, ChangeDetectorRef, Component, OnDestroy, OnInit, inject } from '@angular/core';\r\nimport { ReactiveFormsModule } from '@angular/forms';\r\nimport { FieldTypeConfig } from '@ngx-formly/core';\r\nimport { FormlyFieldSelectProps } from '@ngx-formly/core/select';\r\nimport { FieldType } from '@ngx-formly/material';\r\nimport { Subject, takeUntil } from 'rxjs';\r\nimport { CmatSelectTreeComponent } from 'cmat/components/select-tree';\r\nimport { CustomFormFieldProps } from '../../wrappers/form-field/form-field.component';\r\n\r\ninterface SelectTreeProps extends CustomFormFieldProps, FormlyFieldSelectProps {\r\n multiple: boolean;\r\n search: boolean;\r\n canNull: boolean;\r\n showToggleAllCheckbox: boolean;\r\n expandable: boolean;\r\n customTriggerLabelTemplate: string;\r\n domain?: {\r\n url?: string;\r\n code?: string;\r\n key?: string;\r\n value?: string;\r\n }\r\n}\r\n\r\n@Component({\r\n selector: 'cmat-select-tree-type',\r\n templateUrl: './select-tree.component.html',\r\n styleUrls: ['./select-tree.component.scss'],\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n imports: [ReactiveFormsModule, CmatSelectTreeComponent]\r\n})\r\nexport class CmatSelectTreeTypeComponent extends FieldType<FieldTypeConfig<SelectTreeProps>> implements OnInit, OnDestroy {\r\n override defaultOptions = {\r\n props: {\r\n multiple: false,\r\n search: true,\r\n canNull: false,\r\n showToggleAllCheckbox: false,\r\n expandable: true,\r\n customTriggerLabelTemplate: '${name}'\r\n },\r\n };\r\n urlData: [] = [];\r\n\r\n private _http = inject(HttpClient);\r\n private _changeDetectorRef = inject(ChangeDetectorRef);\r\n private _unsubscribeAll: Subject<void> = new Subject<void>();\r\n\r\n constructor() {\r\n super();\r\n }\r\n\r\n ngOnInit(): void {\r\n const url = this.field.props?.domain?.url;\r\n if (url && this.field.props?.domain?.code && this.field.props?.domain?.key && this.field.props?.domain?.value) {\r\n this._http.get(url).pipe(takeUntil(this._unsubscribeAll)).subscribe(\r\n (data: any) => {\r\n if (data) {\r\n const datas = data.filter((i: any) => {\r\n if (this.field.props?.domain?.key)\r\n return i[this.field.props?.domain?.key] === this.field.props?.domain?.code;\r\n\r\n return false;\r\n }\r\n );\r\n if (datas && this.field.props?.domain?.value) {\r\n this.urlData = datas[0][this.field.props?.domain?.value];\r\n } else {\r\n this.urlData = [];\r\n }\r\n } else {\r\n this.urlData = [];\r\n }\r\n\r\n this._changeDetectorRef.markForCheck();\r\n }\r\n );\r\n } else {\r\n this.urlData = [];\r\n\r\n this._changeDetectorRef.markForCheck();\r\n }\r\n }\r\n\r\n ngOnDestroy(): void {\r\n this._unsubscribeAll.next(void 0);\r\n this._unsubscribeAll.complete();\r\n }\r\n}","<cmat-select-tree [formControl]=\"formControl\" [dataSource]=\"urlData\" [customTriggerLabelTemplate]=\"'${name}'\"\r\n [multiple]=\"props.multiple\" [overallSearchEnabled]=\"props.search\" [canNull]=\"props.canNull\"\r\n [showToggleAllCheckbox]=\"props.showToggleAllCheckbox\" [expandable]=\"props.expandable\" [placeholder]=\"placeholder\"\r\n [tabIndex]=\"props.tabindex\" [required]=\"required\"></cmat-select-tree>","import { HttpClient } from '@angular/common/http';\r\nimport { ChangeDetectionStrategy, ChangeDetectorRef, Component, OnDestroy, OnInit, inject } from '@angular/core';\r\nimport { ReactiveFormsModule } from '@angular/forms';\r\nimport { FieldTypeConfig } from '@ngx-formly/core';\r\nimport { FormlyFieldSelectProps } from '@ngx-formly/core/select';\r\nimport { FieldType } from '@ngx-formly/material';\r\nimport { Subject, takeUntil } from 'rxjs';\r\nimport { CmatSelectTableComponent, CmatSelectTableDataSource, CmatSelectTableRow } from 'cmat/components/select-table';\r\nimport { CustomFormFieldProps } from '../../wrappers/form-field/form-field.component';\r\n\r\ninterface SelectTableProps extends CustomFormFieldProps, FormlyFieldSelectProps {\r\n multiple: boolean;\r\n search: boolean;\r\n canNull: boolean;\r\n customTriggerLabelTemplate: string;\r\n domain?: {\r\n url?: string;\r\n code?: string;\r\n key?: string;\r\n value?: string;\r\n }\r\n}\r\n\r\n@Component({\r\n selector: 'cmat-select-table-type',\r\n templateUrl: './select-table.component.html',\r\n styleUrls: ['./select-table.component.scss'],\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n imports: [ReactiveFormsModule, CmatSelectTableComponent]\r\n})\r\nexport class CmatSelectTableTypeComponent extends FieldType<FieldTypeConfig<SelectTableProps>> implements OnInit, OnDestroy {\r\n override defaultOptions = {\r\n props: {\r\n multiple: false,\r\n search: true,\r\n canNull: false,\r\n customTriggerLabelTemplate: '${name}'\r\n },\r\n };\r\n urlData: CmatSelectTableDataSource<CmatSelectTableRow> = { columns: [], data: [] };\r\n\r\n private _http = inject(HttpClient);\r\n private _changeDetectorRef = inject(ChangeDetectorRef);\r\n private _unsubscribeAll: Subject<void> = new Subject<void>();\r\n\r\n constructor() {\r\n super();\r\n }\r\n\r\n ngOnInit(): void {\r\n const url = this.field.props?.domain?.url;\r\n if (url && this.field.props?.domain?.code && this.field.props?.domain?.key && this.field.props?.domain?.value) {\r\n this._http.get(url).pipe(takeUntil(this._unsubscribeAll)).subscribe(\r\n (data: any) => {\r\n if (data) {\r\n const datas = data.filter((i: any) => {\r\n if (this.field.props?.domain?.key)\r\n return i[this.field.props?.domain?.key] === this.field.props?.domain?.code;\r\n\r\n return false;\r\n }\r\n );\r\n if (datas && this.field.props?.domain?.value) {\r\n this.urlData = datas[0][this.field.props?.domain?.value];\r\n } else {\r\n this.urlData = { columns: [], data: [] };\r\n }\r\n } else {\r\n this.urlData = { columns: [], data: [] };\r\n }\r\n\r\n this._changeDetectorRef.markForCheck();\r\n }\r\n );\r\n } else {\r\n this.urlData = { columns: [], data: [] };\r\n\r\n this._changeDetectorRef.markForCheck();\r\n }\r\n }\r\n\r\n ngOnDestroy(): void {\r\n this._unsubscribeAll.next(void 0);\r\n this._unsubscribeAll.complete();\r\n }\r\n}","<cmat-select-table [formControl]=\"formControl\" [dataSource]=\"urlData\" [customTriggerLabelTemplate]=\"'${name}'\"\r\n [multiple]=\"props.multiple\" [overallSearchEnabled]=\"props.search\" [canNull]=\"props.canNull\"\r\n [placeholder]=\"placeholder\" [tabIndex]=\"props.tabindex\" [required]=\"required\"></cmat-select-table>","import { ChangeDetectionStrategy, Component } from '@angular/core';\r\nimport { ReactiveFormsModule } from '@angular/forms';\r\nimport { MatButtonModule } from '@angular/material/button';\r\nimport { MatIconModule } from '@angular/material/icon';\r\nimport { MatStepperModule } from '@angular/material/stepper';\r\nimport { FieldType, FieldTypeConfig, FormlyFieldConfig, FormlyModule } from '@ngx-formly/core';\r\nimport { StepperProps } from '../stepper.type';\r\n\r\n@Component({\r\n selector: 'cmat-stepper-horizontal-type',\r\n templateUrl: './stepper.component.html',\r\n styleUrls: ['./stepper.component.scss'],\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n imports: [FormlyModule, MatStepperModule, MatButtonModule, ReactiveFormsModule, MatIconModule]\r\n})\r\nexport class CmatStepperHorizontalTypeComponent extends FieldType<FieldTypeConfig<StepperProps>> {\r\n isValid(field: FormlyFieldConfig): boolean {\r\n if (field.key) {\r\n if (field.formControl)\r\n return field.formControl.valid;\r\n\r\n return true;\r\n }\r\n\r\n return field.fieldGroup ? field.fieldGroup.every(f => this.isValid(f)) : true;\r\n }\r\n}\r\n","<mat-horizontal-stepper [linear]=\"props.isLinear\" [tabIndex]=\"props.tabindex\">\r\n\r\n <ng-template matStepperIcon=\"edit\">\r\n <mat-icon class=\"icon-size-4\" [svgIcon]=\"'heroicons_solid:pencil'\"></mat-icon>\r\n </ng-template>\r\n <ng-template matStepperIcon=\"done\">\r\n <mat-icon class=\"icon-size-4\" [svgIcon]=\"'heroicons_outline:check'\"></mat-icon>\r\n </ng-template>\r\n\r\n @for (step of field.fieldGroup; track $index) {\r\n <mat-step [stepControl]=\"step.formControl!\" [editable]=\"step.props?.isEditable||$last\" [optional]=\"step.props?.isOptional\">\r\n <ng-template matStepLabel>{{ step.props?.label||'' }}</ng-template>\r\n <div class=\"py-2\">\r\n <formly-field [field]=\"step\"></formly-field>\r\n </div>\r\n <div class=\"mt-2 flex flex-row gap-2\">\r\n @if($index !== 0){\r\n <button matStepperPrevious matButton=\"filled\" color=\"primary\" type=\"button\">上一步</button>\r\n }\r\n\r\n @if(!$last){\r\n <button matStepperNext matButton=\"filled\" color=\"primary\" type=\"button\" [disabled]=\"!isValid(step)\">\r\n 下一步\r\n </button>\r\n }\r\n </div>\r\n </mat-step>\r\n }\r\n\r\n</mat-horizontal-stepper>","import { ChangeDetectionStrategy, Component } from '@angular/core';\r\nimport { ReactiveFormsModule } from '@angular/forms';\r\nimport { MatButtonModule } from '@angular/material/button';\r\nimport { MatIconModule } from '@angular/material/icon';\r\nimport { MatStepperModule } from '@angular/material/stepper';\r\nimport { FieldType, FieldTypeConfig, FormlyFieldConfig, FormlyModule } from '@ngx-formly/core';\r\nimport { StepperProps } from '../stepper.type';\r\n\r\n@Component({\r\n selector: 'cmat-stepper-vertical-type',\r\n templateUrl: './stepper.component.html',\r\n styleUrls: ['./stepper.component.scss'],\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n imports: [FormlyModule, MatStepperModule, MatButtonModule, ReactiveFormsModule, MatIconModule]\r\n})\r\nexport class CmatStepperVerticalTypeComponent extends FieldType<FieldTypeConfig<StepperProps>> {\r\n isValid(field: FormlyFieldConfig): boolean {\r\n if (field.key) {\r\n if (field.formControl)\r\n return field.formControl.valid;\r\n\r\n return true;\r\n }\r\n\r\n return field.fieldGroup ? field.fieldGroup.every(f => this.isValid(f)) : true;\r\n }\r\n}\r\n","<mat-vertical-stepper [linear]=\"props.isLinear\" [tabIndex]=\"props.tabindex\">\r\n <ng-template matStepperIcon=\"edit\">\r\n <mat-icon class=\"icon-size-4\" [svgIcon]=\"'heroicons_solid:pencil'\"></mat-icon>\r\n </ng-template>\r\n <ng-template matStepperIcon=\"done\">\r\n <mat-icon class=\"icon-size-4\" [svgIcon]=\"'heroicons_outline:check'\"></mat-icon>\r\n </ng-template>\r\n\r\n @for (step of field.fieldGroup; track $index) {\r\n <mat-step [stepControl]=\"step.formControl!\" [editable]=\"step.props?.isEditable||$last\" [optional]=\"step.props?.isOptional\">\r\n <ng-template matStepLabel>{{ step.props?.label||'' }}</ng-template>\r\n <div class=\"py-2\">\r\n <formly-field [field]=\"step\"></formly-field>\r\n </div>\r\n\r\n <div class=\"mt-2 flex flex-row gap-2\">\r\n @if($index!==0){\r\n <button matStepperPrevious matButton=\"filled\" color=\"primary\" type=\"button\">上一步</button>\r\n }\r\n\r\n @if(!$last){\r\n <button matStepperNext matButton=\"filled\" color=\"primary\" type=\"button\" [disabled]=\"!isValid(step)\">\r\n 下一步\r\n </button>\r\n }\r\n </div>\r\n </mat-step>\r\n }\r\n</mat-vertical-stepper>","import { CdkDrag } from '@angular/cdk/drag-drop';\r\nimport { NgTemplateOutlet } from '@angular/common';\r\nimport {\r\n Component,\r\n ChangeDetectionStrategy,\r\n OnInit,\r\n TemplateRef,\r\n ViewChild,\r\n ViewContainerRef,\r\n inject,\r\n ChangeDetectorRef,\r\n} from '@angular/core';\r\nimport { FormGroup, FormsModule, ReactiveFormsModule } from '@angular/forms';\r\nimport { MatButtonModule } from '@angular/material/button';\r\nimport { MatDialog, MatDialogModule, MatDialogRef } from '@angular/material/dialog';\r\nimport { MatIconModule } from '@angular/material/icon';\r\nimport { MatTable, MatTableModule } from '@angular/material/table';\r\nimport { MatTooltipModule } from '@angular/material/tooltip';\r\nimport { FieldArrayType, FieldTypeConfig, FormlyFieldConfig, FormlyModule } from '@ngx-formly/core';\r\nimport { CustomFormFieldProps } from '../../wrappers/form-field/form-field.component';\r\n\r\ninterface TableProps extends CustomFormFieldProps {\r\n addText: string;\r\n showColumn?: boolean;\r\n}\r\n\r\n@Component({\r\n selector: 'cmat-table-type',\r\n templateUrl: 'table.component.html',\r\n styleUrls: ['./table.component.scss'],\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n imports: [MatButtonModule, MatIconModule, MatTableModule, FormsModule, FormlyModule, CdkDrag,\r\n ReactiveFormsModule, MatDialogModule, NgTemplateOutlet, MatTooltipModule]\r\n})\r\nexport class CmatTableTypeComponent extends FieldArrayType<FieldTypeConfig<TableProps>> implements OnInit {\r\n @ViewChild('dialogRef') dialogRef: TemplateRef<any>;\r\n @ViewChild('table') table: MatTable<any>;\r\n\r\n inlineform = new FormGroup({});\r\n currentMode: any = {};\r\n currentIndex: number;\r\n\r\n columns: { key: string, label: string }[];\r\n displayedColumns: string[] = [];\r\n\r\n dialogType: 'add' | 'edit' | '' = '';\r\n\r\n override defaultOptions = {\r\n props: {\r\n addText: '新增'\r\n },\r\n };\r\n\r\n private _changeDetectorRef = inject(ChangeDetectorRef);\r\n private readonly _dialog = inject(MatDialog);\r\n private readonly _viewContainerRef = inject(ViewContainerRef);\r\n private _dialogRef: MatDialogRef<any>;\r\n\r\n constructor() {\r\n super();\r\n }\r\n get fieldArray(): FormlyFieldConfig[] {\r\n return (this.field.fieldArray as FormlyFieldConfig).fieldGroup!;\r\n }\r\n\r\n get key(): string {\r\n return (this.field.fieldArray as FormlyFieldConfig).fieldGroup![0].id!;\r\n }\r\n\r\n ngOnInit(): void {\r\n this.columns = (this.field.fieldArray as FormlyFieldConfig).fieldGroup![0].fieldGroup!.\r\n filter(field => field.props?.showColumn).map(field => ({\r\n key: field.key as string,\r\n label: field.props?.label ?? '',\r\n }));\r\n\r\n if (this.props.disabled) {\r\n this.displayedColumns = [...this.columns.map(column => column.key)];\r\n } else {\r\n this.displayedColumns = [...this.columns.map(column => column.key), 'operate'];\r\n }\r\n }\r\n\r\n addRow(): void {\r\n this._dialogRef = this._dialog\r\n .open(this.dialogRef, {\r\n panelClass: ['cmat-table-dialog-container'],\r\n viewContainerRef: this._viewContainerRef\r\n });\r\n this._dialogRef.afterClosed()\r\n .subscribe(() => { this.dialogType = ''; });\r\n\r\n\r\n this.dialogType = 'add';\r\n this.currentMode = {};\r\n this.inlineform.reset();\r\n }\r\n\r\n editRow(item: any, index: number): void {\r\n this.currentIndex = index;\r\n\r\n this._dialogRef = this._dialog\r\n .open(this.dialogRef, {\r\n panelClass: ['cmat-table-dialog-container'],\r\n viewContainerRef: this._viewContainerRef\r\n });\r\n this._dialogRef.afterClosed()\r\n .subscribe(() => { this.dialogType = ''; });\r\n\r\n this.dialogType = 'edit';\r\n this.currentMode = {\r\n [this.key]: item\r\n };\r\n }\r\n\r\n deleteRow(id: number): void {\r\n this.remove(id);\r\n\r\n this.table.renderRows();\r\n }\r\n\r\n confirm(): void {\r\n if (this.inlineform.invalid) {\r\n this.inlineform.markAllAsTouched();\r\n return;\r\n }\r\n\r\n if (this.dialogType == 'add' && this.currentMode[this.key]) {\r\n this.add(this.model?.length ?? 0, this.currentMode[this.key]);\r\n } else if (this.dialogType == 'edit' && this.currentMode[this.key]) {\r\n this.model![this.currentIndex] = this.currentMode[this.key];\r\n }\r\n this.table.renderRows();\r\n this._changeDetectorRef.markForCheck();\r\n\r\n this._dialogRef.close();\r\n }\r\n}","<div class=\"relative flex flex-col sm:flex-row flex-none sm:items-center sm:justify-between p-2 border-b mb-1\">\r\n <div>\r\n @if(props.label){\r\n <legend class=\"text-lg\">\r\n {{ props.label }}\r\n @if(props.required){\r\n <span>*</span>\r\n }\r\n </legend>\r\n }\r\n @if(props.description){\r\n <p>{{ props.description }}</p>\r\n }\r\n </div>\r\n\r\n @if(!props.disabled){\r\n <div class=\"flex shrink-0 items-center mt-6 sm:mt-0 sm:ml-4 print:hidden\">\r\n <button class=\"ml-4\" matButton=\"filled\" [color]=\"'primary'\" (click)=\"addRow()\">\r\n <mat-icon [svgIcon]=\"'heroicons_outline:plus'\"></mat-icon>\r\n <span class=\"ml-2\">{{props.addText}}</span>\r\n </button>\r\n </div>\r\n }\r\n</div>\r\n\r\n\r\n<table #table mat-table class=\"w-full\" [dataSource]=\"model||[]\" [tabIndex]=\"props.tabindex\">\r\n @for (column of columns; track $index) {\r\n <ng-container [matColumnDef]=\"column.key\">\r\n <th *matHeaderCellDef mat-header-cell> {{ column.label }} </th>\r\n <td *matCellDef=\"let element; let i = index\" mat-cell>\r\n <div class=\" has-label-on-mobile\" [attr.data-label]=\"column.label +':'\">\r\n {{element[column.key]}}\r\n </div>\r\n </td>\r\n </ng-container>\r\n }\r\n\r\n <ng-container matColumnDef=\"operate\" stickyEnd>\r\n <th *matHeaderCellDef mat-header-cell class=\"print:hidden\">操作</th>\r\n <td *matCellDef=\"let element; let i = index\" mat-cell class=\"w-24 print:hidden\">\r\n <div class=\"flex flex-col lg:w-full\">\r\n <div class=\"relative flex flex-row gap-2 lg:m-2 justify-center\">\r\n <button type=\"button\" class=\"w-8 min-h-8 h-8 max-w-8 lg:opacity-0 lg:group-hover:opacity-100\"\r\n matIconButton [matTooltip]=\"'编辑'\" (click)=\"editRow(element,i)\">\r\n <mat-icon class=\"icon-size-5\" color=\"primary\" [svgIcon]=\"'heroicons_solid:pencil-square'\">\r\n </mat-icon>\r\n </button>\r\n \r\n <button type=\"button\" class=\"w-8 min-h-8 h-8 max-w-8 lg:opacity-0 lg:group-hover:opacity-100\"\r\n matIconButton [matTooltip]=\"'移除'\" (click)=\"deleteRow(i)\">\r\n <mat-icon class=\"icon-size-5\" color=\"warn\" [svgIcon]=\"'heroicons_solid:trash'\"></mat-icon>\r\n </button>\r\n </div>\r\n </div>\r\n </td>\r\n </ng-container>\r\n\r\n <tr *matHeaderRowDef=\"displayedColumns\" mat-header-row></tr>\r\n <tr *matRowDef=\"let row; columns: displayedColumns;\" mat-row class=\"group\"></tr>\r\n</table>\r\n\r\n<ng-template #inlineTable>\r\n <div class=\"overflow-y-auto scrollbar-custom w-full\">\r\n <form [formGroup]=\"inlineform\">\r\n <formly-form [fields]=\"fieldArray\" [model]=\"currentMode\" [form]=\"inlineform\"></formly-form>\r\n </form>\r\n </div>\r\n</ng-template>\r\n\r\n<ng-template #dialogRef>\r\n <div mat-dialog-title cdkDrag class=\"-mt-6\" cdkDragRootElement=\".cdk-overlay-pane\" cdkDragHandle>\r\n <h2 class=\"pointer-events-none text-xl\">{{ props.label +'详细页'}}</h2>\r\n </div>\r\n\r\n <mat-dialog-content>\r\n <ng-container *ngTemplateOutlet=\"inlineTable\"></ng-container>\r\n </mat-dialog-content>\r\n\r\n <mat-dialog-actions>\r\n <div class=\"w-full flex justify-end items-center\">\r\n <button matButton=\"filled\" color=\"primary\" cdkFocusInitial (click)=\"confirm()\">\r\n 确定\r\n </button>\r\n <button matButton=\"outlined\" mat-dialog-close>\r\n 取消\r\n </button>\r\n </div>\r\n </mat-dialog-actions>\r\n</ng-template>","import { ChangeDetectionStrategy, Component } from '@angular/core';\r\nimport { MatTabsModule } from '@angular/material/tabs';\r\nimport { FieldTypeConfig, FormlyModule } from '@ngx-formly/core';\r\nimport { FieldType } from '@ngx-formly/material';\r\n\r\n@Component({\r\n selector: 'cmat-tab-type',\r\n templateUrl: './tab.component.html',\r\n styleUrls: ['./tab.component.scss'],\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n imports: [MatTabsModule, FormlyModule]\r\n})\r\nexport class CmatTabTypeComponent extends FieldType<FieldTypeConfig> {\r\n\r\n\r\n}\r\n","<mat-tab-group [tabIndex]=\"props.tabindex\">\r\n @for (tab of field.fieldGroup; track $index) {\r\n <mat-tab [label]=\"tab.props?.label||''\" [disabled]=\"tab.props?.disabled\">\r\n <div class=\"py-2\">\r\n <formly-field [field]=\"tab\"></formly-field>\r\n </div>\r\n </mat-tab>\r\n }\r\n</mat-tab-group>","import { Overlay, OverlayRef } from '@angular/cdk/overlay';\r\nimport { TemplatePortal } from '@angular/cdk/portal';\r\nimport { AsyncPipe } from '@angular/common';\r\nimport { HttpClient } from '@angular/common/http';\r\nimport { ChangeDetectionStrategy, ChangeDetectorRef, Component, ElementRef, OnDestroy, OnInit, TemplateRef, ViewChild, ViewContainerRef, inject } from '@angular/core';\r\nimport { MatCheckboxModule } from '@angular/material/checkbox';\r\nimport { MatIconModule } from '@angular/material/icon';\r\nimport { FieldTypeConfig } from '@ngx-formly/core';\r\nimport { FieldType } from '@ngx-formly/material/form-field';\r\nimport { isArray } from 'lodash-es';\r\nimport { Observable, Subject, takeUntil, BehaviorSubject } from 'rxjs';\r\nimport { CustomFormFieldProps } from '../../wrappers/form-field/form-field.component';\r\n\r\ninterface TagsProps extends CustomFormFieldProps {\r\n domain?: {\r\n url?: string;\r\n code?: string;\r\n key?: string;\r\n value?: string;\r\n }\r\n}\r\n\r\n@Component({\r\n selector: 'cmat-tags-type',\r\n templateUrl: './tags.component.html',\r\n styleUrls: ['./tags.component.scss'],\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n imports: [MatIconModule, MatCheckboxModule, AsyncPipe]\r\n})\r\nexport class CmatTagsTypeComponent extends FieldType<FieldTypeConfig<TagsProps>> implements OnInit, OnDestroy {\r\n @ViewChild('tagsPanelOrigin') private _tagsPanelOrigin: ElementRef;\r\n @ViewChild('tagsPanel') private _tagsPanel: TemplateRef<any>;\r\n\r\n urlData: [];\r\n optionsData: any[];\r\n\r\n private _http = inject(HttpClient);\r\n private _overlay = inject(Overlay);\r\n private _viewContainerRef = inject(ViewContainerRef);\r\n private _changeDetectorRef = inject(ChangeDetectorRef);\r\n private _filteredItems: BehaviorSubject<any[] | null> = new BehaviorSubject<any[] | null>(null);\r\n private _tagsPanelOverlayRef: OverlayRef;\r\n private _unsubscribeAll: Subject<any> = new Subject<any>();\r\n\r\n constructor() {\r\n super();\r\n }\r\n\r\n get filteredItems$(): Observable<any[] | null> {\r\n return this._filteredItems.asObservable();\r\n }\r\n\r\n get tags(): any[] {\r\n if (isArray(this.field.props?.options)) {\r\n return this.urlData?.length > 0 ? this.urlData : this.field.props?.options ?? [];\r\n } else {\r\n return this.urlData?.length > 0 ? this.urlData : this.optionsData || [];\r\n }\r\n }\r\n\r\n ngOnInit(): void {\r\n if (this.field.props?.options && !isArray(this.field.props?.options)) {\r\n this.field.props?.options.pipe(takeUntil(this._unsubscribeAll)).subscribe(\r\n (data) => {\r\n this.optionsData = data;\r\n }\r\n );\r\n }\r\n const url = this.field.props?.domain?.url;\r\n if (url && this.field.props?.domain?.code && this.field.props?.domain?.key && this.field.props?.domain?.value) {\r\n this._http.get(url).pipe(takeUntil(this._unsubscribeAll)).subscribe(\r\n (data: any) => {\r\n if (data) {\r\n const datas = data.filter((i: any) => {\r\n if (this.field.props?.domain?.key)\r\n return i[this.field.props?.domain?.key] === this.field.props?.domain?.code;\r\n\r\n return false;\r\n }\r\n );\r\n if (datas && this.field.props?.domain?.value) {\r\n this.urlData = datas[0][this.field.props?.domain?.value];\r\n } else {\r\n this.urlData = [];\r\n }\r\n } else {\r\n this.urlData = [];\r\n }\r\n\r\n this._filteredItems.next(this.tags);\r\n }\r\n );\r\n } else {\r\n this.urlData = [];\r\n this._filteredItems.next(this.tags);\r\n }\r\n }\r\n\r\n override ngOnDestroy(): void {\r\n this._unsubscribeAll.next(void 0);\r\n this._unsubscribeAll.complete();\r\n }\r\n\r\n openTagsPanel(): void {\r\n this._tagsPanelOverlayRef = this._overlay.create({\r\n backdropClass: '',\r\n hasBackdrop: true,\r\n scrollStrategy: this._overlay.scrollStrategies.block(),\r\n positionStrategy: this._overlay.position()\r\n .flexibleConnectedTo(this._tagsPanelOrigin.nativeElement)\r\n .withFlexibleDimensions(true)\r\n .withViewportMargin(64)\r\n .withLockedPosition(true)\r\n .withPositions([\r\n {\r\n originX: 'start',\r\n originY: 'bottom',\r\n overlayX: 'start',\r\n overlayY: 'top'\r\n }\r\n ])\r\n });\r\n\r\n this._tagsPanelOverlayRef.attachments().subscribe(() => {\r\n this._tagsPanelOverlayRef.overlayElement.querySelector('input')?.focus();\r\n });\r\n\r\n const templatePortal = new TemplatePortal(this._tagsPanel, this._viewContainerRef);\r\n\r\n this._tagsPanelOverlayRef.attach(templatePortal);\r\n\r\n // Subscribe to the backdrop click\r\n this._tagsPanelOverlayRef.backdropClick().subscribe(() => {\r\n\r\n // If overlay exists and attached...\r\n if (this._tagsPanelOverlayRef?.hasAttached()) {\r\n // Detach it\r\n this._tagsPanelOverlayRef.detach();\r\n\r\n // Reset the tag filter\r\n this._filteredItems.next(this.tags);\r\n }\r\n\r\n // If template portal exists and attached...\r\n if (templatePortal?.isAttached) {\r\n // Detach it\r\n templatePortal.detach();\r\n }\r\n });\r\n }\r\n\r\n filterTags(event: any): void {\r\n const value = event.target.value.toLowerCase();\r\n\r\n this._filteredItems.next(this.tags.filter(tag => tag.label.toString().toLowerCase().includes(value) ?? tag.value.toString().toLowerCase().includes(value)));\r\n }\r\n\r\n toggleTag(tag: any): void {\r\n if (tag.disabled)\r\n return;\r\n\r\n const data = this.formControl.value ?? [];\r\n const existsTag = data.findIndex((i: { value: any; }) => i.value === tag.value);\r\n if (existsTag > -1) {\r\n data.splice(existsTag, 1);\r\n }\r\n else {\r\n data.unshift(tag);\r\n }\r\n this.formControl.setValue(data);\r\n\r\n this._changeDetectorRef.markForCheck();\r\n }\r\n\r\n isCheck(tag: any): boolean {\r\n return this.formControl.value?.filter((i: { value: any; }) => i.value === tag.value).length > 0;\r\n }\r\n}\r\n","<div class=\"text-lg mb-2\">\r\n {{ props.label }}\r\n @if(props.required){\r\n <span>*</span>\r\n }\r\n</div>\r\n<div class=\"flex flex-wrap items-center -m-2\" [tabIndex]=\"props.tabindex\">\r\n <ng-container>\r\n @for (selectedItem of formControl.value; track $index) {\r\n <div\r\n class=\"flex items-center justify-center px-4 m-1.5 rounded-full leading-9 text-gray-500 bg-slate-100 dark:text-gray-300 dark:bg-slate-700\">\r\n <span class=\"text-md font-medium whitespace-nowrap\">{{selectedItem.label}}</span>\r\n </div>\r\n }\r\n\r\n <div #tagsPanelOrigin\r\n class=\"flex items-center justify-center px-4 m-1.5 rounded-full leading-9 cursor-pointer text-gray-500 bg-slate-100 dark:text-gray-300 dark:bg-slate-700 print:hidden\" role=\"presentation\" (click)=\"openTagsPanel()\">\r\n\r\n @if(formControl.value?.length&&!disabled){\r\n <mat-icon class=\"icon-size-5\" [svgIcon]=\"'heroicons_solid:pencil-square'\"></mat-icon>\r\n <span class=\"ml-1.5 text-md font-medium whitespace-nowrap\">编辑</span>\r\n }\r\n\r\n @if(!formControl.value?.length&&!disabled){\r\n <mat-icon class=\"icon-size-5\" [svgIcon]=\"'heroicons_solid:plus-circle'\"></mat-icon>\r\n <span class=\"ml-1.5 text-md font-medium whitespace-nowrap\">新增</span>\r\n }\r\n\r\n <ng-template #tagsPanel>\r\n <div class=\"w-60 rounded-sm border shadow-md bg-card\">\r\n <div class=\"flex items-center m-3 mr-2\">\r\n <div class=\"flex items-center\">\r\n <mat-icon class=\"icon-size-5\" [svgIcon]=\"'heroicons_solid:magnifying-glass'\">\r\n </mat-icon>\r\n <div class=\"ml-2\">\r\n <input class=\"w-full min-w-0 py-1 border-none\" type=\"text\" placeholder=\"输入标签名\"\r\n [maxLength]=\"30\" (input)=\"filterTags($event)\">\r\n </div>\r\n </div>\r\n </div>\r\n <div class=\"flex flex-col max-h-64 py-2 border-t overflow-y-auto scrollbar-custom\">\r\n @if ((filteredItems$ | async); as filteredItems) {\r\n @if(filteredItems.length>0){\r\n @for (tag of filteredItems; track $index) {\r\n <div role=\"presentation\"\r\n class=\"flex items-center h-10 min-h-10 pl-1 pr-4 cursor-pointer hover:bg-hover\"\r\n matRipple (click)=\"toggleTag(tag)\">\r\n <mat-checkbox class=\"flex items-center h-10 min-h-10\" [color]=\"'primary'\"\r\n [disabled]=\"tag.disabled\" [checked]=\"isCheck(tag)\">\r\n {{tag.label}}\r\n </mat-checkbox>\r\n </div>\r\n }\r\n }@else {\r\n <div class=\"flex flex-auto flex-col justify-center px-4 h-10 min-h-10\">\r\n 无结果\r\n </div>\r\n }\r\n }\r\n </div>\r\n </div>\r\n </ng-template>\r\n </div>\r\n </ng-container>\r\n</div>","import { ChangeDetectionStrategy, Component } from '@angular/core';\r\nimport { ReactiveFormsModule } from '@angular/forms';\r\nimport { MatInputModule } from '@angular/material/input';\r\nimport { FieldTypeConfig } from '@ngx-formly/core';\r\nimport { FieldType } from '@ngx-formly/material';\r\n\r\n@Component({\r\n selector: 'cmat-textarea-type',\r\n templateUrl: './textarea.component.html',\r\n styleUrls: ['./textarea.component.scss'],\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n imports: [MatInputModule, ReactiveFormsModule]\r\n})\r\nexport class CmatTextareaTypeComponent extends FieldType<FieldTypeConfig> {\r\n override defaultOptions = {\r\n props: {\r\n cols: 1,\r\n rows: 3,\r\n },\r\n };\r\n}","<textarea matInput [placeholder]=\"placeholder\" \r\n [readonly]=\"props.readonly\" [errorStateMatcher]=\"errorStateMatcher\"\r\n [cols]=\"props.cols\"\r\n [rows]=\"props.rows\"\r\n [tabindex]=\"props.tabindex\"\r\n [formControl]=\"formControl\" [required]=\"required\">\r\n</textarea>","import { AfterViewInit, ChangeDetectionStrategy, Component } from '@angular/core';\r\nimport { FormControl, ReactiveFormsModule, UntypedFormGroup } from '@angular/forms';\r\nimport { FieldTypeConfig } from '@ngx-formly/core';\r\nimport { FieldType } from '@ngx-formly/material/form-field';\r\nimport { isNil } from 'lodash-es';\r\nimport { CmatUploadQueueComponent } from 'cmat/components/upload';\r\nimport { CustomFormFieldProps } from '../../wrappers/form-field/form-field.component';\r\n\r\ninterface UploadProps extends CustomFormFieldProps {\r\n fileAlias: string;\r\n filePath: string;\r\n fileCategory: string;\r\n multiple: boolean;\r\n accept: string;\r\n editMode: boolean;\r\n autoUpload: boolean;\r\n}\r\n\r\n@Component({\r\n selector: 'cmat-upload-type',\r\n templateUrl: './upload.component.html',\r\n styleUrls: ['./upload.component.scss'],\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n imports: [CmatUploadQueueComponent, ReactiveFormsModule]\r\n})\r\nexport class CmatUploadTypeComponent extends FieldType<FieldTypeConfig<UploadProps>> implements AfterViewInit {\r\n override defaultOptions = {\r\n props: {\r\n fileAlias: 'fileData',\r\n filePath: 'path',\r\n fileCategory: '分类',\r\n multiple: true,\r\n accept: '',\r\n editMode: true,\r\n autoUpload: true\r\n }\r\n };\r\n\r\n baseGroup: UntypedFormGroup;\r\n\r\n ngAfterViewInit(): void {\r\n if (!this.baseGroup)\r\n this.baseGroup = this._getRootControl(this.formControl);\r\n\r\n if (!this.baseGroup.contains('uploadId')) {\r\n this.baseGroup.addControl('uploadId', new FormControl([]));\r\n this.baseGroup.addControl('removeId', new FormControl([]));\r\n }\r\n }\r\n\r\n upload(id: string): void {\r\n var rootValue = this.baseGroup.get('uploadId')?.value;\r\n\r\n if (rootValue&&!isNil(id)) {\r\n this.baseGroup.get('uploadId')?.setValue([id, ...rootValue])\r\n }\r\n }\r\n\r\n remove(id: string): void {\r\n var rootValue = this.baseGroup.get('removeId')?.value;\r\n\r\n if (rootValue&&!isNil(id)) {\r\n this.baseGroup.get('removeId')?.setValue([id, ...rootValue])\r\n }\r\n }\r\n\r\n updateData(i: any): void {\r\n const data = Array.isArray(i) ? i : [i];\r\n this.formControl.setValue(data.map((j) => {\r\n if (j.id)\r\n return {\r\n id: j.id,\r\n name: j.name,\r\n type: j.type,\r\n size: j.size\r\n };\r\n else\r\n return j;\r\n }));\r\n }\r\n\r\n private _getRootControl(baseControl: any): UntypedFormGroup {\r\n if (baseControl.parent) {\r\n return this._getRootControl(baseControl.parent);\r\n }\r\n\r\n return baseControl;\r\n }\r\n}","<cmat-upload-queue [tabindex]=\"props.tabindex\" [fileAlias]=\"props.fileAlias\"\r\n [filePath]=\"props.filePath\" [required]=\"required\" [fileCategory]=\"props.fileCategory\" [multiple]=\"props.multiple\"\r\n [accept]=\"props.accept\" [title]=\"props.label??'附件'\" [editMode]=\"props.editMode&&!disabled\" [filesData]=\"formControl.value\"\r\n [autoUpload]=\"props.autoUpload\" (outputUploadIdEvent)=\"upload($event)\" (outputRemoveIdEvent)=\"remove($event)\" (outputFilesDataEvent)=\"updateData($event)\">\r\n</cmat-upload-queue>","import { HttpEventType } from '@angular/common/http';\r\nimport { AfterViewInit, ChangeDetectionStrategy, ChangeDetectorRef, Component, ElementRef, OnDestroy, ViewChild, inject } from '@angular/core';\r\nimport { FormControl, ReactiveFormsModule, UntypedFormGroup } from '@angular/forms';\r\nimport BlotFormatter from '@enzedonline/quill-blot-formatter2';\r\nimport { FieldTypeConfig } from '@ngx-formly/core';\r\nimport { FieldType } from '@ngx-formly/material/form-field';\r\nimport { isNil } from 'lodash-es';\r\nimport { QuillModule, QuillModules } from 'ngx-quill';\r\nimport Quill from 'quill';\r\nimport QuillImageDropAndPaste from 'quill-image-drop-and-paste';\r\nimport { takeUntil, Subject } from 'rxjs';\r\nimport { CmatFilesUtilService, FileModel } from 'cmat/components/upload';\r\nimport { CmatUrlStateConfigService, IUrlStateConfig } from 'cmat/services/config';\r\nimport { CmatUtilsService } from 'cmat/services/utils';\r\nimport { CustomFormFieldProps } from '../../wrappers/form-field/form-field.component';\r\n\r\nQuill.register('modules/blotFormatter', BlotFormatter);\r\nQuill.register('modules/imageDropAndPaste', QuillImageDropAndPaste);\r\n\r\ninterface QuillProps extends CustomFormFieldProps {\r\n fileAlias: string;\r\n filePath: string;\r\n}\r\n\r\n@Component({\r\n selector: 'cmat-quill-type',\r\n templateUrl: './quill.component.html',\r\n styleUrls: ['./quill.component.scss'],\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n imports: [ReactiveFormsModule, QuillModule]\r\n})\r\nexport class CmatQuillTypeComponent extends FieldType<FieldTypeConfig<QuillProps>> implements OnDestroy, AfterViewInit {\r\n @ViewChild('imgInput') private imgInput: ElementRef<HTMLElement>;\r\n @ViewChild('videoInput') private videoInput: ElementRef<HTMLElement>;\r\n\r\n quillModules: QuillModules = {\r\n toolbar: {\r\n container: [\r\n ['bold', 'italic', 'underline'],\r\n [{ 'size': ['small', false, 'large', 'huge'] }],\r\n [{ 'header': [1, 2, 3, 4, 5, 6, false] }],\r\n [{ 'color': [] }, { 'background': [] }],\r\n [{ 'font': [] }],\r\n [{ 'align': [] }],\r\n ['clean'],\r\n ['link', 'image', 'video']\r\n ],\r\n handlers: {\r\n image: this._imgFileHandler.bind(this),\r\n video: this._videoFileHandler.bind(this)\r\n },\r\n },\r\n clipboard: {\r\n matchVisual: false,\r\n },\r\n blotFormatter: {\r\n\r\n },\r\n imageDropAndPaste: {\r\n handler: this._dropFileHandler.bind(this)\r\n }\r\n };\r\n\r\n override defaultOptions = {\r\n props: {\r\n fileAlias: 'fileData',\r\n filePath: 'path'\r\n }\r\n };\r\n\r\n baseGroup: UntypedFormGroup;\r\n\r\n private _fileService = inject(CmatFilesUtilService);\r\n private _urlStateConfigService = inject(CmatUrlStateConfigService);\r\n private _changeDetectorRef = inject(ChangeDetectorRef);\r\n\r\n private _editorInstance: any;\r\n private _imgIds: string[] = [];\r\n private _config: IUrlStateConfig;\r\n private _unsubscribeAll: Subject<any> = new Subject<any>();\r\n constructor() {\r\n super();\r\n\r\n this._urlStateConfigService.config$\r\n .pipe(takeUntil(this._unsubscribeAll))\r\n .subscribe((config: IUrlStateConfig) => {\r\n this._config = config;\r\n });\r\n }\r\n\r\n override ngOnDestroy(): void {\r\n this._unsubscribeAll.next(void 0);\r\n this._unsubscribeAll.complete();\r\n }\r\n\r\n ngAfterViewInit(): void {\r\n if (!this.baseGroup)\r\n this.baseGroup = this._getRootControl(this.formControl);\r\n\r\n if (!this.baseGroup.contains('uploadId')) {\r\n this.baseGroup.addControl('uploadId', new FormControl([]));\r\n this.baseGroup.addControl('removeId', new FormControl([]));\r\n }\r\n }\r\n\r\n fileChangeEvent(file: any): void {\r\n const fileModel = {\r\n id: null,\r\n fileName: file.name,\r\n length: file.size,\r\n isPublic:false,\r\n fileCategory: 'Quill',\r\n filePath: this.props.filePath,\r\n fileType: 'file',\r\n data: file\r\n } as FileModel;\r\n\r\n fileModel.fileType = CmatUtilsService.getFileType(file.type);\r\n\r\n const formData = new FormData();\r\n\r\n formData.set('fileData', file, file.name);\r\n formData.append('fileInfo', JSON.stringify(fileModel));\r\n\r\n this._fileService.uploadFile(formData).pipe(\r\n takeUntil(this._unsubscribeAll)\r\n ).subscribe((event: any) => {\r\n if (event.type === HttpEventType.Response) {\r\n this._editorInstance.insertEmbed(this._editorInstance.getSelection(true).index, this._getMediaType(file.type), `${this._config.fileUrl}/download/quill/${event.body.id}`);\r\n this._editorInstance.setSelection(this._editorInstance.getSelection(true).index + 1);\r\n this.formControl.setValue(this._editorInstance.container.innerHTML);\r\n\r\n this._upload(event.body.id);\r\n }\r\n\r\n this._changeDetectorRef.markForCheck();\r\n });\r\n }\r\n\r\n editorCreated(editorInstance: any): void {\r\n this._editorInstance = editorInstance;\r\n\r\n const dom = document.createElement('DIV');\r\n dom.innerHTML = editorInstance.container.innerHTML;\r\n const fileDom = dom.querySelectorAll('img, video');\r\n fileDom.forEach((i) => {\r\n if ((i as HTMLMediaElement).src.includes(this._config.fileUrl)) {\r\n this._imgIds.push((i as HTMLMediaElement).src.substring(`${this._config.fileUrl}/download/quill/`.length, (i as HTMLMediaElement).src.length));\r\n }\r\n });\r\n }\r\n\r\n contentChanged(editorInstance: any): void {\r\n const dom = document.createElement('DIV');\r\n\r\n dom.innerHTML = editorInstance.editor.container.innerHTML;\r\n const fileDom = dom.querySelectorAll('img, video');\r\n\r\n const arr: string[] = [];\r\n\r\n fileDom.forEach((i) => {\r\n if ((i as HTMLMediaElement).src.includes(this._config.fileUrl)) {\r\n const id = (i as HTMLMediaElement).src.substring(`${this._config.fileUrl}/download/quill/`.length, (i as HTMLMediaElement).src.length);\r\n this._imgIds.splice(this._imgIds.findIndex(k=>k===id), 1);\r\n arr.push(id);\r\n }\r\n });\r\n\r\n this._imgIds.forEach((i) => {\r\n var rootValue = this.baseGroup.get('removeId')?.value;\r\n\r\n if (rootValue&&!isNil(i)) {\r\n this.baseGroup.get('removeId')?.setValue([i, ...rootValue])\r\n }\r\n });\r\n\r\n this._imgIds = arr;\r\n }\r\n\r\n private _imgFileHandler(): void {\r\n this.imgInput.nativeElement.click();\r\n }\r\n\r\n private _videoFileHandler(): void {\r\n this.videoInput.nativeElement.click();\r\n }\r\n\r\n private _dropFileHandler(dataUrl: string, type: string, fileData: any): void {\r\n this.fileChangeEvent(fileData.toFile());\r\n }\r\n\r\n private _upload(id: string): void {\r\n var rootValue = this.baseGroup.get('uploadId')?.value;\r\n\r\n if (rootValue&&!isNil(id)) {\r\n this.baseGroup.get('uploadId')?.setValue([id, ...rootValue])\r\n }\r\n }\r\n\r\n private _getMediaType(accept: string): 'file' | 'image' | 'video' {\r\n let fileType = 'file';\r\n switch (accept) {\r\n case 'image/jpeg':\r\n case 'image/jpg':\r\n case 'image/png':\r\n case 'image/gif':\r\n fileType = 'image';\r\n break;\r\n case 'video/mpeg':\r\n case 'video/mp4':\r\n case 'audio/mp4':\r\n fileType = 'video';\r\n break;\r\n }\r\n\r\n return fileType as 'file' | 'image' | 'video';\r\n }\r\n\r\n private _getRootControl(baseControl: any): UntypedFormGroup {\r\n if (baseControl.parent) {\r\n return this._getRootControl(baseControl.parent);\r\n }\r\n\r\n return baseControl;\r\n }\r\n}","<quill-editor class=\"w-full\" defaultEmptyValue=\"\" [formControl]=\"formControl\" [required]=\"required\" [placeholder]=\"placeholder\" [tabindex]=\"props.tabindex\"\r\n [readOnly]=\"disabled\" [modules]=\"quillModules\" (onEditorCreated)=\"editorCreated($event)\"\r\n (onContentChanged)=\"contentChanged($event)\">\r\n <input #imgInput type=\"file\" accept=\"image/png,image/jpeg,image/jpg,image/gif\" class=\"hidden\" (change)=\"fileChangeEvent(imgInput.files?.[0])\" />\r\n <input #videoInput type=\"file\" accept=\"video/mpeg,video/mp4,audio/mp4\" class=\"hidden\" (change)=\"fileChangeEvent(videoInput.files?.[0])\" />\r\n</quill-editor>","import { ChangeDetectionStrategy, Component } from '@angular/core';\r\nimport { ReactiveFormsModule } from '@angular/forms';\r\nimport { FieldTypeConfig } from '@ngx-formly/core';\r\nimport { FieldType } from '@ngx-formly/material/form-field';\r\nimport { CmatKnobInputComponent } from 'cmat/components/knob-input';\r\nimport { CustomFormFieldProps } from '../../wrappers/form-field/form-field.component';\r\n\r\ninterface KnobProps extends CustomFormFieldProps {\r\n valueColor: string;\r\n rangeColor: string;\r\n textColor: string;\r\n valueTemplate: string;\r\n name?: string;\r\n size: number;\r\n step: number;\r\n min: number;\r\n max: number;\r\n strokeWidth: number;\r\n showValue: boolean;\r\n}\r\n\r\n@Component({\r\n selector: 'cmat-knob-type',\r\n templateUrl: './knob.component.html',\r\n styleUrls: ['./knob.component.scss'],\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n imports: [CmatKnobInputComponent, ReactiveFormsModule]\r\n})\r\nexport class CmatKnobTypeComponent extends FieldType<FieldTypeConfig<KnobProps>> {\r\n override defaultOptions = {\r\n props: {\r\n valueColor: 'var(--cmat-primary)',\r\n rangeColor: 'var(--cmat-border)',\r\n textColor: 'var(--text-secondary)',\r\n valueTemplate: '{value}',\r\n size: 100,\r\n step: 1,\r\n min: 0,\r\n max: 100,\r\n strokeWidth: 14,\r\n showValue: true\r\n },\r\n };\r\n}","<cmat-knob-input [formControl]=\"formControl\" [tabIndex]=\"props.tabindex\" [valueColor]=\"props.valueColor\"\r\n [rangeColor]=\"props.rangeColor\" [textColor]=\"props.textColor\" [valueTemplate]=\"props.valueTemplate\"\r\n [name]=\"props.name\" [size]=\"props.size\" [step]=\"props.step\" [min]=\"props.min\" [max]=\"props.max\"\r\n [strokeWidth]=\"props.strokeWidth\" [showValue]=\"props.showValue\">\r\n</cmat-knob-input>","import { ChangeDetectionStrategy, Component, Type } from '@angular/core';\r\nimport { ReactiveFormsModule } from '@angular/forms';\r\nimport { ThemePalette } from '@angular/material/core';\r\nimport { MatSliderModule } from '@angular/material/slider';\r\nimport { FormlyFieldConfig, FieldTypeConfig } from '@ngx-formly/core';\r\nimport { FieldType } from '@ngx-formly/material';\r\nimport { CustomFormFieldProps } from '../../wrappers/form-field/form-field.component';\r\n\r\ninterface SliderProps extends CustomFormFieldProps {\r\n displayWith?: (value: number) => string;\r\n discrete?: boolean;\r\n showTickMarks?: boolean;\r\n color?: ThemePalette;\r\n\r\n input?: (field: FormlyFieldConfig<SliderProps>, $event: Event) => void;\r\n change?: (field: FormlyFieldConfig<SliderProps>, $event: Event) => void;\r\n}\r\n\r\nexport interface FormlySliderFieldConfig extends FormlyFieldConfig<SliderProps> {\r\n type: 'slider' | Type<CmatSliderTypeComponent>;\r\n}\r\n\r\n@Component({\r\n selector: 'cmat-slider-type',\r\n templateUrl: './slider.component.html',\r\n styleUrls: ['./slider.component.scss'],\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n imports: [MatSliderModule, ReactiveFormsModule]\r\n})\r\nexport class CmatSliderTypeComponent extends FieldType<FieldTypeConfig<SliderProps>> {\r\n override defaultOptions = {\r\n props: {\r\n hideFieldUnderline: true,\r\n floatLabel: 'always' as const,\r\n displayWith: (value: number):string => `${value}`\r\n }\r\n };\r\n}","<mat-slider class=\"w-full\" [id]=\"id\" [tabIndex]=\"props.tabindex\" [color]=\"props.color\"\r\n [displayWith]=\"props.displayWith!\" [max]=\"props.max\" [min]=\"props.min\" [step]=\"props.step\" [discrete]=\"props.discrete\"\r\n [showTickMarks]=\"props.showTickMarks\" (input)=\"props.input && props.input(field, $event)\"\r\n (change)=\"props.change && props.change(field, $event)\">\r\n <input matSliderThumb [formControl]=\"formControl\" />\r\n</mat-slider>","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["i1","defineHiddenProp","i2","i3","takeUntil","FieldType","observe","i4","i5"],"mappings":"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"}
1
+ {"version":3,"file":"cmat-components-custom-formly.mjs","sources":["../../../projects/cmat/components/custom-formly/extension/addons.extension.ts","../../../projects/cmat/components/custom-formly/wrappers/addons/addons.component.ts","../../../projects/cmat/components/custom-formly/wrappers/card/card.component.ts","../../../projects/cmat/components/custom-formly/wrappers/card/card.component.html","../../../projects/cmat/components/custom-formly/wrappers/expansion/expansion.component.ts","../../../projects/cmat/components/custom-formly/wrappers/expansion/expansion.component.html","../../../projects/cmat/components/custom-formly/wrappers/panel/panel.component.ts","../../../projects/cmat/components/custom-formly/wrappers/panel/panel.component.html","../../../projects/cmat/components/custom-formly/wrappers/form-field/form-field.component.ts","../../../projects/cmat/components/custom-formly/wrappers/form-field/form-field.component.html","../../../projects/cmat/components/custom-formly/types/button/button.component.ts","../../../projects/cmat/components/custom-formly/types/button/button.component.html","../../../projects/cmat/components/custom-formly/types/cascade/cascade.component.ts","../../../projects/cmat/components/custom-formly/types/cascade/cascade.component.html","../../../projects/cmat/components/custom-formly/types/checklist/checklist.component.ts","../../../projects/cmat/components/custom-formly/types/checklist/checklist.component.html","../../../projects/cmat/components/custom-formly/types/chips/chips.component.ts","../../../projects/cmat/components/custom-formly/types/chips/chips.component.html","../../../projects/cmat/components/custom-formly/types/color-picker/color-picker.component.ts","../../../projects/cmat/components/custom-formly/types/color-picker/color-picker.component.html","../../../projects/cmat/components/custom-formly/types/date-range/date-range.component.ts","../../../projects/cmat/components/custom-formly/types/date-range/date-range.component.html","../../../projects/cmat/components/custom-formly/types/datepicker/datepicker.component.ts","../../../projects/cmat/components/custom-formly/types/datepicker/datepicker.component.html","../../../projects/cmat/components/custom-formly/types/multicheckbox/multicheckbox.component.ts","../../../projects/cmat/components/custom-formly/types/multicheckbox/multicheckbox.component.html","../../../projects/cmat/components/custom-formly/types/number/number.component.ts","../../../projects/cmat/components/custom-formly/types/number/number.component.html","../../../projects/cmat/components/custom-formly/types/rating/rating.component.ts","../../../projects/cmat/components/custom-formly/types/rating/rating.component.html","../../../projects/cmat/components/custom-formly/types/radio/radio.component.ts","../../../projects/cmat/components/custom-formly/types/radio/radio.component.html","../../../projects/cmat/components/custom-formly/types/repeat/repeat.component.ts","../../../projects/cmat/components/custom-formly/types/repeat/repeat.component.html","../../../projects/cmat/components/custom-formly/types/select/select.component.ts","../../../projects/cmat/components/custom-formly/types/select/select.component.html","../../../projects/cmat/components/custom-formly/types/select-tree/select-tree.component.ts","../../../projects/cmat/components/custom-formly/types/select-tree/select-tree.component.html","../../../projects/cmat/components/custom-formly/types/select-table/select-table.component.ts","../../../projects/cmat/components/custom-formly/types/select-table/select-table.component.html","../../../projects/cmat/components/custom-formly/types/stepper/horizontal/stepper.component.ts","../../../projects/cmat/components/custom-formly/types/stepper/horizontal/stepper.component.html","../../../projects/cmat/components/custom-formly/types/stepper/vertical/stepper.component.ts","../../../projects/cmat/components/custom-formly/types/stepper/vertical/stepper.component.html","../../../projects/cmat/components/custom-formly/types/table/table.component.ts","../../../projects/cmat/components/custom-formly/types/table/table.component.html","../../../projects/cmat/components/custom-formly/types/tabs/tab.component.ts","../../../projects/cmat/components/custom-formly/types/tabs/tab.component.html","../../../projects/cmat/components/custom-formly/types/tags/tags.component.ts","../../../projects/cmat/components/custom-formly/types/tags/tags.component.html","../../../projects/cmat/components/custom-formly/types/textarea/textarea.component.ts","../../../projects/cmat/components/custom-formly/types/textarea/textarea.component.html","../../../projects/cmat/components/custom-formly/types/upload/upload.component.ts","../../../projects/cmat/components/custom-formly/types/upload/upload.component.html","../../../projects/cmat/components/custom-formly/types/quill/quill.component.ts","../../../projects/cmat/components/custom-formly/types/quill/quill.component.html","../../../projects/cmat/components/custom-formly/types/knob/knob.component.ts","../../../projects/cmat/components/custom-formly/types/knob/knob.component.html","../../../projects/cmat/components/custom-formly/types/slider/slider.component.ts","../../../projects/cmat/components/custom-formly/types/slider/slider.component.html","../../../projects/cmat/components/custom-formly/cmat-components-custom-formly.ts"],"sourcesContent":["import { FormlyFieldConfig } from '@ngx-formly/core';\r\nimport { isNil } from 'lodash-es';\r\n\r\nexport function addonsExtension(field: FormlyFieldConfig): void {\r\n if (!field.props || (field.wrappers?.includes('addons'))) {\r\n return;\r\n }\r\n\r\n if ((field.props.addonLeft && ((!isNil(field.props.addonLeft.icon) && field.props.addonLeft.icon !== '')\r\n || (!isNil(field.props.addonLeft.text)) && field.props.addonLeft.text !== ''))\r\n || (field.props.addonRight && ((!isNil(field.props.addonRight.icon) && field.props.addonRight.icon !== '')\r\n || (!isNil(field.props.addonRight.text)) && field.props.addonRight.text !== ''))) {\r\n field.wrappers = [...(field.wrappers ?? []), 'addons'];\r\n }\r\n}","import { Component, TemplateRef, ViewChild, AfterViewInit } from '@angular/core';\r\nimport { MatIconModule } from '@angular/material/icon';\r\nimport { FieldWrapper } from '@ngx-formly/core';\r\nimport { FormlyMaterialModule } from '@ngx-formly/material';\r\n\r\n@Component({\r\n selector: 'cmat-addons-wrapper',\r\n template: `\r\n <ng-template #matPrefix>\r\n @if(props.addonLeft){\r\n <span>\r\n @if(props.addonLeft.icon){\r\n <mat-icon [svgIcon]=\"props.addonLeft.icon\"></mat-icon>\r\n }\r\n @if(props.addonLeft.text){\r\n <span>{{ props.addonLeft.text }}</span>\r\n } \r\n \r\n </span>\r\n } \r\n </ng-template>\r\n\r\n <ng-container #fieldComponent></ng-container>\r\n\r\n <ng-template #matSuffix>\r\n @if(props.addonRight){\r\n <span>\r\n @if(props.addonRight.icon){\r\n <mat-icon [svgIcon]=\"props.addonRight.icon\"></mat-icon>\r\n }\r\n @if(props.addonRight.text) {\r\n <span>{{ props.addonRight.text }}</span>\r\n }\r\n </span>\r\n }\r\n </ng-template>\r\n `,\r\n imports: [MatIconModule, FormlyMaterialModule]\r\n})\r\nexport class CmatAddonsWrapperComponent extends FieldWrapper implements AfterViewInit {\r\n @ViewChild('matPrefix', { static: true }) matPrefix!: TemplateRef<any>;\r\n @ViewChild('matSuffix', { static: true }) matSuffix!: TemplateRef<any>;\r\n\r\n ngAfterViewInit(): void {\r\n if (this.matPrefix) {\r\n this.props.prefix = this.matPrefix;\r\n }\r\n\r\n if (this.matSuffix) {\r\n this.props.suffix = this.matSuffix;\r\n }\r\n }\r\n}","import { ChangeDetectionStrategy, Component } from '@angular/core';\r\nimport { MatCardModule } from '@angular/material/card';\r\nimport { FieldWrapper } from '@ngx-formly/core';\r\n\r\n@Component({\r\n selector: 'cmat-card-wrapper',\r\n templateUrl: './card.component.html',\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n imports: [MatCardModule]\r\n})\r\nexport class CmatCardWrapperComponent extends FieldWrapper {}\r\n","<mat-card class=\"dark:bg-white/5\">\r\n @if(props.label){\r\n <mat-card-title class=\"p-4\">{{ props.label }}</mat-card-title>\r\n }\r\n \r\n <mat-card-content>\r\n <ng-container #fieldComponent></ng-container>\r\n </mat-card-content> \r\n</mat-card>","import { ChangeDetectionStrategy, Component } from '@angular/core';\r\nimport { MatExpansionModule } from '@angular/material/expansion';\r\nimport { FieldWrapper } from '@ngx-formly/core';\r\n\r\n@Component({\r\n selector: 'cmat-expansion-wrapper',\r\n templateUrl: './expansion.component.html',\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n imports: [MatExpansionModule]\r\n})\r\nexport class CmatExpansionWrapperComponent extends FieldWrapper {}\r\n","<mat-expansion-panel [expanded]=\"true\">\r\n <mat-expansion-panel-header>\r\n <mat-panel-title>\r\n {{ to.label }}\r\n </mat-panel-title>\r\n <mat-panel-description>\r\n {{ to.description }}\r\n </mat-panel-description>\r\n </mat-expansion-panel-header>\r\n <ng-template #fieldComponent matExpansionPanelContent></ng-template>\r\n</mat-expansion-panel>","import { ChangeDetectionStrategy, Component } from '@angular/core';\r\nimport { FieldWrapper } from '@ngx-formly/core';\r\n\r\n@Component({\r\n selector: 'cmat-panel-wrapper',\r\n templateUrl: './panel.component.html',\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n imports: []\r\n})\r\nexport class CmatPanelWrapperComponent extends FieldWrapper {}\r\n","<h3 class=\"px-2\">{{ to.label }}</h3>\r\n<div>\r\n <ng-container #fieldComponent></ng-container>\r\n</div>","import { FocusMonitor } from '@angular/cdk/a11y';\r\nimport { CommonModule } from '@angular/common';\r\nimport { AfterViewInit, ChangeDetectionStrategy, Component, ElementRef, OnDestroy, OnInit, Renderer2, ViewChild, ViewEncapsulation, inject } from '@angular/core';\r\nimport { ReactiveFormsModule } from '@angular/forms';\r\nimport { MatFormField, MatFormFieldModule } from '@angular/material/form-field';\r\nimport { FieldWrapper, FormlyFieldConfig, FormlyModule, ɵdefineHiddenProp as defineHiddenProp } from '@ngx-formly/core';\r\nimport { FormlyFieldProps } from '@ngx-formly/material/form-field';\r\n\r\ninterface MatFormlyFieldConfig extends FormlyFieldConfig<CustomFormFieldProps> {\r\n _formField?: CmatFormFieldWrapperComponent;\r\n}\r\n\r\nexport interface CustomFormFieldProps extends FormlyFieldProps {\r\n showValidationMessage?: boolean;\r\n}\r\n\r\n@Component({\r\n selector: 'cmat-form-field-wrapper',\r\n templateUrl: './form-field.component.html',\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n styleUrls: ['./form-field.wrapper.scss'],\r\n encapsulation: ViewEncapsulation.None,\r\n imports: [MatFormFieldModule, ReactiveFormsModule, CommonModule, FormlyModule]\r\n})\r\nexport class CmatFormFieldWrapperComponent extends FieldWrapper<MatFormlyFieldConfig>\r\n implements OnInit, OnDestroy, AfterViewInit {\r\n @ViewChild(MatFormField, { static: true }) formField!: MatFormField;\r\n\r\n private _renderer = inject(Renderer2);\r\n private _elementRef = inject(ElementRef);\r\n private _focusMonitor = inject(FocusMonitor);\r\n\r\n constructor() {\r\n super();\r\n }\r\n\r\n ngOnInit(): void {\r\n defineHiddenProp(this.field, '_formField', this.formField);\r\n this._focusMonitor.monitor(this._elementRef, true).subscribe((origin) => {\r\n if (!origin && this.field.focus) {\r\n this.field.focus = false;\r\n }\r\n });\r\n }\r\n\r\n ngAfterViewInit(): void {\r\n // temporary fix for https://github.com/angular/material2/issues/7891\r\n if (this.formField.appearance !== 'outline' && this.props.hideFieldUnderline === true) {\r\n const underlineElement = this.formField._elementRef.nativeElement.querySelector('.mat-form-field-underline');\r\n underlineElement && this._renderer.removeChild(underlineElement.parentNode, underlineElement);\r\n }\r\n }\r\n\r\n ngOnDestroy(): void {\r\n delete this.field._formField;\r\n this._focusMonitor.stopMonitoring(this._elementRef);\r\n }\r\n}\r\n\r\n","<mat-form-field [hideRequiredMarker]=\"true\" [floatLabel]=\"$any(props.floatLabel)\" [appearance]=\"$any(props.appearance)\"\r\n [subscriptSizing]=\"$any(props.subscriptSizing)\" [color]=\"props.color ?? 'primary'\">\r\n <ng-container #fieldComponent></ng-container>\r\n @if(props.label && props.hideLabel !== true){\r\n <mat-label>\r\n {{ props.label }}\r\n @if(props.required && props.hideRequiredMarker !== true){\r\n <span aria-hidden=\"true\" class=\"mat-form-field-required-marker mat-mdc-form-field-required-marker\">*</span>\r\n }\r\n </mat-label>\r\n }\r\n\r\n @if(props.textPrefix){\r\n <ng-container matTextPrefix>\r\n <ng-container [ngTemplateOutlet]=\"props.textPrefix\" [ngTemplateOutletContext]=\"{ field: field }\"></ng-container>\r\n </ng-container>\r\n }\r\n\r\n @if(props.prefix){\r\n <ng-container matPrefix>\r\n <ng-container [ngTemplateOutlet]=\"props.prefix\" [ngTemplateOutletContext]=\"{ field: field }\"></ng-container>\r\n </ng-container>\r\n }\r\n\r\n @if(props.textSuffix){\r\n <ng-container matTextSuffix>\r\n <ng-container [ngTemplateOutlet]=\"props.textSuffix\" [ngTemplateOutletContext]=\"{ field: field }\"></ng-container>\r\n </ng-container>\r\n }\r\n\r\n @if(props.suffix){\r\n <ng-container matSuffix>\r\n <ng-container [ngTemplateOutlet]=\"props.suffix\" [ngTemplateOutletContext]=\"{ field: field }\"></ng-container>\r\n </ng-container>\r\n }\r\n\r\n @if(props.showValidationMessage){\r\n <mat-error>\r\n <formly-validation-message [field]=\"field\"></formly-validation-message>\r\n </mat-error>\r\n }\r\n\r\n @if(props.description || props.hintStart){\r\n <mat-hint>\r\n <ng-container [ngTemplateOutlet]=\"stringOrTemplate\" [ngTemplateOutletContext]=\"{ content: props.description || props.hintStart }\">\r\n </ng-container>\r\n </mat-hint>\r\n }\r\n\r\n @if(props.hintEnd){\r\n <mat-hint align=\"end\">\r\n <ng-container [ngTemplateOutlet]=\"stringOrTemplate\" [ngTemplateOutletContext]=\"{ content: props.hintEnd }\">\r\n </ng-container>\r\n </mat-hint>\r\n }\r\n</mat-form-field>\r\n\r\n<ng-template #stringOrTemplate let-content=\"content\">\r\n @if(!content.createEmbeddedView){\r\n <ng-container>{{ content }}</ng-container>\r\n }@else {\r\n <ng-container [ngTemplateOutlet]=\"content\" [ngTemplateOutletContext]=\"{ field: field }\"></ng-container>\r\n }\r\n</ng-template>","import { ChangeDetectionStrategy, Component, OnDestroy, OnInit, inject } from '@angular/core';\r\nimport { MatButtonModule } from '@angular/material/button';\r\nimport { MatSnackBar } from '@angular/material/snack-bar';\r\nimport { FieldTypeConfig } from '@ngx-formly/core';\r\nimport { FieldType } from '@ngx-formly/material/form-field';\r\nimport { isString } from 'lodash-es';\r\nimport { Subject, takeUntil } from 'rxjs';\r\nimport { CmatToastService, GlobalType } from 'cmat/components/toast';\r\nimport { CmatAlertMessage } from 'cmat/services/alert';\r\nimport { CmatMediaWatcherService } from 'cmat/services/media-watcher';\r\nimport { CustomFormFieldProps } from '../../wrappers/form-field/form-field.component';\r\n\r\ninterface ButtonProps extends CustomFormFieldProps {\r\n color?: 'primary' | 'accent' | 'warn';\r\n onClick?: any;\r\n}\r\n\r\n@Component({\r\n selector: 'cmat-button-type',\r\n templateUrl: './button.component.html',\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n imports: [MatButtonModule]\r\n})\r\nexport class CmatButtonTypeComponent extends FieldType<FieldTypeConfig<ButtonProps>> implements OnInit, OnDestroy {\r\n override defaultOptions = {\r\n props: {\r\n color: 'primary' as const\r\n }\r\n };\r\n\r\n private _cmatToastService = inject(CmatToastService);\r\n private _snackBar = inject(MatSnackBar);\r\n private _cmatMediaWatcherService = inject(CmatMediaWatcherService);\r\n\r\n private _isPhone: boolean;\r\n private _unsubscribeAll: Subject<any> = new Subject<any>();\r\n\r\n constructor() {\r\n super();\r\n }\r\n\r\n ngOnInit(): void {\r\n this._cmatMediaWatcherService.onMediaChange$\r\n .pipe(takeUntil(this._unsubscribeAll))\r\n .subscribe(({ matchingAliases }) => {\r\n this._isPhone = !matchingAliases.includes('md');\r\n });\r\n }\r\n override ngOnDestroy(): void {\r\n this._unsubscribeAll.next(void 0);\r\n this._unsubscribeAll.complete();\r\n }\r\n\r\n onClick($event: Event): void {\r\n $event.preventDefault();\r\n\r\n if (this.props.onClick) {\r\n if (isString(this.props.onClick)) {\r\n this._executeFunctionFromString(this.props.onClick, $event, this);\r\n }\r\n else {\r\n this.props.onClick($event);\r\n }\r\n }\r\n }\r\n\r\n showMessage(message: CmatAlertMessage | void): void {\r\n if (message == null) {\r\n this._cmatToastService.clearAll();\r\n\r\n return;\r\n }\r\n\r\n if (this._isPhone) {\r\n if (message) {\r\n this._snackBar.open(message.detail, '关闭', { duration: message.isPostionBottom ? 0 : 1000 });\r\n }\r\n } else {\r\n if (message)\r\n this._cmatToastService.addToast({\r\n title: message.summary, type: message.severity as GlobalType,\r\n message: message.detail, timeout: 2000, position: message.isPostionBottom ? 'bottom-right' : 'top-right'\r\n });\r\n }\r\n }\r\n\r\n private _executeFunctionFromString(funcString: string, event: Event, context?: any): void {\r\n try {\r\n // eslint-disable-next-line @typescript-eslint/no-implied-eval\r\n const func = new Function('event', 'context', `with (context) { ${funcString} }`);\r\n\r\n func(event, context);\r\n\r\n } catch (error) {\r\n console.error('Error executing function from string:', error);\r\n }\r\n }\r\n}","<button class=\"print:hidden\" matButton=\"filled\" [type]=\"props.type\" [color]=\"props.color\" [disabled]=\"disabled\" (click)=\"onClick($event)\">\r\n {{ to.label }}\r\n</button>","import { HttpClient } from '@angular/common/http';\r\nimport { ChangeDetectionStrategy, ChangeDetectorRef, Component, OnDestroy, OnInit, inject } from '@angular/core';\r\nimport { ReactiveFormsModule } from '@angular/forms';\r\nimport { FieldTypeConfig } from '@ngx-formly/core';\r\nimport { FieldType } from '@ngx-formly/material/form-field';\r\nimport { Subject, takeUntil } from 'rxjs';\r\nimport { CmatCascadeListComponent } from 'cmat/components/cascade';\r\nimport { CmatMediaWatcherService } from 'cmat/services/media-watcher';\r\nimport { CustomFormFieldProps } from '../../wrappers/form-field/form-field.component';\r\n\r\ninterface ChipsCascadeProps extends CustomFormFieldProps {\r\n clearable: boolean;\r\n fullLevels: boolean;\r\n changeOnSelect: boolean;\r\n domain?: {\r\n url?: string;\r\n code?: string;\r\n key?: string;\r\n value?: string;\r\n }\r\n}\r\n\r\n@Component({\r\n selector: 'cmat-cascade-type',\r\n templateUrl: './cascade.component.html',\r\n styleUrls: ['./cascade.component.scss'],\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n imports: [ReactiveFormsModule, CmatCascadeListComponent]\r\n})\r\nexport class CmatCascadeTypeComponent extends FieldType<FieldTypeConfig<ChipsCascadeProps>> implements OnInit, OnDestroy {\r\n \r\n\r\n override defaultOptions = {\r\n props: {\r\n clearable: false,\r\n fullLevels: true,\r\n changeOnSelect: false\r\n },\r\n };\r\n urlData: [] = [];\r\n isHandSet: boolean;\r\n\r\n private _http = inject(HttpClient);\r\n private _changeDetectorRef = inject(ChangeDetectorRef);\r\n private _cmatMediaWatcherService = inject(CmatMediaWatcherService);\r\n private _unsubscribeAll: Subject<any> = new Subject<any>();\r\n\r\n constructor() {\r\n super();\r\n }\r\n\r\n ngOnInit(): void {\r\n const url = this.props?.domain?.url;\r\n if (url && this.props?.domain?.code && this.props?.domain?.key && this.props?.domain?.value) {\r\n this._http.get(url).pipe(takeUntil(this._unsubscribeAll)).subscribe(\r\n (data: any) => {\r\n if (data) {\r\n const datas = data.filter((i: any) => {\r\n if (this.field.props?.domain?.key)\r\n return i[this.field.props?.domain?.key] === this.field.props?.domain?.code;\r\n\r\n return false;\r\n }\r\n );\r\n if (datas && this.field.props?.domain?.value) {\r\n this.urlData = datas[0][this.field.props?.domain?.value];\r\n } else {\r\n this.urlData = [];\r\n }\r\n } else {\r\n this.urlData = [];\r\n }\r\n this._changeDetectorRef.markForCheck();\r\n }\r\n );\r\n } else {\r\n this.urlData = [];\r\n\r\n this._changeDetectorRef.markForCheck();\r\n }\r\n\r\n this._cmatMediaWatcherService.onMediaChange$\r\n .pipe(takeUntil(this._unsubscribeAll))\r\n .subscribe(({ matchingAliases }) => {\r\n this.isHandSet = !matchingAliases.includes('lg');\r\n\r\n this._changeDetectorRef.markForCheck();\r\n });\r\n }\r\n\r\n override ngOnDestroy(): void {\r\n this._unsubscribeAll.next(void 0);\r\n this._unsubscribeAll.complete();\r\n }\r\n}","<cmat-cascade-list [formControl]=\"formControl\" [clearable]=\"props.clearable\" [fullLevels]=\"props.fullLevels\"\r\n [changeOnSelect]=\"props.changeOnSelect\" [placeholder]=\"placeholder\" [options]=\"urlData\" [tabIndex]=\"props.tabindex\"\r\n [required]=\"required\" [touchUi]=\"isHandSet\"></cmat-cascade-list>","import { NgClass, AsyncPipe } from '@angular/common';\r\nimport { HttpClient } from '@angular/common/http';\r\nimport { Component, OnInit, OnDestroy, ChangeDetectionStrategy, ViewEncapsulation, inject } from '@angular/core';\r\nimport { MatCheckboxModule } from '@angular/material/checkbox';\r\nimport { MatRippleModule } from '@angular/material/core';\r\nimport { MatIconModule } from '@angular/material/icon';\r\nimport { FieldTypeConfig } from '@ngx-formly/core';\r\nimport { FieldType } from '@ngx-formly/material/form-field';\r\nimport { isArray } from 'lodash-es';\r\nimport { Subject, BehaviorSubject, Observable } from 'rxjs';\r\nimport { takeUntil } from 'rxjs/operators';\r\nimport { CustomFormFieldProps } from '../../wrappers/form-field/form-field.component';\r\n\r\ninterface CheckListProps extends CustomFormFieldProps {\r\n showAllCheck: boolean;\r\n controlMaxHeight: boolean;\r\n domain?: {\r\n url?: string;\r\n code?: string;\r\n key?: string;\r\n value?: string;\r\n }\r\n}\r\n\r\n@Component({\r\n selector: 'cmat-checklist-type',\r\n templateUrl: './checklist.component.html',\r\n styleUrls: ['./checklist.component.scss'],\r\n encapsulation: ViewEncapsulation.None,\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n imports: [MatCheckboxModule, MatIconModule, NgClass, MatRippleModule, AsyncPipe]\r\n})\r\nexport class CmatCheckListTypeComponent extends FieldType<FieldTypeConfig<CheckListProps>> implements OnInit, OnDestroy {\r\n\r\n\r\n isIndeterminate = false;\r\n isChecked = false;\r\n\r\n urlData: [];\r\n optionsData: any[];\r\n checklist: any[] = [];\r\n filteredData: any[] = [];\r\n\r\n private _http = inject(HttpClient);\r\n private _filteredItems: BehaviorSubject<any[] | null> = new BehaviorSubject<any[] | null>(null);\r\n private _unsubscribeAll: Subject<void> = new Subject<void>();\r\n\r\n constructor() {\r\n super();\r\n }\r\n\r\n get filteredItems$(): Observable<any[] | null> {\r\n return this._filteredItems.asObservable();\r\n }\r\n\r\n get datas(): any[] {\r\n if (isArray(this.field.props?.options)) {\r\n return this.urlData?.length > 0 ? this.urlData : this.field.props?.options ?? [];\r\n } else {\r\n return this.urlData?.length > 0 ? this.urlData : this.optionsData || [];\r\n }\r\n }\r\n\r\n ngOnInit(): void {\r\n if (this.field.props?.options && !isArray(this.field.props?.options)) {\r\n this.field.props?.options.pipe(takeUntil(this._unsubscribeAll)).subscribe(\r\n (data) => {\r\n this.optionsData = data;\r\n }\r\n );\r\n }\r\n const url = this.field.props?.domain?.url;\r\n if (url && this.field.props?.domain?.code && this.field.props?.domain?.key && this.field.props?.domain?.value) {\r\n this._http.get(url).pipe(takeUntil(this._unsubscribeAll)).subscribe(\r\n (data: any) => {\r\n if (data) {\r\n const datas = data.filter((i: any) => {\r\n if (this.field.props?.domain?.key)\r\n return i[this.field.props?.domain?.key] === this.field.props?.domain?.code;\r\n\r\n return false;\r\n }\r\n );\r\n if (datas && this.field.props?.domain?.value) {\r\n this.urlData = datas[0][this.field.props?.domain?.value];\r\n } else {\r\n this.urlData = [];\r\n }\r\n } else {\r\n this.urlData = [];\r\n }\r\n this.filteredData = this.datas;\r\n\r\n this._filteredItems.next(this.filteredData);\r\n }\r\n );\r\n } else {\r\n this.urlData = [];\r\n this.filteredData = this.datas;\r\n\r\n this._filteredItems.next(this.filteredData);\r\n }\r\n\r\n this.formControl.valueChanges.pipe(takeUntil(this._unsubscribeAll)).subscribe(\r\n (value) => {\r\n this.checklist = value ?? [];\r\n\r\n this._getAllCheckCountState();\r\n }\r\n );\r\n }\r\n\r\n override ngOnDestroy(): void {\r\n this._unsubscribeAll.next(void (0));\r\n this._unsubscribeAll.complete();\r\n }\r\n\r\n trackByFn(index: number, item: any): any {\r\n return item.id ?? index;\r\n }\r\n\r\n filterByQuery(event: any): void {\r\n this.filteredData = this.datas.filter(data => data.value.toString().toLowerCase().includes(event) ?? data.label.toLowerCase().includes(event));\r\n this._filteredItems.next(this.filteredData);\r\n\r\n this._getAllCheckCountState();\r\n }\r\n\r\n toggleCheckList(data: any, event: any): void {\r\n event.preventDefault();\r\n\r\n if (data.disabled || this.props.disabled)\r\n return;\r\n\r\n const index = this.checklist.findIndex(item => item.value === data.value);\r\n if (index > -1) {\r\n this.checklist.splice(index, 1);\r\n } else {\r\n this.checklist = [...this.checklist, data];\r\n }\r\n\r\n this.formControl.setValue(this.checklist);\r\n }\r\n\r\n allCheckChange(check: boolean): void {\r\n if (check) {\r\n const itemsToAdd = this.filteredData.filter((t) => {\r\n const index = this.checklist.findIndex(item => item.value === t.value);\r\n return index < 0 && !t.disabled;\r\n });\r\n this.checklist = [...this.checklist, ...itemsToAdd];\r\n } else {\r\n this.checklist = this.checklist.filter((item) => {\r\n const existsInFiltered = this.filteredData.some(t => t.value === item.value);\r\n const shouldRemove = existsInFiltered && this.filteredData.find(t => t.value === item.value)?.disabled === false;\r\n return !shouldRemove;\r\n });\r\n }\r\n\r\n this.formControl.setValue(this.checklist);\r\n }\r\n\r\n isCheck(data: any): boolean {\r\n return this.formControl.value?.filter((i: { value: any; }) => i.value === data.value).length > 0;\r\n }\r\n\r\n private _getAllCheckCountState(): void {\r\n if (this.props.showAllCheck && !this.props.disabled) {\r\n let allCheckCount = 0;\r\n\r\n if (this.checklist?.length > 0) {\r\n this.filteredData.forEach((t) => {\r\n const index = this.checklist.findIndex(item => item.value === t.value && !t.disabled);\r\n if (index > -1) {\r\n allCheckCount += 1;\r\n }\r\n });\r\n\r\n if (this.filteredData.filter(i => !i.disabled).length === allCheckCount) {\r\n this.isChecked = true;\r\n this.isIndeterminate = false;\r\n } else if (allCheckCount === 0) {\r\n this.isChecked = false;\r\n this.isIndeterminate = false;\r\n } else {\r\n this.isChecked = false;\r\n this.isIndeterminate = true;\r\n }\r\n } else {\r\n this.checklist = [];\r\n\r\n this.isChecked = false;\r\n this.isIndeterminate = false;\r\n }\r\n }\r\n }\r\n}\r\n\r\n","<div class=\"flex flex-col\">\r\n <div class=\"p-2\">\r\n @if(props.label){\r\n <legend class=\"text-lg\">\r\n {{ props.label }}\r\n @if(props.required){\r\n <span>*</span>\r\n }\r\n </legend>\r\n }\r\n @if(props.description){\r\n <p>{{ props.description }}</p>\r\n }\r\n </div>\r\n\r\n <div class=\"w-full h-full rounded-sm border shadow-sm bg-card\" [tabIndex]=\"props.tabindex\">\r\n <div class=\"flex items-center m-1 mr-2 min-h-12 print:hidden\">\r\n @if (props.showAllCheck&&!props.disabled) {\r\n <div>\r\n <mat-checkbox class=\"flex items-center h-10 min-h-10 m-1\" [color]=\"'primary'\" [checked]=\"isChecked\"\r\n [indeterminate]=\"isIndeterminate\" (change)=\"allCheckChange($event.checked)\">\r\n </mat-checkbox>\r\n </div>\r\n }\r\n <div class=\"flex items-center w-full\">\r\n <mat-icon class=\"icon-size-5\" [svgIcon]=\"'heroicons_solid:magnifying-glass'\"></mat-icon>\r\n <div class=\"ml-2\">\r\n <input #query class=\"w-full min-w-0 py-1 border-none\" type=\"text\"\r\n placeholder=\"输入过滤信息\" (input)=\"filterByQuery(query.value)\">\r\n </div>\r\n </div>\r\n </div>\r\n <div class=\"border-t overflow-y-auto scrollbar-custom\"\r\n [ngClass]=\"props.controlMaxHeight?'max-h-64 sm:max-h-128 lg:max-h-64':''\">\r\n @if ((filteredItems$ | async); as filteredItems) {\r\n @if(filteredItems.length>0){\r\n @for (data of filteredItems; track trackByFn($index, data)) {\r\n <div role=\"presentation\" class=\"flex items-center pl-2 pr-4 py-2 cursor-pointer hover:bg-hover\" matRipple\r\n (click)=\"toggleCheckList(data,$event)\">\r\n <mat-checkbox class=\"flex items-center h-10 min-h-10 pointer-events-none\" disableRipple [color]=\"'primary'\"\r\n [checked]=\"isCheck(data)\" [value]=\"data\" [disabled]=\"data.disabled||props.disabled\">\r\n <div class=\"flex flex-col flex-auto\">\r\n <div class=\"font-medium leading-5 truncate\">{{data.label}}</div>\r\n </div>\r\n </mat-checkbox>\r\n </div>\r\n }\r\n } @else {\r\n <div\r\n class=\"flex flex-auto flex-col items-center justify-center bg-slate-100 dark:bg-transparent h-64 sm:h-128 lg:h-64\">\r\n <mat-icon class=\"icon-size-24\" [svgIcon]=\"'heroicons_outline:document-magnifying-glass'\"></mat-icon>\r\n <div class=\"mt-4 text-2xl font-bold tracking-tight text-secondary\">没有数据!</div>\r\n </div>\r\n }\r\n }\r\n </div>\r\n </div>\r\n</div>","import { HttpClient } from '@angular/common/http';\r\nimport { ChangeDetectionStrategy, Component, OnDestroy, OnInit, inject } from '@angular/core';\r\nimport { ReactiveFormsModule } from '@angular/forms';\r\nimport { FieldTypeConfig } from '@ngx-formly/core';\r\nimport { FieldType } from '@ngx-formly/material/form-field';\r\nimport { Subject, takeUntil } from 'rxjs';\r\nimport { CmatChipInputComponent } from 'cmat/components/chip-input';\r\nimport { CustomFormFieldProps } from '../../wrappers/form-field/form-field.component';\r\n\r\ninterface ChipsInputProps extends CustomFormFieldProps {\r\n hasAutocomplete?: boolean;\r\n autocompleteText?: string;\r\n domain?: {\r\n url?: string;\r\n code?: string;\r\n key?: string;\r\n value?: string;\r\n }\r\n}\r\n\r\n@Component({\r\n selector: 'cmat-chips-input-type',\r\n templateUrl: './chips.component.html',\r\n styleUrls: ['./chips.component.scss'],\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n imports: [ReactiveFormsModule, CmatChipInputComponent]\r\n})\r\nexport class CmatChipsInputTypeComponent extends FieldType<FieldTypeConfig<ChipsInputProps>> implements OnInit, OnDestroy {\r\n autocompleteUrlData: [];\r\n\r\n private _http = inject(HttpClient);\r\n private _unsubscribeAll: Subject<any> = new Subject<any>();\r\n\r\n constructor() {\r\n super();\r\n }\r\n\r\n get autocompleteText(): string[] {\r\n return this.autocompleteUrlData?.length > 0 ? this.autocompleteUrlData : this.props?.autocompleteText?.split(',') ?? [];\r\n }\r\n\r\n ngOnInit(): void {\r\n const url = this.props?.domain?.url;\r\n if (url && this.props?.domain?.code && this.props?.domain?.key && this.props?.domain?.value) {\r\n this._http.get(url).pipe(takeUntil(this._unsubscribeAll)).subscribe(\r\n (data: any) => {\r\n if (data) {\r\n const datas = data.filter((i: any) => {\r\n if (this.field.props?.domain?.key)\r\n return i[this.field.props?.domain?.key] === this.field.props?.domain?.code;\r\n\r\n return false;\r\n }\r\n );\r\n if (datas && this.field.props?.domain?.value) {\r\n this.autocompleteUrlData = datas[0][this.field.props?.domain?.value];\r\n } else {\r\n this.autocompleteUrlData = [];\r\n }\r\n } else {\r\n this.autocompleteUrlData = [];\r\n }\r\n }\r\n );\r\n } else {\r\n this.autocompleteUrlData = [];\r\n }\r\n }\r\n\r\n override ngOnDestroy(): void {\r\n this._unsubscribeAll.next(void 0);\r\n this._unsubscribeAll.complete();\r\n }\r\n}","<cmat-chip-input [hasAutocomplete]=\"props.hasAutocomplete??false\" [formControl]=\"formControl\"\r\n [placeholder]=\"placeholder\" [selectableOptions]=\"autocompleteText\" [tabIndex]=\"props.tabindex\" [required]=\"required\"></cmat-chip-input>","import { ChangeDetectionStrategy, Component } from '@angular/core';\r\nimport { ReactiveFormsModule } from '@angular/forms';\r\nimport { FieldTypeConfig } from '@ngx-formly/core';\r\nimport { FieldType } from '@ngx-formly/material';\r\nimport { CmatMaterialColorPickerComponent } from 'cmat/components/material-color-picker';\r\n\r\n@Component({\r\n selector: 'cmat-color-picker-type',\r\n templateUrl: './color-picker.component.html',\r\n styleUrls: ['./color-picker.component.scss'],\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n imports: [ReactiveFormsModule, CmatMaterialColorPickerComponent]\r\n})\r\nexport class CmatColorPickerTypeComponent extends FieldType<FieldTypeConfig> {\r\n}","<cmat-material-color-picker [title]=\"props.label??''\" [formControl]=\"formControl\" [readonly]=\"disabled\"\r\n [tabindex]=\"props.tabindex\"></cmat-material-color-picker>","import { ChangeDetectionStrategy, Component } from '@angular/core';\r\nimport { ReactiveFormsModule } from '@angular/forms';\r\nimport { FieldTypeConfig } from '@ngx-formly/core';\r\nimport { FieldType } from '@ngx-formly/material/form-field';\r\nimport { CmatDateRangeComponent } from 'cmat/components/date-range';\r\nimport { CustomFormFieldProps } from '../../wrappers/form-field/form-field.component';\r\n\r\ninterface DateRangeProps extends CustomFormFieldProps {\r\n dateFormat: string;\r\n timeFormat: string;\r\n timeRange: boolean;\r\n}\r\n\r\n@Component({\r\n selector: 'cmat-date-range-type',\r\n templateUrl: './date-range.component.html',\r\n styleUrls: ['./date-range.component.scss'],\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n imports: [CmatDateRangeComponent, ReactiveFormsModule]\r\n})\r\nexport class CmatDateRangeTypeComponent extends FieldType<FieldTypeConfig<DateRangeProps>>{\r\n override defaultOptions = {\r\n props: {\r\n dateFormat: 'YYYY/MM/DD',\r\n timeFormat: '24',\r\n timeRange: true\r\n },\r\n };\r\n}","<cmat-date-range [dateFormat]=\"props.dateFormat\" [timeFormat]=\"props.timeFormat\" [timeRange]=\"props.timeRange\" \r\n[formControl]=\"formControl\" [tabindex]=\"props.tabindex\" [readonly]=\"disabled\">\r\n</cmat-date-range>","import { ChangeDetectionStrategy, ChangeDetectorRef, Component, OnDestroy, OnInit, inject } from '@angular/core';\r\nimport { FormsModule, ReactiveFormsModule } from '@angular/forms';\r\nimport { MatInputModule } from '@angular/material/input';\r\nimport { FieldTypeConfig } from '@ngx-formly/core';\r\nimport { FieldType } from '@ngx-formly/material/form-field';\r\nimport { Subject, takeUntil } from 'rxjs';\r\nimport { CmatCalendarView, CmatDatetimepickerComponent, CmatDatetimepickerInputDirective, CmatDatetimepickerMode, CmatDatetimepickerToggleComponent, CmatDatetimepickerType } from 'cmat/components/material-datetimepicker';\r\nimport { CmatMediaWatcherService } from 'cmat/services/media-watcher';\r\nimport { CustomFormFieldProps } from '../../wrappers/form-field/form-field.component';\r\n\r\ninterface DatepickerProps extends CustomFormFieldProps {\r\n startView: CmatCalendarView;\r\n mode: CmatDatetimepickerMode;\r\n togglePosition: 'left' | 'right';\r\n timeInterval: number;\r\n type: CmatDatetimepickerType;\r\n multiYearSelector: boolean;\r\n twelvehour: boolean;\r\n timeInput: boolean;\r\n}\r\n\r\n@Component({\r\n selector: 'cmat-datepicker-type',\r\n templateUrl: './datepicker.component.html',\r\n styleUrls: ['./datepicker.component.scss'],\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n imports: [CmatDatetimepickerToggleComponent, CmatDatetimepickerInputDirective, CmatDatetimepickerComponent, MatInputModule, FormsModule, ReactiveFormsModule]\r\n})\r\nexport class CmatDatepickerTypeComponent extends FieldType<FieldTypeConfig<DatepickerProps>> implements OnInit, OnDestroy {\r\n override defaultOptions = {\r\n props: {\r\n startView: 'month' as const,\r\n mode: 'auto' as const,\r\n togglePosition: 'left' as const,\r\n timeInterval: 5,\r\n type: 'datetime' as const,\r\n multiYearSelector: false,\r\n disabled: false,\r\n timeInput: true,\r\n twelvehour: false\r\n }\r\n };\r\n\r\n isHandSet: boolean;\r\n\r\n private _changeDetectorRef = inject(ChangeDetectorRef);\r\n private _cmatMediaWatcherService = inject(CmatMediaWatcherService);\r\n\r\n private _unsubscribeAll: Subject<void> = new Subject<void>();\r\n\r\n constructor() {\r\n super();\r\n }\r\n\r\n ngOnInit(): void {\r\n this._cmatMediaWatcherService.onMediaChange$\r\n .pipe(takeUntil(this._unsubscribeAll))\r\n .subscribe(({ matchingAliases }) => {\r\n this.isHandSet = !matchingAliases.includes('lg');\r\n\r\n this._changeDetectorRef.markForCheck();\r\n });\r\n }\r\n\r\n override ngOnDestroy(): void {\r\n this._unsubscribeAll.next(void 0);\r\n this._unsubscribeAll.complete();\r\n }\r\n}","@if(props.togglePosition==='left'){\r\n<cmat-datetimepicker-toggle matPrefix [for]=\"datetimePicker\" [disabled]=\"disabled\"></cmat-datetimepicker-toggle>\r\n}\r\n\r\n<cmat-datetimepicker #datetimePicker openOnFocus=\"true\" [startView]=\"props.startView\" [mode]=\"props.mode\"\r\n [timeInterval]=\"props.timeInterval\" [twelvehour]=\"props.twelvehour\" [type]=\"props.type\"\r\n [multiYearSelector]=\"props.multiYearSelector\" [timeInput]=\"props.timeInput\" [touchUi]=\"isHandSet\"\r\n [disabled]=\"disabled\"></cmat-datetimepicker>\r\n\r\n<input autocomplete=\"false\" matInput [cmatDatetimepicker]=\"datetimePicker\" [required]=\"required\"\r\n [formControl]=\"formControl\" [placeholder]=\"placeholder\" />\r\n\r\n@if(props.togglePosition==='right'){\r\n<cmat-datetimepicker-toggle matSuffix [for]=\"datetimePicker\" [disabled]=\"disabled\"></cmat-datetimepicker-toggle>\r\n}","import { AsyncPipe } from '@angular/common';\r\nimport { HttpClient } from '@angular/common/http';\r\nimport { Component, ChangeDetectionStrategy, ViewChildren, QueryList, Type, OnDestroy, OnInit, inject } from '@angular/core';\r\nimport { MatCheckbox, MatCheckboxModule } from '@angular/material/checkbox';\r\nimport { FieldTypeConfig, FormlyFieldConfig } from '@ngx-formly/core';\r\nimport { FormlySelectModule } from '@ngx-formly/core/select';\r\nimport { FieldType } from '@ngx-formly/material/form-field';\r\nimport { BehaviorSubject, Observable, Subject, takeUntil } from 'rxjs';\r\nimport { CustomFormFieldProps } from '../../wrappers/form-field/form-field.component';\r\n\r\ninterface MultiCheckboxProps extends CustomFormFieldProps {\r\n labelPosition: 'before' | 'after';\r\n domain?: {\r\n url?: string;\r\n code?: string;\r\n key?: string;\r\n value?: string;\r\n }\r\n}\r\n\r\nexport interface FormlyMultiCheckboxFieldConfig extends FormlyFieldConfig<MultiCheckboxProps> {\r\n type: 'multicheckbox' | Type<CmatMultiCheckboxTypeComponent>;\r\n}\r\n\r\n@Component({\r\n selector: 'cmat-multicheckbox-type',\r\n templateUrl: './multicheckbox.component.html',\r\n styleUrls: ['./multicheckbox.component.scss'],\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n imports: [MatCheckboxModule, AsyncPipe, FormlySelectModule]\r\n})\r\nexport class CmatMultiCheckboxTypeComponent extends FieldType<FieldTypeConfig<MultiCheckboxProps>> implements OnInit, OnDestroy {\r\n @ViewChildren(MatCheckbox) checkboxes!: QueryList<MatCheckbox>;\r\n\r\n override defaultOptions = {\r\n props: {\r\n hideFieldUnderline: true,\r\n floatLabel: 'always' as const,\r\n color: 'accent' as const,\r\n labelPosition: 'after' as const\r\n },\r\n };\r\n private _http = inject(HttpClient);\r\n private _urlData: BehaviorSubject<any[]> = new BehaviorSubject<any[]>([]);\r\n private _unsubscribeAll: Subject<any> = new Subject<any>();\r\n\r\n constructor() {\r\n super();\r\n }\r\n\r\n get urlData$(): Observable<any[]> {\r\n return this._urlData.asObservable();\r\n }\r\n\r\n onChange(value: any, checked: boolean): void {\r\n this.formControl.markAsDirty();\r\n if (this.props.type === 'array') {\r\n this.formControl.patchValue(\r\n checked\r\n ? [...(this.formControl.value ?? []), value]\r\n : [...(this.formControl.value ?? [])].filter(o => o !== value),\r\n );\r\n } else {\r\n this.formControl.patchValue({ ...this.formControl.value, [value]: checked });\r\n }\r\n this.formControl.markAsTouched();\r\n }\r\n\r\n ngOnInit(): void {\r\n const url = this.field.props?.domain?.url;\r\n if (url && this.field.props?.domain?.code && this.field.props?.domain?.key && this.field.props?.domain?.value) {\r\n this._http.get(url).pipe(takeUntil(this._unsubscribeAll)).subscribe(\r\n (data: any) => {\r\n if (data) {\r\n const datas = data.filter((i: any) => {\r\n if (this.field.props?.domain?.key)\r\n return i[this.field.props?.domain?.key] === this.field.props?.domain?.code;\r\n\r\n return false;\r\n }\r\n );\r\n if (datas && this.field.props?.domain?.value) {\r\n this._urlData.next(datas[0][this.field.props?.domain?.value]);\r\n } else {\r\n this._urlData.next([]);\r\n }\r\n } else {\r\n this._urlData.next([]);\r\n }\r\n }\r\n );\r\n } else {\r\n this._urlData.next([]);\r\n }\r\n }\r\n\r\n override ngOnDestroy(): void {\r\n this._unsubscribeAll.next(void 0);\r\n this._unsubscribeAll.complete();\r\n }\r\n\r\n isChecked(option: any): any {\r\n const value = this.formControl.value;\r\n\r\n return value && (this.props.type === 'array' ? value.includes(option.value) : value[option.value]);\r\n }\r\n\r\n trackByFn(index: number): any {\r\n return index;\r\n }\r\n}\r\n","@if ((urlData$ | async); as urlData) {\r\n@for (option of (urlData.length > 0 ? urlData : (props.options | formlySelectOptions : field | async)); track\r\ntrackByFn($index)) {\r\n<mat-checkbox [tabIndex]=\"props.tabindex\" [color]=\"props.color\" [labelPosition]=\"props.labelPosition\"\r\n [checked]=\"isChecked(option)\" [disabled]=\"formControl.disabled || option.disabled\"\r\n (change)=\"onChange(option.value, $event.checked)\">\r\n {{ option.label }}\r\n</mat-checkbox>\r\n}\r\n}","import { ChangeDetectionStrategy, Component } from '@angular/core';\r\nimport { ReactiveFormsModule } from '@angular/forms';\r\nimport { MatInputModule } from '@angular/material/input';\r\nimport { FieldTypeConfig } from '@ngx-formly/core';\r\nimport { FieldType } from '@ngx-formly/material/form-field';\r\nimport { CmatDigitOnlyDirective } from 'cmat/directives/digit-only';\r\nimport { CustomFormFieldProps } from '../../wrappers/form-field/form-field.component';\r\n\r\ninterface NumberProps extends CustomFormFieldProps {\r\n decimal: boolean;\r\n min: number;\r\n max: number;\r\n}\r\n\r\n@Component({\r\n selector: 'cmat-number-type',\r\n templateUrl: './number.component.html',\r\n styleUrls: ['./number.component.scss'],\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n imports: [CmatDigitOnlyDirective, MatInputModule, ReactiveFormsModule]\r\n})\r\nexport class CmatNumberTypeComponent extends FieldType<FieldTypeConfig<NumberProps>>{\r\n override defaultOptions = {\r\n props: {\r\n decimal: false,\r\n min: -Infinity,\r\n max: Infinity\r\n },\r\n };\r\n}","<input matInput cmatDigitOnly [formControl]=\"formControl\" [readonly]=\"props.readonly\" [placeholder]=\"placeholder\" [tabIndex]=\"props.tabindex\" [required]=\"required\" [decimal]=\"props.decimal\" [allowNegatives]=\"true\" [allowPaste]=\"true\"\r\n [min]=\"props.min\" [max]=\"props.max\" [errorStateMatcher]=\"errorStateMatcher\">\r\n\r\n","import { NgStyle } from '@angular/common';\r\nimport { ChangeDetectionStrategy, Component } from '@angular/core';\r\nimport { ReactiveFormsModule } from '@angular/forms';\r\nimport { FieldTypeConfig } from '@ngx-formly/core';\r\nimport { FieldType } from '@ngx-formly/material/form-field';\r\nimport { CmatRatingComponent } from 'cmat/components/rating';\r\nimport { CustomFormFieldProps } from '../../wrappers/form-field/form-field.component';\r\n\r\ninterface RatingProps extends CustomFormFieldProps {\r\n stars: number;\r\n readonly: boolean;\r\n hover: boolean;\r\n half: boolean;\r\n customColor?: string;\r\n showMode?: 'horizontal' | 'vertical';\r\n}\r\n\r\n@Component({\r\n selector: 'cmat-rating-type',\r\n templateUrl: './rating.component.html',\r\n styleUrls: ['./rating.component.scss'],\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n imports: [CmatRatingComponent, ReactiveFormsModule, NgStyle]\r\n})\r\nexport class CmatRatingTypeComponent extends FieldType<FieldTypeConfig<RatingProps>>{\r\n override defaultOptions = {\r\n props: {\r\n stars: 5,\r\n readonly: false,\r\n hover: true,\r\n half: true\r\n },\r\n };\r\n\r\n}","@if(props.customColor&&props.customColor.indexOf('#')>-1){\r\n<div [ngStyle]=\"{'color': props.customColor}\">\r\n <cmat-rating [formControl]=\"formControl\" [tabIndex]=\"props.tabindex\" [stars]=\"props.stars\"\r\n [readonly]=\"props.readonly\" [hover]=\"props.hover\" [half]=\"props.half\" [showMode]=\"props.showMode\"></cmat-rating>\r\n</div>\r\n}@else{\r\n<cmat-rating [formControl]=\"formControl\" [tabIndex]=\"props.tabindex\" [stars]=\"props.stars\" [readonly]=\"props.readonly\"\r\n [hover]=\"props.hover\" [half]=\"props.half\" [color]=\"props.customColor\" [showMode]=\"props.showMode\"></cmat-rating>\r\n}","import { AsyncPipe } from '@angular/common';\r\nimport { HttpClient } from '@angular/common/http';\r\nimport { Component, ChangeDetectionStrategy, ViewChild, AfterViewInit, OnDestroy, Type, OnInit, inject } from '@angular/core';\r\nimport { ReactiveFormsModule } from '@angular/forms';\r\nimport { MatRadioGroup, MatRadioModule } from '@angular/material/radio';\r\nimport { FieldTypeConfig, FormlyFieldConfig, ɵobserve as observe } from '@ngx-formly/core';\r\nimport { FormlySelectModule } from '@ngx-formly/core/select';\r\nimport { FieldType } from '@ngx-formly/material/form-field';\r\nimport { BehaviorSubject, Observable, Subject, takeUntil } from 'rxjs';\r\nimport { CustomFormFieldProps } from '../../wrappers/form-field/form-field.component';\r\n\r\ninterface RadioProps extends CustomFormFieldProps {\r\n labelPosition: 'before' | 'after';\r\n domain?: {\r\n url?: string;\r\n code?: string;\r\n key?: string;\r\n value?: string;\r\n }\r\n}\r\n\r\nexport interface FormlyRadioFieldConfig extends FormlyFieldConfig<RadioProps> {\r\n type: 'radio' | Type<CmatRadioTypeComponent>;\r\n}\r\n\r\n@Component({\r\n selector: 'cmat-radio-type',\r\n templateUrl: './radio.component.html',\r\n styleUrls: ['./radio.component.scss'],\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n imports: [MatRadioModule, AsyncPipe, FormlySelectModule, ReactiveFormsModule]\r\n})\r\nexport class CmatRadioTypeComponent extends FieldType<FieldTypeConfig<RadioProps>> implements OnInit, AfterViewInit, OnDestroy {\r\n @ViewChild(MatRadioGroup, { static: true }) radioGroup!: MatRadioGroup;\r\n\r\n override defaultOptions = {\r\n props: {\r\n hideFieldUnderline: true,\r\n floatLabel: 'always' as const,\r\n tabindex: -1,\r\n labelPosition: 'after' as const\r\n },\r\n };\r\n\r\n private _http = inject(HttpClient);\r\n private focusObserver!: ReturnType<typeof observe>;\r\n private _urlData: BehaviorSubject<any[]> = new BehaviorSubject<any[]>([]);\r\n private _unsubscribeAll: Subject<any> = new Subject<any>();\r\n\r\n constructor() {\r\n super();\r\n }\r\n get urlData$(): Observable<any[]> {\r\n return this._urlData.asObservable();\r\n }\r\n ngOnInit(): void {\r\n const url = this.field.props?.domain?.url;\r\n if (url && this.field.props?.domain?.code && this.field.props?.domain?.key && this.field.props?.domain?.value) {\r\n this._http.get(url).pipe(takeUntil(this._unsubscribeAll)).subscribe(\r\n (data: any) => {\r\n if (data) {\r\n const datas = data.filter((i: any) => {\r\n if (this.field.props?.domain?.key)\r\n return i[this.field.props?.domain?.key] === this.field.props?.domain?.code;\r\n\r\n return false;\r\n }\r\n );\r\n if (datas && this.field.props?.domain?.value) {\r\n this._urlData.next(datas[0][this.field.props?.domain?.value]);\r\n } else {\r\n this._urlData.next([]);\r\n }\r\n } else {\r\n this._urlData.next([]);\r\n }\r\n }\r\n );\r\n } else {\r\n this._urlData.next([]);\r\n }\r\n }\r\n\r\n\r\n ngAfterViewInit(): void {\r\n this.focusObserver = observe(this.field, ['focus'], ({ currentValue }) => {\r\n if (this.props.tabindex === -1 && currentValue && this.radioGroup._radios.length > 0) {\r\n setTimeout(() => {\r\n const radio = this.radioGroup.selected ?? this.radioGroup._radios.first;\r\n radio.focus();\r\n });\r\n }\r\n });\r\n }\r\n\r\n override ngOnDestroy(): void {\r\n super.ngOnDestroy();\r\n this.focusObserver?.unsubscribe();\r\n this._unsubscribeAll.next(void 0);\r\n this._unsubscribeAll.complete();\r\n }\r\n\r\n trackByFn(index: number): any {\r\n return index;\r\n }\r\n}\r\n","<mat-radio-group [formControl]=\"formControl\" [required]=\"required\" [tabindex]=\"props.tabindex\">\r\n @if ((urlData$ | async); as urlData) {\r\n @for (option of (urlData.length > 0 ? urlData : (props.options | formlySelectOptions : field | async)); track\r\n trackByFn($index)) {\r\n <mat-radio-button [color]=\"props.color\" [labelPosition]=\"props.labelPosition\" [disabled]=\"option.disabled\"\r\n [value]=\"option.value\">\r\n {{ option.label }}\r\n </mat-radio-button>\r\n }\r\n }\r\n</mat-radio-group>","import { ChangeDetectionStrategy, Component } from '@angular/core';\r\nimport { MatButtonModule } from '@angular/material/button';\r\nimport { MatIconModule } from '@angular/material/icon';\r\nimport { FieldArrayType, FieldTypeConfig, FormlyModule } from '@ngx-formly/core';\r\nimport { CustomFormFieldProps } from '../../wrappers/form-field/form-field.component';\r\n\r\ninterface RepeatProps extends CustomFormFieldProps {\r\n addText: string;\r\n}\r\n\r\n@Component({\r\n selector: 'cmat-repeat-type',\r\n templateUrl: './repeat.component.html',\r\n styleUrls: ['./repeat.component.scss'],\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n imports: [FormlyModule, MatIconModule, MatButtonModule]\r\n})\r\nexport class CmatRepeatTypeComponent extends FieldArrayType<FieldTypeConfig<RepeatProps>> {\r\n override defaultOptions = {\r\n props: {\r\n addText: '新增'\r\n },\r\n };\r\n}\r\n","<div class=\"mb-2\" [tabIndex]=\"props.tabindex\">\r\n @if(props.label){\r\n <legend class=\"text-lg\">\r\n {{ props.label }}\r\n @if(props.required){\r\n <span>*</span>\r\n }\r\n </legend>\r\n }\r\n\r\n @if(props.description){\r\n <p>{{ props.description }}</p>\r\n }\r\n\r\n <div class=\"mb-2 h-1 border-solid border-b-2\"></div>\r\n <div class=\"flex flex-col repeat-body\">\r\n @for (field of field.fieldGroup; track $index) {\r\n <div class=\"flex flex-row repeat-item\">\r\n <formly-field class=\"repeat-field\" [field]=\"field\"></formly-field>\r\n @if(!props.disabled){\r\n <div class=\"flex items-center pl-2 print:hidden\">\r\n <button matIconButton color=\"warn\" matTooltip=\"删除\" (click)=\"remove($index)\">\r\n <mat-icon color=\"warn\" [svgIcon]=\"'heroicons_outline:trash'\"></mat-icon>\r\n </button>\r\n </div>\r\n }\r\n </div>\r\n }\r\n </div>\r\n\r\n @if(!props.disabled){\r\n <div class=\"mt-2 print:hidden\">\r\n <button matButton=\"filled\" color=\"primary\" (click)=\"add()\">{{ props.addText}}</button>\r\n </div>\r\n }\r\n\r\n</div>","import { AsyncPipe } from '@angular/common';\r\nimport { HttpClient } from '@angular/common/http';\r\nimport { Component, ChangeDetectionStrategy, OnDestroy, OnInit, inject } from '@angular/core';\r\nimport { FormControl, ReactiveFormsModule } from '@angular/forms';\r\nimport { MatCheckboxModule } from '@angular/material/checkbox';\r\nimport { MatSelectModule } from '@angular/material/select';\r\nimport { FieldTypeConfig } from '@ngx-formly/core';\r\nimport { FormlyFieldSelectProps } from '@ngx-formly/core/select';\r\nimport { FieldType } from '@ngx-formly/material/form-field';\r\nimport { isArray, isString, isUndefined } from 'lodash-es';\r\nimport { ReplaySubject, Subject, of, take, takeUntil } from 'rxjs';\r\nimport { CmatSelectSearchComponent } from 'cmat/components/select-search';\r\nimport { CustomFormFieldProps } from '../../wrappers/form-field/form-field.component';\r\n\r\ninterface SelectProps extends CustomFormFieldProps, FormlyFieldSelectProps {\r\n multiple?: boolean;\r\n disableOptionCentering?: boolean;\r\n typeaheadDebounceInterval?: number;\r\n search: boolean;\r\n canNull: boolean;\r\n showToggleAllCheckbox: boolean;\r\n domain?: {\r\n url?: string;\r\n code?: string;\r\n key?: string;\r\n value?: string;\r\n }\r\n}\r\n\r\n@Component({\r\n selector: 'cmat-select-search-type',\r\n templateUrl: './select.component.html',\r\n styleUrls: ['./select.component.scss'],\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n imports: [MatCheckboxModule, MatSelectModule, CmatSelectSearchComponent, ReactiveFormsModule, AsyncPipe]\r\n})\r\nexport class CmatSelectTypeComponent extends FieldType<FieldTypeConfig<SelectProps>> implements OnInit, OnDestroy {\r\n override defaultOptions = {\r\n props: {\r\n search: true,\r\n canNull: false,\r\n showToggleAllCheckbox: false\r\n },\r\n };\r\n\r\n optionsData: any[];\r\n\r\n filteredCustomDetails: ReplaySubject<any[]> = new ReplaySubject<any[]>(1);\r\n filteredCache: any[] = [];\r\n isIndeterminate = false;\r\n isChecked = false;\r\n multiFilterCtrl: FormControl = new FormControl<string>('');\r\n\r\n private _http = inject(HttpClient);\r\n private _urlData: [] = [];\r\n private _unsubscribeAll: Subject<void> = new Subject<void>();\r\n\r\n constructor() {\r\n super();\r\n }\r\n\r\n get datas(): any[] {\r\n if (isArray(this.field.props?.options)) {\r\n return this._urlData?.length > 0 ? this._urlData : this.field.props?.options || [];\r\n } else {\r\n return this._urlData?.length > 0 ? this._urlData : this.optionsData || [];\r\n }\r\n }\r\n\r\n ngOnInit(): void {\r\n if (this.field.props?.options && !isArray(this.field.props?.options)) {\r\n this.field.props?.options.pipe(takeUntil(this._unsubscribeAll)).subscribe(\r\n (data) => {\r\n this.optionsData = data;\r\n }\r\n );\r\n }\r\n\r\n const url = this.field.props?.domain?.url;\r\n if (url && this.field.props?.domain?.code && this.field.props?.domain?.key && this.field.props?.domain?.value) {\r\n this._http.get(url).pipe(takeUntil(this._unsubscribeAll)).subscribe(\r\n (data: any) => {\r\n if (data) {\r\n const datas = data.filter((i: any) => {\r\n if (this.field.props?.domain?.key)\r\n return i[this.field.props?.domain?.key] === this.field.props?.domain?.code;\r\n\r\n return false;\r\n }\r\n );\r\n if (datas && this.field.props?.domain?.value) {\r\n this._urlData = datas[0][this.field.props?.domain?.value];\r\n\r\n } else {\r\n this._urlData = [];\r\n }\r\n\r\n } else {\r\n this._urlData = [];\r\n }\r\n this.filteredCache = this.datas.slice();\r\n this.filteredCustomDetails.next(this.filteredCache);\r\n }\r\n );\r\n } else {\r\n this._urlData = [];\r\n this.filteredCache = this.datas.slice();\r\n this.filteredCustomDetails.next(this.filteredCache);\r\n }\r\n\r\n of(this.props.multiple).pipe(takeUntil(this._unsubscribeAll))\r\n .subscribe((multiple) => {\r\n if (!isUndefined(this.formControl.value) && !isArray(this.formControl.value) && multiple) {\r\n const value = [this.formControl.value];\r\n\r\n this.formControl.setValue(value);\r\n }\r\n });\r\n\r\n this.multiFilterCtrl.valueChanges\r\n .pipe(takeUntil(this._unsubscribeAll))\r\n .subscribe(() => {\r\n this.filterMulti();\r\n\r\n if (this.props.multiple)\r\n this.setToggleAllCheckboxState();\r\n });\r\n\r\n this.formControl.valueChanges\r\n .pipe(takeUntil(this._unsubscribeAll))\r\n .subscribe(() => {\r\n if (this.props.multiple)\r\n this.setToggleAllCheckboxState();\r\n });\r\n }\r\n\r\n ngOnDestroy(): void {\r\n this._unsubscribeAll.next(void (0));\r\n this._unsubscribeAll.complete();\r\n }\r\n\r\n getAriaLabelledby(): string {\r\n if (this.props.attributes?.['aria-labelledby']) {\r\n return this.props.attributes['aria-labelledby'] as string;\r\n }\r\n\r\n return this.formField?._labelId;\r\n }\r\n\r\n getAriaLabel(): string {\r\n return this.props.attributes?.['aria-label'] as string;\r\n }\r\n\r\n toggleSelectAll(selectAllValue: boolean): void {\r\n this.filteredCustomDetails.pipe(\r\n take(1),\r\n takeUntil(this._unsubscribeAll)\r\n )\r\n .subscribe((val) => {\r\n if (selectAllValue) {\r\n this.formControl.setValue(val.filter(o => !o.disabled));\r\n } else {\r\n this.formControl.setValue([]);\r\n }\r\n this.formControl.markAsDirty();\r\n });\r\n }\r\n\r\n filterMulti(): void {\r\n if (!this.datas) {\r\n return;\r\n }\r\n\r\n let search = this.multiFilterCtrl.value;\r\n if (!search) {\r\n this.filteredCache = this.datas.slice();\r\n this.filteredCustomDetails.next(this.filteredCache);\r\n return;\r\n } else {\r\n search = search.toLowerCase();\r\n }\r\n\r\n this.filteredCache = this.datas.filter(items => isString(items) ? items.toString().toLowerCase().includes(search) : (items?.value.toString().toLowerCase().includes(search) ?? items?.label.toString().toLowerCase().includes(search)));\r\n this.filteredCustomDetails.next(this.filteredCache);\r\n }\r\n\r\n setToggleAllCheckboxState(): void {\r\n let filteredLength = 0;\r\n if (this.formControl.value && this.props.search) {\r\n const cache = this.filteredCache.filter(o => !o.disabled);\r\n\r\n const v = isArray(this.formControl.value) || isUndefined(this.formControl.value) ? this.formControl.value : [this.formControl.value];\r\n if (v)\r\n cache.forEach((el) => {\r\n if (v.findIndex((t: any) => isString(t) ? el === t : (t?.value === el.value && t?.label === el.label)) > -1) {\r\n filteredLength++;\r\n }\r\n });\r\n\r\n this.isIndeterminate = filteredLength > 0 && filteredLength < cache.length;\r\n this.isChecked = filteredLength > 0 && filteredLength === cache.length;\r\n } else {\r\n this.isIndeterminate = false;\r\n this.isChecked = false;\r\n }\r\n }\r\n\r\n compareWithFn(o1: any, o2: any): boolean {\r\n return o1 && o2 ? o1?.label === o2?.label && o1?.value === o2?.value : o1 === o2;\r\n }\r\n}\r\n","@if(props.multiple){\r\n<mat-select #multiSelect multiple [id]=\"id\" [formControl]=\"formControl\" [placeholder]=\"props.placeholder??''\"\r\n [required]=\"required\" [tabIndex]=\"props.tabindex\" [compareWith]=\"compareWithFn\"\r\n [errorStateMatcher]=\"errorStateMatcher\" [aria-label]=\"getAriaLabel()\" [aria-labelledby]=\"getAriaLabelledby()\"\r\n [disableOptionCentering]=\"props.disableOptionCentering\"\r\n [typeaheadDebounceInterval]=\"props.typeaheadDebounceInterval\"\r\n [panelClass]=\"'overflow-y-auto scrollbar-custom'\">\r\n @if ((filteredCustomDetails | async); as customDetails) {\r\n @if (props.search) {\r\n <mat-option>\r\n <cmat-select-search [formControl]=\"multiFilterCtrl\" [showToggleAllCheckbox]=\"props.showToggleAllCheckbox\"\r\n [toggleAllCheckboxIndeterminate]=\"isIndeterminate\" [toggleAllCheckboxChecked]=\"isChecked\"\r\n (toggleAll)=\"toggleSelectAll($event)\">\r\n </cmat-select-search>\r\n </mat-option>\r\n }\r\n @if (customDetails?.length!==0&&props.canNull&&!props.multiple) {\r\n <mat-option>空</mat-option>\r\n }\r\n @for (i of customDetails; track $index) {\r\n @if(i.label){\r\n @if(i.group){\r\n <mat-optgroup [label]=\"i.label\">\r\n @for (child of i.group; track $index) {\r\n <mat-option [value]=\"child\" [disabled]=\"child.disabled\">\r\n {{ child.label }}\r\n </mat-option>\r\n }\r\n </mat-optgroup>\r\n }@else {\r\n <mat-option [value]=\"i\" [disabled]=\"i.disabled\">{{i.label}}</mat-option>\r\n }\r\n }@else {\r\n <mat-option [value]=\"i\">{{i}}</mat-option>\r\n }\r\n }\r\n }\r\n</mat-select>\r\n}@else {\r\n<mat-select #multiSelect [id]=\"id\" [formControl]=\"formControl\" [placeholder]=\"props.placeholder??''\"\r\n [required]=\"required\" [tabIndex]=\"props.tabindex\" [compareWith]=\"compareWithFn\"\r\n [errorStateMatcher]=\"errorStateMatcher\" [aria-label]=\"getAriaLabel()\" [aria-labelledby]=\"getAriaLabelledby()\"\r\n [disableOptionCentering]=\"props.disableOptionCentering\"\r\n [typeaheadDebounceInterval]=\"props.typeaheadDebounceInterval\"\r\n [panelClass]=\"'overflow-y-auto scrollbar-custom'\">\r\n @if ((filteredCustomDetails | async); as customDetails) {\r\n @if (props.search) {\r\n <mat-option>\r\n <cmat-select-search [formControl]=\"multiFilterCtrl\" [showToggleAllCheckbox]=\"props.showToggleAllCheckbox\"\r\n [toggleAllCheckboxIndeterminate]=\"isIndeterminate\" [toggleAllCheckboxChecked]=\"isChecked\"\r\n (toggleAll)=\"toggleSelectAll($event)\">\r\n </cmat-select-search>\r\n </mat-option>\r\n }\r\n @if (customDetails?.length!==0&&props.canNull&&!props.multiple) {\r\n <mat-option>空</mat-option>\r\n }\r\n @for (i of customDetails; track $index) {\r\n @if(i.label){\r\n @if(i.group){\r\n <mat-optgroup [label]=\"i.label\">\r\n @for (child of i.group; track $index) {\r\n <mat-option [value]=\"child\" [disabled]=\"child.disabled\">\r\n {{ child.label }}\r\n </mat-option>\r\n }\r\n </mat-optgroup>\r\n }@else {\r\n <mat-option [value]=\"i\" [disabled]=\"i.disabled\">{{i.label}}</mat-option>\r\n }\r\n }@else {\r\n <mat-option [value]=\"i\">{{i}}</mat-option>\r\n }\r\n }\r\n }\r\n</mat-select>\r\n}","import { HttpClient } from '@angular/common/http';\r\nimport { ChangeDetectionStrategy, ChangeDetectorRef, Component, OnDestroy, OnInit, inject } from '@angular/core';\r\nimport { ReactiveFormsModule } from '@angular/forms';\r\nimport { FieldTypeConfig } from '@ngx-formly/core';\r\nimport { FormlyFieldSelectProps } from '@ngx-formly/core/select';\r\nimport { FieldType } from '@ngx-formly/material';\r\nimport { Subject, takeUntil } from 'rxjs';\r\nimport { CmatSelectTreeComponent } from 'cmat/components/select-tree';\r\nimport { CustomFormFieldProps } from '../../wrappers/form-field/form-field.component';\r\n\r\ninterface SelectTreeProps extends CustomFormFieldProps, FormlyFieldSelectProps {\r\n multiple: boolean;\r\n search: boolean;\r\n canNull: boolean;\r\n showToggleAllCheckbox: boolean;\r\n expandable: boolean;\r\n customTriggerLabelTemplate: string;\r\n domain?: {\r\n url?: string;\r\n code?: string;\r\n key?: string;\r\n value?: string;\r\n }\r\n}\r\n\r\n@Component({\r\n selector: 'cmat-select-tree-type',\r\n templateUrl: './select-tree.component.html',\r\n styleUrls: ['./select-tree.component.scss'],\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n imports: [ReactiveFormsModule, CmatSelectTreeComponent]\r\n})\r\nexport class CmatSelectTreeTypeComponent extends FieldType<FieldTypeConfig<SelectTreeProps>> implements OnInit, OnDestroy {\r\n override defaultOptions = {\r\n props: {\r\n multiple: false,\r\n search: true,\r\n canNull: false,\r\n showToggleAllCheckbox: false,\r\n expandable: true,\r\n customTriggerLabelTemplate: '${name}'\r\n },\r\n };\r\n urlData: [] = [];\r\n\r\n private _http = inject(HttpClient);\r\n private _changeDetectorRef = inject(ChangeDetectorRef);\r\n private _unsubscribeAll: Subject<void> = new Subject<void>();\r\n\r\n constructor() {\r\n super();\r\n }\r\n\r\n ngOnInit(): void {\r\n const url = this.field.props?.domain?.url;\r\n if (url && this.field.props?.domain?.code && this.field.props?.domain?.key && this.field.props?.domain?.value) {\r\n this._http.get(url).pipe(takeUntil(this._unsubscribeAll)).subscribe(\r\n (data: any) => {\r\n if (data) {\r\n const datas = data.filter((i: any) => {\r\n if (this.field.props?.domain?.key)\r\n return i[this.field.props?.domain?.key] === this.field.props?.domain?.code;\r\n\r\n return false;\r\n }\r\n );\r\n if (datas && this.field.props?.domain?.value) {\r\n this.urlData = datas[0][this.field.props?.domain?.value];\r\n } else {\r\n this.urlData = [];\r\n }\r\n } else {\r\n this.urlData = [];\r\n }\r\n\r\n this._changeDetectorRef.markForCheck();\r\n }\r\n );\r\n } else {\r\n this.urlData = [];\r\n\r\n this._changeDetectorRef.markForCheck();\r\n }\r\n }\r\n\r\n ngOnDestroy(): void {\r\n this._unsubscribeAll.next(void 0);\r\n this._unsubscribeAll.complete();\r\n }\r\n}","<cmat-select-tree [formControl]=\"formControl\" [dataSource]=\"urlData\" [customTriggerLabelTemplate]=\"'${name}'\"\r\n [multiple]=\"props.multiple\" [overallSearchEnabled]=\"props.search\" [canNull]=\"props.canNull\"\r\n [showToggleAllCheckbox]=\"props.showToggleAllCheckbox\" [expandable]=\"props.expandable\" [placeholder]=\"placeholder\"\r\n [tabIndex]=\"props.tabindex\" [required]=\"required\"></cmat-select-tree>","import { HttpClient } from '@angular/common/http';\r\nimport { ChangeDetectionStrategy, ChangeDetectorRef, Component, OnDestroy, OnInit, inject } from '@angular/core';\r\nimport { ReactiveFormsModule } from '@angular/forms';\r\nimport { FieldTypeConfig } from '@ngx-formly/core';\r\nimport { FormlyFieldSelectProps } from '@ngx-formly/core/select';\r\nimport { FieldType } from '@ngx-formly/material';\r\nimport { Subject, takeUntil } from 'rxjs';\r\nimport { CmatSelectTableComponent, CmatSelectTableDataSource, CmatSelectTableRow } from 'cmat/components/select-table';\r\nimport { CustomFormFieldProps } from '../../wrappers/form-field/form-field.component';\r\n\r\ninterface SelectTableProps extends CustomFormFieldProps, FormlyFieldSelectProps {\r\n multiple: boolean;\r\n search: boolean;\r\n canNull: boolean;\r\n customTriggerLabelTemplate: string;\r\n domain?: {\r\n url?: string;\r\n code?: string;\r\n key?: string;\r\n value?: string;\r\n }\r\n}\r\n\r\n@Component({\r\n selector: 'cmat-select-table-type',\r\n templateUrl: './select-table.component.html',\r\n styleUrls: ['./select-table.component.scss'],\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n imports: [ReactiveFormsModule, CmatSelectTableComponent]\r\n})\r\nexport class CmatSelectTableTypeComponent extends FieldType<FieldTypeConfig<SelectTableProps>> implements OnInit, OnDestroy {\r\n override defaultOptions = {\r\n props: {\r\n multiple: false,\r\n search: true,\r\n canNull: false,\r\n customTriggerLabelTemplate: '${name}'\r\n },\r\n };\r\n urlData: CmatSelectTableDataSource<CmatSelectTableRow> = { columns: [], data: [] };\r\n\r\n private _http = inject(HttpClient);\r\n private _changeDetectorRef = inject(ChangeDetectorRef);\r\n private _unsubscribeAll: Subject<void> = new Subject<void>();\r\n\r\n constructor() {\r\n super();\r\n }\r\n\r\n ngOnInit(): void {\r\n const url = this.field.props?.domain?.url;\r\n if (url && this.field.props?.domain?.code && this.field.props?.domain?.key && this.field.props?.domain?.value) {\r\n this._http.get(url).pipe(takeUntil(this._unsubscribeAll)).subscribe(\r\n (data: any) => {\r\n if (data) {\r\n const datas = data.filter((i: any) => {\r\n if (this.field.props?.domain?.key)\r\n return i[this.field.props?.domain?.key] === this.field.props?.domain?.code;\r\n\r\n return false;\r\n }\r\n );\r\n if (datas && this.field.props?.domain?.value) {\r\n this.urlData = datas[0][this.field.props?.domain?.value];\r\n } else {\r\n this.urlData = { columns: [], data: [] };\r\n }\r\n } else {\r\n this.urlData = { columns: [], data: [] };\r\n }\r\n\r\n this._changeDetectorRef.markForCheck();\r\n }\r\n );\r\n } else {\r\n this.urlData = { columns: [], data: [] };\r\n\r\n this._changeDetectorRef.markForCheck();\r\n }\r\n }\r\n\r\n ngOnDestroy(): void {\r\n this._unsubscribeAll.next(void 0);\r\n this._unsubscribeAll.complete();\r\n }\r\n}","<cmat-select-table [formControl]=\"formControl\" [dataSource]=\"urlData\" [customTriggerLabelTemplate]=\"'${name}'\"\r\n [multiple]=\"props.multiple\" [overallSearchEnabled]=\"props.search\" [canNull]=\"props.canNull\"\r\n [placeholder]=\"placeholder\" [tabIndex]=\"props.tabindex\" [required]=\"required\"></cmat-select-table>","import { ChangeDetectionStrategy, Component } from '@angular/core';\r\nimport { ReactiveFormsModule } from '@angular/forms';\r\nimport { MatButtonModule } from '@angular/material/button';\r\nimport { MatIconModule } from '@angular/material/icon';\r\nimport { MatStepperModule } from '@angular/material/stepper';\r\nimport { FieldType, FieldTypeConfig, FormlyFieldConfig, FormlyModule } from '@ngx-formly/core';\r\nimport { StepperProps } from '../stepper.type';\r\n\r\n@Component({\r\n selector: 'cmat-stepper-horizontal-type',\r\n templateUrl: './stepper.component.html',\r\n styleUrls: ['./stepper.component.scss'],\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n imports: [FormlyModule, MatStepperModule, MatButtonModule, ReactiveFormsModule, MatIconModule]\r\n})\r\nexport class CmatStepperHorizontalTypeComponent extends FieldType<FieldTypeConfig<StepperProps>> {\r\n isValid(field: FormlyFieldConfig): boolean {\r\n if (field.key) {\r\n if (field.formControl)\r\n return field.formControl.valid;\r\n\r\n return true;\r\n }\r\n\r\n return field.fieldGroup ? field.fieldGroup.every(f => this.isValid(f)) : true;\r\n }\r\n}\r\n","<mat-horizontal-stepper [linear]=\"props.isLinear\" [tabIndex]=\"props.tabindex\">\r\n\r\n <ng-template matStepperIcon=\"edit\">\r\n <mat-icon class=\"icon-size-4\" [svgIcon]=\"'heroicons_solid:pencil'\"></mat-icon>\r\n </ng-template>\r\n <ng-template matStepperIcon=\"done\">\r\n <mat-icon class=\"icon-size-4\" [svgIcon]=\"'heroicons_outline:check'\"></mat-icon>\r\n </ng-template>\r\n\r\n @for (step of field.fieldGroup; track $index) {\r\n <mat-step [stepControl]=\"step.formControl!\" [editable]=\"step.props?.isEditable||$last\" [optional]=\"step.props?.isOptional\">\r\n <ng-template matStepLabel>{{ step.props?.label||'' }}</ng-template>\r\n <div class=\"py-2\">\r\n <formly-field [field]=\"step\"></formly-field>\r\n </div>\r\n <div class=\"mt-2 flex flex-row gap-2\">\r\n @if($index !== 0){\r\n <button matStepperPrevious matButton=\"filled\" color=\"primary\" type=\"button\">上一步</button>\r\n }\r\n\r\n @if(!$last){\r\n <button matStepperNext matButton=\"filled\" color=\"primary\" type=\"button\" [disabled]=\"!isValid(step)\">\r\n 下一步\r\n </button>\r\n }\r\n </div>\r\n </mat-step>\r\n }\r\n\r\n</mat-horizontal-stepper>","import { ChangeDetectionStrategy, Component } from '@angular/core';\r\nimport { ReactiveFormsModule } from '@angular/forms';\r\nimport { MatButtonModule } from '@angular/material/button';\r\nimport { MatIconModule } from '@angular/material/icon';\r\nimport { MatStepperModule } from '@angular/material/stepper';\r\nimport { FieldType, FieldTypeConfig, FormlyFieldConfig, FormlyModule } from '@ngx-formly/core';\r\nimport { StepperProps } from '../stepper.type';\r\n\r\n@Component({\r\n selector: 'cmat-stepper-vertical-type',\r\n templateUrl: './stepper.component.html',\r\n styleUrls: ['./stepper.component.scss'],\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n imports: [FormlyModule, MatStepperModule, MatButtonModule, ReactiveFormsModule, MatIconModule]\r\n})\r\nexport class CmatStepperVerticalTypeComponent extends FieldType<FieldTypeConfig<StepperProps>> {\r\n isValid(field: FormlyFieldConfig): boolean {\r\n if (field.key) {\r\n if (field.formControl)\r\n return field.formControl.valid;\r\n\r\n return true;\r\n }\r\n\r\n return field.fieldGroup ? field.fieldGroup.every(f => this.isValid(f)) : true;\r\n }\r\n}\r\n","<mat-vertical-stepper [linear]=\"props.isLinear\" [tabIndex]=\"props.tabindex\">\r\n <ng-template matStepperIcon=\"edit\">\r\n <mat-icon class=\"icon-size-4\" [svgIcon]=\"'heroicons_solid:pencil'\"></mat-icon>\r\n </ng-template>\r\n <ng-template matStepperIcon=\"done\">\r\n <mat-icon class=\"icon-size-4\" [svgIcon]=\"'heroicons_outline:check'\"></mat-icon>\r\n </ng-template>\r\n\r\n @for (step of field.fieldGroup; track $index) {\r\n <mat-step [stepControl]=\"step.formControl!\" [editable]=\"step.props?.isEditable||$last\" [optional]=\"step.props?.isOptional\">\r\n <ng-template matStepLabel>{{ step.props?.label||'' }}</ng-template>\r\n <div class=\"py-2\">\r\n <formly-field [field]=\"step\"></formly-field>\r\n </div>\r\n\r\n <div class=\"mt-2 flex flex-row gap-2\">\r\n @if($index!==0){\r\n <button matStepperPrevious matButton=\"filled\" color=\"primary\" type=\"button\">上一步</button>\r\n }\r\n\r\n @if(!$last){\r\n <button matStepperNext matButton=\"filled\" color=\"primary\" type=\"button\" [disabled]=\"!isValid(step)\">\r\n 下一步\r\n </button>\r\n }\r\n </div>\r\n </mat-step>\r\n }\r\n</mat-vertical-stepper>","import { CdkDrag } from '@angular/cdk/drag-drop';\r\nimport { NgTemplateOutlet } from '@angular/common';\r\nimport {\r\n Component,\r\n ChangeDetectionStrategy,\r\n OnInit,\r\n TemplateRef,\r\n ViewChild,\r\n ViewContainerRef,\r\n inject,\r\n ChangeDetectorRef,\r\n} from '@angular/core';\r\nimport { FormGroup, FormsModule, ReactiveFormsModule } from '@angular/forms';\r\nimport { MatButtonModule } from '@angular/material/button';\r\nimport { MatDialog, MatDialogModule, MatDialogRef } from '@angular/material/dialog';\r\nimport { MatIconModule } from '@angular/material/icon';\r\nimport { MatTable, MatTableModule } from '@angular/material/table';\r\nimport { MatTooltipModule } from '@angular/material/tooltip';\r\nimport { FieldArrayType, FieldTypeConfig, FormlyFieldConfig, FormlyModule } from '@ngx-formly/core';\r\nimport { CustomFormFieldProps } from '../../wrappers/form-field/form-field.component';\r\n\r\ninterface TableProps extends CustomFormFieldProps {\r\n addText: string;\r\n showColumn?: boolean;\r\n}\r\n\r\n@Component({\r\n selector: 'cmat-table-type',\r\n templateUrl: 'table.component.html',\r\n styleUrls: ['./table.component.scss'],\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n imports: [MatButtonModule, MatIconModule, MatTableModule, FormsModule, FormlyModule, CdkDrag,\r\n ReactiveFormsModule, MatDialogModule, NgTemplateOutlet, MatTooltipModule]\r\n})\r\nexport class CmatTableTypeComponent extends FieldArrayType<FieldTypeConfig<TableProps>> implements OnInit {\r\n @ViewChild('dialogRef') dialogRef: TemplateRef<any>;\r\n @ViewChild('table') table: MatTable<any>;\r\n\r\n inlineform = new FormGroup({});\r\n currentMode: any = {};\r\n currentIndex: number;\r\n\r\n columns: { key: string, label: string }[];\r\n displayedColumns: string[] = [];\r\n\r\n dialogType: 'add' | 'edit' | '' = '';\r\n\r\n override defaultOptions = {\r\n props: {\r\n addText: '新增'\r\n },\r\n };\r\n\r\n private _changeDetectorRef = inject(ChangeDetectorRef);\r\n private readonly _dialog = inject(MatDialog);\r\n private readonly _viewContainerRef = inject(ViewContainerRef);\r\n private _dialogRef: MatDialogRef<any>;\r\n\r\n constructor() {\r\n super();\r\n }\r\n get fieldArray(): FormlyFieldConfig[] {\r\n return (this.field.fieldArray as FormlyFieldConfig).fieldGroup!;\r\n }\r\n\r\n get key(): string {\r\n return (this.field.fieldArray as FormlyFieldConfig).fieldGroup![0].id!;\r\n }\r\n\r\n ngOnInit(): void {\r\n this.columns = (this.field.fieldArray as FormlyFieldConfig).fieldGroup![0].fieldGroup!.\r\n filter(field => field.props?.showColumn).map(field => ({\r\n key: field.key as string,\r\n label: field.props?.label ?? '',\r\n }));\r\n\r\n if (this.props.disabled) {\r\n this.displayedColumns = [...this.columns.map(column => column.key)];\r\n } else {\r\n this.displayedColumns = [...this.columns.map(column => column.key), 'operate'];\r\n }\r\n }\r\n\r\n addRow(): void {\r\n this._dialogRef = this._dialog\r\n .open(this.dialogRef, {\r\n panelClass: ['cmat-table-dialog-container'],\r\n viewContainerRef: this._viewContainerRef\r\n });\r\n this._dialogRef.afterClosed()\r\n .subscribe(() => { this.dialogType = ''; });\r\n\r\n\r\n this.dialogType = 'add';\r\n this.currentMode = {};\r\n this.inlineform.reset();\r\n }\r\n\r\n editRow(item: any, index: number): void {\r\n this.currentIndex = index;\r\n\r\n this._dialogRef = this._dialog\r\n .open(this.dialogRef, {\r\n panelClass: ['cmat-table-dialog-container'],\r\n viewContainerRef: this._viewContainerRef\r\n });\r\n this._dialogRef.afterClosed()\r\n .subscribe(() => { this.dialogType = ''; });\r\n\r\n this.dialogType = 'edit';\r\n this.currentMode = {\r\n [this.key]: item\r\n };\r\n }\r\n\r\n deleteRow(id: number): void {\r\n this.remove(id);\r\n\r\n this.table.renderRows();\r\n }\r\n\r\n confirm(): void {\r\n if (this.inlineform.invalid) {\r\n this.inlineform.markAllAsTouched();\r\n return;\r\n }\r\n\r\n if (this.dialogType == 'add' && this.currentMode[this.key]) {\r\n this.add(this.model?.length ?? 0, this.currentMode[this.key]);\r\n } else if (this.dialogType == 'edit' && this.currentMode[this.key]) {\r\n this.model![this.currentIndex] = this.currentMode[this.key];\r\n }\r\n this.table.renderRows();\r\n this._changeDetectorRef.markForCheck();\r\n\r\n this._dialogRef.close();\r\n }\r\n}","<div class=\"relative flex flex-col sm:flex-row flex-none sm:items-center sm:justify-between p-2 border-b mb-1\">\r\n <div>\r\n @if(props.label){\r\n <legend class=\"text-lg\">\r\n {{ props.label }}\r\n @if(props.required){\r\n <span>*</span>\r\n }\r\n </legend>\r\n }\r\n @if(props.description){\r\n <p>{{ props.description }}</p>\r\n }\r\n </div>\r\n\r\n @if(!props.disabled){\r\n <div class=\"flex shrink-0 items-center mt-6 sm:mt-0 sm:ml-4 print:hidden\">\r\n <button class=\"ml-4\" matButton=\"filled\" [color]=\"'primary'\" (click)=\"addRow()\">\r\n <mat-icon [svgIcon]=\"'heroicons_outline:plus'\"></mat-icon>\r\n <span class=\"ml-2\">{{props.addText}}</span>\r\n </button>\r\n </div>\r\n }\r\n</div>\r\n\r\n\r\n<table #table mat-table class=\"w-full\" [dataSource]=\"model||[]\" [tabIndex]=\"props.tabindex\">\r\n @for (column of columns; track $index) {\r\n <ng-container [matColumnDef]=\"column.key\">\r\n <th *matHeaderCellDef mat-header-cell> {{ column.label }} </th>\r\n <td *matCellDef=\"let element; let i = index\" mat-cell>\r\n <div class=\" has-label-on-mobile\" [attr.data-label]=\"column.label +':'\">\r\n {{element[column.key]}}\r\n </div>\r\n </td>\r\n </ng-container>\r\n }\r\n\r\n <ng-container matColumnDef=\"operate\" stickyEnd>\r\n <th *matHeaderCellDef mat-header-cell class=\"print:hidden\">操作</th>\r\n <td *matCellDef=\"let element; let i = index\" mat-cell class=\"w-24 print:hidden\">\r\n <div class=\"flex flex-col lg:w-full\">\r\n <div class=\"relative flex flex-row gap-2 lg:m-2 justify-center\">\r\n <button type=\"button\" class=\"w-8 min-h-8 h-8 max-w-8 lg:opacity-0 lg:group-hover:opacity-100\"\r\n matIconButton [matTooltip]=\"'编辑'\" (click)=\"editRow(element,i)\">\r\n <mat-icon class=\"icon-size-5\" color=\"primary\" [svgIcon]=\"'heroicons_solid:pencil-square'\">\r\n </mat-icon>\r\n </button>\r\n \r\n <button type=\"button\" class=\"w-8 min-h-8 h-8 max-w-8 lg:opacity-0 lg:group-hover:opacity-100\"\r\n matIconButton [matTooltip]=\"'移除'\" (click)=\"deleteRow(i)\">\r\n <mat-icon class=\"icon-size-5\" color=\"warn\" [svgIcon]=\"'heroicons_solid:trash'\"></mat-icon>\r\n </button>\r\n </div>\r\n </div>\r\n </td>\r\n </ng-container>\r\n\r\n <tr *matHeaderRowDef=\"displayedColumns\" mat-header-row></tr>\r\n <tr *matRowDef=\"let row; columns: displayedColumns;\" mat-row class=\"group\"></tr>\r\n</table>\r\n\r\n<ng-template #inlineTable>\r\n <div class=\"overflow-y-auto scrollbar-custom w-full\">\r\n <form [formGroup]=\"inlineform\">\r\n <formly-form [fields]=\"fieldArray\" [model]=\"currentMode\" [form]=\"inlineform\"></formly-form>\r\n </form>\r\n </div>\r\n</ng-template>\r\n\r\n<ng-template #dialogRef>\r\n <div mat-dialog-title cdkDrag class=\"-mt-6\" cdkDragRootElement=\".cdk-overlay-pane\" cdkDragHandle>\r\n <h2 class=\"pointer-events-none text-xl\">{{ props.label +'详细页'}}</h2>\r\n </div>\r\n\r\n <mat-dialog-content>\r\n <ng-container *ngTemplateOutlet=\"inlineTable\"></ng-container>\r\n </mat-dialog-content>\r\n\r\n <mat-dialog-actions>\r\n <div class=\"w-full flex justify-end items-center\">\r\n <button matButton=\"filled\" color=\"primary\" cdkFocusInitial (click)=\"confirm()\">\r\n 确定\r\n </button>\r\n <button matButton=\"outlined\" mat-dialog-close>\r\n 取消\r\n </button>\r\n </div>\r\n </mat-dialog-actions>\r\n</ng-template>","import { ChangeDetectionStrategy, Component } from '@angular/core';\r\nimport { MatTabsModule } from '@angular/material/tabs';\r\nimport { FieldTypeConfig, FormlyModule } from '@ngx-formly/core';\r\nimport { FieldType } from '@ngx-formly/material';\r\n\r\n@Component({\r\n selector: 'cmat-tab-type',\r\n templateUrl: './tab.component.html',\r\n styleUrls: ['./tab.component.scss'],\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n imports: [MatTabsModule, FormlyModule]\r\n})\r\nexport class CmatTabTypeComponent extends FieldType<FieldTypeConfig> {\r\n\r\n\r\n}\r\n","<mat-tab-group [tabIndex]=\"props.tabindex\">\r\n @for (tab of field.fieldGroup; track $index) {\r\n <mat-tab [label]=\"tab.props?.label||''\" [disabled]=\"tab.props?.disabled\">\r\n <div class=\"py-2\">\r\n <formly-field [field]=\"tab\"></formly-field>\r\n </div>\r\n </mat-tab>\r\n }\r\n</mat-tab-group>","import { Overlay, OverlayRef } from '@angular/cdk/overlay';\r\nimport { TemplatePortal } from '@angular/cdk/portal';\r\nimport { AsyncPipe } from '@angular/common';\r\nimport { HttpClient } from '@angular/common/http';\r\nimport { ChangeDetectionStrategy, ChangeDetectorRef, Component, ElementRef, OnDestroy, OnInit, TemplateRef, ViewChild, ViewContainerRef, inject } from '@angular/core';\r\nimport { MatCheckboxModule } from '@angular/material/checkbox';\r\nimport { MatIconModule } from '@angular/material/icon';\r\nimport { FieldTypeConfig } from '@ngx-formly/core';\r\nimport { FieldType } from '@ngx-formly/material/form-field';\r\nimport { isArray } from 'lodash-es';\r\nimport { Observable, Subject, takeUntil, BehaviorSubject } from 'rxjs';\r\nimport { CustomFormFieldProps } from '../../wrappers/form-field/form-field.component';\r\n\r\ninterface TagsProps extends CustomFormFieldProps {\r\n domain?: {\r\n url?: string;\r\n code?: string;\r\n key?: string;\r\n value?: string;\r\n }\r\n}\r\n\r\n@Component({\r\n selector: 'cmat-tags-type',\r\n templateUrl: './tags.component.html',\r\n styleUrls: ['./tags.component.scss'],\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n imports: [MatIconModule, MatCheckboxModule, AsyncPipe]\r\n})\r\nexport class CmatTagsTypeComponent extends FieldType<FieldTypeConfig<TagsProps>> implements OnInit, OnDestroy {\r\n @ViewChild('tagsPanelOrigin') private _tagsPanelOrigin: ElementRef;\r\n @ViewChild('tagsPanel') private _tagsPanel: TemplateRef<any>;\r\n\r\n urlData: [];\r\n optionsData: any[];\r\n\r\n private _http = inject(HttpClient);\r\n private _overlay = inject(Overlay);\r\n private _viewContainerRef = inject(ViewContainerRef);\r\n private _changeDetectorRef = inject(ChangeDetectorRef);\r\n private _filteredItems: BehaviorSubject<any[] | null> = new BehaviorSubject<any[] | null>(null);\r\n private _tagsPanelOverlayRef: OverlayRef;\r\n private _unsubscribeAll: Subject<any> = new Subject<any>();\r\n\r\n constructor() {\r\n super();\r\n }\r\n\r\n get filteredItems$(): Observable<any[] | null> {\r\n return this._filteredItems.asObservable();\r\n }\r\n\r\n get tags(): any[] {\r\n if (isArray(this.field.props?.options)) {\r\n return this.urlData?.length > 0 ? this.urlData : this.field.props?.options ?? [];\r\n } else {\r\n return this.urlData?.length > 0 ? this.urlData : this.optionsData || [];\r\n }\r\n }\r\n\r\n ngOnInit(): void {\r\n if (this.field.props?.options && !isArray(this.field.props?.options)) {\r\n this.field.props?.options.pipe(takeUntil(this._unsubscribeAll)).subscribe(\r\n (data) => {\r\n this.optionsData = data;\r\n }\r\n );\r\n }\r\n const url = this.field.props?.domain?.url;\r\n if (url && this.field.props?.domain?.code && this.field.props?.domain?.key && this.field.props?.domain?.value) {\r\n this._http.get(url).pipe(takeUntil(this._unsubscribeAll)).subscribe(\r\n (data: any) => {\r\n if (data) {\r\n const datas = data.filter((i: any) => {\r\n if (this.field.props?.domain?.key)\r\n return i[this.field.props?.domain?.key] === this.field.props?.domain?.code;\r\n\r\n return false;\r\n }\r\n );\r\n if (datas && this.field.props?.domain?.value) {\r\n this.urlData = datas[0][this.field.props?.domain?.value];\r\n } else {\r\n this.urlData = [];\r\n }\r\n } else {\r\n this.urlData = [];\r\n }\r\n\r\n this._filteredItems.next(this.tags);\r\n }\r\n );\r\n } else {\r\n this.urlData = [];\r\n this._filteredItems.next(this.tags);\r\n }\r\n }\r\n\r\n override ngOnDestroy(): void {\r\n this._unsubscribeAll.next(void 0);\r\n this._unsubscribeAll.complete();\r\n }\r\n\r\n openTagsPanel(): void {\r\n this._tagsPanelOverlayRef = this._overlay.create({\r\n backdropClass: '',\r\n hasBackdrop: true,\r\n scrollStrategy: this._overlay.scrollStrategies.block(),\r\n positionStrategy: this._overlay.position()\r\n .flexibleConnectedTo(this._tagsPanelOrigin.nativeElement)\r\n .withFlexibleDimensions(true)\r\n .withViewportMargin(64)\r\n .withLockedPosition(true)\r\n .withPositions([\r\n {\r\n originX: 'start',\r\n originY: 'bottom',\r\n overlayX: 'start',\r\n overlayY: 'top'\r\n }\r\n ])\r\n });\r\n\r\n this._tagsPanelOverlayRef.attachments().subscribe(() => {\r\n this._tagsPanelOverlayRef.overlayElement.querySelector('input')?.focus();\r\n });\r\n\r\n const templatePortal = new TemplatePortal(this._tagsPanel, this._viewContainerRef);\r\n\r\n this._tagsPanelOverlayRef.attach(templatePortal);\r\n\r\n // Subscribe to the backdrop click\r\n this._tagsPanelOverlayRef.backdropClick().subscribe(() => {\r\n\r\n // If overlay exists and attached...\r\n if (this._tagsPanelOverlayRef?.hasAttached()) {\r\n // Detach it\r\n this._tagsPanelOverlayRef.detach();\r\n\r\n // Reset the tag filter\r\n this._filteredItems.next(this.tags);\r\n }\r\n\r\n // If template portal exists and attached...\r\n if (templatePortal?.isAttached) {\r\n // Detach it\r\n templatePortal.detach();\r\n }\r\n });\r\n }\r\n\r\n filterTags(event: any): void {\r\n const value = event.target.value.toLowerCase();\r\n\r\n this._filteredItems.next(this.tags.filter(tag => tag.label.toString().toLowerCase().includes(value) ?? tag.value.toString().toLowerCase().includes(value)));\r\n }\r\n\r\n toggleTag(tag: any): void {\r\n if (tag.disabled)\r\n return;\r\n\r\n const data = this.formControl.value ?? [];\r\n const existsTag = data.findIndex((i: { value: any; }) => i.value === tag.value);\r\n if (existsTag > -1) {\r\n data.splice(existsTag, 1);\r\n }\r\n else {\r\n data.unshift(tag);\r\n }\r\n this.formControl.setValue(data);\r\n\r\n this._changeDetectorRef.markForCheck();\r\n }\r\n\r\n isCheck(tag: any): boolean {\r\n return this.formControl.value?.filter((i: { value: any; }) => i.value === tag.value).length > 0;\r\n }\r\n}\r\n","<div class=\"text-lg mb-2\">\r\n {{ props.label }}\r\n @if(props.required){\r\n <span>*</span>\r\n }\r\n</div>\r\n<div class=\"flex flex-wrap items-center -m-2\" [tabIndex]=\"props.tabindex\">\r\n <ng-container>\r\n @for (selectedItem of formControl.value; track $index) {\r\n <div\r\n class=\"flex items-center justify-center px-4 m-1.5 rounded-full leading-9 text-gray-500 bg-slate-100 dark:text-gray-300 dark:bg-slate-700\">\r\n <span class=\"text-md font-medium whitespace-nowrap\">{{selectedItem.label}}</span>\r\n </div>\r\n }\r\n\r\n <div #tagsPanelOrigin\r\n class=\"flex items-center justify-center px-4 m-1.5 rounded-full leading-9 cursor-pointer text-gray-500 bg-slate-100 dark:text-gray-300 dark:bg-slate-700 print:hidden\" role=\"presentation\" (click)=\"openTagsPanel()\">\r\n\r\n @if(formControl.value?.length&&!disabled){\r\n <mat-icon class=\"icon-size-5\" [svgIcon]=\"'heroicons_solid:pencil-square'\"></mat-icon>\r\n <span class=\"ml-1.5 text-md font-medium whitespace-nowrap\">编辑</span>\r\n }\r\n\r\n @if(!formControl.value?.length&&!disabled){\r\n <mat-icon class=\"icon-size-5\" [svgIcon]=\"'heroicons_solid:plus-circle'\"></mat-icon>\r\n <span class=\"ml-1.5 text-md font-medium whitespace-nowrap\">新增</span>\r\n }\r\n\r\n <ng-template #tagsPanel>\r\n <div class=\"w-60 rounded-sm border shadow-md bg-card\">\r\n <div class=\"flex items-center m-3 mr-2\">\r\n <div class=\"flex items-center\">\r\n <mat-icon class=\"icon-size-5\" [svgIcon]=\"'heroicons_solid:magnifying-glass'\">\r\n </mat-icon>\r\n <div class=\"ml-2\">\r\n <input class=\"w-full min-w-0 py-1 border-none\" type=\"text\" placeholder=\"输入标签名\"\r\n [maxLength]=\"30\" (input)=\"filterTags($event)\">\r\n </div>\r\n </div>\r\n </div>\r\n <div class=\"flex flex-col max-h-64 py-2 border-t overflow-y-auto scrollbar-custom\">\r\n @if ((filteredItems$ | async); as filteredItems) {\r\n @if(filteredItems.length>0){\r\n @for (tag of filteredItems; track $index) {\r\n <div role=\"presentation\"\r\n class=\"flex items-center h-10 min-h-10 pl-1 pr-4 cursor-pointer hover:bg-hover\"\r\n matRipple (click)=\"toggleTag(tag)\">\r\n <mat-checkbox class=\"flex items-center h-10 min-h-10\" [color]=\"'primary'\"\r\n [disabled]=\"tag.disabled\" [checked]=\"isCheck(tag)\">\r\n {{tag.label}}\r\n </mat-checkbox>\r\n </div>\r\n }\r\n }@else {\r\n <div class=\"flex flex-auto flex-col justify-center px-4 h-10 min-h-10\">\r\n 无结果\r\n </div>\r\n }\r\n }\r\n </div>\r\n </div>\r\n </ng-template>\r\n </div>\r\n </ng-container>\r\n</div>","import { ChangeDetectionStrategy, Component } from '@angular/core';\r\nimport { ReactiveFormsModule } from '@angular/forms';\r\nimport { MatInputModule } from '@angular/material/input';\r\nimport { FieldTypeConfig } from '@ngx-formly/core';\r\nimport { FieldType } from '@ngx-formly/material';\r\n\r\n@Component({\r\n selector: 'cmat-textarea-type',\r\n templateUrl: './textarea.component.html',\r\n styleUrls: ['./textarea.component.scss'],\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n imports: [MatInputModule, ReactiveFormsModule]\r\n})\r\nexport class CmatTextareaTypeComponent extends FieldType<FieldTypeConfig> {\r\n override defaultOptions = {\r\n props: {\r\n cols: 1,\r\n rows: 3,\r\n },\r\n };\r\n}","<textarea matInput [placeholder]=\"placeholder\" \r\n [readonly]=\"props.readonly\" [errorStateMatcher]=\"errorStateMatcher\"\r\n [cols]=\"props.cols\"\r\n [rows]=\"props.rows\"\r\n [tabindex]=\"props.tabindex\"\r\n [formControl]=\"formControl\" [required]=\"required\">\r\n</textarea>","import { AfterViewInit, ChangeDetectionStrategy, Component } from '@angular/core';\r\nimport { FormControl, ReactiveFormsModule, UntypedFormGroup } from '@angular/forms';\r\nimport { FieldTypeConfig } from '@ngx-formly/core';\r\nimport { FieldType } from '@ngx-formly/material/form-field';\r\nimport { isNil } from 'lodash-es';\r\nimport { CmatUploadQueueComponent } from 'cmat/components/upload';\r\nimport { CustomFormFieldProps } from '../../wrappers/form-field/form-field.component';\r\n\r\ninterface UploadProps extends CustomFormFieldProps {\r\n fileAlias: string;\r\n filePath: string;\r\n fileCategory: string;\r\n multiple: boolean;\r\n accept: string;\r\n editMode: boolean;\r\n autoUpload: boolean;\r\n}\r\n\r\n@Component({\r\n selector: 'cmat-upload-type',\r\n templateUrl: './upload.component.html',\r\n styleUrls: ['./upload.component.scss'],\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n imports: [CmatUploadQueueComponent, ReactiveFormsModule]\r\n})\r\nexport class CmatUploadTypeComponent extends FieldType<FieldTypeConfig<UploadProps>> implements AfterViewInit {\r\n override defaultOptions = {\r\n props: {\r\n fileAlias: 'fileData',\r\n filePath: 'path',\r\n fileCategory: '分类',\r\n multiple: true,\r\n accept: '',\r\n editMode: true,\r\n autoUpload: true\r\n }\r\n };\r\n\r\n baseGroup: UntypedFormGroup;\r\n\r\n ngAfterViewInit(): void {\r\n if (!this.baseGroup)\r\n this.baseGroup = this._getRootControl(this.formControl);\r\n\r\n if (!this.baseGroup.contains('uploadId')) {\r\n this.baseGroup.addControl('uploadId', new FormControl([]));\r\n this.baseGroup.addControl('removeId', new FormControl([]));\r\n }\r\n }\r\n\r\n upload(id: string): void {\r\n var rootValue = this.baseGroup.get('uploadId')?.value;\r\n\r\n if (rootValue&&!isNil(id)) {\r\n this.baseGroup.get('uploadId')?.setValue([id, ...rootValue])\r\n }\r\n }\r\n\r\n remove(id: string): void {\r\n var rootValue = this.baseGroup.get('removeId')?.value;\r\n\r\n if (rootValue&&!isNil(id)) {\r\n this.baseGroup.get('removeId')?.setValue([id, ...rootValue])\r\n }\r\n }\r\n\r\n updateData(i: any): void {\r\n const data = Array.isArray(i) ? i : [i];\r\n this.formControl.setValue(data.map((j) => {\r\n if (j.id)\r\n return {\r\n id: j.id,\r\n name: j.name,\r\n type: j.type,\r\n size: j.size\r\n };\r\n else\r\n return j;\r\n }));\r\n }\r\n\r\n private _getRootControl(baseControl: any): UntypedFormGroup {\r\n if (baseControl.parent) {\r\n return this._getRootControl(baseControl.parent);\r\n }\r\n\r\n return baseControl;\r\n }\r\n}","<cmat-upload-queue [tabindex]=\"props.tabindex\" [fileAlias]=\"props.fileAlias\"\r\n [filePath]=\"props.filePath\" [required]=\"required\" [fileCategory]=\"props.fileCategory\" [multiple]=\"props.multiple\"\r\n [accept]=\"props.accept\" [title]=\"props.label??'附件'\" [editMode]=\"props.editMode&&!disabled\" [filesData]=\"formControl.value\"\r\n [autoUpload]=\"props.autoUpload\" (outputUploadIdEvent)=\"upload($event)\" (outputRemoveIdEvent)=\"remove($event)\" (outputFilesDataEvent)=\"updateData($event)\">\r\n</cmat-upload-queue>","import { HttpEventType } from '@angular/common/http';\r\nimport { AfterViewInit, ChangeDetectionStrategy, ChangeDetectorRef, Component, ElementRef, OnDestroy, ViewChild, inject } from '@angular/core';\r\nimport { FormControl, ReactiveFormsModule, UntypedFormGroup } from '@angular/forms';\r\nimport BlotFormatter from '@enzedonline/quill-blot-formatter2';\r\nimport { FieldTypeConfig } from '@ngx-formly/core';\r\nimport { FieldType } from '@ngx-formly/material/form-field';\r\nimport { isNil } from 'lodash-es';\r\nimport { QuillModule, QuillModules } from 'ngx-quill';\r\nimport Quill from 'quill';\r\nimport QuillImageDropAndPaste from 'quill-image-drop-and-paste';\r\nimport { takeUntil, Subject } from 'rxjs';\r\nimport { CmatFilesUtilService, FileModel } from 'cmat/components/upload';\r\nimport { CmatUrlStateConfigService, IUrlStateConfig } from 'cmat/services/config';\r\nimport { CmatUtilsService } from 'cmat/services/utils';\r\nimport { CustomFormFieldProps } from '../../wrappers/form-field/form-field.component';\r\n\r\nQuill.register('modules/blotFormatter', BlotFormatter);\r\nQuill.register('modules/imageDropAndPaste', QuillImageDropAndPaste);\r\n\r\ninterface QuillProps extends CustomFormFieldProps {\r\n fileAlias: string;\r\n filePath: string;\r\n}\r\n\r\n@Component({\r\n selector: 'cmat-quill-type',\r\n templateUrl: './quill.component.html',\r\n styleUrls: ['./quill.component.scss'],\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n imports: [ReactiveFormsModule, QuillModule]\r\n})\r\nexport class CmatQuillTypeComponent extends FieldType<FieldTypeConfig<QuillProps>> implements OnDestroy, AfterViewInit {\r\n @ViewChild('imgInput') private imgInput: ElementRef<HTMLElement>;\r\n @ViewChild('videoInput') private videoInput: ElementRef<HTMLElement>;\r\n\r\n quillModules: QuillModules = {\r\n toolbar: {\r\n container: [\r\n ['bold', 'italic', 'underline'],\r\n [{ 'size': ['small', false, 'large', 'huge'] }],\r\n [{ 'header': [1, 2, 3, 4, 5, 6, false] }],\r\n [{ 'color': [] }, { 'background': [] }],\r\n [{ 'font': [] }],\r\n [{ 'align': [] }],\r\n ['clean'],\r\n ['link', 'image', 'video']\r\n ],\r\n handlers: {\r\n image: this._imgFileHandler.bind(this),\r\n video: this._videoFileHandler.bind(this)\r\n },\r\n },\r\n clipboard: {\r\n matchVisual: false,\r\n },\r\n blotFormatter: {\r\n\r\n },\r\n imageDropAndPaste: {\r\n handler: this._dropFileHandler.bind(this)\r\n }\r\n };\r\n\r\n override defaultOptions = {\r\n props: {\r\n fileAlias: 'fileData',\r\n filePath: 'path'\r\n }\r\n };\r\n\r\n baseGroup: UntypedFormGroup;\r\n\r\n private _fileService = inject(CmatFilesUtilService);\r\n private _urlStateConfigService = inject(CmatUrlStateConfigService);\r\n private _changeDetectorRef = inject(ChangeDetectorRef);\r\n\r\n private _editorInstance: any;\r\n private _imgIds: string[] = [];\r\n private _config: IUrlStateConfig;\r\n private _unsubscribeAll: Subject<any> = new Subject<any>();\r\n constructor() {\r\n super();\r\n\r\n this._urlStateConfigService.config$\r\n .pipe(takeUntil(this._unsubscribeAll))\r\n .subscribe((config: IUrlStateConfig) => {\r\n this._config = config;\r\n });\r\n }\r\n\r\n override ngOnDestroy(): void {\r\n this._unsubscribeAll.next(void 0);\r\n this._unsubscribeAll.complete();\r\n }\r\n\r\n ngAfterViewInit(): void {\r\n if (!this.baseGroup)\r\n this.baseGroup = this._getRootControl(this.formControl);\r\n\r\n if (!this.baseGroup.contains('uploadId')) {\r\n this.baseGroup.addControl('uploadId', new FormControl([]));\r\n this.baseGroup.addControl('removeId', new FormControl([]));\r\n }\r\n }\r\n\r\n fileChangeEvent(file: any): void {\r\n const fileModel = {\r\n id: null,\r\n fileName: file.name,\r\n length: file.size,\r\n isPublic:false,\r\n fileCategory: 'Quill',\r\n filePath: this.props.filePath,\r\n fileType: 'file',\r\n data: file\r\n } as FileModel;\r\n\r\n fileModel.fileType = CmatUtilsService.getFileType(file.type);\r\n\r\n const formData = new FormData();\r\n\r\n formData.set('fileData', file, file.name);\r\n formData.append('fileInfo', JSON.stringify(fileModel));\r\n\r\n this._fileService.uploadFile(formData).pipe(\r\n takeUntil(this._unsubscribeAll)\r\n ).subscribe((event: any) => {\r\n if (event.type === HttpEventType.Response) {\r\n this._editorInstance.insertEmbed(this._editorInstance.getSelection(true).index, this._getMediaType(file.type), `${this._config.fileUrl}/download/quill/${event.body.id}`);\r\n this._editorInstance.setSelection(this._editorInstance.getSelection(true).index + 1);\r\n this.formControl.setValue(this._editorInstance.container.innerHTML);\r\n\r\n this._upload(event.body.id);\r\n }\r\n\r\n this._changeDetectorRef.markForCheck();\r\n });\r\n }\r\n\r\n editorCreated(editorInstance: any): void {\r\n this._editorInstance = editorInstance;\r\n\r\n const dom = document.createElement('DIV');\r\n dom.innerHTML = editorInstance.container.innerHTML;\r\n const fileDom = dom.querySelectorAll('img, video');\r\n fileDom.forEach((i) => {\r\n if ((i as HTMLMediaElement).src.includes(this._config.fileUrl)) {\r\n this._imgIds.push((i as HTMLMediaElement).src.substring(`${this._config.fileUrl}/download/quill/`.length, (i as HTMLMediaElement).src.length));\r\n }\r\n });\r\n }\r\n\r\n contentChanged(editorInstance: any): void {\r\n const dom = document.createElement('DIV');\r\n\r\n dom.innerHTML = editorInstance.editor.container.innerHTML;\r\n const fileDom = dom.querySelectorAll('img, video');\r\n\r\n const arr: string[] = [];\r\n\r\n fileDom.forEach((i) => {\r\n if ((i as HTMLMediaElement).src.includes(this._config.fileUrl)) {\r\n const id = (i as HTMLMediaElement).src.substring(`${this._config.fileUrl}/download/quill/`.length, (i as HTMLMediaElement).src.length);\r\n this._imgIds.splice(this._imgIds.findIndex(k=>k===id), 1);\r\n arr.push(id);\r\n }\r\n });\r\n\r\n this._imgIds.forEach((i) => {\r\n var rootValue = this.baseGroup.get('removeId')?.value;\r\n\r\n if (rootValue&&!isNil(i)) {\r\n this.baseGroup.get('removeId')?.setValue([i, ...rootValue])\r\n }\r\n });\r\n\r\n this._imgIds = arr;\r\n }\r\n\r\n private _imgFileHandler(): void {\r\n this.imgInput.nativeElement.click();\r\n }\r\n\r\n private _videoFileHandler(): void {\r\n this.videoInput.nativeElement.click();\r\n }\r\n\r\n private _dropFileHandler(dataUrl: string, type: string, fileData: any): void {\r\n this.fileChangeEvent(fileData.toFile());\r\n }\r\n\r\n private _upload(id: string): void {\r\n var rootValue = this.baseGroup.get('uploadId')?.value;\r\n\r\n if (rootValue&&!isNil(id)) {\r\n this.baseGroup.get('uploadId')?.setValue([id, ...rootValue])\r\n }\r\n }\r\n\r\n private _getMediaType(accept: string): 'file' | 'image' | 'video' {\r\n let fileType = 'file';\r\n switch (accept) {\r\n case 'image/jpeg':\r\n case 'image/jpg':\r\n case 'image/png':\r\n case 'image/gif':\r\n fileType = 'image';\r\n break;\r\n case 'video/mpeg':\r\n case 'video/mp4':\r\n case 'audio/mp4':\r\n fileType = 'video';\r\n break;\r\n }\r\n\r\n return fileType as 'file' | 'image' | 'video';\r\n }\r\n\r\n private _getRootControl(baseControl: any): UntypedFormGroup {\r\n if (baseControl.parent) {\r\n return this._getRootControl(baseControl.parent);\r\n }\r\n\r\n return baseControl;\r\n }\r\n}","<quill-editor class=\"w-full\" defaultEmptyValue=\"\" [formControl]=\"formControl\" [required]=\"required\" [placeholder]=\"placeholder\" [tabindex]=\"props.tabindex\"\r\n [readOnly]=\"disabled\" [modules]=\"quillModules\" (onEditorCreated)=\"editorCreated($event)\"\r\n (onContentChanged)=\"contentChanged($event)\">\r\n <input #imgInput type=\"file\" accept=\"image/png,image/jpeg,image/jpg,image/gif\" class=\"hidden\" (change)=\"fileChangeEvent(imgInput.files?.[0])\" />\r\n <input #videoInput type=\"file\" accept=\"video/mpeg,video/mp4,audio/mp4\" class=\"hidden\" (change)=\"fileChangeEvent(videoInput.files?.[0])\" />\r\n</quill-editor>","import { ChangeDetectionStrategy, Component } from '@angular/core';\r\nimport { ReactiveFormsModule } from '@angular/forms';\r\nimport { FieldTypeConfig } from '@ngx-formly/core';\r\nimport { FieldType } from '@ngx-formly/material/form-field';\r\nimport { CmatKnobInputComponent } from 'cmat/components/knob-input';\r\nimport { CustomFormFieldProps } from '../../wrappers/form-field/form-field.component';\r\n\r\ninterface KnobProps extends CustomFormFieldProps {\r\n valueColor: string;\r\n rangeColor: string;\r\n textColor: string;\r\n valueTemplate: string;\r\n name?: string;\r\n size: number;\r\n step: number;\r\n min: number;\r\n max: number;\r\n strokeWidth: number;\r\n showValue: boolean;\r\n}\r\n\r\n@Component({\r\n selector: 'cmat-knob-type',\r\n templateUrl: './knob.component.html',\r\n styleUrls: ['./knob.component.scss'],\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n imports: [CmatKnobInputComponent, ReactiveFormsModule]\r\n})\r\nexport class CmatKnobTypeComponent extends FieldType<FieldTypeConfig<KnobProps>> {\r\n override defaultOptions = {\r\n props: {\r\n valueColor: 'var(--cmat-primary)',\r\n rangeColor: 'var(--cmat-border)',\r\n textColor: 'var(--text-secondary)',\r\n valueTemplate: '{value}',\r\n size: 100,\r\n step: 1,\r\n min: 0,\r\n max: 100,\r\n strokeWidth: 14,\r\n showValue: true\r\n },\r\n };\r\n}","<cmat-knob-input [formControl]=\"formControl\" [tabIndex]=\"props.tabindex\" [valueColor]=\"props.valueColor\"\r\n [rangeColor]=\"props.rangeColor\" [textColor]=\"props.textColor\" [valueTemplate]=\"props.valueTemplate\"\r\n [name]=\"props.name\" [size]=\"props.size\" [step]=\"props.step\" [min]=\"props.min\" [max]=\"props.max\"\r\n [strokeWidth]=\"props.strokeWidth\" [showValue]=\"props.showValue\">\r\n</cmat-knob-input>","import { ChangeDetectionStrategy, Component, Type } from '@angular/core';\r\nimport { ReactiveFormsModule } from '@angular/forms';\r\nimport { ThemePalette } from '@angular/material/core';\r\nimport { MatSliderModule } from '@angular/material/slider';\r\nimport { FormlyFieldConfig, FieldTypeConfig } from '@ngx-formly/core';\r\nimport { FieldType } from '@ngx-formly/material';\r\nimport { CustomFormFieldProps } from '../../wrappers/form-field/form-field.component';\r\n\r\ninterface SliderProps extends CustomFormFieldProps {\r\n displayWith?: (value: number) => string;\r\n discrete?: boolean;\r\n showTickMarks?: boolean;\r\n color?: ThemePalette;\r\n\r\n input?: (field: FormlyFieldConfig<SliderProps>, $event: Event) => void;\r\n change?: (field: FormlyFieldConfig<SliderProps>, $event: Event) => void;\r\n}\r\n\r\nexport interface FormlySliderFieldConfig extends FormlyFieldConfig<SliderProps> {\r\n type: 'slider' | Type<CmatSliderTypeComponent>;\r\n}\r\n\r\n@Component({\r\n selector: 'cmat-slider-type',\r\n templateUrl: './slider.component.html',\r\n styleUrls: ['./slider.component.scss'],\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n imports: [MatSliderModule, ReactiveFormsModule]\r\n})\r\nexport class CmatSliderTypeComponent extends FieldType<FieldTypeConfig<SliderProps>> {\r\n override defaultOptions = {\r\n props: {\r\n hideFieldUnderline: true,\r\n floatLabel: 'always' as const,\r\n displayWith: (value: number):string => `${value}`\r\n }\r\n };\r\n}","<mat-slider class=\"w-full\" [id]=\"id\" [tabIndex]=\"props.tabindex\" [color]=\"props.color\"\r\n [displayWith]=\"props.displayWith!\" [max]=\"props.max\" [min]=\"props.min\" [step]=\"props.step\" [discrete]=\"props.discrete\"\r\n [showTickMarks]=\"props.showTickMarks\" (input)=\"props.input && props.input(field, $event)\"\r\n (change)=\"props.change && props.change(field, $event)\">\r\n <input matSliderThumb [formControl]=\"formControl\" />\r\n</mat-slider>","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["i1","defineHiddenProp","i2","i3","takeUntil","FieldType","observe","i4","i5"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAGM,SAAU,eAAe,CAAC,KAAwB,EAAA;AACpD,IAAA,IAAI,CAAC,KAAK,CAAC,KAAK,KAAK,KAAK,CAAC,QAAQ,EAAE,QAAQ,CAAC,QAAQ,CAAC,CAAC,EAAE;QACtD;IACJ;AAEA,IAAA,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,SAAS,KAAK,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC,KAAK,CAAC,SAAS,CAAC,IAAI,CAAC,IAAI,KAAK,CAAC,KAAK,CAAC,SAAS,CAAC,IAAI,KAAK,EAAE;WAChG,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC,KAAK,CAAC,SAAS,CAAC,IAAI,CAAC,KAAK,KAAK,CAAC,KAAK,CAAC,SAAS,CAAC,IAAI,KAAK,EAAE,CAAC;AAC1E,YAAC,KAAK,CAAC,KAAK,CAAC,UAAU,KAAK,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC,KAAK,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,KAAK,CAAC,KAAK,CAAC,UAAU,CAAC,IAAI,KAAK,EAAE;eAClG,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC,KAAK,CAAC,UAAU,CAAC,IAAI,CAAC,KAAK,KAAK,CAAC,KAAK,CAAC,UAAU,CAAC,IAAI,KAAK,EAAE,CAAC,CAAC,EAAE;AACtF,QAAA,KAAK,CAAC,QAAQ,GAAG,CAAC,IAAI,KAAK,CAAC,QAAQ,IAAI,EAAE,CAAC,EAAE,QAAQ,CAAC;IAC1D;AACJ;;ACyBM,MAAO,0BAA2B,SAAQ,YAAY,CAAA;IAI1D,eAAe,GAAA;AACb,QAAA,IAAI,IAAI,CAAC,SAAS,EAAE;YAClB,IAAI,CAAC,KAAK,CAAC,MAAM,GAAG,IAAI,CAAC,SAAS;QACpC;AAEA,QAAA,IAAI,IAAI,CAAC,SAAS,EAAE;YAClB,IAAI,CAAC,KAAK,CAAC,MAAM,GAAG,IAAI,CAAC,SAAS;QACpC;IACF;8GAZW,0BAA0B,EAAA,IAAA,EAAA,IAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;AAA1B,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,0BAA0B,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,qBAAA,EAAA,WAAA,EAAA,CAAA,EAAA,YAAA,EAAA,WAAA,EAAA,KAAA,EAAA,IAAA,EAAA,SAAA,EAAA,CAAA,WAAA,CAAA,EAAA,WAAA,EAAA,IAAA,EAAA,MAAA,EAAA,IAAA,EAAA,EAAA,EAAA,YAAA,EAAA,WAAA,EAAA,KAAA,EAAA,IAAA,EAAA,SAAA,EAAA,CAAA,WAAA,CAAA,EAAA,WAAA,EAAA,IAAA,EAAA,MAAA,EAAA,IAAA,EAAA,CAAA,EAAA,eAAA,EAAA,IAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,EAhCzB,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA6BX,EAAA,QAAA,EAAA,IAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EACW,aAAa,mLAAE,oBAAoB,EAAA,CAAA,EAAA,CAAA,CAAA;;2FAEpC,0BAA0B,EAAA,UAAA,EAAA,CAAA;kBAlCtC,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACP,oBAAA,QAAQ,EAAE,qBAAqB;AAC/B,oBAAA,QAAQ,EAAE,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AA6BX,EAAA,CAAA;AACC,oBAAA,OAAO,EAAE,CAAC,aAAa,EAAE,oBAAoB;AAChD,iBAAA;;sBAEE,SAAS;AAAC,gBAAA,IAAA,EAAA,CAAA,WAAW,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE;;sBACvC,SAAS;AAAC,gBAAA,IAAA,EAAA,CAAA,WAAW,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE;;;AC/BpC,MAAO,wBAAyB,SAAQ,YAAY,CAAA;8GAA7C,wBAAwB,EAAA,IAAA,EAAA,IAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;kGAAxB,wBAAwB,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,mBAAA,EAAA,eAAA,EAAA,IAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,ECVrC,6RAQW,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EDAG,aAAa,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,OAAA,EAAA,QAAA,EAAA,UAAA,EAAA,MAAA,EAAA,CAAA,YAAA,CAAA,EAAA,QAAA,EAAA,CAAA,SAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,cAAA,EAAA,QAAA,EAAA,kBAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,YAAA,EAAA,QAAA,EAAA,kDAAA,EAAA,CAAA,EAAA,eAAA,EAAA,EAAA,CAAA,uBAAA,CAAA,MAAA,EAAA,CAAA,CAAA;;2FAEd,wBAAwB,EAAA,UAAA,EAAA,CAAA;kBANpC,SAAS;AACI,YAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,mBAAmB,mBAEZ,uBAAuB,CAAC,MAAM,EAAA,OAAA,EACtC,CAAC,aAAa,CAAC,EAAA,QAAA,EAAA,6RAAA,EAAA;;;AEEtB,MAAO,6BAA8B,SAAQ,YAAY,CAAA;8GAAlD,6BAA6B,EAAA,IAAA,EAAA,IAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;kGAA7B,6BAA6B,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,wBAAA,EAAA,eAAA,EAAA,IAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,ECV1C,8ZAUsB,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EDFR,kBAAkB,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,iBAAA,EAAA,QAAA,EAAA,qBAAA,EAAA,MAAA,EAAA,CAAA,YAAA,EAAA,gBAAA,CAAA,EAAA,OAAA,EAAA,CAAA,aAAA,EAAA,eAAA,CAAA,EAAA,QAAA,EAAA,CAAA,mBAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,uBAAA,EAAA,QAAA,EAAA,4BAAA,EAAA,MAAA,EAAA,CAAA,gBAAA,EAAA,iBAAA,EAAA,UAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,sBAAA,EAAA,QAAA,EAAA,iBAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,4BAAA,EAAA,QAAA,EAAA,uBAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,wBAAA,EAAA,QAAA,EAAA,uCAAA,EAAA,CAAA,EAAA,eAAA,EAAA,EAAA,CAAA,uBAAA,CAAA,MAAA,EAAA,CAAA,CAAA;;2FAEnB,6BAA6B,EAAA,UAAA,EAAA,CAAA;kBANzC,SAAS;AACI,YAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,wBAAwB,mBAEjB,uBAAuB,CAAC,MAAM,EAAA,OAAA,EACtC,CAAC,kBAAkB,CAAC,EAAA,QAAA,EAAA,8ZAAA,EAAA;;;AEC3B,MAAO,yBAA0B,SAAQ,YAAY,CAAA;8GAA9C,yBAAyB,EAAA,IAAA,EAAA,IAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;AAAzB,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,yBAAyB,qGCTtC,gHAGM,EAAA,eAAA,EAAA,EAAA,CAAA,uBAAA,CAAA,MAAA,EAAA,CAAA,CAAA;;2FDMO,yBAAyB,EAAA,UAAA,EAAA,CAAA;kBANrC,SAAS;AACI,YAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,oBAAoB,EAAA,eAAA,EAEb,uBAAuB,CAAC,MAAM,WACtC,EAAE,EAAA,QAAA,EAAA,gHAAA,EAAA;;;AEiBT,MAAO,6BAA8B,SAAQ,YAAkC,CAAA;AAQjF,IAAA,WAAA,GAAA;AACI,QAAA,KAAK,EAAE;AALH,QAAA,IAAA,CAAA,SAAS,GAAG,MAAM,CAAC,SAAS,CAAC;AAC7B,QAAA,IAAA,CAAA,WAAW,GAAG,MAAM,CAAC,UAAU,CAAC;AAChC,QAAA,IAAA,CAAA,aAAa,GAAG,MAAM,CAAC,YAAY,CAAC;IAI5C;IAEA,QAAQ,GAAA;QACJC,iBAAgB,CAAC,IAAI,CAAC,KAAK,EAAE,YAAY,EAAE,IAAI,CAAC,SAAS,CAAC;AAC1D,QAAA,IAAI,CAAC,aAAa,CAAC,OAAO,CAAC,IAAI,CAAC,WAAW,EAAE,IAAI,CAAC,CAAC,SAAS,CAAC,CAAC,MAAM,KAAI;YACpE,IAAI,CAAC,MAAM,IAAI,IAAI,CAAC,KAAK,CAAC,KAAK,EAAE;AAC7B,gBAAA,IAAI,CAAC,KAAK,CAAC,KAAK,GAAG,KAAK;YAC5B;AACJ,QAAA,CAAC,CAAC;IACN;IAEA,eAAe,GAAA;;AAEX,QAAA,IAAI,IAAI,CAAC,SAAS,CAAC,UAAU,KAAK,SAAS,IAAI,IAAI,CAAC,KAAK,CAAC,kBAAkB,KAAK,IAAI,EAAE;AACnF,YAAA,MAAM,gBAAgB,GAAG,IAAI,CAAC,SAAS,CAAC,WAAW,CAAC,aAAa,CAAC,aAAa,CAAC,2BAA2B,CAAC;AAC5G,YAAA,gBAAgB,IAAI,IAAI,CAAC,SAAS,CAAC,WAAW,CAAC,gBAAgB,CAAC,UAAU,EAAE,gBAAgB,CAAC;QACjG;IACJ;IAEA,WAAW,GAAA;AACP,QAAA,OAAO,IAAI,CAAC,KAAK,CAAC,UAAU;QAC5B,IAAI,CAAC,aAAa,CAAC,cAAc,CAAC,IAAI,CAAC,WAAW,CAAC;IACvD;8GAhCS,6BAA6B,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;kGAA7B,6BAA6B,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,yBAAA,EAAA,WAAA,EAAA,CAAA,EAAA,YAAA,EAAA,WAAA,EAAA,KAAA,EAAA,IAAA,EAAA,SAAA,EAE3B,YAAY,EAAA,WAAA,EAAA,IAAA,EAAA,MAAA,EAAA,IAAA,EAAA,CAAA,EAAA,eAAA,EAAA,IAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,EC1B3B,m+EA+Dc,EAAA,MAAA,EAAA,CAAA,mGAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EDzCA,kBAAkB,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAD,IAAA,CAAA,YAAA,EAAA,QAAA,EAAA,gBAAA,EAAA,MAAA,EAAA,CAAA,oBAAA,EAAA,OAAA,EAAA,YAAA,EAAA,YAAA,EAAA,iBAAA,EAAA,WAAA,CAAA,EAAA,QAAA,EAAA,CAAA,cAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,QAAA,EAAA,QAAA,EAAA,WAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,OAAA,EAAA,QAAA,EAAA,UAAA,EAAA,MAAA,EAAA,CAAA,OAAA,EAAA,IAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,QAAA,EAAA,QAAA,EAAA,uBAAA,EAAA,MAAA,EAAA,CAAA,IAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,SAAA,EAAA,QAAA,EAAA,+CAAA,EAAA,MAAA,EAAA,CAAA,eAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,SAAA,EAAA,QAAA,EAAA,+CAAA,EAAA,MAAA,EAAA,CAAA,eAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EAAE,mBAAmB,EAAA,EAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EAAE,YAAY,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAE,IAAA,CAAA,gBAAA,EAAA,QAAA,EAAA,oBAAA,EAAA,MAAA,EAAA,CAAA,yBAAA,EAAA,kBAAA,EAAA,0BAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EAAE,YAAY,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAC,IAAA,CAAA,6BAAA,EAAA,QAAA,EAAA,2BAAA,EAAA,CAAA,EAAA,eAAA,EAAA,EAAA,CAAA,uBAAA,CAAA,MAAA,EAAA,aAAA,EAAA,EAAA,CAAA,iBAAA,CAAA,IAAA,EAAA,CAAA,CAAA;;2FAEpE,6BAA6B,EAAA,UAAA,EAAA,CAAA;kBARzC,SAAS;AACI,YAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,yBAAyB,mBAElB,uBAAuB,CAAC,MAAM,EAAA,aAAA,EAEhC,iBAAiB,CAAC,IAAI,EAAA,OAAA,EAC5B,CAAC,kBAAkB,EAAE,mBAAmB,EAAE,YAAY,EAAE,YAAY,CAAC,EAAA,QAAA,EAAA,m+EAAA,EAAA,MAAA,EAAA,CAAA,mGAAA,CAAA,EAAA;;sBAI7E,SAAS;AAAC,gBAAA,IAAA,EAAA,CAAA,YAAY,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE;;;AEHvC,MAAO,uBAAwB,SAAQ,SAAuC,CAAA;AAclF,IAAA,WAAA,GAAA;AACE,QAAA,KAAK,EAAE;AAdA,QAAA,IAAA,CAAA,cAAc,GAAG;AACxB,YAAA,KAAK,EAAE;AACL,gBAAA,KAAK,EAAE;AACR;SACF;AAEO,QAAA,IAAA,CAAA,iBAAiB,GAAG,MAAM,CAAC,gBAAgB,CAAC;AAC5C,QAAA,IAAA,CAAA,SAAS,GAAG,MAAM,CAAC,WAAW,CAAC;AAC/B,QAAA,IAAA,CAAA,wBAAwB,GAAG,MAAM,CAAC,uBAAuB,CAAC;AAG1D,QAAA,IAAA,CAAA,eAAe,GAAiB,IAAI,OAAO,EAAO;IAI1D;IAEA,QAAQ,GAAA;QACN,IAAI,CAAC,wBAAwB,CAAC;AAC3B,aAAA,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,eAAe,CAAC;AACpC,aAAA,SAAS,CAAC,CAAC,EAAE,eAAe,EAAE,KAAI;YACjC,IAAI,CAAC,QAAQ,GAAG,CAAC,eAAe,CAAC,QAAQ,CAAC,IAAI,CAAC;AACjD,QAAA,CAAC,CAAC;IACN;IACS,WAAW,GAAA;QAClB,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;AACjC,QAAA,IAAI,CAAC,eAAe,CAAC,QAAQ,EAAE;IACjC;AAEA,IAAA,OAAO,CAAC,MAAa,EAAA;QACnB,MAAM,CAAC,cAAc,EAAE;AAEvB,QAAA,IAAI,IAAI,CAAC,KAAK,CAAC,OAAO,EAAE;YACtB,IAAI,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,EAAE;AAChC,gBAAA,IAAI,CAAC,0BAA0B,CAAC,IAAI,CAAC,KAAK,CAAC,OAAO,EAAE,MAAM,EAAE,IAAI,CAAC;YACnE;iBACK;AACH,gBAAA,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC;YAC5B;QACF;IACF;AAEA,IAAA,WAAW,CAAC,OAAgC,EAAA;AAC1C,QAAA,IAAI,OAAO,IAAI,IAAI,EAAE;AACnB,YAAA,IAAI,CAAC,iBAAiB,CAAC,QAAQ,EAAE;YAEjC;QACF;AAEA,QAAA,IAAI,IAAI,CAAC,QAAQ,EAAE;YACjB,IAAI,OAAO,EAAE;gBACX,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,OAAO,CAAC,MAAM,EAAE,IAAI,EAAE,EAAE,QAAQ,EAAE,OAAO,CAAC,eAAe,GAAG,CAAC,GAAG,IAAI,EAAE,CAAC;YAC7F;QACF;aAAO;AACL,YAAA,IAAI,OAAO;AACT,gBAAA,IAAI,CAAC,iBAAiB,CAAC,QAAQ,CAAC;oBAC9B,KAAK,EAAE,OAAO,CAAC,OAAO,EAAE,IAAI,EAAE,OAAO,CAAC,QAAsB;oBAC5D,OAAO,EAAE,OAAO,CAAC,MAAM,EAAE,OAAO,EAAE,IAAI,EAAE,QAAQ,EAAE,OAAO,CAAC,eAAe,GAAG,cAAc,GAAG;AAC9F,iBAAA,CAAC;QACN;IACF;AAEQ,IAAA,0BAA0B,CAAC,UAAkB,EAAE,KAAY,EAAE,OAAa,EAAA;AAChF,QAAA,IAAI;;AAEF,YAAA,MAAM,IAAI,GAAG,IAAI,QAAQ,CAAC,OAAO,EAAE,SAAS,EAAE,CAAA,iBAAA,EAAoB,UAAU,CAAA,EAAA,CAAI,CAAC;AAEjF,YAAA,IAAI,CAAC,KAAK,EAAE,OAAO,CAAC;QAEtB;QAAE,OAAO,KAAK,EAAE;AACd,YAAA,OAAO,CAAC,KAAK,CAAC,uCAAuC,EAAE,KAAK,CAAC;QAC/D;IACF;8GAzEW,uBAAuB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;kGAAvB,uBAAuB,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,kBAAA,EAAA,eAAA,EAAA,IAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,ECvBpC,2LAES,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EDmBG,eAAe,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAH,EAAA,CAAA,SAAA,EAAA,QAAA,EAAA,iOAAA,EAAA,MAAA,EAAA,CAAA,WAAA,CAAA,EAAA,QAAA,EAAA,CAAA,WAAA,EAAA,WAAA,CAAA,EAAA,CAAA,EAAA,eAAA,EAAA,EAAA,CAAA,uBAAA,CAAA,MAAA,EAAA,CAAA,CAAA;;2FAEd,uBAAuB,EAAA,UAAA,EAAA,CAAA;kBANnC,SAAS;AACE,YAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,kBAAkB,mBAEX,uBAAuB,CAAC,MAAM,EAAA,OAAA,EACtC,CAAC,eAAe,CAAC,EAAA,QAAA,EAAA,2LAAA,EAAA;;;AEQtB,MAAO,wBAAyB,SAAQ,SAA6C,CAAA;AAkBvF,IAAA,WAAA,GAAA;AACI,QAAA,KAAK,EAAE;AAhBF,QAAA,IAAA,CAAA,cAAc,GAAG;AACtB,YAAA,KAAK,EAAE;AACH,gBAAA,SAAS,EAAE,KAAK;AAChB,gBAAA,UAAU,EAAE,IAAI;AAChB,gBAAA,cAAc,EAAE;AACnB,aAAA;SACJ;QACD,IAAA,CAAA,OAAO,GAAO,EAAE;AAGR,QAAA,IAAA,CAAA,KAAK,GAAG,MAAM,CAAC,UAAU,CAAC;AAC1B,QAAA,IAAA,CAAA,kBAAkB,GAAG,MAAM,CAAC,iBAAiB,CAAC;AAC9C,QAAA,IAAA,CAAA,wBAAwB,GAAG,MAAM,CAAC,uBAAuB,CAAC;AAC1D,QAAA,IAAA,CAAA,eAAe,GAAiB,IAAI,OAAO,EAAO;IAI1D;IAEA,QAAQ,GAAA;QACJ,MAAM,GAAG,GAAG,IAAI,CAAC,KAAK,EAAE,MAAM,EAAE,GAAG;QACnC,IAAI,GAAG,IAAI,IAAI,CAAC,KAAK,EAAE,MAAM,EAAE,IAAI,IAAI,IAAI,CAAC,KAAK,EAAE,MAAM,EAAE,GAAG,IAAI,IAAI,CAAC,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE;YACzF,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC,CAAC,SAAS,CAC/D,CAAC,IAAS,KAAI;gBACV,IAAI,IAAI,EAAE;oBACN,MAAM,KAAK,GAAG,IAAI,CAAC,MAAM,CAAC,CAAC,CAAM,KAAI;wBACjC,IAAI,IAAI,CAAC,KAAK,CAAC,KAAK,EAAE,MAAM,EAAE,GAAG;4BAC7B,OAAO,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,EAAE,MAAM,EAAE,GAAG,CAAC,KAAK,IAAI,CAAC,KAAK,CAAC,KAAK,EAAE,MAAM,EAAE,IAAI;AAE9E,wBAAA,OAAO,KAAK;AAChB,oBAAA,CAAC,CACA;AACD,oBAAA,IAAI,KAAK,IAAI,IAAI,CAAC,KAAK,CAAC,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE;AAC1C,wBAAA,IAAI,CAAC,OAAO,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,EAAE,MAAM,EAAE,KAAK,CAAC;oBAC5D;yBAAO;AACH,wBAAA,IAAI,CAAC,OAAO,GAAG,EAAE;oBACrB;gBACJ;qBAAO;AACH,oBAAA,IAAI,CAAC,OAAO,GAAG,EAAE;gBACrB;AACA,gBAAA,IAAI,CAAC,kBAAkB,CAAC,YAAY,EAAE;AAC1C,YAAA,CAAC,CACJ;QACL;aAAO;AACH,YAAA,IAAI,CAAC,OAAO,GAAG,EAAE;AAEjB,YAAA,IAAI,CAAC,kBAAkB,CAAC,YAAY,EAAE;QAC1C;QAEA,IAAI,CAAC,wBAAwB,CAAC;AACzB,aAAA,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,eAAe,CAAC;AACpC,aAAA,SAAS,CAAC,CAAC,EAAE,eAAe,EAAE,KAAI;YAC/B,IAAI,CAAC,SAAS,GAAG,CAAC,eAAe,CAAC,QAAQ,CAAC,IAAI,CAAC;AAEhD,YAAA,IAAI,CAAC,kBAAkB,CAAC,YAAY,EAAE;AAC1C,QAAA,CAAC,CAAC;IACV;IAES,WAAW,GAAA;QAChB,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;AACjC,QAAA,IAAI,CAAC,eAAe,CAAC,QAAQ,EAAE;IACnC;8GAhES,wBAAwB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;AAAxB,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,wBAAwB,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,mBAAA,EAAA,eAAA,EAAA,IAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,EC7BrC,mUAEoE,EAAA,MAAA,EAAA,CAAA,qBAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EDyBtD,mBAAmB,6hBAAE,wBAAwB,EAAA,QAAA,EAAA,mBAAA,EAAA,MAAA,EAAA,CAAA,IAAA,EAAA,SAAA,EAAA,WAAA,EAAA,YAAA,EAAA,gBAAA,EAAA,iBAAA,EAAA,SAAA,EAAA,aAAA,EAAA,OAAA,EAAA,UAAA,EAAA,UAAA,CAAA,EAAA,QAAA,EAAA,CAAA,iBAAA,CAAA,EAAA,CAAA,EAAA,eAAA,EAAA,EAAA,CAAA,uBAAA,CAAA,MAAA,EAAA,CAAA,CAAA;;2FAE9C,wBAAwB,EAAA,UAAA,EAAA,CAAA;kBAPpC,SAAS;+BACI,mBAAmB,EAAA,eAAA,EAGZ,uBAAuB,CAAC,MAAM,WACtC,CAAC,mBAAmB,EAAE,wBAAwB,CAAC,EAAA,QAAA,EAAA,mUAAA,EAAA,MAAA,EAAA,CAAA,qBAAA,CAAA,EAAA;;;AEKtD,MAAO,0BAA2B,SAAQ,SAA0C,CAAA;AAetF,IAAA,WAAA,GAAA;AACI,QAAA,KAAK,EAAE;QAbX,IAAA,CAAA,eAAe,GAAG,KAAK;QACvB,IAAA,CAAA,SAAS,GAAG,KAAK;QAIjB,IAAA,CAAA,SAAS,GAAU,EAAE;QACrB,IAAA,CAAA,YAAY,GAAU,EAAE;AAEhB,QAAA,IAAA,CAAA,KAAK,GAAG,MAAM,CAAC,UAAU,CAAC;AAC1B,QAAA,IAAA,CAAA,cAAc,GAAkC,IAAI,eAAe,CAAe,IAAI,CAAC;AACvF,QAAA,IAAA,CAAA,eAAe,GAAkB,IAAI,OAAO,EAAQ;IAI5D;AAEA,IAAA,IAAI,cAAc,GAAA;AACd,QAAA,OAAO,IAAI,CAAC,cAAc,CAAC,YAAY,EAAE;IAC7C;AAEA,IAAA,IAAI,KAAK,GAAA;QACL,IAAI,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,EAAE,OAAO,CAAC,EAAE;YACpC,OAAO,IAAI,CAAC,OAAO,EAAE,MAAM,GAAG,CAAC,GAAG,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC,KAAK,EAAE,OAAO,IAAI,EAAE;QACpF;aAAO;YACH,OAAO,IAAI,CAAC,OAAO,EAAE,MAAM,GAAG,CAAC,GAAG,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC,WAAW,IAAI,EAAE;QAC3E;IACJ;IAEA,QAAQ,GAAA;QACJ,IAAI,IAAI,CAAC,KAAK,CAAC,KAAK,EAAE,OAAO,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,EAAE,OAAO,CAAC,EAAE;YAClE,IAAI,CAAC,KAAK,CAAC,KAAK,EAAE,OAAO,CAAC,IAAI,CAACI,WAAS,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC,CAAC,SAAS,CACrE,CAAC,IAAI,KAAI;AACL,gBAAA,IAAI,CAAC,WAAW,GAAG,IAAI;AAC3B,YAAA,CAAC,CACJ;QACL;QACA,MAAM,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC,KAAK,EAAE,MAAM,EAAE,GAAG;AACzC,QAAA,IAAI,GAAG,IAAI,IAAI,CAAC,KAAK,CAAC,KAAK,EAAE,MAAM,EAAE,IAAI,IAAI,IAAI,CAAC,KAAK,CAAC,KAAK,EAAE,MAAM,EAAE,GAAG,IAAI,IAAI,CAAC,KAAK,CAAC,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE;YAC3G,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,IAAI,CAACA,WAAS,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC,CAAC,SAAS,CAC/D,CAAC,IAAS,KAAI;gBACV,IAAI,IAAI,EAAE;oBACN,MAAM,KAAK,GAAG,IAAI,CAAC,MAAM,CAAC,CAAC,CAAM,KAAI;wBACjC,IAAI,IAAI,CAAC,KAAK,CAAC,KAAK,EAAE,MAAM,EAAE,GAAG;4BAC7B,OAAO,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,EAAE,MAAM,EAAE,GAAG,CAAC,KAAK,IAAI,CAAC,KAAK,CAAC,KAAK,EAAE,MAAM,EAAE,IAAI;AAE9E,wBAAA,OAAO,KAAK;AAChB,oBAAA,CAAC,CACA;AACD,oBAAA,IAAI,KAAK,IAAI,IAAI,CAAC,KAAK,CAAC,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE;AAC1C,wBAAA,IAAI,CAAC,OAAO,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,EAAE,MAAM,EAAE,KAAK,CAAC;oBAC5D;yBAAO;AACH,wBAAA,IAAI,CAAC,OAAO,GAAG,EAAE;oBACrB;gBACJ;qBAAO;AACH,oBAAA,IAAI,CAAC,OAAO,GAAG,EAAE;gBACrB;AACA,gBAAA,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC,KAAK;gBAE9B,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,IAAI,CAAC,YAAY,CAAC;AAC/C,YAAA,CAAC,CACJ;QACL;aAAO;AACH,YAAA,IAAI,CAAC,OAAO,GAAG,EAAE;AACjB,YAAA,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC,KAAK;YAE9B,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,IAAI,CAAC,YAAY,CAAC;QAC/C;QAEA,IAAI,CAAC,WAAW,CAAC,YAAY,CAAC,IAAI,CAACA,WAAS,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC,CAAC,SAAS,CACzE,CAAC,KAAK,KAAI;AACN,YAAA,IAAI,CAAC,SAAS,GAAG,KAAK,IAAI,EAAE;YAE5B,IAAI,CAAC,sBAAsB,EAAE;AACjC,QAAA,CAAC,CACJ;IACL;IAES,WAAW,GAAA;QAChB,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC;AACnC,QAAA,IAAI,CAAC,eAAe,CAAC,QAAQ,EAAE;IACnC;IAEA,SAAS,CAAC,KAAa,EAAE,IAAS,EAAA;AAC9B,QAAA,OAAO,IAAI,CAAC,EAAE,IAAI,KAAK;IAC3B;AAEA,IAAA,aAAa,CAAC,KAAU,EAAA;AACpB,QAAA,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,IAAI,IAAI,IAAI,CAAC,KAAK,CAAC,QAAQ,EAAE,CAAC,WAAW,EAAE,CAAC,QAAQ,CAAC,KAAK,CAAC,IAAI,IAAI,CAAC,KAAK,CAAC,WAAW,EAAE,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;QAC9I,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,IAAI,CAAC,YAAY,CAAC;QAE3C,IAAI,CAAC,sBAAsB,EAAE;IACjC;IAEA,eAAe,CAAC,IAAS,EAAE,KAAU,EAAA;QACjC,KAAK,CAAC,cAAc,EAAE;QAEtB,IAAI,IAAI,CAAC,QAAQ,IAAI,IAAI,CAAC,KAAK,CAAC,QAAQ;YACpC;QAEJ,MAAM,KAAK,GAAG,IAAI,CAAC,SAAS,CAAC,SAAS,CAAC,IAAI,IAAI,IAAI,CAAC,KAAK,KAAK,IAAI,CAAC,KAAK,CAAC;AACzE,QAAA,IAAI,KAAK,GAAG,CAAC,CAAC,EAAE;YACZ,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC,CAAC;QACnC;aAAO;YACH,IAAI,CAAC,SAAS,GAAG,CAAC,GAAG,IAAI,CAAC,SAAS,EAAE,IAAI,CAAC;QAC9C;QAEA,IAAI,CAAC,WAAW,CAAC,QAAQ,CAAC,IAAI,CAAC,SAAS,CAAC;IAC7C;AAEA,IAAA,cAAc,CAAC,KAAc,EAAA;QACzB,IAAI,KAAK,EAAE;YACP,MAAM,UAAU,GAAG,IAAI,CAAC,YAAY,CAAC,MAAM,CAAC,CAAC,CAAC,KAAI;gBAC9C,MAAM,KAAK,GAAG,IAAI,CAAC,SAAS,CAAC,SAAS,CAAC,IAAI,IAAI,IAAI,CAAC,KAAK,KAAK,CAAC,CAAC,KAAK,CAAC;gBACtE,OAAO,KAAK,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,QAAQ;AACnC,YAAA,CAAC,CAAC;AACF,YAAA,IAAI,CAAC,SAAS,GAAG,CAAC,GAAG,IAAI,CAAC,SAAS,EAAE,GAAG,UAAU,CAAC;QACvD;aAAO;AACH,YAAA,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC,IAAI,KAAI;gBAC5C,MAAM,gBAAgB,GAAG,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC,KAAK,KAAK,IAAI,CAAC,KAAK,CAAC;gBAC5E,MAAM,YAAY,GAAG,gBAAgB,IAAI,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC,KAAK,KAAK,IAAI,CAAC,KAAK,CAAC,EAAE,QAAQ,KAAK,KAAK;gBAChH,OAAO,CAAC,YAAY;AACxB,YAAA,CAAC,CAAC;QACN;QAEA,IAAI,CAAC,WAAW,CAAC,QAAQ,CAAC,IAAI,CAAC,SAAS,CAAC;IAC7C;AAEA,IAAA,OAAO,CAAC,IAAS,EAAA;QACb,OAAO,IAAI,CAAC,WAAW,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC,CAAkB,KAAK,CAAC,CAAC,KAAK,KAAK,IAAI,CAAC,KAAK,CAAC,CAAC,MAAM,GAAG,CAAC;IACpG;IAEQ,sBAAsB,GAAA;AAC1B,QAAA,IAAI,IAAI,CAAC,KAAK,CAAC,YAAY,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,QAAQ,EAAE;YACjD,IAAI,aAAa,GAAG,CAAC;YAErB,IAAI,IAAI,CAAC,SAAS,EAAE,MAAM,GAAG,CAAC,EAAE;gBAC5B,IAAI,CAAC,YAAY,CAAC,OAAO,CAAC,CAAC,CAAC,KAAI;oBAC5B,MAAM,KAAK,GAAG,IAAI,CAAC,SAAS,CAAC,SAAS,CAAC,IAAI,IAAI,IAAI,CAAC,KAAK,KAAK,CAAC,CAAC,KAAK,IAAI,CAAC,CAAC,CAAC,QAAQ,CAAC;AACrF,oBAAA,IAAI,KAAK,GAAG,CAAC,CAAC,EAAE;wBACZ,aAAa,IAAI,CAAC;oBACtB;AACJ,gBAAA,CAAC,CAAC;gBAEF,IAAI,IAAI,CAAC,YAAY,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,MAAM,KAAK,aAAa,EAAE;AACrE,oBAAA,IAAI,CAAC,SAAS,GAAG,IAAI;AACrB,oBAAA,IAAI,CAAC,eAAe,GAAG,KAAK;gBAChC;AAAO,qBAAA,IAAI,aAAa,KAAK,CAAC,EAAE;AAC5B,oBAAA,IAAI,CAAC,SAAS,GAAG,KAAK;AACtB,oBAAA,IAAI,CAAC,eAAe,GAAG,KAAK;gBAChC;qBAAO;AACH,oBAAA,IAAI,CAAC,SAAS,GAAG,KAAK;AACtB,oBAAA,IAAI,CAAC,eAAe,GAAG,IAAI;gBAC/B;YACJ;iBAAO;AACH,gBAAA,IAAI,CAAC,SAAS,GAAG,EAAE;AAEnB,gBAAA,IAAI,CAAC,SAAS,GAAG,KAAK;AACtB,gBAAA,IAAI,CAAC,eAAe,GAAG,KAAK;YAChC;QACJ;IACJ;8GAnKS,0BAA0B,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;kGAA1B,0BAA0B,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,qBAAA,EAAA,eAAA,EAAA,IAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,EChCvC,ylFAyDM,EAAA,MAAA,EAAA,CAAA,qBAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,ED3BQ,iBAAiB,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAJ,IAAA,CAAA,WAAA,EAAA,QAAA,EAAA,cAAA,EAAA,MAAA,EAAA,CAAA,YAAA,EAAA,iBAAA,EAAA,kBAAA,EAAA,eAAA,EAAA,eAAA,EAAA,WAAA,EAAA,IAAA,EAAA,UAAA,EAAA,eAAA,EAAA,MAAA,EAAA,OAAA,EAAA,eAAA,EAAA,UAAA,EAAA,OAAA,EAAA,qBAAA,EAAA,SAAA,EAAA,UAAA,EAAA,eAAA,CAAA,EAAA,OAAA,EAAA,CAAA,QAAA,EAAA,qBAAA,CAAA,EAAA,QAAA,EAAA,CAAA,aAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EAAE,aAAa,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,OAAA,EAAA,QAAA,EAAA,UAAA,EAAA,MAAA,EAAA,CAAA,OAAA,EAAA,QAAA,EAAA,SAAA,EAAA,SAAA,EAAA,UAAA,CAAA,EAAA,QAAA,EAAA,CAAA,SAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAE,OAAO,EAAA,QAAA,EAAA,WAAA,EAAA,MAAA,EAAA,CAAA,OAAA,EAAA,SAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EAAE,eAAe,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAG,IAAA,CAAA,SAAA,EAAA,QAAA,EAAA,2BAAA,EAAA,MAAA,EAAA,CAAA,gBAAA,EAAA,oBAAA,EAAA,mBAAA,EAAA,iBAAA,EAAA,oBAAA,EAAA,mBAAA,EAAA,kBAAA,CAAA,EAAA,QAAA,EAAA,CAAA,WAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,MAAA,EAAA,IAAA,EAAE,SAAS,EAAA,IAAA,EAAA,OAAA,EAAA,CAAA,EAAA,eAAA,EAAA,EAAA,CAAA,uBAAA,CAAA,MAAA,EAAA,aAAA,EAAA,EAAA,CAAA,iBAAA,CAAA,IAAA,EAAA,CAAA,CAAA;;2FAEtE,0BAA0B,EAAA,UAAA,EAAA,CAAA;kBARtC,SAAS;AACI,YAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,qBAAqB,iBAGhB,iBAAiB,CAAC,IAAI,EAAA,eAAA,EACpB,uBAAuB,CAAC,MAAM,EAAA,OAAA,EACtC,CAAC,iBAAiB,EAAE,aAAa,EAAE,OAAO,EAAE,eAAe,EAAE,SAAS,CAAC,EAAA,QAAA,EAAA,ylFAAA,EAAA,MAAA,EAAA,CAAA,qBAAA,CAAA,EAAA;;;AEH9E,MAAO,2BAA4B,SAAQ,SAA2C,CAAA;AAM1F,IAAA,WAAA,GAAA;AACE,QAAA,KAAK,EAAE;AAJD,QAAA,IAAA,CAAA,KAAK,GAAG,MAAM,CAAC,UAAU,CAAC;AAC1B,QAAA,IAAA,CAAA,eAAe,GAAiB,IAAI,OAAO,EAAO;IAI1D;AAEA,IAAA,IAAI,gBAAgB,GAAA;AAClB,QAAA,OAAO,IAAI,CAAC,mBAAmB,EAAE,MAAM,GAAG,CAAC,GAAG,IAAI,CAAC,mBAAmB,GAAG,IAAI,CAAC,KAAK,EAAE,gBAAgB,EAAE,KAAK,CAAC,GAAG,CAAC,IAAI,EAAE;IACzH;IAEA,QAAQ,GAAA;QACN,MAAM,GAAG,GAAG,IAAI,CAAC,KAAK,EAAE,MAAM,EAAE,GAAG;QACnC,IAAI,GAAG,IAAI,IAAI,CAAC,KAAK,EAAE,MAAM,EAAE,IAAI,IAAI,IAAI,CAAC,KAAK,EAAE,MAAM,EAAE,GAAG,IAAI,IAAI,CAAC,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE;YAC3F,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC,CAAC,SAAS,CACjE,CAAC,IAAS,KAAI;gBACZ,IAAI,IAAI,EAAE;oBACR,MAAM,KAAK,GAAG,IAAI,CAAC,MAAM,CAAC,CAAC,CAAM,KAAI;wBACnC,IAAI,IAAI,CAAC,KAAK,CAAC,KAAK,EAAE,MAAM,EAAE,GAAG;4BAC/B,OAAO,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,EAAE,MAAM,EAAE,GAAG,CAAC,KAAK,IAAI,CAAC,KAAK,CAAC,KAAK,EAAE,MAAM,EAAE,IAAI;AAE5E,wBAAA,OAAO,KAAK;AACd,oBAAA,CAAC,CACA;AACD,oBAAA,IAAI,KAAK,IAAI,IAAI,CAAC,KAAK,CAAC,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE;AAC5C,wBAAA,IAAI,CAAC,mBAAmB,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,EAAE,MAAM,EAAE,KAAK,CAAC;oBACtE;yBAAO;AACL,wBAAA,IAAI,CAAC,mBAAmB,GAAG,EAAE;oBAC/B;gBACF;qBAAO;AACL,oBAAA,IAAI,CAAC,mBAAmB,GAAG,EAAE;gBAC/B;AACF,YAAA,CAAC,CACF;QACH;aAAO;AACL,YAAA,IAAI,CAAC,mBAAmB,GAAG,EAAE;QAC/B;IACF;IAES,WAAW,GAAA;QAClB,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;AACjC,QAAA,IAAI,CAAC,eAAe,CAAC,QAAQ,EAAE;IACjC;8GA7CW,2BAA2B,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;AAA3B,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,2BAA2B,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,uBAAA,EAAA,eAAA,EAAA,IAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,EC3BxC,0PAC2I,EAAA,MAAA,EAAA,CAAA,qBAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EDwB/H,mBAAmB,6hBAAE,sBAAsB,EAAA,QAAA,EAAA,iBAAA,EAAA,MAAA,EAAA,CAAA,IAAA,EAAA,mBAAA,EAAA,iBAAA,EAAA,gBAAA,EAAA,cAAA,EAAA,aAAA,EAAA,OAAA,EAAA,UAAA,EAAA,UAAA,CAAA,EAAA,QAAA,EAAA,CAAA,eAAA,CAAA,EAAA,CAAA,EAAA,eAAA,EAAA,EAAA,CAAA,uBAAA,CAAA,MAAA,EAAA,CAAA,CAAA;;2FAE1C,2BAA2B,EAAA,UAAA,EAAA,CAAA;kBAPvC,SAAS;+BACE,uBAAuB,EAAA,eAAA,EAGhB,uBAAuB,CAAC,MAAM,WACtC,CAAC,mBAAmB,EAAE,sBAAsB,CAAC,EAAA,QAAA,EAAA,0PAAA,EAAA,MAAA,EAAA,CAAA,qBAAA,CAAA,EAAA;;;AEZlD,MAAO,4BAA6B,SAAQE,WAA0B,CAAA;8GAA/D,4BAA4B,EAAA,IAAA,EAAA,IAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;AAA5B,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,4BAA4B,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,wBAAA,EAAA,eAAA,EAAA,IAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,ECbzC,kLAC6D,EAAA,MAAA,EAAA,CAAA,qBAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EDU/C,mBAAmB,8TAAE,gCAAgC,EAAA,QAAA,EAAA,4BAAA,EAAA,MAAA,EAAA,CAAA,OAAA,EAAA,OAAA,EAAA,UAAA,CAAA,EAAA,OAAA,EAAA,CAAA,cAAA,CAAA,EAAA,QAAA,EAAA,CAAA,yBAAA,CAAA,EAAA,CAAA,EAAA,eAAA,EAAA,EAAA,CAAA,uBAAA,CAAA,MAAA,EAAA,CAAA,CAAA;;2FAEtD,4BAA4B,EAAA,UAAA,EAAA,CAAA;kBAPxC,SAAS;+BACI,wBAAwB,EAAA,eAAA,EAGjB,uBAAuB,CAAC,MAAM,WACtC,CAAC,mBAAmB,EAAE,gCAAgC,CAAC,EAAA,QAAA,EAAA,kLAAA,EAAA,MAAA,EAAA,CAAA,qBAAA,CAAA,EAAA;;;AES9D,MAAO,0BAA2B,SAAQ,SAA0C,CAAA;AAP1F,IAAA,WAAA,GAAA;;AAQa,QAAA,IAAA,CAAA,cAAc,GAAG;AACtB,YAAA,KAAK,EAAE;AACH,gBAAA,UAAU,EAAE,YAAY;AACxB,gBAAA,UAAU,EAAE,IAAI;AAChB,gBAAA,SAAS,EAAE;AACd,aAAA;SACJ;AACJ,IAAA;8GARY,0BAA0B,EAAA,IAAA,EAAA,IAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;AAA1B,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,0BAA0B,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,sBAAA,EAAA,eAAA,EAAA,IAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,ECpBvC,qOAEkB,EAAA,MAAA,EAAA,CAAA,qBAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EDgBJ,sBAAsB,uNAAE,mBAAmB,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAL,IAAA,CAAA,eAAA,EAAA,QAAA,EAAA,2CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,oBAAA,EAAA,QAAA,EAAA,eAAA,EAAA,MAAA,EAAA,CAAA,aAAA,EAAA,UAAA,EAAA,SAAA,CAAA,EAAA,OAAA,EAAA,CAAA,eAAA,CAAA,EAAA,QAAA,EAAA,CAAA,QAAA,CAAA,EAAA,CAAA,EAAA,eAAA,EAAA,EAAA,CAAA,uBAAA,CAAA,MAAA,EAAA,CAAA,CAAA;;2FAE5C,0BAA0B,EAAA,UAAA,EAAA,CAAA;kBAPtC,SAAS;+BACI,sBAAsB,EAAA,eAAA,EAGf,uBAAuB,CAAC,MAAM,WACtC,CAAC,sBAAsB,EAAE,mBAAmB,CAAC,EAAA,QAAA,EAAA,qOAAA,EAAA,MAAA,EAAA,CAAA,qBAAA,CAAA,EAAA;;;AEUpD,MAAO,2BAA4B,SAAQ,SAA2C,CAAA;AAsBxF,IAAA,WAAA,GAAA;AACI,QAAA,KAAK,EAAE;AAtBF,QAAA,IAAA,CAAA,cAAc,GAAG;AACtB,YAAA,KAAK,EAAE;AACH,gBAAA,SAAS,EAAE,OAAgB;AAC3B,gBAAA,IAAI,EAAE,MAAe;AACrB,gBAAA,cAAc,EAAE,MAAe;AAC/B,gBAAA,YAAY,EAAE,CAAC;AACf,gBAAA,IAAI,EAAE,UAAmB;AACzB,gBAAA,iBAAiB,EAAE,KAAK;AACxB,gBAAA,QAAQ,EAAE,KAAK;AACf,gBAAA,SAAS,EAAE,IAAI;AACf,gBAAA,UAAU,EAAE;AACf;SACJ;AAIO,QAAA,IAAA,CAAA,kBAAkB,GAAG,MAAM,CAAC,iBAAiB,CAAC;AAC9C,QAAA,IAAA,CAAA,wBAAwB,GAAG,MAAM,CAAC,uBAAuB,CAAC;AAE1D,QAAA,IAAA,CAAA,eAAe,GAAkB,IAAI,OAAO,EAAQ;IAI5D;IAEA,QAAQ,GAAA;QACJ,IAAI,CAAC,wBAAwB,CAAC;AACzB,aAAA,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,eAAe,CAAC;AACpC,aAAA,SAAS,CAAC,CAAC,EAAE,eAAe,EAAE,KAAI;YAC/B,IAAI,CAAC,SAAS,GAAG,CAAC,eAAe,CAAC,QAAQ,CAAC,IAAI,CAAC;AAEhD,YAAA,IAAI,CAAC,kBAAkB,CAAC,YAAY,EAAE;AAC1C,QAAA,CAAC,CAAC;IACV;IAES,WAAW,GAAA;QAChB,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;AACjC,QAAA,IAAI,CAAC,eAAe,CAAC,QAAQ,EAAE;IACnC;8GAvCS,2BAA2B,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;AAA3B,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,2BAA2B,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,sBAAA,EAAA,eAAA,EAAA,IAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,EC5BxC,g4BAcC,EAAA,MAAA,EAAA,CAAA,kCAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EDYa,iCAAiC,EAAA,QAAA,EAAA,4BAAA,EAAA,MAAA,EAAA,CAAA,KAAA,EAAA,UAAA,EAAA,YAAA,EAAA,eAAA,EAAA,UAAA,CAAA,EAAA,QAAA,EAAA,CAAA,0BAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAE,gCAAgC,EAAA,QAAA,EAAA,2BAAA,EAAA,MAAA,EAAA,CAAA,oBAAA,EAAA,sBAAA,EAAA,OAAA,EAAA,KAAA,EAAA,KAAA,EAAA,UAAA,CAAA,EAAA,OAAA,EAAA,CAAA,YAAA,EAAA,WAAA,CAAA,EAAA,QAAA,EAAA,CAAA,qBAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAE,2BAA2B,EAAA,QAAA,EAAA,qBAAA,EAAA,MAAA,EAAA,CAAA,WAAA,EAAA,MAAA,EAAA,cAAA,EAAA,8BAAA,EAAA,WAAA,EAAA,WAAA,EAAA,mBAAA,EAAA,YAAA,EAAA,YAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,MAAA,EAAA,WAAA,EAAA,SAAA,EAAA,UAAA,EAAA,cAAA,CAAA,EAAA,OAAA,EAAA,CAAA,iBAAA,EAAA,cAAA,EAAA,cAAA,EAAA,aAAA,CAAA,EAAA,QAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EAAE,cAAc,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,QAAA,EAAA,QAAA,EAAA,yHAAA,EAAA,MAAA,EAAA,CAAA,UAAA,EAAA,IAAA,EAAA,aAAA,EAAA,MAAA,EAAA,UAAA,EAAA,MAAA,EAAA,mBAAA,EAAA,kBAAA,EAAA,OAAA,EAAA,UAAA,EAAA,qBAAA,CAAA,EAAA,QAAA,EAAA,CAAA,UAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAE,IAAA,CAAA,SAAA,EAAA,QAAA,EAAA,+CAAA,EAAA,MAAA,EAAA,CAAA,eAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,SAAA,EAAA,QAAA,EAAA,+CAAA,EAAA,MAAA,EAAA,CAAA,eAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EAAE,WAAW,ynBAAE,mBAAmB,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAC,IAAA,CAAA,oBAAA,EAAA,QAAA,EAAA,eAAA,EAAA,MAAA,EAAA,CAAA,aAAA,EAAA,UAAA,EAAA,SAAA,CAAA,EAAA,OAAA,EAAA,CAAA,eAAA,CAAA,EAAA,QAAA,EAAA,CAAA,QAAA,CAAA,EAAA,CAAA,EAAA,eAAA,EAAA,EAAA,CAAA,uBAAA,CAAA,MAAA,EAAA,CAAA,CAAA;;2FAEnJ,2BAA2B,EAAA,UAAA,EAAA,CAAA;kBAPvC,SAAS;AACI,YAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,sBAAsB,mBAGf,uBAAuB,CAAC,MAAM,EAAA,OAAA,EACtC,CAAC,iCAAiC,EAAE,gCAAgC,EAAE,2BAA2B,EAAE,cAAc,EAAE,WAAW,EAAE,mBAAmB,CAAC,EAAA,QAAA,EAAA,g4BAAA,EAAA,MAAA,EAAA,CAAA,kCAAA,CAAA,EAAA;;;AEK3J,MAAO,8BAA+B,SAAQ,SAA8C,CAAA;AAe9F,IAAA,WAAA,GAAA;AACI,QAAA,KAAK,EAAE;AAbF,QAAA,IAAA,CAAA,cAAc,GAAG;AACtB,YAAA,KAAK,EAAE;AACH,gBAAA,kBAAkB,EAAE,IAAI;AACxB,gBAAA,UAAU,EAAE,QAAiB;AAC7B,gBAAA,KAAK,EAAE,QAAiB;AACxB,gBAAA,aAAa,EAAE;AAClB,aAAA;SACJ;AACO,QAAA,IAAA,CAAA,KAAK,GAAG,MAAM,CAAC,UAAU,CAAC;AAC1B,QAAA,IAAA,CAAA,QAAQ,GAA2B,IAAI,eAAe,CAAQ,EAAE,CAAC;AACjE,QAAA,IAAA,CAAA,eAAe,GAAiB,IAAI,OAAO,EAAO;IAI1D;AAEA,IAAA,IAAI,QAAQ,GAAA;AACR,QAAA,OAAO,IAAI,CAAC,QAAQ,CAAC,YAAY,EAAE;IACvC;IAEA,QAAQ,CAAC,KAAU,EAAE,OAAgB,EAAA;AACjC,QAAA,IAAI,CAAC,WAAW,CAAC,WAAW,EAAE;QAC9B,IAAI,IAAI,CAAC,KAAK,CAAC,IAAI,KAAK,OAAO,EAAE;AAC7B,YAAA,IAAI,CAAC,WAAW,CAAC,UAAU,CACvB;AACI,kBAAE,CAAC,IAAI,IAAI,CAAC,WAAW,CAAC,KAAK,IAAI,EAAE,CAAC,EAAE,KAAK;kBACzC,CAAC,IAAI,IAAI,CAAC,WAAW,CAAC,KAAK,IAAI,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,KAAK,KAAK,CAAC,CACrE;QACL;aAAO;YACH,IAAI,CAAC,WAAW,CAAC,UAAU,CAAC,EAAE,GAAG,IAAI,CAAC,WAAW,CAAC,KAAK,EAAE,CAAC,KAAK,GAAG,OAAO,EAAE,CAAC;QAChF;AACA,QAAA,IAAI,CAAC,WAAW,CAAC,aAAa,EAAE;IACpC;IAEA,QAAQ,GAAA;QACJ,MAAM,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC,KAAK,EAAE,MAAM,EAAE,GAAG;AACzC,QAAA,IAAI,GAAG,IAAI,IAAI,CAAC,KAAK,CAAC,KAAK,EAAE,MAAM,EAAE,IAAI,IAAI,IAAI,CAAC,KAAK,CAAC,KAAK,EAAE,MAAM,EAAE,GAAG,IAAI,IAAI,CAAC,KAAK,CAAC,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE;YAC3G,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC,CAAC,SAAS,CAC/D,CAAC,IAAS,KAAI;gBACV,IAAI,IAAI,EAAE;oBACN,MAAM,KAAK,GAAG,IAAI,CAAC,MAAM,CAAC,CAAC,CAAM,KAAI;wBACjC,IAAI,IAAI,CAAC,KAAK,CAAC,KAAK,EAAE,MAAM,EAAE,GAAG;4BAC7B,OAAO,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,EAAE,MAAM,EAAE,GAAG,CAAC,KAAK,IAAI,CAAC,KAAK,CAAC,KAAK,EAAE,MAAM,EAAE,IAAI;AAE9E,wBAAA,OAAO,KAAK;AAChB,oBAAA,CAAC,CACA;AACD,oBAAA,IAAI,KAAK,IAAI,IAAI,CAAC,KAAK,CAAC,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE;wBAC1C,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,EAAE,MAAM,EAAE,KAAK,CAAC,CAAC;oBACjE;yBAAO;AACH,wBAAA,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,CAAC;oBAC1B;gBACJ;qBAAO;AACH,oBAAA,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,CAAC;gBAC1B;AACJ,YAAA,CAAC,CACJ;QACL;aAAO;AACH,YAAA,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,CAAC;QAC1B;IACJ;IAES,WAAW,GAAA;QAChB,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;AACjC,QAAA,IAAI,CAAC,eAAe,CAAC,QAAQ,EAAE;IACnC;AAEA,IAAA,SAAS,CAAC,MAAW,EAAA;AACjB,QAAA,MAAM,KAAK,GAAG,IAAI,CAAC,WAAW,CAAC,KAAK;AAEpC,QAAA,OAAO,KAAK,KAAK,IAAI,CAAC,KAAK,CAAC,IAAI,KAAK,OAAO,GAAG,KAAK,CAAC,QAAQ,CAAC,MAAM,CAAC,KAAK,CAAC,GAAG,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;IACtG;AAEA,IAAA,SAAS,CAAC,KAAa,EAAA;AACnB,QAAA,OAAO,KAAK;IAChB;8GA9ES,8BAA8B,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;kGAA9B,8BAA8B,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,yBAAA,EAAA,WAAA,EAAA,CAAA,EAAA,YAAA,EAAA,YAAA,EAAA,SAAA,EACzB,WAAW,EAAA,WAAA,EAAA,IAAA,EAAA,CAAA,EAAA,eAAA,EAAA,IAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,EChC7B,ifASC,4EDoBa,iBAAiB,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAH,IAAA,CAAA,WAAA,EAAA,QAAA,EAAA,cAAA,EAAA,MAAA,EAAA,CAAA,YAAA,EAAA,iBAAA,EAAA,kBAAA,EAAA,eAAA,EAAA,eAAA,EAAA,WAAA,EAAA,IAAA,EAAA,UAAA,EAAA,eAAA,EAAA,MAAA,EAAA,OAAA,EAAA,eAAA,EAAA,UAAA,EAAA,OAAA,EAAA,qBAAA,EAAA,SAAA,EAAA,UAAA,EAAA,eAAA,CAAA,EAAA,OAAA,EAAA,CAAA,QAAA,EAAA,qBAAA,CAAA,EAAA,QAAA,EAAA,CAAA,aAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EAAa,kBAAkB,EAAA,EAAA,EAAA,IAAA,EAAA,MAAA,EAAA,IAAA,EAA7B,SAAS,EAAA,IAAA,EAAA,OAAA,EAAA,EAAA,EAAA,IAAA,EAAA,MAAA,EAAA,IAAA,EAAAE,IAAA,CAAA,6BAAA,EAAA,IAAA,EAAA,qBAAA,EAAA,CAAA,EAAA,eAAA,EAAA,EAAA,CAAA,uBAAA,CAAA,MAAA,EAAA,CAAA,CAAA;;2FAE7B,8BAA8B,EAAA,UAAA,EAAA,CAAA;kBAP1C,SAAS;+BACI,yBAAyB,EAAA,eAAA,EAGlB,uBAAuB,CAAC,MAAM,EAAA,OAAA,EACtC,CAAC,iBAAiB,EAAE,SAAS,EAAE,kBAAkB,CAAC,EAAA,QAAA,EAAA,ifAAA,EAAA,MAAA,EAAA,CAAA,qBAAA,CAAA,EAAA;;sBAG1D,YAAY;uBAAC,WAAW;;;AEXvB,MAAO,uBAAwB,SAAQ,SAAuC,CAAA;AAPpF,IAAA,WAAA,GAAA;;AAQa,QAAA,IAAA,CAAA,cAAc,GAAG;AACtB,YAAA,KAAK,EAAE;AACH,gBAAA,OAAO,EAAE,KAAK;gBACd,GAAG,EAAE,CAAC,QAAQ;AACd,gBAAA,GAAG,EAAE;AACR,aAAA;SACJ;AACJ,IAAA;8GARY,uBAAuB,EAAA,IAAA,EAAA,IAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;AAAvB,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,uBAAuB,mGCrBpC,6VAGA,EAAA,MAAA,EAAA,CAAA,qBAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EDgBc,sBAAsB,EAAA,QAAA,EAAA,iBAAA,EAAA,MAAA,EAAA,CAAA,SAAA,EAAA,kBAAA,EAAA,gBAAA,EAAA,YAAA,EAAA,cAAA,EAAA,KAAA,EAAA,KAAA,EAAA,SAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EAAE,cAAc,mYAAE,mBAAmB,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,oBAAA,EAAA,QAAA,EAAA,8MAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,eAAA,EAAA,QAAA,EAAA,2CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,iBAAA,EAAA,QAAA,EAAA,wIAAA,EAAA,MAAA,EAAA,CAAA,UAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,oBAAA,EAAA,QAAA,EAAA,eAAA,EAAA,MAAA,EAAA,CAAA,aAAA,EAAA,UAAA,EAAA,SAAA,CAAA,EAAA,OAAA,EAAA,CAAA,eAAA,CAAA,EAAA,QAAA,EAAA,CAAA,QAAA,CAAA,EAAA,CAAA,EAAA,eAAA,EAAA,EAAA,CAAA,uBAAA,CAAA,MAAA,EAAA,CAAA,CAAA;;2FAE5D,uBAAuB,EAAA,UAAA,EAAA,CAAA;kBAPnC,SAAS;+BACI,kBAAkB,EAAA,eAAA,EAGX,uBAAuB,CAAC,MAAM,EAAA,OAAA,EACtC,CAAC,sBAAsB,EAAE,cAAc,EAAE,mBAAmB,CAAC,EAAA,QAAA,EAAA,6VAAA,EAAA,MAAA,EAAA,CAAA,qBAAA,CAAA,EAAA;;;AEKpE,MAAO,uBAAwB,SAAQ,SAAuC,CAAA;AAPpF,IAAA,WAAA,GAAA;;AAQa,QAAA,IAAA,CAAA,cAAc,GAAG;AACtB,YAAA,KAAK,EAAE;AACH,gBAAA,KAAK,EAAE,CAAC;AACR,gBAAA,QAAQ,EAAE,KAAK;AACf,gBAAA,KAAK,EAAE,IAAI;AACX,gBAAA,IAAI,EAAE;AACT,aAAA;SACJ;AAEJ,IAAA;8GAVY,uBAAuB,EAAA,IAAA,EAAA,IAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;AAAvB,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,uBAAuB,mGCxBpC,wnBAQC,EAAA,MAAA,EAAA,CAAA,qBAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EDca,mBAAmB,EAAA,QAAA,EAAA,aAAA,EAAA,MAAA,EAAA,CAAA,IAAA,EAAA,OAAA,EAAA,UAAA,EAAA,OAAA,EAAA,MAAA,EAAA,OAAA,EAAA,UAAA,EAAA,aAAA,EAAA,OAAA,EAAA,UAAA,EAAA,UAAA,CAAA,EAAA,OAAA,EAAA,CAAA,aAAA,CAAA,EAAA,QAAA,EAAA,CAAA,YAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EAAE,mBAAmB,8TAAE,OAAO,EAAA,QAAA,EAAA,WAAA,EAAA,MAAA,EAAA,CAAA,SAAA,CAAA,EAAA,CAAA,EAAA,eAAA,EAAA,EAAA,CAAA,uBAAA,CAAA,MAAA,EAAA,CAAA,CAAA;;2FAElD,uBAAuB,EAAA,UAAA,EAAA,CAAA;kBAPnC,SAAS;+BACI,kBAAkB,EAAA,eAAA,EAGX,uBAAuB,CAAC,MAAM,EAAA,OAAA,EACtC,CAAC,mBAAmB,EAAE,mBAAmB,EAAE,OAAO,CAAC,EAAA,QAAA,EAAA,wnBAAA,EAAA,MAAA,EAAA,CAAA,qBAAA,CAAA,EAAA;;;AEU1D,MAAO,sBAAuB,SAAQ,SAAsC,CAAA;AAiB9E,IAAA,WAAA,GAAA;AACI,QAAA,KAAK,EAAE;AAfF,QAAA,IAAA,CAAA,cAAc,GAAG;AACtB,YAAA,KAAK,EAAE;AACH,gBAAA,kBAAkB,EAAE,IAAI;AACxB,gBAAA,UAAU,EAAE,QAAiB;gBAC7B,QAAQ,EAAE,CAAC,CAAC;AACZ,gBAAA,aAAa,EAAE;AAClB,aAAA;SACJ;AAEO,QAAA,IAAA,CAAA,KAAK,GAAG,MAAM,CAAC,UAAU,CAAC;AAE1B,QAAA,IAAA,CAAA,QAAQ,GAA2B,IAAI,eAAe,CAAQ,EAAE,CAAC;AACjE,QAAA,IAAA,CAAA,eAAe,GAAiB,IAAI,OAAO,EAAO;IAI1D;AACA,IAAA,IAAI,QAAQ,GAAA;AACR,QAAA,OAAO,IAAI,CAAC,QAAQ,CAAC,YAAY,EAAE;IACvC;IACA,QAAQ,GAAA;QACJ,MAAM,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC,KAAK,EAAE,MAAM,EAAE,GAAG;AACzC,QAAA,IAAI,GAAG,IAAI,IAAI,CAAC,KAAK,CAAC,KAAK,EAAE,MAAM,EAAE,IAAI,IAAI,IAAI,CAAC,KAAK,CAAC,KAAK,EAAE,MAAM,EAAE,GAAG,IAAI,IAAI,CAAC,KAAK,CAAC,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE;YAC3G,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC,CAAC,SAAS,CAC/D,CAAC,IAAS,KAAI;gBACV,IAAI,IAAI,EAAE;oBACN,MAAM,KAAK,GAAG,IAAI,CAAC,MAAM,CAAC,CAAC,CAAM,KAAI;wBACjC,IAAI,IAAI,CAAC,KAAK,CAAC,KAAK,EAAE,MAAM,EAAE,GAAG;4BAC7B,OAAO,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,EAAE,MAAM,EAAE,GAAG,CAAC,KAAK,IAAI,CAAC,KAAK,CAAC,KAAK,EAAE,MAAM,EAAE,IAAI;AAE9E,wBAAA,OAAO,KAAK;AAChB,oBAAA,CAAC,CACA;AACD,oBAAA,IAAI,KAAK,IAAI,IAAI,CAAC,KAAK,CAAC,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE;wBAC1C,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,EAAE,MAAM,EAAE,KAAK,CAAC,CAAC;oBACjE;yBAAO;AACH,wBAAA,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,CAAC;oBAC1B;gBACJ;qBAAO;AACH,oBAAA,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,CAAC;gBAC1B;AACJ,YAAA,CAAC,CACJ;QACL;aAAO;AACH,YAAA,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,CAAC;QAC1B;IACJ;IAGA,eAAe,GAAA;AACX,QAAA,IAAI,CAAC,aAAa,GAAGI,QAAO,CAAC,IAAI,CAAC,KAAK,EAAE,CAAC,OAAO,CAAC,EAAE,CAAC,EAAE,YAAY,EAAE,KAAI;YACrE,IAAI,IAAI,CAAC,KAAK,CAAC,QAAQ,KAAK,CAAC,CAAC,IAAI,YAAY,IAAI,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,MAAM,GAAG,CAAC,EAAE;gBAClF,UAAU,CAAC,MAAK;AACZ,oBAAA,MAAM,KAAK,GAAG,IAAI,CAAC,UAAU,CAAC,QAAQ,IAAI,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,KAAK;oBACvE,KAAK,CAAC,KAAK,EAAE;AACjB,gBAAA,CAAC,CAAC;YACN;AACJ,QAAA,CAAC,CAAC;IACN;IAES,WAAW,GAAA;QAChB,KAAK,CAAC,WAAW,EAAE;AACnB,QAAA,IAAI,CAAC,aAAa,EAAE,WAAW,EAAE;QACjC,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;AACjC,QAAA,IAAI,CAAC,eAAe,CAAC,QAAQ,EAAE;IACnC;AAEA,IAAA,SAAS,CAAC,KAAa,EAAA;AACnB,QAAA,OAAO,KAAK;IAChB;8GAxES,sBAAsB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;kGAAtB,sBAAsB,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,iBAAA,EAAA,WAAA,EAAA,CAAA,EAAA,YAAA,EAAA,YAAA,EAAA,KAAA,EAAA,IAAA,EAAA,SAAA,EACpB,aAAa,EAAA,WAAA,EAAA,IAAA,EAAA,MAAA,EAAA,IAAA,EAAA,CAAA,EAAA,eAAA,EAAA,IAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,ECjC5B,oiBAUkB,EAAA,MAAA,EAAA,CAAA,qBAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EDoBJ,cAAc,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAN,IAAA,CAAA,aAAA,EAAA,QAAA,EAAA,iBAAA,EAAA,MAAA,EAAA,CAAA,OAAA,EAAA,MAAA,EAAA,eAAA,EAAA,OAAA,EAAA,UAAA,EAAA,UAAA,EAAA,UAAA,EAAA,qBAAA,CAAA,EAAA,OAAA,EAAA,CAAA,QAAA,CAAA,EAAA,QAAA,EAAA,CAAA,eAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,cAAA,EAAA,QAAA,EAAA,kBAAA,EAAA,MAAA,EAAA,CAAA,IAAA,EAAA,MAAA,EAAA,YAAA,EAAA,iBAAA,EAAA,kBAAA,EAAA,eAAA,EAAA,UAAA,EAAA,SAAA,EAAA,OAAA,EAAA,eAAA,EAAA,UAAA,EAAA,UAAA,EAAA,OAAA,EAAA,qBAAA,CAAA,EAAA,OAAA,EAAA,CAAA,QAAA,CAAA,EAAA,QAAA,EAAA,CAAA,gBAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EAAa,kBAAkB,EAAA,EAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EAAE,mBAAmB,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAE,IAAA,CAAA,eAAA,EAAA,QAAA,EAAA,2CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,iBAAA,EAAA,QAAA,EAAA,wIAAA,EAAA,MAAA,EAAA,CAAA,UAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,oBAAA,EAAA,QAAA,EAAA,eAAA,EAAA,MAAA,EAAA,CAAA,aAAA,EAAA,UAAA,EAAA,SAAA,CAAA,EAAA,OAAA,EAAA,CAAA,eAAA,CAAA,EAAA,QAAA,EAAA,CAAA,QAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,MAAA,EAAA,IAAA,EAAlD,SAAS,EAAA,IAAA,EAAA,OAAA,EAAA,EAAA,EAAA,IAAA,EAAA,MAAA,EAAA,IAAA,EAAAC,IAAA,CAAA,6BAAA,EAAA,IAAA,EAAA,qBAAA,EAAA,CAAA,EAAA,eAAA,EAAA,EAAA,CAAA,uBAAA,CAAA,MAAA,EAAA,CAAA,CAAA;;2FAE1B,sBAAsB,EAAA,UAAA,EAAA,CAAA;kBAPlC,SAAS;AACI,YAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,iBAAiB,EAAA,eAAA,EAGV,uBAAuB,CAAC,MAAM,EAAA,OAAA,EACtC,CAAC,cAAc,EAAE,SAAS,EAAE,kBAAkB,EAAE,mBAAmB,CAAC,EAAA,QAAA,EAAA,oiBAAA,EAAA,MAAA,EAAA,CAAA,qBAAA,CAAA,EAAA;;sBAG5E,SAAS;AAAC,gBAAA,IAAA,EAAA,CAAA,aAAa,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE;;;AEhBxC,MAAO,uBAAwB,SAAQ,cAA4C,CAAA;AAPzF,IAAA,WAAA,GAAA;;AAQW,QAAA,IAAA,CAAA,cAAc,GAAG;AACxB,YAAA,KAAK,EAAE;AACL,gBAAA,OAAO,EAAE;AACV,aAAA;SACF;AACF,IAAA;8GANY,uBAAuB,EAAA,IAAA,EAAA,IAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;AAAvB,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,uBAAuB,mGCjBpC,8vCAoCM,EAAA,MAAA,EAAA,CAAA,kZAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EDrBQ,YAAY,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAH,IAAA,CAAA,iBAAA,EAAA,QAAA,EAAA,cAAA,EAAA,EAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EAAE,aAAa,mLAAE,eAAe,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,SAAA,EAAA,QAAA,EAAA,iOAAA,EAAA,MAAA,EAAA,CAAA,WAAA,CAAA,EAAA,QAAA,EAAA,CAAA,WAAA,EAAA,WAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,aAAA,EAAA,QAAA,EAAA,sFAAA,EAAA,QAAA,EAAA,CAAA,WAAA,EAAA,WAAA,CAAA,EAAA,CAAA,EAAA,eAAA,EAAA,EAAA,CAAA,uBAAA,CAAA,MAAA,EAAA,CAAA,CAAA;;2FAE7C,uBAAuB,EAAA,UAAA,EAAA,CAAA;kBAPnC,SAAS;+BACI,kBAAkB,EAAA,eAAA,EAGX,uBAAuB,CAAC,MAAM,EAAA,OAAA,EACtC,CAAC,YAAY,EAAE,aAAa,EAAE,eAAe,CAAC,EAAA,QAAA,EAAA,8vCAAA,EAAA,MAAA,EAAA,CAAA,kZAAA,CAAA,EAAA;;;AEqBrD,MAAO,uBAAwB,SAAQ,SAAuC,CAAA;AAqBhF,IAAA,WAAA,GAAA;AACI,QAAA,KAAK,EAAE;AArBF,QAAA,IAAA,CAAA,cAAc,GAAG;AACtB,YAAA,KAAK,EAAE;AACH,gBAAA,MAAM,EAAE,IAAI;AACZ,gBAAA,OAAO,EAAE,KAAK;AACd,gBAAA,qBAAqB,EAAE;AAC1B,aAAA;SACJ;AAID,QAAA,IAAA,CAAA,qBAAqB,GAAyB,IAAI,aAAa,CAAQ,CAAC,CAAC;QACzE,IAAA,CAAA,aAAa,GAAU,EAAE;QACzB,IAAA,CAAA,eAAe,GAAG,KAAK;QACvB,IAAA,CAAA,SAAS,GAAG,KAAK;AACjB,QAAA,IAAA,CAAA,eAAe,GAAgB,IAAI,WAAW,CAAS,EAAE,CAAC;AAElD,QAAA,IAAA,CAAA,KAAK,GAAG,MAAM,CAAC,UAAU,CAAC;QAC1B,IAAA,CAAA,QAAQ,GAAO,EAAE;AACjB,QAAA,IAAA,CAAA,eAAe,GAAkB,IAAI,OAAO,EAAQ;IAI5D;AAEA,IAAA,IAAI,KAAK,GAAA;QACL,IAAI,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,EAAE,OAAO,CAAC,EAAE;YACpC,OAAO,IAAI,CAAC,QAAQ,EAAE,MAAM,GAAG,CAAC,GAAG,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,KAAK,CAAC,KAAK,EAAE,OAAO,IAAI,EAAE;QACtF;aAAO;YACH,OAAO,IAAI,CAAC,QAAQ,EAAE,MAAM,GAAG,CAAC,GAAG,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,WAAW,IAAI,EAAE;QAC7E;IACJ;IAEA,QAAQ,GAAA;QACJ,IAAI,IAAI,CAAC,KAAK,CAAC,KAAK,EAAE,OAAO,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,EAAE,OAAO,CAAC,EAAE;YAClE,IAAI,CAAC,KAAK,CAAC,KAAK,EAAE,OAAO,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC,CAAC,SAAS,CACrE,CAAC,IAAI,KAAI;AACL,gBAAA,IAAI,CAAC,WAAW,GAAG,IAAI;AAC3B,YAAA,CAAC,CACJ;QACL;QAEA,MAAM,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC,KAAK,EAAE,MAAM,EAAE,GAAG;AACzC,QAAA,IAAI,GAAG,IAAI,IAAI,CAAC,KAAK,CAAC,KAAK,EAAE,MAAM,EAAE,IAAI,IAAI,IAAI,CAAC,KAAK,CAAC,KAAK,EAAE,MAAM,EAAE,GAAG,IAAI,IAAI,CAAC,KAAK,CAAC,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE;YAC3G,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC,CAAC,SAAS,CAC/D,CAAC,IAAS,KAAI;gBACV,IAAI,IAAI,EAAE;oBACN,MAAM,KAAK,GAAG,IAAI,CAAC,MAAM,CAAC,CAAC,CAAM,KAAI;wBACjC,IAAI,IAAI,CAAC,KAAK,CAAC,KAAK,EAAE,MAAM,EAAE,GAAG;4BAC7B,OAAO,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,EAAE,MAAM,EAAE,GAAG,CAAC,KAAK,IAAI,CAAC,KAAK,CAAC,KAAK,EAAE,MAAM,EAAE,IAAI;AAE9E,wBAAA,OAAO,KAAK;AAChB,oBAAA,CAAC,CACA;AACD,oBAAA,IAAI,KAAK,IAAI,IAAI,CAAC,KAAK,CAAC,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE;AAC1C,wBAAA,IAAI,CAAC,QAAQ,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,EAAE,MAAM,EAAE,KAAK,CAAC;oBAE7D;yBAAO;AACH,wBAAA,IAAI,CAAC,QAAQ,GAAG,EAAE;oBACtB;gBAEJ;qBAAO;AACH,oBAAA,IAAI,CAAC,QAAQ,GAAG,EAAE;gBACtB;gBACA,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC,KAAK,CAAC,KAAK,EAAE;gBACvC,IAAI,CAAC,qBAAqB,CAAC,IAAI,CAAC,IAAI,CAAC,aAAa,CAAC;AACvD,YAAA,CAAC,CACJ;QACL;aAAO;AACH,YAAA,IAAI,CAAC,QAAQ,GAAG,EAAE;YAClB,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC,KAAK,CAAC,KAAK,EAAE;YACvC,IAAI,CAAC,qBAAqB,CAAC,IAAI,CAAC,IAAI,CAAC,aAAa,CAAC;QACvD;AAEA,QAAA,EAAE,CAAC,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,eAAe,CAAC;AACvD,aAAA,SAAS,CAAC,CAAC,QAAQ,KAAI;YACpB,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC,IAAI,QAAQ,EAAE;gBACtF,MAAM,KAAK,GAAG,CAAC,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC;AAEtC,gBAAA,IAAI,CAAC,WAAW,CAAC,QAAQ,CAAC,KAAK,CAAC;YACpC;AACJ,QAAA,CAAC,CAAC;QAEN,IAAI,CAAC,eAAe,CAAC;AAChB,aAAA,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,eAAe,CAAC;aACpC,SAAS,CAAC,MAAK;YACZ,IAAI,CAAC,WAAW,EAAE;AAElB,YAAA,IAAI,IAAI,CAAC,KAAK,CAAC,QAAQ;gBACnB,IAAI,CAAC,yBAAyB,EAAE;AACxC,QAAA,CAAC,CAAC;QAEN,IAAI,CAAC,WAAW,CAAC;AACZ,aAAA,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,eAAe,CAAC;aACpC,SAAS,CAAC,MAAK;AACZ,YAAA,IAAI,IAAI,CAAC,KAAK,CAAC,QAAQ;gBACnB,IAAI,CAAC,yBAAyB,EAAE;AACxC,QAAA,CAAC,CAAC;IACV;IAEA,WAAW,GAAA;QACP,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC;AACnC,QAAA,IAAI,CAAC,eAAe,CAAC,QAAQ,EAAE;IACnC;IAEA,iBAAiB,GAAA;QACb,IAAI,IAAI,CAAC,KAAK,CAAC,UAAU,GAAG,iBAAiB,CAAC,EAAE;YAC5C,OAAO,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC,iBAAiB,CAAW;QAC7D;AAEA,QAAA,OAAO,IAAI,CAAC,SAAS,EAAE,QAAQ;IACnC;IAEA,YAAY,GAAA;QACR,OAAO,IAAI,CAAC,KAAK,CAAC,UAAU,GAAG,YAAY,CAAW;IAC1D;AAEA,IAAA,eAAe,CAAC,cAAuB,EAAA;AACnC,QAAA,IAAI,CAAC,qBAAqB,CAAC,IAAI,CAC3B,IAAI,CAAC,CAAC,CAAC,EACP,SAAS,CAAC,IAAI,CAAC,eAAe,CAAC;AAE9B,aAAA,SAAS,CAAC,CAAC,GAAG,KAAI;YACf,IAAI,cAAc,EAAE;AAChB,gBAAA,IAAI,CAAC,WAAW,CAAC,QAAQ,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC;YAC3D;iBAAO;AACH,gBAAA,IAAI,CAAC,WAAW,CAAC,QAAQ,CAAC,EAAE,CAAC;YACjC;AACA,YAAA,IAAI,CAAC,WAAW,CAAC,WAAW,EAAE;AAClC,QAAA,CAAC,CAAC;IACV;IAEA,WAAW,GAAA;AACP,QAAA,IAAI,CAAC,IAAI,CAAC,KAAK,EAAE;YACb;QACJ;AAEA,QAAA,IAAI,MAAM,GAAG,IAAI,CAAC,eAAe,CAAC,KAAK;QACvC,IAAI,CAAC,MAAM,EAAE;YACT,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC,KAAK,CAAC,KAAK,EAAE;YACvC,IAAI,CAAC,qBAAqB,CAAC,IAAI,CAAC,IAAI,CAAC,aAAa,CAAC;YACnD;QACJ;aAAO;AACH,YAAA,MAAM,GAAG,MAAM,CAAC,WAAW,EAAE;QACjC;AAEA,QAAA,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,KAAK,IAAI,QAAQ,CAAC,KAAK,CAAC,GAAG,KAAK,CAAC,QAAQ,EAAE,CAAC,WAAW,EAAE,CAAC,QAAQ,CAAC,MAAM,CAAC,IAAI,KAAK,EAAE,KAAK,CAAC,QAAQ,EAAE,CAAC,WAAW,EAAE,CAAC,QAAQ,CAAC,MAAM,CAAC,IAAI,KAAK,EAAE,KAAK,CAAC,QAAQ,EAAE,CAAC,WAAW,EAAE,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC;QACvO,IAAI,CAAC,qBAAqB,CAAC,IAAI,CAAC,IAAI,CAAC,aAAa,CAAC;IACvD;IAEA,yBAAyB,GAAA;QACrB,IAAI,cAAc,GAAG,CAAC;AACtB,QAAA,IAAI,IAAI,CAAC,WAAW,CAAC,KAAK,IAAI,IAAI,CAAC,KAAK,CAAC,MAAM,EAAE;AAC7C,YAAA,MAAM,KAAK,GAAG,IAAI,CAAC,aAAa,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,QAAQ,CAAC;AAEzD,YAAA,MAAM,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC,IAAI,WAAW,CAAC,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC,GAAG,IAAI,CAAC,WAAW,CAAC,KAAK,GAAG,CAAC,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC;AACpI,YAAA,IAAI,CAAC;AACD,gBAAA,KAAK,CAAC,OAAO,CAAC,CAAC,EAAE,KAAI;oBACjB,IAAI,CAAC,CAAC,SAAS,CAAC,CAAC,CAAM,KAAK,QAAQ,CAAC,CAAC,CAAC,GAAG,EAAE,KAAK,CAAC,IAAI,CAAC,EAAE,KAAK,KAAK,EAAE,CAAC,KAAK,IAAI,CAAC,EAAE,KAAK,KAAK,EAAE,CAAC,KAAK,CAAC,CAAC,GAAG,CAAC,CAAC,EAAE;AACzG,wBAAA,cAAc,EAAE;oBACpB;AACJ,gBAAA,CAAC,CAAC;AAEN,YAAA,IAAI,CAAC,eAAe,GAAG,cAAc,GAAG,CAAC,IAAI,cAAc,GAAG,KAAK,CAAC,MAAM;AAC1E,YAAA,IAAI,CAAC,SAAS,GAAG,cAAc,GAAG,CAAC,IAAI,cAAc,KAAK,KAAK,CAAC,MAAM;QAC1E;aAAO;AACH,YAAA,IAAI,CAAC,eAAe,GAAG,KAAK;AAC5B,YAAA,IAAI,CAAC,SAAS,GAAG,KAAK;QAC1B;IACJ;IAEA,aAAa,CAAC,EAAO,EAAE,EAAO,EAAA;QAC1B,OAAO,EAAE,IAAI,EAAE,GAAG,EAAE,EAAE,KAAK,KAAK,EAAE,EAAE,KAAK,IAAI,EAAE,EAAE,KAAK,KAAK,EAAE,EAAE,KAAK,GAAG,EAAE,KAAK,EAAE;IACpF;8GA7KS,uBAAuB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;kGAAvB,uBAAuB,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,yBAAA,EAAA,eAAA,EAAA,IAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,ECpCpC,w0GA4EC,EAAA,MAAA,EAAA,CAAA,qBAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,ED1Ca,iBAAiB,EAAA,EAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EAAE,eAAe,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,SAAA,EAAA,QAAA,EAAA,YAAA,EAAA,MAAA,EAAA,CAAA,kBAAA,EAAA,YAAA,EAAA,UAAA,EAAA,eAAA,EAAA,UAAA,EAAA,8BAAA,EAAA,aAAA,EAAA,UAAA,EAAA,UAAA,EAAA,wBAAA,EAAA,aAAA,EAAA,OAAA,EAAA,YAAA,EAAA,iBAAA,EAAA,mBAAA,EAAA,2BAAA,EAAA,gBAAA,EAAA,IAAA,EAAA,YAAA,EAAA,0BAAA,CAAA,EAAA,OAAA,EAAA,CAAA,cAAA,EAAA,QAAA,EAAA,QAAA,EAAA,iBAAA,EAAA,aAAA,CAAA,EAAA,QAAA,EAAA,CAAA,WAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,SAAA,EAAA,QAAA,EAAA,YAAA,EAAA,MAAA,EAAA,CAAA,OAAA,EAAA,IAAA,EAAA,UAAA,CAAA,EAAA,OAAA,EAAA,CAAA,mBAAA,CAAA,EAAA,QAAA,EAAA,CAAA,WAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,WAAA,EAAA,QAAA,EAAA,cAAA,EAAA,MAAA,EAAA,CAAA,OAAA,EAAA,UAAA,CAAA,EAAA,QAAA,EAAA,CAAA,aAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAE,yBAAyB,EAAA,QAAA,EAAA,oBAAA,EAAA,MAAA,EAAA,CAAA,kBAAA,EAAA,MAAA,EAAA,qBAAA,EAAA,kBAAA,EAAA,kBAAA,EAAA,WAAA,EAAA,qBAAA,EAAA,4BAAA,EAAA,8BAAA,EAAA,uCAAA,EAAA,WAAA,EAAA,uBAAA,EAAA,0BAAA,EAAA,gCAAA,EAAA,iCAAA,EAAA,kCAAA,EAAA,uBAAA,EAAA,mCAAA,CAAA,EAAA,OAAA,EAAA,CAAA,WAAA,CAAA,EAAA,QAAA,EAAA,CAAA,kBAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EAAE,mBAAmB,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAE,IAAA,CAAA,eAAA,EAAA,QAAA,EAAA,2CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,iBAAA,EAAA,QAAA,EAAA,wIAAA,EAAA,MAAA,EAAA,CAAA,UAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,oBAAA,EAAA,QAAA,EAAA,eAAA,EAAA,MAAA,EAAA,CAAA,aAAA,EAAA,UAAA,EAAA,SAAA,CAAA,EAAA,OAAA,EAAA,CAAA,eAAA,CAAA,EAAA,QAAA,EAAA,CAAA,QAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,MAAA,EAAA,IAAA,EAAE,SAAS,EAAA,IAAA,EAAA,OAAA,EAAA,CAAA,EAAA,eAAA,EAAA,EAAA,CAAA,uBAAA,CAAA,MAAA,EAAA,CAAA,CAAA;;2FAE9F,uBAAuB,EAAA,UAAA,EAAA,CAAA;kBAPnC,SAAS;AACI,YAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,yBAAyB,EAAA,eAAA,EAGlB,uBAAuB,CAAC,MAAM,WACtC,CAAC,iBAAiB,EAAE,eAAe,EAAE,yBAAyB,EAAE,mBAAmB,EAAE,SAAS,CAAC,EAAA,QAAA,EAAA,w0GAAA,EAAA,MAAA,EAAA,CAAA,qBAAA,CAAA,EAAA;;;AEFtG,MAAO,2BAA4B,SAAQG,WAA2C,CAAA;AAiBxF,IAAA,WAAA,GAAA;AACI,QAAA,KAAK,EAAE;AAjBF,QAAA,IAAA,CAAA,cAAc,GAAG;AACtB,YAAA,KAAK,EAAE;AACH,gBAAA,QAAQ,EAAE,KAAK;AACf,gBAAA,MAAM,EAAE,IAAI;AACZ,gBAAA,OAAO,EAAE,KAAK;AACd,gBAAA,qBAAqB,EAAE,KAAK;AAC5B,gBAAA,UAAU,EAAE,IAAI;AAChB,gBAAA,0BAA0B,EAAE;AAC/B,aAAA;SACJ;QACD,IAAA,CAAA,OAAO,GAAO,EAAE;AAER,QAAA,IAAA,CAAA,KAAK,GAAG,MAAM,CAAC,UAAU,CAAC;AAC1B,QAAA,IAAA,CAAA,kBAAkB,GAAG,MAAM,CAAC,iBAAiB,CAAC;AAC9C,QAAA,IAAA,CAAA,eAAe,GAAkB,IAAI,OAAO,EAAQ;IAI5D;IAEA,QAAQ,GAAA;QACJ,MAAM,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC,KAAK,EAAE,MAAM,EAAE,GAAG;AACzC,QAAA,IAAI,GAAG,IAAI,IAAI,CAAC,KAAK,CAAC,KAAK,EAAE,MAAM,EAAE,IAAI,IAAI,IAAI,CAAC,KAAK,CAAC,KAAK,EAAE,MAAM,EAAE,GAAG,IAAI,IAAI,CAAC,KAAK,CAAC,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE;YAC3G,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC,CAAC,SAAS,CAC/D,CAAC,IAAS,KAAI;gBACV,IAAI,IAAI,EAAE;oBACN,MAAM,KAAK,GAAG,IAAI,CAAC,MAAM,CAAC,CAAC,CAAM,KAAI;wBACjC,IAAI,IAAI,CAAC,KAAK,CAAC,KAAK,EAAE,MAAM,EAAE,GAAG;4BAC7B,OAAO,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,EAAE,MAAM,EAAE,GAAG,CAAC,KAAK,IAAI,CAAC,KAAK,CAAC,KAAK,EAAE,MAAM,EAAE,IAAI;AAE9E,wBAAA,OAAO,KAAK;AAChB,oBAAA,CAAC,CACA;AACD,oBAAA,IAAI,KAAK,IAAI,IAAI,CAAC,KAAK,CAAC,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE;AAC1C,wBAAA,IAAI,CAAC,OAAO,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,EAAE,MAAM,EAAE,KAAK,CAAC;oBAC5D;yBAAO;AACH,wBAAA,IAAI,CAAC,OAAO,GAAG,EAAE;oBACrB;gBACJ;qBAAO;AACH,oBAAA,IAAI,CAAC,OAAO,GAAG,EAAE;gBACrB;AAEA,gBAAA,IAAI,CAAC,kBAAkB,CAAC,YAAY,EAAE;AAC1C,YAAA,CAAC,CACJ;QACL;aAAO;AACH,YAAA,IAAI,CAAC,OAAO,GAAG,EAAE;AAEjB,YAAA,IAAI,CAAC,kBAAkB,CAAC,YAAY,EAAE;QAC1C;IACJ;IAEA,WAAW,GAAA;QACP,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;AACjC,QAAA,IAAI,CAAC,eAAe,CAAC,QAAQ,EAAE;IACnC;8GAxDS,2BAA2B,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;AAA3B,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,2BAA2B,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,uBAAA,EAAA,eAAA,EAAA,IAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,EChCxC,8aAGyE,EAAA,MAAA,EAAA,CAAA,qBAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,ED2B3D,mBAAmB,6hBAAE,uBAAuB,EAAA,QAAA,EAAA,kBAAA,EAAA,MAAA,EAAA,CAAA,IAAA,EAAA,YAAA,EAAA,qBAAA,EAAA,kBAAA,EAAA,UAAA,EAAA,sBAAA,EAAA,SAAA,EAAA,sBAAA,EAAA,4BAAA,EAAA,YAAA,EAAA,uBAAA,EAAA,aAAA,EAAA,aAAA,EAAA,OAAA,EAAA,UAAA,EAAA,UAAA,CAAA,EAAA,QAAA,EAAA,CAAA,gBAAA,CAAA,EAAA,CAAA,EAAA,eAAA,EAAA,EAAA,CAAA,uBAAA,CAAA,MAAA,EAAA,CAAA,CAAA;;2FAE7C,2BAA2B,EAAA,UAAA,EAAA,CAAA;kBAPvC,SAAS;+BACI,uBAAuB,EAAA,eAAA,EAGhB,uBAAuB,CAAC,MAAM,WACtC,CAAC,mBAAmB,EAAE,uBAAuB,CAAC,EAAA,QAAA,EAAA,8aAAA,EAAA,MAAA,EAAA,CAAA,qBAAA,CAAA,EAAA;;;AEArD,MAAO,4BAA6B,SAAQA,WAA4C,CAAA;AAe1F,IAAA,WAAA,GAAA;AACI,QAAA,KAAK,EAAE;AAfF,QAAA,IAAA,CAAA,cAAc,GAAG;AACtB,YAAA,KAAK,EAAE;AACH,gBAAA,QAAQ,EAAE,KAAK;AACf,gBAAA,MAAM,EAAE,IAAI;AACZ,gBAAA,OAAO,EAAE,KAAK;AACd,gBAAA,0BAA0B,EAAE;AAC/B,aAAA;SACJ;QACD,IAAA,CAAA,OAAO,GAAkD,EAAE,OAAO,EAAE,EAAE,EAAE,IAAI,EAAE,EAAE,EAAE;AAE1E,QAAA,IAAA,CAAA,KAAK,GAAG,MAAM,CAAC,UAAU,CAAC;AAC1B,QAAA,IAAA,CAAA,kBAAkB,GAAG,MAAM,CAAC,iBAAiB,CAAC;AAC9C,QAAA,IAAA,CAAA,eAAe,GAAkB,IAAI,OAAO,EAAQ;IAI5D;IAEA,QAAQ,GAAA;QACJ,MAAM,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC,KAAK,EAAE,MAAM,EAAE,GAAG;AACzC,QAAA,IAAI,GAAG,IAAI,IAAI,CAAC,KAAK,CAAC,KAAK,EAAE,MAAM,EAAE,IAAI,IAAI,IAAI,CAAC,KAAK,CAAC,KAAK,EAAE,MAAM,EAAE,GAAG,IAAI,IAAI,CAAC,KAAK,CAAC,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE;YAC3G,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC,CAAC,SAAS,CAC/D,CAAC,IAAS,KAAI;gBACV,IAAI,IAAI,EAAE;oBACN,MAAM,KAAK,GAAG,IAAI,CAAC,MAAM,CAAC,CAAC,CAAM,KAAI;wBACjC,IAAI,IAAI,CAAC,KAAK,CAAC,KAAK,EAAE,MAAM,EAAE,GAAG;4BAC7B,OAAO,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,EAAE,MAAM,EAAE,GAAG,CAAC,KAAK,IAAI,CAAC,KAAK,CAAC,KAAK,EAAE,MAAM,EAAE,IAAI;AAE9E,wBAAA,OAAO,KAAK;AAChB,oBAAA,CAAC,CACA;AACD,oBAAA,IAAI,KAAK,IAAI,IAAI,CAAC,KAAK,CAAC,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE;AAC1C,wBAAA,IAAI,CAAC,OAAO,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,EAAE,MAAM,EAAE,KAAK,CAAC;oBAC5D;yBAAO;AACH,wBAAA,IAAI,CAAC,OAAO,GAAG,EAAE,OAAO,EAAE,EAAE,EAAE,IAAI,EAAE,EAAE,EAAE;oBAC5C;gBACJ;qBAAO;AACH,oBAAA,IAAI,CAAC,OAAO,GAAG,EAAE,OAAO,EAAE,EAAE,EAAE,IAAI,EAAE,EAAE,EAAE;gBAC5C;AAEA,gBAAA,IAAI,CAAC,kBAAkB,CAAC,YAAY,EAAE;AAC1C,YAAA,CAAC,CACJ;QACL;aAAO;AACH,YAAA,IAAI,CAAC,OAAO,GAAG,EAAE,OAAO,EAAE,EAAE,EAAE,IAAI,EAAE,EAAE,EAAE;AAExC,YAAA,IAAI,CAAC,kBAAkB,CAAC,YAAY,EAAE;QAC1C;IACJ;IAEA,WAAW,GAAA;QACP,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;AACjC,QAAA,IAAI,CAAC,eAAe,CAAC,QAAQ,EAAE;IACnC;8GAtDS,4BAA4B,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;AAA5B,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,4BAA4B,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,wBAAA,EAAA,eAAA,EAAA,IAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,EC9BzC,+UAEsG,EAAA,MAAA,EAAA,CAAA,qBAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,ED0BxF,mBAAmB,6hBAAE,wBAAwB,EAAA,QAAA,EAAA,mBAAA,EAAA,MAAA,EAAA,CAAA,IAAA,EAAA,YAAA,EAAA,qBAAA,EAAA,kBAAA,EAAA,SAAA,EAAA,UAAA,EAAA,sBAAA,EAAA,sBAAA,EAAA,iBAAA,EAAA,oBAAA,EAAA,sBAAA,EAAA,kBAAA,EAAA,4BAAA,EAAA,SAAA,EAAA,aAAA,EAAA,mBAAA,EAAA,UAAA,EAAA,aAAA,EAAA,aAAA,EAAA,OAAA,EAAA,UAAA,EAAA,UAAA,CAAA,EAAA,OAAA,EAAA,CAAA,QAAA,CAAA,EAAA,QAAA,EAAA,CAAA,iBAAA,CAAA,EAAA,CAAA,EAAA,eAAA,EAAA,EAAA,CAAA,uBAAA,CAAA,MAAA,EAAA,CAAA,CAAA;;2FAE9C,4BAA4B,EAAA,UAAA,EAAA,CAAA;kBAPxC,SAAS;+BACI,wBAAwB,EAAA,eAAA,EAGjB,uBAAuB,CAAC,MAAM,WACtC,CAAC,mBAAmB,EAAE,wBAAwB,CAAC,EAAA,QAAA,EAAA,+UAAA,EAAA,MAAA,EAAA,CAAA,qBAAA,CAAA,EAAA;;;AEbtD,MAAO,kCAAmC,SAAQA,WAAwC,CAAA;AAC5F,IAAA,OAAO,CAAC,KAAwB,EAAA;AAC5B,QAAA,IAAI,KAAK,CAAC,GAAG,EAAE;YACX,IAAI,KAAK,CAAC,WAAW;AACjB,gBAAA,OAAO,KAAK,CAAC,WAAW,CAAC,KAAK;AAElC,YAAA,OAAO,IAAI;QACf;QAEA,OAAO,KAAK,CAAC,UAAU,GAAG,KAAK,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC,IAAI,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,GAAG,IAAI;IACjF;8GAVS,kCAAkC,EAAA,IAAA,EAAA,IAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;kGAAlC,kCAAkC,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,8BAAA,EAAA,eAAA,EAAA,IAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,ECf/C,6zCA6ByB,EAAA,MAAA,EAAA,CAAA,qBAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EDhBX,YAAY,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAL,IAAA,CAAA,iBAAA,EAAA,QAAA,EAAA,cAAA,EAAA,EAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EAAE,gBAAgB,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAE,IAAA,CAAA,OAAA,EAAA,QAAA,EAAA,UAAA,EAAA,MAAA,EAAA,CAAA,OAAA,CAAA,EAAA,QAAA,EAAA,CAAA,SAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,YAAA,EAAA,QAAA,EAAA,gBAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,UAAA,EAAA,QAAA,EAAA,yEAAA,EAAA,MAAA,EAAA,CAAA,eAAA,EAAA,OAAA,EAAA,eAAA,EAAA,gBAAA,EAAA,cAAA,EAAA,mBAAA,CAAA,EAAA,OAAA,EAAA,CAAA,eAAA,CAAA,EAAA,QAAA,EAAA,CAAA,YAAA,EAAA,oBAAA,EAAA,sBAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,cAAA,EAAA,QAAA,EAAA,wBAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,kBAAA,EAAA,QAAA,EAAA,4BAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,cAAA,EAAA,QAAA,EAAA,6BAAA,EAAA,MAAA,EAAA,CAAA,gBAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EAAE,eAAe,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,SAAA,EAAA,QAAA,EAAA,iOAAA,EAAA,MAAA,EAAA,CAAA,WAAA,CAAA,EAAA,QAAA,EAAA,CAAA,WAAA,EAAA,WAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EAAE,mBAAmB,EAAA,EAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EAAE,aAAa,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAK,EAAA,CAAA,OAAA,EAAA,QAAA,EAAA,UAAA,EAAA,MAAA,EAAA,CAAA,OAAA,EAAA,QAAA,EAAA,SAAA,EAAA,SAAA,EAAA,UAAA,CAAA,EAAA,QAAA,EAAA,CAAA,SAAA,CAAA,EAAA,CAAA,EAAA,eAAA,EAAA,EAAA,CAAA,uBAAA,CAAA,MAAA,EAAA,CAAA,CAAA;;2FAEpF,kCAAkC,EAAA,UAAA,EAAA,CAAA;kBAP9C,SAAS;AACI,YAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,8BAA8B,EAAA,eAAA,EAGvB,uBAAuB,CAAC,MAAM,WACtC,CAAC,YAAY,EAAE,gBAAgB,EAAE,eAAe,EAAE,mBAAmB,EAAE,aAAa,CAAC,EAAA,QAAA,EAAA,6zCAAA,EAAA,MAAA,EAAA,CAAA,qBAAA,CAAA,EAAA;;;AEE5F,MAAO,gCAAiC,SAAQF,WAAwC,CAAA;AAC1F,IAAA,OAAO,CAAC,KAAwB,EAAA;AAC5B,QAAA,IAAI,KAAK,CAAC,GAAG,EAAE;YACX,IAAI,KAAK,CAAC,WAAW;AACjB,gBAAA,OAAO,KAAK,CAAC,WAAW,CAAC,KAAK;AAElC,YAAA,OAAO,IAAI;QACf;QAEA,OAAO,KAAK,CAAC,UAAU,GAAG,KAAK,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC,IAAI,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,GAAG,IAAI;IACjF;8GAVS,gCAAgC,EAAA,IAAA,EAAA,IAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;kGAAhC,gCAAgC,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,4BAAA,EAAA,eAAA,EAAA,IAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,ECf7C,mzCA4BuB,EAAA,MAAA,EAAA,CAAA,qBAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EDfT,YAAY,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAL,IAAA,CAAA,iBAAA,EAAA,QAAA,EAAA,cAAA,EAAA,EAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EAAE,gBAAgB,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAE,IAAA,CAAA,OAAA,EAAA,QAAA,EAAA,UAAA,EAAA,MAAA,EAAA,CAAA,OAAA,CAAA,EAAA,QAAA,EAAA,CAAA,SAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,YAAA,EAAA,QAAA,EAAA,gBAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,UAAA,EAAA,QAAA,EAAA,yEAAA,EAAA,MAAA,EAAA,CAAA,eAAA,EAAA,OAAA,EAAA,eAAA,EAAA,gBAAA,EAAA,cAAA,EAAA,mBAAA,CAAA,EAAA,OAAA,EAAA,CAAA,eAAA,CAAA,EAAA,QAAA,EAAA,CAAA,YAAA,EAAA,oBAAA,EAAA,sBAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,cAAA,EAAA,QAAA,EAAA,wBAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,kBAAA,EAAA,QAAA,EAAA,4BAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,cAAA,EAAA,QAAA,EAAA,6BAAA,EAAA,MAAA,EAAA,CAAA,gBAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EAAE,eAAe,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,SAAA,EAAA,QAAA,EAAA,iOAAA,EAAA,MAAA,EAAA,CAAA,WAAA,CAAA,EAAA,QAAA,EAAA,CAAA,WAAA,EAAA,WAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EAAE,mBAAmB,EAAA,EAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EAAE,aAAa,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAK,EAAA,CAAA,OAAA,EAAA,QAAA,EAAA,UAAA,EAAA,MAAA,EAAA,CAAA,OAAA,EAAA,QAAA,EAAA,SAAA,EAAA,SAAA,EAAA,UAAA,CAAA,EAAA,QAAA,EAAA,CAAA,SAAA,CAAA,EAAA,CAAA,EAAA,eAAA,EAAA,EAAA,CAAA,uBAAA,CAAA,MAAA,EAAA,CAAA,CAAA;;2FAEpF,gCAAgC,EAAA,UAAA,EAAA,CAAA;kBAP5C,SAAS;AACI,YAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,4BAA4B,EAAA,eAAA,EAGrB,uBAAuB,CAAC,MAAM,WACtC,CAAC,YAAY,EAAE,gBAAgB,EAAE,eAAe,EAAE,mBAAmB,EAAE,aAAa,CAAC,EAAA,QAAA,EAAA,mzCAAA,EAAA,MAAA,EAAA,CAAA,qBAAA,CAAA,EAAA;;;AEqB5F,MAAO,sBAAuB,SAAQ,cAA2C,CAAA;AAwBnF,IAAA,WAAA,GAAA;AACI,QAAA,KAAK,EAAE;AArBX,QAAA,IAAA,CAAA,UAAU,GAAG,IAAI,SAAS,CAAC,EAAE,CAAC;QAC9B,IAAA,CAAA,WAAW,GAAQ,EAAE;QAIrB,IAAA,CAAA,gBAAgB,GAAa,EAAE;QAE/B,IAAA,CAAA,UAAU,GAAwB,EAAE;AAE3B,QAAA,IAAA,CAAA,cAAc,GAAG;AACtB,YAAA,KAAK,EAAE;AACH,gBAAA,OAAO,EAAE;AACZ,aAAA;SACJ;AAEO,QAAA,IAAA,CAAA,kBAAkB,GAAG,MAAM,CAAC,iBAAiB,CAAC;AACrC,QAAA,IAAA,CAAA,OAAO,GAAG,MAAM,CAAC,SAAS,CAAC;AAC3B,QAAA,IAAA,CAAA,iBAAiB,GAAG,MAAM,CAAC,gBAAgB,CAAC;IAK7D;AACA,IAAA,IAAI,UAAU,GAAA;AACV,QAAA,OAAQ,IAAI,CAAC,KAAK,CAAC,UAAgC,CAAC,UAAW;IACnE;AAEA,IAAA,IAAI,GAAG,GAAA;AACH,QAAA,OAAQ,IAAI,CAAC,KAAK,CAAC,UAAgC,CAAC,UAAW,CAAC,CAAC,CAAC,CAAC,EAAG;IAC1E;IAEA,QAAQ,GAAA;AACJ,QAAA,IAAI,CAAC,OAAO,GAAI,IAAI,CAAC,KAAK,CAAC,UAAgC,CAAC,UAAW,CAAC,CAAC,CAAC,CAAC,UAAW;AAClF,YAAA,MAAM,CAAC,KAAK,IAAI,KAAK,CAAC,KAAK,EAAE,UAAU,CAAC,CAAC,GAAG,CAAC,KAAK,KAAK;YACnD,GAAG,EAAE,KAAK,CAAC,GAAa;AACxB,YAAA,KAAK,EAAE,KAAK,CAAC,KAAK,EAAE,KAAK,IAAI,EAAE;AAClC,SAAA,CAAC,CAAC;AAEP,QAAA,IAAI,IAAI,CAAC,KAAK,CAAC,QAAQ,EAAE;YACrB,IAAI,CAAC,gBAAgB,GAAG,CAAC,GAAG,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,MAAM,IAAI,MAAM,CAAC,GAAG,CAAC,CAAC;QACvE;aAAO;YACH,IAAI,CAAC,gBAAgB,GAAG,CAAC,GAAG,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,MAAM,IAAI,MAAM,CAAC,GAAG,CAAC,EAAE,SAAS,CAAC;QAClF;IACJ;IAEA,MAAM,GAAA;AACF,QAAA,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC;AAClB,aAAA,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE;YAClB,UAAU,EAAE,CAAC,6BAA6B,CAAC;YAC3C,gBAAgB,EAAE,IAAI,CAAC;AAC1B,SAAA,CAAC;AACN,QAAA,IAAI,CAAC,UAAU,CAAC,WAAW;AACtB,aAAA,SAAS,CAAC,MAAK,EAAG,IAAI,CAAC,UAAU,GAAG,EAAE,CAAC,CAAC,CAAC,CAAC;AAG/C,QAAA,IAAI,CAAC,UAAU,GAAG,KAAK;AACvB,QAAA,IAAI,CAAC,WAAW,GAAG,EAAE;AACrB,QAAA,IAAI,CAAC,UAAU,CAAC,KAAK,EAAE;IAC3B;IAEA,OAAO,CAAC,IAAS,EAAE,KAAa,EAAA;AAC5B,QAAA,IAAI,CAAC,YAAY,GAAG,KAAK;AAEzB,QAAA,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC;AAClB,aAAA,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE;YAClB,UAAU,EAAE,CAAC,6BAA6B,CAAC;YAC3C,gBAAgB,EAAE,IAAI,CAAC;AAC1B,SAAA,CAAC;AACN,QAAA,IAAI,CAAC,UAAU,CAAC,WAAW;AACtB,aAAA,SAAS,CAAC,MAAK,EAAG,IAAI,CAAC,UAAU,GAAG,EAAE,CAAC,CAAC,CAAC,CAAC;AAE/C,QAAA,IAAI,CAAC,UAAU,GAAG,MAAM;QACxB,IAAI,CAAC,WAAW,GAAG;AACf,YAAA,CAAC,IAAI,CAAC,GAAG,GAAG;SACf;IACL;AAEA,IAAA,SAAS,CAAC,EAAU,EAAA;AAChB,QAAA,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC;AAEf,QAAA,IAAI,CAAC,KAAK,CAAC,UAAU,EAAE;IAC3B;IAEA,OAAO,GAAA;AACH,QAAA,IAAI,IAAI,CAAC,UAAU,CAAC,OAAO,EAAE;AACzB,YAAA,IAAI,CAAC,UAAU,CAAC,gBAAgB,EAAE;YAClC;QACJ;AAEA,QAAA,IAAI,IAAI,CAAC,UAAU,IAAI,KAAK,IAAI,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE;YACxD,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,KAAK,EAAE,MAAM,IAAI,CAAC,EAAE,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;QACjE;AAAO,aAAA,IAAI,IAAI,CAAC,UAAU,IAAI,MAAM,IAAI,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE;AAChE,YAAA,IAAI,CAAC,KAAM,CAAC,IAAI,CAAC,YAAY,CAAC,GAAG,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,GAAG,CAAC;QAC/D;AACA,QAAA,IAAI,CAAC,KAAK,CAAC,UAAU,EAAE;AACvB,QAAA,IAAI,CAAC,kBAAkB,CAAC,YAAY,EAAE;AAEtC,QAAA,IAAI,CAAC,UAAU,CAAC,KAAK,EAAE;IAC3B;8GAtGS,sBAAsB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;kGAAtB,sBAAsB,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,iBAAA,EAAA,WAAA,EAAA,CAAA,EAAA,YAAA,EAAA,WAAA,EAAA,KAAA,EAAA,IAAA,EAAA,SAAA,EAAA,CAAA,WAAA,CAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,EAAA,YAAA,EAAA,OAAA,EAAA,KAAA,EAAA,IAAA,EAAA,SAAA,EAAA,CAAA,OAAA,CAAA,EAAA,WAAA,EAAA,IAAA,EAAA,CAAA,EAAA,eAAA,EAAA,IAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,EClCnC,44HAyFc,EAAA,MAAA,EAAA,CAAA,sEAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,ED1DA,eAAe,0iBAAE,aAAa,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,OAAA,EAAA,QAAA,EAAA,UAAA,EAAA,MAAA,EAAA,CAAA,OAAA,EAAA,QAAA,EAAA,SAAA,EAAA,SAAA,EAAA,UAAA,CAAA,EAAA,QAAA,EAAA,CAAA,SAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EAAE,cAAc,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAJ,IAAA,CAAA,QAAA,EAAA,QAAA,EAAA,6BAAA,EAAA,QAAA,EAAA,CAAA,UAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,gBAAA,EAAA,QAAA,EAAA,oBAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,eAAA,EAAA,QAAA,EAAA,mBAAA,EAAA,MAAA,EAAA,CAAA,iBAAA,EAAA,uBAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,YAAA,EAAA,QAAA,EAAA,gBAAA,EAAA,MAAA,EAAA,CAAA,cAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,UAAA,EAAA,QAAA,EAAA,cAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,SAAA,EAAA,QAAA,EAAA,aAAA,EAAA,MAAA,EAAA,CAAA,kBAAA,EAAA,eAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,aAAA,EAAA,QAAA,EAAA,sCAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,OAAA,EAAA,QAAA,EAAA,wBAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,YAAA,EAAA,QAAA,EAAA,oCAAA,EAAA,QAAA,EAAA,CAAA,cAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,MAAA,EAAA,QAAA,EAAA,sBAAA,EAAA,QAAA,EAAA,CAAA,QAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EAAE,WAAW,mTAAE,YAAY,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAK,IAAA,CAAA,gBAAA,EAAA,QAAA,EAAA,aAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAE,OAAO,EAAA,QAAA,EAAA,WAAA,EAAA,MAAA,EAAA,CAAA,aAAA,EAAA,iBAAA,EAAA,oBAAA,EAAA,iBAAA,EAAA,mBAAA,EAAA,yBAAA,EAAA,iBAAA,EAAA,0BAAA,EAAA,qBAAA,EAAA,yBAAA,EAAA,cAAA,CAAA,EAAA,OAAA,EAAA,CAAA,gBAAA,EAAA,iBAAA,EAAA,cAAA,EAAA,gBAAA,EAAA,eAAA,EAAA,gBAAA,EAAA,cAAA,CAAA,EAAA,QAAA,EAAA,CAAA,SAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EACxF,mBAAmB,iLAAE,eAAe,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,cAAA,EAAA,QAAA,EAAA,sCAAA,EAAA,MAAA,EAAA,CAAA,YAAA,EAAA,MAAA,EAAA,kBAAA,EAAA,gBAAA,CAAA,EAAA,QAAA,EAAA,CAAA,gBAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,cAAA,EAAA,QAAA,EAAA,sCAAA,EAAA,MAAA,EAAA,CAAA,IAAA,CAAA,EAAA,QAAA,EAAA,CAAA,gBAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,gBAAA,EAAA,QAAA,EAAA,8DAAA,EAAA,MAAA,EAAA,CAAA,OAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,gBAAA,EAAA,QAAA,EAAA,8DAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAE,gBAAgB,EAAA,QAAA,EAAA,oBAAA,EAAA,MAAA,EAAA,CAAA,yBAAA,EAAA,kBAAA,EAAA,0BAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EAAE,gBAAgB,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,UAAA,EAAA,QAAA,EAAA,cAAA,EAAA,MAAA,EAAA,CAAA,oBAAA,EAAA,4BAAA,EAAA,oBAAA,EAAA,qBAAA,EAAA,qBAAA,EAAA,yBAAA,EAAA,YAAA,EAAA,iBAAA,CAAA,EAAA,QAAA,EAAA,CAAA,YAAA,CAAA,EAAA,CAAA,EAAA,eAAA,EAAA,EAAA,CAAA,uBAAA,CAAA,MAAA,EAAA,CAAA,CAAA;;2FAEnE,sBAAsB,EAAA,UAAA,EAAA,CAAA;kBARlC,SAAS;AACI,YAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,iBAAiB,mBAGV,uBAAuB,CAAC,MAAM,EAAA,OAAA,EACtC,CAAC,eAAe,EAAE,aAAa,EAAE,cAAc,EAAE,WAAW,EAAE,YAAY,EAAE,OAAO;AACxF,wBAAA,mBAAmB,EAAE,eAAe,EAAE,gBAAgB,EAAE,gBAAgB,CAAC,EAAA,QAAA,EAAA,44HAAA,EAAA,MAAA,EAAA,CAAA,sEAAA,CAAA,EAAA;;sBAG5E,SAAS;uBAAC,WAAW;;sBACrB,SAAS;uBAAC,OAAO;;;AExBhB,MAAO,oBAAqB,SAAQH,WAA0B,CAAA;8GAAvD,oBAAoB,EAAA,IAAA,EAAA,IAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;AAApB,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,oBAAoB,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,eAAA,EAAA,eAAA,EAAA,IAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,ECZjC,wVAQgB,EAAA,MAAA,EAAA,CAAA,qBAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EDEF,aAAa,wqBAAE,YAAY,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAH,IAAA,CAAA,iBAAA,EAAA,QAAA,EAAA,cAAA,EAAA,CAAA,EAAA,eAAA,EAAA,EAAA,CAAA,uBAAA,CAAA,MAAA,EAAA,CAAA,CAAA;;2FAE5B,oBAAoB,EAAA,UAAA,EAAA,CAAA;kBAPhC,SAAS;+BACI,eAAe,EAAA,eAAA,EAGR,uBAAuB,CAAC,MAAM,WACtC,CAAC,aAAa,EAAE,YAAY,CAAC,EAAA,QAAA,EAAA,wVAAA,EAAA,MAAA,EAAA,CAAA,qBAAA,CAAA,EAAA;;;AEmBpC,MAAO,qBAAsB,SAAQ,SAAqC,CAAA;AAe5E,IAAA,WAAA,GAAA;AACI,QAAA,KAAK,EAAE;AATH,QAAA,IAAA,CAAA,KAAK,GAAG,MAAM,CAAC,UAAU,CAAC;AAC1B,QAAA,IAAA,CAAA,QAAQ,GAAG,MAAM,CAAC,OAAO,CAAC;AAC1B,QAAA,IAAA,CAAA,iBAAiB,GAAG,MAAM,CAAC,gBAAgB,CAAC;AAC5C,QAAA,IAAA,CAAA,kBAAkB,GAAG,MAAM,CAAC,iBAAiB,CAAC;AAC9C,QAAA,IAAA,CAAA,cAAc,GAAkC,IAAI,eAAe,CAAe,IAAI,CAAC;AAEvF,QAAA,IAAA,CAAA,eAAe,GAAiB,IAAI,OAAO,EAAO;IAI1D;AAEA,IAAA,IAAI,cAAc,GAAA;AACd,QAAA,OAAO,IAAI,CAAC,cAAc,CAAC,YAAY,EAAE;IAC7C;AAEA,IAAA,IAAI,IAAI,GAAA;QACJ,IAAI,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,EAAE,OAAO,CAAC,EAAE;YACpC,OAAO,IAAI,CAAC,OAAO,EAAE,MAAM,GAAG,CAAC,GAAG,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC,KAAK,EAAE,OAAO,IAAI,EAAE;QACpF;aAAO;YACH,OAAO,IAAI,CAAC,OAAO,EAAE,MAAM,GAAG,CAAC,GAAG,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC,WAAW,IAAI,EAAE;QAC3E;IACJ;IAEA,QAAQ,GAAA;QACJ,IAAI,IAAI,CAAC,KAAK,CAAC,KAAK,EAAE,OAAO,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,EAAE,OAAO,CAAC,EAAE;YAClE,IAAI,CAAC,KAAK,CAAC,KAAK,EAAE,OAAO,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC,CAAC,SAAS,CACrE,CAAC,IAAI,KAAI;AACL,gBAAA,IAAI,CAAC,WAAW,GAAG,IAAI;AAC3B,YAAA,CAAC,CACJ;QACL;QACA,MAAM,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC,KAAK,EAAE,MAAM,EAAE,GAAG;AACzC,QAAA,IAAI,GAAG,IAAI,IAAI,CAAC,KAAK,CAAC,KAAK,EAAE,MAAM,EAAE,IAAI,IAAI,IAAI,CAAC,KAAK,CAAC,KAAK,EAAE,MAAM,EAAE,GAAG,IAAI,IAAI,CAAC,KAAK,CAAC,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE;YAC3G,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC,CAAC,SAAS,CAC/D,CAAC,IAAS,KAAI;gBACV,IAAI,IAAI,EAAE;oBACN,MAAM,KAAK,GAAG,IAAI,CAAC,MAAM,CAAC,CAAC,CAAM,KAAI;wBACjC,IAAI,IAAI,CAAC,KAAK,CAAC,KAAK,EAAE,MAAM,EAAE,GAAG;4BAC7B,OAAO,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,EAAE,MAAM,EAAE,GAAG,CAAC,KAAK,IAAI,CAAC,KAAK,CAAC,KAAK,EAAE,MAAM,EAAE,IAAI;AAE9E,wBAAA,OAAO,KAAK;AAChB,oBAAA,CAAC,CACA;AACD,oBAAA,IAAI,KAAK,IAAI,IAAI,CAAC,KAAK,CAAC,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE;AAC1C,wBAAA,IAAI,CAAC,OAAO,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,EAAE,MAAM,EAAE,KAAK,CAAC;oBAC5D;yBAAO;AACH,wBAAA,IAAI,CAAC,OAAO,GAAG,EAAE;oBACrB;gBACJ;qBAAO;AACH,oBAAA,IAAI,CAAC,OAAO,GAAG,EAAE;gBACrB;gBAEA,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC;AACvC,YAAA,CAAC,CACJ;QACL;aAAO;AACH,YAAA,IAAI,CAAC,OAAO,GAAG,EAAE;YACjB,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC;QACvC;IACJ;IAES,WAAW,GAAA;QAChB,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;AACjC,QAAA,IAAI,CAAC,eAAe,CAAC,QAAQ,EAAE;IACnC;IAEA,aAAa,GAAA;QACT,IAAI,CAAC,oBAAoB,GAAG,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC;AAC7C,YAAA,aAAa,EAAE,EAAE;AACjB,YAAA,WAAW,EAAE,IAAI;YACjB,cAAc,EAAE,IAAI,CAAC,QAAQ,CAAC,gBAAgB,CAAC,KAAK,EAAE;AACtD,YAAA,gBAAgB,EAAE,IAAI,CAAC,QAAQ,CAAC,QAAQ;AACnC,iBAAA,mBAAmB,CAAC,IAAI,CAAC,gBAAgB,CAAC,aAAa;iBACvD,sBAAsB,CAAC,IAAI;iBAC3B,kBAAkB,CAAC,EAAE;iBACrB,kBAAkB,CAAC,IAAI;AACvB,iBAAA,aAAa,CAAC;AACX,gBAAA;AACI,oBAAA,OAAO,EAAE,OAAO;AAChB,oBAAA,OAAO,EAAE,QAAQ;AACjB,oBAAA,QAAQ,EAAE,OAAO;AACjB,oBAAA,QAAQ,EAAE;AACb;aACJ;AACR,SAAA,CAAC;QAEF,IAAI,CAAC,oBAAoB,CAAC,WAAW,EAAE,CAAC,SAAS,CAAC,MAAK;AACnD,YAAA,IAAI,CAAC,oBAAoB,CAAC,cAAc,CAAC,aAAa,CAAC,OAAO,CAAC,EAAE,KAAK,EAAE;AAC5E,QAAA,CAAC,CAAC;AAEF,QAAA,MAAM,cAAc,GAAG,IAAI,cAAc,CAAC,IAAI,CAAC,UAAU,EAAE,IAAI,CAAC,iBAAiB,CAAC;AAElF,QAAA,IAAI,CAAC,oBAAoB,CAAC,MAAM,CAAC,cAAc,CAAC;;QAGhD,IAAI,CAAC,oBAAoB,CAAC,aAAa,EAAE,CAAC,SAAS,CAAC,MAAK;;AAGrD,YAAA,IAAI,IAAI,CAAC,oBAAoB,EAAE,WAAW,EAAE,EAAE;;AAE1C,gBAAA,IAAI,CAAC,oBAAoB,CAAC,MAAM,EAAE;;gBAGlC,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC;YACvC;;AAGA,YAAA,IAAI,cAAc,EAAE,UAAU,EAAE;;gBAE5B,cAAc,CAAC,MAAM,EAAE;YAC3B;AACJ,QAAA,CAAC,CAAC;IACN;AAEA,IAAA,UAAU,CAAC,KAAU,EAAA;QACjB,MAAM,KAAK,GAAG,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC,WAAW,EAAE;QAE9C,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,GAAG,IAAI,GAAG,CAAC,KAAK,CAAC,QAAQ,EAAE,CAAC,WAAW,EAAE,CAAC,QAAQ,CAAC,KAAK,CAAC,IAAI,GAAG,CAAC,KAAK,CAAC,QAAQ,EAAE,CAAC,WAAW,EAAE,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC;IAC/J;AAEA,IAAA,SAAS,CAAC,GAAQ,EAAA;QACd,IAAI,GAAG,CAAC,QAAQ;YACZ;QAEJ,MAAM,IAAI,GAAG,IAAI,CAAC,WAAW,CAAC,KAAK,IAAI,EAAE;AACzC,QAAA,MAAM,SAAS,GAAG,IAAI,CAAC,SAAS,CAAC,CAAC,CAAkB,KAAK,CAAC,CAAC,KAAK,KAAK,GAAG,CAAC,KAAK,CAAC;AAC/E,QAAA,IAAI,SAAS,GAAG,CAAC,CAAC,EAAE;AAChB,YAAA,IAAI,CAAC,MAAM,CAAC,SAAS,EAAE,CAAC,CAAC;QAC7B;aACK;AACD,YAAA,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC;QACrB;AACA,QAAA,IAAI,CAAC,WAAW,CAAC,QAAQ,CAAC,IAAI,CAAC;AAE/B,QAAA,IAAI,CAAC,kBAAkB,CAAC,YAAY,EAAE;IAC1C;AAEA,IAAA,OAAO,CAAC,GAAQ,EAAA;QACZ,OAAO,IAAI,CAAC,WAAW,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC,CAAkB,KAAK,CAAC,CAAC,KAAK,KAAK,GAAG,CAAC,KAAK,CAAC,CAAC,MAAM,GAAG,CAAC;IACnG;8GAnJS,qBAAqB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;AAArB,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,qBAAqB,gTC7BlC,29GAgEM,EAAA,MAAA,EAAA,CAAA,qBAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EDrCQ,aAAa,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAF,EAAA,CAAA,OAAA,EAAA,QAAA,EAAA,UAAA,EAAA,MAAA,EAAA,CAAA,OAAA,EAAA,QAAA,EAAA,SAAA,EAAA,SAAA,EAAA,UAAA,CAAA,EAAA,QAAA,EAAA,CAAA,SAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EAAE,iBAAiB,ibAAE,SAAS,EAAA,IAAA,EAAA,OAAA,EAAA,CAAA,EAAA,eAAA,EAAA,EAAA,CAAA,uBAAA,CAAA,MAAA,EAAA,CAAA,CAAA;;2FAE5C,qBAAqB,EAAA,UAAA,EAAA,CAAA;kBAPjC,SAAS;+BACI,gBAAgB,EAAA,eAAA,EAGT,uBAAuB,CAAC,MAAM,EAAA,OAAA,EACtC,CAAC,aAAa,EAAE,iBAAiB,EAAE,SAAS,CAAC,EAAA,QAAA,EAAA,29GAAA,EAAA,MAAA,EAAA,CAAA,qBAAA,CAAA,EAAA;;sBAGrD,SAAS;uBAAC,iBAAiB;;sBAC3B,SAAS;uBAAC,WAAW;;;AElBpB,MAAO,yBAA0B,SAAQK,WAA0B,CAAA;AAPzE,IAAA,WAAA,GAAA;;AAQW,QAAA,IAAA,CAAA,cAAc,GAAG;AACxB,YAAA,KAAK,EAAE;AACL,gBAAA,IAAI,EAAE,CAAC;AACP,gBAAA,IAAI,EAAE,CAAC;AACR,aAAA;SACF;AACF,IAAA;8GAPY,yBAAyB,EAAA,IAAA,EAAA,IAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;AAAzB,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,yBAAyB,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,oBAAA,EAAA,eAAA,EAAA,IAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,ECbtC,gTAMW,EAAA,MAAA,EAAA,CAAA,qBAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EDKG,cAAc,mYAAE,mBAAmB,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAH,IAAA,CAAA,oBAAA,EAAA,QAAA,EAAA,8MAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,eAAA,EAAA,QAAA,EAAA,2CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,iBAAA,EAAA,QAAA,EAAA,wIAAA,EAAA,MAAA,EAAA,CAAA,UAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,oBAAA,EAAA,QAAA,EAAA,eAAA,EAAA,MAAA,EAAA,CAAA,aAAA,EAAA,UAAA,EAAA,SAAA,CAAA,EAAA,OAAA,EAAA,CAAA,eAAA,CAAA,EAAA,QAAA,EAAA,CAAA,QAAA,CAAA,EAAA,CAAA,EAAA,eAAA,EAAA,EAAA,CAAA,uBAAA,CAAA,MAAA,EAAA,CAAA,CAAA;;2FAEpC,yBAAyB,EAAA,UAAA,EAAA,CAAA;kBAPrC,SAAS;+BACI,oBAAoB,EAAA,eAAA,EAGb,uBAAuB,CAAC,MAAM,WACtC,CAAC,cAAc,EAAE,mBAAmB,CAAC,EAAA,QAAA,EAAA,gTAAA,EAAA,MAAA,EAAA,CAAA,qBAAA,CAAA,EAAA;;;AEc5C,MAAO,uBAAwB,SAAQ,SAAuC,CAAA;AAPpF,IAAA,WAAA,GAAA;;AAQW,QAAA,IAAA,CAAA,cAAc,GAAG;AACxB,YAAA,KAAK,EAAE;AACL,gBAAA,SAAS,EAAE,UAAU;AACrB,gBAAA,QAAQ,EAAE,MAAM;AAChB,gBAAA,YAAY,EAAE,IAAI;AAClB,gBAAA,QAAQ,EAAE,IAAI;AACd,gBAAA,MAAM,EAAE,EAAE;AACV,gBAAA,QAAQ,EAAE,IAAI;AACd,gBAAA,UAAU,EAAE;AACb;SACF;AAoDF,IAAA;IAhDC,eAAe,GAAA;QACb,IAAI,CAAC,IAAI,CAAC,SAAS;YACjB,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,WAAW,CAAC;QAEzD,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,UAAU,CAAC,EAAE;AACxC,YAAA,IAAI,CAAC,SAAS,CAAC,UAAU,CAAC,UAAU,EAAE,IAAI,WAAW,CAAC,EAAE,CAAC,CAAC;AAC1D,YAAA,IAAI,CAAC,SAAS,CAAC,UAAU,CAAC,UAAU,EAAE,IAAI,WAAW,CAAC,EAAE,CAAC,CAAC;QAC5D;IACF;AAEA,IAAA,MAAM,CAAC,EAAU,EAAA;AACf,QAAA,IAAI,SAAS,GAAG,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,UAAU,CAAC,EAAE,KAAK;QAErD,IAAI,SAAS,IAAE,CAAC,KAAK,CAAC,EAAE,CAAC,EAAE;AACzB,YAAA,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,UAAU,CAAC,EAAE,QAAQ,CAAC,CAAC,EAAE,EAAE,GAAG,SAAS,CAAC,CAAC;QAC9D;IACF;AAEA,IAAA,MAAM,CAAC,EAAU,EAAA;AACf,QAAA,IAAI,SAAS,GAAG,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,UAAU,CAAC,EAAE,KAAK;QAErD,IAAI,SAAS,IAAE,CAAC,KAAK,CAAC,EAAE,CAAC,EAAE;AACzB,YAAA,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,UAAU,CAAC,EAAE,QAAQ,CAAC,CAAC,EAAE,EAAE,GAAG,SAAS,CAAC,CAAC;QAC9D;IACF;AAEA,IAAA,UAAU,CAAC,CAAM,EAAA;AACf,QAAA,MAAM,IAAI,GAAG,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC;AACvC,QAAA,IAAI,CAAC,WAAW,CAAC,QAAQ,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,KAAI;YACvC,IAAI,CAAC,CAAC,EAAE;gBACN,OAAO;oBACL,EAAE,EAAE,CAAC,CAAC,EAAE;oBACR,IAAI,EAAE,CAAC,CAAC,IAAI;oBACZ,IAAI,EAAE,CAAC,CAAC,IAAI;oBACZ,IAAI,EAAE,CAAC,CAAC;iBACT;;AAED,gBAAA,OAAO,CAAC;QACZ,CAAC,CAAC,CAAC;IACL;AAEQ,IAAA,eAAe,CAAC,WAAgB,EAAA;AACtC,QAAA,IAAI,WAAW,CAAC,MAAM,EAAE;YACtB,OAAO,IAAI,CAAC,eAAe,CAAC,WAAW,CAAC,MAAM,CAAC;QACjD;AAEA,QAAA,OAAO,WAAW;IACpB;8GA9DW,uBAAuB,EAAA,IAAA,EAAA,IAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;AAAvB,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,uBAAuB,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,kBAAA,EAAA,eAAA,EAAA,IAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,ECzBpC,yiBAIoB,EAAA,MAAA,EAAA,CAAA,qBAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EDmBR,wBAAwB,8TAAE,mBAAmB,EAAA,CAAA,EAAA,eAAA,EAAA,EAAA,CAAA,uBAAA,CAAA,MAAA,EAAA,CAAA,CAAA;;2FAE5C,uBAAuB,EAAA,UAAA,EAAA,CAAA;kBAPnC,SAAS;+BACE,kBAAkB,EAAA,eAAA,EAGX,uBAAuB,CAAC,MAAM,WACtC,CAAC,wBAAwB,EAAE,mBAAmB,CAAC,EAAA,QAAA,EAAA,yiBAAA,EAAA,MAAA,EAAA,CAAA,qBAAA,CAAA,EAAA;;;AEP1D,KAAK,CAAC,QAAQ,CAAC,uBAAuB,EAAE,aAAa,CAAC;AACtD,KAAK,CAAC,QAAQ,CAAC,2BAA2B,EAAE,sBAAsB,CAAC;AAc7D,MAAO,sBAAuB,SAAQ,SAAsC,CAAA;AAiD9E,IAAA,WAAA,GAAA;AACI,QAAA,KAAK,EAAE;AA9CX,QAAA,IAAA,CAAA,YAAY,GAAiB;AACzB,YAAA,OAAO,EAAE;AACL,gBAAA,SAAS,EAAE;AACP,oBAAA,CAAC,MAAM,EAAE,QAAQ,EAAE,WAAW,CAAC;AAC/B,oBAAA,CAAC,EAAE,MAAM,EAAE,CAAC,OAAO,EAAE,KAAK,EAAE,OAAO,EAAE,MAAM,CAAC,EAAE,CAAC;AAC/C,oBAAA,CAAC,EAAE,QAAQ,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,KAAK,CAAC,EAAE,CAAC;oBACzC,CAAC,EAAE,OAAO,EAAE,EAAE,EAAE,EAAE,EAAE,YAAY,EAAE,EAAE,EAAE,CAAC;AACvC,oBAAA,CAAC,EAAE,MAAM,EAAE,EAAE,EAAE,CAAC;AAChB,oBAAA,CAAC,EAAE,OAAO,EAAE,EAAE,EAAE,CAAC;AACjB,oBAAA,CAAC,OAAO,CAAC;AACT,oBAAA,CAAC,MAAM,EAAE,OAAO,EAAE,OAAO;AAC5B,iBAAA;AACD,gBAAA,QAAQ,EAAE;oBACN,KAAK,EAAE,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,IAAI,CAAC;oBACtC,KAAK,EAAE,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC,IAAI;AAC1C,iBAAA;AACJ,aAAA;AACD,YAAA,SAAS,EAAE;AACP,gBAAA,WAAW,EAAE,KAAK;AACrB,aAAA;AACD,YAAA,aAAa,EAAE,EAEd;AACD,YAAA,iBAAiB,EAAE;gBACf,OAAO,EAAE,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,IAAI;AAC3C;SACJ;AAEQ,QAAA,IAAA,CAAA,cAAc,GAAG;AACtB,YAAA,KAAK,EAAE;AACH,gBAAA,SAAS,EAAE,UAAU;AACrB,gBAAA,QAAQ,EAAE;AACb;SACJ;AAIO,QAAA,IAAA,CAAA,YAAY,GAAG,MAAM,CAAC,oBAAoB,CAAC;AAC3C,QAAA,IAAA,CAAA,sBAAsB,GAAG,MAAM,CAAC,yBAAyB,CAAC;AAC1D,QAAA,IAAA,CAAA,kBAAkB,GAAG,MAAM,CAAC,iBAAiB,CAAC;QAG9C,IAAA,CAAA,OAAO,GAAa,EAAE;AAEtB,QAAA,IAAA,CAAA,eAAe,GAAiB,IAAI,OAAO,EAAO;QAItD,IAAI,CAAC,sBAAsB,CAAC;AACvB,aAAA,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,eAAe,CAAC;AACpC,aAAA,SAAS,CAAC,CAAC,MAAuB,KAAI;AACnC,YAAA,IAAI,CAAC,OAAO,GAAG,MAAM;AACzB,QAAA,CAAC,CAAC;IACV;IAES,WAAW,GAAA;QAChB,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;AACjC,QAAA,IAAI,CAAC,eAAe,CAAC,QAAQ,EAAE;IACnC;IAEA,eAAe,GAAA;QACX,IAAI,CAAC,IAAI,CAAC,SAAS;YACf,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,WAAW,CAAC;QAE3D,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,UAAU,CAAC,EAAE;AACtC,YAAA,IAAI,CAAC,SAAS,CAAC,UAAU,CAAC,UAAU,EAAE,IAAI,WAAW,CAAC,EAAE,CAAC,CAAC;AAC1D,YAAA,IAAI,CAAC,SAAS,CAAC,UAAU,CAAC,UAAU,EAAE,IAAI,WAAW,CAAC,EAAE,CAAC,CAAC;QAC9D;IACJ;AAEA,IAAA,eAAe,CAAC,IAAS,EAAA;AACrB,QAAA,MAAM,SAAS,GAAG;AACd,YAAA,EAAE,EAAE,IAAI;YACR,QAAQ,EAAE,IAAI,CAAC,IAAI;YACnB,MAAM,EAAE,IAAI,CAAC,IAAI;AACjB,YAAA,QAAQ,EAAC,KAAK;AACd,YAAA,YAAY,EAAE,OAAO;AACrB,YAAA,QAAQ,EAAE,IAAI,CAAC,KAAK,CAAC,QAAQ;AAC7B,YAAA,QAAQ,EAAE,MAAM;AAChB,YAAA,IAAI,EAAE;SACI;QAEd,SAAS,CAAC,QAAQ,GAAG,gBAAgB,CAAC,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC;AAE5D,QAAA,MAAM,QAAQ,GAAG,IAAI,QAAQ,EAAE;QAE/B,QAAQ,CAAC,GAAG,CAAC,UAAU,EAAE,IAAI,EAAE,IAAI,CAAC,IAAI,CAAC;AACzC,QAAA,QAAQ,CAAC,MAAM,CAAC,UAAU,EAAE,IAAI,CAAC,SAAS,CAAC,SAAS,CAAC,CAAC;QAEtD,IAAI,CAAC,YAAY,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAC,IAAI,CACvC,SAAS,CAAC,IAAI,CAAC,eAAe,CAAC,CAClC,CAAC,SAAS,CAAC,CAAC,KAAU,KAAI;YACvB,IAAI,KAAK,CAAC,IAAI,KAAK,aAAa,CAAC,QAAQ,EAAE;AACvC,gBAAA,IAAI,CAAC,eAAe,CAAC,WAAW,CAAC,IAAI,CAAC,eAAe,CAAC,YAAY,CAAC,IAAI,CAAC,CAAC,KAAK,EAAE,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAA,EAAG,IAAI,CAAC,OAAO,CAAC,OAAO,CAAA,gBAAA,EAAmB,KAAK,CAAC,IAAI,CAAC,EAAE,CAAA,CAAE,CAAC;AACzK,gBAAA,IAAI,CAAC,eAAe,CAAC,YAAY,CAAC,IAAI,CAAC,eAAe,CAAC,YAAY,CAAC,IAAI,CAAC,CAAC,KAAK,GAAG,CAAC,CAAC;AACpF,gBAAA,IAAI,CAAC,WAAW,CAAC,QAAQ,CAAC,IAAI,CAAC,eAAe,CAAC,SAAS,CAAC,SAAS,CAAC;gBAEnE,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC;YAC/B;AAEA,YAAA,IAAI,CAAC,kBAAkB,CAAC,YAAY,EAAE;AAC1C,QAAA,CAAC,CAAC;IACN;AAEA,IAAA,aAAa,CAAC,cAAmB,EAAA;AAC7B,QAAA,IAAI,CAAC,eAAe,GAAG,cAAc;QAErC,MAAM,GAAG,GAAG,QAAQ,CAAC,aAAa,CAAC,KAAK,CAAC;QACzC,GAAG,CAAC,SAAS,GAAG,cAAc,CAAC,SAAS,CAAC,SAAS;QAClD,MAAM,OAAO,GAAG,GAAG,CAAC,gBAAgB,CAAC,YAAY,CAAC;AAClD,QAAA,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,KAAI;AAClB,YAAA,IAAK,CAAsB,CAAC,GAAG,CAAC,QAAQ,CAAC,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,EAAE;AAC5D,gBAAA,IAAI,CAAC,OAAO,CAAC,IAAI,CAAE,CAAsB,CAAC,GAAG,CAAC,SAAS,CAAC,CAAA,EAAG,IAAI,CAAC,OAAO,CAAC,OAAO,CAAA,gBAAA,CAAkB,CAAC,MAAM,EAAG,CAAsB,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;YAClJ;AACJ,QAAA,CAAC,CAAC;IACN;AAEA,IAAA,cAAc,CAAC,cAAmB,EAAA;QAC9B,MAAM,GAAG,GAAG,QAAQ,CAAC,aAAa,CAAC,KAAK,CAAC;QAEzC,GAAG,CAAC,SAAS,GAAG,cAAc,CAAC,MAAM,CAAC,SAAS,CAAC,SAAS;QACzD,MAAM,OAAO,GAAG,GAAG,CAAC,gBAAgB,CAAC,YAAY,CAAC;QAElD,MAAM,GAAG,GAAa,EAAE;AAExB,QAAA,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,KAAI;AAClB,YAAA,IAAK,CAAsB,CAAC,GAAG,CAAC,QAAQ,CAAC,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,EAAE;gBAC5D,MAAM,EAAE,GAAI,CAAsB,CAAC,GAAG,CAAC,SAAS,CAAC,CAAA,EAAG,IAAI,CAAC,OAAO,CAAC,OAAO,CAAA,gBAAA,CAAkB,CAAC,MAAM,EAAG,CAAsB,CAAC,GAAG,CAAC,MAAM,CAAC;gBACtI,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC,IAAE,CAAC,KAAG,EAAE,CAAC,EAAE,CAAC,CAAC;AACzD,gBAAA,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC;YAChB;AACJ,QAAA,CAAC,CAAC;QAEF,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,KAAI;AACvB,YAAA,IAAI,SAAS,GAAG,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,UAAU,CAAC,EAAE,KAAK;YAErD,IAAI,SAAS,IAAE,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE;AACtB,gBAAA,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,UAAU,CAAC,EAAE,QAAQ,CAAC,CAAC,CAAC,EAAE,GAAG,SAAS,CAAC,CAAC;YAC/D;AACJ,QAAA,CAAC,CAAC;AAEF,QAAA,IAAI,CAAC,OAAO,GAAG,GAAG;IACtB;IAEQ,eAAe,GAAA;AACnB,QAAA,IAAI,CAAC,QAAQ,CAAC,aAAa,CAAC,KAAK,EAAE;IACvC;IAEQ,iBAAiB,GAAA;AACrB,QAAA,IAAI,CAAC,UAAU,CAAC,aAAa,CAAC,KAAK,EAAE;IACzC;AAEQ,IAAA,gBAAgB,CAAC,OAAe,EAAE,IAAY,EAAE,QAAa,EAAA;QACjE,IAAI,CAAC,eAAe,CAAC,QAAQ,CAAC,MAAM,EAAE,CAAC;IAC3C;AAEQ,IAAA,OAAO,CAAC,EAAU,EAAA;AACtB,QAAA,IAAI,SAAS,GAAG,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,UAAU,CAAC,EAAE,KAAK;QAErD,IAAI,SAAS,IAAE,CAAC,KAAK,CAAC,EAAE,CAAC,EAAE;AACvB,YAAA,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,UAAU,CAAC,EAAE,QAAQ,CAAC,CAAC,EAAE,EAAE,GAAG,SAAS,CAAC,CAAC;QAChE;IACJ;AAEQ,IAAA,aAAa,CAAC,MAAc,EAAA;QAChC,IAAI,QAAQ,GAAG,MAAM;QACrB,QAAQ,MAAM;AACV,YAAA,KAAK,YAAY;AACjB,YAAA,KAAK,WAAW;AAChB,YAAA,KAAK,WAAW;AAChB,YAAA,KAAK,WAAW;gBACZ,QAAQ,GAAG,OAAO;gBAClB;AACJ,YAAA,KAAK,YAAY;AACjB,YAAA,KAAK,WAAW;AAChB,YAAA,KAAK,WAAW;gBACZ,QAAQ,GAAG,OAAO;gBAClB;;AAGR,QAAA,OAAO,QAAsC;IACjD;AAEQ,IAAA,eAAe,CAAC,WAAgB,EAAA;AACpC,QAAA,IAAI,WAAW,CAAC,MAAM,EAAE;YACpB,OAAO,IAAI,CAAC,eAAe,CAAC,WAAW,CAAC,MAAM,CAAC;QACnD;AAEA,QAAA,OAAO,WAAW;IACtB;8GAjMS,sBAAsB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;AAAtB,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,sBAAsB,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,iBAAA,EAAA,WAAA,EAAA,CAAA,EAAA,YAAA,EAAA,UAAA,EAAA,KAAA,EAAA,IAAA,EAAA,SAAA,EAAA,CAAA,UAAA,CAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,EAAA,YAAA,EAAA,YAAA,EAAA,KAAA,EAAA,IAAA,EAAA,SAAA,EAAA,CAAA,YAAA,CAAA,EAAA,WAAA,EAAA,IAAA,EAAA,CAAA,EAAA,eAAA,EAAA,IAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,EC/BnC,mpBAKe,EAAA,MAAA,EAAA,CAAA,mCAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EDwBD,mBAAmB,4hBAAE,WAAW,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,oBAAA,EAAA,QAAA,EAAA,cAAA,EAAA,CAAA,EAAA,eAAA,EAAA,EAAA,CAAA,uBAAA,CAAA,MAAA,EAAA,CAAA,CAAA;;2FAEjC,sBAAsB,EAAA,UAAA,EAAA,CAAA;kBAPlC,SAAS;+BACI,iBAAiB,EAAA,eAAA,EAGV,uBAAuB,CAAC,MAAM,WACtC,CAAC,mBAAmB,EAAE,WAAW,CAAC,EAAA,QAAA,EAAA,mpBAAA,EAAA,MAAA,EAAA,CAAA,mCAAA,CAAA,EAAA;;sBAG1C,SAAS;uBAAC,UAAU;;sBACpB,SAAS;uBAAC,YAAY;;;AELrB,MAAO,qBAAsB,SAAQ,SAAqC,CAAA;AAPhF,IAAA,WAAA,GAAA;;AAQa,QAAA,IAAA,CAAA,cAAc,GAAG;AACtB,YAAA,KAAK,EAAE;AACH,gBAAA,UAAU,EAAE,qBAAqB;AACjC,gBAAA,UAAU,EAAE,oBAAoB;AAChC,gBAAA,SAAS,EAAE,uBAAuB;AAClC,gBAAA,aAAa,EAAE,SAAS;AACxB,gBAAA,IAAI,EAAE,GAAG;AACT,gBAAA,IAAI,EAAE,CAAC;AACP,gBAAA,GAAG,EAAE,CAAC;AACN,gBAAA,GAAG,EAAE,GAAG;AACR,gBAAA,WAAW,EAAE,EAAE;AACf,gBAAA,SAAS,EAAE;AACd,aAAA;SACJ;AACJ,IAAA;8GAfY,qBAAqB,EAAA,IAAA,EAAA,IAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;AAArB,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,qBAAqB,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,gBAAA,EAAA,eAAA,EAAA,IAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,EC5BlC,obAIkB,EAAA,MAAA,EAAA,CAAA,qBAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EDsBJ,sBAAsB,8SAAE,mBAAmB,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAF,IAAA,CAAA,eAAA,EAAA,QAAA,EAAA,2CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,oBAAA,EAAA,QAAA,EAAA,eAAA,EAAA,MAAA,EAAA,CAAA,aAAA,EAAA,UAAA,EAAA,SAAA,CAAA,EAAA,OAAA,EAAA,CAAA,eAAA,CAAA,EAAA,QAAA,EAAA,CAAA,QAAA,CAAA,EAAA,CAAA,EAAA,eAAA,EAAA,EAAA,CAAA,uBAAA,CAAA,MAAA,EAAA,CAAA,CAAA;;2FAE5C,qBAAqB,EAAA,UAAA,EAAA,CAAA;kBAPjC,SAAS;+BACI,gBAAgB,EAAA,eAAA,EAGT,uBAAuB,CAAC,MAAM,WACtC,CAAC,sBAAsB,EAAE,mBAAmB,CAAC,EAAA,QAAA,EAAA,obAAA,EAAA,MAAA,EAAA,CAAA,qBAAA,CAAA,EAAA;;;AEGpD,MAAO,uBAAwB,SAAQK,WAAuC,CAAA;AAPpF,IAAA,WAAA,GAAA;;AAQa,QAAA,IAAA,CAAA,cAAc,GAAG;AACtB,YAAA,KAAK,EAAE;AACH,gBAAA,kBAAkB,EAAE,IAAI;AACxB,gBAAA,UAAU,EAAE,QAAiB;gBAC7B,WAAW,EAAE,CAAC,KAAa,KAAY,CAAA,EAAG,KAAK,CAAA;AAClD;SACJ;AACJ,IAAA;8GARY,uBAAuB,EAAA,IAAA,EAAA,IAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;AAAvB,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,uBAAuB,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,kBAAA,EAAA,eAAA,EAAA,IAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,EC7BpC,qdAKa,EAAA,MAAA,EAAA,CAAA,kEAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EDsBC,eAAe,saAAE,mBAAmB,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAH,IAAA,CAAA,oBAAA,EAAA,QAAA,EAAA,8MAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,eAAA,EAAA,QAAA,EAAA,2CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,oBAAA,EAAA,QAAA,EAAA,eAAA,EAAA,MAAA,EAAA,CAAA,aAAA,EAAA,UAAA,EAAA,SAAA,CAAA,EAAA,OAAA,EAAA,CAAA,eAAA,CAAA,EAAA,QAAA,EAAA,CAAA,QAAA,CAAA,EAAA,CAAA,EAAA,eAAA,EAAA,EAAA,CAAA,uBAAA,CAAA,MAAA,EAAA,CAAA,CAAA;;2FAErC,uBAAuB,EAAA,UAAA,EAAA,CAAA;kBAPnC,SAAS;+BACI,kBAAkB,EAAA,eAAA,EAGX,uBAAuB,CAAC,MAAM,WACtC,CAAC,eAAe,EAAE,mBAAmB,CAAC,EAAA,QAAA,EAAA,qdAAA,EAAA,MAAA,EAAA,CAAA,kEAAA,CAAA,EAAA;;;AE3BnD;;AAEG;;;;"}