@wavemaker/app-ng-runtime 12.0.0-next.45052 → 12.0.0-next.45057

Sign up to get free protection for your applications and to get access to all the features.
Files changed (30) hide show
  1. app-ng-runtime/components/containers/tabs/bundles/index.umd.js +14 -6
  2. app-ng-runtime/components/containers/tabs/esm2022/tabs.component.mjs +14 -7
  3. app-ng-runtime/components/containers/tabs/esm2022/tabs.props.mjs +3 -2
  4. app-ng-runtime/components/containers/tabs/fesm2022/index.mjs +14 -6
  5. app-ng-runtime/components/containers/tabs/fesm2022/index.mjs.map +1 -1
  6. app-ng-runtime/components/containers/tabs/tabs.component.d.ts +1 -0
  7. app-ng-runtime/components/input/default/bundles/index.umd.js +77 -50
  8. app-ng-runtime/components/input/default/esm2022/switch/switch.component.mjs +64 -38
  9. app-ng-runtime/components/input/default/esm2022/switch/switch.props.mjs +2 -1
  10. app-ng-runtime/components/input/default/fesm2022/index.mjs +77 -50
  11. app-ng-runtime/components/input/default/fesm2022/index.mjs.map +1 -1
  12. app-ng-runtime/components/input/default/switch/switch.component.d.ts +2 -0
  13. app-ng-runtime/components/page/left-panel/bundles/index.umd.js +6 -2
  14. app-ng-runtime/components/page/left-panel/esm2022/left-panel.directive.mjs +9 -5
  15. app-ng-runtime/components/page/left-panel/fesm2022/index.mjs +8 -4
  16. app-ng-runtime/components/page/left-panel/fesm2022/index.mjs.map +1 -1
  17. app-ng-runtime/components/page/left-panel/left-panel.directive.d.ts +2 -2
  18. app-ng-runtime/components/page/right-panel/bundles/index.umd.js +6 -2
  19. app-ng-runtime/components/page/right-panel/esm2022/right-panel.directive.mjs +9 -5
  20. app-ng-runtime/components/page/right-panel/fesm2022/index.mjs +8 -4
  21. app-ng-runtime/components/page/right-panel/fesm2022/index.mjs.map +1 -1
  22. app-ng-runtime/components/page/right-panel/right-panel.directive.d.ts +2 -2
  23. app-ng-runtime/core/bundles/index.umd.js +3 -0
  24. app-ng-runtime/core/esm2022/public_api.mjs +2 -2
  25. app-ng-runtime/core/esm2022/utils/utils.mjs +2 -1
  26. app-ng-runtime/core/fesm2022/index.mjs +3 -1
  27. app-ng-runtime/core/fesm2022/index.mjs.map +1 -1
  28. app-ng-runtime/core/public_api.d.ts +1 -1
  29. app-ng-runtime/core/utils/utils.d.ts +1 -0
  30. app-ng-runtime/package.json +1 -1
@@ -1 +1 @@
1
- {"version":3,"file":"index.mjs","sources":["../../../../../projects/components/widgets/input/default/src/button/button.props.ts","../../../../../projects/components/widgets/input/default/src/button/button.component.html","../../../../../projects/components/widgets/input/default/src/button/button.component.ts","../../../../../projects/components/widgets/input/default/src/button-group/button-group.props.ts","../../../../../projects/components/widgets/input/default/src/button-group/button-group.directive.ts","../../../../../projects/components/widgets/input/default/src/base-form.component.ts","../../../../../projects/components/widgets/input/default/src/base-form-custom.component.ts","../../../../../projects/components/widgets/input/default/src/checkbox/checkbox.props.ts","../../../../../projects/components/widgets/input/default/src/checkbox/checkbox.component.ts","../../../../../projects/components/widgets/input/default/src/checkbox/checkbox.component.html","../../../../../projects/components/widgets/input/default/src/dataset-aware-form.component.ts","../../../../../projects/components/widgets/input/default/src/checkboxset/checkboxset.props.ts","../../../../../projects/components/widgets/input/default/src/checkboxset/checkboxset.component.html","../../../../../projects/components/widgets/input/default/src/checkboxset/checkboxset.component.ts","../../../../../projects/components/widgets/input/default/src/composite/composite.props.ts","../../../../../projects/components/widgets/input/default/src/composite/composite.directive.ts","../../../../../projects/components/widgets/input/default/src/number/number.props.ts","../../../../../projects/components/widgets/input/default/src/text/base/base-input.ts","../../../../../projects/components/widgets/input/default/src/text/locale/number-locale.ts","../../../../../projects/components/widgets/input/default/src/number/number.component.ts","../../../../../projects/components/widgets/input/default/src/number/number.component.html","../../../../../projects/components/widgets/input/default/src/radioset/radioset.props.ts","../../../../../projects/components/widgets/input/default/src/radioset/radioset.component.html","../../../../../projects/components/widgets/input/default/src/radioset/radioset.component.ts","../../../../../projects/components/widgets/input/default/src/select/select.props.ts","../../../../../projects/components/widgets/input/default/src/select/select.component.html","../../../../../projects/components/widgets/input/default/src/select/select.component.ts","../../../../../projects/components/widgets/input/default/src/switch/switch.props.ts","../../../../../projects/components/widgets/input/default/src/switch/switch.component.html","../../../../../projects/components/widgets/input/default/src/switch/switch.component.ts","../../../../../projects/components/widgets/input/default/src/text/calendar/input-calendar.props.ts","../../../../../projects/components/widgets/input/default/src/text/calendar/input-calendar.component.ts","../../../../../projects/components/widgets/input/default/src/text/calendar/input-calendar.component.html","../../../../../projects/components/widgets/input/default/src/text/color/input-color.props.ts","../../../../../projects/components/widgets/input/default/src/text/color/input-color.component.ts","../../../../../projects/components/widgets/input/default/src/text/color/input-color.component.html","../../../../../projects/components/widgets/input/default/src/text/email/input-email.props.ts","../../../../../projects/components/widgets/input/default/src/text/email/input-email.component.ts","../../../../../projects/components/widgets/input/default/src/text/email/input-email.component.html","../../../../../projects/components/widgets/input/default/src/text/number/input-number.props.ts","../../../../../projects/components/widgets/input/default/src/text/number/input-number.component.ts","../../../../../projects/components/widgets/input/default/src/text/number/input-number.component.html","../../../../../projects/components/widgets/input/default/src/text/text/input-text.props.ts","../../../../../projects/components/widgets/input/default/src/text/text/input-text.component.ts","../../../../../projects/components/widgets/input/default/src/text/text/input-text.component.html","../../../../../projects/components/widgets/input/default/src/textarea/textarea.props.ts","../../../../../projects/components/widgets/input/default/src/textarea/textarea.component.html","../../../../../projects/components/widgets/input/default/src/textarea/textarea.component.ts","../../../../../projects/components/widgets/input/default/src/caption-position.directive.ts","../../../../../projects/components/widgets/input/default/src/input.module.ts","../../../../../projects/components/widgets/input/default/src/index.ts"],"sourcesContent":["import { PROP_ANY, PROP_BOOLEAN, PROP_NUMBER, PROP_STRING, register } from '@wm/components/base';\n\nexport const registerProps = () => {\n register(\n 'wm-button',\n new Map(\n [\n ['animation', PROP_STRING],\n ['badgevalue', PROP_STRING],\n ['caption', PROP_STRING],\n ['class', PROP_STRING],\n ['conditionalclass', PROP_ANY],\n ['conditionalstyle', PROP_ANY],\n ['disabled', PROP_BOOLEAN],\n ['hint', PROP_STRING],\n ['iconclass', PROP_STRING],\n ['iconheight', PROP_STRING],\n ['iconmargin', PROP_STRING],\n ['iconposition', PROP_STRING],\n ['iconurl', PROP_STRING],\n ['iconwidth', PROP_STRING],\n ['name', PROP_STRING],\n ['shortcutkey', PROP_STRING],\n ['show', {value: true, ...PROP_BOOLEAN}],\n ['tabindex', {value: 0, ...PROP_NUMBER}],\n ['type', PROP_STRING]\n ]\n )\n );\n};\n","<img data-identifier=\"img\" alt=\"button image\" class=\"button-image-icon\" [src]=\"iconurl | image\" *ngIf=\"iconurl\" [ngStyle]=\"{width:iconwidth, height:iconheight, margin:iconmargin}\"/>\n<i class=\"app-icon {{iconclass}}\" aria-hidden=\"true\" [ngStyle]=\"{width:iconwidth, height:iconheight, margin:iconmargin, fontSize:iconwidth}\" *ngIf=\"iconclass\"></i>\n<span class=\"sr-only\" *ngIf=\"iconclass\">{{caption}} {{appLocale.LABEL_ICON}}</span>\n<span class=\"btn-caption\" [innerHTML]=\"caption\"></span>\n<ng-content select=\".caret\"></ng-content>\n<span *ngIf=\"badgevalue\" class=\"badge pull-right\" [textContent]=\"badgevalue\"></span>\n","import { Component, HostBinding, Inject, Injector, Optional } from '@angular/core';\n\nimport { DISPLAY_TYPE, IWidgetConfig, provideAsWidgetRef, StylableComponent, styler } from '@wm/components/base';\n\nimport { registerProps } from './button.props';\n\nconst DEFAULT_CLS = 'btn app-button';\nconst WIDGET_CONFIG: IWidgetConfig = {\n widgetType: 'wm-button',\n hostClass: DEFAULT_CLS,\n displayType: DISPLAY_TYPE.INLINE_BLOCK\n};\n\n@Component({\n selector: 'button[wmButton]',\n templateUrl: './button.component.html',\n providers: [\n provideAsWidgetRef(ButtonComponent)\n ],\n exportAs: 'wmButton'\n})\nexport class ButtonComponent extends StylableComponent {\n static initializeProps = registerProps();\n\n public iconurl: string;\n public iconclass: string;\n public caption: string;\n public badgevalue: string;\n @HostBinding('type') type: string;\n @HostBinding('tabIndex') tabindex: number;\n @HostBinding('disabled') disabled: boolean;\n @HostBinding('attr.accesskey') shortcutkey: string;\n @HostBinding('attr.icon-position') iconposition: string;\n\n constructor(inj: Injector, @Inject('EXPLICIT_CONTEXT') @Optional() explicitContext: any) {\n super(inj, WIDGET_CONFIG, explicitContext);\n styler(this.nativeElement, this);\n }\n}\n","import { PROP_BOOLEAN, PROP_STRING, register } from '@wm/components/base';\n\nexport const registerProps = () => {\n register(\n 'wm-buttongroup',\n new Map(\n [\n ['class', PROP_STRING],\n ['name', PROP_STRING],\n ['show', {value: true, ...PROP_BOOLEAN}],\n ['vertical', PROP_BOOLEAN]\n ]\n )\n );\n};\n","import {Directive, HostBinding, HostListener, Inject, Injector, Optional} from '@angular/core';\n\nimport { APPLY_STYLES_TYPE, IWidgetConfig, provideAsWidgetRef, StylableComponent, styler } from '@wm/components/base';\nimport { registerProps } from './button-group.props';\n\nconst DEFAULT_CLS = 'btn-group app-button-group';\nconst WIDGET_CONFIG: IWidgetConfig = {\n widgetType: 'wm-buttongroup',\n hostClass: DEFAULT_CLS\n};\n\n@Directive({\n selector: '[wmButtonGroup]',\n providers: [\n provideAsWidgetRef(ButtonGroupDirective)\n ]\n})\nexport class ButtonGroupDirective extends StylableComponent {\n static initializeProps = registerProps();\n @HostBinding('class.btn-group-vertical') vertical: boolean;\n @HostListener('click', ['$event']) handleClick(event) {\n const $target = $(event.target).closest('.app-button');\n this.$element.find('.app-button').removeClass('selected');\n $target.addClass('selected');\n }\n\n constructor(inj: Injector, @Inject('EXPLICIT_CONTEXT') @Optional() explicitContext: any) {\n super(inj, WIDGET_CONFIG, explicitContext);\n\n styler(this.nativeElement, this, APPLY_STYLES_TYPE.CONTAINER);\n }\n}\n","import {AfterViewInit, Inject, Injectable, Injector, Optional} from '@angular/core';\n\nimport {DataSource} from '@wm/core';\n\nimport { IWidgetConfig, StylableComponent, WidgetConfig } from '@wm/components/base';\nimport {has, set} from \"lodash-es\";\n\n@Injectable()\nexport abstract class BaseFormComponent extends StylableComponent implements AfterViewInit{\n\n private dataval;\n private prevDatavalue;\n protected binddatavalue: string;\n private datavaluesource: any;\n\n protected constructor(\n protected inj: Injector,\n @Inject(WidgetConfig) config: IWidgetConfig,\n @Inject('EXPLICIT_CONTEXT') @Optional() explicitContext: any,\n initPromise?: Promise<any>\n ) {\n super(inj, config, explicitContext, initPromise);\n this.binddatavalue = this.$element.attr('datavalue.bind');\n }\n\n set datavalue(datavalue) {\n this.dataval = datavalue;\n }\n\n get datavalue() {\n return this.dataval;\n }\n\n /**\n * Responsible for updating the variable bound to the widget's datavalue property.\n * @param value\n */\n updateBoundVariable(value) {\n let binddatavalue = this.binddatavalue;\n\n // return if the variable bound is not static.\n if (this.datavaluesource && this.datavaluesource.execute(DataSource.Operation.IS_API_AWARE)) {\n return;\n } else if (this.datavaluesource && !this.datavaluesource.twoWayBinding) {\n return;\n }\n\n // return if widget is bound.\n if (!binddatavalue || binddatavalue.startsWith('Widgets.') || binddatavalue.startsWith('itemRef.currentItemWidgets')) {\n return;\n }\n\n binddatavalue = binddatavalue.replace(/\\[\\$i\\]/g, '[0]');\n\n // In case of list widget context will be the listItem.\n if (has(this.context, binddatavalue.split('.')[0])) {\n set(this.context, binddatavalue, value);\n } else {\n set(this.viewParent, binddatavalue, value);\n }\n }\n\n protected invokeOnChange(value, $event?: Event) {\n // invoke the event callback\n if ($event) {\n if (this.datavalue !== this.prevDatavalue) {\n this.updateBoundVariable(value);\n this.invokeEventCallback('change', {\n $event,\n newVal: value,\n oldVal: this.prevDatavalue\n });\n }\n }\n // update the previous value\n this.prevDatavalue = value;\n }\n\n protected updatePrevDatavalue(val: any) {\n this.prevDatavalue = val;\n }\n\n ngAfterViewInit() {\n super.ngAfterViewInit();\n\n// [WMS-18892]- stopping event propagation [for ArrowLeft, ArrowUp, ArrowRight, ArrowDown actions] when form widgets or form is inside list widget\n let parentElemList = $(this.nativeElement).parents();\n if (parentElemList.closest('[wmList]').length) {\n this.$element.keydown(function($event) {\n if ($event.keyCode === 37 || $event.keyCode === 38 || $event.keyCode === 39 || $event.keyCode === 40) {\n $event.stopPropagation();\n }\n });\n }\n }\n}\n","import { ControlValueAccessor, FormControlName, Validator, ValidatorFn, AbstractControl } from '@angular/forms';\nimport { Injectable, OnInit } from '@angular/core';\n\nimport { BaseFormComponent } from './base-form.component';\n\n/*\n * WMS-18269\n * custom 'required' validator for components,\n * as the bound values are resolved at runtime\n * Called on 'required' property change\n *\n * Note: Component needs NG_VALIDATOR provider for this to work\n */\nfunction isValidValue(val): Boolean {\n switch(typeof val) {\n case 'object': return (!!val && (!!val.length || !!Object.keys(val).length));\n case 'number': return (!!val || val === 0);\n default: return !(val === undefined || val === null || val === '');\n }\n}\nfunction validateRequiredBind(required: boolean): ValidatorFn {\n return (control: AbstractControl) =>\n required\n ? (isValidValue(control.value)\n ? null\n : { required: true })\n : null;\n}\n\n@Injectable()\nexport abstract class BaseFormCustomComponent extends BaseFormComponent implements ControlValueAccessor, OnInit, Validator {\n\n private _formControl: FormControlName;\n protected _onChange: any = () => {};\n private _onTouched: any = () => {};\n\n ngOnInit() {\n super.ngOnInit();\n this._formControl = this.inj.get(FormControlName, null);\n }\n\n public registerOnChange(fn) {\n this._onChange = fn;\n }\n\n public registerOnTouched(fn) {\n this._onTouched = fn;\n }\n\n public writeValue(value) {\n if (this.isDestroyed) {\n return;\n }\n if (this._formControl) {\n this.datavalue = value;\n this.onPropertyChange('datavalue', value);\n this.updatePrevDatavalue(value);\n }\n /*\n * WMS:18246\n * Call onChange on default value, so that the Component Model is updated\n * Do only When the Model Value is different from datavalue\n */\n (value!==this.datavalue) && this._onChange(this.datavalue);\n }\n\n public invokeOnChange(value, $event?: Event | any, valid?: boolean) {\n // let the angular know about the change\n this._onChange(value);\n if ($event) {\n super.invokeOnChange(value, $event);\n } else if (valid) {\n // Fix for [WMS-24869]: updating PrevDatavalue when there is a default value for the widget.\n this.updatePrevDatavalue(value);\n }\n }\n\n public invokeOnTouched($event?: Event) {\n this._onTouched();\n\n if ($event) {\n this.invokeEventCallback('blur', {$event});\n }\n }\n\n public invokeOnFocus($event: Event) {\n this.invokeEventCallback('focus', {$event});\n }\n /* WMS-18269 */\n validate(control: AbstractControl):{[key: string]:any} {\n return this['show'] ? validateRequiredBind(this['required'])(control) : null;\n }\n}\n","import { FormWidgetType } from '@wm/core';\nimport { PROP_ANY, PROP_BOOLEAN, PROP_NUMBER, PROP_STRING, register, registerFormWidget } from '@wm/components/base';\n\nexport const checkboxProps = new Map(\n [\n ['caption', PROP_STRING],\n ['class', PROP_STRING],\n ['conditionalclass', PROP_ANY],\n ['conditionalstyle', PROP_ANY],\n ['checkedvalue', {value: true, ...PROP_STRING}],\n ['datavaluesource', PROP_ANY],\n ['datavalue', PROP_STRING],\n ['disabled', PROP_BOOLEAN],\n ['hint', PROP_STRING],\n ['name', PROP_STRING],\n ['readonly', PROP_BOOLEAN],\n ['required', PROP_BOOLEAN],\n ['shortcutkey', PROP_STRING],\n ['show', {value: true, ...PROP_BOOLEAN}],\n ['tabindex', {value: 0, ...PROP_NUMBER}],\n ['uncheckedvalue', {value: false, ...PROP_STRING}]\n ]\n);\n\nexport const registerProps = () => {\n register(\n 'wm-checkbox',\n checkboxProps\n );\n registerFormWidget(\n FormWidgetType.CHECKBOX,\n checkboxProps\n );\n registerFormWidget(\n FormWidgetType.TOGGLE,\n checkboxProps\n );\n};\n","import {\n AfterViewInit,\n Attribute,\n Component,\n ElementRef,\n HostListener,\n Inject,\n Injector,\n OnInit,\n Optional,\n ViewChild\n} from '@angular/core';\nimport { NgModel, NG_VALUE_ACCESSOR, NG_VALIDATORS } from '@angular/forms';\n\nimport {isDefined, toggleClass} from '@wm/core';\nimport { IWidgetConfig, provideAs, provideAsWidgetRef, styler } from '@wm/components/base';\nimport { BaseFormCustomComponent } from '../base-form-custom.component';\n\nimport { registerProps } from './checkbox.props';\n\nconst DEFAULT_CLS = 'app-checkbox checkbox';\nconst WIDGET_CONFIG: IWidgetConfig = {\n widgetType: 'wm-checkbox',\n hostClass: DEFAULT_CLS\n};\n\n/*\n * try to convert the chekedvalue and unchecked values to boolean/number\n */\nexport const unStringify = (val, defaultVal?) => {\n if (val === null) {\n return defaultVal;\n }\n\n if (val === true || val === 'true') {\n return true;\n }\n\n if (val === false || val === 'false') {\n return false;\n }\n\n const number = parseInt(val, 10);\n if (!isNaN(number)) {\n return number;\n }\n return val;\n};\n\n@Component({\n selector: '[wmCheckbox]',\n templateUrl: './checkbox.component.html',\n providers: [\n provideAs(CheckboxComponent, NG_VALUE_ACCESSOR, true),\n provideAs(CheckboxComponent, NG_VALIDATORS, true),\n provideAsWidgetRef(CheckboxComponent)\n ]\n})\nexport class CheckboxComponent extends BaseFormCustomComponent implements OnInit, AfterViewInit {\n static initializeProps = registerProps();\n\n public proxyModel: boolean;\n public disabled: boolean;\n public readonly: boolean;\n public required: boolean;\n public name: string;\n public hint: string;\n public shortcutkey: string;\n public tabindex: any;\n public _caption = '&nbsp';\n private _checkedvalue;\n private _uncheckedvalue;\n\n @ViewChild(NgModel) ngModel: NgModel;\n @ViewChild('checkbox', { static: true, read: ElementRef }) checkboxEl: ElementRef;\n\n // if the checkbox is checked, return checkedvalue else return uncheckedvalue\n // @ts-ignore\n public get datavalue() {\n return isDefined(this.proxyModel) ? (this.proxyModel ? this._checkedvalue : this._uncheckedvalue) : undefined;\n }\n // when the datavalue is set, update the checked state\n // @ts-ignore\n public set datavalue(v) {\n this.proxyModel = (isDefined(v) && v !== '') ? v === this._checkedvalue : undefined;\n this.updatePrevDatavalue(this.datavalue);\n }\n\n constructor(\n inj: Injector,\n @Attribute('checkedvalue') checkedVal,\n @Attribute('uncheckedvalue') uncheckedVal,\n @Attribute('type') public type,\n @Inject('EXPLICIT_CONTEXT') @Optional() explicitContext: any\n ) {\n super(inj, WIDGET_CONFIG, explicitContext);\n\n this._checkedvalue = unStringify(checkedVal, true);\n this._uncheckedvalue = unStringify(uncheckedVal, false);\n\n // if the type of the checkbox is toggle update the related classes on the host node\n toggleClass(this.nativeElement, 'app-toggle', type === 'toggle');\n }\n\n onPropertyChange(key, nv, ov) {\n if (key === 'tabindex') {\n return;\n }\n if (key === 'required') {\n this._onChange(this.datavalue);\n return;\n }\n\n if (key === 'caption') {\n if (!isDefined(nv) || nv === '') {\n this._caption = '&nbsp;';\n } else {\n this._caption = nv;\n }\n } else if (key === 'checkedvalue') {\n this._checkedvalue = unStringify(nv, true);\n } else if (key === 'uncheckedvalue') {\n this._uncheckedvalue = unStringify(nv, false);\n } else if (key === 'datavalue') {\n this.datavalue = unStringify(nv);\n this._onChange(this.datavalue);\n } else {\n super.onPropertyChange(key, nv, ov);\n }\n }\n\n // change and blur events are handled from template\n protected handleEvent(node: HTMLElement, eventName: string, callback: Function, locals: any) {\n if (eventName !== 'change' && eventName !== 'blur') {\n // applying tap (Hammer event) on the label as the event handler is not getting triggered on the input.\n const $el = eventName === 'tap' ? this.nativeElement.querySelector('label') : this.checkboxEl.nativeElement;\n super.handleEvent($el, eventName, callback, locals);\n }\n }\n\n handleChange(newVal: boolean) {\n this.invokeOnChange(this.datavalue, {type: 'change'}, this.ngModel.valid);\n }\n\n @HostListener('keydown.enter', ['$event', '\"ENTER\"'])\n onKeyDown($event) {\n $event.preventDefault();\n this.checkboxEl.nativeElement.click();\n }\n\n\n ngAfterViewInit() {\n super.ngAfterViewInit();\n styler(this.nativeElement.querySelector('label'), this);\n }\n}\n","<label [ngClass]=\"{'unchecked': !proxyModel, 'disabled': (disabled || readonly), 'required': (required && _caption)}\">\n <input type=\"checkbox\"\n role=\"checkbox\"\n #checkbox\n [attr.name]=\"name\"\n [attr.aria-label]=\"hint\"\n [attr.aria-checked]=\"!!proxyModel\"\n focus-target\n [(ngModel)]=\"proxyModel\"\n [ngModelOptions]=\"{standalone: true}\"\n [readonly]=\"readonly\"\n [required]=\"required\"\n [disabled]=\"disabled || readonly\"\n [attr.accesskey]=\"shortcutkey\"\n [tabindex]=\"tabindex\"\n (blur)=\"invokeOnTouched($event)\"\n (ngModelChange)=\"handleChange($event)\">\n <span class=\"caption\" [innerHtml]=\"_caption\"></span>\n <img alt=\"Checkbox Image\" aria-hidden=\"true\" src=\"data:image/gif;base64,R0lGODlhAQABAAAAACH5BAEKAAEALAAAAAABAAEAAAICTAEAOw==\" class=\"switch\"/>\n</label>\n<input type=\"hidden\" class=\"ng-hide model-holder\" aria-hidden=\"true\" tabindex=\"-1\" [disabled]=\"disabled\" [value]=\"proxyModel\">\n","import {Attribute, Inject, Injectable, Injector, OnDestroy, OnInit, Optional} from '@angular/core';\nimport {Subject} from 'rxjs';\nimport {$appDigest, AppDefaults, debounce, isDefined, isEqualWithFields, noop, toBoolean} from '@wm/core';\nimport { ALLFIELDS, convertDataToObject, DataSetItem, extractDataAsArray, getOrderedDataset, getUniqObjsByDataField, handleHeaderClick, toggleAllHeaders, transformFormData, transformDataWithKeys, groupData, ToDatePipe, IWidgetConfig, WidgetConfig } from '@wm/components/base';\nimport { BaseFormCustomComponent } from './base-form-custom.component';\nimport {debounce as _debounce, find, isArray, isEmpty, isEqual, isNull, isObject, toString} from \"lodash-es\";\n\n@Injectable()\nexport abstract class DatasetAwareFormComponent extends BaseFormCustomComponent implements OnInit, OnDestroy {\n public dataset: any;\n public datafield: string;\n public displayfield: string;\n public displaylabel: string;\n public displayimagesrc: string;\n public displayexpression: string;\n public usekeys: boolean;\n public orderby: string;\n public multiple: boolean;\n public readonly: boolean;\n public content: string;\n public collapsible: boolean;\n public datePipe;\n\n public handleHeaderClick: ($event) => void;\n private toggleAllHeaders: void;\n public appDefaults;\n\n public binddisplayexpression: string;\n public binddisplayimagesrc: string;\n public binddisplaylabel: string;\n\n public displayValue: Array<string> | string;\n\n public datasetItems: DataSetItem[] = [];\n public acceptsArray = false; // set to true if proxyModel on widget accepts array type.\n protected dataset$ = new Subject();\n protected datavalue$ = new Subject();\n\n protected match: string;\n protected dateformat: string;\n public groupedData: any[];\n\n protected _modelByKey: any;\n public _modelByValue: any;\n public _defaultQueryInvoked: boolean; // for search/chips if datavalue is obtained from the default n/w call then set to true and do not update the modelByKeys.\n\n // this field contains the initial datavalue which needs to be processed once the dataset is available\n public toBeProcessedDatavalue: any;\n private readonly _debouncedInitDatasetItems: Function;\n protected allowempty = true;\n public compareby: any;\n\n private cancelLocaleChangeSubscription;\n\n public get modelByKey() {\n return this._modelByKey;\n }\n\n // triggers on ngModel change. This function extracts the datavalue value.\n public set modelByKey(val: any) {\n this.selectByKey(val);\n\n // invoke on datavalue change.\n this.invokeOnChange(this._modelByValue);\n }\n\n // @ts-ignore\n public get datavalue() {\n return this._modelByValue;\n }\n\n // triggers on setting the datavalue. This function extracts the model value.\n // @ts-ignore\n public set datavalue(val: any) {\n if (this.multiple) {\n val = extractDataAsArray(val);\n }\n this._modelByValue = val;\n\n this.selectByValue(val);\n\n // changes on the datavalue can be subscribed using listenToDatavalue\n this.datavalue$.next(val);\n\n // invoke on datavalue change.\n this.invokeOnChange(val, undefined, true);\n }\n\n protected constructor(inj: Injector, @Inject(WidgetConfig) config: IWidgetConfig,\n @Inject('EXPLICIT_CONTEXT') @Optional() explicitContext: any, @Attribute('groupby') public groupby?: string) {\n super(inj, config, explicitContext);\n this.datePipe = this.inj.get(ToDatePipe);\n this.appDefaults = this.inj.get(AppDefaults);\n this.binddisplayexpression = this.nativeElement.getAttribute('displayexpression.bind');\n this.binddisplayimagesrc = this.nativeElement.getAttribute('displayimagesrc.bind');\n this.binddisplaylabel = this.nativeElement.getAttribute('displaylabel.bind');\n\n this._debouncedInitDatasetItems = debounce(() => {\n this.initDatasetItems();\n $appDigest();\n }, 150);\n this.handleHeaderClick = noop;\n\n this.cancelLocaleChangeSubscription = this.getAppInstance().subscribe(\"locale-changed\", () => {\n this._debouncedInitDatasetItems();\n });\n }\n\n /**\n * This function sets the _datavalue value from the model and sets the selected flag when item is found.\n * Here model is the value obtained from ngModel.\n * @param keys represent the model.\n */\n protected selectByKey(keys) {\n this.resetDatasetItems();\n\n if (!this.datasetItems.length) {\n return;\n }\n\n if (this.multiple && !isArray(keys)) {\n keys = [keys];\n }\n\n // Set the _modelByKey to the modified keys.\n this._modelByKey = keys;\n\n if (this.multiple) {\n this._modelByValue = [];\n keys.forEach(key => {\n const itemByKey = find(this.datasetItems, item => {\n // not triple equal, as the instance type can be different.\n // only value comparison should be done.\n return toString(item.key) === toString(key);\n });\n if (itemByKey) {\n itemByKey.selected = true;\n this._modelByValue = [...this._modelByValue, itemByKey.value];\n }\n });\n } else {\n this._modelByValue = '';\n const itemByKey = find(this.datasetItems, item => {\n // not triple equal, as the instance type can be different.\n // only value comparison should be done.\n return toString(item.key) === toString(keys);\n });\n if (itemByKey) {\n itemByKey.selected = true;\n this._modelByValue = itemByKey.value;\n }\n }\n this.initDisplayValues();\n }\n\n /**\n * This function sets the _model value from the datavalue (selectedvalues) and sets the selected flag when item is found.\n * datavalue is the default value or a value representing the displayField (for suppose: object in case of ALLFIELDS).\n * If acceptsArray is true, the model always accepts an array.\n * For example, select always accepts model as array whether multiple select is true or false.\n * @param values represent the datavalue.\n */\n protected selectByValue(values: Array<any> | any) {\n this.resetDatasetItems();\n\n // if datavalue is not defined or empty then set the model as undefined.\n if (!isDefined(values) || values === '' || isNull(values) || (values instanceof Array && !values.length)) {\n this._modelByKey = undefined;\n // do not return when allowempty is set to true.\n if (!this.allowempty || !isDefined(values)) {\n return;\n }\n }\n\n if (this.acceptsArray && !isArray(values)) {\n values = this.allowempty ? [values] : extractDataAsArray(values);\n }\n\n // preserve the datavalue if datasetItems are empty.\n if (!this.datasetItems.length && isDefined(values)) {\n this.toBeProcessedDatavalue = values;\n return;\n }\n\n const filterField = this.datafield === ALLFIELDS ? 'dataObject' : 'key';\n\n if (isArray(values)) {\n this._modelByKey = [];\n values.forEach(val => {\n const itemByValue = find(this.datasetItems, item => {\n if (filterField === 'dataObject') {\n if (this.compareby && this.compareby.length) {\n return isEqualWithFields(item[filterField], val, this.compareby);\n }\n }\n return (isObject(item.value) ? isEqual(item.value, val) : (toString(item.value)).toLowerCase() === (toString(val)).toLowerCase());\n });\n if (itemByValue) {\n itemByValue.selected = true;\n this._modelByKey.push(itemByValue.key);\n }\n });\n } else {\n this._modelByKey = undefined;\n const itemByValue = find(this.datasetItems, item => {\n if (filterField === 'dataObject') {\n if (this.compareby && this.compareby.length) {\n return isEqualWithFields(item[filterField], values, this.compareby);\n }\n }\n return (isObject(item.value) ? isEqual(item.value, values) : (toString(item.value)).toLowerCase() === (toString(values)).toLowerCase());\n });\n if (itemByValue) {\n itemByValue.selected = true;\n this._modelByKey = itemByValue.key;\n }\n }\n // delaying the datavalue update as the widgets in liveform are having datavalue as undefined and not the default provided value\n // because datavalue is updated later when new dataset is available.\n this._debounceDatavalueUpdation(values);\n }\n\n protected readonly _debounceDatavalueUpdation = _debounce((values) => {\n // if no item is found in datasetItems, wait untill the dataset updates by preserving the datavalue in toBeProcessedDatavalue.\n if (!isDefined(this._modelByKey) || (isArray(this._modelByKey) && !this._modelByKey.length)) {\n this.toBeProcessedDatavalue = values;\n this._modelByValue = '';\n } else if (isDefined(this.toBeProcessedDatavalue)) {\n // obtain the first array value when multiple is set to false.\n // set the modelByValue only when undefined.\n if (!isDefined(this._modelByValue)) {\n this._modelByValue = (!this.multiple && isArray(this.toBeProcessedDatavalue)) ? this.toBeProcessedDatavalue[0] : this.toBeProcessedDatavalue;\n }\n this.toBeProcessedDatavalue = undefined;\n }\n\n this.initDisplayValues();\n }, 150);\n\n // Updates the displayValue property.\n protected initDisplayValues() {\n const displayValues = [];\n this.datasetItems.forEach(item => {\n if (item.selected) {\n displayValues.push(item.label);\n }\n });\n\n this.displayValue = this.multiple ? displayValues : displayValues[0] || '';\n }\n\n // This function parses the dataset and extracts the displayOptions from parsed dataset.\n protected initDatasetItems() {\n if (!this.dataset || isEmpty(this.dataset)) {\n this.datasetItems = [];\n // notify the dataset listeners\n this.dataset$.next(this.datasetItems);\n return;\n }\n\n // convert any dataset to the object format.\n const orderedDataset = getOrderedDataset(convertDataToObject(this.dataset), this.orderby);\n\n if (this.usekeys) {\n this.datasetItems = transformDataWithKeys(orderedDataset);\n } else {\n const displayOptions = transformFormData(this.viewParent, orderedDataset, this.datafield, {\n displayField: this.displayfield || this.displaylabel,\n displayExpr: this.displayexpression,\n bindDisplayExpr: this.binddisplayexpression || this.binddisplaylabel,\n bindDisplayImgSrc: this.binddisplayimagesrc,\n displayImgSrc: this.displayimagesrc\n });\n // get the unique objects out of the extracted data. Notify change in datasetItems using [...datasetItems] notation\n this.datasetItems = [...getUniqObjsByDataField(displayOptions, this.datafield, this.displayfield || this.displaylabel, toBoolean(this.allowempty))];\n }\n\n this.postDatasetItemsInit();\n }\n\n // Once the datasetItems are ready, set the proxyModel by using datavalue.\n protected postDatasetItemsInit() {\n if (this.datasetItems.length && !this._defaultQueryInvoked) {\n // use the latest of toBeProcessedDatavalue, datavalue\n const _datavalue = isEmpty(this.toBeProcessedDatavalue) ? this.datavalue : this.toBeProcessedDatavalue;\n this.selectByValue(_datavalue);\n }\n // notify the dataset listeners\n this.dataset$.next(this.datasetItems);\n }\n\n // Reset the selected flag on datasetItems to false.\n protected resetDatasetItems() {\n this.datasetItems.forEach(item => item.selected = false);\n }\n\n protected setTemplate(partialName) {\n this.content = partialName;\n if (this.viewParent && this.viewParent.prefabName) {\n this['prefabName'] = this.viewParent.prefabName;\n }\n }\n\n\n private getGroupedData() {\n return this.datasetItems.length ? groupData(this, convertDataToObject(this.datasetItems), this.groupby, this.match, this.orderby, this.dateformat, this.datePipe, 'dataObject', this.appDefaults) : [];\n }\n\n private datasetSubscription() {\n const datasetSubscription = this.dataset$.subscribe(() => {\n this.groupedData = this.getGroupedData();\n });\n this.registerDestroyListener(() => datasetSubscription.unsubscribe());\n }\n\n protected setGroupData() {\n this.datasetSubscription();\n // If groupby is set, get the groupedData from the datasetItems.\n this.groupedData = this.getGroupedData();\n }\n\n\n onPropertyChange(key: string, nv: any, ov?: any) {\n super.onPropertyChange(key, nv, ov);\n switch (key) {\n case 'dataset':\n case 'datafield':\n case 'displayfield':\n case 'displaylabel':\n case 'displayexpression':\n case 'orderby':\n case 'usekeys':\n this._debouncedInitDatasetItems();\n break;\n case 'required':\n case 'datavalue':\n this._onChange(this.datavalue);\n break;\n case 'groupby':\n case 'match':\n if (this.widgetType !== 'wm-search' && this.widgetType !== 'wm-chips') {\n this.setGroupData();\n }\n break;\n }\n }\n\n ngOnInit() {\n super.ngOnInit();\n if (this.groupby && (this.widgetType !== 'wm-search' && this.widgetType !== 'wm-chips')) {\n this.setGroupData();\n }\n // adding the handler for header click and toggle headers.\n if (this.groupby && this.collapsible) {\n this.handleHeaderClick = handleHeaderClick;\n this.toggleAllHeaders = toggleAllHeaders.bind(undefined, this);\n }\n }\n\n ngOnDestroy() {\n if(this.cancelLocaleChangeSubscription) {\n this.cancelLocaleChangeSubscription();\n }\n }\n}\n","import { FormWidgetType } from '@wm/core';\nimport { PROP_ANY, PROP_BOOLEAN, PROP_NUMBER, PROP_STRING, register, registerFormWidget } from '@wm/components/base';\n\nexport const checkboxsetProps = new Map(\n [\n ['class', PROP_STRING],\n ['collapsible', PROP_BOOLEAN],\n ['compareby', PROP_STRING],\n ['datafield', PROP_STRING],\n ['dataset', {value: 'Option 1, Option 2, Option 3', ...PROP_ANY}],\n ['datavaluesource', PROP_ANY],\n ['datavalue', PROP_STRING],\n ['dateformat', PROP_STRING],\n ['disabled', PROP_BOOLEAN],\n ['displayexpression', PROP_STRING],\n ['displayfield', PROP_STRING],\n ['displayValue', PROP_STRING],\n ['groupby', PROP_STRING],\n ['itemclass', {value: '', ...PROP_STRING}],\n ['itemsperrow', {value: 'xs-1 sm-1 md-1 lg-1', ...PROP_STRING}],\n ['listclass', {value: '', ...PROP_STRING}],\n ['match', PROP_STRING],\n ['name', PROP_STRING],\n ['orderby', PROP_STRING],\n ['readonly', PROP_BOOLEAN],\n ['required', PROP_BOOLEAN],\n ['show', {value: true, ...PROP_BOOLEAN}],\n ['showcount', PROP_BOOLEAN],\n ['showindevice', {displayType: 'inline-block', value: 'all', ...PROP_STRING}],\n ['tabindex', {value: 0, ...PROP_NUMBER}],\n ['usekeys', PROP_BOOLEAN]\n ]\n);\n\nexport const registerProps = () => {\n register(\n 'wm-checkboxset',\n checkboxsetProps\n );\n registerFormWidget(\n FormWidgetType.CHECKBOXSET,\n new Map(checkboxsetProps)\n );\n};\n","<ng-template [ngIf]=\"!groupby\" [ngIfElse]=\"groupedListTemplate\">\n <li [ngClass]=\"['checkbox', 'app-checkbox', itemclass, itemsPerRowClass]\"\n [class.active]=\"item.selected\"\n *ngFor=\"let item of datasetItems; let i = index\"\n [wmItemTemplate]=\"content\" [userComponentParams]=\"item\" partialContainer\n (click)=\"onCheckboxLabelClick($event, item.key)\" role=\"presentation\">\n <!-- Default item template -->\n <label *ngIf=\"!content\" class=\"app-checkboxset-label\" [ngClass]=\"{'disabled':disabled || readonly}\" [title]=\"item.label\">\n <input [name]=\"'checkboxset_' + widgetId\" type=\"checkbox\" [attr.aria-label]=\"item.key\"\n [tabindex]=\"tabindex\" [attr.aria-checked]=\"item.selected\"\n [disabled]=\"disabled || readonly\" [attr.data-attr-index]=\"i\"\n [value]=\"item.key\" [tabindex]=\"tabindex\" [checked]=\"item.selected\"/>\n <span class=\"caption\" [textContent]=\"item.label\"></span>\n </label>\n <!-- Custom partial template -->\n <label *ngIf=\"content\" class=\"app-checkboxset-label\" [ngClass]=\"{'disabled':disabled || readonly}\" >\n <input [name]=\"'checkboxset_' + widgetId\" type=\"checkbox\" [attr.aria-label]=\"item.key\"\n [tabindex]=\"tabindex\" [attr.aria-checked]=\"item.selected\"\n [disabled]=\"disabled || readonly\" [attr.data-attr-index]=\"i\"\n [value]=\"item.key\" [tabindex]=\"tabindex\" [checked]=\"item.selected\"/>\n <span class=\"caption customTemplate\" partial-container-target></span>\n </label>\n </li>\n</ng-template>\n<input [disabled]=\"disabled || readonly\" hidden class=\"model-holder\">\n<div *ngIf=\"readonly || disabled\" class=\"readonly-wrapper\"></div>\n\n<!-- This template will be displayed when groupby is specified. -->\n<ng-template #groupedListTemplate>\n <li *ngFor=\"let groupObj of groupedData\" class=\"app-list-item-group\" role=\"presentation\">\n <ul class=\"item-group\">\n <li class=\"list-group-header\" (click)=\"handleHeaderClick($event)\" [title]=\"groupObj.key\" [ngClass]=\"{'collapsible-content': collapsible}\">\n <h4 class=\"group-title\">{{groupObj.key}}\n <div class=\"header-action\">\n <i class=\"app-icon wi action wi-chevron-up\" *ngIf=\"collapsible\" title=\"{{appLocale.LABEL_COLLAPSE}}/{{appLocale.LABEL_EXPAND}}\"></i>\n <span *ngIf=\"showcount\" class=\"label label-default\" [textContent]=\"groupObj.data.length\"></span>\n </div>\n </h4>\n </li>\n <li *ngFor=\"let item of groupObj.data; let i = index;\"\n [ngClass]=\"['checkbox', 'app-checkbox', 'group-list-item', itemclass, itemsPerRowClass]\"\n [class.active]=\"item.selected\"\n [wmItemTemplate]=\"content\" [userComponentParams]=\"item\" partialContainer\n (click)=\"onCheckboxLabelClick($event, item)\">\n <!-- Default item template -->\n <label *ngIf=\"!content\" class=\"app-checkboxset-label\" [ngClass]=\"{'disabled':disabled || readonly}\" [title]=\"item.label\">\n <input [name]=\"'checkboxset_' + widgetId\" type=\"checkbox\" aria-label=\"checkbox group\"\n [tabindex]=\"tabindex\"\n [disabled]=\"disabled || readonly\" [attr.data-attr-index]=\"i\"\n [value]=\"item.key\" [tabindex]=\"tabindex\" [checked]=\"item.selected\"/>\n <span class=\"caption\" [textContent]=\"item.label\"></span>\n </label>\n <!-- Custom partial template -->\n <label *ngIf=\"content\" class=\"app-checkboxset-label\" [ngClass]=\"{'disabled':disabled || readonly}\" >\n <input [name]=\"'checkboxset_' + widgetId\" type=\"checkbox\" aria-label=\"checkbox group\"\n [tabindex]=\"tabindex\"\n [disabled]=\"disabled || readonly\" [attr.data-attr-index]=\"i\"\n [value]=\"item.key\" [tabindex]=\"tabindex\" [checked]=\"item.selected\"/>\n <span class=\"caption\" partial-container-target></span>\n </label>\n </li>\n </ul>\n </li>\n</ng-template>\n","import {Attribute, Component, HostListener, Inject, Injector, Optional} from '@angular/core';\nimport { NG_VALUE_ACCESSOR, NG_VALIDATORS } from '@angular/forms';\n\nimport {AppDefaults, noop, setListClass, switchClass} from '@wm/core';\nimport { convertDataToObject, IWidgetConfig, groupData, handleHeaderClick, provideAs, provideAsWidgetRef, styler, toggleAllHeaders } from '@wm/components/base';\nimport { DatasetAwareFormComponent } from '../dataset-aware-form.component';\n\nimport { registerProps } from '../checkboxset/checkboxset.props';\nimport {forEach, includes} from \"lodash-es\";\n\ndeclare const $;\n\nconst DEFAULT_CLS = 'app-checkboxset list-group inline';\nconst WIDGET_CONFIG: IWidgetConfig = {widgetType: 'wm-checkboxset', hostClass: DEFAULT_CLS};\n\n@Component({\n selector: '[wmCheckboxset]',\n exportAs: 'wmCheckboxset',\n templateUrl: 'checkboxset.component.html',\n providers: [\n provideAs(CheckboxsetComponent, NG_VALUE_ACCESSOR, true),\n provideAs(CheckboxsetComponent, NG_VALIDATORS, true),\n provideAsWidgetRef(CheckboxsetComponent)\n ]\n})\n\nexport class CheckboxsetComponent extends DatasetAwareFormComponent {\n static initializeProps = registerProps();\n\n public layout = '';\n public collapsible: boolean;\n\n protected match: string;\n protected dateformat: string;\n\n public disabled: boolean;\n public itemsperrow: string;\n private itemsPerRowClass: string;\n\n constructor(inj: Injector, @Inject('EXPLICIT_CONTEXT') @Optional() explicitContext: any) {\n super(inj, WIDGET_CONFIG, explicitContext);\n styler(this.nativeElement, this);\n this.multiple = true;\n }\n\n triggerInvokeOnChange(keys, $event) {\n this.modelByKey = keys;\n\n this.invokeOnTouched();\n // invoke on datavalue change.\n this.invokeOnChange(this.datavalue, $event || {}, true);\n }\n\n onCheckboxLabelClick($event, key) {\n if (!$($event.target).is('input')) {\n return;\n }\n\n // construct the _model from the checked elements.\n const inputElements = this.nativeElement.querySelectorAll('input:checked');\n const keys = [];\n forEach(inputElements, ($el) => {\n // @ts-ignore\n keys.push($el.value);\n });\n\n this.triggerInvokeOnChange(keys, $event);\n }\n\n // change and blur events are added from the template\n protected handleEvent(node: HTMLElement, eventName: string, callback: Function, locals: any) {\n if (eventName === 'click') {\n this.eventManager.addEventListener(\n node,\n eventName,\n e => {\n if (!$(e.target).is('input')) {\n return;\n }\n locals.$event = e;\n return callback();\n }\n );\n } else if (!includes(['change'], eventName)) {\n super.handleEvent(node, eventName, callback, locals);\n }\n }\n\n @HostListener('keydown.enter', ['$event', '\"ENTER\"'])\n onKeyDown($event) {\n $event.preventDefault();\n $event.target.click();\n }\n\n onPropertyChange(key, nv, ov?) {\n\n if (key === 'tabindex') {\n return;\n }\n if (key === 'required') {\n this._onChange(this.datavalue);\n return;\n }\n if (key === 'itemsperrow') {\n setListClass(this);\n } else {\n super.onPropertyChange(key, nv, ov);\n }\n }\n}\n","import { PROP_BOOLEAN, PROP_STRING, register } from '@wm/components/base';\n\nexport const registerProps = () => {\n register(\n 'wm-form-group',\n new Map(\n [\n ['captionposition', PROP_STRING],\n ['name', PROP_STRING],\n ['required', PROP_BOOLEAN],\n ['show', {value: true, ...PROP_BOOLEAN}]\n ]\n )\n );\n};\n","import {AfterViewInit, ContentChildren, Directive, Inject, Injector, Optional} from '@angular/core';\n\nimport {addForIdAttributes, switchClass} from '@wm/core';\n\nimport { APPLY_STYLES_TYPE, IWidgetConfig, provideAsWidgetRef, StylableComponent, styler, WidgetRef } from '@wm/components/base';\n\nimport { registerProps } from './composite.props';\n\ndeclare const $;\n\nconst DEFAULT_CLS = 'form-group app-composite-widget clearfix';\nconst WIDGET_CONFIG: IWidgetConfig = {\n widgetType: 'wm-form-group',\n hostClass: DEFAULT_CLS\n};\n\nconst CAPTION_POSITION = {\n left: 'caption-left',\n right: 'caption-right',\n top: 'caption-top',\n floating: 'caption-floating'\n};\n\n@Directive({\n selector: 'div[wmComposite]',\n providers: [\n provideAsWidgetRef(CompositeDirective)\n ]\n})\nexport class CompositeDirective extends StylableComponent implements AfterViewInit {\n static initializeProps = registerProps();\n\n // this is the reference to the component refs inside the form-group\n @ContentChildren(WidgetRef, {descendants: true}) componentRefs;\n\n public required: boolean;\n\n constructor(inj: Injector, @Inject('EXPLICIT_CONTEXT') @Optional() explicitContext: any) {\n super(inj, WIDGET_CONFIG, explicitContext);\n styler(this.nativeElement, this, APPLY_STYLES_TYPE.CONTAINER);\n }\n\n /**\n * this is onPropertyChange handler for the form-group component\n * @param key\n * @param nv\n * @param ov\n */\n onPropertyChange(key, nv, ov) {\n if (key === 'captionposition') {\n switchClass(this.nativeElement, CAPTION_POSITION[nv], CAPTION_POSITION[ov]);\n } else if (key === 'required') {\n this.required = nv;\n this.assignRequiredToSubComponents();\n } else {\n super.onPropertyChange(key, nv, ov);\n }\n }\n\n /**\n * this method assigns the required on the component/directive based on the required attribute of the form-group\n */\n protected assignRequiredToSubComponents() {\n if (this.required && this.componentRefs) {\n setTimeout(() => {\n this.componentRefs.forEach(componentRef => componentRef.widget.required = true);\n }, 50);\n }\n }\n\n ngAfterViewInit() {\n super.ngAfterViewInit();\n addForIdAttributes(this.nativeElement);\n\n this.assignRequiredToSubComponents();\n }\n}\n","import { PROP_ANY, PROP_BOOLEAN, PROP_NUMBER, PROP_STRING, register, registerFormWidget } from '@wm/components/base';\nimport { FormWidgetType } from '@wm/core';\n\nexport const numberProps = new Map(\n [\n ['autofocus', PROP_BOOLEAN],\n ['class', PROP_STRING],\n ['datavaluesource', PROP_ANY],\n ['datavalue', PROP_STRING],\n ['disabled', PROP_BOOLEAN],\n ['hint', PROP_STRING],\n ['localefilter', PROP_STRING],\n ['minvalue', PROP_NUMBER],\n ['maxvalue', PROP_NUMBER],\n ['name', PROP_STRING],\n ['numberfilter', PROP_STRING],\n ['placeholder', {value: 'Enter number', ...PROP_STRING}],\n ['readonly', PROP_BOOLEAN],\n ['regexp', PROP_STRING],\n ['required', PROP_BOOLEAN],\n ['shortcutkey', PROP_STRING],\n ['show', {value: true, ...PROP_BOOLEAN}],\n ['step', {value: 1, ...PROP_NUMBER}],\n ['tabindex', {value: 0, ...PROP_NUMBER}],\n ['trailingzero', {value: false, ...PROP_BOOLEAN}],\n ['updateon', PROP_STRING],\n ['inputmode', {value: 'natural', ...PROP_STRING}],\n ['conditionalclass', PROP_ANY],\n ['conditionalstyle', PROP_ANY]\n ]\n);\n\nexport const registerProps = () => {\n register(\n 'wm-number',\n numberProps\n );\n registerFormWidget(\n FormWidgetType.NUMBER,\n new Map(numberProps)\n );\n};\n","import {AfterViewInit, ElementRef, Inject, Injectable, Injector, Optional} from '@angular/core';\nimport {NgModel} from '@angular/forms';\n\nimport {$appDigest, addClass, switchClass} from '@wm/core';\nimport {IWidgetConfig, styler, WidgetConfig} from '@wm/components/base';\nimport {BaseFormCustomComponent} from '../../base-form-custom.component';\nimport {get, isString} from \"lodash-es\";\n\n@Injectable()\nexport abstract class BaseInput extends BaseFormCustomComponent implements AfterViewInit {\n public class: string;\n public autotrim: boolean;\n public imask;\n\n // possible values for ngModelOptions are 'blur' and 'change'\n // default is 'blur'\n public ngModelOptions = {\n updateOn: '',\n standalone: true\n };\n\n /**\n * Reference to the input element. All the styles and classes will be applied on this node.\n * Input components must override this\n */\n protected abstract inputEl: ElementRef;\n\n /**\n * Reference to the ngModel directive instance.\n * Used to check the validity of the input\n */\n protected abstract ngModel: NgModel;\n\n protected onPropertyChange(key: string, nv: any, ov: any) {\n // set the class on the input element\n if (key === 'tabindex') {\n return;\n }\n if (key === 'required') {\n /* WMS-18269 | Update Angular about the required attr value change */\n this._onChange(this.datavalue);\n }\n if (key === 'updateon') {\n this.ngModelOptions.updateOn = nv === 'default' ? 'change' : ov;\n }\n if (key === 'class') {\n if (this.inputEl.nativeElement) {\n switchClass(this.inputEl.nativeElement, nv, ov);\n }\n } else if (key === 'datavalue') {\n // update the oldDataValue when the datavalue is modified programmatically\n this.updatePrevDatavalue(nv);\n this._onChange(this.datavalue);\n } else {\n super.onPropertyChange(key, nv, ov);\n }\n }\n\n // invoke the change callback\n handleChange(newValue: any) {\n if (this.autotrim && this.datavalue && isString(this.datavalue)) {\n this.datavalue = this.datavalue.trim();\n }\n\n this.invokeOnChange(this.datavalue, {type: 'change'}, this.ngModel.valid);\n }\n\n // Change event is registered from the template, Prevent the framework from registering one more event\n protected handleEvent(node: HTMLElement, eventName: string, eventCallback: Function, locals: any) {\n if (eventName !== 'change' && eventName !== 'blur') {\n super.handleEvent(this.inputEl.nativeElement, eventName, eventCallback, locals);\n }\n }\n\n // invoke the blur callback\n handleBlur($event) {\n this.invokeOnTouched($event);\n }\n\n // Update the model on enter key press\n flushViewChanges(val) {\n // when val contains masked value, update the model with unmasked value\n const unMaskedVal = get(this.imask, 'maskRef.unmaskedValue');\n val = unMaskedVal ? unMaskedVal : val;\n this.ngModel.update.next(val);\n $appDigest();\n }\n\n ngAfterViewInit() {\n super.ngAfterViewInit();\n\n // add the class on the input element\n if (this.class) {\n addClass(this.inputEl.nativeElement, this.class);\n }\n styler(this.inputEl.nativeElement, this);\n }\n\n protected constructor(\n inj: Injector,\n @Inject(WidgetConfig) config: IWidgetConfig,\n @Inject('EXPLICIT_CONTEXT') @Optional() explicitContext: any\n ) {\n super(inj, config, explicitContext);\n let updateOn = this.nativeElement.getAttribute('updateon') || 'blur';\n updateOn = updateOn === 'default' ? 'change' : updateOn;\n this.ngModelOptions.updateOn = updateOn;\n }\n}\n","import {Inject, Injector, Optional} from '@angular/core';\nimport { AbstractControl, Validator } from '@angular/forms';\nimport { getLocaleNumberSymbol, NumberSymbol } from '@angular/common';\n\nimport {AbstractI18nService, isDefined} from '@wm/core';\nimport { IWidgetConfig, TrailingZeroDecimalPipe, INPUTMODE } from '@wm/components/base';\n\nimport { BaseInput } from '../base/base-input';\nimport {includes, intersection, isNull, isString, isUndefined, round, toArray} from \"lodash-es\";\n\nexport abstract class NumberLocale extends BaseInput implements Validator {\n private DECIMAL: string;\n private GROUP: string;\n private selectedLocale: string;\n private proxyModel: number;\n private numberNotInRange: boolean;\n private isInvalidNumber: boolean;\n private isDefaultQuery: boolean = true;\n private decimalValue: string = '';\n public displayValue: string;\n private numberfilter: string;\n private localefilter: string;\n public readonly: boolean;\n\n public placeholder: string;\n public minvalue: number;\n public maxvalue: number;\n public updateon: string;\n public step: number;\n public trailingzero: boolean;\n private validateType: string;\n public inputmode: string;\n private lastValIsDecimal: boolean;\n\n constructor(\n inj: Injector,\n config: IWidgetConfig,\n private i18nService: AbstractI18nService,\n private trailingZeroDecimalPipe: TrailingZeroDecimalPipe,\n @Inject('EXPLICIT_CONTEXT') @Optional() explicitContext: any\n ) {\n super(inj, config, explicitContext);\n this.selectedLocale = i18nService.getSelectedLocale();\n this.DECIMAL = getLocaleNumberSymbol(this.localefilter || this.selectedLocale, NumberSymbol.Decimal);\n this.GROUP = getLocaleNumberSymbol(this.localefilter || this.selectedLocale, NumberSymbol.Group);\n this.numberfilter = '1.0-16';\n this.resetValidations();\n }\n\n // Setter for the datavalue.\n // @ts-ignore\n set datavalue(value: number) {\n this.lastValIsDecimal = false;\n\n // set text value to null if data value is empty.\n // @ts-ignore\n if (includes([null, undefined, ''], value)) {\n const input = this.inputEl.nativeElement;\n const prevDataValue = (this as any).prevDatavalue;\n this.displayValue = input.value = this.proxyModel = null;\n this.resetValidations();\n if (prevDataValue && !this.isDefaultQuery) {\n this.handleChange(value);\n this._onChange();\n }\n return;\n }\n // if the widget has default value and if we change the locale, the value should be in selected locale format.\n if (this.isDefaultQuery) {\n const isLocalizedNumber = isString(value) && includes(value, this.DECIMAL);\n const parts = isLocalizedNumber ? (value as any).split(this.DECIMAL) : isString(value) && (value as any).split('.');\n this.decimalValue = parts[1] || '';\n (value as any) = isLocalizedNumber ? value : this.transformNumber(value);\n }\n\n const numberReg = /\\d/;\n const strVal = value.toString();\n let model;\n // When the input value only contains seperator, do not convert the sepertaor into 0\n if (numberReg.test(strVal)) {\n model = this.parseNumber(strVal);\n } else {\n model = NaN;\n }\n\n // On keypress, if the user types a decimal and is still active on the input do not throw error.\n if (isNaN(model) && strVal[strVal.length - 1] === this.DECIMAL && this.ngModelOptions.updateOn === 'change' && this.$element.find('input:focus').length) {\n this.lastValIsDecimal = true;\n }\n // get a valid number form the text.\n // if the number is valid or if number is not in range update the model value.\n if (!this.lastValIsDecimal && this.isValid(model)) {\n this.proxyModel = model;\n // update the display value in the text box.\n this.updateDisplayText();\n // Do not trigger onchange event for default value\n if (!this.isDefaultQuery) {\n this.handleChange(model);\n }\n } else {\n this.displayValue = value.toString();\n this.proxyModel = null;\n this.handleChange(null);\n }\n }\n\n // returns the actual model value of the widget.\n get datavalue(): number {\n return this.proxyModel;\n }\n\n // resets all the flags related to the widget's validation.\n protected resetValidations() {\n this.isInvalidNumber = false;\n this.numberNotInRange = false;\n }\n\n /**\n * Adds validations for the number before updating the widget model. like validating min and max value for the widget.\n * @param {number} val number to be validated\n * @returns {number}\n */\n private isValid(val: number): boolean {\n // id number is infinite then consider it as invalid value\n if (isNaN(val) || !isFinite(val) || (!Number.isInteger(this.step) &&\n this.countDecimals(val) > this.countDecimals(this.step))) {\n this.isInvalidNumber = true;\n return false;\n }\n if (val !== this.getValueInRange(val)) {\n this.numberNotInRange = true;\n return true;\n }\n this.resetValidations();\n return true;\n }\n\n /**\n * returns a valid number by validating the minimum and maximum values.\n * @param {number} value\n * @returns {number}\n */\n private getValueInRange(value: number): number {\n if (!isNaN(this.minvalue) && value < this.minvalue) {\n this.validateType = 'minvalue';\n return this.minvalue;\n\n }\n if (!isNaN(this.maxvalue) && value > this.maxvalue) {\n this.validateType = 'maxvalue';\n return this.maxvalue;\n }\n return value;\n }\n\n /**\n * convert number to localized number using angular decimal pipe. eg 10,00,000 or 1,000,000\n * @param number\n * @returns {string}\n */\n private transformNumber(number, numberfilter?): string {\n const filterVal = numberfilter ? numberfilter : this.numberfilter;\n return this.trailingZeroDecimalPipe.transform(number, this.selectedLocale, filterVal, this.localefilter, this.trailingzero, this.decimalValue, !!numberfilter, this.i18nService?.getwidgetLocale());\n }\n\n /**\n * resets the cursor position in the text box.\n * @param {number} value cursor position index form left to right.\n */\n private resetCursorPosition(value: number) {\n const input = this.inputEl.nativeElement;\n // position of the cursor should be given form right to left.\n let position = input.value.length - value;\n position = position < 0 ? 0 : position;\n // set the cursor position in the text box.\n input.setSelectionRange(position, position);\n }\n\n /**\n * Method parses the Localized number(string) to a valid number.\n * if the string dose not result to a valid number then returns NaN.\n * @param {string} val Localized number.\n * @returns {number}\n */\n private parseNumber(val: string): number {\n // WMS-22179: split number based on the decimal separator in the val\n // splits string into two parts. decimal and number.\n const parts = val.split(this.inputmode === INPUTMODE.FINANCIAL ? (val.indexOf(this.DECIMAL) > -1 ? this.DECIMAL : '.') : this.DECIMAL);\n if (!parts.length) {\n return null;\n }\n if (parts.length > 2) {\n return NaN;\n }\n // If number have decimal point and not have a decimal value then return.\n if (parts[1] === '') {\n return NaN;\n }\n // replaces all group separators form the number.\n const number = Number(parts[0].split(this.GROUP).join(''));\n const decimal = Number(`0.${parts[1] || 0}`);\n if (Number.isNaN(number) || Number.isNaN(decimal)) {\n return NaN;\n }\n const sum = parts.length > 1 ? parseFloat((number + decimal).toFixed(parts[1].length)) : number + decimal;\n // if the number is negative then calculate the number as number - decimal\n // Ex: number = -123 and decimal = 0.45 then number - decimal = -123-045 = -123.45\n // If entered number is -0.1 to -0.9 then the number is -0 and decimal is 0.1 to 0.9. Now calaculate the number as number-decimal\n // Ex: number = -0 and decimal = 0.1 then number-decimal = -0-0.1 = -0.1\n if (number === 0) {\n return Object.is(0, number) ? sum : number - decimal;\n }\n return number > 0 ? sum : number - decimal;\n }\n\n // updates the widgets text value.\n private updateDisplayText() {\n const input = this.inputEl.nativeElement;\n const position: number = input.selectionStart;\n const preValue: string = input.value;\n if (!this.isDefaultQuery) {\n const parts = preValue.split(this.DECIMAL);\n this.decimalValue = parts[1] || '';\n }\n const stepVal = this.stepLength();\n if (this.inputmode === INPUTMODE.FINANCIAL && stepVal) {\n this.displayValue = input.value = this.transformNumber(this.proxyModel, `1.${stepVal}-${stepVal}`);\n this.decimalValue = this.decimalValue.replace(/\\D/g,'');\n } else {\n this.displayValue = input.value = this.transformNumber(this.proxyModel);\n }\n // in safari browser, setSelectionRange will focus the input by default, which may invoke the focus event on widget.\n // Hence preventing the setSelectionRange when default value is set i.e. widget is not focused.\n if (this.updateon === 'default' && !this.isDefaultQuery) {\n this.resetCursorPosition(preValue.length - position);\n }\n }\n\n // This function returns the step length set in the studio\n private stepLength() {\n const stepLen = this.step.toString().split('.');\n if (stepLen.length === 1 ) {\n return;\n } else {\n return stepLen[1].length;\n }\n }\n\n // This function checks if the currency widget has input mode as natural and trailing zero is defined or not\n public isNaturalCurrency() {\n return this.inputmode === INPUTMODE.NATURAL && this.widgetType === 'wm-currency' && !!this.trailingzero;\n }\n\n /**\n * @param value contains the value entered in the input box\n * This function modifies the user input value, into financial mode.\n * Number starts from highest precesion decimal, on typing number shifts to the left\n */\n public onInputChange(value: any) {\n const stepVal = this.stepLength();\n // WMS-22355, Trigger change cb if value exists or value is empty but datavalue exists (when value is selected and deleted).\n if (isDefined(value) && (value !== '' || this.datavalue)) {\n this.handleChange(value);\n } else {\n return;\n }\n\n if (!stepVal || this.inputmode !== INPUTMODE.FINANCIAL) {\n return;\n }\n\n let financialVal;\n\n /**\n * If the value is entered by the user, format the input\n * If the value is provided as default value, skip formatting\n */\n if (this.isDefaultQuery) {\n financialVal = parseFloat(value);\n } else {\n const valInWholeNum = parseInt(value.toString().replace(/\\D/g,''));\n financialVal = valInWholeNum * this.step;\n }\n\n if (!isNaN(financialVal)) {\n // When update on key is set keypress, update the datavalue else update only the display value\n if (this.ngModelOptions.updateOn === 'change') {\n this.datavalue = parseFloat(financialVal.toFixed(stepVal));\n this.handleChange(this.datavalue);\n } else {\n this.displayValue = financialVal.toFixed(stepVal);\n }\n } else if (this.ngModelOptions.updateOn !== 'blur') {\n this.datavalue = undefined;\n this.handleChange(null);\n }\n }\n\n // Input mode is financial and trailing zero is set to false, On focus set display val to fixed point notation and On blur strip trailing zeros\n // In currency, inputmode is natural and trailing zero and step are defined, on blur display val to fixed point notation and on focus strip the zeros\n public checkForTrailingZeros($event) {\n const stepVal = this.stepLength();\n const financialMode = !this.trailingzero && this.inputmode === INPUTMODE.FINANCIAL;\n\n // If the user's last input is a decimal and not active on input field, throw error\n if (this.lastValIsDecimal) {\n this.onModelChange(this.displayValue);\n }\n if (!financialMode && !this.isNaturalCurrency()) {\n return;\n }\n if (stepVal && this.datavalue) {\n let numberfilter;\n if ((financialMode && $event.type === 'focus') || (this.isNaturalCurrency() && $event.type === 'blur')) {\n numberfilter = `1.${stepVal}-${stepVal}`;\n }\n this.displayValue = this.transformNumber(this.datavalue, numberfilter);\n }\n }\n\n /**\n * returns the number of decimal places a number have.\n * @param value: number\n * @returns {number}\n */\n private countDecimals(value) {\n if ((value % 1) !== 0) {\n const decimalValue = value.toString().split('.')[1];\n return decimalValue && decimalValue.length;\n }\n return 0;\n }\n\n /**\n * handles the arrow press event. Increases or decreases the number. triggered fom the template\n * @param $event keyboard event.\n * @param key identifier to increase or decrease the number.\n */\n public onArrowPress($event, key) {\n $event.preventDefault();\n if (this.readonly || this.step === 0) {\n return;\n }\n const targetVal = $event.target.value.replace(/,/g, '');\n\n // proxyModel to be updated from $event.target.value if present to support arrow keys when input changes else pick up from this.proxymodel\n let proxyModel;\n if (targetVal && !isNaN(parseFloat(targetVal))) {\n proxyModel = parseFloat(targetVal);\n } else {\n proxyModel = this.proxyModel;\n }\n\n let value;\n\n // if the number is not in range and when arrow buttons are pressed need to get appropriate number value.\n if (this.numberNotInRange) {\n const inputValue = this.parseNumber(this.inputEl.nativeElement.value);\n // take the textbox value as current model if the value is valid.\n if (!isNaN(inputValue)) {\n value = this.getValueInRange(inputValue);\n proxyModel = inputValue;\n this.resetValidations();\n }\n } else {\n if (isUndefined(proxyModel) || isNull(proxyModel)) {\n proxyModel = value = this.getValueInRange((this.minvalue || 0));\n this.resetValidations();\n } else {\n value = this.getValueInRange(proxyModel + (key === 'UP' ? this.step : -this.step));\n }\n }\n if ((key === 'UP' && proxyModel <= value) || (key === 'DOWN' && proxyModel >= value)) {\n const decimalRoundValue = Math.max(this.countDecimals(proxyModel), this.countDecimals(this.step));\n\n // update the modelProxy.\n this.proxyModel = round(value, decimalRoundValue);\n this.updateDisplayText();\n this.handleChange(this.proxyModel);\n }\n }\n\n /**\n * method is called from the from widget. to check whether the value entered is valid or not.\n * @returns {object}\n */\n public validate(c: AbstractControl) {\n if (this.isInvalidNumber) {\n this.validateType = '';\n return {\n invalidNumber: {\n valid: false\n },\n };\n }\n if (this.numberNotInRange) {\n return {\n numberNotInRange: {\n valid: false\n },\n };\n }\n this.validateType = '';\n /* WMS-18269 | Extending the existing validation for 'required' */\n if (this['show'] && this['required']) {\n return (!!c.value || c.value === 0) ? null : { required: true };\n }\n return null;\n }\n\n public validateInputEntry($event) {\n\n this.isDefaultQuery = false;\n\n // allow actions if control key is pressed or if backspace is pressed. (for Mozilla).\n if ($event.ctrlKey || includes(['Backspace', 'ArrowRight', 'ArrowLeft', 'Tab', 'Enter', 'Delete'], $event.key)) {\n return;\n }\n\n const validity = new RegExp(`^[\\\\d\\\\s-,.e+${this.GROUP}${this.DECIMAL}]$`, 'i');\n const inputValue = $event.target.value;\n\n // when input mode is financial, do not restrict user on entering the value when step value limit is reached.\n const skipStepValidation = this.inputmode === INPUTMODE.FINANCIAL;\n\n // Validates if user eneters more than 16 digits\n if (inputValue) {\n const parsedVal = parseInt(inputValue.toString().replace(/\\D/g,''));\n if (parsedVal.toString().length > 15) {\n // WMS-22321: If the number is greater than MAX_SAFE_INTEGER (more than 15 numbers).\n // user selects a range of digits and presses a key.\n // Do not throw validation of exceeded number as selected range value will be deleted.\n const selectedVal = window.getSelection();\n if (selectedVal && selectedVal.toString() && selectedVal.focusNode === this.nativeElement) {\n return true;\n }\n return false;\n }\n }\n\n // validates entering of decimal values only when user provides decimal limit(i.e step contains decimal values).\n // Restrict user from entering only if the decimal limit is reached and the new digit is entered in decimal place\n if (!skipStepValidation && inputValue && this.countDecimals(this.step) && (this.countDecimals(inputValue) >= this.countDecimals(this.step)) && $event.target.selectionStart >= inputValue.length - 1) {\n return false;\n }\n // validates if user entered an invalid character.\n if (!validity.test($event.key)) {\n return false;\n }\n // comma cannot be entered consecutively\n if (includes(inputValue, ',') && inputValue[inputValue.length - 1] === ',' && $event.key === ',') {\n return false;\n }\n\n // a decimal value can be entered only once in the input.\n if (includes(inputValue, this.DECIMAL) && $event.key === this.DECIMAL) {\n return false;\n }\n // 'e' can be entered only once in the input.\n if (intersection(toArray(inputValue), ['e', 'E']).length && includes('eE', $event.key)) {\n return false;\n }\n if ((includes(inputValue, '+') || includes(inputValue, '-')) && ($event.key === '+' || $event.key === '-')) {\n return false;\n }\n // Do not allow user to enter only space without any input value\n if (!inputValue && $event.code === 'Space') {\n return false;\n }\n }\n\n onBackspace($event) {\n this.isDefaultQuery = false;\n }\n\n onEnter($event) {\n this.datavalue = $event.target.value;\n }\n\n onModelChange($event) {\n if (this.inputmode === INPUTMODE.NATURAL || (this.inputmode === INPUTMODE.FINANCIAL && this.ngModelOptions.updateOn === 'blur')) {\n this.datavalue = $event;\n }\n }\n\n onPropertyChange(key, nv, ov?) {\n if (key === 'minvalue' || key === 'maxvalue') {\n this.isValid(nv);\n } else if (key === 'datavalue' && !ov) {\n if (this.isNaturalCurrency()) {\n this.checkForTrailingZeros({type: 'blur'});\n } else {\n this.onInputChange(nv);\n }\n } else {\n super.onPropertyChange(key, nv, ov);\n }\n }\n}\n","import { NgModel, NG_VALUE_ACCESSOR, NG_VALIDATORS } from '@angular/forms';\nimport {Component, ElementRef, Inject, Injector, Optional, ViewChild} from '@angular/core';\n\nimport {AbstractI18nService} from '@wm/core';\nimport { IWidgetConfig, provideAs, provideAsWidgetRef, TrailingZeroDecimalPipe } from '@wm/components/base';\n\nimport { registerProps } from './number.props';\nimport { NumberLocale } from '../text/locale/number-locale';\n\nconst WIDGET_CONFIG: IWidgetConfig = {\n widgetType: 'wm-number',\n hostClass: 'app-input-wrapper'\n};\n\n@Component({\n selector: '[wmNumber]',\n templateUrl: './number.component.html',\n providers: [\n provideAs(NumberComponent, NG_VALUE_ACCESSOR, true),\n provideAs(NumberComponent, NG_VALIDATORS, true),\n provideAsWidgetRef(NumberComponent)\n ]\n})\nexport class NumberComponent extends NumberLocale {\n static initializeProps = registerProps();\n\n public required: boolean;\n public regexp: string;\n public disabled: boolean;\n public name: string;\n public hint: string;\n public tabindex: any;\n public conditionalclass: any;\n public conditionalstyle: any;\n public shortcutkey: string;\n public autofocus: boolean;\n @ViewChild('input', {static: true}) inputEl: ElementRef;\n @ViewChild(NgModel, {static: true}) ngModel: NgModel;\n\n constructor(inj: Injector, i18nService: AbstractI18nService, trailingZeroDecimalPipe: TrailingZeroDecimalPipe, @Inject('EXPLICIT_CONTEXT') @Optional() explicitContext: any) {\n super(inj, WIDGET_CONFIG, i18nService, trailingZeroDecimalPipe, explicitContext);\n }\n}\n","<input class=\"form-control app-textbox app-number-input\"\n inputmode=\"decimal\"\n focus-target\n [attr.name]=\"name\"\n role=\"textbox\"\n type=\"text\"\n [ngModel]=\"displayValue\"\n [readonly]=\"readonly\"\n [disabled]=\"disabled\"\n [pattern]=\"regexp\"\n [attr.tabindex]=\"tabindex\"\n [attr.placeholder]=\"placeholder\"\n [attr.accesskey]=\"shortcutkey\"\n [attr.aria-label]=\"hint\"\n [autofocus]=\"autofocus\"\n [ngClass]=\"conditionalclass\"\n [ngStyle]=\"conditionalstyle\"\n (ngModelChange)=\"onModelChange($event)\"\n (blur)=\"handleBlur($event); checkForTrailingZeros($event);\"\n (focus)=\"checkForTrailingZeros($event)\"\n (input)=\"onInputChange($event.target.value)\"\n [ngModelOptions]=\"ngModelOptions\"\n [required]=\"required\"\n (keypress)=\"validateInputEntry($event)\"\n (keydown.backspace)=\"onBackspace($event)\"\n (keydown.enter)=\"onEnter($event)\"\n (keydown.ArrowUp)=\"onArrowPress($event, 'UP')\"\n (keydown.ArrowDown)=\"onArrowPress($event, 'DOWN')\"\n #input>\n","import { PROP_ANY, PROP_BOOLEAN, PROP_NUMBER, PROP_STRING, register, registerFormWidget } from '@wm/components/base';\nimport { FormWidgetType } from '@wm/core';\n\nexport const radiosetProps = new Map(\n [\n ['class', PROP_STRING],\n ['collapsible', PROP_BOOLEAN],\n ['compareby', PROP_STRING],\n ['datafield', PROP_STRING],\n ['dataset', {value: 'Option 1, Option 2, Option 3', ...PROP_ANY}],\n ['datavaluesource', PROP_ANY],\n ['datavalue', PROP_ANY],\n ['dateformat', PROP_STRING],\n ['disabled', PROP_BOOLEAN],\n ['displayexpression', PROP_STRING],\n ['displayfield', PROP_STRING],\n ['displayValue', PROP_STRING],\n ['groupby', PROP_STRING],\n ['itemclass', {value: '', ...PROP_STRING}],\n ['itemsperrow', {value: 'xs-1 sm-1 md-1 lg-1', ...PROP_STRING}],\n ['listclass', {value: '', ...PROP_STRING}],\n ['match', PROP_STRING],\n ['name', PROP_STRING],\n ['orderby', PROP_STRING],\n ['readonly', PROP_BOOLEAN],\n ['required', PROP_BOOLEAN],\n ['show', {value: true, ...PROP_BOOLEAN}],\n ['showcount', PROP_BOOLEAN],\n ['showindevice', {displayType: 'inline-block', value: 'all', ...PROP_STRING}],\n ['tabindex', {value: 0, ...PROP_NUMBER}],\n ['usekeys', PROP_BOOLEAN]\n ]\n);\n\nexport const registerProps = () => {\n register(\n 'wm-radioset',\n radiosetProps\n );\n registerFormWidget(\n FormWidgetType.RADIOSET,\n new Map(radiosetProps)\n );\n};\n","<ng-template [ngIf]=\"!groupby\" [ngIfElse]=\"groupedListTemplate\">\n <li [ngClass]=\"['radio', 'app-radio', itemclass, itemsPerRowClass]\"\n [class.active]=\"item.selected\"\n *ngFor=\"let item of datasetItems;let i = index\"\n [wmItemTemplate]=\"content\" [userComponentParams]=\"item\" partialContainer\n (click)=\"onRadioLabelClick($event, item.key)\" role=\"presentation\">\n <!-- Default item template -->\n <label *ngIf=\"!content\" class=\"app-radioset-label\"\n [ngClass]=\"{'disabled':disabled || readonly}\">\n <input [name]=\"'radioset_' + widgetId\" type=\"radio\" [attr.aria-checked]=\"item.selected\" [attr.data-attr-index]=\"i\"\n [value]=\"item.key\" [disabled]=\"disabled || readonly\" [tabindex]=\"tabindex\" [checked]=\"item.selected\"\n [attr.aria-label]=\"item.key\"/>\n <span class=\"caption\" [textContent]=\"item.label\"></span>\n </label>\n <!-- Custom partial template -->\n <label *ngIf=\"content\" class=\"app-radioset-label\"\n [ngClass]=\"{'disabled':disabled || readonly}\">\n <input [name]=\"'radioset_' + widgetId\" type=\"radio\" [attr.aria-checked]=\"item.selected\" [attr.data-attr-index]=\"i\"\n [value]=\"item.key\" [disabled]=\"disabled || readonly\" [tabindex]=\"tabindex\" [checked]=\"item.selected\"\n [attr.aria-label]=\"item.key\"/>\n <span class=\"caption customTemplate\" partial-container-target></span>\n </label>\n </li>\n</ng-template>\n\n<input [disabled]=\"disabled || readonly\" hidden class=\"model-holder\">\n<div *ngIf=\"readonly || disabled\" aria-readonly=\"true\" class=\"readonly-wrapper\"></div>\n\n<!-- This template will be displayed when groupby is specified. -->\n<ng-template #groupedListTemplate>\n <li *ngFor=\"let groupObj of groupedData\" class=\"app-list-item-group\">\n <ul class=\"item-group\">\n <li class=\"list-group-header\" (click)=\"handleHeaderClick($event)\" [title]=\"groupObj.key\" [ngClass]=\"{'collapsible-content': collapsible}\">\n <h4 class=\"group-title\">{{groupObj.key}}\n <div class=\"header-action\">\n <i class=\"app-icon wi action wi-chevron-up\" *ngIf=\"collapsible\" title=\"{{appLocale.LABEL_COLLAPSE}}/{{appLocale.LABEL_EXPAND}}\"></i>\n <span *ngIf=\"showcount\" class=\"label label-default\" [textContent]=\"groupObj.data.length\"></span>\n </div>\n </h4>\n </li>\n <li *ngFor=\"let item of groupObj.data; let i = index;\"\n [ngClass]=\"['radio', 'app-radio', 'group-list-item', itemclass, itemsPerRowClass]\"\n [class.active]=\"item.selected\"\n [wmItemTemplate]=\"content\" [userComponentParams]=\"item\" partialContainer\n (click)=\"onRadioLabelClick($event, item)\">\n <!-- Default item template -->\n <label *ngIf=\"!content\" class=\"app-radioset-label\"\n [ngClass]=\"{'disabled':disabled || readonly}\">\n <input [name]=\"'radioset_' + widgetId\" type=\"radio\" [attr.aria-checked]=\"item.selected\" [attr.data-attr-index]=\"i\"\n [value]=\"item.key\" [disabled]=\"disabled || readonly\" [tabindex]=\"tabindex\" [checked]=\"item.selected\"/>\n <span class=\"caption\" [textContent]=\"item.label\"></span>\n </label>\n <!-- Custom partial template -->\n <label *ngIf=\"content\" class=\"app-radioset-label\"\n [ngClass]=\"{'disabled':disabled || readonly}\">\n <input [name]=\"'radioset_' + widgetId\" type=\"radio\" [attr.aria-checked]=\"item.selected\" [attr.data-attr-index]=\"i\"\n [value]=\"item.key\" [disabled]=\"disabled || readonly\" [tabindex]=\"tabindex\" [checked]=\"item.selected\"/>\n <span class=\"caption customTemplate\" partial-container-target></span>\n </label>\n </li>\n </ul>\n </li>\n</ng-template>\n","import {Component, Inject, Injector, Optional} from '@angular/core';\nimport { NG_VALUE_ACCESSOR, NG_VALIDATORS } from '@angular/forms';\n\nimport {setListClass} from '@wm/core';\n\nimport { provideAsWidgetRef, styler, provideAs } from '@wm/components/base';\nimport { DatasetAwareFormComponent } from '../dataset-aware-form.component';\nimport { registerProps } from './radioset.props';\nimport { includes} from \"lodash-es\";\n\ndeclare const $;\n\nconst DEFAULT_CLS = 'app-radioset list-group inline';\nconst WIDGET_CONFIG = {widgetType: 'wm-radioset', hostClass: DEFAULT_CLS};\n\n@Component({\n selector: '[wmRadioset]',\n exportAs: 'wmRadioset',\n templateUrl: './radioset.component.html',\n providers: [\n provideAs(RadiosetComponent, NG_VALUE_ACCESSOR, true),\n provideAs(RadiosetComponent, NG_VALIDATORS, true),\n provideAsWidgetRef(RadiosetComponent)\n ]\n})\nexport class RadiosetComponent extends DatasetAwareFormComponent {\n static initializeProps = registerProps();\n\n public layout = '';\n public disabled: boolean;\n public itemsperrow: string;\n private itemsPerRowClass: string;\n\n constructor(inj: Injector, @Inject('EXPLICIT_CONTEXT') @Optional() explicitContext: any) {\n super(inj, WIDGET_CONFIG, explicitContext);\n styler(this.nativeElement, this);\n this.multiple = false;\n }\n\n triggerInvokeOnChange(key, $event) {\n this.modelByKey = key;\n\n this.invokeOnTouched();\n // invoke on datavalue change.\n this.invokeOnChange(this.datavalue, $event || {}, true);\n }\n\n /**\n * On click of the option, update the datavalue\n */\n onRadioLabelClick($event, key) {\n if (!$($event.target).is('input')) {\n return;\n }\n\n this.triggerInvokeOnChange(key, $event);\n }\n\n // change and blur events are added from the template\n protected handleEvent(node: HTMLElement, eventName: string, callback: Function, locals: any) {\n if (eventName === 'click') {\n this.eventManager.addEventListener(\n node,\n eventName,\n e => {\n if (!$(e.target).is('input')) {\n return;\n }\n locals.$event = e;\n return callback();\n }\n );\n } else if (!includes(['change'], eventName)) {\n super.handleEvent(node, eventName, callback, locals);\n }\n }\n\n onPropertyChange(key, nv, ov?) {\n if (key === 'tabindex') {\n return;\n }\n if (key === 'itemsperrow') {\n setListClass(this);\n } else {\n super.onPropertyChange(key, nv, ov);\n }\n }\n}\n","import { FormWidgetType } from '@wm/core';\nimport { PROP_ANY, PROP_BOOLEAN, PROP_NUMBER, PROP_STRING, register, registerFormWidget } from '@wm/components/base';\n\nexport const selectProps = new Map(\n [\n ['autofocus', PROP_BOOLEAN],\n ['class', {value: '', ...PROP_STRING}],\n ['compareby', PROP_STRING],\n ['datafield', PROP_STRING],\n ['dataset', PROP_ANY],\n ['datavaluesource', PROP_ANY],\n ['datavalue', PROP_STRING],\n ['dateformat', PROP_STRING],\n ['disabled', PROP_BOOLEAN],\n ['displayexpression', PROP_STRING],\n ['displayfield', PROP_STRING],\n ['displayValue', PROP_STRING],\n ['groupby', PROP_STRING],\n ['hint', PROP_STRING],\n ['match', PROP_STRING],\n ['multiple', {value: false, ...PROP_BOOLEAN}],\n ['name', PROP_STRING],\n ['orderby', PROP_STRING],\n ['placeholder', PROP_STRING],\n ['readonly', PROP_BOOLEAN],\n ['required', PROP_BOOLEAN],\n ['shortcutkey', PROP_STRING],\n ['show', {value: true, ...PROP_BOOLEAN}],\n ['tabindex', {value: 0, ...PROP_NUMBER}],\n ['usekeys', PROP_BOOLEAN]\n ]\n);\n\nexport const registerProps = () => {\n register(\n 'wm-select',\n selectProps\n );\n registerFormWidget(\n FormWidgetType.SELECT,\n new Map(selectProps)\n );\n registerFormWidget(\n FormWidgetType.TYPEAHEAD,\n new Map(selectProps)\n );\n};\n","<select role=\"listbox\" aria-haspopup=\"true\" aria-expanded=\"false\" #select\n focus-target\n [ngClass]=\"['app-select form-control', class]\"\n [disabled]=\"disabled\"\n [required]=\"required\"\n [tabindex]=\"tabindex\"\n [(ngModel)]=\"modelByKey\"\n [ngModelOptions]=\"{standalone: true}\"\n [multiple]=\"multiple\"\n (change)=\"onSelectValueChange($event)\"\n (focus)=\"checkForFloatingLabel($event)\"\n (blur)=\"invokeOnTouched($event); checkForFloatingLabel($event)\"\n [attr.name]=\"name\"\n [attr.aria-label]=\"hint\"\n [attr.aria-multiselectable]=\"multiple\"\n [autofocus]=\"autofocus\">\n\n <option selected\n value=\"undefined\"\n [textContent]=\"placeholder\"\n id=\"placeholderOption\"\n [hidden]=\"!placeholder\"></option>\n\n <ng-container *ngIf=\"groupby\">\n <optgroup *ngFor=\"let groupObj of groupedData\"\n [label]=\"groupObj.key\">\n <option *ngFor=\"let item of groupObj.data;\"\n [value]=\"item.key\"\n [selected]=\"item.selected\"\n [textContent]=\"item.label\"\n role=\"option\"></option>\n </optgroup>\n </ng-container>\n\n <ng-container *ngIf=\"!groupby\">\n <option *ngFor=\"let item of datasetItems\"\n [value]=\"item.key\"\n [selected]=\"item.selected\"\n [textContent]=\"item.label\"\n role=\"option\"></option>\n </ng-container>\n</select>\n","import {AfterViewInit, Component, ElementRef, Inject, Injector, Optional, ViewChild} from '@angular/core';\nimport {NG_VALIDATORS, NG_VALUE_ACCESSOR} from '@angular/forms';\n\nimport {App, DataSource, removeAttr, setAttr} from '@wm/core';\nimport {provideAs, provideAsWidgetRef, styler} from '@wm/components/base';\nimport {DatasetAwareFormComponent} from '../dataset-aware-form.component';\n\nimport {registerProps} from './select.props';\nimport {includes} from \"lodash-es\";\n\nconst WIDGET_CONFIG = {widgetType: 'wm-select', hostClass: 'app-select-wrapper'};\n\n@Component({\n selector: 'wm-select',\n templateUrl: './select.component.html',\n providers: [\n provideAs(SelectComponent, NG_VALUE_ACCESSOR, true),\n provideAs(SelectComponent, NG_VALIDATORS, true),\n provideAsWidgetRef(SelectComponent)\n ]\n})\nexport class SelectComponent extends DatasetAwareFormComponent implements AfterViewInit {\n static initializeProps = registerProps();\n\n public readonly: boolean;\n public placeholder: string;\n public navsearchbar: any;\n public class: any;\n public required: boolean;\n public disabled: boolean;\n public tabindex: any;\n public name: string;\n public autofocus: boolean;\n public hint: string;\n private app: App;\n\n @ViewChild('select', { static: true, read: ElementRef }) selectEl: ElementRef;\n\n set datasource(ds) {\n if (ds && ds.execute && ds.execute(DataSource.Operation.IS_BOUND_TO_LOCALE)) {\n this.datavalue = ds.execute(DataSource.Operation.GET_DEFAULT_LOCALE);\n }\n }\n\n constructor(inj: Injector, app: App, @Inject('EXPLICIT_CONTEXT') @Optional() explicitContext: any) {\n super(inj, WIDGET_CONFIG, explicitContext);\n this.app = app;\n this.acceptsArray = true;\n }\n\n ngAfterViewInit() {\n super.ngAfterViewInit();\n styler(this.selectEl.nativeElement as HTMLElement, this);\n }\n\n // Change event is registered from the template, Prevent the framework from registering one more event\n protected handleEvent(node: HTMLElement, eventName: string, eventCallback: Function, locals: any) {\n if (!includes(['blur', 'change'], eventName)) {\n super.handleEvent(this.selectEl.nativeElement, eventName, eventCallback, locals);\n }\n }\n\n onSelectValueChange($event) {\n if (this.readonly) {\n if (this.placeholder) {\n this.selectEl.nativeElement.value = this.placeholder;\n } else {\n this.selectEl.nativeElement.value = '';\n }\n this.datavalue = (this as any).prevDatavalue;\n return;\n }\n this.invokeOnTouched();\n // invoke on datavalue change.\n this.invokeOnChange(this.datavalue, $event || {}, true);\n }\n\n onPropertyChange(key: string, nv: any, ov?: any) {\n if (key === 'required') {\n this._onChange(this.datavalue);\n return;\n }\n if (key === 'class' || key === 'tabindex') {\n if(key === 'class') {\n // After NG15 upgrade ng-invalid class is added even the field is valid, so we are removing the ng-invalid manually\n const isNgUntouchedValid = this.selectEl.nativeElement.classList.contains('ng-untouched') && this.selectEl.nativeElement.classList.contains('ng-valid')\n if(isNgUntouchedValid && nv.includes('ng-untouched') && nv.includes('ng-invalid')) {\n setTimeout(()=> {\n if(this.selectEl.nativeElement.classList.contains('ng-untouched') && this.selectEl.nativeElement.classList.contains('ng-valid') && this.selectEl.nativeElement.classList.contains('ng-invalid')) {\n this.selectEl.nativeElement.classList.remove('ng-invalid');\n }\n });\n }\n }\n return;\n } else if (key === 'readonly') {\n (nv === true) ? setAttr(this.selectEl.nativeElement, 'readonly', 'readonly') : removeAttr(this.selectEl.nativeElement, 'readonly') ;\n }\n super.onPropertyChange(key, nv, ov);\n }\n\n /**\n * When caption floating is enabled and placeholder is given, do not show placeholder until user focuses on the field\n * When focused add the placeholder to the option which is selected\n * On blur, remove the placeholder and do not animate the label\n * @param $event event received will be either a blur or focus event\n */\n checkForFloatingLabel($event) {\n const captionEl = $(this.selectEl.nativeElement).closest('.app-composite-widget.caption-floating');\n if (captionEl.length > 0) {\n if ($event.type === 'focus' && (!this.datavalue || (this.datavalue && $(this.selectEl).find('select option:selected').text() === '' && this.placeholder))) {\n if(!(this.datavalue || this.placeholder)) {\n this.removePlaceholderOption();\n } else {\n $(this.selectEl.nativeElement).find('option:first').text(this.placeholder);\n }\n } else if (!this.datavalue) {\n $(this.selectEl.nativeElement).find('option:selected').text('');\n captionEl.removeClass('float-active');\n }\n } else if(!(this.datavalue || this.placeholder)) {\n this.removePlaceholderOption();\n }\n }\n\n /*\n * Removing the placeholder option if no placeholder is provided.\n * In html we are hiding the placeholder option using css but in apple devices and safari option is showing.\n * */\n private removePlaceholderOption() {\n const hiddenEle = $(this.selectEl.nativeElement).find('#placeholderOption');\n if (hiddenEle.length) {\n hiddenEle.remove();\n this.selectEl.nativeElement.value = '';\n }\n }\n}\n","import { PROP_ANY, PROP_BOOLEAN, PROP_NUMBER, PROP_STRING, register, registerFormWidget } from '@wm/components/base';\nimport { FormWidgetType } from '@wm/core';\n\nexport const switchProps = new Map(\n [\n ['class', PROP_STRING],\n ['compareby', PROP_STRING],\n ['datafield', PROP_STRING],\n ['dataset', {value: 'yes, no, maybe', ...PROP_ANY}],\n ['datavaluesource', PROP_ANY],\n ['datavalue', PROP_STRING],\n ['disabled', PROP_BOOLEAN],\n ['displayexpression', PROP_STRING],\n ['displayfield', PROP_STRING],\n ['hint', PROP_STRING],\n ['iconclass', PROP_STRING],\n ['name', PROP_STRING],\n ['orderby', PROP_STRING],\n ['required', PROP_BOOLEAN],\n ['show', {value: true, ...PROP_BOOLEAN}],\n ['tabindex', {value: 0, ...PROP_NUMBER}]\n ]\n);\n\n\nexport const registerProps = () => {\n register(\n 'wm-switch',\n switchProps\n );\n registerFormWidget(\n FormWidgetType.SWITCH,\n new Map(switchProps)\n );\n registerFormWidget(\n FormWidgetType.TOGGLE,\n new Map(switchProps)\n );\n};\n","<div role=\"group\" class=\"btn-group btn-group-justified\">\n <a *ngFor=\"let opt of datasetItems; let $index = index;\"\n focus-target\n href=\"javascript:void(0);\"\n class=\"btn btn-default\"\n [name]=\"'wm-switch-' + opt.key\"\n [ngClass]=\"{'selected': opt.selected, 'disabled': disabled}\"\n (click)=\"selectOpt($event, $index, opt)\"\n >\n <i *ngIf=\"opt.dataObject && opt.dataObject[iconclass]\" aria-hidden=\"true\" [ngClass]=\"['app-icon', opt.dataObject[iconclass] || opt['icon']]\"></i>\n <span class=\"caption\" [textContent]=\"opt[displayfield] || opt.label\"></span>\n </a>\n</div>\n<span [title]=\"selectedItem ? selectedItem.label : modelByKey\"\n class=\"btn btn-primary app-switch-overlay switch-handle\">\n <i *ngIf=\"iconclass\"\n class=\"app-icon {{(selectedItem && selectedItem.dataObject) && selectedItem.dataObject[iconclass]}}\"></i>\n {{selectedItem ? selectedItem.label : modelByKey}}\n</span>\n<input [name]=\"name\" class=\"model-holder ng-hide\" [disabled]=\"disabled\" [value]=\"modelByKey\" [required]=\"required\" aria-hidden=\"true\">\n","import {AfterViewInit, Component, Inject, Injector, Optional} from '@angular/core';\nimport { NG_VALUE_ACCESSOR } from '@angular/forms';\n\nimport {$appDigest, debounce, isDefined, setCSS, toBoolean} from '@wm/core';\nimport { DataSetItem, provideAs, provideAsWidgetRef, styler } from '@wm/components/base';\nimport { DatasetAwareFormComponent } from '../dataset-aware-form.component';\n\nimport { registerProps } from './switch.props';\nimport {find, findIndex} from \"lodash-es\";\n\ndeclare const $;\n\nconst DEFAULT_CLS = 'app-switch';\nconst WIDGET_CONFIG = {widgetType: 'wm-switch', hostClass: DEFAULT_CLS};\n\n@Component({\n selector: '[wmSwitch]',\n templateUrl: './switch.component.html',\n providers: [\n provideAs(SwitchComponent, NG_VALUE_ACCESSOR, true),\n provideAsWidgetRef(SwitchComponent)\n ],\n exportAs: 'wmSwitch'\n})\nexport class SwitchComponent extends DatasetAwareFormComponent implements AfterViewInit {\n static initializeProps = registerProps();\n\n options = [];\n selectedItem: DataSetItem;\n iconclass;\n private btnwidth;\n public disabled: boolean;\n public required: boolean;\n private _debounceSetSelectedValue: Function;\n public name: string;\n\n constructor(inj: Injector, @Inject('EXPLICIT_CONTEXT') @Optional() explicitContext: any) {\n super(inj, WIDGET_CONFIG, explicitContext);\n\n this._debounceSetSelectedValue = debounce((val) => {\n this.setSelectedValue();\n this.updateHighlighter(val);\n // only for default value trigger app digest to apply the selectedItem\n if (val) {\n $appDigest();\n }\n }, 200);\n\n const datasetSubscription = this.dataset$.subscribe(() => this.updateSwitchOptions());\n\n this.registerDestroyListener(() => datasetSubscription.unsubscribe());\n\n const datavalueSubscription = this.datavalue$.subscribe(() => {\n this._debounceSetSelectedValue(true);\n });\n this.registerDestroyListener(() => datavalueSubscription.unsubscribe());\n }\n\n ngAfterViewInit() {\n super.ngAfterViewInit();\n styler(this.nativeElement as HTMLElement, this);\n }\n\n onStyleChange(key: string, nv: any, ov?: any) {\n if (key === 'height') {\n setCSS(this.nativeElement, 'overflow', nv ? 'auto' : '');\n } else {\n super.onStyleChange(key, nv, ov);\n }\n }\n\n // This function sets the selectedItem by either using compareby fields or selected flag on datasetItems.\n private setSelectedValue() {\n if (isDefined(this.datavalue) || isDefined(this.toBeProcessedDatavalue)) {\n this.selectedItem = find(this.datasetItems, {selected: true});\n return;\n }\n\n // If no value is provided, set first value as default if options are available else set -1 ie no selection\n this.selectOptAtIndex(0);\n }\n\n // set the css for switch overlay element.\n // set the selected index from the datasetItems and highlight the datavalue on switch.\n private updateSwitchOptions() {\n if (this.datasetItems.length) {\n this.btnwidth = (100 / this.datasetItems.length);\n setCSS(this.nativeElement.querySelector('.app-switch-overlay') as HTMLElement, 'width', this.btnwidth + '%');\n }\n\n this._debounceSetSelectedValue(true);\n }\n\n // This function animates the highlighted span on to the selected value.\n private updateHighlighter(skipAnimation?) {\n const handler = $(this.nativeElement).find('span.app-switch-overlay');\n\n this.setSelectedValue();\n\n let left,\n index = this.selectedItem ? findIndex(this.datasetItems, {key: this.selectedItem.key}) : -1;\n\n if (index === undefined || index === null) {\n index = -1;\n }\n left = index * this.btnwidth;\n if (skipAnimation) {\n handler.css('left', left + '%');\n } else {\n handler.animate({\n left: left + '%'\n }, 300);\n }\n }\n\n selectOptAtIndex($index) {\n if (!this.datasetItems.length) {\n return;\n }\n const opt = this.datasetItems[$index];\n this._modelByValue = opt.value;\n }\n\n // Triggered on selected the option from the switch.\n // set the index and highlight the default value. Invoke onchange event handler.\n selectOpt($event, $index, option) {\n $event.preventDefault();\n\n if (this.disabled) {\n return;\n }\n\n this.modelByKey = option.key;\n this.invokeOnTouched();\n\n if (this.selectedItem && $index === findIndex(this.datasetItems, {key: this.selectedItem.key})) {\n if (this.datasetItems.length === 2) {\n $index = $index === 1 ? 0 : 1;\n } else {\n return;\n }\n }\n this.selectedItem = this.datasetItems[$index];\n this.updateHighlighter();\n\n // invoke on datavalue change.\n this.invokeOnChange(this.datavalue, $event || {}, true);\n $appDigest();\n }\n\n onPropertyChange(key, nv, ov?) {\n if (key === 'disabled' && !toBoolean(nv)) {\n this.nativeElement.removeAttribute(key);\n } else {\n super.onPropertyChange(key, nv, ov);\n }\n }\n}\n","import { PROP_ANY, PROP_BOOLEAN, PROP_NUMBER, PROP_STRING, register } from '@wm/components/base';\n\nexport const inputCalendarTypeProps = new Map(\n [\n ['autocomplete', {value: true, ...PROP_BOOLEAN}],\n ['autotrim', {value: true, ...PROP_BOOLEAN}],\n ['autofocus', PROP_BOOLEAN],\n ['class', PROP_STRING],\n ['datasource', PROP_ANY],\n ['datavalue', PROP_STRING],\n ['disabled', PROP_BOOLEAN],\n ['hint', PROP_STRING],\n ['maxvalue', PROP_NUMBER],\n ['minvalue', PROP_NUMBER],\n ['name', PROP_STRING],\n ['placeholder', {value: 'Enter text', ...PROP_STRING}],\n ['readonly', PROP_BOOLEAN],\n ['required', PROP_BOOLEAN],\n ['shortcutkey', PROP_STRING],\n ['show', {value: true, ...PROP_BOOLEAN}],\n ['step', PROP_NUMBER],\n ['tabindex', {value: 0, ...PROP_NUMBER}],\n ['type', PROP_STRING],\n ['updateon', PROP_STRING],\n ['conditionalclass', PROP_ANY],\n ['conditionalstyle', PROP_ANY]\n ]\n);\n\nexport const registerProps = () => {\n register(\n 'wm-input-calendar',\n inputCalendarTypeProps\n );\n};\n","import {Component, ElementRef, Inject, Injector, Optional, ViewChild} from '@angular/core';\nimport { NgModel, NG_VALUE_ACCESSOR, NG_VALIDATORS } from '@angular/forms';\n\nimport { IWidgetConfig, provideAs, provideAsWidgetRef, styler } from '@wm/components/base';\nimport { registerProps } from './input-calendar.props';\nimport { BaseInput } from '../base/base-input';\n\nconst WIDGET_CONFIG: IWidgetConfig = {\n widgetType: 'wm-input-calendar',\n hostClass: 'app-input-wrapper'\n};\n\n@Component({\n selector: 'wm-input[type=\"date\"], wm-input[type=\"datetime-local\"], wm-input[type=\"month\"], wm-input[type=\"time\"], wm-input[type=\"week\"]',\n templateUrl: './input-calendar.component.html',\n providers: [\n provideAs(InputCalendarComponent, NG_VALUE_ACCESSOR, true),\n provideAs(InputCalendarComponent, NG_VALIDATORS, true),\n provideAsWidgetRef(InputCalendarComponent)\n ]\n})\nexport class InputCalendarComponent extends BaseInput {\n static initializeProps = registerProps();\n\n public required: boolean;\n public disabled: boolean;\n public type: string;\n public name: string;\n public readonly: string;\n public conditionalclass: any;\n public conditionalstyle: any;\n public minvalue: any;\n public maxvalue: any;\n public step: number;\n public tabindex: any;\n public placeholder: any;\n public shortcutkey: string;\n public autofocus: boolean;\n public autocomplete: any;\n public hint: string;\n\n @ViewChild('input',{static: true}) inputEl: ElementRef;\n @ViewChild(NgModel) ngModel: NgModel;\n\n constructor(inj: Injector, @Inject('EXPLICIT_CONTEXT') @Optional() explicitContext: any) {\n super(inj, WIDGET_CONFIG, explicitContext);\n }\n}\n","<input class=\"form-control app-textbox\"\n focus-target\n role=\"textbox\"\n [type]=\"type\"\n [attr.name]=\"name\"\n [(ngModel)]=\"datavalue\"\n [ngModelOptions]=\"{standalone: true}\"\n [readonly]=\"readonly\"\n [required]=\"required\"\n [disabled]=\"disabled\"\n [min]=\"minvalue\"\n [max]=\"maxvalue\"\n [step]=\"step\"\n [attr.tabindex]=\"tabindex\"\n [attr.placeholder]=\"placeholder\"\n [attr.accesskey]=\"shortcutkey\"\n [attr.aria-label]=\"hint || type + ' field'\"\n [autofocus]=\"autofocus\"\n (blur)=\"handleBlur($event)\"\n (ngModelChange)=\"handleChange($event)\"\n [autocomplete]=\"autocomplete ? 'on' : 'off'\"\n [ngClass]=\"conditionalclass\"\n [ngStyle]=\"conditionalstyle\"\n #input>\n","import { PROP_ANY, PROP_BOOLEAN, PROP_NUMBER, PROP_STRING, register } from '@wm/components/base';\n\nexport const inputColorTypeProps = new Map([\n ['autocomplete', {value: true, ...PROP_BOOLEAN}],\n ['autofocus', PROP_BOOLEAN],\n ['autotrim', {value: true, ...PROP_BOOLEAN}],\n ['class', PROP_STRING],\n ['datavaluesource', PROP_ANY],\n ['datavalue', PROP_STRING],\n ['disabled', PROP_BOOLEAN],\n ['hint', PROP_STRING],\n ['name', PROP_STRING],\n ['placeholder', {value: 'Enter text', ...PROP_STRING}],\n ['readonly', PROP_BOOLEAN],\n ['required', PROP_BOOLEAN],\n ['shortcutkey', PROP_STRING],\n ['show', {value: true, ...PROP_BOOLEAN}],\n ['tabindex', {value: 0, ...PROP_NUMBER}],\n ['type', {value: 'color', ...PROP_STRING}],\n ['updateon', PROP_STRING],\n ['conditionalclass', PROP_ANY],\n ['conditionalstyle', PROP_ANY]\n]);\n\nexport const registerProps = () => {\n register(\n 'wm-input-color',\n inputColorTypeProps\n );\n};\n","import {Component, ElementRef, Inject, Injector, Optional, ViewChild} from '@angular/core';\nimport { NgModel, NG_VALUE_ACCESSOR, NG_VALIDATORS } from '@angular/forms';\n\nimport { IWidgetConfig, provideAs, provideAsWidgetRef } from '@wm/components/base';\n\nimport { registerProps } from './input-color.props';\nimport { BaseInput } from '../base/base-input';\n\nconst WIDGET_CONFIG: IWidgetConfig = {\n widgetType: 'wm-input-color',\n hostClass: 'app-input-wrapper'\n};\n\n@Component({\n selector: 'wm-input[type=\"color\"]',\n templateUrl: './input-color.component.html',\n providers: [\n provideAs(InputColorComponent, NG_VALUE_ACCESSOR, true),\n provideAs(InputColorComponent, NG_VALIDATORS, true),\n provideAsWidgetRef(InputColorComponent)\n ]\n})\nexport class InputColorComponent extends BaseInput {\n static initializeProps = registerProps();\n\n public required: boolean;\n public maxchars: number;\n public name: string;\n public readonly: boolean;\n public conditionalclass: any;\n public conditionalstyle: any;\n public tabindex: any;\n public shortcutkey: string;\n public autofocus: boolean;\n public disabled: boolean;\n public placeholder: any;\n public type: string;\n public hint: string;\n\n @ViewChild('input', {static: true}) inputEl: ElementRef;\n @ViewChild(NgModel) ngModel: NgModel;\n\n constructor(inj: Injector, @Inject('EXPLICIT_CONTEXT') @Optional() explicitContext: any) {\n super(inj, WIDGET_CONFIG, explicitContext);\n }\n}\n","<input class=\"form-control app-textbox\"\n focus-target\n [type]=\"type\"\n role=\"textbox\"\n [attr.name]=\"name\"\n [(ngModel)]=\"datavalue\"\n [ngModelOptions]=\"{standalone: true}\"\n [readonly]=\"readonly\"\n [required]=\"required\"\n [disabled]=\"disabled\"\n [maxlength]=\"maxchars\"\n [attr.tabindex]=\"tabindex\"\n [attr.placeholder]=\"placeholder\"\n [attr.accesskey]=\"shortcutkey\"\n [attr.aria-label]=\"hint\"\n [autofocus]=\"autofocus\"\n [ngClass]=\"conditionalclass\"\n [ngStyle]=\"conditionalstyle\"\n (blur)=\"handleBlur($event)\"\n (ngModelChange)=\"handleChange($event)\"\n #input>\n","import { PROP_ANY, PROP_BOOLEAN, PROP_NUMBER, PROP_STRING, register } from '@wm/components/base';\n\nexport const inputEmailTypeProps = new Map(\n [\n ['autocomplete', {value: true, ...PROP_BOOLEAN}],\n ['autofocus', PROP_BOOLEAN],\n ['autotrim', {value: true, ...PROP_BOOLEAN}],\n ['class', PROP_STRING],\n ['datavaluesource', PROP_ANY],\n ['datavalue', PROP_STRING],\n ['disabled', PROP_BOOLEAN],\n ['hint', PROP_STRING],\n ['maxchars', PROP_NUMBER],\n ['name', PROP_STRING],\n ['placeholder', {value: 'Enter text', ...PROP_STRING}],\n ['readonly', PROP_BOOLEAN],\n ['regexp', PROP_STRING],\n ['required', PROP_BOOLEAN],\n ['shortcutkey', PROP_STRING],\n ['show', {value: true, ...PROP_BOOLEAN}],\n ['tabindex', {value: 0, ...PROP_NUMBER}],\n ['type', {value: 'email', ...PROP_STRING}],\n ['updateon', PROP_STRING],\n ['conditionalclass', PROP_ANY],\n ['conditionalstyle', PROP_ANY]\n ]\n);\n\nexport const registerProps = () => {\n register(\n 'wm-input-email',\n inputEmailTypeProps\n );\n};\n","import {Component, ElementRef, Inject, Injector, Optional, ViewChild} from '@angular/core';\nimport { NgModel, NG_VALUE_ACCESSOR, NG_VALIDATORS } from '@angular/forms';\n\nimport { IWidgetConfig, provideAs, provideAsWidgetRef, styler } from '@wm/components/base';\n\nimport { registerProps } from './input-email.props';\nimport { BaseInput } from '../base/base-input';\n\nconst WIDGET_CONFIG: IWidgetConfig = {\n widgetType: 'wm-input-email',\n hostClass: 'app-input-wrapper'\n};\n\n@Component({\n selector: 'wm-input[type=\"email\"]',\n templateUrl: './input-email.component.html',\n providers: [\n provideAs(InputEmailComponent, NG_VALUE_ACCESSOR, true),\n provideAs(InputEmailComponent, NG_VALIDATORS, true),\n provideAsWidgetRef(InputEmailComponent)\n ]\n})\nexport class InputEmailComponent extends BaseInput {\n static initializeProps = registerProps();\n\n public required: boolean;\n public maxchars: number;\n public disabled: boolean;\n public name: string;\n public readonly: boolean;\n public conditionalclass: any;\n public conditionalstyle: any;\n public tabindex: any;\n public shortcutkey: string;\n public autofocus: boolean;\n public autocomplete: any;\n public regexp: string;\n public placeholder: any;\n public type: string;\n public hint: string;\n\n @ViewChild('input', {static: true}) inputEl: ElementRef;\n @ViewChild(NgModel) ngModel: NgModel;\n\n constructor(inj: Injector, @Inject('EXPLICIT_CONTEXT') @Optional() explicitContext: any) {\n super(inj, WIDGET_CONFIG, explicitContext);\n }\n}\n","<input class=\"form-control app-textbox\"\n focus-target\n role=\"textbox\"\n [type]=\"type\"\n [attr.name]=\"name\"\n [(ngModel)]=\"datavalue\"\n [ngModelOptions]=\"ngModelOptions\"\n [readonly]=\"readonly\"\n [required]=\"required\"\n [disabled]=\"disabled\"\n [maxlength]=\"maxchars\"\n [pattern]=\"regexp\"\n [attr.tabindex]=\"tabindex\"\n [attr.placeholder]=\"placeholder\"\n [attr.accesskey]=\"shortcutkey\"\n [attr.aria-label]=\"hint\"\n [autofocus]=\"autofocus\"\n [ngClass]=\"conditionalclass\"\n [ngStyle]=\"conditionalstyle\"\n (blur)=\"handleBlur($event)\"\n (ngModelChange)=\"handleChange($event)\"\n [autocomplete]=\"autocomplete ? 'on' : 'off'\"\n (keyup.enter)=\"flushViewChanges(input.value)\"\n email\n #input>\n","import { PROP_ANY, PROP_BOOLEAN, PROP_NUMBER, PROP_STRING, register } from '@wm/components/base';\n\nexport const inputNumberTypeProps = new Map(\n [\n ['autocomplete', {value: true, ...PROP_BOOLEAN}],\n ['autofocus', PROP_BOOLEAN],\n ['autotrim', {value: true, ...PROP_BOOLEAN}],\n ['class', PROP_STRING],\n ['datavaluesource', PROP_ANY],\n ['datavalue', PROP_STRING],\n ['disabled', PROP_BOOLEAN],\n ['hint', PROP_STRING],\n ['maxchars', PROP_NUMBER],\n ['maxvalue', PROP_NUMBER],\n ['minvalue', PROP_NUMBER],\n ['name', PROP_STRING],\n ['placeholder', {value: 'Enter text', ...PROP_STRING}],\n ['readonly', PROP_BOOLEAN],\n ['regexp', PROP_STRING],\n ['required', PROP_BOOLEAN],\n ['shortcutkey', PROP_STRING],\n ['show', {value: true, ...PROP_BOOLEAN}],\n ['step', PROP_NUMBER],\n ['tabindex', {value: 0, ...PROP_NUMBER}],\n ['type', {value: 'number', ...PROP_STRING}],\n ['updateon', PROP_STRING],\n ['conditionalclass', PROP_ANY],\n ['conditionalstyle', PROP_ANY]\n\n ]\n);\n\nexport const registerProps = () => {\n register(\n 'wm-input-number',\n inputNumberTypeProps\n );\n};\n","import {Component, ElementRef, Inject, Injector, Optional, ViewChild} from '@angular/core';\nimport { NgModel, NG_VALUE_ACCESSOR, NG_VALIDATORS } from '@angular/forms';\n\nimport { IWidgetConfig, provideAs, provideAsWidgetRef } from '@wm/components/base';\nimport { registerProps } from './input-number.props';\nimport { BaseInput } from '../base/base-input';\n\nconst WIDGET_CONFIG: IWidgetConfig = {\n widgetType: 'wm-input-number',\n hostClass: 'app-input-wrapper'\n};\n\n@Component({\n selector: 'wm-input[type=\"number\"]',\n templateUrl: './input-number.component.html',\n providers: [\n provideAs(InputNumberComponent, NG_VALUE_ACCESSOR, true),\n provideAs(InputNumberComponent, NG_VALIDATORS, true),\n provideAsWidgetRef(InputNumberComponent)\n ]\n})\nexport class InputNumberComponent extends BaseInput {\n static initializeProps = registerProps();\n\n public required: boolean;\n public maxchars: number;\n public disabled: boolean;\n public name: string;\n public readonly: boolean;\n public conditionalclass: any;\n public conditionalstyle: any;\n public minvalue: number;\n public maxvalue: number;\n public tabindex: any;\n public placeholder: any;\n public shortcutkey: string;\n public autofocus: boolean;\n public autocomplete: any;\n public type: string;\n public hint: string;\n\n @ViewChild('input', {static: true}) inputEl: ElementRef;\n @ViewChild(NgModel) ngModel: NgModel;\n\n public step;\n\n constructor(inj: Injector, @Inject('EXPLICIT_CONTEXT') @Optional() explicitContext: any) {\n super(inj, WIDGET_CONFIG, explicitContext);\n }\n\n onArrowPress($event) {\n if (this.step === 0) {\n $event.preventDefault();\n }\n }\n\n public validateInputEntry($event) {\n if ($event.key === 'e' && $event.target.value.indexOf($event.key) !== -1) {\n return false;\n }\n }\n}\n","<input class=\"form-control app-textbox\"\n [ngClass]=\"{'step-hidden': step === 0}\"\n focus-target\n role=\"textbox\"\n [type]=\"type\"\n [attr.name]=\"name\"\n [(ngModel)]=\"datavalue\"\n [ngModelOptions]=\"ngModelOptions\"\n [readonly]=\"readonly\"\n [required]=\"required\"\n [disabled]=\"disabled\"\n [maxlength]=\"maxchars\"\n [min]=\"minvalue\"\n [max]=\"maxvalue\"\n [step]=\"step\"\n [attr.tabindex]=\"tabindex\"\n [attr.placeholder]=\"placeholder\"\n [attr.accesskey]=\"shortcutkey\"\n [attr.aria-label]=\"hint\"\n [autofocus]=\"autofocus\"\n [ngClass]=\"conditionalclass\"\n [ngStyle]=\"conditionalstyle\"\n (blur)=\"handleBlur($event)\"\n (ngModelChange)=\"handleChange($event)\"\n [autocomplete]=\"autocomplete ? 'on' : 'off'\"\n (keyup.enter)=\"flushViewChanges(input.value)\"\n (keydown.ArrowUp)=\"onArrowPress($event)\"\n (keydown.ArrowDown)=\"onArrowPress($event)\"\n (keypress)=\"validateInputEntry($event)\"\n #input>\n","import { PROP_ANY, PROP_BOOLEAN, PROP_NUMBER, PROP_STRING, register, registerFormWidget } from '@wm/components/base';\nimport { FormWidgetType } from '@wm/core';\n\n\nimport { inputNumberTypeProps } from '../number/input-number.props';\nimport { inputCalendarTypeProps } from '../calendar/input-calendar.props';\nimport { inputColorTypeProps } from '../color/input-color.props';\nimport { inputEmailTypeProps } from '../email/input-email.props';\n\nexport const inputTextTypeProps = new Map(\n [\n ['autocomplete', {value: true, ...PROP_BOOLEAN}],\n ['autofocus', PROP_BOOLEAN],\n ['autotrim', {value: true, ...PROP_BOOLEAN}],\n ['class', PROP_STRING],\n ['datavaluesource', PROP_ANY],\n ['datavalue', PROP_STRING],\n ['disabled', PROP_BOOLEAN],\n ['displayformat', PROP_STRING],\n ['hint', PROP_STRING],\n ['maxchars', PROP_NUMBER],\n ['name', PROP_STRING],\n ['placeholder', {value: 'Enter text', ...PROP_STRING}],\n ['readonly', PROP_BOOLEAN],\n ['regexp', PROP_STRING],\n ['required', PROP_BOOLEAN],\n ['shortcutkey', PROP_STRING],\n ['show', {value: true, ...PROP_BOOLEAN}],\n ['showdisplayformaton', {value: 'always', ...PROP_ANY}],\n ['tabindex', {value: 0, ...PROP_NUMBER}],\n ['type', {value: 'text', ...PROP_STRING}],\n ['updateon', PROP_STRING],\n ['conditionalclass', PROP_ANY],\n ['conditionalstyle', PROP_ANY]\n ]\n);\n\nexport const registerProps = () => {\n register(\n 'wm-input-text',\n inputTextTypeProps\n );\n registerFormWidget(\n FormWidgetType.PASSWORD,\n new Map(inputTextTypeProps)\n );\n const formTextProps = new Map(inputTextTypeProps);\n\n const mergeTextProps = (typeProps) => {\n typeProps.forEach((v: any, k) => formTextProps.set(k, v));\n };\n mergeTextProps(inputCalendarTypeProps);\n mergeTextProps(inputColorTypeProps);\n mergeTextProps(inputEmailTypeProps);\n mergeTextProps(inputNumberTypeProps);\n registerFormWidget(\n FormWidgetType.TEXT,\n new Map(formTextProps)\n );\n};\n","import {Component, ElementRef, Inject, Injector, OnInit, Optional, ViewChild} from '@angular/core';\nimport {NgModel, NG_VALUE_ACCESSOR, NG_VALIDATORS} from '@angular/forms';\n\nimport {IWidgetConfig, provideAs, provideAsWidgetRef} from '@wm/components/base';\nimport {registerProps} from './input-text.props';\nimport {BaseInput} from '../base/base-input';\nimport { IMaskDirective } from 'angular-imask';\n\nconst WIDGET_CONFIG: IWidgetConfig = {\n widgetType: 'wm-input-text',\n hostClass: 'app-input-wrapper'\n};\n\n@Component({\n selector: 'wm-input[type=\"text\"], wm-input:not([type]), wm-input[type=\"password\"], wm-input[type=\"search\"], wm-input[type=\"tel\"], wm-input[type=\"url\"]',\n templateUrl: './input-text.component.html',\n providers: [\n provideAs(InputTextComponent, NG_VALUE_ACCESSOR, true),\n provideAs(InputTextComponent, NG_VALIDATORS, true),\n provideAsWidgetRef(InputTextComponent)\n ]\n})\nexport class InputTextComponent extends BaseInput implements OnInit{\n static initializeProps = registerProps();\n\n public required: boolean;\n public maxchars: number;\n public regexp: string;\n public displayformat: string;\n public disabled: boolean;\n public type: any;\n public name: string;\n public readonly: boolean;\n public conditionalclass: any;\n public conditionalstyle: any;\n public tabindex: any;\n public placeholder: any;\n public shortcutkey: string;\n public autofocus: boolean;\n public autocomplete: any;\n public maskVal: any;\n public isFocused: boolean;\n private lazy: boolean = false;\n public hint: string;\n\n @ViewChild('input', {static: true}) inputEl: ElementRef;\n @ViewChild(NgModel) ngModel: NgModel;\n @ViewChild('input', {read: IMaskDirective}) imask: IMaskDirective<any>;\n\n constructor(inj: Injector, @Inject('EXPLICIT_CONTEXT') @Optional() explicitContext: any) {\n super(inj, WIDGET_CONFIG, explicitContext);\n }\n\n /* Define the property change handler. This function will be triggered when there is a change in the widget property */\n onPropertyChange(key, nv, ov) {\n /*Monitoring changes for styles or properties and accordingly handling respective changes.*/\n switch (key) {\n case 'displayformat':\n this.maskVal = this.displayformat;\n this.checkForDisplayFormat();\n break;\n case 'showdisplayformaton':\n this.lazy = nv === 'keypress' ? true : false;\n break;\n default:\n super.onPropertyChange(key, nv, ov);\n }\n }\n\n get mask() {\n if (this.displayformat && (!this.placeholder || (this.placeholder && this.isFocused))) {\n return {\n mask: this.maskVal,\n lazy: this.lazy,\n definitions: {\n '9': /\\d/,\n 'A': /[a-zA-Z]/,\n 'a': /[a-z]/,\n '*': /\\w/\n }\n };\n } else {\n return false;\n }\n }\n\n // show display format on focus or when it has a data value present. Else show the placeholder\n public checkForDisplayFormat($event?) {\n if (this.displayformat) {\n this.isFocused = (($event && $event.type === 'focus') || this.datavalue) ? true : false;\n // Do not show format placeholder when no value is present on blur\n if (!this.isFocused && this.imask && this.imask.maskRef) {\n this.imask.maskRef.updateOptions({ lazy: true });\n // on blur, when no value is present assign maskref to null, as in some cases (where format palceholder starts with pranthesis) the format placeholder is still shown. WMS-20124\n if (!this.datavalue && this.imask.maskRef.value) {\n this.imask.maskRef.value = this.datavalue;\n }\n } else {\n // when display format is dynamically populated, cursor position is at the end of the format, readjusting the cursor position based on masked input value\n // Adding timeout, as the below code should be on hold until imask model is generated\n setTimeout(() => {\n if (this.imask && this.imask.maskRef && this.imask.maskRef.value) {\n const maskValIndex = this.imask.maskRef.value.indexOf('_');\n const enteredMaskVal = maskValIndex >= 0 ? this.imask.maskRef.value.slice(0, maskValIndex).length : this.imask.maskRef.value.length;\n if (enteredMaskVal !== this.imask.maskRef.cursorPos) {\n this.imask.maskRef.updateCursor(enteredMaskVal);\n }\n }\n }, 50);\n }\n } else if (this.imask && this.imask.maskRef) { // When display format is bound via condition, remove the placeholder when the format is not applicable\n this.imask.maskRef.updateOptions({ lazy: true });\n // when display format is removed assign input value to the datavalue attr. WMS-20124\n this.inputEl.nativeElement.value = this.datavalue;\n }\n }\n\n ngOnInit() {\n super.ngOnInit();\n this.isFocused = !!this.datavalue;\n }\n}\n","<input class=\"form-control app-textbox\"\n focus-target\n role=\"textbox\"\n [type]=\"type\"\n [attr.name]=\"name\"\n [attr.aria-label]=\"hint\"\n [(ngModel)]=\"datavalue\"\n [imask]=\"mask\"\n [unmask]=\"true\"\n [ngModelOptions]=\"ngModelOptions\"\n [readonly]=\"readonly\"\n [required]=\"required\"\n [disabled]=\"disabled\"\n [maxlength]=\"maxchars\"\n [pattern]=\"regexp\"\n [attr.tabindex]=\"tabindex\"\n [attr.placeholder]=\"placeholder\"\n [attr.accesskey]=\"shortcutkey\"\n [autofocus]=\"autofocus\"\n [ngClass]=\"conditionalclass\"\n [ngStyle]=\"conditionalstyle\"\n (ngModelChange)=\"handleChange($event)\"\n (blur)=\"handleBlur($event); checkForDisplayFormat($event)\"\n (focus)=\"checkForDisplayFormat($event)\"\n [autocomplete]=\"autocomplete ? 'on' : 'off'\"\n (keyup.enter)=\"flushViewChanges(input.value)\"\n #input>\n","import { PROP_ANY, PROP_BOOLEAN, PROP_NUMBER, PROP_STRING, register, registerFormWidget } from '@wm/components/base';\nimport { FormWidgetType } from '@wm/core';\n\nexport const textareaProps = new Map(\n [\n ['autofocus', PROP_BOOLEAN],\n ['autotrim', {value: true, ...PROP_BOOLEAN}],\n ['class', PROP_STRING],\n ['datavaluesource', PROP_ANY],\n ['datavalue', PROP_STRING],\n ['disabled', PROP_BOOLEAN],\n ['hint', PROP_STRING],\n ['maxchars', PROP_NUMBER],\n ['name', PROP_STRING],\n ['placeholder', {value: 'Place your text', ...PROP_STRING}],\n ['readonly', PROP_BOOLEAN],\n ['required', PROP_BOOLEAN],\n ['shortcutkey', PROP_STRING],\n ['show', {value: true, ...PROP_BOOLEAN}],\n ['tabindex', {value: 0, ...PROP_NUMBER}],\n ['updateon', PROP_STRING],\n ['limitdisplaytext', PROP_STRING],\n ['charlength', PROP_NUMBER],\n ['conditionalclass', PROP_ANY],\n ['conditionalstyle', PROP_ANY]\n ]\n);\n\nexport const registerProps = () => {\n register(\n 'wm-textarea',\n textareaProps\n );\n registerFormWidget(\n FormWidgetType.TEXTAREA,\n new Map(textareaProps)\n );\n};\n","<textarea class=\"form-control app-textarea\"\n focus-target\n role=\"textbox\"\n [attr.name]=\"name\"\n [(ngModel)]=\"datavalue\"\n [ngModelOptions]=\"ngModelOptions\"\n [readonly]=\"readonly\"\n [required]=\"required\"\n [disabled]=\"disabled\"\n [maxlength]=\"maxchars\"\n [attr.tabindex]=\"tabindex\"\n [attr.placeholder]=\"placeholder\"\n [attr.accesskey]=\"shortcutkey\"\n [attr.aria-label]=\"hint\"\n aria-multiline=\"true\"\n [autofocus]=\"autofocus\"\n [ngClass]=\"conditionalclass\"\n [ngStyle]=\"conditionalstyle\"\n (blur)=\"handleBlur($event)\"\n (input)=\"onInputChange()\"\n (ngModelChange)=\"handleChange($event); onInputChange();\"\n #textarea\n></textarea>\n\n<div *ngIf=\"maxchars\" class=\"textarea-count\" >{{limitdisplaytext}}</div>\n","import {Component, ElementRef, Inject, Injector, Optional, ViewChild} from '@angular/core';\nimport { NgModel, NG_VALUE_ACCESSOR, NG_VALIDATORS } from '@angular/forms';\n\nimport { provideAs, provideAsWidgetRef } from '@wm/components/base';\n\nimport { registerProps } from './textarea.props';\nimport { BaseInput } from '../text/base/base-input';\nconst WIDGET_CONFIG = {\n widgetType: 'wm-textarea',\n hostClass: 'app-input-wrapper'\n};\n\n@Component({\n selector: 'wm-textarea',\n templateUrl: './textarea.component.html',\n providers: [\n provideAs(TextareaComponent, NG_VALUE_ACCESSOR, true),\n provideAs(TextareaComponent, NG_VALIDATORS, true),\n provideAsWidgetRef(TextareaComponent)\n ]\n})\nexport class TextareaComponent extends BaseInput {\n static initializeProps = registerProps();\n public required: boolean;\n public maxchars: number;\n public disabled: boolean;\n public name: string;\n public readonly: boolean;\n public conditionalclass: any;\n public conditionalstyle: any;\n public tabindex: any;\n public placeholder: any;\n public shortcutkey: string;\n public autofocus: boolean;\n public hint: string;\n public limitdisplaytext: string;\n public charlength: number = 0;\n\n @ViewChild('textarea', {static: true}) inputEl: ElementRef;\n @ViewChild(NgModel) ngModel: NgModel;\n\n constructor(inj: Injector, @Inject('EXPLICIT_CONTEXT') @Optional() explicitContext: any) {\n super(inj, WIDGET_CONFIG, explicitContext);\n }\n\n public onInputChange() {\n this.charlength = this.inputEl.nativeElement.value.length;\n }\n}\n","import {AfterViewInit, Directive, ElementRef, Injector, OnDestroy, OnInit} from '@angular/core';\nimport {App} from '@wm/core';\nimport {forEach} from \"lodash-es\";\n\ndeclare const $;\n@Directive({\n selector: '[wmCaptionPosition]'\n})\nexport class CaptionPositionDirective implements AfterViewInit, OnInit, OnDestroy {\n private elementRef: ElementRef;\n private inputEl;\n private nativeEl;\n private compositeEle;\n private app: App;\n private labelAnimationSubscription;\n private placeholder;\n private _attrObserver;\n private _isPlaceholderBound;\n\n // skip floating caption for the below form fields\n private skipFloatPositionWidgets: string[] = ['radioset', 'checkboxset', 'richtext', 'switch', 'chips', 'checkbox', 'slider', 'rating', 'toggle', 'upload'];\n\n constructor(inj: Injector, app: App) {\n this.elementRef = inj.get(ElementRef);\n this.nativeEl = this.elementRef.nativeElement;\n this.app = app;\n }\n\n private onBlurCb() { // on blur, remove animation and placeholder if there is no value\n let mobileInputVal;\n // In case of mobile date / time picker check for input element's value which has 'mobile-input' class\n if (this.inputEl.length > 1 && this.inputEl.hasClass('mobile-input')) {\n forEach(this.inputEl, (el) => {\n if ($(el).hasClass('mobile-input') && el.value) {\n mobileInputVal = el.value;\n }\n });\n }\n if (!this.inputEl.val() && !mobileInputVal) {\n this.compositeEle.classList.remove('float-active');\n this.inputEl.removeAttr('placeholder');\n }\n }\n\n private onFocusCb() { // on focus, add animation class and the place holder\n this.compositeEle.classList.add('float-active');\n this.inputEl.attr('placeholder', this.placeholder);\n }\n\n // For select widget, display placeholder only on focus else remove the text of the option selected.\n private checkForSelectPlaceholder() {\n if ($(this.nativeEl).find('select option:selected').text() && !$(this.nativeEl).find('select').is(':focus') &&\n !$(this.inputEl.closest('[widget-id]')).attr('datavalue')) {\n $(this.nativeEl).find('select option:selected').text('');\n }\n }\n\n private setDefaultValueAnimation() { // set animation when default values are present\n // remove placeholder when the input el has placeholder and the placeholder is not bound to any variable\n if (!this._isPlaceholderBound && this.inputEl.attr('placeholder')) {\n this.placeholder = this.inputEl.attr('placeholder');\n this.inputEl.removeAttr('placeholder');\n }\n\n // Do not show placeholder as selected by default\n this.checkForSelectPlaceholder();\n\n // check for datavalue attribute in composite element and defaultvalue attribute in form field element\n // check for datavalue.bind attribute to see whether default value is binded via expression or a variable\n // check for displayformat attribute, as in form fields user can set display format to the field\n // check for formdata/bindformdata attribute to see if any default value is binded to the form\n // check for select tag with multiple attribute enabled\n\n if ((this.inputEl.val() && !this.inputEl.is('select')) || $(this.inputEl.closest('[widget-id]')).attr('datavalue') || $(this.inputEl.parent('[widget-id]')).attr('datavalue.bind') || this.nativeEl.getAttribute('defaultvalue')\n || this.nativeEl.getAttribute('displayformat') || $(this.nativeEl).find('select option:selected').text() || $(this.nativeEl).find('select').attr('multiple')) {\n this.compositeEle.classList.add('float-active');\n }\n }\n\n /**\n * Observing placeholder attribute change on DOM instead of having a propChangeHandler fn\n * For composite widgets propertychangehandler function is invoked at independent widgets where as the directive is at composite level\n */\n private observeForPlaceholderAttrChange() {\n this._attrObserver = new MutationObserver(mutations => {\n mutations.forEach((mutation) => {\n if (mutation.attributeName === 'placeholder' && this.inputEl.attr('placeholder') && !this.compositeEle.classList.contains('float-active')) {\n this.placeholder = this.inputEl.attr('placeholder');\n this.inputEl.removeAttr('placeholder');\n }\n });\n });\n const config = { attributes: true, childList: false, characterData: false };\n this._attrObserver.observe(this.inputEl[0], config);\n }\n\n // when a form is right aligned and have input-group-btn's like date picker, time picker etc. adjust the css to not overlap the label on the icon\n private checkForRightAlignedForm() {\n const $compositeEle = $(this.compositeEle);\n if ($compositeEle.closest('.align-right').length && $compositeEle.find('.input-group-btn').length) {\n const $label = $compositeEle.find('label');\n if ($compositeEle.find('[wmdatetime]').length) { // for datetime picker, as there will be 2 icons css is different\n $label.addClass('input-grp-dt-icon');\n } else {\n $label.addClass('input-grp-icon');\n }\n }\n }\n\n ngAfterViewInit() {\n this.compositeEle = this.nativeEl;\n const widget = this.nativeEl.widget;\n let captionPosition: string = widget.$attrs.get('captionposition');\n if (widget.form) {\n captionPosition = widget.form.$attrs.get('captionposition');\n this.compositeEle = this.nativeEl.querySelector('.app-composite-widget');\n this._isPlaceholderBound = this.nativeEl.getAttribute('placeholder.bind');\n }\n if (captionPosition === 'floating') {\n if (widget.form) { // for form-fields remove caption-floating and replace it with caption-float or caption-top\n const widgetType: string = this.nativeEl.getAttribute('widgettype'); // fetches the form field type\n if (this.skipFloatPositionWidgets.indexOf(widgetType) > -1) {\n this.compositeEle.classList.remove('caption-floating');\n this.compositeEle.classList.add('caption-top');\n }\n this.checkForRightAlignedForm();\n }\n this.inputEl = $(this.nativeEl).find('input, select, textarea');\n if (!this._isPlaceholderBound) {\n this._isPlaceholderBound = this.inputEl.closest('[widget-id]').attr('placeholder.bind');\n }\n // call the below function to apply float-active class when there are default values to the fields\n setTimeout(this.setDefaultValueAnimation.bind(this), 0);\n\n this.inputEl.focus(this.onFocusCb.bind(this));\n this.inputEl.blur(this.onBlurCb.bind(this));\n\n // observe for placeholder attribute change when placeholder is bound via db variable or an expression\n if (this._isPlaceholderBound) {\n this.observeForPlaceholderAttrChange();\n }\n }\n }\n\n // captionPositionAnimate is only notified for date-time, time and search widgets as input el is not updated with value on selection of dropdown/popups\n ngOnInit() {\n this.labelAnimationSubscription = this.app.subscribe('captionPositionAnimate', (data) => {\n // displayVal is true when there is a value entered in the input field\n // In case of form fields, when the field is in focus, isFocused will be set as true\n // isSelectMultiple is set to true when for select widget, multiple option is enabled\n // Checking inputEl focus - when form is represented as dialog and the first field is automatically in focus\n const isInputElFocused = this.inputEl && this.inputEl.is(':focus');\n if (data.displayVal || data.isFocused || data.isSelectMultiple || isInputElFocused) {\n data.nativeEl.addClass('float-active');\n if (!data.displayVal && isInputElFocused) {\n this.inputEl.attr('placeholder', this.placeholder);\n }\n } else {\n data.nativeEl.removeClass('float-active');\n // Remove placeholder on removing float-active, if not the label and placeholder are collided\n // before placeholder is removed assign it to the placeholder variable\n // check for placeholder in inputel and selectel\n if (this.inputEl) {\n const selectEl = this.inputEl.find('option:first');\n if (this.inputEl.attr('placeholder') || selectEl.text()) {\n if (selectEl.length) {\n selectEl.text('');\n } else {\n this.placeholder = this.inputEl.attr('placeholder');\n this.inputEl.removeAttr('placeholder');\n }\n }\n }\n }\n });\n }\n\n ngOnDestroy() {\n if (this.labelAnimationSubscription) {\n this.labelAnimationSubscription();\n }\n if (this._attrObserver) {\n this._attrObserver.disconnect();\n }\n }\n}\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { FormsModule } from '@angular/forms';\n\nimport { IMaskModule } from 'angular-imask';\n\nimport { WmComponentsModule } from '@wm/components/base';\n\nimport { ButtonComponent } from './button/button.component';\nimport { ButtonGroupDirective } from './button-group/button-group.directive';\nimport { CheckboxComponent } from './checkbox/checkbox.component';\nimport { CheckboxsetComponent } from './checkboxset/checkboxset.component';\nimport { CompositeDirective } from './composite/composite.directive';\nimport { NumberComponent } from './number/number.component';\nimport { RadiosetComponent } from './radioset/radioset.component';\nimport { SelectComponent } from './select/select.component';\nimport { SwitchComponent } from './switch/switch.component';\nimport { InputCalendarComponent } from './text/calendar/input-calendar.component';\nimport { InputColorComponent } from './text/color/input-color.component';\nimport { InputEmailComponent } from './text/email/input-email.component';\nimport { InputNumberComponent } from './text/number/input-number.component';\nimport { InputTextComponent } from './text/text/input-text.component';\nimport { TextareaComponent } from './textarea/textarea.component';\nimport { CaptionPositionDirective } from './caption-position.directive';\n\nconst components = [\n ButtonComponent,\n ButtonGroupDirective,\n CaptionPositionDirective,\n CheckboxComponent,\n CheckboxsetComponent,\n CompositeDirective,\n NumberComponent,\n RadiosetComponent,\n SelectComponent,\n SwitchComponent,\n InputCalendarComponent,\n InputColorComponent,\n InputEmailComponent,\n InputNumberComponent,\n InputTextComponent,\n TextareaComponent\n];\n\n@NgModule({\n imports: [\n CommonModule,\n FormsModule,\n WmComponentsModule,\n IMaskModule\n ],\n declarations: [...components],\n exports: [...components]\n})\nexport class InputModule {\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public_api';\n"],"names":["registerProps","_c3","_c4","DEFAULT_CLS","WIDGET_CONFIG","_c0","_c2","_c1","_debounce","debounce","i1"],"mappings":";;;;;;;;;;;;;;;;AAEO,MAAMA,eAAa,GAAG,MAAK;AAC9B,IAAA,QAAQ,CACJ,WAAW,EACX,IAAI,GAAG,CACH;QACI,CAAC,WAAW,EAAE,WAAW,CAAC;QAC1B,CAAC,YAAY,EAAE,WAAW,CAAC;QAC3B,CAAC,SAAS,EAAE,WAAW,CAAC;QACxB,CAAC,OAAO,EAAE,WAAW,CAAC;QACtB,CAAC,kBAAkB,EAAE,QAAQ,CAAC;QAC9B,CAAC,kBAAkB,EAAE,QAAQ,CAAC;QAC9B,CAAC,UAAU,EAAE,YAAY,CAAC;QAC1B,CAAC,MAAM,EAAE,WAAW,CAAC;QACrB,CAAC,WAAW,EAAE,WAAW,CAAC;QAC1B,CAAC,YAAY,EAAE,WAAW,CAAC;QAC3B,CAAC,YAAY,EAAE,WAAW,CAAC;QAC3B,CAAC,cAAc,EAAE,WAAW,CAAC;QAC7B,CAAC,SAAS,EAAE,WAAW,CAAC;QACxB,CAAC,WAAW,EAAE,WAAW,CAAC;QAC1B,CAAC,MAAM,EAAE,WAAW,CAAC;QACrB,CAAC,aAAa,EAAE,WAAW,CAAC;QAC5B,CAAC,MAAM,EAAE,EAAC,KAAK,EAAE,IAAI,EAAE,GAAG,YAAY,EAAC,CAAC;QACxC,CAAC,UAAU,EAAE,EAAC,KAAK,EAAE,CAAC,EAAE,GAAG,WAAW,EAAC,CAAC;QACxC,CAAC,MAAM,EAAE,WAAW,CAAC;AACxB,KAAA,CACJ,CACJ,CAAC;AACN,CAAC;;;;;;;;IC7BD,EAAqL,CAAA,SAAA,CAAA,CAAA,EAAA,KAAA,EAAA,CAAA,CAAA,CAAA;;;;AAArE,IAAxC,4EAAuB,CAAoF,SAAA,EAAA,EAAA,CAAA,eAAA,CAAA,CAAA,EAAAC,KAAA,EAAA,MAAA,CAAA,SAAA,EAAA,MAAA,CAAA,UAAA,EAAA,MAAA,CAAA,UAAA,CAAA,CAAA,CAAA;;;IACnL,EAAmK,CAAA,SAAA,CAAA,CAAA,EAAA,GAAA,EAAA,CAAA,CAAA,CAAA;;;IAAhK,EAA8B,CAAA,sBAAA,CAAA,WAAA,EAAA,MAAA,CAAA,SAAA,EAAA,EAAA,CAAA,CAAA;IAAoB,EAAuF,CAAA,UAAA,CAAA,SAAA,EAAA,EAAA,CAAA,eAAA,CAAA,CAAA,EAAAC,KAAA,EAAA,MAAA,CAAA,SAAA,EAAA,MAAA,CAAA,UAAA,EAAA,MAAA,CAAA,UAAA,EAAA,MAAA,CAAA,SAAA,CAAA,CAAA,CAAA;;;IAC5I,EAAwC,CAAA,cAAA,CAAA,CAAA,EAAA,MAAA,EAAA,CAAA,CAAA,CAAA;IAAA,EAAoC,CAAA,MAAA,CAAA,CAAA,CAAA,CAAA;IAAA,EAAO,CAAA,YAAA,EAAA,CAAA;;;IAA3C,EAAoC,CAAA,SAAA,EAAA,CAAA;IAApC,EAAoC,CAAA,kBAAA,CAAA,EAAA,EAAA,MAAA,CAAA,OAAA,EAAA,GAAA,EAAA,MAAA,CAAA,SAAA,CAAA,UAAA,EAAA,EAAA,CAAA,CAAA;;;IAG5E,EAAoF,CAAA,SAAA,CAAA,CAAA,EAAA,MAAA,EAAA,CAAA,CAAA,CAAA;;;IAAlC,EAA0B,CAAA,UAAA,CAAA,aAAA,EAAA,MAAA,CAAA,UAAA,CAAA,CAAA;;ACC5E,MAAMC,aAAW,GAAG,gBAAgB,CAAC;AACrC,MAAMC,eAAa,GAAkB;AACjC,IAAA,UAAU,EAAE,WAAW;AACvB,IAAA,SAAS,EAAED,aAAW;IACtB,WAAW,EAAE,YAAY,CAAC,YAAY;CACzC,CAAC;AAUI,MAAO,eAAgB,SAAQ,iBAAiB,CAAA;AAC3C,IAAA,SAAA,IAAA,CAAA,eAAe,GAAGH,eAAa,EAAhB,CAAmB,EAAA;IAYzC,WAAY,CAAA,GAAa,EAA0C,eAAoB,EAAA;AACnF,QAAA,KAAK,CAAC,GAAG,EAAEI,eAAa,EAAE,eAAe,CAAC,CAAC;AAC3C,QAAA,MAAM,CAAC,IAAI,CAAC,aAAa,EAAE,IAAI,CAAC,CAAC;KACpC;AAhBQ,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,SAAA,uBAAA,CAAA,CAAA,EAAA,EAAA,OAAA,KAAA,CAAA,IAAA,eAAe,0DAaW,kBAAkB,EAAA,CAAA,CAAA,CAAA,CAAA,EAAA,CAAA,EAAA;oEAb5C,eAAe,EAAA,SAAA,EAAA,CAAA,CAAA,QAAA,EAAA,UAAA,EAAA,EAAA,CAAA,CAAA,EAAA,QAAA,EAAA,CAAA,EAAA,YAAA,EAAA,SAAA,4BAAA,CAAA,EAAA,EAAA,GAAA,EAAA,EAAA,IAAA,EAAA,GAAA,CAAA,EAAA;AAAf,YAAA,EAAA,CAAA,cAAA,CAAA,MAAA,EAAA,GAAA,CAAA,IAAA,CAAe,0BAAA,CAAA,UAAA,EAAA,GAAA,CAAA,QAAA,CAAA,CAAA;;AALb,SAAA,EAAA,EAAA,QAAA,EAAA,CAAA,UAAA,CAAA,EAAA,QAAA,EAAA,CAAA,EAAA,CAAA,kBAAA,CAAA;gBACP,kBAAkB,CAAC,eAAe,CAAC;AACtC,aAAA,CAAA,EAAA,EAAA,CAAA,0BAAA,CAAA,EAAA,KAAA,EAAAC,KAAA,EAAA,kBAAA,EAAAC,KAAA,EAAA,KAAA,EAAA,CAAA,EAAA,IAAA,EAAA,CAAA,EAAA,MAAA,EAAA,CAAA,CAAA,iBAAA,EAAA,KAAA,EAAA,KAAA,EAAA,cAAA,EAAA,OAAA,EAAA,mBAAA,EAAA,CAAA,EAAA,KAAA,EAAA,SAAA,EAAA,CAAA,EAAA,MAAA,CAAA,EAAA,CAAA,aAAA,EAAA,MAAA,EAAA,CAAA,EAAA,OAAA,EAAA,SAAA,EAAA,CAAA,EAAA,MAAA,CAAA,EAAA,CAAA,OAAA,EAAA,SAAA,EAAA,CAAA,EAAA,MAAA,CAAA,EAAA,CAAA,CAAA,EAAA,aAAA,EAAA,CAAA,EAAA,WAAA,CAAA,EAAA,CAAA,OAAA,EAAA,kBAAA,EAAA,CAAA,EAAA,aAAA,EAAA,CAAA,EAAA,MAAA,CAAA,EAAA,CAAA,iBAAA,EAAA,KAAA,EAAA,KAAA,EAAA,cAAA,EAAA,CAAA,EAAA,mBAAA,EAAA,CAAA,EAAA,KAAA,EAAA,SAAA,CAAA,EAAA,CAAA,aAAA,EAAA,MAAA,EAAA,CAAA,EAAA,SAAA,CAAA,EAAA,CAAA,CAAA,EAAA,SAAA,CAAA,EAAA,CAAA,CAAA,EAAA,OAAA,EAAA,YAAA,EAAA,CAAA,EAAA,aAAA,CAAA,CAAA,EAAA,QAAA,EAAA,SAAA,wBAAA,CAAA,EAAA,EAAA,GAAA,EAAA,EAAA,IAAA,EAAA,GAAA,CAAA,EAAA;;YDlBL,EAAqL,CAAA,UAAA,CAAA,CAAA,EAAA,8BAAA,EAAA,CAAA,EAAA,CAAA,EAAA,KAAA,EAAA,CAAA,CAAA,CAAA,CAAA,EAAA,4BAAA,EAAA,CAAA,EAAA,CAAA,EAAA,GAAA,EAAA,CAAA,CACtB,CACvH,CAAA,EAAA,+BAAA,EAAA,CAAA,EAAA,CAAA,EAAA,MAAA,EAAA,CAAA,CAAA,CAAA;YACxC,EAAuD,CAAA,SAAA,CAAA,CAAA,EAAA,MAAA,EAAA,CAAA,CAAA,CAAA;YACvD,EAAyC,CAAA,YAAA,CAAA,CAAA,CAAA,CAAA;YACzC,EAA6E,CAAA,UAAA,CAAA,CAAA,EAAA,+BAAA,EAAA,CAAA,EAAA,CAAA,EAAA,MAAA,EAAA,CAAA,CAAA,CAAA;;YALoB,EAAa,CAAA,UAAA,CAAA,MAAA,EAAA,GAAA,CAAA,OAAA,CAAA,CAAA;YACgC,EAAe,CAAA,SAAA,EAAA,CAAA;YAAf,EAAe,CAAA,UAAA,CAAA,MAAA,EAAA,GAAA,CAAA,SAAA,CAAA,CAAA;YACtI,EAAe,CAAA,SAAA,EAAA,CAAA;YAAf,EAAe,CAAA,UAAA,CAAA,MAAA,EAAA,GAAA,CAAA,SAAA,CAAA,CAAA;YACZ,EAAqB,CAAA,SAAA,EAAA,CAAA;YAArB,EAAqB,CAAA,UAAA,CAAA,WAAA,EAAA,GAAA,CAAA,OAAA,EAAA,EAAA,CAAA,cAAA,CAAA,CAAA;YAExC,EAAgB,CAAA,SAAA,CAAA,CAAA,CAAA,CAAA;YAAhB,EAAgB,CAAA,UAAA,CAAA,MAAA,EAAA,GAAA,CAAA,UAAA,CAAA,CAAA;;;iFCgBV,eAAe,EAAA,CAAA;cAR3B,SAAS;AACI,QAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,kBAAkB,EAEjB,SAAA,EAAA;AACP,oBAAA,kBAAkB,CAAiB,eAAA,CAAA;AACtC,iBAAA,EAAA,QAAA,EACS,UAAU,EAAA,QAAA,EAAA,ipBAAA,EAAA,CAAA;;sBAeQ,MAAM;uBAAC,kBAAkB,CAAA;;sBAAG,QAAQ;qBAN3C,IAAI,EAAA,CAAA;kBAAxB,WAAW;mBAAC,MAAM,CAAA;YACM,QAAQ,EAAA,CAAA;kBAAhC,WAAW;mBAAC,UAAU,CAAA;YACE,QAAQ,EAAA,CAAA;kBAAhC,WAAW;mBAAC,UAAU,CAAA;YACQ,WAAW,EAAA,CAAA;kBAAzC,WAAW;mBAAC,gBAAgB,CAAA;YACM,YAAY,EAAA,CAAA;kBAA9C,WAAW;mBAAC,oBAAoB,CAAA;;kFAXxB,eAAe,EAAA,EAAA,SAAA,EAAA,iBAAA,EAAA,QAAA,EAAA,4BAAA,EAAA,UAAA,EAAA,EAAA,EAAA,CAAA,CAAA,EAAA,GAAA;;ACnBrB,MAAMN,eAAa,GAAG,MAAK;AAC9B,IAAA,QAAQ,CACJ,gBAAgB,EAChB,IAAI,GAAG,CACH;QACI,CAAC,OAAO,EAAE,WAAW,CAAC;QACtB,CAAC,MAAM,EAAE,WAAW,CAAC;QACrB,CAAC,MAAM,EAAE,EAAC,KAAK,EAAE,IAAI,EAAE,GAAG,YAAY,EAAC,CAAC;QACxC,CAAC,UAAU,EAAE,YAAY,CAAC;AAC7B,KAAA,CACJ,CACJ,CAAC;AACN,CAAC;;ACTD,MAAMG,aAAW,GAAG,4BAA4B,CAAC;AACjD,MAAMC,eAAa,GAAkB;AACjC,IAAA,UAAU,EAAE,gBAAgB;AAC5B,IAAA,SAAS,EAAED,aAAW;CACzB,CAAC;AAQI,MAAO,oBAAqB,SAAQ,iBAAiB,CAAA;AAChD,IAAA,SAAA,IAAA,CAAA,eAAe,GAAGH,eAAa,EAAhB,CAAmB,EAAA;AAEN,IAAA,WAAW,CAAC,KAAK,EAAA;AAChD,QAAA,MAAM,OAAO,GAAG,CAAC,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,OAAO,CAAC,aAAa,CAAC,CAAC;AACvD,QAAA,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC,WAAW,CAAC,UAAU,CAAC,CAAC;AAC1D,QAAA,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAC,CAAC;KAChC;IAED,WAAY,CAAA,GAAa,EAA0C,eAAoB,EAAA;AACnF,QAAA,KAAK,CAAC,GAAG,EAAEI,eAAa,EAAE,eAAe,CAAC,CAAC;QAE3C,MAAM,CAAC,IAAI,CAAC,aAAa,EAAE,IAAI,EAAE,iBAAiB,CAAC,SAAS,CAAC,CAAC;KACjE;AAbQ,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,SAAA,4BAAA,CAAA,CAAA,EAAA,EAAA,OAAA,KAAA,CAAA,IAAA,oBAAoB,0DASM,kBAAkB,EAAA,CAAA,CAAA,CAAA,CAAA,EAAA,CAAA,EAAA;oEAT5C,oBAAoB,EAAA,SAAA,EAAA,CAAA,CAAA,EAAA,EAAA,eAAA,EAAA,EAAA,CAAA,CAAA,EAAA,QAAA,EAAA,CAAA,EAAA,YAAA,EAAA,SAAA,iCAAA,CAAA,EAAA,EAAA,GAAA,EAAA,EAAA,IAAA,EAAA,GAAA,CAAA,EAAA;AAApB,YAAA,EAAA,CAAA,UAAA,CAAA,OAAA,EAAA,SAAA,6CAAA,CAAA,MAAA,EAAA,EAAA,OAAA,uBAAmB,CAAC,EAAA,CAAA,CAAA;;YAApB,EAAoB,CAAA,WAAA,CAAA,oBAAA,EAAA,GAAA,CAAA,QAAA,CAAA,CAAA;AAJlB,SAAA,EAAA,EAAA,QAAA,EAAA,CAAA,EAAA,CAAA,kBAAA,CAAA;gBACP,kBAAkB,CAAC,oBAAoB,CAAC;AAC3C,aAAA,CAAA,EAAA,EAAA,CAAA,0BAAA,CAAA,EAAA,CAAA,CAAA,EAAA;;iFAEQ,oBAAoB,EAAA,CAAA;cANhC,SAAS;AAAC,QAAA,IAAA,EAAA,CAAA;AACP,gBAAA,QAAQ,EAAE,iBAAiB;AAC3B,gBAAA,SAAS,EAAE;AACP,oBAAA,kBAAkB,CAAsB,oBAAA,CAAA;AAC3C,iBAAA;AACJ,aAAA,CAAA;;sBAU+B,MAAM;uBAAC,kBAAkB,CAAA;;sBAAG,QAAQ;qBAPvB,QAAQ,EAAA,CAAA;kBAAhD,WAAW;mBAAC,0BAA0B,CAAA;YACJ,WAAW,EAAA,CAAA;kBAA7C,YAAY;mBAAC,OAAO,EAAE,CAAC,QAAQ,CAAC,CAAA;;;ACZ/B,MAAgB,iBAAkB,SAAQ,iBAAiB,CAAA;AAO7D,IAAA,WAAA,CACc,GAAa,EACD,MAAqB,EACH,eAAoB,EAC5D,WAA0B,EAAA;QAE1B,KAAK,CAAC,GAAG,EAAE,MAAM,EAAE,eAAe,EAAE,WAAW,CAAC,CAAC;QALvC,IAAG,CAAA,GAAA,GAAH,GAAG,CAAU;QAMvB,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAC;KAC7D;IAED,IAAI,SAAS,CAAC,SAAS,EAAA;AACnB,QAAA,IAAI,CAAC,OAAO,GAAG,SAAS,CAAC;KAC5B;AAED,IAAA,IAAI,SAAS,GAAA;QACT,OAAO,IAAI,CAAC,OAAO,CAAC;KACvB;AAED;;;AAGG;AACH,IAAA,mBAAmB,CAAC,KAAK,EAAA;AACrB,QAAA,IAAI,aAAa,GAAG,IAAI,CAAC,aAAa,CAAC;;AAGvC,QAAA,IAAI,IAAI,CAAC,eAAe,IAAI,IAAI,CAAC,eAAe,CAAC,OAAO,CAAC,UAAU,CAAC,SAAS,CAAC,YAAY,CAAC,EAAE;YACzF,OAAO;SACV;aAAM,IAAI,IAAI,CAAC,eAAe,IAAI,CAAC,IAAI,CAAC,eAAe,CAAC,aAAa,EAAE;YAChE,OAAO;SACd;;AAGD,QAAA,IAAI,CAAC,aAAa,IAAI,aAAa,CAAC,UAAU,CAAC,UAAU,CAAC,IAAI,aAAa,CAAC,UAAU,CAAC,4BAA4B,CAAC,EAAE;YAClH,OAAO;SACV;QAED,aAAa,GAAG,aAAa,CAAC,OAAO,CAAC,UAAU,EAAE,KAAK,CAAC,CAAC;;AAGzD,QAAA,IAAI,GAAG,CAAC,IAAI,CAAC,OAAO,EAAE,aAAa,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE;YAChD,GAAG,CAAC,IAAI,CAAC,OAAO,EAAE,aAAa,EAAE,KAAK,CAAC,CAAC;SAC3C;aAAM;YACH,GAAG,CAAC,IAAI,CAAC,UAAU,EAAE,aAAa,EAAE,KAAK,CAAC,CAAC;SAC9C;KACJ;IAES,cAAc,CAAC,KAAK,EAAE,MAAc,EAAA;;QAE1C,IAAI,MAAM,EAAE;YACR,IAAI,IAAI,CAAC,SAAS,KAAK,IAAI,CAAC,aAAa,EAAE;AACvC,gBAAA,IAAI,CAAC,mBAAmB,CAAC,KAAK,CAAC,CAAC;AAChC,gBAAA,IAAI,CAAC,mBAAmB,CAAC,QAAQ,EAAE;oBAC/B,MAAM;AACN,oBAAA,MAAM,EAAE,KAAK;oBACb,MAAM,EAAE,IAAI,CAAC,aAAa;AAC7B,iBAAA,CAAC,CAAC;aACN;SACJ;;AAED,QAAA,IAAI,CAAC,aAAa,GAAG,KAAK,CAAC;KAC9B;AAES,IAAA,mBAAmB,CAAC,GAAQ,EAAA;AAClC,QAAA,IAAI,CAAC,aAAa,GAAG,GAAG,CAAC;KAC5B;IAED,eAAe,GAAA;QACX,KAAK,CAAC,eAAe,EAAE,CAAC;;QAGxB,IAAI,cAAc,GAAG,CAAC,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC,OAAO,EAAE,CAAC;QACrD,IAAI,cAAc,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC,MAAM,EAAE;AAC3C,YAAA,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,UAAS,MAAM,EAAA;gBACjC,IAAI,MAAM,CAAC,OAAO,KAAK,EAAE,IAAI,MAAM,CAAC,OAAO,KAAK,EAAE,IAAI,MAAM,CAAC,OAAO,KAAK,EAAE,IAAI,MAAM,CAAC,OAAO,KAAK,EAAE,EAAE;oBAClG,MAAM,CAAC,eAAe,EAAE,CAAC;iBAC5B;AACL,aAAC,CAAC,CAAC;SACN;KACJ;kFAtFiB,iBAAiB,EAAA,EAAA,CAAA,QAAA,CAAA,EAAA,CAAA,QAAA,CAAA,EAAA,EAAA,CAAA,QAAA,CASvB,YAAY,CAAA,EAAA,EAAA,CAAA,QAAA,CACZ,kBAAkB,EAAA,CAAA,CAAA,EAAA,EAAA,CAAA,QAAA,CAAA,OAAA,CAAA,CAAA,CAAA,EAAA,CAAA,EAAA;AAVZ,IAAA,SAAA,IAAA,CAAA,KAAA,iBAAA,EAAA,CAAA,kBAAA,CAAA,EAAA,KAAA,EAAA,iBAAiB,WAAjB,iBAAiB,CAAA,IAAA,EAAA,CAAA,CAAA,EAAA;;iFAAjB,iBAAiB,EAAA,CAAA;cADtC,UAAU;;sBAUF,MAAM;uBAAC,YAAY,CAAA;;sBACnB,MAAM;uBAAC,kBAAkB,CAAA;;sBAAG,QAAQ;;;ACb7C;;;;;;;AAOG;AACH,SAAS,YAAY,CAAC,GAAG,EAAA;IACrB,QAAO,OAAO,GAAG;AACb,QAAA,KAAK,QAAQ,EAAE,QAAQ,CAAC,CAAC,GAAG,KAAK,CAAC,CAAC,GAAG,CAAC,MAAM,IAAI,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,MAAM,CAAC,EAAE;AAC7E,QAAA,KAAK,QAAQ,EAAE,QAAQ,CAAC,CAAC,GAAG,IAAI,GAAG,KAAK,CAAC,EAAE;AACvC,QAAA,SAAS,OAAO,EAAE,GAAG,KAAK,SAAS,IAAI,GAAG,KAAK,IAAI,IAAI,GAAG,KAAK,EAAE,CAAC,CAAC;KAC1E;AACL,CAAC;AACD,SAAS,oBAAoB,CAAC,QAAiB,EAAA;AAC3C,IAAA,OAAO,CAAC,OAAwB,KAC5B,QAAQ;AACJ,WAAG,YAAY,CAAC,OAAO,CAAC,KAAK,CAAC;AAC1B,cAAE,IAAI;AACN,cAAE,EAAE,QAAQ,EAAE,IAAI,EAAE;UACtB,IAAI,CAAC;AACnB,CAAC;AAGK,MAAgB,uBAAwB,SAAQ,iBAAiB,CAAA;AADvE,IAAA,WAAA,GAAA;;AAIc,QAAA,IAAA,CAAA,SAAS,GAAQ,MAAK,GAAG,CAAC;AAC5B,QAAA,IAAA,CAAA,UAAU,GAAQ,MAAK,GAAG,CAAC;AA0DtC,KAAA;IAxDG,QAAQ,GAAA;QACJ,KAAK,CAAC,QAAQ,EAAE,CAAC;AACjB,QAAA,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,eAAe,EAAE,IAAI,CAAC,CAAC;KAC3D;AAEM,IAAA,gBAAgB,CAAC,EAAE,EAAA;AACtB,QAAA,IAAI,CAAC,SAAS,GAAG,EAAE,CAAC;KACvB;AAEM,IAAA,iBAAiB,CAAC,EAAE,EAAA;AACvB,QAAA,IAAI,CAAC,UAAU,GAAG,EAAE,CAAC;KACxB;AAEM,IAAA,UAAU,CAAC,KAAK,EAAA;AACnB,QAAA,IAAI,IAAI,CAAC,WAAW,EAAE;YAClB,OAAO;SACV;AACD,QAAA,IAAI,IAAI,CAAC,YAAY,EAAE;AACnB,YAAA,IAAI,CAAC,SAAS,GAAG,KAAK,CAAC;AACvB,YAAA,IAAI,CAAC,gBAAgB,CAAC,WAAW,EAAE,KAAK,CAAC,CAAC;AAC1C,YAAA,IAAI,CAAC,mBAAmB,CAAC,KAAK,CAAC,CAAC;SACnC;AACD;;;;AAIG;AACH,QAAA,CAAC,KAAK,KAAG,IAAI,CAAC,SAAS,KAAK,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;KAC9D;AAEM,IAAA,cAAc,CAAC,KAAK,EAAE,MAAoB,EAAE,KAAe,EAAA;;AAE9D,QAAA,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC;QACtB,IAAI,MAAM,EAAE;AACR,YAAA,KAAK,CAAC,cAAc,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC;SACvC;aAAM,IAAI,KAAK,EAAE;;AAEd,YAAA,IAAI,CAAC,mBAAmB,CAAC,KAAK,CAAC,CAAC;SACnC;KACJ;AAEM,IAAA,eAAe,CAAC,MAAc,EAAA;QACjC,IAAI,CAAC,UAAU,EAAE,CAAC;QAElB,IAAI,MAAM,EAAE;YACR,IAAI,CAAC,mBAAmB,CAAC,MAAM,EAAE,EAAC,MAAM,EAAC,CAAC,CAAC;SAC9C;KACJ;AAEM,IAAA,aAAa,CAAC,MAAa,EAAA;QAC9B,IAAI,CAAC,mBAAmB,CAAC,OAAO,EAAE,EAAC,MAAM,EAAC,CAAC,CAAC;KAC/C;;AAED,IAAA,QAAQ,CAAC,OAAwB,EAAA;QAC7B,OAAO,IAAI,CAAC,MAAM,CAAC,GAAG,oBAAoB,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,OAAO,CAAC,GAAG,IAAI,CAAC;KAChF;AA7DiB,IAAA,SAAA,IAAA,CAAA,IAAA,iBAAA,CAAA,MAAA,EAAA,IAAA,oCAAA,CAAA,CAAA,OAAA,SAAA,+BAAA,CAAA,CAAA,EAAA,EAAA,OAAA,CAAA,oCAAA,KAAA,oCAAA,GAAA,EAAA,CAAA,qBAAA,CAAA,uBAAuB,SAAvB,uBAAuB,CAAA,CAAA,EAAA,CAAA,EAAA,GAAA,CAAA,EAAA;AAAvB,IAAA,SAAA,IAAA,CAAA,KAAA,iBAAA,EAAA,CAAA,kBAAA,CAAA,EAAA,KAAA,EAAA,uBAAuB,WAAvB,uBAAuB,CAAA,IAAA,EAAA,CAAA,CAAA,EAAA;;iFAAvB,uBAAuB,EAAA,CAAA;cAD5C,UAAU;;;AC1BJ,MAAM,aAAa,GAAG,IAAI,GAAG,CAChC;IACI,CAAC,SAAS,EAAE,WAAW,CAAC;IACxB,CAAC,OAAO,EAAE,WAAW,CAAC;IACtB,CAAC,kBAAkB,EAAE,QAAQ,CAAC;IAC9B,CAAC,kBAAkB,EAAE,QAAQ,CAAC;IAC9B,CAAC,cAAc,EAAE,EAAC,KAAK,EAAE,IAAI,EAAE,GAAG,WAAW,EAAC,CAAC;IAC/C,CAAC,iBAAiB,EAAE,QAAQ,CAAC;IAC7B,CAAC,WAAW,EAAE,WAAW,CAAC;IAC1B,CAAC,UAAU,EAAE,YAAY,CAAC;IAC1B,CAAC,MAAM,EAAE,WAAW,CAAC;IACrB,CAAC,MAAM,EAAE,WAAW,CAAC;IACrB,CAAC,UAAU,EAAE,YAAY,CAAC;IAC1B,CAAC,UAAU,EAAE,YAAY,CAAC;IAC1B,CAAC,aAAa,EAAE,WAAW,CAAC;IAC5B,CAAC,MAAM,EAAE,EAAC,KAAK,EAAE,IAAI,EAAE,GAAG,YAAY,EAAC,CAAC;IACxC,CAAC,UAAU,EAAE,EAAC,KAAK,EAAE,CAAC,EAAE,GAAG,WAAW,EAAC,CAAC;IACxC,CAAC,gBAAgB,EAAE,EAAC,KAAK,EAAE,KAAK,EAAE,GAAG,WAAW,EAAC,CAAC;AACrD,CAAA,CACJ,CAAC;AAEK,MAAMJ,eAAa,GAAG,MAAK;AAC9B,IAAA,QAAQ,CACJ,aAAa,EACb,aAAa,CAChB,CAAC;AACF,IAAA,kBAAkB,CACd,cAAc,CAAC,QAAQ,EACvB,aAAa,CAChB,CAAC;AACF,IAAA,kBAAkB,CACd,cAAc,CAAC,MAAM,EACrB,aAAa,CAChB,CAAC;AACN,CAAC;;;;;;ACjBD,MAAMG,aAAW,GAAG,uBAAuB,CAAC;AAC5C,MAAMC,eAAa,GAAkB;AACjC,IAAA,UAAU,EAAE,aAAa;AACzB,IAAA,SAAS,EAAED,aAAW;CACzB,CAAC;AAEF;;AAEG;MACU,WAAW,GAAG,CAAC,GAAG,EAAE,UAAW,KAAI;AAC5C,IAAA,IAAI,GAAG,KAAK,IAAI,EAAE;AACd,QAAA,OAAO,UAAU,CAAC;KACrB;IAED,IAAI,GAAG,KAAK,IAAI,IAAI,GAAG,KAAK,MAAM,EAAE;AAChC,QAAA,OAAO,IAAI,CAAC;KACf;IAED,IAAI,GAAG,KAAK,KAAK,IAAI,GAAG,KAAK,OAAO,EAAE;AAClC,QAAA,OAAO,KAAK,CAAC;KAChB;IAED,MAAM,MAAM,GAAG,QAAQ,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC;AACjC,IAAA,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,EAAE;AAChB,QAAA,OAAO,MAAM,CAAC;KACjB;AACD,IAAA,OAAO,GAAG,CAAC;AACf,EAAE;AAWI,MAAO,iBAAkB,SAAQ,uBAAuB,CAAA;AACnD,IAAA,SAAA,IAAA,CAAA,eAAe,GAAGH,eAAa,EAAhB,CAAmB,EAAA;;;AAmBzC,IAAA,IAAW,SAAS,GAAA;AAChB,QAAA,OAAO,SAAS,CAAC,IAAI,CAAC,UAAU,CAAC,IAAI,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC,eAAe,IAAI,SAAS,CAAC;KACjH;;;IAGD,IAAW,SAAS,CAAC,CAAC,EAAA;QAClB,IAAI,CAAC,UAAU,GAAG,CAAC,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,EAAE,IAAI,CAAC,KAAK,IAAI,CAAC,aAAa,GAAG,SAAS,CAAC;AACpF,QAAA,IAAI,CAAC,mBAAmB,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;KAC5C;IAED,WACI,CAAA,GAAa,EACc,UAAU,EACR,YAAY,EACf,IAAI,EACU,eAAoB,EAAA;AAE5D,QAAA,KAAK,CAAC,GAAG,EAAEI,eAAa,EAAE,eAAe,CAAC,CAAC;QAHjB,IAAI,CAAA,IAAA,GAAJ,IAAI,CAAA;QAvB3B,IAAQ,CAAA,QAAA,GAAG,OAAO,CAAC;QA4BtB,IAAI,CAAC,aAAa,GAAG,WAAW,CAAC,UAAU,EAAE,IAAI,CAAC,CAAC;QACnD,IAAI,CAAC,eAAe,GAAG,WAAW,CAAC,YAAY,EAAE,KAAK,CAAC,CAAC;;QAGxD,WAAW,CAAC,IAAI,CAAC,aAAa,EAAE,YAAY,EAAE,IAAI,KAAK,QAAQ,CAAC,CAAC;KACpE;AAED,IAAA,gBAAgB,CAAC,GAAG,EAAE,EAAE,EAAE,EAAE,EAAA;AACxB,QAAA,IAAI,GAAG,KAAK,UAAU,EAAE;YACpB,OAAO;SACV;AACD,QAAA,IAAI,GAAG,KAAK,UAAU,EAAE;AACpB,YAAA,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;YAC/B,OAAO;SACV;AAED,QAAA,IAAI,GAAG,KAAK,SAAS,EAAE;YACnB,IAAI,CAAC,SAAS,CAAC,EAAE,CAAC,IAAI,EAAE,KAAK,EAAE,EAAE;AAC7B,gBAAA,IAAI,CAAC,QAAQ,GAAG,QAAQ,CAAC;aAC5B;iBAAM;AACH,gBAAA,IAAI,CAAC,QAAQ,GAAG,EAAE,CAAC;aACtB;SACJ;AAAM,aAAA,IAAI,GAAG,KAAK,cAAc,EAAE;YAC/B,IAAI,CAAC,aAAa,GAAG,WAAW,CAAC,EAAE,EAAE,IAAI,CAAC,CAAC;SAC9C;AAAM,aAAA,IAAI,GAAG,KAAK,gBAAgB,EAAE;YACjC,IAAI,CAAC,eAAe,GAAG,WAAW,CAAC,EAAE,EAAE,KAAK,CAAC,CAAC;SACjD;AAAM,aAAA,IAAI,GAAG,KAAK,WAAW,EAAE;AAC5B,YAAA,IAAI,CAAC,SAAS,GAAG,WAAW,CAAC,EAAE,CAAC,CAAC;AACjC,YAAA,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;SAClC;aAAM;YACH,KAAK,CAAC,gBAAgB,CAAC,GAAG,EAAE,EAAE,EAAE,EAAE,CAAC,CAAC;SACvC;KACJ;;AAGS,IAAA,WAAW,CAAC,IAAiB,EAAE,SAAiB,EAAE,QAAkB,EAAE,MAAW,EAAA;QACvF,IAAI,SAAS,KAAK,QAAQ,IAAI,SAAS,KAAK,MAAM,EAAE;;YAEhD,MAAM,GAAG,GAAG,SAAS,KAAK,KAAK,GAAG,IAAI,CAAC,aAAa,CAAC,aAAa,CAAC,OAAO,CAAC,GAAG,IAAI,CAAC,UAAU,CAAC,aAAa,CAAC;YAC5G,KAAK,CAAC,WAAW,CAAC,GAAG,EAAE,SAAS,EAAE,QAAQ,EAAE,MAAM,CAAC,CAAC;SACvD;KACJ;AAED,IAAA,YAAY,CAAC,MAAe,EAAA;AACxB,QAAA,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,SAAS,EAAE,EAAC,IAAI,EAAE,QAAQ,EAAC,EAAE,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;KAC7E;AAGD,IAAA,SAAS,CAAC,MAAM,EAAA;QACZ,MAAM,CAAC,cAAc,EAAE,CAAC;AACxB,QAAA,IAAI,CAAC,UAAU,CAAC,aAAa,CAAC,KAAK,EAAE,CAAC;KACzC;IAGD,eAAe,GAAA;QACX,KAAK,CAAC,eAAe,EAAE,CAAC;AACxB,QAAA,MAAM,CAAC,IAAI,CAAC,aAAa,CAAC,aAAa,CAAC,OAAO,CAAC,EAAE,IAAI,CAAC,CAAC;KAC3D;AAhGQ,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,SAAA,yBAAA,CAAA,CAAA,EAAA,EAAA,OAAA,KAAA,CAAA,IAAA,iBAAiB,0DAgCX,cAAc,CAAA,EAAA,EAAA,CAAA,iBAAA,CACd,gBAAgB,CAChB,EAAA,EAAA,CAAA,iBAAA,CAAA,MAAM,wBACT,kBAAkB,EAAA,CAAA,CAAA,CAAA,CAAA,EAAA,CAAA,EAAA;oEAnCrB,iBAAiB,EAAA,SAAA,EAAA,CAAA,CAAA,EAAA,EAAA,YAAA,EAAA,EAAA,CAAA,CAAA,EAAA,SAAA,EAAA,SAAA,uBAAA,CAAA,EAAA,EAAA,GAAA,EAAA,EAAA,IAAA,EAAA,GAAA,CAAA,EAAA;2BAef,OAAO,EAAA,CAAA,CAAA,CAAA;qCAC2B,UAAU,CAAA,CAAA;;;;;;YAhB9C,EAAA,CAAA,UAAA,CAAA,eAAA,EAAA,SAAA,kDAAA,CAAA,MAAA,EAAA,EAAA,OAAA,GAAA,CAAA,SAAA,CAAA,MAAA,EAAiB,OAAO,CAAC,CAAR,EAAA,CAAA,CAAA;AANf,SAAA,EAAA,EAAA,QAAA,EAAA,CAAA,EAAA,CAAA,kBAAA,CAAA;AACP,gBAAA,SAAS,CAAC,iBAAiB,EAAE,iBAAiB,EAAE,IAAI,CAAC;AACrD,gBAAA,SAAS,CAAC,iBAAiB,EAAE,aAAa,EAAE,IAAI,CAAC;gBACjD,kBAAkB,CAAC,iBAAiB,CAAC;AACxC,aAAA,CAAA,EAAA,EAAA,CAAA,0BAAA,CAAA,EAAA,KAAA,EAAAG,KAAA,EAAA,KAAA,EAAA,CAAA,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,CAAA,CAAA,UAAA,EAAA,EAAA,CAAA,EAAA,CAAA,CAAA,EAAA,SAAA,CAAA,EAAA,CAAA,MAAA,EAAA,UAAA,EAAA,MAAA,EAAA,UAAA,EAAA,cAAA,EAAA,EAAA,EAAA,CAAA,EAAA,eAAA,EAAA,MAAA,EAAA,SAAA,EAAA,gBAAA,EAAA,UAAA,EAAA,UAAA,EAAA,UAAA,EAAA,UAAA,CAAA,EAAA,CAAA,CAAA,EAAA,SAAA,EAAA,CAAA,EAAA,WAAA,CAAA,EAAA,CAAA,KAAA,EAAA,gBAAA,EAAA,aAAA,EAAA,MAAA,EAAA,KAAA,EAAA,4EAAA,EAAA,CAAA,EAAA,QAAA,CAAA,EAAA,CAAA,MAAA,EAAA,QAAA,EAAA,aAAA,EAAA,MAAA,EAAA,UAAA,EAAA,IAAA,EAAA,CAAA,EAAA,SAAA,EAAA,cAAA,EAAA,CAAA,EAAA,UAAA,EAAA,OAAA,CAAA,CAAA,EAAA,QAAA,EAAA,SAAA,0BAAA,CAAA,EAAA,EAAA,GAAA,EAAA,EAAA,IAAA,EAAA,GAAA,CAAA,EAAA;;ACvDD,YADJ,gCAAsH,CAgBpE,CAAA,EAAA,OAAA,EAAA,CAAA,EAAA,CAAA,CAAA,CAAA;YARvC,EAAwB,CAAA,gBAAA,CAAA,eAAA,EAAA,SAAA,yDAAA,CAAA,MAAA,EAAA,EAAA,EAAA,CAAA,aAAA,CAAA,GAAA,CAAA,CAAA,CAAA,EAAA,CAAA,kBAAA,CAAA,GAAA,CAAA,UAAA,EAAA,MAAA,CAAA,KAAA,GAAA,CAAA,UAAA,GAAA,MAAA,CAAA,CAAA,CAAA,OAAA,EAAA,CAAA,WAAA,CAAA,MAAA,CAAA,CAAA,EAAA,CAAA,CAAA;AAQxB,YADA,EAAQ,CAAA,UAAA,CAAA,MAAA,EAAA,SAAA,gDAAA,CAAA,MAAA,EAAA,EAAA,EAAA,CAAA,aAAA,CAAA,GAAA,CAAA,CAAA,CAAA,OAAA,EAAA,CAAA,WAAA,CAAA,GAAA,CAAA,eAAA,CAAA,MAAA,CAAuB,CAAC,CAAA,EAAA,CAAA,CAAA,eAAA,EAAA,SAAA,yDAAA,CAAA,MAAA,EAAA,EAAA,EAAA,CAAA,aAAA,CAAA,GAAA,CAAA,CAAA,CAAA,OAAA,EAAA,CAAA,WAAA,CACf,wBAAoB,CAAC,CAAA,EAAA,CAAA,CAAA;YAf7C,EAe8C,CAAA,YAAA,EAAA,CAAA;AAE9C,YADA,0BAAoD,CAC0F,CAAA,EAAA,KAAA,EAAA,CAAA,CAAA,CAAA;YAClJ,EAAQ,CAAA,YAAA,EAAA,CAAA;YACR,EAA8H,CAAA,SAAA,CAAA,CAAA,EAAA,OAAA,EAAA,CAAA,CAAA,CAAA;;YApBvH,EAA8G,CAAA,UAAA,CAAA,SAAA,EAAA,EAAA,CAAA,eAAA,CAAA,EAAA,EAAAD,KAAA,EAAA,CAAA,GAAA,CAAA,UAAA,EAAA,GAAA,CAAA,QAAA,IAAA,GAAA,CAAA,QAAA,EAAA,GAAA,CAAA,QAAA,IAAA,GAAA,CAAA,QAAA,CAAA,CAAA,CAAA;YAQ1G,EAAwB,CAAA,SAAA,EAAA,CAAA;YAAxB,EAAwB,CAAA,gBAAA,CAAA,SAAA,EAAA,GAAA,CAAA,UAAA,CAAA,CAAA;AAMxB,YALA,8DAAqC,CAChB,UAAA,EAAA,GAAA,CAAA,QAAA,CAAA,CAAA,UAAA,EAAA,GAAA,CAAA,QAAA,CACA,0CACY,CAEZ,UAAA,EAAA,GAAA,CAAA,QAAA,CAAA,CAAA;;YAGN,EAAsB,CAAA,SAAA,CAAA,CAAA,CAAA,CAAA;YAAtB,EAAsB,CAAA,UAAA,CAAA,WAAA,EAAA,GAAA,CAAA,QAAA,EAAA,EAAA,CAAA,cAAA,CAAA,CAAA;YAGmC,EAAqB,CAAA,SAAA,CAAA,CAAA,CAAA,CAAA;AAAC,YAAtB,uCAAqB,CAAqB,OAAA,EAAA,GAAA,CAAA,UAAA,CAAA,CAAA;;;iFDsChH,iBAAiB,EAAA,CAAA;cAT7B,SAAS;AACI,QAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,cAAc,EAEb,SAAA,EAAA;AACP,oBAAA,SAAS,CAAoB,iBAAA,EAAA,iBAAiB,EAAE,IAAI,CAAC;AACrD,oBAAA,SAAS,CAAoB,iBAAA,EAAA,aAAa,EAAE,IAAI,CAAC;AACjD,oBAAA,kBAAkB,CAAmB,iBAAA,CAAA;AACxC,iBAAA,EAAA,QAAA,EAAA,ylCAAA,EAAA,CAAA;;sBAkCI,SAAS;uBAAC,cAAc,CAAA;;sBACxB,SAAS;uBAAC,gBAAgB,CAAA;;sBAC1B,SAAS;uBAAC,MAAM,CAAA;;sBAChB,MAAM;uBAAC,kBAAkB,CAAA;;sBAAG,QAAQ;qBApBrB,OAAO,EAAA,CAAA;kBAA1B,SAAS;mBAAC,OAAO,CAAA;YACyC,UAAU,EAAA,CAAA;kBAApE,SAAS;mBAAC,UAAU,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,IAAI,EAAE,UAAU,EAAE,CAAA;YAuEzD,SAAS,EAAA,CAAA;kBADR,YAAY;AAAC,YAAA,IAAA,EAAA,CAAA,eAAe,EAAE,CAAC,QAAQ,EAAE,SAAS,CAAC,CAAA;;kFAtF3C,iBAAiB,EAAA,EAAA,SAAA,EAAA,mBAAA,EAAA,QAAA,EAAA,gCAAA,EAAA,UAAA,EAAA,EAAA,EAAA,CAAA,CAAA,EAAA,GAAA;;AElDxB,MAAgB,yBAA0B,SAAQ,uBAAuB,CAAA;AA8C3E,IAAA,IAAW,UAAU,GAAA;QACjB,OAAO,IAAI,CAAC,WAAW,CAAC;KAC3B;;IAGD,IAAW,UAAU,CAAC,GAAQ,EAAA;AAC1B,QAAA,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC;;AAGtB,QAAA,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;KAC3C;;AAGD,IAAA,IAAW,SAAS,GAAA;QAChB,OAAO,IAAI,CAAC,aAAa,CAAC;KAC7B;;;IAID,IAAW,SAAS,CAAC,GAAQ,EAAA;AACzB,QAAA,IAAI,IAAI,CAAC,QAAQ,EAAE;AACf,YAAA,GAAG,GAAG,kBAAkB,CAAC,GAAG,CAAC,CAAC;SACjC;AACD,QAAA,IAAI,CAAC,aAAa,GAAG,GAAG,CAAC;AAEzB,QAAA,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,CAAC;;AAGxB,QAAA,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;;QAG1B,IAAI,CAAC,cAAc,CAAC,GAAG,EAAE,SAAS,EAAE,IAAI,CAAC,CAAC;KAC7C;AAED,IAAA,WAAA,CAAsB,GAAa,EAAyB,MAAqB,EACnB,eAAoB,EAA+B,OAAgB,EAAA;AAC7H,QAAA,KAAK,CAAC,GAAG,EAAE,MAAM,EAAE,eAAe,CAAC,CAAC;QADyE,IAAO,CAAA,OAAA,GAAP,OAAO,CAAS;QAxD1H,IAAY,CAAA,YAAA,GAAkB,EAAE,CAAC;AACjC,QAAA,IAAA,CAAA,YAAY,GAAG,KAAK,CAAC;AAClB,QAAA,IAAA,CAAA,QAAQ,GAAG,IAAI,OAAO,EAAE,CAAC;AACzB,QAAA,IAAA,CAAA,UAAU,GAAG,IAAI,OAAO,EAAE,CAAC;QAa3B,IAAU,CAAA,UAAA,GAAG,IAAI,CAAC;AA6KT,QAAA,IAAA,CAAA,0BAA0B,GAAGE,QAAS,CAAC,CAAC,MAAM,KAAI;;YAEjE,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,WAAW,CAAC,KAAK,OAAO,CAAC,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC,EAAE;AACzF,gBAAA,IAAI,CAAC,sBAAsB,GAAG,MAAM,CAAC;AACrC,gBAAA,IAAI,CAAC,aAAa,GAAG,EAAE,CAAC;aAC3B;AAAM,iBAAA,IAAI,SAAS,CAAC,IAAI,CAAC,sBAAsB,CAAC,EAAE;;;gBAG/C,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,aAAa,CAAC,EAAE;AAChC,oBAAA,IAAI,CAAC,aAAa,GAAG,CAAC,CAAC,IAAI,CAAC,QAAQ,IAAI,OAAO,CAAC,IAAI,CAAC,sBAAsB,CAAC,IAAI,IAAI,CAAC,sBAAsB,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,sBAAsB,CAAC;iBAChJ;AACD,gBAAA,IAAI,CAAC,sBAAsB,GAAG,SAAS,CAAC;aAC3C;YAED,IAAI,CAAC,iBAAiB,EAAE,CAAC;SAC5B,EAAE,GAAG,CAAC,CAAC;QAlJJ,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC;QACzC,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,WAAW,CAAC,CAAC;QAC7C,IAAI,CAAC,qBAAqB,GAAG,IAAI,CAAC,aAAa,CAAC,YAAY,CAAC,wBAAwB,CAAC,CAAC;QACvF,IAAI,CAAC,mBAAmB,GAAG,IAAI,CAAC,aAAa,CAAC,YAAY,CAAC,sBAAsB,CAAC,CAAC;QACnF,IAAI,CAAC,gBAAgB,GAAG,IAAI,CAAC,aAAa,CAAC,YAAY,CAAC,mBAAmB,CAAC,CAAC;AAE7E,QAAA,IAAI,CAAC,0BAA0B,GAAGC,UAAQ,CAAC,MAAK;YAC5C,IAAI,CAAC,gBAAgB,EAAE,CAAC;AACxB,YAAA,UAAU,EAAE,CAAC;SAChB,EAAE,GAAG,CAAC,CAAC;AACR,QAAA,IAAI,CAAC,iBAAiB,GAAG,IAAI,CAAC;AAE9B,QAAA,IAAI,CAAC,8BAA8B,GAAG,IAAI,CAAC,cAAc,EAAE,CAAC,SAAS,CAAC,gBAAgB,EAAE,MAAK;YACzF,IAAI,CAAC,0BAA0B,EAAE,CAAC;AACtC,SAAC,CAAC,CAAC;KACN;AAED;;;;AAIG;AACO,IAAA,WAAW,CAAC,IAAI,EAAA;QACtB,IAAI,CAAC,iBAAiB,EAAE,CAAC;AAEzB,QAAA,IAAI,CAAC,IAAI,CAAC,YAAY,CAAC,MAAM,EAAE;YAC3B,OAAO;SACV;QAED,IAAI,IAAI,CAAC,QAAQ,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE;AACjC,YAAA,IAAI,GAAG,CAAC,IAAI,CAAC,CAAC;SACjB;;AAGD,QAAA,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC;AAExB,QAAA,IAAI,IAAI,CAAC,QAAQ,EAAE;AACf,YAAA,IAAI,CAAC,aAAa,GAAG,EAAE,CAAC;AACxB,YAAA,IAAI,CAAC,OAAO,CAAC,GAAG,IAAG;gBACf,MAAM,SAAS,GAAG,IAAI,CAAC,IAAI,CAAC,YAAY,EAAE,IAAI,IAAG;;;oBAG7C,OAAO,QAAQ,CAAC,IAAI,CAAC,GAAG,CAAC,KAAK,QAAQ,CAAC,GAAG,CAAC,CAAC;AAChD,iBAAC,CAAC,CAAC;gBACH,IAAI,SAAS,EAAE;AACX,oBAAA,SAAS,CAAC,QAAQ,GAAG,IAAI,CAAC;AAC1B,oBAAA,IAAI,CAAC,aAAa,GAAG,CAAC,GAAG,IAAI,CAAC,aAAa,EAAE,SAAS,CAAC,KAAK,CAAC,CAAC;iBACjE;AACL,aAAC,CAAC,CAAC;SACN;aAAM;AACH,YAAA,IAAI,CAAC,aAAa,GAAG,EAAE,CAAC;YACxB,MAAM,SAAS,GAAG,IAAI,CAAC,IAAI,CAAC,YAAY,EAAE,IAAI,IAAG;;;gBAG7C,OAAO,QAAQ,CAAC,IAAI,CAAC,GAAG,CAAC,KAAK,QAAQ,CAAC,IAAI,CAAC,CAAC;AACjD,aAAC,CAAC,CAAC;YACH,IAAI,SAAS,EAAE;AACX,gBAAA,SAAS,CAAC,QAAQ,GAAG,IAAI,CAAC;AAC1B,gBAAA,IAAI,CAAC,aAAa,GAAG,SAAS,CAAC,KAAK,CAAC;aACxC;SACJ;QACD,IAAI,CAAC,iBAAiB,EAAE,CAAC;KAC5B;AAED;;;;;;AAMG;AACO,IAAA,aAAa,CAAC,MAAwB,EAAA;QAC5C,IAAI,CAAC,iBAAiB,EAAE,CAAC;;QAGzB,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,IAAI,MAAM,KAAK,EAAE,IAAI,MAAM,CAAC,MAAM,CAAC,KAAK,MAAM,YAAY,KAAK,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,EAAE;AACtG,YAAA,IAAI,CAAC,WAAW,GAAG,SAAS,CAAC;;YAE7B,IAAI,CAAC,IAAI,CAAC,UAAU,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,EAAE;gBACxC,OAAO;aACV;SACJ;QAED,IAAI,IAAI,CAAC,YAAY,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE;AACvC,YAAA,MAAM,GAAG,IAAI,CAAC,UAAU,GAAG,CAAC,MAAM,CAAC,GAAG,kBAAkB,CAAC,MAAM,CAAC,CAAC;SACpE;;AAGD,QAAA,IAAI,CAAC,IAAI,CAAC,YAAY,CAAC,MAAM,IAAI,SAAS,CAAC,MAAM,CAAC,EAAE;AAChD,YAAA,IAAI,CAAC,sBAAsB,GAAG,MAAM,CAAC;YACrC,OAAO;SACV;AAED,QAAA,MAAM,WAAW,GAAG,IAAI,CAAC,SAAS,KAAK,SAAS,GAAG,YAAY,GAAG,KAAK,CAAC;AAExE,QAAA,IAAI,OAAO,CAAC,MAAM,CAAC,EAAE;AACjB,YAAA,IAAI,CAAC,WAAW,GAAG,EAAE,CAAC;AACtB,YAAA,MAAM,CAAC,OAAO,CAAC,GAAG,IAAG;gBACjB,MAAM,WAAW,GAAG,IAAI,CAAC,IAAI,CAAC,YAAY,EAAE,IAAI,IAAG;AAC/C,oBAAA,IAAI,WAAW,KAAK,YAAY,EAAE;wBAC9B,IAAI,IAAI,CAAC,SAAS,IAAI,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE;AACzC,4BAAA,OAAO,iBAAiB,CAAC,IAAI,CAAC,WAAW,CAAC,EAAE,GAAG,EAAE,IAAI,CAAC,SAAS,CAAC,CAAC;yBACpE;qBACJ;AACD,oBAAA,QAAQ,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC,KAAK,EAAE,GAAG,CAAC,GAAG,CAAC,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,WAAW,EAAE,KAAK,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE,WAAW,EAAE,EAAE;AACtI,iBAAC,CAAC,CAAC;gBACH,IAAI,WAAW,EAAE;AACb,oBAAA,WAAW,CAAC,QAAQ,GAAG,IAAI,CAAC;oBAC5B,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC;iBAC1C;AACL,aAAC,CAAC,CAAC;SACN;aAAM;AACH,YAAA,IAAI,CAAC,WAAW,GAAG,SAAS,CAAC;YAC7B,MAAM,WAAW,GAAG,IAAI,CAAC,IAAI,CAAC,YAAY,EAAE,IAAI,IAAG;AAC/C,gBAAA,IAAI,WAAW,KAAK,YAAY,EAAE;oBAC9B,IAAI,IAAI,CAAC,SAAS,IAAI,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE;AACzC,wBAAA,OAAO,iBAAiB,CAAC,IAAI,CAAC,WAAW,CAAC,EAAE,MAAM,EAAE,IAAI,CAAC,SAAS,CAAC,CAAC;qBACvE;iBACJ;AACD,gBAAA,QAAQ,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC,KAAK,EAAE,MAAM,CAAC,GAAG,CAAC,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,WAAW,EAAE,KAAK,CAAC,QAAQ,CAAC,MAAM,CAAC,EAAE,WAAW,EAAE,EAAE;AAC5I,aAAC,CAAC,CAAC;YACH,IAAI,WAAW,EAAE;AACb,gBAAA,WAAW,CAAC,QAAQ,GAAG,IAAI,CAAC;AAC5B,gBAAA,IAAI,CAAC,WAAW,GAAG,WAAW,CAAC,GAAG,CAAC;aACtC;SACJ;;;AAGD,QAAA,IAAI,CAAC,0BAA0B,CAAC,MAAM,CAAC,CAAC;KAC3C;;IAoBS,iBAAiB,GAAA;QACvB,MAAM,aAAa,GAAG,EAAE,CAAC;AACzB,QAAA,IAAI,CAAC,YAAY,CAAC,OAAO,CAAC,IAAI,IAAG;AAC7B,YAAA,IAAI,IAAI,CAAC,QAAQ,EAAE;AACf,gBAAA,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;aAClC;AACL,SAAC,CAAC,CAAC;AAEH,QAAA,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC,QAAQ,GAAG,aAAa,GAAG,aAAa,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC;KAC9E;;IAGS,gBAAgB,GAAA;AACtB,QAAA,IAAI,CAAC,IAAI,CAAC,OAAO,IAAI,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE;AACxC,YAAA,IAAI,CAAC,YAAY,GAAG,EAAE,CAAC;;YAEvB,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;YACtC,OAAO;SACV;;AAGD,QAAA,MAAM,cAAc,GAAG,iBAAiB,CAAC,mBAAmB,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE,IAAI,CAAC,OAAO,CAAC,CAAC;AAE1F,QAAA,IAAI,IAAI,CAAC,OAAO,EAAE;AACd,YAAA,IAAI,CAAC,YAAY,GAAG,qBAAqB,CAAC,cAAc,CAAC,CAAC;SAC7D;aAAM;AACH,YAAA,MAAM,cAAc,GAAG,iBAAiB,CAAC,IAAI,CAAC,UAAU,EAAE,cAAc,EAAE,IAAI,CAAC,SAAS,EAAE;AACtF,gBAAA,YAAY,EAAE,IAAI,CAAC,YAAY,IAAI,IAAI,CAAC,YAAY;gBACpD,WAAW,EAAE,IAAI,CAAC,iBAAiB;AACnC,gBAAA,eAAe,EAAE,IAAI,CAAC,qBAAqB,IAAI,IAAI,CAAC,gBAAgB;gBACpE,iBAAiB,EAAE,IAAI,CAAC,mBAAmB;gBAC3C,aAAa,EAAE,IAAI,CAAC,eAAe;AACtC,aAAA,CAAC,CAAC;;AAEH,YAAA,IAAI,CAAC,YAAY,GAAG,CAAC,GAAG,sBAAsB,CAAC,cAAc,EAAE,IAAI,CAAC,SAAS,EAAE,IAAI,CAAC,YAAY,IAAI,IAAI,CAAC,YAAY,EAAE,SAAS,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC;SACvJ;QAED,IAAI,CAAC,oBAAoB,EAAE,CAAC;KAC/B;;IAGS,oBAAoB,GAAA;QAC1B,IAAI,IAAI,CAAC,YAAY,CAAC,MAAM,IAAI,CAAC,IAAI,CAAC,oBAAoB,EAAE;;YAExD,MAAM,UAAU,GAAG,OAAO,CAAC,IAAI,CAAC,sBAAsB,CAAC,GAAG,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,sBAAsB,CAAC;AACvG,YAAA,IAAI,CAAC,aAAa,CAAC,UAAU,CAAC,CAAC;SAClC;;QAED,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;KACzC;;IAGS,iBAAiB,GAAA;AACvB,QAAA,IAAI,CAAC,YAAY,CAAC,OAAO,CAAC,IAAI,IAAI,IAAI,CAAC,QAAQ,GAAG,KAAK,CAAC,CAAC;KAC5D;AAES,IAAA,WAAW,CAAC,WAAW,EAAA;AAC7B,QAAA,IAAI,CAAC,OAAO,GAAG,WAAW,CAAC;QAC3B,IAAI,IAAI,CAAC,UAAU,IAAI,IAAI,CAAC,UAAU,CAAC,UAAU,EAAE;YAC/C,IAAI,CAAC,YAAY,CAAC,GAAG,IAAI,CAAC,UAAU,CAAC,UAAU,CAAC;SACnD;KACJ;IAGO,cAAc,GAAA;QAClB,OAAO,IAAI,CAAC,YAAY,CAAC,MAAM,GAAG,SAAS,CAAC,IAAI,EAAE,mBAAmB,CAAC,IAAI,CAAC,YAAY,CAAC,EAAE,IAAI,CAAC,OAAO,EAAE,IAAI,CAAC,KAAK,EAAE,IAAI,CAAC,OAAO,EAAE,IAAI,CAAC,UAAU,EAAE,IAAI,CAAC,QAAQ,EAAE,YAAY,EAAE,IAAI,CAAC,WAAW,CAAC,GAAG,EAAE,CAAC;KAC1M;IAEO,mBAAmB,GAAA;QACvB,MAAM,mBAAmB,GAAG,IAAI,CAAC,QAAQ,CAAC,SAAS,CAAC,MAAK;AACrD,YAAA,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,cAAc,EAAE,CAAC;AAC7C,SAAC,CAAC,CAAC;QACH,IAAI,CAAC,uBAAuB,CAAC,MAAM,mBAAmB,CAAC,WAAW,EAAE,CAAC,CAAC;KACzE;IAES,YAAY,GAAA;QAClB,IAAI,CAAC,mBAAmB,EAAE,CAAC;;AAE3B,QAAA,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,cAAc,EAAE,CAAC;KAC5C;AAGD,IAAA,gBAAgB,CAAC,GAAW,EAAE,EAAO,EAAE,EAAQ,EAAA;QAC3C,KAAK,CAAC,gBAAgB,CAAC,GAAG,EAAE,EAAE,EAAE,EAAE,CAAC,CAAC;QACpC,QAAQ,GAAG;AACP,YAAA,KAAK,SAAS,CAAC;AACf,YAAA,KAAK,WAAW,CAAC;AACjB,YAAA,KAAK,cAAc,CAAC;AACpB,YAAA,KAAK,cAAc,CAAC;AACpB,YAAA,KAAK,mBAAmB,CAAC;AACzB,YAAA,KAAK,SAAS,CAAC;AACf,YAAA,KAAK,SAAS;gBACV,IAAI,CAAC,0BAA0B,EAAE,CAAC;gBAClC,MAAM;AACV,YAAA,KAAK,UAAU,CAAC;AAChB,YAAA,KAAK,WAAW;AACZ,gBAAA,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;gBAC/B,MAAM;AACV,YAAA,KAAK,SAAS,CAAC;AACf,YAAA,KAAK,OAAO;AACR,gBAAA,IAAI,IAAI,CAAC,UAAU,KAAK,WAAW,IAAI,IAAI,CAAC,UAAU,KAAK,UAAU,EAAE;oBACnE,IAAI,CAAC,YAAY,EAAE,CAAC;iBACvB;gBACL,MAAM;SACT;KACJ;IAED,QAAQ,GAAA;QACJ,KAAK,CAAC,QAAQ,EAAE,CAAC;AACjB,QAAA,IAAI,IAAI,CAAC,OAAO,KAAK,IAAI,CAAC,UAAU,KAAK,WAAW,IAAI,IAAI,CAAC,UAAU,KAAK,UAAU,CAAC,EAAE;YACrF,IAAI,CAAC,YAAY,EAAE,CAAC;SACvB;;QAED,IAAI,IAAI,CAAC,OAAO,IAAI,IAAI,CAAC,WAAW,EAAE;AAClC,YAAA,IAAI,CAAC,iBAAiB,GAAG,iBAAiB,CAAC;YAC3C,IAAI,CAAC,gBAAgB,GAAG,gBAAgB,CAAC,IAAI,CAAC,SAAS,EAAE,IAAI,CAAC,CAAC;SAClE;KACJ;IAED,WAAW,GAAA;AACP,QAAA,IAAG,IAAI,CAAC,8BAA8B,EAAE;YACpC,IAAI,CAAC,8BAA8B,EAAE,CAAC;SACzC;KACJ;AAnWiB,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,SAAA,iCAAA,CAAA,CAAA,EAAA,EAAA,OAAA,KAAA,CAAA,IAAA,yBAAyB,EAgFG,EAAA,CAAA,QAAA,CAAA,EAAA,CAAA,QAAA,CAAA,EAAA,EAAA,CAAA,QAAA,CAAA,YAAY,CAC5B,EAAA,EAAA,CAAA,QAAA,CAAA,kBAAkB,2BAA+C,SAAS,CAAA,CAAA,CAAA,EAAA,CAAA,EAAA;AAjFtF,IAAA,SAAA,IAAA,CAAA,KAAA,iBAAA,EAAA,CAAA,kBAAA,CAAA,EAAA,KAAA,EAAA,yBAAyB,WAAzB,yBAAyB,CAAA,IAAA,EAAA,CAAA,CAAA,EAAA;;iFAAzB,yBAAyB,EAAA,CAAA;cAD9C,UAAU;;sBAiFgC,MAAM;uBAAC,YAAY,CAAA;;sBACnC,MAAM;uBAAC,kBAAkB,CAAA;;sBAAG,QAAQ;;sBAA0B,SAAS;uBAAC,SAAS,CAAA;;;ACtFrG,MAAM,gBAAgB,GAAG,IAAI,GAAG,CACnC;IACI,CAAC,OAAO,EAAE,WAAW,CAAC;IACtB,CAAC,aAAa,EAAE,YAAY,CAAC;IAC7B,CAAC,WAAW,EAAE,WAAW,CAAC;IAC1B,CAAC,WAAW,EAAE,WAAW,CAAC;IAC1B,CAAC,SAAS,EAAE,EAAC,KAAK,EAAE,8BAA8B,EAAE,GAAG,QAAQ,EAAC,CAAC;IACjE,CAAC,iBAAiB,EAAE,QAAQ,CAAC;IAC7B,CAAC,WAAW,EAAE,WAAW,CAAC;IAC1B,CAAC,YAAY,EAAE,WAAW,CAAC;IAC3B,CAAC,UAAU,EAAE,YAAY,CAAC;IAC1B,CAAC,mBAAmB,EAAE,WAAW,CAAC;IAClC,CAAC,cAAc,EAAE,WAAW,CAAC;IAC7B,CAAC,cAAc,EAAE,WAAW,CAAC;IAC7B,CAAC,SAAS,EAAE,WAAW,CAAC;IACxB,CAAC,WAAW,EAAE,EAAC,KAAK,EAAE,EAAE,EAAE,GAAG,WAAW,EAAC,CAAC;IAC1C,CAAC,aAAa,EAAE,EAAC,KAAK,EAAE,qBAAqB,EAAE,GAAG,WAAW,EAAC,CAAC;IAC/D,CAAC,WAAW,EAAE,EAAC,KAAK,EAAE,EAAE,EAAE,GAAG,WAAW,EAAC,CAAC;IAC1C,CAAC,OAAO,EAAE,WAAW,CAAC;IACtB,CAAC,MAAM,EAAE,WAAW,CAAC;IACrB,CAAC,SAAS,EAAE,WAAW,CAAC;IACxB,CAAC,UAAU,EAAE,YAAY,CAAC;IAC1B,CAAC,UAAU,EAAE,YAAY,CAAC;IAC1B,CAAC,MAAM,EAAE,EAAC,KAAK,EAAE,IAAI,EAAE,GAAG,YAAY,EAAC,CAAC;IACxC,CAAC,WAAW,EAAE,YAAY,CAAC;AAC3B,IAAA,CAAC,cAAc,EAAE,EAAC,WAAW,EAAE,cAAc,EAAE,KAAK,EAAE,KAAK,EAAE,GAAG,WAAW,EAAC,CAAC;IAC7E,CAAC,UAAU,EAAE,EAAC,KAAK,EAAE,CAAC,EAAE,GAAG,WAAW,EAAC,CAAC;IACxC,CAAC,SAAS,EAAE,YAAY,CAAC;AAC5B,CAAA,CACJ,CAAC;AAEK,MAAMT,eAAa,GAAG,MAAK;AAC9B,IAAA,QAAQ,CACJ,gBAAgB,EAChB,gBAAgB,CACnB,CAAC;IACF,kBAAkB,CACd,cAAc,CAAC,WAAW,EAC1B,IAAI,GAAG,CAAC,gBAAgB,CAAC,CAC5B,CAAC;AACN,CAAC;;;;;;;;ICpCO,EAAyH,CAAA,cAAA,CAAA,CAAA,EAAA,OAAA,EAAA,CAAA,CAAA,CAAA;AAKrH,IAJA,2BAG2E,CACnB,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,CAAA;IAC5D,EAAQ,CAAA,YAAA,EAAA,CAAA;;;;;;AAN4F,IAA9C,2FAA6C,CAAqB,OAAA,EAAA,OAAA,CAAA,KAAA,CAAA,CAAA;IAC7G,EAAkC,CAAA,SAAA,EAAA,CAAA;IAAlC,uDAAkC,CACb,UAAA,EAAA,MAAA,CAAA,QAAA,CAAA,CAAA,UAAA,EAAA,MAAA,CAAA,QAAA,IAAA,MAAA,CAAA,QAAA,CACY,CACf,OAAA,EAAA,OAAA,CAAA,GAAA,CAAA,CAAA,UAAA,EAAA,MAAA,CAAA,QAAA,CAAsB,CAA0B,SAAA,EAAA,OAAA,CAAA,QAAA,CAAA,CAAA;;IACnD,EAA0B,CAAA,SAAA,EAAA,CAAA;IAA1B,EAA0B,CAAA,UAAA,CAAA,aAAA,EAAA,OAAA,CAAA,KAAA,CAAA,CAAA;;;IAGpD,EAAoG,CAAA,cAAA,CAAA,CAAA,EAAA,OAAA,EAAA,EAAA,CAAA,CAAA;AAKhG,IAJA,2BAG2E,CACN,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,CAAA;IACzE,EAAQ,CAAA,YAAA,EAAA,CAAA;;;;;;IAN6C,EAA6C,CAAA,UAAA,CAAA,SAAA,EAAA,EAAA,CAAA,eAAA,CAAA,EAAA,EAAAM,KAAA,EAAA,MAAA,CAAA,QAAA,IAAA,MAAA,CAAA,QAAA,CAAA,CAAA,CAAA;IACvF,EAAkC,CAAA,SAAA,EAAA,CAAA;IAAlC,uDAAkC,CACb,UAAA,EAAA,MAAA,CAAA,QAAA,CAAA,CAAA,UAAA,EAAA,MAAA,CAAA,QAAA,IAAA,MAAA,CAAA,QAAA,CACY,CACf,OAAA,EAAA,OAAA,CAAA,GAAA,CAAA,CAAA,UAAA,EAAA,MAAA,CAAA,QAAA,CAAsB,CAA0B,SAAA,EAAA,OAAA,CAAA,QAAA,CAAA,CAAA;;;;;IAlBjF,EAIyE,CAAA,cAAA,CAAA,CAAA,EAAA,IAAA,EAAA,CAAA,CAAA,CAAA;AAArE,IAAA,EAAA,CAAA,UAAA,CAAA,OAAA,EAAA,SAAA,oEAAA,CAAA,MAAA,EAAA,EAAA,MAAA,OAAA,GAAA,EAAA,CAAA,aAAA,CAAA,GAAA,CAAA,CAAA,SAAA,CAAA,CAAA,MAAA,MAAA,GAAA,EAAA,CAAA,aAAA,CAAA,CAAA,CAAA,CAAA,CAAA,OAAA,EAAA,CAAA,WAAA,CAAS,gDAAsC,CAAC,CAAA,EAAA,CAAA,CAAA;AAUhD,IARA,6FAAyH,CAQrB,CAAA,EAAA,wDAAA,EAAA,CAAA,EAAA,EAAA,EAAA,OAAA,EAAA,CAAA,CAAA,CAAA;IAOxG,EAAK,CAAA,YAAA,EAAA,CAAA;;;;IApBD,EAA8B,CAAA,WAAA,CAAA,QAAA,EAAA,OAAA,CAAA,QAAA,CAAA,CAAA;IAD9B,EAAqE,CAAA,UAAA,CAAA,SAAA,EAAA,EAAA,CAAA,eAAA,CAAA,CAAA,EAAAC,KAAA,EAAA,MAAA,CAAA,SAAA,EAAA,MAAA,CAAA,gBAAA,CAAA,CAAA,CAAA,gBAAA,EAAA,MAAA,CAAA,OAAA,CAG3C,CAA6B,qBAAA,EAAA,OAAA,CAAA,CAAA;IAG/C,EAAc,CAAA,SAAA,EAAA,CAAA;IAAd,EAAc,CAAA,UAAA,CAAA,MAAA,EAAA,CAAA,MAAA,CAAA,OAAA,CAAA,CAAA;IAQd,EAAa,CAAA,SAAA,EAAA,CAAA;IAAb,EAAa,CAAA,UAAA,CAAA,MAAA,EAAA,MAAA,CAAA,OAAA,CAAA,CAAA;;;IAdzB,EAIyE,CAAA,UAAA,CAAA,CAAA,EAAA,gDAAA,EAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,CAAA,CAAA,CAAA;;;IAFpD,EAAiB,CAAA,UAAA,CAAA,SAAA,EAAA,MAAA,CAAA,YAAA,CAAA,CAAA;;;IAsB1C,EAAiE,CAAA,SAAA,CAAA,CAAA,EAAA,KAAA,EAAA,EAAA,CAAA,CAAA;;;IASzC,EAAoI,CAAA,SAAA,CAAA,CAAA,EAAA,GAAA,EAAA,EAAA,CAAA,CAAA;;;IAApE,EAA+D,CAAA,sBAAA,CAAA,OAAA,EAAA,EAAA,EAAA,MAAA,CAAA,SAAA,CAAA,cAAA,EAAA,GAAA,EAAA,MAAA,CAAA,SAAA,CAAA,YAAA,EAAA,EAAA,CAAA,CAAA;;;IAC/H,EAAgG,CAAA,SAAA,CAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,CAAA;;;IAA5C,EAAoC,CAAA,UAAA,CAAA,aAAA,EAAA,WAAA,CAAA,IAAA,CAAA,MAAA,CAAA,CAAA;;;IAUhG,EAAyH,CAAA,cAAA,CAAA,CAAA,EAAA,OAAA,EAAA,CAAA,CAAA,CAAA;AAKrH,IAJA,4BAG2E,CACnB,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,CAAA;IAC5D,EAAQ,CAAA,YAAA,EAAA,CAAA;;;;;;AAN4F,IAA9C,2FAA6C,CAAqB,OAAA,EAAA,OAAA,CAAA,KAAA,CAAA,CAAA;IAC7G,EAAkC,CAAA,SAAA,EAAA,CAAA;IAAlC,uDAAkC,CACb,UAAA,EAAA,MAAA,CAAA,QAAA,CAAA,CAAA,UAAA,EAAA,MAAA,CAAA,QAAA,IAAA,MAAA,CAAA,QAAA,CACY,CACf,OAAA,EAAA,OAAA,CAAA,GAAA,CAAA,CAAA,UAAA,EAAA,MAAA,CAAA,QAAA,CAAsB,CAA0B,SAAA,EAAA,OAAA,CAAA,QAAA,CAAA,CAAA;;IACnD,EAA0B,CAAA,SAAA,EAAA,CAAA;IAA1B,EAA0B,CAAA,UAAA,CAAA,aAAA,EAAA,OAAA,CAAA,KAAA,CAAA,CAAA;;;IAGpD,EAAoG,CAAA,cAAA,CAAA,CAAA,EAAA,OAAA,EAAA,EAAA,CAAA,CAAA;AAKhG,IAJA,4BAG2E,CACrB,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,CAAA;IAC1D,EAAQ,CAAA,YAAA,EAAA,CAAA;;;;;;IAN6C,EAA6C,CAAA,UAAA,CAAA,SAAA,EAAA,EAAA,CAAA,eAAA,CAAA,CAAA,EAAAD,KAAA,EAAA,MAAA,CAAA,QAAA,IAAA,MAAA,CAAA,QAAA,CAAA,CAAA,CAAA;IACvF,EAAkC,CAAA,SAAA,EAAA,CAAA;IAAlC,uDAAkC,CACb,UAAA,EAAA,MAAA,CAAA,QAAA,CAAA,CAAA,UAAA,EAAA,MAAA,CAAA,QAAA,IAAA,MAAA,CAAA,QAAA,CACY,CACf,OAAA,EAAA,OAAA,CAAA,GAAA,CAAA,CAAA,UAAA,EAAA,MAAA,CAAA,QAAA,CAAsB,CAA0B,SAAA,EAAA,OAAA,CAAA,QAAA,CAAA,CAAA;;;;;IAlBjF,EAIiD,CAAA,cAAA,CAAA,CAAA,EAAA,IAAA,EAAA,EAAA,CAAA,CAAA;AAA7C,IAAA,EAAA,CAAA,UAAA,CAAA,OAAA,EAAA,SAAA,yEAAA,CAAA,MAAA,EAAA,EAAA,MAAA,OAAA,GAAA,EAAA,CAAA,aAAA,CAAA,GAAA,CAAA,CAAA,SAAA,CAAA,CAAA,MAAA,MAAA,GAAA,EAAA,CAAA,aAAA,CAAA,CAAA,CAAA,CAAA,CAAA,OAAA,EAAA,CAAA,WAAA,CAAS,4CAAkC,CAAC,CAAA,EAAA,CAAA,CAAA;AAU5C,IARA,kGAAyH,CAQrB,CAAA,EAAA,6DAAA,EAAA,CAAA,EAAA,EAAA,EAAA,OAAA,EAAA,CAAA,CAAA,CAAA;IAOxG,EAAK,CAAA,YAAA,EAAA,CAAA;;;;IAnBD,EAA8B,CAAA,WAAA,CAAA,QAAA,EAAA,OAAA,CAAA,QAAA,CAAA,CAAA;IAD9B,EAAwF,CAAA,UAAA,CAAA,SAAA,EAAA,EAAA,CAAA,eAAA,CAAA,CAAA,EAAAJ,KAAA,EAAA,MAAA,CAAA,SAAA,EAAA,MAAA,CAAA,gBAAA,CAAA,CAAA,CAAA,gBAAA,EAAA,MAAA,CAAA,OAAA,CAE9D,CAA6B,qBAAA,EAAA,OAAA,CAAA,CAAA;IAG/C,EAAc,CAAA,SAAA,EAAA,CAAA;IAAd,EAAc,CAAA,UAAA,CAAA,MAAA,EAAA,CAAA,MAAA,CAAA,OAAA,CAAA,CAAA;IAQd,EAAa,CAAA,SAAA,EAAA,CAAA;IAAb,EAAa,CAAA,UAAA,CAAA,MAAA,EAAA,MAAA,CAAA,OAAA,CAAA,CAAA;;;;IAxBjC,EAAyF,CAAA,cAAA,CAAA,CAAA,EAAA,IAAA,EAAA,EAAA,CAAA,CAAA,CAAA,EAAA,IAAA,EAAA,EAAA,CAC9D,CACuH,CAAA,EAAA,IAAA,EAAA,EAAA,CAAA,CAAA;AAA5G,IAAA,EAAA,CAAA,UAAA,CAAA,OAAA,EAAA,SAAA,oEAAA,CAAA,MAAA,EAAA,EAAA,EAAA,CAAA,aAAA,CAAA,GAAA,CAAA,CAAA,CAAA,MAAA,MAAA,GAAA,EAAA,CAAA,aAAA,CAAA,CAAA,CAAA,CAAA,CAAA,OAAA,EAAA,CAAA,WAAA,CAAS,gCAAyB,CAAC,CAAA,EAAA,CAAA,CAAA;IAC7D,EAAwB,CAAA,cAAA,CAAA,CAAA,EAAA,IAAA,EAAA,EAAA,CAAA,CAAA;IAAA,EACpB,CAAA,MAAA,CAAA,CAAA,CAAA,CAAA;IAAA,EAA2B,CAAA,cAAA,CAAA,CAAA,EAAA,KAAA,EAAA,EAAA,CAAA,CAAA;AAEvB,IADA,qFAAgI,CACvC,CAAA,EAAA,uDAAA,EAAA,CAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,CAAA;IAC7F,EAAM,CAAA,YAAA,EAAA,EACL,EACJ,CAAA;IACL,EAIiD,CAAA,UAAA,CAAA,CAAA,EAAA,qDAAA,EAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,EAAA,CAAA,CAAA;AAmBzD,IADI,iBAAK,EACJ,CAAA;;;;IA/BqE,EAAsB,CAAA,SAAA,CAAA,CAAA,CAAA,CAAA;AAAC,IAAvB,uCAAsB,CAAiD,SAAA,EAAA,EAAA,CAAA,eAAA,CAAA,CAAA,EAAAD,KAAA,EAAA,MAAA,CAAA,WAAA,CAAA,CAAA,CAAA;IAC7G,EACpB,CAAA,SAAA,CAAA,CAAA,CAAA,CAAA;IADoB,EACpB,CAAA,kBAAA,CAAA,EAAA,EAAA,WAAA,CAAA,GAAA,EAAA,GAAA,CAAA,CAAA;IACiD,EAAiB,CAAA,SAAA,CAAA,CAAA,CAAA,CAAA;IAAjB,EAAiB,CAAA,UAAA,CAAA,MAAA,EAAA,MAAA,CAAA,WAAA,CAAA,CAAA;IACvD,EAAe,CAAA,SAAA,EAAA,CAAA;IAAf,EAAe,CAAA,UAAA,CAAA,MAAA,EAAA,MAAA,CAAA,SAAA,CAAA,CAAA;IAIb,EAAkB,CAAA,SAAA,EAAA,CAAA;IAAlB,EAAkB,CAAA,UAAA,CAAA,SAAA,EAAA,WAAA,CAAA,IAAA,CAAA,CAAA;;;IAV/C,EAAyF,CAAA,UAAA,CAAA,CAAA,EAAA,gDAAA,EAAA,CAAA,EAAA,CAAA,EAAA,IAAA,EAAA,EAAA,CAAA,CAAA;;;IAAhE,EAAc,CAAA,UAAA,CAAA,SAAA,EAAA,MAAA,CAAA,WAAA,CAAA,CAAA;;ACjB3C,MAAME,aAAW,GAAG,mCAAmC,CAAC;AACxD,MAAMC,eAAa,GAAkB,EAAC,UAAU,EAAE,gBAAgB,EAAE,SAAS,EAAED,aAAW,EAAC,CAAC;AAatF,MAAO,oBAAqB,SAAQ,yBAAyB,CAAA;AACxD,IAAA,SAAA,IAAA,CAAA,eAAe,GAAGH,eAAa,EAAhB,CAAmB,EAAA;IAYzC,WAAY,CAAA,GAAa,EAA0C,eAAoB,EAAA;AACnF,QAAA,KAAK,CAAC,GAAG,EAAEI,eAAa,EAAE,eAAe,CAAC,CAAC;QAXxC,IAAM,CAAA,MAAA,GAAG,EAAE,CAAC;AAYf,QAAA,MAAM,CAAC,IAAI,CAAC,aAAa,EAAE,IAAI,CAAC,CAAC;AACjC,QAAA,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC;KACxB;IAED,qBAAqB,CAAC,IAAI,EAAE,MAAM,EAAA;AAC9B,QAAA,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC;QAEvB,IAAI,CAAC,eAAe,EAAE,CAAC;;AAEvB,QAAA,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,SAAS,EAAE,MAAM,IAAI,EAAE,EAAE,IAAI,CAAC,CAAC;KAC3D;IAED,oBAAoB,CAAC,MAAM,EAAE,GAAG,EAAA;AAC5B,QAAA,IAAI,CAAC,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,OAAO,CAAC,EAAE;YAC/B,OAAO;SACV;;QAGD,MAAM,aAAa,GAAG,IAAI,CAAC,aAAa,CAAC,gBAAgB,CAAC,eAAe,CAAC,CAAC;QAC3E,MAAM,IAAI,GAAG,EAAE,CAAC;AAChB,QAAA,OAAO,CAAC,aAAa,EAAE,CAAC,GAAG,KAAI;;AAE3B,YAAA,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;AACzB,SAAC,CAAC,CAAC;AAEH,QAAA,IAAI,CAAC,qBAAqB,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC;KAC5C;;AAGS,IAAA,WAAW,CAAC,IAAiB,EAAE,SAAiB,EAAE,QAAkB,EAAE,MAAW,EAAA;AACvF,QAAA,IAAI,SAAS,KAAK,OAAO,EAAE;YACvB,IAAI,CAAC,YAAY,CAAC,gBAAgB,CAC9B,IAAI,EACJ,SAAS,EACT,CAAC,IAAG;AACA,gBAAA,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,OAAO,CAAC,EAAE;oBAC1B,OAAO;iBACV;AACD,gBAAA,MAAM,CAAC,MAAM,GAAG,CAAC,CAAC;gBAClB,OAAO,QAAQ,EAAE,CAAC;AACtB,aAAC,CACJ,CAAC;SACL;aAAM,IAAI,CAAC,QAAQ,CAAC,CAAC,QAAQ,CAAC,EAAE,SAAS,CAAC,EAAE;YACzC,KAAK,CAAC,WAAW,CAAC,IAAI,EAAE,SAAS,EAAE,QAAQ,EAAE,MAAM,CAAC,CAAC;SACxD;KACJ;AAGD,IAAA,SAAS,CAAC,MAAM,EAAA;QACZ,MAAM,CAAC,cAAc,EAAE,CAAC;AACxB,QAAA,MAAM,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC;KACzB;AAED,IAAA,gBAAgB,CAAC,GAAG,EAAE,EAAE,EAAE,EAAG,EAAA;AAEzB,QAAA,IAAI,GAAG,KAAK,UAAU,EAAE;YACpB,OAAO;SACV;AACD,QAAA,IAAI,GAAG,KAAK,UAAU,EAAE;AACpB,YAAA,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;YAC/B,OAAO;SACV;AACD,QAAA,IAAI,GAAG,KAAK,aAAa,EAAE;YACvB,YAAY,CAAC,IAAI,CAAC,CAAC;SACtB;aAAM;YACH,KAAK,CAAC,gBAAgB,CAAC,GAAG,EAAE,EAAE,EAAE,EAAE,CAAC,CAAC;SACvC;KACJ;AAlFQ,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,SAAA,4BAAA,CAAA,CAAA,EAAA,EAAA,OAAA,KAAA,CAAA,IAAA,oBAAoB,0DAaM,kBAAkB,EAAA,CAAA,CAAA,CAAA,CAAA,EAAA,CAAA,EAAA;oEAb5C,oBAAoB,EAAA,SAAA,EAAA,CAAA,CAAA,EAAA,EAAA,eAAA,EAAA,EAAA,CAAA,CAAA,EAAA,YAAA,EAAA,SAAA,iCAAA,CAAA,EAAA,EAAA,GAAA,EAAA,EAAA,IAAA,EAAA,GAAA,CAAA,EAAA;YAApB,EAAA,CAAA,UAAA,CAAA,eAAA,EAAA,SAAA,qDAAA,CAAA,MAAA,EAAA,EAAA,OAAA,GAAA,CAAA,SAAA,CAAA,MAAA,EAAiB,OAAO,CAAC,CAAL,EAAA,CAAA,CAAA;AAPlB,SAAA,EAAA,EAAA,QAAA,EAAA,CAAA,eAAA,CAAA,EAAA,QAAA,EAAA,CAAA,EAAA,CAAA,kBAAA,CAAA;AACP,gBAAA,SAAS,CAAC,oBAAoB,EAAE,iBAAiB,EAAE,IAAI,CAAC;AACxD,gBAAA,SAAS,CAAC,oBAAoB,EAAE,aAAa,EAAE,IAAI,CAAC;gBACpD,kBAAkB,CAAC,oBAAoB,CAAC;AAC3C,aAAA,CAAA,EAAA,EAAA,CAAA,0BAAA,CAAA,EAAA,KAAA,EAAAC,KAAA,EAAA,KAAA,EAAA,CAAA,EAAA,IAAA,EAAA,CAAA,EAAA,MAAA,EAAA,CAAA,CAAA,qBAAA,EAAA,EAAA,CAAA,EAAA,CAAA,CAAA,EAAA,MAAA,EAAA,UAAA,CAAA,EAAA,CAAA,QAAA,EAAA,EAAA,EAAA,CAAA,EAAA,cAAA,EAAA,CAAA,EAAA,UAAA,CAAA,EAAA,CAAA,OAAA,EAAA,kBAAA,EAAA,CAAA,EAAA,MAAA,CAAA,EAAA,CAAA,kBAAA,EAAA,EAAA,EAAA,MAAA,EAAA,cAAA,EAAA,CAAA,EAAA,SAAA,EAAA,QAAA,EAAA,gBAAA,EAAA,qBAAA,EAAA,OAAA,EAAA,CAAA,EAAA,OAAA,EAAA,SAAA,CAAA,EAAA,CAAA,kBAAA,EAAA,EAAA,EAAA,MAAA,EAAA,cAAA,EAAA,CAAA,EAAA,OAAA,EAAA,SAAA,EAAA,gBAAA,EAAA,qBAAA,CAAA,EAAA,CAAA,OAAA,EAAA,uBAAA,EAAA,CAAA,EAAA,SAAA,EAAA,OAAA,EAAA,CAAA,EAAA,MAAA,CAAA,EAAA,CAAA,OAAA,EAAA,uBAAA,EAAA,CAAA,EAAA,SAAA,EAAA,CAAA,EAAA,MAAA,CAAA,EAAA,CAAA,CAAA,EAAA,uBAAA,EAAA,CAAA,EAAA,SAAA,EAAA,OAAA,CAAA,EAAA,CAAA,MAAA,EAAA,UAAA,EAAA,CAAA,EAAA,MAAA,EAAA,UAAA,EAAA,UAAA,EAAA,OAAA,EAAA,SAAA,CAAA,EAAA,CAAA,CAAA,EAAA,SAAA,EAAA,CAAA,EAAA,aAAA,CAAA,EAAA,CAAA,CAAA,EAAA,uBAAA,EAAA,CAAA,EAAA,SAAA,CAAA,EAAA,CAAA,0BAAA,EAAA,EAAA,EAAA,CAAA,EAAA,SAAA,EAAA,gBAAA,CAAA,EAAA,CAAA,CAAA,EAAA,kBAAA,CAAA,EAAA,CAAA,OAAA,EAAA,qBAAA,EAAA,MAAA,EAAA,cAAA,EAAA,CAAA,EAAA,OAAA,EAAA,SAAA,CAAA,EAAA,CAAA,MAAA,EAAA,cAAA,EAAA,CAAA,EAAA,qBAAA,CAAA,EAAA,CAAA,CAAA,EAAA,YAAA,CAAA,EAAA,CAAA,CAAA,EAAA,mBAAA,EAAA,CAAA,EAAA,OAAA,EAAA,OAAA,EAAA,SAAA,CAAA,EAAA,CAAA,CAAA,EAAA,aAAA,CAAA,EAAA,CAAA,CAAA,EAAA,eAAA,CAAA,EAAA,CAAA,OAAA,EAAA,kCAAA,EAAA,CAAA,EAAA,OAAA,EAAA,CAAA,EAAA,MAAA,CAAA,EAAA,CAAA,OAAA,EAAA,qBAAA,EAAA,CAAA,EAAA,aAAA,EAAA,CAAA,EAAA,MAAA,CAAA,EAAA,CAAA,kBAAA,EAAA,EAAA,EAAA,CAAA,EAAA,SAAA,EAAA,QAAA,EAAA,gBAAA,EAAA,qBAAA,EAAA,OAAA,EAAA,CAAA,EAAA,OAAA,EAAA,SAAA,CAAA,EAAA,CAAA,CAAA,EAAA,UAAA,EAAA,IAAA,EAAA,QAAA,EAAA,eAAA,EAAA,CAAA,EAAA,OAAA,CAAA,EAAA,CAAA,CAAA,EAAA,OAAA,EAAA,eAAA,EAAA,CAAA,EAAA,aAAA,CAAA,EAAA,CAAA,kBAAA,EAAA,EAAA,EAAA,CAAA,EAAA,OAAA,EAAA,SAAA,EAAA,gBAAA,EAAA,qBAAA,CAAA,EAAA,CAAA,MAAA,EAAA,UAAA,EAAA,YAAA,EAAA,gBAAA,EAAA,CAAA,EAAA,MAAA,EAAA,UAAA,EAAA,UAAA,EAAA,OAAA,EAAA,SAAA,CAAA,EAAA,CAAA,0BAAA,EAAA,EAAA,EAAA,CAAA,EAAA,SAAA,CAAA,CAAA,EAAA,QAAA,EAAA,SAAA,6BAAA,CAAA,EAAA,EAAA,GAAA,EAAA,EAAA,IAAA,EAAA,GAAA,CAAA,EAAA;YDvBL,EAAgE,CAAA,UAAA,CAAA,CAAA,EAAA,2CAAA,EAAA,CAAA,EAAA,CAAA,EAAA,aAAA,EAAA,CAAA,CAAA,CAAA;YAwBhE,EAAqE,CAAA,SAAA,CAAA,CAAA,EAAA,OAAA,EAAA,CAAA,CAAA,CAAA;AAIrE,YAHA,qEAA2D,CAGzB,CAAA,EAAA,2CAAA,EAAA,CAAA,EAAA,CAAA,EAAA,aAAA,EAAA,IAAA,EAAA,CAAA,EAAA,EAAA,CAAA,sBAAA,CAAA,CAAA;;;AA5BH,YAAlB,mCAAiB,CAAiC,UAAA,EAAA,uBAAA,CAAA,CAAA;YAwBxD,EAAiC,CAAA,SAAA,EAAA,CAAA;YAAjC,EAAiC,CAAA,UAAA,CAAA,UAAA,EAAA,GAAA,CAAA,QAAA,IAAA,GAAA,CAAA,QAAA,CAAA,CAAA;YAClC,EAA0B,CAAA,SAAA,EAAA,CAAA;YAA1B,EAA0B,CAAA,UAAA,CAAA,MAAA,EAAA,GAAA,CAAA,QAAA,IAAA,GAAA,CAAA,QAAA,CAAA,CAAA;;;iFCCnB,oBAAoB,EAAA,CAAA;cAXhC,SAAS;2BACI,iBAAiB,EAAA,QAAA,EACjB,eAAe,EAEd,SAAA,EAAA;AACP,oBAAA,SAAS,CAAuB,oBAAA,EAAA,iBAAiB,EAAE,IAAI,CAAC;AACxD,oBAAA,SAAS,CAAuB,oBAAA,EAAA,aAAa,EAAE,IAAI,CAAC;AACpD,oBAAA,kBAAkB,CAAsB,oBAAA,CAAA;AAC3C,iBAAA,EAAA,QAAA,EAAA,44IAAA,EAAA,CAAA;;sBAgB2B,MAAM;uBAAC,kBAAkB,CAAA;;sBAAG,QAAQ;qBAkDhE,SAAS,EAAA,CAAA;kBADR,YAAY;AAAC,YAAA,IAAA,EAAA,CAAA,eAAe,EAAE,CAAC,QAAQ,EAAE,SAAS,CAAC,CAAA;;kFA9D3C,oBAAoB,EAAA,EAAA,SAAA,EAAA,sBAAA,EAAA,QAAA,EAAA,sCAAA,EAAA,UAAA,EAAA,EAAA,EAAA,CAAA,CAAA,EAAA,GAAA;;ACxB1B,MAAML,eAAa,GAAG,MAAK;AAC9B,IAAA,QAAQ,CACJ,eAAe,EACf,IAAI,GAAG,CACH;QACI,CAAC,iBAAiB,EAAE,WAAW,CAAC;QAChC,CAAC,MAAM,EAAE,WAAW,CAAC;QACrB,CAAC,UAAU,EAAE,YAAY,CAAC;QAC1B,CAAC,MAAM,EAAE,EAAC,KAAK,EAAE,IAAI,EAAE,GAAG,YAAY,EAAC,CAAC;AAC3C,KAAA,CACJ,CACJ,CAAC;AACN,CAAC;;ACJD,MAAMG,aAAW,GAAG,0CAA0C,CAAC;AAC/D,MAAMC,eAAa,GAAkB;AACjC,IAAA,UAAU,EAAE,eAAe;AAC3B,IAAA,SAAS,EAAED,aAAW;CACzB,CAAC;AAEF,MAAM,gBAAgB,GAAG;AACrB,IAAA,IAAI,EAAE,cAAc;AACpB,IAAA,KAAK,EAAE,eAAe;AACtB,IAAA,GAAG,EAAE,aAAa;AAClB,IAAA,QAAQ,EAAE,kBAAkB;CAC/B,CAAC;AAQI,MAAO,kBAAmB,SAAQ,iBAAiB,CAAA;AAC9C,IAAA,SAAA,IAAA,CAAA,eAAe,GAAGH,eAAa,EAAhB,CAAmB,EAAA;IAOzC,WAAY,CAAA,GAAa,EAA0C,eAAoB,EAAA;AACnF,QAAA,KAAK,CAAC,GAAG,EAAEI,eAAa,EAAE,eAAe,CAAC,CAAC;QAC3C,MAAM,CAAC,IAAI,CAAC,aAAa,EAAE,IAAI,EAAE,iBAAiB,CAAC,SAAS,CAAC,CAAC;KACjE;AAED;;;;;AAKG;AACH,IAAA,gBAAgB,CAAC,GAAG,EAAE,EAAE,EAAE,EAAE,EAAA;AACxB,QAAA,IAAI,GAAG,KAAK,iBAAiB,EAAE;AAC3B,YAAA,WAAW,CAAC,IAAI,CAAC,aAAa,EAAE,gBAAgB,CAAC,EAAE,CAAC,EAAE,gBAAgB,CAAC,EAAE,CAAC,CAAC,CAAC;SAC/E;AAAM,aAAA,IAAI,GAAG,KAAK,UAAU,EAAE;AAC3B,YAAA,IAAI,CAAC,QAAQ,GAAG,EAAE,CAAC;YACnB,IAAI,CAAC,6BAA6B,EAAE,CAAC;SACxC;aAAM;YACH,KAAK,CAAC,gBAAgB,CAAC,GAAG,EAAE,EAAE,EAAE,EAAE,CAAC,CAAC;SACvC;KACJ;AAED;;AAEG;IACO,6BAA6B,GAAA;QACnC,IAAI,IAAI,CAAC,QAAQ,IAAI,IAAI,CAAC,aAAa,EAAE;YACrC,UAAU,CAAC,MAAK;AACZ,gBAAA,IAAI,CAAC,aAAa,CAAC,OAAO,CAAC,YAAY,IAAI,YAAY,CAAC,MAAM,CAAC,QAAQ,GAAG,IAAI,CAAC,CAAC;aACnF,EAAE,EAAE,CAAC,CAAC;SACV;KACJ;IAED,eAAe,GAAA;QACX,KAAK,CAAC,eAAe,EAAE,CAAC;AACxB,QAAA,kBAAkB,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;QAEvC,IAAI,CAAC,6BAA6B,EAAE,CAAC;KACxC;AA9CQ,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,SAAA,0BAAA,CAAA,CAAA,EAAA,EAAA,OAAA,KAAA,CAAA,IAAA,kBAAkB,0DAQQ,kBAAkB,EAAA,CAAA,CAAA,CAAA,CAAA,EAAA,CAAA,EAAA;oEAR5C,kBAAkB,EAAA,SAAA,EAAA,CAAA,CAAA,KAAA,EAAA,aAAA,EAAA,EAAA,CAAA,CAAA,EAAA,cAAA,EAAA,SAAA,iCAAA,CAAA,EAAA,EAAA,GAAA,EAAA,QAAA,EAAA,EAAA,IAAA,EAAA,GAAA,CAAA,EAAA;wCAIV,SAAS,EAAA,CAAA,CAAA,CAAA;;;;AARf,SAAA,EAAA,EAAA,QAAA,EAAA,CAAA,EAAA,CAAA,kBAAA,CAAA;gBACP,kBAAkB,CAAC,kBAAkB,CAAC;AACzC,aAAA,CAAA,EAAA,EAAA,CAAA,0BAAA,CAAA,EAAA,CAAA,CAAA,EAAA;;iFAEQ,kBAAkB,EAAA,CAAA;cAN9B,SAAS;AAAC,QAAA,IAAA,EAAA,CAAA;AACP,gBAAA,QAAQ,EAAE,kBAAkB;AAC5B,gBAAA,SAAS,EAAE;AACP,oBAAA,kBAAkB,CAAoB,kBAAA,CAAA;AACzC,iBAAA;AACJ,aAAA,CAAA;;sBAS+B,MAAM;uBAAC,kBAAkB,CAAA;;sBAAG,QAAQ;qBAJf,aAAa,EAAA,CAAA;kBAA7D,eAAe;AAAC,YAAA,IAAA,EAAA,CAAA,SAAS,EAAE,EAAC,WAAW,EAAE,IAAI,EAAC,CAAA;;;AC9B5C,MAAM,WAAW,GAAG,IAAI,GAAG,CAC9B;IACI,CAAC,WAAW,EAAE,YAAY,CAAC;IAC3B,CAAC,OAAO,EAAE,WAAW,CAAC;IACtB,CAAC,iBAAiB,EAAE,QAAQ,CAAC;IAC7B,CAAC,WAAW,EAAE,WAAW,CAAC;IAC1B,CAAC,UAAU,EAAE,YAAY,CAAC;IAC1B,CAAC,MAAM,EAAE,WAAW,CAAC;IACrB,CAAC,cAAc,EAAE,WAAW,CAAC;IAC7B,CAAC,UAAU,EAAE,WAAW,CAAC;IACzB,CAAC,UAAU,EAAE,WAAW,CAAC;IACzB,CAAC,MAAM,EAAE,WAAW,CAAC;IACrB,CAAC,cAAc,EAAE,WAAW,CAAC;IAC7B,CAAC,aAAa,EAAE,EAAC,KAAK,EAAE,cAAc,EAAE,GAAG,WAAW,EAAC,CAAC;IACxD,CAAC,UAAU,EAAE,YAAY,CAAC;IAC1B,CAAC,QAAQ,EAAE,WAAW,CAAC;IACvB,CAAC,UAAU,EAAE,YAAY,CAAC;IAC1B,CAAC,aAAa,EAAE,WAAW,CAAC;IAC5B,CAAC,MAAM,EAAE,EAAC,KAAK,EAAE,IAAI,EAAE,GAAG,YAAY,EAAC,CAAC;IACxC,CAAC,MAAM,EAAE,EAAC,KAAK,EAAE,CAAC,EAAE,GAAG,WAAW,EAAC,CAAC;IACpC,CAAC,UAAU,EAAE,EAAC,KAAK,EAAE,CAAC,EAAE,GAAG,WAAW,EAAC,CAAC;IACxC,CAAC,cAAc,EAAE,EAAC,KAAK,EAAE,KAAK,EAAE,GAAG,YAAY,EAAC,CAAC;IACjD,CAAC,UAAU,EAAE,WAAW,CAAC;IACzB,CAAC,WAAW,EAAE,EAAC,KAAK,EAAE,SAAS,EAAE,GAAG,WAAW,EAAC,CAAC;IACjD,CAAC,kBAAkB,EAAE,QAAQ,CAAC;IAC9B,CAAC,kBAAkB,EAAE,QAAQ,CAAC;AACjC,CAAA,CACJ,CAAC;AAEK,MAAMJ,eAAa,GAAG,MAAK;AAC9B,IAAA,QAAQ,CACJ,WAAW,EACX,WAAW,CACd,CAAC;IACF,kBAAkB,CACd,cAAc,CAAC,MAAM,EACrB,IAAI,GAAG,CAAC,WAAW,CAAC,CACvB,CAAC;AACN,CAAC;;AChCK,MAAgB,SAAU,SAAQ,uBAAuB,CAAA;AAwBjD,IAAA,gBAAgB,CAAC,GAAW,EAAE,EAAO,EAAE,EAAO,EAAA;;AAEpD,QAAA,IAAI,GAAG,KAAK,UAAU,EAAE;YACpB,OAAO;SACV;AACD,QAAA,IAAI,GAAG,KAAK,UAAU,EAAE;;AAEpB,YAAA,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;SAClC;AACD,QAAA,IAAI,GAAG,KAAK,UAAU,EAAE;AACpB,YAAA,IAAI,CAAC,cAAc,CAAC,QAAQ,GAAG,EAAE,KAAK,SAAS,GAAG,QAAQ,GAAG,EAAE,CAAC;SACnE;AACD,QAAA,IAAI,GAAG,KAAK,OAAO,EAAE;AACjB,YAAA,IAAI,IAAI,CAAC,OAAO,CAAC,aAAa,EAAE;gBAC5B,WAAW,CAAC,IAAI,CAAC,OAAO,CAAC,aAAa,EAAE,EAAE,EAAE,EAAE,CAAC,CAAC;aACnD;SACJ;AAAM,aAAA,IAAI,GAAG,KAAK,WAAW,EAAE;;AAE5B,YAAA,IAAI,CAAC,mBAAmB,CAAC,EAAE,CAAC,CAAC;AAC7B,YAAA,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;SAClC;aAAM;YACH,KAAK,CAAC,gBAAgB,CAAC,GAAG,EAAE,EAAE,EAAE,EAAE,CAAC,CAAC;SACvC;KACJ;;AAGD,IAAA,YAAY,CAAC,QAAa,EAAA;AACtB,QAAA,IAAI,IAAI,CAAC,QAAQ,IAAI,IAAI,CAAC,SAAS,IAAI,QAAQ,CAAC,IAAI,CAAC,SAAS,CAAC,EAAE;YAC7D,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,SAAS,CAAC,IAAI,EAAE,CAAC;SAC1C;AAED,QAAA,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,SAAS,EAAE,EAAC,IAAI,EAAE,QAAQ,EAAC,EAAE,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;KAC7E;;AAGS,IAAA,WAAW,CAAC,IAAiB,EAAE,SAAiB,EAAE,aAAuB,EAAE,MAAW,EAAA;QAC5F,IAAI,SAAS,KAAK,QAAQ,IAAI,SAAS,KAAK,MAAM,EAAE;AAChD,YAAA,KAAK,CAAC,WAAW,CAAC,IAAI,CAAC,OAAO,CAAC,aAAa,EAAE,SAAS,EAAE,aAAa,EAAE,MAAM,CAAC,CAAC;SACnF;KACJ;;AAGD,IAAA,UAAU,CAAC,MAAM,EAAA;AACb,QAAA,IAAI,CAAC,eAAe,CAAC,MAAM,CAAC,CAAC;KAChC;;AAGD,IAAA,gBAAgB,CAAC,GAAG,EAAA;;QAEhB,MAAM,WAAW,GAAG,GAAG,CAAC,IAAI,CAAC,KAAK,EAAE,uBAAuB,CAAC,CAAC;QAC7D,GAAG,GAAG,WAAW,GAAG,WAAW,GAAG,GAAG,CAAC;QACtC,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;AAC9B,QAAA,UAAU,EAAE,CAAC;KAChB;IAED,eAAe,GAAA;QACX,KAAK,CAAC,eAAe,EAAE,CAAC;;AAGxB,QAAA,IAAI,IAAI,CAAC,KAAK,EAAE;YACZ,QAAQ,CAAC,IAAI,CAAC,OAAO,CAAC,aAAa,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC;SACpD;QACD,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,aAAa,EAAE,IAAI,CAAC,CAAC;KAC5C;AAED,IAAA,WAAA,CACI,GAAa,EACS,MAAqB,EACH,eAAoB,EAAA;AAE5D,QAAA,KAAK,CAAC,GAAG,EAAE,MAAM,EAAE,eAAe,CAAC,CAAC;;;AAvFjC,QAAA,IAAA,CAAA,cAAc,GAAG;AACpB,YAAA,QAAQ,EAAE,EAAE;AACZ,YAAA,UAAU,EAAE,IAAI;SACnB,CAAC;AAqFE,QAAA,IAAI,QAAQ,GAAG,IAAI,CAAC,aAAa,CAAC,YAAY,CAAC,UAAU,CAAC,IAAI,MAAM,CAAC;AACrE,QAAA,QAAQ,GAAG,QAAQ,KAAK,SAAS,GAAG,QAAQ,GAAG,QAAQ,CAAC;AACxD,QAAA,IAAI,CAAC,cAAc,CAAC,QAAQ,GAAG,QAAQ,CAAC;KAC3C;0EAlGiB,SAAS,EAAA,EAAA,CAAA,QAAA,CAAA,EAAA,CAAA,QAAA,CAAA,EAAA,EAAA,CAAA,QAAA,CA2Ff,YAAY,CAAA,EAAA,EAAA,CAAA,QAAA,CACZ,kBAAkB,EAAA,CAAA,CAAA,CAAA,CAAA,EAAA,CAAA,EAAA;AA5FZ,IAAA,SAAA,IAAA,CAAA,KAAA,iBAAA,EAAA,CAAA,kBAAA,CAAA,EAAA,KAAA,EAAA,SAAS,WAAT,SAAS,CAAA,IAAA,EAAA,CAAA,CAAA,EAAA;;iFAAT,SAAS,EAAA,CAAA;cAD9B,UAAU;;sBA4FF,MAAM;uBAAC,YAAY,CAAA;;sBACnB,MAAM;uBAAC,kBAAkB,CAAA;;sBAAG,QAAQ;;;AC3F7C,IAAsB,YAAY,GAAlC,MAAsB,YAAa,SAAQ,SAAS,CAAA;IAwBhD,WACI,CAAA,GAAa,EACb,MAAqB,EACb,WAAgC,EAChC,uBAAgD,EAChB,eAAoB,EAAA;AAE5D,QAAA,KAAK,CAAC,GAAG,EAAE,MAAM,EAAE,eAAe,CAAC,CAAC;QAJ5B,IAAW,CAAA,WAAA,GAAX,WAAW,CAAqB;QAChC,IAAuB,CAAA,uBAAA,GAAvB,uBAAuB,CAAyB;QArBpD,IAAc,CAAA,cAAA,GAAY,IAAI,CAAC;QAC/B,IAAY,CAAA,YAAA,GAAW,EAAE,CAAC;AAwB9B,QAAA,IAAI,CAAC,cAAc,GAAG,WAAW,CAAC,iBAAiB,EAAE,CAAC;AACtD,QAAA,IAAI,CAAC,OAAO,GAAG,qBAAqB,CAAC,IAAI,CAAC,YAAY,IAAI,IAAI,CAAC,cAAc,EAAE,YAAY,CAAC,OAAO,CAAC,CAAC;AACrG,QAAA,IAAI,CAAC,KAAK,GAAG,qBAAqB,CAAC,IAAI,CAAC,YAAY,IAAI,IAAI,CAAC,cAAc,EAAE,YAAY,CAAC,KAAK,CAAC,CAAC;AACjG,QAAA,IAAI,CAAC,YAAY,GAAG,QAAQ,CAAC;QAC7B,IAAI,CAAC,gBAAgB,EAAE,CAAC;KAC3B;;;IAID,IAAI,SAAS,CAAC,KAAa,EAAA;AACvB,QAAA,IAAI,CAAC,gBAAgB,GAAG,KAAK,CAAC;;;AAI9B,QAAA,IAAI,QAAQ,CAAC,CAAC,IAAI,EAAE,SAAS,EAAE,EAAE,CAAC,EAAE,KAAK,CAAC,EAAE;AACxC,YAAA,MAAM,KAAK,GAAG,IAAI,CAAC,OAAO,CAAC,aAAa,CAAC;AACzC,YAAA,MAAM,aAAa,GAAK,IAAY,CAAC,aAAa,CAAC;AACnD,YAAA,IAAI,CAAC,YAAY,GAAG,KAAK,CAAC,KAAK,GAAG,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC;YACzD,IAAI,CAAC,gBAAgB,EAAE,CAAC;AACxB,YAAA,IAAI,aAAa,IAAI,CAAC,IAAI,CAAC,cAAc,EAAE;AACvC,gBAAA,IAAI,CAAC,YAAY,CAAC,KAAK,CAAC,CAAC;gBACzB,IAAI,CAAC,SAAS,EAAE,CAAC;aACpB;YACD,OAAO;SACV;;AAED,QAAA,IAAI,IAAI,CAAC,cAAc,EAAE;AACrB,YAAA,MAAM,iBAAiB,GAAG,QAAQ,CAAC,KAAK,CAAC,IAAI,QAAQ,CAAC,KAAK,EAAE,IAAI,CAAC,OAAO,CAAC,CAAC;AAC3E,YAAA,MAAM,KAAK,GAAG,iBAAiB,GAAI,KAAa,CAAC,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,QAAQ,CAAC,KAAK,CAAC,IAAK,KAAa,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;YACpH,IAAI,CAAC,YAAY,GAAG,KAAK,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC;AAClC,YAAA,KAAa,GAAG,iBAAiB,GAAG,KAAK,GAAG,IAAI,CAAC,eAAe,CAAC,KAAK,CAAC,CAAC;SAC5E;QAED,MAAM,SAAS,GAAG,IAAI,CAAC;AACvB,QAAA,MAAM,MAAM,GAAG,KAAK,CAAC,QAAQ,EAAE,CAAC;AAChC,QAAA,IAAI,KAAK,CAAC;;AAEV,QAAA,IAAI,SAAS,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE;AACxB,YAAA,KAAK,GAAG,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC;SACpC;aAAM;YACH,KAAK,GAAG,GAAG,CAAC;SACf;;AAGD,QAAA,IAAI,KAAK,CAAC,KAAK,CAAC,IAAI,MAAM,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC,CAAC,KAAK,IAAI,CAAC,OAAO,IAAI,IAAI,CAAC,cAAc,CAAC,QAAQ,KAAK,QAAQ,IAAI,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC,MAAM,EAAE;AACrJ,YAAA,IAAI,CAAC,gBAAgB,GAAG,IAAI,CAAC;SAChC;;;AAGD,QAAA,IAAI,CAAC,IAAI,CAAC,gBAAgB,IAAI,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE;AAC/C,YAAA,IAAI,CAAC,UAAU,GAAG,KAAK,CAAC;;YAExB,IAAI,CAAC,iBAAiB,EAAE,CAAC;;AAEzB,YAAA,IAAI,CAAC,IAAI,CAAC,cAAc,EAAE;AACtB,gBAAA,IAAI,CAAC,YAAY,CAAC,KAAK,CAAC,CAAC;aAC5B;SACJ;aAAM;AACH,YAAA,IAAI,CAAC,YAAY,GAAG,KAAK,CAAC,QAAQ,EAAE,CAAC;AACrC,YAAA,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC;AACvB,YAAA,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,CAAC;SAC3B;KACJ;;AAGD,IAAA,IAAI,SAAS,GAAA;QACT,OAAO,IAAI,CAAC,UAAU,CAAC;KAC1B;;IAGS,gBAAgB,GAAA;AACtB,QAAA,IAAI,CAAC,eAAe,GAAG,KAAK,CAAC;AAC7B,QAAA,IAAI,CAAC,gBAAgB,GAAG,KAAK,CAAC;KACjC;AAED;;;;AAIG;AACK,IAAA,OAAO,CAAC,GAAW,EAAA;;QAEvB,IAAI,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,KAAK,CAAC,MAAM,CAAC,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC;AAC7D,YAAA,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,EAAE;AAC1D,YAAA,IAAI,CAAC,eAAe,GAAG,IAAI,CAAC;AAC5B,YAAA,OAAO,KAAK,CAAC;SAChB;QACD,IAAI,GAAG,KAAK,IAAI,CAAC,eAAe,CAAC,GAAG,CAAC,EAAE;AACnC,YAAA,IAAI,CAAC,gBAAgB,GAAG,IAAI,CAAC;AAC7B,YAAA,OAAO,IAAI,CAAC;SACf;QACD,IAAI,CAAC,gBAAgB,EAAE,CAAC;AACxB,QAAA,OAAO,IAAI,CAAC;KACf;AAED;;;;AAIG;AACK,IAAA,eAAe,CAAC,KAAa,EAAA;AACjC,QAAA,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,QAAQ,CAAC,IAAI,KAAK,GAAG,IAAI,CAAC,QAAQ,EAAE;AAChD,YAAA,IAAI,CAAC,YAAY,GAAG,UAAU,CAAC;YAC/B,OAAO,IAAI,CAAC,QAAQ,CAAC;SAExB;AACD,QAAA,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,QAAQ,CAAC,IAAI,KAAK,GAAG,IAAI,CAAC,QAAQ,EAAE;AAChD,YAAA,IAAI,CAAC,YAAY,GAAG,UAAU,CAAC;YAC/B,OAAO,IAAI,CAAC,QAAQ,CAAC;SACxB;AACD,QAAA,OAAO,KAAK,CAAC;KAChB;AAED;;;;AAIG;IACK,eAAe,CAAC,MAAM,EAAE,YAAa,EAAA;AACzC,QAAA,MAAM,SAAS,GAAG,YAAY,GAAG,YAAY,GAAG,IAAI,CAAC,YAAY,CAAC;AAClE,QAAA,OAAO,IAAI,CAAC,uBAAuB,CAAC,SAAS,CAAC,MAAM,EAAE,IAAI,CAAC,cAAc,EAAE,SAAS,EAAE,IAAI,CAAC,YAAY,EAAE,IAAI,CAAC,YAAY,EAAE,IAAI,CAAC,YAAY,EAAE,CAAC,CAAC,YAAY,EAAE,IAAI,CAAC,WAAW,EAAE,eAAe,EAAE,CAAC,CAAC;KACvM;AAED;;;AAGG;AACK,IAAA,mBAAmB,CAAC,KAAa,EAAA;AACrC,QAAA,MAAM,KAAK,GAAG,IAAI,CAAC,OAAO,CAAC,aAAa,CAAC;;QAEzC,IAAI,QAAQ,GAAG,KAAK,CAAC,KAAK,CAAC,MAAM,GAAG,KAAK,CAAC;AAC1C,QAAA,QAAQ,GAAG,QAAQ,GAAG,CAAC,GAAG,CAAC,GAAG,QAAQ,CAAC;;AAEvC,QAAA,KAAK,CAAC,iBAAiB,CAAC,QAAQ,EAAE,QAAQ,CAAC,CAAC;KAC/C;AAED;;;;;AAKG;AACK,IAAA,WAAW,CAAC,GAAW,EAAA;;;QAG3B,MAAM,KAAK,GAAG,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,SAAS,KAAK,SAAS,CAAC,SAAS,IAAI,GAAG,CAAC,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,GAAG,IAAI,CAAC,OAAO,GAAG,GAAG,IAAI,IAAI,CAAC,OAAO,CAAC,CAAC;AACvI,QAAA,IAAI,CAAC,KAAK,CAAC,MAAM,EAAE;AACf,YAAA,OAAO,IAAI,CAAC;SACf;AACD,QAAA,IAAI,KAAK,CAAC,MAAM,GAAG,CAAC,EAAE;AAClB,YAAA,OAAO,GAAG,CAAC;SACd;;AAED,QAAA,IAAI,KAAK,CAAC,CAAC,CAAC,KAAK,EAAE,EAAE;AACjB,YAAA,OAAO,GAAG,CAAC;SACd;;QAED,MAAM,MAAM,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC;AAC3D,QAAA,MAAM,OAAO,GAAG,MAAM,CAAC,CAAK,EAAA,EAAA,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,CAAA,CAAE,CAAC,CAAC;AAC7C,QAAA,IAAI,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,IAAI,MAAM,CAAC,KAAK,CAAC,OAAO,CAAC,EAAE;AAC/C,YAAA,OAAO,GAAG,CAAC;SACd;AACD,QAAA,MAAM,GAAG,GAAG,KAAK,CAAC,MAAM,GAAG,CAAC,GAAG,UAAU,CAAC,CAAC,MAAM,GAAG,OAAO,EAAE,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,GAAG,MAAM,GAAG,OAAO,CAAC;;;;;AAK1G,QAAA,IAAI,MAAM,KAAK,CAAC,EAAE;AACd,YAAA,OAAO,MAAM,CAAC,EAAE,CAAC,CAAC,EAAE,MAAM,CAAC,GAAG,GAAG,GAAG,MAAM,GAAG,OAAO,CAAC;SACxD;AACD,QAAA,OAAO,MAAM,GAAG,CAAC,GAAG,GAAG,GAAG,MAAM,GAAG,OAAO,CAAC;KAC9C;;IAGO,iBAAiB,GAAA;AACrB,QAAA,MAAM,KAAK,GAAG,IAAI,CAAC,OAAO,CAAC,aAAa,CAAC;AACzC,QAAA,MAAM,QAAQ,GAAW,KAAK,CAAC,cAAc,CAAC;AAC9C,QAAA,MAAM,QAAQ,GAAW,KAAK,CAAC,KAAK,CAAC;AACrC,QAAA,IAAI,CAAC,IAAI,CAAC,cAAc,EAAE;YACtB,MAAM,KAAK,GAAG,QAAQ,CAAC,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;YAC3C,IAAI,CAAC,YAAY,GAAG,KAAK,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC;SACtC;AACD,QAAA,MAAM,OAAO,GAAG,IAAI,CAAC,UAAU,EAAE,CAAC;QAClC,IAAI,IAAI,CAAC,SAAS,KAAK,SAAS,CAAC,SAAS,IAAI,OAAO,EAAE;YACnD,IAAI,CAAC,YAAY,GAAG,KAAK,CAAC,KAAK,GAAG,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,UAAU,EAAE,CAAA,EAAA,EAAK,OAAO,CAAI,CAAA,EAAA,OAAO,CAAE,CAAA,CAAC,CAAC;AACnG,YAAA,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC,YAAY,CAAC,OAAO,CAAC,KAAK,EAAC,EAAE,CAAC,CAAC;SAC3D;aAAM;AACH,YAAA,IAAI,CAAC,YAAY,GAAG,KAAK,CAAC,KAAK,GAAG,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;SAC3E;;;QAGD,IAAI,IAAI,CAAC,QAAQ,KAAK,SAAS,IAAI,CAAC,IAAI,CAAC,cAAc,EAAE;YACrD,IAAI,CAAC,mBAAmB,CAAC,QAAQ,CAAC,MAAM,GAAG,QAAQ,CAAC,CAAC;SACxD;KACJ;;IAGO,UAAU,GAAA;AACd,QAAA,MAAM,OAAO,GAAG,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;AAChD,QAAA,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC,EAAG;YACvB,OAAO;SACV;aAAM;AACH,YAAA,OAAO,OAAO,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC;SAC5B;KACJ;;IAGM,iBAAiB,GAAA;AACpB,QAAA,OAAO,IAAI,CAAC,SAAS,KAAK,SAAS,CAAC,OAAO,IAAI,IAAI,CAAC,UAAU,KAAK,aAAa,IAAI,CAAC,CAAC,IAAI,CAAC,YAAY,CAAC;KAC3G;AAEE;;;;AAIA;AACI,IAAA,aAAa,CAAC,KAAU,EAAA;AAC3B,QAAA,MAAM,OAAO,GAAG,IAAI,CAAC,UAAU,EAAE,CAAC;;AAElC,QAAA,IAAI,SAAS,CAAC,KAAK,CAAC,KAAK,KAAK,KAAK,EAAE,IAAI,IAAI,CAAC,SAAS,CAAC,EAAE;AACtD,YAAA,IAAI,CAAC,YAAY,CAAC,KAAK,CAAC,CAAC;SAC5B;aAAM;YACH,OAAO;SACV;QAED,IAAI,CAAC,OAAO,IAAI,IAAI,CAAC,SAAS,KAAK,SAAS,CAAC,SAAS,EAAE;YACpD,OAAO;SACV;AAED,QAAA,IAAI,YAAY,CAAC;AAEjB;;;AAGG;AACH,QAAA,IAAI,IAAI,CAAC,cAAc,EAAE;AACrB,YAAA,YAAY,GAAG,UAAU,CAAC,KAAK,CAAC,CAAC;SACpC;aAAM;AACH,YAAA,MAAM,aAAa,GAAG,QAAQ,CAAC,KAAK,CAAC,QAAQ,EAAE,CAAC,OAAO,CAAC,KAAK,EAAC,EAAE,CAAC,CAAC,CAAC;AACnE,YAAA,YAAY,GAAG,aAAa,GAAI,IAAI,CAAC,IAAI,CAAC;SAC7C;AAEE,QAAA,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,EAAE;;YAEzB,IAAI,IAAI,CAAC,cAAc,CAAC,QAAQ,KAAK,QAAQ,EAAE;AAC3C,gBAAA,IAAI,CAAC,SAAS,GAAG,UAAU,CAAC,YAAY,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC;AAC3D,gBAAA,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;aACrC;iBAAM;gBACH,IAAI,CAAC,YAAY,GAAG,YAAY,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;aACrD;SACJ;aAAM,IAAI,IAAI,CAAC,cAAc,CAAC,QAAQ,KAAK,MAAM,EAAE;AAChD,YAAA,IAAI,CAAC,SAAS,GAAG,SAAS,CAAC;AAC3B,YAAA,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,CAAC;SAC3B;KACJ;;;AAIM,IAAA,qBAAqB,CAAC,MAAM,EAAA;AAC/B,QAAA,MAAM,OAAO,GAAG,IAAI,CAAC,UAAU,EAAE,CAAC;AAClC,QAAA,MAAM,aAAa,GAAG,CAAC,IAAI,CAAC,YAAY,IAAI,IAAI,CAAC,SAAS,KAAK,SAAS,CAAC,SAAS,CAAC;;AAGnF,QAAA,IAAI,IAAI,CAAC,gBAAgB,EAAE;AACvB,YAAA,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;SACzC;QACD,IAAI,CAAC,aAAa,IAAI,CAAC,IAAI,CAAC,iBAAiB,EAAE,EAAE;YAC7C,OAAO;SACV;AACD,QAAA,IAAI,OAAO,IAAI,IAAI,CAAC,SAAS,EAAE;AAC3B,YAAA,IAAI,YAAY,CAAC;YACjB,IAAI,CAAC,aAAa,IAAI,MAAM,CAAC,IAAI,KAAK,OAAO,MAAM,IAAI,CAAC,iBAAiB,EAAE,IAAI,MAAM,CAAC,IAAI,KAAK,MAAM,CAAC,EAAE;AACpG,gBAAA,YAAY,GAAG,CAAK,EAAA,EAAA,OAAO,CAAI,CAAA,EAAA,OAAO,EAAE,CAAC;aAC5C;AACD,YAAA,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,SAAS,EAAE,YAAY,CAAC,CAAC;SAC1E;KACJ;AAED;;;;AAIG;AACK,IAAA,aAAa,CAAC,KAAK,EAAA;QACvB,IAAI,CAAC,KAAK,GAAG,CAAC,MAAM,CAAC,EAAE;AACnB,YAAA,MAAM,YAAY,GAAG,KAAK,CAAC,QAAQ,EAAE,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;AACpD,YAAA,OAAO,YAAY,IAAI,YAAY,CAAC,MAAM,CAAC;SAC9C;AACD,QAAA,OAAO,CAAC,CAAC;KACZ;AAED;;;;AAIG;IACI,YAAY,CAAC,MAAM,EAAE,GAAG,EAAA;QAC3B,MAAM,CAAC,cAAc,EAAE,CAAC;QACxB,IAAI,IAAI,CAAC,QAAQ,IAAI,IAAI,CAAC,IAAI,KAAK,CAAC,EAAE;YAClC,OAAO;SACV;AACD,QAAA,MAAM,SAAS,GAAG,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,OAAO,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC;;AAGxD,QAAA,IAAI,UAAU,CAAC;QACf,IAAI,SAAS,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC,SAAS,CAAC,CAAC,EAAE;AAC5C,YAAA,UAAU,GAAG,UAAU,CAAC,SAAS,CAAC,CAAC;SACtC;aAAM;AACH,YAAA,UAAU,GAAG,IAAI,CAAC,UAAU,CAAC;SAChC;AAED,QAAA,IAAI,KAAK,CAAC;;AAGV,QAAA,IAAI,IAAI,CAAC,gBAAgB,EAAE;AACvB,YAAA,MAAM,UAAU,GAAG,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,OAAO,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC;;AAEtE,YAAA,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC,EAAE;AACpB,gBAAA,KAAK,GAAG,IAAI,CAAC,eAAe,CAAC,UAAU,CAAC,CAAC;gBACzC,UAAU,GAAG,UAAU,CAAC;gBACxB,IAAI,CAAC,gBAAgB,EAAE,CAAC;aAC3B;SACJ;aAAM;YACH,IAAI,WAAW,CAAC,UAAU,CAAC,IAAI,MAAM,CAAC,UAAU,CAAC,EAAE;AAC/C,gBAAA,UAAU,GAAG,KAAK,GAAG,IAAI,CAAC,eAAe,EAAE,IAAI,CAAC,QAAQ,IAAI,CAAC,EAAE,CAAC;gBAChE,IAAI,CAAC,gBAAgB,EAAE,CAAC;aAC3B;iBAAM;gBACH,KAAK,GAAG,IAAI,CAAC,eAAe,CAAC,UAAU,IAAI,GAAG,KAAK,IAAI,GAAG,IAAI,CAAC,IAAI,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;aACtF;SACJ;QACD,IAAI,CAAC,GAAG,KAAK,IAAI,IAAI,UAAU,IAAI,KAAK,MAAM,GAAG,KAAK,MAAM,IAAI,UAAU,IAAI,KAAK,CAAC,EAAE;YAClF,MAAM,iBAAiB,GAAG,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,aAAa,CAAC,UAAU,CAAC,EAAE,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;;YAGlG,IAAI,CAAC,UAAU,GAAG,KAAK,CAAC,KAAK,EAAE,iBAAiB,CAAC,CAAC;YAClD,IAAI,CAAC,iBAAiB,EAAE,CAAC;AACzB,YAAA,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;SACtC;KACJ;AAED;;;AAGG;AACI,IAAA,QAAQ,CAAC,CAAkB,EAAA;AAC9B,QAAA,IAAI,IAAI,CAAC,eAAe,EAAE;AACtB,YAAA,IAAI,CAAC,YAAY,GAAG,EAAE,CAAC;YACvB,OAAO;AACH,gBAAA,aAAa,EAAE;AACX,oBAAA,KAAK,EAAE,KAAK;AACf,iBAAA;aACJ,CAAC;SACL;AACD,QAAA,IAAI,IAAI,CAAC,gBAAgB,EAAE;YACvB,OAAO;AACH,gBAAA,gBAAgB,EAAE;AACd,oBAAA,KAAK,EAAE,KAAK;AACf,iBAAA;aACJ,CAAC;SACL;AACD,QAAA,IAAI,CAAC,YAAY,GAAG,EAAE,CAAC;;QAEvB,IAAI,IAAI,CAAC,MAAM,CAAC,IAAI,IAAI,CAAC,UAAU,CAAC,EAAE;YAClC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,IAAI,CAAC,CAAC,KAAK,KAAK,CAAC,IAAI,IAAI,GAAG,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;SACnE;AACD,QAAA,OAAO,IAAI,CAAC;KACf;AAEM,IAAA,kBAAkB,CAAC,MAAM,EAAA;AAE5B,QAAA,IAAI,CAAC,cAAc,GAAG,KAAK,CAAC;;QAG5B,IAAI,MAAM,CAAC,OAAO,IAAI,QAAQ,CAAC,CAAC,WAAW,EAAE,YAAY,EAAE,WAAW,EAAE,KAAK,EAAE,OAAO,EAAE,QAAQ,CAAC,EAAE,MAAM,CAAC,GAAG,CAAC,EAAE;YAC5G,OAAO;SACV;AAED,QAAA,MAAM,QAAQ,GAAG,IAAI,MAAM,CAAC,gBAAgB,IAAI,CAAC,KAAK,CAAA,EAAG,IAAI,CAAC,OAAO,IAAI,EAAE,GAAG,CAAC,CAAC;AAChF,QAAA,MAAM,UAAU,GAAG,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC;;QAGvC,MAAM,kBAAkB,GAAG,IAAI,CAAC,SAAS,KAAK,SAAS,CAAC,SAAS,CAAC;;QAGlE,IAAI,UAAU,EAAE;AACZ,YAAA,MAAM,SAAS,GAAI,QAAQ,CAAC,UAAU,CAAC,QAAQ,EAAE,CAAC,OAAO,CAAC,KAAK,EAAC,EAAE,CAAC,CAAC,CAAC;YACrE,IAAI,SAAS,CAAC,QAAQ,EAAE,CAAC,MAAM,GAAG,EAAE,EAAE;;;;AAIlC,gBAAA,MAAM,WAAW,GAAG,MAAM,CAAC,YAAY,EAAE,CAAC;AAC1C,gBAAA,IAAI,WAAW,IAAI,WAAW,CAAC,QAAQ,EAAE,IAAI,WAAW,CAAC,SAAS,KAAK,IAAI,CAAC,aAAa,EAAE;AACvF,oBAAA,OAAO,IAAI,CAAC;iBACf;AACD,gBAAA,OAAO,KAAK,CAAC;aAChB;SACJ;;;QAID,IAAI,CAAC,kBAAkB,IAAI,UAAU,IAAI,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,IAAI,CAAC,aAAa,CAAC,UAAU,CAAC,IAAI,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,IAAI,MAAM,CAAC,MAAM,CAAC,cAAc,IAAI,UAAU,CAAC,MAAM,GAAG,CAAC,EAAE;AAClM,YAAA,OAAO,KAAK,CAAC;SAChB;;QAED,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE;AAC5B,YAAA,OAAO,KAAK,CAAC;SAChB;;QAED,IAAI,QAAQ,CAAC,UAAU,EAAE,GAAG,CAAC,IAAI,UAAU,CAAC,UAAU,CAAC,MAAM,GAAG,CAAC,CAAC,KAAK,GAAG,IAAI,MAAM,CAAC,GAAG,KAAK,GAAG,EAAE;AAC9F,YAAA,OAAO,KAAK,CAAC;SAChB;;AAGD,QAAA,IAAI,QAAQ,CAAC,UAAU,EAAE,IAAI,CAAC,OAAO,CAAC,IAAI,MAAM,CAAC,GAAG,KAAK,IAAI,CAAC,OAAO,EAAE;AACnE,YAAA,OAAO,KAAK,CAAC;SAChB;;QAED,IAAI,YAAY,CAAC,OAAO,CAAC,UAAU,CAAC,EAAE,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC,CAAC,MAAM,IAAI,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC,GAAG,CAAC,EAAE;AACpF,YAAA,OAAO,KAAK,CAAC;SAChB;AACD,QAAA,IAAI,CAAC,QAAQ,CAAC,UAAU,EAAE,GAAG,CAAC,IAAI,QAAQ,CAAC,UAAU,EAAE,GAAG,CAAC,MAAM,MAAM,CAAC,GAAG,KAAK,GAAG,IAAI,MAAM,CAAC,GAAG,KAAK,GAAG,CAAC,EAAE;AACxG,YAAA,OAAO,KAAK,CAAC;SAChB;;QAED,IAAI,CAAC,UAAU,IAAI,MAAM,CAAC,IAAI,KAAK,OAAO,EAAE;AACxC,YAAA,OAAO,KAAK,CAAC;SAChB;KACJ;AAED,IAAA,WAAW,CAAC,MAAM,EAAA;AACd,QAAA,IAAI,CAAC,cAAc,GAAG,KAAK,CAAC;KAC/B;AAED,IAAA,OAAO,CAAC,MAAM,EAAA;QACV,IAAI,CAAC,SAAS,GAAG,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC;KACxC;AAED,IAAA,aAAa,CAAC,MAAM,EAAA;QAChB,IAAI,IAAI,CAAC,SAAS,KAAK,SAAS,CAAC,OAAO,KAAK,IAAI,CAAC,SAAS,KAAK,SAAS,CAAC,SAAS,IAAI,IAAI,CAAC,cAAc,CAAC,QAAQ,KAAK,MAAM,CAAC,EAAE;AAC7H,YAAA,IAAI,CAAC,SAAS,GAAG,MAAM,CAAC;SAC3B;KACJ;AAED,IAAA,gBAAgB,CAAC,GAAG,EAAE,EAAE,EAAE,EAAG,EAAA;QACzB,IAAI,GAAG,KAAK,UAAU,IAAI,GAAG,KAAK,UAAU,EAAE;AAC1C,YAAA,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC;SACpB;AAAM,aAAA,IAAI,GAAG,KAAK,WAAW,IAAI,CAAC,EAAE,EAAE;AACnC,YAAA,IAAI,IAAI,CAAC,iBAAiB,EAAE,EAAE;gBAC1B,IAAI,CAAC,qBAAqB,CAAC,EAAC,IAAI,EAAE,MAAM,EAAC,CAAC,CAAC;aAC9C;iBAAM;AACH,gBAAA,IAAI,CAAC,aAAa,CAAC,EAAE,CAAC,CAAC;aAC1B;SACJ;aAAM;YACH,KAAK,CAAC,gBAAgB,CAAC,GAAG,EAAE,EAAE,EAAE,EAAE,CAAC,CAAC;SACvC;KACJ;EACJ;AAxeqB,YAAY,GAAA,UAAA,CAAA;AA6BzB,IAAA,OAAA,CAAA,CAAA,EAAA,MAAM,CAAC,kBAAkB,CAAC,CAAA;IAAE,OAAA,CAAA,CAAA,EAAA,QAAQ,EAAE,CAAA;AAJlC,IAAA,UAAA,CAAA,mBAAA,EAAA,CAAA,QAAQ,UAEQ,mBAAmB;QACP,uBAAuB,EAAA,MAAA,CAAA,CAAA;AA5B1C,CAAA,EAAA,YAAY,CAwejC;;;;ACzeD,MAAMI,eAAa,GAAkB;AACjC,IAAA,UAAU,EAAE,WAAW;AACvB,IAAA,SAAS,EAAE,mBAAmB;CACjC,CAAC;AAWI,MAAO,eAAgB,SAAQ,YAAY,CAAA;AACtC,IAAA,SAAA,IAAA,CAAA,eAAe,GAAGJ,eAAa,EAAhB,CAAmB,EAAA;AAezC,IAAA,WAAA,CAAY,GAAa,EAAE,WAAgC,EAAE,uBAAgD,EAA0C,eAAoB,EAAA;QACvK,KAAK,CAAC,GAAG,EAAEI,eAAa,EAAE,WAAW,EAAE,uBAAuB,EAAE,eAAe,CAAC,CAAC;KACpF;AAlBQ,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,SAAA,uBAAA,CAAA,CAAA,EAAA,EAAA,OAAA,KAAA,CAAA,IAAA,eAAe,4JAgB+F,kBAAkB,EAAA,CAAA,CAAA,CAAA,CAAA,EAAA,CAAA,EAAA;oEAhBhI,eAAe,EAAA,SAAA,EAAA,CAAA,CAAA,EAAA,EAAA,UAAA,EAAA,EAAA,CAAA,CAAA,EAAA,SAAA,EAAA,SAAA,qBAAA,CAAA,EAAA,EAAA,GAAA,EAAA,EAAA,IAAA,EAAA,GAAA,CAAA,EAAA;;2BAcb,OAAO,EAAA,CAAA,CAAA,CAAA;;;;;AApBP,SAAA,EAAA,EAAA,QAAA,EAAA,CAAA,EAAA,CAAA,kBAAA,CAAA;AACP,gBAAA,SAAS,CAAC,eAAe,EAAE,iBAAiB,EAAE,IAAI,CAAC;AACnD,gBAAA,SAAS,CAAC,eAAe,EAAE,aAAa,EAAE,IAAI,CAAC;gBAC/C,kBAAkB,CAAC,eAAe,CAAC;AACtC,aAAA,CAAA,EAAA,EAAA,CAAA,0BAAA,CAAA,EAAA,KAAA,EAAAG,KAAA,EAAA,KAAA,EAAA,CAAA,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,CAAA,CAAA,OAAA,EAAA,EAAA,CAAA,EAAA,CAAA,WAAA,EAAA,SAAA,EAAA,cAAA,EAAA,EAAA,EAAA,MAAA,EAAA,SAAA,EAAA,MAAA,EAAA,MAAA,EAAA,CAAA,EAAA,cAAA,EAAA,aAAA,EAAA,kBAAA,EAAA,CAAA,EAAA,eAAA,EAAA,MAAA,EAAA,OAAA,EAAA,OAAA,EAAA,UAAA,EAAA,mBAAA,EAAA,eAAA,EAAA,iBAAA,EAAA,mBAAA,EAAA,SAAA,EAAA,UAAA,EAAA,UAAA,EAAA,SAAA,EAAA,WAAA,EAAA,SAAA,EAAA,SAAA,EAAA,gBAAA,EAAA,UAAA,CAAA,CAAA,EAAA,QAAA,EAAA,SAAA,wBAAA,CAAA,EAAA,EAAA,GAAA,EAAA,EAAA,IAAA,EAAA,GAAA,CAAA,EAAA;;YCrBL,EA4Bc,CAAA,cAAA,CAAA,CAAA,EAAA,OAAA,EAAA,CAAA,EAAA,CAAA,CAAA,CAAA;AADP,YAJA,EANA,CAAA,UAAA,CAAA,eAAA,EAAA,SAAA,uDAAA,CAAA,MAAA,EAAA,EAAA,EAAA,CAAA,aAAA,CAAA,GAAA,CAAA,CAAA,CAAA,OAAA,EAAA,CAAA,WAAA,CAAiB,GAAqB,CAAA,aAAA,CAAA,MAAA,CAAA,CAAA,CAAA,EAAA,CAAC,kGAC/B,GAAkB,CAAA,UAAA,CAAA,MAAA,CAAA,CAAA,CAAA,OAAA,EAAA,CAAA,WAAA,CAAE,iCAA6B,CAAE,CAAA,EAAA,CAAA,CAAA,OAAA,EAAA,SAAA,+CAAA,CAAA,MAAA,EAAA,EAAA,EAAA,CAAA,aAAA,CAAA,GAAA,CAAA,CAAA,CAAA,OAAA,EAAA,CAAA,WAAA,CAClD,iCAA6B,CAAC,CAAA,EAAA,CAAA,CAAA,OAAA,EAAA,SAAA,+CAAA,CAAA,MAAA,EAAA,EAAA,EAAA,CAAA,aAAA,CAAA,GAAA,CAAA,CAAA,CAAA,OAAA,EAAA,CAAA,WAAA,CAC9B,GAAkC,CAAA,aAAA,CAAA,MAAA,CAAA,MAAA,CAAA,KAAA,CAAA,CAAA,CAAA,EAAA,CAAC,gIAGhC,GAA0B,CAAA,kBAAA,CAAA,MAAA,CAAA,CAAA,CAAA,EAAA,CAAC,kJAClB,GAAmB,CAAA,WAAA,CAAA,MAAA,CAAA,CAAA,CAAA,EAAA,CAAC,0IACxB,GAAe,CAAA,OAAA,CAAA,MAAA,CAAA,CAAA,CAAA,EAAA,CAAC,CACd,iBAAA,EAAA,SAAA,yDAAA,CAAA,MAAA,EAAA,EAAA,EAAA,CAAA,aAAA,CAAA,GAAA,CAAA,CAAA,CAAA,OAAA,EAAA,CAAA,WAAA,CAAA,GAAA,CAAA,YAAA,CAAA,MAAA,EAAqB,IAAI,CAAC,CAAA,CAAA,EAAA,CAAC,kJACzB,GAAqB,CAAA,YAAA,CAAA,MAAA,EAAA,MAAM,CAAC,CAAC,CAAA,EAAA,CAAA,CAAA;YA3BzD,EA4Bc,CAAA,YAAA,EAAA,CAAA;;AANP,YAhBA,EAAwB,CAAA,UAAA,CAAA,SAAA,EAAA,GAAA,CAAA,YAAA,CAAA,CAAA,UAAA,EAAA,GAAA,CAAA,QAAA,CACH,0BACA,CACH,SAAA,EAAA,GAAA,CAAA,MAAA,CAAA,CAAA,WAAA,EAAA,GAAA,CAAA,SAAA,CAKK,CACK,SAAA,EAAA,GAAA,CAAA,gBAAA,CAAA,CAAA,SAAA,EAAA,GAAA,CAAA,gBAAA,CACA,sCAKK,CACZ,UAAA,EAAA,GAAA,CAAA,QAAA,CAAA,CAAA;;;;iFDCf,eAAe,EAAA,CAAA;cAT3B,SAAS;AACI,QAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,YAAY,EAEX,SAAA,EAAA;AACP,oBAAA,SAAS,CAAkB,eAAA,EAAA,iBAAiB,EAAE,IAAI,CAAC;AACnD,oBAAA,SAAS,CAAkB,eAAA,EAAA,aAAa,EAAE,IAAI,CAAC;AAC/C,oBAAA,kBAAkB,CAAiB,eAAA,CAAA;AACtC,iBAAA,EAAA,QAAA,EAAA,8oCAAA,EAAA,CAAA;;sBAkB+G,MAAM;uBAAC,kBAAkB,CAAA;;sBAAG,QAAQ;qBAHhH,OAAO,EAAA,CAAA;kBAA1C,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA,OAAO,EAAE,EAAC,MAAM,EAAE,IAAI,EAAC,CAAA;YACE,OAAO,EAAA,CAAA;kBAA1C,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA,OAAO,EAAE,EAAC,MAAM,EAAE,IAAI,EAAC,CAAA;;kFAdzB,eAAe,EAAA,EAAA,SAAA,EAAA,iBAAA,EAAA,QAAA,EAAA,4BAAA,EAAA,UAAA,EAAA,EAAA,EAAA,CAAA,CAAA,EAAA,GAAA;;AEpBrB,MAAM,aAAa,GAAG,IAAI,GAAG,CAChC;IACI,CAAC,OAAO,EAAE,WAAW,CAAC;IACtB,CAAC,aAAa,EAAE,YAAY,CAAC;IAC7B,CAAC,WAAW,EAAE,WAAW,CAAC;IAC1B,CAAC,WAAW,EAAE,WAAW,CAAC;IAC1B,CAAC,SAAS,EAAE,EAAC,KAAK,EAAE,8BAA8B,EAAE,GAAG,QAAQ,EAAC,CAAC;IACjE,CAAC,iBAAiB,EAAE,QAAQ,CAAC;IAC7B,CAAC,WAAW,EAAE,QAAQ,CAAC;IACvB,CAAC,YAAY,EAAE,WAAW,CAAC;IAC3B,CAAC,UAAU,EAAE,YAAY,CAAC;IAC1B,CAAC,mBAAmB,EAAE,WAAW,CAAC;IAClC,CAAC,cAAc,EAAE,WAAW,CAAC;IAC7B,CAAC,cAAc,EAAE,WAAW,CAAC;IAC7B,CAAC,SAAS,EAAE,WAAW,CAAC;IACxB,CAAC,WAAW,EAAE,EAAC,KAAK,EAAE,EAAE,EAAE,GAAG,WAAW,EAAC,CAAC;IAC1C,CAAC,aAAa,EAAE,EAAC,KAAK,EAAE,qBAAqB,EAAE,GAAG,WAAW,EAAC,CAAC;IAC/D,CAAC,WAAW,EAAE,EAAC,KAAK,EAAE,EAAE,EAAE,GAAG,WAAW,EAAC,CAAC;IAC1C,CAAC,OAAO,EAAE,WAAW,CAAC;IACtB,CAAC,MAAM,EAAE,WAAW,CAAC;IACrB,CAAC,SAAS,EAAE,WAAW,CAAC;IACxB,CAAC,UAAU,EAAE,YAAY,CAAC;IAC1B,CAAC,UAAU,EAAE,YAAY,CAAC;IAC1B,CAAC,MAAM,EAAE,EAAC,KAAK,EAAE,IAAI,EAAE,GAAG,YAAY,EAAC,CAAC;IACxC,CAAC,WAAW,EAAE,YAAY,CAAC;AAC3B,IAAA,CAAC,cAAc,EAAE,EAAC,WAAW,EAAE,cAAc,EAAE,KAAK,EAAE,KAAK,EAAE,GAAG,WAAW,EAAC,CAAC;IAC7E,CAAC,UAAU,EAAE,EAAC,KAAK,EAAE,CAAC,EAAE,GAAG,WAAW,EAAC,CAAC;IACxC,CAAC,SAAS,EAAE,YAAY,CAAC;AAC5B,CAAA,CACJ,CAAC;AAEK,MAAMP,eAAa,GAAG,MAAK;AAC9B,IAAA,QAAQ,CACJ,aAAa,EACb,aAAa,CAChB,CAAC;IACF,kBAAkB,CACd,cAAc,CAAC,QAAQ,EACvB,IAAI,GAAG,CAAC,aAAa,CAAC,CACzB,CAAC;AACN,CAAC;;;;;;;;ICpCO,EACqD,CAAA,cAAA,CAAA,CAAA,EAAA,OAAA,EAAA,CAAA,CAAA,CAAA;AAIjD,IAHA,2BAEqC,CACmB,CAAA,EAAA,MAAA,EAAA,CAAA,CAAA,CAAA;IAC5D,EAAQ,CAAA,YAAA,EAAA,CAAA;;;;;;IALD,EAA6C,CAAA,UAAA,CAAA,SAAA,EAAA,EAAA,CAAA,eAAA,CAAA,EAAA,EAAAM,KAAA,EAAA,MAAA,CAAA,QAAA,IAAA,MAAA,CAAA,QAAA,CAAA,CAAA,CAAA;IACzC,EAA+B,CAAA,SAAA,EAAA,CAAA;AAC4C,IAD3E,oDAA+B,CACb,OAAA,EAAA,OAAA,CAAA,GAAA,CAAA,CAAA,UAAA,EAAA,MAAA,CAAA,QAAA,IAAA,MAAA,CAAA,QAAA,CAAkC,6BAAsB,CAA0B,SAAA,EAAA,OAAA,CAAA,QAAA,CAAA,CAAA;;IAErF,EAA0B,CAAA,SAAA,EAAA,CAAA;IAA1B,EAA0B,CAAA,UAAA,CAAA,aAAA,EAAA,OAAA,CAAA,KAAA,CAAA,CAAA;;;IAGpD,EACqD,CAAA,cAAA,CAAA,CAAA,EAAA,OAAA,EAAA,CAAA,CAAA,CAAA;AAIjD,IAHA,2BAEqC,CACgC,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,CAAA;IACzE,EAAQ,CAAA,YAAA,EAAA,CAAA;;;;;;IALD,EAA6C,CAAA,UAAA,CAAA,SAAA,EAAA,EAAA,CAAA,eAAA,CAAA,CAAA,EAAAA,KAAA,EAAA,MAAA,CAAA,QAAA,IAAA,MAAA,CAAA,QAAA,CAAA,CAAA,CAAA;IACzC,EAA+B,CAAA,SAAA,EAAA,CAAA;AAC4C,IAD3E,oDAA+B,CACb,OAAA,EAAA,OAAA,CAAA,GAAA,CAAA,CAAA,UAAA,EAAA,MAAA,CAAA,QAAA,IAAA,MAAA,CAAA,QAAA,CAAkC,6BAAsB,CAA0B,SAAA,EAAA,OAAA,CAAA,QAAA,CAAA,CAAA;;;;;IAjBnH,EAIsE,CAAA,cAAA,CAAA,CAAA,EAAA,IAAA,EAAA,CAAA,CAAA,CAAA;AAAlE,IAAA,EAAA,CAAA,UAAA,CAAA,OAAA,EAAA,SAAA,iEAAA,CAAA,MAAA,EAAA,EAAA,MAAA,OAAA,GAAA,EAAA,CAAA,aAAA,CAAA,GAAA,CAAA,CAAA,SAAA,CAAA,CAAA,MAAA,MAAA,GAAA,EAAA,CAAA,aAAA,CAAA,CAAA,CAAA,CAAA,CAAA,OAAA,EAAA,CAAA,WAAA,CAAS,6CAAmC,CAAC,CAAA,EAAA,CAAA,CAAA;AAU7C,IARA,0FACqD,CAQA,CAAA,EAAA,qDAAA,EAAA,CAAA,EAAA,EAAA,EAAA,OAAA,EAAA,CAAA,CAAA,CAAA;IAMzD,EAAK,CAAA,YAAA,EAAA,CAAA;;;;IApBD,EAA8B,CAAA,WAAA,CAAA,QAAA,EAAA,OAAA,CAAA,QAAA,CAAA,CAAA;IAD9B,EAA+D,CAAA,UAAA,CAAA,SAAA,EAAA,EAAA,CAAA,eAAA,CAAA,CAAA,EAAAC,KAAA,EAAA,MAAA,CAAA,SAAA,EAAA,MAAA,CAAA,gBAAA,CAAA,CAAA,CAAA,gBAAA,EAAA,MAAA,CAAA,OAAA,CAGrC,CAA6B,qBAAA,EAAA,OAAA,CAAA,CAAA;IAG/C,EAAc,CAAA,SAAA,EAAA,CAAA;IAAd,EAAc,CAAA,UAAA,CAAA,MAAA,EAAA,CAAA,MAAA,CAAA,OAAA,CAAA,CAAA;IAQd,EAAa,CAAA,SAAA,EAAA,CAAA;IAAb,EAAa,CAAA,UAAA,CAAA,MAAA,EAAA,MAAA,CAAA,OAAA,CAAA,CAAA;;;IAdzB,EAIsE,CAAA,UAAA,CAAA,CAAA,EAAA,6CAAA,EAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,CAAA,CAAA,CAAA;;;IAFjD,EAAgB,CAAA,UAAA,CAAA,SAAA,EAAA,MAAA,CAAA,YAAA,CAAA,CAAA;;;IAuBzC,EAAsF,CAAA,SAAA,CAAA,CAAA,EAAA,KAAA,EAAA,EAAA,CAAA,CAAA;;;IAS9D,EAAoI,CAAA,SAAA,CAAA,CAAA,EAAA,GAAA,EAAA,EAAA,CAAA,CAAA;;;IAApE,EAA+D,CAAA,sBAAA,CAAA,OAAA,EAAA,EAAA,EAAA,MAAA,CAAA,SAAA,CAAA,cAAA,EAAA,GAAA,EAAA,MAAA,CAAA,SAAA,CAAA,YAAA,EAAA,EAAA,CAAA,CAAA;;;IAC/H,EAAgG,CAAA,SAAA,CAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,CAAA;;;IAA5C,EAAoC,CAAA,UAAA,CAAA,aAAA,EAAA,WAAA,CAAA,IAAA,CAAA,MAAA,CAAA,CAAA;;;IAUhG,EACqD,CAAA,cAAA,CAAA,CAAA,EAAA,OAAA,EAAA,CAAA,CAAA,CAAA;AAGjD,IAFA,2BAC6G,CACrD,CAAA,EAAA,MAAA,EAAA,CAAA,CAAA,CAAA;IAC5D,EAAQ,CAAA,YAAA,EAAA,CAAA;;;;;;IAJD,EAA6C,CAAA,UAAA,CAAA,SAAA,EAAA,EAAA,CAAA,eAAA,CAAA,CAAA,EAAAD,KAAA,EAAA,MAAA,CAAA,QAAA,IAAA,MAAA,CAAA,QAAA,CAAA,CAAA,CAAA;IACzC,EAA+B,CAAA,SAAA,EAAA,CAAA;AAC4C,IAD3E,oDAA+B,CACb,OAAA,EAAA,OAAA,CAAA,GAAA,CAAA,CAAA,UAAA,EAAA,MAAA,CAAA,QAAA,IAAA,MAAA,CAAA,QAAA,CAAkC,6BAAsB,CAA0B,SAAA,EAAA,OAAA,CAAA,QAAA,CAAA,CAAA;;IACrF,EAA0B,CAAA,SAAA,EAAA,CAAA;IAA1B,EAA0B,CAAA,UAAA,CAAA,aAAA,EAAA,OAAA,CAAA,KAAA,CAAA,CAAA;;;IAGpD,EACqD,CAAA,cAAA,CAAA,CAAA,EAAA,OAAA,EAAA,CAAA,CAAA,CAAA;AAGjD,IAFA,2BAC6G,CACxC,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,CAAA;IACzE,EAAQ,CAAA,YAAA,EAAA,CAAA;;;;;;IAJD,EAA6C,CAAA,UAAA,CAAA,SAAA,EAAA,EAAA,CAAA,eAAA,CAAA,CAAA,EAAAA,KAAA,EAAA,MAAA,CAAA,QAAA,IAAA,MAAA,CAAA,QAAA,CAAA,CAAA,CAAA;IACzC,EAA+B,CAAA,SAAA,EAAA,CAAA;AAC4C,IAD3E,oDAA+B,CACb,OAAA,EAAA,OAAA,CAAA,GAAA,CAAA,CAAA,UAAA,EAAA,MAAA,CAAA,QAAA,IAAA,MAAA,CAAA,QAAA,CAAkC,6BAAsB,CAA0B,SAAA,EAAA,OAAA,CAAA,QAAA,CAAA,CAAA;;;;;IAhBnH,EAI8C,CAAA,cAAA,CAAA,CAAA,EAAA,IAAA,EAAA,EAAA,CAAA,CAAA;AAA1C,IAAA,EAAA,CAAA,UAAA,CAAA,OAAA,EAAA,SAAA,sEAAA,CAAA,MAAA,EAAA,EAAA,MAAA,OAAA,GAAA,EAAA,CAAA,aAAA,CAAA,GAAA,CAAA,CAAA,SAAA,CAAA,CAAA,MAAA,MAAA,GAAA,EAAA,CAAA,aAAA,CAAA,CAAA,CAAA,CAAA,CAAA,OAAA,EAAA,CAAA,WAAA,CAAS,yCAA+B,CAAC,CAAA,EAAA,CAAA,CAAA;AASzC,IAPA,+FACqD,CAOA,CAAA,EAAA,0DAAA,EAAA,CAAA,EAAA,EAAA,EAAA,OAAA,EAAA,CAAA,CAAA,CAAA;IAKzD,EAAK,CAAA,YAAA,EAAA,CAAA;;;;IAjBD,EAA8B,CAAA,WAAA,CAAA,QAAA,EAAA,OAAA,CAAA,QAAA,CAAA,CAAA;IAD9B,EAAkF,CAAA,UAAA,CAAA,SAAA,EAAA,EAAA,CAAA,eAAA,CAAA,CAAA,EAAA,GAAA,EAAA,MAAA,CAAA,SAAA,EAAA,MAAA,CAAA,gBAAA,CAAA,CAAA,CAAA,gBAAA,EAAA,MAAA,CAAA,OAAA,CAExD,CAA6B,qBAAA,EAAA,OAAA,CAAA,CAAA;IAG/C,EAAc,CAAA,SAAA,EAAA,CAAA;IAAd,EAAc,CAAA,UAAA,CAAA,MAAA,EAAA,CAAA,MAAA,CAAA,OAAA,CAAA,CAAA;IAOd,EAAa,CAAA,SAAA,EAAA,CAAA;IAAb,EAAa,CAAA,UAAA,CAAA,MAAA,EAAA,MAAA,CAAA,OAAA,CAAA,CAAA;;;;IAvBjC,EAAqE,CAAA,cAAA,CAAA,CAAA,EAAA,IAAA,EAAA,EAAA,CAAA,CAAA,CAAA,EAAA,IAAA,EAAA,EAAA,CAC1C,CACuH,CAAA,EAAA,IAAA,EAAA,EAAA,CAAA,CAAA;AAA5G,IAAA,EAAA,CAAA,UAAA,CAAA,OAAA,EAAA,SAAA,iEAAA,CAAA,MAAA,EAAA,EAAA,EAAA,CAAA,aAAA,CAAA,GAAA,CAAA,CAAA,CAAA,MAAA,MAAA,GAAA,EAAA,CAAA,aAAA,CAAA,CAAA,CAAA,CAAA,CAAA,OAAA,EAAA,CAAA,WAAA,CAAS,gCAAyB,CAAC,CAAA,EAAA,CAAA,CAAA;IAC7D,EAAwB,CAAA,cAAA,CAAA,CAAA,EAAA,IAAA,EAAA,EAAA,CAAA,CAAA;IAAA,EACpB,CAAA,MAAA,CAAA,CAAA,CAAA,CAAA;IAAA,EAA2B,CAAA,cAAA,CAAA,CAAA,EAAA,KAAA,EAAA,EAAA,CAAA,CAAA;AAEvB,IADA,kFAAgI,CACvC,CAAA,EAAA,oDAAA,EAAA,CAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,CAAA;IAC7F,EAAM,CAAA,YAAA,EAAA,EACL,EACJ,CAAA;IACL,EAI8C,CAAA,UAAA,CAAA,CAAA,EAAA,kDAAA,EAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,EAAA,CAAA,CAAA;AAiBtD,IADI,iBAAK,EACJ,CAAA;;;;IA7BqE,EAAsB,CAAA,SAAA,CAAA,CAAA,CAAA,CAAA;AAAC,IAAvB,uCAAsB,CAAiD,SAAA,EAAA,EAAA,CAAA,eAAA,CAAA,CAAA,EAAA,GAAA,EAAA,MAAA,CAAA,WAAA,CAAA,CAAA,CAAA;IAC7G,EACpB,CAAA,SAAA,CAAA,CAAA,CAAA,CAAA;IADoB,EACpB,CAAA,kBAAA,CAAA,EAAA,EAAA,WAAA,CAAA,GAAA,EAAA,GAAA,CAAA,CAAA;IACiD,EAAiB,CAAA,SAAA,CAAA,CAAA,CAAA,CAAA;IAAjB,EAAiB,CAAA,UAAA,CAAA,MAAA,EAAA,MAAA,CAAA,WAAA,CAAA,CAAA;IACvD,EAAe,CAAA,SAAA,EAAA,CAAA;IAAf,EAAe,CAAA,UAAA,CAAA,MAAA,EAAA,MAAA,CAAA,SAAA,CAAA,CAAA;IAIb,EAAkB,CAAA,SAAA,EAAA,CAAA;IAAlB,EAAkB,CAAA,UAAA,CAAA,SAAA,EAAA,WAAA,CAAA,IAAA,CAAA,CAAA;;;IAV/C,EAAqE,CAAA,UAAA,CAAA,CAAA,EAAA,6CAAA,EAAA,CAAA,EAAA,CAAA,EAAA,IAAA,EAAA,EAAA,CAAA,CAAA;;;IAA5C,EAAc,CAAA,UAAA,CAAA,SAAA,EAAA,MAAA,CAAA,WAAA,CAAA,CAAA;;AClB3C,MAAMH,aAAW,GAAG,gCAAgC,CAAC;AACrD,MAAMC,eAAa,GAAG,EAAC,UAAU,EAAE,aAAa,EAAE,SAAS,EAAED,aAAW,EAAC,CAAC;AAYpE,MAAO,iBAAkB,SAAQ,yBAAyB,CAAA;AACrD,IAAA,SAAA,IAAA,CAAA,eAAe,GAAGH,eAAa,EAAhB,CAAmB,EAAA;IAOzC,WAAY,CAAA,GAAa,EAA0C,eAAoB,EAAA;AACnF,QAAA,KAAK,CAAC,GAAG,EAAEI,eAAa,EAAE,eAAe,CAAC,CAAC;QANxC,IAAM,CAAA,MAAA,GAAG,EAAE,CAAC;AAOf,QAAA,MAAM,CAAC,IAAI,CAAC,aAAa,EAAE,IAAI,CAAC,CAAC;AACjC,QAAA,IAAI,CAAC,QAAQ,GAAG,KAAK,CAAC;KACzB;IAED,qBAAqB,CAAC,GAAG,EAAE,MAAM,EAAA;AAC7B,QAAA,IAAI,CAAC,UAAU,GAAG,GAAG,CAAC;QAEtB,IAAI,CAAC,eAAe,EAAE,CAAC;;AAEvB,QAAA,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,SAAS,EAAE,MAAM,IAAI,EAAE,EAAE,IAAI,CAAC,CAAC;KAC3D;AAED;;AAEG;IACH,iBAAiB,CAAC,MAAM,EAAE,GAAG,EAAA;AACzB,QAAA,IAAI,CAAC,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,OAAO,CAAC,EAAE;YAC/B,OAAO;SACV;AAED,QAAA,IAAI,CAAC,qBAAqB,CAAC,GAAG,EAAE,MAAM,CAAC,CAAC;KAC3C;;AAGS,IAAA,WAAW,CAAC,IAAiB,EAAE,SAAiB,EAAE,QAAkB,EAAE,MAAW,EAAA;AACvF,QAAA,IAAI,SAAS,KAAK,OAAO,EAAE;YACvB,IAAI,CAAC,YAAY,CAAC,gBAAgB,CAC9B,IAAI,EACJ,SAAS,EACT,CAAC,IAAG;AACA,gBAAA,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,OAAO,CAAC,EAAE;oBAC1B,OAAO;iBACV;AACD,gBAAA,MAAM,CAAC,MAAM,GAAG,CAAC,CAAC;gBAClB,OAAO,QAAQ,EAAE,CAAC;AACtB,aAAC,CACJ,CAAC;SACL;aAAM,IAAI,CAAC,QAAQ,CAAC,CAAC,QAAQ,CAAC,EAAE,SAAS,CAAC,EAAE;YACzC,KAAK,CAAC,WAAW,CAAC,IAAI,EAAE,SAAS,EAAE,QAAQ,EAAE,MAAM,CAAC,CAAC;SACxD;KACJ;AAED,IAAA,gBAAgB,CAAC,GAAG,EAAE,EAAE,EAAE,EAAG,EAAA;AACzB,QAAA,IAAI,GAAG,KAAK,UAAU,EAAE;YACpB,OAAO;SACV;AACD,QAAA,IAAI,GAAG,KAAK,aAAa,EAAE;YACvB,YAAY,CAAC,IAAI,CAAC,CAAC;SACtB;aAAM;YACH,KAAK,CAAC,gBAAgB,CAAC,GAAG,EAAE,EAAE,EAAE,EAAE,CAAC,CAAC;SACvC;KACJ;AA7DQ,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,SAAA,yBAAA,CAAA,CAAA,EAAA,EAAA,OAAA,KAAA,CAAA,IAAA,iBAAiB,0DAQS,kBAAkB,EAAA,CAAA,CAAA,CAAA,CAAA,EAAA,CAAA,EAAA;AAR5C,IAAA,SAAA,IAAA,CAAA,IAAA,iBAAA,EAAA,CAAA,iBAAA,CAAA,EAAA,IAAA,EAAA,iBAAiB,EANf,SAAA,EAAA,CAAA,CAAA,EAAA,EAAA,YAAA,EAAA,EAAA,CAAA,CAAA,EAAA,QAAA,EAAA,CAAA,YAAA,CAAA,EAAA,QAAA,EAAA,CAAA,EAAA,CAAA,kBAAA,CAAA;AACP,gBAAA,SAAS,CAAC,iBAAiB,EAAE,iBAAiB,EAAE,IAAI,CAAC;AACrD,gBAAA,SAAS,CAAC,iBAAiB,EAAE,aAAa,EAAE,IAAI,CAAC;gBACjD,kBAAkB,CAAC,iBAAiB,CAAC;AACxC,aAAA,CAAA,EAAA,EAAA,CAAA,0BAAA,CAAA,EAAA,KAAA,EAAAC,KAAA,EAAA,KAAA,EAAA,CAAA,EAAA,IAAA,EAAA,CAAA,EAAA,MAAA,EAAA,CAAA,CAAA,qBAAA,EAAA,EAAA,CAAA,EAAA,CAAA,CAAA,EAAA,MAAA,EAAA,UAAA,CAAA,EAAA,CAAA,QAAA,EAAA,EAAA,EAAA,CAAA,EAAA,cAAA,EAAA,CAAA,EAAA,UAAA,CAAA,EAAA,CAAA,eAAA,EAAA,MAAA,EAAA,OAAA,EAAA,kBAAA,EAAA,CAAA,EAAA,MAAA,CAAA,EAAA,CAAA,kBAAA,EAAA,EAAA,EAAA,MAAA,EAAA,cAAA,EAAA,CAAA,EAAA,SAAA,EAAA,QAAA,EAAA,gBAAA,EAAA,qBAAA,EAAA,OAAA,EAAA,CAAA,EAAA,OAAA,EAAA,SAAA,CAAA,EAAA,CAAA,kBAAA,EAAA,EAAA,EAAA,MAAA,EAAA,cAAA,EAAA,CAAA,EAAA,OAAA,EAAA,SAAA,EAAA,gBAAA,EAAA,qBAAA,CAAA,EAAA,CAAA,OAAA,EAAA,oBAAA,EAAA,CAAA,EAAA,SAAA,EAAA,CAAA,EAAA,MAAA,CAAA,EAAA,CAAA,CAAA,EAAA,oBAAA,EAAA,CAAA,EAAA,SAAA,CAAA,EAAA,CAAA,MAAA,EAAA,OAAA,EAAA,CAAA,EAAA,MAAA,EAAA,OAAA,EAAA,UAAA,EAAA,UAAA,EAAA,SAAA,CAAA,EAAA,CAAA,CAAA,EAAA,SAAA,EAAA,CAAA,EAAA,aAAA,CAAA,EAAA,CAAA,0BAAA,EAAA,EAAA,EAAA,CAAA,EAAA,SAAA,EAAA,gBAAA,CAAA,EAAA,CAAA,eAAA,EAAA,MAAA,EAAA,CAAA,EAAA,kBAAA,CAAA,EAAA,CAAA,OAAA,EAAA,qBAAA,EAAA,CAAA,EAAA,OAAA,EAAA,SAAA,CAAA,EAAA,CAAA,CAAA,EAAA,qBAAA,CAAA,EAAA,CAAA,CAAA,EAAA,YAAA,CAAA,EAAA,CAAA,CAAA,EAAA,mBAAA,EAAA,CAAA,EAAA,OAAA,EAAA,OAAA,EAAA,SAAA,CAAA,EAAA,CAAA,CAAA,EAAA,aAAA,CAAA,EAAA,CAAA,CAAA,EAAA,eAAA,CAAA,EAAA,CAAA,OAAA,EAAA,kCAAA,EAAA,CAAA,EAAA,OAAA,EAAA,CAAA,EAAA,MAAA,CAAA,EAAA,CAAA,OAAA,EAAA,qBAAA,EAAA,CAAA,EAAA,aAAA,EAAA,CAAA,EAAA,MAAA,CAAA,EAAA,CAAA,kBAAA,EAAA,EAAA,EAAA,CAAA,EAAA,SAAA,EAAA,QAAA,EAAA,gBAAA,EAAA,qBAAA,EAAA,OAAA,EAAA,CAAA,EAAA,OAAA,EAAA,SAAA,CAAA,EAAA,CAAA,CAAA,EAAA,UAAA,EAAA,IAAA,EAAA,QAAA,EAAA,eAAA,EAAA,CAAA,EAAA,OAAA,CAAA,EAAA,CAAA,CAAA,EAAA,OAAA,EAAA,eAAA,EAAA,CAAA,EAAA,aAAA,CAAA,EAAA,CAAA,kBAAA,EAAA,EAAA,EAAA,CAAA,EAAA,OAAA,EAAA,SAAA,EAAA,gBAAA,EAAA,qBAAA,CAAA,CAAA,EAAA,QAAA,EAAA,SAAA,0BAAA,CAAA,EAAA,EAAA,GAAA,EAAA,EAAA,IAAA,EAAA,GAAA,CAAA,EAAA;YDvBL,EAAgE,CAAA,UAAA,CAAA,CAAA,EAAA,wCAAA,EAAA,CAAA,EAAA,CAAA,EAAA,aAAA,EAAA,CAAA,CAAA,CAAA;YAyBhE,EAAqE,CAAA,SAAA,CAAA,CAAA,EAAA,OAAA,EAAA,CAAA,CAAA,CAAA;AAIrE,YAHA,kEAAgF,CAG9C,CAAA,EAAA,wCAAA,EAAA,CAAA,EAAA,CAAA,EAAA,aAAA,EAAA,IAAA,EAAA,CAAA,EAAA,EAAA,CAAA,sBAAA,CAAA,CAAA;;;AA7BH,YAAlB,mCAAiB,CAAiC,UAAA,EAAA,uBAAA,CAAA,CAAA;YAyBxD,EAAiC,CAAA,SAAA,EAAA,CAAA;YAAjC,EAAiC,CAAA,UAAA,CAAA,UAAA,EAAA,GAAA,CAAA,QAAA,IAAA,GAAA,CAAA,QAAA,CAAA,CAAA;YAClC,EAA0B,CAAA,SAAA,EAAA,CAAA;YAA1B,EAA0B,CAAA,UAAA,CAAA,MAAA,EAAA,GAAA,CAAA,QAAA,IAAA,GAAA,CAAA,QAAA,CAAA,CAAA;;;iFCDnB,iBAAiB,EAAA,CAAA;cAV7B,SAAS;2BACI,cAAc,EAAA,QAAA,EACd,YAAY,EAEX,SAAA,EAAA;AACP,oBAAA,SAAS,CAAoB,iBAAA,EAAA,iBAAiB,EAAE,IAAI,CAAC;AACrD,oBAAA,SAAS,CAAoB,iBAAA,EAAA,aAAa,EAAE,IAAI,CAAC;AACjD,oBAAA,kBAAkB,CAAmB,iBAAA,CAAA;AACxC,iBAAA,EAAA,QAAA,EAAA,+pIAAA,EAAA,CAAA;;sBAU2B,MAAM;uBAAC,kBAAkB,CAAA;;sBAAG,QAAQ;;kFARvD,iBAAiB,EAAA,EAAA,SAAA,EAAA,mBAAA,EAAA,QAAA,EAAA,gCAAA,EAAA,UAAA,EAAA,EAAA,EAAA,CAAA,CAAA,EAAA,GAAA;;ACtBvB,MAAM,WAAW,GAAG,IAAI,GAAG,CAC9B;IACI,CAAC,WAAW,EAAE,YAAY,CAAC;IAC3B,CAAC,OAAO,EAAE,EAAC,KAAK,EAAE,EAAE,EAAE,GAAG,WAAW,EAAC,CAAC;IACtC,CAAC,WAAW,EAAE,WAAW,CAAC;IAC1B,CAAC,WAAW,EAAE,WAAW,CAAC;IAC1B,CAAC,SAAS,EAAE,QAAQ,CAAC;IACrB,CAAC,iBAAiB,EAAE,QAAQ,CAAC;IAC7B,CAAC,WAAW,EAAE,WAAW,CAAC;IAC1B,CAAC,YAAY,EAAE,WAAW,CAAC;IAC3B,CAAC,UAAU,EAAE,YAAY,CAAC;IAC1B,CAAC,mBAAmB,EAAE,WAAW,CAAC;IAClC,CAAC,cAAc,EAAE,WAAW,CAAC;IAC7B,CAAC,cAAc,EAAE,WAAW,CAAC;IAC7B,CAAC,SAAS,EAAE,WAAW,CAAC;IACxB,CAAC,MAAM,EAAE,WAAW,CAAC;IACrB,CAAC,OAAO,EAAE,WAAW,CAAC;IACtB,CAAC,UAAU,EAAE,EAAC,KAAK,EAAE,KAAK,EAAE,GAAG,YAAY,EAAC,CAAC;IAC7C,CAAC,MAAM,EAAE,WAAW,CAAC;IACrB,CAAC,SAAS,EAAE,WAAW,CAAC;IACxB,CAAC,aAAa,EAAE,WAAW,CAAC;IAC5B,CAAC,UAAU,EAAE,YAAY,CAAC;IAC1B,CAAC,UAAU,EAAE,YAAY,CAAC;IAC1B,CAAC,aAAa,EAAE,WAAW,CAAC;IAC5B,CAAC,MAAM,EAAE,EAAC,KAAK,EAAE,IAAI,EAAE,GAAG,YAAY,EAAC,CAAC;IACxC,CAAC,UAAU,EAAE,EAAC,KAAK,EAAE,CAAC,EAAE,GAAG,WAAW,EAAC,CAAC;IACxC,CAAC,SAAS,EAAE,YAAY,CAAC;AAC5B,CAAA,CACJ,CAAC;AAEK,MAAML,eAAa,GAAG,MAAK;AAC9B,IAAA,QAAQ,CACJ,WAAW,EACX,WAAW,CACd,CAAC;IACF,kBAAkB,CACd,cAAc,CAAC,MAAM,EACrB,IAAI,GAAG,CAAC,WAAW,CAAC,CACvB,CAAC;IACF,kBAAkB,CACd,cAAc,CAAC,SAAS,EACxB,IAAI,GAAG,CAAC,WAAW,CAAC,CACvB,CAAC;AACN,CAAC;;;;;;ICpBW,EAI2B,CAAA,SAAA,CAAA,CAAA,EAAA,QAAA,EAAA,CAAA,CAAA,CAAA;;;IAHvB,EAAkB,CAAA,UAAA,CAAA,OAAA,EAAA,OAAA,CAAA,GAAA,CAAA,CAAA,UAAA,EAAA,OAAA,CAAA,QAAA,CACQ,CACA,aAAA,EAAA,OAAA,CAAA,KAAA,CAAA,CAAA;;;IALlC,EAC2B,CAAA,cAAA,CAAA,CAAA,EAAA,UAAA,EAAA,CAAA,CAAA,CAAA;IACvB,EAIkB,CAAA,UAAA,CAAA,CAAA,EAAA,2DAAA,EAAA,CAAA,EAAA,CAAA,EAAA,QAAA,EAAA,CAAA,CAAA,CAAA;IACtB,EAAW,CAAA,YAAA,EAAA,CAAA;;;IANP,EAAsB,CAAA,UAAA,CAAA,OAAA,EAAA,WAAA,CAAA,GAAA,CAAA,CAAA;IACG,EAAiB,CAAA,SAAA,EAAA,CAAA;IAAjB,EAAiB,CAAA,UAAA,CAAA,SAAA,EAAA,WAAA,CAAA,IAAA,CAAA,CAAA;;;IAHlD,EAA8B,CAAA,uBAAA,CAAA,CAAA,CAAA,CAAA;IAC1B,EAC2B,CAAA,UAAA,CAAA,CAAA,EAAA,kDAAA,EAAA,CAAA,EAAA,CAAA,EAAA,UAAA,EAAA,CAAA,CAAA,CAAA;;;;IADI,EAAc,CAAA,SAAA,EAAA,CAAA;IAAd,EAAc,CAAA,UAAA,CAAA,SAAA,EAAA,MAAA,CAAA,WAAA,CAAA,CAAA;;;IAW7C,EAI2B,CAAA,SAAA,CAAA,CAAA,EAAA,QAAA,EAAA,CAAA,CAAA,CAAA;;;IAHvB,EAAkB,CAAA,UAAA,CAAA,OAAA,EAAA,OAAA,CAAA,GAAA,CAAA,CAAA,UAAA,EAAA,OAAA,CAAA,QAAA,CACQ,CACA,aAAA,EAAA,OAAA,CAAA,KAAA,CAAA,CAAA;;;IAJlC,EAA+B,CAAA,uBAAA,CAAA,CAAA,CAAA,CAAA;IAC3B,EAIkB,CAAA,UAAA,CAAA,CAAA,EAAA,gDAAA,EAAA,CAAA,EAAA,CAAA,EAAA,QAAA,EAAA,CAAA,CAAA,CAAA;;;;IAJO,EAAe,CAAA,SAAA,EAAA,CAAA;IAAf,EAAe,CAAA,UAAA,CAAA,SAAA,EAAA,MAAA,CAAA,YAAA,CAAA,CAAA;;ACzBhD,MAAMI,eAAa,GAAG,EAAC,UAAU,EAAE,WAAW,EAAE,SAAS,EAAE,oBAAoB,EAAC,CAAC;AAW3E,MAAO,eAAgB,SAAQ,yBAAyB,CAAA;AACnD,IAAA,SAAA,IAAA,CAAA,eAAe,GAAGJ,eAAa,EAAhB,CAAmB,EAAA;IAgBzC,IAAI,UAAU,CAAC,EAAE,EAAA;AACb,QAAA,IAAI,EAAE,IAAI,EAAE,CAAC,OAAO,IAAI,EAAE,CAAC,OAAO,CAAC,UAAU,CAAC,SAAS,CAAC,kBAAkB,CAAC,EAAE;AACzE,YAAA,IAAI,CAAC,SAAS,GAAG,EAAE,CAAC,OAAO,CAAC,UAAU,CAAC,SAAS,CAAC,kBAAkB,CAAC,CAAC;SACxE;KACJ;AAED,IAAA,WAAA,CAAY,GAAa,EAAE,GAAQ,EAA0C,eAAoB,EAAA;AAC7F,QAAA,KAAK,CAAC,GAAG,EAAEI,eAAa,EAAE,eAAe,CAAC,CAAC;AAC3C,QAAA,IAAI,CAAC,GAAG,GAAG,GAAG,CAAC;AACf,QAAA,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC;KAC5B;IAED,eAAe,GAAA;QACX,KAAK,CAAC,eAAe,EAAE,CAAC;QACxB,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,aAA4B,EAAE,IAAI,CAAC,CAAC;KAC5D;;AAGS,IAAA,WAAW,CAAC,IAAiB,EAAE,SAAiB,EAAE,aAAuB,EAAE,MAAW,EAAA;AAC5F,QAAA,IAAI,CAAC,QAAQ,CAAC,CAAC,MAAM,EAAE,QAAQ,CAAC,EAAE,SAAS,CAAC,EAAE;AAC1C,YAAA,KAAK,CAAC,WAAW,CAAC,IAAI,CAAC,QAAQ,CAAC,aAAa,EAAE,SAAS,EAAE,aAAa,EAAE,MAAM,CAAC,CAAC;SACpF;KACJ;AAED,IAAA,mBAAmB,CAAC,MAAM,EAAA;AACtB,QAAA,IAAI,IAAI,CAAC,QAAQ,EAAE;AACf,YAAA,IAAI,IAAI,CAAC,WAAW,EAAE;gBAClB,IAAI,CAAC,QAAQ,CAAC,aAAa,CAAC,KAAK,GAAG,IAAI,CAAC,WAAW,CAAC;aACxD;iBAAM;gBACH,IAAI,CAAC,QAAQ,CAAC,aAAa,CAAC,KAAK,GAAG,EAAE,CAAC;aAC1C;AACD,YAAA,IAAI,CAAC,SAAS,GAAI,IAAY,CAAC,aAAa,CAAC;YAC7C,OAAO;SACV;QACD,IAAI,CAAC,eAAe,EAAE,CAAC;;AAEvB,QAAA,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,SAAS,EAAE,MAAM,IAAI,EAAE,EAAE,IAAI,CAAC,CAAC;KAC3D;AAED,IAAA,gBAAgB,CAAC,GAAW,EAAE,EAAO,EAAE,EAAQ,EAAA;AAC3C,QAAA,IAAI,GAAG,KAAK,UAAU,EAAG;AACrB,YAAA,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;YAC/B,OAAO;SACV;QACD,IAAI,GAAG,KAAK,OAAO,IAAK,GAAG,KAAK,UAAU,EAAE;AACxC,YAAA,IAAG,GAAG,KAAK,OAAO,EAAE;;gBAEhB,MAAM,kBAAkB,GAAG,IAAI,CAAC,QAAQ,CAAC,aAAa,CAAC,SAAS,CAAC,QAAQ,CAAC,cAAc,CAAC,IAAI,IAAI,CAAC,QAAQ,CAAC,aAAa,CAAC,SAAS,CAAC,QAAQ,CAAC,UAAU,CAAC,CAAA;AACvJ,gBAAA,IAAG,kBAAkB,IAAI,EAAE,CAAC,QAAQ,CAAC,cAAc,CAAC,IAAI,EAAE,CAAC,QAAQ,CAAC,YAAY,CAAC,EAAE;oBAC/E,UAAU,CAAC,MAAI;AACX,wBAAA,IAAG,IAAI,CAAC,QAAQ,CAAC,aAAa,CAAC,SAAS,CAAC,QAAQ,CAAC,cAAc,CAAC,IAAI,IAAI,CAAC,QAAQ,CAAC,aAAa,CAAC,SAAS,CAAC,QAAQ,CAAC,UAAU,CAAC,IAAI,IAAI,CAAC,QAAQ,CAAC,aAAa,CAAC,SAAS,CAAC,QAAQ,CAAC,YAAY,CAAC,EAAE;4BAC7L,IAAI,CAAC,QAAQ,CAAC,aAAa,CAAC,SAAS,CAAC,MAAM,CAAC,YAAY,CAAC,CAAC;yBAC9D;AACL,qBAAC,CAAC,CAAC;iBACN;aACJ;YACD,OAAO;SACV;AAAM,aAAA,IAAI,GAAG,KAAK,UAAU,EAAE;AAC1B,YAAA,CAAC,EAAE,KAAK,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC,QAAQ,CAAC,aAAa,EAAE,UAAU,EAAE,UAAU,CAAC,GAAG,UAAU,CAAC,IAAI,CAAC,QAAQ,CAAC,aAAa,EAAE,UAAU,CAAC,CAAE;SACxI;QACD,KAAK,CAAC,gBAAgB,CAAC,GAAG,EAAE,EAAE,EAAE,EAAE,CAAC,CAAC;KACvC;AAED;;;;;AAKG;AACH,IAAA,qBAAqB,CAAC,MAAM,EAAA;AACxB,QAAA,MAAM,SAAS,GAAG,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,aAAa,CAAC,CAAC,OAAO,CAAC,wCAAwC,CAAC,CAAC;AACnG,QAAA,IAAI,SAAS,CAAC,MAAM,GAAG,CAAC,EAAE;AACtB,YAAA,IAAI,MAAM,CAAC,IAAI,KAAK,OAAO,KAAK,CAAC,IAAI,CAAC,SAAS,KAAK,IAAI,CAAC,SAAS,IAAI,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,IAAI,CAAC,wBAAwB,CAAC,CAAC,IAAI,EAAE,KAAK,EAAE,IAAI,IAAI,CAAC,WAAW,CAAC,CAAC,EAAE;gBACvJ,IAAG,EAAE,IAAI,CAAC,SAAS,IAAI,IAAI,CAAC,WAAW,CAAC,EAAE;oBACtC,IAAI,CAAC,uBAAuB,EAAE,CAAC;iBAClC;qBAAM;AACH,oBAAA,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,aAAa,CAAC,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;iBAC9E;aACJ;AAAM,iBAAA,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE;AACxB,gBAAA,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,aAAa,CAAC,CAAC,IAAI,CAAC,iBAAiB,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;AAChE,gBAAA,SAAS,CAAC,WAAW,CAAC,cAAc,CAAC,CAAC;aACzC;SACJ;aAAM,IAAG,EAAE,IAAI,CAAC,SAAS,IAAI,IAAI,CAAC,WAAW,CAAC,EAAE;YAC7C,IAAI,CAAC,uBAAuB,EAAE,CAAC;SAClC;KACJ;AAED;;;AAGI;IACI,uBAAuB,GAAA;AAC3B,QAAA,MAAM,SAAS,GAAG,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,aAAa,CAAC,CAAC,IAAI,CAAC,oBAAoB,CAAC,CAAC;AAC5E,QAAA,IAAI,SAAS,CAAC,MAAM,EAAE;YAClB,SAAS,CAAC,MAAM,EAAE,CAAC;YACnB,IAAI,CAAC,QAAQ,CAAC,aAAa,CAAC,KAAK,GAAG,EAAE,CAAC;SAC1C;KACJ;AAlHQ,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,SAAA,uBAAA,CAAA,CAAA,EAAA,EAAA,OAAA,KAAA,CAAA,IAAA,eAAe,0FAuBqB,kBAAkB,EAAA,CAAA,CAAA,CAAA,CAAA,EAAA,CAAA,EAAA;oEAvBtD,eAAe,EAAA,SAAA,EAAA,CAAA,CAAA,WAAA,CAAA,CAAA,EAAA,SAAA,EAAA,SAAA,qBAAA,CAAA,EAAA,EAAA,GAAA,EAAA,EAAA,IAAA,EAAA,GAAA,CAAA,EAAA;qCAemB,UAAU,CAAA,CAAA;;;;AArB1C,SAAA,EAAA,EAAA,QAAA,EAAA,CAAA,EAAA,CAAA,kBAAA,CAAA;AACP,gBAAA,SAAS,CAAC,eAAe,EAAE,iBAAiB,EAAE,IAAI,CAAC;AACnD,gBAAA,SAAS,CAAC,eAAe,EAAE,aAAa,EAAE,IAAI,CAAC;gBAC/C,kBAAkB,CAAC,eAAe,CAAC;AACtC,aAAA,CAAA,EAAA,EAAA,CAAA,0BAAA,CAAA,EAAA,KAAA,EAAA,CAAA,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,CAAA,CAAA,QAAA,EAAA,EAAA,CAAA,EAAA,CAAA,MAAA,EAAA,SAAA,EAAA,eAAA,EAAA,MAAA,EAAA,eAAA,EAAA,OAAA,EAAA,cAAA,EAAA,EAAA,EAAA,CAAA,EAAA,eAAA,EAAA,QAAA,EAAA,OAAA,EAAA,MAAA,EAAA,SAAA,EAAA,UAAA,EAAA,UAAA,EAAA,UAAA,EAAA,SAAA,EAAA,gBAAA,EAAA,UAAA,EAAA,WAAA,CAAA,EAAA,CAAA,UAAA,EAAA,EAAA,EAAA,OAAA,EAAA,WAAA,EAAA,IAAA,EAAA,mBAAA,EAAA,CAAA,EAAA,aAAA,EAAA,QAAA,CAAA,EAAA,CAAA,CAAA,EAAA,MAAA,CAAA,EAAA,CAAA,CAAA,EAAA,OAAA,EAAA,CAAA,EAAA,OAAA,EAAA,SAAA,CAAA,EAAA,CAAA,CAAA,EAAA,OAAA,CAAA,EAAA,CAAA,MAAA,EAAA,QAAA,EAAA,CAAA,EAAA,OAAA,EAAA,UAAA,EAAA,aAAA,EAAA,CAAA,EAAA,OAAA,EAAA,SAAA,CAAA,EAAA,CAAA,MAAA,EAAA,QAAA,EAAA,CAAA,EAAA,OAAA,EAAA,UAAA,EAAA,aAAA,CAAA,CAAA,EAAA,QAAA,EAAA,SAAA,wBAAA,CAAA,EAAA,EAAA,GAAA,EAAA,EAAA,IAAA,EAAA,GAAA,CAAA,EAAA;;YDnBL,EAegC,CAAA,cAAA,CAAA,CAAA,EAAA,QAAA,EAAA,CAAA,EAAA,CAAA,CAAA,CAAA;YATxB,EAAwB,CAAA,gBAAA,CAAA,eAAA,EAAA,SAAA,wDAAA,CAAA,MAAA,EAAA,EAAA,EAAA,CAAA,aAAA,CAAA,GAAA,CAAA,CAAA,CAAA,EAAA,CAAA,kBAAA,CAAA,GAAA,CAAA,UAAA,EAAA,MAAA,CAAA,KAAA,GAAA,CAAA,UAAA,GAAA,MAAA,CAAA,CAAA,CAAA,OAAA,EAAA,CAAA,WAAA,CAAA,MAAA,CAAA,CAAA,EAAA,CAAA,CAAA;YAGxB,EAAU,CAAA,UAAA,CAAA,QAAA,EAAA,SAAA,iDAAA,CAAA,MAAA,EAAA,EAAA,EAAA,CAAA,aAAA,CAAA,GAAA,CAAA,CAAA,CAAA,OAAA,EAAA,CAAA,WAAA,CAAA,GAAA,CAAA,mBAAA,CAAA,MAAA,CAA2B,CAAC,CAAA,EAAA,CAAA,CAAA,OAAA,EAAA,SAAA,gDAAA,CAAA,MAAA,EAAA,EAAA,EAAA,CAAA,aAAA,CAAA,GAAA,CAAA,CAAA,CAAA,OAAA,EAAA,CAAA,WAAA,CAC7B,GAA6B,CAAA,qBAAA,CAAA,MAAA,CAAA,CAAA,CAAA,EAAA,CAAC,CAC/B,MAAA,EAAA,SAAA,+CAAA,CAAA,MAAA,EAAA,EAAA,EAAA,CAAA,aAAA,CAAA,GAAA,CAAA,CAAA,CAAA,GAAA,CAAA,eAAA,CAAA,MAAA,CAAuB,CAAE,CAAA,OAAA,EAAA,CAAA,WAAA,CAAA,GAAA,CAAA,qBAAA,CAAA,MAAA,CAA6B,CAAC,CAAA,EAAA,CAAA,CAAA;YAM/D,EAIyC,CAAA,SAAA,CAAA,CAAA,EAAA,QAAA,EAAA,CAAA,CAAA,CAAA;AAa7C,YAXA,kFAA8B,CAWC,CAAA,EAAA,uCAAA,EAAA,CAAA,EAAA,CAAA,EAAA,cAAA,EAAA,CAAA,CAAA,CAAA;YAOnC,EAAS,CAAA,YAAA,EAAA,CAAA;;AApCD,YAHA,EAA8C,CAAA,UAAA,CAAA,SAAA,EAAA,EAAA,CAAA,eAAA,CAAA,EAAA,EAAAG,KAAA,EAAA,GAAA,CAAA,KAAA,CAAA,CAAA,CAAA,UAAA,EAAA,GAAA,CAAA,QAAA,CACzB,0BACA,CACA,UAAA,EAAA,GAAA,CAAA,QAAA,CAAA,CAAA;YACrB,EAAwB,CAAA,gBAAA,CAAA,SAAA,EAAA,GAAA,CAAA,UAAA,CAAA,CAAA;YACxB,EAAqC,CAAA,UAAA,CAAA,gBAAA,EAAA,EAAA,CAAA,eAAA,CAAA,EAAA,EAAAD,KAAA,CAAA,CAAA,CAAA,UAAA,EAAA,GAAA,CAAA,QAAA,CAChB,CAOE,WAAA,EAAA,GAAA,CAAA,SAAA,CAAA,CAAA;;YAIf,EAA2B,CAAA,SAAA,CAAA,CAAA,CAAA,CAAA;AAE3B,YAFA,6CAA2B,CAEJ,QAAA,EAAA,CAAA,GAAA,CAAA,WAAA,CAAA,CAAA;YAEpB,EAAa,CAAA,SAAA,EAAA,CAAA;YAAb,EAAa,CAAA,UAAA,CAAA,MAAA,EAAA,GAAA,CAAA,OAAA,CAAA,CAAA;YAWb,EAAc,CAAA,SAAA,EAAA,CAAA;YAAd,EAAc,CAAA,UAAA,CAAA,MAAA,EAAA,CAAA,GAAA,CAAA,OAAA,CAAA,CAAA;;;iFCbpB,eAAe,EAAA,CAAA;cAT3B,SAAS;AACI,QAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,WAAW,EAEV,SAAA,EAAA;AACP,oBAAA,SAAS,CAAkB,eAAA,EAAA,iBAAiB,EAAE,IAAI,CAAC;AACnD,oBAAA,SAAS,CAAkB,eAAA,EAAA,aAAa,EAAE,IAAI,CAAC;AAC/C,oBAAA,kBAAkB,CAAiB,eAAA,CAAA;AACtC,iBAAA,EAAA,QAAA,EAAA,ykDAAA,EAAA,CAAA;;sBAyBqC,MAAM;uBAAC,kBAAkB,CAAA;;sBAAG,QAAQ;qBARjB,QAAQ,EAAA,CAAA;kBAAhE,SAAS;mBAAC,QAAQ,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,IAAI,EAAE,UAAU,EAAE,CAAA;;kFAf9C,eAAe,EAAA,EAAA,SAAA,EAAA,iBAAA,EAAA,QAAA,EAAA,4BAAA,EAAA,UAAA,EAAA,EAAA,EAAA,CAAA,CAAA,EAAA,GAAA;;AClBrB,MAAM,WAAW,GAAG,IAAI,GAAG,CAC9B;IACI,CAAC,OAAO,EAAE,WAAW,CAAC;IACtB,CAAC,WAAW,EAAE,WAAW,CAAC;IAC1B,CAAC,WAAW,EAAE,WAAW,CAAC;IAC1B,CAAC,SAAS,EAAE,EAAC,KAAK,EAAE,gBAAgB,EAAE,GAAG,QAAQ,EAAC,CAAC;IACnD,CAAC,iBAAiB,EAAE,QAAQ,CAAC;IAC7B,CAAC,WAAW,EAAE,WAAW,CAAC;IAC1B,CAAC,UAAU,EAAE,YAAY,CAAC;IAC1B,CAAC,mBAAmB,EAAE,WAAW,CAAC;IAClC,CAAC,cAAc,EAAE,WAAW,CAAC;IAC7B,CAAC,MAAM,EAAE,WAAW,CAAC;IACrB,CAAC,WAAW,EAAE,WAAW,CAAC;IAC1B,CAAC,MAAM,EAAE,WAAW,CAAC;IACrB,CAAC,SAAS,EAAE,WAAW,CAAC;IACxB,CAAC,UAAU,EAAE,YAAY,CAAC;IAC1B,CAAC,MAAM,EAAE,EAAC,KAAK,EAAE,IAAI,EAAE,GAAG,YAAY,EAAC,CAAC;IACxC,CAAC,UAAU,EAAE,EAAC,KAAK,EAAE,CAAC,EAAE,GAAG,WAAW,EAAC,CAAC;AAC3C,CAAA,CACJ,CAAC;AAGK,MAAMN,eAAa,GAAG,MAAK;AAC9B,IAAA,QAAQ,CACJ,WAAW,EACX,WAAW,CACd,CAAC;IACF,kBAAkB,CACd,cAAc,CAAC,MAAM,EACrB,IAAI,GAAG,CAAC,WAAW,CAAC,CACvB,CAAC;IACF,kBAAkB,CACd,cAAc,CAAC,MAAM,EACrB,IAAI,GAAG,CAAC,WAAW,CAAC,CACvB,CAAC;AACN,CAAC;;;;;;IC7BO,EAAiJ,CAAA,SAAA,CAAA,CAAA,EAAA,GAAA,EAAA,CAAA,CAAA,CAAA;;;;IAAvE,EAAkE,CAAA,UAAA,CAAA,SAAA,EAAA,EAAA,CAAA,eAAA,CAAA,CAAA,EAAAM,KAAA,EAAA,MAAA,CAAA,UAAA,CAAA,MAAA,CAAA,SAAA,CAAA,IAAA,MAAA,CAAA,MAAA,CAAA,CAAA,CAAA,CAAA;;;;IARhJ,EAOC,CAAA,cAAA,CAAA,CAAA,EAAA,GAAA,EAAA,CAAA,CAAA,CAAA;AADE,IAAA,EAAA,CAAA,UAAA,CAAA,OAAA,EAAA,SAAA,+CAAA,CAAA,MAAA,EAAA,EAAA,MAAA,MAAA,GAAA,EAAA,CAAA,aAAA,CAAA,GAAA,CAAA,CAAA,CAAA,MAAA,MAAA,GAAA,MAAA,CAAA,SAAA,CAAA,CAAA,MAAA,SAAA,GAAA,MAAA,CAAA,KAAA,CAAA,CAAA,MAAA,MAAA,GAAA,EAAA,CAAA,aAAA,EAAA,CAAA,CAAA,OAAA,EAAA,CAAA,WAAA,CAAS,2CAA8B,CAAC,CAAA,EAAA,CAAA,CAAA;IAEvC,EAA6I,CAAA,UAAA,CAAA,CAAA,EAAA,gCAAA,EAAA,CAAA,EAAA,CAAA,EAAA,GAAA,EAAA,CAAA,CAAA,CAAA;IAC7I,EAA4E,CAAA,SAAA,CAAA,CAAA,EAAA,MAAA,EAAA,CAAA,CAAA,CAAA;IAChF,EAAI,CAAA,YAAA,EAAA,CAAA;;;;AALD,IADA,gDAA+B,CAC6B,SAAA,EAAA,EAAA,CAAA,eAAA,CAAA,CAAA,EAAAC,KAAA,EAAA,MAAA,CAAA,QAAA,EAAA,MAAA,CAAA,QAAA,CAAA,CAAA,CAAA;IAGvD,EAAiD,CAAA,SAAA,EAAA,CAAA;IAAjD,EAAiD,CAAA,UAAA,CAAA,MAAA,EAAA,MAAA,CAAA,UAAA,IAAA,MAAA,CAAA,UAAA,CAAA,MAAA,CAAA,SAAA,CAAA,CAAA,CAAA;IAC/B,EAA8C,CAAA,SAAA,EAAA,CAAA;IAA9C,EAA8C,CAAA,UAAA,CAAA,aAAA,EAAA,MAAA,CAAA,MAAA,CAAA,YAAA,CAAA,IAAA,MAAA,CAAA,KAAA,CAAA,CAAA;;;IAKxE,EAC4G,CAAA,SAAA,CAAA,CAAA,EAAA,GAAA,CAAA,CAAA;;;IAAzG,EAAoG,CAAA,sBAAA,CAAA,WAAA,EAAA,MAAA,CAAA,YAAA,IAAA,MAAA,CAAA,YAAA,CAAA,UAAA,IAAA,MAAA,CAAA,YAAA,CAAA,UAAA,CAAA,MAAA,CAAA,SAAA,CAAA,EAAA,EAAA,CAAA,CAAA;;ACJ3G,MAAM,WAAW,GAAG,YAAY,CAAC;AACjC,MAAMH,eAAa,GAAG,EAAC,UAAU,EAAE,WAAW,EAAE,SAAS,EAAE,WAAW,EAAC,CAAC;AAWlE,MAAO,eAAgB,SAAQ,yBAAyB,CAAA;AACnD,IAAA,SAAA,IAAA,CAAA,eAAe,GAAGJ,eAAa,EAAhB,CAAmB,EAAA;IAWzC,WAAY,CAAA,GAAa,EAA0C,eAAoB,EAAA;AACnF,QAAA,KAAK,CAAC,GAAG,EAAEI,eAAa,EAAE,eAAe,CAAC,CAAC;QAV/C,IAAO,CAAA,OAAA,GAAG,EAAE,CAAC;QAYT,IAAI,CAAC,yBAAyB,GAAGK,UAAQ,CAAC,CAAC,GAAG,KAAI;YAC9C,IAAI,CAAC,gBAAgB,EAAE,CAAC;AACxB,YAAA,IAAI,CAAC,iBAAiB,CAAC,GAAG,CAAC,CAAC;;YAE5B,IAAI,GAAG,EAAE;AACL,gBAAA,UAAU,EAAE,CAAC;aAChB;SACJ,EAAE,GAAG,CAAC,CAAC;AAER,QAAA,MAAM,mBAAmB,GAAG,IAAI,CAAC,QAAQ,CAAC,SAAS,CAAC,MAAM,IAAI,CAAC,mBAAmB,EAAE,CAAC,CAAC;QAEtF,IAAI,CAAC,uBAAuB,CAAC,MAAM,mBAAmB,CAAC,WAAW,EAAE,CAAC,CAAC;QAEtE,MAAM,qBAAqB,GAAG,IAAI,CAAC,UAAU,CAAC,SAAS,CAAC,MAAK;AACzD,YAAA,IAAI,CAAC,yBAAyB,CAAC,IAAI,CAAC,CAAC;AACzC,SAAC,CAAC,CAAC;QACH,IAAI,CAAC,uBAAuB,CAAC,MAAM,qBAAqB,CAAC,WAAW,EAAE,CAAC,CAAC;KAC3E;IAED,eAAe,GAAA;QACX,KAAK,CAAC,eAAe,EAAE,CAAC;AACxB,QAAA,MAAM,CAAC,IAAI,CAAC,aAA4B,EAAE,IAAI,CAAC,CAAC;KACnD;AAED,IAAA,aAAa,CAAC,GAAW,EAAE,EAAO,EAAE,EAAQ,EAAA;AACxC,QAAA,IAAI,GAAG,KAAK,QAAQ,EAAE;AAClB,YAAA,MAAM,CAAC,IAAI,CAAC,aAAa,EAAE,UAAU,EAAE,EAAE,GAAG,MAAM,GAAG,EAAE,CAAC,CAAC;SAC5D;aAAM;YACH,KAAK,CAAC,aAAa,CAAC,GAAG,EAAE,EAAE,EAAE,EAAE,CAAC,CAAC;SACpC;KACJ;;IAGO,gBAAgB,GAAA;AACpB,QAAA,IAAI,SAAS,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,SAAS,CAAC,IAAI,CAAC,sBAAsB,CAAC,EAAE;AACrE,YAAA,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC,IAAI,CAAC,YAAY,EAAE,EAAC,QAAQ,EAAE,IAAI,EAAC,CAAC,CAAC;YAC9D,OAAO;SACV;;AAGD,QAAA,IAAI,CAAC,gBAAgB,CAAC,CAAC,CAAC,CAAC;KAC5B;;;IAIO,mBAAmB,GAAA;AACvB,QAAA,IAAI,IAAI,CAAC,YAAY,CAAC,MAAM,EAAE;AAC1B,YAAA,IAAI,CAAC,QAAQ,IAAI,GAAG,GAAG,IAAI,CAAC,YAAY,CAAC,MAAM,CAAC,CAAC;AACjD,YAAA,MAAM,CAAC,IAAI,CAAC,aAAa,CAAC,aAAa,CAAC,qBAAqB,CAAgB,EAAE,OAAO,EAAE,IAAI,CAAC,QAAQ,GAAG,GAAG,CAAC,CAAC;SAChH;AAED,QAAA,IAAI,CAAC,yBAAyB,CAAC,IAAI,CAAC,CAAC;KACxC;;AAGO,IAAA,iBAAiB,CAAC,aAAc,EAAA;AACpC,QAAA,MAAM,OAAO,GAAG,CAAC,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC,IAAI,CAAC,yBAAyB,CAAC,CAAC;QAEtE,IAAI,CAAC,gBAAgB,EAAE,CAAC;AAExB,QAAA,IAAI,IAAI,EACJ,KAAK,GAAG,IAAI,CAAC,YAAY,GAAG,SAAS,CAAC,IAAI,CAAC,YAAY,EAAE,EAAC,GAAG,EAAE,IAAI,CAAC,YAAY,CAAC,GAAG,EAAC,CAAC,GAAG,CAAC,CAAC,CAAC;QAEhG,IAAI,KAAK,KAAK,SAAS,IAAI,KAAK,KAAK,IAAI,EAAE;YACvC,KAAK,GAAG,CAAC,CAAC,CAAC;SACd;AACD,QAAA,IAAI,GAAG,KAAK,GAAG,IAAI,CAAC,QAAQ,CAAC;QAC7B,IAAI,aAAa,EAAE;YACf,OAAO,CAAC,GAAG,CAAC,MAAM,EAAE,IAAI,GAAG,GAAG,CAAC,CAAC;SACnC;aAAM;YACH,OAAO,CAAC,OAAO,CAAC;gBACZ,IAAI,EAAE,IAAI,GAAG,GAAG;aACnB,EAAE,GAAG,CAAC,CAAC;SACX;KACJ;AAED,IAAA,gBAAgB,CAAC,MAAM,EAAA;AACnB,QAAA,IAAI,CAAC,IAAI,CAAC,YAAY,CAAC,MAAM,EAAE;YAC3B,OAAO;SACV;QACD,MAAM,GAAG,GAAG,IAAI,CAAC,YAAY,CAAC,MAAM,CAAC,CAAC;AACtC,QAAA,IAAI,CAAC,aAAa,GAAG,GAAG,CAAC,KAAK,CAAC;KAClC;;;AAID,IAAA,SAAS,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAA;QAC5B,MAAM,CAAC,cAAc,EAAE,CAAC;AAExB,QAAA,IAAI,IAAI,CAAC,QAAQ,EAAE;YACf,OAAO;SACV;AAED,QAAA,IAAI,CAAC,UAAU,GAAG,MAAM,CAAC,GAAG,CAAC;QAC7B,IAAI,CAAC,eAAe,EAAE,CAAC;QAEvB,IAAI,IAAI,CAAC,YAAY,IAAI,MAAM,KAAK,SAAS,CAAC,IAAI,CAAC,YAAY,EAAE,EAAC,GAAG,EAAE,IAAI,CAAC,YAAY,CAAC,GAAG,EAAC,CAAC,EAAE;YAC5F,IAAI,IAAI,CAAC,YAAY,CAAC,MAAM,KAAK,CAAC,EAAE;AAChC,gBAAA,MAAM,GAAG,MAAM,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;aACjC;iBAAM;gBACH,OAAO;aACV;SACJ;QACD,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC,YAAY,CAAC,MAAM,CAAC,CAAC;QAC9C,IAAI,CAAC,iBAAiB,EAAE,CAAC;;AAGzB,QAAA,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,SAAS,EAAE,MAAM,IAAI,EAAE,EAAE,IAAI,CAAC,CAAC;AACxD,QAAA,UAAU,EAAE,CAAC;KAChB;AAED,IAAA,gBAAgB,CAAC,GAAG,EAAE,EAAE,EAAE,EAAG,EAAA;QACzB,IAAI,GAAG,KAAK,UAAU,IAAI,CAAC,SAAS,CAAC,EAAE,CAAC,EAAE;AACtC,YAAA,IAAI,CAAC,aAAa,CAAC,eAAe,CAAC,GAAG,CAAC,CAAC;SAC3C;aAAM;YACH,KAAK,CAAC,gBAAgB,CAAC,GAAG,EAAE,EAAE,EAAE,EAAE,CAAC,CAAC;SACvC;KACJ;AApIQ,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,SAAA,uBAAA,CAAA,CAAA,EAAA,EAAA,OAAA,KAAA,CAAA,IAAA,eAAe,0DAYW,kBAAkB,EAAA,CAAA,CAAA,CAAA,CAAA,EAAA,CAAA,EAAA;AAZ5C,IAAA,SAAA,IAAA,CAAA,IAAA,iBAAA,EAAA,CAAA,iBAAA,CAAA,EAAA,IAAA,EAAA,eAAe,EANb,SAAA,EAAA,CAAA,CAAA,EAAA,EAAA,UAAA,EAAA,EAAA,CAAA,CAAA,EAAA,QAAA,EAAA,CAAA,UAAA,CAAA,EAAA,QAAA,EAAA,CAAA,EAAA,CAAA,kBAAA,CAAA;AACP,gBAAA,SAAS,CAAC,eAAe,EAAE,iBAAiB,EAAE,IAAI,CAAC;gBACnD,kBAAkB,CAAC,eAAe,CAAC;AACtC,aAAA,CAAA,EAAA,EAAA,CAAA,0BAAA,CAAA,EAAA,KAAA,EAAAJ,KAAA,EAAA,KAAA,EAAA,CAAA,EAAA,IAAA,EAAA,CAAA,EAAA,MAAA,EAAA,CAAA,CAAA,MAAA,EAAA,OAAA,EAAA,CAAA,EAAA,WAAA,EAAA,qBAAA,CAAA,EAAA,CAAA,cAAA,EAAA,EAAA,EAAA,MAAA,EAAA,qBAAA,EAAA,OAAA,EAAA,iBAAA,EAAA,CAAA,EAAA,MAAA,EAAA,SAAA,EAAA,OAAA,EAAA,CAAA,EAAA,OAAA,EAAA,SAAA,CAAA,EAAA,CAAA,CAAA,EAAA,KAAA,EAAA,aAAA,EAAA,oBAAA,EAAA,eAAA,EAAA,CAAA,EAAA,OAAA,CAAA,EAAA,CAAA,CAAA,EAAA,OAAA,EAAA,CAAA,EAAA,MAAA,CAAA,EAAA,CAAA,aAAA,EAAA,MAAA,EAAA,CAAA,EAAA,cAAA,EAAA,SAAA,EAAA,CAAA,EAAA,MAAA,EAAA,UAAA,EAAA,OAAA,EAAA,UAAA,CAAA,EAAA,CAAA,cAAA,EAAA,EAAA,EAAA,MAAA,EAAA,qBAAA,EAAA,CAAA,EAAA,KAAA,EAAA,aAAA,EAAA,CAAA,EAAA,OAAA,EAAA,MAAA,EAAA,SAAA,CAAA,EAAA,CAAA,aAAA,EAAA,MAAA,EAAA,CAAA,EAAA,SAAA,EAAA,CAAA,EAAA,MAAA,CAAA,EAAA,CAAA,CAAA,EAAA,SAAA,EAAA,CAAA,EAAA,aAAA,CAAA,EAAA,CAAA,aAAA,EAAA,MAAA,EAAA,CAAA,EAAA,SAAA,CAAA,CAAA,EAAA,QAAA,EAAA,SAAA,wBAAA,CAAA,EAAA,EAAA,GAAA,EAAA,EAAA,IAAA,EAAA,GAAA,CAAA,EAAA;YDrBL,EAAwD,CAAA,cAAA,CAAA,CAAA,EAAA,KAAA,EAAA,CAAA,CAAA,CAAA;YACpD,EAOC,CAAA,UAAA,CAAA,CAAA,EAAA,4BAAA,EAAA,CAAA,EAAA,CAAA,EAAA,GAAA,EAAA,CAAA,CAAA,CAAA;YAIL,EAAM,CAAA,YAAA,EAAA,CAAA;YACN,EAC+D,CAAA,cAAA,CAAA,CAAA,EAAA,MAAA,EAAA,CAAA,CAAA,CAAA;YAC3D,EACwG,CAAA,UAAA,CAAA,CAAA,EAAA,4BAAA,EAAA,CAAA,EAAA,CAAA,EAAA,GAAA,EAAA,CAAA,CAAA,CAAA;YACxG,EACJ,CAAA,MAAA,CAAA,CAAA,CAAA,CAAA;YAAA,EAAO,CAAA,YAAA,EAAA,CAAA;YACP,EAAsI,CAAA,SAAA,CAAA,CAAA,EAAA,OAAA,EAAA,CAAA,CAAA,CAAA;;YAlB/G,EAAiB,CAAA,SAAA,EAAA,CAAA;YAAjB,EAAiB,CAAA,UAAA,CAAA,SAAA,EAAA,GAAA,CAAA,YAAA,CAAA,CAAA;YAYlC,EAAwD,CAAA,SAAA,EAAA,CAAA;YAAxD,EAAwD,CAAA,UAAA,CAAA,OAAA,EAAA,GAAA,CAAA,YAAA,GAAA,GAAA,CAAA,YAAA,CAAA,KAAA,GAAA,GAAA,CAAA,UAAA,CAAA,CAAA;YAEtD,EAAe,CAAA,SAAA,EAAA,CAAA;YAAf,EAAe,CAAA,UAAA,CAAA,MAAA,EAAA,GAAA,CAAA,SAAA,CAAA,CAAA;YAEnB,EACJ,CAAA,SAAA,EAAA,CAAA;YADI,EACJ,CAAA,kBAAA,CAAA,GAAA,EAAA,GAAA,CAAA,YAAA,GAAA,GAAA,CAAA,YAAA,CAAA,KAAA,GAAA,GAAA,CAAA,UAAA,EAAA,IAAA,CAAA,CAAA;YACO,EAAa,CAAA,SAAA,EAAA,CAAA;AAAyE,YAAtF,EAAa,CAAA,UAAA,CAAA,MAAA,EAAA,GAAA,CAAA,IAAA,CAAA,CAAA,UAAA,EAAA,GAAA,CAAA,QAAA,CAAmD,yBAAqB,CAAsB,UAAA,EAAA,GAAA,CAAA,QAAA,CAAA,CAAA;;;iFCKrG,eAAe,EAAA,CAAA;cAT3B,SAAS;AACI,QAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,YAAY,EAEX,SAAA,EAAA;AACP,oBAAA,SAAS,CAAkB,eAAA,EAAA,iBAAiB,EAAE,IAAI,CAAC;AACnD,oBAAA,kBAAkB,CAAiB,eAAA,CAAA;AACtC,iBAAA,EAAA,QAAA,EACS,UAAU,EAAA,QAAA,EAAA,8nCAAA,EAAA,CAAA;;sBAcQ,MAAM;uBAAC,kBAAkB,CAAA;;sBAAG,QAAQ;;kFAZvD,eAAe,EAAA,EAAA,SAAA,EAAA,iBAAA,EAAA,QAAA,EAAA,4BAAA,EAAA,UAAA,EAAA,EAAA,EAAA,CAAA,CAAA,EAAA,GAAA;;ACtBrB,MAAM,sBAAsB,GAAG,IAAI,GAAG,CACzC;IACI,CAAC,cAAc,EAAE,EAAC,KAAK,EAAE,IAAI,EAAE,GAAG,YAAY,EAAC,CAAC;IAChD,CAAC,UAAU,EAAE,EAAC,KAAK,EAAE,IAAI,EAAE,GAAG,YAAY,EAAC,CAAC;IAC5C,CAAC,WAAW,EAAE,YAAY,CAAC;IAC3B,CAAC,OAAO,EAAE,WAAW,CAAC;IACtB,CAAC,YAAY,EAAE,QAAQ,CAAC;IACxB,CAAC,WAAW,EAAE,WAAW,CAAC;IAC1B,CAAC,UAAU,EAAE,YAAY,CAAC;IAC1B,CAAC,MAAM,EAAE,WAAW,CAAC;IACrB,CAAC,UAAU,EAAE,WAAW,CAAC;IACzB,CAAC,UAAU,EAAE,WAAW,CAAC;IACzB,CAAC,MAAM,EAAE,WAAW,CAAC;IACrB,CAAC,aAAa,EAAE,EAAC,KAAK,EAAE,YAAY,EAAE,GAAG,WAAW,EAAC,CAAC;IACtD,CAAC,UAAU,EAAE,YAAY,CAAC;IAC1B,CAAC,UAAU,EAAE,YAAY,CAAC;IAC1B,CAAC,aAAa,EAAE,WAAW,CAAC;IAC5B,CAAC,MAAM,EAAE,EAAC,KAAK,EAAE,IAAI,EAAE,GAAG,YAAY,EAAC,CAAC;IACxC,CAAC,MAAM,EAAE,WAAW,CAAC;IACrB,CAAC,UAAU,EAAE,EAAC,KAAK,EAAE,CAAC,EAAE,GAAG,WAAW,EAAC,CAAC;IACxC,CAAC,MAAM,EAAE,WAAW,CAAC;IACrB,CAAC,UAAU,EAAE,WAAW,CAAC;IACzB,CAAC,kBAAkB,EAAE,QAAQ,CAAC;IAC9B,CAAC,kBAAkB,EAAE,QAAQ,CAAC;AACjC,CAAA,CACJ,CAAC;AAEK,MAAML,eAAa,GAAG,MAAK;AAC9B,IAAA,QAAQ,CACJ,mBAAmB,EACnB,sBAAsB,CACzB,CAAC;AACN,CAAC;;;;;AC3BD,MAAMI,eAAa,GAAkB;AACjC,IAAA,UAAU,EAAE,mBAAmB;AAC/B,IAAA,SAAS,EAAE,mBAAmB;CACjC,CAAC;AAWI,MAAO,sBAAuB,SAAQ,SAAS,CAAA;AAC1C,IAAA,SAAA,IAAA,CAAA,eAAe,GAAGJ,eAAa,EAAhB,CAAmB,EAAA;IAsBzC,WAAY,CAAA,GAAa,EAA0C,eAAoB,EAAA;AACnF,QAAA,KAAK,CAAC,GAAG,EAAEI,eAAa,EAAE,eAAe,CAAC,CAAC;KAC9C;AAzBQ,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,SAAA,8BAAA,CAAA,CAAA,EAAA,EAAA,OAAA,KAAA,CAAA,IAAA,sBAAsB,0DAuBI,kBAAkB,EAAA,CAAA,CAAA,CAAA,CAAA,EAAA,CAAA,EAAA;oEAvB5C,sBAAsB,EAAA,SAAA,EAAA,CAAA,CAAA,UAAA,EAAA,MAAA,EAAA,MAAA,CAAA,EAAA,CAAA,UAAA,EAAA,MAAA,EAAA,gBAAA,CAAA,EAAA,CAAA,UAAA,EAAA,MAAA,EAAA,OAAA,CAAA,EAAA,CAAA,UAAA,EAAA,MAAA,EAAA,MAAA,CAAA,EAAA,CAAA,UAAA,EAAA,MAAA,EAAA,MAAA,CAAA,CAAA,EAAA,SAAA,EAAA,SAAA,4BAAA,CAAA,EAAA,EAAA,GAAA,EAAA,EAAA,IAAA,EAAA,GAAA,CAAA,EAAA;;2BAqBpB,OAAO,EAAA,CAAA,CAAA,CAAA;;;;;AA3BP,SAAA,EAAA,EAAA,QAAA,EAAA,CAAA,EAAA,CAAA,kBAAA,CAAA;AACP,gBAAA,SAAS,CAAC,sBAAsB,EAAE,iBAAiB,EAAE,IAAI,CAAC;AAC1D,gBAAA,SAAS,CAAC,sBAAsB,EAAE,aAAa,EAAE,IAAI,CAAC;gBACtD,kBAAkB,CAAC,sBAAsB,CAAC;AAC7C,aAAA,CAAA,EAAA,EAAA,CAAA,0BAAA,CAAA,EAAA,KAAA,EAAAG,KAAA,EAAA,KAAA,EAAA,CAAA,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,CAAA,CAAA,OAAA,EAAA,EAAA,CAAA,EAAA,CAAA,cAAA,EAAA,EAAA,EAAA,MAAA,EAAA,SAAA,EAAA,CAAA,EAAA,cAAA,EAAA,aAAA,EAAA,CAAA,EAAA,eAAA,EAAA,MAAA,EAAA,MAAA,EAAA,SAAA,EAAA,gBAAA,EAAA,UAAA,EAAA,UAAA,EAAA,UAAA,EAAA,KAAA,EAAA,KAAA,EAAA,MAAA,EAAA,WAAA,EAAA,cAAA,EAAA,SAAA,EAAA,SAAA,CAAA,CAAA,EAAA,QAAA,EAAA,SAAA,+BAAA,CAAA,EAAA,EAAA,GAAA,EAAA,EAAA,IAAA,EAAA,GAAA,CAAA,EAAA;;YCnBL,EAuBc,CAAA,cAAA,CAAA,CAAA,EAAA,OAAA,EAAA,CAAA,EAAA,CAAA,CAAA,CAAA;YAlBP,EAAuB,CAAA,gBAAA,CAAA,eAAA,EAAA,SAAA,8DAAA,CAAA,MAAA,EAAA,EAAA,EAAA,CAAA,aAAA,CAAA,GAAA,CAAA,CAAA,CAAA,EAAA,CAAA,kBAAA,CAAA,GAAA,CAAA,SAAA,EAAA,MAAA,CAAA,KAAA,GAAA,CAAA,SAAA,GAAA,MAAA,CAAA,CAAA,CAAA,OAAA,EAAA,CAAA,WAAA,CAAA,MAAA,CAAA,CAAA,EAAA,CAAA,CAAA;AAcvB,YADA,EAAQ,CAAA,UAAA,CAAA,MAAA,EAAA,SAAA,qDAAA,CAAA,MAAA,EAAA,EAAA,EAAA,CAAA,aAAA,CAAA,GAAA,CAAA,CAAA,CAAA,OAAA,EAAA,CAAA,WAAA,CAAA,GAAA,CAAA,UAAA,CAAA,MAAA,CAAkB,CAAC,CAAA,EAAA,CAAA,CAAA,eAAA,EAAA,SAAA,8DAAA,CAAA,MAAA,EAAA,EAAA,EAAA,CAAA,aAAA,CAAA,GAAA,CAAA,CAAA,CAAA,OAAA,EAAA,CAAA,WAAA,CACV,wBAAoB,CAAC,CAAA,EAAA,CAAA,CAAA;YAnB7C,EAuBc,CAAA,YAAA,EAAA,CAAA;;YApBP,EAAa,CAAA,UAAA,CAAA,MAAA,EAAA,GAAA,CAAA,IAAA,CAAA,CAAA;YAEb,EAAuB,CAAA,gBAAA,CAAA,SAAA,EAAA,GAAA,CAAA,SAAA,CAAA,CAAA;AAiBvB,YAhBA,8DAAqC,CAChB,UAAA,EAAA,GAAA,CAAA,QAAA,CAAA,CAAA,UAAA,EAAA,GAAA,CAAA,QAAA,CACA,0BACA,CACL,KAAA,EAAA,GAAA,CAAA,QAAA,CAAA,CAAA,KAAA,EAAA,GAAA,CAAA,QAAA,CACA,kBACH,CAKU,WAAA,EAAA,GAAA,CAAA,SAAA,CAAA,CAAA,cAAA,EAAA,GAAA,CAAA,YAAA,GAAA,IAAA,GAAA,KAAA,CAGqB,iCAChB,CACA,SAAA,EAAA,GAAA,CAAA,gBAAA,CAAA,CAAA;;;;iFDDtB,sBAAsB,EAAA,CAAA;cATlC,SAAS;AACI,QAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,8HAA8H,EAE7H,SAAA,EAAA;AACP,oBAAA,SAAS,CAAyB,sBAAA,EAAA,iBAAiB,EAAE,IAAI,CAAC;AAC1D,oBAAA,SAAS,CAAyB,sBAAA,EAAA,aAAa,EAAE,IAAI,CAAC;AACtD,oBAAA,kBAAkB,CAAwB,sBAAA,CAAA;AAC7C,iBAAA,EAAA,QAAA,EAAA,60BAAA,EAAA,CAAA;;sBAyB2B,MAAM;uBAAC,kBAAkB,CAAA;;sBAAG,QAAQ;qBAH7B,OAAO,EAAA,CAAA;kBAAzC,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA,OAAO,EAAC,EAAC,MAAM,EAAE,IAAI,EAAC,CAAA;YACb,OAAO,EAAA,CAAA;kBAA1B,SAAS;mBAAC,OAAO,CAAA;;kFArBT,sBAAsB,EAAA,EAAA,SAAA,EAAA,wBAAA,EAAA,QAAA,EAAA,2CAAA,EAAA,UAAA,EAAA,EAAA,EAAA,CAAA,CAAA,EAAA,GAAA;;AEnB5B,MAAM,mBAAmB,GAAG,IAAI,GAAG,CAAC;IACvC,CAAC,cAAc,EAAE,EAAC,KAAK,EAAE,IAAI,EAAE,GAAG,YAAY,EAAC,CAAC;IAChD,CAAC,WAAW,EAAE,YAAY,CAAC;IAC3B,CAAC,UAAU,EAAE,EAAC,KAAK,EAAE,IAAI,EAAE,GAAG,YAAY,EAAC,CAAC;IAC5C,CAAC,OAAO,EAAE,WAAW,CAAC;IACtB,CAAC,iBAAiB,EAAE,QAAQ,CAAC;IAC7B,CAAC,WAAW,EAAE,WAAW,CAAC;IAC1B,CAAC,UAAU,EAAE,YAAY,CAAC;IAC1B,CAAC,MAAM,EAAE,WAAW,CAAC;IACrB,CAAC,MAAM,EAAE,WAAW,CAAC;IACrB,CAAC,aAAa,EAAE,EAAC,KAAK,EAAE,YAAY,EAAE,GAAG,WAAW,EAAC,CAAC;IACtD,CAAC,UAAU,EAAE,YAAY,CAAC;IAC1B,CAAC,UAAU,EAAE,YAAY,CAAC;IAC1B,CAAC,aAAa,EAAE,WAAW,CAAC;IAC5B,CAAC,MAAM,EAAE,EAAC,KAAK,EAAE,IAAI,EAAE,GAAG,YAAY,EAAC,CAAC;IACxC,CAAC,UAAU,EAAE,EAAC,KAAK,EAAE,CAAC,EAAE,GAAG,WAAW,EAAC,CAAC;IACxC,CAAC,MAAM,EAAE,EAAC,KAAK,EAAE,OAAO,EAAE,GAAG,WAAW,EAAC,CAAC;IAC1C,CAAC,UAAU,EAAE,WAAW,CAAC;IACzB,CAAC,kBAAkB,EAAE,QAAQ,CAAC;IAC9B,CAAC,kBAAkB,EAAE,QAAQ,CAAC;AACjC,CAAA,CAAC,CAAC;AAEI,MAAMP,eAAa,GAAG,MAAK;AAC9B,IAAA,QAAQ,CACJ,gBAAgB,EAChB,mBAAmB,CACtB,CAAC;AACN,CAAC;;;;;ACrBD,MAAMI,eAAa,GAAkB;AACjC,IAAA,UAAU,EAAE,gBAAgB;AAC5B,IAAA,SAAS,EAAE,mBAAmB;CACjC,CAAC;AAWI,MAAO,mBAAoB,SAAQ,SAAS,CAAA;AACvC,IAAA,SAAA,IAAA,CAAA,eAAe,GAAGJ,eAAa,EAAhB,CAAmB,EAAA;IAmBzC,WAAY,CAAA,GAAa,EAA0C,eAAoB,EAAA;AACnF,QAAA,KAAK,CAAC,GAAG,EAAEI,eAAa,EAAE,eAAe,CAAC,CAAC;KAC9C;AAtBQ,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,SAAA,2BAAA,CAAA,CAAA,EAAA,EAAA,OAAA,KAAA,CAAA,IAAA,mBAAmB,0DAoBO,kBAAkB,EAAA,CAAA,CAAA,CAAA,CAAA,EAAA,CAAA,EAAA;oEApB5C,mBAAmB,EAAA,SAAA,EAAA,CAAA,CAAA,UAAA,EAAA,MAAA,EAAA,OAAA,CAAA,CAAA,EAAA,SAAA,EAAA,SAAA,yBAAA,CAAA,EAAA,EAAA,GAAA,EAAA,EAAA,IAAA,EAAA,GAAA,CAAA,EAAA;;2BAkBjB,OAAO,EAAA,CAAA,CAAA,CAAA;;;;;AAxBP,SAAA,EAAA,EAAA,QAAA,EAAA,CAAA,EAAA,CAAA,kBAAA,CAAA;AACP,gBAAA,SAAS,CAAC,mBAAmB,EAAE,iBAAiB,EAAE,IAAI,CAAC;AACvD,gBAAA,SAAS,CAAC,mBAAmB,EAAE,aAAa,EAAE,IAAI,CAAC;gBACnD,kBAAkB,CAAC,mBAAmB,CAAC;AAC1C,aAAA,CAAA,EAAA,EAAA,CAAA,0BAAA,CAAA,EAAA,KAAA,EAAAG,KAAA,EAAA,KAAA,EAAA,CAAA,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,CAAA,CAAA,OAAA,EAAA,EAAA,CAAA,EAAA,CAAA,cAAA,EAAA,EAAA,EAAA,MAAA,EAAA,SAAA,EAAA,CAAA,EAAA,cAAA,EAAA,aAAA,EAAA,CAAA,EAAA,eAAA,EAAA,MAAA,EAAA,MAAA,EAAA,SAAA,EAAA,gBAAA,EAAA,UAAA,EAAA,UAAA,EAAA,UAAA,EAAA,WAAA,EAAA,WAAA,EAAA,SAAA,EAAA,SAAA,CAAA,CAAA,EAAA,QAAA,EAAA,SAAA,4BAAA,CAAA,EAAA,EAAA,GAAA,EAAA,EAAA,IAAA,EAAA,GAAA,CAAA,EAAA;;YCpBL,EAoBc,CAAA,cAAA,CAAA,CAAA,EAAA,OAAA,EAAA,CAAA,EAAA,CAAA,CAAA,CAAA;YAfP,EAAuB,CAAA,gBAAA,CAAA,eAAA,EAAA,SAAA,2DAAA,CAAA,MAAA,EAAA,EAAA,EAAA,CAAA,aAAA,CAAA,GAAA,CAAA,CAAA,CAAA,EAAA,CAAA,kBAAA,CAAA,GAAA,CAAA,SAAA,EAAA,MAAA,CAAA,KAAA,GAAA,CAAA,SAAA,GAAA,MAAA,CAAA,CAAA,CAAA,OAAA,EAAA,CAAA,WAAA,CAAA,MAAA,CAAA,CAAA,EAAA,CAAA,CAAA;AAcvB,YADA,EAAQ,CAAA,UAAA,CAAA,MAAA,EAAA,SAAA,kDAAA,CAAA,MAAA,EAAA,EAAA,EAAA,CAAA,aAAA,CAAA,GAAA,CAAA,CAAA,CAAA,OAAA,EAAA,CAAA,WAAA,CAAA,GAAA,CAAA,UAAA,CAAA,MAAA,CAAkB,CAAC,CAAA,EAAA,CAAA,CAAA,eAAA,EAAA,SAAA,2DAAA,CAAA,MAAA,EAAA,EAAA,EAAA,CAAA,aAAA,CAAA,GAAA,CAAA,CAAA,CAAA,OAAA,EAAA,CAAA,WAAA,CACV,wBAAoB,CAAC,CAAA,EAAA,CAAA,CAAA;YAnB7C,EAoBc,CAAA,YAAA,EAAA,CAAA;;YAlBP,EAAa,CAAA,UAAA,CAAA,MAAA,EAAA,GAAA,CAAA,IAAA,CAAA,CAAA;YAGb,EAAuB,CAAA,gBAAA,CAAA,SAAA,EAAA,GAAA,CAAA,SAAA,CAAA,CAAA;AAYvB,YAXA,EAAqC,CAAA,UAAA,CAAA,gBAAA,EAAA,EAAA,CAAA,eAAA,CAAA,EAAA,EAAAD,KAAA,CAAA,CAAA,CAAA,UAAA,EAAA,GAAA,CAAA,QAAA,CAChB,CACA,UAAA,EAAA,GAAA,CAAA,QAAA,CAAA,CAAA,UAAA,EAAA,GAAA,CAAA,QAAA,CACA,CACC,WAAA,EAAA,GAAA,CAAA,QAAA,CAAA,CAAA,WAAA,EAAA,GAAA,CAAA,SAAA,CAKC,iCACK,CACA,SAAA,EAAA,GAAA,CAAA,gBAAA,CAAA,CAAA;;;;iFDKtB,mBAAmB,EAAA,CAAA;cAT/B,SAAS;AACI,QAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,wBAAwB,EAEvB,SAAA,EAAA;AACP,oBAAA,SAAS,CAAsB,mBAAA,EAAA,iBAAiB,EAAE,IAAI,CAAC;AACvD,oBAAA,SAAS,CAAsB,mBAAA,EAAA,aAAa,EAAE,IAAI,CAAC;AACnD,oBAAA,kBAAkB,CAAqB,mBAAA,CAAA;AAC1C,iBAAA,EAAA,QAAA,EAAA,stBAAA,EAAA,CAAA;;sBAsB2B,MAAM;uBAAC,kBAAkB,CAAA;;sBAAG,QAAQ;qBAH5B,OAAO,EAAA,CAAA;kBAA1C,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA,OAAO,EAAE,EAAC,MAAM,EAAE,IAAI,EAAC,CAAA;YACd,OAAO,EAAA,CAAA;kBAA1B,SAAS;mBAAC,OAAO,CAAA;;kFAlBT,mBAAmB,EAAA,EAAA,SAAA,EAAA,qBAAA,EAAA,QAAA,EAAA,qCAAA,EAAA,UAAA,EAAA,EAAA,EAAA,CAAA,CAAA,EAAA,GAAA;;AEpBzB,MAAM,mBAAmB,GAAG,IAAI,GAAG,CACtC;IACI,CAAC,cAAc,EAAE,EAAC,KAAK,EAAE,IAAI,EAAE,GAAG,YAAY,EAAC,CAAC;IAChD,CAAC,WAAW,EAAE,YAAY,CAAC;IAC3B,CAAC,UAAU,EAAE,EAAC,KAAK,EAAE,IAAI,EAAE,GAAG,YAAY,EAAC,CAAC;IAC5C,CAAC,OAAO,EAAE,WAAW,CAAC;IACtB,CAAC,iBAAiB,EAAE,QAAQ,CAAC;IAC7B,CAAC,WAAW,EAAE,WAAW,CAAC;IAC1B,CAAC,UAAU,EAAE,YAAY,CAAC;IAC1B,CAAC,MAAM,EAAE,WAAW,CAAC;IACrB,CAAC,UAAU,EAAE,WAAW,CAAC;IACzB,CAAC,MAAM,EAAE,WAAW,CAAC;IACrB,CAAC,aAAa,EAAE,EAAC,KAAK,EAAE,YAAY,EAAE,GAAG,WAAW,EAAC,CAAC;IACtD,CAAC,UAAU,EAAE,YAAY,CAAC;IAC1B,CAAC,QAAQ,EAAE,WAAW,CAAC;IACvB,CAAC,UAAU,EAAE,YAAY,CAAC;IAC1B,CAAC,aAAa,EAAE,WAAW,CAAC;IAC5B,CAAC,MAAM,EAAE,EAAC,KAAK,EAAE,IAAI,EAAE,GAAG,YAAY,EAAC,CAAC;IACxC,CAAC,UAAU,EAAE,EAAC,KAAK,EAAE,CAAC,EAAE,GAAG,WAAW,EAAC,CAAC;IACxC,CAAC,MAAM,EAAE,EAAC,KAAK,EAAE,OAAO,EAAE,GAAG,WAAW,EAAC,CAAC;IAC1C,CAAC,UAAU,EAAE,WAAW,CAAC;IACzB,CAAC,kBAAkB,EAAE,QAAQ,CAAC;IAC9B,CAAC,kBAAkB,EAAE,QAAQ,CAAC;AACjC,CAAA,CACJ,CAAC;AAEK,MAAMN,eAAa,GAAG,MAAK;AAC9B,IAAA,QAAQ,CACJ,gBAAgB,EAChB,mBAAmB,CACtB,CAAC;AACN,CAAC;;;;ACzBD,MAAMI,eAAa,GAAkB;AACjC,IAAA,UAAU,EAAE,gBAAgB;AAC5B,IAAA,SAAS,EAAE,mBAAmB;CACjC,CAAC;AAWI,MAAO,mBAAoB,SAAQ,SAAS,CAAA;AACvC,IAAA,SAAA,IAAA,CAAA,eAAe,GAAGJ,eAAa,EAAhB,CAAmB,EAAA;IAqBzC,WAAY,CAAA,GAAa,EAA0C,eAAoB,EAAA;AACnF,QAAA,KAAK,CAAC,GAAG,EAAEI,eAAa,EAAE,eAAe,CAAC,CAAC;KAC9C;AAxBQ,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,SAAA,2BAAA,CAAA,CAAA,EAAA,EAAA,OAAA,KAAA,CAAA,IAAA,mBAAmB,0DAsBO,kBAAkB,EAAA,CAAA,CAAA,CAAA,CAAA,EAAA,CAAA,EAAA;oEAtB5C,mBAAmB,EAAA,SAAA,EAAA,CAAA,CAAA,UAAA,EAAA,MAAA,EAAA,OAAA,CAAA,CAAA,EAAA,SAAA,EAAA,SAAA,yBAAA,CAAA,EAAA,EAAA,GAAA,EAAA,EAAA,IAAA,EAAA,GAAA,CAAA,EAAA;;2BAoBjB,OAAO,EAAA,CAAA,CAAA,CAAA;;;;;AA1BP,SAAA,EAAA,EAAA,QAAA,EAAA,CAAA,EAAA,CAAA,kBAAA,CAAA;AACP,gBAAA,SAAS,CAAC,mBAAmB,EAAE,iBAAiB,EAAE,IAAI,CAAC;AACvD,gBAAA,SAAS,CAAC,mBAAmB,EAAE,aAAa,EAAE,IAAI,CAAC;gBACnD,kBAAkB,CAAC,mBAAmB,CAAC;AAC1C,aAAA,CAAA,EAAA,EAAA,CAAA,0BAAA,CAAA,EAAA,KAAA,EAAAG,KAAA,EAAA,KAAA,EAAA,CAAA,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,CAAA,CAAA,OAAA,EAAA,EAAA,CAAA,EAAA,CAAA,cAAA,EAAA,EAAA,EAAA,MAAA,EAAA,SAAA,EAAA,OAAA,EAAA,EAAA,EAAA,CAAA,EAAA,cAAA,EAAA,aAAA,EAAA,CAAA,EAAA,eAAA,EAAA,MAAA,EAAA,aAAA,EAAA,MAAA,EAAA,SAAA,EAAA,gBAAA,EAAA,UAAA,EAAA,UAAA,EAAA,UAAA,EAAA,WAAA,EAAA,SAAA,EAAA,WAAA,EAAA,SAAA,EAAA,SAAA,EAAA,cAAA,CAAA,CAAA,EAAA,QAAA,EAAA,SAAA,4BAAA,CAAA,EAAA,EAAA,GAAA,EAAA,EAAA,IAAA,EAAA,GAAA,CAAA,EAAA;;YCpBL,EAwBc,CAAA,cAAA,CAAA,CAAA,EAAA,OAAA,EAAA,CAAA,EAAA,CAAA,CAAA,CAAA;YAnBP,EAAuB,CAAA,gBAAA,CAAA,eAAA,EAAA,SAAA,2DAAA,CAAA,MAAA,EAAA,EAAA,EAAA,CAAA,aAAA,CAAA,GAAA,CAAA,CAAA,CAAA,EAAA,CAAA,kBAAA,CAAA,GAAA,CAAA,SAAA,EAAA,MAAA,CAAA,KAAA,GAAA,CAAA,SAAA,GAAA,MAAA,CAAA,CAAA,CAAA,OAAA,EAAA,CAAA,WAAA,CAAA,MAAA,CAAA,CAAA,EAAA,CAAA,CAAA;YAcvB,yIAAQ,GAAkB,CAAA,UAAA,CAAA,MAAA,CAAA,CAAA,CAAA,EAAA,CAAC,8IACV,GAAoB,CAAA,YAAA,CAAA,MAAA,CAAA,CAAA,CAAA,EAAA,CAAC,CAEvB,aAAA,EAAA,SAAA,yDAAA,GAAA,EAAA,EAAA,CAAA,aAAA,CAAA,GAAA,CAAA,CAAA,CAAA,MAAA,QAAA,GAAA,EAAA,CAAA,WAAA,CAAA,CAAA,CAAA,CAAA,CAAA,OAAA,EAAA,CAAA,WAAA,CAAA,GAAA,CAAA,gBAAA,CAAA,QAAA,CAAA,KAAA,CAA6B,CAAC,CAAA,EAAA,CAAA,CAAA;YAtBpD,EAwBc,CAAA,YAAA,EAAA,CAAA;;YArBP,EAAa,CAAA,UAAA,CAAA,MAAA,EAAA,GAAA,CAAA,IAAA,CAAA,CAAA;YAEb,EAAuB,CAAA,gBAAA,CAAA,SAAA,EAAA,GAAA,CAAA,SAAA,CAAA,CAAA;AAgBvB,YAfA,EAAiC,CAAA,UAAA,CAAA,gBAAA,EAAA,GAAA,CAAA,cAAA,CAAA,CAAA,UAAA,EAAA,GAAA,CAAA,QAAA,CACZ,0BACA,CACA,UAAA,EAAA,GAAA,CAAA,QAAA,CAAA,CAAA,WAAA,EAAA,GAAA,CAAA,QAAA,CACC,uBACJ,CAKK,WAAA,EAAA,GAAA,CAAA,SAAA,CAAA,CAAA,SAAA,EAAA,GAAA,CAAA,gBAAA,CACK,iCACA,CAGgB,cAAA,EAAA,GAAA,CAAA,YAAA,GAAA,IAAA,GAAA,KAAA,CAAA,CAAA;;;;iFDCtC,mBAAmB,EAAA,CAAA;cAT/B,SAAS;AACI,QAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,wBAAwB,EAEvB,SAAA,EAAA;AACP,oBAAA,SAAS,CAAsB,mBAAA,EAAA,iBAAiB,EAAE,IAAI,CAAC;AACvD,oBAAA,SAAS,CAAsB,mBAAA,EAAA,aAAa,EAAE,IAAI,CAAC;AACnD,oBAAA,kBAAkB,CAAqB,mBAAA,CAAA;AAC1C,iBAAA,EAAA,QAAA,EAAA,42BAAA,EAAA,CAAA;;sBAwB2B,MAAM;uBAAC,kBAAkB,CAAA;;sBAAG,QAAQ;qBAH5B,OAAO,EAAA,CAAA;kBAA1C,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA,OAAO,EAAE,EAAC,MAAM,EAAE,IAAI,EAAC,CAAA;YACd,OAAO,EAAA,CAAA;kBAA1B,SAAS;mBAAC,OAAO,CAAA;;kFApBT,mBAAmB,EAAA,EAAA,SAAA,EAAA,qBAAA,EAAA,QAAA,EAAA,qCAAA,EAAA,UAAA,EAAA,EAAA,EAAA,CAAA,CAAA,EAAA,GAAA;;AEpBzB,MAAM,oBAAoB,GAAG,IAAI,GAAG,CACvC;IACI,CAAC,cAAc,EAAE,EAAC,KAAK,EAAE,IAAI,EAAE,GAAG,YAAY,EAAC,CAAC;IAChD,CAAC,WAAW,EAAE,YAAY,CAAC;IAC3B,CAAC,UAAU,EAAE,EAAC,KAAK,EAAE,IAAI,EAAE,GAAG,YAAY,EAAC,CAAC;IAC5C,CAAC,OAAO,EAAE,WAAW,CAAC;IACtB,CAAC,iBAAiB,EAAE,QAAQ,CAAC;IAC7B,CAAC,WAAW,EAAE,WAAW,CAAC;IAC1B,CAAC,UAAU,EAAE,YAAY,CAAC;IAC1B,CAAC,MAAM,EAAE,WAAW,CAAC;IACrB,CAAC,UAAU,EAAE,WAAW,CAAC;IACzB,CAAC,UAAU,EAAE,WAAW,CAAC;IACzB,CAAC,UAAU,EAAE,WAAW,CAAC;IACzB,CAAC,MAAM,EAAE,WAAW,CAAC;IACrB,CAAC,aAAa,EAAE,EAAC,KAAK,EAAE,YAAY,EAAE,GAAG,WAAW,EAAC,CAAC;IACtD,CAAC,UAAU,EAAE,YAAY,CAAC;IAC1B,CAAC,QAAQ,EAAE,WAAW,CAAC;IACvB,CAAC,UAAU,EAAE,YAAY,CAAC;IAC1B,CAAC,aAAa,EAAE,WAAW,CAAC;IAC5B,CAAC,MAAM,EAAE,EAAC,KAAK,EAAE,IAAI,EAAE,GAAG,YAAY,EAAC,CAAC;IACxC,CAAC,MAAM,EAAE,WAAW,CAAC;IACrB,CAAC,UAAU,EAAE,EAAC,KAAK,EAAE,CAAC,EAAE,GAAG,WAAW,EAAC,CAAC;IACxC,CAAC,MAAM,EAAE,EAAC,KAAK,EAAE,QAAQ,EAAE,GAAG,WAAW,EAAC,CAAC;IAC3C,CAAC,UAAU,EAAE,WAAW,CAAC;IACzB,CAAC,kBAAkB,EAAE,QAAQ,CAAC;IAC9B,CAAC,kBAAkB,EAAE,QAAQ,CAAC;AAEjC,CAAA,CACJ,CAAC;AAEK,MAAMP,eAAa,GAAG,MAAK;AAC9B,IAAA,QAAQ,CACJ,iBAAiB,EACjB,oBAAoB,CACvB,CAAC;AACN,CAAC;;;;;AC9BD,MAAMI,eAAa,GAAkB;AACjC,IAAA,UAAU,EAAE,iBAAiB;AAC7B,IAAA,SAAS,EAAE,mBAAmB;CACjC,CAAC;AAWI,MAAO,oBAAqB,SAAQ,SAAS,CAAA;AACxC,IAAA,SAAA,IAAA,CAAA,eAAe,GAAGJ,eAAa,EAAhB,CAAmB,EAAA;IAwBzC,WAAY,CAAA,GAAa,EAA0C,eAAoB,EAAA;AACnF,QAAA,KAAK,CAAC,GAAG,EAAEI,eAAa,EAAE,eAAe,CAAC,CAAC;KAC9C;AAED,IAAA,YAAY,CAAC,MAAM,EAAA;AACf,QAAA,IAAI,IAAI,CAAC,IAAI,KAAK,CAAC,EAAE;YAClB,MAAM,CAAC,cAAc,EAAE,CAAC;SAC1B;KACJ;AAEM,IAAA,kBAAkB,CAAC,MAAM,EAAA;QAC5B,IAAI,MAAM,CAAC,GAAG,KAAK,GAAG,IAAK,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,EAAE;AACvE,YAAA,OAAO,KAAK,CAAC;SAChB;KACJ;AAvCQ,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,SAAA,4BAAA,CAAA,CAAA,EAAA,EAAA,OAAA,KAAA,CAAA,IAAA,oBAAoB,0DAyBM,kBAAkB,EAAA,CAAA,CAAA,CAAA,CAAA,EAAA,CAAA,EAAA;oEAzB5C,oBAAoB,EAAA,SAAA,EAAA,CAAA,CAAA,UAAA,EAAA,MAAA,EAAA,QAAA,CAAA,CAAA,EAAA,SAAA,EAAA,SAAA,0BAAA,CAAA,EAAA,EAAA,GAAA,EAAA,EAAA,IAAA,EAAA,GAAA,CAAA,EAAA;;2BAqBlB,OAAO,EAAA,CAAA,CAAA,CAAA;;;;;AA3BP,SAAA,EAAA,EAAA,QAAA,EAAA,CAAA,EAAA,CAAA,kBAAA,CAAA;AACP,gBAAA,SAAS,CAAC,oBAAoB,EAAE,iBAAiB,EAAE,IAAI,CAAC;AACxD,gBAAA,SAAS,CAAC,oBAAoB,EAAE,aAAa,EAAE,IAAI,CAAC;gBACpD,kBAAkB,CAAC,oBAAoB,CAAC;AAC3C,aAAA,CAAA,EAAA,EAAA,CAAA,0BAAA,CAAA,EAAA,KAAA,EAAAG,KAAA,EAAA,KAAA,EAAA,CAAA,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,CAAA,CAAA,OAAA,EAAA,EAAA,CAAA,EAAA,CAAA,cAAA,EAAA,EAAA,EAAA,MAAA,EAAA,SAAA,EAAA,CAAA,EAAA,cAAA,EAAA,aAAA,EAAA,CAAA,EAAA,eAAA,EAAA,MAAA,EAAA,aAAA,EAAA,iBAAA,EAAA,mBAAA,EAAA,UAAA,EAAA,SAAA,EAAA,MAAA,EAAA,SAAA,EAAA,gBAAA,EAAA,UAAA,EAAA,UAAA,EAAA,UAAA,EAAA,WAAA,EAAA,KAAA,EAAA,KAAA,EAAA,MAAA,EAAA,WAAA,EAAA,SAAA,EAAA,cAAA,CAAA,CAAA,EAAA,QAAA,EAAA,SAAA,6BAAA,CAAA,EAAA,EAAA,GAAA,EAAA,EAAA,IAAA,EAAA,GAAA,CAAA,EAAA;;YCnBL,EA6Bc,CAAA,cAAA,CAAA,CAAA,EAAA,OAAA,EAAA,CAAA,EAAA,CAAA,CAAA,CAAA;YAvBP,EAAuB,CAAA,gBAAA,CAAA,eAAA,EAAA,SAAA,4DAAA,CAAA,MAAA,EAAA,EAAA,EAAA,CAAA,aAAA,CAAA,GAAA,CAAA,CAAA,CAAA,EAAA,CAAA,kBAAA,CAAA,GAAA,CAAA,SAAA,EAAA,MAAA,CAAA,KAAA,GAAA,CAAA,SAAA,GAAA,MAAA,CAAA,CAAA,CAAA,OAAA,EAAA,CAAA,WAAA,CAAA,MAAA,CAAA,CAAA,EAAA,CAAA,CAAA;YAgBvB,0IAAQ,GAAkB,CAAA,UAAA,CAAA,MAAA,CAAA,CAAA,CAAA,EAAA,CAAC,+IACV,GAAoB,CAAA,YAAA,CAAA,MAAA,CAAA,CAAA,CAAA,EAAA,CAAC,yKAEvB,GAA6B,CAAA,gBAAA,CAAA,QAAA,CAAA,KAAA,CAAA,CAAA,CAAA,EAAA,CAAC,mJAC1B,GAAoB,CAAA,YAAA,CAAA,MAAA,CAAA,CAAA,CAAA,EAAA,CAAC,uJACnB,GAAoB,CAAA,YAAA,CAAA,MAAA,CAAA,CAAA,CAAA,EAAA,CAAC,CAC9B,UAAA,EAAA,SAAA,uDAAA,CAAA,MAAA,EAAA,EAAA,EAAA,CAAA,aAAA,CAAA,GAAA,CAAA,CAAA,CAAA,OAAA,EAAA,CAAA,WAAA,CAAA,GAAA,CAAA,kBAAA,CAAA,MAAA,CAA0B,CAAC,CAAA,EAAA,CAAA,CAAA;YA5B9C,EA6Bc,CAAA,YAAA,EAAA,CAAA;;AAzBP,YAHA,qEAAuC,CAG1B,MAAA,EAAA,GAAA,CAAA,IAAA,CAAA,CAAA;YAEb,EAAuB,CAAA,gBAAA,CAAA,SAAA,EAAA,GAAA,CAAA,SAAA,CAAA,CAAA;YACvB,mDAAiC,CACZ,UAAA,EAAA,GAAA,CAAA,QAAA,CAAA,CAAA,UAAA,EAAA,GAAA,CAAA,QAAA,CACA,0BACA,CACC,WAAA,EAAA,GAAA,CAAA,QAAA,CAAA,CAAA,KAAA,EAAA,GAAA,CAAA,QAAA,CACN,qBACA,CACH,MAAA,EAAA,GAAA,CAAA,IAAA,CAAA,CAAA,WAAA,EAAA,GAAA,CAAA,SAAA,CAKU,CACK,SAAA,EAAA,GAAA,CAAA,gBAAA,CAAA,CAAA,SAAA,EAAA,GAAA,CAAA,gBAAA,CACA,CAGgB,cAAA,EAAA,GAAA,CAAA,YAAA,GAAA,IAAA,GAAA,KAAA,CAAA,CAAA;;;;iFDHtC,oBAAoB,EAAA,CAAA;cAThC,SAAS;AACI,QAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,yBAAyB,EAExB,SAAA,EAAA;AACP,oBAAA,SAAS,CAAuB,oBAAA,EAAA,iBAAiB,EAAE,IAAI,CAAC;AACxD,oBAAA,SAAS,CAAuB,oBAAA,EAAA,aAAa,EAAE,IAAI,CAAC;AACpD,oBAAA,kBAAkB,CAAsB,oBAAA,CAAA;AAC3C,iBAAA,EAAA,QAAA,EAAA,2lCAAA,EAAA,CAAA;;sBA2B2B,MAAM;uBAAC,kBAAkB,CAAA;;sBAAG,QAAQ;qBAL5B,OAAO,EAAA,CAAA;kBAA1C,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA,OAAO,EAAE,EAAC,MAAM,EAAE,IAAI,EAAC,CAAA;YACd,OAAO,EAAA,CAAA;kBAA1B,SAAS;mBAAC,OAAO,CAAA;;kFArBT,oBAAoB,EAAA,EAAA,SAAA,EAAA,sBAAA,EAAA,QAAA,EAAA,uCAAA,EAAA,UAAA,EAAA,EAAA,EAAA,CAAA,CAAA,EAAA,GAAA;;AEZ1B,MAAM,kBAAkB,GAAG,IAAI,GAAG,CACrC;IACI,CAAC,cAAc,EAAE,EAAC,KAAK,EAAE,IAAI,EAAE,GAAG,YAAY,EAAC,CAAC;IAChD,CAAC,WAAW,EAAE,YAAY,CAAC;IAC3B,CAAC,UAAU,EAAE,EAAC,KAAK,EAAE,IAAI,EAAE,GAAG,YAAY,EAAC,CAAC;IAC5C,CAAC,OAAO,EAAE,WAAW,CAAC;IACtB,CAAC,iBAAiB,EAAE,QAAQ,CAAC;IAC7B,CAAC,WAAW,EAAE,WAAW,CAAC;IAC1B,CAAC,UAAU,EAAE,YAAY,CAAC;IAC1B,CAAC,eAAe,EAAE,WAAW,CAAC;IAC9B,CAAC,MAAM,EAAE,WAAW,CAAC;IACrB,CAAC,UAAU,EAAE,WAAW,CAAC;IACzB,CAAC,MAAM,EAAE,WAAW,CAAC;IACrB,CAAC,aAAa,EAAE,EAAC,KAAK,EAAE,YAAY,EAAE,GAAG,WAAW,EAAC,CAAC;IACtD,CAAC,UAAU,EAAE,YAAY,CAAC;IAC1B,CAAC,QAAQ,EAAE,WAAW,CAAC;IACvB,CAAC,UAAU,EAAE,YAAY,CAAC;IAC1B,CAAC,aAAa,EAAE,WAAW,CAAC;IAC5B,CAAC,MAAM,EAAE,EAAC,KAAK,EAAE,IAAI,EAAE,GAAG,YAAY,EAAC,CAAC;IACxC,CAAC,qBAAqB,EAAE,EAAC,KAAK,EAAE,QAAQ,EAAE,GAAG,QAAQ,EAAC,CAAC;IACvD,CAAC,UAAU,EAAE,EAAC,KAAK,EAAE,CAAC,EAAE,GAAG,WAAW,EAAC,CAAC;IACxC,CAAC,MAAM,EAAE,EAAC,KAAK,EAAE,MAAM,EAAE,GAAG,WAAW,EAAC,CAAC;IACzC,CAAC,UAAU,EAAE,WAAW,CAAC;IACzB,CAAC,kBAAkB,EAAE,QAAQ,CAAC;IAC9B,CAAC,kBAAkB,EAAE,QAAQ,CAAC;AACjC,CAAA,CACJ,CAAC;AAEK,MAAMP,eAAa,GAAG,MAAK;AAC9B,IAAA,QAAQ,CACJ,eAAe,EACf,kBAAkB,CACrB,CAAC;IACF,kBAAkB,CACd,cAAc,CAAC,QAAQ,EACvB,IAAI,GAAG,CAAC,kBAAkB,CAAC,CAC9B,CAAC;AACF,IAAA,MAAM,aAAa,GAAG,IAAI,GAAG,CAAC,kBAAkB,CAAC,CAAC;AAElD,IAAA,MAAM,cAAc,GAAG,CAAC,SAAS,KAAI;AACjC,QAAA,SAAS,CAAC,OAAO,CAAC,CAAC,CAAM,EAAE,CAAC,KAAK,aAAa,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;AAC9D,KAAC,CAAC;IACF,cAAc,CAAC,sBAAsB,CAAC,CAAC;IACvC,cAAc,CAAC,mBAAmB,CAAC,CAAC;IACpC,cAAc,CAAC,mBAAmB,CAAC,CAAC;IACpC,cAAc,CAAC,oBAAoB,CAAC,CAAC;IACrC,kBAAkB,CACd,cAAc,CAAC,IAAI,EACnB,IAAI,GAAG,CAAC,aAAa,CAAC,CACzB,CAAC;AACN,CAAC;;;;ACnDD,MAAMI,eAAa,GAAkB;AACjC,IAAA,UAAU,EAAE,eAAe;AAC3B,IAAA,SAAS,EAAE,mBAAmB;CACjC,CAAC;AAWI,MAAO,kBAAmB,SAAQ,SAAS,CAAA;AACtC,IAAA,SAAA,IAAA,CAAA,eAAe,GAAGJ,eAAa,EAAhB,CAAmB,EAAA;IA0BzC,WAAY,CAAA,GAAa,EAA0C,eAAoB,EAAA;AACnF,QAAA,KAAK,CAAC,GAAG,EAAEI,eAAa,EAAE,eAAe,CAAC,CAAC;QARvC,IAAI,CAAA,IAAA,GAAY,KAAK,CAAC;KAS7B;;AAGD,IAAA,gBAAgB,CAAC,GAAG,EAAE,EAAE,EAAE,EAAE,EAAA;;QAExB,QAAQ,GAAG;AACP,YAAA,KAAK,eAAe;AAChB,gBAAA,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC,aAAa,CAAC;gBAClC,IAAI,CAAC,qBAAqB,EAAE,CAAC;gBAC7B,MAAM;AACV,YAAA,KAAK,qBAAqB;AACtB,gBAAA,IAAI,CAAC,IAAI,GAAG,EAAE,KAAK,UAAU,GAAG,IAAI,GAAG,KAAK,CAAC;gBAC7C,MAAM;AACV,YAAA;gBACI,KAAK,CAAC,gBAAgB,CAAC,GAAG,EAAE,EAAE,EAAE,EAAE,CAAC,CAAC;SAC3C;KACJ;AAED,IAAA,IAAI,IAAI,GAAA;QACJ,IAAI,IAAI,CAAC,aAAa,KAAK,CAAC,IAAI,CAAC,WAAW,KAAK,IAAI,CAAC,WAAW,IAAI,IAAI,CAAC,SAAS,CAAC,CAAC,EAAE;YACnF,OAAO;gBACH,IAAI,EAAE,IAAI,CAAC,OAAO;gBAClB,IAAI,EAAE,IAAI,CAAC,IAAI;AACf,gBAAA,WAAW,EAAE;AACT,oBAAA,GAAG,EAAE,IAAI;AACT,oBAAA,GAAG,EAAE,UAAU;AACf,oBAAA,GAAG,EAAE,OAAO;AACZ,oBAAA,GAAG,EAAE,IAAI;AACZ,iBAAA;aACJ,CAAC;SACL;aAAM;AACH,YAAA,OAAO,KAAK,CAAC;SAChB;KACJ;;AAGM,IAAA,qBAAqB,CAAC,MAAO,EAAA;AAChC,QAAA,IAAI,IAAI,CAAC,aAAa,EAAE;YACpB,IAAI,CAAC,SAAS,GAAG,CAAC,CAAC,MAAM,IAAI,MAAM,CAAC,IAAI,KAAK,OAAO,KAAK,IAAI,CAAC,SAAS,IAAI,IAAI,GAAG,KAAK,CAAC;;AAExF,YAAA,IAAI,CAAC,IAAI,CAAC,SAAS,IAAI,IAAI,CAAC,KAAK,IAAI,IAAI,CAAC,KAAK,CAAC,OAAO,EAAE;AACrD,gBAAA,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,aAAa,CAAC,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC;;AAEjD,gBAAA,IAAI,CAAC,IAAI,CAAC,SAAS,IAAI,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,EAAE;oBAC7C,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,GAAG,IAAI,CAAC,SAAS,CAAC;iBAC7C;aACJ;iBAAM;;;gBAGH,UAAU,CAAC,MAAK;AACZ,oBAAA,IAAI,IAAI,CAAC,KAAK,IAAI,IAAI,CAAC,KAAK,CAAC,OAAO,IAAI,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,EAAE;AAC9D,wBAAA,MAAM,YAAY,GAAG,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;AAC3D,wBAAA,MAAM,cAAc,GAAG,YAAY,IAAI,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,EAAE,YAAY,CAAC,CAAC,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,MAAM,CAAC;wBACpI,IAAI,cAAc,KAAK,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,SAAS,EAAE;4BACjD,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,YAAY,CAAC,cAAc,CAAC,CAAC;yBACnD;qBACJ;iBACJ,EAAE,EAAE,CAAC,CAAC;aACV;SACJ;AAAM,aAAA,IAAI,IAAI,CAAC,KAAK,IAAI,IAAI,CAAC,KAAK,CAAC,OAAO,EAAE;AACzC,YAAA,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,aAAa,CAAC,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC;;YAEjD,IAAI,CAAC,OAAO,CAAC,aAAa,CAAC,KAAK,GAAG,IAAI,CAAC,SAAS,CAAC;SACrD;KACJ;IAED,QAAQ,GAAA;QACJ,KAAK,CAAC,QAAQ,EAAE,CAAC;QACjB,IAAI,CAAC,SAAS,GAAG,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC;KACrC;AAlGQ,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,SAAA,0BAAA,CAAA,CAAA,EAAA,EAAA,OAAA,KAAA,CAAA,IAAA,kBAAkB,0DA2BQ,kBAAkB,EAAA,CAAA,CAAA,CAAA,CAAA,EAAA,CAAA,EAAA;oEA3B5C,kBAAkB,EAAA,SAAA,EAAA,CAAA,CAAA,UAAA,EAAA,MAAA,EAAA,MAAA,CAAA,EAAA,CAAA,UAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,EAAA,CAAA,UAAA,EAAA,MAAA,EAAA,UAAA,CAAA,EAAA,CAAA,UAAA,EAAA,MAAA,EAAA,QAAA,CAAA,EAAA,CAAA,UAAA,EAAA,MAAA,EAAA,KAAA,CAAA,EAAA,CAAA,UAAA,EAAA,MAAA,EAAA,KAAA,CAAA,CAAA,EAAA,SAAA,EAAA,SAAA,wBAAA,CAAA,EAAA,EAAA,GAAA,EAAA,EAAA,IAAA,EAAA,GAAA,CAAA,EAAA;;2BAwBhB,OAAO,EAAA,CAAA,CAAA,CAAA;qCACS,cAAc,CAAA,CAAA;;;;;;AA/B9B,SAAA,EAAA,EAAA,QAAA,EAAA,CAAA,EAAA,CAAA,kBAAA,CAAA;AACP,gBAAA,SAAS,CAAC,kBAAkB,EAAE,iBAAiB,EAAE,IAAI,CAAC;AACtD,gBAAA,SAAS,CAAC,kBAAkB,EAAE,aAAa,EAAE,IAAI,CAAC;gBAClD,kBAAkB,CAAC,kBAAkB,CAAC;AACzC,aAAA,CAAA,EAAA,EAAA,CAAA,0BAAA,CAAA,EAAA,KAAA,EAAA,GAAA,EAAA,KAAA,EAAA,CAAA,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,CAAA,CAAA,OAAA,EAAA,EAAA,CAAA,EAAA,CAAA,cAAA,EAAA,EAAA,EAAA,MAAA,EAAA,SAAA,EAAA,CAAA,EAAA,cAAA,EAAA,aAAA,EAAA,CAAA,EAAA,eAAA,EAAA,MAAA,EAAA,OAAA,EAAA,aAAA,EAAA,MAAA,EAAA,SAAA,EAAA,OAAA,EAAA,QAAA,EAAA,gBAAA,EAAA,UAAA,EAAA,UAAA,EAAA,UAAA,EAAA,WAAA,EAAA,SAAA,EAAA,WAAA,EAAA,SAAA,EAAA,SAAA,EAAA,cAAA,CAAA,CAAA,EAAA,QAAA,EAAA,SAAA,2BAAA,CAAA,EAAA,EAAA,GAAA,EAAA,EAAA,IAAA,EAAA,GAAA,CAAA,EAAA;;YCpBL,EA0Bc,CAAA,cAAA,CAAA,CAAA,EAAA,OAAA,EAAA,CAAA,EAAA,CAAA,CAAA,CAAA;YApBP,EAAuB,CAAA,gBAAA,CAAA,eAAA,EAAA,SAAA,0DAAA,CAAA,MAAA,EAAA,EAAA,EAAA,CAAA,aAAA,CAAA,GAAA,CAAA,CAAA,CAAA,EAAA,CAAA,kBAAA,CAAA,GAAA,CAAA,SAAA,EAAA,MAAA,CAAA,KAAA,GAAA,CAAA,SAAA,GAAA,MAAA,CAAA,CAAA,CAAA,OAAA,EAAA,CAAA,WAAA,CAAA,MAAA,CAAA,CAAA,EAAA,CAAA,CAAA;AAmBvB,YAJA,EAAiB,CAAA,UAAA,CAAA,eAAA,EAAA,SAAA,0DAAA,CAAA,MAAA,EAAA,EAAA,EAAA,CAAA,aAAA,CAAA,GAAA,CAAA,CAAA,CAAA,OAAA,EAAA,CAAA,WAAA,CAAA,GAAA,CAAA,YAAA,CAAA,MAAA,CAAoB,KAAC,CAC9B,MAAA,EAAA,SAAA,iDAAA,CAAA,MAAA,EAAA,EAAA,EAAA,CAAA,aAAA,CAAA,GAAA,CAAA,CAAA,CAAA,GAAA,CAAA,UAAA,CAAA,MAAA,CAAkB,CAAE,CAAA,OAAA,EAAA,CAAA,WAAA,CAAA,GAAA,CAAA,qBAAA,CAAA,MAAA,CAA6B,KAAC,CACjD,OAAA,EAAA,SAAA,kDAAA,CAAA,MAAA,EAAA,EAAA,EAAA,CAAA,aAAA,CAAA,GAAA,CAAA,CAAA,CAAA,OAAA,EAAA,CAAA,WAAA,CAAA,GAAA,CAAA,qBAAA,CAAA,MAAA,CAA6B,CAAC,CAAA,EAAA,CAAA,CAAA,aAAA,EAAA,SAAA,wDAAA,GAAA,EAAA,EAAA,CAAA,aAAA,CAAA,GAAA,CAAA,CAAA,CAAA,MAAA,QAAA,GAAA,EAAA,CAAA,WAAA,CAAA,CAAA,CAAA,CAAA,CAAA,OAAA,EAAA,CAAA,WAAA,CAExB,oCAA6B,CAAC,CAAA,EAAA,CAAA,CAAA;YAzBpD,EA0Bc,CAAA,YAAA,EAAA,CAAA;;YAvBP,EAAa,CAAA,UAAA,CAAA,MAAA,EAAA,GAAA,CAAA,IAAA,CAAA,CAAA;YAGb,EAAuB,CAAA,gBAAA,CAAA,SAAA,EAAA,GAAA,CAAA,SAAA,CAAA,CAAA;YACvB,gCAAc,CACC,QAAA,EAAA,IAAA,CAAA,CAAA,gBAAA,EAAA,GAAA,CAAA,cAAA,CACkB,0BACZ,CACA,UAAA,EAAA,GAAA,CAAA,QAAA,CAAA,CAAA,UAAA,EAAA,GAAA,CAAA,QAAA,CACA,2BACC,CACJ,SAAA,EAAA,GAAA,CAAA,MAAA,CAAA,CAAA,WAAA,EAAA,GAAA,CAAA,SAAA,CAIK,CACK,SAAA,EAAA,GAAA,CAAA,gBAAA,CAAA,CAAA,SAAA,EAAA,GAAA,CAAA,gBAAA,CACA,CAIgB,cAAA,EAAA,GAAA,CAAA,YAAA,GAAA,IAAA,GAAA,KAAA,CAAA,CAAA;;;;iFDFtC,kBAAkB,EAAA,CAAA;cAT9B,SAAS;AACI,QAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,6IAA6I,EAE5I,SAAA,EAAA;AACP,oBAAA,SAAS,CAAqB,kBAAA,EAAA,iBAAiB,EAAE,IAAI,CAAC;AACtD,oBAAA,SAAS,CAAqB,kBAAA,EAAA,aAAa,EAAE,IAAI,CAAC;AAClD,oBAAA,kBAAkB,CAAoB,kBAAA,CAAA;AACzC,iBAAA,EAAA,QAAA,EAAA,k+BAAA,EAAA,CAAA;;sBA6B2B,MAAM;uBAAC,kBAAkB,CAAA;;sBAAG,QAAQ;qBAJ5B,OAAO,EAAA,CAAA;kBAA1C,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA,OAAO,EAAE,EAAC,MAAM,EAAE,IAAI,EAAC,CAAA;YACd,OAAO,EAAA,CAAA;kBAA1B,SAAS;mBAAC,OAAO,CAAA;YAC0B,KAAK,EAAA,CAAA;kBAAhD,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA,OAAO,EAAE,EAAC,IAAI,EAAE,cAAc,EAAC,CAAA;;kFAzBjC,kBAAkB,EAAA,EAAA,SAAA,EAAA,oBAAA,EAAA,QAAA,EAAA,mCAAA,EAAA,UAAA,EAAA,EAAA,EAAA,CAAA,CAAA,EAAA,GAAA;;AEnBxB,MAAM,aAAa,GAAG,IAAI,GAAG,CAChC;IACI,CAAC,WAAW,EAAE,YAAY,CAAC;IAC3B,CAAC,UAAU,EAAE,EAAC,KAAK,EAAE,IAAI,EAAE,GAAG,YAAY,EAAC,CAAC;IAC5C,CAAC,OAAO,EAAE,WAAW,CAAC;IACtB,CAAC,iBAAiB,EAAE,QAAQ,CAAC;IAC7B,CAAC,WAAW,EAAE,WAAW,CAAC;IAC1B,CAAC,UAAU,EAAE,YAAY,CAAC;IAC1B,CAAC,MAAM,EAAE,WAAW,CAAC;IACrB,CAAC,UAAU,EAAE,WAAW,CAAC;IACzB,CAAC,MAAM,EAAE,WAAW,CAAC;IACrB,CAAC,aAAa,EAAE,EAAC,KAAK,EAAE,iBAAiB,EAAE,GAAG,WAAW,EAAC,CAAC;IAC3D,CAAC,UAAU,EAAE,YAAY,CAAC;IAC1B,CAAC,UAAU,EAAE,YAAY,CAAC;IAC1B,CAAC,aAAa,EAAE,WAAW,CAAC;IAC5B,CAAC,MAAM,EAAE,EAAC,KAAK,EAAE,IAAI,EAAE,GAAG,YAAY,EAAC,CAAC;IACxC,CAAC,UAAU,EAAE,EAAC,KAAK,EAAE,CAAC,EAAE,GAAG,WAAW,EAAC,CAAC;IACxC,CAAC,UAAU,EAAE,WAAW,CAAC;IACzB,CAAC,kBAAkB,EAAE,WAAW,CAAC;IACjC,CAAC,YAAY,EAAE,WAAW,CAAC;IAC3B,CAAC,kBAAkB,EAAE,QAAQ,CAAC;IAC9B,CAAC,kBAAkB,EAAE,QAAQ,CAAC;AACjC,CAAA,CACJ,CAAC;AAEK,MAAM,aAAa,GAAG,MAAK;AAC9B,IAAA,QAAQ,CACJ,aAAa,EACb,aAAa,CAChB,CAAC;IACF,kBAAkB,CACd,cAAc,CAAC,QAAQ,EACvB,IAAI,GAAG,CAAC,aAAa,CAAC,CACzB,CAAC;AACN,CAAC;;;;ICbD,EAA+C,CAAA,cAAA,CAAA,CAAA,EAAA,KAAA,EAAA,CAAA,CAAA,CAAA;IAAA,EAAoB,CAAA,MAAA,CAAA,CAAA,CAAA,CAAA;IAAA,EAAM,CAAA,YAAA,EAAA,CAAA;;;IAA1B,EAAoB,CAAA,SAAA,EAAA,CAAA;IAApB,EAAoB,CAAA,iBAAA,CAAA,MAAA,CAAA,gBAAA,CAAA,CAAA;;ACjBnE,MAAM,aAAa,GAAG;AAClB,IAAA,UAAU,EAAE,aAAa;AACzB,IAAA,SAAS,EAAE,mBAAmB;CACjC,CAAC;AAWI,MAAO,iBAAkB,SAAQ,SAAS,CAAA;AACrC,IAAA,SAAA,IAAA,CAAA,eAAe,GAAG,aAAa,EAAhB,CAAmB,EAAA;IAmBzC,WAAY,CAAA,GAAa,EAA0C,eAAoB,EAAA;AACnF,QAAA,KAAK,CAAC,GAAG,EAAE,aAAa,EAAE,eAAe,CAAC,CAAC;QANxC,IAAU,CAAA,UAAA,GAAW,CAAC,CAAC;KAO7B;IAEM,aAAa,GAAA;AAChB,QAAA,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,OAAO,CAAC,aAAa,CAAC,KAAK,CAAC,MAAM,CAAC;KAC7D;AA1BQ,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,SAAA,yBAAA,CAAA,CAAA,EAAA,EAAA,OAAA,KAAA,CAAA,IAAA,iBAAiB,0DAoBS,kBAAkB,EAAA,CAAA,CAAA,CAAA,CAAA,EAAA,CAAA,EAAA;oEApB5C,iBAAiB,EAAA,SAAA,EAAA,CAAA,CAAA,aAAA,CAAA,CAAA,EAAA,SAAA,EAAA,SAAA,uBAAA,CAAA,EAAA,EAAA,GAAA,EAAA,EAAA,IAAA,EAAA,GAAA,CAAA,EAAA;;2BAkBf,OAAO,EAAA,CAAA,CAAA,CAAA;;;;;AAxBP,SAAA,EAAA,EAAA,QAAA,EAAA,CAAA,EAAA,CAAA,kBAAA,CAAA;AACP,gBAAA,SAAS,CAAC,iBAAiB,EAAE,iBAAiB,EAAE,IAAI,CAAC;AACrD,gBAAA,SAAS,CAAC,iBAAiB,EAAE,aAAa,EAAE,IAAI,CAAC;gBACjD,kBAAkB,CAAC,iBAAiB,CAAC;AACxC,aAAA,CAAA,EAAA,EAAA,CAAA,0BAAA,CAAA,EAAA,KAAA,EAAA,CAAA,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,CAAA,CAAA,UAAA,EAAA,EAAA,CAAA,EAAA,CAAA,cAAA,EAAA,EAAA,EAAA,MAAA,EAAA,SAAA,EAAA,gBAAA,EAAA,MAAA,EAAA,CAAA,EAAA,cAAA,EAAA,cAAA,EAAA,CAAA,EAAA,eAAA,EAAA,MAAA,EAAA,OAAA,EAAA,SAAA,EAAA,gBAAA,EAAA,UAAA,EAAA,UAAA,EAAA,UAAA,EAAA,WAAA,EAAA,WAAA,EAAA,SAAA,EAAA,SAAA,CAAA,EAAA,CAAA,OAAA,EAAA,gBAAA,EAAA,CAAA,EAAA,MAAA,CAAA,EAAA,CAAA,CAAA,EAAA,gBAAA,CAAA,CAAA,EAAA,QAAA,EAAA,SAAA,0BAAA,CAAA,EAAA,EAAA,GAAA,EAAA,EAAA,IAAA,EAAA,GAAA,CAAA,EAAA;;YDnBL,EAsBC,CAAA,cAAA,CAAA,CAAA,EAAA,UAAA,EAAA,CAAA,EAAA,CAAA,CAAA,CAAA;YAlBS,EAAuB,CAAA,gBAAA,CAAA,eAAA,EAAA,SAAA,4DAAA,CAAA,MAAA,EAAA,EAAA,EAAA,CAAA,aAAA,CAAA,GAAA,CAAA,CAAA,CAAA,EAAA,CAAA,kBAAA,CAAA,GAAA,CAAA,SAAA,EAAA,MAAA,CAAA,KAAA,GAAA,CAAA,SAAA,GAAA,MAAA,CAAA,CAAA,CAAA,OAAA,EAAA,CAAA,WAAA,CAAA,MAAA,CAAA,CAAA,EAAA,CAAA,CAAA;YAcvB,EAAQ,CAAA,UAAA,CAAA,MAAA,EAAA,SAAA,mDAAA,CAAA,MAAA,EAAA,EAAA,EAAA,CAAA,aAAA,CAAA,GAAA,CAAA,CAAA,CAAA,OAAA,EAAA,CAAA,WAAA,CAAA,GAAA,CAAA,UAAA,CAAA,MAAA,CAAkB,CAAC,CAAA,EAAA,CAAA,CAAA,OAAA,EAAA,SAAA,oDAAA,GAAA,EAAA,EAAA,CAAA,aAAA,CAAA,GAAA,CAAA,CAAA,CAAA,OAAA,EAAA,CAAA,WAAA,CAClB,GAAe,CAAA,aAAA,EAAA,CAAA,CAAA,EAAA,CAAC,CACR,eAAA,EAAA,SAAA,4DAAA,CAAA,MAAA,EAAA,EAAA,EAAA,CAAA,aAAA,CAAA,GAAA,CAAA,CAAA,CAAA,GAAA,CAAA,YAAA,CAAA,MAAA,CAAoB,CAAE,CAAA,OAAA,EAAA,CAAA,WAAA,CAAA,GAAA,CAAA,aAAA,EAAe,CAAE,CAAA,EAAA,CAAA,CAAA;YAEjE,EAAW,CAAA,YAAA,EAAA,CAAA;YAEZ,EAA+C,CAAA,UAAA,CAAA,CAAA,EAAA,gCAAA,EAAA,CAAA,EAAA,CAAA,EAAA,KAAA,EAAA,CAAA,CAAA,CAAA;;YApBrC,EAAuB,CAAA,gBAAA,CAAA,SAAA,EAAA,GAAA,CAAA,SAAA,CAAA,CAAA;AAavB,YAZA,EAAiC,CAAA,UAAA,CAAA,gBAAA,EAAA,GAAA,CAAA,cAAA,CAAA,CAAA,UAAA,EAAA,GAAA,CAAA,QAAA,CACZ,CACA,UAAA,EAAA,GAAA,CAAA,QAAA,CAAA,CAAA,UAAA,EAAA,GAAA,CAAA,QAAA,CACA,CACC,WAAA,EAAA,GAAA,CAAA,QAAA,CAAA,CAAA,WAAA,EAAA,GAAA,CAAA,SAAA,CAMC,iCACK,CACA,SAAA,EAAA,GAAA,CAAA,gBAAA,CAAA,CAAA;;YAOhC,EAAc,CAAA,SAAA,CAAA,CAAA,CAAA,CAAA;YAAd,EAAc,CAAA,UAAA,CAAA,MAAA,EAAA,GAAA,CAAA,QAAA,CAAA,CAAA;;;iFCHP,iBAAiB,EAAA,CAAA;cAT7B,SAAS;AACI,QAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,aAAa,EAEZ,SAAA,EAAA;AACP,oBAAA,SAAS,CAAoB,iBAAA,EAAA,iBAAiB,EAAE,IAAI,CAAC;AACrD,oBAAA,SAAS,CAAoB,iBAAA,EAAA,aAAa,EAAE,IAAI,CAAC;AACjD,oBAAA,kBAAkB,CAAmB,iBAAA,CAAA;AACxC,iBAAA,EAAA,QAAA,EAAA,o7BAAA,EAAA,CAAA;;sBAsB2B,MAAM;uBAAC,kBAAkB,CAAA;;sBAAG,QAAQ;qBAHzB,OAAO,EAAA,CAAA;kBAA7C,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA,UAAU,EAAE,EAAC,MAAM,EAAE,IAAI,EAAC,CAAA;YACjB,OAAO,EAAA,CAAA;kBAA1B,SAAS;mBAAC,OAAO,CAAA;;kFAlBT,iBAAiB,EAAA,EAAA,SAAA,EAAA,mBAAA,EAAA,QAAA,EAAA,gCAAA,EAAA,UAAA,EAAA,EAAA,EAAA,CAAA,CAAA,EAAA,GAAA;;MCbjB,wBAAwB,CAAA;IAcjC,WAAY,CAAA,GAAa,EAAE,GAAQ,EAAA;;QAF3B,IAAwB,CAAA,wBAAA,GAAa,CAAC,UAAU,EAAE,aAAa,EAAE,UAAU,EAAE,QAAQ,EAAE,OAAO,EAAE,UAAU,EAAE,QAAQ,EAAE,QAAQ,EAAE,QAAQ,EAAE,QAAQ,CAAC,CAAC;QAGxJ,IAAI,CAAC,UAAU,GAAG,GAAG,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC;QACtC,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,UAAU,CAAC,aAAa,CAAC;AAC9C,QAAA,IAAI,CAAC,GAAG,GAAG,GAAG,CAAC;KAClB;IAEO,QAAQ,GAAA;AACZ,QAAA,IAAI,cAAc,CAAC;;AAEnB,QAAA,IAAI,IAAI,CAAC,OAAO,CAAC,MAAM,GAAG,CAAC,IAAI,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,cAAc,CAAC,EAAE;YAClE,OAAO,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC,EAAE,KAAI;AACzB,gBAAA,IAAI,CAAC,CAAC,EAAE,CAAC,CAAC,QAAQ,CAAC,cAAc,CAAC,IAAI,EAAE,CAAC,KAAK,EAAE;AAC5C,oBAAA,cAAc,GAAG,EAAE,CAAC,KAAK,CAAC;iBAC7B;AACL,aAAC,CAAC,CAAC;SACN;QACD,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,EAAE,IAAI,CAAC,cAAc,EAAE;YACxC,IAAI,CAAC,YAAY,CAAC,SAAS,CAAC,MAAM,CAAC,cAAc,CAAC,CAAC;AACnD,YAAA,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,aAAa,CAAC,CAAC;SAC1C;KACJ;IAEO,SAAS,GAAA;QACb,IAAI,CAAC,YAAY,CAAC,SAAS,CAAC,GAAG,CAAC,cAAc,CAAC,CAAC;QAChD,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,aAAa,EAAE,IAAI,CAAC,WAAW,CAAC,CAAC;KACtD;;IAGO,yBAAyB,GAAA;AAC7B,QAAA,IAAI,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,IAAI,CAAC,wBAAwB,CAAC,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,EAAE,CAAC,QAAQ,CAAC;AACvG,YAAA,CAAC,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,aAAa,CAAC,CAAC,CAAC,IAAI,CAAC,WAAW,CAAC,EAAE;AAC3D,YAAA,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,IAAI,CAAC,wBAAwB,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;SAC5D;KACJ;IAEO,wBAAwB,GAAA;;AAE5B,QAAA,IAAI,CAAC,IAAI,CAAC,mBAAmB,IAAI,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,aAAa,CAAC,EAAE;YAC/D,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;AACpD,YAAA,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,aAAa,CAAC,CAAC;SAC1C;;QAGD,IAAI,CAAC,yBAAyB,EAAE,CAAC;;;;;;AAQjC,QAAA,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,EAAE,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,aAAa,CAAC,CAAC,CAAC,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,aAAa,CAAC,CAAC,CAAC,IAAI,CAAC,gBAAgB,CAAC,IAAI,IAAI,CAAC,QAAQ,CAAC,YAAY,CAAC,cAAc,CAAC;AACzN,eAAA,IAAI,CAAC,QAAQ,CAAC,YAAY,CAAC,eAAe,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,IAAI,CAAC,wBAAwB,CAAC,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,IAAI,CAAC,UAAU,CAAC,EAAE;YAC9J,IAAI,CAAC,YAAY,CAAC,SAAS,CAAC,GAAG,CAAC,cAAc,CAAC,CAAC;SACnD;KACJ;AAED;;;AAGG;IACK,+BAA+B,GAAA;QACnC,IAAI,CAAC,aAAa,GAAG,IAAI,gBAAgB,CAAC,SAAS,IAAG;AAClD,YAAA,SAAS,CAAC,OAAO,CAAC,CAAC,QAAQ,KAAI;gBAC3B,IAAI,QAAQ,CAAC,aAAa,KAAK,aAAa,IAAI,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC,YAAY,CAAC,SAAS,CAAC,QAAQ,CAAC,cAAc,CAAC,EAAE;oBACvI,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;AACpD,oBAAA,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,aAAa,CAAC,CAAC;iBAC1C;AACL,aAAC,CAAC,CAAC;AACP,SAAC,CAAC,CAAC;AACH,QAAA,MAAM,MAAM,GAAG,EAAE,UAAU,EAAE,IAAI,EAAE,SAAS,EAAE,KAAK,EAAE,aAAa,EAAE,KAAK,EAAE,CAAC;AAC5E,QAAA,IAAI,CAAC,aAAa,CAAC,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,MAAM,CAAC,CAAC;KACvD;;IAGO,wBAAwB,GAAA;QAC5B,MAAM,aAAa,GAAG,CAAC,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;AAC3C,QAAA,IAAI,aAAa,CAAC,OAAO,CAAC,cAAc,CAAC,CAAC,MAAM,IAAI,aAAa,CAAC,IAAI,CAAC,kBAAkB,CAAC,CAAC,MAAM,EAAE;YAC/F,MAAM,MAAM,GAAG,aAAa,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;YAC3C,IAAI,aAAa,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC,MAAM,EAAE;AAC3C,gBAAA,MAAM,CAAC,QAAQ,CAAC,mBAAmB,CAAC,CAAC;aACxC;iBAAM;AACH,gBAAA,MAAM,CAAC,QAAQ,CAAC,gBAAgB,CAAC,CAAC;aACrC;SACJ;KACJ;IAED,eAAe,GAAA;AACX,QAAA,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC,QAAQ,CAAC;AAClC,QAAA,MAAM,MAAM,GAAG,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC;QACpC,IAAI,eAAe,GAAW,MAAM,CAAC,MAAM,CAAC,GAAG,CAAC,iBAAiB,CAAC,CAAC;AACnE,QAAA,IAAI,MAAM,CAAC,IAAI,EAAE;YACb,eAAe,GAAG,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,iBAAiB,CAAC,CAAC;YAC5D,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC,QAAQ,CAAC,aAAa,CAAC,uBAAuB,CAAC,CAAC;YACzE,IAAI,CAAC,mBAAmB,GAAG,IAAI,CAAC,QAAQ,CAAC,YAAY,CAAC,kBAAkB,CAAC,CAAC;SAC7E;AACD,QAAA,IAAI,eAAe,KAAK,UAAU,EAAE;AAChC,YAAA,IAAI,MAAM,CAAC,IAAI,EAAE;AACb,gBAAA,MAAM,UAAU,GAAW,IAAI,CAAC,QAAQ,CAAC,YAAY,CAAC,YAAY,CAAC,CAAC;AACpE,gBAAA,IAAI,IAAI,CAAC,wBAAwB,CAAC,OAAO,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,EAAE;oBACxD,IAAI,CAAC,YAAY,CAAC,SAAS,CAAC,MAAM,CAAC,kBAAkB,CAAC,CAAC;oBACvD,IAAI,CAAC,YAAY,CAAC,SAAS,CAAC,GAAG,CAAC,aAAa,CAAC,CAAC;iBAClD;gBACD,IAAI,CAAC,wBAAwB,EAAE,CAAC;aACnC;AACD,YAAA,IAAI,CAAC,OAAO,GAAG,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,IAAI,CAAC,yBAAyB,CAAC,CAAC;AAChE,YAAA,IAAI,CAAC,IAAI,CAAC,mBAAmB,EAAE;AAC3B,gBAAA,IAAI,CAAC,mBAAmB,GAAG,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,aAAa,CAAC,CAAC,IAAI,CAAC,kBAAkB,CAAC,CAAC;aAC3F;;AAED,YAAA,UAAU,CAAC,IAAI,CAAC,wBAAwB,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC;AAExD,YAAA,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;AAC9C,YAAA,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;;AAG5C,YAAA,IAAI,IAAI,CAAC,mBAAmB,EAAE;gBAC1B,IAAI,CAAC,+BAA+B,EAAE,CAAC;aAC1C;SACJ;KACJ;;IAGD,QAAQ,GAAA;AACJ,QAAA,IAAI,CAAC,0BAA0B,GAAG,IAAI,CAAC,GAAG,CAAC,SAAS,CAAC,wBAAwB,EAAE,CAAC,IAAI,KAAI;;;;;AAKpF,YAAA,MAAM,gBAAgB,GAAG,IAAI,CAAC,OAAO,IAAI,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC,QAAQ,CAAC,CAAC;AACnE,YAAA,IAAI,IAAI,CAAC,UAAU,IAAI,IAAI,CAAC,SAAS,IAAI,IAAI,CAAC,gBAAgB,IAAI,gBAAgB,EAAE;AAChF,gBAAA,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,cAAc,CAAC,CAAC;AACvC,gBAAA,IAAI,CAAC,IAAI,CAAC,UAAU,IAAI,gBAAgB,EAAE;oBACtC,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,aAAa,EAAE,IAAI,CAAC,WAAW,CAAC,CAAC;iBACtD;aACJ;iBAAM;AACH,gBAAA,IAAI,CAAC,QAAQ,CAAC,WAAW,CAAC,cAAc,CAAC,CAAC;;;;AAI1C,gBAAA,IAAI,IAAI,CAAC,OAAO,EAAE;oBACd,MAAM,QAAQ,GAAG,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC;AACnD,oBAAA,IAAI,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,aAAa,CAAC,IAAI,QAAQ,CAAC,IAAI,EAAE,EAAE;AACrD,wBAAA,IAAI,QAAQ,CAAC,MAAM,EAAE;AACjB,4BAAA,QAAQ,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;yBACrB;6BAAM;4BACH,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;AACpD,4BAAA,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,aAAa,CAAC,CAAC;yBAC1C;qBACJ;iBACJ;aACJ;AACL,SAAC,CAAC,CAAC;KACN;IAED,WAAW,GAAA;AACP,QAAA,IAAI,IAAI,CAAC,0BAA0B,EAAE;YACjC,IAAI,CAAC,0BAA0B,EAAE,CAAC;SACrC;AACD,QAAA,IAAI,IAAI,CAAC,aAAa,EAAE;AACpB,YAAA,IAAI,CAAC,aAAa,CAAC,UAAU,EAAE,CAAC;SACnC;KACJ;yFAhLQ,wBAAwB,EAAA,EAAA,CAAA,iBAAA,CAAA,EAAA,CAAA,QAAA,CAAA,EAAA,EAAA,CAAA,iBAAA,CAAAM,IAAA,CAAA,GAAA,CAAA,CAAA,CAAA,EAAA,CAAA,EAAA;oEAAxB,wBAAwB,EAAA,SAAA,EAAA,CAAA,CAAA,EAAA,EAAA,mBAAA,EAAA,EAAA,CAAA,CAAA,EAAA,CAAA,CAAA,EAAA;;iFAAxB,wBAAwB,EAAA,CAAA;cAHpC,SAAS;AAAC,QAAA,IAAA,EAAA,CAAA;AACP,gBAAA,QAAQ,EAAE,qBAAqB;AAClC,aAAA,CAAA;;;ACkBD,MAAM,UAAU,GAAG;IACf,eAAe;IACf,oBAAoB;IACpB,wBAAwB;IACxB,iBAAiB;IACjB,oBAAoB;IACpB,kBAAkB;IAClB,eAAe;IACf,iBAAiB;IACjB,eAAe;IACf,eAAe;IACf,sBAAsB;IACtB,mBAAmB;IACnB,mBAAmB;IACnB,oBAAoB;IACpB,kBAAkB;IAClB,iBAAiB;CACpB,CAAC;MAYW,WAAW,CAAA;4EAAX,WAAW,GAAA,CAAA,EAAA,CAAA,EAAA;mEAAX,WAAW,EAAA,CAAA,CAAA,EAAA;uEARhB,YAAY;YACZ,WAAW;YACX,kBAAkB;YAClB,WAAW,CAAA,EAAA,CAAA,CAAA,EAAA;;iFAKN,WAAW,EAAA,CAAA;cAVvB,QAAQ;AAAC,QAAA,IAAA,EAAA,CAAA;AACN,gBAAA,OAAO,EAAE;oBACL,YAAY;oBACZ,WAAW;oBACX,kBAAkB;oBAClB,WAAW;AACd,iBAAA;AACD,gBAAA,YAAY,EAAE,CAAC,GAAG,UAAU,CAAC;AAC7B,gBAAA,OAAO,EAAE,CAAC,GAAG,UAAU,CAAC;AAC3B,aAAA,CAAA;;AACY,CAAA,YAAA,EAAA,CAAA,OAAA,SAAA,KAAA,WAAA,IAAA,SAAA,KAAA,EAAA,CAAA,kBAAA,CAAA,WAAW,mBA5BpB,eAAe;QACf,oBAAoB;QACpB,wBAAwB;QACxB,iBAAiB;QACjB,oBAAoB;QACpB,kBAAkB;QAClB,eAAe;QACf,iBAAiB;QACjB,eAAe;QACf,eAAe;QACf,sBAAsB;QACtB,mBAAmB;QACnB,mBAAmB;QACnB,oBAAoB;QACpB,kBAAkB;AAClB,QAAA,iBAAiB,aAKb,YAAY;QACZ,WAAW;QACX,kBAAkB;AAClB,QAAA,WAAW,aAvBf,eAAe;QACf,oBAAoB;QACpB,wBAAwB;QACxB,iBAAiB;QACjB,oBAAoB;QACpB,kBAAkB;QAClB,eAAe;QACf,iBAAiB;QACjB,eAAe;QACf,eAAe;QACf,sBAAsB;QACtB,mBAAmB;QACnB,mBAAmB;QACnB,oBAAoB;QACpB,kBAAkB;QAClB,iBAAiB,CAAA,EAAA,CAAA,CAAA,EAAA,GAAA;;ACzCrB;;AAEG;;;;"}
1
+ {"version":3,"file":"index.mjs","sources":["../../../../../projects/components/widgets/input/default/src/button/button.props.ts","../../../../../projects/components/widgets/input/default/src/button/button.component.html","../../../../../projects/components/widgets/input/default/src/button/button.component.ts","../../../../../projects/components/widgets/input/default/src/button-group/button-group.props.ts","../../../../../projects/components/widgets/input/default/src/button-group/button-group.directive.ts","../../../../../projects/components/widgets/input/default/src/base-form.component.ts","../../../../../projects/components/widgets/input/default/src/base-form-custom.component.ts","../../../../../projects/components/widgets/input/default/src/checkbox/checkbox.props.ts","../../../../../projects/components/widgets/input/default/src/checkbox/checkbox.component.ts","../../../../../projects/components/widgets/input/default/src/checkbox/checkbox.component.html","../../../../../projects/components/widgets/input/default/src/dataset-aware-form.component.ts","../../../../../projects/components/widgets/input/default/src/checkboxset/checkboxset.props.ts","../../../../../projects/components/widgets/input/default/src/checkboxset/checkboxset.component.html","../../../../../projects/components/widgets/input/default/src/checkboxset/checkboxset.component.ts","../../../../../projects/components/widgets/input/default/src/composite/composite.props.ts","../../../../../projects/components/widgets/input/default/src/composite/composite.directive.ts","../../../../../projects/components/widgets/input/default/src/number/number.props.ts","../../../../../projects/components/widgets/input/default/src/text/base/base-input.ts","../../../../../projects/components/widgets/input/default/src/text/locale/number-locale.ts","../../../../../projects/components/widgets/input/default/src/number/number.component.ts","../../../../../projects/components/widgets/input/default/src/number/number.component.html","../../../../../projects/components/widgets/input/default/src/radioset/radioset.props.ts","../../../../../projects/components/widgets/input/default/src/radioset/radioset.component.html","../../../../../projects/components/widgets/input/default/src/radioset/radioset.component.ts","../../../../../projects/components/widgets/input/default/src/select/select.props.ts","../../../../../projects/components/widgets/input/default/src/select/select.component.html","../../../../../projects/components/widgets/input/default/src/select/select.component.ts","../../../../../projects/components/widgets/input/default/src/switch/switch.props.ts","../../../../../projects/components/widgets/input/default/src/switch/switch.component.html","../../../../../projects/components/widgets/input/default/src/switch/switch.component.ts","../../../../../projects/components/widgets/input/default/src/text/calendar/input-calendar.props.ts","../../../../../projects/components/widgets/input/default/src/text/calendar/input-calendar.component.ts","../../../../../projects/components/widgets/input/default/src/text/calendar/input-calendar.component.html","../../../../../projects/components/widgets/input/default/src/text/color/input-color.props.ts","../../../../../projects/components/widgets/input/default/src/text/color/input-color.component.ts","../../../../../projects/components/widgets/input/default/src/text/color/input-color.component.html","../../../../../projects/components/widgets/input/default/src/text/email/input-email.props.ts","../../../../../projects/components/widgets/input/default/src/text/email/input-email.component.ts","../../../../../projects/components/widgets/input/default/src/text/email/input-email.component.html","../../../../../projects/components/widgets/input/default/src/text/number/input-number.props.ts","../../../../../projects/components/widgets/input/default/src/text/number/input-number.component.ts","../../../../../projects/components/widgets/input/default/src/text/number/input-number.component.html","../../../../../projects/components/widgets/input/default/src/text/text/input-text.props.ts","../../../../../projects/components/widgets/input/default/src/text/text/input-text.component.ts","../../../../../projects/components/widgets/input/default/src/text/text/input-text.component.html","../../../../../projects/components/widgets/input/default/src/textarea/textarea.props.ts","../../../../../projects/components/widgets/input/default/src/textarea/textarea.component.html","../../../../../projects/components/widgets/input/default/src/textarea/textarea.component.ts","../../../../../projects/components/widgets/input/default/src/caption-position.directive.ts","../../../../../projects/components/widgets/input/default/src/input.module.ts","../../../../../projects/components/widgets/input/default/src/index.ts"],"sourcesContent":["import { PROP_ANY, PROP_BOOLEAN, PROP_NUMBER, PROP_STRING, register } from '@wm/components/base';\n\nexport const registerProps = () => {\n register(\n 'wm-button',\n new Map(\n [\n ['animation', PROP_STRING],\n ['badgevalue', PROP_STRING],\n ['caption', PROP_STRING],\n ['class', PROP_STRING],\n ['conditionalclass', PROP_ANY],\n ['conditionalstyle', PROP_ANY],\n ['disabled', PROP_BOOLEAN],\n ['hint', PROP_STRING],\n ['iconclass', PROP_STRING],\n ['iconheight', PROP_STRING],\n ['iconmargin', PROP_STRING],\n ['iconposition', PROP_STRING],\n ['iconurl', PROP_STRING],\n ['iconwidth', PROP_STRING],\n ['name', PROP_STRING],\n ['shortcutkey', PROP_STRING],\n ['show', {value: true, ...PROP_BOOLEAN}],\n ['tabindex', {value: 0, ...PROP_NUMBER}],\n ['type', PROP_STRING]\n ]\n )\n );\n};\n","<img data-identifier=\"img\" alt=\"button image\" class=\"button-image-icon\" [src]=\"iconurl | image\" *ngIf=\"iconurl\" [ngStyle]=\"{width:iconwidth, height:iconheight, margin:iconmargin}\"/>\n<i class=\"app-icon {{iconclass}}\" aria-hidden=\"true\" [ngStyle]=\"{width:iconwidth, height:iconheight, margin:iconmargin, fontSize:iconwidth}\" *ngIf=\"iconclass\"></i>\n<span class=\"sr-only\" *ngIf=\"iconclass\">{{caption}} {{appLocale.LABEL_ICON}}</span>\n<span class=\"btn-caption\" [innerHTML]=\"caption\"></span>\n<ng-content select=\".caret\"></ng-content>\n<span *ngIf=\"badgevalue\" class=\"badge pull-right\" [textContent]=\"badgevalue\"></span>\n","import { Component, HostBinding, Inject, Injector, Optional } from '@angular/core';\n\nimport { DISPLAY_TYPE, IWidgetConfig, provideAsWidgetRef, StylableComponent, styler } from '@wm/components/base';\n\nimport { registerProps } from './button.props';\n\nconst DEFAULT_CLS = 'btn app-button';\nconst WIDGET_CONFIG: IWidgetConfig = {\n widgetType: 'wm-button',\n hostClass: DEFAULT_CLS,\n displayType: DISPLAY_TYPE.INLINE_BLOCK\n};\n\n@Component({\n selector: 'button[wmButton]',\n templateUrl: './button.component.html',\n providers: [\n provideAsWidgetRef(ButtonComponent)\n ],\n exportAs: 'wmButton'\n})\nexport class ButtonComponent extends StylableComponent {\n static initializeProps = registerProps();\n\n public iconurl: string;\n public iconclass: string;\n public caption: string;\n public badgevalue: string;\n @HostBinding('type') type: string;\n @HostBinding('tabIndex') tabindex: number;\n @HostBinding('disabled') disabled: boolean;\n @HostBinding('attr.accesskey') shortcutkey: string;\n @HostBinding('attr.icon-position') iconposition: string;\n\n constructor(inj: Injector, @Inject('EXPLICIT_CONTEXT') @Optional() explicitContext: any) {\n super(inj, WIDGET_CONFIG, explicitContext);\n styler(this.nativeElement, this);\n }\n}\n","import { PROP_BOOLEAN, PROP_STRING, register } from '@wm/components/base';\n\nexport const registerProps = () => {\n register(\n 'wm-buttongroup',\n new Map(\n [\n ['class', PROP_STRING],\n ['name', PROP_STRING],\n ['show', {value: true, ...PROP_BOOLEAN}],\n ['vertical', PROP_BOOLEAN]\n ]\n )\n );\n};\n","import {Directive, HostBinding, HostListener, Inject, Injector, Optional} from '@angular/core';\n\nimport { APPLY_STYLES_TYPE, IWidgetConfig, provideAsWidgetRef, StylableComponent, styler } from '@wm/components/base';\nimport { registerProps } from './button-group.props';\n\nconst DEFAULT_CLS = 'btn-group app-button-group';\nconst WIDGET_CONFIG: IWidgetConfig = {\n widgetType: 'wm-buttongroup',\n hostClass: DEFAULT_CLS\n};\n\n@Directive({\n selector: '[wmButtonGroup]',\n providers: [\n provideAsWidgetRef(ButtonGroupDirective)\n ]\n})\nexport class ButtonGroupDirective extends StylableComponent {\n static initializeProps = registerProps();\n @HostBinding('class.btn-group-vertical') vertical: boolean;\n @HostListener('click', ['$event']) handleClick(event) {\n const $target = $(event.target).closest('.app-button');\n this.$element.find('.app-button').removeClass('selected');\n $target.addClass('selected');\n }\n\n constructor(inj: Injector, @Inject('EXPLICIT_CONTEXT') @Optional() explicitContext: any) {\n super(inj, WIDGET_CONFIG, explicitContext);\n\n styler(this.nativeElement, this, APPLY_STYLES_TYPE.CONTAINER);\n }\n}\n","import {AfterViewInit, Inject, Injectable, Injector, Optional} from '@angular/core';\n\nimport {DataSource} from '@wm/core';\n\nimport { IWidgetConfig, StylableComponent, WidgetConfig } from '@wm/components/base';\nimport {has, set} from \"lodash-es\";\n\n@Injectable()\nexport abstract class BaseFormComponent extends StylableComponent implements AfterViewInit{\n\n private dataval;\n private prevDatavalue;\n protected binddatavalue: string;\n private datavaluesource: any;\n\n protected constructor(\n protected inj: Injector,\n @Inject(WidgetConfig) config: IWidgetConfig,\n @Inject('EXPLICIT_CONTEXT') @Optional() explicitContext: any,\n initPromise?: Promise<any>\n ) {\n super(inj, config, explicitContext, initPromise);\n this.binddatavalue = this.$element.attr('datavalue.bind');\n }\n\n set datavalue(datavalue) {\n this.dataval = datavalue;\n }\n\n get datavalue() {\n return this.dataval;\n }\n\n /**\n * Responsible for updating the variable bound to the widget's datavalue property.\n * @param value\n */\n updateBoundVariable(value) {\n let binddatavalue = this.binddatavalue;\n\n // return if the variable bound is not static.\n if (this.datavaluesource && this.datavaluesource.execute(DataSource.Operation.IS_API_AWARE)) {\n return;\n } else if (this.datavaluesource && !this.datavaluesource.twoWayBinding) {\n return;\n }\n\n // return if widget is bound.\n if (!binddatavalue || binddatavalue.startsWith('Widgets.') || binddatavalue.startsWith('itemRef.currentItemWidgets')) {\n return;\n }\n\n binddatavalue = binddatavalue.replace(/\\[\\$i\\]/g, '[0]');\n\n // In case of list widget context will be the listItem.\n if (has(this.context, binddatavalue.split('.')[0])) {\n set(this.context, binddatavalue, value);\n } else {\n set(this.viewParent, binddatavalue, value);\n }\n }\n\n protected invokeOnChange(value, $event?: Event) {\n // invoke the event callback\n if ($event) {\n if (this.datavalue !== this.prevDatavalue) {\n this.updateBoundVariable(value);\n this.invokeEventCallback('change', {\n $event,\n newVal: value,\n oldVal: this.prevDatavalue\n });\n }\n }\n // update the previous value\n this.prevDatavalue = value;\n }\n\n protected updatePrevDatavalue(val: any) {\n this.prevDatavalue = val;\n }\n\n ngAfterViewInit() {\n super.ngAfterViewInit();\n\n// [WMS-18892]- stopping event propagation [for ArrowLeft, ArrowUp, ArrowRight, ArrowDown actions] when form widgets or form is inside list widget\n let parentElemList = $(this.nativeElement).parents();\n if (parentElemList.closest('[wmList]').length) {\n this.$element.keydown(function($event) {\n if ($event.keyCode === 37 || $event.keyCode === 38 || $event.keyCode === 39 || $event.keyCode === 40) {\n $event.stopPropagation();\n }\n });\n }\n }\n}\n","import { ControlValueAccessor, FormControlName, Validator, ValidatorFn, AbstractControl } from '@angular/forms';\nimport { Injectable, OnInit } from '@angular/core';\n\nimport { BaseFormComponent } from './base-form.component';\n\n/*\n * WMS-18269\n * custom 'required' validator for components,\n * as the bound values are resolved at runtime\n * Called on 'required' property change\n *\n * Note: Component needs NG_VALIDATOR provider for this to work\n */\nfunction isValidValue(val): Boolean {\n switch(typeof val) {\n case 'object': return (!!val && (!!val.length || !!Object.keys(val).length));\n case 'number': return (!!val || val === 0);\n default: return !(val === undefined || val === null || val === '');\n }\n}\nfunction validateRequiredBind(required: boolean): ValidatorFn {\n return (control: AbstractControl) =>\n required\n ? (isValidValue(control.value)\n ? null\n : { required: true })\n : null;\n}\n\n@Injectable()\nexport abstract class BaseFormCustomComponent extends BaseFormComponent implements ControlValueAccessor, OnInit, Validator {\n\n private _formControl: FormControlName;\n protected _onChange: any = () => {};\n private _onTouched: any = () => {};\n\n ngOnInit() {\n super.ngOnInit();\n this._formControl = this.inj.get(FormControlName, null);\n }\n\n public registerOnChange(fn) {\n this._onChange = fn;\n }\n\n public registerOnTouched(fn) {\n this._onTouched = fn;\n }\n\n public writeValue(value) {\n if (this.isDestroyed) {\n return;\n }\n if (this._formControl) {\n this.datavalue = value;\n this.onPropertyChange('datavalue', value);\n this.updatePrevDatavalue(value);\n }\n /*\n * WMS:18246\n * Call onChange on default value, so that the Component Model is updated\n * Do only When the Model Value is different from datavalue\n */\n (value!==this.datavalue) && this._onChange(this.datavalue);\n }\n\n public invokeOnChange(value, $event?: Event | any, valid?: boolean) {\n // let the angular know about the change\n this._onChange(value);\n if ($event) {\n super.invokeOnChange(value, $event);\n } else if (valid) {\n // Fix for [WMS-24869]: updating PrevDatavalue when there is a default value for the widget.\n this.updatePrevDatavalue(value);\n }\n }\n\n public invokeOnTouched($event?: Event) {\n this._onTouched();\n\n if ($event) {\n this.invokeEventCallback('blur', {$event});\n }\n }\n\n public invokeOnFocus($event: Event) {\n this.invokeEventCallback('focus', {$event});\n }\n /* WMS-18269 */\n validate(control: AbstractControl):{[key: string]:any} {\n return this['show'] ? validateRequiredBind(this['required'])(control) : null;\n }\n}\n","import { FormWidgetType } from '@wm/core';\nimport { PROP_ANY, PROP_BOOLEAN, PROP_NUMBER, PROP_STRING, register, registerFormWidget } from '@wm/components/base';\n\nexport const checkboxProps = new Map(\n [\n ['caption', PROP_STRING],\n ['class', PROP_STRING],\n ['conditionalclass', PROP_ANY],\n ['conditionalstyle', PROP_ANY],\n ['checkedvalue', {value: true, ...PROP_STRING}],\n ['datavaluesource', PROP_ANY],\n ['datavalue', PROP_STRING],\n ['disabled', PROP_BOOLEAN],\n ['hint', PROP_STRING],\n ['name', PROP_STRING],\n ['readonly', PROP_BOOLEAN],\n ['required', PROP_BOOLEAN],\n ['shortcutkey', PROP_STRING],\n ['show', {value: true, ...PROP_BOOLEAN}],\n ['tabindex', {value: 0, ...PROP_NUMBER}],\n ['uncheckedvalue', {value: false, ...PROP_STRING}]\n ]\n);\n\nexport const registerProps = () => {\n register(\n 'wm-checkbox',\n checkboxProps\n );\n registerFormWidget(\n FormWidgetType.CHECKBOX,\n checkboxProps\n );\n registerFormWidget(\n FormWidgetType.TOGGLE,\n checkboxProps\n );\n};\n","import {\n AfterViewInit,\n Attribute,\n Component,\n ElementRef,\n HostListener,\n Inject,\n Injector,\n OnInit,\n Optional,\n ViewChild\n} from '@angular/core';\nimport { NgModel, NG_VALUE_ACCESSOR, NG_VALIDATORS } from '@angular/forms';\n\nimport {isDefined, toggleClass} from '@wm/core';\nimport { IWidgetConfig, provideAs, provideAsWidgetRef, styler } from '@wm/components/base';\nimport { BaseFormCustomComponent } from '../base-form-custom.component';\n\nimport { registerProps } from './checkbox.props';\n\nconst DEFAULT_CLS = 'app-checkbox checkbox';\nconst WIDGET_CONFIG: IWidgetConfig = {\n widgetType: 'wm-checkbox',\n hostClass: DEFAULT_CLS\n};\n\n/*\n * try to convert the chekedvalue and unchecked values to boolean/number\n */\nexport const unStringify = (val, defaultVal?) => {\n if (val === null) {\n return defaultVal;\n }\n\n if (val === true || val === 'true') {\n return true;\n }\n\n if (val === false || val === 'false') {\n return false;\n }\n\n const number = parseInt(val, 10);\n if (!isNaN(number)) {\n return number;\n }\n return val;\n};\n\n@Component({\n selector: '[wmCheckbox]',\n templateUrl: './checkbox.component.html',\n providers: [\n provideAs(CheckboxComponent, NG_VALUE_ACCESSOR, true),\n provideAs(CheckboxComponent, NG_VALIDATORS, true),\n provideAsWidgetRef(CheckboxComponent)\n ]\n})\nexport class CheckboxComponent extends BaseFormCustomComponent implements OnInit, AfterViewInit {\n static initializeProps = registerProps();\n\n public proxyModel: boolean;\n public disabled: boolean;\n public readonly: boolean;\n public required: boolean;\n public name: string;\n public hint: string;\n public shortcutkey: string;\n public tabindex: any;\n public _caption = '&nbsp';\n private _checkedvalue;\n private _uncheckedvalue;\n\n @ViewChild(NgModel) ngModel: NgModel;\n @ViewChild('checkbox', { static: true, read: ElementRef }) checkboxEl: ElementRef;\n\n // if the checkbox is checked, return checkedvalue else return uncheckedvalue\n // @ts-ignore\n public get datavalue() {\n return isDefined(this.proxyModel) ? (this.proxyModel ? this._checkedvalue : this._uncheckedvalue) : undefined;\n }\n // when the datavalue is set, update the checked state\n // @ts-ignore\n public set datavalue(v) {\n this.proxyModel = (isDefined(v) && v !== '') ? v === this._checkedvalue : undefined;\n this.updatePrevDatavalue(this.datavalue);\n }\n\n constructor(\n inj: Injector,\n @Attribute('checkedvalue') checkedVal,\n @Attribute('uncheckedvalue') uncheckedVal,\n @Attribute('type') public type,\n @Inject('EXPLICIT_CONTEXT') @Optional() explicitContext: any\n ) {\n super(inj, WIDGET_CONFIG, explicitContext);\n\n this._checkedvalue = unStringify(checkedVal, true);\n this._uncheckedvalue = unStringify(uncheckedVal, false);\n\n // if the type of the checkbox is toggle update the related classes on the host node\n toggleClass(this.nativeElement, 'app-toggle', type === 'toggle');\n }\n\n onPropertyChange(key, nv, ov) {\n if (key === 'tabindex') {\n return;\n }\n if (key === 'required') {\n this._onChange(this.datavalue);\n return;\n }\n\n if (key === 'caption') {\n if (!isDefined(nv) || nv === '') {\n this._caption = '&nbsp;';\n } else {\n this._caption = nv;\n }\n } else if (key === 'checkedvalue') {\n this._checkedvalue = unStringify(nv, true);\n } else if (key === 'uncheckedvalue') {\n this._uncheckedvalue = unStringify(nv, false);\n } else if (key === 'datavalue') {\n this.datavalue = unStringify(nv);\n this._onChange(this.datavalue);\n } else {\n super.onPropertyChange(key, nv, ov);\n }\n }\n\n // change and blur events are handled from template\n protected handleEvent(node: HTMLElement, eventName: string, callback: Function, locals: any) {\n if (eventName !== 'change' && eventName !== 'blur') {\n // applying tap (Hammer event) on the label as the event handler is not getting triggered on the input.\n const $el = eventName === 'tap' ? this.nativeElement.querySelector('label') : this.checkboxEl.nativeElement;\n super.handleEvent($el, eventName, callback, locals);\n }\n }\n\n handleChange(newVal: boolean) {\n this.invokeOnChange(this.datavalue, {type: 'change'}, this.ngModel.valid);\n }\n\n @HostListener('keydown.enter', ['$event', '\"ENTER\"'])\n onKeyDown($event) {\n $event.preventDefault();\n this.checkboxEl.nativeElement.click();\n }\n\n\n ngAfterViewInit() {\n super.ngAfterViewInit();\n styler(this.nativeElement.querySelector('label'), this);\n }\n}\n","<label [ngClass]=\"{'unchecked': !proxyModel, 'disabled': (disabled || readonly), 'required': (required && _caption)}\">\n <input type=\"checkbox\"\n role=\"checkbox\"\n #checkbox\n [attr.name]=\"name\"\n [attr.aria-label]=\"hint\"\n [attr.aria-checked]=\"!!proxyModel\"\n focus-target\n [(ngModel)]=\"proxyModel\"\n [ngModelOptions]=\"{standalone: true}\"\n [readonly]=\"readonly\"\n [required]=\"required\"\n [disabled]=\"disabled || readonly\"\n [attr.accesskey]=\"shortcutkey\"\n [tabindex]=\"tabindex\"\n (blur)=\"invokeOnTouched($event)\"\n (ngModelChange)=\"handleChange($event)\">\n <span class=\"caption\" [innerHtml]=\"_caption\"></span>\n <img alt=\"Checkbox Image\" aria-hidden=\"true\" src=\"data:image/gif;base64,R0lGODlhAQABAAAAACH5BAEKAAEALAAAAAABAAEAAAICTAEAOw==\" class=\"switch\"/>\n</label>\n<input type=\"hidden\" class=\"ng-hide model-holder\" aria-hidden=\"true\" tabindex=\"-1\" [disabled]=\"disabled\" [value]=\"proxyModel\">\n","import {Attribute, Inject, Injectable, Injector, OnDestroy, OnInit, Optional} from '@angular/core';\nimport {Subject} from 'rxjs';\nimport {$appDigest, AppDefaults, debounce, isDefined, isEqualWithFields, noop, toBoolean} from '@wm/core';\nimport { ALLFIELDS, convertDataToObject, DataSetItem, extractDataAsArray, getOrderedDataset, getUniqObjsByDataField, handleHeaderClick, toggleAllHeaders, transformFormData, transformDataWithKeys, groupData, ToDatePipe, IWidgetConfig, WidgetConfig } from '@wm/components/base';\nimport { BaseFormCustomComponent } from './base-form-custom.component';\nimport {debounce as _debounce, find, isArray, isEmpty, isEqual, isNull, isObject, toString} from \"lodash-es\";\n\n@Injectable()\nexport abstract class DatasetAwareFormComponent extends BaseFormCustomComponent implements OnInit, OnDestroy {\n public dataset: any;\n public datafield: string;\n public displayfield: string;\n public displaylabel: string;\n public displayimagesrc: string;\n public displayexpression: string;\n public usekeys: boolean;\n public orderby: string;\n public multiple: boolean;\n public readonly: boolean;\n public content: string;\n public collapsible: boolean;\n public datePipe;\n\n public handleHeaderClick: ($event) => void;\n private toggleAllHeaders: void;\n public appDefaults;\n\n public binddisplayexpression: string;\n public binddisplayimagesrc: string;\n public binddisplaylabel: string;\n\n public displayValue: Array<string> | string;\n\n public datasetItems: DataSetItem[] = [];\n public acceptsArray = false; // set to true if proxyModel on widget accepts array type.\n protected dataset$ = new Subject();\n protected datavalue$ = new Subject();\n\n protected match: string;\n protected dateformat: string;\n public groupedData: any[];\n\n protected _modelByKey: any;\n public _modelByValue: any;\n public _defaultQueryInvoked: boolean; // for search/chips if datavalue is obtained from the default n/w call then set to true and do not update the modelByKeys.\n\n // this field contains the initial datavalue which needs to be processed once the dataset is available\n public toBeProcessedDatavalue: any;\n private readonly _debouncedInitDatasetItems: Function;\n protected allowempty = true;\n public compareby: any;\n\n private cancelLocaleChangeSubscription;\n\n public get modelByKey() {\n return this._modelByKey;\n }\n\n // triggers on ngModel change. This function extracts the datavalue value.\n public set modelByKey(val: any) {\n this.selectByKey(val);\n\n // invoke on datavalue change.\n this.invokeOnChange(this._modelByValue);\n }\n\n // @ts-ignore\n public get datavalue() {\n return this._modelByValue;\n }\n\n // triggers on setting the datavalue. This function extracts the model value.\n // @ts-ignore\n public set datavalue(val: any) {\n if (this.multiple) {\n val = extractDataAsArray(val);\n }\n this._modelByValue = val;\n\n this.selectByValue(val);\n\n // changes on the datavalue can be subscribed using listenToDatavalue\n this.datavalue$.next(val);\n\n // invoke on datavalue change.\n this.invokeOnChange(val, undefined, true);\n }\n\n protected constructor(inj: Injector, @Inject(WidgetConfig) config: IWidgetConfig,\n @Inject('EXPLICIT_CONTEXT') @Optional() explicitContext: any, @Attribute('groupby') public groupby?: string) {\n super(inj, config, explicitContext);\n this.datePipe = this.inj.get(ToDatePipe);\n this.appDefaults = this.inj.get(AppDefaults);\n this.binddisplayexpression = this.nativeElement.getAttribute('displayexpression.bind');\n this.binddisplayimagesrc = this.nativeElement.getAttribute('displayimagesrc.bind');\n this.binddisplaylabel = this.nativeElement.getAttribute('displaylabel.bind');\n\n this._debouncedInitDatasetItems = debounce(() => {\n this.initDatasetItems();\n $appDigest();\n }, 150);\n this.handleHeaderClick = noop;\n\n this.cancelLocaleChangeSubscription = this.getAppInstance().subscribe(\"locale-changed\", () => {\n this._debouncedInitDatasetItems();\n });\n }\n\n /**\n * This function sets the _datavalue value from the model and sets the selected flag when item is found.\n * Here model is the value obtained from ngModel.\n * @param keys represent the model.\n */\n protected selectByKey(keys) {\n this.resetDatasetItems();\n\n if (!this.datasetItems.length) {\n return;\n }\n\n if (this.multiple && !isArray(keys)) {\n keys = [keys];\n }\n\n // Set the _modelByKey to the modified keys.\n this._modelByKey = keys;\n\n if (this.multiple) {\n this._modelByValue = [];\n keys.forEach(key => {\n const itemByKey = find(this.datasetItems, item => {\n // not triple equal, as the instance type can be different.\n // only value comparison should be done.\n return toString(item.key) === toString(key);\n });\n if (itemByKey) {\n itemByKey.selected = true;\n this._modelByValue = [...this._modelByValue, itemByKey.value];\n }\n });\n } else {\n this._modelByValue = '';\n const itemByKey = find(this.datasetItems, item => {\n // not triple equal, as the instance type can be different.\n // only value comparison should be done.\n return toString(item.key) === toString(keys);\n });\n if (itemByKey) {\n itemByKey.selected = true;\n this._modelByValue = itemByKey.value;\n }\n }\n this.initDisplayValues();\n }\n\n /**\n * This function sets the _model value from the datavalue (selectedvalues) and sets the selected flag when item is found.\n * datavalue is the default value or a value representing the displayField (for suppose: object in case of ALLFIELDS).\n * If acceptsArray is true, the model always accepts an array.\n * For example, select always accepts model as array whether multiple select is true or false.\n * @param values represent the datavalue.\n */\n protected selectByValue(values: Array<any> | any) {\n this.resetDatasetItems();\n\n // if datavalue is not defined or empty then set the model as undefined.\n if (!isDefined(values) || values === '' || isNull(values) || (values instanceof Array && !values.length)) {\n this._modelByKey = undefined;\n // do not return when allowempty is set to true.\n if (!this.allowempty || !isDefined(values)) {\n return;\n }\n }\n\n if (this.acceptsArray && !isArray(values)) {\n values = this.allowempty ? [values] : extractDataAsArray(values);\n }\n\n // preserve the datavalue if datasetItems are empty.\n if (!this.datasetItems.length && isDefined(values)) {\n this.toBeProcessedDatavalue = values;\n return;\n }\n\n const filterField = this.datafield === ALLFIELDS ? 'dataObject' : 'key';\n\n if (isArray(values)) {\n this._modelByKey = [];\n values.forEach(val => {\n const itemByValue = find(this.datasetItems, item => {\n if (filterField === 'dataObject') {\n if (this.compareby && this.compareby.length) {\n return isEqualWithFields(item[filterField], val, this.compareby);\n }\n }\n return (isObject(item.value) ? isEqual(item.value, val) : (toString(item.value)).toLowerCase() === (toString(val)).toLowerCase());\n });\n if (itemByValue) {\n itemByValue.selected = true;\n this._modelByKey.push(itemByValue.key);\n }\n });\n } else {\n this._modelByKey = undefined;\n const itemByValue = find(this.datasetItems, item => {\n if (filterField === 'dataObject') {\n if (this.compareby && this.compareby.length) {\n return isEqualWithFields(item[filterField], values, this.compareby);\n }\n }\n return (isObject(item.value) ? isEqual(item.value, values) : (toString(item.value)).toLowerCase() === (toString(values)).toLowerCase());\n });\n if (itemByValue) {\n itemByValue.selected = true;\n this._modelByKey = itemByValue.key;\n }\n }\n // delaying the datavalue update as the widgets in liveform are having datavalue as undefined and not the default provided value\n // because datavalue is updated later when new dataset is available.\n this._debounceDatavalueUpdation(values);\n }\n\n protected readonly _debounceDatavalueUpdation = _debounce((values) => {\n // if no item is found in datasetItems, wait untill the dataset updates by preserving the datavalue in toBeProcessedDatavalue.\n if (!isDefined(this._modelByKey) || (isArray(this._modelByKey) && !this._modelByKey.length)) {\n this.toBeProcessedDatavalue = values;\n this._modelByValue = '';\n } else if (isDefined(this.toBeProcessedDatavalue)) {\n // obtain the first array value when multiple is set to false.\n // set the modelByValue only when undefined.\n if (!isDefined(this._modelByValue)) {\n this._modelByValue = (!this.multiple && isArray(this.toBeProcessedDatavalue)) ? this.toBeProcessedDatavalue[0] : this.toBeProcessedDatavalue;\n }\n this.toBeProcessedDatavalue = undefined;\n }\n\n this.initDisplayValues();\n }, 150);\n\n // Updates the displayValue property.\n protected initDisplayValues() {\n const displayValues = [];\n this.datasetItems.forEach(item => {\n if (item.selected) {\n displayValues.push(item.label);\n }\n });\n\n this.displayValue = this.multiple ? displayValues : displayValues[0] || '';\n }\n\n // This function parses the dataset and extracts the displayOptions from parsed dataset.\n protected initDatasetItems() {\n if (!this.dataset || isEmpty(this.dataset)) {\n this.datasetItems = [];\n // notify the dataset listeners\n this.dataset$.next(this.datasetItems);\n return;\n }\n\n // convert any dataset to the object format.\n const orderedDataset = getOrderedDataset(convertDataToObject(this.dataset), this.orderby);\n\n if (this.usekeys) {\n this.datasetItems = transformDataWithKeys(orderedDataset);\n } else {\n const displayOptions = transformFormData(this.viewParent, orderedDataset, this.datafield, {\n displayField: this.displayfield || this.displaylabel,\n displayExpr: this.displayexpression,\n bindDisplayExpr: this.binddisplayexpression || this.binddisplaylabel,\n bindDisplayImgSrc: this.binddisplayimagesrc,\n displayImgSrc: this.displayimagesrc\n });\n // get the unique objects out of the extracted data. Notify change in datasetItems using [...datasetItems] notation\n this.datasetItems = [...getUniqObjsByDataField(displayOptions, this.datafield, this.displayfield || this.displaylabel, toBoolean(this.allowempty))];\n }\n\n this.postDatasetItemsInit();\n }\n\n // Once the datasetItems are ready, set the proxyModel by using datavalue.\n protected postDatasetItemsInit() {\n if (this.datasetItems.length && !this._defaultQueryInvoked) {\n // use the latest of toBeProcessedDatavalue, datavalue\n const _datavalue = isEmpty(this.toBeProcessedDatavalue) ? this.datavalue : this.toBeProcessedDatavalue;\n this.selectByValue(_datavalue);\n }\n // notify the dataset listeners\n this.dataset$.next(this.datasetItems);\n }\n\n // Reset the selected flag on datasetItems to false.\n protected resetDatasetItems() {\n this.datasetItems.forEach(item => item.selected = false);\n }\n\n protected setTemplate(partialName) {\n this.content = partialName;\n if (this.viewParent && this.viewParent.prefabName) {\n this['prefabName'] = this.viewParent.prefabName;\n }\n }\n\n\n private getGroupedData() {\n return this.datasetItems.length ? groupData(this, convertDataToObject(this.datasetItems), this.groupby, this.match, this.orderby, this.dateformat, this.datePipe, 'dataObject', this.appDefaults) : [];\n }\n\n private datasetSubscription() {\n const datasetSubscription = this.dataset$.subscribe(() => {\n this.groupedData = this.getGroupedData();\n });\n this.registerDestroyListener(() => datasetSubscription.unsubscribe());\n }\n\n protected setGroupData() {\n this.datasetSubscription();\n // If groupby is set, get the groupedData from the datasetItems.\n this.groupedData = this.getGroupedData();\n }\n\n\n onPropertyChange(key: string, nv: any, ov?: any) {\n super.onPropertyChange(key, nv, ov);\n switch (key) {\n case 'dataset':\n case 'datafield':\n case 'displayfield':\n case 'displaylabel':\n case 'displayexpression':\n case 'orderby':\n case 'usekeys':\n this._debouncedInitDatasetItems();\n break;\n case 'required':\n case 'datavalue':\n this._onChange(this.datavalue);\n break;\n case 'groupby':\n case 'match':\n if (this.widgetType !== 'wm-search' && this.widgetType !== 'wm-chips') {\n this.setGroupData();\n }\n break;\n }\n }\n\n ngOnInit() {\n super.ngOnInit();\n if (this.groupby && (this.widgetType !== 'wm-search' && this.widgetType !== 'wm-chips')) {\n this.setGroupData();\n }\n // adding the handler for header click and toggle headers.\n if (this.groupby && this.collapsible) {\n this.handleHeaderClick = handleHeaderClick;\n this.toggleAllHeaders = toggleAllHeaders.bind(undefined, this);\n }\n }\n\n ngOnDestroy() {\n if(this.cancelLocaleChangeSubscription) {\n this.cancelLocaleChangeSubscription();\n }\n }\n}\n","import { FormWidgetType } from '@wm/core';\nimport { PROP_ANY, PROP_BOOLEAN, PROP_NUMBER, PROP_STRING, register, registerFormWidget } from '@wm/components/base';\n\nexport const checkboxsetProps = new Map(\n [\n ['class', PROP_STRING],\n ['collapsible', PROP_BOOLEAN],\n ['compareby', PROP_STRING],\n ['datafield', PROP_STRING],\n ['dataset', {value: 'Option 1, Option 2, Option 3', ...PROP_ANY}],\n ['datavaluesource', PROP_ANY],\n ['datavalue', PROP_STRING],\n ['dateformat', PROP_STRING],\n ['disabled', PROP_BOOLEAN],\n ['displayexpression', PROP_STRING],\n ['displayfield', PROP_STRING],\n ['displayValue', PROP_STRING],\n ['groupby', PROP_STRING],\n ['itemclass', {value: '', ...PROP_STRING}],\n ['itemsperrow', {value: 'xs-1 sm-1 md-1 lg-1', ...PROP_STRING}],\n ['listclass', {value: '', ...PROP_STRING}],\n ['match', PROP_STRING],\n ['name', PROP_STRING],\n ['orderby', PROP_STRING],\n ['readonly', PROP_BOOLEAN],\n ['required', PROP_BOOLEAN],\n ['show', {value: true, ...PROP_BOOLEAN}],\n ['showcount', PROP_BOOLEAN],\n ['showindevice', {displayType: 'inline-block', value: 'all', ...PROP_STRING}],\n ['tabindex', {value: 0, ...PROP_NUMBER}],\n ['usekeys', PROP_BOOLEAN]\n ]\n);\n\nexport const registerProps = () => {\n register(\n 'wm-checkboxset',\n checkboxsetProps\n );\n registerFormWidget(\n FormWidgetType.CHECKBOXSET,\n new Map(checkboxsetProps)\n );\n};\n","<ng-template [ngIf]=\"!groupby\" [ngIfElse]=\"groupedListTemplate\">\n <li [ngClass]=\"['checkbox', 'app-checkbox', itemclass, itemsPerRowClass]\"\n [class.active]=\"item.selected\"\n *ngFor=\"let item of datasetItems; let i = index\"\n [wmItemTemplate]=\"content\" [userComponentParams]=\"item\" partialContainer\n (click)=\"onCheckboxLabelClick($event, item.key)\" role=\"presentation\">\n <!-- Default item template -->\n <label *ngIf=\"!content\" class=\"app-checkboxset-label\" [ngClass]=\"{'disabled':disabled || readonly}\" [title]=\"item.label\">\n <input [name]=\"'checkboxset_' + widgetId\" type=\"checkbox\" [attr.aria-label]=\"item.key\"\n [tabindex]=\"tabindex\" [attr.aria-checked]=\"item.selected\"\n [disabled]=\"disabled || readonly\" [attr.data-attr-index]=\"i\"\n [value]=\"item.key\" [tabindex]=\"tabindex\" [checked]=\"item.selected\"/>\n <span class=\"caption\" [textContent]=\"item.label\"></span>\n </label>\n <!-- Custom partial template -->\n <label *ngIf=\"content\" class=\"app-checkboxset-label\" [ngClass]=\"{'disabled':disabled || readonly}\" >\n <input [name]=\"'checkboxset_' + widgetId\" type=\"checkbox\" [attr.aria-label]=\"item.key\"\n [tabindex]=\"tabindex\" [attr.aria-checked]=\"item.selected\"\n [disabled]=\"disabled || readonly\" [attr.data-attr-index]=\"i\"\n [value]=\"item.key\" [tabindex]=\"tabindex\" [checked]=\"item.selected\"/>\n <span class=\"caption customTemplate\" partial-container-target></span>\n </label>\n </li>\n</ng-template>\n<input [disabled]=\"disabled || readonly\" hidden class=\"model-holder\">\n<div *ngIf=\"readonly || disabled\" class=\"readonly-wrapper\"></div>\n\n<!-- This template will be displayed when groupby is specified. -->\n<ng-template #groupedListTemplate>\n <li *ngFor=\"let groupObj of groupedData\" class=\"app-list-item-group\" role=\"presentation\">\n <ul class=\"item-group\">\n <li class=\"list-group-header\" (click)=\"handleHeaderClick($event)\" [title]=\"groupObj.key\" [ngClass]=\"{'collapsible-content': collapsible}\">\n <h4 class=\"group-title\">{{groupObj.key}}\n <div class=\"header-action\">\n <i class=\"app-icon wi action wi-chevron-up\" *ngIf=\"collapsible\" title=\"{{appLocale.LABEL_COLLAPSE}}/{{appLocale.LABEL_EXPAND}}\"></i>\n <span *ngIf=\"showcount\" class=\"label label-default\" [textContent]=\"groupObj.data.length\"></span>\n </div>\n </h4>\n </li>\n <li *ngFor=\"let item of groupObj.data; let i = index;\"\n [ngClass]=\"['checkbox', 'app-checkbox', 'group-list-item', itemclass, itemsPerRowClass]\"\n [class.active]=\"item.selected\"\n [wmItemTemplate]=\"content\" [userComponentParams]=\"item\" partialContainer\n (click)=\"onCheckboxLabelClick($event, item)\">\n <!-- Default item template -->\n <label *ngIf=\"!content\" class=\"app-checkboxset-label\" [ngClass]=\"{'disabled':disabled || readonly}\" [title]=\"item.label\">\n <input [name]=\"'checkboxset_' + widgetId\" type=\"checkbox\" aria-label=\"checkbox group\"\n [tabindex]=\"tabindex\"\n [disabled]=\"disabled || readonly\" [attr.data-attr-index]=\"i\"\n [value]=\"item.key\" [tabindex]=\"tabindex\" [checked]=\"item.selected\"/>\n <span class=\"caption\" [textContent]=\"item.label\"></span>\n </label>\n <!-- Custom partial template -->\n <label *ngIf=\"content\" class=\"app-checkboxset-label\" [ngClass]=\"{'disabled':disabled || readonly}\" >\n <input [name]=\"'checkboxset_' + widgetId\" type=\"checkbox\" aria-label=\"checkbox group\"\n [tabindex]=\"tabindex\"\n [disabled]=\"disabled || readonly\" [attr.data-attr-index]=\"i\"\n [value]=\"item.key\" [tabindex]=\"tabindex\" [checked]=\"item.selected\"/>\n <span class=\"caption\" partial-container-target></span>\n </label>\n </li>\n </ul>\n </li>\n</ng-template>\n","import {Attribute, Component, HostListener, Inject, Injector, Optional} from '@angular/core';\nimport { NG_VALUE_ACCESSOR, NG_VALIDATORS } from '@angular/forms';\n\nimport {AppDefaults, noop, setListClass, switchClass} from '@wm/core';\nimport { convertDataToObject, IWidgetConfig, groupData, handleHeaderClick, provideAs, provideAsWidgetRef, styler, toggleAllHeaders } from '@wm/components/base';\nimport { DatasetAwareFormComponent } from '../dataset-aware-form.component';\n\nimport { registerProps } from '../checkboxset/checkboxset.props';\nimport {forEach, includes} from \"lodash-es\";\n\ndeclare const $;\n\nconst DEFAULT_CLS = 'app-checkboxset list-group inline';\nconst WIDGET_CONFIG: IWidgetConfig = {widgetType: 'wm-checkboxset', hostClass: DEFAULT_CLS};\n\n@Component({\n selector: '[wmCheckboxset]',\n exportAs: 'wmCheckboxset',\n templateUrl: 'checkboxset.component.html',\n providers: [\n provideAs(CheckboxsetComponent, NG_VALUE_ACCESSOR, true),\n provideAs(CheckboxsetComponent, NG_VALIDATORS, true),\n provideAsWidgetRef(CheckboxsetComponent)\n ]\n})\n\nexport class CheckboxsetComponent extends DatasetAwareFormComponent {\n static initializeProps = registerProps();\n\n public layout = '';\n public collapsible: boolean;\n\n protected match: string;\n protected dateformat: string;\n\n public disabled: boolean;\n public itemsperrow: string;\n private itemsPerRowClass: string;\n\n constructor(inj: Injector, @Inject('EXPLICIT_CONTEXT') @Optional() explicitContext: any) {\n super(inj, WIDGET_CONFIG, explicitContext);\n styler(this.nativeElement, this);\n this.multiple = true;\n }\n\n triggerInvokeOnChange(keys, $event) {\n this.modelByKey = keys;\n\n this.invokeOnTouched();\n // invoke on datavalue change.\n this.invokeOnChange(this.datavalue, $event || {}, true);\n }\n\n onCheckboxLabelClick($event, key) {\n if (!$($event.target).is('input')) {\n return;\n }\n\n // construct the _model from the checked elements.\n const inputElements = this.nativeElement.querySelectorAll('input:checked');\n const keys = [];\n forEach(inputElements, ($el) => {\n // @ts-ignore\n keys.push($el.value);\n });\n\n this.triggerInvokeOnChange(keys, $event);\n }\n\n // change and blur events are added from the template\n protected handleEvent(node: HTMLElement, eventName: string, callback: Function, locals: any) {\n if (eventName === 'click') {\n this.eventManager.addEventListener(\n node,\n eventName,\n e => {\n if (!$(e.target).is('input')) {\n return;\n }\n locals.$event = e;\n return callback();\n }\n );\n } else if (!includes(['change'], eventName)) {\n super.handleEvent(node, eventName, callback, locals);\n }\n }\n\n @HostListener('keydown.enter', ['$event', '\"ENTER\"'])\n onKeyDown($event) {\n $event.preventDefault();\n $event.target.click();\n }\n\n onPropertyChange(key, nv, ov?) {\n\n if (key === 'tabindex') {\n return;\n }\n if (key === 'required') {\n this._onChange(this.datavalue);\n return;\n }\n if (key === 'itemsperrow') {\n setListClass(this);\n } else {\n super.onPropertyChange(key, nv, ov);\n }\n }\n}\n","import { PROP_BOOLEAN, PROP_STRING, register } from '@wm/components/base';\n\nexport const registerProps = () => {\n register(\n 'wm-form-group',\n new Map(\n [\n ['captionposition', PROP_STRING],\n ['name', PROP_STRING],\n ['required', PROP_BOOLEAN],\n ['show', {value: true, ...PROP_BOOLEAN}]\n ]\n )\n );\n};\n","import {AfterViewInit, ContentChildren, Directive, Inject, Injector, Optional} from '@angular/core';\n\nimport {addForIdAttributes, switchClass} from '@wm/core';\n\nimport { APPLY_STYLES_TYPE, IWidgetConfig, provideAsWidgetRef, StylableComponent, styler, WidgetRef } from '@wm/components/base';\n\nimport { registerProps } from './composite.props';\n\ndeclare const $;\n\nconst DEFAULT_CLS = 'form-group app-composite-widget clearfix';\nconst WIDGET_CONFIG: IWidgetConfig = {\n widgetType: 'wm-form-group',\n hostClass: DEFAULT_CLS\n};\n\nconst CAPTION_POSITION = {\n left: 'caption-left',\n right: 'caption-right',\n top: 'caption-top',\n floating: 'caption-floating'\n};\n\n@Directive({\n selector: 'div[wmComposite]',\n providers: [\n provideAsWidgetRef(CompositeDirective)\n ]\n})\nexport class CompositeDirective extends StylableComponent implements AfterViewInit {\n static initializeProps = registerProps();\n\n // this is the reference to the component refs inside the form-group\n @ContentChildren(WidgetRef, {descendants: true}) componentRefs;\n\n public required: boolean;\n\n constructor(inj: Injector, @Inject('EXPLICIT_CONTEXT') @Optional() explicitContext: any) {\n super(inj, WIDGET_CONFIG, explicitContext);\n styler(this.nativeElement, this, APPLY_STYLES_TYPE.CONTAINER);\n }\n\n /**\n * this is onPropertyChange handler for the form-group component\n * @param key\n * @param nv\n * @param ov\n */\n onPropertyChange(key, nv, ov) {\n if (key === 'captionposition') {\n switchClass(this.nativeElement, CAPTION_POSITION[nv], CAPTION_POSITION[ov]);\n } else if (key === 'required') {\n this.required = nv;\n this.assignRequiredToSubComponents();\n } else {\n super.onPropertyChange(key, nv, ov);\n }\n }\n\n /**\n * this method assigns the required on the component/directive based on the required attribute of the form-group\n */\n protected assignRequiredToSubComponents() {\n if (this.required && this.componentRefs) {\n setTimeout(() => {\n this.componentRefs.forEach(componentRef => componentRef.widget.required = true);\n }, 50);\n }\n }\n\n ngAfterViewInit() {\n super.ngAfterViewInit();\n addForIdAttributes(this.nativeElement);\n\n this.assignRequiredToSubComponents();\n }\n}\n","import { PROP_ANY, PROP_BOOLEAN, PROP_NUMBER, PROP_STRING, register, registerFormWidget } from '@wm/components/base';\nimport { FormWidgetType } from '@wm/core';\n\nexport const numberProps = new Map(\n [\n ['autofocus', PROP_BOOLEAN],\n ['class', PROP_STRING],\n ['datavaluesource', PROP_ANY],\n ['datavalue', PROP_STRING],\n ['disabled', PROP_BOOLEAN],\n ['hint', PROP_STRING],\n ['localefilter', PROP_STRING],\n ['minvalue', PROP_NUMBER],\n ['maxvalue', PROP_NUMBER],\n ['name', PROP_STRING],\n ['numberfilter', PROP_STRING],\n ['placeholder', {value: 'Enter number', ...PROP_STRING}],\n ['readonly', PROP_BOOLEAN],\n ['regexp', PROP_STRING],\n ['required', PROP_BOOLEAN],\n ['shortcutkey', PROP_STRING],\n ['show', {value: true, ...PROP_BOOLEAN}],\n ['step', {value: 1, ...PROP_NUMBER}],\n ['tabindex', {value: 0, ...PROP_NUMBER}],\n ['trailingzero', {value: false, ...PROP_BOOLEAN}],\n ['updateon', PROP_STRING],\n ['inputmode', {value: 'natural', ...PROP_STRING}],\n ['conditionalclass', PROP_ANY],\n ['conditionalstyle', PROP_ANY]\n ]\n);\n\nexport const registerProps = () => {\n register(\n 'wm-number',\n numberProps\n );\n registerFormWidget(\n FormWidgetType.NUMBER,\n new Map(numberProps)\n );\n};\n","import {AfterViewInit, ElementRef, Inject, Injectable, Injector, Optional} from '@angular/core';\nimport {NgModel} from '@angular/forms';\n\nimport {$appDigest, addClass, switchClass} from '@wm/core';\nimport {IWidgetConfig, styler, WidgetConfig} from '@wm/components/base';\nimport {BaseFormCustomComponent} from '../../base-form-custom.component';\nimport {get, isString} from \"lodash-es\";\n\n@Injectable()\nexport abstract class BaseInput extends BaseFormCustomComponent implements AfterViewInit {\n public class: string;\n public autotrim: boolean;\n public imask;\n\n // possible values for ngModelOptions are 'blur' and 'change'\n // default is 'blur'\n public ngModelOptions = {\n updateOn: '',\n standalone: true\n };\n\n /**\n * Reference to the input element. All the styles and classes will be applied on this node.\n * Input components must override this\n */\n protected abstract inputEl: ElementRef;\n\n /**\n * Reference to the ngModel directive instance.\n * Used to check the validity of the input\n */\n protected abstract ngModel: NgModel;\n\n protected onPropertyChange(key: string, nv: any, ov: any) {\n // set the class on the input element\n if (key === 'tabindex') {\n return;\n }\n if (key === 'required') {\n /* WMS-18269 | Update Angular about the required attr value change */\n this._onChange(this.datavalue);\n }\n if (key === 'updateon') {\n this.ngModelOptions.updateOn = nv === 'default' ? 'change' : ov;\n }\n if (key === 'class') {\n if (this.inputEl.nativeElement) {\n switchClass(this.inputEl.nativeElement, nv, ov);\n }\n } else if (key === 'datavalue') {\n // update the oldDataValue when the datavalue is modified programmatically\n this.updatePrevDatavalue(nv);\n this._onChange(this.datavalue);\n } else {\n super.onPropertyChange(key, nv, ov);\n }\n }\n\n // invoke the change callback\n handleChange(newValue: any) {\n if (this.autotrim && this.datavalue && isString(this.datavalue)) {\n this.datavalue = this.datavalue.trim();\n }\n\n this.invokeOnChange(this.datavalue, {type: 'change'}, this.ngModel.valid);\n }\n\n // Change event is registered from the template, Prevent the framework from registering one more event\n protected handleEvent(node: HTMLElement, eventName: string, eventCallback: Function, locals: any) {\n if (eventName !== 'change' && eventName !== 'blur') {\n super.handleEvent(this.inputEl.nativeElement, eventName, eventCallback, locals);\n }\n }\n\n // invoke the blur callback\n handleBlur($event) {\n this.invokeOnTouched($event);\n }\n\n // Update the model on enter key press\n flushViewChanges(val) {\n // when val contains masked value, update the model with unmasked value\n const unMaskedVal = get(this.imask, 'maskRef.unmaskedValue');\n val = unMaskedVal ? unMaskedVal : val;\n this.ngModel.update.next(val);\n $appDigest();\n }\n\n ngAfterViewInit() {\n super.ngAfterViewInit();\n\n // add the class on the input element\n if (this.class) {\n addClass(this.inputEl.nativeElement, this.class);\n }\n styler(this.inputEl.nativeElement, this);\n }\n\n protected constructor(\n inj: Injector,\n @Inject(WidgetConfig) config: IWidgetConfig,\n @Inject('EXPLICIT_CONTEXT') @Optional() explicitContext: any\n ) {\n super(inj, config, explicitContext);\n let updateOn = this.nativeElement.getAttribute('updateon') || 'blur';\n updateOn = updateOn === 'default' ? 'change' : updateOn;\n this.ngModelOptions.updateOn = updateOn;\n }\n}\n","import {Inject, Injector, Optional} from '@angular/core';\nimport { AbstractControl, Validator } from '@angular/forms';\nimport { getLocaleNumberSymbol, NumberSymbol } from '@angular/common';\n\nimport {AbstractI18nService, isDefined} from '@wm/core';\nimport { IWidgetConfig, TrailingZeroDecimalPipe, INPUTMODE } from '@wm/components/base';\n\nimport { BaseInput } from '../base/base-input';\nimport {includes, intersection, isNull, isString, isUndefined, round, toArray} from \"lodash-es\";\n\nexport abstract class NumberLocale extends BaseInput implements Validator {\n private DECIMAL: string;\n private GROUP: string;\n private selectedLocale: string;\n private proxyModel: number;\n private numberNotInRange: boolean;\n private isInvalidNumber: boolean;\n private isDefaultQuery: boolean = true;\n private decimalValue: string = '';\n public displayValue: string;\n private numberfilter: string;\n private localefilter: string;\n public readonly: boolean;\n\n public placeholder: string;\n public minvalue: number;\n public maxvalue: number;\n public updateon: string;\n public step: number;\n public trailingzero: boolean;\n private validateType: string;\n public inputmode: string;\n private lastValIsDecimal: boolean;\n\n constructor(\n inj: Injector,\n config: IWidgetConfig,\n private i18nService: AbstractI18nService,\n private trailingZeroDecimalPipe: TrailingZeroDecimalPipe,\n @Inject('EXPLICIT_CONTEXT') @Optional() explicitContext: any\n ) {\n super(inj, config, explicitContext);\n this.selectedLocale = i18nService.getSelectedLocale();\n this.DECIMAL = getLocaleNumberSymbol(this.localefilter || this.selectedLocale, NumberSymbol.Decimal);\n this.GROUP = getLocaleNumberSymbol(this.localefilter || this.selectedLocale, NumberSymbol.Group);\n this.numberfilter = '1.0-16';\n this.resetValidations();\n }\n\n // Setter for the datavalue.\n // @ts-ignore\n set datavalue(value: number) {\n this.lastValIsDecimal = false;\n\n // set text value to null if data value is empty.\n // @ts-ignore\n if (includes([null, undefined, ''], value)) {\n const input = this.inputEl.nativeElement;\n const prevDataValue = (this as any).prevDatavalue;\n this.displayValue = input.value = this.proxyModel = null;\n this.resetValidations();\n if (prevDataValue && !this.isDefaultQuery) {\n this.handleChange(value);\n this._onChange();\n }\n return;\n }\n // if the widget has default value and if we change the locale, the value should be in selected locale format.\n if (this.isDefaultQuery) {\n const isLocalizedNumber = isString(value) && includes(value, this.DECIMAL);\n const parts = isLocalizedNumber ? (value as any).split(this.DECIMAL) : isString(value) && (value as any).split('.');\n this.decimalValue = parts[1] || '';\n (value as any) = isLocalizedNumber ? value : this.transformNumber(value);\n }\n\n const numberReg = /\\d/;\n const strVal = value.toString();\n let model;\n // When the input value only contains seperator, do not convert the sepertaor into 0\n if (numberReg.test(strVal)) {\n model = this.parseNumber(strVal);\n } else {\n model = NaN;\n }\n\n // On keypress, if the user types a decimal and is still active on the input do not throw error.\n if (isNaN(model) && strVal[strVal.length - 1] === this.DECIMAL && this.ngModelOptions.updateOn === 'change' && this.$element.find('input:focus').length) {\n this.lastValIsDecimal = true;\n }\n // get a valid number form the text.\n // if the number is valid or if number is not in range update the model value.\n if (!this.lastValIsDecimal && this.isValid(model)) {\n this.proxyModel = model;\n // update the display value in the text box.\n this.updateDisplayText();\n // Do not trigger onchange event for default value\n if (!this.isDefaultQuery) {\n this.handleChange(model);\n }\n } else {\n this.displayValue = value.toString();\n this.proxyModel = null;\n this.handleChange(null);\n }\n }\n\n // returns the actual model value of the widget.\n get datavalue(): number {\n return this.proxyModel;\n }\n\n // resets all the flags related to the widget's validation.\n protected resetValidations() {\n this.isInvalidNumber = false;\n this.numberNotInRange = false;\n }\n\n /**\n * Adds validations for the number before updating the widget model. like validating min and max value for the widget.\n * @param {number} val number to be validated\n * @returns {number}\n */\n private isValid(val: number): boolean {\n // id number is infinite then consider it as invalid value\n if (isNaN(val) || !isFinite(val) || (!Number.isInteger(this.step) &&\n this.countDecimals(val) > this.countDecimals(this.step))) {\n this.isInvalidNumber = true;\n return false;\n }\n if (val !== this.getValueInRange(val)) {\n this.numberNotInRange = true;\n return true;\n }\n this.resetValidations();\n return true;\n }\n\n /**\n * returns a valid number by validating the minimum and maximum values.\n * @param {number} value\n * @returns {number}\n */\n private getValueInRange(value: number): number {\n if (!isNaN(this.minvalue) && value < this.minvalue) {\n this.validateType = 'minvalue';\n return this.minvalue;\n\n }\n if (!isNaN(this.maxvalue) && value > this.maxvalue) {\n this.validateType = 'maxvalue';\n return this.maxvalue;\n }\n return value;\n }\n\n /**\n * convert number to localized number using angular decimal pipe. eg 10,00,000 or 1,000,000\n * @param number\n * @returns {string}\n */\n private transformNumber(number, numberfilter?): string {\n const filterVal = numberfilter ? numberfilter : this.numberfilter;\n return this.trailingZeroDecimalPipe.transform(number, this.selectedLocale, filterVal, this.localefilter, this.trailingzero, this.decimalValue, !!numberfilter, this.i18nService?.getwidgetLocale());\n }\n\n /**\n * resets the cursor position in the text box.\n * @param {number} value cursor position index form left to right.\n */\n private resetCursorPosition(value: number) {\n const input = this.inputEl.nativeElement;\n // position of the cursor should be given form right to left.\n let position = input.value.length - value;\n position = position < 0 ? 0 : position;\n // set the cursor position in the text box.\n input.setSelectionRange(position, position);\n }\n\n /**\n * Method parses the Localized number(string) to a valid number.\n * if the string dose not result to a valid number then returns NaN.\n * @param {string} val Localized number.\n * @returns {number}\n */\n private parseNumber(val: string): number {\n // WMS-22179: split number based on the decimal separator in the val\n // splits string into two parts. decimal and number.\n const parts = val.split(this.inputmode === INPUTMODE.FINANCIAL ? (val.indexOf(this.DECIMAL) > -1 ? this.DECIMAL : '.') : this.DECIMAL);\n if (!parts.length) {\n return null;\n }\n if (parts.length > 2) {\n return NaN;\n }\n // If number have decimal point and not have a decimal value then return.\n if (parts[1] === '') {\n return NaN;\n }\n // replaces all group separators form the number.\n const number = Number(parts[0].split(this.GROUP).join(''));\n const decimal = Number(`0.${parts[1] || 0}`);\n if (Number.isNaN(number) || Number.isNaN(decimal)) {\n return NaN;\n }\n const sum = parts.length > 1 ? parseFloat((number + decimal).toFixed(parts[1].length)) : number + decimal;\n // if the number is negative then calculate the number as number - decimal\n // Ex: number = -123 and decimal = 0.45 then number - decimal = -123-045 = -123.45\n // If entered number is -0.1 to -0.9 then the number is -0 and decimal is 0.1 to 0.9. Now calaculate the number as number-decimal\n // Ex: number = -0 and decimal = 0.1 then number-decimal = -0-0.1 = -0.1\n if (number === 0) {\n return Object.is(0, number) ? sum : number - decimal;\n }\n return number > 0 ? sum : number - decimal;\n }\n\n // updates the widgets text value.\n private updateDisplayText() {\n const input = this.inputEl.nativeElement;\n const position: number = input.selectionStart;\n const preValue: string = input.value;\n if (!this.isDefaultQuery) {\n const parts = preValue.split(this.DECIMAL);\n this.decimalValue = parts[1] || '';\n }\n const stepVal = this.stepLength();\n if (this.inputmode === INPUTMODE.FINANCIAL && stepVal) {\n this.displayValue = input.value = this.transformNumber(this.proxyModel, `1.${stepVal}-${stepVal}`);\n this.decimalValue = this.decimalValue.replace(/\\D/g,'');\n } else {\n this.displayValue = input.value = this.transformNumber(this.proxyModel);\n }\n // in safari browser, setSelectionRange will focus the input by default, which may invoke the focus event on widget.\n // Hence preventing the setSelectionRange when default value is set i.e. widget is not focused.\n if (this.updateon === 'default' && !this.isDefaultQuery) {\n this.resetCursorPosition(preValue.length - position);\n }\n }\n\n // This function returns the step length set in the studio\n private stepLength() {\n const stepLen = this.step.toString().split('.');\n if (stepLen.length === 1 ) {\n return;\n } else {\n return stepLen[1].length;\n }\n }\n\n // This function checks if the currency widget has input mode as natural and trailing zero is defined or not\n public isNaturalCurrency() {\n return this.inputmode === INPUTMODE.NATURAL && this.widgetType === 'wm-currency' && !!this.trailingzero;\n }\n\n /**\n * @param value contains the value entered in the input box\n * This function modifies the user input value, into financial mode.\n * Number starts from highest precesion decimal, on typing number shifts to the left\n */\n public onInputChange(value: any) {\n const stepVal = this.stepLength();\n // WMS-22355, Trigger change cb if value exists or value is empty but datavalue exists (when value is selected and deleted).\n if (isDefined(value) && (value !== '' || this.datavalue)) {\n this.handleChange(value);\n } else {\n return;\n }\n\n if (!stepVal || this.inputmode !== INPUTMODE.FINANCIAL) {\n return;\n }\n\n let financialVal;\n\n /**\n * If the value is entered by the user, format the input\n * If the value is provided as default value, skip formatting\n */\n if (this.isDefaultQuery) {\n financialVal = parseFloat(value);\n } else {\n const valInWholeNum = parseInt(value.toString().replace(/\\D/g,''));\n financialVal = valInWholeNum * this.step;\n }\n\n if (!isNaN(financialVal)) {\n // When update on key is set keypress, update the datavalue else update only the display value\n if (this.ngModelOptions.updateOn === 'change') {\n this.datavalue = parseFloat(financialVal.toFixed(stepVal));\n this.handleChange(this.datavalue);\n } else {\n this.displayValue = financialVal.toFixed(stepVal);\n }\n } else if (this.ngModelOptions.updateOn !== 'blur') {\n this.datavalue = undefined;\n this.handleChange(null);\n }\n }\n\n // Input mode is financial and trailing zero is set to false, On focus set display val to fixed point notation and On blur strip trailing zeros\n // In currency, inputmode is natural and trailing zero and step are defined, on blur display val to fixed point notation and on focus strip the zeros\n public checkForTrailingZeros($event) {\n const stepVal = this.stepLength();\n const financialMode = !this.trailingzero && this.inputmode === INPUTMODE.FINANCIAL;\n\n // If the user's last input is a decimal and not active on input field, throw error\n if (this.lastValIsDecimal) {\n this.onModelChange(this.displayValue);\n }\n if (!financialMode && !this.isNaturalCurrency()) {\n return;\n }\n if (stepVal && this.datavalue) {\n let numberfilter;\n if ((financialMode && $event.type === 'focus') || (this.isNaturalCurrency() && $event.type === 'blur')) {\n numberfilter = `1.${stepVal}-${stepVal}`;\n }\n this.displayValue = this.transformNumber(this.datavalue, numberfilter);\n }\n }\n\n /**\n * returns the number of decimal places a number have.\n * @param value: number\n * @returns {number}\n */\n private countDecimals(value) {\n if ((value % 1) !== 0) {\n const decimalValue = value.toString().split('.')[1];\n return decimalValue && decimalValue.length;\n }\n return 0;\n }\n\n /**\n * handles the arrow press event. Increases or decreases the number. triggered fom the template\n * @param $event keyboard event.\n * @param key identifier to increase or decrease the number.\n */\n public onArrowPress($event, key) {\n $event.preventDefault();\n if (this.readonly || this.step === 0) {\n return;\n }\n const targetVal = $event.target.value.replace(/,/g, '');\n\n // proxyModel to be updated from $event.target.value if present to support arrow keys when input changes else pick up from this.proxymodel\n let proxyModel;\n if (targetVal && !isNaN(parseFloat(targetVal))) {\n proxyModel = parseFloat(targetVal);\n } else {\n proxyModel = this.proxyModel;\n }\n\n let value;\n\n // if the number is not in range and when arrow buttons are pressed need to get appropriate number value.\n if (this.numberNotInRange) {\n const inputValue = this.parseNumber(this.inputEl.nativeElement.value);\n // take the textbox value as current model if the value is valid.\n if (!isNaN(inputValue)) {\n value = this.getValueInRange(inputValue);\n proxyModel = inputValue;\n this.resetValidations();\n }\n } else {\n if (isUndefined(proxyModel) || isNull(proxyModel)) {\n proxyModel = value = this.getValueInRange((this.minvalue || 0));\n this.resetValidations();\n } else {\n value = this.getValueInRange(proxyModel + (key === 'UP' ? this.step : -this.step));\n }\n }\n if ((key === 'UP' && proxyModel <= value) || (key === 'DOWN' && proxyModel >= value)) {\n const decimalRoundValue = Math.max(this.countDecimals(proxyModel), this.countDecimals(this.step));\n\n // update the modelProxy.\n this.proxyModel = round(value, decimalRoundValue);\n this.updateDisplayText();\n this.handleChange(this.proxyModel);\n }\n }\n\n /**\n * method is called from the from widget. to check whether the value entered is valid or not.\n * @returns {object}\n */\n public validate(c: AbstractControl) {\n if (this.isInvalidNumber) {\n this.validateType = '';\n return {\n invalidNumber: {\n valid: false\n },\n };\n }\n if (this.numberNotInRange) {\n return {\n numberNotInRange: {\n valid: false\n },\n };\n }\n this.validateType = '';\n /* WMS-18269 | Extending the existing validation for 'required' */\n if (this['show'] && this['required']) {\n return (!!c.value || c.value === 0) ? null : { required: true };\n }\n return null;\n }\n\n public validateInputEntry($event) {\n\n this.isDefaultQuery = false;\n\n // allow actions if control key is pressed or if backspace is pressed. (for Mozilla).\n if ($event.ctrlKey || includes(['Backspace', 'ArrowRight', 'ArrowLeft', 'Tab', 'Enter', 'Delete'], $event.key)) {\n return;\n }\n\n const validity = new RegExp(`^[\\\\d\\\\s-,.e+${this.GROUP}${this.DECIMAL}]$`, 'i');\n const inputValue = $event.target.value;\n\n // when input mode is financial, do not restrict user on entering the value when step value limit is reached.\n const skipStepValidation = this.inputmode === INPUTMODE.FINANCIAL;\n\n // Validates if user eneters more than 16 digits\n if (inputValue) {\n const parsedVal = parseInt(inputValue.toString().replace(/\\D/g,''));\n if (parsedVal.toString().length > 15) {\n // WMS-22321: If the number is greater than MAX_SAFE_INTEGER (more than 15 numbers).\n // user selects a range of digits and presses a key.\n // Do not throw validation of exceeded number as selected range value will be deleted.\n const selectedVal = window.getSelection();\n if (selectedVal && selectedVal.toString() && selectedVal.focusNode === this.nativeElement) {\n return true;\n }\n return false;\n }\n }\n\n // validates entering of decimal values only when user provides decimal limit(i.e step contains decimal values).\n // Restrict user from entering only if the decimal limit is reached and the new digit is entered in decimal place\n if (!skipStepValidation && inputValue && this.countDecimals(this.step) && (this.countDecimals(inputValue) >= this.countDecimals(this.step)) && $event.target.selectionStart >= inputValue.length - 1) {\n return false;\n }\n // validates if user entered an invalid character.\n if (!validity.test($event.key)) {\n return false;\n }\n // comma cannot be entered consecutively\n if (includes(inputValue, ',') && inputValue[inputValue.length - 1] === ',' && $event.key === ',') {\n return false;\n }\n\n // a decimal value can be entered only once in the input.\n if (includes(inputValue, this.DECIMAL) && $event.key === this.DECIMAL) {\n return false;\n }\n // 'e' can be entered only once in the input.\n if (intersection(toArray(inputValue), ['e', 'E']).length && includes('eE', $event.key)) {\n return false;\n }\n if ((includes(inputValue, '+') || includes(inputValue, '-')) && ($event.key === '+' || $event.key === '-')) {\n return false;\n }\n // Do not allow user to enter only space without any input value\n if (!inputValue && $event.code === 'Space') {\n return false;\n }\n }\n\n onBackspace($event) {\n this.isDefaultQuery = false;\n }\n\n onEnter($event) {\n this.datavalue = $event.target.value;\n }\n\n onModelChange($event) {\n if (this.inputmode === INPUTMODE.NATURAL || (this.inputmode === INPUTMODE.FINANCIAL && this.ngModelOptions.updateOn === 'blur')) {\n this.datavalue = $event;\n }\n }\n\n onPropertyChange(key, nv, ov?) {\n if (key === 'minvalue' || key === 'maxvalue') {\n this.isValid(nv);\n } else if (key === 'datavalue' && !ov) {\n if (this.isNaturalCurrency()) {\n this.checkForTrailingZeros({type: 'blur'});\n } else {\n this.onInputChange(nv);\n }\n } else {\n super.onPropertyChange(key, nv, ov);\n }\n }\n}\n","import { NgModel, NG_VALUE_ACCESSOR, NG_VALIDATORS } from '@angular/forms';\nimport {Component, ElementRef, Inject, Injector, Optional, ViewChild} from '@angular/core';\n\nimport {AbstractI18nService} from '@wm/core';\nimport { IWidgetConfig, provideAs, provideAsWidgetRef, TrailingZeroDecimalPipe } from '@wm/components/base';\n\nimport { registerProps } from './number.props';\nimport { NumberLocale } from '../text/locale/number-locale';\n\nconst WIDGET_CONFIG: IWidgetConfig = {\n widgetType: 'wm-number',\n hostClass: 'app-input-wrapper'\n};\n\n@Component({\n selector: '[wmNumber]',\n templateUrl: './number.component.html',\n providers: [\n provideAs(NumberComponent, NG_VALUE_ACCESSOR, true),\n provideAs(NumberComponent, NG_VALIDATORS, true),\n provideAsWidgetRef(NumberComponent)\n ]\n})\nexport class NumberComponent extends NumberLocale {\n static initializeProps = registerProps();\n\n public required: boolean;\n public regexp: string;\n public disabled: boolean;\n public name: string;\n public hint: string;\n public tabindex: any;\n public conditionalclass: any;\n public conditionalstyle: any;\n public shortcutkey: string;\n public autofocus: boolean;\n @ViewChild('input', {static: true}) inputEl: ElementRef;\n @ViewChild(NgModel, {static: true}) ngModel: NgModel;\n\n constructor(inj: Injector, i18nService: AbstractI18nService, trailingZeroDecimalPipe: TrailingZeroDecimalPipe, @Inject('EXPLICIT_CONTEXT') @Optional() explicitContext: any) {\n super(inj, WIDGET_CONFIG, i18nService, trailingZeroDecimalPipe, explicitContext);\n }\n}\n","<input class=\"form-control app-textbox app-number-input\"\n inputmode=\"decimal\"\n focus-target\n [attr.name]=\"name\"\n role=\"textbox\"\n type=\"text\"\n [ngModel]=\"displayValue\"\n [readonly]=\"readonly\"\n [disabled]=\"disabled\"\n [pattern]=\"regexp\"\n [attr.tabindex]=\"tabindex\"\n [attr.placeholder]=\"placeholder\"\n [attr.accesskey]=\"shortcutkey\"\n [attr.aria-label]=\"hint\"\n [autofocus]=\"autofocus\"\n [ngClass]=\"conditionalclass\"\n [ngStyle]=\"conditionalstyle\"\n (ngModelChange)=\"onModelChange($event)\"\n (blur)=\"handleBlur($event); checkForTrailingZeros($event);\"\n (focus)=\"checkForTrailingZeros($event)\"\n (input)=\"onInputChange($event.target.value)\"\n [ngModelOptions]=\"ngModelOptions\"\n [required]=\"required\"\n (keypress)=\"validateInputEntry($event)\"\n (keydown.backspace)=\"onBackspace($event)\"\n (keydown.enter)=\"onEnter($event)\"\n (keydown.ArrowUp)=\"onArrowPress($event, 'UP')\"\n (keydown.ArrowDown)=\"onArrowPress($event, 'DOWN')\"\n #input>\n","import { PROP_ANY, PROP_BOOLEAN, PROP_NUMBER, PROP_STRING, register, registerFormWidget } from '@wm/components/base';\nimport { FormWidgetType } from '@wm/core';\n\nexport const radiosetProps = new Map(\n [\n ['class', PROP_STRING],\n ['collapsible', PROP_BOOLEAN],\n ['compareby', PROP_STRING],\n ['datafield', PROP_STRING],\n ['dataset', {value: 'Option 1, Option 2, Option 3', ...PROP_ANY}],\n ['datavaluesource', PROP_ANY],\n ['datavalue', PROP_ANY],\n ['dateformat', PROP_STRING],\n ['disabled', PROP_BOOLEAN],\n ['displayexpression', PROP_STRING],\n ['displayfield', PROP_STRING],\n ['displayValue', PROP_STRING],\n ['groupby', PROP_STRING],\n ['itemclass', {value: '', ...PROP_STRING}],\n ['itemsperrow', {value: 'xs-1 sm-1 md-1 lg-1', ...PROP_STRING}],\n ['listclass', {value: '', ...PROP_STRING}],\n ['match', PROP_STRING],\n ['name', PROP_STRING],\n ['orderby', PROP_STRING],\n ['readonly', PROP_BOOLEAN],\n ['required', PROP_BOOLEAN],\n ['show', {value: true, ...PROP_BOOLEAN}],\n ['showcount', PROP_BOOLEAN],\n ['showindevice', {displayType: 'inline-block', value: 'all', ...PROP_STRING}],\n ['tabindex', {value: 0, ...PROP_NUMBER}],\n ['usekeys', PROP_BOOLEAN]\n ]\n);\n\nexport const registerProps = () => {\n register(\n 'wm-radioset',\n radiosetProps\n );\n registerFormWidget(\n FormWidgetType.RADIOSET,\n new Map(radiosetProps)\n );\n};\n","<ng-template [ngIf]=\"!groupby\" [ngIfElse]=\"groupedListTemplate\">\n <li [ngClass]=\"['radio', 'app-radio', itemclass, itemsPerRowClass]\"\n [class.active]=\"item.selected\"\n *ngFor=\"let item of datasetItems;let i = index\"\n [wmItemTemplate]=\"content\" [userComponentParams]=\"item\" partialContainer\n (click)=\"onRadioLabelClick($event, item.key)\" role=\"presentation\">\n <!-- Default item template -->\n <label *ngIf=\"!content\" class=\"app-radioset-label\"\n [ngClass]=\"{'disabled':disabled || readonly}\">\n <input [name]=\"'radioset_' + widgetId\" type=\"radio\" [attr.aria-checked]=\"item.selected\" [attr.data-attr-index]=\"i\"\n [value]=\"item.key\" [disabled]=\"disabled || readonly\" [tabindex]=\"tabindex\" [checked]=\"item.selected\"\n [attr.aria-label]=\"item.key\"/>\n <span class=\"caption\" [textContent]=\"item.label\"></span>\n </label>\n <!-- Custom partial template -->\n <label *ngIf=\"content\" class=\"app-radioset-label\"\n [ngClass]=\"{'disabled':disabled || readonly}\">\n <input [name]=\"'radioset_' + widgetId\" type=\"radio\" [attr.aria-checked]=\"item.selected\" [attr.data-attr-index]=\"i\"\n [value]=\"item.key\" [disabled]=\"disabled || readonly\" [tabindex]=\"tabindex\" [checked]=\"item.selected\"\n [attr.aria-label]=\"item.key\"/>\n <span class=\"caption customTemplate\" partial-container-target></span>\n </label>\n </li>\n</ng-template>\n\n<input [disabled]=\"disabled || readonly\" hidden class=\"model-holder\">\n<div *ngIf=\"readonly || disabled\" aria-readonly=\"true\" class=\"readonly-wrapper\"></div>\n\n<!-- This template will be displayed when groupby is specified. -->\n<ng-template #groupedListTemplate>\n <li *ngFor=\"let groupObj of groupedData\" class=\"app-list-item-group\">\n <ul class=\"item-group\">\n <li class=\"list-group-header\" (click)=\"handleHeaderClick($event)\" [title]=\"groupObj.key\" [ngClass]=\"{'collapsible-content': collapsible}\">\n <h4 class=\"group-title\">{{groupObj.key}}\n <div class=\"header-action\">\n <i class=\"app-icon wi action wi-chevron-up\" *ngIf=\"collapsible\" title=\"{{appLocale.LABEL_COLLAPSE}}/{{appLocale.LABEL_EXPAND}}\"></i>\n <span *ngIf=\"showcount\" class=\"label label-default\" [textContent]=\"groupObj.data.length\"></span>\n </div>\n </h4>\n </li>\n <li *ngFor=\"let item of groupObj.data; let i = index;\"\n [ngClass]=\"['radio', 'app-radio', 'group-list-item', itemclass, itemsPerRowClass]\"\n [class.active]=\"item.selected\"\n [wmItemTemplate]=\"content\" [userComponentParams]=\"item\" partialContainer\n (click)=\"onRadioLabelClick($event, item)\">\n <!-- Default item template -->\n <label *ngIf=\"!content\" class=\"app-radioset-label\"\n [ngClass]=\"{'disabled':disabled || readonly}\">\n <input [name]=\"'radioset_' + widgetId\" type=\"radio\" [attr.aria-checked]=\"item.selected\" [attr.data-attr-index]=\"i\"\n [value]=\"item.key\" [disabled]=\"disabled || readonly\" [tabindex]=\"tabindex\" [checked]=\"item.selected\"/>\n <span class=\"caption\" [textContent]=\"item.label\"></span>\n </label>\n <!-- Custom partial template -->\n <label *ngIf=\"content\" class=\"app-radioset-label\"\n [ngClass]=\"{'disabled':disabled || readonly}\">\n <input [name]=\"'radioset_' + widgetId\" type=\"radio\" [attr.aria-checked]=\"item.selected\" [attr.data-attr-index]=\"i\"\n [value]=\"item.key\" [disabled]=\"disabled || readonly\" [tabindex]=\"tabindex\" [checked]=\"item.selected\"/>\n <span class=\"caption customTemplate\" partial-container-target></span>\n </label>\n </li>\n </ul>\n </li>\n</ng-template>\n","import {Component, Inject, Injector, Optional} from '@angular/core';\nimport { NG_VALUE_ACCESSOR, NG_VALIDATORS } from '@angular/forms';\n\nimport {setListClass} from '@wm/core';\n\nimport { provideAsWidgetRef, styler, provideAs } from '@wm/components/base';\nimport { DatasetAwareFormComponent } from '../dataset-aware-form.component';\nimport { registerProps } from './radioset.props';\nimport { includes} from \"lodash-es\";\n\ndeclare const $;\n\nconst DEFAULT_CLS = 'app-radioset list-group inline';\nconst WIDGET_CONFIG = {widgetType: 'wm-radioset', hostClass: DEFAULT_CLS};\n\n@Component({\n selector: '[wmRadioset]',\n exportAs: 'wmRadioset',\n templateUrl: './radioset.component.html',\n providers: [\n provideAs(RadiosetComponent, NG_VALUE_ACCESSOR, true),\n provideAs(RadiosetComponent, NG_VALIDATORS, true),\n provideAsWidgetRef(RadiosetComponent)\n ]\n})\nexport class RadiosetComponent extends DatasetAwareFormComponent {\n static initializeProps = registerProps();\n\n public layout = '';\n public disabled: boolean;\n public itemsperrow: string;\n private itemsPerRowClass: string;\n\n constructor(inj: Injector, @Inject('EXPLICIT_CONTEXT') @Optional() explicitContext: any) {\n super(inj, WIDGET_CONFIG, explicitContext);\n styler(this.nativeElement, this);\n this.multiple = false;\n }\n\n triggerInvokeOnChange(key, $event) {\n this.modelByKey = key;\n\n this.invokeOnTouched();\n // invoke on datavalue change.\n this.invokeOnChange(this.datavalue, $event || {}, true);\n }\n\n /**\n * On click of the option, update the datavalue\n */\n onRadioLabelClick($event, key) {\n if (!$($event.target).is('input')) {\n return;\n }\n\n this.triggerInvokeOnChange(key, $event);\n }\n\n // change and blur events are added from the template\n protected handleEvent(node: HTMLElement, eventName: string, callback: Function, locals: any) {\n if (eventName === 'click') {\n this.eventManager.addEventListener(\n node,\n eventName,\n e => {\n if (!$(e.target).is('input')) {\n return;\n }\n locals.$event = e;\n return callback();\n }\n );\n } else if (!includes(['change'], eventName)) {\n super.handleEvent(node, eventName, callback, locals);\n }\n }\n\n onPropertyChange(key, nv, ov?) {\n if (key === 'tabindex') {\n return;\n }\n if (key === 'itemsperrow') {\n setListClass(this);\n } else {\n super.onPropertyChange(key, nv, ov);\n }\n }\n}\n","import { FormWidgetType } from '@wm/core';\nimport { PROP_ANY, PROP_BOOLEAN, PROP_NUMBER, PROP_STRING, register, registerFormWidget } from '@wm/components/base';\n\nexport const selectProps = new Map(\n [\n ['autofocus', PROP_BOOLEAN],\n ['class', {value: '', ...PROP_STRING}],\n ['compareby', PROP_STRING],\n ['datafield', PROP_STRING],\n ['dataset', PROP_ANY],\n ['datavaluesource', PROP_ANY],\n ['datavalue', PROP_STRING],\n ['dateformat', PROP_STRING],\n ['disabled', PROP_BOOLEAN],\n ['displayexpression', PROP_STRING],\n ['displayfield', PROP_STRING],\n ['displayValue', PROP_STRING],\n ['groupby', PROP_STRING],\n ['hint', PROP_STRING],\n ['match', PROP_STRING],\n ['multiple', {value: false, ...PROP_BOOLEAN}],\n ['name', PROP_STRING],\n ['orderby', PROP_STRING],\n ['placeholder', PROP_STRING],\n ['readonly', PROP_BOOLEAN],\n ['required', PROP_BOOLEAN],\n ['shortcutkey', PROP_STRING],\n ['show', {value: true, ...PROP_BOOLEAN}],\n ['tabindex', {value: 0, ...PROP_NUMBER}],\n ['usekeys', PROP_BOOLEAN]\n ]\n);\n\nexport const registerProps = () => {\n register(\n 'wm-select',\n selectProps\n );\n registerFormWidget(\n FormWidgetType.SELECT,\n new Map(selectProps)\n );\n registerFormWidget(\n FormWidgetType.TYPEAHEAD,\n new Map(selectProps)\n );\n};\n","<select role=\"listbox\" aria-haspopup=\"true\" aria-expanded=\"false\" #select\n focus-target\n [ngClass]=\"['app-select form-control', class]\"\n [disabled]=\"disabled\"\n [required]=\"required\"\n [tabindex]=\"tabindex\"\n [(ngModel)]=\"modelByKey\"\n [ngModelOptions]=\"{standalone: true}\"\n [multiple]=\"multiple\"\n (change)=\"onSelectValueChange($event)\"\n (focus)=\"checkForFloatingLabel($event)\"\n (blur)=\"invokeOnTouched($event); checkForFloatingLabel($event)\"\n [attr.name]=\"name\"\n [attr.aria-label]=\"hint\"\n [attr.aria-multiselectable]=\"multiple\"\n [autofocus]=\"autofocus\">\n\n <option selected\n value=\"undefined\"\n [textContent]=\"placeholder\"\n id=\"placeholderOption\"\n [hidden]=\"!placeholder\"></option>\n\n <ng-container *ngIf=\"groupby\">\n <optgroup *ngFor=\"let groupObj of groupedData\"\n [label]=\"groupObj.key\">\n <option *ngFor=\"let item of groupObj.data;\"\n [value]=\"item.key\"\n [selected]=\"item.selected\"\n [textContent]=\"item.label\"\n role=\"option\"></option>\n </optgroup>\n </ng-container>\n\n <ng-container *ngIf=\"!groupby\">\n <option *ngFor=\"let item of datasetItems\"\n [value]=\"item.key\"\n [selected]=\"item.selected\"\n [textContent]=\"item.label\"\n role=\"option\"></option>\n </ng-container>\n</select>\n","import {AfterViewInit, Component, ElementRef, Inject, Injector, Optional, ViewChild} from '@angular/core';\nimport {NG_VALIDATORS, NG_VALUE_ACCESSOR} from '@angular/forms';\n\nimport {App, DataSource, removeAttr, setAttr} from '@wm/core';\nimport {provideAs, provideAsWidgetRef, styler} from '@wm/components/base';\nimport {DatasetAwareFormComponent} from '../dataset-aware-form.component';\n\nimport {registerProps} from './select.props';\nimport {includes} from \"lodash-es\";\n\nconst WIDGET_CONFIG = {widgetType: 'wm-select', hostClass: 'app-select-wrapper'};\n\n@Component({\n selector: 'wm-select',\n templateUrl: './select.component.html',\n providers: [\n provideAs(SelectComponent, NG_VALUE_ACCESSOR, true),\n provideAs(SelectComponent, NG_VALIDATORS, true),\n provideAsWidgetRef(SelectComponent)\n ]\n})\nexport class SelectComponent extends DatasetAwareFormComponent implements AfterViewInit {\n static initializeProps = registerProps();\n\n public readonly: boolean;\n public placeholder: string;\n public navsearchbar: any;\n public class: any;\n public required: boolean;\n public disabled: boolean;\n public tabindex: any;\n public name: string;\n public autofocus: boolean;\n public hint: string;\n private app: App;\n\n @ViewChild('select', { static: true, read: ElementRef }) selectEl: ElementRef;\n\n set datasource(ds) {\n if (ds && ds.execute && ds.execute(DataSource.Operation.IS_BOUND_TO_LOCALE)) {\n this.datavalue = ds.execute(DataSource.Operation.GET_DEFAULT_LOCALE);\n }\n }\n\n constructor(inj: Injector, app: App, @Inject('EXPLICIT_CONTEXT') @Optional() explicitContext: any) {\n super(inj, WIDGET_CONFIG, explicitContext);\n this.app = app;\n this.acceptsArray = true;\n }\n\n ngAfterViewInit() {\n super.ngAfterViewInit();\n styler(this.selectEl.nativeElement as HTMLElement, this);\n }\n\n // Change event is registered from the template, Prevent the framework from registering one more event\n protected handleEvent(node: HTMLElement, eventName: string, eventCallback: Function, locals: any) {\n if (!includes(['blur', 'change'], eventName)) {\n super.handleEvent(this.selectEl.nativeElement, eventName, eventCallback, locals);\n }\n }\n\n onSelectValueChange($event) {\n if (this.readonly) {\n if (this.placeholder) {\n this.selectEl.nativeElement.value = this.placeholder;\n } else {\n this.selectEl.nativeElement.value = '';\n }\n this.datavalue = (this as any).prevDatavalue;\n return;\n }\n this.invokeOnTouched();\n // invoke on datavalue change.\n this.invokeOnChange(this.datavalue, $event || {}, true);\n }\n\n onPropertyChange(key: string, nv: any, ov?: any) {\n if (key === 'required') {\n this._onChange(this.datavalue);\n return;\n }\n if (key === 'class' || key === 'tabindex') {\n if(key === 'class') {\n // After NG15 upgrade ng-invalid class is added even the field is valid, so we are removing the ng-invalid manually\n const isNgUntouchedValid = this.selectEl.nativeElement.classList.contains('ng-untouched') && this.selectEl.nativeElement.classList.contains('ng-valid')\n if(isNgUntouchedValid && nv.includes('ng-untouched') && nv.includes('ng-invalid')) {\n setTimeout(()=> {\n if(this.selectEl.nativeElement.classList.contains('ng-untouched') && this.selectEl.nativeElement.classList.contains('ng-valid') && this.selectEl.nativeElement.classList.contains('ng-invalid')) {\n this.selectEl.nativeElement.classList.remove('ng-invalid');\n }\n });\n }\n }\n return;\n } else if (key === 'readonly') {\n (nv === true) ? setAttr(this.selectEl.nativeElement, 'readonly', 'readonly') : removeAttr(this.selectEl.nativeElement, 'readonly') ;\n }\n super.onPropertyChange(key, nv, ov);\n }\n\n /**\n * When caption floating is enabled and placeholder is given, do not show placeholder until user focuses on the field\n * When focused add the placeholder to the option which is selected\n * On blur, remove the placeholder and do not animate the label\n * @param $event event received will be either a blur or focus event\n */\n checkForFloatingLabel($event) {\n const captionEl = $(this.selectEl.nativeElement).closest('.app-composite-widget.caption-floating');\n if (captionEl.length > 0) {\n if ($event.type === 'focus' && (!this.datavalue || (this.datavalue && $(this.selectEl).find('select option:selected').text() === '' && this.placeholder))) {\n if(!(this.datavalue || this.placeholder)) {\n this.removePlaceholderOption();\n } else {\n $(this.selectEl.nativeElement).find('option:first').text(this.placeholder);\n }\n } else if (!this.datavalue) {\n $(this.selectEl.nativeElement).find('option:selected').text('');\n captionEl.removeClass('float-active');\n }\n } else if(!(this.datavalue || this.placeholder)) {\n this.removePlaceholderOption();\n }\n }\n\n /*\n * Removing the placeholder option if no placeholder is provided.\n * In html we are hiding the placeholder option using css but in apple devices and safari option is showing.\n * */\n private removePlaceholderOption() {\n const hiddenEle = $(this.selectEl.nativeElement).find('#placeholderOption');\n if (hiddenEle.length) {\n hiddenEle.remove();\n this.selectEl.nativeElement.value = '';\n }\n }\n}\n","import { PROP_ANY, PROP_BOOLEAN, PROP_NUMBER, PROP_STRING, register, registerFormWidget } from '@wm/components/base';\nimport { FormWidgetType } from '@wm/core';\n\nexport const switchProps = new Map(\n [\n ['class', PROP_STRING],\n ['compareby', PROP_STRING],\n ['datafield', PROP_STRING],\n ['dataset', {value: 'yes, no, maybe', ...PROP_ANY}],\n ['datavaluesource', PROP_ANY],\n ['datavalue', PROP_STRING],\n ['disabled', PROP_BOOLEAN],\n ['displayexpression', PROP_STRING],\n ['displayfield', PROP_STRING],\n ['hint', PROP_STRING],\n ['iconclass', PROP_STRING],\n ['checkediconclass', {value: 'wm-sl-l sl-check', ...PROP_STRING}],\n ['name', PROP_STRING],\n ['orderby', PROP_STRING],\n ['required', PROP_BOOLEAN],\n ['show', {value: true, ...PROP_BOOLEAN}],\n ['tabindex', {value: 0, ...PROP_NUMBER}]\n ]\n);\n\n\nexport const registerProps = () => {\n register(\n 'wm-switch',\n switchProps\n );\n registerFormWidget(\n FormWidgetType.SWITCH,\n new Map(switchProps)\n );\n registerFormWidget(\n FormWidgetType.TOGGLE,\n new Map(switchProps)\n );\n};\n","<div role=\"group\" class=\"btn-group btn-group-justified\" [ngClass]=\"{'multi-select': multiple}\">\n <a *ngFor=\"let opt of datasetItems; let $index = index;\"\n focus-target\n href=\"javascript:void(0);\"\n class=\"btn btn-default\"\n [name]=\"'wm-switch-' + opt.key\"\n [ngClass]=\"{'selected': opt.selected, 'disabled': disabled}\"\n (click)=\"selectOpt($event, $index, opt)\"\n >\n <i *ngIf=\"opt.dataObject && opt.dataObject[iconclass] && !opt.selected\" aria-hidden=\"true\" [ngClass]=\"['app-icon', opt.dataObject[iconclass] || opt['icon']]\"></i>\n <i *ngIf=\"opt.selected\" aria-hidden=\"true\" [ngClass]=\"[checkediconclass]\"></i>\n <span class=\"caption\" [textContent]=\"opt[displayfield] || opt.label\"></span>\n </a>\n</div>\n<span [title]=\"selectedItem ? selectedItem.label : modelByKey\"\n class=\"btn btn-primary app-switch-overlay switch-handle\" *ngIf=\"!multiple\">\n <i [ngClass]=\"[checkediconclass]\"></i>\n <span class=\"caption\">{{selectedItem ? selectedItem.label : modelByKey}}</span>\n</span>\n<input [name]=\"name\" class=\"model-holder ng-hide\" [disabled]=\"disabled\" [value]=\"modelByKey\" [required]=\"required\" aria-hidden=\"true\">\n","import {AfterViewInit, Component, Inject, Injector, Optional} from '@angular/core';\nimport { NG_VALUE_ACCESSOR } from '@angular/forms';\n\nimport {$appDigest, debounce, isDefined, setCSS, toBoolean} from '@wm/core';\nimport { DataSetItem, provideAs, provideAsWidgetRef, styler } from '@wm/components/base';\nimport { DatasetAwareFormComponent } from '../dataset-aware-form.component';\n\nimport { registerProps } from './switch.props';\nimport {find, findIndex, forEach} from \"lodash-es\";\n\ndeclare const $;\n\nconst DEFAULT_CLS = 'app-switch';\nconst WIDGET_CONFIG = {widgetType: 'wm-switch', hostClass: DEFAULT_CLS};\n\n@Component({\n selector: '[wmSwitch]',\n templateUrl: './switch.component.html',\n providers: [\n provideAs(SwitchComponent, NG_VALUE_ACCESSOR, true),\n provideAsWidgetRef(SwitchComponent)\n ],\n exportAs: 'wmSwitch'\n})\nexport class SwitchComponent extends DatasetAwareFormComponent implements AfterViewInit {\n static initializeProps = registerProps();\n\n options = [];\n selectedItem: DataSetItem;\n iconclass;\n checkediconclass;\n multiple: boolean;\n private btnwidth;\n public disabled: boolean;\n public required: boolean;\n private _debounceSetSelectedValue: Function;\n public name: string;\n\n constructor(inj: Injector, @Inject('EXPLICIT_CONTEXT') @Optional() explicitContext: any) {\n super(inj, WIDGET_CONFIG, explicitContext);\n this.multiple = this.getAttr(\"multiple\") === \"true\";\n this.checkediconclass = this.getAttr(\"checkediconclass\") || 'wm-sl-l sl-check';\n\n this._debounceSetSelectedValue = debounce((val) => {\n this.setSelectedValue();\n this.updateHighlighter(val);\n // only for default value trigger app digest to apply the selectedItem\n if (val) {\n $appDigest();\n }\n }, 200);\n\n const datasetSubscription = this.dataset$.subscribe(() => this.updateSwitchOptions());\n\n this.registerDestroyListener(() => datasetSubscription.unsubscribe());\n\n const datavalueSubscription = this.datavalue$.subscribe(() => {\n this._debounceSetSelectedValue(true);\n });\n this.registerDestroyListener(() => datavalueSubscription.unsubscribe());\n }\n\n ngAfterViewInit() {\n super.ngAfterViewInit();\n styler(this.nativeElement as HTMLElement, this);\n }\n\n onStyleChange(key: string, nv: any, ov?: any) {\n if (key === 'height') {\n setCSS(this.nativeElement, 'overflow', nv ? 'auto' : '');\n } else {\n super.onStyleChange(key, nv, ov);\n }\n }\n\n // This function sets the selectedItem by either using compareby fields or selected flag on datasetItems.\n private setSelectedValue() {\n if (isDefined(this.datavalue) || isDefined(this.toBeProcessedDatavalue)) {\n this.selectedItem = find(this.datasetItems, {selected: true});\n return;\n }\n\n // If no value is provided, set first value as default if options are available else set -1 ie no selection\n this.selectOptAtIndex(0);\n }\n\n // set the css for switch overlay element.\n // set the selected index from the datasetItems and highlight the datavalue on switch.\n private updateSwitchOptions() {\n if (this.datasetItems.length && !this.multiple) {\n this.btnwidth = (100 / this.datasetItems.length);\n setCSS(this.nativeElement.querySelector('.app-switch-overlay') as HTMLElement, 'width', this.btnwidth + '%');\n }\n\n this._debounceSetSelectedValue(true);\n }\n\n // This function animates the highlighted span on to the selected value.\n private updateHighlighter(skipAnimation?) {\n const handler = $(this.nativeElement).find('span.app-switch-overlay');\n\n this.setSelectedValue();\n\n let left,\n index = this.selectedItem ? findIndex(this.datasetItems, {key: this.selectedItem.key}) : -1;\n\n if (index === undefined || index === null) {\n index = -1;\n }\n left = index * this.btnwidth;\n if (skipAnimation) {\n handler.css('left', left + '%');\n } else {\n handler.animate({\n left: left + '%'\n }, 300);\n }\n }\n\n selectOptAtIndex($index) {\n if (!this.datasetItems.length) {\n return;\n }\n const opt = this.datasetItems[$index];\n this._modelByValue = opt.value;\n }\n\n // Triggered on selected the option from the switch.\n // set the index and highlight the default value. Invoke onchange event handler.\n selectOpt($event, $index, option) {\n $event.preventDefault();\n\n if (this.disabled) {\n return;\n }\n\n if(this.multiple) {\n const keys = [];\n this.datasetItems[$index].selected = !this.datasetItems[$index].selected;\n forEach(this.datasetItems, (item: any) => {\n if(item.selected)\n keys.push(item.key);\n });\n this.modelByKey = keys;\n this.selectedItem = find(this.datasetItems, {selected: true});\n }\n else {\n this.modelByKey = option.key;\n if (!this.multiple && this.selectedItem && $index === findIndex(this.datasetItems, {key: this.selectedItem.key})) {\n if (this.datasetItems.length === 2) {\n $index = $index === 1 ? 0 : 1;\n } else {\n return;\n }\n }\n this.selectedItem = this.datasetItems[$index];\n this.updateHighlighter();\n }\n\n this.invokeOnTouched();\n // invoke on datavalue change.\n this.invokeOnChange(this.datavalue, $event || {}, true);\n $appDigest();\n }\n\n onPropertyChange(key, nv, ov?) {\n if (key === 'disabled' && !toBoolean(nv)) {\n this.nativeElement.removeAttribute(key);\n } else {\n super.onPropertyChange(key, nv, ov);\n }\n }\n}\n","import { PROP_ANY, PROP_BOOLEAN, PROP_NUMBER, PROP_STRING, register } from '@wm/components/base';\n\nexport const inputCalendarTypeProps = new Map(\n [\n ['autocomplete', {value: true, ...PROP_BOOLEAN}],\n ['autotrim', {value: true, ...PROP_BOOLEAN}],\n ['autofocus', PROP_BOOLEAN],\n ['class', PROP_STRING],\n ['datasource', PROP_ANY],\n ['datavalue', PROP_STRING],\n ['disabled', PROP_BOOLEAN],\n ['hint', PROP_STRING],\n ['maxvalue', PROP_NUMBER],\n ['minvalue', PROP_NUMBER],\n ['name', PROP_STRING],\n ['placeholder', {value: 'Enter text', ...PROP_STRING}],\n ['readonly', PROP_BOOLEAN],\n ['required', PROP_BOOLEAN],\n ['shortcutkey', PROP_STRING],\n ['show', {value: true, ...PROP_BOOLEAN}],\n ['step', PROP_NUMBER],\n ['tabindex', {value: 0, ...PROP_NUMBER}],\n ['type', PROP_STRING],\n ['updateon', PROP_STRING],\n ['conditionalclass', PROP_ANY],\n ['conditionalstyle', PROP_ANY]\n ]\n);\n\nexport const registerProps = () => {\n register(\n 'wm-input-calendar',\n inputCalendarTypeProps\n );\n};\n","import {Component, ElementRef, Inject, Injector, Optional, ViewChild} from '@angular/core';\nimport { NgModel, NG_VALUE_ACCESSOR, NG_VALIDATORS } from '@angular/forms';\n\nimport { IWidgetConfig, provideAs, provideAsWidgetRef, styler } from '@wm/components/base';\nimport { registerProps } from './input-calendar.props';\nimport { BaseInput } from '../base/base-input';\n\nconst WIDGET_CONFIG: IWidgetConfig = {\n widgetType: 'wm-input-calendar',\n hostClass: 'app-input-wrapper'\n};\n\n@Component({\n selector: 'wm-input[type=\"date\"], wm-input[type=\"datetime-local\"], wm-input[type=\"month\"], wm-input[type=\"time\"], wm-input[type=\"week\"]',\n templateUrl: './input-calendar.component.html',\n providers: [\n provideAs(InputCalendarComponent, NG_VALUE_ACCESSOR, true),\n provideAs(InputCalendarComponent, NG_VALIDATORS, true),\n provideAsWidgetRef(InputCalendarComponent)\n ]\n})\nexport class InputCalendarComponent extends BaseInput {\n static initializeProps = registerProps();\n\n public required: boolean;\n public disabled: boolean;\n public type: string;\n public name: string;\n public readonly: string;\n public conditionalclass: any;\n public conditionalstyle: any;\n public minvalue: any;\n public maxvalue: any;\n public step: number;\n public tabindex: any;\n public placeholder: any;\n public shortcutkey: string;\n public autofocus: boolean;\n public autocomplete: any;\n public hint: string;\n\n @ViewChild('input',{static: true}) inputEl: ElementRef;\n @ViewChild(NgModel) ngModel: NgModel;\n\n constructor(inj: Injector, @Inject('EXPLICIT_CONTEXT') @Optional() explicitContext: any) {\n super(inj, WIDGET_CONFIG, explicitContext);\n }\n}\n","<input class=\"form-control app-textbox\"\n focus-target\n role=\"textbox\"\n [type]=\"type\"\n [attr.name]=\"name\"\n [(ngModel)]=\"datavalue\"\n [ngModelOptions]=\"{standalone: true}\"\n [readonly]=\"readonly\"\n [required]=\"required\"\n [disabled]=\"disabled\"\n [min]=\"minvalue\"\n [max]=\"maxvalue\"\n [step]=\"step\"\n [attr.tabindex]=\"tabindex\"\n [attr.placeholder]=\"placeholder\"\n [attr.accesskey]=\"shortcutkey\"\n [attr.aria-label]=\"hint || type + ' field'\"\n [autofocus]=\"autofocus\"\n (blur)=\"handleBlur($event)\"\n (ngModelChange)=\"handleChange($event)\"\n [autocomplete]=\"autocomplete ? 'on' : 'off'\"\n [ngClass]=\"conditionalclass\"\n [ngStyle]=\"conditionalstyle\"\n #input>\n","import { PROP_ANY, PROP_BOOLEAN, PROP_NUMBER, PROP_STRING, register } from '@wm/components/base';\n\nexport const inputColorTypeProps = new Map([\n ['autocomplete', {value: true, ...PROP_BOOLEAN}],\n ['autofocus', PROP_BOOLEAN],\n ['autotrim', {value: true, ...PROP_BOOLEAN}],\n ['class', PROP_STRING],\n ['datavaluesource', PROP_ANY],\n ['datavalue', PROP_STRING],\n ['disabled', PROP_BOOLEAN],\n ['hint', PROP_STRING],\n ['name', PROP_STRING],\n ['placeholder', {value: 'Enter text', ...PROP_STRING}],\n ['readonly', PROP_BOOLEAN],\n ['required', PROP_BOOLEAN],\n ['shortcutkey', PROP_STRING],\n ['show', {value: true, ...PROP_BOOLEAN}],\n ['tabindex', {value: 0, ...PROP_NUMBER}],\n ['type', {value: 'color', ...PROP_STRING}],\n ['updateon', PROP_STRING],\n ['conditionalclass', PROP_ANY],\n ['conditionalstyle', PROP_ANY]\n]);\n\nexport const registerProps = () => {\n register(\n 'wm-input-color',\n inputColorTypeProps\n );\n};\n","import {Component, ElementRef, Inject, Injector, Optional, ViewChild} from '@angular/core';\nimport { NgModel, NG_VALUE_ACCESSOR, NG_VALIDATORS } from '@angular/forms';\n\nimport { IWidgetConfig, provideAs, provideAsWidgetRef } from '@wm/components/base';\n\nimport { registerProps } from './input-color.props';\nimport { BaseInput } from '../base/base-input';\n\nconst WIDGET_CONFIG: IWidgetConfig = {\n widgetType: 'wm-input-color',\n hostClass: 'app-input-wrapper'\n};\n\n@Component({\n selector: 'wm-input[type=\"color\"]',\n templateUrl: './input-color.component.html',\n providers: [\n provideAs(InputColorComponent, NG_VALUE_ACCESSOR, true),\n provideAs(InputColorComponent, NG_VALIDATORS, true),\n provideAsWidgetRef(InputColorComponent)\n ]\n})\nexport class InputColorComponent extends BaseInput {\n static initializeProps = registerProps();\n\n public required: boolean;\n public maxchars: number;\n public name: string;\n public readonly: boolean;\n public conditionalclass: any;\n public conditionalstyle: any;\n public tabindex: any;\n public shortcutkey: string;\n public autofocus: boolean;\n public disabled: boolean;\n public placeholder: any;\n public type: string;\n public hint: string;\n\n @ViewChild('input', {static: true}) inputEl: ElementRef;\n @ViewChild(NgModel) ngModel: NgModel;\n\n constructor(inj: Injector, @Inject('EXPLICIT_CONTEXT') @Optional() explicitContext: any) {\n super(inj, WIDGET_CONFIG, explicitContext);\n }\n}\n","<input class=\"form-control app-textbox\"\n focus-target\n [type]=\"type\"\n role=\"textbox\"\n [attr.name]=\"name\"\n [(ngModel)]=\"datavalue\"\n [ngModelOptions]=\"{standalone: true}\"\n [readonly]=\"readonly\"\n [required]=\"required\"\n [disabled]=\"disabled\"\n [maxlength]=\"maxchars\"\n [attr.tabindex]=\"tabindex\"\n [attr.placeholder]=\"placeholder\"\n [attr.accesskey]=\"shortcutkey\"\n [attr.aria-label]=\"hint\"\n [autofocus]=\"autofocus\"\n [ngClass]=\"conditionalclass\"\n [ngStyle]=\"conditionalstyle\"\n (blur)=\"handleBlur($event)\"\n (ngModelChange)=\"handleChange($event)\"\n #input>\n","import { PROP_ANY, PROP_BOOLEAN, PROP_NUMBER, PROP_STRING, register } from '@wm/components/base';\n\nexport const inputEmailTypeProps = new Map(\n [\n ['autocomplete', {value: true, ...PROP_BOOLEAN}],\n ['autofocus', PROP_BOOLEAN],\n ['autotrim', {value: true, ...PROP_BOOLEAN}],\n ['class', PROP_STRING],\n ['datavaluesource', PROP_ANY],\n ['datavalue', PROP_STRING],\n ['disabled', PROP_BOOLEAN],\n ['hint', PROP_STRING],\n ['maxchars', PROP_NUMBER],\n ['name', PROP_STRING],\n ['placeholder', {value: 'Enter text', ...PROP_STRING}],\n ['readonly', PROP_BOOLEAN],\n ['regexp', PROP_STRING],\n ['required', PROP_BOOLEAN],\n ['shortcutkey', PROP_STRING],\n ['show', {value: true, ...PROP_BOOLEAN}],\n ['tabindex', {value: 0, ...PROP_NUMBER}],\n ['type', {value: 'email', ...PROP_STRING}],\n ['updateon', PROP_STRING],\n ['conditionalclass', PROP_ANY],\n ['conditionalstyle', PROP_ANY]\n ]\n);\n\nexport const registerProps = () => {\n register(\n 'wm-input-email',\n inputEmailTypeProps\n );\n};\n","import {Component, ElementRef, Inject, Injector, Optional, ViewChild} from '@angular/core';\nimport { NgModel, NG_VALUE_ACCESSOR, NG_VALIDATORS } from '@angular/forms';\n\nimport { IWidgetConfig, provideAs, provideAsWidgetRef, styler } from '@wm/components/base';\n\nimport { registerProps } from './input-email.props';\nimport { BaseInput } from '../base/base-input';\n\nconst WIDGET_CONFIG: IWidgetConfig = {\n widgetType: 'wm-input-email',\n hostClass: 'app-input-wrapper'\n};\n\n@Component({\n selector: 'wm-input[type=\"email\"]',\n templateUrl: './input-email.component.html',\n providers: [\n provideAs(InputEmailComponent, NG_VALUE_ACCESSOR, true),\n provideAs(InputEmailComponent, NG_VALIDATORS, true),\n provideAsWidgetRef(InputEmailComponent)\n ]\n})\nexport class InputEmailComponent extends BaseInput {\n static initializeProps = registerProps();\n\n public required: boolean;\n public maxchars: number;\n public disabled: boolean;\n public name: string;\n public readonly: boolean;\n public conditionalclass: any;\n public conditionalstyle: any;\n public tabindex: any;\n public shortcutkey: string;\n public autofocus: boolean;\n public autocomplete: any;\n public regexp: string;\n public placeholder: any;\n public type: string;\n public hint: string;\n\n @ViewChild('input', {static: true}) inputEl: ElementRef;\n @ViewChild(NgModel) ngModel: NgModel;\n\n constructor(inj: Injector, @Inject('EXPLICIT_CONTEXT') @Optional() explicitContext: any) {\n super(inj, WIDGET_CONFIG, explicitContext);\n }\n}\n","<input class=\"form-control app-textbox\"\n focus-target\n role=\"textbox\"\n [type]=\"type\"\n [attr.name]=\"name\"\n [(ngModel)]=\"datavalue\"\n [ngModelOptions]=\"ngModelOptions\"\n [readonly]=\"readonly\"\n [required]=\"required\"\n [disabled]=\"disabled\"\n [maxlength]=\"maxchars\"\n [pattern]=\"regexp\"\n [attr.tabindex]=\"tabindex\"\n [attr.placeholder]=\"placeholder\"\n [attr.accesskey]=\"shortcutkey\"\n [attr.aria-label]=\"hint\"\n [autofocus]=\"autofocus\"\n [ngClass]=\"conditionalclass\"\n [ngStyle]=\"conditionalstyle\"\n (blur)=\"handleBlur($event)\"\n (ngModelChange)=\"handleChange($event)\"\n [autocomplete]=\"autocomplete ? 'on' : 'off'\"\n (keyup.enter)=\"flushViewChanges(input.value)\"\n email\n #input>\n","import { PROP_ANY, PROP_BOOLEAN, PROP_NUMBER, PROP_STRING, register } from '@wm/components/base';\n\nexport const inputNumberTypeProps = new Map(\n [\n ['autocomplete', {value: true, ...PROP_BOOLEAN}],\n ['autofocus', PROP_BOOLEAN],\n ['autotrim', {value: true, ...PROP_BOOLEAN}],\n ['class', PROP_STRING],\n ['datavaluesource', PROP_ANY],\n ['datavalue', PROP_STRING],\n ['disabled', PROP_BOOLEAN],\n ['hint', PROP_STRING],\n ['maxchars', PROP_NUMBER],\n ['maxvalue', PROP_NUMBER],\n ['minvalue', PROP_NUMBER],\n ['name', PROP_STRING],\n ['placeholder', {value: 'Enter text', ...PROP_STRING}],\n ['readonly', PROP_BOOLEAN],\n ['regexp', PROP_STRING],\n ['required', PROP_BOOLEAN],\n ['shortcutkey', PROP_STRING],\n ['show', {value: true, ...PROP_BOOLEAN}],\n ['step', PROP_NUMBER],\n ['tabindex', {value: 0, ...PROP_NUMBER}],\n ['type', {value: 'number', ...PROP_STRING}],\n ['updateon', PROP_STRING],\n ['conditionalclass', PROP_ANY],\n ['conditionalstyle', PROP_ANY]\n\n ]\n);\n\nexport const registerProps = () => {\n register(\n 'wm-input-number',\n inputNumberTypeProps\n );\n};\n","import {Component, ElementRef, Inject, Injector, Optional, ViewChild} from '@angular/core';\nimport { NgModel, NG_VALUE_ACCESSOR, NG_VALIDATORS } from '@angular/forms';\n\nimport { IWidgetConfig, provideAs, provideAsWidgetRef } from '@wm/components/base';\nimport { registerProps } from './input-number.props';\nimport { BaseInput } from '../base/base-input';\n\nconst WIDGET_CONFIG: IWidgetConfig = {\n widgetType: 'wm-input-number',\n hostClass: 'app-input-wrapper'\n};\n\n@Component({\n selector: 'wm-input[type=\"number\"]',\n templateUrl: './input-number.component.html',\n providers: [\n provideAs(InputNumberComponent, NG_VALUE_ACCESSOR, true),\n provideAs(InputNumberComponent, NG_VALIDATORS, true),\n provideAsWidgetRef(InputNumberComponent)\n ]\n})\nexport class InputNumberComponent extends BaseInput {\n static initializeProps = registerProps();\n\n public required: boolean;\n public maxchars: number;\n public disabled: boolean;\n public name: string;\n public readonly: boolean;\n public conditionalclass: any;\n public conditionalstyle: any;\n public minvalue: number;\n public maxvalue: number;\n public tabindex: any;\n public placeholder: any;\n public shortcutkey: string;\n public autofocus: boolean;\n public autocomplete: any;\n public type: string;\n public hint: string;\n\n @ViewChild('input', {static: true}) inputEl: ElementRef;\n @ViewChild(NgModel) ngModel: NgModel;\n\n public step;\n\n constructor(inj: Injector, @Inject('EXPLICIT_CONTEXT') @Optional() explicitContext: any) {\n super(inj, WIDGET_CONFIG, explicitContext);\n }\n\n onArrowPress($event) {\n if (this.step === 0) {\n $event.preventDefault();\n }\n }\n\n public validateInputEntry($event) {\n if ($event.key === 'e' && $event.target.value.indexOf($event.key) !== -1) {\n return false;\n }\n }\n}\n","<input class=\"form-control app-textbox\"\n [ngClass]=\"{'step-hidden': step === 0}\"\n focus-target\n role=\"textbox\"\n [type]=\"type\"\n [attr.name]=\"name\"\n [(ngModel)]=\"datavalue\"\n [ngModelOptions]=\"ngModelOptions\"\n [readonly]=\"readonly\"\n [required]=\"required\"\n [disabled]=\"disabled\"\n [maxlength]=\"maxchars\"\n [min]=\"minvalue\"\n [max]=\"maxvalue\"\n [step]=\"step\"\n [attr.tabindex]=\"tabindex\"\n [attr.placeholder]=\"placeholder\"\n [attr.accesskey]=\"shortcutkey\"\n [attr.aria-label]=\"hint\"\n [autofocus]=\"autofocus\"\n [ngClass]=\"conditionalclass\"\n [ngStyle]=\"conditionalstyle\"\n (blur)=\"handleBlur($event)\"\n (ngModelChange)=\"handleChange($event)\"\n [autocomplete]=\"autocomplete ? 'on' : 'off'\"\n (keyup.enter)=\"flushViewChanges(input.value)\"\n (keydown.ArrowUp)=\"onArrowPress($event)\"\n (keydown.ArrowDown)=\"onArrowPress($event)\"\n (keypress)=\"validateInputEntry($event)\"\n #input>\n","import { PROP_ANY, PROP_BOOLEAN, PROP_NUMBER, PROP_STRING, register, registerFormWidget } from '@wm/components/base';\nimport { FormWidgetType } from '@wm/core';\n\n\nimport { inputNumberTypeProps } from '../number/input-number.props';\nimport { inputCalendarTypeProps } from '../calendar/input-calendar.props';\nimport { inputColorTypeProps } from '../color/input-color.props';\nimport { inputEmailTypeProps } from '../email/input-email.props';\n\nexport const inputTextTypeProps = new Map(\n [\n ['autocomplete', {value: true, ...PROP_BOOLEAN}],\n ['autofocus', PROP_BOOLEAN],\n ['autotrim', {value: true, ...PROP_BOOLEAN}],\n ['class', PROP_STRING],\n ['datavaluesource', PROP_ANY],\n ['datavalue', PROP_STRING],\n ['disabled', PROP_BOOLEAN],\n ['displayformat', PROP_STRING],\n ['hint', PROP_STRING],\n ['maxchars', PROP_NUMBER],\n ['name', PROP_STRING],\n ['placeholder', {value: 'Enter text', ...PROP_STRING}],\n ['readonly', PROP_BOOLEAN],\n ['regexp', PROP_STRING],\n ['required', PROP_BOOLEAN],\n ['shortcutkey', PROP_STRING],\n ['show', {value: true, ...PROP_BOOLEAN}],\n ['showdisplayformaton', {value: 'always', ...PROP_ANY}],\n ['tabindex', {value: 0, ...PROP_NUMBER}],\n ['type', {value: 'text', ...PROP_STRING}],\n ['updateon', PROP_STRING],\n ['conditionalclass', PROP_ANY],\n ['conditionalstyle', PROP_ANY]\n ]\n);\n\nexport const registerProps = () => {\n register(\n 'wm-input-text',\n inputTextTypeProps\n );\n registerFormWidget(\n FormWidgetType.PASSWORD,\n new Map(inputTextTypeProps)\n );\n const formTextProps = new Map(inputTextTypeProps);\n\n const mergeTextProps = (typeProps) => {\n typeProps.forEach((v: any, k) => formTextProps.set(k, v));\n };\n mergeTextProps(inputCalendarTypeProps);\n mergeTextProps(inputColorTypeProps);\n mergeTextProps(inputEmailTypeProps);\n mergeTextProps(inputNumberTypeProps);\n registerFormWidget(\n FormWidgetType.TEXT,\n new Map(formTextProps)\n );\n};\n","import {Component, ElementRef, Inject, Injector, OnInit, Optional, ViewChild} from '@angular/core';\nimport {NgModel, NG_VALUE_ACCESSOR, NG_VALIDATORS} from '@angular/forms';\n\nimport {IWidgetConfig, provideAs, provideAsWidgetRef} from '@wm/components/base';\nimport {registerProps} from './input-text.props';\nimport {BaseInput} from '../base/base-input';\nimport { IMaskDirective } from 'angular-imask';\n\nconst WIDGET_CONFIG: IWidgetConfig = {\n widgetType: 'wm-input-text',\n hostClass: 'app-input-wrapper'\n};\n\n@Component({\n selector: 'wm-input[type=\"text\"], wm-input:not([type]), wm-input[type=\"password\"], wm-input[type=\"search\"], wm-input[type=\"tel\"], wm-input[type=\"url\"]',\n templateUrl: './input-text.component.html',\n providers: [\n provideAs(InputTextComponent, NG_VALUE_ACCESSOR, true),\n provideAs(InputTextComponent, NG_VALIDATORS, true),\n provideAsWidgetRef(InputTextComponent)\n ]\n})\nexport class InputTextComponent extends BaseInput implements OnInit{\n static initializeProps = registerProps();\n\n public required: boolean;\n public maxchars: number;\n public regexp: string;\n public displayformat: string;\n public disabled: boolean;\n public type: any;\n public name: string;\n public readonly: boolean;\n public conditionalclass: any;\n public conditionalstyle: any;\n public tabindex: any;\n public placeholder: any;\n public shortcutkey: string;\n public autofocus: boolean;\n public autocomplete: any;\n public maskVal: any;\n public isFocused: boolean;\n private lazy: boolean = false;\n public hint: string;\n\n @ViewChild('input', {static: true}) inputEl: ElementRef;\n @ViewChild(NgModel) ngModel: NgModel;\n @ViewChild('input', {read: IMaskDirective}) imask: IMaskDirective<any>;\n\n constructor(inj: Injector, @Inject('EXPLICIT_CONTEXT') @Optional() explicitContext: any) {\n super(inj, WIDGET_CONFIG, explicitContext);\n }\n\n /* Define the property change handler. This function will be triggered when there is a change in the widget property */\n onPropertyChange(key, nv, ov) {\n /*Monitoring changes for styles or properties and accordingly handling respective changes.*/\n switch (key) {\n case 'displayformat':\n this.maskVal = this.displayformat;\n this.checkForDisplayFormat();\n break;\n case 'showdisplayformaton':\n this.lazy = nv === 'keypress' ? true : false;\n break;\n default:\n super.onPropertyChange(key, nv, ov);\n }\n }\n\n get mask() {\n if (this.displayformat && (!this.placeholder || (this.placeholder && this.isFocused))) {\n return {\n mask: this.maskVal,\n lazy: this.lazy,\n definitions: {\n '9': /\\d/,\n 'A': /[a-zA-Z]/,\n 'a': /[a-z]/,\n '*': /\\w/\n }\n };\n } else {\n return false;\n }\n }\n\n // show display format on focus or when it has a data value present. Else show the placeholder\n public checkForDisplayFormat($event?) {\n if (this.displayformat) {\n this.isFocused = (($event && $event.type === 'focus') || this.datavalue) ? true : false;\n // Do not show format placeholder when no value is present on blur\n if (!this.isFocused && this.imask && this.imask.maskRef) {\n this.imask.maskRef.updateOptions({ lazy: true });\n // on blur, when no value is present assign maskref to null, as in some cases (where format palceholder starts with pranthesis) the format placeholder is still shown. WMS-20124\n if (!this.datavalue && this.imask.maskRef.value) {\n this.imask.maskRef.value = this.datavalue;\n }\n } else {\n // when display format is dynamically populated, cursor position is at the end of the format, readjusting the cursor position based on masked input value\n // Adding timeout, as the below code should be on hold until imask model is generated\n setTimeout(() => {\n if (this.imask && this.imask.maskRef && this.imask.maskRef.value) {\n const maskValIndex = this.imask.maskRef.value.indexOf('_');\n const enteredMaskVal = maskValIndex >= 0 ? this.imask.maskRef.value.slice(0, maskValIndex).length : this.imask.maskRef.value.length;\n if (enteredMaskVal !== this.imask.maskRef.cursorPos) {\n this.imask.maskRef.updateCursor(enteredMaskVal);\n }\n }\n }, 50);\n }\n } else if (this.imask && this.imask.maskRef) { // When display format is bound via condition, remove the placeholder when the format is not applicable\n this.imask.maskRef.updateOptions({ lazy: true });\n // when display format is removed assign input value to the datavalue attr. WMS-20124\n this.inputEl.nativeElement.value = this.datavalue;\n }\n }\n\n ngOnInit() {\n super.ngOnInit();\n this.isFocused = !!this.datavalue;\n }\n}\n","<input class=\"form-control app-textbox\"\n focus-target\n role=\"textbox\"\n [type]=\"type\"\n [attr.name]=\"name\"\n [attr.aria-label]=\"hint\"\n [(ngModel)]=\"datavalue\"\n [imask]=\"mask\"\n [unmask]=\"true\"\n [ngModelOptions]=\"ngModelOptions\"\n [readonly]=\"readonly\"\n [required]=\"required\"\n [disabled]=\"disabled\"\n [maxlength]=\"maxchars\"\n [pattern]=\"regexp\"\n [attr.tabindex]=\"tabindex\"\n [attr.placeholder]=\"placeholder\"\n [attr.accesskey]=\"shortcutkey\"\n [autofocus]=\"autofocus\"\n [ngClass]=\"conditionalclass\"\n [ngStyle]=\"conditionalstyle\"\n (ngModelChange)=\"handleChange($event)\"\n (blur)=\"handleBlur($event); checkForDisplayFormat($event)\"\n (focus)=\"checkForDisplayFormat($event)\"\n [autocomplete]=\"autocomplete ? 'on' : 'off'\"\n (keyup.enter)=\"flushViewChanges(input.value)\"\n #input>\n","import { PROP_ANY, PROP_BOOLEAN, PROP_NUMBER, PROP_STRING, register, registerFormWidget } from '@wm/components/base';\nimport { FormWidgetType } from '@wm/core';\n\nexport const textareaProps = new Map(\n [\n ['autofocus', PROP_BOOLEAN],\n ['autotrim', {value: true, ...PROP_BOOLEAN}],\n ['class', PROP_STRING],\n ['datavaluesource', PROP_ANY],\n ['datavalue', PROP_STRING],\n ['disabled', PROP_BOOLEAN],\n ['hint', PROP_STRING],\n ['maxchars', PROP_NUMBER],\n ['name', PROP_STRING],\n ['placeholder', {value: 'Place your text', ...PROP_STRING}],\n ['readonly', PROP_BOOLEAN],\n ['required', PROP_BOOLEAN],\n ['shortcutkey', PROP_STRING],\n ['show', {value: true, ...PROP_BOOLEAN}],\n ['tabindex', {value: 0, ...PROP_NUMBER}],\n ['updateon', PROP_STRING],\n ['limitdisplaytext', PROP_STRING],\n ['charlength', PROP_NUMBER],\n ['conditionalclass', PROP_ANY],\n ['conditionalstyle', PROP_ANY]\n ]\n);\n\nexport const registerProps = () => {\n register(\n 'wm-textarea',\n textareaProps\n );\n registerFormWidget(\n FormWidgetType.TEXTAREA,\n new Map(textareaProps)\n );\n};\n","<textarea class=\"form-control app-textarea\"\n focus-target\n role=\"textbox\"\n [attr.name]=\"name\"\n [(ngModel)]=\"datavalue\"\n [ngModelOptions]=\"ngModelOptions\"\n [readonly]=\"readonly\"\n [required]=\"required\"\n [disabled]=\"disabled\"\n [maxlength]=\"maxchars\"\n [attr.tabindex]=\"tabindex\"\n [attr.placeholder]=\"placeholder\"\n [attr.accesskey]=\"shortcutkey\"\n [attr.aria-label]=\"hint\"\n aria-multiline=\"true\"\n [autofocus]=\"autofocus\"\n [ngClass]=\"conditionalclass\"\n [ngStyle]=\"conditionalstyle\"\n (blur)=\"handleBlur($event)\"\n (input)=\"onInputChange()\"\n (ngModelChange)=\"handleChange($event); onInputChange();\"\n #textarea\n></textarea>\n\n<div *ngIf=\"maxchars\" class=\"textarea-count\" >{{limitdisplaytext}}</div>\n","import {Component, ElementRef, Inject, Injector, Optional, ViewChild} from '@angular/core';\nimport { NgModel, NG_VALUE_ACCESSOR, NG_VALIDATORS } from '@angular/forms';\n\nimport { provideAs, provideAsWidgetRef } from '@wm/components/base';\n\nimport { registerProps } from './textarea.props';\nimport { BaseInput } from '../text/base/base-input';\nconst WIDGET_CONFIG = {\n widgetType: 'wm-textarea',\n hostClass: 'app-input-wrapper'\n};\n\n@Component({\n selector: 'wm-textarea',\n templateUrl: './textarea.component.html',\n providers: [\n provideAs(TextareaComponent, NG_VALUE_ACCESSOR, true),\n provideAs(TextareaComponent, NG_VALIDATORS, true),\n provideAsWidgetRef(TextareaComponent)\n ]\n})\nexport class TextareaComponent extends BaseInput {\n static initializeProps = registerProps();\n public required: boolean;\n public maxchars: number;\n public disabled: boolean;\n public name: string;\n public readonly: boolean;\n public conditionalclass: any;\n public conditionalstyle: any;\n public tabindex: any;\n public placeholder: any;\n public shortcutkey: string;\n public autofocus: boolean;\n public hint: string;\n public limitdisplaytext: string;\n public charlength: number = 0;\n\n @ViewChild('textarea', {static: true}) inputEl: ElementRef;\n @ViewChild(NgModel) ngModel: NgModel;\n\n constructor(inj: Injector, @Inject('EXPLICIT_CONTEXT') @Optional() explicitContext: any) {\n super(inj, WIDGET_CONFIG, explicitContext);\n }\n\n public onInputChange() {\n this.charlength = this.inputEl.nativeElement.value.length;\n }\n}\n","import {AfterViewInit, Directive, ElementRef, Injector, OnDestroy, OnInit} from '@angular/core';\nimport {App} from '@wm/core';\nimport {forEach} from \"lodash-es\";\n\ndeclare const $;\n@Directive({\n selector: '[wmCaptionPosition]'\n})\nexport class CaptionPositionDirective implements AfterViewInit, OnInit, OnDestroy {\n private elementRef: ElementRef;\n private inputEl;\n private nativeEl;\n private compositeEle;\n private app: App;\n private labelAnimationSubscription;\n private placeholder;\n private _attrObserver;\n private _isPlaceholderBound;\n\n // skip floating caption for the below form fields\n private skipFloatPositionWidgets: string[] = ['radioset', 'checkboxset', 'richtext', 'switch', 'chips', 'checkbox', 'slider', 'rating', 'toggle', 'upload'];\n\n constructor(inj: Injector, app: App) {\n this.elementRef = inj.get(ElementRef);\n this.nativeEl = this.elementRef.nativeElement;\n this.app = app;\n }\n\n private onBlurCb() { // on blur, remove animation and placeholder if there is no value\n let mobileInputVal;\n // In case of mobile date / time picker check for input element's value which has 'mobile-input' class\n if (this.inputEl.length > 1 && this.inputEl.hasClass('mobile-input')) {\n forEach(this.inputEl, (el) => {\n if ($(el).hasClass('mobile-input') && el.value) {\n mobileInputVal = el.value;\n }\n });\n }\n if (!this.inputEl.val() && !mobileInputVal) {\n this.compositeEle.classList.remove('float-active');\n this.inputEl.removeAttr('placeholder');\n }\n }\n\n private onFocusCb() { // on focus, add animation class and the place holder\n this.compositeEle.classList.add('float-active');\n this.inputEl.attr('placeholder', this.placeholder);\n }\n\n // For select widget, display placeholder only on focus else remove the text of the option selected.\n private checkForSelectPlaceholder() {\n if ($(this.nativeEl).find('select option:selected').text() && !$(this.nativeEl).find('select').is(':focus') &&\n !$(this.inputEl.closest('[widget-id]')).attr('datavalue')) {\n $(this.nativeEl).find('select option:selected').text('');\n }\n }\n\n private setDefaultValueAnimation() { // set animation when default values are present\n // remove placeholder when the input el has placeholder and the placeholder is not bound to any variable\n if (!this._isPlaceholderBound && this.inputEl.attr('placeholder')) {\n this.placeholder = this.inputEl.attr('placeholder');\n this.inputEl.removeAttr('placeholder');\n }\n\n // Do not show placeholder as selected by default\n this.checkForSelectPlaceholder();\n\n // check for datavalue attribute in composite element and defaultvalue attribute in form field element\n // check for datavalue.bind attribute to see whether default value is binded via expression or a variable\n // check for displayformat attribute, as in form fields user can set display format to the field\n // check for formdata/bindformdata attribute to see if any default value is binded to the form\n // check for select tag with multiple attribute enabled\n\n if ((this.inputEl.val() && !this.inputEl.is('select')) || $(this.inputEl.closest('[widget-id]')).attr('datavalue') || $(this.inputEl.parent('[widget-id]')).attr('datavalue.bind') || this.nativeEl.getAttribute('defaultvalue')\n || this.nativeEl.getAttribute('displayformat') || $(this.nativeEl).find('select option:selected').text() || $(this.nativeEl).find('select').attr('multiple')) {\n this.compositeEle.classList.add('float-active');\n }\n }\n\n /**\n * Observing placeholder attribute change on DOM instead of having a propChangeHandler fn\n * For composite widgets propertychangehandler function is invoked at independent widgets where as the directive is at composite level\n */\n private observeForPlaceholderAttrChange() {\n this._attrObserver = new MutationObserver(mutations => {\n mutations.forEach((mutation) => {\n if (mutation.attributeName === 'placeholder' && this.inputEl.attr('placeholder') && !this.compositeEle.classList.contains('float-active')) {\n this.placeholder = this.inputEl.attr('placeholder');\n this.inputEl.removeAttr('placeholder');\n }\n });\n });\n const config = { attributes: true, childList: false, characterData: false };\n this._attrObserver.observe(this.inputEl[0], config);\n }\n\n // when a form is right aligned and have input-group-btn's like date picker, time picker etc. adjust the css to not overlap the label on the icon\n private checkForRightAlignedForm() {\n const $compositeEle = $(this.compositeEle);\n if ($compositeEle.closest('.align-right').length && $compositeEle.find('.input-group-btn').length) {\n const $label = $compositeEle.find('label');\n if ($compositeEle.find('[wmdatetime]').length) { // for datetime picker, as there will be 2 icons css is different\n $label.addClass('input-grp-dt-icon');\n } else {\n $label.addClass('input-grp-icon');\n }\n }\n }\n\n ngAfterViewInit() {\n this.compositeEle = this.nativeEl;\n const widget = this.nativeEl.widget;\n let captionPosition: string = widget.$attrs.get('captionposition');\n if (widget.form) {\n captionPosition = widget.form.$attrs.get('captionposition');\n this.compositeEle = this.nativeEl.querySelector('.app-composite-widget');\n this._isPlaceholderBound = this.nativeEl.getAttribute('placeholder.bind');\n }\n if (captionPosition === 'floating') {\n if (widget.form) { // for form-fields remove caption-floating and replace it with caption-float or caption-top\n const widgetType: string = this.nativeEl.getAttribute('widgettype'); // fetches the form field type\n if (this.skipFloatPositionWidgets.indexOf(widgetType) > -1) {\n this.compositeEle.classList.remove('caption-floating');\n this.compositeEle.classList.add('caption-top');\n }\n this.checkForRightAlignedForm();\n }\n this.inputEl = $(this.nativeEl).find('input, select, textarea');\n if (!this._isPlaceholderBound) {\n this._isPlaceholderBound = this.inputEl.closest('[widget-id]').attr('placeholder.bind');\n }\n // call the below function to apply float-active class when there are default values to the fields\n setTimeout(this.setDefaultValueAnimation.bind(this), 0);\n\n this.inputEl.focus(this.onFocusCb.bind(this));\n this.inputEl.blur(this.onBlurCb.bind(this));\n\n // observe for placeholder attribute change when placeholder is bound via db variable or an expression\n if (this._isPlaceholderBound) {\n this.observeForPlaceholderAttrChange();\n }\n }\n }\n\n // captionPositionAnimate is only notified for date-time, time and search widgets as input el is not updated with value on selection of dropdown/popups\n ngOnInit() {\n this.labelAnimationSubscription = this.app.subscribe('captionPositionAnimate', (data) => {\n // displayVal is true when there is a value entered in the input field\n // In case of form fields, when the field is in focus, isFocused will be set as true\n // isSelectMultiple is set to true when for select widget, multiple option is enabled\n // Checking inputEl focus - when form is represented as dialog and the first field is automatically in focus\n const isInputElFocused = this.inputEl && this.inputEl.is(':focus');\n if (data.displayVal || data.isFocused || data.isSelectMultiple || isInputElFocused) {\n data.nativeEl.addClass('float-active');\n if (!data.displayVal && isInputElFocused) {\n this.inputEl.attr('placeholder', this.placeholder);\n }\n } else {\n data.nativeEl.removeClass('float-active');\n // Remove placeholder on removing float-active, if not the label and placeholder are collided\n // before placeholder is removed assign it to the placeholder variable\n // check for placeholder in inputel and selectel\n if (this.inputEl) {\n const selectEl = this.inputEl.find('option:first');\n if (this.inputEl.attr('placeholder') || selectEl.text()) {\n if (selectEl.length) {\n selectEl.text('');\n } else {\n this.placeholder = this.inputEl.attr('placeholder');\n this.inputEl.removeAttr('placeholder');\n }\n }\n }\n }\n });\n }\n\n ngOnDestroy() {\n if (this.labelAnimationSubscription) {\n this.labelAnimationSubscription();\n }\n if (this._attrObserver) {\n this._attrObserver.disconnect();\n }\n }\n}\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { FormsModule } from '@angular/forms';\n\nimport { IMaskModule } from 'angular-imask';\n\nimport { WmComponentsModule } from '@wm/components/base';\n\nimport { ButtonComponent } from './button/button.component';\nimport { ButtonGroupDirective } from './button-group/button-group.directive';\nimport { CheckboxComponent } from './checkbox/checkbox.component';\nimport { CheckboxsetComponent } from './checkboxset/checkboxset.component';\nimport { CompositeDirective } from './composite/composite.directive';\nimport { NumberComponent } from './number/number.component';\nimport { RadiosetComponent } from './radioset/radioset.component';\nimport { SelectComponent } from './select/select.component';\nimport { SwitchComponent } from './switch/switch.component';\nimport { InputCalendarComponent } from './text/calendar/input-calendar.component';\nimport { InputColorComponent } from './text/color/input-color.component';\nimport { InputEmailComponent } from './text/email/input-email.component';\nimport { InputNumberComponent } from './text/number/input-number.component';\nimport { InputTextComponent } from './text/text/input-text.component';\nimport { TextareaComponent } from './textarea/textarea.component';\nimport { CaptionPositionDirective } from './caption-position.directive';\n\nconst components = [\n ButtonComponent,\n ButtonGroupDirective,\n CaptionPositionDirective,\n CheckboxComponent,\n CheckboxsetComponent,\n CompositeDirective,\n NumberComponent,\n RadiosetComponent,\n SelectComponent,\n SwitchComponent,\n InputCalendarComponent,\n InputColorComponent,\n InputEmailComponent,\n InputNumberComponent,\n InputTextComponent,\n TextareaComponent\n];\n\n@NgModule({\n imports: [\n CommonModule,\n FormsModule,\n WmComponentsModule,\n IMaskModule\n ],\n declarations: [...components],\n exports: [...components]\n})\nexport class InputModule {\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public_api';\n"],"names":["registerProps","_c3","_c4","DEFAULT_CLS","WIDGET_CONFIG","_c0","_c2","_c1","_debounce","debounce","i1"],"mappings":"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"}