novo-elements 9.0.0 → 9.1.0-next.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/elements/date-picker/DatePickerInput.d.ts +16 -1
- package/elements/field/field.d.ts +5 -1
- package/elements/time-picker/TimePicker.d.ts +7 -1
- package/elements/time-picker/TimePicker.module.d.ts +2 -1
- package/elements/time-picker/TimePicker.scss +21 -0
- package/elements/time-picker/TimePickerInput.d.ts +9 -1
- package/esm2020/elements/chips/RowChips.mjs +1 -1
- package/esm2020/elements/color-picker/color-input.component.mjs +1 -1
- package/esm2020/elements/data-table/cell-headers/data-table-header-cell.component.mjs +1 -1
- package/esm2020/elements/date-picker/DatePickerInput.mjs +15 -4
- package/esm2020/elements/date-time-picker/DateTimePicker.mjs +2 -2
- package/esm2020/elements/date-time-picker/DateTimePickerInput.mjs +1 -1
- package/esm2020/elements/field/field.mjs +5 -3
- package/esm2020/elements/form/ControlTemplates.mjs +1 -1
- package/esm2020/elements/query-builder/condition-builder/condition-builder.component.mjs +2 -2
- package/esm2020/elements/query-builder/condition-definitions/address-condition.definition.mjs +1 -1
- package/esm2020/elements/query-builder/condition-definitions/boolean-condition.definition.mjs +1 -1
- package/esm2020/elements/query-builder/condition-definitions/date-condition.definition.mjs +1 -1
- package/esm2020/elements/query-builder/condition-definitions/date-time-condition.definition.mjs +1 -1
- package/esm2020/elements/query-builder/condition-definitions/id-condition.definition.mjs +1 -1
- package/esm2020/elements/query-builder/condition-definitions/number-condition.definition.mjs +1 -1
- package/esm2020/elements/query-builder/condition-definitions/picker-condition.definition.mjs +1 -1
- package/esm2020/elements/query-builder/condition-definitions/string-condition.definition.mjs +1 -1
- package/esm2020/elements/select-search/select-search.component.mjs +1 -1
- package/esm2020/elements/time-picker/TimePicker.mjs +52 -5
- package/esm2020/elements/time-picker/TimePicker.module.mjs +5 -4
- package/esm2020/elements/time-picker/TimePickerInput.mjs +38 -5
- package/fesm2015/novo-elements-elements-chips.mjs +1 -1
- package/fesm2015/novo-elements-elements-chips.mjs.map +1 -1
- package/fesm2015/novo-elements-elements-color-picker.mjs +1 -1
- package/fesm2015/novo-elements-elements-color-picker.mjs.map +1 -1
- package/fesm2015/novo-elements-elements-data-table.mjs +1 -1
- package/fesm2015/novo-elements-elements-data-table.mjs.map +1 -1
- package/fesm2015/novo-elements-elements-date-picker.mjs +14 -3
- package/fesm2015/novo-elements-elements-date-picker.mjs.map +1 -1
- package/fesm2015/novo-elements-elements-date-time-picker.mjs +2 -2
- package/fesm2015/novo-elements-elements-date-time-picker.mjs.map +1 -1
- package/fesm2015/novo-elements-elements-field.mjs +4 -2
- package/fesm2015/novo-elements-elements-field.mjs.map +1 -1
- package/fesm2015/novo-elements-elements-form.mjs +1 -1
- package/fesm2015/novo-elements-elements-form.mjs.map +1 -1
- package/fesm2015/novo-elements-elements-query-builder.mjs +9 -9
- package/fesm2015/novo-elements-elements-query-builder.mjs.map +1 -1
- package/fesm2015/novo-elements-elements-select-search.mjs +1 -1
- package/fesm2015/novo-elements-elements-select-search.mjs.map +1 -1
- package/fesm2015/novo-elements-elements-time-picker.mjs +93 -12
- package/fesm2015/novo-elements-elements-time-picker.mjs.map +1 -1
- package/fesm2020/novo-elements-elements-chips.mjs +1 -1
- package/fesm2020/novo-elements-elements-chips.mjs.map +1 -1
- package/fesm2020/novo-elements-elements-color-picker.mjs +1 -1
- package/fesm2020/novo-elements-elements-color-picker.mjs.map +1 -1
- package/fesm2020/novo-elements-elements-data-table.mjs +1 -1
- package/fesm2020/novo-elements-elements-data-table.mjs.map +1 -1
- package/fesm2020/novo-elements-elements-date-picker.mjs +14 -3
- package/fesm2020/novo-elements-elements-date-picker.mjs.map +1 -1
- package/fesm2020/novo-elements-elements-date-time-picker.mjs +2 -2
- package/fesm2020/novo-elements-elements-date-time-picker.mjs.map +1 -1
- package/fesm2020/novo-elements-elements-field.mjs +4 -2
- package/fesm2020/novo-elements-elements-field.mjs.map +1 -1
- package/fesm2020/novo-elements-elements-form.mjs +1 -1
- package/fesm2020/novo-elements-elements-form.mjs.map +1 -1
- package/fesm2020/novo-elements-elements-query-builder.mjs +9 -9
- package/fesm2020/novo-elements-elements-query-builder.mjs.map +1 -1
- package/fesm2020/novo-elements-elements-select-search.mjs +1 -1
- package/fesm2020/novo-elements-elements-select-search.mjs.map +1 -1
- package/fesm2020/novo-elements-elements-time-picker.mjs +93 -12
- package/fesm2020/novo-elements-elements-time-picker.mjs.map +1 -1
- package/package.json +1 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"novo-elements-elements-query-builder.mjs","sources":["../../../projects/novo-elements/src/elements/query-builder/query-builder.tokens.ts","../../../projects/novo-elements/src/elements/query-builder/query-builder.types.ts","../../../projects/novo-elements/src/elements/query-builder/query-builder.service.ts","../../../projects/novo-elements/src/elements/query-builder/condition-builder/condition-builder.component.ts","../../../projects/novo-elements/src/elements/query-builder/condition-builder/condition-builder.component.html","../../../projects/novo-elements/src/elements/query-builder/query-builder.directives.ts","../../../projects/novo-elements/src/elements/query-builder/condition-definitions/abstract-condition.definition.ts","../../../projects/novo-elements/src/elements/query-builder/condition-definitions/address-condition.definition.ts","../../../projects/novo-elements/src/elements/query-builder/condition-definitions/boolean-condition.definition.ts","../../../projects/novo-elements/src/elements/query-builder/condition-definitions/date-condition.definition.ts","../../../projects/novo-elements/src/elements/query-builder/condition-definitions/date-time-condition.definition.ts","../../../projects/novo-elements/src/elements/query-builder/condition-definitions/id-condition.definition.ts","../../../projects/novo-elements/src/elements/query-builder/condition-definitions/number-condition.definition.ts","../../../projects/novo-elements/src/elements/query-builder/condition-definitions/picker-condition.definition.ts","../../../projects/novo-elements/src/elements/query-builder/condition-definitions/string-condition.definition.ts","../../../projects/novo-elements/src/elements/query-builder/condition-group/condition-group.component.ts","../../../projects/novo-elements/src/elements/query-builder/condition-group/condition-group.component.html","../../../projects/novo-elements/src/elements/query-builder/criteria-builder/criteria-builder.component.ts","../../../projects/novo-elements/src/elements/query-builder/criteria-builder/criteria-builder.component.html","../../../projects/novo-elements/src/elements/query-builder/query-builder.module.ts","../../../projects/novo-elements/src/elements/query-builder/novo-elements-elements-query-builder.ts"],"sourcesContent":["import { InjectionToken } from '@angular/core';\n\nexport const NOVO_QUERY_BUILDER = new InjectionToken<any>('NOVO_QUERY_BUILDER');\nexport const NOVO_CRITERIA_BUILDER = new InjectionToken<any>('NOVO_CRITERIA_BUILDER');\nexport const NOVO_CONDITION_BUILDER = new InjectionToken<any>('NOVO_CONDITION_BUILDER');\n","import { ViewContainerRef } from '@angular/core';\n\nexport enum Conjunction {\n AND = 'and',\n OR = 'or',\n NOT = 'not',\n}\nexport type ConditionGroup = {\n [key: string]: Condition[];\n};\nexport interface Condition {\n field: string;\n operator: string;\n value: any;\n}\n\nexport interface BaseFieldDef {\n name: string;\n label?: string;\n type: string;\n dataSpecialization?: string;\n optional?: boolean;\n multiValue?: boolean;\n inputType?: string;\n options?: { value: string | number; label: string; readOnly?: boolean }[];\n optionsUrl?: string;\n optionsType?: string;\n dataType?: string;\n}\n\nexport interface FieldConfig<T extends BaseFieldDef> {\n value: string;\n label: string;\n options: T[];\n search: (term: string) => T[];\n find: (name: string) => T;\n}\n\n/** Interface used to provide an outlet for rows to be inserted into. */\nexport interface QueryFilterOutlet {\n viewContainer: ViewContainerRef;\n}\n","import { Injectable } from '@angular/core';\nimport { Subject } from 'rxjs';\nimport { NovoLabelService } from 'novo-elements/services';\nimport { BaseConditionFieldDef } from './query-builder.directives';\nimport { BaseFieldDef, Conjunction, FieldConfig } from './query-builder.types';\n\nexport const defaultEditTypeFn = (field: BaseFieldDef) => {\n return field.inputType || field.dataType || field.type;\n};\n\n@Injectable()\nexport class QueryBuilderService {\n private _customFieldDefs = new Set<BaseConditionFieldDef>();\n private _fieldDefsByName = new Map<string, BaseConditionFieldDef>();\n /**\n * Will dispatch when properties changes, subscribe to this if component should\n * re-render when props are updated\n */\n readonly stateChanges: Subject<void> = new Subject<void>();\n\n /**\n * Function to determine operator and input templates for a field. Value passed\n * through the criteria builder Input.\n */\n public get editTypeFn(): (field: BaseFieldDef) => string {\n return this._editTypeFn;\n }\n public set editTypeFn(value: (field: BaseFieldDef) => string) {\n this._editTypeFn = value ?? defaultEditTypeFn;\n this.stateChanges.next();\n }\n private _editTypeFn: (field: BaseFieldDef) => string = defaultEditTypeFn;\n\n /**\n * The field configuration to control which types of fields are available to select\n * within the Condition Builder.\n */\n public get config(): { fields: FieldConfig<BaseFieldDef>[] } {\n return this._config;\n }\n public set config(value: { fields: FieldConfig<BaseFieldDef>[] }) {\n this._config = value;\n this.stateChanges.next();\n }\n private _config: { fields: FieldConfig<BaseFieldDef>[] } = { fields: [] };\n\n /**\n * The configuration to control which types of conjuntions can be used in the query builder.\n * Value passed through the criteria builder Input\n * eg. and, or, not\n */\n public get allowedGroupings(): Conjunction[] {\n return this._allowedGroupings;\n }\n public set allowedGroupings(value: Conjunction[]) {\n this._allowedGroupings = value;\n this.stateChanges.next();\n }\n private _allowedGroupings: Conjunction[];\n\n constructor(private labels: NovoLabelService) {}\n\n /** Adds a field definition that was not included as part of the content children. */\n registerFieldDef(fieldDef: BaseConditionFieldDef) {\n this._customFieldDefs.add(fieldDef);\n this._fieldDefsByName.set(fieldDef.name, fieldDef);\n }\n\n /** Removes a field definition that was not included as part of the content children. */\n unregisterFieldDef(fieldDef: BaseConditionFieldDef) {\n this._customFieldDefs.delete(fieldDef);\n this._fieldDefsByName.delete(fieldDef.name);\n }\n\n getFieldDefsByName() {\n return this._fieldDefsByName;\n }\n\n getConjunctionLabel(conjunction: string) {\n switch (conjunction.replace('$', '').toLowerCase()) {\n case Conjunction.OR:\n return this.labels.or;\n case Conjunction.NOT:\n return this.labels.not;\n case Conjunction.AND:\n default:\n return this.labels.and;\n }\n }\n}\n","import {\n AfterContentInit,\n AfterViewInit,\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component,\n Directive,\n ElementRef,\n Input,\n OnDestroy,\n OnInit,\n ViewChild,\n ViewContainerRef,\n} from '@angular/core';\nimport { AbstractControl, ControlContainer, FormControl } from '@angular/forms';\nimport { Subject, Subscription } from 'rxjs';\nimport { debounceTime, distinctUntilChanged } from 'rxjs/operators';\nimport { BaseConditionFieldDef } from '../query-builder.directives';\nimport { QueryBuilderService } from '../query-builder.service';\nimport { NOVO_CONDITION_BUILDER } from '../query-builder.tokens';\nimport { BaseFieldDef, FieldConfig, QueryFilterOutlet } from '../query-builder.types';\nimport { NovoLabelService } from 'novo-elements/services';\n\n/**\n * Provides a handle for the table to grab the view container's ng-container to insert data rows.\n * @docs-private\n */\n@Directive({ selector: '[conditionInputOutlet]' })\nexport class ConditionInputOutlet implements QueryFilterOutlet {\n constructor(public viewContainer: ViewContainerRef, public elementRef: ElementRef) {}\n}\n\n/**\n * Provides a handle for the table to grab the view container's ng-container to insert data rows.\n * @docs-private\n */\n@Directive({ selector: '[conditionOperatorOutlet]' })\nexport class ConditionOperatorOutlet implements QueryFilterOutlet {\n constructor(public viewContainer: ViewContainerRef, public elementRef: ElementRef) {}\n}\n\n@Component({\n selector: 'novo-condition-builder',\n templateUrl: './condition-builder.component.html',\n styleUrls: ['./condition-builder.component.scss'],\n providers: [{ provide: NOVO_CONDITION_BUILDER, useExisting: ConditionBuilderComponent }],\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class ConditionBuilderComponent implements OnInit, AfterContentInit, AfterViewInit, OnDestroy {\n @ViewChild(ConditionOperatorOutlet, { static: true }) _operatorOutlet: ConditionOperatorOutlet;\n @ViewChild(ConditionInputOutlet, { static: true }) _inputOutlet: ConditionInputOutlet;\n\n @Input() label: any;\n @Input() isFirst: boolean;\n @Input() andIndex: number;\n @Input() groupIndex: number;\n\n public parentForm: AbstractControl;\n public fieldConfig: FieldConfig<BaseFieldDef>;\n public searches!: Subscription;\n public results$: Promise<any[]>;\n public searchTerm: FormControl = new FormControl();\n public fieldDisplayWith;\n\n private _lastContext: any = {};\n\n /** Subject that emits when the component has been destroyed. */\n private readonly _onDestroy = new Subject<void>();\n\n constructor(\n public labels: NovoLabelService,\n private cdr: ChangeDetectorRef,\n private qbs: QueryBuilderService,\n private controlContainer: ControlContainer,\n ) {}\n\n ngOnInit() {\n this.parentForm = this.controlContainer.control;\n this.parentForm.valueChanges.subscribe((value) => {\n Promise.resolve().then(() => this.onFieldSelect());\n });\n }\n\n ngAfterContentInit() {\n const { fields = [] } = this.qbs.config || {};\n fields.length && this.changeFieldOptions(fields[0]);\n this.searches = this.searchTerm.valueChanges.pipe(debounceTime(300), distinctUntilChanged()).subscribe((term) => {\n this.results$ = Promise.resolve(\n this.fieldConfig.options.filter(\n (f) => f.name.toLowerCase().includes(term.toLowerCase()) || f.label?.toLowerCase().includes(term.toLowerCase()),\n ),\n );\n this.cdr.markForCheck();\n });\n }\n\n ngAfterViewInit() {\n if (this.parentForm.value?.field !== null) {\n Promise.resolve().then(() => this.onFieldSelect());\n }\n }\n\n ngOnDestroy() {\n this.searches.unsubscribe();\n // Clear all outlets and Maps\n [this._operatorOutlet.viewContainer, this._inputOutlet.viewContainer].forEach((def) => {\n def.clear();\n });\n this._onDestroy.next();\n this._onDestroy.complete();\n }\n\n /**\n * Updates the Conditions \"Field\" Options to Change base on new Scope\n * @param fieldConfig\n */\n changeFieldOptions(fieldConfig: FieldConfig<BaseFieldDef>) {\n this.fieldConfig = fieldConfig;\n this.searchTerm.setValue('');\n this.results$ = Promise.resolve(this.fieldConfig.options);\n }\n\n getField() {\n const { field } = this.parentForm?.value;\n if (!field) return null;\n return this.fieldConfig.find(field);\n }\n\n getDefaultField() {\n const fields = this.fieldConfig.options;\n if (fields && fields.length) {\n return fields[0].name;\n }\n return null;\n }\n\n onFieldSelect() {\n const fieldConf = this.getField();\n if (!fieldConf) {\n this.parentForm.get('field').setValue(this.getDefaultField());\n return;\n } else {\n this.fieldDisplayWith = () => fieldConf.label || fieldConf.name;\n }\n const { field, operator } = this.parentForm.value;\n\n if (this._lastContext.field !== field) {\n if (!!this._lastContext.field) {\n // only clearing operator/value is field was previously defined so we can preload values onto the form\n this.parentForm.get('value').setValue(null);\n this.parentForm.get('operator').setValue(null);\n }\n this.createFieldTemplates();\n }\n\n this._lastContext = { ...this.parentForm.value };\n this.cdr.markForCheck();\n }\n\n private findDefinitionForField(field) {\n if (!field) return;\n const editType = this.qbs.editTypeFn(field);\n // Don't look at dataSpecialization it is no good, this misses currency, and percent\n const { name, inputType, dataType, type } = field;\n const fieldDefsByName = this.qbs.getFieldDefsByName();\n // Check Fields by priority for match Field Definition\n const key = [name, editType?.toUpperCase(), 'DEFAULT'].find((it) => fieldDefsByName.has(it));\n return fieldDefsByName.get(key);\n }\n\n private createFieldTemplates() {\n const definition = this.findDefinitionForField(this.getField());\n\n if (!this.parentForm.get('operator').value) {\n this.parentForm.get('operator').setValue(definition.defaultOperator);\n }\n\n this.createFieldOperators(definition);\n this.createFieldInput(definition);\n }\n\n private createFieldOperators(definition: BaseConditionFieldDef) {\n this._operatorOutlet.viewContainer.clear();\n if (definition) {\n const context = { $implicit: this.parentForm, fieldMeta: this.getField() };\n this._operatorOutlet.viewContainer.createEmbeddedView(definition.fieldOperators.template, context);\n }\n this.cdr.markForCheck();\n }\n\n private createFieldInput(definition: BaseConditionFieldDef) {\n this._inputOutlet.viewContainer.clear();\n if (definition) {\n const context = { $implicit: this.parentForm, fieldMeta: this.getField(), viewIndex: this.groupIndex.toString() + this.andIndex.toString() };\n this._inputOutlet.viewContainer.createEmbeddedView(definition.fieldInput.template, context);\n }\n this.cdr.markForCheck();\n }\n}\n","<form [formGroup]=\"parentForm\">\n <novo-grid gap=\"1rem\" [columns]=\"isFirst ? '20rem 13rem 1fr' : '16rem 13rem 1fr'\" align=\"end\">\n <novo-field class=\"condition-field\">\n <novo-select\n [placeholder]=\"labels.chooseAField\"\n formControlName=\"field\"\n (onSelect)=\"onFieldSelect()\"\n overlayWidth=\"24rem\"\n overlayHeight=\"20rem\"\n [displayWith]=\"fieldDisplayWith\"\n [style.minWidth.px]=\"160\"\n [style.maxWidth.px]=\"isFirst ? 200 : 160\">\n <novo-optgroup class=\"filter-search-results\">\n <novo-option>\n <novo-select-search [formControl]=\"searchTerm\" [clearSearchInput]=\"false\"></novo-select-search>\n </novo-option>\n <ng-container *ngIf=\"results$ | async as results; else loading\">\n <ng-container *ngIf=\"results.length\">\n <novo-option *ngFor=\"let field of results\" value=\"{{ field.name }}\"\n [attr.data-automation-id]=\"field.name\">\n {{ field.label || field.name }}\n </novo-option>\n </ng-container>\n </ng-container>\n </novo-optgroup>\n </novo-select>\n </novo-field>\n\n <div class=\"condition-operator\">\n <ng-container conditionOperatorOutlet></ng-container>\n </div>\n\n <div class=\"condition-input\">\n <ng-container conditionInputOutlet></ng-container>\n </div>\n </novo-grid>\n <ng-content></ng-content>\n</form>\n\n<!-- EMPTY STATE TEMPLATE -->\n<!-- <ng-template #empty>\n <novo-non-ideal-state>\n <novo-icon size=\"xl\" color=\"grapefruit\">search</novo-icon>\n <novo-title>No results found.</novo-title>\n <novo-text>Your search didn't find anything. Try searching for something else.</novo-text>\n </novo-non-ideal-state>\n</ng-template> -->\n\n<!-- LOADING TEMPLATE -->\n<ng-template #loading>\n <novo-loading></novo-loading>\n</ng-template>","import { ContentChild, Directive, Input, TemplateRef } from '@angular/core';\nimport { QueryBuilderService } from './query-builder.service';\n\n/** Base interface for a condidation template directives. */\nexport interface ConditionDef {\n template: TemplateRef<any>;\n}\n\n/**\n * Contained within a novoConditionField definition describing what input should be\n * used to capture the compare value of the Condtion\n */\n@Directive({ selector: '[novoConditionInputDef]' })\nexport class NovoConditionInputDef implements ConditionDef {\n constructor(/** @docs-private */ public template: TemplateRef<any>) {}\n}\n\n/**\n * Contained within a novoConditionField definition describing what operators should be available.\n */\n@Directive({ selector: '[novoConditionOperatorsDef]' })\nexport class NovoConditionOperatorsDef implements ConditionDef {\n constructor(/** @docs-private */ public template: TemplateRef<any>) {}\n}\n\n/**\n * Field Field definition for the QueryBuilder.\n * Defines the inputType and operators to use for the query builder.\n */\n@Directive()\nexport class BaseConditionFieldDef {\n /** Unique name for this field. */\n @Input('novoFilterFieldDef')\n get name(): string {\n return this._name;\n }\n set name(name: string) {\n this._setNameInput(name);\n }\n protected _name: string;\n\n @ContentChild(NovoConditionInputDef) fieldInput: NovoConditionInputDef;\n @ContentChild(NovoConditionOperatorsDef) fieldOperators: NovoConditionOperatorsDef;\n\n /**\n * Transformed version of the column name that can be used as part of a CSS classname. Excludes\n * all non-alphanumeric characters and the special characters '-' and '_'. Any characters that\n * do not match are replaced by the '-' character.\n */\n cssClassFriendlyName: string;\n _fieldCssClassName: string[];\n\n defaultOperator: string;\n\n constructor() {}\n\n /**\n * Overridable method that sets the css classes that will be added to every cell in this\n * column.\n * In the future, columnCssClassName will change from type string[] to string and this\n * will set a single string value.\n * @docs-private\n */\n protected _updateFieldCssClassName() {\n this._fieldCssClassName = [`novo-filter-field-${this.cssClassFriendlyName}`];\n }\n\n protected _setNameInput(value: string) {\n // If the directive is set without a name (updated programmatically), then this setter will\n // trigger with an empty string and should not overwrite the programmatically set value.\n if (value) {\n this._name = value;\n this.cssClassFriendlyName = value.replace(/[^a-z0-9_-]/gi, '-');\n this._updateFieldCssClassName();\n }\n }\n}\n\n@Directive({\n selector: '[novoConditionFieldDef]',\n})\nexport class NovoConditionFieldDef extends BaseConditionFieldDef {\n constructor(private qbs: QueryBuilderService) {\n super();\n }\n register() {\n this.qbs.registerFieldDef(this);\n }\n unregister() {\n this.qbs.unregisterFieldDef(this);\n }\n}\n","import { Directive, Input, OnDestroy, OnInit, ViewChild } from '@angular/core';\nimport { FormGroup } from '@angular/forms';\nimport { NovoLabelService } from 'novo-elements/services';\nimport { NovoConditionFieldDef } from '../query-builder.directives';\n\n@Directive()\nexport abstract class AbstractConditionFieldDef implements OnDestroy, OnInit {\n /** Column name that should be used to reference this column. */\n @Input()\n get name(): string {\n return this._name;\n }\n set name(name: string) {\n this._name = name;\n // With Ivy, inputs can be initialized before static query results are\n // available. In that case, we defer the synchronization until \"ngOnInit\" fires.\n this._syncFieldDefName();\n }\n _name: string;\n\n defaultOperator: string;\n\n @ViewChild(NovoConditionFieldDef, { static: true }) fieldDef: NovoConditionFieldDef;\n\n constructor(public labels: NovoLabelService) {}\n\n ngOnInit() {\n this._syncFieldDefName();\n this._syncFieldDefOperatorValue();\n // Need to add self to FilterBuilder because \"ContentChildren won't find it\"\n this.fieldDef?.register();\n }\n\n ngOnDestroy() {\n this.fieldDef?.unregister();\n }\n\n onOperatorSelect(formGroup: FormGroup): void {\n formGroup.get('value').setValue(null);\n }\n\n /** Synchronizes the column definition name with the text column name. */\n private _syncFieldDefName() {\n if (this.fieldDef) {\n this.fieldDef.name = this.name;\n }\n }\n\n private _syncFieldDefOperatorValue() {\n if (this.fieldDef) {\n this.fieldDef.defaultOperator = this.defaultOperator;\n }\n }\n}\n","import { ChangeDetectionStrategy, Component, ElementRef, QueryList, ViewChild, ViewChildren, ViewEncapsulation } from '@angular/core';\nimport { AbstractControl } from '@angular/forms';\nimport { NovoPickerToggleElement } from 'novo-elements/elements/field';\nimport { PlacesListComponent } from 'novo-elements/elements/places';\nimport { NovoLabelService } from 'novo-elements/services';\nimport { Key } from 'novo-elements/utils';\nimport { AbstractConditionFieldDef } from './abstract-condition.definition';\n\n/**\n * Handle selection of field values when a list of options is provided.\n */\n@Component({\n selector: 'novo-address-condition-def',\n template: `\n <ng-container novoConditionFieldDef>\n <novo-field *novoConditionOperatorsDef=\"let formGroup\" [formGroup]=\"formGroup\">\n <novo-select [placeholder]=\"labels.operator\" formControlName=\"operator\" (onSelect)=\"onOperatorSelect(formGroup)\">\n <novo-option value=\"includeAny\">{{ labels.includeAny }}</novo-option>\n <novo-option value=\"excludeAny\">{{ labels.exclude }}</novo-option>\n </novo-select>\n </novo-field>\n <ng-container *novoConditionInputDef=\"let formGroup; viewIndex as viewIndex; fieldMeta as meta\" [ngSwitch]=\"formGroup.value.operator\" [formGroup]=\"formGroup\">\n <novo-field *novoSwitchCases=\"['includeAny', 'excludeAny']\" #novoField>\n <novo-chip-list [(ngModel)]=\"chipListModel\" [ngModelOptions]=\"{ standalone: true }\" (click)=\"openPlacesList(viewIndex)\">\n <novo-chip *ngFor=\"let item of formGroup.get('value').value\" (removed)=\"remove(item, formGroup, viewIndex)\">\n <novo-text ellipsis>{{ item.formatted_address }}</novo-text>\n <novo-icon novoChipRemove>close</novo-icon>\n </novo-chip>\n <input\n novoChipInput\n [id]=\"viewIndex\"\n [placeholder]=\"labels.location\"\n (keyup)=\"onKeyup($event, viewIndex)\"\n (keydown)=\"onKeydown($event, viewIndex)\"\n [picker]=\"placesPicker\"\n #addressInput />\n </novo-chip-list>\n <novo-picker-toggle [overlayId]=\"viewIndex\" icon=\"location\" novoSuffix>\n <google-places-list [term]=\"term\" (select)=\"selectPlace($event, formGroup, viewIndex)\" formControlName=\"value\" #placesPicker></google-places-list>\n </novo-picker-toggle>\n </novo-field>\n </ng-container>\n </ng-container>\n `,\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.Default,\n})\nexport class NovoDefaultAddressConditionDef extends AbstractConditionFieldDef {\n @ViewChildren(NovoPickerToggleElement) overlayChildren: QueryList<NovoPickerToggleElement>;\n @ViewChildren('addressInput') inputChildren: QueryList<ElementRef>;\n @ViewChild('placesPicker') placesPicker: PlacesListComponent;\n\n defaultOperator = 'includeAny';\n chipListModel: any = '';\n term: string = '';\n\n constructor(public element: ElementRef, public labels: NovoLabelService) {\n super(labels);\n }\n\n onKeyup(event, viewIndex) {\n if (![Key.Escape, Key.Enter].includes(event.key)) {\n this.openPlacesList(viewIndex);\n }\n this.term = event.target.value;\n }\n\n onKeydown(event, viewIndex) {\n if (!this.placesPicker.dropdownOpen) {\n this.openPlacesList(viewIndex);\n this.placesPicker.dropdownOpen = true;\n }\n if ([Key.Escape, Key.Tab].includes(event.key)) {\n this.closePlacesList(viewIndex);\n } else {\n this.placesPicker.onKeyDown(event);\n }\n }\n\n getValue(formGroup: AbstractControl): any[] {\n return formGroup.value.value || [];\n }\n\n getCurrentOverlay(viewIndex: string): NovoPickerToggleElement {\n return this.overlayChildren?.find(item => item.overlayId === viewIndex);\n }\n\n getCurrentInput(viewIndex: string): ElementRef {\n return this.inputChildren?.find(item => (item as any).nativeElement.id === viewIndex);\n }\n\n openPlacesList(viewIndex) {\n this.getCurrentOverlay(viewIndex)?.openPanel();\n }\n\n closePlacesList(viewIndex) {\n this.getCurrentOverlay(viewIndex)?.closePanel();\n }\n\n selectPlace(event: any, formGroup: AbstractControl, viewIndex: string): void {\n const valueToAdd = {\n address_components: event.address_components,\n formatted_address: event.formatted_address,\n geometry: event.geometry,\n place_id: event.place_id,\n };\n const current = this.getValue(formGroup);\n if (!Array.isArray(current)) {\n formGroup.get('value').setValue([valueToAdd]);\n } else {\n formGroup.get('value').setValue([...current, valueToAdd]);\n }\n this.inputChildren.forEach(input => {\n input.nativeElement.value = '';\n })\n this.getCurrentInput(viewIndex)?.nativeElement.focus();\n this.closePlacesList(viewIndex);\n }\n\n remove(valueToRemove: any, formGroup: AbstractControl, viewIndex: string): void {\n const current = this.getValue(formGroup);\n const index = current.indexOf(valueToRemove);\n if (index >= 0) {\n const oldValue = [...current]\n oldValue.splice(index, 1);\n formGroup.get('value').setValue(oldValue);\n }\n this.closePlacesList(viewIndex);\n }\n}\n","import { ChangeDetectionStrategy, Component, ViewEncapsulation } from '@angular/core';\nimport { AbstractConditionFieldDef } from './abstract-condition.definition';\n\n/**\n * When constructing a query using a field that is a boolean with only true/false as possible values.\n */\n@Component({\n selector: 'novo-boolean-condition-def',\n template: `\n <ng-container novoConditionFieldDef>\n <novo-field *novoConditionOperatorsDef=\"let formGroup\" [formGroup]=\"formGroup\">\n <novo-select [placeholder]=\"labels.operator\" formControlName=\"operator\" (onSelect)=\"onOperatorSelect(formGroup)\">\n <novo-option value=\"include\">{{ labels.equals }}</novo-option>\n <novo-option value=\"exclude\">{{ labels.doesNotEqual }}</novo-option>\n <novo-option value=\"isNull\">{{ labels.isEmpty }}</novo-option>\n </novo-select>\n </novo-field>\n <novo-field *novoConditionInputDef=\"let formGroup\" [style.width.px]=\"125\" [formGroup]=\"formGroup\">\n <novo-radio-group formControlName=\"value\">\n <novo-radio [value]=\"true\">{{ formGroup.value.operator === 'isNull' ? labels.yes : labels.true }}</novo-radio>\n <novo-radio [value]=\"false\">{{ formGroup.value.operator === 'isNull' ? labels.no : labels.false }}</novo-radio>\n </novo-radio-group>\n </novo-field>\n </ng-container>\n `,\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.Default,\n})\nexport class NovoDefaultBooleanConditionDef extends AbstractConditionFieldDef {\n defaultOperator = 'include';\n}\n","import { ChangeDetectionStrategy, Component, QueryList, ViewChildren, ViewEncapsulation } from '@angular/core';\nimport { NovoPickerToggleElement } from 'novo-elements/elements/field';\nimport { AbstractConditionFieldDef } from './abstract-condition.definition';\n\n/**\n * Most complicated of the default conditions defs, a date needs to provide a different\n * input type depending on the operator selected.\n */\n@Component({\n selector: 'novo-date-condition-def',\n template: `\n <ng-container novoConditionFieldDef=\"DATE\">\n <novo-field *novoConditionOperatorsDef=\"let formGroup\" [formGroup]=\"formGroup\">\n <novo-select [placeholder]=\"labels.operator\" formControlName=\"operator\" (onSelect)=\"onOperatorSelect(formGroup)\">\n <novo-option value=\"before\">{{ labels.before }}</novo-option>\n <novo-option value=\"after\">{{ labels.after }}</novo-option>\n <novo-option value=\"between\">{{ labels.between }}</novo-option>\n <novo-option value=\"within\">{{ labels.within }}</novo-option>\n <novo-option value=\"isNull\">{{ labels.isEmpty }}</novo-option>\n </novo-select>\n </novo-field>\n <ng-container *novoConditionInputDef=\"let formGroup; viewIndex as viewIndex\" [ngSwitch]=\"formGroup.value.operator\" [formGroup]=\"formGroup\">\n <novo-field *novoSwitchCases=\"['before', 'after']\">\n <input novoInput dateFormat=\"iso8601\" [picker]=\"datepicker\" formControlName=\"value\" />\n <novo-picker-toggle triggerOnFocus [overlayId]=\"viewIndex\" novoSuffix icon=\"calendar\">\n <novo-date-picker (onSelect)=\"closePanel($event, viewIndex)\" #datepicker></novo-date-picker>\n </novo-picker-toggle>\n </novo-field>\n <novo-field *novoSwitchCases=\"['between']\">\n <input novoInput dateRangeFormat=\"date\" [picker]=\"daterangepicker\" formControlName=\"value\" />\n <novo-picker-toggle [for]=\"daterangepicker\" triggerOnFocus [overlayId]=\"viewIndex\" novoSuffix icon=\"calendar\">\n <novo-date-picker #daterangepicker (onSelect)=\"closePanel($event, viewIndex)\" mode=\"range\" numberOfMonths=\"2\"></novo-date-picker>\n </novo-picker-toggle>\n </novo-field>\n <novo-field *novoSwitchCases=\"['within']\">\n <novo-select [placeholder]=\"labels.selectDateRange\" formControlName=\"value\">\n <novo-option value=\"7\">{{ labels.next7Days }}</novo-option>\n <novo-option value=\"-7\">{{ labels.past7Days }}</novo-option>\n <novo-option value=\"-30\">{{ labels.past30Days }}</novo-option>\n <novo-option value=\"-90\">{{ labels.past90Days }}</novo-option>\n </novo-select>\n </novo-field>\n <novo-field *novoSwitchCases=\"['isNull']\">\n <novo-radio-group formControlName=\"value\">\n <novo-radio [value]=\"true\">{{ labels.yes }}</novo-radio>\n <novo-radio [value]=\"false\">{{ labels.no }}</novo-radio>\n </novo-radio-group>\n </novo-field>\n </ng-container>\n </ng-container>\n `,\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.Default,\n})\nexport class NovoDefaultDateConditionDef extends AbstractConditionFieldDef {\n @ViewChildren(NovoPickerToggleElement)\n overlayChildren: QueryList<NovoPickerToggleElement>;\n\n defaultOperator = 'within';\n\n closePanel(event, viewIndex): void {\n const overlay = this.overlayChildren.find(item => item.overlayId === viewIndex);\n overlay.closePanel(event);\n }\n}\n","import { ChangeDetectionStrategy, Component, QueryList, ViewChildren, ViewEncapsulation } from '@angular/core';\nimport { NovoPickerToggleElement } from 'novo-elements/elements/field';\nimport { AbstractConditionFieldDef } from './abstract-condition.definition';\n\n/**\n * Most complicated of the default conditions defs, a date needs to provide a different\n * input type depending on the operator selected.\n */\n@Component({\n selector: 'novo-date-time-condition-def',\n template: `\n <ng-container novoConditionFieldDef=\"DATE\">\n <novo-field *novoConditionOperatorsDef=\"let formGroup\" [formGroup]=\"formGroup\">\n <novo-select [placeholder]=\"labels.operator\" formControlName=\"operator\" (onSelect)=\"onOperatorSelect(formGroup)\">\n <novo-option value=\"before\">{{ labels.before }}</novo-option>\n <novo-option value=\"after\">{{ labels.after }}</novo-option>\n <novo-option value=\"within\">{{ labels.within }}</novo-option>\n <novo-option value=\"isNull\">{{ labels.isEmpty }}</novo-option>\n </novo-select>\n </novo-field>\n <ng-container *novoConditionInputDef=\"let formGroup; viewIndex as viewIndex\" [ngSwitch]=\"formGroup.value.operator\" [formGroup]=\"formGroup\">\n <novo-field *novoSwitchCases=\"['after']\">\n <input novoInput dateTimeFormat=\"iso8601\" [picker]=\"datetimepicker\" formControlName=\"value\" />\n <novo-picker-toggle triggerOnFocus [width]=\"-1\" [overlayId]=\"viewIndex\" novoSuffix icon=\"calendar\">\n <novo-date-time-picker defaultTime=\"end\" (onSelect)=\"closePanel($event, viewIndex)\" #datetimepicker></novo-date-time-picker>\n </novo-picker-toggle>\n </novo-field>\n <novo-field *novoSwitchCases=\"['before']\">\n <input novoInput dateTimeFormat=\"iso8601\" [picker]=\"datetimepickerbefore\" formControlName=\"value\" />\n <novo-picker-toggle triggerOnFocus [width]=\"-1\" [overlayId]=\"viewIndex\" novoSuffix icon=\"calendar\">\n <novo-date-time-picker defaultTime=\"start\" (onSelect)=\"closePanel($event, viewIndex)\" #datetimepickerbefore></novo-date-time-picker>\n </novo-picker-toggle>\n </novo-field>\n <novo-field *novoSwitchCases=\"['within']\">\n <novo-select [placeholder]=\"labels.selectDateRange\" formControlName=\"value\">\n <novo-option value=\"7\">{{ labels.next7Days }}</novo-option>\n <novo-option value=\"-7\">{{ labels.past7Days }}</novo-option>\n <novo-option value=\"-30\">{{ labels.past30Days }}</novo-option>\n <novo-option value=\"-90\">{{ labels.past90Days }}</novo-option>\n </novo-select>\n </novo-field>\n <novo-field *novoSwitchCases=\"['isNull']\">\n <novo-radio-group formControlName=\"value\">\n <novo-radio [value]=\"true\">{{ labels.yes }}</novo-radio>\n <novo-radio [value]=\"false\">{{ labels.no }}</novo-radio>\n </novo-radio-group>\n </novo-field>\n </ng-container>\n </ng-container>\n `,\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.Default,\n})\nexport class NovoDefaultDateTimeConditionDef extends AbstractConditionFieldDef {\n @ViewChildren(NovoPickerToggleElement)\n overlayChildren: QueryList<NovoPickerToggleElement>;\n\n defaultOperator = 'within';\n\n closePanel(event, viewIndex): void {\n const overlay = this.overlayChildren.find(item => item.overlayId === viewIndex);\n }\n}\n","import { ChangeDetectionStrategy, Component, ViewEncapsulation } from '@angular/core';\nimport { AbstractConditionFieldDef } from './abstract-condition.definition';\n\n/**\n * Any condition that has a type of ID usually only is queried by ID.\n */\n@Component({\n selector: 'novo-id-condition-def',\n template: `\n <ng-container novoConditionFieldDef>\n <novo-field *novoConditionOperatorsDef=\"let formGroup\" [formGroup]=\"formGroup\">\n <novo-select [placeholder]=\"labels.operator\" formControlName=\"operator\">\n <novo-option value=\"equalTo\">{{ labels.equalTo }}</novo-option>\n <ng-content></ng-content>\n </novo-select>\n </novo-field>\n <novo-field *novoConditionInputDef=\"let formGroup\" [formGroup]=\"formGroup\">\n <input novoInput type=\"number\" min=\"1\" step=\"1\" formControlName=\"value\" />\n </novo-field>\n </ng-container>\n `,\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.Default,\n})\nexport class NovoDefaultIdConditionDef extends AbstractConditionFieldDef {\n defaultOperator = 'equalTo';\n}\n","import { ChangeDetectionStrategy, Component, ViewEncapsulation } from '@angular/core';\nimport { AbstractConditionFieldDef } from './abstract-condition.definition';\n\n/**\n * When constructing a query using a field that is an Int, Double, Number ...etc.\n * TODO: Do we implment currency formation here potentially>.?\n */\n@Component({\n selector: 'novo-number-condition-def',\n template: `\n <ng-container novoConditionFieldDef>\n <novo-field *novoConditionOperatorsDef=\"let formGroup\" [formGroup]=\"formGroup\">\n <novo-select [placeholder]=\"labels.operator\" formControlName=\"operator\" (onSelect)=\"onOperatorSelect(formGroup)\">\n <novo-option value=\"greaterThan\">{{ labels.greaterThan }}</novo-option>\n <novo-option value=\"lessThan\">{{ labels.lessThan }}</novo-option>\n <novo-option value=\"equalTo\">{{ labels.equalTo }}</novo-option>\n <novo-option value=\"isNull\">{{ labels.isEmpty }}</novo-option>\n </novo-select>\n </novo-field>\n <ng-container *novoConditionInputDef=\"let formGroup\" [ngSwitch]=\"formGroup.value.operator\" [formGroup]=\"formGroup\">\n <novo-field *novoSwitchCases=\"['greaterThan', 'lessThan', 'equalTo']\">\n <input novoInput type=\"number\" formControlName=\"value\" />\n </novo-field>\n <novo-field *novoSwitchCases=\"['isNull']\">\n <novo-radio-group formControlName=\"value\">\n <novo-radio [value]=\"true\">{{ labels.yes }}</novo-radio>\n <novo-radio [value]=\"false\">{{ labels.no }}</novo-radio>\n </novo-radio-group>\n </novo-field>\n </ng-container>\n </ng-container>\n `,\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.Default,\n})\nexport class NovoDefaultNumberConditionDef extends AbstractConditionFieldDef {\n defaultOperator = 'equalTo';\n}\n","import { ChangeDetectionStrategy, Component, ViewEncapsulation } from '@angular/core';\nimport { AbstractConditionFieldDef } from './abstract-condition.definition';\n\n/**\n * Handle selection of field values when a list of options is provided.\n */\n@Component({\n selector: 'novo-picker-condition-def',\n template: `\n <ng-container novoConditionFieldDef>\n <novo-field *novoConditionOperatorsDef=\"let formGroup\" [formGroup]=\"formGroup\">\n <novo-select [placeholder]=\"labels.operator\" formControlName=\"operator\" (onSelect)=\"onOperatorSelect(formGroup)\">\n <novo-option value=\"includeAny\">{{ labels.includeAny }}</novo-option>\n <novo-option value=\"includeAll\">{{ labels.includeAll }}</novo-option>\n <novo-option value=\"excludeAny\">{{ labels.exclude }}</novo-option>\n <novo-option value=\"isNull\">{{ labels.isEmpty }}</novo-option>\n </novo-select>\n </novo-field>\n <ng-container *novoConditionInputDef=\"let formGroup; fieldMeta as meta\" [ngSwitch]=\"formGroup.value.operator\" [formGroup]=\"formGroup\">\n <novo-field *novoSwitchCases=\"['includeAny', 'includeAll', 'excludeAny']\">\n <novo-select formControlName=\"value\" [placeholder]=\"labels.select\" [multiple]=\"true\">\n <!-- WHat about optionUrl/optionType -->\n <novo-option *ngFor=\"let option of meta?.options\" [value]=\"option.value\" [attr.data-automation-value]=\"option.label\">\n {{ option.label }}\n </novo-option>\n </novo-select>\n </novo-field>\n <novo-field *novoSwitchCases=\"['isNull']\">\n <novo-radio-group formControlName=\"value\">\n <novo-radio [value]=\"true\">{{ labels.yes }}</novo-radio>\n <novo-radio [value]=\"false\">{{ labels.no }}</novo-radio>\n </novo-radio-group>\n </novo-field>\n </ng-container>\n </ng-container>\n `,\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.Default,\n})\nexport class NovoDefaultPickerConditionDef extends AbstractConditionFieldDef {\n defaultOperator = 'includeAny';\n}\n","import { ChangeDetectionStrategy, Component, ViewEncapsulation } from '@angular/core';\nimport { AbstractControl } from '@angular/forms';\nimport { AbstractConditionFieldDef } from './abstract-condition.definition';\n\n/**\n * Constructing filters against String fields can be complex. Each \"chip\" added to the\n * condition can be independently used to query a database. Not all systems support\n * querying within a text column, ie sql unless LIKE is enabled. This could result in a\n * performance penalty.\n */\n@Component({\n selector: 'novo-string-condition-def',\n template: `\n <!-- fieldTypes should be UPPERCASE -->\n <ng-container novoConditionFieldDef=\"STRING\">\n <novo-field *novoConditionOperatorsDef=\"let formGroup\" [formGroup]=\"formGroup\">\n <novo-select [placeholder]=\"labels.operator\" formControlName=\"operator\" (onSelect)=\"onOperatorSelect(formGroup)\">\n <novo-option value=\"includeAny\">{{ labels.includeAny }}</novo-option>\n <novo-option value=\"includeAll\">{{ labels.includeAll }}</novo-option>\n <novo-option value=\"excludeAny\">{{ labels.exclude }}</novo-option>\n <novo-option value=\"isEmpty\">{{ labels.isEmpty }}</novo-option>\n </novo-select>\n </novo-field>\n <ng-container *novoConditionInputDef=\"let formGroup\" [ngSwitch]=\"formGroup.value.operator\" [formGroup]=\"formGroup\">\n <novo-field *novoSwitchCases=\"['includeAny', 'includeAll', 'excludeAny']\">\n <novo-chip-list #chipList aria-label=\"filter value\" formControlName=\"value\">\n <novo-chip *ngFor=\"let chip of formGroup.value?.value || []\" [value]=\"chip\" (removed)=\"remove(chip, formGroup)\">\n <novo-text ellipsis>{{ chip }}</novo-text>\n <novo-icon novoChipRemove>close</novo-icon>\n </novo-chip>\n <input\n novoChipInput\n [placeholder]=\"labels.typeToAddChips\"\n autocomplete=\"off\"\n (novoChipInputTokenEnd)=\"add($event, formGroup)\"\n />\n </novo-chip-list>\n <novo-autocomplete></novo-autocomplete>\n </novo-field>\n <novo-field *novoSwitchCases=\"['isEmpty']\">\n <novo-radio-group formControlName=\"value\">\n <novo-radio [value]=\"true\">{{ labels.yes }}</novo-radio>\n <novo-radio [value]=\"false\">{{ labels.no }}</novo-radio>\n </novo-radio-group>\n </novo-field>\n </ng-container>\n </ng-container>\n `,\n encapsulation: ViewEncapsulation.None,\n // Change detection is intentionally not set to OnPush. This component's template will be provided\n // to the table to be inserted into its view. This is problematic when change detection runs since\n // the bindings in this template will be evaluated _after_ the table's view is evaluated, which\n // means the template in the table's view will not have the updated value (and in fact will cause\n // an ExpressionChangedAfterItHasBeenCheckedError).\n // tslint:disable-next-line:validate-decorators\n changeDetection: ChangeDetectionStrategy.Default,\n})\nexport class NovoDefaultStringConditionDef extends AbstractConditionFieldDef {\n defaultOperator = 'includeAny';\n\n getValue(formGroup: AbstractControl): any[] {\n return formGroup.value?.value || [];\n }\n\n add(event: any, formGroup: AbstractControl): void {\n const input = event.input;\n input.value = '';\n const valueToAdd = event.value;\n if (valueToAdd !== '') {\n const current = this.getValue(formGroup);\n if (!Array.isArray(current)) {\n formGroup.get('value').setValue([valueToAdd]);\n } else {\n formGroup.get('value').setValue([...current, valueToAdd]);\n }\n }\n }\n\n remove(valueToRemove: string, formGroup: AbstractControl): void {\n const current = this.getValue(formGroup);\n const index = current.indexOf(valueToRemove);\n if (index >= 0) {\n const oldValue = [...current]\n oldValue.splice(index, 1);\n formGroup.get('value').setValue(oldValue);\n }\n }\n}\n","import { ChangeDetectionStrategy, ChangeDetectorRef, Component, forwardRef, Input, OnDestroy, OnInit } from '@angular/core';\nimport { ControlContainer, FormArray, FormBuilder, FormGroup, NG_VALUE_ACCESSOR, Validators } from '@angular/forms';\nimport { merge, Subject } from 'rxjs';\nimport { takeUntil } from 'rxjs/operators';\nimport { QueryBuilderService } from '../query-builder.service';\nimport { Condition, Conjunction } from '../query-builder.types';\nimport { NovoLabelService } from 'novo-elements/services';\n\nconst EMPTY_CONDITION: Condition = {\n field: null,\n operator: null,\n value: null,\n};\n@Component({\n selector: 'novo-condition-group',\n templateUrl: './condition-group.component.html',\n styleUrls: ['./condition-group.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n providers: [{ provide: NG_VALUE_ACCESSOR, useExisting: forwardRef(() => ConditionGroupComponent), multi: true }],\n host: {\n class: 'novo-condition-group',\n },\n})\nexport class ConditionGroupComponent implements OnInit, OnDestroy {\n @Input() controlName: string = '$' + Conjunction.AND;\n @Input() groupIndex: number;\n\n public parentForm: FormGroup;\n public innerForm: FormGroup;\n /** Subject that emits when the component has been destroyed. */\n private readonly _onDestroy = new Subject<void>();\n\n constructor(\n public qbs: QueryBuilderService,\n public labels: NovoLabelService,\n private controlContainer: ControlContainer,\n private formBuilder: FormBuilder,\n private cdr: ChangeDetectorRef,\n ) {}\n\n ngOnInit() {\n this.parentForm = this.controlContainer.control as FormGroup;\n this.controlName = Object.keys(this.parentForm.controls)[0];\n merge(this.parentForm.parent.valueChanges, this.qbs.stateChanges)\n .pipe(takeUntil(this._onDestroy))\n .subscribe(() => this.cdr.markForCheck());\n }\n\n ngOnDestroy() {\n this._onDestroy.next();\n this._onDestroy.complete();\n }\n\n updateControlName(value: string) {\n const name = `$${value.replace('$', '')}`;\n if (name !== this.controlName) {\n const current = this.parentForm.get(this.controlName).value;\n this.parentForm.controls[name] = this.parentForm.controls[this.controlName];\n delete this.parentForm.controls[this.controlName];\n this.controlName = name;\n this.parentForm.get(this.controlName).setValue(current);\n this.cdr.markForCheck();\n }\n }\n\n get root(): FormArray {\n return this.parentForm.get(this.controlName) as FormArray;\n }\n\n addCondition(data?: any) {\n const conditon = this.newCondition(data);\n this.root.push(conditon);\n this.cdr.markForCheck();\n }\n\n removeCondition(index: number) {\n this.root.removeAt(index);\n this.cdr.markForCheck();\n }\n\n newCondition({ field, operator, value }: Condition = EMPTY_CONDITION): FormGroup {\n return this.formBuilder.group({\n field: [field, Validators.required],\n operator: [operator, Validators.required],\n value: [value],\n });\n }\n\n cantRemoveRow(isFirst: boolean) {\n if ((this.parentForm.parent as FormArray).length > 1) return false;\n return this.root.length <= 1;\n }\n}\n","<div [formGroup]=\"parentForm\" class=\"condition-group-container\">\n <novo-stack [formArrayName]=\"controlName\" gap=\"md\">\n <ng-container\n *ngFor=\"let andGroup of root.controls; let andIndex = index; let isFirst = first;let isLast = last;\">\n <ng-container [formGroupName]=\"andIndex\">\n <novo-flex class=\"condition-row\" align=\"end\" gap=\"sm\">\n <novo-dropdown *ngIf=\"!isFirst && qbs.allowedGroupings.length > 1; else labeledGroup\">\n <button theme=\"dialogue\" icon=\"collapse\" size=\"sm\">{{qbs.getConjunctionLabel(controlName)}}</button>\n <novo-optgroup>\n <novo-option *ngFor=\"let c of qbs.allowedGroupings\" (click)=\"updateControlName(c)\">\n {{qbs.getConjunctionLabel(c)}}</novo-option>\n </novo-optgroup>\n </novo-dropdown>\n <ng-template #labeledGroup>\n <novo-label *ngIf=\"!isFirst\" color=\"ash\" size=\"xs\" uppercase padding=\"sm\">\n {{qbs.getConjunctionLabel(controlName)}}</novo-label>\n </ng-template>\n <novo-condition-builder [groupIndex]=\"groupIndex\" [andIndex]=\"andIndex\" [isFirst]=\"isFirst\"></novo-condition-builder>\n <novo-button theme=\"icon\" icon=\"delete-o\" color=\"negative\" (click)=\"removeCondition(andIndex)\"\n [disabled]=\"cantRemoveRow(isFirst)\">\n </novo-button>\n </novo-flex>\n </ng-container>\n </ng-container>\n <button theme=\"dialogue\" data-automation-id=\"add-advanced-search-condition\" icon=\"add-thin\" side=\"left\" size=\"sm\" uppercase (click)=\"addCondition()\">\n {{ labels.addCondition }}</button>\n </novo-stack>\n <!-- <button class=\"and-or-button\" theme=\"secondary\" size=\"sm\" (click)=\"addRootCondition()\">{{ addCriteriaLabel }}</button> -->\n</div>","import {\n AfterContentChecked,\n AfterViewInit,\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component,\n ContentChildren,\n forwardRef,\n Input,\n OnDestroy,\n OnInit,\n QueryList,\n} from '@angular/core';\nimport { ControlContainer, FormArray, FormBuilder, FormGroup, NG_VALUE_ACCESSOR, Validators } from '@angular/forms';\nimport { interval, Subject } from 'rxjs';\nimport { debounce, takeUntil } from 'rxjs/operators';\nimport { NovoConditionFieldDef } from '../query-builder.directives';\nimport { QueryBuilderService } from '../query-builder.service';\nimport { NOVO_CRITERIA_BUILDER } from '../query-builder.tokens';\nimport { BaseFieldDef, Condition, ConditionGroup, Conjunction } from '../query-builder.types';\n\nconst EMPTY_CONDITION: Condition = {\n field: null,\n operator: null,\n value: null,\n};\n@Component({\n selector: 'novo-criteria-builder',\n templateUrl: './criteria-builder.component.html',\n styleUrls: ['./criteria-builder.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n providers: [\n { provide: NG_VALUE_ACCESSOR, useExisting: forwardRef(() => CriteriaBuilderComponent), multi: true },\n { provide: NOVO_CRITERIA_BUILDER, useExisting: CriteriaBuilderComponent },\n { provide: QueryBuilderService, useClass: QueryBuilderService },\n ],\n host: {\n class: 'novo-criteria-builder',\n },\n})\nexport class CriteriaBuilderComponent implements OnInit, OnDestroy, AfterContentChecked, AfterViewInit {\n @Input() config: any;\n @Input() controlName: string;\n @Input() allowedGroupings = [Conjunction.AND, Conjunction.OR, Conjunction.NOT];\n @Input() editTypeFn: (field: BaseFieldDef) => string;\n\n @ContentChildren(NovoConditionFieldDef, { descendants: true }) _contentFieldDefs: QueryList<NovoConditionFieldDef>;\n\n public parentForm: FormGroup;\n public innerForm: FormGroup;\n /** Subject that emits when the component has been destroyed. */\n private readonly _onDestroy = new Subject<void>();\n\n constructor(\n private controlContainer: ControlContainer,\n private formBuilder: FormBuilder,\n private cdr: ChangeDetectorRef,\n public qbs: QueryBuilderService,\n ) {}\n\n ngOnInit() {\n this.parentForm = this.controlContainer.control as FormGroup;\n this.innerForm = this.formBuilder.group({\n criteria: this.formBuilder.array([]),\n });\n\n this.parentForm.valueChanges.pipe(takeUntil(this._onDestroy)).subscribe((value) => {\n Promise.resolve().then(() => {\n this.setInitalValue(value[this.controlName]);\n this.cdr.markForCheck();\n });\n });\n this.innerForm.valueChanges\n .pipe(\n debounce(() => interval(10)),\n takeUntil(this._onDestroy),\n )\n .subscribe((value) => {\n const result = value.criteria.filter((it, i) => {\n const key = Object.keys(it)[0];\n if (it[key].length === 0) {\n this.removeConditionGroupAt(i);\n }\n return it[key].length > 0;\n });\n\n Promise.resolve().then(() => {\n this.parentForm.get(this.controlName).setValue(result, { emitEvent: false });\n this.cdr.markForCheck();\n });\n });\n }\n\n ngAfterContentChecked(): void {\n this._configureQueryBuilderService();\n this.cdr.detectChanges();\n }\n\n ngAfterViewInit(): void {\n this._registerFieldDefs();\n }\n\n ngOnDestroy() {\n this._onDestroy.next();\n this._onDestroy.complete();\n }\n\n private isConditionGroup(group: unknown) {\n return Object.keys(group).every((key) => ['$and', '$or', '$not'].includes(key));\n }\n\n private setInitalValue(value: ConditionGroup[] | Condition[]) {\n if (value.length && this.isConditionGroup(value[0])) {\n value.forEach((it) => this.addConditionGroup(it));\n } else {\n this.addConditionGroup({ $and: value });\n }\n }\n\n get root(): FormArray {\n return this.innerForm.get('criteria') as FormArray;\n }\n\n addConditionGroup(data: any = { $and: [EMPTY_CONDITION] }) {\n this.root.push(this.newConditionGroup(data));\n this.cdr.markForCheck();\n }\n\n newConditionGroup(data: ConditionGroup): FormGroup {\n const controls = Object.entries(data).reduce((obj, [key, val]) => {\n return {\n ...obj,\n [key]: this.formBuilder.array(val.map((it) => this.newCondition(it))),\n };\n }, {});\n return this.formBuilder.group(controls);\n }\n\n newCondition({ field, operator, value }: Condition = EMPTY_CONDITION): FormGroup {\n return this.formBuilder.group({\n field: [field, Validators.required],\n operator: [operator, Validators.required],\n value: [value],\n });\n }\n\n removeConditionGroupAt(index: number) {\n this.root.removeAt(index, { emitEvent: false });\n }\n\n clearAllConditions() {\n while (this.root.length) {\n this.root.removeAt(0);\n }\n }\n\n private _configureQueryBuilderService() {\n this.qbs.config = this.config;\n this.qbs.editTypeFn = this.editTypeFn;\n this.qbs.allowedGroupings = this.allowedGroupings as Conjunction[];\n }\n\n private _registerFieldDefs() {\n const defs = [...Array.from(this._contentFieldDefs)];\n defs.forEach((fieldDef) => {\n this.qbs.registerFieldDef(fieldDef);\n });\n }\n}\n","<form [formGroup]=\"innerForm\">\n <novo-stack [formArrayName]=\"controlName\" class=\"criteria-builder-inner\">\n <ng-container\n *ngFor=\"let andGroup of root.controls; let andIndex = index; let isFirst = first;let isLastAnd = last;\">\n <novo-label *ngIf=\"!isFirst\" color=\"ash\" size=\"xs\" uppercase padding=\"sm\">{{qbs.getConjunctionLabel('and')}}\n </novo-label>\n <novo-condition-group [groupIndex]=\"andIndex\" [formGroupName]=\"andIndex\"></novo-condition-group>\n </ng-container>\n </novo-stack>\n</form>\n<novo-id-condition-def name=\"ID\"></novo-id-condition-def>\n<novo-date-condition-def name=\"DATE\"></novo-date-condition-def>\n<novo-date-time-condition-def name=\"TIMESTAMP\"></novo-date-time-condition-def>\n<novo-string-condition-def name=\"STRING\"></novo-string-condition-def>\n<novo-number-condition-def name=\"FLOAT\"></novo-number-condition-def>\n<novo-number-condition-def name=\"INTEGER\"></novo-number-condition-def>\n<novo-number-condition-def name=\"BIGDECIMAL\"></novo-number-condition-def>\n<novo-number-condition-def name=\"DOUBLE\"></novo-number-condition-def>\n<novo-address-condition-def name=\"ADDRESS\"></novo-address-condition-def>\n<novo-boolean-condition-def name=\"BOOLEAN\"></novo-boolean-condition-def>\n<novo-picker-condition-def name=\"SELECT\"></novo-picker-condition-def>\n<novo-string-condition-def name=\"DEFAULT\"></novo-string-condition-def>\n\n<!-- \n {\n $and: [{\n $or: [{\n entity: 'JobOrder'\n field: 'categories',\n operator: 'doesNotContain',\n value: 'Healthcare'\n }]\n }]\n }\n -->","import { DragDropModule } from '@angular/cdk/drag-drop';\nimport { CdkTableModule } from '@angular/cdk/table';\nimport { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { FormsModule, ReactiveFormsModule } from '@angular/forms';\nimport { NovoAutoCompleteModule } from 'novo-elements/elements/autocomplete';\nimport { NovoButtonModule } from 'novo-elements/elements/button';\nimport { NovoCardModule } from 'novo-elements/elements/card';\nimport { NovoChipsModule } from 'novo-elements/elements/chips';\nimport { NovoCommonModule, NovoOptionModule, NovoOverlayModule } from 'novo-elements/elements/common';\nimport { NovoDatePickerModule } from 'novo-elements/elements/date-picker';\nimport { NovoDateTimePickerModule } from 'novo-elements/elements/date-time-picker';\nimport { NovoDropdownModule } from 'novo-elements/elements/dropdown';\nimport { NovoFieldModule } from 'novo-elements/elements/field';\nimport { NovoFlexModule } from 'novo-elements/elements/flex';\nimport { NovoFormModule } from 'novo-elements/elements/form';\nimport { NovoIconModule } from 'novo-elements/elements/icon';\nimport { NovoLoadingModule } from 'novo-elements/elements/loading';\nimport { NovoNonIdealStateModule } from 'novo-elements/elements/non-ideal-state';\nimport { GooglePlacesModule } from 'novo-elements/elements/places';\nimport { NovoRadioModule } from 'novo-elements/elements/radio'\nimport { NovoSearchBoxModule } from 'novo-elements/elements/search';\nimport { NovoSelectModule } from 'novo-elements/elements/select';\nimport { NovoSelectSearchModule } from 'novo-elements/elements/select-search';\nimport { NovoSwitchModule } from 'novo-elements/elements/switch';\nimport { NovoTabModule } from 'novo-elements/elements/tabs';\nimport { ConditionBuilderComponent, ConditionInputOutlet, ConditionOperatorOutlet } from './condition-builder/condition-builder.component';\nimport { NovoDefaultAddressConditionDef } from './condition-definitions/address-condition.definition';\nimport { NovoDefaultBooleanConditionDef } from './condition-definitions/boolean-condition.definition';\nimport { NovoDefaultDateConditionDef } from './condition-definitions/date-condition.definition';\nimport { NovoDefaultDateTimeConditionDef } from './condition-definitions/date-time-condition.definition';\nimport { NovoDefaultIdConditionDef } from './condition-definitions/id-condition.definition';\nimport { NovoDefaultNumberConditionDef } from './condition-definitions/number-condition.definition';\nimport { NovoDefaultPickerConditionDef } from './condition-definitions/picker-condition.definition';\nimport { NovoDefaultStringConditionDef } from './condition-definitions/string-condition.definition';\nimport { ConditionGroupComponent } from './condition-group/condition-group.component';\nimport { CriteriaBuilderComponent } from './criteria-builder/criteria-builder.component';\nimport { NovoConditionFieldDef, NovoConditionInputDef, NovoConditionOperatorsDef } from './query-builder.directives';\n\n@NgModule({\n imports: [\n CommonModule,\n FormsModule,\n ReactiveFormsModule,\n DragDropModule,\n CdkTableModule,\n GooglePlacesModule,\n NovoAutoCompleteModule,\n NovoButtonModule,\n NovoCommonModule,\n NovoFormModule,\n NovoSelectModule,\n NovoNonIdealStateModule,\n NovoFieldModule,\n NovoOptionModule,\n NovoFlexModule,\n NovoTabModule,\n NovoLoadingModule,\n NovoCardModule,\n NovoDatePickerModule,\n NovoDateTimePickerModule,\n NovoIconModule,\n NovoOverlayModule,\n NovoRadioModule,\n NovoSearchBoxModule,\n NovoSwitchModule,\n NovoChipsModule,\n NovoSelectSearchModule,\n NovoDropdownModule,\n ],\n declarations: [\n CriteriaBuilderComponent,\n ConditionBuilderComponent,\n ConditionInputOutlet,\n ConditionOperatorOutlet,\n ConditionGroupComponent,\n NovoDefaultAddressConditionDef,\n NovoDefaultBooleanConditionDef,\n NovoDefaultDateConditionDef,\n NovoDefaultDateTimeConditionDef,\n NovoConditionOperatorsDef,\n NovoConditionInputDef,\n NovoConditionFieldDef,\n NovoDefaultStringConditionDef,\n NovoDefaultNumberConditionDef,\n NovoDefaultIdConditionDef,\n NovoDefaultPickerConditionDef,\n ],\n exports: [\n CriteriaBuilderComponent,\n ConditionBuilderComponent,\n NovoDefaultAddressConditionDef,\n NovoDefaultBooleanConditionDef,\n NovoDefaultDateConditionDef,\n NovoDefaultDateTimeConditionDef,\n NovoConditionOperatorsDef,\n NovoConditionInputDef,\n NovoConditionFieldDef,\n NovoDefaultStringConditionDef,\n NovoDefaultNumberConditionDef,\n NovoDefaultIdConditionDef,\n NovoDefaultPickerConditionDef,\n ],\n})\nexport class NovoQueryBuilderModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":["i2.QueryBuilderService","i5","i6","i7","i1.QueryBuilderService","i2","i3","i4","i8.NovoConditionFieldDef","i8.NovoConditionOperatorsDef","i9","i8.NovoConditionInputDef","i1","i5.NovoConditionFieldDef","i5.NovoConditionOperatorsDef","i5.NovoConditionInputDef","i6.NovoConditionFieldDef","i6.NovoConditionOperatorsDef","i6.NovoConditionInputDef","i8","i4.NovoConditionFieldDef","i4.NovoConditionOperatorsDef","i4.NovoConditionInputDef","EMPTY_CONDITION","i8.ConditionBuilderComponent","i5.ConditionGroupComponent","i6.NovoDefaultIdConditionDef","i7.NovoDefaultDateConditionDef","i8.NovoDefaultDateTimeConditionDef","i9.NovoDefaultStringConditionDef","i10.NovoDefaultNumberConditionDef","i11.NovoDefaultAddressConditionDef","i12.NovoDefaultBooleanConditionDef","i13.NovoDefaultPickerConditionDef","i14"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;MAEa,kBAAkB,GAAG,IAAI,cAAc,CAAM,oBAAoB,EAAE;MACnE,qBAAqB,GAAG,IAAI,cAAc,CAAM,uBAAuB,EAAE;MACzE,sBAAsB,GAAG,IAAI,cAAc,CAAM,wBAAwB;;ACF1E,IAAA,YAIX;AAJD,CAAA,UAAY,WAAW,EAAA;AACrB,IAAA,WAAA,CAAA,KAAA,CAAA,GAAA,KAAW,CAAA;AACX,IAAA,WAAA,CAAA,IAAA,CAAA,GAAA,IAAS,CAAA;AACT,IAAA,WAAA,CAAA,KAAA,CAAA,GAAA,KAAW,CAAA;AACb,CAAC,EAJW,WAAW,KAAX,WAAW,GAItB,EAAA,CAAA,CAAA;;ACAM,MAAM,iBAAiB,GAAG,CAAC,KAAmB,KAAI;IACvD,OAAO,KAAK,CAAC,SAAS,IAAI,KAAK,CAAC,QAAQ,IAAI,KAAK,CAAC,IAAI,CAAC;AACzD,CAAC,CAAC;MAGW,mBAAmB,CAAA;AAiD9B,IAAA,WAAA,CAAoB,MAAwB,EAAA;AAAxB,QAAA,IAAM,CAAA,MAAA,GAAN,MAAM,CAAkB;AAhDpC,QAAA,IAAA,CAAA,gBAAgB,GAAG,IAAI,GAAG,EAAyB,CAAC;AACpD,QAAA,IAAA,CAAA,gBAAgB,GAAG,IAAI,GAAG,EAAiC,CAAC;AACpE;;;AAGG;AACM,QAAA,IAAA,CAAA,YAAY,GAAkB,IAAI,OAAO,EAAQ,CAAC;AAanD,QAAA,IAAW,CAAA,WAAA,GAAoC,iBAAiB,CAAC;QAajE,IAAA,CAAA,OAAO,GAA4C,EAAE,MAAM,EAAE,EAAE,EAAE,CAAC;KAgB1B;AAxChD;;;AAGG;AACH,IAAA,IAAW,UAAU,GAAA;QACnB,OAAO,IAAI,CAAC,WAAW,CAAC;KACzB;IACD,IAAW,UAAU,CAAC,KAAsC,EAAA;QAC1D,IAAI,CAAC,WAAW,GAAG,KAAK,KAAA,IAAA,IAAL,KAAK,KAAL,KAAA,CAAA,GAAA,KAAK,GAAI,iBAAiB,CAAC;AAC9C,QAAA,IAAI,CAAC,YAAY,CAAC,IAAI,EAAE,CAAC;KAC1B;AAGD;;;AAGG;AACH,IAAA,IAAW,MAAM,GAAA;QACf,OAAO,IAAI,CAAC,OAAO,CAAC;KACrB;IACD,IAAW,MAAM,CAAC,KAA8C,EAAA;AAC9D,QAAA,IAAI,CAAC,OAAO,GAAG,KAAK,CAAC;AACrB,QAAA,IAAI,CAAC,YAAY,CAAC,IAAI,EAAE,CAAC;KAC1B;AAGD;;;;AAIG;AACH,IAAA,IAAW,gBAAgB,GAAA;QACzB,OAAO,IAAI,CAAC,iBAAiB,CAAC;KAC/B;IACD,IAAW,gBAAgB,CAAC,KAAoB,EAAA;AAC9C,QAAA,IAAI,CAAC,iBAAiB,GAAG,KAAK,CAAC;AAC/B,QAAA,IAAI,CAAC,YAAY,CAAC,IAAI,EAAE,CAAC;KAC1B;;AAMD,IAAA,gBAAgB,CAAC,QAA+B,EAAA;AAC9C,QAAA,IAAI,CAAC,gBAAgB,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;QACpC,IAAI,CAAC,gBAAgB,CAAC,GAAG,CAAC,QAAQ,CAAC,IAAI,EAAE,QAAQ,CAAC,CAAC;KACpD;;AAGD,IAAA,kBAAkB,CAAC,QAA+B,EAAA;AAChD,QAAA,IAAI,CAAC,gBAAgB,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;QACvC,IAAI,CAAC,gBAAgB,CAAC,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;KAC7C;IAED,kBAAkB,GAAA;QAChB,OAAO,IAAI,CAAC,gBAAgB,CAAC;KAC9B;AAED,IAAA,mBAAmB,CAAC,WAAmB,EAAA;QACrC,QAAQ,WAAW,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC,WAAW,EAAE;YAChD,KAAK,WAAW,CAAC,EAAE;AACjB,gBAAA,OAAO,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC;YACxB,KAAK,WAAW,CAAC,GAAG;AAClB,gBAAA,OAAO,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC;YACzB,KAAK,WAAW,CAAC,GAAG,CAAC;AACrB,YAAA;AACE,gBAAA,OAAO,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC;AAC1B,SAAA;KACF;;iHA7EU,mBAAmB,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAA,EAAA,CAAA,gBAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,UAAA,EAAA,CAAA,CAAA;qHAAnB,mBAAmB,EAAA,CAAA,CAAA;4FAAnB,mBAAmB,EAAA,UAAA,EAAA,CAAA;kBAD/B,UAAU;;;ACaX;;;AAGG;MAEU,oBAAoB,CAAA;IAC/B,WAAmB,CAAA,aAA+B,EAAS,UAAsB,EAAA;AAA9D,QAAA,IAAa,CAAA,aAAA,GAAb,aAAa,CAAkB;AAAS,QAAA,IAAU,CAAA,UAAA,GAAV,UAAU,CAAY;KAAI;;kHAD1E,oBAAoB,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAA,EAAA,CAAA,gBAAA,EAAA,EAAA,EAAA,KAAA,EAAA,EAAA,CAAA,UAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;sGAApB,oBAAoB,EAAA,QAAA,EAAA,wBAAA,EAAA,QAAA,EAAA,EAAA,EAAA,CAAA,CAAA;4FAApB,oBAAoB,EAAA,UAAA,EAAA,CAAA;kBADhC,SAAS;mBAAC,EAAE,QAAQ,EAAE,wBAAwB,EAAE,CAAA;;AAKjD;;;AAGG;MAEU,uBAAuB,CAAA;IAClC,WAAmB,CAAA,aAA+B,EAAS,UAAsB,EAAA;AAA9D,QAAA,IAAa,CAAA,aAAA,GAAb,aAAa,CAAkB;AAAS,QAAA,IAAU,CAAA,UAAA,GAAV,UAAU,CAAY;KAAI;;qHAD1E,uBAAuB,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAA,EAAA,CAAA,gBAAA,EAAA,EAAA,EAAA,KAAA,EAAA,EAAA,CAAA,UAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;yGAAvB,uBAAuB,EAAA,QAAA,EAAA,2BAAA,EAAA,QAAA,EAAA,EAAA,EAAA,CAAA,CAAA;4FAAvB,uBAAuB,EAAA,UAAA,EAAA,CAAA;kBADnC,SAAS;mBAAC,EAAE,QAAQ,EAAE,2BAA2B,EAAE,CAAA;;MAYvC,yBAAyB,CAAA;AAqBpC,IAAA,WAAA,CACS,MAAwB,EACvB,GAAsB,EACtB,GAAwB,EACxB,gBAAkC,EAAA;AAHnC,QAAA,IAAM,CAAA,MAAA,GAAN,MAAM,CAAkB;AACvB,QAAA,IAAG,CAAA,GAAA,GAAH,GAAG,CAAmB;AACtB,QAAA,IAAG,CAAA,GAAA,GAAH,GAAG,CAAqB;AACxB,QAAA,IAAgB,CAAA,gBAAA,GAAhB,gBAAgB,CAAkB;AAZrC,QAAA,IAAA,CAAA,UAAU,GAAgB,IAAI,WAAW,EAAE,CAAC;AAG3C,QAAA,IAAY,CAAA,YAAA,GAAQ,EAAE,CAAC;;AAGd,QAAA,IAAA,CAAA,UAAU,GAAG,IAAI,OAAO,EAAQ,CAAC;KAO9C;IAEJ,QAAQ,GAAA;QACN,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,gBAAgB,CAAC,OAAO,CAAC;QAChD,IAAI,CAAC,UAAU,CAAC,YAAY,CAAC,SAAS,CAAC,CAAC,KAAK,KAAI;AAC/C,YAAA,OAAO,CAAC,OAAO,EAAE,CAAC,IAAI,CAAC,MAAM,IAAI,CAAC,aAAa,EAAE,CAAC,CAAC;AACrD,SAAC,CAAC,CAAC;KACJ;IAED,kBAAkB,GAAA;AAChB,QAAA,MAAM,EAAE,MAAM,GAAG,EAAE,EAAE,GAAG,IAAI,CAAC,GAAG,CAAC,MAAM,IAAI,EAAE,CAAC;AAC9C,QAAA,MAAM,CAAC,MAAM,IAAI,IAAI,CAAC,kBAAkB,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC;QACpD,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,UAAU,CAAC,YAAY,CAAC,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,EAAE,oBAAoB,EAAE,CAAC,CAAC,SAAS,CAAC,CAAC,IAAI,KAAI;YAC9G,IAAI,CAAC,QAAQ,GAAG,OAAO,CAAC,OAAO,CAC7B,IAAI,CAAC,WAAW,CAAC,OAAO,CAAC,MAAM,CAC7B,CAAC,CAAC,KAAK,EAAA,IAAA,EAAA,CAAA,CAAA,OAAA,CAAC,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC,QAAQ,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC,KAAI,CAAA,EAAA,GAAA,CAAC,CAAC,KAAK,MAAE,IAAA,IAAA,EAAA,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAA,EAAA,CAAA,WAAW,GAAG,QAAQ,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC,CAAA,CAAA,EAAA,CAChH,CACF,CAAC;AACF,YAAA,IAAI,CAAC,GAAG,CAAC,YAAY,EAAE,CAAC;AAC1B,SAAC,CAAC,CAAC;KACJ;IAED,eAAe,GAAA;;QACb,IAAI,CAAA,CAAA,EAAA,GAAA,IAAI,CAAC,UAAU,CAAC,KAAK,MAAE,IAAA,IAAA,EAAA,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAA,EAAA,CAAA,KAAK,MAAK,IAAI,EAAE;AACzC,YAAA,OAAO,CAAC,OAAO,EAAE,CAAC,IAAI,CAAC,MAAM,IAAI,CAAC,aAAa,EAAE,CAAC,CAAC;AACpD,SAAA;KACF;IAED,WAAW,GAAA;AACT,QAAA,IAAI,CAAC,QAAQ,CAAC,WAAW,EAAE,CAAC;;AAE5B,QAAA,CAAC,IAAI,CAAC,eAAe,CAAC,aAAa,EAAE,IAAI,CAAC,YAAY,CAAC,aAAa,CAAC,CAAC,OAAO,CAAC,CAAC,GAAG,KAAI;YACpF,GAAG,CAAC,KAAK,EAAE,CAAC;AACd,SAAC,CAAC,CAAC;AACH,QAAA,IAAI,CAAC,UAAU,CAAC,IAAI,EAAE,CAAC;AACvB,QAAA,IAAI,CAAC,UAAU,CAAC,QAAQ,EAAE,CAAC;KAC5B;AAED;;;AAGG;AACH,IAAA,kBAAkB,CAAC,WAAsC,EAAA;AACvD,QAAA,IAAI,CAAC,WAAW,GAAG,WAAW,CAAC;AAC/B,QAAA,IAAI,CAAC,UAAU,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC;AAC7B,QAAA,IAAI,CAAC,QAAQ,GAAG,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC,WAAW,CAAC,OAAO,CAAC,CAAC;KAC3D;IAED,QAAQ,GAAA;;QACN,MAAM,EAAE,KAAK,EAAE,GAAG,CAAA,EAAA,GAAA,IAAI,CAAC,UAAU,MAAE,IAAA,IAAA,EAAA,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAA,EAAA,CAAA,KAAK,CAAC;AACzC,QAAA,IAAI,CAAC,KAAK;AAAE,YAAA,OAAO,IAAI,CAAC;QACxB,OAAO,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;KACrC;IAED,eAAe,GAAA;AACb,QAAA,MAAM,MAAM,GAAG,IAAI,CAAC,WAAW,CAAC,OAAO,CAAC;AACxC,QAAA,IAAI,MAAM,IAAI,MAAM,CAAC,MAAM,EAAE;AAC3B,YAAA,OAAO,MAAM,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;AACvB,SAAA;AACD,QAAA,OAAO,IAAI,CAAC;KACb;IAED,aAAa,GAAA;AACX,QAAA,MAAM,SAAS,GAAG,IAAI,CAAC,QAAQ,EAAE,CAAC;QAClC,IAAI,CAAC,SAAS,EAAE;AACd,YAAA,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,eAAe,EAAE,CAAC,CAAC;YAC9D,OAAO;AACR,SAAA;AAAM,aAAA;AACL,YAAA,IAAI,CAAC,gBAAgB,GAAG,MAAM,SAAS,CAAC,KAAK,IAAI,SAAS,CAAC,IAAI,CAAC;AACjE,SAAA;QACD,MAAM,EAAE,KAAK,EAAE,QAAQ,EAAE,GAAG,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC;AAElD,QAAA,IAAI,IAAI,CAAC,YAAY,CAAC,KAAK,KAAK,KAAK,EAAE;AACrC,YAAA,IAAI,CAAC,CAAC,IAAI,CAAC,YAAY,CAAC,KAAK,EAAE;;AAE7B,gBAAA,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;AAC5C,gBAAA,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;AAChD,aAAA;YACD,IAAI,CAAC,oBAAoB,EAAE,CAAC;AAC7B,SAAA;QAED,IAAI,CAAC,YAAY,GAAQ,MAAA,CAAA,MAAA,CAAA,EAAA,EAAA,IAAI,CAAC,UAAU,CAAC,KAAK,CAAE,CAAC;AACjD,QAAA,IAAI,CAAC,GAAG,CAAC,YAAY,EAAE,CAAC;KACzB;AAEO,IAAA,sBAAsB,CAAC,KAAK,EAAA;AAClC,QAAA,IAAI,CAAC,KAAK;YAAE,OAAO;QACnB,MAAM,QAAQ,GAAG,IAAI,CAAC,GAAG,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC;;QAE5C,MAAM,EAAE,IAAI,EAAE,SAAS,EAAE,QAAQ,EAAE,IAAI,EAAE,GAAG,KAAK,CAAC;QAClD,MAAM,eAAe,GAAG,IAAI,CAAC,GAAG,CAAC,kBAAkB,EAAE,CAAC;;AAEtD,QAAA,MAAM,GAAG,GAAG,CAAC,IAAI,EAAE,QAAQ,KAAR,IAAA,IAAA,QAAQ,KAAR,KAAA,CAAA,GAAA,KAAA,CAAA,GAAA,QAAQ,CAAE,WAAW,EAAE,EAAE,SAAS,CAAC,CAAC,IAAI,CAAC,CAAC,EAAE,KAAK,eAAe,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC;AAC7F,QAAA,OAAO,eAAe,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;KACjC;IAEO,oBAAoB,GAAA;QAC1B,MAAM,UAAU,GAAG,IAAI,CAAC,sBAAsB,CAAC,IAAI,CAAC,QAAQ,EAAE,CAAC,CAAC;QAEhE,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC,KAAK,EAAE;AAC1C,YAAA,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC,QAAQ,CAAC,UAAU,CAAC,eAAe,CAAC,CAAC;AACtE,SAAA;AAED,QAAA,IAAI,CAAC,oBAAoB,CAAC,UAAU,CAAC,CAAC;AACtC,QAAA,IAAI,CAAC,gBAAgB,CAAC,UAAU,CAAC,CAAC;KACnC;AAEO,IAAA,oBAAoB,CAAC,UAAiC,EAAA;AAC5D,QAAA,IAAI,CAAC,eAAe,CAAC,aAAa,CAAC,KAAK,EAAE,CAAC;AAC3C,QAAA,IAAI,UAAU,EAAE;AACd,YAAA,MAAM,OAAO,GAAG,EAAE,SAAS,EAAE,IAAI,CAAC,UAAU,EAAE,SAAS,EAAE,IAAI,CAAC,QAAQ,EAAE,EAAE,CAAC;AAC3E,YAAA,IAAI,CAAC,eAAe,CAAC,aAAa,CAAC,kBAAkB,CAAC,UAAU,CAAC,cAAc,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC;AACpG,SAAA;AACD,QAAA,IAAI,CAAC,GAAG,CAAC,YAAY,EAAE,CAAC;KACzB;AAEO,IAAA,gBAAgB,CAAC,UAAiC,EAAA;AACxD,QAAA,IAAI,CAAC,YAAY,CAAC,aAAa,CAAC,KAAK,EAAE,CAAC;AACxC,QAAA,IAAI,UAAU,EAAE;AACd,YAAA,MAAM,OAAO,GAAG,EAAE,SAAS,EAAE,IAAI,CAAC,UAAU,EAAE,SAAS,EAAE,IAAI,CAAC,QAAQ,EAAE,EAAE,SAAS,EAAE,IAAI,CAAC,UAAU,CAAC,QAAQ,EAAE,GAAG,IAAI,CAAC,QAAQ,CAAC,QAAQ,EAAE,EAAE,CAAC;AAC7I,YAAA,IAAI,CAAC,YAAY,CAAC,aAAa,CAAC,kBAAkB,CAAC,UAAU,CAAC,UAAU,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC;AAC7F,SAAA;AACD,QAAA,IAAI,CAAC,GAAG,CAAC,YAAY,EAAE,CAAC;KACzB;;uHArJU,yBAAyB,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAA,EAAA,CAAA,gBAAA,EAAA,EAAA,EAAA,KAAA,EAAA,EAAA,CAAA,iBAAA,EAAA,EAAA,EAAA,KAAA,EAAAA,mBAAA,EAAA,EAAA,EAAA,KAAA,EAAA,EAAA,CAAA,gBAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;2GAAzB,yBAAyB,EAAA,QAAA,EAAA,wBAAA,EAAA,MAAA,EAAA,EAAA,KAAA,EAAA,OAAA,EAAA,OAAA,EAAA,SAAA,EAAA,QAAA,EAAA,UAAA,EAAA,UAAA,EAAA,YAAA,EAAA,EAAA,SAAA,EAHzB,CAAC,EAAE,OAAO,EAAE,sBAAsB,EAAE,WAAW,EAAE,yBAAyB,EAAE,CAAC,EAAA,WAAA,EAAA,CAAA,EAAA,YAAA,EAAA,iBAAA,EAAA,KAAA,EAAA,IAAA,EAAA,SAAA,EAI7E,uBAAuB,EACvB,WAAA,EAAA,IAAA,EAAA,MAAA,EAAA,IAAA,EAAA,EAAA,EAAA,YAAA,EAAA,cAAA,EAAA,KAAA,EAAA,IAAA,EAAA,SAAA,EAAA,oBAAoB,8DClDjC,85DAmDc,EAAA,MAAA,EAAA,CAAA,miDAAA,CAAA,EAAA,UAAA,EAAA,CAAA,EAAA,IAAA,EAAA,EAAA,CAAA,eAAA,EAAA,QAAA,EAAA,WAAA,EAAA,MAAA,EAAA,CAAA,WAAA,EAAA,OAAA,EAAA,SAAA,EAAA,SAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAAC,IAAA,CAAA,gBAAA,EAAA,QAAA,EAAA,YAAA,EAAA,MAAA,EAAA,CAAA,QAAA,EAAA,YAAA,EAAA,OAAA,CAAA,EAAA,OAAA,EAAA,CAAA,cAAA,EAAA,cAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAAC,EAAA,CAAA,iBAAA,EAAA,QAAA,EAAA,aAAA,EAAA,MAAA,EAAA,CAAA,UAAA,EAAA,UAAA,EAAA,UAAA,EAAA,IAAA,EAAA,MAAA,EAAA,SAAA,EAAA,aAAA,EAAA,UAAA,EAAA,cAAA,EAAA,UAAA,EAAA,cAAA,EAAA,eAAA,EAAA,aAAA,EAAA,aAAA,EAAA,OAAA,EAAA,UAAA,CAAA,EAAA,OAAA,EAAA,CAAA,UAAA,EAAA,iBAAA,EAAA,aAAA,EAAA,cAAA,EAAA,QAAA,EAAA,QAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAAC,IAAA,CAAA,YAAA,EAAA,QAAA,EAAA,eAAA,EAAA,MAAA,EAAA,CAAA,UAAA,EAAA,OAAA,CAAA,EAAA,QAAA,EAAA,CAAA,cAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,UAAA,EAAA,QAAA,EAAA,aAAA,EAAA,MAAA,EAAA,CAAA,UAAA,EAAA,UAAA,EAAA,WAAA,EAAA,OAAA,EAAA,UAAA,CAAA,EAAA,QAAA,EAAA,CAAA,YAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,EAAA,CAAA,yBAAA,EAAA,QAAA,EAAA,oBAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,kBAAA,EAAA,MAAA,EAAA,qBAAA,EAAA,gCAAA,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,EAAA,EAAA,IAAA,EAAA,EAAA,CAAA,kBAAA,EAAA,QAAA,EAAA,cAAA,EAAA,MAAA,EAAA,CAAA,OAAA,EAAA,OAAA,EAAA,MAAA,CAAA,EAAA,CAAA,EAAA,UAAA,EAAA,CAAA,EAAA,IAAA,EAAA,EAAA,CAAA,aAAA,EAAA,QAAA,EAAA,8CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,EAAA,CAAA,oBAAA,EAAA,QAAA,EAAA,0FAAA,EAAA,EAAA,EAAA,IAAA,EAAA,EAAA,CAAA,kBAAA,EAAA,QAAA,EAAA,aAAA,EAAA,MAAA,EAAA,CAAA,WAAA,CAAA,EAAA,OAAA,EAAA,CAAA,UAAA,CAAA,EAAA,QAAA,EAAA,CAAA,QAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,YAAA,EAAA,QAAA,EAAA,OAAA,EAAA,MAAA,EAAA,CAAA,KAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,EAAA,CAAA,eAAA,EAAA,QAAA,EAAA,2CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,EAAA,CAAA,eAAA,EAAA,QAAA,EAAA,mBAAA,EAAA,MAAA,EAAA,CAAA,iBAAA,EAAA,UAAA,EAAA,SAAA,CAAA,EAAA,OAAA,EAAA,CAAA,eAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,EAAA,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,GAAA,CAAA,IAAA,EAAA,QAAA,EAAA,QAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,UAAA,EAAA,UAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,GAAA,CAAA,OAAA,EAAA,QAAA,EAAA,kBAAA,EAAA,MAAA,EAAA,CAAA,SAAA,EAAA,cAAA,EAAA,eAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EDdD,uBAAuB,EAAA,QAAA,EAAA,2BAAA,EAAA,EAAA,EAAA,IAAA,EATvB,oBAAoB,EAAA,QAAA,EAAA,wBAAA,EAAA,CAAA,EAAA,KAAA,EAAA,EAAA,OAAA,EAAA,GAAA,CAAA,SAAA,EAAA,EAAA,eAAA,EAAA,EAAA,CAAA,uBAAA,CAAA,MAAA,EAAA,CAAA,CAAA;4FAoBpB,yBAAyB,EAAA,UAAA,EAAA,CAAA;kBAPrC,SAAS;AACE,YAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,wBAAwB,EAGvB,SAAA,EAAA,CAAC,EAAE,OAAO,EAAE,sBAAsB,EAAE,WAAW,EAAA,yBAA2B,EAAE,CAAC,EACvE,eAAA,EAAA,uBAAuB,CAAC,MAAM,EAAA,QAAA,EAAA,85DAAA,EAAA,MAAA,EAAA,CAAA,miDAAA,CAAA,EAAA,CAAA;qMAGO,eAAe,EAAA,CAAA;sBAApE,SAAS;gBAAC,IAAA,EAAA,CAAA,uBAAuB,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,CAAA;gBACD,YAAY,EAAA,CAAA;sBAA9D,SAAS;gBAAC,IAAA,EAAA,CAAA,oBAAoB,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,CAAA;gBAExC,KAAK,EAAA,CAAA;sBAAb,KAAK;gBACG,OAAO,EAAA,CAAA;sBAAf,KAAK;gBACG,QAAQ,EAAA,CAAA;sBAAhB,KAAK;gBACG,UAAU,EAAA,CAAA;sBAAlB,KAAK;;;AE/CR;;;AAGG;MAEU,qBAAqB,CAAA;IAChC,WAAY,sBAA4B,QAA0B,EAAA;AAA1B,QAAA,IAAQ,CAAA,QAAA,GAAR,QAAQ,CAAkB;KAAI;;mHAD3D,qBAAqB,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAA,EAAA,CAAA,WAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;uGAArB,qBAAqB,EAAA,QAAA,EAAA,yBAAA,EAAA,QAAA,EAAA,EAAA,EAAA,CAAA,CAAA;4FAArB,qBAAqB,EAAA,UAAA,EAAA,CAAA;kBADjC,SAAS;mBAAC,EAAE,QAAQ,EAAE,yBAAyB,EAAE,CAAA;;AAKlD;;AAEG;MAEU,yBAAyB,CAAA;IACpC,WAAY,sBAA4B,QAA0B,EAAA;AAA1B,QAAA,IAAQ,CAAA,QAAA,GAAR,QAAQ,CAAkB;KAAI;;uHAD3D,yBAAyB,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAA,EAAA,CAAA,WAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;2GAAzB,yBAAyB,EAAA,QAAA,EAAA,6BAAA,EAAA,QAAA,EAAA,EAAA,EAAA,CAAA,CAAA;4FAAzB,yBAAyB,EAAA,UAAA,EAAA,CAAA;kBADrC,SAAS;mBAAC,EAAE,QAAQ,EAAE,6BAA6B,EAAE,CAAA;;AAKtD;;;AAGG;MAEU,qBAAqB,CAAA;AAwBhC,IAAA,WAAA,GAAA,GAAgB;;AAtBhB,IAAA,IACI,IAAI,GAAA;QACN,OAAO,IAAI,CAAC,KAAK,CAAC;KACnB;IACD,IAAI,IAAI,CAAC,IAAY,EAAA;AACnB,QAAA,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,CAAC;KAC1B;AAkBD;;;;;;AAMG;IACO,wBAAwB,GAAA;QAChC,IAAI,CAAC,kBAAkB,GAAG,CAAC,CAAA,kBAAA,EAAqB,IAAI,CAAC,oBAAoB,CAAE,CAAA,CAAC,CAAC;KAC9E;AAES,IAAA,aAAa,CAAC,KAAa,EAAA;;;AAGnC,QAAA,IAAI,KAAK,EAAE;AACT,YAAA,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;YACnB,IAAI,CAAC,oBAAoB,GAAG,KAAK,CAAC,OAAO,CAAC,eAAe,EAAE,GAAG,CAAC,CAAC;YAChE,IAAI,CAAC,wBAAwB,EAAE,CAAC;AACjC,SAAA;KACF;;mHA7CU,qBAAqB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;uGAArB,qBAAqB,EAAA,MAAA,EAAA,EAAA,IAAA,EAAA,CAAA,oBAAA,EAAA,MAAA,CAAA,EAAA,EAAA,OAAA,EAAA,CAAA,EAAA,YAAA,EAAA,YAAA,EAAA,KAAA,EAAA,IAAA,EAAA,SAAA,EAWlB,qBAAqB,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,EAAA,YAAA,EAAA,gBAAA,EAAA,KAAA,EAAA,IAAA,EAAA,SAAA,EACrB,yBAAyB,EAAA,WAAA,EAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,EAAA,EAAA,CAAA,CAAA;4FAZ5B,qBAAqB,EAAA,UAAA,EAAA,CAAA;kBADjC,SAAS;0EAIJ,IAAI,EAAA,CAAA;sBADP,KAAK;uBAAC,oBAAoB,CAAA;gBASU,UAAU,EAAA,CAAA;sBAA9C,YAAY;uBAAC,qBAAqB,CAAA;gBACM,cAAc,EAAA,CAAA;sBAAtD,YAAY;uBAAC,yBAAyB,CAAA;;AAuCnC,MAAO,qBAAsB,SAAQ,qBAAqB,CAAA;AAC9D,IAAA,WAAA,CAAoB,GAAwB,EAAA;AAC1C,QAAA,KAAK,EAAE,CAAC;AADU,QAAA,IAAG,CAAA,GAAA,GAAH,GAAG,CAAqB;KAE3C;IACD,QAAQ,GAAA;AACN,QAAA,IAAI,CAAC,GAAG,CAAC,gBAAgB,CAAC,IAAI,CAAC,CAAC;KACjC;IACD,UAAU,GAAA;AACR,QAAA,IAAI,CAAC,GAAG,CAAC,kBAAkB,CAAC,IAAI,CAAC,CAAC;KACnC;;mHATU,qBAAqB,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAAC,mBAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;uGAArB,qBAAqB,EAAA,QAAA,EAAA,yBAAA,EAAA,eAAA,EAAA,IAAA,EAAA,QAAA,EAAA,EAAA,EAAA,CAAA,CAAA;4FAArB,qBAAqB,EAAA,UAAA,EAAA,CAAA;kBAHjC,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACT,oBAAA,QAAQ,EAAE,yBAAyB;iBACpC,CAAA;;;MC1EqB,yBAAyB,CAAA;AAkB7C,IAAA,WAAA,CAAmB,MAAwB,EAAA;AAAxB,QAAA,IAAM,CAAA,MAAA,GAAN,MAAM,CAAkB;KAAI;;AAhB/C,IAAA,IACI,IAAI,GAAA;QACN,OAAO,IAAI,CAAC,KAAK,CAAC;KACnB;IACD,IAAI,IAAI,CAAC,IAAY,EAAA;AACnB,QAAA,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC;;;QAGlB,IAAI,CAAC,iBAAiB,EAAE,CAAC;KAC1B;IASD,QAAQ,GAAA;;QACN,IAAI,CAAC,iBAAiB,EAAE,CAAC;QACzB,IAAI,CAAC,0BAA0B,EAAE,CAAC;;AAElC,QAAA,CAAA,EAAA,GAAA,IAAI,CAAC,QAAQ,MAAE,IAAA,IAAA,EAAA,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAA,EAAA,CAAA,QAAQ,EAAE,CAAC;KAC3B;IAED,WAAW,GAAA;;AACT,QAAA,CAAA,EAAA,GAAA,IAAI,CAAC,QAAQ,MAAE,IAAA,IAAA,EAAA,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAA,EAAA,CAAA,UAAU,EAAE,CAAC;KAC7B;AAED,IAAA,gBAAgB,CAAC,SAAoB,EAAA;QACnC,SAAS,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;KACvC;;IAGO,iBAAiB,GAAA;QACvB,IAAI,IAAI,CAAC,QAAQ,EAAE;YACjB,IAAI,CAAC,QAAQ,CAAC,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC;AAChC,SAAA;KACF;IAEO,0BAA0B,GAAA;QAChC,IAAI,IAAI,CAAC,QAAQ,EAAE;YACjB,IAAI,CAAC,QAAQ,CAAC,eAAe,GAAG,IAAI,CAAC,eAAe,CAAC;AACtD,SAAA;KACF;;uHA9CmB,yBAAyB,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAA,EAAA,CAAA,gBAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;AAAzB,yBAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,yBAAyB,8FAgBlC,qBAAqB,EAAA,WAAA,EAAA,IAAA,EAAA,MAAA,EAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,EAAA,EAAA,CAAA,CAAA;4FAhBZ,yBAAyB,EAAA,UAAA,EAAA,CAAA;kBAD9C,SAAS;uGAIJ,IAAI,EAAA,CAAA;sBADP,KAAK;gBAc8C,QAAQ,EAAA,CAAA;sBAA3D,SAAS;gBAAC,IAAA,EAAA,CAAA,qBAAqB,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,CAAA;;;ACdpD;;AAEG;AAqCG,MAAO,8BAA+B,SAAQ,yBAAyB,CAAA;IAS3E,WAAmB,CAAA,OAAmB,EAAS,MAAwB,EAAA;QACrE,KAAK,CAAC,MAAM,CAAC,CAAC;AADG,QAAA,IAAO,CAAA,OAAA,GAAP,OAAO,CAAY;AAAS,QAAA,IAAM,CAAA,MAAA,GAAN,MAAM,CAAkB;AAJvE,QAAA,IAAe,CAAA,eAAA,GAAG,YAAY,CAAC;AAC/B,QAAA,IAAa,CAAA,aAAA,GAAQ,EAAE,CAAC;AACxB,QAAA,IAAI,CAAA,IAAA,GAAW,EAAE,CAAC;KAIjB;IAED,OAAO,CAAC,KAAK,EAAE,SAAS,EAAA;AACtB,QAAA,IAAI,CAAC,4CAAuB,CAAC,QAAQ,CAAC,KAAK,CAAC,GAAG,CAAC,EAAE;AAChD,YAAA,IAAI,CAAC,cAAc,CAAC,SAAS,CAAC,CAAC;AAChC,SAAA;QACD,IAAI,CAAC,IAAI,GAAG,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC;KAChC;IAED,SAAS,CAAC,KAAK,EAAE,SAAS,EAAA;AACxB,QAAA,IAAI,CAAC,IAAI,CAAC,YAAY,CAAC,YAAY,EAAE;AACnC,YAAA,IAAI,CAAC,cAAc,CAAC,SAAS,CAAC,CAAC;AAC/B,YAAA,IAAI,CAAC,YAAY,CAAC,YAAY,GAAG,IAAI,CAAC;AACvC,SAAA;AACD,QAAA,IAAI,CAAA,QAAA,eAAA,KAAA,WAAqB,CAAC,QAAQ,CAAC,KAAK,CAAC,GAAG,CAAC,EAAE;AAC7C,YAAA,IAAI,CAAC,eAAe,CAAC,SAAS,CAAC,CAAC;AACjC,SAAA;AAAM,aAAA;AACL,YAAA,IAAI,CAAC,YAAY,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC;AACpC,SAAA;KACF;AAED,IAAA,QAAQ,CAAC,SAA0B,EAAA;AACjC,QAAA,OAAO,SAAS,CAAC,KAAK,CAAC,KAAK,IAAI,EAAE,CAAC;KACpC;AAED,IAAA,iBAAiB,CAAC,SAAiB,EAAA;;AACjC,QAAA,OAAO,MAAA,IAAI,CAAC,eAAe,MAAA,IAAA,IAAA,EAAA,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAA,EAAA,CAAE,IAAI,CAAC,IAAI,IAAI,IAAI,CAAC,SAAS,KAAK,SAAS,CAAC,CAAC;KACzE;AAED,IAAA,eAAe,CAAC,SAAiB,EAAA;;AAC/B,QAAA,OAAO,MAAA,IAAI,CAAC,aAAa,MAAE,IAAA,IAAA,EAAA,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAA,EAAA,CAAA,IAAI,CAAC,IAAI,IAAK,IAAY,CAAC,aAAa,CAAC,EAAE,KAAK,SAAS,CAAC,CAAC;KACvF;AAED,IAAA,cAAc,CAAC,SAAS,EAAA;;QACtB,CAAA,EAAA,GAAA,IAAI,CAAC,iBAAiB,CAAC,SAAS,CAAC,MAAA,IAAA,IAAA,EAAA,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAA,EAAA,CAAE,SAAS,EAAE,CAAC;KAChD;AAED,IAAA,eAAe,CAAC,SAAS,EAAA;;QACvB,CAAA,EAAA,GAAA,IAAI,CAAC,iBAAiB,CAAC,SAAS,CAAC,MAAA,IAAA,IAAA,EAAA,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAA,EAAA,CAAE,UAAU,EAAE,CAAC;KACjD;AAED,IAAA,WAAW,CAAC,KAAU,EAAE,SAA0B,EAAE,SAAiB,EAAA;;AACnE,QAAA,MAAM,UAAU,GAAG;YACjB,kBAAkB,EAAE,KAAK,CAAC,kBAAkB;YAC5C,iBAAiB,EAAE,KAAK,CAAC,iBAAiB;YAC1C,QAAQ,EAAE,KAAK,CAAC,QAAQ;YACxB,QAAQ,EAAE,KAAK,CAAC,QAAQ;SACzB,CAAC;QACF,MAAM,OAAO,GAAG,IAAI,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC;AACzC,QAAA,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,EAAE;AAC3B,YAAA,SAAS,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,QAAQ,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC;AAC/C,SAAA;AAAM,aAAA;AACL,YAAA,SAAS,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,QAAQ,CAAC,CAAC,GAAG,OAAO,EAAE,UAAU,CAAC,CAAC,CAAC;AAC3D,SAAA;AACD,QAAA,IAAI,CAAC,aAAa,CAAC,OAAO,CAAC,KAAK,IAAG;AACjC,YAAA,KAAK,CAAC,aAAa,CAAC,KAAK,GAAG,EAAE,CAAC;AACjC,SAAC,CAAC,CAAA;QACF,CAAA,EAAA,GAAA,IAAI,CAAC,eAAe,CAAC,SAAS,CAAC,MAAA,IAAA,IAAA,EAAA,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAA,EAAA,CAAE,aAAa,CAAC,KAAK,EAAE,CAAC;AACvD,QAAA,IAAI,CAAC,eAAe,CAAC,SAAS,CAAC,CAAC;KACjC;AAED,IAAA,MAAM,CAAC,aAAkB,EAAE,SAA0B,EAAE,SAAiB,EAAA;QACtE,MAAM,OAAO,GAAG,IAAI,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC;QACzC,MAAM,KAAK,GAAG,OAAO,CAAC,OAAO,CAAC,aAAa,CAAC,CAAC;QAC7C,IAAI,KAAK,IAAI,CAAC,EAAE;AACd,YAAA,MAAM,QAAQ,GAAG,CAAC,GAAG,OAAO,CAAC,CAAA;AAC7B,YAAA,QAAQ,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC;YAC1B,SAAS,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC;AAC3C,SAAA;AACD,QAAA,IAAI,CAAC,eAAe,CAAC,SAAS,CAAC,CAAC;KACjC;;4HAjFU,8BAA8B,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAA,EAAA,CAAA,UAAA,EAAA,EAAA,EAAA,KAAA,EAAA,EAAA,CAAA,gBAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;gHAA9B,8BAA8B,EAAA,QAAA,EAAA,4BAAA,EAAA,WAAA,EAAA,CAAA,EAAA,YAAA,EAAA,cAAA,EAAA,KAAA,EAAA,IAAA,EAAA,SAAA,EAAA,CAAA,cAAA,CAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,EAAA,YAAA,EAAA,iBAAA,EAAA,SAAA,EAC3B,uBAAuB,EAnC3B,WAAA,EAAA,IAAA,EAAA,EAAA,EAAA,YAAA,EAAA,eAAA,EAAA,SAAA,EAAA,CAAA,cAAA,CAAA,EAAA,WAAA,EAAA,IAAA,EAAA,CAAA,EAAA,eAAA,EAAA,IAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,EAAA,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AA8BT,EAAA,CAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,CAAA,EAAA,IAAA,EAAAC,IAAA,CAAA,gBAAA,EAAA,QAAA,EAAA,YAAA,EAAA,MAAA,EAAA,CAAA,QAAA,EAAA,YAAA,EAAA,OAAA,CAAA,EAAA,OAAA,EAAA,CAAA,cAAA,EAAA,cAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAAC,EAAA,CAAA,iBAAA,EAAA,QAAA,EAAA,aAAA,EAAA,MAAA,EAAA,CAAA,UAAA,EAAA,UAAA,EAAA,UAAA,EAAA,IAAA,EAAA,MAAA,EAAA,SAAA,EAAA,aAAA,EAAA,UAAA,EAAA,cAAA,EAAA,UAAA,EAAA,cAAA,EAAA,eAAA,EAAA,aAAA,EAAA,aAAA,EAAA,OAAA,EAAA,UAAA,CAAA,EAAA,OAAA,EAAA,CAAA,UAAA,EAAA,iBAAA,EAAA,aAAA,EAAA,cAAA,EAAA,QAAA,EAAA,QAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAAC,IAAA,CAAA,UAAA,EAAA,QAAA,EAAA,aAAA,EAAA,MAAA,EAAA,CAAA,UAAA,EAAA,UAAA,EAAA,WAAA,EAAA,OAAA,EAAA,UAAA,CAAA,EAAA,QAAA,EAAA,CAAA,YAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,EAAA,CAAA,YAAA,EAAA,QAAA,EAAA,gBAAA,EAAA,MAAA,EAAA,CAAA,mBAAA,EAAA,UAAA,EAAA,SAAA,EAAA,aAAA,EAAA,OAAA,EAAA,UAAA,EAAA,aAAA,EAAA,UAAA,EAAA,kBAAA,EAAA,YAAA,EAAA,UAAA,CAAA,EAAA,OAAA,EAAA,CAAA,QAAA,EAAA,aAAA,CAAA,EAAA,QAAA,EAAA,CAAA,cAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,EAAA,CAAA,eAAA,EAAA,QAAA,EAAA,wBAAA,EAAA,MAAA,EAAA,CAAA,OAAA,EAAA,UAAA,EAAA,MAAA,EAAA,MAAA,EAAA,UAAA,EAAA,OAAA,EAAA,YAAA,EAAA,UAAA,EAAA,WAAA,CAAA,EAAA,OAAA,EAAA,CAAA,iBAAA,EAAA,WAAA,EAAA,SAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,QAAA,EAAA,QAAA,EAAA,uBAAA,EAAA,MAAA,EAAA,CAAA,OAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,EAAA,CAAA,iBAAA,EAAA,QAAA,EAAA,WAAA,EAAA,MAAA,EAAA,CAAA,QAAA,EAAA,OAAA,EAAA,OAAA,EAAA,OAAA,EAAA,MAAA,EAAA,SAAA,EAAA,QAAA,EAAA,KAAA,EAAA,MAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAAF,IAAA,CAAA,uBAAA,EAAA,QAAA,EAAA,oBAAA,EAAA,MAAA,EAAA,CAAA,KAAA,EAAA,MAAA,EAAA,UAAA,EAAA,YAAA,EAAA,gBAAA,EAAA,WAAA,EAAA,OAAA,EAAA,UAAA,CAAA,EAAA,QAAA,EAAA,CAAA,kBAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,EAAA,CAAA,mBAAA,EAAA,QAAA,EAAA,oBAAA,EAAA,MAAA,EAAA,CAAA,cAAA,CAAA,EAAA,OAAA,EAAA,CAAA,YAAA,EAAA,QAAA,CAAA,EAAA,CAAA,EAAA,UAAA,EAAA,CAAA,EAAA,IAAA,EAAAG,qBAAA,EAAA,QAAA,EAAA,yBAAA,EAAA,EAAA,EAAA,IAAA,EAAAC,yBAAA,EAAA,QAAA,EAAA,6BAAA,EAAA,EAAA,EAAA,IAAA,EAAAC,EAAA,CAAA,oBAAA,EAAA,QAAA,EAAA,0FAAA,EAAA,EAAA,EAAA,IAAA,EAAAA,EAAA,CAAA,kBAAA,EAAA,QAAA,EAAA,aAAA,EAAA,MAAA,EAAA,CAAA,WAAA,CAAA,EAAA,OAAA,EAAA,CAAA,UAAA,CAAA,EAAA,QAAA,EAAA,CAAA,QAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAAA,EAAA,CAAA,eAAA,EAAA,QAAA,EAAA,2CAAA,EAAA,EAAA,EAAA,IAAA,EAAAA,EAAA,CAAA,eAAA,EAAA,QAAA,EAAA,mBAAA,EAAA,MAAA,EAAA,CAAA,iBAAA,EAAA,UAAA,EAAA,SAAA,CAAA,EAAA,OAAA,EAAA,CAAA,eAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAAC,qBAAA,EAAA,QAAA,EAAA,yBAAA,EAAA,EAAA,EAAA,IAAA,EAAA,GAAA,CAAA,QAAA,EAAA,QAAA,EAAA,YAAA,EAAA,MAAA,EAAA,CAAA,UAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAAJ,IAAA,CAAA,oBAAA,EAAA,QAAA,EAAA,mBAAA,EAAA,MAAA,EAAA,CAAA,iBAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAAG,EAAA,CAAA,OAAA,EAAA,QAAA,EAAA,qDAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,UAAA,EAAA,SAAA,EAAA,gBAAA,CAAA,EAAA,OAAA,EAAA,CAAA,eAAA,CAAA,EAAA,QAAA,EAAA,CAAA,SAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,GAAA,CAAA,OAAA,EAAA,QAAA,EAAA,kBAAA,EAAA,MAAA,EAAA,CAAA,SAAA,EAAA,cAAA,EAAA,eAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,EAAA,CAAA,cAAA,EAAA,QAAA,EAAA,kBAAA,EAAA,EAAA,EAAA,IAAA,EAAA,EAAA,CAAA,aAAA,EAAA,QAAA,EAAA,sBAAA,EAAA,MAAA,EAAA,CAAA,wBAAA,EAAA,gCAAA,EAAA,aAAA,EAAA,IAAA,EAAA,UAAA,CAAA,EAAA,OAAA,EAAA,CAAA,uBAAA,CAAA,EAAA,QAAA,EAAA,CAAA,eAAA,EAAA,kBAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAAL,IAAA,CAAA,mBAAA,EAAA,QAAA,EAAA,eAAA,EAAA,MAAA,EAAA,CAAA,QAAA,EAAA,cAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,wBAAA,EAAA,QAAA,EAAA,cAAA,EAAA,CAAA,EAAA,eAAA,EAAA,EAAA,CAAA,uBAAA,CAAA,OAAA,EAAA,aAAA,EAAA,EAAA,CAAA,iBAAA,CAAA,IAAA,EAAA,CAAA,CAAA;4FAIU,8BAA8B,EAAA,UAAA,EAAA,CAAA;kBApC1C,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACT,oBAAA,QAAQ,EAAE,4BAA4B;AACtC,oBAAA,QAAQ,EAAE,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AA8BT,EAAA,CAAA;oBACD,aAAa,EAAE,iBAAiB,CAAC,IAAI;oBACrC,eAAe,EAAE,uBAAuB,CAAC,OAAO;iBACjD,CAAA;gIAEwC,eAAe,EAAA,CAAA;sBAArD,YAAY;uBAAC,uBAAuB,CAAA;gBACP,aAAa,EAAA,CAAA;sBAA1C,YAAY;uBAAC,cAAc,CAAA;gBACD,YAAY,EAAA,CAAA;sBAAtC,SAAS;uBAAC,cAAc,CAAA;;;AC/C3B;;AAEG;AAuBG,MAAO,8BAA+B,SAAQ,yBAAyB,CAAA;AAtB7E,IAAA,WAAA,GAAA;;AAuBE,QAAA,IAAe,CAAA,eAAA,GAAG,SAAS,CAAC;KAC7B;;4HAFY,8BAA8B,EAAA,IAAA,EAAA,IAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;AAA9B,8BAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,8BAA8B,EApB/B,QAAA,EAAA,4BAAA,EAAA,eAAA,EAAA,IAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,EAAA,CAAA;;;;;;;;;;;;;;;;AAgBT,EAAA,CAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,CAAA,EAAA,IAAA,EAAAO,IAAA,CAAA,gBAAA,EAAA,QAAA,EAAA,YAAA,EAAA,MAAA,EAAA,CAAA,QAAA,EAAA,YAAA,EAAA,OAAA,CAAA,EAAA,OAAA,EAAA,CAAA,cAAA,EAAA,cAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,EAAA,CAAA,iBAAA,EAAA,QAAA,EAAA,aAAA,EAAA,MAAA,EAAA,CAAA,UAAA,EAAA,UAAA,EAAA,UAAA,EAAA,IAAA,EAAA,MAAA,EAAA,SAAA,EAAA,aAAA,EAAA,UAAA,EAAA,cAAA,EAAA,UAAA,EAAA,cAAA,EAAA,eAAA,EAAA,aAAA,EAAA,aAAA,EAAA,OAAA,EAAA,UAAA,CAAA,EAAA,OAAA,EAAA,CAAA,UAAA,EAAA,iBAAA,EAAA,aAAA,EAAA,cAAA,EAAA,QAAA,EAAA,QAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAAN,IAAA,CAAA,UAAA,EAAA,QAAA,EAAA,aAAA,EAAA,MAAA,EAAA,CAAA,UAAA,EAAA,UAAA,EAAA,WAAA,EAAA,OAAA,EAAA,UAAA,CAAA,EAAA,QAAA,EAAA,CAAA,YAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAAC,IAAA,CAAA,cAAA,EAAA,QAAA,EAAA,kBAAA,EAAA,MAAA,EAAA,CAAA,IAAA,EAAA,UAAA,EAAA,mBAAA,EAAA,YAAA,EAAA,OAAA,EAAA,MAAA,EAAA,UAAA,EAAA,UAAA,EAAA,aAAA,CAAA,EAAA,OAAA,EAAA,CAAA,QAAA,EAAA,MAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,gBAAA,EAAA,QAAA,EAAA,YAAA,EAAA,MAAA,EAAA,CAAA,IAAA,EAAA,MAAA,EAAA,UAAA,EAAA,UAAA,EAAA,OAAA,EAAA,QAAA,EAAA,OAAA,EAAA,MAAA,EAAA,MAAA,EAAA,OAAA,EAAA,UAAA,EAAA,SAAA,EAAA,OAAA,CAAA,EAAA,OAAA,EAAA,CAAA,QAAA,EAAA,MAAA,EAAA,OAAA,CAAA,EAAA,CAAA,EAAA,UAAA,EAAA,CAAA,EAAA,IAAA,EAAAM,qBAAA,EAAA,QAAA,EAAA,yBAAA,EAAA,EAAA,EAAA,IAAA,EAAAC,yBAAA,EAAA,QAAA,EAAA,6BAAA,EAAA,EAAA,EAAA,IAAA,EAAAZ,EAAA,CAAA,oBAAA,EAAA,QAAA,EAAA,0FAAA,EAAA,EAAA,EAAA,IAAA,EAAAA,EAAA,CAAA,kBAAA,EAAA,QAAA,EAAA,aAAA,EAAA,MAAA,EAAA,CAAA,WAAA,CAAA,EAAA,OAAA,EAAA,CAAA,UAAA,CAAA,EAAA,QAAA,EAAA,CAAA,QAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAAA,EAAA,CAAA,eAAA,EAAA,QAAA,EAAA,2CAAA,EAAA,EAAA,EAAA,IAAA,EAAAA,EAAA,CAAA,eAAA,EAAA,QAAA,EAAA,mBAAA,EAAA,MAAA,EAAA,CAAA,iBAAA,EAAA,UAAA,EAAA,SAAA,CAAA,EAAA,OAAA,EAAA,CAAA,eAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAAa,qBAAA,EAAA,QAAA,EAAA,yBAAA,EAAA,CAAA,EAAA,eAAA,EAAA,EAAA,CAAA,uBAAA,CAAA,OAAA,EAAA,aAAA,EAAA,EAAA,CAAA,iBAAA,CAAA,IAAA,EAAA,CAAA,CAAA;4FAIU,8BAA8B,EAAA,UAAA,EAAA,CAAA;kBAtB1C,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACT,oBAAA,QAAQ,EAAE,4BAA4B;AACtC,oBAAA,QAAQ,EAAE,CAAA;;;;;;;;;;;;;;;;AAgBT,EAAA,CAAA;oBACD,aAAa,EAAE,iBAAiB,CAAC,IAAI;oBACrC,eAAe,EAAE,uBAAuB,CAAC,OAAO;iBACjD,CAAA;;;ACvBD;;;AAGG;AA+CG,MAAO,2BAA4B,SAAQ,yBAAyB,CAAA;AA9C1E,IAAA,WAAA,GAAA;;AAkDE,QAAA,IAAe,CAAA,eAAA,GAAG,QAAQ,CAAC;KAM5B;IAJC,UAAU,CAAC,KAAK,EAAE,SAAS,EAAA;AACzB,QAAA,MAAM,OAAO,GAAG,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,IAAI,IAAI,IAAI,CAAC,SAAS,KAAK,SAAS,CAAC,CAAC;AAChF,QAAA,OAAO,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC;KAC3B;;yHATU,2BAA2B,EAAA,IAAA,EAAA,IAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;6GAA3B,2BAA2B,EAAA,QAAA,EAAA,yBAAA,EAAA,WAAA,EAAA,CAAA,EAAA,YAAA,EAAA,iBAAA,EAAA,SAAA,EACxB,uBAAuB,EA7C3B,WAAA,EAAA,IAAA,EAAA,CAAA,EAAA,eAAA,EAAA,IAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,EAAA,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAwCT,EAAA,CAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,CAAA,EAAA,IAAA,EAAAH,IAAA,CAAA,gBAAA,EAAA,QAAA,EAAA,YAAA,EAAA,MAAA,EAAA,CAAA,QAAA,EAAA,YAAA,EAAA,OAAA,CAAA,EAAA,OAAA,EAAA,CAAA,cAAA,EAAA,cAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,EAAA,CAAA,iBAAA,EAAA,QAAA,EAAA,aAAA,EAAA,MAAA,EAAA,CAAA,UAAA,EAAA,UAAA,EAAA,UAAA,EAAA,IAAA,EAAA,MAAA,EAAA,SAAA,EAAA,aAAA,EAAA,UAAA,EAAA,cAAA,EAAA,UAAA,EAAA,cAAA,EAAA,eAAA,EAAA,aAAA,EAAA,aAAA,EAAA,OAAA,EAAA,UAAA,CAAA,EAAA,OAAA,EAAA,CAAA,UAAA,EAAA,iBAAA,EAAA,aAAA,EAAA,cAAA,EAAA,QAAA,EAAA,QAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAAN,IAAA,CAAA,UAAA,EAAA,QAAA,EAAA,aAAA,EAAA,MAAA,EAAA,CAAA,UAAA,EAAA,UAAA,EAAA,WAAA,EAAA,OAAA,EAAA,UAAA,CAAA,EAAA,QAAA,EAAA,CAAA,YAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAAM,IAAA,CAAA,uBAAA,EAAA,QAAA,EAAA,oBAAA,EAAA,MAAA,EAAA,CAAA,KAAA,EAAA,MAAA,EAAA,UAAA,EAAA,YAAA,EAAA,gBAAA,EAAA,WAAA,EAAA,OAAA,EAAA,UAAA,CAAA,EAAA,QAAA,EAAA,CAAA,kBAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAAL,IAAA,CAAA,qBAAA,EAAA,QAAA,EAAA,kBAAA,EAAA,MAAA,EAAA,CAAA,SAAA,EAAA,SAAA,EAAA,OAAA,EAAA,KAAA,EAAA,QAAA,EAAA,WAAA,EAAA,aAAA,EAAA,kBAAA,EAAA,YAAA,EAAA,qBAAA,EAAA,gBAAA,EAAA,MAAA,EAAA,OAAA,EAAA,iBAAA,CAAA,EAAA,OAAA,EAAA,CAAA,UAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAAN,IAAA,CAAA,cAAA,EAAA,QAAA,EAAA,kBAAA,EAAA,MAAA,EAAA,CAAA,IAAA,EAAA,UAAA,EAAA,mBAAA,EAAA,YAAA,EAAA,OAAA,EAAA,MAAA,EAAA,UAAA,EAAA,UAAA,EAAA,aAAA,CAAA,EAAA,OAAA,EAAA,CAAA,QAAA,EAAA,MAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,gBAAA,EAAA,QAAA,EAAA,YAAA,EAAA,MAAA,EAAA,CAAA,IAAA,EAAA,MAAA,EAAA,UAAA,EAAA,UAAA,EAAA,OAAA,EAAA,QAAA,EAAA,OAAA,EAAA,MAAA,EAAA,MAAA,EAAA,OAAA,EAAA,UAAA,EAAA,SAAA,EAAA,OAAA,CAAA,EAAA,OAAA,EAAA,CAAA,QAAA,EAAA,MAAA,EAAA,OAAA,CAAA,EAAA,CAAA,EAAA,UAAA,EAAA,CAAA,EAAA,IAAA,EAAAe,qBAAA,EAAA,QAAA,EAAA,yBAAA,EAAA,EAAA,EAAA,IAAA,EAAAC,yBAAA,EAAA,QAAA,EAAA,6BAAA,EAAA,EAAA,EAAA,IAAA,EAAAd,EAAA,CAAA,oBAAA,EAAA,QAAA,EAAA,0FAAA,EAAA,EAAA,EAAA,IAAA,EAAAA,EAAA,CAAA,kBAAA,EAAA,QAAA,EAAA,aAAA,EAAA,MAAA,EAAA,CAAA,WAAA,CAAA,EAAA,OAAA,EAAA,CAAA,UAAA,CAAA,EAAA,QAAA,EAAA,CAAA,QAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAAA,EAAA,CAAA,eAAA,EAAA,QAAA,EAAA,2CAAA,EAAA,EAAA,EAAA,IAAA,EAAAA,EAAA,CAAA,eAAA,EAAA,QAAA,EAAA,mBAAA,EAAA,MAAA,EAAA,CAAA,iBAAA,EAAA,UAAA,EAAA,SAAA,CAAA,EAAA,OAAA,EAAA,CAAA,eAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAAe,qBAAA,EAAA,QAAA,EAAA,yBAAA,EAAA,EAAA,EAAA,IAAA,EAAAC,GAAA,CAAA,QAAA,EAAA,QAAA,EAAA,YAAA,EAAA,MAAA,EAAA,CAAA,UAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAAb,IAAA,CAAA,oBAAA,EAAA,QAAA,EAAA,mBAAA,EAAA,MAAA,EAAA,CAAA,iBAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAAM,IAAA,CAAA,SAAA,EAAA,QAAA,EAAA,0DAAA,EAAA,MAAA,EAAA,CAAA,UAAA,EAAA,IAAA,EAAA,aAAA,EAAA,UAAA,EAAA,MAAA,EAAA,OAAA,EAAA,UAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,uBAAA,EAAA,QAAA,EAAA,mBAAA,EAAA,MAAA,EAAA,CAAA,YAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAAT,EAAA,CAAA,oBAAA,EAAA,QAAA,EAAA,8MAAA,EAAA,EAAA,EAAA,IAAA,EAAAS,IAAA,CAAA,mBAAA,EAAA,QAAA,EAAA,eAAA,EAAA,MAAA,EAAA,CAAA,QAAA,EAAA,cAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,wBAAA,EAAA,QAAA,EAAA,cAAA,EAAA,EAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,4BAAA,EAAA,QAAA,EAAA,wBAAA,EAAA,MAAA,EAAA,CAAA,iBAAA,CAAA,EAAA,CAAA,EAAA,eAAA,EAAA,EAAA,CAAA,uBAAA,CAAA,OAAA,EAAA,aAAA,EAAA,EAAA,CAAA,iBAAA,CAAA,IAAA,EAAA,CAAA,CAAA;4FAIU,2BAA2B,EAAA,UAAA,EAAA,CAAA;kBA9CvC,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACT,oBAAA,QAAQ,EAAE,yBAAyB;AACnC,oBAAA,QAAQ,EAAE,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAwCT,EAAA,CAAA;oBACD,aAAa,EAAE,iBAAiB,CAAC,IAAI;oBACrC,eAAe,EAAE,uBAAuB,CAAC,OAAO;iBACjD,CAAA;8BAGC,eAAe,EAAA,CAAA;sBADd,YAAY;uBAAC,uBAAuB,CAAA;;;ACnDvC;;;AAGG;AA8CG,MAAO,+BAAgC,SAAQ,yBAAyB,CAAA;AA7C9E,IAAA,WAAA,GAAA;;AAiDE,QAAA,IAAe,CAAA,eAAA,GAAG,QAAQ,CAAC;KAK5B;IAHC,UAAU,CAAC,KAAK,EAAE,SAAS,EAAA;AACzB,QAAA,MAAM,OAAO,GAAG,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,IAAI,IAAI,IAAI,CAAC,SAAS,KAAK,SAAS,CAAC,CAAC;KACjF;;6HARU,+BAA+B,EAAA,IAAA,EAAA,IAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;iHAA/B,+BAA+B,EAAA,QAAA,EAAA,8BAAA,EAAA,WAAA,EAAA,CAAA,EAAA,YAAA,EAAA,iBAAA,EAAA,SAAA,EAC5B,uBAAuB,EA5C3B,WAAA,EAAA,IAAA,EAAA,CAAA,EAAA,eAAA,EAAA,IAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,EAAA,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAuCT,EAAA,CAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,CAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,gBAAA,EAAA,QAAA,EAAA,YAAA,EAAA,MAAA,EAAA,CAAA,QAAA,EAAA,YAAA,EAAA,OAAA,CAAA,EAAA,OAAA,EAAA,CAAA,cAAA,EAAA,cAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,EAAA,CAAA,iBAAA,EAAA,QAAA,EAAA,aAAA,EAAA,MAAA,EAAA,CAAA,UAAA,EAAA,UAAA,EAAA,UAAA,EAAA,IAAA,EAAA,MAAA,EAAA,SAAA,EAAA,aAAA,EAAA,UAAA,EAAA,cAAA,EAAA,UAAA,EAAA,cAAA,EAAA,eAAA,EAAA,aAAA,EAAA,aAAA,EAAA,OAAA,EAAA,UAAA,CAAA,EAAA,OAAA,EAAA,CAAA,UAAA,EAAA,iBAAA,EAAA,aAAA,EAAA,cAAA,EAAA,QAAA,EAAA,QAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAAN,IAAA,CAAA,UAAA,EAAA,QAAA,EAAA,aAAA,EAAA,MAAA,EAAA,CAAA,UAAA,EAAA,UAAA,EAAA,WAAA,EAAA,OAAA,EAAA,UAAA,CAAA,EAAA,QAAA,EAAA,CAAA,YAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAAM,IAAA,CAAA,uBAAA,EAAA,QAAA,EAAA,oBAAA,EAAA,MAAA,EAAA,CAAA,KAAA,EAAA,MAAA,EAAA,UAAA,EAAA,YAAA,EAAA,gBAAA,EAAA,WAAA,EAAA,OAAA,EAAA,UAAA,CAAA,EAAA,QAAA,EAAA,CAAA,kBAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAAL,IAAA,CAAA,yBAAA,EAAA,QAAA,EAAA,uBAAA,EAAA,MAAA,EAAA,CAAA,aAAA,EAAA,SAAA,EAAA,SAAA,EAAA,OAAA,EAAA,KAAA,EAAA,UAAA,EAAA,WAAA,EAAA,qBAAA,CAAA,EAAA,OAAA,EAAA,CAAA,UAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAAN,IAAA,CAAA,cAAA,EAAA,QAAA,EAAA,kBAAA,EAAA,MAAA,EAAA,CAAA,IAAA,EAAA,UAAA,EAAA,mBAAA,EAAA,YAAA,EAAA,OAAA,EAAA,MAAA,EAAA,UAAA,EAAA,UAAA,EAAA,aAAA,CAAA,EAAA,OAAA,EAAA,CAAA,QAAA,EAAA,MAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,gBAAA,EAAA,QAAA,EAAA,YAAA,EAAA,MAAA,EAAA,CAAA,IAAA,EAAA,MAAA,EAAA,UAAA,EAAA,UAAA,EAAA,OAAA,EAAA,QAAA,EAAA,OAAA,EAAA,MAAA,EAAA,MAAA,EAAA,OAAA,EAAA,UAAA,EAAA,SAAA,EAAA,OAAA,CAAA,EAAA,OAAA,EAAA,CAAA,QAAA,EAAA,MAAA,EAAA,OAAA,CAAA,EAAA,CAAA,EAAA,UAAA,EAAA,CAAA,EAAA,IAAA,EAAAe,qBAAA,EAAA,QAAA,EAAA,yBAAA,EAAA,EAAA,EAAA,IAAA,EAAAC,yBAAA,EAAA,QAAA,EAAA,6BAAA,EAAA,EAAA,EAAA,IAAA,EAAAd,EAAA,CAAA,oBAAA,EAAA,QAAA,EAAA,0FAAA,EAAA,EAAA,EAAA,IAAA,EAAAA,EAAA,CAAA,kBAAA,EAAA,QAAA,EAAA,aAAA,EAAA,MAAA,EAAA,CAAA,WAAA,CAAA,EAAA,OAAA,EAAA,CAAA,UAAA,CAAA,EAAA,QAAA,EAAA,CAAA,QAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAAA,EAAA,CAAA,eAAA,EAAA,QAAA,EAAA,2CAAA,EAAA,EAAA,EAAA,IAAA,EAAAA,EAAA,CAAA,eAAA,EAAA,QAAA,EAAA,mBAAA,EAAA,MAAA,EAAA,CAAA,iBAAA,EAAA,UAAA,EAAA,SAAA,CAAA,EAAA,OAAA,EAAA,CAAA,eAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAAe,qBAAA,EAAA,QAAA,EAAA,yBAAA,EAAA,EAAA,EAAA,IAAA,EAAAC,GAAA,CAAA,QAAA,EAAA,QAAA,EAAA,YAAA,EAAA,MAAA,EAAA,CAAA,UAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAAb,IAAA,CAAA,oBAAA,EAAA,QAAA,EAAA,mBAAA,EAAA,MAAA,EAAA,CAAA,iBAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAAM,IAAA,CAAA,SAAA,EAAA,QAAA,EAAA,0DAAA,EAAA,MAAA,EAAA,CAAA,UAAA,EAAA,IAAA,EAAA,aAAA,EAAA,UAAA,EAAA,MAAA,EAAA,OAAA,EAAA,UAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,2BAAA,EAAA,QAAA,EAAA,uBAAA,EAAA,MAAA,EAAA,CAAA,UAAA,EAAA,gBAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAAT,EAAA,CAAA,oBAAA,EAAA,QAAA,EAAA,8MAAA,EAAA,EAAA,EAAA,IAAA,EAAAS,IAAA,CAAA,mBAAA,EAAA,QAAA,EAAA,eAAA,EAAA,MAAA,EAAA,CAAA,QAAA,EAAA,cAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,wBAAA,EAAA,QAAA,EAAA,cAAA,EAAA,CAAA,EAAA,eAAA,EAAA,EAAA,CAAA,uBAAA,CAAA,OAAA,EAAA,aAAA,EAAA,EAAA,CAAA,iBAAA,CAAA,IAAA,EAAA,CAAA,CAAA;4FAIU,+BAA+B,EAAA,UAAA,EAAA,CAAA;kBA7C3C,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACT,oBAAA,QAAQ,EAAE,8BAA8B;AACxC,oBAAA,QAAQ,EAAE,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAuCT,EAAA,CAAA;oBACD,aAAa,EAAE,iBAAiB,CAAC,IAAI;oBACrC,eAAe,EAAE,uBAAuB,CAAC,OAAO;iBACjD,CAAA;8BAGC,eAAe,EAAA,CAAA;sBADd,YAAY;uBAAC,uBAAuB,CAAA;;;ACnDvC;;AAEG;AAmBG,MAAO,yBAA0B,SAAQ,yBAAyB,CAAA;AAlBxE,IAAA,WAAA,GAAA;;AAmBE,QAAA,IAAe,CAAA,eAAA,GAAG,SAAS,CAAC;KAC7B;;uHAFY,yBAAyB,EAAA,IAAA,EAAA,IAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;AAAzB,yBAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,yBAAyB,EAhB1B,QAAA,EAAA,uBAAA,EAAA,eAAA,EAAA,IAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,EAAA,CAAA;;;;;;;;;;;;AAYT,EAAA,CAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,CAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,gBAAA,EAAA,QAAA,EAAA,YAAA,EAAA,MAAA,EAAA,CAAA,QAAA,EAAA,YAAA,EAAA,OAAA,CAAA,EAAA,OAAA,EAAA,CAAA,cAAA,EAAA,cAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,EAAA,CAAA,iBAAA,EAAA,QAAA,EAAA,aAAA,EAAA,MAAA,EAAA,CAAA,UAAA,EAAA,UAAA,EAAA,UAAA,EAAA,IAAA,EAAA,MAAA,EAAA,SAAA,EAAA,aAAA,EAAA,UAAA,EAAA,cAAA,EAAA,UAAA,EAAA,cAAA,EAAA,eAAA,EAAA,aAAA,EAAA,aAAA,EAAA,OAAA,EAAA,UAAA,CAAA,EAAA,OAAA,EAAA,CAAA,UAAA,EAAA,iBAAA,EAAA,aAAA,EAAA,cAAA,EAAA,QAAA,EAAA,QAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAAN,IAAA,CAAA,UAAA,EAAA,QAAA,EAAA,aAAA,EAAA,MAAA,EAAA,CAAA,UAAA,EAAA,UAAA,EAAA,WAAA,EAAA,OAAA,EAAA,UAAA,CAAA,EAAA,QAAA,EAAA,CAAA,YAAA,CAAA,EAAA,CAAA,EAAA,UAAA,EAAA,CAAA,EAAA,IAAA,EAAAc,qBAAA,EAAA,QAAA,EAAA,yBAAA,EAAA,EAAA,EAAA,IAAA,EAAAC,yBAAA,EAAA,QAAA,EAAA,6BAAA,EAAA,EAAA,EAAA,IAAA,EAAApB,EAAA,CAAA,oBAAA,EAAA,QAAA,EAAA,0FAAA,EAAA,EAAA,EAAA,IAAA,EAAAA,EAAA,CAAA,kBAAA,EAAA,QAAA,EAAA,aAAA,EAAA,MAAA,EAAA,CAAA,WAAA,CAAA,EAAA,OAAA,EAAA,CAAA,UAAA,CAAA,EAAA,QAAA,EAAA,CAAA,QAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAAA,EAAA,CAAA,eAAA,EAAA,QAAA,EAAA,2CAAA,EAAA,EAAA,EAAA,IAAA,EAAAA,EAAA,CAAA,eAAA,EAAA,QAAA,EAAA,mBAAA,EAAA,MAAA,EAAA,CAAA,iBAAA,EAAA,UAAA,EAAA,SAAA,CAAA,EAAA,OAAA,EAAA,CAAA,eAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAAqB,qBAAA,EAAA,QAAA,EAAA,yBAAA,EAAA,EAAA,EAAA,IAAA,EAAAV,IAAA,CAAA,SAAA,EAAA,QAAA,EAAA,0DAAA,EAAA,MAAA,EAAA,CAAA,UAAA,EAAA,IAAA,EAAA,aAAA,EAAA,UAAA,EAAA,MAAA,EAAA,OAAA,EAAA,UAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAAX,EAAA,CAAA,YAAA,EAAA,QAAA,EAAA,gHAAA,EAAA,MAAA,EAAA,CAAA,KAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAAA,EAAA,CAAA,mBAAA,EAAA,QAAA,EAAA,iGAAA,EAAA,EAAA,EAAA,IAAA,EAAAA,EAAA,CAAA,oBAAA,EAAA,QAAA,EAAA,8MAAA,EAAA,CAAA,EAAA,eAAA,EAAA,EAAA,CAAA,uBAAA,CAAA,OAAA,EAAA,aAAA,EAAA,EAAA,CAAA,iBAAA,CAAA,IAAA,EAAA,CAAA,CAAA;4FAIU,yBAAyB,EAAA,UAAA,EAAA,CAAA;kBAlBrC,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACT,oBAAA,QAAQ,EAAE,uBAAuB;AACjC,oBAAA,QAAQ,EAAE,CAAA;;;;;;;;;;;;AAYT,EAAA,CAAA;oBACD,aAAa,EAAE,iBAAiB,CAAC,IAAI;oBACrC,eAAe,EAAE,uBAAuB,CAAC,OAAO;iBACjD,CAAA;;;ACpBD;;;AAGG;AA6BG,MAAO,6BAA8B,SAAQ,yBAAyB,CAAA;AA5B5E,IAAA,WAAA,GAAA;;AA6BE,QAAA,IAAe,CAAA,eAAA,GAAG,SAAS,CAAC;KAC7B;;2HAFY,6BAA6B,EAAA,IAAA,EAAA,IAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;AAA7B,6BAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,6BAA6B,EA1B9B,QAAA,EAAA,2BAAA,EAAA,eAAA,EAAA,IAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,EAAA,CAAA;;;;;;;;;;;;;;;;;;;;;;GAsBT,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,CAAA,EAAA,IAAA,EAAAW,IAAA,CAAA,gBAAA,EAAA,QAAA,EAAA,YAAA,EAAA,MAAA,EAAA,CAAA,QAAA,EAAA,YAAA,EAAA,OAAA,CAAA,EAAA,OAAA,EAAA,CAAA,cAAA,EAAA,cAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,EAAA,CAAA,iBAAA,EAAA,QAAA,EAAA,aAAA,EAAA,MAAA,EAAA,CAAA,UAAA,EAAA,UAAA,EAAA,UAAA,EAAA,IAAA,EAAA,MAAA,EAAA,SAAA,EAAA,aAAA,EAAA,UAAA,EAAA,cAAA,EAAA,UAAA,EAAA,cAAA,EAAA,eAAA,EAAA,aAAA,EAAA,aAAA,EAAA,OAAA,EAAA,UAAA,CAAA,EAAA,OAAA,EAAA,CAAA,UAAA,EAAA,iBAAA,EAAA,aAAA,EAAA,cAAA,EAAA,QAAA,EAAA,QAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAAN,IAAA,CAAA,UAAA,EAAA,QAAA,EAAA,aAAA,EAAA,MAAA,EAAA,CAAA,UAAA,EAAA,UAAA,EAAA,WAAA,EAAA,OAAA,EAAA,UAAA,CAAA,EAAA,QAAA,EAAA,CAAA,YAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAAC,IAAA,CAAA,cAAA,EAAA,QAAA,EAAA,kBAAA,EAAA,MAAA,EAAA,CAAA,IAAA,EAAA,UAAA,EAAA,mBAAA,EAAA,YAAA,EAAA,OAAA,EAAA,MAAA,EAAA,UAAA,EAAA,UAAA,EAAA,aAAA,CAAA,EAAA,OAAA,EAAA,CAAA,QAAA,EAAA,MAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,gBAAA,EAAA,QAAA,EAAA,YAAA,EAAA,MAAA,EAAA,CAAA,IAAA,EAAA,MAAA,EAAA,UAAA,EAAA,UAAA,EAAA,OAAA,EAAA,QAAA,EAAA,OAAA,EAAA,MAAA,EAAA,MAAA,EAAA,OAAA,EAAA,UAAA,EAAA,SAAA,EAAA,OAAA,CAAA,EAAA,OAAA,EAAA,CAAA,QAAA,EAAA,MAAA,EAAA,OAAA,CAAA,EAAA,CAAA,EAAA,UAAA,EAAA,CAAA,EAAA,IAAA,EAAAM,qBAAA,EAAA,QAAA,EAAA,yBAAA,EAAA,EAAA,EAAA,IAAA,EAAAC,yBAAA,EAAA,QAAA,EAAA,6BAAA,EAAA,EAAA,EAAA,IAAA,EAAAZ,EAAA,CAAA,oBAAA,EAAA,QAAA,EAAA,0FAAA,EAAA,EAAA,EAAA,IAAA,EAAAA,EAAA,CAAA,kBAAA,EAAA,QAAA,EAAA,aAAA,EAAA,MAAA,EAAA,CAAA,WAAA,CAAA,EAAA,OAAA,EAAA,CAAA,UAAA,CAAA,EAAA,QAAA,EAAA,CAAA,QAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAAA,EAAA,CAAA,eAAA,EAAA,QAAA,EAAA,2CAAA,EAAA,EAAA,EAAA,IAAA,EAAAA,EAAA,CAAA,eAAA,EAAA,QAAA,EAAA,mBAAA,EAAA,MAAA,EAAA,CAAA,iBAAA,EAAA,UAAA,EAAA,SAAA,CAAA,EAAA,OAAA,EAAA,CAAA,eAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAAa,qBAAA,EAAA,QAAA,EAAA,yBAAA,EAAA,EAAA,EAAA,IAAA,EAAAZ,GAAA,CAAA,QAAA,EAAA,QAAA,EAAA,YAAA,EAAA,MAAA,EAAA,CAAA,UAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAAG,IAAA,CAAA,oBAAA,EAAA,QAAA,EAAA,mBAAA,EAAA,MAAA,EAAA,CAAA,iBAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAAM,IAAA,CAAA,SAAA,EAAA,QAAA,EAAA,0DAAA,EAAA,MAAA,EAAA,CAAA,UAAA,EAAA,IAAA,EAAA,aAAA,EAAA,UAAA,EAAA,MAAA,EAAA,OAAA,EAAA,UAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAAV,EAAA,CAAA,mBAAA,EAAA,QAAA,EAAA,iGAAA,EAAA,EAAA,EAAA,IAAA,EAAAA,EAAA,CAAA,oBAAA,EAAA,QAAA,EAAA,8MAAA,EAAA,CAAA,EAAA,eAAA,EAAA,EAAA,CAAA,uBAAA,CAAA,OAAA,EAAA,aAAA,EAAA,EAAA,CAAA,iBAAA,CAAA,IAAA,EAAA,CAAA,CAAA;4FAIU,6BAA6B,EAAA,UAAA,EAAA,CAAA;kBA5BzC,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACT,oBAAA,QAAQ,EAAE,2BAA2B;AACrC,oBAAA,QAAQ,EAAE,CAAA;;;;;;;;;;;;;;;;;;;;;;AAsBT,EAAA,CAAA;oBACD,aAAa,EAAE,iBAAiB,CAAC,IAAI;oBACrC,eAAe,EAAE,uBAAuB,CAAC,OAAO;iBACjD,CAAA;;;AC/BD;;AAEG;AAkCG,MAAO,6BAA8B,SAAQ,yBAAyB,CAAA;AAjC5E,IAAA,WAAA,GAAA;;AAkCE,QAAA,IAAe,CAAA,eAAA,GAAG,YAAY,CAAC;KAChC;;2HAFY,6BAA6B,EAAA,IAAA,EAAA,IAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;AAA7B,6BAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,6BAA6B,EA/B9B,QAAA,EAAA,2BAAA,EAAA,eAAA,EAAA,IAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,EAAA,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;GA2BT,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,CAAA,EAAA,IAAA,EAAAU,IAAA,CAAA,gBAAA,EAAA,QAAA,EAAA,YAAA,EAAA,MAAA,EAAA,CAAA,QAAA,EAAA,YAAA,EAAA,OAAA,CAAA,EAAA,OAAA,EAAA,CAAA,cAAA,EAAA,cAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,EAAA,CAAA,iBAAA,EAAA,QAAA,EAAA,aAAA,EAAA,MAAA,EAAA,CAAA,UAAA,EAAA,UAAA,EAAA,UAAA,EAAA,IAAA,EAAA,MAAA,EAAA,SAAA,EAAA,aAAA,EAAA,UAAA,EAAA,cAAA,EAAA,UAAA,EAAA,cAAA,EAAA,eAAA,EAAA,aAAA,EAAA,aAAA,EAAA,OAAA,EAAA,UAAA,CAAA,EAAA,OAAA,EAAA,CAAA,UAAA,EAAA,iBAAA,EAAA,aAAA,EAAA,cAAA,EAAA,QAAA,EAAA,QAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAAN,IAAA,CAAA,UAAA,EAAA,QAAA,EAAA,aAAA,EAAA,MAAA,EAAA,CAAA,UAAA,EAAA,UAAA,EAAA,WAAA,EAAA,OAAA,EAAA,UAAA,CAAA,EAAA,QAAA,EAAA,CAAA,YAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAAC,IAAA,CAAA,cAAA,EAAA,QAAA,EAAA,kBAAA,EAAA,MAAA,EAAA,CAAA,IAAA,EAAA,UAAA,EAAA,mBAAA,EAAA,YAAA,EAAA,OAAA,EAAA,MAAA,EAAA,UAAA,EAAA,UAAA,EAAA,aAAA,CAAA,EAAA,OAAA,EAAA,CAAA,QAAA,EAAA,MAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,gBAAA,EAAA,QAAA,EAAA,YAAA,EAAA,MAAA,EAAA,CAAA,IAAA,EAAA,MAAA,EAAA,UAAA,EAAA,UAAA,EAAA,OAAA,EAAA,QAAA,EAAA,OAAA,EAAA,MAAA,EAAA,MAAA,EAAA,OAAA,EAAA,UAAA,EAAA,SAAA,EAAA,OAAA,CAAA,EAAA,OAAA,EAAA,CAAA,QAAA,EAAA,MAAA,EAAA,OAAA,CAAA,EAAA,CAAA,EAAA,UAAA,EAAA,CAAA,EAAA,IAAA,EAAAM,qBAAA,EAAA,QAAA,EAAA,yBAAA,EAAA,EAAA,EAAA,IAAA,EAAAC,yBAAA,EAAA,QAAA,EAAA,6BAAA,EAAA,EAAA,EAAA,IAAA,EAAAZ,EAAA,CAAA,oBAAA,EAAA,QAAA,EAAA,0FAAA,EAAA,EAAA,EAAA,IAAA,EAAAA,EAAA,CAAA,kBAAA,EAAA,QAAA,EAAA,aAAA,EAAA,MAAA,EAAA,CAAA,WAAA,CAAA,EAAA,OAAA,EAAA,CAAA,UAAA,CAAA,EAAA,QAAA,EAAA,CAAA,QAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAAA,EAAA,CAAA,eAAA,EAAA,QAAA,EAAA,2CAAA,EAAA,EAAA,EAAA,IAAA,EAAAA,EAAA,CAAA,eAAA,EAAA,QAAA,EAAA,mBAAA,EAAA,MAAA,EAAA,CAAA,iBAAA,EAAA,UAAA,EAAA,SAAA,CAAA,EAAA,OAAA,EAAA,CAAA,eAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAAa,qBAAA,EAAA,QAAA,EAAA,yBAAA,EAAA,EAAA,EAAA,IAAA,EAAAZ,GAAA,CAAA,QAAA,EAAA,QAAA,EAAA,YAAA,EAAA,MAAA,EAAA,CAAA,UAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAAG,IAAA,CAAA,oBAAA,EAAA,QAAA,EAAA,mBAAA,EAAA,MAAA,EAAA,CAAA,iBAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAAH,GAAA,CAAA,OAAA,EAAA,QAAA,EAAA,kBAAA,EAAA,MAAA,EAAA,CAAA,SAAA,EAAA,cAAA,EAAA,eAAA,CAAA,EAAA,CAAA,EAAA,eAAA,EAAA,EAAA,CAAA,uBAAA,CAAA,OAAA,EAAA,aAAA,EAAA,EAAA,CAAA,iBAAA,CAAA,IAAA,EAAA,CAAA,CAAA;4FAIU,6BAA6B,EAAA,UAAA,EAAA,CAAA;kBAjCzC,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACT,oBAAA,QAAQ,EAAE,2BAA2B;AACrC,oBAAA,QAAQ,EAAE,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;AA2BT,EAAA,CAAA;oBACD,aAAa,EAAE,iBAAiB,CAAC,IAAI;oBACrC,eAAe,EAAE,uBAAuB,CAAC,OAAO;iBACjD,CAAA;;;AClCD;;;;;AAKG;AAgDG,MAAO,6BAA8B,SAAQ,yBAAyB,CAAA;AA/C5E,IAAA,WAAA,GAAA;;AAgDE,QAAA,IAAe,CAAA,eAAA,GAAG,YAAY,CAAC;KA6BhC;AA3BC,IAAA,QAAQ,CAAC,SAA0B,EAAA;;QACjC,OAAO,CAAA,MAAA,SAAS,CAAC,KAAK,MAAE,IAAA,IAAA,EAAA,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAA,EAAA,CAAA,KAAK,KAAI,EAAE,CAAC;KACrC;IAED,GAAG,CAAC,KAAU,EAAE,SAA0B,EAAA;AACxC,QAAA,MAAM,KAAK,GAAG,KAAK,CAAC,KAAK,CAAC;AAC1B,QAAA,KAAK,CAAC,KAAK,GAAG,EAAE,CAAC;AACjB,QAAA,MAAM,UAAU,GAAG,KAAK,CAAC,KAAK,CAAC;QAC/B,IAAI,UAAU,KAAK,EAAE,EAAE;YACrB,MAAM,OAAO,GAAG,IAAI,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC;AACzC,YAAA,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,EAAE;AAC3B,gBAAA,SAAS,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,QAAQ,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC;AAC/C,aAAA;AAAM,iBAAA;AACL,gBAAA,SAAS,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,QAAQ,CAAC,CAAC,GAAG,OAAO,EAAE,UAAU,CAAC,CAAC,CAAC;AAC3D,aAAA;AACF,SAAA;KACF;IAED,MAAM,CAAC,aAAqB,EAAE,SAA0B,EAAA;QACtD,MAAM,OAAO,GAAG,IAAI,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC;QACzC,MAAM,KAAK,GAAG,OAAO,CAAC,OAAO,CAAC,aAAa,CAAC,CAAC;QAC7C,IAAI,KAAK,IAAI,CAAC,EAAE;AACd,YAAA,MAAM,QAAQ,GAAG,CAAC,GAAG,OAAO,CAAC,CAAA;AAC7B,YAAA,QAAQ,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC;YAC1B,SAAS,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC;AAC3C,SAAA;KACF;;2HA7BU,6BAA6B,EAAA,IAAA,EAAA,IAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;AAA7B,6BAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,6BAA6B,EA7C9B,QAAA,EAAA,2BAAA,EAAA,eAAA,EAAA,IAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,EAAA,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAmCT,EAAA,CAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,CAAA,EAAA,IAAA,EAAAS,IAAA,CAAA,gBAAA,EAAA,QAAA,EAAA,YAAA,EAAA,MAAA,EAAA,CAAA,QAAA,EAAA,YAAA,EAAA,OAAA,CAAA,EAAA,OAAA,EAAA,CAAA,cAAA,EAAA,cAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,EAAA,CAAA,iBAAA,EAAA,QAAA,EAAA,aAAA,EAAA,MAAA,EAAA,CAAA,UAAA,EAAA,UAAA,EAAA,UAAA,EAAA,IAAA,EAAA,MAAA,EAAA,SAAA,EAAA,aAAA,EAAA,UAAA,EAAA,cAAA,EAAA,UAAA,EAAA,cAAA,EAAA,eAAA,EAAA,aAAA,EAAA,aAAA,EAAA,OAAA,EAAA,UAAA,CAAA,EAAA,OAAA,EAAA,CAAA,UAAA,EAAA,iBAAA,EAAA,aAAA,EAAA,cAAA,EAAA,QAAA,EAAA,QAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAAN,IAAA,CAAA,UAAA,EAAA,QAAA,EAAA,aAAA,EAAA,MAAA,EAAA,CAAA,UAAA,EAAA,UAAA,EAAA,WAAA,EAAA,OAAA,EAAA,UAAA,CAAA,EAAA,QAAA,EAAA,CAAA,YAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAAC,EAAA,CAAA,YAAA,EAAA,QAAA,EAAA,gBAAA,EAAA,MAAA,EAAA,CAAA,mBAAA,EAAA,UAAA,EAAA,SAAA,EAAA,aAAA,EAAA,OAAA,EAAA,UAAA,EAAA,aAAA,EAAA,UAAA,EAAA,kBAAA,EAAA,YAAA,EAAA,UAAA,CAAA,EAAA,OAAA,EAAA,CAAA,QAAA,EAAA,aAAA,CAAA,EAAA,QAAA,EAAA,CAAA,cAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAAA,EAAA,CAAA,eAAA,EAAA,QAAA,EAAA,wBAAA,EAAA,MAAA,EAAA,CAAA,OAAA,EAAA,UAAA,EAAA,MAAA,EAAA,MAAA,EAAA,UAAA,EAAA,OAAA,EAAA,YAAA,EAAA,UAAA,EAAA,WAAA,CAAA,EAAA,OAAA,EAAA,CAAA,iBAAA,EAAA,WAAA,EAAA,SAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAAD,IAAA,CAAA,QAAA,EAAA,QAAA,EAAA,uBAAA,EAAA,MAAA,EAAA,CAAA,OAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAAL,EAAA,CAAA,iBAAA,EAAA,QAAA,EAAA,WAAA,EAAA,MAAA,EAAA,CAAA,QAAA,EAAA,OAAA,EAAA,OAAA,EAAA,OAAA,EAAA,MAAA,EAAA,SAAA,EAAA,QAAA,EAAA,KAAA,EAAA,MAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAAC,IAAA,CAAA,uBAAA,EAAA,QAAA,EAAA,mBAAA,EAAA,MAAA,EAAA,CAAA,UAAA,EAAA,WAAA,EAAA,aAAA,EAAA,YAAA,EAAA,UAAA,EAAA,UAAA,CAAA,EAAA,OAAA,EAAA,CAAA,gBAAA,EAAA,iBAAA,CAAA,EAAA,QAAA,EAAA,CAAA,kBAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAAC,IAAA,CAAA,cAAA,EAAA,QAAA,EAAA,kBAAA,EAAA,MAAA,EAAA,CAAA,IAAA,EAAA,UAAA,EAAA,mBAAA,EAAA,YAAA,EAAA,OAAA,EAAA,MAAA,EAAA,UAAA,EAAA,UAAA,EAAA,aAAA,CAAA,EAAA,OAAA,EAAA,CAAA,QAAA,EAAA,MAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,gBAAA,EAAA,QAAA,EAAA,YAAA,EAAA,MAAA,EAAA,CAAA,IAAA,EAAA,MAAA,EAAA,UAAA,EAAA,UAAA,EAAA,OAAA,EAAA,QAAA,EAAA,OAAA,EAAA,MAAA,EAAA,MAAA,EAAA,OAAA,EAAA,UAAA,EAAA,SAAA,EAAA,OAAA,CAAA,EAAA,OAAA,EAAA,CAAA,QAAA,EAAA,MAAA,EAAA,OAAA,CAAA,EAAA,CAAA,EAAA,UAAA,EAAA,CAAA,EAAA,IAAA,EAAAK,qBAAA,EAAA,QAAA,EAAA,yBAAA,EAAA,EAAA,EAAA,IAAA,EAAAC,yBAAA,EAAA,QAAA,EAAA,6BAAA,EAAA,EAAA,EAAA,IAAA,EAAAC,EAAA,CAAA,oBAAA,EAAA,QAAA,EAAA,0FAAA,EAAA,EAAA,EAAA,IAAA,EAAAA,EAAA,CAAA,kBAAA,EAAA,QAAA,EAAA,aAAA,EAAA,MAAA,EAAA,CAAA,WAAA,CAAA,EAAA,OAAA,EAAA,CAAA,UAAA,CAAA,EAAA,QAAA,EAAA,CAAA,QAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAAA,EAAA,CAAA,eAAA,EAAA,QAAA,EAAA,2CAAA,EAAA,EAAA,EAAA,IAAA,EAAAA,EAAA,CAAA,eAAA,EAAA,QAAA,EAAA,mBAAA,EAAA,MAAA,EAAA,CAAA,iBAAA,EAAA,UAAA,EAAA,SAAA,CAAA,EAAA,OAAA,EAAA,CAAA,eAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAAC,qBAAA,EAAA,QAAA,EAAA,yBAAA,EAAA,EAAA,EAAA,IAAA,EAAA,GAAA,CAAA,QAAA,EAAA,QAAA,EAAA,YAAA,EAAA,MAAA,EAAA,CAAA,UAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAAL,IAAA,CAAA,oBAAA,EAAA,QAAA,EAAA,mBAAA,EAAA,MAAA,EAAA,CAAA,iBAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,GAAA,CAAA,OAAA,EAAA,QAAA,EAAA,kBAAA,EAAA,MAAA,EAAA,CAAA,SAAA,EAAA,cAAA,EAAA,eAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAAC,EAAA,CAAA,cAAA,EAAA,QAAA,EAAA,kBAAA,EAAA,EAAA,EAAA,IAAA,EAAAA,EAAA,CAAA,aAAA,EAAA,QAAA,EAAA,sBAAA,EAAA,MAAA,EAAA,CAAA,wBAAA,EAAA,gCAAA,EAAA,aAAA,EAAA,IAAA,EAAA,UAAA,CAAA,EAAA,OAAA,EAAA,CAAA,uBAAA,CAAA,EAAA,QAAA,EAAA,CAAA,eAAA,EAAA,kBAAA,CAAA,EAAA,CAAA,EAAA,eAAA,EAAA,EAAA,CAAA,uBAAA,CAAA,OAAA,EAAA,aAAA,EAAA,EAAA,CAAA,iBAAA,CAAA,IAAA,EAAA,CAAA,CAAA;4FAUU,6BAA6B,EAAA,UAAA,EAAA,CAAA;kBA/CzC,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACT,oBAAA,QAAQ,EAAE,2BAA2B;AACrC,oBAAA,QAAQ,EAAE,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAmCT,EAAA,CAAA;oBACD,aAAa,EAAE,iBAAiB,CAAC,IAAI;;;;;;;oBAOrC,eAAe,EAAE,uBAAuB,CAAC,OAAO;iBACjD,CAAA;;;AChDD,MAAMgB,iBAAe,GAAc;AACjC,IAAA,KAAK,EAAE,IAAI;AACX,IAAA,QAAQ,EAAE,IAAI;AACd,IAAA,KAAK,EAAE,IAAI;CACZ,CAAC;MAWW,uBAAuB,CAAA;IASlC,WACS,CAAA,GAAwB,EACxB,MAAwB,EACvB,gBAAkC,EAClC,WAAwB,EACxB,GAAsB,EAAA;AAJvB,QAAA,IAAG,CAAA,GAAA,GAAH,GAAG,CAAqB;AACxB,QAAA,IAAM,CAAA,MAAA,GAAN,MAAM,CAAkB;AACvB,QAAA,IAAgB,CAAA,gBAAA,GAAhB,gBAAgB,CAAkB;AAClC,QAAA,IAAW,CAAA,WAAA,GAAX,WAAW,CAAa;AACxB,QAAA,IAAG,CAAA,GAAA,GAAH,GAAG,CAAmB;QAbvB,IAAA,CAAA,WAAW,GAAW,GAAG,GAAG,WAAW,CAAC,GAAG,CAAC;;AAMpC,QAAA,IAAA,CAAA,UAAU,GAAG,IAAI,OAAO,EAAQ,CAAC;KAQ9C;IAEJ,QAAQ,GAAA;QACN,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,gBAAgB,CAAC,OAAoB,CAAC;AAC7D,QAAA,IAAI,CAAC,WAAW,GAAG,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC;AAC5D,QAAA,KAAK,CAAC,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,YAAY,EAAE,IAAI,CAAC,GAAG,CAAC,YAAY,CAAC;AAC9D,aAAA,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;aAChC,SAAS,CAAC,MAAM,IAAI,CAAC,GAAG,CAAC,YAAY,EAAE,CAAC,CAAC;KAC7C;IAED,WAAW,GAAA;AACT,QAAA,IAAI,CAAC,UAAU,CAAC,IAAI,EAAE,CAAC;AACvB,QAAA,IAAI,CAAC,UAAU,CAAC,QAAQ,EAAE,CAAC;KAC5B;AAED,IAAA,iBAAiB,CAAC,KAAa,EAAA;AAC7B,QAAA,MAAM,IAAI,GAAG,CAAI,CAAA,EAAA,KAAK,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,CAAC,CAAA,CAAE,CAAC;AAC1C,QAAA,IAAI,IAAI,KAAK,IAAI,CAAC,WAAW,EAAE;AAC7B,YAAA,MAAM,OAAO,GAAG,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC,KAAK,CAAC;AAC5D,YAAA,IAAI,CAAC,UAAU,CAAC,QAAQ,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC,UAAU,CAAC,QAAQ,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;YAC5E,OAAO,IAAI,CAAC,UAAU,CAAC,QAAQ,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;AAClD,YAAA,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC;AACxB,YAAA,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC;AACxD,YAAA,IAAI,CAAC,GAAG,CAAC,YAAY,EAAE,CAAC;AACzB,SAAA;KACF;AAED,IAAA,IAAI,IAAI,GAAA;QACN,OAAO,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,IAAI,CAAC,WAAW,CAAc,CAAC;KAC3D;AAED,IAAA,YAAY,CAAC,IAAU,EAAA;QACrB,MAAM,QAAQ,GAAG,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,CAAC;AACzC,QAAA,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;AACzB,QAAA,IAAI,CAAC,GAAG,CAAC,YAAY,EAAE,CAAC;KACzB;AAED,IAAA,eAAe,CAAC,KAAa,EAAA;AAC3B,QAAA,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;AAC1B,QAAA,IAAI,CAAC,GAAG,CAAC,YAAY,EAAE,CAAC;KACzB;IAED,YAAY,CAAC,EAAE,KAAK,EAAE,QAAQ,EAAE,KAAK,KAAgBA,iBAAe,EAAA;AAClE,QAAA,OAAO,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC;AAC5B,YAAA,KAAK,EAAE,CAAC,KAAK,EAAE,UAAU,CAAC,QAAQ,CAAC;AACnC,YAAA,QAAQ,EAAE,CAAC,QAAQ,EAAE,UAAU,CAAC,QAAQ,CAAC;YACzC,KAAK,EAAE,CAAC,KAAK,CAAC;AACf,SAAA,CAAC,CAAC;KACJ;AAED,IAAA,aAAa,CAAC,OAAgB,EAAA;QAC5B,IAAK,IAAI,CAAC,UAAU,CAAC,MAAoB,CAAC,MAAM,GAAG,CAAC;AAAE,YAAA,OAAO,KAAK,CAAC;AACnE,QAAA,OAAO,IAAI,CAAC,IAAI,CAAC,MAAM,IAAI,CAAC,CAAC;KAC9B;;qHApEU,uBAAuB,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAAnB,mBAAA,EAAA,EAAA,EAAA,KAAA,EAAAC,EAAA,CAAA,gBAAA,EAAA,EAAA,EAAA,KAAA,EAAA,EAAA,CAAA,gBAAA,EAAA,EAAA,EAAA,KAAA,EAAA,EAAA,CAAA,WAAA,EAAA,EAAA,EAAA,KAAA,EAAA,EAAA,CAAA,iBAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;yGAAvB,uBAAuB,EAAA,QAAA,EAAA,sBAAA,EAAA,MAAA,EAAA,EAAA,WAAA,EAAA,aAAA,EAAA,UAAA,EAAA,YAAA,EAAA,EAAA,IAAA,EAAA,EAAA,cAAA,EAAA,sBAAA,EAAA,EAAA,SAAA,EALvB,CAAC,EAAE,OAAO,EAAE,iBAAiB,EAAE,WAAW,EAAE,UAAU,CAAC,MAAM,uBAAuB,CAAC,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,EClBlH,wzDA4BM,EAAA,MAAA,EAAA,CAAA,uLAAA,CAAA,EAAA,UAAA,EAAA,CAAA,EAAA,IAAA,EAAA,EAAA,CAAA,gBAAA,EAAA,QAAA,EAAA,wBAAA,EAAA,MAAA,EAAA,CAAA,WAAA,EAAA,OAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,EAAA,CAAA,eAAA,EAAA,QAAA,EAAA,oBAAA,EAAA,MAAA,EAAA,CAAA,WAAA,EAAA,OAAA,EAAA,SAAA,EAAA,MAAA,EAAA,KAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAAJ,IAAA,CAAA,mBAAA,EAAA,QAAA,EAAA,eAAA,EAAA,MAAA,EAAA,CAAA,sBAAA,EAAA,oBAAA,EAAA,gBAAA,EAAA,MAAA,EAAA,gBAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,cAAA,EAAA,UAAA,EAAA,0BAAA,CAAA,EAAA,OAAA,EAAA,CAAA,SAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAAC,IAAA,CAAA,iBAAA,EAAA,QAAA,EAAA,2BAAA,EAAA,MAAA,EAAA,CAAA,OAAA,EAAA,MAAA,EAAA,MAAA,EAAA,OAAA,EAAA,SAAA,EAAA,MAAA,EAAA,UAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAAC,IAAA,CAAA,YAAA,EAAA,QAAA,EAAA,eAAA,EAAA,MAAA,EAAA,CAAA,UAAA,EAAA,OAAA,CAAA,EAAA,QAAA,EAAA,CAAA,cAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,UAAA,EAAA,QAAA,EAAA,aAAA,EAAA,MAAA,EAAA,CAAA,UAAA,EAAA,UAAA,EAAA,WAAA,EAAA,OAAA,EAAA,UAAA,CAAA,EAAA,QAAA,EAAA,CAAA,YAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,SAAA,EAAA,QAAA,EAAA,yBAAA,EAAA,EAAA,EAAA,IAAA,EAAAqB,yBAAA,EAAA,QAAA,EAAA,wBAAA,EAAA,MAAA,EAAA,CAAA,OAAA,EAAA,SAAA,EAAA,UAAA,EAAA,YAAA,CAAA,EAAA,CAAA,EAAA,UAAA,EAAA,CAAA,EAAA,IAAA,EAAA,EAAA,CAAA,oBAAA,EAAA,QAAA,EAAA,0FAAA,EAAA,EAAA,EAAA,IAAA,EAAA,EAAA,CAAA,kBAAA,EAAA,QAAA,EAAA,aAAA,EAAA,MAAA,EAAA,CAAA,WAAA,CAAA,EAAA,OAAA,EAAA,CAAA,UAAA,CAAA,EAAA,QAAA,EAAA,CAAA,QAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAArB,IAAA,CAAA,YAAA,EAAA,QAAA,EAAA,OAAA,EAAA,MAAA,EAAA,CAAA,KAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,EAAA,CAAA,aAAA,EAAA,QAAA,EAAA,iBAAA,EAAA,MAAA,EAAA,CAAA,eAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAAO,GAAA,CAAA,OAAA,EAAA,QAAA,EAAA,kBAAA,EAAA,MAAA,EAAA,CAAA,SAAA,EAAA,cAAA,EAAA,eAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,EAAA,CAAA,aAAA,EAAA,QAAA,EAAA,iBAAA,EAAA,MAAA,EAAA,CAAA,eAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAAA,GAAA,CAAA,IAAA,EAAA,QAAA,EAAA,QAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,UAAA,EAAA,UAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAAP,IAAA,CAAA,mBAAA,EAAA,QAAA,EAAA,SAAA,EAAA,MAAA,EAAA,CAAA,OAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,gBAAA,EAAA,QAAA,EAAA,6HAAA,EAAA,MAAA,EAAA,CAAA,SAAA,EAAA,GAAA,EAAA,aAAA,EAAA,IAAA,EAAA,cAAA,EAAA,IAAA,EAAA,YAAA,EAAA,IAAA,EAAA,eAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,CAAA,EAAA,CAAA,EAAA,eAAA,EAAA,EAAA,CAAA,uBAAA,CAAA,MAAA,EAAA,CAAA,CAAA;4FDLO,uBAAuB,EAAA,UAAA,EAAA,CAAA;kBAVnC,SAAS;+BACE,sBAAsB,EAAA,eAAA,EAGf,uBAAuB,CAAC,MAAM,EAAA,SAAA,EACpC,CAAC,EAAE,OAAO,EAAE,iBAAiB,EAAE,WAAW,EAAE,UAAU,CAAC,MAA6B,uBAAA,CAAC,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,EAC1G,IAAA,EAAA;AACJ,wBAAA,KAAK,EAAE,sBAAsB;qBAC9B,EAAA,QAAA,EAAA,wzDAAA,EAAA,MAAA,EAAA,CAAA,uLAAA,CAAA,EAAA,CAAA;+NAGQ,WAAW,EAAA,CAAA;sBAAnB,KAAK;gBACG,UAAU,EAAA,CAAA;sBAAlB,KAAK;;;AEJR,MAAM,eAAe,GAAc;AACjC,IAAA,KAAK,EAAE,IAAI;AACX,IAAA,QAAQ,EAAE,IAAI;AACd,IAAA,KAAK,EAAE,IAAI;CACZ,CAAC;MAeW,wBAAwB,CAAA;AAanC,IAAA,WAAA,CACU,gBAAkC,EAClC,WAAwB,EACxB,GAAsB,EACvB,GAAwB,EAAA;AAHvB,QAAA,IAAgB,CAAA,gBAAA,GAAhB,gBAAgB,CAAkB;AAClC,QAAA,IAAW,CAAA,WAAA,GAAX,WAAW,CAAa;AACxB,QAAA,IAAG,CAAA,GAAA,GAAH,GAAG,CAAmB;AACvB,QAAA,IAAG,CAAA,GAAA,GAAH,GAAG,CAAqB;AAdxB,QAAA,IAAA,CAAA,gBAAgB,GAAG,CAAC,WAAW,CAAC,GAAG,EAAE,WAAW,CAAC,EAAE,EAAE,WAAW,CAAC,GAAG,CAAC,CAAC;;AAQ9D,QAAA,IAAA,CAAA,UAAU,GAAG,IAAI,OAAO,EAAQ,CAAC;KAO9C;IAEJ,QAAQ,GAAA;QACN,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,gBAAgB,CAAC,OAAoB,CAAC;QAC7D,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC;YACtC,QAAQ,EAAE,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC,EAAE,CAAC;AACrC,SAAA,CAAC,CAAC;QAEH,IAAI,CAAC,UAAU,CAAC,YAAY,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,KAAK,KAAI;AAChF,YAAA,OAAO,CAAC,OAAO,EAAE,CAAC,IAAI,CAAC,MAAK;gBAC1B,IAAI,CAAC,cAAc,CAAC,KAAK,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC;AAC7C,gBAAA,IAAI,CAAC,GAAG,CAAC,YAAY,EAAE,CAAC;AAC1B,aAAC,CAAC,CAAC;AACL,SAAC,CAAC,CAAC;QACH,IAAI,CAAC,SAAS,CAAC,YAAY;AACxB,aAAA,IAAI,CACH,QAAQ,CAAC,MAAM,QAAQ,CAAC,EAAE,CAAC,CAAC,EAC5B,SAAS,CAAC,IAAI,CAAC,UAAU,CAAC,CAC3B;AACA,aAAA,SAAS,CAAC,CAAC,KAAK,KAAI;AACnB,YAAA,MAAM,MAAM,GAAG,KAAK,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,EAAE,EAAE,CAAC,KAAI;gBAC7C,MAAM,GAAG,GAAG,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC;gBAC/B,IAAI,EAAE,CAAC,GAAG,CAAC,CAAC,MAAM,KAAK,CAAC,EAAE;AACxB,oBAAA,IAAI,CAAC,sBAAsB,CAAC,CAAC,CAAC,CAAC;AAChC,iBAAA;gBACD,OAAO,EAAE,CAAC,GAAG,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC;AAC5B,aAAC,CAAC,CAAC;AAEH,YAAA,OAAO,CAAC,OAAO,EAAE,CAAC,IAAI,CAAC,MAAK;gBAC1B,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC,QAAQ,CAAC,MAAM,EAAE,EAAE,SAAS,EAAE,KAAK,EAAE,CAAC,CAAC;AAC7E,gBAAA,IAAI,CAAC,GAAG,CAAC,YAAY,EAAE,CAAC;AAC1B,aAAC,CAAC,CAAC;AACL,SAAC,CAAC,CAAC;KACN;IAED,qBAAqB,GAAA;QACnB,IAAI,CAAC,6BAA6B,EAAE,CAAC;AACrC,QAAA,IAAI,CAAC,GAAG,CAAC,aAAa,EAAE,CAAC;KAC1B;IAED,eAAe,GAAA;QACb,IAAI,CAAC,kBAAkB,EAAE,CAAC;KAC3B;IAED,WAAW,GAAA;AACT,QAAA,IAAI,CAAC,UAAU,CAAC,IAAI,EAAE,CAAC;AACvB,QAAA,IAAI,CAAC,UAAU,CAAC,QAAQ,EAAE,CAAC;KAC5B;AAEO,IAAA,gBAAgB,CAAC,KAAc,EAAA;QACrC,OAAO,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,KAAK,CAAC,CAAC,GAAG,KAAK,CAAC,MAAM,EAAE,KAAK,EAAE,MAAM,CAAC,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC;KACjF;AAEO,IAAA,cAAc,CAAC,KAAqC,EAAA;AAC1D,QAAA,IAAI,KAAK,CAAC,MAAM,IAAI,IAAI,CAAC,gBAAgB,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,EAAE;AACnD,YAAA,KAAK,CAAC,OAAO,CAAC,CAAC,EAAE,KAAK,IAAI,CAAC,iBAAiB,CAAC,EAAE,CAAC,CAAC,CAAC;AACnD,SAAA;AAAM,aAAA;YACL,IAAI,CAAC,iBAAiB,CAAC,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC,CAAC;AACzC,SAAA;KACF;AAED,IAAA,IAAI,IAAI,GAAA;QACN,OAAO,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,UAAU,CAAc,CAAC;KACpD;IAED,iBAAiB,CAAC,OAAY,EAAE,IAAI,EAAE,CAAC,eAAe,CAAC,EAAE,EAAA;AACvD,QAAA,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC,CAAC,CAAC;AAC7C,QAAA,IAAI,CAAC,GAAG,CAAC,YAAY,EAAE,CAAC;KACzB;AAED,IAAA,iBAAiB,CAAC,IAAoB,EAAA;QACpC,MAAM,QAAQ,GAAG,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,CAAC,GAAG,EAAE,GAAG,CAAC,KAAI;AAC/D,YAAA,OAAA,MAAA,CAAA,MAAA,CAAA,MAAA,CAAA,MAAA,CAAA,EAAA,EACK,GAAG,CAAA,EAAA,EACN,CAAC,GAAG,GAAG,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,EAAE,KAAK,IAAI,CAAC,YAAY,CAAC,EAAE,CAAC,CAAC,CAAC,EACrE,CAAA,CAAA;SACH,EAAE,EAAE,CAAC,CAAC;QACP,OAAO,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC;KACzC;IAED,YAAY,CAAC,EAAE,KAAK,EAAE,QAAQ,EAAE,KAAK,KAAgB,eAAe,EAAA;AAClE,QAAA,OAAO,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC;AAC5B,YAAA,KAAK,EAAE,CAAC,KAAK,EAAE,UAAU,CAAC,QAAQ,CAAC;AACnC,YAAA,QAAQ,EAAE,CAAC,QAAQ,EAAE,UAAU,CAAC,QAAQ,CAAC;YACzC,KAAK,EAAE,CAAC,KAAK,CAAC;AACf,SAAA,CAAC,CAAC;KACJ;AAED,IAAA,sBAAsB,CAAC,KAAa,EAAA;AAClC,QAAA,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,KAAK,EAAE,EAAE,SAAS,EAAE,KAAK,EAAE,CAAC,CAAC;KACjD;IAED,kBAAkB,GAAA;AAChB,QAAA,OAAO,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE;AACvB,YAAA,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC;AACvB,SAAA;KACF;IAEO,6BAA6B,GAAA;QACnC,IAAI,CAAC,GAAG,CAAC,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC;QAC9B,IAAI,CAAC,GAAG,CAAC,UAAU,GAAG,IAAI,CAAC,UAAU,CAAC;QACtC,IAAI,CAAC,GAAG,CAAC,gBAAgB,GAAG,IAAI,CAAC,gBAAiC,CAAC;KACpE;IAEO,kBAAkB,GAAA;AACxB,QAAA,MAAM,IAAI,GAAG,CAAC,GAAG,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,iBAAiB,CAAC,CAAC,CAAC;AACrD,QAAA,IAAI,CAAC,OAAO,CAAC,CAAC,QAAQ,KAAI;AACxB,YAAA,IAAI,CAAC,GAAG,CAAC,gBAAgB,CAAC,QAAQ,CAAC,CAAC;AACtC,SAAC,CAAC,CAAC;KACJ;;sHA/HU,wBAAwB,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAAS,EAAA,CAAA,gBAAA,EAAA,EAAA,EAAA,KAAA,EAAAA,EAAA,CAAA,WAAA,EAAA,EAAA,EAAA,KAAA,EAAA,EAAA,CAAA,iBAAA,EAAA,EAAA,EAAA,KAAA,EAAAZ,mBAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;AAAxB,wBAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,wBAAwB,EATxB,QAAA,EAAA,uBAAA,EAAA,MAAA,EAAA,EAAA,MAAA,EAAA,QAAA,EAAA,WAAA,EAAA,aAAA,EAAA,gBAAA,EAAA,kBAAA,EAAA,UAAA,EAAA,YAAA,EAAA,EAAA,IAAA,EAAA,EAAA,cAAA,EAAA,uBAAA,EAAA,EAAA,SAAA,EAAA;AACT,QAAA,EAAE,OAAO,EAAE,iBAAiB,EAAE,WAAW,EAAE,UAAU,CAAC,MAAM,wBAAwB,CAAC,EAAE,KAAK,EAAE,IAAI,EAAE;AACpG,QAAA,EAAE,OAAO,EAAE,qBAAqB,EAAE,WAAW,EAAE,wBAAwB,EAAE;AACzE,QAAA,EAAE,OAAO,EAAE,mBAAmB,EAAE,QAAQ,EAAE,mBAAmB,EAAE;AAChE,KAAA,EAWgB,OAAA,EAAA,CAAA,EAAA,YAAA,EAAA,mBAAA,EAAA,SAAA,EAAA,qBAAqB,gDC9CxC,slDAkCI,EAAA,MAAA,EAAA,CAAA,wGAAA,CAAA,EAAA,UAAA,EAAA,CAAA,EAAA,IAAA,EAAAM,EAAA,CAAA,gBAAA,EAAA,QAAA,EAAA,wBAAA,EAAA,MAAA,EAAA,CAAA,WAAA,EAAA,OAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAAC,IAAA,CAAA,SAAA,EAAA,QAAA,EAAA,yBAAA,EAAA,EAAA,EAAA,IAAA,EAAAkB,uBAAA,EAAA,QAAA,EAAA,sBAAA,EAAA,MAAA,EAAA,CAAA,aAAA,EAAA,YAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAAC,yBAAA,EAAA,QAAA,EAAA,uBAAA,EAAA,EAAA,EAAA,IAAA,EAAAC,2BAAA,EAAA,QAAA,EAAA,yBAAA,EAAA,EAAA,EAAA,IAAA,EAAAC,+BAAA,EAAA,QAAA,EAAA,8BAAA,EAAA,EAAA,EAAA,IAAA,EAAAC,6BAAA,EAAA,QAAA,EAAA,2BAAA,EAAA,EAAA,EAAA,IAAA,EAAAC,6BAAA,EAAA,QAAA,EAAA,2BAAA,EAAA,EAAA,EAAA,IAAA,EAAAC,8BAAA,EAAA,QAAA,EAAA,4BAAA,EAAA,EAAA,EAAA,IAAA,EAAAC,8BAAA,EAAA,QAAA,EAAA,4BAAA,EAAA,EAAA,EAAA,IAAA,EAAAC,6BAAA,EAAA,QAAA,EAAA,2BAAA,EAAA,CAAA,EAAA,UAAA,EAAA,CAAA,EAAA,IAAA,EAAArB,EAAA,CAAA,aAAA,EAAA,QAAA,EAAA,8CAAA,EAAA,EAAA,EAAA,IAAA,EAAAA,EAAA,CAAA,oBAAA,EAAA,QAAA,EAAA,0FAAA,EAAA,EAAA,EAAA,IAAA,EAAAA,EAAA,CAAA,kBAAA,EAAA,QAAA,EAAA,aAAA,EAAA,MAAA,EAAA,CAAA,WAAA,CAAA,EAAA,OAAA,EAAA,CAAA,UAAA,CAAA,EAAA,QAAA,EAAA,CAAA,QAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAAA,EAAA,CAAA,aAAA,EAAA,QAAA,EAAA,iBAAA,EAAA,MAAA,EAAA,CAAA,eAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAAsB,GAAA,CAAA,OAAA,EAAA,QAAA,EAAA,kBAAA,EAAA,MAAA,EAAA,CAAA,SAAA,EAAA,cAAA,EAAA,eAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAAA,GAAA,CAAA,IAAA,EAAA,QAAA,EAAA,QAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,UAAA,EAAA,UAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA3B,IAAA,CAAA,gBAAA,EAAA,QAAA,EAAA,6HAAA,EAAA,MAAA,EAAA,CAAA,SAAA,EAAA,GAAA,EAAA,aAAA,EAAA,IAAA,EAAA,cAAA,EAAA,IAAA,EAAA,YAAA,EAAA,IAAA,EAAA,eAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAAK,EAAA,CAAA,aAAA,EAAA,QAAA,EAAA,iBAAA,EAAA,MAAA,EAAA,CAAA,eAAA,CAAA,EAAA,CAAA,EAAA,eAAA,EAAA,EAAA,CAAA,uBAAA,CAAA,MAAA,EAAA,CAAA,CAAA;4FDMS,wBAAwB,EAAA,UAAA,EAAA,CAAA;kBAdpC,SAAS;AACE,YAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,uBAAuB,EAGhB,eAAA,EAAA,uBAAuB,CAAC,MAAM,EACpC,SAAA,EAAA;AACT,wBAAA,EAAE,OAAO,EAAE,iBAAiB,EAAE,WAAW,EAAE,UAAU,CAAC,8BAA8B,CAAC,EAAE,KAAK,EAAE,IAAI,EAAE;AACpG,wBAAA,EAAE,OAAO,EAAE,qBAAqB,EAAE,WAAW,0BAA0B,EAAE;AACzE,wBAAA,EAAE,OAAO,EAAE,mBAAmB,EAAE,QAAQ,EAAE,mBAAmB,EAAE;AAChE,qBAAA,EACK,IAAA,EAAA;AACJ,wBAAA,KAAK,EAAE,uBAAuB;qBAC/B,EAAA,QAAA,EAAA,slDAAA,EAAA,MAAA,EAAA,CAAA,wGAAA,CAAA,EAAA,CAAA;gMAGQ,MAAM,EAAA,CAAA;sBAAd,KAAK;gBACG,WAAW,EAAA,CAAA;sBAAnB,KAAK;gBACG,gBAAgB,EAAA,CAAA;sBAAxB,KAAK;gBACG,UAAU,EAAA,CAAA;sBAAlB,KAAK;gBAEyD,iBAAiB,EAAA,CAAA;sBAA/E,eAAe;gBAAC,IAAA,EAAA,CAAA,qBAAqB,EAAE,EAAE,WAAW,EAAE,IAAI,EAAE,CAAA;;;ME0DlD,sBAAsB,CAAA;;oHAAtB,sBAAsB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,QAAA,EAAA,CAAA,CAAA;AAAtB,sBAAA,CAAA,IAAA,GAAA,EAAA,CAAA,mBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,sBAAsB,iBAjC/B,wBAAwB;QACxB,yBAAyB;QACzB,oBAAoB;QACpB,uBAAuB;QACvB,uBAAuB;QACvB,8BAA8B;QAC9B,8BAA8B;QAC9B,2BAA2B;QAC3B,+BAA+B;QAC/B,yBAAyB;QACzB,qBAAqB;QACrB,qBAAqB;QACrB,6BAA6B;QAC7B,6BAA6B;QAC7B,yBAAyB;AACzB,QAAA,6BAA6B,aA7C7B,YAAY;QACZ,WAAW;QACX,mBAAmB;QACnB,cAAc;QACd,cAAc;QACd,kBAAkB;QAClB,sBAAsB;QACtB,gBAAgB;QAChB,gBAAgB;QAChB,cAAc;QACd,gBAAgB;QAChB,uBAAuB;QACvB,eAAe;QACf,gBAAgB;QAChB,cAAc;QACd,aAAa;QACb,iBAAiB;QACjB,cAAc;QACd,oBAAoB;QACpB,wBAAwB;QACxB,cAAc;QACd,iBAAiB;QACjB,eAAe;QACf,mBAAmB;QACnB,gBAAgB;QAChB,eAAe;QACf,sBAAsB;AACtB,QAAA,kBAAkB,aAqBlB,wBAAwB;QACxB,yBAAyB;QACzB,8BAA8B;QAC9B,8BAA8B;QAC9B,2BAA2B;QAC3B,+BAA+B;QAC/B,yBAAyB;QACzB,qBAAqB;QACrB,qBAAqB;QACrB,6BAA6B;QAC7B,6BAA6B;QAC7B,yBAAyB;QACzB,6BAA6B,CAAA,EAAA,CAAA,CAAA;AAGpB,sBAAA,CAAA,IAAA,GAAA,EAAA,CAAA,mBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,sBAAsB,EAhExB,OAAA,EAAA,CAAA;YACP,YAAY;YACZ,WAAW;YACX,mBAAmB;YACnB,cAAc;YACd,cAAc;YACd,kBAAkB;YAClB,sBAAsB;YACtB,gBAAgB;YAChB,gBAAgB;YAChB,cAAc;YACd,gBAAgB;YAChB,uBAAuB;YACvB,eAAe;YACf,gBAAgB;YAChB,cAAc;YACd,aAAa;YACb,iBAAiB;YACjB,cAAc;YACd,oBAAoB;YACpB,wBAAwB;YACxB,cAAc;YACd,iBAAiB;YACjB,eAAe;YACf,mBAAmB;YACnB,gBAAgB;YAChB,eAAe;YACf,sBAAsB;YACtB,kBAAkB;SACnB,CAAA,EAAA,CAAA,CAAA;4FAmCU,sBAAsB,EAAA,UAAA,EAAA,CAAA;kBAjElC,QAAQ;AAAC,YAAA,IAAA,EAAA,CAAA;AACR,oBAAA,OAAO,EAAE;wBACP,YAAY;wBACZ,WAAW;wBACX,mBAAmB;wBACnB,cAAc;wBACd,cAAc;wBACd,kBAAkB;wBAClB,sBAAsB;wBACtB,gBAAgB;wBAChB,gBAAgB;wBAChB,cAAc;wBACd,gBAAgB;wBAChB,uBAAuB;wBACvB,eAAe;wBACf,gBAAgB;wBAChB,cAAc;wBACd,aAAa;wBACb,iBAAiB;wBACjB,cAAc;wBACd,oBAAoB;wBACpB,wBAAwB;wBACxB,cAAc;wBACd,iBAAiB;wBACjB,eAAe;wBACf,mBAAmB;wBACnB,gBAAgB;wBAChB,eAAe;wBACf,sBAAsB;wBACtB,kBAAkB;AACnB,qBAAA;AACD,oBAAA,YAAY,EAAE;wBACZ,wBAAwB;wBACxB,yBAAyB;wBACzB,oBAAoB;wBACpB,uBAAuB;wBACvB,uBAAuB;wBACvB,8BAA8B;wBAC9B,8BAA8B;wBAC9B,2BAA2B;wBAC3B,+BAA+B;wBAC/B,yBAAyB;wBACzB,qBAAqB;wBACrB,qBAAqB;wBACrB,6BAA6B;wBAC7B,6BAA6B;wBAC7B,yBAAyB;wBACzB,6BAA6B;AAC9B,qBAAA;AACD,oBAAA,OAAO,EAAE;wBACP,wBAAwB;wBACxB,yBAAyB;wBACzB,8BAA8B;wBAC9B,8BAA8B;wBAC9B,2BAA2B;wBAC3B,+BAA+B;wBAC/B,yBAAyB;wBACzB,qBAAqB;wBACrB,qBAAqB;wBACrB,6BAA6B;wBAC7B,6BAA6B;wBAC7B,yBAAyB;wBACzB,6BAA6B;AAC9B,qBAAA;iBACF,CAAA;;;ACvGD;;AAEG;;;;"}
|
|
1
|
+
{"version":3,"file":"novo-elements-elements-query-builder.mjs","sources":["../../../projects/novo-elements/src/elements/query-builder/query-builder.tokens.ts","../../../projects/novo-elements/src/elements/query-builder/query-builder.types.ts","../../../projects/novo-elements/src/elements/query-builder/query-builder.service.ts","../../../projects/novo-elements/src/elements/query-builder/condition-builder/condition-builder.component.ts","../../../projects/novo-elements/src/elements/query-builder/condition-builder/condition-builder.component.html","../../../projects/novo-elements/src/elements/query-builder/query-builder.directives.ts","../../../projects/novo-elements/src/elements/query-builder/condition-definitions/abstract-condition.definition.ts","../../../projects/novo-elements/src/elements/query-builder/condition-definitions/address-condition.definition.ts","../../../projects/novo-elements/src/elements/query-builder/condition-definitions/boolean-condition.definition.ts","../../../projects/novo-elements/src/elements/query-builder/condition-definitions/date-condition.definition.ts","../../../projects/novo-elements/src/elements/query-builder/condition-definitions/date-time-condition.definition.ts","../../../projects/novo-elements/src/elements/query-builder/condition-definitions/id-condition.definition.ts","../../../projects/novo-elements/src/elements/query-builder/condition-definitions/number-condition.definition.ts","../../../projects/novo-elements/src/elements/query-builder/condition-definitions/picker-condition.definition.ts","../../../projects/novo-elements/src/elements/query-builder/condition-definitions/string-condition.definition.ts","../../../projects/novo-elements/src/elements/query-builder/condition-group/condition-group.component.ts","../../../projects/novo-elements/src/elements/query-builder/condition-group/condition-group.component.html","../../../projects/novo-elements/src/elements/query-builder/criteria-builder/criteria-builder.component.ts","../../../projects/novo-elements/src/elements/query-builder/criteria-builder/criteria-builder.component.html","../../../projects/novo-elements/src/elements/query-builder/query-builder.module.ts","../../../projects/novo-elements/src/elements/query-builder/novo-elements-elements-query-builder.ts"],"sourcesContent":["import { InjectionToken } from '@angular/core';\n\nexport const NOVO_QUERY_BUILDER = new InjectionToken<any>('NOVO_QUERY_BUILDER');\nexport const NOVO_CRITERIA_BUILDER = new InjectionToken<any>('NOVO_CRITERIA_BUILDER');\nexport const NOVO_CONDITION_BUILDER = new InjectionToken<any>('NOVO_CONDITION_BUILDER');\n","import { ViewContainerRef } from '@angular/core';\n\nexport enum Conjunction {\n AND = 'and',\n OR = 'or',\n NOT = 'not',\n}\nexport type ConditionGroup = {\n [key: string]: Condition[];\n};\nexport interface Condition {\n field: string;\n operator: string;\n value: any;\n}\n\nexport interface BaseFieldDef {\n name: string;\n label?: string;\n type: string;\n dataSpecialization?: string;\n optional?: boolean;\n multiValue?: boolean;\n inputType?: string;\n options?: { value: string | number; label: string; readOnly?: boolean }[];\n optionsUrl?: string;\n optionsType?: string;\n dataType?: string;\n}\n\nexport interface FieldConfig<T extends BaseFieldDef> {\n value: string;\n label: string;\n options: T[];\n search: (term: string) => T[];\n find: (name: string) => T;\n}\n\n/** Interface used to provide an outlet for rows to be inserted into. */\nexport interface QueryFilterOutlet {\n viewContainer: ViewContainerRef;\n}\n","import { Injectable } from '@angular/core';\nimport { Subject } from 'rxjs';\nimport { NovoLabelService } from 'novo-elements/services';\nimport { BaseConditionFieldDef } from './query-builder.directives';\nimport { BaseFieldDef, Conjunction, FieldConfig } from './query-builder.types';\n\nexport const defaultEditTypeFn = (field: BaseFieldDef) => {\n return field.inputType || field.dataType || field.type;\n};\n\n@Injectable()\nexport class QueryBuilderService {\n private _customFieldDefs = new Set<BaseConditionFieldDef>();\n private _fieldDefsByName = new Map<string, BaseConditionFieldDef>();\n /**\n * Will dispatch when properties changes, subscribe to this if component should\n * re-render when props are updated\n */\n readonly stateChanges: Subject<void> = new Subject<void>();\n\n /**\n * Function to determine operator and input templates for a field. Value passed\n * through the criteria builder Input.\n */\n public get editTypeFn(): (field: BaseFieldDef) => string {\n return this._editTypeFn;\n }\n public set editTypeFn(value: (field: BaseFieldDef) => string) {\n this._editTypeFn = value ?? defaultEditTypeFn;\n this.stateChanges.next();\n }\n private _editTypeFn: (field: BaseFieldDef) => string = defaultEditTypeFn;\n\n /**\n * The field configuration to control which types of fields are available to select\n * within the Condition Builder.\n */\n public get config(): { fields: FieldConfig<BaseFieldDef>[] } {\n return this._config;\n }\n public set config(value: { fields: FieldConfig<BaseFieldDef>[] }) {\n this._config = value;\n this.stateChanges.next();\n }\n private _config: { fields: FieldConfig<BaseFieldDef>[] } = { fields: [] };\n\n /**\n * The configuration to control which types of conjuntions can be used in the query builder.\n * Value passed through the criteria builder Input\n * eg. and, or, not\n */\n public get allowedGroupings(): Conjunction[] {\n return this._allowedGroupings;\n }\n public set allowedGroupings(value: Conjunction[]) {\n this._allowedGroupings = value;\n this.stateChanges.next();\n }\n private _allowedGroupings: Conjunction[];\n\n constructor(private labels: NovoLabelService) {}\n\n /** Adds a field definition that was not included as part of the content children. */\n registerFieldDef(fieldDef: BaseConditionFieldDef) {\n this._customFieldDefs.add(fieldDef);\n this._fieldDefsByName.set(fieldDef.name, fieldDef);\n }\n\n /** Removes a field definition that was not included as part of the content children. */\n unregisterFieldDef(fieldDef: BaseConditionFieldDef) {\n this._customFieldDefs.delete(fieldDef);\n this._fieldDefsByName.delete(fieldDef.name);\n }\n\n getFieldDefsByName() {\n return this._fieldDefsByName;\n }\n\n getConjunctionLabel(conjunction: string) {\n switch (conjunction.replace('$', '').toLowerCase()) {\n case Conjunction.OR:\n return this.labels.or;\n case Conjunction.NOT:\n return this.labels.not;\n case Conjunction.AND:\n default:\n return this.labels.and;\n }\n }\n}\n","import {\n AfterContentInit,\n AfterViewInit,\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component,\n Directive,\n ElementRef,\n Input,\n OnDestroy,\n OnInit,\n ViewChild,\n ViewContainerRef,\n} from '@angular/core';\nimport { AbstractControl, ControlContainer, FormControl } from '@angular/forms';\nimport { Subject, Subscription } from 'rxjs';\nimport { debounceTime, distinctUntilChanged } from 'rxjs/operators';\nimport { BaseConditionFieldDef } from '../query-builder.directives';\nimport { QueryBuilderService } from '../query-builder.service';\nimport { NOVO_CONDITION_BUILDER } from '../query-builder.tokens';\nimport { BaseFieldDef, FieldConfig, QueryFilterOutlet } from '../query-builder.types';\nimport { NovoLabelService } from 'novo-elements/services';\n\n/**\n * Provides a handle for the table to grab the view container's ng-container to insert data rows.\n * @docs-private\n */\n@Directive({ selector: '[conditionInputOutlet]' })\nexport class ConditionInputOutlet implements QueryFilterOutlet {\n constructor(public viewContainer: ViewContainerRef, public elementRef: ElementRef) {}\n}\n\n/**\n * Provides a handle for the table to grab the view container's ng-container to insert data rows.\n * @docs-private\n */\n@Directive({ selector: '[conditionOperatorOutlet]' })\nexport class ConditionOperatorOutlet implements QueryFilterOutlet {\n constructor(public viewContainer: ViewContainerRef, public elementRef: ElementRef) {}\n}\n\n@Component({\n selector: 'novo-condition-builder',\n templateUrl: './condition-builder.component.html',\n styleUrls: ['./condition-builder.component.scss'],\n providers: [{ provide: NOVO_CONDITION_BUILDER, useExisting: ConditionBuilderComponent }],\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class ConditionBuilderComponent implements OnInit, AfterContentInit, AfterViewInit, OnDestroy {\n @ViewChild(ConditionOperatorOutlet, { static: true }) _operatorOutlet: ConditionOperatorOutlet;\n @ViewChild(ConditionInputOutlet, { static: true }) _inputOutlet: ConditionInputOutlet;\n\n @Input() label: any;\n @Input() isFirst: boolean;\n @Input() andIndex: number;\n @Input() groupIndex: number;\n\n public parentForm: AbstractControl;\n public fieldConfig: FieldConfig<BaseFieldDef>;\n public searches!: Subscription;\n public results$: Promise<any[]>;\n public searchTerm: FormControl = new FormControl();\n public fieldDisplayWith;\n\n private _lastContext: any = {};\n\n /** Subject that emits when the component has been destroyed. */\n private readonly _onDestroy = new Subject<void>();\n\n constructor(\n public labels: NovoLabelService,\n private cdr: ChangeDetectorRef,\n private qbs: QueryBuilderService,\n private controlContainer: ControlContainer,\n ) {}\n\n ngOnInit() {\n this.parentForm = this.controlContainer.control;\n this.parentForm.valueChanges.subscribe((value) => {\n Promise.resolve().then(() => this.onFieldSelect());\n });\n }\n\n ngAfterContentInit() {\n const { fields = [] } = this.qbs.config || {};\n fields.length && this.changeFieldOptions(fields[0]);\n this.searches = this.searchTerm.valueChanges.pipe(debounceTime(300), distinctUntilChanged()).subscribe((term) => {\n this.results$ = Promise.resolve(\n this.fieldConfig.options.filter(\n (f) => f.name.toLowerCase().includes(term.toLowerCase()) || f.label?.toLowerCase().includes(term.toLowerCase()),\n ),\n );\n this.cdr.markForCheck();\n });\n }\n\n ngAfterViewInit() {\n if (this.parentForm.value?.field !== null) {\n Promise.resolve().then(() => this.onFieldSelect());\n }\n }\n\n ngOnDestroy() {\n this.searches.unsubscribe();\n // Clear all outlets and Maps\n [this._operatorOutlet.viewContainer, this._inputOutlet.viewContainer].forEach((def) => {\n def.clear();\n });\n this._onDestroy.next();\n this._onDestroy.complete();\n }\n\n /**\n * Updates the Conditions \"Field\" Options to Change base on new Scope\n * @param fieldConfig\n */\n changeFieldOptions(fieldConfig: FieldConfig<BaseFieldDef>) {\n this.fieldConfig = fieldConfig;\n this.searchTerm.setValue('');\n this.results$ = Promise.resolve(this.fieldConfig.options);\n }\n\n getField() {\n const { field } = this.parentForm?.value;\n if (!field) return null;\n return this.fieldConfig.find(field);\n }\n\n getDefaultField() {\n const fields = this.fieldConfig.options;\n if (fields && fields.length) {\n return fields[0].name;\n }\n return null;\n }\n\n onFieldSelect() {\n const fieldConf = this.getField();\n if (!fieldConf) {\n this.parentForm.get('field').setValue(this.getDefaultField());\n return;\n } else {\n this.fieldDisplayWith = () => fieldConf.label || fieldConf.name;\n }\n const { field, operator } = this.parentForm.value;\n\n if (this._lastContext.field !== field) {\n if (!!this._lastContext.field) {\n // only clearing operator/value is field was previously defined so we can preload values onto the form\n this.parentForm.get('value').setValue(null);\n this.parentForm.get('operator').setValue(null);\n }\n this.createFieldTemplates();\n }\n\n this._lastContext = { ...this.parentForm.value };\n this.cdr.markForCheck();\n }\n\n private findDefinitionForField(field) {\n if (!field) return;\n const editType = this.qbs.editTypeFn(field);\n // Don't look at dataSpecialization it is no good, this misses currency, and percent\n const { name, inputType, dataType, type } = field;\n const fieldDefsByName = this.qbs.getFieldDefsByName();\n // Check Fields by priority for match Field Definition\n const key = [name, editType?.toUpperCase(), 'DEFAULT'].find((it) => fieldDefsByName.has(it));\n return fieldDefsByName.get(key);\n }\n\n private createFieldTemplates() {\n const definition = this.findDefinitionForField(this.getField());\n\n if (!this.parentForm.get('operator').value) {\n this.parentForm.get('operator').setValue(definition.defaultOperator);\n }\n\n this.createFieldOperators(definition);\n this.createFieldInput(definition);\n }\n\n private createFieldOperators(definition: BaseConditionFieldDef) {\n this._operatorOutlet.viewContainer.clear();\n if (definition) {\n const context = { $implicit: this.parentForm, fieldMeta: this.getField() };\n this._operatorOutlet.viewContainer.createEmbeddedView(definition.fieldOperators.template, context);\n }\n this.cdr.markForCheck();\n }\n\n private createFieldInput(definition: BaseConditionFieldDef) {\n this._inputOutlet.viewContainer.clear();\n if (definition) {\n const context = { $implicit: this.parentForm, fieldMeta: this.getField(), viewIndex: this.groupIndex.toString() + this.andIndex.toString() };\n this._inputOutlet.viewContainer.createEmbeddedView(definition.fieldInput.template, context);\n }\n this.cdr.markForCheck();\n }\n}\n","<form [formGroup]=\"parentForm\">\n <novo-grid gap=\"1rem\" [columns]=\"isFirst ? '20rem 13rem 1fr' : '16rem 13rem 1fr'\" align=\"end\">\n <novo-field class=\"condition-field\">\n <novo-select\n [placeholder]=\"labels.chooseAField\"\n formControlName=\"field\"\n (onSelect)=\"onFieldSelect()\"\n overlayWidth=\"24rem\"\n overlayHeight=\"20rem\"\n [displayWith]=\"fieldDisplayWith\"\n [style.minWidth.px]=\"160\"\n [style.maxWidth.px]=\"isFirst ? 200 : 160\">\n <novo-optgroup class=\"filter-search-results\">\n <novo-option>\n <novo-select-search [formControl]=\"searchTerm\" [clearSearchInput]=\"false\"></novo-select-search>\n </novo-option>\n <ng-container *ngIf=\"results$ | async as results; else loading\">\n <ng-container *ngIf=\"results.length\">\n <novo-option *ngFor=\"let field of results\" value=\"{{ field.name }}\"\n [attr.data-automation-id]=\"field.name\">\n {{ field.label || field.name }}\n </novo-option>\n </ng-container>\n </ng-container>\n </novo-optgroup>\n </novo-select>\n </novo-field>\n\n <div class=\"condition-operator\">\n <ng-container conditionOperatorOutlet></ng-container>\n </div>\n\n <div class=\"condition-input\">\n <ng-container conditionInputOutlet></ng-container>\n </div>\n </novo-grid>\n <ng-content></ng-content>\n</form>\n\n<!-- EMPTY STATE TEMPLATE -->\n<!-- <ng-template #empty>\n <novo-non-ideal-state>\n <novo-icon size=\"xl\" color=\"grapefruit\">search</novo-icon>\n <novo-title>No results found.</novo-title>\n <novo-text>Your search didn't find anything. Try searching for something else.</novo-text>\n </novo-non-ideal-state>\n</ng-template> -->\n\n<!-- LOADING TEMPLATE -->\n<ng-template #loading>\n <novo-loading></novo-loading>\n</ng-template>","import { ContentChild, Directive, Input, TemplateRef } from '@angular/core';\nimport { QueryBuilderService } from './query-builder.service';\n\n/** Base interface for a condidation template directives. */\nexport interface ConditionDef {\n template: TemplateRef<any>;\n}\n\n/**\n * Contained within a novoConditionField definition describing what input should be\n * used to capture the compare value of the Condtion\n */\n@Directive({ selector: '[novoConditionInputDef]' })\nexport class NovoConditionInputDef implements ConditionDef {\n constructor(/** @docs-private */ public template: TemplateRef<any>) {}\n}\n\n/**\n * Contained within a novoConditionField definition describing what operators should be available.\n */\n@Directive({ selector: '[novoConditionOperatorsDef]' })\nexport class NovoConditionOperatorsDef implements ConditionDef {\n constructor(/** @docs-private */ public template: TemplateRef<any>) {}\n}\n\n/**\n * Field Field definition for the QueryBuilder.\n * Defines the inputType and operators to use for the query builder.\n */\n@Directive()\nexport class BaseConditionFieldDef {\n /** Unique name for this field. */\n @Input('novoFilterFieldDef')\n get name(): string {\n return this._name;\n }\n set name(name: string) {\n this._setNameInput(name);\n }\n protected _name: string;\n\n @ContentChild(NovoConditionInputDef) fieldInput: NovoConditionInputDef;\n @ContentChild(NovoConditionOperatorsDef) fieldOperators: NovoConditionOperatorsDef;\n\n /**\n * Transformed version of the column name that can be used as part of a CSS classname. Excludes\n * all non-alphanumeric characters and the special characters '-' and '_'. Any characters that\n * do not match are replaced by the '-' character.\n */\n cssClassFriendlyName: string;\n _fieldCssClassName: string[];\n\n defaultOperator: string;\n\n constructor() {}\n\n /**\n * Overridable method that sets the css classes that will be added to every cell in this\n * column.\n * In the future, columnCssClassName will change from type string[] to string and this\n * will set a single string value.\n * @docs-private\n */\n protected _updateFieldCssClassName() {\n this._fieldCssClassName = [`novo-filter-field-${this.cssClassFriendlyName}`];\n }\n\n protected _setNameInput(value: string) {\n // If the directive is set without a name (updated programmatically), then this setter will\n // trigger with an empty string and should not overwrite the programmatically set value.\n if (value) {\n this._name = value;\n this.cssClassFriendlyName = value.replace(/[^a-z0-9_-]/gi, '-');\n this._updateFieldCssClassName();\n }\n }\n}\n\n@Directive({\n selector: '[novoConditionFieldDef]',\n})\nexport class NovoConditionFieldDef extends BaseConditionFieldDef {\n constructor(private qbs: QueryBuilderService) {\n super();\n }\n register() {\n this.qbs.registerFieldDef(this);\n }\n unregister() {\n this.qbs.unregisterFieldDef(this);\n }\n}\n","import { Directive, Input, OnDestroy, OnInit, ViewChild } from '@angular/core';\nimport { FormGroup } from '@angular/forms';\nimport { NovoLabelService } from 'novo-elements/services';\nimport { NovoConditionFieldDef } from '../query-builder.directives';\n\n@Directive()\nexport abstract class AbstractConditionFieldDef implements OnDestroy, OnInit {\n /** Column name that should be used to reference this column. */\n @Input()\n get name(): string {\n return this._name;\n }\n set name(name: string) {\n this._name = name;\n // With Ivy, inputs can be initialized before static query results are\n // available. In that case, we defer the synchronization until \"ngOnInit\" fires.\n this._syncFieldDefName();\n }\n _name: string;\n\n defaultOperator: string;\n\n @ViewChild(NovoConditionFieldDef, { static: true }) fieldDef: NovoConditionFieldDef;\n\n constructor(public labels: NovoLabelService) {}\n\n ngOnInit() {\n this._syncFieldDefName();\n this._syncFieldDefOperatorValue();\n // Need to add self to FilterBuilder because \"ContentChildren won't find it\"\n this.fieldDef?.register();\n }\n\n ngOnDestroy() {\n this.fieldDef?.unregister();\n }\n\n onOperatorSelect(formGroup: FormGroup): void {\n formGroup.get('value').setValue(null);\n }\n\n /** Synchronizes the column definition name with the text column name. */\n private _syncFieldDefName() {\n if (this.fieldDef) {\n this.fieldDef.name = this.name;\n }\n }\n\n private _syncFieldDefOperatorValue() {\n if (this.fieldDef) {\n this.fieldDef.defaultOperator = this.defaultOperator;\n }\n }\n}\n","import { ChangeDetectionStrategy, Component, ElementRef, QueryList, ViewChild, ViewChildren, ViewEncapsulation } from '@angular/core';\nimport { AbstractControl } from '@angular/forms';\nimport { NovoPickerToggleElement } from 'novo-elements/elements/field';\nimport { PlacesListComponent } from 'novo-elements/elements/places';\nimport { NovoLabelService } from 'novo-elements/services';\nimport { Key } from 'novo-elements/utils';\nimport { AbstractConditionFieldDef } from './abstract-condition.definition';\n\n/**\n * Handle selection of field values when a list of options is provided.\n */\n@Component({\n selector: 'novo-address-condition-def',\n template: `\n <ng-container novoConditionFieldDef>\n <novo-field *novoConditionOperatorsDef=\"let formGroup\" [formGroup]=\"formGroup\">\n <novo-select [placeholder]=\"labels.operator\" formControlName=\"operator\" (onSelect)=\"onOperatorSelect(formGroup)\">\n <novo-option value=\"includeAny\">{{ labels.includeAny }}</novo-option>\n <novo-option value=\"excludeAny\">{{ labels.exclude }}</novo-option>\n </novo-select>\n </novo-field>\n <ng-container *novoConditionInputDef=\"let formGroup; viewIndex as viewIndex; fieldMeta as meta\" [ngSwitch]=\"formGroup.value.operator\" [formGroup]=\"formGroup\">\n <novo-field *novoSwitchCases=\"['includeAny', 'excludeAny']\" #novoField>\n <novo-chip-list [(ngModel)]=\"chipListModel\" [ngModelOptions]=\"{ standalone: true }\" (click)=\"openPlacesList(viewIndex)\">\n <novo-chip *ngFor=\"let item of formGroup.get('value').value\" (removed)=\"remove(item, formGroup, viewIndex)\">\n <novo-text ellipsis>{{ item.formatted_address }}</novo-text>\n <novo-icon novoChipRemove>close</novo-icon>\n </novo-chip>\n <input\n novoChipInput\n [id]=\"viewIndex\"\n [placeholder]=\"labels.location\"\n (keyup)=\"onKeyup($event, viewIndex)\"\n (keydown)=\"onKeydown($event, viewIndex)\"\n [picker]=\"placesPicker\"\n #addressInput />\n </novo-chip-list>\n <novo-picker-toggle [overlayId]=\"viewIndex\" icon=\"location\" novoSuffix>\n <google-places-list [term]=\"term\" (select)=\"selectPlace($event, formGroup, viewIndex)\" formControlName=\"value\" #placesPicker></google-places-list>\n </novo-picker-toggle>\n </novo-field>\n </ng-container>\n </ng-container>\n `,\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.Default,\n})\nexport class NovoDefaultAddressConditionDef extends AbstractConditionFieldDef {\n @ViewChildren(NovoPickerToggleElement) overlayChildren: QueryList<NovoPickerToggleElement>;\n @ViewChildren('addressInput') inputChildren: QueryList<ElementRef>;\n @ViewChild('placesPicker') placesPicker: PlacesListComponent;\n\n defaultOperator = 'includeAny';\n chipListModel: any = '';\n term: string = '';\n\n constructor(public element: ElementRef, public labels: NovoLabelService) {\n super(labels);\n }\n\n onKeyup(event, viewIndex) {\n if (![Key.Escape, Key.Enter].includes(event.key)) {\n this.openPlacesList(viewIndex);\n }\n this.term = event.target.value;\n }\n\n onKeydown(event, viewIndex) {\n if (!this.placesPicker.dropdownOpen) {\n this.openPlacesList(viewIndex);\n this.placesPicker.dropdownOpen = true;\n }\n if ([Key.Escape, Key.Tab].includes(event.key)) {\n this.closePlacesList(viewIndex);\n } else {\n this.placesPicker.onKeyDown(event);\n }\n }\n\n getValue(formGroup: AbstractControl): any[] {\n return formGroup.value.value || [];\n }\n\n getCurrentOverlay(viewIndex: string): NovoPickerToggleElement {\n return this.overlayChildren?.find(item => item.overlayId === viewIndex);\n }\n\n getCurrentInput(viewIndex: string): ElementRef {\n return this.inputChildren?.find(item => (item as any).nativeElement.id === viewIndex);\n }\n\n openPlacesList(viewIndex) {\n this.getCurrentOverlay(viewIndex)?.openPanel();\n }\n\n closePlacesList(viewIndex) {\n this.getCurrentOverlay(viewIndex)?.closePanel();\n }\n\n selectPlace(event: any, formGroup: AbstractControl, viewIndex: string): void {\n const valueToAdd = {\n address_components: event.address_components,\n formatted_address: event.formatted_address,\n geometry: event.geometry,\n place_id: event.place_id,\n };\n const current = this.getValue(formGroup);\n if (!Array.isArray(current)) {\n formGroup.get('value').setValue([valueToAdd]);\n } else {\n formGroup.get('value').setValue([...current, valueToAdd]);\n }\n this.inputChildren.forEach(input => {\n input.nativeElement.value = '';\n })\n this.getCurrentInput(viewIndex)?.nativeElement.focus();\n this.closePlacesList(viewIndex);\n }\n\n remove(valueToRemove: any, formGroup: AbstractControl, viewIndex: string): void {\n const current = this.getValue(formGroup);\n const index = current.indexOf(valueToRemove);\n if (index >= 0) {\n const oldValue = [...current]\n oldValue.splice(index, 1);\n formGroup.get('value').setValue(oldValue);\n }\n this.closePlacesList(viewIndex);\n }\n}\n","import { ChangeDetectionStrategy, Component, ViewEncapsulation } from '@angular/core';\nimport { AbstractConditionFieldDef } from './abstract-condition.definition';\n\n/**\n * When constructing a query using a field that is a boolean with only true/false as possible values.\n */\n@Component({\n selector: 'novo-boolean-condition-def',\n template: `\n <ng-container novoConditionFieldDef>\n <novo-field *novoConditionOperatorsDef=\"let formGroup\" [formGroup]=\"formGroup\">\n <novo-select [placeholder]=\"labels.operator\" formControlName=\"operator\" (onSelect)=\"onOperatorSelect(formGroup)\">\n <novo-option value=\"include\">{{ labels.equals }}</novo-option>\n <novo-option value=\"exclude\">{{ labels.doesNotEqual }}</novo-option>\n <novo-option value=\"isNull\">{{ labels.isEmpty }}</novo-option>\n </novo-select>\n </novo-field>\n <novo-field *novoConditionInputDef=\"let formGroup\" [style.width.px]=\"125\" [formGroup]=\"formGroup\">\n <novo-radio-group formControlName=\"value\">\n <novo-radio [value]=\"true\">{{ formGroup.value.operator === 'isNull' ? labels.yes : labels.true }}</novo-radio>\n <novo-radio [value]=\"false\">{{ formGroup.value.operator === 'isNull' ? labels.no : labels.false }}</novo-radio>\n </novo-radio-group>\n </novo-field>\n </ng-container>\n `,\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.Default,\n})\nexport class NovoDefaultBooleanConditionDef extends AbstractConditionFieldDef {\n defaultOperator = 'include';\n}\n","import { ChangeDetectionStrategy, Component, QueryList, ViewChildren, ViewEncapsulation } from '@angular/core';\nimport { NovoPickerToggleElement } from 'novo-elements/elements/field';\nimport { AbstractConditionFieldDef } from './abstract-condition.definition';\n\n/**\n * Most complicated of the default conditions defs, a date needs to provide a different\n * input type depending on the operator selected.\n */\n@Component({\n selector: 'novo-date-condition-def',\n template: `\n <ng-container novoConditionFieldDef=\"DATE\">\n <novo-field *novoConditionOperatorsDef=\"let formGroup\" [formGroup]=\"formGroup\">\n <novo-select [placeholder]=\"labels.operator\" formControlName=\"operator\" (onSelect)=\"onOperatorSelect(formGroup)\">\n <novo-option value=\"before\">{{ labels.before }}</novo-option>\n <novo-option value=\"after\">{{ labels.after }}</novo-option>\n <novo-option value=\"between\">{{ labels.between }}</novo-option>\n <novo-option value=\"within\">{{ labels.within }}</novo-option>\n <novo-option value=\"isNull\">{{ labels.isEmpty }}</novo-option>\n </novo-select>\n </novo-field>\n <ng-container *novoConditionInputDef=\"let formGroup; viewIndex as viewIndex\" [ngSwitch]=\"formGroup.value.operator\" [formGroup]=\"formGroup\">\n <novo-field *novoSwitchCases=\"['before', 'after']\">\n <input novoInput dateFormat=\"iso8601\" [picker]=\"datepicker\" formControlName=\"value\" />\n <novo-picker-toggle triggerOnFocus [overlayId]=\"viewIndex\" novoSuffix icon=\"calendar\">\n <novo-date-picker (onSelect)=\"closePanel($event, viewIndex)\" #datepicker></novo-date-picker>\n </novo-picker-toggle>\n </novo-field>\n <novo-field *novoSwitchCases=\"['between']\">\n <input novoInput dateRangeFormat=\"date\" [picker]=\"daterangepicker\" formControlName=\"value\" />\n <novo-picker-toggle [for]=\"daterangepicker\" triggerOnFocus [overlayId]=\"viewIndex\" novoSuffix icon=\"calendar\">\n <novo-date-picker #daterangepicker (onSelect)=\"closePanel($event, viewIndex)\" mode=\"range\" numberOfMonths=\"2\"></novo-date-picker>\n </novo-picker-toggle>\n </novo-field>\n <novo-field *novoSwitchCases=\"['within']\">\n <novo-select [placeholder]=\"labels.selectDateRange\" formControlName=\"value\">\n <novo-option value=\"7\">{{ labels.next7Days }}</novo-option>\n <novo-option value=\"-7\">{{ labels.past7Days }}</novo-option>\n <novo-option value=\"-30\">{{ labels.past30Days }}</novo-option>\n <novo-option value=\"-90\">{{ labels.past90Days }}</novo-option>\n </novo-select>\n </novo-field>\n <novo-field *novoSwitchCases=\"['isNull']\">\n <novo-radio-group formControlName=\"value\">\n <novo-radio [value]=\"true\">{{ labels.yes }}</novo-radio>\n <novo-radio [value]=\"false\">{{ labels.no }}</novo-radio>\n </novo-radio-group>\n </novo-field>\n </ng-container>\n </ng-container>\n `,\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.Default,\n})\nexport class NovoDefaultDateConditionDef extends AbstractConditionFieldDef {\n @ViewChildren(NovoPickerToggleElement)\n overlayChildren: QueryList<NovoPickerToggleElement>;\n\n defaultOperator = 'within';\n\n closePanel(event, viewIndex): void {\n const overlay = this.overlayChildren.find(item => item.overlayId === viewIndex);\n overlay.closePanel(event);\n }\n}\n","import { ChangeDetectionStrategy, Component, QueryList, ViewChildren, ViewEncapsulation } from '@angular/core';\nimport { NovoPickerToggleElement } from 'novo-elements/elements/field';\nimport { AbstractConditionFieldDef } from './abstract-condition.definition';\n\n/**\n * Most complicated of the default conditions defs, a date needs to provide a different\n * input type depending on the operator selected.\n */\n@Component({\n selector: 'novo-date-time-condition-def',\n template: `\n <ng-container novoConditionFieldDef=\"DATE\">\n <novo-field *novoConditionOperatorsDef=\"let formGroup\" [formGroup]=\"formGroup\">\n <novo-select [placeholder]=\"labels.operator\" formControlName=\"operator\" (onSelect)=\"onOperatorSelect(formGroup)\">\n <novo-option value=\"before\">{{ labels.before }}</novo-option>\n <novo-option value=\"after\">{{ labels.after }}</novo-option>\n <novo-option value=\"within\">{{ labels.within }}</novo-option>\n <novo-option value=\"isNull\">{{ labels.isEmpty }}</novo-option>\n </novo-select>\n </novo-field>\n <ng-container *novoConditionInputDef=\"let formGroup; viewIndex as viewIndex\" [ngSwitch]=\"formGroup.value.operator\" [formGroup]=\"formGroup\">\n <novo-field *novoSwitchCases=\"['after']\">\n <input novoInput dateTimeFormat=\"iso8601\" [picker]=\"datetimepicker\" formControlName=\"value\" />\n <novo-picker-toggle triggerOnFocus [width]=\"-1\" [overlayId]=\"viewIndex\" novoSuffix icon=\"calendar\">\n <novo-date-time-picker defaultTime=\"end\" (onSelect)=\"closePanel($event, viewIndex)\" #datetimepicker></novo-date-time-picker>\n </novo-picker-toggle>\n </novo-field>\n <novo-field *novoSwitchCases=\"['before']\">\n <input novoInput dateTimeFormat=\"iso8601\" [picker]=\"datetimepickerbefore\" formControlName=\"value\" />\n <novo-picker-toggle triggerOnFocus [width]=\"-1\" [overlayId]=\"viewIndex\" novoSuffix icon=\"calendar\">\n <novo-date-time-picker defaultTime=\"start\" (onSelect)=\"closePanel($event, viewIndex)\" #datetimepickerbefore></novo-date-time-picker>\n </novo-picker-toggle>\n </novo-field>\n <novo-field *novoSwitchCases=\"['within']\">\n <novo-select [placeholder]=\"labels.selectDateRange\" formControlName=\"value\">\n <novo-option value=\"7\">{{ labels.next7Days }}</novo-option>\n <novo-option value=\"-7\">{{ labels.past7Days }}</novo-option>\n <novo-option value=\"-30\">{{ labels.past30Days }}</novo-option>\n <novo-option value=\"-90\">{{ labels.past90Days }}</novo-option>\n </novo-select>\n </novo-field>\n <novo-field *novoSwitchCases=\"['isNull']\">\n <novo-radio-group formControlName=\"value\">\n <novo-radio [value]=\"true\">{{ labels.yes }}</novo-radio>\n <novo-radio [value]=\"false\">{{ labels.no }}</novo-radio>\n </novo-radio-group>\n </novo-field>\n </ng-container>\n </ng-container>\n `,\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.Default,\n})\nexport class NovoDefaultDateTimeConditionDef extends AbstractConditionFieldDef {\n @ViewChildren(NovoPickerToggleElement)\n overlayChildren: QueryList<NovoPickerToggleElement>;\n\n defaultOperator = 'within';\n\n closePanel(event, viewIndex): void {\n const overlay = this.overlayChildren.find(item => item.overlayId === viewIndex);\n }\n}\n","import { ChangeDetectionStrategy, Component, ViewEncapsulation } from '@angular/core';\nimport { AbstractConditionFieldDef } from './abstract-condition.definition';\n\n/**\n * Any condition that has a type of ID usually only is queried by ID.\n */\n@Component({\n selector: 'novo-id-condition-def',\n template: `\n <ng-container novoConditionFieldDef>\n <novo-field *novoConditionOperatorsDef=\"let formGroup\" [formGroup]=\"formGroup\">\n <novo-select [placeholder]=\"labels.operator\" formControlName=\"operator\">\n <novo-option value=\"equalTo\">{{ labels.equalTo }}</novo-option>\n <ng-content></ng-content>\n </novo-select>\n </novo-field>\n <novo-field *novoConditionInputDef=\"let formGroup\" [formGroup]=\"formGroup\">\n <input novoInput type=\"number\" min=\"1\" step=\"1\" formControlName=\"value\" />\n </novo-field>\n </ng-container>\n `,\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.Default,\n})\nexport class NovoDefaultIdConditionDef extends AbstractConditionFieldDef {\n defaultOperator = 'equalTo';\n}\n","import { ChangeDetectionStrategy, Component, ViewEncapsulation } from '@angular/core';\nimport { AbstractConditionFieldDef } from './abstract-condition.definition';\n\n/**\n * When constructing a query using a field that is an Int, Double, Number ...etc.\n * TODO: Do we implment currency formation here potentially>.?\n */\n@Component({\n selector: 'novo-number-condition-def',\n template: `\n <ng-container novoConditionFieldDef>\n <novo-field *novoConditionOperatorsDef=\"let formGroup\" [formGroup]=\"formGroup\">\n <novo-select [placeholder]=\"labels.operator\" formControlName=\"operator\" (onSelect)=\"onOperatorSelect(formGroup)\">\n <novo-option value=\"greaterThan\">{{ labels.greaterThan }}</novo-option>\n <novo-option value=\"lessThan\">{{ labels.lessThan }}</novo-option>\n <novo-option value=\"equalTo\">{{ labels.equalTo }}</novo-option>\n <novo-option value=\"isNull\">{{ labels.isEmpty }}</novo-option>\n </novo-select>\n </novo-field>\n <ng-container *novoConditionInputDef=\"let formGroup\" [ngSwitch]=\"formGroup.value.operator\" [formGroup]=\"formGroup\">\n <novo-field *novoSwitchCases=\"['greaterThan', 'lessThan', 'equalTo']\">\n <input novoInput type=\"number\" formControlName=\"value\" />\n </novo-field>\n <novo-field *novoSwitchCases=\"['isNull']\">\n <novo-radio-group formControlName=\"value\">\n <novo-radio [value]=\"true\">{{ labels.yes }}</novo-radio>\n <novo-radio [value]=\"false\">{{ labels.no }}</novo-radio>\n </novo-radio-group>\n </novo-field>\n </ng-container>\n </ng-container>\n `,\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.Default,\n})\nexport class NovoDefaultNumberConditionDef extends AbstractConditionFieldDef {\n defaultOperator = 'equalTo';\n}\n","import { ChangeDetectionStrategy, Component, ViewEncapsulation } from '@angular/core';\nimport { AbstractConditionFieldDef } from './abstract-condition.definition';\n\n/**\n * Handle selection of field values when a list of options is provided.\n */\n@Component({\n selector: 'novo-picker-condition-def',\n template: `\n <ng-container novoConditionFieldDef>\n <novo-field *novoConditionOperatorsDef=\"let formGroup\" [formGroup]=\"formGroup\">\n <novo-select [placeholder]=\"labels.operator\" formControlName=\"operator\" (onSelect)=\"onOperatorSelect(formGroup)\">\n <novo-option value=\"includeAny\">{{ labels.includeAny }}</novo-option>\n <novo-option value=\"includeAll\">{{ labels.includeAll }}</novo-option>\n <novo-option value=\"excludeAny\">{{ labels.exclude }}</novo-option>\n <novo-option value=\"isNull\">{{ labels.isEmpty }}</novo-option>\n </novo-select>\n </novo-field>\n <ng-container *novoConditionInputDef=\"let formGroup; fieldMeta as meta\" [ngSwitch]=\"formGroup.value.operator\" [formGroup]=\"formGroup\">\n <novo-field *novoSwitchCases=\"['includeAny', 'includeAll', 'excludeAny']\">\n <novo-select formControlName=\"value\" [placeholder]=\"labels.select\" [multiple]=\"true\">\n <!-- WHat about optionUrl/optionType -->\n <novo-option *ngFor=\"let option of meta?.options\" [value]=\"option.value\" [attr.data-automation-value]=\"option.label\">\n {{ option.label }}\n </novo-option>\n </novo-select>\n </novo-field>\n <novo-field *novoSwitchCases=\"['isNull']\">\n <novo-radio-group formControlName=\"value\">\n <novo-radio [value]=\"true\">{{ labels.yes }}</novo-radio>\n <novo-radio [value]=\"false\">{{ labels.no }}</novo-radio>\n </novo-radio-group>\n </novo-field>\n </ng-container>\n </ng-container>\n `,\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.Default,\n})\nexport class NovoDefaultPickerConditionDef extends AbstractConditionFieldDef {\n defaultOperator = 'includeAny';\n}\n","import { ChangeDetectionStrategy, Component, ViewEncapsulation } from '@angular/core';\nimport { AbstractControl } from '@angular/forms';\nimport { AbstractConditionFieldDef } from './abstract-condition.definition';\n\n/**\n * Constructing filters against String fields can be complex. Each \"chip\" added to the\n * condition can be independently used to query a database. Not all systems support\n * querying within a text column, ie sql unless LIKE is enabled. This could result in a\n * performance penalty.\n */\n@Component({\n selector: 'novo-string-condition-def',\n template: `\n <!-- fieldTypes should be UPPERCASE -->\n <ng-container novoConditionFieldDef=\"STRING\">\n <novo-field *novoConditionOperatorsDef=\"let formGroup\" [formGroup]=\"formGroup\">\n <novo-select [placeholder]=\"labels.operator\" formControlName=\"operator\" (onSelect)=\"onOperatorSelect(formGroup)\">\n <novo-option value=\"includeAny\">{{ labels.includeAny }}</novo-option>\n <novo-option value=\"includeAll\">{{ labels.includeAll }}</novo-option>\n <novo-option value=\"excludeAny\">{{ labels.exclude }}</novo-option>\n <novo-option value=\"isEmpty\">{{ labels.isEmpty }}</novo-option>\n </novo-select>\n </novo-field>\n <ng-container *novoConditionInputDef=\"let formGroup\" [ngSwitch]=\"formGroup.value.operator\" [formGroup]=\"formGroup\">\n <novo-field *novoSwitchCases=\"['includeAny', 'includeAll', 'excludeAny']\">\n <novo-chip-list #chipList aria-label=\"filter value\" formControlName=\"value\">\n <novo-chip *ngFor=\"let chip of formGroup.value?.value || []\" [value]=\"chip\" (removed)=\"remove(chip, formGroup)\">\n <novo-text ellipsis>{{ chip }}</novo-text>\n <novo-icon novoChipRemove>close</novo-icon>\n </novo-chip>\n <input\n novoChipInput\n [placeholder]=\"labels.typeToAddChips\"\n autocomplete=\"off\"\n (novoChipInputTokenEnd)=\"add($event, formGroup)\"\n />\n </novo-chip-list>\n <novo-autocomplete></novo-autocomplete>\n </novo-field>\n <novo-field *novoSwitchCases=\"['isEmpty']\">\n <novo-radio-group formControlName=\"value\">\n <novo-radio [value]=\"true\">{{ labels.yes }}</novo-radio>\n <novo-radio [value]=\"false\">{{ labels.no }}</novo-radio>\n </novo-radio-group>\n </novo-field>\n </ng-container>\n </ng-container>\n `,\n encapsulation: ViewEncapsulation.None,\n // Change detection is intentionally not set to OnPush. This component's template will be provided\n // to the table to be inserted into its view. This is problematic when change detection runs since\n // the bindings in this template will be evaluated _after_ the table's view is evaluated, which\n // means the template in the table's view will not have the updated value (and in fact will cause\n // an ExpressionChangedAfterItHasBeenCheckedError).\n // tslint:disable-next-line:validate-decorators\n changeDetection: ChangeDetectionStrategy.Default,\n})\nexport class NovoDefaultStringConditionDef extends AbstractConditionFieldDef {\n defaultOperator = 'includeAny';\n\n getValue(formGroup: AbstractControl): any[] {\n return formGroup.value?.value || [];\n }\n\n add(event: any, formGroup: AbstractControl): void {\n const input = event.input;\n input.value = '';\n const valueToAdd = event.value;\n if (valueToAdd !== '') {\n const current = this.getValue(formGroup);\n if (!Array.isArray(current)) {\n formGroup.get('value').setValue([valueToAdd]);\n } else {\n formGroup.get('value').setValue([...current, valueToAdd]);\n }\n }\n }\n\n remove(valueToRemove: string, formGroup: AbstractControl): void {\n const current = this.getValue(formGroup);\n const index = current.indexOf(valueToRemove);\n if (index >= 0) {\n const oldValue = [...current]\n oldValue.splice(index, 1);\n formGroup.get('value').setValue(oldValue);\n }\n }\n}\n","import { ChangeDetectionStrategy, ChangeDetectorRef, Component, forwardRef, Input, OnDestroy, OnInit } from '@angular/core';\nimport { ControlContainer, FormArray, FormBuilder, FormGroup, NG_VALUE_ACCESSOR, Validators } from '@angular/forms';\nimport { merge, Subject } from 'rxjs';\nimport { takeUntil } from 'rxjs/operators';\nimport { QueryBuilderService } from '../query-builder.service';\nimport { Condition, Conjunction } from '../query-builder.types';\nimport { NovoLabelService } from 'novo-elements/services';\n\nconst EMPTY_CONDITION: Condition = {\n field: null,\n operator: null,\n value: null,\n};\n@Component({\n selector: 'novo-condition-group',\n templateUrl: './condition-group.component.html',\n styleUrls: ['./condition-group.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n providers: [{ provide: NG_VALUE_ACCESSOR, useExisting: forwardRef(() => ConditionGroupComponent), multi: true }],\n host: {\n class: 'novo-condition-group',\n },\n})\nexport class ConditionGroupComponent implements OnInit, OnDestroy {\n @Input() controlName: string = '$' + Conjunction.AND;\n @Input() groupIndex: number;\n\n public parentForm: FormGroup;\n public innerForm: FormGroup;\n /** Subject that emits when the component has been destroyed. */\n private readonly _onDestroy = new Subject<void>();\n\n constructor(\n public qbs: QueryBuilderService,\n public labels: NovoLabelService,\n private controlContainer: ControlContainer,\n private formBuilder: FormBuilder,\n private cdr: ChangeDetectorRef,\n ) {}\n\n ngOnInit() {\n this.parentForm = this.controlContainer.control as FormGroup;\n this.controlName = Object.keys(this.parentForm.controls)[0];\n merge(this.parentForm.parent.valueChanges, this.qbs.stateChanges)\n .pipe(takeUntil(this._onDestroy))\n .subscribe(() => this.cdr.markForCheck());\n }\n\n ngOnDestroy() {\n this._onDestroy.next();\n this._onDestroy.complete();\n }\n\n updateControlName(value: string) {\n const name = `$${value.replace('$', '')}`;\n if (name !== this.controlName) {\n const current = this.parentForm.get(this.controlName).value;\n this.parentForm.controls[name] = this.parentForm.controls[this.controlName];\n delete this.parentForm.controls[this.controlName];\n this.controlName = name;\n this.parentForm.get(this.controlName).setValue(current);\n this.cdr.markForCheck();\n }\n }\n\n get root(): FormArray {\n return this.parentForm.get(this.controlName) as FormArray;\n }\n\n addCondition(data?: any) {\n const conditon = this.newCondition(data);\n this.root.push(conditon);\n this.cdr.markForCheck();\n }\n\n removeCondition(index: number) {\n this.root.removeAt(index);\n this.cdr.markForCheck();\n }\n\n newCondition({ field, operator, value }: Condition = EMPTY_CONDITION): FormGroup {\n return this.formBuilder.group({\n field: [field, Validators.required],\n operator: [operator, Validators.required],\n value: [value],\n });\n }\n\n cantRemoveRow(isFirst: boolean) {\n if ((this.parentForm.parent as FormArray).length > 1) return false;\n return this.root.length <= 1;\n }\n}\n","<div [formGroup]=\"parentForm\" class=\"condition-group-container\">\n <novo-stack [formArrayName]=\"controlName\" gap=\"md\">\n <ng-container\n *ngFor=\"let andGroup of root.controls; let andIndex = index; let isFirst = first;let isLast = last;\">\n <ng-container [formGroupName]=\"andIndex\">\n <novo-flex class=\"condition-row\" align=\"end\" gap=\"sm\">\n <novo-dropdown *ngIf=\"!isFirst && qbs.allowedGroupings.length > 1; else labeledGroup\">\n <button theme=\"dialogue\" icon=\"collapse\" size=\"sm\">{{qbs.getConjunctionLabel(controlName)}}</button>\n <novo-optgroup>\n <novo-option *ngFor=\"let c of qbs.allowedGroupings\" (click)=\"updateControlName(c)\">\n {{qbs.getConjunctionLabel(c)}}</novo-option>\n </novo-optgroup>\n </novo-dropdown>\n <ng-template #labeledGroup>\n <novo-label *ngIf=\"!isFirst\" color=\"ash\" size=\"xs\" uppercase padding=\"sm\">\n {{qbs.getConjunctionLabel(controlName)}}</novo-label>\n </ng-template>\n <novo-condition-builder [groupIndex]=\"groupIndex\" [andIndex]=\"andIndex\" [isFirst]=\"isFirst\"></novo-condition-builder>\n <novo-button theme=\"icon\" icon=\"delete-o\" color=\"negative\" (click)=\"removeCondition(andIndex)\"\n [disabled]=\"cantRemoveRow(isFirst)\">\n </novo-button>\n </novo-flex>\n </ng-container>\n </ng-container>\n <button theme=\"dialogue\" data-automation-id=\"add-advanced-search-condition\" icon=\"add-thin\" side=\"left\" size=\"sm\" uppercase (click)=\"addCondition()\">\n {{ labels.addCondition }}</button>\n </novo-stack>\n <!-- <button class=\"and-or-button\" theme=\"secondary\" size=\"sm\" (click)=\"addRootCondition()\">{{ addCriteriaLabel }}</button> -->\n</div>","import {\n AfterContentChecked,\n AfterViewInit,\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component,\n ContentChildren,\n forwardRef,\n Input,\n OnDestroy,\n OnInit,\n QueryList,\n} from '@angular/core';\nimport { ControlContainer, FormArray, FormBuilder, FormGroup, NG_VALUE_ACCESSOR, Validators } from '@angular/forms';\nimport { interval, Subject } from 'rxjs';\nimport { debounce, takeUntil } from 'rxjs/operators';\nimport { NovoConditionFieldDef } from '../query-builder.directives';\nimport { QueryBuilderService } from '../query-builder.service';\nimport { NOVO_CRITERIA_BUILDER } from '../query-builder.tokens';\nimport { BaseFieldDef, Condition, ConditionGroup, Conjunction } from '../query-builder.types';\n\nconst EMPTY_CONDITION: Condition = {\n field: null,\n operator: null,\n value: null,\n};\n@Component({\n selector: 'novo-criteria-builder',\n templateUrl: './criteria-builder.component.html',\n styleUrls: ['./criteria-builder.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n providers: [\n { provide: NG_VALUE_ACCESSOR, useExisting: forwardRef(() => CriteriaBuilderComponent), multi: true },\n { provide: NOVO_CRITERIA_BUILDER, useExisting: CriteriaBuilderComponent },\n { provide: QueryBuilderService, useClass: QueryBuilderService },\n ],\n host: {\n class: 'novo-criteria-builder',\n },\n})\nexport class CriteriaBuilderComponent implements OnInit, OnDestroy, AfterContentChecked, AfterViewInit {\n @Input() config: any;\n @Input() controlName: string;\n @Input() allowedGroupings = [Conjunction.AND, Conjunction.OR, Conjunction.NOT];\n @Input() editTypeFn: (field: BaseFieldDef) => string;\n\n @ContentChildren(NovoConditionFieldDef, { descendants: true }) _contentFieldDefs: QueryList<NovoConditionFieldDef>;\n\n public parentForm: FormGroup;\n public innerForm: FormGroup;\n /** Subject that emits when the component has been destroyed. */\n private readonly _onDestroy = new Subject<void>();\n\n constructor(\n private controlContainer: ControlContainer,\n private formBuilder: FormBuilder,\n private cdr: ChangeDetectorRef,\n public qbs: QueryBuilderService,\n ) {}\n\n ngOnInit() {\n this.parentForm = this.controlContainer.control as FormGroup;\n this.innerForm = this.formBuilder.group({\n criteria: this.formBuilder.array([]),\n });\n\n this.parentForm.valueChanges.pipe(takeUntil(this._onDestroy)).subscribe((value) => {\n Promise.resolve().then(() => {\n this.setInitalValue(value[this.controlName]);\n this.cdr.markForCheck();\n });\n });\n this.innerForm.valueChanges\n .pipe(\n debounce(() => interval(10)),\n takeUntil(this._onDestroy),\n )\n .subscribe((value) => {\n const result = value.criteria.filter((it, i) => {\n const key = Object.keys(it)[0];\n if (it[key].length === 0) {\n this.removeConditionGroupAt(i);\n }\n return it[key].length > 0;\n });\n\n Promise.resolve().then(() => {\n this.parentForm.get(this.controlName).setValue(result, { emitEvent: false });\n this.cdr.markForCheck();\n });\n });\n }\n\n ngAfterContentChecked(): void {\n this._configureQueryBuilderService();\n this.cdr.detectChanges();\n }\n\n ngAfterViewInit(): void {\n this._registerFieldDefs();\n }\n\n ngOnDestroy() {\n this._onDestroy.next();\n this._onDestroy.complete();\n }\n\n private isConditionGroup(group: unknown) {\n return Object.keys(group).every((key) => ['$and', '$or', '$not'].includes(key));\n }\n\n private setInitalValue(value: ConditionGroup[] | Condition[]) {\n if (value.length && this.isConditionGroup(value[0])) {\n value.forEach((it) => this.addConditionGroup(it));\n } else {\n this.addConditionGroup({ $and: value });\n }\n }\n\n get root(): FormArray {\n return this.innerForm.get('criteria') as FormArray;\n }\n\n addConditionGroup(data: any = { $and: [EMPTY_CONDITION] }) {\n this.root.push(this.newConditionGroup(data));\n this.cdr.markForCheck();\n }\n\n newConditionGroup(data: ConditionGroup): FormGroup {\n const controls = Object.entries(data).reduce((obj, [key, val]) => {\n return {\n ...obj,\n [key]: this.formBuilder.array(val.map((it) => this.newCondition(it))),\n };\n }, {});\n return this.formBuilder.group(controls);\n }\n\n newCondition({ field, operator, value }: Condition = EMPTY_CONDITION): FormGroup {\n return this.formBuilder.group({\n field: [field, Validators.required],\n operator: [operator, Validators.required],\n value: [value],\n });\n }\n\n removeConditionGroupAt(index: number) {\n this.root.removeAt(index, { emitEvent: false });\n }\n\n clearAllConditions() {\n while (this.root.length) {\n this.root.removeAt(0);\n }\n }\n\n private _configureQueryBuilderService() {\n this.qbs.config = this.config;\n this.qbs.editTypeFn = this.editTypeFn;\n this.qbs.allowedGroupings = this.allowedGroupings as Conjunction[];\n }\n\n private _registerFieldDefs() {\n const defs = [...Array.from(this._contentFieldDefs)];\n defs.forEach((fieldDef) => {\n this.qbs.registerFieldDef(fieldDef);\n });\n }\n}\n","<form [formGroup]=\"innerForm\">\n <novo-stack [formArrayName]=\"controlName\" class=\"criteria-builder-inner\">\n <ng-container\n *ngFor=\"let andGroup of root.controls; let andIndex = index; let isFirst = first;let isLastAnd = last;\">\n <novo-label *ngIf=\"!isFirst\" color=\"ash\" size=\"xs\" uppercase padding=\"sm\">{{qbs.getConjunctionLabel('and')}}\n </novo-label>\n <novo-condition-group [groupIndex]=\"andIndex\" [formGroupName]=\"andIndex\"></novo-condition-group>\n </ng-container>\n </novo-stack>\n</form>\n<novo-id-condition-def name=\"ID\"></novo-id-condition-def>\n<novo-date-condition-def name=\"DATE\"></novo-date-condition-def>\n<novo-date-time-condition-def name=\"TIMESTAMP\"></novo-date-time-condition-def>\n<novo-string-condition-def name=\"STRING\"></novo-string-condition-def>\n<novo-number-condition-def name=\"FLOAT\"></novo-number-condition-def>\n<novo-number-condition-def name=\"INTEGER\"></novo-number-condition-def>\n<novo-number-condition-def name=\"BIGDECIMAL\"></novo-number-condition-def>\n<novo-number-condition-def name=\"DOUBLE\"></novo-number-condition-def>\n<novo-address-condition-def name=\"ADDRESS\"></novo-address-condition-def>\n<novo-boolean-condition-def name=\"BOOLEAN\"></novo-boolean-condition-def>\n<novo-picker-condition-def name=\"SELECT\"></novo-picker-condition-def>\n<novo-string-condition-def name=\"DEFAULT\"></novo-string-condition-def>\n\n<!-- \n {\n $and: [{\n $or: [{\n entity: 'JobOrder'\n field: 'categories',\n operator: 'doesNotContain',\n value: 'Healthcare'\n }]\n }]\n }\n -->","import { DragDropModule } from '@angular/cdk/drag-drop';\nimport { CdkTableModule } from '@angular/cdk/table';\nimport { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { FormsModule, ReactiveFormsModule } from '@angular/forms';\nimport { NovoAutoCompleteModule } from 'novo-elements/elements/autocomplete';\nimport { NovoButtonModule } from 'novo-elements/elements/button';\nimport { NovoCardModule } from 'novo-elements/elements/card';\nimport { NovoChipsModule } from 'novo-elements/elements/chips';\nimport { NovoCommonModule, NovoOptionModule, NovoOverlayModule } from 'novo-elements/elements/common';\nimport { NovoDatePickerModule } from 'novo-elements/elements/date-picker';\nimport { NovoDateTimePickerModule } from 'novo-elements/elements/date-time-picker';\nimport { NovoDropdownModule } from 'novo-elements/elements/dropdown';\nimport { NovoFieldModule } from 'novo-elements/elements/field';\nimport { NovoFlexModule } from 'novo-elements/elements/flex';\nimport { NovoFormModule } from 'novo-elements/elements/form';\nimport { NovoIconModule } from 'novo-elements/elements/icon';\nimport { NovoLoadingModule } from 'novo-elements/elements/loading';\nimport { NovoNonIdealStateModule } from 'novo-elements/elements/non-ideal-state';\nimport { GooglePlacesModule } from 'novo-elements/elements/places';\nimport { NovoRadioModule } from 'novo-elements/elements/radio'\nimport { NovoSearchBoxModule } from 'novo-elements/elements/search';\nimport { NovoSelectModule } from 'novo-elements/elements/select';\nimport { NovoSelectSearchModule } from 'novo-elements/elements/select-search';\nimport { NovoSwitchModule } from 'novo-elements/elements/switch';\nimport { NovoTabModule } from 'novo-elements/elements/tabs';\nimport { ConditionBuilderComponent, ConditionInputOutlet, ConditionOperatorOutlet } from './condition-builder/condition-builder.component';\nimport { NovoDefaultAddressConditionDef } from './condition-definitions/address-condition.definition';\nimport { NovoDefaultBooleanConditionDef } from './condition-definitions/boolean-condition.definition';\nimport { NovoDefaultDateConditionDef } from './condition-definitions/date-condition.definition';\nimport { NovoDefaultDateTimeConditionDef } from './condition-definitions/date-time-condition.definition';\nimport { NovoDefaultIdConditionDef } from './condition-definitions/id-condition.definition';\nimport { NovoDefaultNumberConditionDef } from './condition-definitions/number-condition.definition';\nimport { NovoDefaultPickerConditionDef } from './condition-definitions/picker-condition.definition';\nimport { NovoDefaultStringConditionDef } from './condition-definitions/string-condition.definition';\nimport { ConditionGroupComponent } from './condition-group/condition-group.component';\nimport { CriteriaBuilderComponent } from './criteria-builder/criteria-builder.component';\nimport { NovoConditionFieldDef, NovoConditionInputDef, NovoConditionOperatorsDef } from './query-builder.directives';\n\n@NgModule({\n imports: [\n CommonModule,\n FormsModule,\n ReactiveFormsModule,\n DragDropModule,\n CdkTableModule,\n GooglePlacesModule,\n NovoAutoCompleteModule,\n NovoButtonModule,\n NovoCommonModule,\n NovoFormModule,\n NovoSelectModule,\n NovoNonIdealStateModule,\n NovoFieldModule,\n NovoOptionModule,\n NovoFlexModule,\n NovoTabModule,\n NovoLoadingModule,\n NovoCardModule,\n NovoDatePickerModule,\n NovoDateTimePickerModule,\n NovoIconModule,\n NovoOverlayModule,\n NovoRadioModule,\n NovoSearchBoxModule,\n NovoSwitchModule,\n NovoChipsModule,\n NovoSelectSearchModule,\n NovoDropdownModule,\n ],\n declarations: [\n CriteriaBuilderComponent,\n ConditionBuilderComponent,\n ConditionInputOutlet,\n ConditionOperatorOutlet,\n ConditionGroupComponent,\n NovoDefaultAddressConditionDef,\n NovoDefaultBooleanConditionDef,\n NovoDefaultDateConditionDef,\n NovoDefaultDateTimeConditionDef,\n NovoConditionOperatorsDef,\n NovoConditionInputDef,\n NovoConditionFieldDef,\n NovoDefaultStringConditionDef,\n NovoDefaultNumberConditionDef,\n NovoDefaultIdConditionDef,\n NovoDefaultPickerConditionDef,\n ],\n exports: [\n CriteriaBuilderComponent,\n ConditionBuilderComponent,\n NovoDefaultAddressConditionDef,\n NovoDefaultBooleanConditionDef,\n NovoDefaultDateConditionDef,\n NovoDefaultDateTimeConditionDef,\n NovoConditionOperatorsDef,\n NovoConditionInputDef,\n NovoConditionFieldDef,\n NovoDefaultStringConditionDef,\n NovoDefaultNumberConditionDef,\n NovoDefaultIdConditionDef,\n NovoDefaultPickerConditionDef,\n ],\n})\nexport class NovoQueryBuilderModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":["i2.QueryBuilderService","i5","i6","i7","i1.QueryBuilderService","i2","i3","i4","i8.NovoConditionFieldDef","i8.NovoConditionOperatorsDef","i9","i8.NovoConditionInputDef","i1","i5.NovoConditionFieldDef","i5.NovoConditionOperatorsDef","i5.NovoConditionInputDef","i6.NovoConditionFieldDef","i6.NovoConditionOperatorsDef","i6.NovoConditionInputDef","i8","i4.NovoConditionFieldDef","i4.NovoConditionOperatorsDef","i4.NovoConditionInputDef","EMPTY_CONDITION","i8.ConditionBuilderComponent","i5.ConditionGroupComponent","i6.NovoDefaultIdConditionDef","i7.NovoDefaultDateConditionDef","i8.NovoDefaultDateTimeConditionDef","i9.NovoDefaultStringConditionDef","i10.NovoDefaultNumberConditionDef","i11.NovoDefaultAddressConditionDef","i12.NovoDefaultBooleanConditionDef","i13.NovoDefaultPickerConditionDef","i14"],"mappings":"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"}
|