@acorex/components 5.0.47 → 5.0.50

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1 +1 @@
1
- {"version":3,"file":"acorex-components.mjs","sources":["../../../../projects/acorex/components/src/lib/base/mixin/base-components.class.ts","../../../../projects/acorex/components/src/lib/base/mixin/datalist.class.ts","../../../../projects/acorex/components/src/lib/base/mixin/button-mixin.class.ts","../../../../projects/acorex/components/src/lib/base/mixin/clickable-mixin.class.ts","../../../../projects/acorex/components/src/lib/base/mixin/color-look-mixing.class.ts","../../../../projects/acorex/components/src/lib/base/mixin/datalist-component.class.ts","../../../../projects/acorex/components/src/lib/base/mixin/dropdown-mixin.class.ts","../../../../projects/acorex/components/src/lib/base/mixin/interactive-mixin.class.ts","../../../../projects/acorex/components/src/lib/base/mixin/selection-component.class.ts","../../../../projects/acorex/components/src/lib/base/mixin/sizable-mixin.class.ts","../../../../projects/acorex/components/src/lib/base/mixin/value-mixin.class.ts","../../../../projects/acorex/components/src/lib/base/mixin/textbox-mixin.class.ts","../../../../projects/acorex/components/src/lib/base/mixin/mixin.class.ts","../../../../projects/acorex/components/src/lib/base/events.class.ts","../../../../projects/acorex/components/src/lib/base/drawing.class.ts","../../../../projects/acorex/components/src/lib/base/styles.class.ts","../../../../projects/acorex/components/src/lib/base/responsive.directive.ts","../../../../projects/acorex/components/src/lib/base/infinite-scroll.directive.ts","../../../../projects/acorex/components/src/lib/base/common.module.ts","../../../../projects/acorex/components/src/lib/alert/alert.component.ts","../../../../projects/acorex/components/src/lib/alert/alert.component.html","../../../../projects/acorex/components/src/lib/alert/alert-title.component.ts","../../../../projects/acorex/components/src/lib/alert/alert-button.component.ts","../../../../projects/acorex/components/src/lib/alert/alert-content.component.ts","../../../../projects/acorex/components/src/lib/alert/alert-suffix.component.ts","../../../../projects/acorex/components/src/lib/alert/alert-footer.component.ts","../../../../projects/acorex/components/src/lib/icon/icon.component.ts","../../../../projects/acorex/components/src/lib/icon/icon.module.ts","../../../../projects/acorex/components/src/lib/alert/alert.module.ts","../../../../projects/acorex/components/src/lib/avatar/avatar.component.ts","../../../../projects/acorex/components/src/lib/avatar/avatar.component.html","../../../../projects/acorex/components/src/lib/avatar/avatar.module.ts","../../../../projects/acorex/components/src/lib/badge/badge.component.ts","../../../../projects/acorex/components/src/lib/badge/badge.component.html","../../../../projects/acorex/components/src/lib/badge/badge.module.ts","../../../../projects/acorex/components/src/lib/button/button.component.ts","../../../../projects/acorex/components/src/lib/button/button.component.html","../../../../projects/acorex/components/src/lib/button/button-group.component.ts","../../../../projects/acorex/components/src/lib/button/button-group.component.html","../../../../projects/acorex/components/src/lib/button/button-item.component.ts","../../../../projects/acorex/components/src/lib/decorators/content.component.ts","../../../../projects/acorex/components/src/lib/decorators/addon.component.ts","../../../../projects/acorex/components/src/lib/decorators/header.component.ts","../../../../projects/acorex/components/src/lib/decorators/prefix.component.ts","../../../../projects/acorex/components/src/lib/decorators/suffix.component.ts","../../../../projects/acorex/components/src/lib/decorators/decorators.module.ts","../../../../projects/acorex/components/src/lib/button/button.module.ts","../../../../projects/acorex/components/src/lib/calendar/calendar.class.ts","../../../../projects/acorex/components/src/lib/calendar/calendar.component.ts","../../../../projects/acorex/components/src/lib/calendar/calendar.component.html","../../../../projects/acorex/components/src/lib/calendar/calendar.module.ts","../../../../projects/acorex/components/src/lib/carousel/carousel.class.ts","../../../../projects/acorex/components/src/lib/carousel/carousel-splidejs.class.ts","../../../../projects/acorex/components/src/lib/carousel/carousel.component.ts","../../../../projects/acorex/components/src/lib/carousel/carousel.component.html","../../../../projects/acorex/components/src/lib/carousel/carousel-item.component.ts","../../../../projects/acorex/components/src/lib/carousel/carousel-arrows.component.ts","../../../../projects/acorex/components/src/lib/carousel/carousel-pager.component.ts","../../../../projects/acorex/components/src/lib/carousel/carousel.module.ts","../../../../projects/acorex/components/src/lib/checkbox/checkbox.component.ts","../../../../projects/acorex/components/src/lib/checkbox/checkbox.component.html","../../../../projects/acorex/components/src/lib/checkbox/checkbox.module.ts","../../../../projects/acorex/components/src/lib/loading/loading.component.ts","../../../../projects/acorex/components/src/lib/datalist/datalist.component.ts","../../../../projects/acorex/components/src/lib/datalist/datalist.component.html","../../../../projects/acorex/components/src/lib/loading/loading-spinner.component.ts","../../../../projects/acorex/components/src/lib/loading/loading.directive.ts","../../../../projects/acorex/components/src/lib/loading/loading.module.ts","../../../../projects/acorex/components/src/lib/base/custom-cdk-overlay.service.ts","../../../../projects/acorex/components/src/lib/base/overlay.service.ts","../../../../projects/acorex/components/src/lib/loading/loading.service.ts","../../../../projects/acorex/components/src/lib/datalist/datalist.module.ts","../../../../projects/acorex/components/src/lib/popover/popover.component.ts","../../../../projects/acorex/components/src/lib/popover/popover.component.html","../../../../projects/acorex/components/src/lib/datepicker/datepicker.component.ts","../../../../projects/acorex/components/src/lib/datepicker/datepicker.component.html","../../../../projects/acorex/components/src/lib/popover/popover.module.ts","../../../../projects/acorex/components/src/lib/textbox/textbox.component.ts","../../../../projects/acorex/components/src/lib/textbox/textbox.component.html","../../../../projects/acorex/components/src/lib/textbox/textbox.module.ts","../../../../projects/acorex/components/src/lib/datepicker/datepicker.module.ts","../../../../projects/acorex/components/src/lib/dialog/dialog.component.ts","../../../../projects/acorex/components/src/lib/dialog/dialog.component.html","../../../../projects/acorex/components/src/lib/dialog/dialog.service.ts","../../../../projects/acorex/components/src/lib/page/page.component.ts","../../../../projects/acorex/components/src/lib/page/page-footer.component.ts","../../../../projects/acorex/components/src/lib/page/base-page.class.ts","../../../../projects/acorex/components/src/lib/page/page-header.component.ts","../../../../projects/acorex/components/src/lib/page/page.module.ts","../../../../projects/acorex/components/src/lib/dialog/dialog.module.ts","../../../../projects/acorex/components/src/lib/drawer/drawer.component.ts","../../../../projects/acorex/components/src/lib/drawer/drawer-container.component.ts","../../../../projects/acorex/components/src/lib/drawer/drawer-content.component.ts","../../../../projects/acorex/components/src/lib/drawer/drawer.module.ts","../../../../projects/acorex/components/src/lib/dropdown/dropdown-panel.component.ts","../../../../projects/acorex/components/src/lib/dropdown/dropdown-panel.component.html","../../../../projects/acorex/components/src/lib/dropdown/dropdown.module.ts","../../../../projects/acorex/components/src/lib/form/form-field.component.ts","../../../../projects/acorex/components/src/lib/form/form-hint.component.ts","../../../../projects/acorex/components/src/lib/form/form.component.ts","../../../../projects/acorex/components/src/lib/form/form-field.module.ts","../../../../projects/acorex/components/src/lib/input-mask/input-mask.component.ts","../../../../projects/acorex/components/src/lib/input-mask/input-mask.module.ts","../../../../projects/acorex/components/src/lib/label/label.component.ts","../../../../projects/acorex/components/src/lib/label/label.component.html","../../../../projects/acorex/components/src/lib/label/label.module.ts","../../../../projects/acorex/components/src/lib/menu/menu.component.ts","../../../../projects/acorex/components/src/lib/menu/menu.component.html","../../../../projects/acorex/components/src/lib/menu/menu.module.ts","../../../../projects/acorex/components/src/lib/number-box/number-box.component.ts","../../../../projects/acorex/components/src/lib/number-box/number-box.component.html","../../../../projects/acorex/components/src/lib/number-box/number-box.module.ts","../../../../projects/acorex/components/src/lib/password-box/password-box.component.ts","../../../../projects/acorex/components/src/lib/password-box/password-box.component.html","../../../../projects/acorex/components/src/lib/password-box/password-box.module.ts","../../../../projects/acorex/components/src/lib/popup/popup.component.ts","../../../../projects/acorex/components/src/lib/popup/popup.component.html","../../../../projects/acorex/components/src/lib/popup/popup.service.ts","../../../../projects/acorex/components/src/lib/popup/popup.module.ts","../../../../projects/acorex/components/src/lib/progress-bar/progress-bar.component.ts","../../../../projects/acorex/components/src/lib/progress-bar/progress-bar.component.html","../../../../projects/acorex/components/src/lib/progress-bar/progress-bar.module.ts","../../../../projects/acorex/components/src/lib/radio/radio.component.ts","../../../../projects/acorex/components/src/lib/radio/radio.component.html","../../../../projects/acorex/components/src/lib/radio/radio.module.ts","../../../../projects/acorex/components/src/lib/range-slider/range-slider.component.ts","../../../../projects/acorex/components/src/lib/range-slider/range-slider.component.html","../../../../projects/acorex/components/src/lib/range-slider/range-slider.module.ts","../../../../projects/acorex/components/src/lib/selectbox/selectbox.component.ts","../../../../projects/acorex/components/src/lib/selectbox/selectbox.component.html","../../../../projects/acorex/components/src/lib/selectbox/selectbox.module.ts","../../../../projects/acorex/components/src/lib/selection-list/selection-list.component.ts","../../../../projects/acorex/components/src/lib/selection-list/selection-list.component.html","../../../../projects/acorex/components/src/lib/selection-list/selection-list.module.ts","../../../../projects/acorex/components/src/lib/switch/switch.component.ts","../../../../projects/acorex/components/src/lib/switch/switch.component.html","../../../../projects/acorex/components/src/lib/switch/switch.module.ts","../../../../projects/acorex/components/src/lib/tabs/tab-item.component.ts","../../../../projects/acorex/components/src/lib/tabs/tabs.component.ts","../../../../projects/acorex/components/src/lib/tabs/tabs.class.ts","../../../../projects/acorex/components/src/lib/tabs/tab-content.directive.ts","../../../../projects/acorex/components/src/lib/tabs/tabs.module.ts","../../../../projects/acorex/components/src/lib/textarea/textarea.component.ts","../../../../projects/acorex/components/src/lib/textarea/textarea.component.html","../../../../projects/acorex/components/src/lib/textarea/textarea.module.ts","../../../../projects/acorex/components/src/lib/time-box/time-box.component.ts","../../../../projects/acorex/components/src/lib/time-box/time-box.component.html","../../../../projects/acorex/components/src/lib/time-box/time-box.module.ts","../../../../projects/acorex/components/src/lib/toast/toast.component.ts","../../../../projects/acorex/components/src/lib/toast/toast.component.html","../../../../projects/acorex/components/src/lib/toast/toast.module.ts","../../../../projects/acorex/components/src/lib/toast/toast.service.ts","../../../../projects/acorex/components/src/lib/tooltip/tooltip.component.ts","../../../../projects/acorex/components/src/lib/tooltip/tooltip.component.html","../../../../projects/acorex/components/src/lib/tooltip/tooltip.directive.ts","../../../../projects/acorex/components/src/lib/tooltip/tooltip.module.ts","../../../../projects/acorex/components/src/lib/treeview/tree-view.component.ts","../../../../projects/acorex/components/src/lib/treeview/tree-view.component.html","../../../../projects/acorex/components/src/lib/treeview/tree-view.module.ts","../../../../projects/acorex/components/src/lib/validation/validation-rule.widget.ts","../../../../projects/acorex/components/src/lib/validation/validation.module.ts","../../../../projects/acorex/components/src/public-api.ts","../../../../projects/acorex/components/src/acorex-components.ts"],"sourcesContent":["import { ChangeDetectorRef, EventEmitter, Inject, Injectable } from \"@angular/core\";\r\nimport { ElementRef } from \"@angular/core\";\r\nimport { Constructor } from \"./constratctor\";\r\n\r\n\r\n/**\r\n* A token that specifies the size of component.\r\n*/\r\nexport type AXElementSize = 'xs' | 'sm' | 'md' | 'lg' | 'xl';\r\n\r\n\r\nexport type AXComponentOptionChanging = { name: string, value?: any };\r\nexport type AXComponentOptionChanged = { name: string, newValue?: any, oldValue?: any };\r\nexport type AXComponentSetOption = { name: string, value?: any, afterCallback?: () => void, beforeCallback?: () => void };\r\n\r\n@Injectable()\r\nexport class AXBaseComponent {\r\n id: string = `AX${Math.round(Math.random() * Math.pow(10, 10))}`;\r\n\r\n /**\r\n * A token that specifies the layout direction of component.\r\n */\r\n rtl: boolean;\r\n\r\n cssClass: string;\r\n cssStyle: string;\r\n\r\n\r\n #elementRef: ElementRef;\r\n _cdr: ChangeDetectorRef;\r\n\r\n _isInited: boolean;\r\n _isRendered: boolean;\r\n\r\n /**\r\n * @ignore\r\n */\r\n constructor(@Inject(Array) ...args: any[]) {\r\n this.#elementRef = args[0];\r\n this._cdr = args[1];\r\n }\r\n\r\n ngOnInit() {\r\n this._isInited = true;\r\n this._onInternalInit();\r\n }\r\n\r\n ngAfterViewInit() {\r\n this._isRendered = true;\r\n this._onInternalViewInit();\r\n }\r\n\r\n ngOnDestroy() {\r\n this._onInternalDestroy();\r\n }\r\n\r\n _getHostElement<T = HTMLElement>(): T {\r\n return this.#elementRef.nativeElement as T;\r\n }\r\n\r\n _getInnerElement<T = HTMLElement>(): T {\r\n return this._getHostElement().firstElementChild as unknown as T;\r\n }\r\n\r\n\r\n _onInternalInit() {\r\n (this._getHostElement() as any).__axContext__ = this;\r\n\r\n if (this.rtl == null) {\r\n this.rtl = window.getComputedStyle(this._getHostElement(), null).getPropertyValue('direction') === 'rtl';\r\n }\r\n //TODO: Apply \r\n // this._getHostElement().classList.add(this.rtl ? 'ax-rtl' : 'ax-ltr');\r\n // this._getInnerElement()?.classList.add(this.rtl ? 'ax-rtl' : 'ax-ltr');\r\n // this._getHostElement().setAttribute('data-id', this.id);\r\n this.onInit();\r\n this.onRenderCssClass();\r\n }\r\n\r\n _onInternalViewInit() {\r\n this.onViewInit();\r\n }\r\n\r\n _onInternalDestroy() {\r\n this.onDestroy();\r\n }\r\n\r\n onInit() {\r\n }\r\n\r\n onRenderCssClass() {\r\n }\r\n\r\n onViewInit() {\r\n }\r\n\r\n onDestroy() {\r\n }\r\n\r\n _onOptionChanging(option: AXComponentOptionChanging) {\r\n return option?.value;\r\n }\r\n _onOptionChanged(option: AXComponentOptionChanged): void {\r\n\r\n }\r\n\r\n _setOption(option: AXComponentSetOption) {\r\n const oldValue = this[option.name];\r\n const newValue = this._onOptionChanging({ name: option.name, value: option.value });\r\n //TODO : check real changes\r\n if (oldValue != newValue) {\r\n if (option.beforeCallback)\r\n option.beforeCallback();\r\n this[`_${option.name}`] = option.value;\r\n this._onOptionChanged({ name: option.name, newValue, oldValue });\r\n const emitter = this[`${option.name}Change`] as EventEmitter<any>;\r\n if (emitter)\r\n emitter.emit(newValue);\r\n if (option.afterCallback)\r\n option.afterCallback();\r\n }\r\n }\r\n}\r\n\r\n\r\nexport function _BaseComponenetMixin<TBase extends Constructor<AXBaseComponent>>(Base: TBase) {\r\n return class extends Base {\r\n constructor(...args: any[]) {\r\n super(...args);\r\n }\r\n }\r\n}\r\n\r\n\r\nexport const BASE_INPUTS = [\r\n 'rtl',\r\n 'cssClass',\r\n 'cssStyle'\r\n];\r\nexport const BASE_OUTPUT = [];\r\n","\r\nexport interface AXDataListQuery {\r\n take?: number;\r\n skip?: number;\r\n searchQuery?: string;\r\n}\r\nexport interface AXDataListFetchCallbackResult {\r\n items: any[];\r\n total: number;\r\n};\r\n\r\nexport type AXDataListFetchDataCallback = (e: AXDataListQuery) => Promise<any[] | AXDataListFetchCallbackResult>;\r\n\r\nexport type AXDataListItems = any[] | AXDataListFetchDataCallback;","import { EventEmitter } from '@angular/core';\r\nimport { AXBaseComponent } from './base-components.class';\r\nimport { Constructor } from './constratctor';\r\n\r\nexport function _ButtonComponentMixin<TBase extends Constructor<AXBaseComponent>>(Base: TBase) {\r\n return class extends Base {\r\n \r\n\r\n _text: string;\r\n /**\r\n * Defines the primary text to show inside the button.\r\n */\r\n get text(): string {\r\n return this._text;\r\n }\r\n set text(v: string) {\r\n this._setOption({\r\n name: 'text',\r\n value: v,\r\n afterCallback: () => {\r\n this._cdr.markForCheck();\r\n }\r\n })\r\n }\r\n\r\n\r\n /**\r\n * Trigger click event by Enter Key \r\n */\r\n submitBehavior: boolean = false;\r\n\r\n /**\r\n * Trigger click event by Esc Key\r\n */\r\n cancelBehavior: boolean = false;\r\n\r\n \r\n\r\n\r\n toggleableChange: EventEmitter<boolean> = new EventEmitter();\r\n _toggleable?: boolean = false;\r\n /**\r\n * Provides visual styling that indicates if the Button is active\r\n */\r\n get toggleable(): boolean {\r\n return this._toggleable;\r\n }\r\n set toggleable(value: boolean) {\r\n this._setOption({\r\n name: 'toggleable',\r\n value\r\n });\r\n }\r\n\r\n\r\n selectedChange: EventEmitter<boolean> = new EventEmitter();\r\n _selected?: boolean = false;\r\n /**\r\n * Indicates if the Button is selected or not\r\n */\r\n get selected(): boolean {\r\n return this._selected;\r\n }\r\n set selected(value: boolean) {\r\n this._setOption({\r\n name: 'selected',\r\n value,\r\n afterCallback: () => {\r\n this._cdr.markForCheck();\r\n }\r\n });\r\n }\r\n\r\n constructor(...args: any[]) {\r\n super(...args);\r\n }\r\n\r\n _onInternalViewInit() {\r\n super._onInternalViewInit();\r\n if (this.submitBehavior) {\r\n setTimeout(() => {\r\n (this as any).focus();\r\n }, 0);\r\n }\r\n }\r\n\r\n _onInternalDestroy() {\r\n super._onInternalDestroy();\r\n }\r\n\r\n\r\n get _classes() {\r\n const cssClasses = {\r\n 'ax-button-icon': !this.text,\r\n 'ax-state-disabled': this[\"disabled\"],\r\n 'ax-state-selected': this.selected\r\n };\r\n cssClasses[`ax-${this['color'] || 'primary'}${this['look'] ? '-' + this['look'] : '-default'}`] = true;\r\n return cssClasses;\r\n }\r\n };\r\n}\r\n\r\nexport const BUTTON_INPUTS = [\r\n 'text',\r\n 'submitBehavior',\r\n 'cancelBehavior',\r\n 'toggleable',\r\n 'selected',\r\n];\r\nexport const BUTTON_OUTPUT = ['onBlur', 'onFocus', 'onClick', 'selectedChange', 'toggleableChange'];\r\n","import { EventEmitter } from \"@angular/core\";\r\nimport { AXBaseComponent } from \"./base-components.class\";\r\nimport { Constructor } from \"./constratctor\";\r\nimport { AXClickEvent } from \"../events.class\";\r\n\r\n\r\nexport function _ClickableComponenetMixin<TBase extends Constructor<AXBaseComponent>>(Base: TBase){\r\n return class extends Base {\r\n\r\n /**\r\n * Fires each time the user clicks the button.\r\n * @event\r\n */\r\n onClick: EventEmitter<AXClickEvent> = new EventEmitter<AXClickEvent>();\r\n\r\n _emitOnClickEvent(e: MouseEvent): void {\r\n this.onClick.emit({\r\n component: this,\r\n htmlElement: this._getHostElement(),\r\n nativeEvent: e\r\n });\r\n }\r\n\r\n /**\r\n * @ignore\r\n */\r\n constructor(...args: any[]) {\r\n super(...args);\r\n }\r\n }\r\n}\r\n\r\n","import { EventEmitter } from \"@angular/core\";\r\nimport { AXStyleColorType, AXStyleButtonLook } from \"../styles.class\";\r\nimport { AXBaseComponent } from \"./base-components.class\";\r\nimport { Constructor } from \"./constratctor\";\r\n\r\nexport function _ColorLookComponentMixin<TBase extends Constructor<AXBaseComponent>>(Base: TBase) {\r\n return class extends Base {\r\n\r\n constructor(...args: any[]) {\r\n super(...args);\r\n }\r\n\r\n colorChange: EventEmitter<AXStyleColorType> = new EventEmitter();\r\n _color: AXStyleColorType = 'primary';\r\n /**\r\n * Predefined color schemes\r\n */\r\n get color(): AXStyleColorType {\r\n return this._color;\r\n }\r\n set color(value: AXStyleColorType) {\r\n this._setOption({\r\n name: 'color',\r\n value,\r\n afterCallback: () => {\r\n this._cdr.markForCheck();\r\n }\r\n });\r\n }\r\n\r\n lookChange: EventEmitter<AXStyleButtonLook> = new EventEmitter();\r\n _look?: AXStyleButtonLook = null;\r\n /**\r\n * Predefined look schemes\r\n */\r\n get look(): AXStyleButtonLook {\r\n return this._look;\r\n }\r\n set look(value: AXStyleButtonLook) {\r\n this._setOption({\r\n name: 'look',\r\n value,\r\n afterCallback: () => {\r\n this._cdr.markForCheck();\r\n }\r\n });\r\n }\r\n }\r\n}\r\n\r\n\r\nexport const COLOR_LOOK_INPUTS = [\r\n 'color',\r\n 'look',\r\n ];\r\n export const COLOR_LOOK_OUTPUT = [];","import _ from 'lodash';\r\nimport { AXBaseComponent } from './base-components.class';\r\nimport { Constructor } from './constratctor';\r\nimport { AXDataListFetchDataCallback, AXDataListItems } from './datalist.class';\r\n\r\n\r\nexport function _DatalistComponenetMixin<TBase extends Constructor<AXBaseComponent>>(Base: TBase) {\r\n return class extends Base {\r\n\r\n valueField: string = 'id';\r\n textField: string = 'text';\r\n childrenField: string;\r\n pageSize: number = 10;\r\n\r\n #currentPage: number = 0;\r\n #isLoading: boolean = false;\r\n #loadedItems: any[] = [];\r\n #flatItems: any[] = [];\r\n #totalItems: number = 0;\r\n\r\n #isLazy: boolean = false;\r\n\r\n get totalCount(): number {\r\n return this.#totalItems;\r\n }\r\n\r\n get loadedCount(): number {\r\n return this.#loadedItems?.length || 0;\r\n }\r\n\r\n constructor(...args: any[]) {\r\n super(...args);\r\n\r\n }\r\n\r\n #items: AXDataListItems = [];\r\n get items(): AXDataListItems {\r\n return this.#items;\r\n }\r\n set items(v: AXDataListItems) {\r\n if (Array.isArray(v)) {\r\n this.#items = this._formatData(v);\r\n this._onDataLoaded();\r\n this.#generateFlatItems();\r\n }\r\n else if (typeof v === 'function') {\r\n this.#isLazy = true;\r\n this.#items = v;\r\n }\r\n else {\r\n this.#items = [];\r\n this._onDataLoaded();\r\n this.#generateFlatItems();\r\n }\r\n }\r\n\r\n get displayItems(): any[] {\r\n if (Array.isArray(this.items)) {\r\n return (this.#items || []) as any[];\r\n }\r\n else if (typeof this.#items == 'function') {\r\n return this.#loadedItems || [];\r\n }\r\n return [];\r\n }\r\n\r\n get flatItems(): any[] {\r\n\r\n return this.#flatItems || [];\r\n }\r\n\r\n get isLoading(): boolean {\r\n return this.#isLoading;\r\n }\r\n\r\n _formatData(v: any[]) {\r\n return _.unionBy(v.map((o, i) => {\r\n if (typeof o == 'object')\r\n return o\r\n else {\r\n const no: any = {};\r\n no[this.valueField] = o;\r\n no[Array.isArray(this.textField) ? this.textField[0] : this.textField] = o;\r\n return no;\r\n }\r\n }), this.valueField);\r\n }\r\n\r\n _fetchData(opts?: { searchQuery?: string }) {\r\n if ((this.loadedCount >= this.totalCount && this.totalCount != 0) || this.#isLoading || !this.#isLazy) {\r\n return;\r\n }\r\n if (this.#items) {\r\n this.#isLoading = true;\r\n const fetchFn = this.#items as AXDataListFetchDataCallback;\r\n fetchFn({ skip: this.#currentPage * this.pageSize, take: this.pageSize, searchQuery: opts?.searchQuery }).then(c => {\r\n if (Array.isArray(c)) {\r\n this.#loadedItems = this._formatData(c);\r\n this.#totalItems = c.length;\r\n }\r\n else {\r\n this.#totalItems = c.total || c.items?.length || 0;\r\n this.#loadedItems = this.#loadedItems.concat(this._formatData(c.items));\r\n this.#currentPage++;\r\n }\r\n this._cdr.markForCheck();\r\n }).finally(() => {\r\n this.#isLoading = false;\r\n this._onDataLoaded();\r\n this.#generateFlatItems();\r\n });\r\n }\r\n }\r\n\r\n _onDataLoaded() {\r\n\r\n }\r\n\r\n\r\n #generateFlatItems(): void {\r\n const flattenFn = (item) => {\r\n return [item, _.flatMapDeep(item.children, flattenFn)];\r\n }\r\n this.#flatItems = _.flatMapDeep(this.displayItems, flattenFn);\r\n }\r\n\r\n _getItemDisplayTextTemplte(item) {\r\n if (item)\r\n return Array.isArray(this.textField) ? this.textField.map(c => item[c]).join(',') : item[this.textField];\r\n else\r\n return 'Loading...';\r\n }\r\n\r\n _trackByFunction(item) {\r\n if (!item) return null;\r\n return item[this.valueField];\r\n }\r\n\r\n refresh() {\r\n this.empty();\r\n this._fetchData();\r\n }\r\n\r\n empty() {\r\n this.#isLoading = false;\r\n if (this.#loadedItems) {\r\n this.#loadedItems.length = 0;\r\n }\r\n }\r\n\r\n }\r\n}\r\n\r\nexport const DATALIST_INPUTS = [\r\n 'pageSize',\r\n 'valueField',\r\n 'textField',\r\n 'items'\r\n];\r\nexport const DATALIST_OUTPUT = [];\r\n","import { EventEmitter } from \"@angular/core\";\r\nimport { AXBaseComponent } from \"./base-components.class\";\r\nimport { Constructor } from \"./constratctor\";\r\nimport { AXEvent } from \"../events.class\";\r\nimport { AXPopoverComponent } from \"../../popover/popover.component\";\r\nimport { AXConnectedPosition } from \"../drawing.class\";\r\n\r\n\r\n\r\nexport interface DropdownComponentInterface {\r\n open(): void;\r\n close(): void;\r\n toggle(): void;\r\n isOpen: boolean;\r\n}\r\n\r\n\r\nexport function _DropdownComponenetMixin<TBase extends Constructor<AXBaseComponent>>(Base: TBase) {\r\n\r\n abstract class Mixin extends Base {\r\n\r\n readonly: boolean = false;\r\n\r\n\r\n onOpened: EventEmitter<AXEvent> = new EventEmitter<AXEvent>();\r\n onClosed: EventEmitter<AXEvent> = new EventEmitter<AXEvent>();\r\n\r\n abstract popover: AXPopoverComponent;\r\n\r\n position: AXConnectedPosition[] = [];\r\n\r\n _emitOnOpenedEvent() {\r\n //** call from interactive mixin **//\r\n //(this as any).focus();\r\n //\r\n this.onOpened.emit({\r\n component: this,\r\n htmlElement: this._getHostElement()\r\n });\r\n }\r\n\r\n _emitOnClosedEvent() {\r\n this.onClosed.emit({\r\n component: this,\r\n htmlElement: this._getHostElement()\r\n });\r\n }\r\n\r\n\r\n onInit(): void {\r\n super.onInit();\r\n this.popover.onOpened.subscribe(this.onOpened);\r\n this.popover.onClosed.subscribe(this.onClosed);\r\n }\r\n\r\n onViewInit() {\r\n\r\n // wait for documentElement\r\n setTimeout(() => {\r\n if (this.position.length == 0) {\r\n const offset = Number(getComputedStyle(document.documentElement).getPropertyValue('--ax-base-size').replace('px', ''));\r\n const list: AXConnectedPosition[] = [\r\n {\r\n originX: 'start',\r\n originY: 'bottom',\r\n overlayX: 'start',\r\n overlayY: 'top',\r\n offsetY: offset\r\n },\r\n {\r\n originX: 'start',\r\n originY: 'top',\r\n overlayX: 'start',\r\n overlayY: 'bottom',\r\n offsetY: -offset\r\n },\r\n {\r\n originX: 'end',\r\n originY: 'bottom',\r\n overlayX: 'end',\r\n overlayY: 'top',\r\n offsetY: offset\r\n },\r\n {\r\n originX: 'end',\r\n originY: 'top',\r\n overlayX: 'end',\r\n overlayY: 'bottom',\r\n offsetY: -offset\r\n },\r\n ];\r\n this.position.push(...list);\r\n }\r\n }, 500);\r\n }\r\n\r\n toggle() {\r\n if (this['disabled'] !== true) {\r\n this.popover.toggle();\r\n }\r\n }\r\n\r\n close() {\r\n if (!this.isOpen || this['disabled']) {\r\n return;\r\n }\r\n this.popover.close();\r\n (this as any)?.focus();\r\n }\r\n\r\n open() {\r\n if (this.isOpen || this['disabled']) {\r\n return;\r\n }\r\n this.popover.open();\r\n this.popover.focus();\r\n }\r\n\r\n get isOpen(): boolean {\r\n return this.popover?.isOpen;\r\n }\r\n\r\n constructor(...args: any[]) {\r\n super(...args);\r\n }\r\n\r\n }\r\n\r\n return Mixin;\r\n}\r\n\r\n\r\nexport const DROPDOWN_INPUTS = [\r\n 'isOpen',\r\n 'fitParent',\r\n 'dropdownWidth',\r\n 'position'\r\n];\r\nexport const DROPDOWN_OUTPUT = ['onOpened', 'onClosed'];","import { coerceBooleanProperty, coerceNumberProperty } from \"@angular/cdk/coercion\";\r\nimport { EventEmitter } from \"@angular/core\";\r\nimport { AXBaseComponent } from \"./base-components.class\";\r\nimport { Constructor } from \"./constratctor\";\r\nimport { AXFocusEvent } from \"../events.class\";\r\n\r\n\r\nexport function _InteractiveComponenetMixin<TBase extends Constructor<AXBaseComponent>>(Base: TBase) {\r\n abstract class Mixin extends Base {\r\n\r\n #disabled: boolean = false;\r\n /**\r\n * If set to true, it disables the component.\r\n */\r\n get disabled(): boolean { return this.#disabled; }\r\n set disabled(value: boolean) {\r\n value = this._onOptionChanging({ name: 'disabled', value: value });\r\n if (value != this.disabled) {\r\n const oldValue = this.disabled;\r\n this.#disabled = coerceBooleanProperty(value);\r\n this._onOptionChanged({ name: 'disabled', oldValue, newValue: value });\r\n this._cdr.markForCheck();\r\n }\r\n }\r\n\r\n\r\n\r\n #tabIndex: number = null;\r\n /**\r\n * Specifies the tabindex of the component.\r\n */\r\n get tabIndex(): number { return this.disabled ? -1 : this.#tabIndex; }\r\n set tabIndex(value: number) {\r\n this.#tabIndex = value != null ? coerceNumberProperty(value) : 0;\r\n }\r\n\r\n /**\r\n * Fires each time the component gets focused.\r\n * @event\r\n */\r\n onFocus: EventEmitter<AXFocusEvent> = new EventEmitter<AXFocusEvent>();\r\n\r\n _emitOnFocusEvent(e: FocusEvent): void {\r\n this.onFocus.emit({\r\n component: this,\r\n htmlElement: this._getHostElement(),\r\n nativeEvent: e\r\n });\r\n }\r\n\r\n /**\r\n * Fires each time the component gets blurred.\r\n * @event\r\n */\r\n onBlur: EventEmitter<AXFocusEvent> = new EventEmitter<AXFocusEvent>();\r\n\r\n _emitOnBlurEvent(e: FocusEvent): void {\r\n this.onBlur.emit({\r\n component: this,\r\n htmlElement: this._getHostElement(),\r\n nativeEvent: e\r\n });\r\n }\r\n\r\n /**\r\n * Focuses the component.\r\n */\r\n focus(): void {\r\n const focusable = this._getHostElement().querySelector<HTMLElement>('button, [href], input, select, textarea, [tabindex]:not([tabindex=\"-1\"])');\r\n if (focusable) {\r\n focusable.focus();\r\n }\r\n }\r\n\r\n /**\r\n * Check component is focused or has any focused element.\r\n */\r\n hasFocus(): boolean {\r\n return this._getHostElement().matches(':focus-within') || this._getHostElement().matches(':focus');\r\n }\r\n\r\n /**\r\n * @ignore\r\n */\r\n constructor(...args: any[]) {\r\n super(...args);\r\n }\r\n }\r\n return Mixin;\r\n}\r\n\r\nexport const INTERACTIVE_INPUTS = [\r\n 'disabled',\r\n 'tabIndex',\r\n];\r\nexport const INTERACTIVE_OUTPUT = ['onBlur', 'onFocus'];","import { AXObjectUtil } from '@acorex/core';\r\nimport { coerceBooleanProperty } from '@angular/cdk/coercion';\r\nimport { EventEmitter } from '@angular/core';\r\nimport _ from 'lodash';\r\nimport { AXSelectionValueChangedEvent } from '../events.class';\r\nimport { AXBaseComponent } from './base-components.class';\r\nimport { Constructor } from './constratctor';\r\n\r\nexport function _SelectionComponenetMixin<TBase extends Constructor<AXBaseComponent>>(Base: TBase) {\r\n return class extends Base {\r\n\r\n valueField: string = 'id';\r\n textField: string = 'text';\r\n disabledField: string = 'disabled';\r\n disabledCallback: (e: { item: any, index: number }) => boolean;\r\n multiple: boolean = false;\r\n selectionMode: 'value' | 'item' = 'value';\r\n\r\n // for data-list\r\n get items(): any[] {\r\n return [];\r\n }\r\n\r\n get displayItems(): any[] {\r\n return [];\r\n }\r\n\r\n get flatItems(): any[] {\r\n return [];\r\n }\r\n\r\n\r\n public valueChange: EventEmitter<any> = new EventEmitter<any>();\r\n public onValueChanged: EventEmitter<AXSelectionValueChangedEvent> = new EventEmitter<AXSelectionValueChangedEvent>();\r\n\r\n\r\n constructor(...args: any[]) {\r\n super(...args)\r\n }\r\n\r\n _onInternalInit() {\r\n super._onInternalInit();\r\n }\r\n\r\n\r\n _value: any | any[];\r\n get value(): any | any[] {\r\n return this._value;\r\n }\r\n set value(v: any | any[]) {\r\n v = (this as any)._onInternalValueChanging(v);\r\n if (v !== this._value) {\r\n const oldValue = AXObjectUtil.deepJSONClone(this._value);\r\n if (this.multiple) {\r\n this._value = Array.isArray(v) ? v : (v ? [v] : []);\r\n } else {\r\n this._value = Array.isArray(v) ? v[0] : v;\r\n }\r\n this.valueChange.emit(this._value);\r\n this.onValueChanged.emit({\r\n component: this,\r\n htmlElement: this._getHostElement(),\r\n isUserInteraction: false,\r\n oldValue,\r\n value: this._value,\r\n selectedKeys: this.selectedItems.map(c => c[this.valueField]),\r\n selectedItems: this.selectedItems.slice()\r\n });\r\n if (v == null || v == undefined || v == \"\") {\r\n (this as any)._setState('clear');\r\n }\r\n else {\r\n if (this._isInited) {\r\n (this as any).validate();\r\n }\r\n }\r\n this._renderSelection();\r\n }\r\n }\r\n\r\n _selectedItems: any[];\r\n get selectedItems(): any[] {\r\n return this._selectedItems || [];\r\n }\r\n\r\n _renderSelection() {\r\n const func = () => {\r\n if (this.value == null || this.value == undefined) {\r\n return [];\r\n }\r\n const items = this.flatItems;\r\n if (items.length > 0) {\r\n return items.filter(i => {\r\n if (Array.isArray(this.value)) {\r\n return this.value.some(ii => {\r\n if (typeof ii === 'object') {\r\n return i[this.valueField] === ii[this.valueField];\r\n }\r\n else {\r\n return i[this.valueField] === ii;\r\n }\r\n });\r\n }\r\n else {\r\n if (typeof this.value === 'object') {\r\n return i[this.valueField] === this.value[this.valueField];\r\n }\r\n else {\r\n return i[this.valueField] === this.value;\r\n }\r\n }\r\n });\r\n }\r\n if (Array.isArray(this.value)) {\r\n return this.value.map(ii => () => {\r\n //&& ii[this.textField]\r\n if (typeof ii === 'object') {\r\n return ii;\r\n }\r\n else {\r\n const fake: any = {};\r\n fake[this.valueField] = this.value;\r\n fake[this.textField] = this.value;\r\n return fake;\r\n }\r\n });\r\n }\r\n else {\r\n //&& this.value[this.textField]\r\n if (typeof this.value === 'object') {\r\n return [this.value];\r\n }\r\n else {\r\n const fake: any = {};\r\n fake[this.valueField] = this.value;\r\n fake[this.textField] = this.value;\r\n return [fake];\r\n }\r\n }\r\n };\r\n this._selectedItems = func();\r\n }\r\n\r\n _getItemByDataMode(item: any) {\r\n return this.selectionMode === 'item' ? item : item[this.valueField];\r\n }\r\n\r\n _getItemValue(item: any) {\r\n return typeof item === 'object' ? item[this.valueField] : item;\r\n }\r\n\r\n unselectItems(...items: any[]) {\r\n if (!items || items.length === 0) {\r\n this.value = null;\r\n }\r\n else if (Array.isArray(this.value)) {\r\n this.value = this.value.filter(c => !items.some(d =>\r\n this._getItemValue(c) === this._getItemValue(d))\r\n );\r\n }\r\n else {\r\n this.value = null;\r\n }\r\n }\r\n\r\n selectItems(...items: any[]) {\r\n if (items && items.length) {\r\n if (this.multiple) {\r\n this.value = (this.value || []).concat(items.map(c => this._getItemByDataMode(c)));\r\n }\r\n else {\r\n this.value = this._getItemByDataMode(items[0]);\r\n }\r\n }\r\n }\r\n\r\n toggleSelect(...items: any[]) {\r\n if (items && items.length) {\r\n items.forEach(item => {\r\n if (this.multiple) {\r\n this.isItemSelected(item) ? this.unselectItems(item) : this.selectItems(item);\r\n }\r\n else {\r\n this.selectItems(item)\r\n }\r\n });\r\n }\r\n }\r\n\r\n isItemSelected(item: any): boolean {\r\n return this.selectedItems.some(c => c[this.valueField] === item[this.valueField]);\r\n }\r\n\r\n isItemDisabled(item: any): boolean {\r\n return coerceBooleanProperty(item[this.disabledField]) === true || (this.disabledCallback ? this.disabledCallback({ item, index: -1 }) : false);\r\n }\r\n }\r\n}\r\n\r\n\r\nexport const SELECTION_INPUTS = [\r\n 'valueField',\r\n 'textField',\r\n 'disabledField',\r\n 'disabledCallback',\r\n 'multiple',\r\n 'selectionMode'\r\n];\r\nexport const SELECTION_OUTPUT = ['onValueChanged', 'valueChanged'];","import { AXConfig } from '@acorex/core';\r\nimport { AXBaseComponent, AXElementSize } from './base-components.class';\r\nimport { Constructor } from './constratctor';\r\n\r\nexport function _SizableComponenetMixin<TBase extends Constructor<AXBaseComponent>>(Base: TBase) {\r\n return class extends Base {\r\n\r\n /**\r\n * A token that specifies the size of component.\r\n */\r\n size: AXElementSize;\r\n\r\n /**\r\n * @ignore\r\n */\r\n constructor(...args: any[]) {\r\n super(...args.slice(0, 2))\r\n }\r\n\r\n _onInternalInit() {\r\n super._onInternalInit();\r\n }\r\n }\r\n}\r\n\r\n\r\nexport const SIZABLE_INPUTS = [\r\n 'size',\r\n];\r\nexport const SIZABLE_OUTPUT = [];","import {\r\n coerceBooleanProperty,\r\n coerceNumberProperty,\r\n} from '@angular/cdk/coercion';\r\nimport { EventEmitter } from '@angular/core';\r\nimport { AXBaseComponent } from './base-components.class';\r\nimport { Constructor } from './constratctor';\r\nimport { AXValueChangedEvent } from '../events.class';\r\nimport { AXValidationRuleResult } from '../../validation/validation.class';\r\nimport { Subject, Subscription } from 'rxjs';\r\nimport { debounceTime, distinctUntilChanged } from 'rxjs/operators';\r\n\r\nexport function _ValueComponenetMixin<TBase extends Constructor<AXBaseComponent>>(Base: TBase) {\r\n\r\n return class extends Base {\r\n\r\n /**\r\n * Fires each time the user press a key.\r\n * @event\r\n */\r\n onValueChanged: EventEmitter<AXValueChangedEvent<any>> = new EventEmitter<AXValueChangedEvent<any>>();\r\n\r\n valueChange: EventEmitter<any> = new EventEmitter<any>();\r\n\r\n\r\n #readonly: boolean = false;\r\n\r\n /**\r\n * If set to true, user cannot change the value of component.\r\n */\r\n get readonly() {\r\n return this.#readonly;\r\n }\r\n set readonly(value: boolean) {\r\n this.#readonly = coerceBooleanProperty(value);\r\n }\r\n\r\n #allowNull: boolean = true;\r\n get allowNull() {\r\n return this.#allowNull;\r\n }\r\n set allowNull(value: boolean) {\r\n this.#allowNull = coerceBooleanProperty(value);\r\n }\r\n\r\n\r\n #name: string;\r\n get name() {\r\n return this.#name;\r\n }\r\n set name(value: string) {\r\n this.#name = value;\r\n }\r\n\r\n #debounceTime: number = 0;\r\n get debounceTime() {\r\n return this.#debounceTime;\r\n }\r\n set debounceTime(value: number) {\r\n this.#debounceTime = coerceNumberProperty(value);\r\n }\r\n\r\n #valueSubscription = new Subscription();\r\n #valueSubject = new Subject();\r\n\r\n #value: any;\r\n get value(): any {\r\n return this.#value;\r\n }\r\n set value(v: any) {\r\n v = this._onInternalValueChanging(v);\r\n if (!this._isInited || this.debounceTime == 0) {\r\n this._setValue(v);\r\n } else {\r\n this.#valueSubject.next(v);\r\n }\r\n }\r\n\r\n #state: 'clear' | 'success' | 'error' = 'clear';\r\n\r\n get state() {\r\n return this.#state;\r\n }\r\n\r\n _emitOnValueChangedEvent(oldValue?: any, newValue?: any) {\r\n this.valueChange.emit(newValue);\r\n this.onValueChanged.emit({\r\n component: this,\r\n value: newValue,\r\n oldValue: oldValue,\r\n name: this.name\r\n });\r\n this._onValueChanged(oldValue, this.#value);\r\n }\r\n\r\n _onInternalValueChanging(value: any) {\r\n // if (this.readonly)\r\n // return this.value;\r\n return this._onValueChanging(value);\r\n }\r\n\r\n _onValueChanging(value: any) {\r\n return value;\r\n }\r\n _onValueChanged(oldValue: any, newValue: any): void { }\r\n\r\n _onInternalInit() {\r\n this._getHostElement().setAttribute('ax-form-input', 'true');\r\n this.#valueSubscription = this.#valueSubject\r\n .pipe(debounceTime(this.#debounceTime))\r\n .pipe(distinctUntilChanged())\r\n .subscribe((v) => {\r\n this._setValue(v);\r\n });\r\n super._onInternalInit();\r\n }\r\n\r\n _onInternalDestroy() {\r\n this.#valueSubscription.unsubscribe();\r\n super.onDestroy();\r\n }\r\n\r\n _setValue(v: any) {\r\n const old = this.#value;\r\n // TODO: check real equality\r\n if (v != old) {\r\n this.#value = v;\r\n this._emitOnValueChangedEvent(old, this.#value);\r\n this._cdr.markForCheck();\r\n if (v == null || v == undefined || v == '') {\r\n this._setState('clear');\r\n } else {\r\n if (this._isInited) {\r\n this.validate();\r\n }\r\n }\r\n }\r\n }\r\n\r\n clear() {\r\n this.value = null;\r\n }\r\n\r\n validate(): Promise<AXValidationRuleResult> {\r\n const rules = Array.from(\r\n this._getHostElement().querySelectorAll('ax-validation-rule')\r\n ).filter((c) => (c as any).__axContext__.enabled);\r\n //\r\n if (!rules || rules.length === 0) {\r\n this._setState('clear');\r\n return Promise.resolve({ result: true, value: this.value });\r\n }\r\n\r\n return new Promise<AXValidationRuleResult>((resolve) => {\r\n Promise.all(\r\n rules\r\n .filter((c) => typeof (c as any)?.validate === 'function')\r\n .map((c) => {\r\n return (c as any).validate(this.value);\r\n })\r\n ).then((d) => {\r\n const error = d.find((c) => c.result === false);\r\n if (error) {\r\n this._setState('error', error.message);\r\n resolve({ result: false, value: this.value });\r\n } else {\r\n this._setState('success');\r\n resolve({ result: true, value: this.value });\r\n }\r\n });\r\n });\r\n }\r\n\r\n\r\n /**\r\n * @ignore\r\n */\r\n constructor(...args: any[]) {\r\n super(...args);\r\n }\r\n\r\n _setState(state: 'clear' | 'success' | 'error', ...args) {\r\n const container = this._getHostElement().classList.contains('ax-editor-container') ?\r\n this._getHostElement() :\r\n this._getHostElement().querySelector('.ax-editor-container');\r\n const formField = container?.closest('.ax-form-field');\r\n const label = formField?.querySelector('ax-label') || formField?.querySelector('label');\r\n let target = container || this._getInnerElement();\r\n if (target.querySelector('.ax-error-container')) {\r\n target = target.querySelector('.ax-error-container');\r\n }\r\n const parent = target.parentElement;\r\n\r\n switch (state) {\r\n\r\n case 'clear':\r\n this.#state = 'clear';\r\n if (parent.querySelector('span.ax-error-msg')) {\r\n parent.removeChild(parent.querySelector('span.ax-error-msg'));\r\n }\r\n label?.classList.remove('ax-state-error');\r\n target.classList.remove('ax-state-error', 'ax-state-success');\r\n break;\r\n case 'success':\r\n this._setState('clear');\r\n target.classList.add('ax-state-success');\r\n this.#state = 'success';\r\n break;\r\n case 'error':\r\n this._setState('clear');\r\n if (args[0]) {\r\n const span = document.createElement('span');\r\n span.innerText = args[0];\r\n span.classList.add('ax-error-msg');\r\n parent.appendChild(span);\r\n }\r\n label?.classList.add('ax-state-error');\r\n target.classList.add('ax-state-error');\r\n \r\n this.#state = 'error';\r\n break;\r\n }\r\n this._cdr.markForCheck();\r\n }\r\n }\r\n}\r\n\r\n\r\nexport const VALUE_INPUTS = [\r\n 'readonly',\r\n 'allowNull',\r\n 'value',\r\n 'debounceTime',\r\n 'name',\r\n 'checked'\r\n];\r\nexport const VALUE_OUTPUT = ['valueChange', 'onValueChanged'];","import { EventEmitter } from '@angular/core';\r\nimport { AXHtmlEvent } from '../events.class';\r\nimport { AXBaseComponent } from './base-components.class';\r\nimport { Constructor } from './constratctor';\r\nimport { VALUE_INPUTS, VALUE_OUTPUT } from './value-mixin.class';\r\n\r\nexport function _TextboxComponenetMixin<TBase extends Constructor<AXBaseComponent>>(Base: TBase) {\r\n return class extends Base {\r\n\r\n /**\r\n * A string value that specifies the type of text box.\r\n */\r\n type = 'text'\r\n\r\n /**\r\n * A string value that specifies the placeholder of text box.\r\n */\r\n placeholder: string = null;\r\n\r\n /**\r\n * A number value that specifies the maximum characters of text box.\r\n */\r\n maxLength: number;\r\n\r\n /**\r\n * Specifies that autocomplete is on or off.\r\n */\r\n autoComplete: string;\r\n\r\n\r\n /**\r\n * Fires each time the user press a key.\r\n * @event\r\n */\r\n onKeyDown: EventEmitter<AXHtmlEvent<KeyboardEvent>> = new EventEmitter<AXHtmlEvent<KeyboardEvent>>();\r\n\r\n\r\n _emitOnKeydownEvent(e: KeyboardEvent) {\r\n this.onKeyDown.emit({\r\n component: this,\r\n nativeEvent: e\r\n });\r\n }\r\n\r\n\r\n /**\r\n * @ignore\r\n */\r\n constructor(...args: any[]) {\r\n super(...args.slice(0, 2))\r\n }\r\n }\r\n}\r\n\r\nexport const TEXTBOX_INPUTS = ['placeholder', 'maxLength', 'allowNull', 'debounceTime','type', ...VALUE_INPUTS]\r\nexport const TEXTBOX_OUTPUT = [...VALUE_OUTPUT]","export * from './datalist.class';\r\nimport { AXBaseComponent, _BaseComponenetMixin } from './base-components.class';\r\nimport { _ButtonComponentMixin } from './button-mixin.class';\r\nimport { _ClickableComponenetMixin } from './clickable-mixin.class';\r\nimport { _ColorLookComponentMixin } from './color-look-mixing.class';\r\nimport { _DatalistComponenetMixin } from './datalist-component.class';\r\nimport { _DropdownComponenetMixin } from './dropdown-mixin.class';\r\nimport { _InteractiveComponenetMixin } from './interactive-mixin.class';\r\nimport { _LoadingComponenetMixin } from './loading-mixin.class';\r\nimport { _SelectionComponenetMixin } from './selection-component.class';\r\nimport { _SizableComponenetMixin } from './sizable-mixin.class';\r\nimport { _TextboxComponenetMixin } from './textbox-mixin.class';\r\nimport { _ValueComponenetMixin } from './value-mixin.class';\r\n\r\nexport const AXBaseComponentMixin = _BaseComponenetMixin(AXBaseComponent);\r\n\r\nexport const AXSizableComponentMixin = _SizableComponenetMixin(\r\n _BaseComponenetMixin(AXBaseComponent)\r\n);\r\n\r\nexport const AXInteractiveComponenetMixin = _SizableComponenetMixin(\r\n _InteractiveComponenetMixin(AXBaseComponent)\r\n);\r\n\r\nexport const AXBaseClickableMixin = _SizableComponenetMixin(\r\n _InteractiveComponenetMixin(_ClickableComponenetMixin(AXBaseComponent))\r\n);\r\n\r\nexport const AXBaseButtonMixin = _SizableComponenetMixin(\r\n _InteractiveComponenetMixin(\r\n _ClickableComponenetMixin(_ColorLookComponentMixin(_ButtonComponentMixin(AXBaseComponent)))\r\n )\r\n);\r\n\r\nexport const AXBaseValueComponentMixin = _SizableComponenetMixin(\r\n _InteractiveComponenetMixin(_ValueComponenetMixin<any>(AXBaseComponent))\r\n);\r\n\r\nexport const AXBaseTextBoxMixin = _SizableComponenetMixin(\r\n _InteractiveComponenetMixin(\r\n _ValueComponenetMixin(_TextboxComponenetMixin(AXBaseComponent))\r\n )\r\n);\r\n\r\n\r\nexport const AXBaseSelectionValueMixin = _SizableComponenetMixin(\r\n _InteractiveComponenetMixin(\r\n _DatalistComponenetMixin(\r\n _SelectionComponenetMixin(_ValueComponenetMixin<any>(AXBaseComponent))\r\n )\r\n )\r\n);\r\n\r\nexport const AXBaseValueDropdownMixin =\r\n _InteractiveComponenetMixin(\r\n _DropdownComponenetMixin(\r\n _DatalistComponenetMixin(_ValueComponenetMixin<any>(AXBaseComponent))\r\n )\r\n );\r\n\r\nexport const AXBaseSelectionDropdownMixin = _DropdownComponenetMixin(AXBaseSelectionValueMixin);\r\n\r\nexport const AXBaseDropdownMixin = _SizableComponenetMixin(\r\n _InteractiveComponenetMixin(_DropdownComponenetMixin(AXBaseComponent))\r\n);\r\n\r\n","/**\r\n* Contains native event\r\n* @category Events\r\n*/\r\nexport class AXEvent {\r\n /**\r\n * The sender component\r\n */\r\n component: any;\r\n /**\r\n * The root native element\r\n */\r\n htmlElement?: HTMLElement;\r\n\r\n isUserInteraction?: boolean = false;\r\n}\r\n\r\n/**\r\n* Contains native event\r\n* @category Events\r\n*/\r\nexport class AXHtmlEvent<E extends Event> extends AXEvent {\r\n nativeEvent?: E;\r\n}\r\n\r\n/**\r\n* Contains native event\r\n* @category Events\r\n*/\r\nexport class AXValueChangedEvent<T> extends AXEvent {\r\n name?: T;\r\n value?: T;\r\n oldValue?: T;\r\n \r\n}\r\n\r\n\r\n/**\r\n* Fires each time the user click the element.\r\n* @category Events\r\n*/\r\nexport class AXClickEvent extends AXHtmlEvent<MouseEvent> {\r\n /**\r\n * uses for extra data\r\n */\r\n data?: any\r\n}\r\n\r\n/**\r\n* Fires each time the user click the element.\r\n* @category Events\r\n*/\r\nexport class AXButtonClickEvent extends AXClickEvent {\r\n name: string;\r\n}\r\n\r\n/**\r\n* Fires each time the user click the element.\r\n* @category Events\r\n*/\r\nexport class AXItemClickEvent<T> extends AXHtmlEvent<MouseEvent> {\r\n item: T;\r\n}\r\n\r\n/**\r\n* Fires each time the component gets focused.\r\n* @category Events\r\n*/\r\nexport class AXFocusEvent extends AXHtmlEvent<FocusEvent> {\r\n}\r\n\r\n\r\n/**\r\n* Fires each time an item or multiple items selected by the user or value.\r\n* @category Events\r\n*/\r\nexport class AXSelectionValueChangedEvent extends AXValueChangedEvent<any | any[]> {\r\n value?: any;\r\n oldValue?: any;\r\n selectedKeys?: any[];\r\n selectedItems?: any[];\r\n}","// export type AXPlacement =\r\n// | 'top-start'\r\n// | 'top-middle'\r\n// | 'top-end'\r\n// | 'center-start'\r\n// | 'center-end'\r\n// | 'bottom-start'\r\n// | 'bottom-middle'\r\n// | 'bottom-end';\r\n\r\n\r\nexport interface AXConnectedPosition {\r\n originX: 'start' | 'center' | 'end';\r\n originY: 'top' | 'center' | 'bottom';\r\n overlayX: 'start' | 'center' | 'end';\r\n overlayY: 'top' | 'center' | 'bottom';\r\n weight?: number;\r\n offsetX?: number;\r\n offsetY?: number;\r\n}","\r\nexport const AX_STYLE_TYPES = ['info', 'danger', 'success', 'warning'];\r\n\r\n/**\r\n* A token that specifies the color style of component.\r\n*/\r\nexport type AXStyleColorType = 'primary' | 'secondary' | 'info' | 'danger' | 'success' | 'warning' | 'light' | 'dark';\r\nexport type AXStyleButtonLook = 'blank' | 'outline' | 'twotone' | 'link';\r\n\r\nexport const AX_LOCATIONS = ['bottom-start', 'bottom-center', 'bottom-end', 'top-start', 'top-center', 'top-end'];\r\nexport type AXLocation = 'bottom-start' | 'bottom-center' | 'bottom-end' | 'top-start' | 'top-center' | 'top-end';\r\n\r\n\r\nexport const AX_DIRECTIONS = ['vertical', 'horizontal'];\r\n/**\r\n* A token that specifies the direction of component.\r\n*/\r\nexport type AXDirection = 'vertical' | 'horizontal';\r\n\r\n\r\n/**\r\n* A token that specifies the selection mode of component.\r\n*/\r\nexport type AXSelectionMode = 'single' | 'multiple';","import { Directive, ElementRef, OnDestroy } from '@angular/core';\r\n\r\n@Directive({ selector: '[ax-responsive]' })\r\nexport class AXResponsiveDirective implements OnDestroy {\r\n\r\n private _observer: ResizeObserver = new ResizeObserver(entries => {\r\n for (let entry of entries) {\r\n\r\n if (entry.target) {\r\n const e = entry.target;\r\n const elements = [e, ...Array.from(e.querySelectorAll(`[class*='sm:']`))];\r\n elements.map(c => ({\r\n element: c,\r\n classList: Array.from(c.classList).filter(c => c.includes('sm')).map(c => c.slice(3))\r\n })).forEach(c => {\r\n e.clientWidth < 320 ? c.element.classList.add(...c.classList) : c.element.classList.remove(...c.classList);\r\n });\r\n }\r\n }\r\n });;\r\n\r\n constructor(private _elementRef: ElementRef<HTMLDivElement>) {\r\n this._observer.observe(_elementRef.nativeElement);\r\n }\r\n\r\n ngOnDestroy() {\r\n this._observer.disconnect();\r\n this._observer.unobserve(this._elementRef.nativeElement);\r\n }\r\n\r\n}","import { Directive, AfterViewInit, ElementRef, Input } from '@angular/core';\r\nimport { fromEvent, Observable } from 'rxjs';\r\nimport { exhaustMap, filter, map, pairwise, startWith } from 'rxjs/operators';\r\n\r\n\r\nexport interface AXScrollPosition {\r\n scrollHeight: number;\r\n scrollTop: number;\r\n clientHeight: number;\r\n};\r\n\r\nconst AX_DEFAULT_SCROLL_POSITION: AXScrollPosition = {\r\n scrollHeight: 0,\r\n scrollTop: 0,\r\n clientHeight: 0\r\n};\r\n\r\n@Directive({\r\n selector: '[axInfiniteScroller]'\r\n})\r\nexport class AXInfiniteScrollerDirective implements AfterViewInit {\r\n\r\n private scrollEvent$: Observable<any>;\r\n\r\n private userScrolledDown$: Observable<any>;\r\n\r\n\r\n private requestOnScroll$: Observable<any>;\r\n\r\n @Input()\r\n scrollCallback: Function;\r\n\r\n @Input()\r\n immediateCallback;\r\n\r\n @Input()\r\n scrollPercent = 70;\r\n\r\n constructor(private elm: ElementRef) { }\r\n\r\n ngAfterViewInit() {\r\n\r\n this.registerScrollEvent();\r\n\r\n this.streamScrollEvents();\r\n\r\n this.requestCallbackOnScroll();\r\n\r\n }\r\n\r\n private registerScrollEvent() {\r\n\r\n this.scrollEvent$ = fromEvent(this.elm.nativeElement, 'scroll');\r\n\r\n }\r\n\r\n private streamScrollEvents() {\r\n this.userScrolledDown$ = this.scrollEvent$\r\n .pipe(\r\n map((e: any): AXScrollPosition => ({\r\n scrollHeight: e.target.scrollHeight,\r\n scrollTop: e.target.scrollTop,\r\n clientHeight: e.target.clientHeight\r\n })),\r\n pairwise(),\r\n filter(positions => this.isUserScrollingDown(positions) && this.isScrollExpectedPercent(positions[1]))\r\n );\r\n }\r\n\r\n private requestCallbackOnScroll() {\r\n this.requestOnScroll$ = this.userScrolledDown$;\r\n\r\n if (this.immediateCallback) {\r\n this.requestOnScroll$ = this.requestOnScroll$.pipe(\r\n startWith([AX_DEFAULT_SCROLL_POSITION, AX_DEFAULT_SCROLL_POSITION])\r\n );\r\n }\r\n\r\n this.requestOnScroll$.pipe(\r\n exhaustMap(() => {\r\n return this.scrollCallback();\r\n }))\r\n //.subscribe((data) => { console.log(data) }, (err) => console.log(err));\r\n\r\n }\r\n\r\n private isUserScrollingDown = (positions) => {\r\n return positions[0].sT < positions[1].sT;\r\n }\r\n\r\n private isScrollExpectedPercent = (position) => {\r\n return ((position.sT + position.cH) / position.sH) > (this.scrollPercent / 100);\r\n }\r\n\r\n}","import { NgModule } from '@angular/core';\r\nimport { AXInfiniteScrollerDirective } from './infinite-scroll.directive';\r\nimport { AXResponsiveDirective } from './responsive.directive';\r\n\r\n\r\n\r\n\r\n@NgModule({\r\n imports: [],\r\n exports: [AXResponsiveDirective, AXInfiniteScrollerDirective],\r\n declarations: [AXResponsiveDirective, AXInfiniteScrollerDirective],\r\n providers: [],\r\n})\r\nexport class AXCommonModule { }\r\n","import { Component, ViewEncapsulation, ChangeDetectionStrategy, ElementRef, ChangeDetectorRef, Input, ViewChildren, QueryList, EventEmitter, Output, HostBinding } from '@angular/core';\r\nimport { AXBaseComponent, AXBaseComponentMixin, AXComponentOptionChanged, AXStyleColorType } from '../base';\r\nimport { _ButtonComponentMixin } from '../base/mixin/button-mixin.class';\r\nimport { _ClickableComponenetMixin } from '../base/mixin/clickable-mixin.class';\r\nimport { COLOR_LOOK_INPUTS, _ColorLookComponentMixin } from '../base/mixin/color-look-mixing.class';\r\nimport { _InteractiveComponenetMixin } from '../base/mixin/interactive-mixin.class';\r\n\r\n\r\nexport const AXBaseAlertMixin = _ColorLookComponentMixin(AXBaseComponent);\r\n\r\n/**\r\n * Regular description\r\n *\r\n * @category Components\r\n */\r\n@Component({\r\n selector: 'ax-alert',\r\n templateUrl: './alert.component.html',\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n inputs: [...COLOR_LOOK_INPUTS],\r\n encapsulation: ViewEncapsulation.None,\r\n})\r\nexport class AXAlertComponent extends AXBaseAlertMixin {\r\n\r\n\r\n @Input()\r\n icon: string;\r\n\r\n _onOptionChanged(option: AXComponentOptionChanged) {\r\n if (option.name == 'color') {\r\n switch (this.color) {\r\n case 'success':\r\n this.icon = 'ax-ic ax-ic-check-filled';\r\n break;\r\n case 'warning':\r\n this.icon = 'ax-ic-warning-filled';\r\n break;\r\n case 'danger':\r\n this.icon = 'ax-ic-error-filled';\r\n break;\r\n default:\r\n this.icon = 'ax-ic ax-ic-info-filled';\r\n break;\r\n }\r\n }\r\n }\r\n\r\n\r\n /**\r\n * @ignore\r\n */\r\n @HostBinding('class')\r\n get __hostClass(): string {\r\n // return ` ax-alert ax-none ax-${this.color}-default ax-${this.look}-default`;\r\n const _class = this.look ? `ax-${this.color}-${this.look}` : `ax-${this.color}-default`;\r\n return `ax-alert ax-none ${_class}`;\r\n }\r\n\r\n\r\n @Input()\r\n timeOut: number;\r\n\r\n #visible: boolean;\r\n\r\n /**\r\n * set the visibility of the Alert\r\n */\r\n @Input()\r\n public get visible(): boolean {\r\n return this.#visible;\r\n }\r\n public set visible(v: boolean) {\r\n if (this.#visible != v) {\r\n this.#visible = v;\r\n const host = this._getHostElement();\r\n if (v) {\r\n host.classList.remove('ax-state-hidden');\r\n host.classList.add('ax-state-visible');\r\n }\r\n else {\r\n host.classList.add('ax-state-hidden');\r\n host.classList.toggle('ax-state-visible');\r\n }\r\n }\r\n }\r\n\r\n\r\n /**\r\n * @ignore\r\n */\r\n constructor(\r\n elementRef: ElementRef,\r\n cdr: ChangeDetectorRef\r\n ) {\r\n super(elementRef, cdr);\r\n }\r\n\r\n onInit() {\r\n if (this.timeOut) {\r\n setTimeout(() => {\r\n this.dismiss()\r\n }, this.timeOut);\r\n }\r\n }\r\n\r\n onViewInit() {\r\n if (this.visible == undefined) {\r\n this.visible = true;\r\n }\r\n }\r\n\r\n /**\r\n * Remove the alert from the container\r\n */\r\n dismiss(): void {\r\n const host = this._getHostElement();\r\n this.visible = false;\r\n const func = () => {\r\n host.parentElement.removeChild(host);\r\n }\r\n host.addEventListener('transitionend', func);\r\n }\r\n\r\n\r\n /**\r\n * Hide the alert\r\n */\r\n hide(): void {\r\n this.visible = false;\r\n }\r\n\r\n /**\r\n * Show the alert\r\n */\r\n show() {\r\n this.visible = true;\r\n }\r\n}\r\n","<div class=\"ax-alert-icon\" *ngIf=\"icon\">\r\n <i class=\"{{icon}} fa-lg\"></i>\r\n</div>\r\n<div class=\"ax-alert-body\">\r\n <ng-content select=\"ax-alert-title\">\r\n </ng-content>\r\n <ng-content select=\"ax-alert-content\">\r\n </ng-content>\r\n <ng-content select=\"ax-alert-footer\">\r\n </ng-content>\r\n</div>\r\n<ng-content select=\"ax-alert-suffix\">\r\n</ng-content>","import { Component, ViewEncapsulation, ChangeDetectionStrategy, ElementRef, ChangeDetectorRef, Input, Attribute } from '@angular/core';\r\n\r\n@Component({\r\n selector: 'ax-alert-title',\r\n template: `\r\n <ng-content>\r\n </ng-content>\r\n `,\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n encapsulation: ViewEncapsulation.None,\r\n host: { class: 'ax-alert-title' }\r\n})\r\nexport class AXAlertTitleComponent {\r\n}\r\n","import { Component, ViewEncapsulation, ChangeDetectionStrategy, ElementRef, ChangeDetectorRef, Input, Attribute, HostListener } from '@angular/core';\r\nimport { AXBaseClickableMixin } from '../base';\r\nimport { BUTTON_OUTPUT } from '../base/mixin/button-mixin.class';\r\n\r\n@Component({\r\n selector: 'ax-alert-button',\r\n template: `\r\n {{text}}\r\n <ng-content select=\"ax-icon\"></ng-content>\r\n `,\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n encapsulation: ViewEncapsulation.None,\r\n outputs: [...BUTTON_OUTPUT],\r\n host: { class: 'ax-alert-button' }\r\n})\r\nexport class AXAlertButtonComponent extends AXBaseClickableMixin {\r\n\r\n @Input()\r\n text: string;\r\n\r\n @Input()\r\n icon: string;\r\n\r\n\r\n constructor(elementRef: ElementRef, cdr: ChangeDetectorRef) {\r\n super(elementRef, cdr)\r\n }\r\n\r\n @HostListener('click', ['$event'])\r\n _handleOnClick(e) {\r\n this._emitOnClickEvent(e);\r\n }\r\n\r\n @HostListener('focus', ['$event'])\r\n _handleOnFocus(e) {\r\n this._emitOnFocusEvent(e);\r\n }\r\n\r\n @HostListener('blur', ['$event'])\r\n _handleOnBlur(e) {\r\n this._emitOnBlurEvent(e);\r\n }\r\n\r\n\r\n}\r\n","import { Component, ViewEncapsulation, ChangeDetectionStrategy, ElementRef, ChangeDetectorRef, Input, Attribute } from '@angular/core';\r\n\r\n@Component({\r\n selector: 'ax-alert-content',\r\n template:\r\n `<ng-content>\r\n </ng-content>\r\n `,\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n encapsulation: ViewEncapsulation.None,\r\n host: { class: 'ax-alert-content' }\r\n})\r\nexport class AXAlertContentComponent {\r\n}\r\n","import { Component, ViewEncapsulation, ChangeDetectionStrategy } from '@angular/core';\r\n\r\n@Component({\r\n selector: 'ax-alert-suffix',\r\n template: `\r\n <div class=\"ax-alert-buttons\">\r\n <ng-content select=\"ax-alert-button\">\r\n </ng-content>\r\n </div>\r\n `,\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n encapsulation: ViewEncapsulation.None,\r\n host: { class: 'ax-alert-suffix' }\r\n})\r\nexport class AXAlertSuffixComponent {\r\n}\r\n","import { Component, ViewEncapsulation, ChangeDetectionStrategy } from '@angular/core';\r\n\r\n@Component({\r\n selector: 'ax-alert-footer',\r\n template: `\r\n <div class=\"ax-alert-buttons\">\r\n <ng-content select=\"ax-alert-button\">\r\n </ng-content>\r\n </div>\r\n `,\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n encapsulation: ViewEncapsulation.None,\r\n host: { class: 'ax-alert-footer' }\r\n})\r\nexport class AXAlertFooterComponent {\r\n}\r\n","import { Component, ViewEncapsulation, ChangeDetectionStrategy, ElementRef, ChangeDetectorRef, Input, HostBinding } from '@angular/core';\r\nimport { AXSizableComponentMixin } from '../base';\r\n\r\n@Component({\r\n selector: 'ax-icon',\r\n template: '<ng-content select=\"i,svg,img\"></ng-content>',\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n encapsulation: ViewEncapsulation.None,\r\n})\r\nexport class AXIconComponent extends AXSizableComponentMixin {\r\n\r\n @Input()\r\n icon: string;\r\n\r\n @HostBinding('class')\r\n private get __iconClass(): string {\r\n return `ax-ic ${this.icon}`;\r\n }\r\n\r\n constructor(\r\n elementRef: ElementRef,\r\n cdr: ChangeDetectorRef\r\n ) {\r\n super(elementRef, cdr);\r\n }\r\n\r\n}\r\n","import { NgModule } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\nimport { AXIconComponent } from './icon.component';\r\n\r\nconst COMPONENT = [AXIconComponent];\r\nconst MODULES = [CommonModule];\r\n\r\n@NgModule({\r\n declarations: [...COMPONENT],\r\n imports: [...MODULES],\r\n exports: [...COMPONENT],\r\n providers: [],\r\n})\r\nexport class AXIconModule { }\r\n","import { NgModule } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\nimport { AXAlertComponent } from './alert.component';\r\nimport { AXAlertContentComponent } from './alert-content.component';\r\nimport { AXAlertTitleComponent } from './alert-title.component';\r\nimport { AXAlertButtonComponent } from './alert-button.component';\r\nimport { AXAlertFooterComponent } from './alert-footer.component';\r\nimport { AXAlertSuffixComponent } from './alert-suffix.component';\r\nimport { AXIconModule } from '../icon';\r\n\r\nconst COMPONENT = [\r\n AXAlertComponent,\r\n AXAlertContentComponent,\r\n AXAlertTitleComponent,\r\n AXAlertButtonComponent,\r\n AXAlertFooterComponent,\r\n AXAlertSuffixComponent\r\n];\r\nconst MODULES = [CommonModule,AXIconModule];\r\n\r\n@NgModule({\r\n declarations: [...COMPONENT],\r\n imports: [...MODULES],\r\n exports: [...COMPONENT],\r\n providers: [],\r\n})\r\nexport class AXAlertModule { }\r\n","import { Component, ViewEncapsulation, ChangeDetectionStrategy, ElementRef, ChangeDetectorRef, Input } from '@angular/core';\r\nimport { AXSizableComponentMixin, BASE_INPUTS } from '../base';\r\nimport { SIZABLE_INPUTS } from '../base/mixin/sizable-mixin.class';\r\n\r\n@Component({\r\n selector: 'ax-avatar',\r\n templateUrl: './avatar.component.html',\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n encapsulation: ViewEncapsulation.None,\r\n inputs: [...BASE_INPUTS, ...SIZABLE_INPUTS],\r\n host: { class: 'ax-avatar' }\r\n})\r\nexport class AXAvatarComponent extends AXSizableComponentMixin {\r\n\r\n constructor(\r\n elementRef: ElementRef,\r\n cdr: ChangeDetectorRef\r\n ) {\r\n super(elementRef, cdr);\r\n }\r\n\r\n\r\n\r\n private _image: string;\r\n @Input()\r\n public get image(): string {\r\n return this._image;\r\n }\r\n public set image(v: string) {\r\n this._image = v;\r\n }\r\n\r\n\r\n private _title: string;\r\n @Input()\r\n public get title(): string {\r\n return this._title;\r\n }\r\n public set title(v: string) {\r\n this._title = v;\r\n }\r\n\r\n\r\n private _icon: string;\r\n @Input()\r\n public get icon(): string {\r\n return this._icon;\r\n }\r\n public set icon(v: string) {\r\n this._icon = v;\r\n }\r\n\r\n\r\n private _abbr: string;\r\n @Input()\r\n public get abbr(): string {\r\n return this._abbr;\r\n }\r\n public set abbr(v: string) {\r\n this._abbr = v;\r\n }\r\n\r\n\r\n}\r\n","\r\n<div>Hi ax-avatar</div>\r\n","import { NgModule } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\nimport { AXAvatarComponent } from './avatar.component';\r\n\r\nconst COMPONENT = [AXAvatarComponent];\r\nconst MODULES = [CommonModule];\r\n\r\n@NgModule({\r\n declarations: [...COMPONENT],\r\n imports: [...MODULES],\r\n exports: [...COMPONENT],\r\n providers: [],\r\n})\r\nexport class AXAvatarModule { }\r\n","import { Component, ViewEncapsulation, ChangeDetectionStrategy, ElementRef, ChangeDetectorRef, Input, HostBinding } from '@angular/core';\r\nimport { AXBaseComponent, AXBaseComponentMixin, AXStyleColorType } from '../base';\r\nimport { COLOR_LOOK_INPUTS, _ColorLookComponentMixin } from '../base/mixin/color-look-mixing.class';\r\n\r\nexport const AXBaseBadgeMixin = _ColorLookComponentMixin(AXBaseComponent);\r\n\r\n@Component({\r\n selector: 'ax-badge',\r\n templateUrl: './badge.component.html',\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n inputs: [...COLOR_LOOK_INPUTS],\r\n encapsulation: ViewEncapsulation.None,\r\n})\r\nexport class AXBadgeComponent extends AXBaseBadgeMixin {\r\n\r\n @Input() text: string = '';\r\n\r\n constructor(\r\n elementRef: ElementRef,\r\n cdr: ChangeDetectorRef\r\n ) {\r\n super(elementRef, cdr);\r\n //TODO: ax-badge\r\n }\r\n\r\n\r\n @HostBinding('class')\r\n private get __hostClass(): string {\r\n const _class = this.look ? `ax-${this.color}-${this.look}` : `ax-${this.color}-default`;\r\n\r\n return ['ax-badge', _class, !this.text ? 'ax-badge-icon' : ''].join(' ');\r\n }\r\n\r\n\r\n}\r\n","<ng-content select=\"ax-prefix\"></ng-content>\r\n<span class=\"ax-font-medium ax-truncate\">{{text}}</span>\r\n<ng-content select=\"ax-suffix\"></ng-content>","import { NgModule } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\nimport { AXBadgeComponent } from './badge.component';\r\n\r\nconst COMPONENT = [AXBadgeComponent];\r\nconst MODULES = [CommonModule];\r\n\r\n@NgModule({\r\n declarations: [...COMPONENT],\r\n imports: [...MODULES],\r\n exports: [...COMPONENT],\r\n providers: [],\r\n})\r\nexport class AXBadgeModule { }\r\n","import { ChangeDetectionStrategy, ChangeDetectorRef, Component, ElementRef, HostBinding, HostListener, Input, ViewEncapsulation } from '@angular/core';\r\nimport { BUTTON_INPUTS, BUTTON_OUTPUT } from '../base/mixin/button-mixin.class';\r\nimport { COLOR_LOOK_INPUTS } from '../base/mixin/color-look-mixing.class';\r\nimport { AXBaseButtonMixin } from '../base/mixin/mixin.class';\r\n\r\n/**\r\n * The Button is a component which detects user interaction and triggers a corresponding event\r\n *\r\n * @category Components\r\n */\r\n@Component({\r\n selector: 'ax-button',\r\n templateUrl: './button.component.html',\r\n inputs: ['disabled', 'tabIndex', 'size', ...COLOR_LOOK_INPUTS, ...BUTTON_INPUTS],\r\n outputs: [...BUTTON_OUTPUT],\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n encapsulation: ViewEncapsulation.None,\r\n host: { role: 'button' }\r\n})\r\nexport class AXButtonComponent extends AXBaseButtonMixin {\r\n\r\n /**\r\n * @ignore\r\n */\r\n constructor(elementRef: ElementRef, cdr: ChangeDetectorRef) {\r\n super(elementRef, cdr);\r\n }\r\n\r\n @HostListener('keyup', ['$event'])\r\n onKeydownHandler(e: KeyboardEvent) {\r\n if (e.code === 'Enter') {\r\n this._getHostElement().click();\r\n }\r\n }\r\n\r\n @HostListener('click', ['$event'])\r\n _emitOnClickEvent(e: MouseEvent) {\r\n if (this.disabled)\r\n return;\r\n if (this.toggleable) {\r\n this.selected = !this.selected;\r\n }\r\n super._emitOnClickEvent(e);\r\n }\r\n\r\n @HostListener('focus', ['$event'])\r\n _emitOnFocusEvent(e: MouseEvent) {\r\n super._emitOnFocusEvent(e);\r\n }\r\n\r\n\r\n @HostListener('blur', ['$event'])\r\n _emitOnBlurEvent(e: MouseEvent) {\r\n super._emitOnBlurEvent(e);\r\n }\r\n\r\n @HostBinding('class')\r\n private get __hostClass(): string {\r\n return Object.entries(this._classes).filter(c => c[1]).map(c => c[0]).join(' ');\r\n }\r\n}\r\n","<!-- <button [ngClass]=\"_classes\" class=\"{{cssClass}} ax-{{size}}\" [disabled]=\"disabled\" [tabindex]=\"tabIndex\" [attr.style]=\"cssStyle\" (click)=\"_emitOnClickEvent($event)\" (focus)=\"_emitOnFocusEvent($event)\" (blur)=\"_emitOnBlurEvent($event)\">\r\n <ng-content select=\"ax-prefix,ax-loading,ax-icon\">\r\n </ng-content>\r\n <span *ngIf=\"text\">{{text}}</span>\r\n <ng-content select=\"ax-suffix\">\r\n </ng-content>\r\n <ng-content select=\"ax-dropdown-panel\">\r\n </ng-content>\r\n</button> -->\r\n<!-- <button [ngClass]=\"_classes\" class=\"{{cssClass}} ax-{{size}}\" [disabled]=\"disabled\" [tabindex]=\"tabIndex\" [attr.style]=\"cssStyle\" (click)=\"_emitOnClickEvent($event)\" (focus)=\"_emitOnFocusEvent($event)\" (blur)=\"_emitOnBlurEvent($event)\"> -->\r\n<ng-content select=\"ax-prefix,ax-loading,ax-icon\">\r\n</ng-content>\r\n<span *ngIf=\"text\">{{text}}</span>\r\n<ng-content select=\"ax-suffix\">\r\n</ng-content>\r\n<ng-content select=\"ax-dropdown-panel\">\r\n</ng-content>\r\n<!-- </button> -->","import { ChangeDetectionStrategy, ChangeDetectorRef, Component, ContentChildren, ElementRef, EventEmitter, Input, NgZone, Output, QueryList, ViewChildren, ViewEncapsulation } from \"@angular/core\";\r\nimport { AXButtonComponent } from \"./button.component\";\r\nimport { AXClickEvent, AXInteractiveComponenetMixin, AXItemClickEvent, AXSelectionMode, AXSelectionValueChangedEvent, AXStyleButtonLook, AXStyleColorType } from \"../base\";\r\n\r\n@Component({\r\n selector: 'ax-button-group',\r\n templateUrl: 'button-group.component.html',\r\n inputs: ['cssClass', 'size', 'cssStyle', 'rtl', 'disabled'],\r\n encapsulation: ViewEncapsulation.None,\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n host: { class: 'ax-button-group', role: 'group' }\r\n})\r\nexport class AXButtonGroupComponent extends AXInteractiveComponenetMixin {\r\n\r\n \r\n @Output()\r\n selectionChange: EventEmitter<AXSelectionMode> = new EventEmitter();\r\n\r\n private _selection : AXSelectionMode;\r\n @Input()\r\n public get selection() : AXSelectionMode {\r\n return this._selection;\r\n }\r\n public set selection(value : AXSelectionMode) {\r\n value = this._onOptionChanging({ name: 'selection', value: value });\r\n const oldValue = this.selection;\r\n if (value != oldValue) {\r\n this._selection = value;\r\n this.selectionChange.emit(value);\r\n this.onOptionChanged({ name: 'selection', oldValue, newValue: value });\r\n }\r\n }\r\n \r\n\r\n @Output()\r\n colorChange: EventEmitter<AXStyleColorType> = new EventEmitter();\r\n private _color: AXStyleColorType = 'primary';\r\n /**\r\n * Predefined color schemes\r\n */\r\n @Input()\r\n get color(): AXStyleColorType {\r\n return this._color;\r\n }\r\n set color(value: AXStyleColorType) {\r\n value = this._onOptionChanging({ name: 'color', value: value });\r\n const oldValue = this.color;\r\n if (value != oldValue) {\r\n this._color = value;\r\n this.colorChange.emit(value);\r\n this.onOptionChanged({ name: 'value', oldValue, newValue: value });\r\n }\r\n }\r\n\r\n @Output()\r\n lookChange: EventEmitter<AXStyleButtonLook> = new EventEmitter();\r\n private _look?: AXStyleButtonLook = null;\r\n /**\r\n * Predefined look schemes\r\n */\r\n @Input()\r\n get look(): AXStyleButtonLook {\r\n return this._look;\r\n }\r\n set look(value: AXStyleButtonLook) {\r\n value = this._onOptionChanging({ name: 'look', value: value });\r\n const oldValue = this.look;\r\n if (value != oldValue) {\r\n this._look = value;\r\n this.lookChange.emit(value);\r\n this.onOptionChanged({ name: 'look', oldValue, newValue: value });\r\n }\r\n }\r\n\r\n @Output()\r\n onItemClick: EventEmitter<AXItemClickEvent<AXButtonComponent>> = new EventEmitter<AXItemClickEvent<AXButtonComponent>>();\r\n\r\n public onValueChanged: EventEmitter<AXSelectionValueChangedEvent> = new EventEmitter<AXSelectionValueChangedEvent>();\r\n\r\n\r\n @ContentChildren(AXButtonComponent, { descendants: true })\r\n _contentButtons: QueryList<AXButtonComponent>;\r\n\r\n\r\n constructor(\r\n elementRef: ElementRef,\r\n private zone: NgZone,\r\n cdr: ChangeDetectorRef) {\r\n super(elementRef, cdr)\r\n }\r\n\r\n\r\n ngAfterContentInit() {\r\n this._bindEvents();\r\n this._bindProps();\r\n }\r\n\r\n\r\n private _bindEvents() {\r\n (this._contentButtons || []).forEach(b => {\r\n b.onClick.subscribe(c => {\r\n this._handleClickEvent(c, b);\r\n });\r\n });\r\n }\r\n\r\n private _bindProps() {\r\n (this._contentButtons || []).forEach(b => {\r\n b.look = this.look;\r\n b.color = this.color;\r\n b.disabled = this.disabled;\r\n b.toggleable = false;\r\n });\r\n }\r\n\r\n onOptionChanged(options) {\r\n this._bindProps();\r\n }\r\n\r\n\r\n _handleClickEvent(e: AXClickEvent, button: AXButtonComponent) {\r\n if (this.selection == 'multiple') {\r\n button.selected = !button.selected;\r\n }\r\n else if (this.selection == 'single') {\r\n this._contentButtons.forEach(c => {\r\n c.selected = false;\r\n })\r\n button.selected = true;\r\n }\r\n else {\r\n button.selected = false;\r\n }\r\n \r\n this.onItemClick.emit({\r\n component: this,\r\n htmlElement: e.htmlElement,\r\n item : button\r\n });\r\n\r\n }\r\n}","<ng-content select=\"ax-button\">\r\n</ng-content>","import { ChangeDetectionStrategy, ChangeDetectorRef, Component, ElementRef, HostBinding, HostListener, Input, OnInit, ViewEncapsulation } from '@angular/core';\r\nimport { AXBaseComponent, AXStyleColorType } from '../base';\r\nimport { _ClickableComponenetMixin } from '../base/mixin/clickable-mixin.class';\r\nimport { _InteractiveComponenetMixin } from '../base/mixin/interactive-mixin.class';\r\n\r\n\r\nexport const AXBaseItemButtonMixin =\r\n _InteractiveComponenetMixin(\r\n _ClickableComponenetMixin(AXBaseComponent)\r\n );\r\n\r\n\r\n@Component({\r\n selector: 'ax-button-item',\r\n template: `\r\n <ng-content select=\"ax-prefix\">\r\n </ng-content>\r\n <ng-content select=\"ax-icon\">\r\n </ng-content>\r\n <span *ngIf=\"text\">{{text}}</span>\r\n <ng-content select=\"ax-suffix\">\r\n </ng-content>\r\n `,\r\n encapsulation: ViewEncapsulation.None,\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n})\r\n\r\nexport class AXButtonItemComponent extends AXBaseItemButtonMixin {\r\n\r\n\r\n /**\r\n * @ignore\r\n */\r\n constructor(elementRef: ElementRef, cdr: ChangeDetectorRef) {\r\n super(elementRef, cdr);\r\n }\r\n\r\n @Input()\r\n text: string = null;\r\n\r\n @Input()\r\n tooltip: string = null;\r\n\r\n\r\n @Input()\r\n selected: boolean = false;\r\n\r\n @Input()\r\n seperated: boolean = false;\r\n\r\n @Input()\r\n name: string;\r\n\r\n @Input()\r\n data: any;\r\n\r\n\r\n @Input()\r\n color: AXStyleColorType = 'light';\r\n\r\n\r\n @HostListener('click', ['$event'])\r\n private __hostClick(e: MouseEvent) {\r\n this._emitOnClickEvent(e);\r\n }\r\n\r\n @HostBinding('class')\r\n private get __hostClass(): string {\r\n const cssClasses = {\r\n 'ax-button-icon': !this.text,\r\n 'ax-state-disabled': this.disabled,\r\n 'ax-state-selected': this.selected,\r\n };\r\n cssClasses[`ax-${this.color || 'primary'}-default`] = true;\r\n return Object.entries(cssClasses).filter(c => c[1]).map(c => c[0]).join(' ');\r\n }\r\n}\r\n\r\n","import { Component, ViewEncapsulation, ChangeDetectionStrategy, ElementRef, ChangeDetectorRef } from '@angular/core';\r\nimport { AXBaseComponentMixin } from '../base';\r\n\r\n@Component({\r\n selector: 'ax-content',\r\n template: `\r\n <ng-content>\r\n </ng-content>\r\n `,\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n encapsulation: ViewEncapsulation.None,\r\n})\r\nexport class AXDecoratorContentComponent extends AXBaseComponentMixin {\r\n\r\n constructor(\r\n elementRef: ElementRef,\r\n cdr: ChangeDetectorRef\r\n ) {\r\n super(elementRef, cdr);\r\n }\r\n\r\n}\r\n","import { Component, ViewEncapsulation, ChangeDetectionStrategy, ElementRef, ChangeDetectorRef, Input } from '@angular/core';\r\nimport { AXBaseComponentMixin } from '../base';\r\n\r\n@Component({\r\n selector: 'ax-addon',\r\n template: `<ng-content></ng-content>`,\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n encapsulation: ViewEncapsulation.None\r\n})\r\nexport class AXDecoratorAddOnComponent extends AXBaseComponentMixin {\r\n constructor(\r\n _elementRef: ElementRef,\r\n _cdr: ChangeDetectorRef\r\n ) {\r\n super(_elementRef, _cdr);\r\n }\r\n\r\n}\r\n","import { Component, ViewEncapsulation, ChangeDetectionStrategy, ElementRef, ChangeDetectorRef } from '@angular/core';\r\nimport { AXBaseComponentMixin } from '../base';\r\n\r\n@Component({\r\n selector: 'ax-header',\r\n template: `\r\n <ng-content>\r\n </ng-content>\r\n `,\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n encapsulation: ViewEncapsulation.None,\r\n})\r\nexport class AXDecoratorHeaderComponent extends AXBaseComponentMixin {\r\n\r\n constructor(\r\n elementRef: ElementRef,\r\n cdr: ChangeDetectorRef\r\n ) {\r\n super(elementRef, cdr);\r\n }\r\n\r\n}\r\n","import { Component, ViewEncapsulation, ChangeDetectionStrategy, ElementRef, ChangeDetectorRef } from '@angular/core';\r\nimport { AXBaseComponentMixin } from '../base';\r\n\r\n@Component({\r\n selector: 'ax-prefix',\r\n template: `\r\n <ng-content select=\"ax-button,ax-loading,ax-icon,ax-content,ax-badge,ax-addon\">\r\n </ng-content>\r\n `,\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n encapsulation: ViewEncapsulation.None\r\n})\r\nexport class AXDecoratorPrefixComponent extends AXBaseComponentMixin {\r\n\r\n constructor(\r\n elementRef: ElementRef,\r\n cdr: ChangeDetectorRef\r\n ) {\r\n super(elementRef, cdr);\r\n }\r\n\r\n}\r\n","import { Component, ViewEncapsulation, ChangeDetectionStrategy, ElementRef, ChangeDetectorRef } from '@angular/core';\r\nimport { AXBaseComponentMixin } from '../base';\r\n\r\n@Component({\r\n selector: 'ax-suffix',\r\n template: `\r\n <ng-content select=\"ax-button,ax-loading,ax-icon,ax-content,ax-badge,ax-addon\">\r\n </ng-content>\r\n `,\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n encapsulation: ViewEncapsulation.None\r\n})\r\nexport class AXDecoratorSuffixComponent extends AXBaseComponentMixin {\r\n\r\n constructor(\r\n elementRef: ElementRef,\r\n cdr: ChangeDetectorRef\r\n ) {\r\n super(elementRef, cdr);\r\n }\r\n\r\n}\r\n","import { NgModule } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\nimport { AXDecoratorPrefixComponent } from './prefix.component';\r\nimport { AXDecoratorSuffixComponent } from './suffix.component';\r\nimport { AXDecoratorContentComponent } from './content.component';\r\nimport { AXDecoratorHeaderComponent } from './header.component';\r\nimport { AXDecoratorAddOnComponent } from './addon.component';\r\n\r\nconst COMPONENT = [AXDecoratorPrefixComponent, AXDecoratorSuffixComponent, AXDecoratorContentComponent, AXDecoratorHeaderComponent, AXDecoratorAddOnComponent];\r\nconst MODULES = [CommonModule];\r\n\r\n@NgModule({\r\n declarations: [...COMPONENT],\r\n imports: [...MODULES],\r\n exports: [...COMPONENT],\r\n providers: [],\r\n})\r\nexport class AXEditorDecoratorModule { }\r\n","import { CommonModule } from '@angular/common';\r\nimport { NgModule } from '@angular/core';\r\nimport { AXEditorDecoratorModule } from '../decorators';\r\nimport { AXIconModule } from '../icon';\r\nimport { AXButtonGroupComponent } from './button-group.component';\r\nimport { AXButtonItemComponent } from './button-item.component';\r\nimport { AXButtonComponent } from './button.component';\r\n\r\n\r\nconst COMPONENT = [\r\n AXButtonComponent,\r\n AXButtonItemComponent,\r\n AXButtonGroupComponent,\r\n];\r\nconst MODULES = [CommonModule,AXIconModule,AXEditorDecoratorModule];\r\n\r\n@NgModule({\r\n imports: [MODULES],\r\n exports: [COMPONENT],\r\n declarations: [COMPONENT],\r\n providers: [],\r\n})\r\nexport class AXButtonModule { }\r\n","import { ChangeDetectorRef, ElementRef, EventEmitter, Injectable, Input, Output } from \"@angular/core\";\r\nimport { AXBaseComponent } from \"../base\";\r\n\r\nexport type AXCalendarViewType = 'years' | 'months' | 'days';\r\nexport type AXCalendarViewDepth = AXCalendarViewType;\r\nexport type AXCalendarDisabledDates = Date[] | ((date: Date) => boolean);\r\nexport type AXCalendarHolidayDates = Date[] | ((date: Date) => boolean);\r\n\r\n@Injectable()\r\nexport class AXCalendarBaseComponent extends AXBaseComponent {\r\n\r\n\r\n constructor(elementRef: ElementRef, cdr: ChangeDetectorRef) {\r\n super(elementRef, cdr);\r\n }\r\n\r\n @Output()\r\n activeViewChange: EventEmitter<AXCalendarViewType> = new EventEmitter<AXCalendarViewType>();\r\n\r\n private _activeView: AXCalendarViewType = 'days';\r\n @Input()\r\n public get activeView(): AXCalendarViewType {\r\n return this._activeView;\r\n }\r\n public set activeView(v: AXCalendarViewType) {\r\n this._setOption({ name: 'activeView', value: v });\r\n }\r\n\r\n\r\n\r\n @Output()\r\n depthChange: EventEmitter<AXCalendarViewDepth> = new EventEmitter<AXCalendarViewDepth>();\r\n\r\n private _depth: AXCalendarViewDepth = 'days';\r\n @Input()\r\n public get depth(): AXCalendarViewDepth {\r\n return this._depth;\r\n }\r\n public set depth(v: AXCalendarViewDepth) {\r\n this._setOption({\r\n name: 'depth', \r\n value: v, \r\n beforeCallback: () => {\r\n this._activeView = v;\r\n }\r\n });\r\n }\r\n\r\n @Output()\r\n minChange: EventEmitter<Date> = new EventEmitter<Date>();\r\n\r\n private _min: Date;\r\n @Input()\r\n public get min(): Date {\r\n return this._min;\r\n }\r\n public set min(v: Date) {\r\n this._setOption({ name: 'min', value: v });\r\n }\r\n\r\n\r\n @Output()\r\n maxChange: EventEmitter<Date> = new EventEmitter<Date>();\r\n\r\n private _max: Date;\r\n @Input()\r\n public get max(): Date {\r\n return this._max;\r\n }\r\n public set max(v: Date) {\r\n this._setOption({ name: 'max', value: v });\r\n }\r\n\r\n @Output()\r\n disabledDatesChange: EventEmitter<AXCalendarDisabledDates> = new EventEmitter<AXCalendarDisabledDates>();\r\n\r\n private _disabledDates: AXCalendarDisabledDates;\r\n @Input()\r\n public get disabledDates(): AXCalendarDisabledDates {\r\n return this._disabledDates;\r\n }\r\n public set disabledDates(v: AXCalendarDisabledDates) {\r\n this._setOption({ name: 'disabledDates', value: v });\r\n }\r\n\r\n @Output()\r\n holidayDatesChange: EventEmitter<AXCalendarHolidayDates> = new EventEmitter<AXCalendarHolidayDates>();\r\n\r\n private _holidayDates: AXCalendarHolidayDates;\r\n @Input()\r\n public get holidayDates(): AXCalendarHolidayDates {\r\n return this._holidayDates;\r\n }\r\n public set holidayDates(v: AXCalendarHolidayDates) {\r\n this._setOption({ name: 'holidayDates', value: v });\r\n }\r\n}\r\n\r\n\r\n\r\nexport const CALENDAR_INPUTS = [\r\n 'depth',\r\n 'activeView',\r\n 'min',\r\n 'max',\r\n 'disabledDates',\r\n 'holidayDates',\r\n];\r\nexport const CALENDAR_OUTPUTS = ['depthChange'];\r\n","import { AXConfig, AXDateTime, AXDateTimeRange } from '@acorex/core';\r\nimport {\r\n Component,\r\n ViewEncapsulation,\r\n ChangeDetectionStrategy,\r\n ElementRef,\r\n ChangeDetectorRef,\r\n HostBinding,\r\n Input,\r\n Output,\r\n EventEmitter,\r\n} from '@angular/core';\r\nimport { AXClickEvent, AXComponentOptionChanged, AXItemClickEvent } from '../base';\r\nimport { _ClickableComponenetMixin } from '../base/mixin/clickable-mixin.class';\r\nimport { INTERACTIVE_INPUTS, INTERACTIVE_OUTPUT, _InteractiveComponenetMixin } from '../base/mixin/interactive-mixin.class';\r\nimport { VALUE_INPUTS, VALUE_OUTPUT, _ValueComponenetMixin } from '../base/mixin/value-mixin.class';\r\nimport { AXCalendarBaseComponent, CALENDAR_INPUTS, CALENDAR_OUTPUTS } from './calendar.class';\r\n\r\n\r\nexport const AXCalendarComponentMixin = _ClickableComponenetMixin(\r\n _InteractiveComponenetMixin(_ValueComponenetMixin<any>(AXCalendarBaseComponent))\r\n);\r\n\r\n\r\n@Component({\r\n selector: 'ax-calendar',\r\n templateUrl: './calendar.component.html',\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n inputs: [...VALUE_INPUTS, ...INTERACTIVE_INPUTS, ...CALENDAR_INPUTS],\r\n outputs: [...VALUE_OUTPUT, ...INTERACTIVE_OUTPUT, ...CALENDAR_OUTPUTS],\r\n encapsulation: ViewEncapsulation.None,\r\n})\r\nexport class AXCalendarComponent extends AXCalendarComponentMixin {\r\n\r\n private get _viewRange(): AXDateTimeRange {\r\n const current = this._viewStartDate || this._today;\r\n switch (this.activeView) {\r\n case 'years':\r\n let y = current.startOf('year').year;\r\n let min = y - (y % 10) - 1;\r\n let max = min + 11;\r\n return new AXDateTimeRange(\r\n AXDateTime.from({ year: min, month: 1, date: 1, calendar: this._viewStartDate.calendar.name() }),\r\n AXDateTime.from({ year: max, month: 12, date: 28, calendar: this._viewStartDate.calendar.name() }),\r\n );\r\n case 'months':\r\n return new AXDateTimeRange(current.startOf('year'), current.endOf('year').add('day', -1));\r\n default:\r\n //return new AXDateTimeRange(current.startOf('month').startOf('week'), current.endOf('month').endOf('week'));\r\n return new AXDateTimeRange(current.startOf('month'), current.endOf('month'));\r\n }\r\n }\r\n\r\n\r\n private _type: string = AXConfig.get(`dateTime.calendar`);\r\n\r\n @Input()\r\n public get type(): string {\r\n return this._type || AXConfig.get(`dateTime.calendar`);\r\n }\r\n public set type(v: string) {\r\n this._type = v;\r\n this._today = new AXDateTime(new Date(), this._type);\r\n }\r\n\r\n\r\n _today = new AXDateTime(new Date(), this.type);\r\n private _viewStartDate: AXDateTime;\r\n\r\n _navText: string = '';\r\n _todayText: string = '';\r\n\r\n _slots: any[] = [];\r\n _dayNames: string[] = [];\r\n\r\n\r\n\r\n @Output()\r\n onSlotClick: EventEmitter<AXItemClickEvent<Date>> = new EventEmitter<AXItemClickEvent<Date>>();\r\n\r\n constructor(elementRef: ElementRef, private cdr: ChangeDetectorRef) {\r\n super(elementRef, cdr);\r\n }\r\n\r\n onInit() {\r\n this._today = new AXDateTime(new Date(), this.type);\r\n this._dayNames = this._today.calendar.dayShortNames;\r\n this.goToday();\r\n }\r\n\r\n private _genearteSlots() {\r\n if (!this._viewStartDate)\r\n return;\r\n debugger;\r\n const vr = this._viewRange;\r\n // just for tailwind\r\n //'ax-col-start-1','ax-col-start-2','ax-col-start-3','ax-col-start-4','ax-col-start-5','ax-col-start-6','ax-col-start-7'\r\n // year view\r\n if (this.activeView == 'years') {\r\n const a = vr.enumurate('year');\r\n this._slots = a.map((d, i) => {\r\n const r: any = {};\r\n r.date = d.date;\r\n r.text = d.format('YYYY');\r\n r.disabled = (this.min && d.compare(this.min, 'year') == -1) || (this.max && d.compare(this.max, 'year') == 1);\r\n if (r.disabled) {\r\n r.cssClass = {\r\n 'ax-state-disabled': r.disabled,\r\n }\r\n }\r\n else {\r\n r.cssClass = {\r\n 'ax-state-today': d.equal(this._today, 'year'),\r\n 'ax-state-selected': this.value && this.depth == 'years' && d.equal(this.value, 'year'),\r\n }\r\n }\r\n // r.cssClass[`ax-col-start-2`] = i == 0;\r\n return r;\r\n });\r\n\r\n this._navText = `${vr.startTime.year} - ${vr.endTime.year}`;\r\n this._todayText = this._today.format('YYYY');\r\n }\r\n // month view\r\n else if (this.activeView == 'months') {\r\n const a = vr.enumurate('month');\r\n this._slots = a.map((d, i) => {\r\n const r: any = {};\r\n r.date = d.date;\r\n r.text = d.format('MMM');\r\n r.tooltip = d.format('MMMM YYYY');\r\n r.disabled = (this.min && d.compare(this.min, 'month') == -1) || (this.max && d.compare(this.max, 'month') == 1);\r\n if (r.disabled) {\r\n r.cssClass = {\r\n 'ax-state-disabled': r.disabled,\r\n }\r\n }\r\n else {\r\n r.cssClass = {\r\n 'ax-state-today': d.equal(this._today, 'month'),\r\n 'ax-state-selected': this.value && this.depth == 'months' && d.equal(this.value, 'month'),\r\n 'ax-state-other': d.year != this._viewStartDate.year\r\n }\r\n }\r\n return r;\r\n });\r\n this._navText = this._viewStartDate.format('YYYY');\r\n this._todayText = this._today.format('MMMM YYYY');\r\n }\r\n // day view\r\n else {\r\n const a = vr.enumurate('day');\r\n this._slots = a.map((d, i) => {\r\n const r: any = {};\r\n r.date = d.date;\r\n r.text = d.dayOfMonth;\r\n r.tooltip = d.format();\r\n r.disabled = (this.min && d.compare(this.min, 'day') == -1) || (this.max && d.compare(this.max, 'day') == 1);\r\n if (r.disabled || this.isDisabled(d)) {\r\n r.cssClass = {\r\n 'ax-state-disabled': true,\r\n }\r\n }\r\n else {\r\n r.cssClass = {\r\n 'ax-state-today': d.equal(this._today, 'day'),\r\n 'ax-state-selected': this.value && d.equal(this.value, 'day'),\r\n 'ax-state-holiday': this.isHoliday(d) || this.isWeekend(d),\r\n // 'ax-state-event-info': d.dayOfMonth == 12,\r\n // 'ax-state-event': d.dayOfMonth == 12,\r\n }\r\n }\r\n\r\n r.cssClass[`ax-col-start-${vr.startTime.dayOfWeek}`] = i == 0\r\n return r;\r\n });\r\n this._navText = this._viewStartDate.format('MMMM YYYY');\r\n this._todayText = this._today.format();\r\n }\r\n }\r\n\r\n\r\n _handlePrevClick(e: AXClickEvent) {\r\n this.prev();\r\n }\r\n\r\n _handleNextClick(e: AXClickEvent) {\r\n this.next();\r\n }\r\n\r\n _handleSlotClick(e: MouseEvent, slot) {\r\n if (slot.disabled || this.disabled)\r\n return;\r\n if (this.activeView == 'days') {\r\n this.value = slot.date;\r\n }\r\n else if (this.activeView == 'months' && this.depth == 'days') {\r\n this.activeView = 'days';\r\n this.navTo(slot.date);\r\n }\r\n else if (this.activeView == 'months' && this.depth == 'months') {\r\n this.value = slot.date;\r\n }\r\n else if (this.activeView == 'years' && (this.depth == 'days' || this.depth == 'months')) {\r\n this.activeView = 'months';\r\n this.navTo(slot.date);\r\n }\r\n else if (this.activeView == 'years' && this.depth == 'years') {\r\n this.value = slot.date;\r\n }\r\n this.onSlotClick.emit({\r\n component: this,\r\n item: slot.date,\r\n nativeEvent: e\r\n })\r\n }\r\n\r\n _handleNavClick(e: AXClickEvent) {\r\n if (this.activeView == 'days')\r\n this.activeView = 'months';\r\n else if (this.activeView == 'months')\r\n this.activeView = 'years';\r\n }\r\n\r\n _onOptionChanged(option: AXComponentOptionChanged) {\r\n if (option.name == 'depth' || option.name == 'activeView') {\r\n this._genearteSlots();\r\n }\r\n }\r\n\r\n _onValueChanged(oldValue, newValue) {\r\n this._viewStartDate = new AXDateTime(newValue, this.type);\r\n this._genearteSlots();\r\n }\r\n\r\n _handleGoToday() {\r\n this.value = this._today.date;\r\n this.goToday();\r\n }\r\n\r\n next() {\r\n this._navNextPrev(false)\r\n }\r\n\r\n prev() {\r\n this._navNextPrev(true)\r\n }\r\n\r\n focus() {\r\n (this._getHostElement() as HTMLDivElement).querySelector<HTMLDivElement>('.ax-calendar-slots>div')?.focus();\r\n }\r\n\r\n private _navNextPrev(prev: boolean) {\r\n debugger;\r\n const sign = (prev ? -1 : 1);\r\n if (this.activeView == 'days')\r\n this.navTo(this._viewStartDate.add('month', sign * 1));\r\n else if (this.activeView == 'months')\r\n this.navTo(this._viewStartDate.add('year', sign * 1));\r\n else\r\n this.navTo(this._viewStartDate.add('year', sign * 10));\r\n }\r\n\r\n goToday() {\r\n this.navTo(this._today.startOf());\r\n }\r\n\r\n\r\n navTo(date: Date | AXDateTime) {\r\n this._viewStartDate = AXDateTime.convert(date, this._today.calendar.name());\r\n this._genearteSlots();\r\n }\r\n\r\n\r\n @HostBinding('class')\r\n private get __hostClass(): string {\r\n const _classes = {\r\n 'ax-state-disabled': this.disabled\r\n }\r\n return Object.entries(_classes).filter(c => c[1]).map(c => c[0]).join(' ');\r\n }\r\n\r\n\r\n private isDisabled(date: AXDateTime): boolean {\r\n if (Array.isArray(this.disabledDates) && this.disabledDates.length != 0) {\r\n ;\r\n return this.disabledDates.some(d => date.equal(d, 'day'));\r\n }\r\n else if (typeof this.disabledDates == 'function') {\r\n return this.disabledDates(date.date);\r\n }\r\n return false;\r\n }\r\n\r\n private isHoliday(date: AXDateTime): boolean {\r\n if (Array.isArray(this.holidayDates) && this.holidayDates.length != 0) {\r\n return this.holidayDates.some(d => date.equal(d, 'day'));\r\n }\r\n else if (typeof this.holidayDates == 'function') {\r\n return this.holidayDates(date.date);\r\n }\r\n return false;\r\n }\r\n\r\n private isWeekend(date: AXDateTime): boolean {\r\n return date.dayOfWeek == 7 || date.dayOfWeek == 1;\r\n }\r\n\r\n}\r\n","<div class=\"ax-calendar-header\">\r\n <ax-button class=\"ax-nav-button\" [text]=\"_navText\" color=\"light\" look=\"blank\" (onClick)=\"_handleNavClick($event)\" [disabled]=\"disabled\">\r\n </ax-button>\r\n <ax-button class=\"ax-prev-button\" color=\"light\" look=\"blank\" (onClick)=\"_handlePrevClick($event)\" [disabled]=\"disabled\">\r\n <ax-prefix>\r\n <ax-icon icon=\"ax-ic ax-ic-chevron ax-transform ax-rotate-90\"></ax-icon>\r\n </ax-prefix>\r\n </ax-button>\r\n <ax-button class=\"ax-next-button\" color=\"light\" look=\"blank\" (onClick)=\"_handleNextClick($event)\" [disabled]=\"disabled\">\r\n <ax-prefix>\r\n <ax-icon icon=\"ax-ic ax-ic-chevron ax-transform ax--rotate-90\"></ax-icon>\r\n </ax-prefix>\r\n </ax-button>\r\n</div>\r\n<div class=\"ax-calendar-body\">\r\n <div [ngSwitch]=\"activeView\">\r\n <ng-container *ngSwitchCase=\"'years'\">\r\n <div class=\"ax-calendar-slots ax-calendar-slots-year\">\r\n <div tabindex=\"0\" *ngFor=\"let slot of _slots\" [ngClass]=\"slot.cssClass\" \r\n (click)=\"_handleSlotClick($event,slot)\">{{slot.text}}</div>\r\n </div>\r\n </ng-container>\r\n <ng-container *ngSwitchCase=\"'months'\">\r\n <div class=\"ax-calendar-slots ax-calendar-slots-month\">\r\n <div tabindex=\"0\" *ngFor=\"let slot of _slots\" [title]=\"slot.tooltip\" [ngClass]=\"slot.cssClass\" \r\n (click)=\"_handleSlotClick($event,slot)\">{{slot.text}}</div>\r\n </div>\r\n </ng-container>\r\n <ng-container *ngSwitchDefault>\r\n <div class=\"ax-calendar-week\">\r\n <div *ngFor=\"let d of _dayNames\">{{d}}</div>\r\n </div>\r\n <div class=\"ax-calendar-slots ax-calendar-slots-day\">\r\n <div tabindex=\"0\" *ngFor=\"let slot of _slots\" [title]=\"slot.tooltip\" [ngClass]=\"slot.cssClass\"\r\n (click)=\"_handleSlotClick($event,slot)\">{{slot.text}}</div>\r\n </div>\r\n </ng-container>\r\n </div>\r\n\r\n</div>\r\n<div class=\"ax-calendar-footer\">\r\n <ax-button class=\"dark:ax-text-danger\" [text]=\"_todayText\" color=\"dark\" look=\"blank\" size=\"sm\" (onClick)=\"_handleGoToday()\" [disabled]=\"disabled\"></ax-button>\r\n</div>","import { NgModule } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\nimport { AXCalendarComponent } from './calendar.component';\r\nimport { AXButtonModule } from '../button';\r\nimport { AXEditorDecoratorModule } from '../decorators';\r\nimport { AXIconModule } from '../icon';\r\nimport { BrowserModule } from '@angular/platform-browser';\r\nimport { AXDateTimeModule } from '@acorex/core';\r\n\r\nconst COMPONENT = [AXCalendarComponent];\r\nconst MODULES = [CommonModule, AXButtonModule, AXIconModule, AXEditorDecoratorModule, AXDateTimeModule];\r\n\r\n@NgModule({\r\n declarations: [...COMPONENT],\r\n imports: [...MODULES],\r\n exports: [...COMPONENT],\r\n providers: [],\r\n})\r\nexport class AXCalendarModule { }\r\n","import { EventEmitter, Injectable } from \"@angular/core\";\r\nimport { AXValueChangedEvent } from \"../base\";\r\n\r\n\r\n@Injectable()\r\nexport abstract class AXCarouselCore {\r\n abstract next(): void;\r\n abstract last(): void;\r\n abstract prev(): void;\r\n abstract first(): void;\r\n abstract destroy(): void;\r\n abstract goToSlide(index: number): void;\r\n abstract goToPage(index: number): void;\r\n abstract mount(instance: AXCarousel): void;\r\n abstract rebuild(): void;\r\n}\r\n\r\n\r\n\r\nexport interface AXCarousel {\r\n\r\n onSlideChanged: EventEmitter<AXValueChangedEvent<number>>;\r\n onOptionsChanged: EventEmitter<void>;\r\n //\r\n pageSizeChange: EventEmitter<number>\r\n pageSize: number;\r\n //\r\n gap: number;\r\n //\r\n autoplayChange: EventEmitter<boolean>;\r\n autoplay: boolean;\r\n //\r\n intervalChange: EventEmitter<number>\r\n interval: number;\r\n //\r\n centeredChange: EventEmitter<boolean>\r\n centered: boolean;\r\n //\r\n verticalChange: EventEmitter<boolean>\r\n vertical: boolean;\r\n //\r\n paddingChange: EventEmitter<string | number>\r\n padding: string | number;\r\n //\r\n loopChange: EventEmitter<boolean>\r\n loop: boolean;\r\n //\r\n rewindChange: EventEmitter<boolean>\r\n rewind: boolean;\r\n //\r\n visibleIndex: number;\r\n //\r\n onItemsChanged: EventEmitter<AXValueChangedEvent<HTMLDivElement[]>>\r\n items: HTMLDivElement[];\r\n\r\n rtl: boolean;\r\n\r\n next(): void;\r\n last(): void;\r\n prev(): void;\r\n first(): void;\r\n goToSlide(index: number): void;\r\n goToPage(index: number): void;\r\n\r\n host: HTMLDivElement;\r\n}\r\n\r\n","import { AXCarousel, AXCarouselCore } from \"./carousel.class\";\r\nimport { Splide as SS, SplideOptions } from '@splidejs/splide'\r\n\r\ndeclare var Splide: any;\r\n\r\nexport class AXCarouselSplideJS implements AXCarouselCore {\r\n constructor() {\r\n\r\n }\r\n\r\n _ref: SS;\r\n _instance: AXCarousel;\r\n\r\n mount(instance: AXCarousel): void {\r\n this._instance = instance;\r\n this._instance.host.classList.add('splide');\r\n this._instance.host.querySelector('.ax-carousel-list-container').classList.add('splide__track');\r\n const listElement = this._instance.host.querySelector('.ax-carousel-list');\r\n listElement.classList.add('splide__list');\r\n //\r\n this.rebuild();\r\n this._instance.onItemsChanged.subscribe(items => {\r\n items.value.forEach(i => i.classList.add('splide__slide'));\r\n this._ref.refresh();\r\n });\r\n this._instance.items = Array.from(listElement.querySelectorAll<HTMLDivElement>('ax-carousel-item'));\r\n this._instance.onOptionsChanged.subscribe(() => {\r\n this.rebuild();\r\n });\r\n }\r\n\r\n private _emitOnSlideChanged(i: number) {\r\n const oldValue = this._instance.visibleIndex;\r\n this._instance.visibleIndex = i;\r\n this._instance.onSlideChanged.emit({\r\n component: this,\r\n htmlElement: this._instance.host,\r\n value: this._instance.visibleIndex,\r\n oldValue\r\n });\r\n }\r\n\r\n\r\n private _getConfig(): SplideOptions {\r\n return {\r\n autoplay: this._instance.autoplay,\r\n type: this._instance.loop && !this._instance.rewind ? 'loop' : 'slide',\r\n rewind: this._instance.rewind,\r\n gap: this._instance.gap,\r\n perPage: this._instance.pageSize,\r\n perMove: 1,\r\n start: this._instance.visibleIndex,\r\n interval: this._instance.interval,\r\n direction: this._instance.vertical ? 'ttb' : (this._instance.rtl ? 'rtl' : 'ltr'),\r\n arrows: false,\r\n pagination: false,\r\n padding: this._instance.padding,\r\n autoWidth: true,\r\n focus: this._instance.centered ? 'center' : false,\r\n }\r\n }\r\n\r\n\r\n\r\n next(): void {\r\n this._ref.go('+');\r\n }\r\n\r\n last(): void {\r\n this._ref.go(this._ref.length - 1);\r\n }\r\n\r\n prev(): void {\r\n this._ref.go('-');\r\n }\r\n\r\n first(): void {\r\n this._ref.go(0);\r\n }\r\n\r\n goToSlide(index: number): void {\r\n this._ref.go(index);\r\n }\r\n\r\n goToPage(index: number): void {\r\n this._ref.go(`>${index}`);\r\n }\r\n\r\n destroy() {\r\n this._ref.destroy();\r\n }\r\n\r\n rebuild() {\r\n if (this._ref) {\r\n this._ref.off('move');\r\n this._ref.destroy();\r\n }\r\n //\r\n this._ref = new Splide(this._instance.host, this._getConfig());\r\n this._ref.mount();\r\n this._ref.on('move', this._emitOnSlideChanged.bind(this));\r\n this._emitOnSlideChanged(this._instance.visibleIndex);\r\n }\r\n}","import { Component, ViewEncapsulation, ChangeDetectionStrategy, ElementRef, ChangeDetectorRef, ContentChildren, QueryList, Input, NgZone, Output, EventEmitter, ViewChild, ContentChild } from '@angular/core';\r\nimport { AXBaseComponentMixin, AXValueChangedEvent } from '../base';\r\nimport { coerceBooleanProperty, coerceCssPixelValue, coerceNumberProperty } from '@angular/cdk/coercion';\r\nimport { AXCarousel, AXCarouselCore } from './carousel.class';\r\nimport { AXCarouselSplideJS } from './carousel-splidejs.class';\r\n\r\n@Component({\r\n selector: 'ax-carousel',\r\n templateUrl: './carousel.component.html',\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n encapsulation: ViewEncapsulation.None,\r\n host: { class: 'ax-carousel' },\r\n providers:[{\r\n provide: AXCarouselCore,\r\n useClass: AXCarouselSplideJS\r\n }]\r\n})\r\nexport class AXCarouselComponent extends AXBaseComponentMixin implements AXCarousel {\r\n\r\n\r\n constructor(\r\n elementRef: ElementRef,\r\n private zone: NgZone,\r\n cdr: ChangeDetectorRef,\r\n private core: AXCarouselCore,\r\n ) {\r\n super(elementRef, cdr);\r\n }\r\n\r\n\r\n @Output()\r\n onOptionsChanged: EventEmitter<void> = new EventEmitter<void>();\r\n\r\n @Output()\r\n public onSlideChanged: EventEmitter<AXValueChangedEvent<number>> = new EventEmitter<AXValueChangedEvent<number>>();\r\n\r\n @Output()\r\n public pageSizeChange: EventEmitter<number> = new EventEmitter<number>();\r\n\r\n private _pageSize: number = 1\r\n @Input()\r\n public get pageSize(): number {\r\n return this._pageSize;\r\n }\r\n public set pageSize(v: number) {\r\n const val = Math.max(1, coerceNumberProperty(v));\r\n if (val != this._pageSize) {\r\n this._pageSize = val;\r\n if (this._pageSize > 1) {\r\n this._vertical = false;\r\n }\r\n this.pageSizeChange.emit(this.pageSize);\r\n this.onOptionsChanged.emit();\r\n }\r\n }\r\n\r\n\r\n\r\n @Input()\r\n gap: number = 10;\r\n\r\n\r\n @Output()\r\n public autoplayChange: EventEmitter<boolean> = new EventEmitter<boolean>();\r\n\r\n private _autoplay: boolean = false;\r\n @Input()\r\n public get autoplay(): boolean {\r\n return this._autoplay;\r\n }\r\n public set autoplay(v: boolean) {\r\n const val = coerceBooleanProperty(v);\r\n if (val != this._autoplay) {\r\n this._autoplay = val;\r\n this.autoplayChange.emit(this.autoplay);\r\n this.onOptionsChanged.emit();\r\n }\r\n }\r\n\r\n @Output()\r\n public intervalChange: EventEmitter<number> = new EventEmitter<number>();\r\n\r\n private _interval: number = 3000\r\n @Input()\r\n public get interval(): number {\r\n return this._interval;\r\n }\r\n public set interval(v: number) {\r\n const val = coerceNumberProperty(v);\r\n if (val != this._interval) {\r\n this.intervalChange.emit(val);\r\n this.onOptionsChanged.emit();\r\n }\r\n }\r\n\r\n\r\n\r\n @Output()\r\n public paddingChange: EventEmitter<number | string> = new EventEmitter<number | string>();\r\n\r\n private _padding: number | string = 0\r\n @Input()\r\n public get padding(): number | string {\r\n return this._padding;\r\n }\r\n public set padding(v: number | string) {\r\n if (v != this._padding) {\r\n this._padding=v;\r\n this.paddingChange.emit(v);\r\n this.onOptionsChanged.emit();\r\n }\r\n }\r\n\r\n\r\n\r\n @Output()\r\n public centeredChange: EventEmitter<boolean> = new EventEmitter<boolean>();\r\n\r\n private _centered: boolean = false;\r\n @Input()\r\n public get centered(): boolean {\r\n return this._centered;\r\n }\r\n public set centered(v: boolean) {\r\n const val = coerceBooleanProperty(v);\r\n if (val != this._centered) {\r\n this._centered = val;\r\n if (this._centered) {\r\n this._rewind = false;\r\n }\r\n this.centeredChange.emit(this.centered);\r\n this.rewindChange.emit(this.rewind);\r\n this.onOptionsChanged.emit();\r\n }\r\n }\r\n\r\n @Output()\r\n public verticalChange: EventEmitter<boolean> = new EventEmitter<boolean>();\r\n\r\n private _vertical: boolean = false;\r\n @Input()\r\n public get vertical(): boolean {\r\n return this._vertical;\r\n }\r\n public set vertical(v: boolean) {\r\n const val = coerceBooleanProperty(v);\r\n if (val != this._vertical) {\r\n this._vertical = val;\r\n this.verticalChange.emit(this.vertical);\r\n this.onOptionsChanged.emit();\r\n }\r\n }\r\n\r\n @Output()\r\n public loopChange: EventEmitter<boolean> = new EventEmitter<boolean>();\r\n\r\n private _loop: boolean = false;\r\n @Input()\r\n public get loop(): boolean {\r\n return this._loop;\r\n }\r\n public set loop(v: boolean) {\r\n const val = coerceBooleanProperty(v);\r\n if (val != this._loop) {\r\n this._loop = val;\r\n if (this._loop) {\r\n this._rewind = false;\r\n }\r\n this.loopChange.emit(this.loop);\r\n this.rewindChange.emit(this.rewind);\r\n this.onOptionsChanged.emit();\r\n }\r\n }\r\n\r\n @Output()\r\n public rewindChange: EventEmitter<boolean> = new EventEmitter<boolean>();\r\n\r\n private _rewind: boolean = false;\r\n @Input()\r\n public get rewind(): boolean {\r\n return this._rewind;\r\n }\r\n public set rewind(v: boolean) {\r\n const val = coerceBooleanProperty(v);\r\n if (val != this._rewind) {\r\n this._rewind = val;\r\n if (this._rewind) {\r\n this._loop = false;\r\n this._centered = false;\r\n }\r\n this.rewindChange.emit(this.rewind);\r\n this.loopChange.emit(this.loop);\r\n this.centeredChange.emit(this.centered);\r\n this.onOptionsChanged.emit();\r\n }\r\n }\r\n\r\n\r\n\r\n \r\n private _visibleIndex : number = 0;\r\n public get visibleIndex() : number {\r\n return this._visibleIndex;\r\n }\r\n public set visibleIndex(v : number) {\r\n this._visibleIndex = v;\r\n }\r\n \r\n\r\n\r\n\r\n @Output()\r\n public onItemsChanged: EventEmitter<AXValueChangedEvent<HTMLDivElement[]>> = new EventEmitter<AXValueChangedEvent<HTMLDivElement[]>>();\r\n\r\n private _items: HTMLDivElement[] = [];\r\n public get items(): HTMLDivElement[] {\r\n return this._items ?? [];\r\n }\r\n public set items(v: HTMLDivElement[]) {\r\n const oldValue = this.items.slice();\r\n this._items = v;\r\n this.onItemsChanged.emit({\r\n component: this,\r\n htmlElement: this._getHostElement(),\r\n oldValue,\r\n value: this.items\r\n })\r\n }\r\n\r\n\r\n onViewInit() {\r\n this.core.mount(this);\r\n }\r\n\r\n \r\n\r\n \r\n next(): void {\r\n this.core.next();\r\n }\r\n\r\n last(): void {\r\n this.core.last();\r\n }\r\n\r\n prev(): void {\r\n this.core.prev();\r\n }\r\n\r\n first(): void {\r\n this.core.first();\r\n }\r\n\r\n goToSlide(index: number): void {\r\n this.core.goToSlide(index);\r\n }\r\n\r\n goToPage(index: number): void {\r\n this.core.goToPage(index);\r\n }\r\n\r\n\r\n get host():HTMLDivElement\r\n {\r\n return this._getHostElement();\r\n }\r\n\r\n\r\n onDestroy()\r\n {\r\n this.core.destroy();\r\n }\r\n}\r\n","<div class=\"ax-carousel-list-container\">\r\n <div class=\"ax-carousel-list\">\r\n <ng-content select=\"ax-carousel-item\">\r\n </ng-content>\r\n </div>\r\n <ng-content select=\"ax-carousel-arrows\">\r\n </ng-content>\r\n</div>\r\n\r\n<ng-content select=\"ax-carousel-pager\">\r\n</ng-content>","import { Component, ViewEncapsulation, ChangeDetectionStrategy, ElementRef, ChangeDetectorRef } from '@angular/core';\r\nimport { AXBaseComponentMixin } from '../base';\r\n\r\n@Component({\r\n selector: 'ax-carousel-item',\r\n template: '<ng-content></ng-content>',\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n encapsulation: ViewEncapsulation.None,\r\n host : { class: 'ax-carousel-item' }\r\n})\r\nexport class AXCarouselItemComponent extends AXBaseComponentMixin {\r\n\r\n constructor(\r\n elementRef: ElementRef, \r\n cdr: ChangeDetectorRef\r\n ) {\r\n super(elementRef, cdr);\r\n }\r\n}\r\n","import { Component, ViewEncapsulation, ChangeDetectionStrategy, ElementRef, ChangeDetectorRef, EventEmitter, Output, Host, Optional } from '@angular/core';\r\nimport { AXBaseComponentMixin, AXClickEvent } from '../base';\r\nimport { AXCarouselComponent } from './carousel.component';\r\n\r\n@Component({\r\n selector: 'ax-carousel-arrows',\r\n template: `\r\n <button class=\"ax-carousel-arrow-prev\" (click)=\"_handlePrevClick($event)\">\r\n <i class=\"ax-ic ax-ic-keyboard-arrow-left\"></i>\r\n </button>\r\n <button class=\"ax-carousel-arrow-next\" (click)=\"_handleNextClick($event)\">\r\n <i class=\"ax-ic ax-ic-keyboard-arrow-right\"></i>\r\n </button>\r\n `,\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n encapsulation: ViewEncapsulation.None,\r\n host: { class: 'ax-carousel-arrows' }\r\n})\r\nexport class AXCarouselArrowsComponent extends AXBaseComponentMixin {\r\n\r\n @Output()\r\n public onNextClick: EventEmitter<AXClickEvent> = new EventEmitter<AXClickEvent>();\r\n\r\n @Output()\r\n public onPrevClick: EventEmitter<AXClickEvent> = new EventEmitter<AXClickEvent>();\r\n\r\n constructor(\r\n elementRef: ElementRef,\r\n cdr: ChangeDetectorRef,\r\n @Optional() \r\n private parent: AXCarouselComponent\r\n ) {\r\n super(elementRef, cdr);\r\n }\r\n\r\n\r\n _handlePrevClick(e: MouseEvent) {\r\n e.stopPropagation();\r\n this.parent.prev();\r\n }\r\n\r\n _handleNextClick(e: MouseEvent) {\r\n e.stopPropagation();\r\n this.parent.next();\r\n }\r\n}\r\n","import { Component, ViewEncapsulation, ChangeDetectionStrategy, ElementRef, ChangeDetectorRef, EventEmitter, Output, Host, Optional } from '@angular/core';\r\nimport { Subscription } from 'rxjs';\r\nimport { AXBaseComponentMixin } from '../base';\r\nimport { AXCarouselComponent } from './carousel.component';\r\n\r\n@Component({\r\n selector: 'ax-carousel-pager',\r\n template: `\r\n <button *ngFor=\"let d of _dots;let i=index\" [class.ax-state-active]=\"i==_pageIndex\" (click)=\"_handleClick($event,i)\">\r\n </button>\r\n `,\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n encapsulation: ViewEncapsulation.None,\r\n host: { class: 'ax-carousel-pager' }\r\n})\r\nexport class AXCarouselPagerComponent extends AXBaseComponentMixin {\r\n\r\n\r\n _visibleIndex: number = 0;\r\n _pageIndex: number = 0;\r\n private _size: number = 1;\r\n\r\n _dots: any[] = [];\r\n\r\n\r\n private _subs: Subscription[] = [];\r\n\r\n constructor(\r\n elementRef: ElementRef,\r\n private cdr: ChangeDetectorRef,\r\n private _parent: AXCarouselComponent\r\n ) {\r\n super(elementRef, cdr);\r\n _parent.pageSizeChange.subscribe(c => {\r\n this._size = c;\r\n this._generateDots();\r\n });\r\n _parent.onSlideChanged.subscribe(c => {\r\n this._visibleIndex = c.value;\r\n this._generateDots();\r\n });\r\n _parent.onItemsChanged.subscribe(c => {\r\n this._generateDots();\r\n });\r\n }\r\n\r\n\r\n onViewInit() {\r\n this._size = this._parent.pageSize;\r\n this._visibleIndex = this._parent.visibleIndex;\r\n this._generateDots();\r\n }\r\n\r\n\r\n private _generateDots(): void {\r\n this._dots = [...Array(Math.ceil(this._parent.items.length / this._size)).keys()];\r\n this._setPageIndex(this._findPageIndex(this._visibleIndex));\r\n this.cdr.detectChanges();\r\n }\r\n\r\n\r\n _handleClick(e: MouseEvent, index: number) {\r\n e.stopPropagation();\r\n this._setPageIndex(index);\r\n this._parent.goToPage(index);\r\n }\r\n\r\n private _setPageIndex(index: number) {\r\n this._pageIndex = index;\r\n this.cdr.detectChanges();\r\n }\r\n\r\n private _findPageIndex(slideIndex: number): number {\r\n return Math.min(Math.ceil(slideIndex / this._size), this._dots.length - 1);\r\n }\r\n\r\n onDestroy() {\r\n this._subs.forEach(s => {\r\n s.unsubscribe();\r\n });\r\n }\r\n\r\n}\r\n","import { NgModule } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\nimport { AXCarouselComponent } from './carousel.component';\r\nimport { AXCarouselItemComponent } from './carousel-item.component';\r\nimport { AXCarouselArrowsComponent } from './carousel-arrows.component';\r\nimport { AXCarouselPagerComponent } from './carousel-pager.component';\r\nimport { AXCarouselSplideJS } from './carousel-splidejs.class';\r\nimport { AXCarousel, AXCarouselCore } from './carousel.class';\r\n\r\nconst COMPONENT = [AXCarouselComponent, AXCarouselItemComponent, AXCarouselArrowsComponent, AXCarouselPagerComponent];\r\nconst MODULES = [CommonModule];\r\n\r\n@NgModule({\r\n declarations: [...COMPONENT],\r\n imports: [...MODULES],\r\n exports: [...COMPONENT],\r\n providers: [],\r\n})\r\nexport class AXCarouselModule { }\r\n","import { Component, ChangeDetectorRef, ChangeDetectionStrategy, ViewEncapsulation, ElementRef } from '@angular/core';\r\nimport { AXBaseValueComponentMixin } from '../base';\r\nimport { INTERACTIVE_INPUTS, INTERACTIVE_OUTPUT } from '../base/mixin/interactive-mixin.class';\r\nimport { VALUE_INPUTS, VALUE_OUTPUT } from '../base/mixin/value-mixin.class';\r\n\r\n@Component({\r\n selector: 'ax-check-box',\r\n templateUrl: './checkbox.component.html',\r\n inputs: [...INTERACTIVE_INPUTS, ...VALUE_INPUTS],\r\n outputs: [...INTERACTIVE_OUTPUT, ...VALUE_OUTPUT],\r\n encapsulation: ViewEncapsulation.None,\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n})\r\nexport class AXCheckBoxComponent extends AXBaseValueComponentMixin {\r\n\r\n constructor(elementRef: ElementRef, cdr: ChangeDetectorRef) {\r\n super(elementRef, cdr);\r\n }\r\n\r\n onInit() {\r\n super.onInit();\r\n if (!this.allowNull && this.value == null) {\r\n this.value = false;\r\n }\r\n }\r\n\r\n _onValueChanging(value) {\r\n if (this.allowNull && value == null) {\r\n this._stateIndeterminate = true;\r\n }\r\n else {\r\n this._stateIndeterminate = false;\r\n value = value == true ? true : false;\r\n }\r\n return value;\r\n }\r\n\r\n _handleOnClickEvent(e: MouseEvent) {\r\n if (this.readonly || this.disabled) {\r\n e.preventDefault();\r\n e.stopPropagation();\r\n return false;\r\n }\r\n }\r\n}\r\n","<label class=\"ax-flex ax-items-start\">\r\n <div class=\"ax-flex ax-items-center ax-h-5\">\r\n <input [id]=\"id\" class=\"ax-h-4 ax-w-4\" type=\"checkbox\" [class.ax-state-readonly]=\"readonly\"\r\n [class.ax-state-disabled]=\"disabled\" [indeterminate]=\"_stateIndeterminate\" [(ngModel)]=\"value\"\r\n [checked]=\"value\" [disabled]=\"disabled\" [readonly]=\"readonly\" [tabindex]=\"tabIndex\"\r\n (click)=\"_handleOnClickEvent($event)\" (focus)=\"_emitOnFocusEvent($event)\" (blur)=\"_emitOnBlurEvent($event)\">\r\n </div>\r\n <div class=\"ax-ms-3 ax-text-sm\">\r\n <ng-content></ng-content>\r\n <ng-content select=\"ax-form-hint\"></ng-content>\r\n <span class=\"ax-error-container\"></span>\r\n </div>\r\n</label>\r\n<ng-content select=\"ax-validation-rule\"></ng-content>","import { NgModule } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\nimport { FormsModule } from '@angular/forms';\r\nimport { AXCheckBoxComponent } from './checkbox.component';\r\nimport { AXEditorDecoratorModule } from '../decorators';\r\n@NgModule({\r\n declarations: [AXCheckBoxComponent],\r\n imports: [CommonModule, FormsModule,AXEditorDecoratorModule],\r\n exports: [AXCheckBoxComponent],\r\n providers: [],\r\n})\r\nexport class AXCheckBoxModule {}\r\n","import { AXConfig } from '@acorex/core';\r\nimport { CdkPortalOutletAttachedRef, ComponentPortal, Portal } from '@angular/cdk/portal';\r\nimport { Component, ViewEncapsulation, ChangeDetectionStrategy, Input, Output, EventEmitter, ElementRef, ChangeDetectorRef, HostBinding, ComponentRef } from '@angular/core';\r\nimport { AXBaseComponentMixin } from '../base';\r\n\r\n@Component({\r\n selector: 'ax-loading',\r\n template: `\r\n <ng-template [cdkPortalOutlet]=\"_selectedPortal\" (attached)=\"_handleAttched($event)\"></ng-template>\r\n `,\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n encapsulation: ViewEncapsulation.None,\r\n host: { class: 'ax-loading' }\r\n})\r\nexport class AXLoadingComponent extends AXBaseComponentMixin {\r\n\r\n _selectedPortal: Portal<any>;\r\n\r\n /**\r\n * @ignore\r\n */\r\n constructor(\r\n elementRef: ElementRef,\r\n cdr: ChangeDetectorRef\r\n ) {\r\n super(elementRef, cdr);\r\n }\r\n\r\n\r\n @Output()\r\n visibleChange: EventEmitter<boolean> = new EventEmitter();\r\n\r\n private _visible: boolean;\r\n\r\n @Input()\r\n public get visible(): boolean {\r\n return this._visible;\r\n }\r\n public set visible(v: boolean) {\r\n if (v != this._visible) {\r\n this._visible = v;\r\n v ? this._getHostElement().classList.remove('ax-hide') : this._getHostElement().classList.add('ax-hide');\r\n this.visibleChange.emit(v);\r\n }\r\n }\r\n\r\n @Input()\r\n type: string = 'spinner';\r\n\r\n @Input()\r\n text: string;\r\n\r\n onInit() {\r\n const loading = AXConfig.get(`layout.loading.${this.type}`);\r\n this._selectedPortal = new ComponentPortal(loading);\r\n this._cdr.markForCheck();\r\n }\r\n\r\n _handleAttched(ref: CdkPortalOutletAttachedRef) {\r\n ref = ref as ComponentRef<any>;\r\n if (ref.instance) {\r\n ref.instance.text = this.text;\r\n }\r\n }\r\n}\r\n","import { Component, ViewEncapsulation, ChangeDetectionStrategy, ElementRef, ChangeDetectorRef, Input, ContentChild, TemplateRef, HostListener, ViewChild } from '@angular/core';\r\nimport { AXBaseSelectionValueMixin } from '../base';\r\n\r\n@Component({\r\n selector: 'ax-datalist',\r\n templateUrl: './datalist.component.html',\r\n inputs: ['disabled', 'readonly', 'tabIndex', 'size', 'value', 'items', 'pageSize'],\r\n outputs: ['valueChange', 'onValueChanged', 'onBlur', 'onFocus'],\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n encapsulation: ViewEncapsulation.None,\r\n host: { class: 'ax-list ax-list-container' }\r\n})\r\nexport class AXDataListComponent extends AXBaseSelectionValueMixin {\r\n\r\n constructor(elementRef: ElementRef, cdr: ChangeDetectorRef) {\r\n super(elementRef, cdr);\r\n }\r\n\r\n @ViewChild('container')\r\n _container: ElementRef<HTMLDivElement>\r\n\r\n @ContentChild('itemTemplate', { static: true })\r\n _contentItemTemplate: TemplateRef<any>;\r\n\r\n private _itemTemplate: TemplateRef<any>;\r\n @Input()\r\n public get itemTemplate(): TemplateRef<any> {\r\n return this._itemTemplate ? this._itemTemplate : this._contentItemTemplate;\r\n }\r\n public set itemTemplate(v: TemplateRef<any>) {\r\n this._itemTemplate = v;\r\n }\r\n\r\n @ContentChild('emptyTemplate', { static: true })\r\n _contentEmptyTemplate: TemplateRef<any>;\r\n\r\n private _emptyTemplate: TemplateRef<any>;\r\n @Input()\r\n public get emptyTemplate(): TemplateRef<any> {\r\n return this._emptyTemplate ? this._emptyTemplate : this._contentEmptyTemplate;\r\n }\r\n public set emptyTemplate(v: TemplateRef<any>) {\r\n this._emptyTemplate = v;\r\n }\r\n\r\n @ContentChild('loadingTemplate', { static: true })\r\n _contentloadingTemplate: TemplateRef<any>;\r\n\r\n private _loadingTemplate: TemplateRef<any>;\r\n @Input()\r\n public get loadingTemplate(): TemplateRef<any> {\r\n return this._loadingTemplate ? this._loadingTemplate : this._contentloadingTemplate;\r\n }\r\n public set loadingTemplate(v: TemplateRef<any>) {\r\n this._loadingTemplate = v;\r\n }\r\n\r\n\r\n _handleOnItemClick(e: MouseEvent, item: any) {\r\n this.selectItems(item);\r\n }\r\n\r\n _handleListScroll(e: Event) {\r\n const list = e.target as HTMLDivElement;\r\n if ((list.scrollTop < list.scrollHeight - list.clientHeight)) {\r\n return;\r\n }\r\n this._fetchData();\r\n }\r\n\r\n\r\n private _checkForLoadData() {\r\n const list = this._container.nativeElement;\r\n if (this.loadedCount < this.totalCount && list.clientHeight < list.parentElement.clientHeight) {\r\n this._fetchData();\r\n }\r\n }\r\n\r\n _onDataLoaded() {\r\n setTimeout(() => {\r\n this._checkForLoadData();\r\n }, 100);\r\n\r\n }\r\n\r\n}\r\n","<div class=\"ax-list-items-container ax-default ax-vertical\" (scroll)=\"_handleListScroll($event)\" #container>\r\n <ng-container *ngFor=\"let item of displayItems;trackBy : _trackByFunction\">\r\n <ng-container *ngIf=\"itemTemplate; else elseTemplate\">\r\n <div class=\"ax-list-item\" (click)=\"_handleOnItemClick($event,item)\">\r\n <ng-container *ngTemplateOutlet=\"itemTemplate; context: { $implicit: item,direction:direction}\">\r\n </ng-container>\r\n </div>\r\n </ng-container>\r\n <ng-template #elseTemplate>\r\n <div class=\"ax-list-item\" (click)=\"_handleOnItemClick($event,item)\">\r\n {{ item ? _getItemDisplayTextTemplte(item) : 'Loading...'}}\r\n </div>\r\n </ng-template>\r\n </ng-container>\r\n <ng-container *ngIf=\"(displayItems==null || displayItems.length==0) && !isLoading\">\r\n <ng-container *ngIf=\"emptyTemplate; else elseEmptyTemplate\">\r\n <ng-container *ngTemplateOutlet=\"elseEmptyTemplate\">\r\n </ng-container>\r\n </ng-container>\r\n <ng-template #elseTemplate>\r\n Empty!\r\n </ng-template>\r\n </ng-container>\r\n <ng-container *ngIf=\"isLoading\">\r\n <ng-container *ngIf=\"loadingTemplate; else elseLoadingTemplate\">\r\n <ng-container *ngTemplateOutlet=\"loadingTemplate\">\r\n </ng-container>\r\n </ng-container>\r\n <ng-template #elseLoadingTemplate>\r\n <div class=\"ax-list-loading-container\">\r\n <div class=\"ax-flex ax-items-center ax-justify-center ax-p-4\">\r\n <ax-loading text=\"{{ 'layout.loading.text' | trans }}\"></ax-loading>\r\n </div>\r\n </div>\r\n </ng-template>\r\n </ng-container>\r\n</div>","import { Component, Input } from '@angular/core';\r\n\r\n@Component({\r\n selector: 'ax-loading-spinner',\r\n template: `\r\n <svg version=\"1.1\" width=\"24\" height=\"24\" class=\"ax-fill-current\" xmlns=\"http://www.w3.org/2000/svg\" xmlns:xlink=\"http://www.w3.org/1999/xlink\"\r\n x=\"0px\" y=\"0px\" viewBox=\"0 0 50 50\" xml:space=\"preserve\">\r\n <path fill=\"current\"\r\n d=\"M25.251,6.461c-10.318,0-18.683,8.365-18.683,18.683h4.068c0-8.071,6.543-14.615,14.615-14.615V6.461z\">\r\n <animateTransform attributeType=\"xml\" attributeName=\"transform\" type=\"rotate\" from=\"0 25 25\" to=\"360 25 25\"\r\n dur=\"0.6s\" repeatCount=\"indefinite\" />\r\n </path>\r\n </svg>\r\n <span class=\"ax-ms-3\" *ngIf=\"text\"> {{text}} </span>\r\n `\r\n})\r\nexport class AXLoadingSpinnerComponent {\r\n\r\n text: string;\r\n}","import {\r\n ChangeDetectorRef,\r\n ComponentFactoryResolver,\r\n Directive,\r\n ElementRef,\r\n Input,\r\n OnChanges,\r\n Renderer2,\r\n SimpleChanges, ViewContainerRef\r\n } from '@angular/core';\r\nimport { AXLoadingComponent } from './loading.component';\r\n \r\n \r\n const OVERLAY_CLASS = 'loading-overlay';\r\n \r\n // This directive places an overlay with a loading spinner over its host element\r\n // if isLoading equals to true and hides the overlay when isLoading becomes false.\r\n @Directive({\r\n selector: '[axIsLoading]'\r\n })\r\n export class AXLoadingDirective implements OnChanges {\r\n @Input('axIsLoading')\r\n isLoading = false;\r\n \r\n protected overlayElement!: HTMLDivElement;\r\n protected spinnerElement!: HTMLDivElement;\r\n protected hostElement!: HTMLDivElement;\r\n \r\n constructor(\r\n protected readonly elementRef: ElementRef,\r\n protected readonly renderer: Renderer2,\r\n protected readonly changeDetectorRef: ChangeDetectorRef,\r\n protected readonly viewContainerRef: ViewContainerRef,\r\n protected readonly componentFactoryResolver: ComponentFactoryResolver,\r\n ) {\r\n this.hostElement = this.elementRef.nativeElement;\r\n this.hostElement.style.position = 'relative';\r\n }\r\n \r\n ngOnChanges(changes: SimpleChanges): void {\r\n if (!this.overlayElement || !this.spinnerElement) {\r\n this.init();\r\n }\r\n \r\n if (changes.isLoading) {\r\n const isLoadingValue = changes.isLoading.currentValue;\r\n \r\n if (isLoadingValue) {\r\n this.addLoadingIndicator();\r\n }\r\n else {\r\n this.removeLoadingIndicator();\r\n }\r\n \r\n this.changeDetectorRef.markForCheck();\r\n }\r\n }\r\n \r\n protected addLoadingIndicator(): void {\r\n this.renderer.appendChild(this.hostElement, this.overlayElement);\r\n this.renderer.appendChild(this.overlayElement, this.spinnerElement);\r\n }\r\n \r\n protected removeLoadingIndicator(): void {\r\n this.renderer.removeChild(this.overlayElement, this.spinnerElement);\r\n this.renderer.removeChild(this.hostElement, this.overlayElement);\r\n this.viewContainerRef.clear();\r\n }\r\n \r\n protected init(): void {\r\n this.initOverlayElement();\r\n this.initSpinnerComponent();\r\n }\r\n \r\n protected initSpinnerComponent(): void {\r\n const spinnerComponentFactory = this.componentFactoryResolver.resolveComponentFactory(AXLoadingComponent);\r\n const spinnerComponent = this.viewContainerRef.createComponent(spinnerComponentFactory);\r\n this.spinnerElement = spinnerComponent.location.nativeElement;\r\n }\r\n \r\n protected initOverlayElement(): void {\r\n this.overlayElement = this.renderer.createElement('div');\r\n this.renderer.addClass(this.overlayElement, OVERLAY_CLASS);\r\n }\r\n }\r\n ","import { NgModule } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\nimport { AXLoadingComponent } from './loading.component';\r\nimport { AXLoadingDirective } from './loading.directive';\r\nimport { OverlayModule } from '@angular/cdk/overlay';\r\nimport { PortalModule } from '@angular/cdk/portal';\r\nimport { AXLoadingSpinnerComponent } from './loading-spinner.component';\r\nimport { AXConfig } from '@acorex/core';\r\n\r\nconst COMPONENT = [AXLoadingComponent, AXLoadingDirective, AXLoadingSpinnerComponent];\r\nconst MODULES = [CommonModule, OverlayModule, PortalModule];\r\n\r\n@NgModule({\r\n declarations: [...COMPONENT],\r\n imports: [...MODULES],\r\n exports: [...COMPONENT],\r\n providers: [],\r\n})\r\nexport class AXLoadingModule {\r\n\r\n\r\n constructor() {\r\n AXConfig.set({\r\n layout: {\r\n loading: {\r\n spinner: AXLoadingSpinnerComponent,\r\n }\r\n }\r\n })\r\n\r\n }\r\n}\r\n","import {\r\n Overlay,\r\n OverlayKeyboardDispatcher,\r\n OverlayPositionBuilder,\r\n ScrollStrategyOptions,\r\n OverlayContainer,\r\n OverlayRef,\r\n OverlayConfig,\r\n OverlayOutsideClickDispatcher\r\n} from '@angular/cdk/overlay';\r\nimport {\r\n ComponentFactoryResolver,\r\n Inject,\r\n Injector,\r\n NgZone,\r\n Renderer2,\r\n RendererFactory2,\r\n Injectable,\r\n} from '@angular/core';\r\n\r\nimport { Directionality } from '@angular/cdk/bidi';\r\nimport { DOCUMENT, Location } from '@angular/common';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class DynamicOverlayContainer extends OverlayContainer {\r\n public setContainerElement(containerElement: HTMLElement): void {\r\n this._containerElement = containerElement;\r\n }\r\n}\r\n\r\n\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class DynamicOverlay extends Overlay {\r\n private readonly _dynamicOverlayContainer: DynamicOverlayContainer;\r\n private renderer: Renderer2;\r\n\r\n constructor(\r\n scrollStrategies: ScrollStrategyOptions,\r\n _overlayContainer: DynamicOverlayContainer,\r\n _componentFactoryResolver: ComponentFactoryResolver,\r\n _positionBuilder: OverlayPositionBuilder,\r\n _keyboardDispatcher: OverlayKeyboardDispatcher,\r\n _injector: Injector,\r\n _ngZone: NgZone,\r\n @Inject(DOCUMENT) _document: any,\r\n _directionality: Directionality,\r\n rendererFactory: RendererFactory2,\r\n _location: Location,\r\n _outsideClickDispatcher: OverlayOutsideClickDispatcher,\r\n ) {\r\n super(\r\n scrollStrategies,\r\n _overlayContainer,\r\n _componentFactoryResolver,\r\n _positionBuilder,\r\n _keyboardDispatcher,\r\n _injector,\r\n _ngZone,\r\n _document,\r\n _directionality,\r\n _location,\r\n _outsideClickDispatcher,\r\n );\r\n this.renderer = rendererFactory.createRenderer(null, null);\r\n\r\n this._dynamicOverlayContainer = _overlayContainer;\r\n }\r\n\r\n private setContainerElement(containerElement: HTMLElement): void {\r\n this.renderer.setStyle(containerElement, 'transform', 'translateZ(0)');\r\n this._dynamicOverlayContainer.setContainerElement(containerElement);\r\n }\r\n\r\n public createOn(containerElement: HTMLElement, config?: OverlayConfig): OverlayRef {\r\n this.setContainerElement(containerElement);\r\n return super.create(config);\r\n }\r\n}","import { Injectable, ApplicationRef, ViewContainerRef, TemplateRef, EventEmitter } from '@angular/core';\r\nimport { Overlay, PositionStrategy, ScrollStrategy } from '@angular/cdk/overlay';\r\nimport { TemplatePortal, Portal, ComponentPortal } from '@angular/cdk/portal';\r\nimport { AXConnectedPosition } from '.';\r\nimport { merge } from 'rxjs';\r\nimport { DynamicOverlay } from './custom-cdk-overlay.service';\r\n\r\nexport interface AXOverlayViewRef {\r\n instance: any;\r\n dispose: () => void;\r\n isOpen: () => boolean;\r\n}\r\n\r\nexport interface AXOverlayConfigs {\r\n position?: AXConnectedPosition | AXConnectedPosition[];\r\n hasBackdrop?: boolean;\r\n transparentBackdrop?: boolean;\r\n closeOnClickOutside?: boolean;\r\n targetElement?: HTMLElement;\r\n containerElement?: HTMLElement;\r\n onBackdropClick?: () => void;\r\n panelClass?: string[] | string;\r\n backdropClass?: string[] | string;\r\n scroll?: 'auto' | 'block' | 'close';\r\n}\r\n\r\n@Injectable({ providedIn: 'root' })\r\nexport class AXOverlayService {\r\n constructor(\r\n private overlayService: DynamicOverlay,\r\n private overlayService2: Overlay,\r\n private appRef: ApplicationRef) {\r\n\r\n }\r\n\r\n show(content: any, context?: any, configs?: AXOverlayConfigs): AXOverlayViewRef {\r\n configs = Object.assign({\r\n hasBackdrop: true,\r\n transparentBackdrop: true,\r\n closeOnClickOutside: true\r\n }, configs || {});\r\n // get root viewref\r\n const viewRef: ViewContainerRef = this.appRef.components[0].instance.viewRef;\r\n\r\n let portal: Portal<any>;\r\n // get component by route\r\n if (typeof content === 'string') {\r\n // TODO\r\n }\r\n // create portal from component\r\n else if (content instanceof TemplateRef) {\r\n portal = new TemplatePortal(content, viewRef, context);\r\n }\r\n else if (typeof content === 'function') {\r\n portal = new ComponentPortal(content, viewRef);\r\n }\r\n let positionStrategy: PositionStrategy;\r\n if (configs.position && configs.targetElement) {\r\n positionStrategy = this.overlayService.position()\r\n .flexibleConnectedTo(configs.targetElement)\r\n .withPositions(\r\n Array.isArray(configs.position) ? configs.position : [configs.position]\r\n )\r\n .withPush(true);\r\n }\r\n else {\r\n positionStrategy = this.overlayService.position().global().centerHorizontally().centerVertically();\r\n }\r\n let scrollStrategy: ScrollStrategy = this.overlayService.scrollStrategies.reposition({ autoClose: true });\r\n if (configs.scroll === 'block') {\r\n scrollStrategy = this.overlayService.scrollStrategies.block();\r\n }\r\n if (configs.scroll === 'close') {\r\n scrollStrategy = this.overlayService.scrollStrategies.close();\r\n }\r\n\r\n const config = {\r\n positionStrategy,\r\n scrollStrategy,\r\n hasBackdrop: configs.hasBackdrop,\r\n disposeOnNavigation: true,\r\n backdropClass: configs.backdropClass ? configs.backdropClass : (configs.transparentBackdrop ? 'cdk-overlay-transparent-backdrop' : undefined),\r\n panelClass: configs.panelClass ? configs.panelClass : ['ax-animate-animated', 'ax-animate-fadeIn','ax-animate-faster']\r\n };\r\n // joon nanat dorost sho\r\n let overlayRef = configs.containerElement ? this.overlayService.createOn(configs.containerElement, config) : this.overlayService2.create(config);\r\n\r\n const host = overlayRef.attach(portal);\r\n if (host.instance) {\r\n Object.assign(host.instance, context);\r\n setTimeout(() => {\r\n host.changeDetectorRef.detectChanges();\r\n }, 0);\r\n }\r\n if (configs.closeOnClickOutside) {\r\n merge(\r\n overlayRef.backdropClick(),\r\n overlayRef.detachments(),\r\n ).subscribe(() => {\r\n overlayRef.dispose();\r\n overlayRef = undefined;\r\n if (configs.onBackdropClick) {\r\n configs.onBackdropClick();\r\n }\r\n });\r\n\r\n }\r\n return {\r\n instance: host.instance,\r\n dispose: overlayRef.dispose.bind(overlayRef),\r\n isOpen: () => {\r\n return overlayRef.hasAttached();\r\n }\r\n };\r\n }\r\n\r\n}","import { Injectable, NgZone } from '@angular/core';\r\nimport { asyncScheduler, BehaviorSubject, Observable } from 'rxjs';\r\nimport { finalize, observeOn } from 'rxjs/operators';\r\nimport { AXOverlayService, AXOverlayViewRef } from '../base/overlay.service';\r\nimport { AXLoadingComponent } from './loading.component';\r\n\r\ntype LoadingContext = object;\r\ntype LoaderId = string | number; // expected enum values\r\nconst DEFAULT_LOADER_ID: LoaderId = '_DEFAULT';\r\n\r\n/**\r\n * Used for centrally setting/unsetting loading flags for components or services.\r\n * Should be connected to global HTTP interceptor which will unset\r\n * the loading flags in case an error happens using the clearLoadings() method.\r\n *\r\n * FAQ:\r\n * Q: How to change loading flag for a parent component?\r\n * A: Inject the parent component as a dependency to your constructor and\r\n * call loadingService.setLoading(parentComponent, STATE).\r\n * \r\n * Q: How to change loading flag for a child component?\r\n * A: Use a @ViewChild with component selector and pass the\r\n * reference of the child to setLoading method.\r\n *\r\n * Q: I need more loading indicators in my components. How to?\r\n * A: Assign a LoaderId to each indicator and then use them\r\n * with calls to methods of this service.\r\n */\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class AXLoadingService {\r\n // WeakMap will remove components from itself upon\r\n // their garbage collection by JS runtime.\r\n protected loadingStates = new WeakMap<LoadingContext, Map<LoaderId, boolean>>();\r\n // Both loading state maps are kept in-sync such that\r\n // they can be used by both sync and async methods.\r\n protected loadingStates$ = new WeakMap<LoadingContext, Map<LoaderId, BehaviorSubject<boolean>>>();\r\n\r\n constructor(protected zoneRef: NgZone, private overlayService: AXOverlayService) { }\r\n\r\n private _stack: { id: number, component: AXOverlayViewRef }[] = [];\r\n\r\n show(location?: Element): number {\r\n let host: Element;\r\n if (location) {\r\n host = location.closest('.ax-loading-host');\r\n }\r\n const containerElement = (host || location) as HTMLDivElement;\r\n const com = this.overlayService.show(AXLoadingComponent, {},\r\n {\r\n closeOnClickOutside: false,\r\n containerElement,\r\n hasBackdrop: true,\r\n backdropClass: ['ax-loading-overlay'],\r\n scroll: 'block'\r\n });\r\n com.instance.visible = true;\r\n const id = new Date().getTime();\r\n this._stack.push({ id, component: com });\r\n return id;\r\n }\r\n\r\n hide(id): void {\r\n const f = this._stack.find(c => c.id === id);\r\n if (f) {\r\n f.component.dispose();\r\n this._stack = this._stack.filter(c => c.id !== id);\r\n }\r\n }\r\n\r\n\r\n // Observable creation operator.\r\n // LoaderId can be used when there are multiple loading indicators associated to a single context.\r\n // Context can be any object, though in practice, components and services will be the most common contexts.\r\n // loaderId is a non-mandatory parameter - when not specified, a default loaderId is used.\r\n // Such a scenario is used when your context has contains only one loading indicator.\r\n doLoading<V>(source$: Observable<V>, context: LoadingContext, loaderId?: LoaderId): Observable<V> {\r\n this.startLoading(context, loaderId);\r\n\r\n return source$.pipe(\r\n observeOn(asyncScheduler),\r\n finalize(() => this.endLoading(context, loaderId)),\r\n );\r\n }\r\n\r\n // To be used in your html templates.\r\n // Returns a boolean indicating whether a given loader is active in a given context.\r\n // If loaderId is unspecified, the method will return a logical disjunction of all\r\n // loader states in the context.\r\n isLoading(context: LoadingContext, loaderId?: LoaderId): boolean {\r\n const loaderStates = this.loadingStates.get(context);\r\n\r\n if (!loaderStates) {\r\n return false;\r\n }\r\n else {\r\n if (loaderId !== undefined) {\r\n return loaderStates.get(this.getLoaderId(loaderId)) ?? false;\r\n }\r\n else {\r\n return [...loaderStates.values()].filter(state => state).length > 0;\r\n }\r\n }\r\n }\r\n\r\n // To be used in your html templates with async pipes.\r\n // Returns an Observable of booleans indicating whether a given loader is active in a given context.\r\n isLoading$(context: LoadingContext, loaderId?: LoaderId): Observable<boolean> {\r\n const coalescedLoaderId = this.getLoaderId(loaderId);\r\n\r\n if (!this.hasLoadingStates(context, coalescedLoaderId)) {\r\n this.setLoadingState(context, false, loaderId);\r\n }\r\n\r\n return this.loadingStates$.get(context).get(coalescedLoaderId);\r\n }\r\n\r\n // The startLoading and endLoading methods are intended to be used when handling\r\n // complex scenarios where a need for extended usage flexibility is desired.\r\n startLoading(context: LoadingContext, loaderId?: LoaderId): void {\r\n this.setLoadingState(context, true, this.getLoaderId(loaderId));\r\n }\r\n\r\n endLoading(context: LoadingContext, loaderId?: LoaderId): void {\r\n this.setLoadingState(context, false, this.getLoaderId(loaderId));\r\n }\r\n\r\n // To be called by middleware code (HTTP interceptors/routing listeners, etc.).\r\n clearLoadings(): void {\r\n this.loadingStates = new WeakMap<LoadingContext, Map<LoaderId, boolean>>();\r\n this.loadingStates$ = new WeakMap<LoadingContext, Map<LoaderId, BehaviorSubject<boolean>>>();\r\n }\r\n\r\n protected setLoadingState(context: LoadingContext, state: boolean, loaderId: LoaderId): void {\r\n if (!this.hasLoadingStates(context, loaderId)) {\r\n if (this.hasContextLoadingState(context)) {\r\n this.loadingStates.get(context).set(loaderId, state);\r\n this.loadingStates$.get(context).set(loaderId, new BehaviorSubject<boolean>(state));\r\n }\r\n else {\r\n this.loadingStates.set(context, new Map<LoaderId, boolean>([\r\n [loaderId, state]\r\n ]));\r\n this.loadingStates$.set(context, new Map<LoaderId, BehaviorSubject<boolean>>([\r\n [loaderId, new BehaviorSubject<boolean>(state)]\r\n ]));\r\n }\r\n }\r\n else {\r\n // @ts-ignore - loadingStates[context] is surely defined in this branch\r\n this.loadingStates.get(context).set(loaderId, state);\r\n this.loadingStates$.get(context).get(loaderId).next(state);\r\n }\r\n }\r\n\r\n protected hasLoadingStates(context: LoadingContext, loaderId: LoaderId) {\r\n return this.hasContextLoadingState(context) && this.hasLoaderLoadingState(context, loaderId);\r\n }\r\n\r\n protected hasContextLoadingState(context: LoadingContext) {\r\n return this.loadingStates.has(context) && this.loadingStates$.has(context);\r\n }\r\n\r\n protected hasLoaderLoadingState(context: LoadingContext, loaderId: LoaderId) {\r\n return this.loadingStates.get(context).has(loaderId) && this.loadingStates$.get(context).has(loaderId);\r\n }\r\n\r\n protected getLoaderId(loaderId?: LoaderId): LoaderId {\r\n return loaderId ?? DEFAULT_LOADER_ID;\r\n }\r\n}\r\n","import { NgModule } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\nimport { AXDataListComponent } from './datalist.component';\r\nimport { AXButtonModule } from '../button';\r\nimport { AXLoadingModule } from '../loading';\r\nimport { AXTranslationModule } from '@acorex/core';\r\n\r\n\r\n\r\nconst COMPONENT = [AXDataListComponent];\r\nconst MODULES = [CommonModule, AXButtonModule, AXLoadingModule, AXTranslationModule];\r\n\r\n@NgModule({\r\n declarations: [...COMPONENT],\r\n imports: [...MODULES],\r\n exports: [...COMPONENT],\r\n providers: [],\r\n})\r\nexport class AXDataListModule { }\r\n","import { Component, Input, NgZone, ChangeDetectorRef, ChangeDetectionStrategy, ViewEncapsulation, ViewChild, TemplateRef, ElementRef, ViewContainerRef, HostListener, EventEmitter, Output } from '@angular/core';\r\nimport { AXBaseComponent, AXConnectedPosition, AXEvent, AXInteractiveComponenetMixin } from '../base';\r\nimport { Overlay, OverlayRef } from '@angular/cdk/overlay';\r\nimport { AXDrawingUtil, AXPlatform, AXPoint } from '@acorex/core';\r\nimport { TemplatePortal } from '@angular/cdk/portal';\r\nimport { fromEvent, Subscription } from 'rxjs';\r\nimport _ from 'lodash';\r\nimport { throttleTime } from 'rxjs/operators';\r\n\r\n\r\n\r\n\r\n\r\n@Component({\r\n selector: 'ax-popover',\r\n templateUrl: './popover.component.html',\r\n encapsulation: ViewEncapsulation.None,\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n})\r\nexport class AXPopoverComponent extends AXInteractiveComponenetMixin {\r\n\r\n constructor(\r\n private _elementRef: ElementRef,\r\n public _cdr: ChangeDetectorRef,\r\n private _zone: NgZone,\r\n private _overlay: Overlay,\r\n private _platform: AXPlatform,\r\n private _viewContainerRef: ViewContainerRef,\r\n\r\n ) {\r\n super(_elementRef, _cdr);\r\n }\r\n //\r\n private _target: HTMLElement;\r\n @Input()\r\n public get target(): HTMLElement | ElementRef | AXBaseComponent {\r\n return this._target;\r\n }\r\n public set target(v: HTMLElement | ElementRef | AXBaseComponent) {\r\n if (v instanceof HTMLElement)\r\n this._target = v;\r\n else if (v instanceof ElementRef)\r\n this._target = v.nativeElement;\r\n else if (v instanceof AXBaseComponent)\r\n this._target = v._getInnerElement();\r\n }\r\n\r\n\r\n @Input()\r\n position: AXConnectedPosition | AXConnectedPosition[] = [\r\n {\r\n originX: 'start',\r\n originY: 'bottom',\r\n overlayX: 'start',\r\n overlayY: 'top',\r\n },\r\n {\r\n originX: 'start',\r\n originY: 'top',\r\n overlayX: 'start',\r\n overlayY: 'bottom'\r\n }\r\n ];\r\n //\r\n @ViewChild('baseTemplate')\r\n _baseTemplate: TemplateRef<any>;\r\n _overlayRef: OverlayRef;\r\n _templatePortal: TemplatePortal;\r\n\r\n _subs: Subscription[] = [];\r\n //\r\n @Input()\r\n openTrigger: 'manual' | 'click' | 'mouseover' | 'toggle' = 'toggle';\r\n //\r\n @Input()\r\n closeTrigger: 'manual' | 'clickout' | 'mouseout' = 'clickout';\r\n //\r\n @Input()\r\n hasBackdrop: boolean = false;\r\n\r\n @Input()\r\n backdropClass: string;\r\n //\r\n private _mousePos: AXPoint = { x: 0, y: 0 };\r\n private _isScrollAttached: boolean = false;\r\n //\r\n @Output()\r\n onOpened: EventEmitter<AXEvent> = new EventEmitter<AXEvent>();\r\n @Output()\r\n onClosed: EventEmitter<AXEvent> = new EventEmitter<AXEvent>();\r\n\r\n _emitOnOpenedEvent() {\r\n this.onOpened.emit({\r\n component: this,\r\n htmlElement: this._getHostElement()\r\n });\r\n }\r\n\r\n _emitOnClosedEvent() {\r\n this.onClosed.emit({\r\n component: this,\r\n htmlElement: this._getHostElement()\r\n });\r\n }\r\n //\r\n onViewInit() {\r\n if (this._target) {\r\n if (this.openTrigger === 'mouseover') {\r\n const mouseEnter$ = fromEvent<MouseEvent>(this._target, 'mouseover');\r\n this._addSub(mouseEnter$.subscribe(e => {\r\n const point = { x: e.clientX, y: e.clientY };\r\n if (AXDrawingUtil.isInElementBound(point, this._target))\r\n this.open();\r\n }));\r\n }\r\n if (this.closeTrigger === 'mouseout') {\r\n const mouseMove$ = fromEvent<MouseEvent>(document, 'mousemove');\r\n this._addSub(mouseMove$.pipe(throttleTime(50)).subscribe(e => {\r\n this._mousePos.x = e.clientX;\r\n this._mousePos.y = e.clientY;\r\n if (this.isOpen) {\r\n setTimeout(() => {\r\n if (!_.some([this._target, this._overlayRef.overlayElement], el => _.includes(document.elementsFromPoint(this._mousePos.x, this._mousePos.y), el)))\r\n this.close();\r\n }, 100)\r\n }\r\n }));\r\n\r\n }\r\n //\r\n if (this.openTrigger === 'click' || this.openTrigger === 'toggle') {\r\n const click$ = fromEvent<MouseEvent>(this._target, 'click');\r\n this._addSub(click$.subscribe(e => {\r\n this.openTrigger == 'toggle' ? this.toggle() : this.open();\r\n }));\r\n }\r\n }\r\n }\r\n //\r\n onDestroy(): void {\r\n this._overlayRef?.detach();\r\n this._overlayRef?.dispose();\r\n this._subs.forEach(s => {\r\n s?.unsubscribe();\r\n });\r\n }\r\n\r\n @HostListener('keydown', ['$event'])\r\n _handleKeydownHandler(e: KeyboardEvent) {\r\n // if (e.key === 'Enter' && e.type === 'keydown') {\r\n // this.toggle();\r\n // }\r\n if (e.key === 'Escape') {\r\n if (this.isOpen) {\r\n this.close();\r\n e.stopPropagation();\r\n }\r\n }\r\n }\r\n \r\n toggle() {\r\n this.isOpen ? this.close() : this.open();\r\n }\r\n //\r\n close() {\r\n if (!this.isOpen) {\r\n return;\r\n }\r\n this._overlayRef?.detach();\r\n this._emitOnClosedEvent();\r\n }\r\n //\r\n open() {\r\n if (this.isOpen) {\r\n return;\r\n }\r\n this._ensureOverlayCreated();\r\n this._overlayRef.attach(this._templatePortal);\r\n this._emitOnOpenedEvent();\r\n }\r\n\r\n private _ensureOverlayCreated() {\r\n const targetRef = this._target;\r\n if (!targetRef)\r\n return;\r\n\r\n if (!this._overlayRef) {\r\n if (this._platform.is('Mobile')) {\r\n this._overlayRef = this._overlay.create({\r\n positionStrategy: this._overlay.position().global().centerHorizontally().centerVertically(),\r\n disposeOnNavigation: true,\r\n panelClass: ['ax-overflow-hidden','ax-animate-fadeIn', 'ax-animate-faster'],\r\n hasBackdrop: true\r\n });\r\n }\r\n else {\r\n this._overlayRef = this._overlay.create({\r\n positionStrategy: this._overlay.position()\r\n .flexibleConnectedTo(targetRef)\r\n .withPositions(Array.isArray(this.position) ? this.position : [this.position])\r\n .withPush(false),\r\n disposeOnNavigation: true,\r\n panelClass: ['ax-overflow-hidden','ax-animate-fadeIn', 'ax-animate-faster'],\r\n maxHeight: 'unset',\r\n hasBackdrop: this.hasBackdrop,\r\n backdropClass: [this.backdropClass || 'cdk-overlay-transparent-backdrop']\r\n });\r\n }\r\n\r\n if (this.closeTrigger == 'clickout') {\r\n this._addSub(this._overlayRef._outsidePointerEvents.subscribe(c => {\r\n const target = c.target as HTMLElement;\r\n const comElem = targetRef;\r\n if (!(comElem.contains(target))) {\r\n this.close();\r\n }\r\n }));\r\n }\r\n this._addSub(this._overlayRef.attachments().subscribe(() => {\r\n if (!this._isScrollAttached) {\r\n this._addSub(this._platform.scroll.subscribe(c => {\r\n if (!(c.nativeEvent.target as HTMLElement).closest('.ax-overlay-pane'))\r\n this.updatePosition();\r\n }));\r\n this._isScrollAttached = true;\r\n }\r\n }));\r\n }\r\n if (!this._templatePortal) {\r\n this._templatePortal = new TemplatePortal(this._baseTemplate, this._viewContainerRef);\r\n }\r\n }\r\n\r\n get isOpen(): boolean {\r\n return this._overlayRef ? this._overlayRef.hasAttached() : false;\r\n }\r\n\r\n private _addSub(sub: Subscription) {\r\n this._subs.push(sub);\r\n }\r\n\r\n\r\n updatePosition(): void {\r\n this._overlayRef?.updatePosition();\r\n this.focus();\r\n }\r\n\r\n}\r\n","<ng-template #baseTemplate>\r\n <ng-content></ng-content>\r\n</ng-template>","import { AXDateTime, AXPlatform, AXStringUtil, AXTranslator } from '@acorex/core';\r\nimport {\r\n Component,\r\n ViewEncapsulation,\r\n ChangeDetectionStrategy,\r\n ElementRef,\r\n ChangeDetectorRef,\r\n ViewChild,\r\n Input,\r\n EventEmitter,\r\n Output,\r\n} from '@angular/core';\r\nimport { AXBaseComponent, AXClickEvent } from '../base';\r\nimport { DROPDOWN_INPUTS, DROPDOWN_OUTPUT, _DropdownComponenetMixin } from '../base/mixin/dropdown-mixin.class';\r\nimport { INTERACTIVE_INPUTS, INTERACTIVE_OUTPUT, _InteractiveComponenetMixin } from '../base/mixin/interactive-mixin.class';\r\nimport { _SizableComponenetMixin } from '../base/mixin/sizable-mixin.class';\r\nimport { TEXTBOX_INPUTS, TEXTBOX_OUTPUT, _TextboxComponenetMixin } from '../base/mixin/textbox-mixin.class';\r\nimport { VALUE_INPUTS, VALUE_OUTPUT, _ValueComponenetMixin } from '../base/mixin/value-mixin.class';\r\nimport { AXCalendarComponent } from '../calendar';\r\nimport { AXCalendarBaseComponent, CALENDAR_INPUTS, CALENDAR_OUTPUTS } from '../calendar/calendar.class';\r\nimport { AXPopoverComponent } from '../popover/popover.component';\r\n\r\n\r\nexport const AXBaseDatePickerMixin =\r\n _InteractiveComponenetMixin(\r\n _DropdownComponenetMixin(\r\n _ValueComponenetMixin(\r\n _TextboxComponenetMixin(AXCalendarBaseComponent)\r\n )\r\n )\r\n );\r\n\r\n\r\n@Component({\r\n selector: 'ax-date-picker',\r\n templateUrl: './datepicker.component.html',\r\n inputs: [...DROPDOWN_INPUTS, ...INTERACTIVE_INPUTS, ...VALUE_INPUTS, ...TEXTBOX_INPUTS, ...CALENDAR_INPUTS],\r\n outputs: [...DROPDOWN_OUTPUT, ...INTERACTIVE_OUTPUT, ...VALUE_OUTPUT, ...TEXTBOX_OUTPUT, ...CALENDAR_OUTPUTS],\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n encapsulation: ViewEncapsulation.None,\r\n host: { class: 'ax-editor-container ax-drop-down' }\r\n})\r\nexport class AXDatePickerComponent extends AXBaseDatePickerMixin {\r\n\r\n @ViewChild(AXPopoverComponent, { static: true })\r\n popover: AXPopoverComponent;\r\n\r\n @ViewChild(AXCalendarComponent, { static: true })\r\n _calendar: AXCalendarComponent;\r\n\r\n _target: HTMLDivElement;\r\n displayText: string;\r\n _calendarValue: Date;\r\n _cursorPos: number = 0;\r\n _isMobile: boolean = false;\r\n _popoverTitle: string;\r\n _popoverWidth: number;\r\n\r\n\r\n @Output()\r\n formatChange = new EventEmitter<string>();\r\n\r\n private _format: string = 'YYYY-MM-dd';\r\n @Input()\r\n public get format(): string {\r\n return this._format;\r\n }\r\n public set format(v: string) {\r\n this._setOption({\r\n name: 'format',\r\n value: v\r\n });\r\n }\r\n\r\n\r\n constructor(\r\n _elementRef: ElementRef,\r\n _cdr: ChangeDetectorRef,\r\n private _platform: AXPlatform,\r\n ) {\r\n super(_elementRef, _cdr);\r\n this._target = this._getHostElement();\r\n this._isMobile = this._platform.is('Mobile');\r\n }\r\n\r\n\r\n onViewInit(): void {\r\n super.onViewInit();\r\n this._popoverTitle = this.placeholder || AXTranslator.get('datepicker.popover.title')\r\n this.popover.onOpened.subscribe(() => {\r\n this._calendar.focus();\r\n });\r\n }\r\n\r\n\r\n\r\n\r\n _handleArrowClickEvent(e: AXClickEvent) {\r\n this.toggle();\r\n }\r\n\r\n _onValueChanged(oldValue?: any, newValue?: any) {\r\n this.displayText = newValue ? AXDateTime.convert(newValue).format(this._format) : null;\r\n this.close();\r\n }\r\n\r\n\r\n _handleOnKeydownEvent(e: KeyboardEvent) {\r\n const ignore = () => {\r\n e.preventDefault();\r\n e.stopPropagation();\r\n };\r\n\r\n const nums: string[] = Array(10).fill(0).map((v, i) => i.toString());\r\n const chars: string[] = ['Backspace', 'ArrowDown', 'ArrowUp', 'ArrowRight', 'ArrowLeft', 'Tab', 'Enter'];\r\n const input = (e.target as HTMLInputElement);\r\n const key = (e.key);\r\n const valStr = input.value;\r\n const sStart = input.selectionStart;\r\n const sEnd = input.selectionEnd;\r\n const dateVal = new AXDateTime(this.value);\r\n //\r\n const re = /[a-zA-Z0-9]+/ig;\r\n const parts = Array.from(this.format.matchAll(re));\r\n const word = valStr.substring(sStart, sEnd);\r\n const part = parts.find(c => c.index >= sStart);\r\n //\r\n //\r\n if ([...nums].includes(key)) {\r\n if (part) {\r\n switch (part[0]) {\r\n case 'dd':\r\n case 'DD':\r\n const newVal = Math.max(1, Math.min(31, Number(word + e.key)));\r\n this.value = dateVal.set('day', newVal).date;\r\n break;\r\n case 'mm':\r\n break;\r\n case 'yy':\r\n case 'YYYY':\r\n break;\r\n }\r\n setTimeout(() => {\r\n this._highlightPart(input, sStart);\r\n }, Math.max(10, this.debounceTime));\r\n ignore();\r\n }\r\n }\r\n else if (e.key === 'ArrowRight' || e.key === 'ArrowLeft') {\r\n const next = Array.from(valStr.substr(sEnd).matchAll(re));\r\n const prev = Array.from(valStr.substring(0, sStart).matchAll(re));\r\n ignore();\r\n this._highlightPart(input, (e.key === 'ArrowRight' ? (sEnd + (next[0]?.index || 0)) : (prev[prev.length - 1]?.index)));\r\n }\r\n else if (e.key === 'ArrowUp' || e.key === 'ArrowDown') {\r\n if (e.ctrlKey && e.key === 'ArrowDown') {\r\n this.open();\r\n }\r\n else {\r\n const sign = e.key === 'ArrowUp' ? +1 : -1;\r\n if (part) {\r\n switch (part[0]) {\r\n case 'dd':\r\n case 'DD':\r\n this.value = dateVal.add('day', sign).date;\r\n break;\r\n case 'mm':\r\n case 'MMM':\r\n case 'MMMM':\r\n this.value = dateVal.add('month', sign).date;\r\n break;\r\n case 'yy':\r\n case 'YYYY':\r\n this.value = dateVal.add('year', sign).date;\r\n break;\r\n }\r\n setTimeout(() => {\r\n this._highlightPart(input, sStart);\r\n }, Math.max(10, this.debounceTime));\r\n }\r\n }\r\n ignore();\r\n }\r\n else if (e.key == 'Backspace') {\r\n if (this.allowNull) {\r\n this.value = null;\r\n }\r\n ignore();\r\n }\r\n // else if (nums.includes(key)) {\r\n\r\n // }\r\n // super._emitOnKeydownEvent(e);\r\n }\r\n\r\n\r\n\r\n _handleOnInputClickEvent(e: MouseEvent): void {\r\n const input = (e.target as HTMLInputElement);\r\n this._highlightPart(input);\r\n e.preventDefault();\r\n e.stopPropagation();\r\n }\r\n\r\n\r\n private _highlightPart(input: HTMLInputElement, pos?: number) {\r\n const { start, end } = AXStringUtil.getWordBoundsAtPosition(input.value, pos != null ? pos : input.selectionStart);\r\n input.setSelectionRange(start, end);\r\n }\r\n}\r\n","<ng-content select=\"ax-prefix\">\r\n</ng-content>\r\n<div class=\"ax-dropdown-content\">\r\n <input class=\"ax-input\" type=\"text\" [attr.placeholder]=\"placeholder\" [class.ax-state-disabled]=\"disabled\"\r\n [class.ax-state-readonly]=\"readonly\" [disabled]=\"disabled\" [readonly]=\"readonly\" [tabindex]=\"tabIndex\"\r\n [ngModel]=\"displayText\" (focus)=\"_emitOnFocusEvent($event)\" (mouseup)=\"_handleOnInputClickEvent($event)\"\r\n (blur)=\"_emitOnBlurEvent($event)\" (keydown)=\"_handleOnKeydownEvent($event)\">\r\n</div>\r\n<ax-button [disabled]=\"disabled\" [tabIndex]=\"-1\" color=\"light\" look=\"blank\" (onClick)=\"_handleArrowClickEvent($event)\">\r\n <ax-icon icon=\"ax-ic ax-ic-chevron ax-transform ax--rotate-90\"></ax-icon>\r\n</ax-button>\r\n<ng-content select=\"ax-suffix\">\r\n</ng-content>\r\n<ng-content select=\"ax-validation-rule\">\r\n</ng-content>\r\n<ax-popover [target]=\"_target\" [position]=\"position\" [openTrigger]=\"'manual'\" [closeTrigger]=\"'clickout'\">\r\n <div class=\"ax-overlay-pane\" >\r\n <div *ngIf=\"_isMobile\" class=\"ax-overlay-pane-header\">\r\n <span >{{placeholder || 'Choose a date'}}</span>\r\n <i class=\"ax-ic ax-ic-close \"\r\n (click)=\"close()\" tabindex=\"1\"></i>\r\n </div>\r\n <ax-calendar #calendar [disabled]=\"disabled\" [readonly]=\"readonly\" [(value)]=\"value\" [min]=\"min\" [min]=\"max\"\r\n [disabledDates]=\"disabledDates\" [holidayDates]=\"holidayDates\" [depth]=\"depth\">\r\n </ax-calendar>\r\n </div>\r\n</ax-popover>","import { NgModule } from \"@angular/core\";\r\nimport { CommonModule } from \"@angular/common\";\r\nimport { AXPopoverComponent } from \"./popover.component\";\r\n\r\n@NgModule({\r\n declarations: [AXPopoverComponent],\r\n imports: [CommonModule],\r\n exports: [AXPopoverComponent],\r\n providers: []\r\n})\r\nexport class AXPopoverModule {}\r\n","import {\r\n ChangeDetectionStrategy,\r\n ChangeDetectorRef,\r\n Component,\r\n ContentChild,\r\n ElementRef,\r\n HostBinding,\r\n Input,\r\n OnInit,\r\n ViewChild,\r\n ViewEncapsulation,\r\n} from '@angular/core';\r\nimport { INTERACTIVE_INPUTS, INTERACTIVE_OUTPUT } from '../base/mixin/interactive-mixin.class';\r\nimport { AXBaseTextBoxMixin } from '../base/mixin/mixin.class';\r\nimport {\r\n TEXTBOX_INPUTS,\r\n TEXTBOX_OUTPUT,\r\n} from '../base/mixin/textbox-mixin.class';\r\nimport { VALUE_INPUTS, VALUE_OUTPUT } from '../base/mixin/value-mixin.class';\r\nimport { AXInputMaskComponent } from '../input-mask';\r\n\r\n/**\r\n * The Textbox is a component which detects user interaction and triggers a corresponding event\r\n *\r\n * @category Components\r\n */\r\n@Component({\r\n selector: 'ax-text-box',\r\n templateUrl: 'textbox.component.html',\r\n inputs: [ ...INTERACTIVE_INPUTS, ...VALUE_INPUTS, ...TEXTBOX_INPUTS],\r\n outputs: [ ...INTERACTIVE_OUTPUT, ...VALUE_OUTPUT, ...TEXTBOX_OUTPUT],\r\n encapsulation: ViewEncapsulation.None,\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n host: { class: 'ax-editor-container' }\r\n})\r\nexport class AXTextBoxComponent extends AXBaseTextBoxMixin {\r\n\r\n /**\r\n * @ignore\r\n */\r\n constructor(elementRef: ElementRef, cdr: ChangeDetectorRef) {\r\n super(elementRef, cdr);\r\n }\r\n}\r\n","<ng-content select=\"ax-prefix\">\r\n</ng-content>\r\n<input class=\"ax-input\" [attr.name]=\"name\" [attr.type]=\"type\" [attr.placeholder]=\"placeholder\" [attr.maxlength]=\"maxLength\"\r\n [class.ax-state-disabled]=\"disabled\" [class.ax-state-readonly]=\"readonly\" [disabled]=\"disabled\"\r\n [readonly]=\"readonly\" [tabindex]=\"tabIndex\" [(ngModel)]=\"value\" (focus)=\"_emitOnFocusEvent($event)\"\r\n (blur)=\"_emitOnBlurEvent($event)\" [attr.autocomplete]=\"autoComplete\">\r\n<ng-content select=\"ax-suffix\">\r\n</ng-content>\r\n<ng-content select=\"ax-validation-rule\">\r\n</ng-content>\r\n<ng-content select=\"ax-input-mask\">\r\n</ng-content>","import { CommonModule } from '@angular/common';\r\nimport { NgModule } from '@angular/core';\r\nimport { FormsModule } from '@angular/forms';\r\nimport { NgxMaskModule } from 'ngx-mask';\r\nimport { AXButtonModule } from '../button';\r\nimport { AXEditorDecoratorModule } from '../decorators';\r\nimport { AXIconModule } from '../icon';\r\nimport { AXTextBoxComponent } from './textbox.component';\r\n\r\n\r\n@NgModule({\r\n imports: [\r\n CommonModule,\r\n FormsModule,\r\n AXButtonModule,\r\n AXEditorDecoratorModule,\r\n AXIconModule,\r\n NgxMaskModule.forChild()\r\n ],\r\n exports: [AXTextBoxComponent],\r\n declarations: [AXTextBoxComponent],\r\n providers: [],\r\n})\r\nexport class AXTextBoxModule { }\r\n","import { NgModule } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\nimport { AXDatePickerComponent } from './datepicker.component';\r\nimport { AXCalendarModule } from '../calendar';\r\nimport { AXButtonModule } from '../button';\r\nimport { AXPopoverModule } from '../popover';\r\nimport { AXEditorDecoratorModule } from '../decorators';\r\nimport { AXIconModule } from '../icon';\r\nimport { AXDateTimeModule } from '@acorex/core';\r\nimport { AXTextBoxModule } from '../textbox';\r\nimport { FormsModule } from '@angular/forms';\r\n\r\nconst COMPONENT = [AXDatePickerComponent];\r\nconst MODULES = [\r\n CommonModule,\r\n AXCalendarModule,\r\n AXTextBoxModule,\r\n AXButtonModule,\r\n AXPopoverModule,\r\n AXEditorDecoratorModule,\r\n AXIconModule,\r\n AXDateTimeModule,\r\n FormsModule\r\n];\r\n\r\n@NgModule({\r\n declarations: [...COMPONENT],\r\n imports: [...MODULES],\r\n exports: [...COMPONENT],\r\n providers: [],\r\n})\r\nexport class AXDatepickerModule { }\r\n","import { Component, ViewEncapsulation, ChangeDetectionStrategy, ElementRef, ChangeDetectorRef } from '@angular/core';\r\nimport { AXBaseComponentMixin } from '../base';\r\nimport { AXButtonItem } from '../button';\r\nimport { AXDialogOptions } from './dialog.class';\r\n\r\n@Component({\r\n selector: 'ax-dialog',\r\n templateUrl: './dialog.component.html',\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n encapsulation: ViewEncapsulation.None\r\n})\r\nexport class AXDialogComponent extends AXBaseComponentMixin {\r\n\r\n constructor(\r\n elementRef: ElementRef,\r\n cdr: ChangeDetectorRef\r\n ) {\r\n super(elementRef, cdr);\r\n }\r\n\r\n options: AXDialogOptions;\r\n _icon: string;\r\n close: () => void;\r\n\r\n onInit() {\r\n switch (this.options.type) {\r\n case 'success':\r\n this._icon = 'ax-ic ax-ic-check';\r\n break;\r\n case 'danger':\r\n this._icon = 'ax-ic ax-ic-error-filled';\r\n break;\r\n case 'warning':\r\n this._icon = 'ax-ic ax-ic-warning-filled';\r\n break;\r\n default:\r\n this._icon = 'ax-ic ax-ic-info-filled';\r\n break;\r\n }\r\n }\r\n\r\n _handleButtonClick(button: AXButtonItem) {\r\n if (button.onClick) {\r\n button.onClick();\r\n }\r\n }\r\n\r\n}\r\n","<div class=\"ax-popup-wrapper\" aria-modal=\"true\" cdkTrapFocus>\r\n <div class=\"ax-dialog ax-{{options.type}}-default\" tabindex=\"0\" cdkDrag role=\"alert\" cdkDragHandle>\r\n <div class=\"ax-dialog-icon-side\">\r\n <i class=\"ax-dialog-icon {{_icon}}\"></i>\r\n </div>\r\n <div class=\"ax-dialog-content-side\">\r\n <div class=\"ax-dialog-title\">{{options.title}}</div>\r\n <div class=\"ax-dialog-content\">{{options.content}}</div>\r\n </div>\r\n <div class=\"ax-dialog-dismiss-icon\">\r\n <i class=\"ax-ic ax-ic-close\" *ngIf=\"options.dismissible\" (click)=\"close()\"></i>\r\n </div>\r\n <footer class=\"ax-dialog-footer\">\r\n <ng-container *ngFor=\"let button of options.buttons\">\r\n <ax-button [text]=\"button.text\" [submitBehavior]=\"button.submitBehavior\" [cancelBehavior]=\"button.cancelBehavior\" (onClick)=\"_handleButtonClick(button)\" [class]=\"button.cssClass\" [look]=\"button.look\" [color]=\"button.color\"></ax-button>\r\n <div class=\"ax-ml-2\"></div>\r\n </ng-container>\r\n </footer>\r\n </div>\r\n\r\n</div>","import { AXTranslator } from '@acorex/core';\r\nimport { Overlay, ScrollStrategyOptions } from '@angular/cdk/overlay';\r\nimport { ComponentPortal } from '@angular/cdk/portal';\r\nimport { Injectable, Injector } from '@angular/core';\r\nimport { AXStyleColorType } from '../base/styles.class';\r\nimport {\r\n AXDialogOptions,\r\n AXDialogRef,\r\n} from './dialog.class';\r\nimport { AXDialogComponent } from './dialog.component';\r\n\r\n/**\r\n * The Button is a component which detects user interaction and triggers a corresponding event\r\n *\r\n * @category Components\r\n */\r\n@Injectable({ providedIn: 'root' })\r\nexport class AXDialogService {\r\n\r\n /**\r\n * @ignore\r\n */\r\n constructor(\r\n private overlayService: Overlay,\r\n private parentInjector: Injector,\r\n private sso: ScrollStrategyOptions\r\n ) { }\r\n\r\n /**\r\n * Show an alert box with 'Okay' button.\r\n */\r\n alert(title: string, content: string, type: AXStyleColorType = 'primary'): Promise<void> {\r\n return new Promise((resolve) => {\r\n const popup = this.open({\r\n title,\r\n type: type,\r\n content,\r\n buttons: [\r\n {\r\n name: 'confirm',\r\n text: AXTranslator.get('common.okay'),\r\n color: type,\r\n onClick: () => {\r\n popup.close();\r\n if (resolve) {\r\n resolve();\r\n }\r\n },\r\n },\r\n ],\r\n });\r\n });\r\n }\r\n\r\n /**\r\n * Show a confirm box with 'Okay' & 'Cancel' buttons.\r\n */\r\n confirm(title: string, content: string, type: AXStyleColorType = 'primary'): Promise<void> {\r\n return new Promise((resolve, reject) => {\r\n const popup = this.open({\r\n title,\r\n content,\r\n type,\r\n buttons: [\r\n {\r\n name: 'confirm',\r\n text: AXTranslator.get('common.okay'),\r\n color: type,\r\n onClick: () => {\r\n popup.close();\r\n if (resolve) {\r\n resolve();\r\n }\r\n },\r\n submitBehavior: true,\r\n cancelBehavior: false,\r\n },\r\n {\r\n name: 'cancel',\r\n text: AXTranslator.get('common.cancel'),\r\n color: `light`,\r\n onClick: () => {\r\n popup.close();\r\n if (reject) {\r\n reject();\r\n }\r\n },\r\n submitBehavior: false,\r\n cancelBehavior: true,\r\n },\r\n ],\r\n });\r\n });\r\n }\r\n\r\n /**\r\n * Show a custom dialog box.\r\n */\r\n show(options: AXDialogOptions): Promise<{ name: string }> {\r\n return new Promise((resolve) => {\r\n const popup = this.open(options);\r\n options.buttons?.forEach((b) => {\r\n const orginalClick = b.onClick;\r\n b.onClick = () => {\r\n popup.close();\r\n if (orginalClick) {\r\n orginalClick();\r\n }\r\n if (resolve) {\r\n resolve({ name: b.name });\r\n }\r\n };\r\n });\r\n });\r\n }\r\n\r\n private open(options: AXDialogOptions): AXDialogRef {\r\n let positionStrategy = this.overlayService\r\n .position()\r\n .global()\r\n .centerHorizontally()\r\n .centerVertically();\r\n const overlayRef = this.overlayService.create({\r\n positionStrategy,\r\n hasBackdrop: true,\r\n scrollStrategy: this.sso.block(),\r\n panelClass: ['ax-animate-fadeIn', 'ax-animate-faster'],\r\n });\r\n const dialogPortal = new ComponentPortal(\r\n AXDialogComponent,\r\n null,\r\n this.parentInjector\r\n );\r\n const host = overlayRef.attach(dialogPortal);\r\n if (host.instance) {\r\n Object.assign(host.instance, {\r\n options: options,\r\n close: () => {\r\n overlayRef.dispose();\r\n },\r\n });\r\n setTimeout(() => {\r\n host.changeDetectorRef.detectChanges();\r\n }, 0);\r\n }\r\n\r\n return {\r\n close: () => {\r\n host.instance.close();\r\n },\r\n };\r\n }\r\n}\r\n","import { ChangeDetectorRef, ElementRef, Inject, Injectable } from \"@angular/core\";\r\nimport { AXBaseComponentMixin } from \"../base\";\r\nimport { AXLoadingService } from \"../loading\";\r\n\r\n@Injectable()\r\nexport abstract class AXPageComponent extends AXBaseComponentMixin {\r\n\r\n constructor(\r\n elementRef: ElementRef,\r\n cdr: ChangeDetectorRef,\r\n @Inject(AXLoadingService) private _loadingService\r\n ) {\r\n super(elementRef, cdr);\r\n }\r\n\r\n private _loadingId: number;\r\n\r\n private _isLoading: boolean = false;\r\n public get isLoading(): boolean {\r\n return this._isLoading;\r\n }\r\n public set isLoading(v: boolean) {\r\n this._isLoading = v;\r\n if (this._loadingId && !v) {\r\n this._loadingService.hide(this._loadingId);\r\n this._loadingId = null;\r\n }\r\n if (v) {\r\n this._loadingId = this._loadingService.show(this._getHostElement());\r\n }\r\n }\r\n}","import { ChangeDetectionStrategy, Component, OnInit, TemplateRef, ViewChild } from '@angular/core';\r\n\r\n@Component({\r\n selector: 'ax-page-footer',\r\n template: `\r\n <ng-content select=\"ax-prefix\">\r\n </ng-content>\r\n <ng-content select=\"ax-suffix\">\r\n </ng-content>\r\n `,\r\n changeDetection: ChangeDetectionStrategy.OnPush\r\n})\r\nexport class AXPageFooterComponent {\r\n\r\n @ViewChild(TemplateRef, { static: true })\r\n template: TemplateRef<any>;\r\n}","import { EventEmitter, Injectable, ViewChild } from '@angular/core';\r\nimport { AXEvent } from '../base/events.class';\r\n\r\n\r\nimport { AXPageComponent } from './page.component';\r\nimport { AXPageFooterComponent } from './page-footer.component';\r\n\r\nexport const TAB_META_KEY = '__meta__';\r\n\r\nexport class AXPageCloseEvent extends AXEvent {\r\n data?: any\r\n}\r\nexport class AXPageClosing {\r\n cancel: boolean = false;\r\n data?: any;\r\n}\r\n\r\nexport class AXPageResult {\r\n sender: AXBasePageComponent;\r\n data?: any;\r\n}\r\n\r\n/**\r\n* Defines a CSS class—or multiple classes separated by spaces— which are applied to a span element inside the Button. Allows the usage of custom icons after the primary text.\r\n*/\r\nexport class AXPageClosedPromise extends Promise<AXPageResult> {\r\n\r\n private closeMethod: () => void;\r\n constructor(\r\n executor: (resolve: (value?: AXPageResult | PromiseLike<AXPageResult>) => void,\r\n reject: (reason?: any) => void) => void\r\n ) {\r\n super(executor);\r\n }\r\n\r\n public close() {\r\n if (this.closeMethod) {\r\n this.closeMethod();\r\n }\r\n }\r\n}\r\n\r\n\r\n@Injectable()\r\nexport class AXBasePageComponent {\r\n\r\n @ViewChild(AXPageComponent, { static: true })\r\n private pageContainer: AXPageComponent;\r\n\r\n @ViewChild(AXPageFooterComponent, { static: true })\r\n footer: AXPageFooterComponent;\r\n\r\n private _isLoading: boolean = false;\r\n public get isLoading(): boolean {\r\n return this._isLoading;\r\n }\r\n public set isLoading(v: boolean) {\r\n ;\r\n this._isLoading = v;\r\n if (this.pageContainer) {\r\n this.pageContainer.isLoading = this.isLoading;\r\n }\r\n }\r\n\r\n\r\n private _isPopup: boolean = false;\r\n public get isPopup(): boolean {\r\n return this._isPopup;\r\n }\r\n\r\n\r\n\r\n onClosed: EventEmitter<AXPageCloseEvent> = new EventEmitter<AXPageCloseEvent>();\r\n\r\n close(data?: any) {\r\n this.onClosed.emit({\r\n component: this,\r\n data: data\r\n });\r\n }\r\n\r\n onClosing(e: AXPageClosing): void | Promise<void> {\r\n }\r\n\r\n ngOnDestroy() {\r\n this.onClosed.unsubscribe();\r\n }\r\n}","import { ChangeDetectionStrategy, Component, OnInit, TemplateRef, ViewChild } from '@angular/core';\r\n\r\n@Component({\r\n selector: 'ax-page-header',\r\n template: `\r\n <ng-content select=\"ax-prefix\">\r\n </ng-content>\r\n <ng-content select=\"ax-suffix\">\r\n </ng-content>\r\n `,\r\n changeDetection: ChangeDetectionStrategy.OnPush\r\n})\r\nexport class AXPageHeaderComponent {\r\n\r\n @ViewChild(TemplateRef, { static: true })\r\n template: TemplateRef<any>;\r\n}","import { NgModule } from '@angular/core';\r\nimport { AXPageFooterComponent } from './page-footer.component';\r\nimport { AXPageHeaderComponent } from './page-header.component';\r\n\r\n\r\n@NgModule({\r\n imports: [],\r\n exports: [AXPageFooterComponent, AXPageHeaderComponent],\r\n declarations: [AXPageFooterComponent, AXPageHeaderComponent],\r\n providers: [],\r\n})\r\nexport class AXPageModule { }\r\n","import { NgModule } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\nimport { AXDialogComponent } from './dialog.component';\r\nimport { AXButtonModule } from '../button';\r\nimport { A11yModule } from '@angular/cdk/a11y';\r\nimport { DragDropModule } from '@angular/cdk/drag-drop';\r\nimport { AXPageModule } from '../page';\r\nimport { AXEditorDecoratorModule } from '../decorators';\r\n\r\nconst COMPONENT = [AXDialogComponent];\r\nconst MODULES = [CommonModule, DragDropModule, A11yModule, AXButtonModule, AXPageModule, AXEditorDecoratorModule];\r\n\r\n@NgModule({\r\n declarations: [...COMPONENT],\r\n imports: [...MODULES],\r\n exports: [...COMPONENT],\r\n providers: [],\r\n})\r\nexport class AXDialogModule { }\r\n","import { Component, ViewEncapsulation, ChangeDetectionStrategy, ElementRef, ChangeDetectorRef, NgZone, Input, HostBinding, Output, EventEmitter, HostListener } from '@angular/core';\r\nimport { AXBaseComponentMixin, AXEvent } from '../base';\r\n\r\n@Component({\r\n selector: 'ax-drawer',\r\n template: `\r\n <ng-content>\r\n </ng-content>\r\n `,\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n encapsulation: ViewEncapsulation.None,\r\n host: { class: 'ax-drawer' }\r\n})\r\nexport class AXDrawerComponent extends AXBaseComponentMixin {\r\n\r\n constructor(\r\n private elementRef: ElementRef,\r\n cdr: ChangeDetectorRef,\r\n private zone: NgZone\r\n ) {\r\n super(elementRef, cdr);\r\n }\r\n\r\n @Output()\r\n onChanged: EventEmitter<AXEvent> = new EventEmitter<AXEvent>();\r\n\r\n @Input()\r\n mode: 'push' | 'overlay' = 'push';\r\n\r\n _currentMode: 'push' | 'overlay'\r\n\r\n @Input()\r\n location: 'start' | 'end' = 'start';\r\n\r\n private _backdrop: HTMLDivElement;\r\n\r\n private _collapsed: boolean = false;\r\n @Input()\r\n public get collapsed(): boolean {\r\n return this._collapsed;\r\n }\r\n public set collapsed(v: boolean) {\r\n if (v != this._collapsed) {\r\n this._collapsed = v;\r\n this._updateClass();\r\n this._emitChange();\r\n }\r\n }\r\n\r\n onInit() {\r\n this._getHostElement().classList.add(this.location == 'start' ? 'ax-drawer-start' : 'ax-drawer-end');\r\n this._currentMode = this.mode;\r\n }\r\n\r\n private _updateClass() {\r\n this.zone.runOutsideAngular(() => {\r\n const elm = this._getHostElement();\r\n // \r\n this._currentMode == 'overlay' ? this._setOverlayMode() : this._setPushMode();\r\n //\r\n if (this.collapsed) {\r\n elm.classList.remove('ax-expanded');\r\n elm.classList.add('ax-collapsed');\r\n if (this._currentMode == 'overlay') {\r\n this._removeBackdrop();\r\n }\r\n }\r\n else {\r\n elm.classList.add('ax-expanded');\r\n elm.classList.remove('ax-collapsed');\r\n if (this._currentMode == 'overlay') {\r\n this._addBackdrop();\r\n }\r\n }\r\n });\r\n }\r\n\r\n onViewInit() {\r\n this._detectSize();\r\n }\r\n\r\n toggle() {\r\n this.collapsed = !this.collapsed;\r\n }\r\n\r\n close() {\r\n this.collapsed = true;\r\n }\r\n\r\n open() {\r\n this.collapsed = false;\r\n }\r\n\r\n @HostListener('window:resize', ['$event'])\r\n _handleWindowsResize(e: UIEvent) {\r\n this._detectSize();\r\n }\r\n\r\n\r\n _detectSize() {\r\n //TODO detect break size\r\n const bound = this._getHostElement().parentElement.getBoundingClientRect();\r\n if (bound.width == 0) {\r\n console.log('Drawe invalid size', bound);\r\n setTimeout(() => {\r\n this._detectSize();\r\n }, 1);\r\n return;\r\n }\r\n if (bound.width < 400) {\r\n this._currentMode = 'overlay';\r\n this.collapsed = true;\r\n }\r\n else {\r\n this._currentMode = this.mode;\r\n }\r\n this._updateClass();\r\n this._emitChange();\r\n }\r\n\r\n private _emitChange() {\r\n this.onChanged.emit({\r\n component: this,\r\n htmlElement: this.elementRef.nativeElement\r\n })\r\n }\r\n\r\n private _setOverlayMode() {\r\n this._currentMode = 'overlay';\r\n this._getHostElement().classList.remove('ax-drawer-push');\r\n this._getHostElement().classList.add('ax-drawer-overlay');\r\n\r\n }\r\n\r\n private _setPushMode() {\r\n this._currentMode = 'push';\r\n this._getHostElement().classList.remove('ax-drawer-overlay');\r\n this._getHostElement().classList.add('ax-drawer-push');\r\n this._removeBackdrop();\r\n }\r\n\r\n private _addBackdrop() {\r\n if (!this._backdrop) {\r\n this._backdrop = document.createElement('div');\r\n this._backdrop.classList.add('ax-drawer-backdrop')\r\n this._getHostElement().parentElement.prepend(this._backdrop);\r\n this._backdrop.addEventListener('click', this._handleBackfropClick.bind(this));\r\n }\r\n }\r\n\r\n private _removeBackdrop() {\r\n if (this._backdrop) {\r\n this._backdrop.removeEventListener('click', this._handleBackfropClick.bind(this));\r\n this._getHostElement().parentElement.removeChild(this._backdrop);\r\n this._backdrop = null;\r\n }\r\n }\r\n\r\n private _handleBackfropClick(e: MouseEvent) {\r\n this._removeBackdrop();\r\n this.collapsed = true;\r\n }\r\n\r\n}\r\n","import { Component, ViewEncapsulation, ChangeDetectionStrategy, ElementRef, ChangeDetectorRef, NgZone, ContentChildren, QueryList } from '@angular/core';\r\nimport { AXBaseComponentMixin } from '../base';\r\nimport { AXDrawerComponent } from './drawer.component';\r\n\r\n@Component({\r\n selector: 'ax-drawer-container',\r\n template: `\r\n <ng-content select=\"ax-drawer[location='start']\">\r\n </ng-content>\r\n <ng-content select=\"ax-drawer-content\">\r\n </ng-content>\r\n <ng-content select=\"ax-drawer[location='end']\">\r\n </ng-content>\r\n `,\r\n inputs: ['rtl'],\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n encapsulation: ViewEncapsulation.None,\r\n host: { class: 'ax-drawer-container' }\r\n})\r\nexport class AXDrawerContainerComponent extends AXBaseComponentMixin {\r\n\r\n constructor(\r\n elementRef: ElementRef,\r\n cdr: ChangeDetectorRef,\r\n private zone: NgZone\r\n ) {\r\n super(elementRef, cdr);\r\n }\r\n\r\n\r\n @ContentChildren(AXDrawerComponent)\r\n drawers: QueryList<AXDrawerComponent>;\r\n\r\n\r\n onViewInit() {\r\n this._updateWidth();\r\n // add animation\r\n setTimeout(() => {\r\n this._getHostElement().querySelectorAll('ax-drawer').forEach(c => {\r\n c.classList.add('ax-animated');\r\n });\r\n }, 100);\r\n\r\n this.drawers.forEach(c => {\r\n c.onChanged.subscribe(c => {\r\n this._updateWidth();\r\n });\r\n });\r\n }\r\n\r\n private _updateWidth() {\r\n this.zone.runOutsideAngular(() => {\r\n const container = this._getHostElement().closest('ax-drawer-container') as HTMLDivElement;\r\n const parentWidth = this._getHostElement().getBoundingClientRect().width;\r\n let w = 0;\r\n this._getHostElement().querySelectorAll('ax-drawer').forEach(c => {\r\n const elm = c as HTMLDivElement;\r\n const width = elm.getBoundingClientRect().width;\r\n const overflow = parentWidth < width;\r\n const diff = width - parentWidth;\r\n w += ['ax-expanded', 'ax-drawer-push'].every(c => elm.classList.contains(c)) ? width : 0;\r\n elm.style.setProperty('--attr-width', `${width}px`);\r\n //TODO check overflow\r\n elm.style.setProperty('--attr-diff', `${overflow ? diff : 0}px`);\r\n });\r\n container.style.setProperty('--attr-content-width', `${parentWidth - w}px`);\r\n });\r\n }\r\n}\r\n","import { Component, ViewEncapsulation, ChangeDetectionStrategy, ElementRef, ChangeDetectorRef } from '@angular/core';\r\nimport { AXBaseComponentMixin } from '../base';\r\n\r\n@Component({\r\n selector: 'ax-drawer-content',\r\n template: `\r\n <ng-content>\r\n </ng-content>\r\n `,\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n encapsulation: ViewEncapsulation.None,\r\n host: { class: 'ax-drawer-content' }\r\n})\r\nexport class AXDrawerContentComponent extends AXBaseComponentMixin {\r\n\r\n constructor(\r\n elementRef: ElementRef,\r\n cdr: ChangeDetectorRef\r\n ) {\r\n super(elementRef, cdr);\r\n }\r\n\r\n\r\n}\r\n","import { NgModule } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\nimport { AXDrawerComponent } from './drawer.component';\r\nimport { AXDrawerContainerComponent } from './drawer-container.component';\r\nimport { AXDrawerContentComponent } from './drawer-content.component';\r\n\r\nconst COMPONENT = [AXDrawerComponent, AXDrawerContainerComponent, AXDrawerContentComponent];\r\nconst MODULES = [CommonModule];\r\n\r\n@NgModule({\r\n declarations: [...COMPONENT],\r\n imports: [...MODULES],\r\n exports: [...COMPONENT],\r\n providers: [],\r\n})\r\nexport class AXDrawerModule { }\r\n","import {\r\n Component,\r\n ViewEncapsulation,\r\n ChangeDetectionStrategy,\r\n ElementRef,\r\n ChangeDetectorRef,\r\n ContentChildren,\r\n ViewChildren,\r\n QueryList,\r\n EventEmitter,\r\n Output,\r\n Input,\r\n ViewChild,\r\n Optional\r\n} from '@angular/core';\r\nimport { Subscription } from 'rxjs';\r\nimport { AXBaseDropdownMixin, AXButtonClickEvent, AXClickEvent } from '../base';\r\nimport { DROPDOWN_INPUTS, DROPDOWN_OUTPUT, _DropdownComponenetMixin } from '../base/mixin/dropdown-mixin.class';\r\nimport { _InteractiveComponenetMixin } from '../base/mixin/interactive-mixin.class';\r\nimport { AXButtonComponent, AXButtonItem, AXButtonItemComponent } from '../button';\r\nimport { AXPopoverComponent } from '../popover';\r\n\r\n\r\n@Component({\r\n selector: 'ax-dropdown-panel',\r\n templateUrl: './dropdown-panel.component.html',\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n encapsulation: ViewEncapsulation.None,\r\n inputs: [...DROPDOWN_INPUTS],\r\n outputs: [...DROPDOWN_OUTPUT],\r\n})\r\nexport class AXDropdownPanelComponent extends AXBaseDropdownMixin {\r\n\r\n constructor(\r\n elementRef: ElementRef,\r\n cdr: ChangeDetectorRef,\r\n @Optional()\r\n public _parent: AXButtonComponent,\r\n ) {\r\n super(elementRef, cdr);\r\n this._target = this._parent._getHostElement();\r\n }\r\n\r\n @ContentChildren(AXButtonItemComponent) _contentButtons: QueryList<AXButtonItemComponent>;\r\n @ViewChildren(AXButtonItemComponent) _viewButtons: QueryList<AXButtonItemComponent>;\r\n\r\n @Output()\r\n onItemClick: EventEmitter<AXButtonClickEvent> = new EventEmitter<AXButtonClickEvent>();\r\n\r\n @ViewChild(AXPopoverComponent, { static: true })\r\n popover: AXPopoverComponent;\r\n\r\n private _items: AXButtonItem[];\r\n @Input()\r\n public get items(): AXButtonItem[] {\r\n return this._items || [];\r\n }\r\n public set items(v: AXButtonItem[]) {\r\n this._items = v;\r\n this._cdr.markForCheck();\r\n }\r\n\r\n _needBorder: boolean = false;\r\n _subs: Subscription[] = [];\r\n _target: HTMLElement;\r\n\r\n private _getAllButtons(): AXButtonItemComponent[] {\r\n return [...Array.from(this._viewButtons), ...Array.from(this._contentButtons)];\r\n }\r\n\r\n onViewInit() {\r\n super.onViewInit();\r\n\r\n this._getAllButtons().forEach(c => {\r\n this._needBorder = true;\r\n this._subs.push(c.onClick.subscribe(this._handleOnItemClick.bind(this)));\r\n this._cdr.markForCheck();\r\n });\r\n }\r\n\r\n onDestroy(): void {\r\n this._subs.forEach(s => {\r\n s?.unsubscribe();\r\n });\r\n }\r\n\r\n _emitOnItemClickEvent(e: AXClickEvent, item: AXButtonItemComponent): void {\r\n this.onItemClick.emit({\r\n component: this,\r\n htmlElement: this._getHostElement(),\r\n nativeEvent: e.nativeEvent,\r\n name: item.name,\r\n data: item.data,\r\n });\r\n }\r\n\r\n private _handleOnItemClick(e: AXClickEvent) {\r\n this.close();\r\n this._emitOnItemClickEvent(e, e.component);\r\n\r\n }\r\n}\r\n","<ax-popover [target]=\"_target\" [position]=\"position\" [openTrigger]=\"'toggle'\" [closeTrigger]=\"'clickout'\">\r\n <div class=\"ax-overlay-pane\" [class.ax-dropdown-list]=\"_needBorder\" >\r\n <ng-container *ngIf=\"items && items.length;else panelTpl\">\r\n <ax-button-item [text]=\"item.text\" [color]=\"item.color\" *ngFor=\"let item of items\">\r\n <ax-prefix *ngIf=\"item.iconClass\">\r\n <ax-icon [icon]=\"item.iconClass\"></ax-icon>\r\n </ax-prefix>\r\n </ax-button-item>\r\n </ng-container>\r\n <ng-template #panelTpl>\r\n <ng-content select=\"[panel],ax-button-item\">\r\n </ng-content>\r\n </ng-template>\r\n </div>\r\n</ax-popover>","import { OverlayModule } from '@angular/cdk/overlay';\r\nimport { CommonModule } from '@angular/common';\r\nimport { NgModule } from '@angular/core';\r\nimport { AXButtonModule } from '../button';\r\nimport { AXEditorDecoratorModule } from '../decorators';\r\nimport { AXIconModule } from '../icon';\r\nimport { AXPopoverModule } from '../popover';\r\nimport { AXDropdownPanelComponent } from './dropdown-panel.component';\r\n\r\n@NgModule({\r\n imports: [CommonModule, AXButtonModule, OverlayModule, AXIconModule, AXEditorDecoratorModule, AXPopoverModule],\r\n exports: [ AXDropdownPanelComponent],\r\n declarations: [ AXDropdownPanelComponent],\r\n providers: [],\r\n})\r\nexport class AXDropdownModule { }\r\n","import { ChangeDetectionStrategy, ChangeDetectorRef, Component, ElementRef, OnInit, ViewEncapsulation } from '@angular/core';\r\nimport { AXBaseComponentMixin } from '../base/mixin/mixin.class';\r\n\r\n@Component({\r\n selector: 'ax-form-field',\r\n template: '<ng-content></ng-content>',\r\n encapsulation: ViewEncapsulation.None,\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n})\r\nexport class AXFormFieldComponent extends AXBaseComponentMixin {\r\n\r\n constructor(\r\n elementRef: ElementRef,\r\n cdr: ChangeDetectorRef\r\n ) {\r\n super(elementRef, cdr);\r\n }\r\n}","import { ChangeDetectionStrategy, ChangeDetectorRef, Component, ElementRef, OnInit, ViewEncapsulation } from '@angular/core';\r\nimport { AXBaseComponentMixin } from '../base/mixin/mixin.class';\r\n\r\n@Component({\r\n selector: 'ax-form-hint',\r\n template: ' <p class=\"ax-text-light-400 ax-text-xs ax-py-1 dark:ax-text-light-300\"><ng-content></ng-content></p>',\r\n encapsulation: ViewEncapsulation.None,\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n})\r\nexport class AXFormHintComponent extends AXBaseComponentMixin {\r\n\r\n constructor(\r\n elementRef: ElementRef,\r\n cdr: ChangeDetectorRef\r\n ) {\r\n super(elementRef, cdr);\r\n }\r\n}","import { ChangeDetectionStrategy, ChangeDetectorRef, Component, ElementRef, OnInit, ViewEncapsulation } from '@angular/core';\r\nimport { AXBaseComponentMixin } from '../base/mixin/mixin.class';\r\nimport { AXValidationResult } from '../validation/validation.class';\r\n\r\n@Component({\r\n selector: 'ax-form',\r\n template: '<div class=\"ax-form\"><ng-content></ng-content></div>',\r\n encapsulation: ViewEncapsulation.None,\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n})\r\nexport class AXFormComponent extends AXBaseComponentMixin {\r\n\r\n constructor(\r\n elementRef: ElementRef,\r\n private cdr: ChangeDetectorRef\r\n ) {\r\n super(elementRef, cdr);\r\n }\r\n\r\n\r\n _getComponenets() {\r\n return Array.from(this._getHostElement().querySelectorAll('[ax-form-input=\"true\"]'));\r\n }\r\n\r\n validate(): Promise<AXValidationResult> {\r\n const widgets = this._getComponenets();\r\n //\r\n return new Promise<AXValidationResult>((resolve, reject) => {\r\n if (widgets.length === 0) {\r\n return Promise.resolve({ result: true });\r\n }\r\n Promise.all(widgets.map((c) => (c as any).__axContext__.validate())).then((rules: any) => {\r\n const failed = rules.filter((c: any) => !c.result);\r\n if (failed.length) {\r\n reject({\r\n result: false,\r\n items: failed\r\n });\r\n }\r\n else {\r\n resolve({ result: true });\r\n }\r\n });\r\n });\r\n }\r\n\r\n clear() {\r\n const widgets = this._getComponenets();\r\n widgets.forEach(w => {\r\n (w as any).__axContext__.clear();\r\n });\r\n\r\n }\r\n}","import { CommonModule } from '@angular/common';\r\nimport { NgModule } from '@angular/core';\r\n\r\nimport { AXFormFieldComponent } from './form-field.component';\r\nimport { AXFormHintComponent } from './form-hint.component';\r\nimport { AXFormComponent } from './form.component';\r\n\r\n@NgModule({\r\n imports: [CommonModule],\r\n exports: [AXFormFieldComponent, AXFormComponent,AXFormHintComponent],\r\n declarations: [AXFormFieldComponent, AXFormComponent,AXFormHintComponent],\r\n providers: [],\r\n})\r\nexport class AXFormModule { }\r\n","import { Component, ViewEncapsulation, ChangeDetectionStrategy, Input, ChangeDetectorRef, ElementRef } from '@angular/core';\r\nimport IMask from 'imask';\r\nimport { AXBaseComponent } from '../base';\r\nimport { AnyMaskedOptions } from 'imask';\r\nimport { AXTextBoxComponent } from '../textbox';\r\n\r\n@Component({\r\n selector: 'ax-input-mask',\r\n template: '',\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n encapsulation: ViewEncapsulation.None,\r\n})\r\nexport class AXInputMaskComponent extends AXBaseComponent {\r\n\r\n\r\n private _maskObj: IMask.InputMask<AnyMaskedOptions>\r\n\r\n /**\r\n * @ignore\r\n */\r\n constructor(\r\n private _elementRef: ElementRef,\r\n _cdr: ChangeDetectorRef,\r\n private _textbox: AXTextBoxComponent\r\n ) {\r\n super(_elementRef, _cdr);\r\n }\r\n\r\n onViewInit(): void {\r\n this._maskObj = IMask(this._textbox._getHostElement().querySelector('input'), {\r\n mask: this.mask \r\n })\r\n }\r\n\r\n\r\n\r\n private _prefix: string;\r\n @Input()\r\n public get prefix(): string {\r\n return this._prefix || '';\r\n }\r\n public set prefix(v: string) {\r\n this._prefix = v;\r\n }\r\n\r\n\r\n\r\n private _suffix: string;\r\n @Input()\r\n public get suffix(): string {\r\n return this._suffix || '';\r\n }\r\n public set suffix(v: string) {\r\n this._suffix = v;\r\n }\r\n\r\n\r\n\r\n @Input()\r\n showMaskTyped: boolean = false;\r\n\r\n @Input()\r\n clearIfNotMatch: boolean = false;\r\n\r\n @Input()\r\n mask: any;\r\n\r\n}\r\n","import { NgModule } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\nimport { AXInputMaskComponent } from './input-mask.component';\r\nimport { NgxMaskModule } from 'ngx-mask';\r\nimport {IMaskModule} from 'angular-imask';\r\n\r\nconst COMPONENT = [AXInputMaskComponent];\r\nconst MODULES = [CommonModule, NgxMaskModule.forRoot(),IMaskModule];\r\n\r\n@NgModule({\r\n declarations: [...COMPONENT],\r\n imports: [...MODULES],\r\n exports: [...COMPONENT],\r\n providers: [],\r\n})\r\nexport class AXInputMaskModule { }\r\n","import { Component, ViewEncapsulation, ChangeDetectionStrategy, ElementRef, ChangeDetectorRef, Input, Output, EventEmitter } from '@angular/core';\r\nimport { AXBaseComponentMixin } from '../base';\r\n\r\n@Component({\r\n selector: 'ax-label',\r\n templateUrl: './label.component.html',\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n encapsulation: ViewEncapsulation.None\r\n})\r\nexport class AXLabelComponent extends AXBaseComponentMixin {\r\n\r\n constructor(elementRef: ElementRef, cdr: ChangeDetectorRef) {\r\n super(elementRef, cdr);\r\n }\r\n\r\n \r\n private _target : string;\r\n public get target() : string {\r\n return this._target;\r\n }\r\n public set target(v : string) {\r\n this._target = v;\r\n this._cdr.markForCheck();\r\n }\r\n \r\n \r\n\r\n}\r\n","<label [attr.for]=\"target\">\r\n <ng-content></ng-content>\r\n</label>","import { NgModule } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\nimport { AXLabelComponent } from './label.component';\r\n\r\nconst COMPONENT = [AXLabelComponent];\r\nconst MODULES = [CommonModule];\r\n\r\n@NgModule({\r\n declarations: [...COMPONENT],\r\n imports: [...MODULES],\r\n exports: [...COMPONENT],\r\n providers: [],\r\n})\r\nexport class AXLabelModule { }","import {\r\n Component,\r\n ViewEncapsulation,\r\n ChangeDetectionStrategy,\r\n ElementRef,\r\n ChangeDetectorRef,\r\n Input,\r\n Output,\r\n EventEmitter,\r\n} from '@angular/core'\r\nimport { AXBaseComponentMixin, AXEvent, AXItemClickEvent } from '../base'\r\n\r\nexport interface AXMenuItems {\r\n id?: string\r\n name?: string\r\n text?: string\r\n tooltip?: string\r\n parentId?: string\r\n icon?: string\r\n visible?: boolean\r\n disable?: boolean\r\n selected?: boolean\r\n data?: any\r\n style?: string\r\n children?: AXMenuItems[]\r\n isOpen?: boolean\r\n isActive?: boolean\r\n onClick?: (e?: any) => void\r\n}\r\n\r\n@Component({\r\n selector: 'ax-menu',\r\n templateUrl: './menu.component.html',\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n encapsulation: ViewEncapsulation.None,\r\n host: { class: \"ax-menu\" }\r\n})\r\nexport class AXMenuComponent extends AXBaseComponentMixin {\r\n constructor(private elementRef: ElementRef, private cdr: ChangeDetectorRef) {\r\n super(elementRef, cdr)\r\n //TODO: ax-menu\r\n }\r\n\r\n @Input() items: AXMenuItems[]\r\n\r\n @Output()\r\n onMenuItemClick: EventEmitter<\r\n AXItemClickEvent<AXMenuItems>\r\n > = new EventEmitter<AXItemClickEvent<AXMenuItems>>()\r\n\r\n onMenuClick(e: MouseEvent, item: AXMenuItems) {\r\n this.notActive(this.items);\r\n if (item.children?.length > 0) {\r\n this.closeChild(item.children)\r\n }\r\n\r\n item.isActive = !item.isActive\r\n item.isOpen = !item.isOpen\r\n this.onMenuItemClick.emit({\r\n component: this,\r\n item: item,\r\n nativeEvent: e,\r\n })\r\n e.stopPropagation();\r\n e.preventDefault()\r\n }\r\n\r\n notActive(items: AXMenuItems[]) {\r\n items.forEach((element: AXMenuItems) => {\r\n element.isActive = false\r\n if (element.children?.length > 0) {\r\n this.notActive(element.children);\r\n }\r\n });\r\n }\r\n\r\n closeChild(items: AXMenuItems[]) {\r\n items.forEach((element: AXMenuItems) => {\r\n element.isOpen = false\r\n if (element.children?.length > 0) {\r\n this.closeChild(element.children);\r\n }\r\n });\r\n\r\n }\r\n\r\n}\r\n\r\n","<ul>\r\n <ng-container *ngTemplateOutlet=\"recursiveListTmpl; context:{ list: items }\"></ng-container>\r\n</ul>\r\n\r\n<ng-template #recursiveListTmpl let-list=\"list\">\r\n <ng-container *ngFor=\"let item of list\">\r\n <li *ngIf=\"item.visible !=false\" (click)=\"onMenuClick($event,item)\">\r\n <a [ngClass]=\"{'active': item.isActive}\">\r\n <span>{{item.text}}</span>\r\n <ax-icon [ngClass]=\"{'active-icon': item.isOpen}\" *ngIf=\"item?.children?.length > 0\" class=\"ax-ic-chevron\">\r\n </ax-icon>\r\n <ax-icon *ngIf=\"item.icon\" class=\"{{item.icon}}\">\r\n </ax-icon>\r\n </a>\r\n <ul *ngIf=\"item?.children?.length > 0 && item.isOpen\">\r\n <ng-container *ngTemplateOutlet=\"recursiveListTmpl; context:{ list: item.children }\"></ng-container>\r\n </ul>\r\n </li>\r\n </ng-container>\r\n</ng-template>","import { NgModule } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\nimport { AXMenuComponent } from './menu.component';\r\nimport { AXIconModule } from '../icon';\r\n\r\nconst COMPONENT = [AXMenuComponent];\r\nconst MODULES = [CommonModule];\r\n\r\n@NgModule({\r\n declarations: [...COMPONENT],\r\n imports: [...MODULES, AXIconModule],\r\n exports: [...COMPONENT],\r\n providers: [],\r\n})\r\nexport class AXMenuModule { }\r\n","import {\r\n Component,\r\n ViewEncapsulation,\r\n ChangeDetectionStrategy,\r\n ElementRef,\r\n ChangeDetectorRef,\r\n Input,\r\n Output,\r\n EventEmitter,\r\n ViewChild,\r\n} from '@angular/core';\r\nimport IMask from 'imask';\r\nimport { IMaskDirective } from 'angular-imask';\r\nimport { AXBaseTextBoxMixin, AXClickEvent, AXComponentOptionChanged } from '../base';\r\nimport {\r\n TEXTBOX_INPUTS,\r\n TEXTBOX_OUTPUT,\r\n} from '../base/mixin/textbox-mixin.class';\r\nimport _ from 'lodash';\r\n\r\n/**\r\n * The NumberBox is a component which detects user interaction and triggers a corresponding event\r\n *\r\n * @category Components\r\n */\r\n@Component({\r\n selector: 'ax-number-box',\r\n templateUrl: './number-box.component.html',\r\n inputs: [\r\n 'disabled',\r\n 'readonly',\r\n 'tabIndex',\r\n 'size',\r\n 'value',\r\n ...TEXTBOX_INPUTS,\r\n ],\r\n outputs: [\r\n 'valueChange',\r\n 'onValueChanged',\r\n 'onBlur',\r\n 'onFocus',\r\n ...TEXTBOX_OUTPUT,\r\n ],\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n encapsulation: ViewEncapsulation.None,\r\n host: { class: 'ax-editor-container' },\r\n})\r\nexport class AXNumberBoxComponent extends AXBaseTextBoxMixin {\r\n\r\n\r\n\r\n\r\n private _thousandsSeparator: string;\r\n /**\r\n * A character value that specifies the separator character.\r\n */\r\n @Input()\r\n public get thousandsSeparator(): string {\r\n return this._thousandsSeparator;\r\n }\r\n public set thousandsSeparator(v: string) {\r\n this._setOption({\r\n name: \"thousandsSeparator\",\r\n value: v ?? '',\r\n })\r\n }\r\n\r\n private _padDecimalZeros: boolean = false;\r\n /**\r\n * A character value that specifies the separator character.\r\n */\r\n @Input()\r\n public get padDecimalZeros(): boolean {\r\n return this._padDecimalZeros;\r\n }\r\n public set padDecimalZeros(v: boolean) {\r\n this._setOption({\r\n name: \"padDecimalZeros\",\r\n value: v,\r\n })\r\n }\r\n\r\n\r\n\r\n\r\n /**\r\n * Specifies the value that is used to increment or decrement the **Integer** part of number\r\n */\r\n @Input()\r\n step: number = 1;\r\n\r\n\r\n\r\n private _decimals: number = 0;\r\n /**\r\n * Specifies the number of decimals that the user can enter\r\n */\r\n @Input()\r\n public get decimals(): number {\r\n return this._decimals;\r\n }\r\n public set decimals(v: number) {\r\n this._setOption({\r\n name: \"decimals\",\r\n value: v ?? 0,\r\n })\r\n }\r\n\r\n\r\n /**\r\n * Specifies the value that is used to increment or decrement the **Deciaml** part of number\r\n */\r\n @Input()\r\n decimalStep: number | 'auto' = 'auto';\r\n\r\n /**\r\n * Specifies whether the Up and Down spin buttons will be rendered or not\r\n */\r\n @Input()\r\n showSpinButtons: boolean = true;\r\n\r\n private _minValue: number = Number.MIN_SAFE_INTEGER;\r\n /**\r\n * Specifies the smallest value that is valid\r\n */\r\n @Input()\r\n public get minValue(): number {\r\n return this._minValue;\r\n }\r\n public set minValue(v: number) {\r\n this._setOption({\r\n name: \"minValue\",\r\n value: v != null ? Number(v) : Number.MIN_SAFE_INTEGER,\r\n })\r\n }\r\n\r\n private _maxValue: number = Number.MAX_SAFE_INTEGER;\r\n /**\r\n * Specifies the greatest value that is valid\r\n */\r\n @Input()\r\n public get maxValue(): number {\r\n return this._maxValue;\r\n }\r\n public set maxValue(v: number) {\r\n this._setOption({\r\n name: \"maxValue\",\r\n value: v != null ? Number(v) : Number.MAX_SAFE_INTEGER,\r\n })\r\n }\r\n\r\n\r\n /**\r\n * @ignore\r\n */\r\n _maskObj: IMask.MaskedNumber;\r\n\r\n @ViewChild(IMaskDirective)\r\n private _maskDirective: IMaskDirective<IMask.MaskedNumber>;\r\n\r\n /**\r\n * @ignore\r\n */\r\n constructor(\r\n elementRef: ElementRef,\r\n private cdr: ChangeDetectorRef\r\n ) {\r\n super(elementRef, cdr);\r\n }\r\n\r\n\r\n onViewInit(): void {\r\n super.onViewInit();\r\n this._updateMask();\r\n }\r\n\r\n\r\n _onOptionChanged(option: AXComponentOptionChanged): void {\r\n super._onOptionChanged(option);\r\n this._updateMask();\r\n }\r\n\r\n private _updateMask() {\r\n if (!this._maskObj) {\r\n this._maskObj = IMask.createMask({\r\n mask: Number,\r\n min: this.minValue,\r\n max: this.maxValue,\r\n thousandsSeparator: this.thousandsSeparator || '',\r\n scale: this.decimals,\r\n radix: '.',\r\n padFractionalZeros: this.decimals > 0 && this.padDecimalZeros\r\n });\r\n }\r\n else {\r\n this._maskObj.updateOptions({\r\n min: this.minValue,\r\n max: this.maxValue,\r\n thousandsSeparator: this.thousandsSeparator || '',\r\n scale: this.decimals,\r\n radix: '.',\r\n padFractionalZeros: this.decimals > 0 && this.padDecimalZeros\r\n })\r\n }\r\n this._maskDirective?.maskRef?.updateValue();\r\n this._maskDirective?.maskRef?.updateControl();\r\n }\r\n\r\n _handleOnKeydownEvent(e: KeyboardEvent) {\r\n const ignore = () => {\r\n e.preventDefault();\r\n e.stopPropagation();\r\n };\r\n const input = e.target as HTMLInputElement;\r\n const valStr = input.value;\r\n const decimalPointIndex = valStr.indexOf('.');\r\n const _cursorPos=input.selectionStart;\r\n\r\n if (e.key === 'ArrowUp' || e.key === 'ArrowDown') {\r\n if (decimalPointIndex > 0 && _cursorPos > decimalPointIndex && this.decimals > 0) {\r\n e.key === 'ArrowDown' ? this.decimalStepDown() : this.decimalStepUp();\r\n }\r\n else {\r\n e.key === 'ArrowDown' ? this.stepDown() : this.stepUp();\r\n }\r\n ignore();\r\n setTimeout(() => {\r\n input.setSelectionRange(_cursorPos, _cursorPos);\r\n },5);\r\n }\r\n super._emitOnKeydownEvent(e);\r\n }\r\n\r\n\r\n\r\n _handleUpDownClick(e: AXClickEvent, v: -1 | 1) {\r\n v == 1 ? this.stepUp() : this.stepDown();\r\n }\r\n\r\n\r\n _onValueChanging(value: any) {\r\n const v = _.toNumber(value);\r\n if (v < this.minValue)\r\n return this.minValue;\r\n if (v > this.maxValue)\r\n return this.maxValue;\r\n return v;\r\n }\r\n\r\n\r\n stepUp() {\r\n this.value += _.toNumber(this.step);\r\n }\r\n\r\n stepDown() {\r\n this.value -= _.toNumber(this.step);\r\n }\r\n\r\n decimalStepUp() {\r\n this.value += _.toNumber(this.decimalStep == 'auto' ? (1 / Math.pow(10, this.decimals)) : this.decimalStep);\r\n }\r\n\r\n decimalStepDown() {\r\n this.value -= _.toNumber(this.decimalStep == 'auto' ? (1 / Math.pow(10, this.decimals)) : this.decimalStep);\r\n }\r\n\r\n}\r\n","<ng-content select=\"ax-prefix\">\r\n</ng-content>\r\n<input class=\"ax-input\" type=\"text\" \r\n [attr.placeholder]=\"placeholder\" \r\n [imask]=\"_maskObj\" \r\n [unmask]=\"'typed'\"\r\n [attr.min]=\"minValue\"\r\n [attr.max]=\"maxValue\" \r\n [class.ax-state-disabled]=\"disabled\" \r\n [class.ax-state-readonly]=\"readonly\"\r\n [disabled]=\"disabled\" \r\n [readonly]=\"readonly\" \r\n [tabindex]=\"tabIndex\" \r\n [(ngModel)]=\"value\"\r\n (focus)=\"_emitOnFocusEvent($event)\" \r\n (blur)=\"_emitOnFocusEvent($event)\" \r\n (keydown)=\"_handleOnKeydownEvent($event)\"\r\n [attr.autocomplete]=\"autoComplete\">\r\n\r\n<div class=\"ax-number-box-arrows\" *ngIf=\"showSpinButtons && !(disabled || readonly)\">\r\n <ax-button color=\"light\" look=\"blank\" (onClick)=\"_handleUpDownClick($event,1)\">\r\n <ax-prefix>\r\n <ax-icon class=\"ax-ic-arrow-fill ax-rotate-90\">\r\n </ax-icon>\r\n </ax-prefix>\r\n </ax-button>\r\n <ax-button color=\"light\" look=\"blank\" (onClick)=\"_handleUpDownClick($event,-1)\">\r\n <ax-prefix>\r\n <ax-icon class=\"ax-ic-arrow-fill ax--rotate-90\">\r\n </ax-icon>\r\n </ax-prefix>\r\n </ax-button>\r\n</div>\r\n<ng-content select=\"ax-suffix\">\r\n</ng-content>\r\n<ng-content select=\"ax-validation-rule\">\r\n</ng-content>","import { NgModule } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\nimport { AXNumberBoxComponent } from './number-box.component';\r\nimport { FormsModule } from '@angular/forms';\r\nimport { AXButtonModule } from '../button';\r\nimport {IMaskModule} from 'angular-imask';\r\nimport { AXEditorDecoratorModule } from '../decorators';\r\nimport { AXIconModule } from '../icon';\r\n\r\nconst COMPONENT = [AXNumberBoxComponent];\r\nconst MODULES = [\r\n CommonModule,\r\n FormsModule,\r\n AXButtonModule,\r\n AXEditorDecoratorModule,\r\n AXIconModule,\r\n IMaskModule\r\n];\r\n\r\n@NgModule({\r\n declarations: [...COMPONENT],\r\n imports: [...MODULES],\r\n exports: [...COMPONENT],\r\n providers: [],\r\n})\r\nexport class AXNumberBoxModule { }\r\n","import {\r\n ChangeDetectionStrategy,\r\n ChangeDetectorRef,\r\n Component,\r\n ContentChild,\r\n ElementRef,\r\n HostBinding,\r\n Input,\r\n ViewEncapsulation,\r\n} from '@angular/core';\r\nimport { AXBaseTextBoxMixin } from '../base/mixin/mixin.class';\r\nimport {\r\n TEXTBOX_INPUTS,\r\n TEXTBOX_OUTPUT,\r\n} from '../base/mixin/textbox-mixin.class';\r\n\r\n/**\r\n * The Textbox is a component which detects user interaction and triggers a corresponding event\r\n *\r\n * @category Components\r\n */\r\n@Component({\r\n selector: 'ax-password-box',\r\n templateUrl: 'password-box.component.html',\r\n inputs: [\r\n 'disabled',\r\n 'readonly',\r\n 'tabIndex',\r\n 'cssClass',\r\n 'size',\r\n ...TEXTBOX_INPUTS,\r\n ],\r\n outputs: [\r\n 'valueChange',\r\n 'onValueChanged',\r\n 'onBlur',\r\n 'onFocus',\r\n ...TEXTBOX_OUTPUT,\r\n ],\r\n encapsulation: ViewEncapsulation.None,\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n host: { class: 'ax-password-box ax-editor-container' },\r\n})\r\nexport class AXPasswordBoxComponent extends AXBaseTextBoxMixin {\r\n\r\n @HostBinding('class')\r\n get hostClass(): string {\r\n return `${this.cssClass} ax-${this.size}`;\r\n }\r\n\r\n _type: 'password' | 'text' = 'password';\r\n _icon: 'ax-ic-eye' | 'ax-ic-eye-off' = 'ax-ic-eye';\r\n\r\n /**\r\n * A flag for showing or hiding password button.\r\n */\r\n @Input() showToggleButton: boolean = true;\r\n\r\n /**\r\n * @ignore\r\n */\r\n constructor(elementRef: ElementRef, cdr: ChangeDetectorRef) {\r\n super(elementRef, cdr);\r\n }\r\n\r\n toggleType() {\r\n if (this._type === 'password') {\r\n this._type = 'text';\r\n this._icon = 'ax-ic-eye-off';\r\n } else {\r\n this._type = 'password';\r\n this._icon = 'ax-ic-eye';\r\n }\r\n }\r\n}\r\n","<ng-content select=\"ax-prefix\">\r\n</ng-content>\r\n<input class=\"ax-input\" [attr.name]=\"name\" [type]=\"_type\" [attr.placeholder]=\"placeholder\" [attr.maxlength]=\"maxLength\" [class.ax-state-disabled]=\"disabled\" [class.ax-state-readonly]=\"readonly\" [disabled]=\"disabled\" [readonly]=\"readonly\" [tabindex]=\"tabIndex\"\r\n [(ngModel)]=\"value\" (focus)=\"_emitOnFocusEvent($event)\" (blur)=\"_emitOnBlurEvent($event)\" [attr.autocomplete]=\"autoComplete\">\r\n\r\n<ng-content select=\"ax-suffix\">\r\n\r\n</ng-content>\r\n<ng-content select=\"ax-validation-rule\">\r\n</ng-content>\r\n<ng-content select=\"ax-input-mask\">\r\n</ng-content>\r\n<ax-button color=\"light\" look=\"blank\" [size]=\"size\" (onClick)=\"toggleType()\" [tabIndex]=\"-1\" *ngIf=\"showToggleButton\">\r\n <ax-icon [icon]=\"_icon\"></ax-icon>\r\n</ax-button>","import { NgModule } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\nimport { AXPasswordBoxComponent } from './password-box.component';\r\nimport { FormsModule } from '@angular/forms';\r\nimport { AXButtonModule } from '../button';\r\nimport { AXEditorDecoratorModule } from '../decorators';\r\nimport { AXIconModule } from '../icon';\r\n\r\nconst COMPONENT = [AXPasswordBoxComponent];\r\nconst MODULES = [\r\n CommonModule,\r\n FormsModule,\r\n AXButtonModule,\r\n AXEditorDecoratorModule,\r\n AXIconModule\r\n];\r\n\r\n@NgModule({\r\n declarations: [...COMPONENT],\r\n imports: [...MODULES],\r\n exports: [...COMPONENT],\r\n providers: [],\r\n})\r\nexport class AXPasswordBoxModule { }\r\n","import { Component, ViewEncapsulation, ChangeDetectionStrategy, ElementRef, ChangeDetectorRef, ViewContainerRef, HostListener, ComponentRef, EventEmitter, TemplateRef, NgZone } from '@angular/core';\r\nimport { AXBaseComponentMixin } from '../base';\r\nimport { AXPageCloseEvent, TAB_META_KEY } from '../page/base-page.class';\r\nimport { AXLoadingService } from '../loading';\r\nimport { CdkPortalOutletAttachedRef, ComponentPortal, Portal, TemplatePortal } from '@angular/cdk/portal';\r\nimport { AXPlatform } from '@acorex/core';\r\n\r\n@Component({\r\n selector: 'ax-popup',\r\n templateUrl: './popup.component.html',\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n encapsulation: ViewEncapsulation.None,\r\n})\r\nexport class AXPopupComponent extends AXBaseComponentMixin {\r\n\r\n isLoading: boolean = true;\r\n private _loadingId: number;\r\n\r\n title: string;\r\n\r\n onClosed: EventEmitter<AXPageCloseEvent> = new EventEmitter<AXPageCloseEvent>();\r\n\r\n size: 'sm' | 'md' | 'lg' | 'full' = 'sm';\r\n draggable: boolean = true;\r\n\r\n\r\n data: any = {};\r\n\r\n\r\n showCloseButton: boolean = true;\r\n showHeader: boolean = true;\r\n\r\n content: any;\r\n\r\n\r\n _selectedPortal: Portal<any>;\r\n _footerPortal: Portal<any>;\r\n _headerPortal: Portal<any>;\r\n\r\n constructor(\r\n elementRef: ElementRef,\r\n cdr: ChangeDetectorRef,\r\n private _zone: NgZone,\r\n private _viewContainerRef: ViewContainerRef,\r\n private loadingService: AXLoadingService,\r\n private _platform: AXPlatform\r\n ) {\r\n super(elementRef, cdr);\r\n }\r\n\r\n onInit() {\r\n super.onInit();\r\n if (this._platform.is('Mobile')) {\r\n this.draggable = false;\r\n }\r\n this._loadingId = this.loadingService.show(this._getHostElement().querySelector('.ax-popup-body-container'));\r\n //\r\n if (typeof this.content === 'string') {\r\n // this.rendererService.findLoadedComponentByRoute(this.content, 20).then(route => {\r\n // setTimeout(() => {\r\n // this.loadComponent(route?.component);\r\n // }, 300);\r\n // });\r\n }\r\n else if (this.content instanceof TemplateRef) {\r\n this._selectedPortal = new TemplatePortal(this.content, this._viewContainerRef, { $implicit: this.data, ref: this });\r\n this._cdr.markForCheck();\r\n\r\n }\r\n else if (typeof this.content === 'function') {\r\n this._selectedPortal = new ComponentPortal(this.content);\r\n this._cdr.markForCheck();\r\n }\r\n }\r\n\r\n _handleAttched(ref: CdkPortalOutletAttachedRef) {\r\n ref = ref as ComponentRef<any>;\r\n if (ref.instance) {\r\n this[TAB_META_KEY].component = ref.instance;\r\n Object.assign(this[TAB_META_KEY].component, this.data);\r\n Object.assign(this[TAB_META_KEY].component, { _isPopup: true });\r\n if (ref.instance.onClosed) {\r\n ref.instance.onClosed.subscribe((e: AXPageCloseEvent) => {\r\n this.onClosed.emit(e);\r\n });\r\n }\r\n }\r\n this._zone.runOutsideAngular(() => {\r\n setTimeout(() => {\r\n const main = this._getHostElement().querySelector<HTMLDivElement>('.ax-popup-main-container');\r\n const popHeader = this._getHostElement().querySelector<HTMLDivElement>('.ax-popup-header-container');\r\n const popFooter = this._getHostElement().querySelector<HTMLDivElement>('.ax-popup-footer-container');\r\n const footer = main.querySelector<HTMLDivElement>('ax-page-footer');\r\n const header = main.querySelector<HTMLDivElement>('ax-page-header');\r\n if (footer) {\r\n popFooter.append(footer)\r\n }\r\n if (header) {\r\n popHeader.innerHTML = \"\";\r\n popHeader.append(header)\r\n }\r\n });\r\n });\r\n this.loadingService.hide(this._loadingId);\r\n this.focus();\r\n this._cdr.markForCheck();\r\n }\r\n\r\n\r\n @HostListener('keydown.escape', ['$event'])\r\n onKeydownHandler(event: KeyboardEvent) {\r\n if (this.showCloseButton) {\r\n this.close();\r\n }\r\n }\r\n\r\n _handleCloseClick() {\r\n this.close();\r\n }\r\n\r\n ngOnDestroy() {\r\n this.loadingService.hide(this._loadingId);\r\n }\r\n\r\n focus() {\r\n setTimeout(() => this._getHostElement().focus());\r\n }\r\n\r\n close() {\r\n this.onClosed.emit({\r\n component: this[TAB_META_KEY].component,\r\n htmlElement: this._getHostElement(),\r\n });\r\n this._cdr.detectChanges();\r\n }\r\n\r\n onFullScreen() { }\r\n}\r\n","<div class=\"ax-popup-wrapper\" aria-modal=\"true\" [cdkTrapFocus]=\"true\">\r\n <div class=\"ax-popup ax-popup-{{size}}\" tabindex=\"0\" cdkDrag [cdkDragDisabled]=\"!draggable\">\r\n <div cdkDragHandle class=\"ax-popup-header-container\">\r\n <ng-container *ngIf=\"showHeader\">\r\n <div class=\"ax-popup-header\">\r\n <span>{{title}}</span>\r\n <i class=\"ax-ic ax-ic-close\" *ngIf=\"showCloseButton\" (click)=\"_handleCloseClick()\" tabindex=\"1\"></i>\r\n </div>\r\n </ng-container>\r\n </div>\r\n <div class=\"ax-popup-main-container\">\r\n <ng-template [cdkPortalOutlet]=\"_selectedPortal\" (attached)=\"_handleAttched($event)\"></ng-template>\r\n </div>\r\n <div class=\"ax-popup-footer-container\"></div>\r\n\r\n </div>\r\n</div>","import { Injectable, TemplateRef } from '@angular/core';\r\nimport { AXOverlayService, AXOverlayViewRef } from '../base/overlay.service';\r\nimport { AXPageClosedPromise, AXPageCloseEvent, TAB_META_KEY } from '../page';\r\nimport { AXPopupComponent } from './popup.component';\r\n\r\nexport type AXPopupContentType = string | TemplateRef<any> | Function;\r\n\r\n/**\r\n * This is a service which you can create popup with it\r\n *\r\n * @category Components\r\n */\r\n@Injectable({ providedIn: 'root' })\r\nexport class AXPopupService {\r\n\r\n\r\n private stack: Array<AXPopupComponent> = [];\r\n\r\n\r\n /**\r\n * @ignore\r\n */\r\n constructor(private overlayService: AXOverlayService) { }\r\n\r\n\r\n /**\r\n * Open popup 1\r\n */\r\n open(content: AXPopupContentType, title: string): AXPageClosedPromise;\r\n /**\r\n * Open popup 2\r\n * @ignore\r\n */\r\n open(\r\n content: AXPopupContentType,\r\n options?: {\r\n title: string;\r\n showCloseButton?: boolean;\r\n showHeader?: boolean;\r\n maximizable?: boolean;\r\n size?: 'sm' | 'md' | 'lg' | 'full' | 'fit';\r\n data?: any;\r\n draggable?: boolean\r\n }\r\n ): AXPageClosedPromise;\r\n\r\n /**\r\n * @ignore\r\n */\r\n open(arg1, arg2): AXPageClosedPromise {\r\n const options: any = {\r\n showCloseButton: true,\r\n showHeader: true,\r\n size: 'md',\r\n maximizable: false,\r\n draggable: true\r\n };\r\n if (typeof arg2 === 'string') {\r\n options.title = arg2;\r\n } else {\r\n Object.assign(options, arg2);\r\n }\r\n const com = this.overlayService.show(AXPopupComponent, options, { transparentBackdrop: false, closeOnClickOutside: false, scroll: 'block' });\r\n const popup = com.instance as AXPopupComponent;\r\n popup.content = arg1;\r\n popup[TAB_META_KEY] = {};\r\n if (options.size) {\r\n popup.size = options.size;\r\n }\r\n this.stack.push(popup);\r\n popup.onClosed.subscribe(c => {\r\n this.closePopup(popup, com, c);\r\n });\r\n const promise = new AXPageClosedPromise((resolve) => {\r\n popup[TAB_META_KEY].close = (e) => {\r\n if (resolve) {\r\n resolve(e);\r\n }\r\n };\r\n });\r\n promise['closeMethod'] = () => { popup.close(); };\r\n return promise;\r\n }\r\n\r\n\r\n private closePopup(popup: AXPopupComponent, com: AXOverlayViewRef, result: AXPageCloseEvent) {\r\n const closeFunc = (e) => {\r\n com.dispose();\r\n this.stack.pop();\r\n delete e.cancel;\r\n popup[TAB_META_KEY].close(e);\r\n if (this.stack.length) { this.stack.reverse()[0].focus(); }\r\n };\r\n const e = { cancel: false };\r\n const closingFunc = popup[TAB_META_KEY]?.component?.onClosing;\r\n if (closingFunc) {\r\n const res = closingFunc(e);\r\n if (res instanceof Promise) {\r\n res.then(() => {\r\n if (e == null || e.cancel !== true) {\r\n closeFunc(result);\r\n }\r\n });\r\n }\r\n else {\r\n if (e == null || e.cancel !== true) {\r\n closeFunc(result);\r\n }\r\n }\r\n } else {\r\n closeFunc(result);\r\n }\r\n }\r\n}\r\n","import { NgModule } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\nimport { AXPopupComponent } from './popup.component';\r\nimport { AXButtonModule } from '../button';\r\nimport { A11yModule } from '@angular/cdk/a11y';\r\nimport { DragDropModule } from '@angular/cdk/drag-drop';\r\nimport { PortalModule } from '@angular/cdk/portal';\r\n\r\nconst COMPONENT = [AXPopupComponent];\r\nconst MODULES = [CommonModule, DragDropModule, A11yModule, AXButtonModule, PortalModule];\r\n\r\n@NgModule({\r\n declarations: [...COMPONENT],\r\n imports: [...MODULES],\r\n exports: [...COMPONENT],\r\n providers: [],\r\n})\r\nexport class AXPopupModule { }\r\n","import { Component, Input } from '@angular/core';\r\nimport { AXBaseComponentMixin } from '../base';\r\n\r\n@Component({\r\n selector: 'ax-progress-bar',\r\n templateUrl: './progress-bar.component.html'\r\n})\r\nexport class AXProgressBarComponent extends AXBaseComponentMixin {\r\n\r\n\r\n @Input()\r\n value: number = 0\r\n\r\n private _max: number;\r\n\r\n public get max(): number {\r\n return this._max;\r\n }\r\n @Input()\r\n public set max(v: number) {\r\n this._max = v;\r\n }\r\n\r\n constructor() {\r\n super();\r\n }\r\n\r\n ngOnInit(): void { }\r\n}\r\n","<progress [attr.value]=\"value\" [max]=\"max\"></progress>","import { NgModule } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\nimport { AXProgressBarComponent } from './progress-bar.component';\r\n\r\n@NgModule({\r\n declarations: [AXProgressBarComponent],\r\n imports: [CommonModule],\r\n exports: [AXProgressBarComponent],\r\n providers: [],\r\n})\r\nexport class AXProgressBarModule { }","import { Component, ViewEncapsulation, ChangeDetectionStrategy, ElementRef, ChangeDetectorRef } from '@angular/core';\nimport { AXBaseValueComponentMixin } from '../base';\nimport { INTERACTIVE_INPUTS, INTERACTIVE_OUTPUT } from '../base/mixin/interactive-mixin.class';\nimport { VALUE_INPUTS, VALUE_OUTPUT } from '../base/mixin/value-mixin.class';\n\n@Component({\n selector: 'ax-radio',\n templateUrl: './radio.component.html',\n inputs: [...INTERACTIVE_INPUTS, ...VALUE_INPUTS],\n outputs: [...INTERACTIVE_OUTPUT, ...VALUE_OUTPUT],\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n host : { class: 'ax-radio' }\n})\nexport class AXRadioComponent extends AXBaseValueComponentMixin {\n\n constructor(\n elementRef: ElementRef, \n cdr: ChangeDetectorRef\n ) {\n super(elementRef, cdr);\n //TODO: ax-radio\n }\n\n _handleOnClickEvent(e: MouseEvent) {\n if (this.readonly || this.disabled) {\n e.preventDefault();\n e.stopPropagation();\n return false;\n }\n }\n\n}\n","<div class=\"ax-flex ax-items-start\">\n <div class=\"ax-flex ax-items-center ax-h-5\">\n <input [id]=\"id\" class=\"ax-radio\" type=\"radio\" [(ngModel)]=\"value\" [checked]=\"value\" [disabled]=\"disabled\" [readonly]=\"readonly\" [tabindex]=\"tabIndex\" (click)=\"_handleOnClickEvent($event)\" (focus)=\"_emitOnFocusEvent($event)\"\n (blur)=\"_emitOnBlurEvent($event)\">\n </div>\n <div class=\"ax-ms-3 ax-text-sm\">\n <ng-content select=\"ax-label\"></ng-content>\n <ng-content select=\"ax-form-hint\"></ng-content>\n </div>\n</div>\n<ng-content select=\"ax-validation-rule\"></ng-content>","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { AXRadioComponent } from './radio.component';\nimport { FormsModule } from '@angular/forms';\n\nconst COMPONENT = [AXRadioComponent];\nconst MODULES = [CommonModule,FormsModule];\n\n@NgModule({\n declarations: [...COMPONENT],\n imports: [...MODULES],\n exports: [...COMPONENT],\n providers: [],\n})\nexport class AXRadioModule { }\n","import { Component, ViewEncapsulation, ChangeDetectionStrategy, ElementRef, ChangeDetectorRef } from '@angular/core';\r\nimport { AXBaseComponentMixin } from '../base';\r\n\r\n@Component({\r\n selector: 'ax-range-slider',\r\n templateUrl: './range-slider.component.html',\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n encapsulation: ViewEncapsulation.None,\r\n host: { class: 'ax-range-slider' }\r\n})\r\nexport class AXRangeSliderComponent extends AXBaseComponentMixin {\r\n\r\n constructor(\r\n elementRef: ElementRef,\r\n cdr: ChangeDetectorRef\r\n ) {\r\n super(elementRef, cdr);\r\n //TODO: ax-range-slider\r\n }\r\n\r\n}\r\n","<input type=\"range\" min=\"1\" max=\"100\" value=\"50\" class=\"ax-range-slider-input\">","import { NgModule } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\nimport { AXRangeSliderComponent } from './range-slider.component';\r\n\r\nconst COMPONENT = [AXRangeSliderComponent];\r\nconst MODULES = [CommonModule];\r\n\r\n@NgModule({\r\n declarations: [...COMPONENT],\r\n imports: [...MODULES],\r\n exports: [...COMPONENT],\r\n providers: [],\r\n})\r\nexport class AXRangeSliderModule { }\r\n","import { AXPlatform, AXTranslator } from '@acorex/core';\r\nimport { ChangeDetectionStrategy, ChangeDetectorRef, Component, ContentChild, ElementRef, HostListener, Input, NgZone, TemplateRef, ViewChild, ViewEncapsulation } from '@angular/core';\r\nimport _ from 'lodash';\r\nimport { AXBaseSelectionDropdownMixin, AXClickEvent, AXValueChangedEvent } from '../base';\r\nimport { DATALIST_INPUTS } from '../base/mixin/datalist-component.class';\r\nimport { DROPDOWN_INPUTS, DROPDOWN_OUTPUT } from '../base/mixin/dropdown-mixin.class';\r\nimport { INTERACTIVE_INPUTS, INTERACTIVE_OUTPUT } from '../base/mixin/interactive-mixin.class';\r\nimport { SELECTION_INPUTS, SELECTION_OUTPUT } from '../base/mixin/selection-component.class';\r\nimport { TEXTBOX_INPUTS, TEXTBOX_OUTPUT } from '../base/mixin/textbox-mixin.class';\r\nimport { VALUE_INPUTS, VALUE_OUTPUT } from '../base/mixin/value-mixin.class';\r\nimport { AXPopoverComponent } from '../popover';\r\nimport { AXTextBoxComponent } from '../textbox';\r\n\r\n@Component({\r\n selector: 'ax-select-box',\r\n templateUrl: 'selectbox.component.html',\r\n inputs: [...DROPDOWN_INPUTS, ...INTERACTIVE_INPUTS, ...VALUE_INPUTS, ...TEXTBOX_INPUTS, ...DATALIST_INPUTS, ...SELECTION_INPUTS],\r\n outputs: [...DROPDOWN_OUTPUT, ...INTERACTIVE_OUTPUT, ...VALUE_OUTPUT, ...TEXTBOX_OUTPUT, ...SELECTION_OUTPUT],\r\n encapsulation: ViewEncapsulation.None,\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n host: { class: 'ax-editor-container ax-drop-down' }\r\n})\r\nexport class AXSelectBoxComponent extends AXBaseSelectionDropdownMixin {\r\n\r\n\r\n @ViewChild(AXPopoverComponent, { static: true })\r\n popover: AXPopoverComponent;\r\n\r\n _target: HTMLDivElement;\r\n _popoverTitle: string;\r\n _popoverWidth: number;\r\n\r\n\r\n @Input()\r\n clearButton: boolean = false;\r\n\r\n private _searchSettings: { enabled?: boolean, expr?: string } = { enabled: false, expr: null };\r\n\r\n @Input()\r\n public get searchSettings(): { enabled?: boolean, expr?: string } {\r\n return this._searchSettings;\r\n }\r\n public set searchSettings(v: { enabled?: boolean, expr?: string }) {\r\n this._searchSettings = v || { enabled: false, expr: null };\r\n }\r\n\r\n\r\n @Input()\r\n checkbox: boolean = false;\r\n\r\n @ViewChild('listContainer', { static: true })\r\n private listContainer: ElementRef<HTMLDivElement>;\r\n\r\n @ViewChild('searchBox')\r\n private _searchBox: AXTextBoxComponent;\r\n\r\n @ContentChild('emptyTemplate')\r\n private _contentEmptyTemplate: TemplateRef<any>;\r\n\r\n\r\n get emptyTemplate(): TemplateRef<any> {\r\n return this._contentEmptyTemplate;\r\n }\r\n\r\n _isMobile: boolean = false;\r\n _forceFocus: boolean = false;\r\n\r\n constructor(\r\n private _elementRef: ElementRef<HTMLDivElement>,\r\n private _cdr: ChangeDetectorRef,\r\n private _zone: NgZone,\r\n private _platform: AXPlatform,\r\n ) {\r\n super(_elementRef, _cdr);\r\n }\r\n\r\n _handleArrowClickEvent(e: AXClickEvent) {\r\n e.nativeEvent.stopPropagation();\r\n this.toggle();\r\n }\r\n\r\n _handleInputClickEvent(e: MouseEvent) {\r\n e.stopPropagation();\r\n this.toggle();\r\n }\r\n\r\n\r\n onInit() {\r\n super.onInit();\r\n this._target = this._elementRef.nativeElement;\r\n this._isMobile = this._platform.is('Mobile');\r\n this._popoverTitle = this.placeholder || AXTranslator.get('selectbox.popover.title')\r\n }\r\n\r\n onViewInit() {\r\n super.onViewInit();\r\n this._popoverWidth = this._isMobile ? null : this._target.offsetWidth;\r\n }\r\n\r\n\r\n refresh() {\r\n this.value = null;\r\n super.refresh();\r\n }\r\n\r\n _handleOnItemClick(e: MouseEvent, item: any) {\r\n if (this.isItemDisabled(item)) {\r\n return;\r\n }\r\n if (!this.multiple)\r\n this.close();\r\n this.toggleSelect(item);\r\n this._cdr.detectChanges();\r\n }\r\n\r\n _handleListScroll(e: Event) {\r\n const list = e.target as HTMLDivElement;\r\n if ((list.scrollTop < list.scrollHeight - list.clientHeight)) {\r\n return;\r\n }\r\n this._fetchData();\r\n }\r\n\r\n private _checkForLoadData() {\r\n const list = this.listContainer.nativeElement;\r\n const headerSize = list.parentElement.querySelector<HTMLDivElement>('.ax-overlay-pane-header')?.offsetHeight || 0;\r\n if (this.loadedCount < this.totalCount && list.scrollHeight < ((list.parentElement.clientHeight - headerSize) * 1.5)) {\r\n this._fetchData();\r\n }\r\n }\r\n\r\n _onDataLoaded() {\r\n if (this.popover.isOpen) {\r\n setTimeout(() => {\r\n this._checkForLoadData();\r\n this.popover.updatePosition();\r\n if (this._forceFocus) {\r\n this._focusSelectedItem();\r\n this._forceFocus = false;\r\n }\r\n }, 100);\r\n }\r\n }\r\n\r\n _onValueChanged(oldValue: any, newValue: any) {\r\n super._onValueChanged(oldValue, newValue);\r\n }\r\n\r\n _handleOnRemoveItemClick(e: MouseEvent, item: any) {\r\n this.unselectItems(item)\r\n e.stopPropagation();\r\n }\r\n\r\n _handleBadgeRemove(e: MouseEvent, item) {\r\n this.unselectItems(item)\r\n e.stopPropagation()\r\n this.close();\r\n }\r\n\r\n @HostListener('keydown', ['$event'])\r\n _handleKeydown(e: KeyboardEvent) {\r\n const isLetter = new RegExp(/[a-zA-Z0-9\\-]/).test(String.fromCharCode(e.keyCode));\r\n if (e.code === 'Backspace' && e.type === 'keydown' &&\r\n ((this.allowNull === true && this.selectedItems.length > 0) ||\r\n (this.allowNull !== true && this.selectedItems.length > 1))) {\r\n this.isUserInput = true;\r\n this.unselectItems(this.selectedItems.pop());\r\n e.preventDefault();\r\n return;\r\n }\r\n else if ((e.code === 'ArrowDown' || e.code === 'ArrowUp' || e.code === 'Space') && !this.popover.isOpen && e.type === 'keydown') {\r\n if (this.multiple) {\r\n this.open();\r\n }\r\n else {\r\n this.isUserInput = true;\r\n if (e.ctrlKey || e.code === 'Space') {\r\n this.open();\r\n }\r\n else {\r\n this._selectedItemByNav((e.key === 'ArrowDown' ? 1 : -1));\r\n }\r\n }\r\n e.preventDefault();\r\n return;\r\n }\r\n else if (isLetter) {\r\n this.text = e.key;\r\n this.open();\r\n e.preventDefault();\r\n return;\r\n }\r\n }\r\n\r\n\r\n _handlePopoverKeydown(e: KeyboardEvent) {\r\n if ((e.key === 'ArrowDown' || e.key === 'ArrowUp') && this.displayItems.length > 0) {\r\n this.isUserInput = true;\r\n this._focusItemByNav((e.key === 'ArrowDown' ? 1 : -1));\r\n e.preventDefault();\r\n }\r\n else if (e.code === 'Backspace' &&\r\n ((this.allowNull === true && this.selectedItems.length > 0) ||\r\n (this.allowNull !== true && this.selectedItems.length > 1))) {\r\n this.isUserInput = true;\r\n this.unselectItems(this.selectedItems.pop());\r\n e.preventDefault();\r\n }\r\n else if ((e.code === 'Space' || e.code === 'Enter')) {\r\n e.preventDefault();\r\n debugger;\r\n const focusedItemId = this.listContainer.nativeElement.querySelector<HTMLElement>('.ax-state-focus').dataset.id;\r\n const focusedItem = _.findLast(this.flatItems, [this.valueField, focusedItemId]);\r\n if (focusedItem) {\r\n if (this.isItemDisabled(focusedItem)) {\r\n return;\r\n }\r\n if (this.multiple) {\r\n this.isUserInput = true;\r\n this.toggleSelect(focusedItem);\r\n }\r\n else {\r\n this.isUserInput = true;\r\n this.selectItems(focusedItem);\r\n this.close();\r\n }\r\n }\r\n }\r\n else if (e.code === \"Tab\") {\r\n this.close();\r\n e.preventDefault();\r\n e.stopPropagation();\r\n }\r\n else if (e.key === 'Escape') {\r\n this.close();\r\n e.preventDefault();\r\n e.stopPropagation();\r\n }\r\n }\r\n\r\n _handlePopupOnOpened(e) {\r\n this.popover.focus();\r\n if (this.displayItems.length == 0) {\r\n this._forceFocus = true;\r\n this._fetchData();\r\n }\r\n else {\r\n this._focusSelectedItem();\r\n }\r\n if (this._searchBox) {\r\n this._searchBox.focus();\r\n }\r\n }\r\n\r\n _handlePopupOnClosed(e) {\r\n this.focus();\r\n }\r\n\r\n\r\n private _focusItemByNav(sign: -1 | 1): void {\r\n \r\n const list = this.listContainer.nativeElement;\r\n const fn = (s) => list.querySelector<HTMLElement>(s);\r\n const itemDiv = fn(`.ax-list-item.ax-state-focus`) || fn(`.ax-list-item.ax-state-selected`) || fn(`.ax-list-item`);\r\n let next = (sign == 1 ? itemDiv.nextElementSibling : itemDiv.previousElementSibling) as HTMLElement;\r\n if (next) {\r\n this._focusItemElement(next);\r\n }\r\n else {\r\n const parent = itemDiv.closest('.ax-list-item-group');\r\n if (parent) {\r\n const lis = (sign == 1 ? parent.nextElementSibling : parent.previousElementSibling)?.querySelectorAll('li');\r\n const a = sign == 1 ? _.first(lis) : _.last(lis);\r\n if (a) {\r\n this._focusItemElement(a);\r\n }\r\n }\r\n }\r\n }\r\n\r\n\r\n private _focusSelectedItem() {\r\n this._zone.runOutsideAngular(() => {\r\n const list = this.listContainer.nativeElement;\r\n const fn = (s) => list.querySelector<HTMLElement>(s);\r\n const itemDiv = fn(`.ax-list-item.ax-state-selected`) || fn(`.ax-list-item`);\r\n if (itemDiv) {\r\n this._focusItemElement(itemDiv);\r\n }\r\n });\r\n }\r\n\r\n private _focusItemElement(el: HTMLElement) {\r\n this._zone.runOutsideAngular(() => {\r\n const list = this.listContainer.nativeElement;\r\n list.querySelectorAll('.ax-list-item').forEach(c => {\r\n if (c == el) {\r\n c.classList.add('ax-state-focus');\r\n el.scrollIntoView({ behavior: 'auto' });\r\n }\r\n else {\r\n c.classList.remove('ax-state-focus');\r\n }\r\n });\r\n this._searchBox ? this._searchBox.focus() : el.focus();\r\n });\r\n }\r\n\r\n\r\n private _selectedItemByNav(sign: -1 | 1): void {\r\n const last = _.last(this.selectedItems);\r\n let i = 0;\r\n if (last) {\r\n i = _.findLastIndex(this.flatItems, [this.valueField, last[this.valueField]]);\r\n }\r\n i += sign;\r\n let next = _.nth<any>(this.flatItems, i);\r\n while (next?.children && next?.children.length) {\r\n i += sign;\r\n next = _.nth<any>(this.flatItems, i);\r\n }\r\n if (next) {\r\n this.selectItems(next);\r\n }\r\n else if (next == null && sign == 1) {\r\n this._fetchData();\r\n }\r\n }\r\n\r\n\r\n _onSearchExprChanged(e: AXValueChangedEvent<string>) {\r\n this.empty();\r\n this._fetchData();\r\n }\r\n\r\n _fetchData()\r\n {\r\n super._fetchData({ searchQuery: this._searchBox?.value });\r\n }\r\n}","<ng-content select=\"ax-prefix\">\r\n</ng-content>\r\n<div class=\"ax-dropdown-content\" [class.ax-state-disabled]=\"disabled\" (click)=\"_handleInputClickEvent($event)\">\r\n <div class=\"ax-select-box-selection\" [tabindex]=\"tabIndex\" (focus)=\"_emitOnFocusEvent($event)\"\r\n (blur)=\"_emitOnBlurEvent($event)\">\r\n <ng-container *ngIf=\"selectedItems && selectedItems.length; else showPlaceholder\">\r\n <ng-container *ngIf=\"!multiple; then singleSelectedTemplate; else multipleSelectedTemplate\"></ng-container>\r\n <ng-template #singleSelectedTemplate>\r\n <ng-container *ngFor=\"let item of selectedItems\">\r\n <span class=\"ax-mx-2\"> {{ _getItemDisplayTextTemplte(item) }}</span>\r\n </ng-container>\r\n </ng-template>\r\n <ng-template #multipleSelectedTemplate>\r\n <div class=\"ax-flex ax-mx-2\">\r\n <ng-container *ngFor=\"let item of selectedItems\">\r\n <ax-badge [text]=\"_getItemDisplayTextTemplte(item)\" color=\"light\" class=\"ax-me-2\">\r\n <ax-suffix>\r\n <ax-icon icon=\"ax-ic ax-ic-close ax-cursor-pointer\"\r\n (click)=\"_handleBadgeRemove($event,item)\"></ax-icon>\r\n </ax-suffix>\r\n </ax-badge>\r\n </ng-container>\r\n </div>\r\n </ng-template>\r\n </ng-container>\r\n <ng-template #showPlaceholder>\r\n <div class=\"ax-placeholder\" role=\"textbox\" area-readonly=\"true\"> {{placeholder}}</div>\r\n </ng-template>\r\n </div>\r\n</div>\r\n<ax-button color=\"light\" look=\"blank\" (onClick)=\"clear()\" [tabIndex]=\"-1\"\r\n *ngIf=\"value && clearButton && !(disabled || readonly)\">\r\n <ax-icon icon=\"ax-ic ax-ic-close\"></ax-icon>\r\n</ax-button>\r\n<ax-button [disabled]=\"disabled\" [tabIndex]=\"-1\" color=\"light\" look=\"blank\" (onClick)=\"_handleArrowClickEvent($event)\">\r\n <ax-prefix *ngIf=\"(isLoading && !this.popover.isOpen);else icon\">\r\n <ax-loading type=\"spinner\"></ax-loading>\r\n </ax-prefix>\r\n <ng-template #icon>\r\n <ax-icon #icon icon=\"ax-ic ax-ic-chevron ax-transform ax--rotate-90\"></ax-icon>\r\n </ng-template>\r\n</ax-button>\r\n<ng-content select=\"ax-validation-rule\">\r\n</ng-content>\r\n<ng-content select=\"ax-suffix\">\r\n</ng-content>\r\n<ax-popover [target]=\"_target\" [position]=\"position\" [openTrigger]=\"'manual'\" [closeTrigger]=\"'clickout'\"\r\n (onOpened)=\"_handlePopupOnOpened($event)\" (onClosed)=\"_handlePopupOnClosed($event)\">\r\n <div class=\"ax-overlay-pane\" (keydown)=\"_handlePopoverKeydown($event)\" tabindex=\"0\" aria-modal=\"true\" cdkTrapFocus\r\n [class.ax-overlay-center]=\"_isMobile\" [style.min-width.px]=\"_popoverWidth\">\r\n <div class=\"ax-list ax-list-container\" panel>\r\n <div *ngIf=\"_isMobile\" class=\"ax-overlay-pane-header\">\r\n <span>{{_popoverTitle}}</span>\r\n <i class=\"ax-ic {{multiple?'ax-ic-check !ax-text-primary-500':'ax-ic-close'}}\" (click)=\"close()\"\r\n tabindex=\"1\"></i>\r\n </div>\r\n <div *ngIf=\"searchSettings.enabled\" class=\"ax-p-2\" [cdkTrapFocus]=\"true\">\r\n <ax-text-box #searchBox placeholder=\"{{ 'common.search' | trans }}\" [debounceTime]=\"500\"\r\n [(value)]=\"searchSettings.expr\" (onValueChanged)=\"_onSearchExprChanged($event)\">\r\n </ax-text-box>\r\n </div>\r\n <div class=\"ax-list-items-container ax-vertical ax-default\" [class.ax-full]=\"_isMobile\" (scroll)=\"_handleListScroll($event)\" #listContainer>\r\n <!--------------- Check empty state ---------------->\r\n <ng-container *ngIf=\"displayItems.length; else tmpEmpty\">\r\n <!--------------- recursive template ---------------->\r\n <ul>\r\n <ng-container *ngTemplateOutlet=\"tmpTree; context:{ list: displayItems }\">\r\n </ng-container>\r\n <ng-template #tmpTree let-list=\"list\">\r\n <!--------------- items iteration ---------------->\r\n <ng-container *ngFor=\"let item of list;let i = index;trackBy : _trackByFunction\">\r\n <ng-container *ngIf=\"itemTemplate; else defualtTemplate\">\r\n <li class=\"ax-list-item\" (click)=\"_handleOnItemClick($event,item)\" \r\n [attr.data-id]=\"item[this.valueField]\">\r\n <ng-container\r\n *ngTemplateOutlet=\"itemTemplate; context: { $implicit: item,direction:direction}\">\r\n </ng-container>\r\n </li>\r\n </ng-container>\r\n <ng-template #defualtTemplate>\r\n <ng-container *ngIf=\"item.children?.length > 0;else tmpItem\">\r\n <li class=\"ax-list-item-group\" [attr.data-id]=\"item[this.valueField]\" >\r\n <span> {{ _getItemDisplayTextTemplte(item) }}</span>\r\n <!--------------- children iteration ---------------->\r\n <ul *ngIf=\"item.children?.length > 0\">\r\n <ng-container\r\n *ngTemplateOutlet=\"tmpTree; context:{ list: item.children }\">\r\n </ng-container>\r\n </ul>\r\n </li>\r\n </ng-container>\r\n <ng-template #tmpItem>\r\n <ng-container *ngIf=\"!multiple; else multipleTemplate\">\r\n <li class=\"ax-list-item\" [class.ax-state-selected]=\"isItemSelected(item)\"\r\n [class.ax-state-disabled]=\"isItemDisabled(item)\" [attr.tabindex]=\"i\"\r\n (click)=\"_handleOnItemClick($event,item)\"\r\n [attr.data-id]=\"item[this.valueField]\"\r\n >\r\n <span> {{ _getItemDisplayTextTemplte(item) }}</span>\r\n </li>\r\n </ng-container>\r\n <ng-template #multipleTemplate>\r\n <li class=\"ax-list-item\" [class.ax-state-selected]=\"isItemSelected(item)\"\r\n [class.ax-state-disabled]=\"isItemDisabled(item)\"\r\n [class.ax-check-box]=\"checkbox\" [attr.tabindex]=\"i\"\r\n (click)=\"_handleOnItemClick($event,item)\"\r\n [attr.data-id]=\"item[this.valueField]\"\r\n >\r\n <input type=\"checkbox\" [class.ax-state-disabled]=\"isItemDisabled(item)\"\r\n *ngIf=\"checkbox\" [checked]=\"isItemSelected(item)\"\r\n [disabled]=\"isItemDisabled(item)\">\r\n &nbsp;\r\n &nbsp;\r\n <span> {{ _getItemDisplayTextTemplte(item) }}</span>\r\n </li>\r\n </ng-template>\r\n </ng-template>\r\n </ng-template>\r\n </ng-container>\r\n </ng-template>\r\n </ul>\r\n </ng-container>\r\n <!--------------- loading template --------------->\r\n <ng-container *ngIf=\"isLoading\">\r\n <!--------------- check for custom template --------------->\r\n <ng-container *ngIf=\"loadingTemplate; else elseLoadingTemplate\">\r\n <ng-container *ngTemplateOutlet=\"loadingTemplate\">\r\n </ng-container>\r\n </ng-container>\r\n <ng-template #elseLoadingTemplate>\r\n <div class=\"ax-flex ax-items-center ax-justify-center ax-p-4\">\r\n <ax-loading text=\"{{ 'layout.loading.text' | trans }}\"></ax-loading>\r\n </div>\r\n </ng-template>\r\n </ng-container>\r\n <!--------------- empty template --------------->\r\n <ng-template #tmpEmpty>\r\n <ng-container *ngIf=\"!isLoading\">\r\n <!--------------- check for custom template --------------->\r\n <ng-container *ngIf=\"emptyTemplate; else elseEmptyTemplate\">\r\n <ng-container *ngTemplateOutlet=\"emptyTemplate\">\r\n </ng-container>\r\n </ng-container>\r\n <ng-template #elseEmptyTemplate>\r\n <div class=\"ax-list-item\">\r\n {{ 'common.no-result-found' | trans }}\r\n </div>\r\n </ng-template>\r\n </ng-container>\r\n </ng-template>\r\n </div>\r\n </div>\r\n </div>\r\n</ax-popover>","import { AXTranslationModule } from '@acorex/core';\r\nimport { CommonModule } from '@angular/common';\r\nimport { NgModule } from '@angular/core';\r\nimport { FormsModule } from '@angular/forms';\r\nimport { AXBadgeModule } from '../badge';\r\nimport { AXButtonModule } from '../button';\r\nimport { AXCheckBoxModule } from '../checkbox';\r\nimport { AXEditorDecoratorModule } from '../decorators';\r\nimport { AXIconModule } from '../icon';\r\nimport { AXLoadingModule } from '../loading';\r\nimport { AXPopoverModule } from '../popover';\r\nimport { A11yModule } from '@angular/cdk/a11y';\r\n\r\nimport { AXSelectBoxComponent } from './selectbox.component';\r\nimport { AXCommonModule } from '../base/common.module';\r\nimport { AXTextBoxModule } from '../textbox';\r\n\r\n@NgModule({\r\n imports: [CommonModule,\r\n AXCommonModule,\r\n FormsModule,\r\n AXCheckBoxModule,\r\n AXBadgeModule,\r\n AXEditorDecoratorModule,\r\n AXTranslationModule,\r\n AXIconModule,\r\n AXPopoverModule,\r\n AXButtonModule,\r\n AXLoadingModule,\r\n A11yModule,\r\n AXTextBoxModule\r\n ],\r\n exports: [AXSelectBoxComponent],\r\n declarations: [AXSelectBoxComponent],\r\n providers: [],\r\n})\r\nexport class AXSelectBoxModule { }\r\n","import {\r\n Component,\r\n ChangeDetectionStrategy,\r\n ViewEncapsulation,\r\n ElementRef,\r\n ChangeDetectorRef,\r\n Input,\r\n} from '@angular/core';\r\nimport { AXBaseSelectionValueMixin, AXDirection } from '../base';\r\n\r\n@Component({\r\n selector: 'ax-selection-list',\r\n templateUrl: './selection-list.component.html',\r\n inputs: [\r\n 'disabled',\r\n 'readonly',\r\n 'tabIndex',\r\n 'size',\r\n 'value',\r\n 'valueField',\r\n 'textField',\r\n 'multiple',\r\n 'items',\r\n 'selectionMode',\r\n 'cssClass'\r\n ],\r\n outputs: ['valueChange', 'onValueChanged', 'onBlur', 'onFocus'],\r\n encapsulation: ViewEncapsulation.None,\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n})\r\nexport class AXSelectionListComponent extends AXBaseSelectionValueMixin {\r\n constructor(elementRef: ElementRef, cdr: ChangeDetectorRef) {\r\n super(elementRef, cdr);\r\n }\r\n\r\n @Input()\r\n direction: AXDirection = 'horizontal';\r\n\r\n _handleOnItemValueChange(item: any, e: Event) {\r\n if (this.readonly || this.disabled) {\r\n e.preventDefault();\r\n e.stopPropagation();\r\n } else {\r\n (e.target as any).checked ? this.selectItems(item) : this.unselectItems(item);\r\n }\r\n }\r\n\r\n // _handleOnClickEvent(e: MouseEvent) {\r\n //\r\n // if (this.readonly || this.disabled) {\r\n // e.preventDefault();\r\n // e.stopPropagation();\r\n // }\r\n // }\r\n}\r\n","<div class=\"ax-selection-list ax-{{direction}}\">\r\n <ng-container *ngIf=\"multiple; then checkboxList; else radioButtonList\"></ng-container>\r\n <ng-template #checkboxList>\r\n <ng-container *ngFor=\"let item of displayItems;let i = index\">\r\n <div class=\"ax-flex ax-items-start ax-checkbox-container\">\r\n <div class=\"ax-flex ax-items-center ax-h-5 ax-check-box\">\r\n <input [id]=\"id+'-'+i\" class=\"ax-checkbox\" type=\"checkbox\" (change)=\"_handleOnItemValueChange(item, $event)\" [checked]=\"isItemSelected(item)\" [disabled]=\"disabled || item.disabled\" [readonly]=\"readonly || item.readonly\">\r\n </div>\r\n <div class=\"ax-ms-3 ax-text-sm\">\r\n <label [for]=\"id+'-'+i\" class=\"ax-font-medium ax-text-light-700 dark:ax-text-light-100\"> {{item[textField]}}</label>\r\n <p class=\"ax-text-light-500\"> {{item.hint ? item.hint : item[hintField]}}</p>\r\n </div>\r\n </div>\r\n </ng-container>\r\n </ng-template>\r\n <ng-template #radioButtonList>\r\n <ng-container *ngFor=\"let item of displayItems;let i = index\">\r\n <div class=\"ax-flex ax-items-start ax-radio-container\">\r\n <div class=\"ax-flex ax-items-center ax-h-5 ax-radio\">\r\n <input [id]=\"id+'-'+i\" class=\"ax-radio\" type=\"radio\" [attr.name]=\"id\" (change)=\"_handleOnItemValueChange(item, $event)\" [checked]=\"isItemSelected(item)\" [disabled]=\"disabled || item.disabled\" [readonly]=\"readonly || item.readonly\">\r\n </div>\r\n <div class=\"ax-ms-3 ax-text-sm\">\r\n <label [for]=\"id+'-'+i\" class=\"ax-font-medium ax-text-light-700 dark:ax-text-light-100\"> {{item[textField]}}</label>\r\n <p class=\"ax-text-light-500\"> {{item.hint ? item.hint : item[hintField]}}</p>\r\n </div>\r\n </div>\r\n </ng-container>\r\n </ng-template>\r\n <ng-content select=\"ax-validation-rule\">\r\n </ng-content>\r\n</div>\r\n\r\n<!-- <div class=\"ax-selection-list ax-{{direction}}\">\r\n <ng-container *ngIf=\"multiple; then checkboxList; else radioButtonList\"></ng-container>\r\n <ng-template #checkboxList>\r\n <ng-container *ngFor=\"let item of displayItems;let i = index\">\r\n <div class=\"ax-flex ax-items-start ax-checkbox-container ax-mb-2\">\r\n <div class=\"ax-flex ax-items-center ax-h-5\">\r\n <ax-check-box [checked]=\"isItemSelected(item)\" [disabled]=\"disabled || item.disabled\" [readonly]=\"readonly || item.readonly\">\r\n \r\n <ax-label> {{item[textField]}} | {{isItemSelected(item)}}</ax-label>\r\n <ax-form-hint *ngIf=\"item[hintField]\"> {{item[hintField]}} </ax-form-hint>\r\n </ax-check-box>\r\n </div>\r\n </div>\r\n </ng-container>\r\n </ng-template>\r\n <ng-template #radioButtonList>\r\n <ng-container *ngFor=\"let item of displayItems;let i = index\">\r\n <div class=\"ax-flex ax-items-start ax-radio-container ax-mb-2\">\r\n <div class=\"ax-flex ax-items-center ax-h-5\">\r\n <ax-radio [id]=\"id+'-'+i\" [checked]=\"isItemSelected(item)\" [disabled]=\"disabled || item.disabled\" [readonly]=\"readonly || item.readonly\">\r\n <ax-label>{{item[textField]}} | {{isItemSelected(item)}}</ax-label>\r\n <ax-form-hint *ngIf=\"item[hintField]\"> {{item[hintField]}} </ax-form-hint>\r\n </ax-radio>\r\n </div>\r\n </div>\r\n </ng-container>\r\n </ng-template>\r\n <ng-content select=\"ax-validation-rule\">\r\n </ng-content>\r\n</div> -->","import { NgModule } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\nimport { AXSelectionListComponent } from './selection-list.component';\r\nimport { FormsModule } from '@angular/forms';\r\n\r\nimport { AXCheckBoxModule } from '../checkbox';\r\nimport { AXRadioModule } from '../radio';\r\nimport { AXLabelModule } from '../label';\r\nimport { AXFormModule } from '../form';\r\n\r\n@NgModule({\r\n declarations: [AXSelectionListComponent],\r\n imports: [CommonModule, FormsModule, AXCheckBoxModule,AXRadioModule,AXLabelModule,AXFormModule],\r\n exports: [AXSelectionListComponent],\r\n providers: []\r\n})\r\nexport class AXSelectionListModule { }\r\n","import { Component, ChangeDetectorRef, ChangeDetectionStrategy, ViewEncapsulation, ElementRef, HostBinding, Input } from '@angular/core';\r\nimport { AXBaseValueComponentMixin } from '../base';\r\nimport { VALUE_INPUTS, VALUE_OUTPUT } from '../base/mixin/value-mixin.class';\r\n\r\n@Component({\r\n selector: 'ax-switch',\r\n templateUrl: './switch.component.html',\r\n inputs: ['disabled', 'readonly', 'tabIndex', 'size', 'cssClass', 'cssStyle', ...VALUE_INPUTS],\r\n outputs: ['onBlur', 'onFocus', ...VALUE_OUTPUT],\r\n host: { class: 'ax-switch' },\r\n encapsulation: ViewEncapsulation.None,\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n})\r\nexport class AXSwitchComponent extends AXBaseValueComponentMixin {\r\n\r\n @Input()\r\n uncheckedText: string;\r\n\r\n @Input()\r\n checkedText: string;\r\n\r\n\r\n @Input()\r\n loading: boolean;\r\n\r\n constructor(elementRef: ElementRef, cdr: ChangeDetectorRef) {\r\n super(elementRef, cdr);\r\n }\r\n\r\n _handleOnClickEvent(e: MouseEvent) {\r\n if (this.readonly || this.disabled) {\r\n e.preventDefault();\r\n e.stopPropagation();\r\n } else{\r\n this.value = !this.value;\r\n }\r\n }\r\n\r\n}\r\n","<button type=\"button\" role=\"switch\" [class.ax-state-disabled]=\"disabled\" [class.ax-state-readonly]=\"readonly\"\r\n [class.ax-switch-checked]=\"value\" (click)=\"_handleOnClickEvent($event)\">\r\n <div class=\"ax-switch-handle\">\r\n <ax-loading *ngIf=\"loading\"></ax-loading>\r\n </div>\r\n <span class=\"ax-switch-inner\" *ngIf=\"!value\">\r\n <ng-content select=\"ax-prefix\"></ng-content>\r\n\r\n </span>\r\n <span class=\"ax-switch-inner\" *ngIf=\"value\">\r\n <ng-content select=\"ax-suffix\"></ng-content>\r\n </span>\r\n\r\n</button>","import { NgModule } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\nimport { FormsModule } from '@angular/forms';\r\nimport { AXSwitchComponent } from './switch.component';\r\nimport { AXLoadingModule } from '../loading';\r\n\r\n@NgModule({\r\n declarations: [AXSwitchComponent],\r\n imports: [CommonModule, FormsModule, AXLoadingModule],\r\n exports: [AXSwitchComponent],\r\n providers: []\r\n})\r\nexport class AXSwitchModule {\r\n\r\n \r\n\r\n}","import {\r\n Component,\r\n ViewEncapsulation,\r\n ChangeDetectionStrategy,\r\n ElementRef,\r\n ChangeDetectorRef,\r\n Input,\r\n ViewChild,\r\n TemplateRef,\r\n Output,\r\n EventEmitter,\r\n HostListener,\r\n ContentChild,\r\n} from '@angular/core';\r\nimport { AXBaseClickableMixin } from '../base';\r\nimport { AXDecoratorHeaderComponent } from '../decorators/header.component';\r\n\r\n@Component({\r\n selector: 'ax-tab-item',\r\n template: `\r\n <ng-container *ngIf=\"headerTemplate;else header\">\r\n <ng-container [ngTemplateOutlet]=\"headerTemplate\" [ngTemplateOutletContext]=\"{ $implicit: {text,active} }\"></ng-container>\r\n </ng-container>\r\n <!-- <ng-container *ngIf=\"headerTemplate;else header\">\r\n <ng-content select=\"ax-header\">\r\n </ng-content>\r\n </ng-container> -->\r\n <ng-template #header>\r\n <ng-content select=\"ax-prefix\"></ng-content>\r\n <span>{{text}}</span>\r\n <ng-content select=\"ax-suffix\"></ng-content>\r\n </ng-template>\r\n <ng-template #content>\r\n <ng-content select=\"ax-content\">\r\n </ng-content>\r\n </ng-template>\r\n `,\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n encapsulation: ViewEncapsulation.None,\r\n})\r\nexport class AXTabItemComponent extends AXBaseClickableMixin {\r\n\r\n constructor(elementRef: ElementRef, cdr: ChangeDetectorRef) {\r\n super(elementRef, cdr);\r\n }\r\n\r\n @Input()\r\n text: string;\r\n\r\n\r\n @Input()\r\n name: string;\r\n\r\n @Input()\r\n width: boolean = false;\r\n\r\n\r\n @ViewChild('content')\r\n template: TemplateRef<any>;\r\n\r\n\r\n @ContentChild('header', { static: true })\r\n headerTemplate: TemplateRef<any>;\r\n\r\n\r\n @Output()\r\n activeChange: EventEmitter<boolean> = new EventEmitter<boolean>();\r\n\r\n private _active: boolean = false;\r\n @Input()\r\n public get active(): boolean {\r\n return this._active;\r\n }\r\n public set active(v: boolean) {\r\n this._active = v;\r\n this.activeChange.emit(v);\r\n v ? this._getHostElement().classList.add('ax-state-active') : this._getHostElement().classList.remove('ax-state-active');\r\n this._cdr.detectChanges();\r\n }\r\n\r\n\r\n // @HostBinding('class')\r\n // private get __hostClass(): string {\r\n // ;\r\n // const classes: any = {\r\n // 'ax-state-active': this.active\r\n // }\r\n // return Object.entries(classes).filter(c => c[1]).map(c => c[0]).join(' ');\r\n // }\r\n\r\n @HostListener('click', ['$event'])\r\n private __hostClick(e: MouseEvent) {\r\n this.onClick.emit({\r\n component: this,\r\n htmlElement: this._getHostElement(),\r\n nativeEvent: e\r\n })\r\n }\r\n\r\n}\r\n","import { Component, ViewEncapsulation, ChangeDetectionStrategy, ElementRef, ChangeDetectorRef, ContentChildren, QueryList, Input, HostBinding, ViewChild, TemplateRef, ViewContainerRef, Renderer2, ComponentFactory, Inject, Injector, Output, EventEmitter } from '@angular/core';\r\nimport { AXTabStripChangedEvent } from './tabs.class';\r\nimport { AXBaseComponent } from '../base';\r\nimport { AXTabItemComponent } from './tab-item.component';\r\nimport { AXTabContentDirective } from './tab-content.directive';\r\n\r\n@Component({\r\n selector: 'ax-tabs',\r\n template: `\r\n <div class=\"ax-items-wrapper\">\r\n <ng-content select=\"ax-tab-item\">\r\n </ng-content>\r\n </div>\r\n `,\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n encapsulation: ViewEncapsulation.None,\r\n})\r\nexport class AXTabsComponent extends AXBaseComponent {\r\n\r\n @ContentChildren(AXTabItemComponent) _contentTabs: QueryList<AXTabItemComponent>;\r\n\r\n @Input()\r\n fitParent: boolean = false;\r\n\r\n @Input()\r\n minWidth: boolean = false;\r\n\r\n\r\n @Input()\r\n content: AXTabContentDirective;\r\n\r\n constructor(\r\n elementRef: ElementRef,\r\n cdr: ChangeDetectorRef\r\n ) {\r\n super(elementRef, cdr);\r\n }\r\n\r\n\r\n private _isUserInteraction: boolean = false;\r\n\r\n\r\n @Output()\r\n onActiveTabChanged: EventEmitter<AXTabStripChangedEvent> = new EventEmitter<AXTabStripChangedEvent>();\r\n\r\n onRenderCssClass() {\r\n const classList = Array.from(this._getHostElement().classList);\r\n if (!classList.some(c => ['ax-vertical', 'ax-horizontal'].includes(c))) {\r\n this._getHostElement().classList.add('ax-horizontal');\r\n }\r\n if (!classList.some(c => c.startsWith('ax-look-'))) {\r\n this._getHostElement().classList.add('ax-look-default');\r\n }\r\n }\r\n\r\n onViewInit() {\r\n const selected = this._contentTabs.find(c => c.active) || this._contentTabs.get(0)\r\n this._handleSelectionChanged(selected);\r\n this._contentTabs.forEach(c => {\r\n c.onClick.subscribe(t => {\r\n this._isUserInteraction = t.nativeEvent?.isTrusted;\r\n this._handleSelectionChanged(c);\r\n })\r\n });\r\n }\r\n\r\n\r\n _handleSelectionChanged(e: AXTabItemComponent) {\r\n this._contentTabs.filter(c => c != e).forEach(c => { c.active = false; });\r\n const index = this._contentTabs.toArray().indexOf(e);\r\n e.active = true;\r\n if (this.content) {\r\n this.content.portal = e.template;\r\n }\r\n this._cdr.markForCheck();\r\n this.onActiveTabChanged.emit({\r\n component: this,\r\n isUserInteraction: this._isUserInteraction,\r\n selectedTab: e,\r\n selectedIndex: index\r\n })\r\n this._isUserInteraction = false;\r\n }\r\n\r\n\r\n}\r\n","import { AXEvent } from \"../base\";\r\nimport { AXTabItemComponent } from \"./tab-item.component\";\r\n\r\n\r\n\r\nexport class AXTabStripChangedEvent extends AXEvent {\r\n selectedTab: AXTabItemComponent;\r\n selectedIndex: number;\r\n}","import { Directive, TemplateRef, ViewContainerRef } from \"@angular/core\";\r\n\r\n@Directive({\r\n selector: '[axTabContent]',\r\n exportAs: 'axTabContent',\r\n inputs: ['portal: axTabContent'],\r\n})\r\nexport class AXTabContentDirective {\r\n\r\n constructor(\r\n private _viewContainerRef: ViewContainerRef,\r\n ) {\r\n }\r\n\r\n\r\n\r\n private _portal: TemplateRef<any>;\r\n public get portal(): TemplateRef<any> {\r\n return this._portal;\r\n }\r\n public set portal(v: TemplateRef<any>) {\r\n //;\r\n if (v) {\r\n this._portal = v;\r\n this._viewContainerRef.clear();\r\n const viewRef = this._viewContainerRef.createEmbeddedView(v, null, 0);\r\n }\r\n }\r\n\r\n}","import { NgModule } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\nimport { AXTabsComponent } from './tabs.component';\r\nimport { AXTabItemComponent } from './tab-item.component';\r\nimport { AXEditorDecoratorModule } from '../decorators';\r\nimport { PortalModule } from '@angular/cdk/portal';\r\nimport { AXTabContentDirective } from './tab-content.directive';\r\n\r\nconst COMPONENT = [AXTabsComponent, AXTabItemComponent, AXTabContentDirective];\r\nconst MODULES = [CommonModule, PortalModule, AXEditorDecoratorModule];\r\n\r\n@NgModule({\r\n declarations: [...COMPONENT],\r\n imports: [...MODULES],\r\n exports: [...COMPONENT],\r\n providers: [],\r\n})\r\nexport class AXTabsModule { }\r\n","import { ChangeDetectionStrategy, ChangeDetectorRef, Component, ElementRef, Input, ViewEncapsulation } from '@angular/core';\r\nimport { AXBaseTextBoxMixin } from '../base';\r\nimport { INTERACTIVE_INPUTS, INTERACTIVE_OUTPUT } from '../base/mixin/interactive-mixin.class';\r\nimport { TEXTBOX_INPUTS, TEXTBOX_OUTPUT } from '../base/mixin/textbox-mixin.class';\r\nimport { VALUE_INPUTS, VALUE_OUTPUT } from '../base/mixin/value-mixin.class';\r\n\r\n@Component({\r\n selector: 'ax-textarea',\r\n templateUrl: './textarea.component.html',\r\n inputs: [...INTERACTIVE_INPUTS, ...VALUE_INPUTS, ...TEXTBOX_INPUTS],\r\n outputs: [...INTERACTIVE_OUTPUT, ...VALUE_OUTPUT, ...TEXTBOX_OUTPUT],\r\n encapsulation: ViewEncapsulation.None,\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n host: { class: 'ax-textarea-container' }\r\n})\r\nexport class AXTextareaComponent extends AXBaseTextBoxMixin {\r\n\r\n @Input()\r\n rows: number = 0;\r\n\r\n /**\r\n * @ignore\r\n */\r\n constructor(elementRef: ElementRef, cdr: ChangeDetectorRef) {\r\n super(elementRef, cdr);\r\n }\r\n}\r\n","<ng-content select=\"ax-prefix\"></ng-content>\r\n<textarea [attr.name]=\"name\" type=\"text\" [rows]=\"rows\" [attr.placeholder]=\"placeholder\" [attr.maxlength]=\"maxLength\"\r\n [class.ax-state-disabled]=\"disabled\" [class.ax-state-readonly]=\"readonly\" [disabled]=\"disabled\"\r\n [readonly]=\"readonly\" [tabindex]=\"tabIndex\" [(ngModel)]=\"value\" (focus)=\"_emitOnFocusEvent($event)\"\r\n (blur)=\"_emitOnBlurEvent($event)\" [attr.autocomplete]=\"autoComplete\"></textarea>\r\n<!-- <ng-content select=\"ax-suffix\"></ng-content> -->\r\n","import { NgModule } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\nimport { FormsModule } from '@angular/forms';\r\nimport { AXTextareaComponent } from './textarea.component';\r\n\r\n@NgModule({\r\n declarations: [AXTextareaComponent],\r\n imports: [\r\n CommonModule,\r\n FormsModule,\r\n ],\r\n exports: [AXTextareaComponent],\r\n})\r\nexport class AXTextareaModule { }","import { AXDateTime, AXStringUtil } from '@acorex/core';\r\nimport { Component, ViewEncapsulation, ChangeDetectionStrategy, ElementRef, ChangeDetectorRef, EventEmitter, Output, Input, HostBinding, ViewChild } from '@angular/core';\r\nimport IMask from 'imask';\r\nimport { IMaskDirective } from 'angular-imask';\r\nimport { AXBaseTextBoxMixin, AXComponentOptionChanged } from '../base';\r\nimport { TEXTBOX_INPUTS, TEXTBOX_OUTPUT } from '../base/mixin/textbox-mixin.class';\r\nimport _ from 'lodash';\r\n\r\nexport type AX_TIME_FORMAT = 'HH:mm' | 'HH:mm:ss';\r\n\r\n@Component({\r\n selector: 'ax-time-box',\r\n templateUrl: './time-box.component.html',\r\n inputs: ['disabled', 'readonly', 'tabIndex', 'size', 'value', ...TEXTBOX_INPUTS],\r\n outputs: ['valueChange', 'onValueChanged', 'onBlur', 'onFocus', ...TEXTBOX_OUTPUT],\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n encapsulation: ViewEncapsulation.None,\r\n host: { class: 'ax-editor-container ax-drop-down' },\r\n})\r\nexport class AXTimeBoxComponent extends AXBaseTextBoxMixin {\r\n\r\n\r\n private _minValue: Date;\r\n @Input()\r\n public get minValue(): Date {\r\n return this._minValue;\r\n }\r\n public set minValue(v: Date) {\r\n this._minValue = v;\r\n }\r\n\r\n private _maxValue: Date;\r\n @Input()\r\n public get maxValue(): Date {\r\n return this._maxValue;\r\n }\r\n public set maxValue(v: Date) {\r\n this._maxValue = v;\r\n }\r\n\r\n\r\n\r\n @Output()\r\n formatChange = new EventEmitter<string>();\r\n\r\n private _format: AX_TIME_FORMAT = 'HH:mm';\r\n @Input()\r\n public get format(): AX_TIME_FORMAT {\r\n return this._format;\r\n }\r\n public set format(v: AX_TIME_FORMAT) {\r\n this._setOption({\r\n name: 'format',\r\n value: v\r\n });\r\n }\r\n\r\n\r\n\r\n @Output()\r\n public displayTextChange: EventEmitter<string> = new EventEmitter<string>();\r\n private _displayText: string = \"\";\r\n\r\n @Input()\r\n public get displayText(): string {\r\n return this._displayText;\r\n }\r\n\r\n public set displayText(v: string) {\r\n this._displayText = v;\r\n this.displayTextChange.emit(v);\r\n }\r\n\r\n /**\r\n * @ignore\r\n */\r\n _maskObj: IMask.MaskedPattern\r\n\r\n\r\n @ViewChild(IMaskDirective)\r\n private _maskDirective: IMaskDirective<IMask.MaskedNumber>;\r\n\r\n\r\n constructor(\r\n elementRef: ElementRef,\r\n private cdr: ChangeDetectorRef\r\n ) {\r\n super(elementRef, cdr);\r\n }\r\n\r\n\r\n onViewInit(): void {\r\n super.onViewInit();\r\n this._updateMask();\r\n }\r\n\r\n _onValueChanged(oldValue?: any, newValue?: any) {\r\n this._updateText();\r\n this._maskDirective?.maskRef?.updateValue();\r\n this._maskDirective?.maskRef?.updateControl();\r\n }\r\n\r\n\r\n _updateText() {\r\n this.displayText = this.value ? AXDateTime.convert(this.value).format(this.format) : null;\r\n }\r\n\r\n _onOptionChanged(option: AXComponentOptionChanged): void {\r\n super._onOptionChanged(option);\r\n this._updateMask();\r\n }\r\n\r\n private _updateMask() {\r\n if (!this._maskObj) {\r\n this._maskObj = IMask.createMask({\r\n mask: this.format,\r\n lazy: false,\r\n blocks: {\r\n HH: {\r\n mask: IMask.MaskedRange,\r\n from: 0,\r\n to: 23,\r\n maxLength: 2,\r\n placeholderChar: '0',\r\n autofix: 'pad'\r\n },\r\n mm: {\r\n mask: IMask.MaskedRange,\r\n from: 0,\r\n to: 59,\r\n maxLength: 2,\r\n placeholderChar: '0',\r\n autofix: 'pad'\r\n },\r\n ss: {\r\n mask: IMask.MaskedRange,\r\n from: 0,\r\n to: 59,\r\n maxLength: 2,\r\n placeholderChar: '0',\r\n autofix: 'pad'\r\n }\r\n }\r\n });\r\n }\r\n else {\r\n this._maskObj.updateOptions({\r\n mask: this.format,\r\n });\r\n }\r\n this._maskDirective?.maskRef?.updateValue();\r\n this._maskDirective?.maskRef?.updateControl();\r\n }\r\n\r\n _handleOnKeydownEvent(e: KeyboardEvent) {\r\n\r\n const ignore = () => {\r\n e.preventDefault();\r\n e.stopPropagation();\r\n };\r\n\r\n const nums: string[] = Array(10).fill(0).map((v, i) => i.toString());\r\n const chars: string[] = ['Backspace', 'ArrowDown', 'ArrowUp', 'ArrowRight', 'ArrowLeft', 'Tab', 'Enter'];\r\n const input = (e.target as HTMLInputElement);\r\n const key = (e.key);\r\n const valStr = input.value;\r\n const sStart = input.selectionStart;\r\n const sEnd = input.selectionEnd;\r\n const dateVal = new AXDateTime(this.value);\r\n //\r\n const re = /[a-zA-Z0-9]+/ig;\r\n const parts = Array.from(this.format.matchAll(re));\r\n const word = valStr.substring(sStart, sEnd);\r\n const part = parts.find(c => c.index >= sStart);\r\n const next = Array.from(valStr.substr(sEnd).matchAll(re));\r\n const prev = Array.from(valStr.substring(0, sStart).matchAll(re));\r\n //const part = parts[Array.from(valStr.matchAll(re)).findIndex(c => c[0] == word)];\r\n //\r\n\r\n const goNext = () => {\r\n this._highlightPart(input, (sEnd + (next[0]?.index || 0)));\r\n }\r\n const goPrev = () => {\r\n this._highlightPart(input, (prev[prev.length - 1]?.index));\r\n }\r\n\r\n //\r\n if (e.key === 'ArrowRight' || e.key === 'ArrowLeft') {\r\n ignore();\r\n e.key === 'ArrowRight' ? goNext() : goPrev();\r\n }\r\n else if (e.key === 'ArrowUp' || e.key === 'ArrowDown') {\r\n if (e.ctrlKey && e.key === 'ArrowDown') {\r\n //this.open();\r\n }\r\n else {\r\n const sign = e.key === 'ArrowUp' ? +1 : -1;\r\n if (part) {\r\n switch (part[0]) {\r\n case 'hh':\r\n case 'h':\r\n case 'HH':\r\n case 'H':\r\n this.value = dateVal.add('hour', sign).date;\r\n break;\r\n case 'mm':\r\n this.value = dateVal.add('minute', sign).date;\r\n break;\r\n case 'ss':\r\n case 'SS':\r\n this.value = dateVal.add('second', sign).date;\r\n break;\r\n }\r\n setTimeout(() => {\r\n this._highlightPart(input, sStart);\r\n }, Math.max(10, this.debounceTime));\r\n }\r\n }\r\n ignore();\r\n }\r\n else if (e.key == 'Backspace') {\r\n // if (this.allowNull) {\r\n // this.value = null;\r\n // }\r\n // ignore();\r\n }\r\n else if (e.key == 'Tab') {\r\n if (sEnd < valStr.length && !e.shiftKey) {\r\n goNext();\r\n ignore();\r\n }\r\n else if (sStart != 0 && e.shiftKey) {\r\n goPrev();\r\n ignore();\r\n }\r\n }\r\n else {\r\n // const keys = {\r\n // h: {\r\n // v: /^[0-9]$|^[1][0-2]$/,\r\n // p: '0'\r\n // },\r\n // H: {\r\n // v: /^[0-9]$|^1[0-9]$|2[0-3]$/,\r\n // p: '0'\r\n // },\r\n // m: {\r\n // v: /^[0-9]$|^[1-5][0-9]$/,\r\n // p: '0'\r\n // }\r\n // }\r\n\r\n // // const re = new RegExp(_.orderBy(Object.keys(keys), c => c.length, ['desc']).join(\"|\"), \"gi\");\r\n // // return format.replace(re, function (matched) {\r\n // // return keys[matched]();\r\n // // });\r\n // const t = keys[part[0]];\r\n // if (!t.v.test(key)) {\r\n // ignore();\r\n\r\n // }\r\n // else {\r\n // this._updateText()\r\n // }\r\n\r\n }\r\n // super._emitOnKeydownEvent(e);\r\n }\r\n\r\n\r\n _handleKeyUpEvent(e: KeyboardEvent) {\r\n // const input = (e.target as HTMLInputElement);\r\n // setTimeout(() => {\r\n // this._highlightPart(input);\r\n // }, 700);\r\n }\r\n\r\n _emitOnFocusEvent(e: FocusEvent): void {\r\n const input = (e.target as HTMLInputElement);\r\n this._highlightPart(input);\r\n super._emitOnFocusEvent(e);\r\n }\r\n\r\n\r\n _handleOnInputClickEvent(e: MouseEvent): void {\r\n const input = (e.target as HTMLInputElement);\r\n this._highlightPart(input);\r\n e.preventDefault();\r\n e.stopPropagation();\r\n }\r\n\r\n\r\n private _highlightPart(input: HTMLInputElement, pos?: number) {\r\n const { start, end } = AXStringUtil.getWordBoundsAtPosition(input.value, pos != null ? pos : input.selectionStart);\r\n input.setSelectionRange(start, end);\r\n }\r\n}\r\n","<ng-content select=\"ax-prefix\">\r\n</ng-content>\r\n<input class=\"ax-input\" [imask]=\"_maskObj\" [unmask]=\"false\" type=\"text\" [attr.placeholder]=\"placeholder\"\r\n [class.ax-state-disabled]=\"disabled\" [class.ax-state-readonly]=\"readonly\" [disabled]=\"disabled\"\r\n [readonly]=\"readonly\" [tabindex]=\"tabIndex\" [ngModel]=\"displayText\" \r\n (mouseup)=\"_handleOnInputClickEvent($event)\"\r\n (focus)=\"_emitOnFocusEvent($event)\"\r\n (blur)=\"_emitOnBlurEvent($event)\"\r\n (keyup)=\"_handleKeyUpEvent($event)\" \r\n (keydown)=\"_handleOnKeydownEvent($event)\" \r\n autocomplete=\"off\">\r\n\r\n<ng-content select=\"ax-suffix\">\r\n</ng-content>\r\n<ng-content select=\"ax-validation-rule\">\r\n</ng-content>","import { NgModule } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\nimport { AXTimeBoxComponent } from './time-box.component';\r\nimport { FormsModule } from '@angular/forms';\r\nimport { AXButtonModule } from '../button';\r\nimport { IMaskModule } from 'angular-imask';\r\n\r\nconst COMPONENT = [AXTimeBoxComponent];\r\nconst MODULES = [\r\n CommonModule,\r\n FormsModule,\r\n AXButtonModule,\r\n IMaskModule\r\n];\r\n\r\n@NgModule({\r\n declarations: [...COMPONENT],\r\n imports: [...MODULES],\r\n exports: [...COMPONENT],\r\n providers: [],\r\n})\r\nexport class AXTimeBoxModule { }\r\n","import { Component, ViewEncapsulation, ChangeDetectionStrategy, ElementRef, ChangeDetectorRef } from '@angular/core';\r\nimport { AXBaseComponentMixin } from '../base';\r\nimport { AXButtonComponent, AXButtonItem } from '../button';\r\nimport { AXToastOptions } from './toast.class';\r\n\r\n@Component({\r\n selector: 'ax-toast',\r\n templateUrl: './toast.component.html',\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n encapsulation: ViewEncapsulation.None,\r\n host: { class: 'ax-toast' }\r\n})\r\nexport class AXToastComponent extends AXBaseComponentMixin {\r\n\r\n options: AXToastOptions;\r\n _toastWidth: number = 100;\r\n _icon: string;\r\n close: () => void;\r\n\r\n constructor(elementRef: ElementRef, cdr: ChangeDetectorRef) {\r\n super(elementRef, cdr);\r\n }\r\n\r\n onInit() {\r\n this._getHostElement().classList.add(`ax-${this.options.type}`);\r\n if (this.options.timeOut) {\r\n setTimeout(() => {\r\n this.close();\r\n }, this.options.timeOut);\r\n }\r\n switch (this.options.type) {\r\n case 'success':\r\n this._icon = 'ax-ic ax-ic-check-filled';\r\n break;\r\n case 'warning':\r\n this._icon = 'ax-ic ax-ic-warning-filled';\r\n break;\r\n case 'danger':\r\n this._icon = 'ax-ic ax-ic-error-filled';\r\n break;\r\n default:\r\n this._icon = 'ax-ic ax-ic-info-filled';\r\n break;\r\n }\r\n }\r\n\r\n _handleButtonClick(button: AXButtonItem) {\r\n if (button.onClick) {\r\n button.onClick(this);\r\n }\r\n }\r\n\r\n\r\n\r\n\r\n\r\n}\r\n","<div class=\"ax-toast-icon-side\">\r\n <i class=\"ax-toast-icon {{_icon}}\"></i>\r\n</div>\r\n<div class=\"ax-toast-content-side\">\r\n <div class=\"ax-toast-title\">{{options.title}}</div>\r\n <div class=\"ax-toast-content\" *ngIf=\"options.content\">{{options.content}}</div>\r\n</div>\r\n<div class=\"ax-toast-dismiss-icon\">\r\n <i class=\"ax-ic ax-ic-close\" *ngIf=\"options.closeable\" (click)=\"close()\"></i>\r\n</div>\r\n<div class=\"ax-toast-progress ax-{{options.type}}\" [style.animation-duration.ms]=\"options.timeOut\" *ngIf=\"options.timeOut\">\r\n</div>","import { NgModule } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\nimport { AXToastComponent } from './toast.component';\r\nimport { AXButtonModule } from '../button';\r\n\r\nconst COMPONENT = [AXToastComponent];\r\nconst MODULES = [CommonModule, AXButtonModule];\r\n\r\n@NgModule({\r\n declarations: [...COMPONENT],\r\n imports: [...MODULES],\r\n exports: [...COMPONENT],\r\n providers: [],\r\n})\r\nexport class AXToastModule { }\r\n","import { Overlay } from '@angular/cdk/overlay';\r\nimport { ComponentPortal } from '@angular/cdk/portal';\r\nimport { Injectable, Injector } from '@angular/core';\r\nimport { AXToastOptions, AXToastRef } from './toast.class';\r\nimport { AXToastComponent } from './toast.component';\r\n\r\n\r\n\r\n@Injectable({ providedIn: 'root' })\r\nexport class AXToastService {\r\n\r\n constructor(private overlayService: Overlay, private parentInjector: Injector) { }\r\n\r\n private _activeList: AXToastComponent[] = [];\r\n\r\n info(content: string) {\r\n this.show({\r\n timeOut: 2500,\r\n type: 'info',\r\n title: content\r\n });\r\n }\r\n\r\n success(content: string) {\r\n this.show({\r\n timeOut: 2500,\r\n type: 'success',\r\n title: content\r\n });\r\n }\r\n\r\n warning(content: string) {\r\n this.show({\r\n timeOut: 2500,\r\n type: 'warning',\r\n title: content\r\n });\r\n }\r\n\r\n danger(content: string) {\r\n this.show({\r\n timeOut: 2500,\r\n type: 'danger',\r\n title: content\r\n });\r\n }\r\n\r\n show(options: AXToastOptions): AXToastRef {\r\n const opt = Object.assign(\r\n {\r\n closeable: true,\r\n location: 'bottom-center'\r\n },\r\n options\r\n );\r\n const marging = 5;\r\n\r\n let positionStrategy = this.overlayService.position().global();\r\n const pos = this.getPosition(opt.location) + marging + 'px';\r\n switch (opt.location) {\r\n case 'bottom-center':\r\n positionStrategy = positionStrategy.bottom(pos).centerHorizontally()\r\n break;\r\n case 'bottom-end':\r\n positionStrategy = positionStrategy.bottom(pos).right(marging + 'px');\r\n break;\r\n case 'bottom-start':\r\n positionStrategy = positionStrategy.bottom(pos).left(marging + 'px');\r\n break;\r\n case 'top-center':\r\n positionStrategy = positionStrategy.top(pos).centerHorizontally()\r\n break;\r\n case 'top-end':\r\n positionStrategy = positionStrategy.top(pos).right(marging + 'px');\r\n break;\r\n case 'top-start':\r\n positionStrategy = positionStrategy.top(pos).left(marging + 'px');\r\n break;\r\n default:\r\n break;\r\n }\r\n const overlayRef = this.overlayService.create(\r\n {\r\n positionStrategy,\r\n panelClass: ['ax-animate-animated', 'ax-animate-fadeIn', 'ax-animate-faster'],\r\n });\r\n const toastPortal = new ComponentPortal(AXToastComponent, null, this.parentInjector);\r\n\r\n const host = overlayRef.attach(toastPortal);\r\n (host.instance as any).visibleIndex = this._activeList.length;\r\n this._activeList.push(host.instance);\r\n if (host.instance) {\r\n Object.assign(host.instance, {\r\n options: opt,\r\n close: () => {\r\n this._activeList = this._activeList.filter(c => c != host.instance);\r\n overlayRef.dispose()\r\n }\r\n });\r\n setTimeout(() => {\r\n host.changeDetectorRef.detectChanges();\r\n }, 0);\r\n }\r\n\r\n return {\r\n close: () => {\r\n host.instance.close();\r\n }\r\n }\r\n }\r\n\r\n private getPosition(location: string) {\r\n const list = this._activeList.filter(c => c.options.location == location);\r\n if (list.length == 0) return 0;\r\n if (location.split('-')[0] == 'bottom') {\r\n return window.innerHeight - list[list.length - 1]._getHostElement().offsetTop;\r\n }\r\n else {\r\n return list[list.length - 1]._getHostElement().offsetTop + list[list.length - 1]._getHostElement().offsetHeight;\r\n }\r\n }\r\n}\r\n","import { animate, style, transition, trigger } from '@angular/animations';\r\nimport {\r\n Component,\r\n ViewEncapsulation,\r\n ChangeDetectionStrategy,\r\n ElementRef,\r\n ChangeDetectorRef,\r\n Input,\r\n} from '@angular/core';\r\nimport { AXBaseComponentMixin } from '../base';\r\n\r\n@Component({\r\n selector: 'ax-tooltip',\r\n templateUrl: './tooltip.component.html',\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n encapsulation: ViewEncapsulation.None,\r\n host: { class: 'ax-tooltip' },\r\n animations: [\r\n trigger('tooltip', [\r\n transition(':enter', [\r\n style({ opacity: 0 }),\r\n animate(50, style({ opacity: 1 })),\r\n ]),\r\n transition(':leave', [animate(50, style({ opacity: 0 }))]),\r\n ]),\r\n ],\r\n})\r\nexport class AXTooltipComponent extends AXBaseComponentMixin {\r\n constructor(elementRef: ElementRef, cdr: ChangeDetectorRef) {\r\n super(elementRef, cdr);\r\n }\r\n @Input()\r\n text: string = 'Text';\r\n\r\n @Input() position = 'top';\r\n}\r\n","<div class=\"ax-tooltip-container\">\r\n <div class=\"ax-tooltip\" @tooltip>\r\n {{ text }}\r\n </div>\r\n <div class=\"ax-tooltip-tringle ax-tooltip-tringle-{{position}}\"></div>\r\n</div>","import {\r\n ComponentRef,\r\n Directive,\r\n ElementRef,\r\n HostListener,\r\n Input,\r\n OnInit,\r\n} from '@angular/core';\r\nimport {\r\n Overlay,\r\n OverlayPositionBuilder,\r\n OverlayRef,\r\n} from '@angular/cdk/overlay';\r\nimport { ComponentPortal } from '@angular/cdk/portal';\r\nimport { AXTooltipComponent } from './tooltip.component';\r\n\r\n@Directive({ selector: '[axTooltip]' })\r\nexport class AXTooltipDirective implements OnInit {\r\n @Input('axTooltip') text = '';\r\n @Input('axTooltipPositon') position = 'top';\r\n\r\n private overlayRef: OverlayRef;\r\n\r\n positions: any;\r\n\r\n constructor(\r\n private overlay: Overlay,\r\n private overlayPositionBuilder: OverlayPositionBuilder,\r\n private elementRef: ElementRef\r\n ) {}\r\n\r\n ngOnInit(): void {\r\n switch (this.position) {\r\n default:\r\n case 'top':\r\n this.positions = {\r\n originX: 'center',\r\n originY: 'top',\r\n overlayX: 'center',\r\n overlayY: 'bottom',\r\n offsetY: -8,\r\n };\r\n break;\r\n case 'right':\r\n this.positions = {\r\n originX: 'end',\r\n originY: 'center',\r\n overlayX: 'start',\r\n overlayY: 'center',\r\n offsetX: 8,\r\n };\r\n break;\r\n case 'bottom':\r\n this.positions = {\r\n originX: 'center',\r\n originY: 'bottom',\r\n overlayX: 'center',\r\n overlayY: 'top',\r\n offsetY: 8,\r\n };\r\n break;\r\n case 'left':\r\n this.positions = {\r\n originX: 'start',\r\n originY: 'center',\r\n overlayX: 'end',\r\n overlayY: 'center',\r\n offsetX: -8,\r\n };\r\n break;\r\n }\r\n const positionStrategy = this.overlayPositionBuilder\r\n .flexibleConnectedTo(this.elementRef)\r\n .withPositions([this.positions]);\r\n\r\n this.overlayRef = this.overlay.create({ positionStrategy });\r\n }\r\n\r\n @HostListener('mouseenter')\r\n show() {\r\n const tooltipRef: ComponentRef<AXTooltipComponent> = this.overlayRef.attach(\r\n new ComponentPortal(AXTooltipComponent)\r\n );\r\n\r\n tooltipRef.instance.text = this.text;\r\n tooltipRef.instance.position = this.position;\r\n }\r\n\r\n @HostListener('mouseout')\r\n hide() {\r\n this.overlayRef.detach();\r\n }\r\n}\r\n","import { NgModule } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\nimport { AXTooltipComponent } from './tooltip.component';\r\nimport { AXTooltipDirective } from './tooltip.directive';\r\nimport { OverlayModule } from '@angular/cdk/overlay';\r\n\r\nconst COMPONENT = [AXTooltipComponent, AXTooltipDirective];\r\nconst MODULES = [CommonModule, OverlayModule];\r\n\r\n@NgModule({\r\n declarations: [...COMPONENT],\r\n imports: [...MODULES],\r\n exports: [...COMPONENT],\r\n providers: [],\r\n})\r\nexport class AXTooltipModule {}\r\n","import { Component, Input, OnInit, ViewEncapsulation } from '@angular/core';\r\n\r\n@Component({\r\n selector: 'ax-tree-view',\r\n templateUrl: './tree-view.component.html',\r\n encapsulation: ViewEncapsulation.None,\r\n host: { class: \"ax-tree-view\" }\r\n})\r\nexport class AXTreeViewComponent implements OnInit {\r\n constructor() { }\r\n\r\n ngOnInit(): void { }\r\n\r\n @Input()\r\n showLines: \"all\" | \"node\" | \"none\" = \"all\";\r\n\r\n public list = [\r\n {\r\n title: 'childless',\r\n children: []\r\n },\r\n {\r\n title: 'great grandparent',\r\n children: [\r\n {\r\n title: 'childless grandsibiling',\r\n children: []\r\n },\r\n {\r\n title: 'grandparent',\r\n children: [\r\n {\r\n title: 'childless sibiling',\r\n children: []\r\n },\r\n {\r\n title: 'another childless sibiling',\r\n children: []\r\n },\r\n {\r\n title: 'parent',\r\n children: [\r\n {\r\n title: 'child',\r\n children: []\r\n },\r\n {\r\n title: 'another child',\r\n children: []\r\n },\r\n ]\r\n },\r\n {\r\n title: 'another parent',\r\n children: [\r\n {\r\n title: 'child',\r\n children: []\r\n },\r\n ]\r\n },\r\n ]\r\n },\r\n {\r\n title: 'another grandparent',\r\n children: [\r\n {\r\n title: 'parent',\r\n children: [\r\n {\r\n title: 'child',\r\n children: []\r\n },\r\n {\r\n title: 'another child',\r\n children: []\r\n },\r\n {\r\n title: 'a third child',\r\n children: []\r\n },\r\n {\r\n title: 'teen mother',\r\n children: [\r\n {\r\n title: 'accident',\r\n children: []\r\n },\r\n ]\r\n },\r\n ]\r\n },\r\n ]\r\n },\r\n ]\r\n },\r\n ];\r\n\r\n}\r\n","<ul class=\"ax-list-{{showLines}}\">\r\n <ng-template #recursiveList let-list>\r\n <li *ngFor=\"let item of list\">\r\n <span>\r\n <ax-check-box></ax-check-box>\r\n \r\n <span>{{item.title}}</span>\r\n </span>\r\n <ul *ngIf=\"item.children.length > 0\">\r\n <ng-container *ngTemplateOutlet=\"recursiveList; context:{ $implicit: item.children }\"></ng-container>\r\n </ul>\r\n </li>\r\n </ng-template>\r\n <ng-container *ngTemplateOutlet=\"recursiveList; context:{ $implicit: list }\"></ng-container>\r\n </ul>","import { NgModule } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\nimport { AXCheckBoxModule } from '../checkbox';\r\nimport { AXTreeViewComponent } from './tree-view.component';\r\n\r\n@NgModule({\r\n declarations: [AXTreeViewComponent],\r\n imports: [CommonModule, AXCheckBoxModule],\r\n exports: [AXTreeViewComponent],\r\n providers: [],\r\n})\r\nexport class AXTreeViewModule { }","import { ChangeDetectionStrategy, ChangeDetectorRef, Component, ElementRef, HostBinding, Input, ViewEncapsulation } from '@angular/core';\r\nimport { AXValidationRuleResult, AXValidationRule, AXValidationRuleTypes } from './validation.class';\r\nimport { AXTranslator } from '@acorex/core';\r\nimport { AXBaseComponentMixin } from '../base';\r\n\r\n\r\n// @dynamic\r\nexport class AXValidationRules {\r\n private static registredRules: { name: string, rule: AXValidationRule }[] = [];\r\n\r\n public static addRule(name: string, rule: AXValidationRule) {\r\n const exists = AXValidationRules.get(name);\r\n if (exists) {\r\n exists.rule = rule;\r\n }\r\n else {\r\n AXValidationRules.registredRules.push({\r\n name,\r\n rule\r\n });\r\n }\r\n }\r\n\r\n public static get(name: string) {\r\n return this.registredRules.find(c => c.name === name);\r\n }\r\n}\r\n\r\n\r\n@Component({\r\n selector: 'ax-validation-rule',\r\n template: '',\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n encapsulation: ViewEncapsulation.None\r\n})\r\nexport class AXValidationRuleComponent extends AXBaseComponentMixin implements AXValidationRule {\r\n\r\n @Input()\r\n rule: AXValidationRuleTypes = 'required';\r\n\r\n @Input()\r\n message: string;\r\n\r\n @Input()\r\n showMessage: boolean = true;\r\n\r\n @Input()\r\n value: any;\r\n\r\n @Input()\r\n enabled: boolean = true;\r\n\r\n constructor(elementRef: ElementRef, cdr: ChangeDetectorRef) {\r\n super(elementRef, cdr);\r\n }\r\n\r\n onInit() {\r\n (this._getHostElement() as any).validate = this.validate.bind(this);\r\n }\r\n\r\n validate(value: any): Promise<AXValidationRuleResult> {\r\n if (this.enabled === false) {\r\n return Promise.resolve({ result: true });\r\n }\r\n const regRule = AXValidationRules.get(this.rule);\r\n if (regRule) {\r\n return this._internalValidate(regRule.rule.rule, value, this.message || regRule.rule.message, regRule.rule.value);\r\n }\r\n else {\r\n return this._internalValidate(this.rule, value, this.message, this.value);\r\n }\r\n }\r\n\r\n\r\n private _internalValidate(type: string, value?: any, message?: string, ruleValue?: any): Promise<AXValidationRuleResult> {\r\n return new Promise<AXValidationRuleResult>(resolve => {\r\n switch (type) {\r\n case 'required':\r\n resolve({\r\n message: this.showMessage ? (message || AXTranslator.get('validation.messages.required')) : null,\r\n result: value != null && value != '' && (!Array.isArray(value) || (Array.isArray(value) && value.length > 0))\r\n });\r\n break;\r\n case 'regex':\r\n const ex = new RegExp(ruleValue);\r\n resolve({\r\n message: this.showMessage ? (message || AXTranslator.get('validation.messages.regex')) : null,\r\n result: ex.test(value)\r\n });\r\n break;\r\n case 'custom':\r\n case 'callback':\r\n if (typeof ruleValue === 'function') {\r\n const res: any = {};\r\n res.message = this.showMessage ? message : null;\r\n const val = ruleValue({ value, message });\r\n if (val instanceof Promise) {\r\n val.then(c => {\r\n res.result = c;\r\n }).catch(c => {\r\n res.result = false;\r\n }).finally(() => {\r\n resolve(res);\r\n });\r\n }\r\n else {\r\n res.result = val;\r\n resolve(res);\r\n }\r\n }\r\n else {\r\n resolve({ result: true });\r\n }\r\n break;\r\n default:\r\n resolve({ result: true });\r\n }\r\n });\r\n }\r\n}\r\n","import { NgModule } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\nimport { AXValidationRuleComponent, AXValidationRules } from './validation-rule.widget';\r\nimport { AXTranslator } from '@acorex/core';\r\n\r\n\r\n@NgModule({\r\n declarations: [AXValidationRuleComponent],\r\n imports: [CommonModule],\r\n exports: [AXValidationRuleComponent],\r\n providers: []\r\n})\r\nexport class AXValidationModule {\r\n constructor() {\r\n AXValidationRules.addRule('email', {\r\n message: AXTranslator.get('validation.messages.email'),\r\n rule: 'regex',\r\n value: /^(([^<>()[\\]\\\\.,;:\\s@\"]+(\\.[^<>()[\\]\\\\.,;:\\s@\"]+)*)|(\".+\"))@((\\[[0-9]{1,3}\\.[0-9]{1,3}\\.[0-9]{1,3}\\.[0-9]{1,3}\\])|(([a-zA-Z\\-0-9]+\\.)+[a-zA-Z]{2,}))$/\r\n })\r\n AXValidationRules.addRule('phone', {\r\n message: AXTranslator.get('validation.messages.phone'),\r\n rule: 'regex',\r\n value: /^[+]*[(]{0,1}[0-9]{1,4}[)]{0,1}[-\\s\\./0-9]*$/\r\n })\r\n }\r\n}\r\n","/**\r\n * Public API refrences of components\r\n * @module @acorex/components\r\n */\r\nexport * from \"./lib/alert\";\r\nexport * from \"./lib/avatar\";\r\nexport * from \"./lib/badge\";\r\nexport * from \"./lib/base\";\r\nexport * from \"./lib/button\";\r\nexport * from \"./lib/calendar\";\r\nexport * from \"./lib/carousel\";\r\nexport * from \"./lib/checkbox\";\r\nexport * from \"./lib/datalist\";\r\n// export * from \"./lib/datapager\";\r\nexport * from \"./lib/datepicker\";\r\nexport * from \"./lib/decorators\";\r\nexport * from \"./lib/dialog\";\r\nexport * from \"./lib/drawer\";\r\nexport * from \"./lib/dropdown\";\r\nexport * from \"./lib/form\";\r\nexport * from \"./lib/icon\";\r\nexport * from \"./lib/input-mask\";\r\nexport * from \"./lib/label\";\r\nexport * from \"./lib/loading\";\r\nexport * from \"./lib/menu\";\r\nexport * from \"./lib/number-box\";\r\nexport * from \"./lib/page\";\r\nexport * from \"./lib/password-box\";\r\nexport * from \"./lib/popover\";\r\nexport * from \"./lib/popup\";\r\nexport * from \"./lib/progress-bar\";\r\nexport * from \"./lib/radio\";\r\nexport * from \"./lib/range-slider\";\r\nexport * from \"./lib/selectbox\";\r\nexport * from \"./lib/selection-list\";\r\nexport * from \"./lib/switch\";\r\nexport * from \"./lib/tabs\";\r\nexport * from \"./lib/textarea\";\r\nexport * from \"./lib/textbox\";\r\nexport * from \"./lib/time-box\";\r\nexport * from \"./lib/toast\";\r\nexport * from \"./lib/tooltip\";\r\nexport * from \"./lib/treeview\";\r\nexport * from \"./lib/validation\";","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["COMPONENT","MODULES"],"mappings":"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"}
1
+ {"version":3,"file":"acorex-components.mjs","sources":["../../../../projects/acorex/components/src/lib/base/mixin/base-components.class.ts","../../../../projects/acorex/components/src/lib/base/mixin/datalist.class.ts","../../../../projects/acorex/components/src/lib/base/mixin/button-mixin.class.ts","../../../../projects/acorex/components/src/lib/base/mixin/clickable-mixin.class.ts","../../../../projects/acorex/components/src/lib/base/mixin/color-look-mixing.class.ts","../../../../projects/acorex/components/src/lib/base/mixin/datalist-component.class.ts","../../../../projects/acorex/components/src/lib/base/mixin/dropdown-mixin.class.ts","../../../../projects/acorex/components/src/lib/base/mixin/interactive-mixin.class.ts","../../../../projects/acorex/components/src/lib/base/mixin/selection-component.class.ts","../../../../projects/acorex/components/src/lib/base/mixin/sizable-mixin.class.ts","../../../../projects/acorex/components/src/lib/base/mixin/value-mixin.class.ts","../../../../projects/acorex/components/src/lib/base/mixin/textbox-mixin.class.ts","../../../../projects/acorex/components/src/lib/base/mixin/mixin.class.ts","../../../../projects/acorex/components/src/lib/base/events.class.ts","../../../../projects/acorex/components/src/lib/base/drawing.class.ts","../../../../projects/acorex/components/src/lib/base/styles.class.ts","../../../../projects/acorex/components/src/lib/base/responsive.directive.ts","../../../../projects/acorex/components/src/lib/base/infinite-scroll.directive.ts","../../../../projects/acorex/components/src/lib/base/common.module.ts","../../../../projects/acorex/components/src/lib/alert/alert.component.ts","../../../../projects/acorex/components/src/lib/alert/alert.component.html","../../../../projects/acorex/components/src/lib/alert/alert-title.component.ts","../../../../projects/acorex/components/src/lib/alert/alert-button.component.ts","../../../../projects/acorex/components/src/lib/alert/alert-content.component.ts","../../../../projects/acorex/components/src/lib/alert/alert-suffix.component.ts","../../../../projects/acorex/components/src/lib/alert/alert-footer.component.ts","../../../../projects/acorex/components/src/lib/icon/icon.component.ts","../../../../projects/acorex/components/src/lib/icon/icon.module.ts","../../../../projects/acorex/components/src/lib/alert/alert.module.ts","../../../../projects/acorex/components/src/lib/avatar/avatar.component.ts","../../../../projects/acorex/components/src/lib/avatar/avatar.component.html","../../../../projects/acorex/components/src/lib/avatar/avatar.module.ts","../../../../projects/acorex/components/src/lib/badge/badge.component.ts","../../../../projects/acorex/components/src/lib/badge/badge.component.html","../../../../projects/acorex/components/src/lib/badge/badge.module.ts","../../../../projects/acorex/components/src/lib/button/button.component.ts","../../../../projects/acorex/components/src/lib/button/button.component.html","../../../../projects/acorex/components/src/lib/button/button-group.component.ts","../../../../projects/acorex/components/src/lib/button/button-group.component.html","../../../../projects/acorex/components/src/lib/button/button-item.component.ts","../../../../projects/acorex/components/src/lib/decorators/content.component.ts","../../../../projects/acorex/components/src/lib/decorators/addon.component.ts","../../../../projects/acorex/components/src/lib/decorators/header.component.ts","../../../../projects/acorex/components/src/lib/decorators/prefix.component.ts","../../../../projects/acorex/components/src/lib/decorators/suffix.component.ts","../../../../projects/acorex/components/src/lib/decorators/decorators.module.ts","../../../../projects/acorex/components/src/lib/button/button.module.ts","../../../../projects/acorex/components/src/lib/calendar/calendar.class.ts","../../../../projects/acorex/components/src/lib/calendar/calendar.component.ts","../../../../projects/acorex/components/src/lib/calendar/calendar.component.html","../../../../projects/acorex/components/src/lib/calendar/calendar.module.ts","../../../../projects/acorex/components/src/lib/carousel/carousel.class.ts","../../../../projects/acorex/components/src/lib/carousel/carousel-splidejs.class.ts","../../../../projects/acorex/components/src/lib/carousel/carousel.component.ts","../../../../projects/acorex/components/src/lib/carousel/carousel.component.html","../../../../projects/acorex/components/src/lib/carousel/carousel-item.component.ts","../../../../projects/acorex/components/src/lib/carousel/carousel-arrows.component.ts","../../../../projects/acorex/components/src/lib/carousel/carousel-pager.component.ts","../../../../projects/acorex/components/src/lib/carousel/carousel.module.ts","../../../../projects/acorex/components/src/lib/checkbox/checkbox.component.ts","../../../../projects/acorex/components/src/lib/checkbox/checkbox.component.html","../../../../projects/acorex/components/src/lib/checkbox/checkbox.module.ts","../../../../projects/acorex/components/src/lib/loading/loading.component.ts","../../../../projects/acorex/components/src/lib/datalist/datalist.component.ts","../../../../projects/acorex/components/src/lib/datalist/datalist.component.html","../../../../projects/acorex/components/src/lib/loading/loading-spinner.component.ts","../../../../projects/acorex/components/src/lib/loading/loading.directive.ts","../../../../projects/acorex/components/src/lib/loading/loading.module.ts","../../../../projects/acorex/components/src/lib/base/custom-cdk-overlay.service.ts","../../../../projects/acorex/components/src/lib/base/overlay.service.ts","../../../../projects/acorex/components/src/lib/loading/loading.service.ts","../../../../projects/acorex/components/src/lib/datalist/datalist.module.ts","../../../../projects/acorex/components/src/lib/popover/popover.component.ts","../../../../projects/acorex/components/src/lib/popover/popover.component.html","../../../../projects/acorex/components/src/lib/datepicker/datepicker.component.ts","../../../../projects/acorex/components/src/lib/datepicker/datepicker.component.html","../../../../projects/acorex/components/src/lib/popover/popover.module.ts","../../../../projects/acorex/components/src/lib/textbox/textbox.component.ts","../../../../projects/acorex/components/src/lib/textbox/textbox.component.html","../../../../projects/acorex/components/src/lib/textbox/textbox.module.ts","../../../../projects/acorex/components/src/lib/datepicker/datepicker.module.ts","../../../../projects/acorex/components/src/lib/dialog/dialog.component.ts","../../../../projects/acorex/components/src/lib/dialog/dialog.component.html","../../../../projects/acorex/components/src/lib/dialog/dialog.service.ts","../../../../projects/acorex/components/src/lib/page/page.component.ts","../../../../projects/acorex/components/src/lib/page/page-footer.component.ts","../../../../projects/acorex/components/src/lib/page/base-page.class.ts","../../../../projects/acorex/components/src/lib/page/page-header.component.ts","../../../../projects/acorex/components/src/lib/page/page.module.ts","../../../../projects/acorex/components/src/lib/dialog/dialog.module.ts","../../../../projects/acorex/components/src/lib/drawer/drawer.component.ts","../../../../projects/acorex/components/src/lib/drawer/drawer-container.component.ts","../../../../projects/acorex/components/src/lib/drawer/drawer-content.component.ts","../../../../projects/acorex/components/src/lib/drawer/drawer.module.ts","../../../../projects/acorex/components/src/lib/dropdown/dropdown-panel.component.ts","../../../../projects/acorex/components/src/lib/dropdown/dropdown-panel.component.html","../../../../projects/acorex/components/src/lib/dropdown/dropdown.module.ts","../../../../projects/acorex/components/src/lib/form/form-field.component.ts","../../../../projects/acorex/components/src/lib/form/form-hint.component.ts","../../../../projects/acorex/components/src/lib/form/form.component.ts","../../../../projects/acorex/components/src/lib/form/form-field.module.ts","../../../../projects/acorex/components/src/lib/input-mask/input-mask.component.ts","../../../../projects/acorex/components/src/lib/input-mask/input-mask.module.ts","../../../../projects/acorex/components/src/lib/label/label.component.ts","../../../../projects/acorex/components/src/lib/label/label.component.html","../../../../projects/acorex/components/src/lib/label/label.module.ts","../../../../projects/acorex/components/src/lib/menu/menu.component.ts","../../../../projects/acorex/components/src/lib/menu/menu.component.html","../../../../projects/acorex/components/src/lib/menu/menu.module.ts","../../../../projects/acorex/components/src/lib/number-box/number-box.component.ts","../../../../projects/acorex/components/src/lib/number-box/number-box.component.html","../../../../projects/acorex/components/src/lib/number-box/number-box.module.ts","../../../../projects/acorex/components/src/lib/password-box/password-box.component.ts","../../../../projects/acorex/components/src/lib/password-box/password-box.component.html","../../../../projects/acorex/components/src/lib/password-box/password-box.module.ts","../../../../projects/acorex/components/src/lib/popup/popup.component.ts","../../../../projects/acorex/components/src/lib/popup/popup.component.html","../../../../projects/acorex/components/src/lib/popup/popup.service.ts","../../../../projects/acorex/components/src/lib/popup/popup.module.ts","../../../../projects/acorex/components/src/lib/progress-bar/progress-bar.component.ts","../../../../projects/acorex/components/src/lib/progress-bar/progress-bar.component.html","../../../../projects/acorex/components/src/lib/progress-bar/progress-bar.module.ts","../../../../projects/acorex/components/src/lib/radio/radio.component.ts","../../../../projects/acorex/components/src/lib/radio/radio.component.html","../../../../projects/acorex/components/src/lib/radio/radio.module.ts","../../../../projects/acorex/components/src/lib/range-slider/range-slider.component.ts","../../../../projects/acorex/components/src/lib/range-slider/range-slider.component.html","../../../../projects/acorex/components/src/lib/range-slider/range-slider.module.ts","../../../../projects/acorex/components/src/lib/selectbox/selectbox.component.ts","../../../../projects/acorex/components/src/lib/selectbox/selectbox.component.html","../../../../projects/acorex/components/src/lib/selectbox/selectbox.module.ts","../../../../projects/acorex/components/src/lib/selection-list/selection-list.component.ts","../../../../projects/acorex/components/src/lib/selection-list/selection-list.component.html","../../../../projects/acorex/components/src/lib/selection-list/selection-list.module.ts","../../../../projects/acorex/components/src/lib/switch/switch.component.ts","../../../../projects/acorex/components/src/lib/switch/switch.component.html","../../../../projects/acorex/components/src/lib/switch/switch.module.ts","../../../../projects/acorex/components/src/lib/tabs/tab-item.component.ts","../../../../projects/acorex/components/src/lib/tabs/tabs.component.ts","../../../../projects/acorex/components/src/lib/tabs/tabs.class.ts","../../../../projects/acorex/components/src/lib/tabs/tab-content.directive.ts","../../../../projects/acorex/components/src/lib/tabs/tabs.module.ts","../../../../projects/acorex/components/src/lib/textarea/textarea.component.ts","../../../../projects/acorex/components/src/lib/textarea/textarea.component.html","../../../../projects/acorex/components/src/lib/textarea/textarea.module.ts","../../../../projects/acorex/components/src/lib/time-box/time-box.component.ts","../../../../projects/acorex/components/src/lib/time-box/time-box.component.html","../../../../projects/acorex/components/src/lib/time-box/time-box.module.ts","../../../../projects/acorex/components/src/lib/toast/toast.component.ts","../../../../projects/acorex/components/src/lib/toast/toast.component.html","../../../../projects/acorex/components/src/lib/toast/toast.module.ts","../../../../projects/acorex/components/src/lib/toast/toast.service.ts","../../../../projects/acorex/components/src/lib/tooltip/tooltip.component.ts","../../../../projects/acorex/components/src/lib/tooltip/tooltip.component.html","../../../../projects/acorex/components/src/lib/tooltip/tooltip.directive.ts","../../../../projects/acorex/components/src/lib/tooltip/tooltip.module.ts","../../../../projects/acorex/components/src/lib/treeview/tree-view.component.ts","../../../../projects/acorex/components/src/lib/treeview/tree-view.component.html","../../../../projects/acorex/components/src/lib/treeview/tree-view.module.ts","../../../../projects/acorex/components/src/lib/validation/validation-rule.widget.ts","../../../../projects/acorex/components/src/lib/validation/validation.module.ts","../../../../projects/acorex/components/src/public-api.ts","../../../../projects/acorex/components/src/acorex-components.ts"],"sourcesContent":["import { ChangeDetectorRef, EventEmitter, Inject, Injectable } from \"@angular/core\";\r\nimport { ElementRef } from \"@angular/core\";\r\nimport { Constructor } from \"./constratctor\";\r\n\r\n\r\n/**\r\n* A token that specifies the size of component.\r\n*/\r\nexport type AXElementSize = 'xs' | 'sm' | 'md' | 'lg' | 'xl';\r\n\r\n\r\nexport type AXComponentOptionChanging = { name: string, value?: any };\r\nexport type AXComponentOptionChanged = { name: string, newValue?: any, oldValue?: any };\r\nexport type AXComponentSetOption = { name: string, value?: any, afterCallback?: () => void, beforeCallback?: () => void };\r\n\r\n@Injectable()\r\nexport class AXBaseComponent {\r\n id: string = `AX${Math.round(Math.random() * Math.pow(10, 10))}`;\r\n\r\n /**\r\n * A token that specifies the layout direction of component.\r\n */\r\n rtl: boolean;\r\n\r\n cssClass: string;\r\n cssStyle: string;\r\n\r\n\r\n #elementRef: ElementRef;\r\n _cdr: ChangeDetectorRef;\r\n\r\n _isInited: boolean;\r\n _isRendered: boolean;\r\n\r\n /**\r\n * @ignore\r\n */\r\n constructor(@Inject(Array) ...args: any[]) {\r\n this.#elementRef = args[0];\r\n this._cdr = args[1];\r\n }\r\n\r\n ngOnInit() {\r\n this._isInited = true;\r\n this._onInternalInit();\r\n }\r\n\r\n ngAfterViewInit() {\r\n this._isRendered = true;\r\n this._onInternalViewInit();\r\n }\r\n\r\n ngOnDestroy() {\r\n this._onInternalDestroy();\r\n }\r\n\r\n _getHostElement<T = HTMLElement>(): T {\r\n return this.#elementRef.nativeElement as T;\r\n }\r\n\r\n _getInnerElement<T = HTMLElement>(): T {\r\n return this._getHostElement().firstElementChild as unknown as T;\r\n }\r\n\r\n\r\n _onInternalInit() {\r\n (this._getHostElement() as any).__axContext__ = this;\r\n\r\n if (this.rtl == null) {\r\n this.rtl = window.getComputedStyle(this._getHostElement(), null).getPropertyValue('direction') === 'rtl';\r\n }\r\n //TODO: Apply \r\n // this._getHostElement().classList.add(this.rtl ? 'ax-rtl' : 'ax-ltr');\r\n // this._getInnerElement()?.classList.add(this.rtl ? 'ax-rtl' : 'ax-ltr');\r\n // this._getHostElement().setAttribute('data-id', this.id);\r\n this.onInit();\r\n this.onRenderCssClass();\r\n }\r\n\r\n _onInternalViewInit() {\r\n this.onViewInit();\r\n }\r\n\r\n _onInternalDestroy() {\r\n this.onDestroy();\r\n }\r\n\r\n onInit() {\r\n }\r\n\r\n onRenderCssClass() {\r\n }\r\n\r\n onViewInit() {\r\n }\r\n\r\n onDestroy() {\r\n }\r\n\r\n _onOptionChanging(option: AXComponentOptionChanging) {\r\n return option?.value;\r\n }\r\n _onOptionChanged(option: AXComponentOptionChanged): void {\r\n\r\n }\r\n\r\n _setOption(option: AXComponentSetOption) {\r\n const oldValue = this[option.name];\r\n const newValue = this._onOptionChanging({ name: option.name, value: option.value });\r\n //TODO : check real changes\r\n if (oldValue != newValue) {\r\n if (option.beforeCallback)\r\n option.beforeCallback();\r\n this[`_${option.name}`] = option.value;\r\n this._onOptionChanged({ name: option.name, newValue, oldValue });\r\n const emitter = this[`${option.name}Change`] as EventEmitter<any>;\r\n if (emitter)\r\n emitter.emit(newValue);\r\n if (option.afterCallback)\r\n option.afterCallback();\r\n }\r\n }\r\n}\r\n\r\n\r\nexport function _BaseComponenetMixin<TBase extends Constructor<AXBaseComponent>>(Base: TBase) {\r\n return class extends Base {\r\n constructor(...args: any[]) {\r\n super(...args);\r\n }\r\n }\r\n}\r\n\r\n\r\nexport const BASE_INPUTS = [\r\n 'rtl',\r\n 'cssClass',\r\n 'cssStyle'\r\n];\r\nexport const BASE_OUTPUT = [];\r\n","\r\nexport interface AXDataListQuery {\r\n take?: number;\r\n skip?: number;\r\n searchQuery?: string;\r\n}\r\nexport interface AXDataListFetchCallbackResult {\r\n items: any[];\r\n total: number;\r\n};\r\n\r\nexport type AXDataListFetchDataCallback = (e: AXDataListQuery) => Promise<any[] | AXDataListFetchCallbackResult>;\r\n\r\nexport type AXDataListItems = any[] | AXDataListFetchDataCallback;","import { EventEmitter } from '@angular/core';\r\nimport { AXBaseComponent } from './base-components.class';\r\nimport { Constructor } from './constratctor';\r\n\r\nexport function _ButtonComponentMixin<TBase extends Constructor<AXBaseComponent>>(Base: TBase) {\r\n return class extends Base {\r\n \r\n\r\n _text: string;\r\n /**\r\n * Defines the primary text to show inside the button.\r\n */\r\n get text(): string {\r\n return this._text;\r\n }\r\n set text(v: string) {\r\n this._setOption({\r\n name: 'text',\r\n value: v,\r\n afterCallback: () => {\r\n this._cdr.markForCheck();\r\n }\r\n })\r\n }\r\n\r\n\r\n /**\r\n * Trigger click event by Enter Key \r\n */\r\n submitBehavior: boolean = false;\r\n\r\n /**\r\n * Trigger click event by Esc Key\r\n */\r\n cancelBehavior: boolean = false;\r\n\r\n \r\n\r\n\r\n toggleableChange: EventEmitter<boolean> = new EventEmitter();\r\n _toggleable?: boolean = false;\r\n /**\r\n * Provides visual styling that indicates if the Button is active\r\n */\r\n get toggleable(): boolean {\r\n return this._toggleable;\r\n }\r\n set toggleable(value: boolean) {\r\n this._setOption({\r\n name: 'toggleable',\r\n value\r\n });\r\n }\r\n\r\n\r\n selectedChange: EventEmitter<boolean> = new EventEmitter();\r\n _selected?: boolean = false;\r\n /**\r\n * Indicates if the Button is selected or not\r\n */\r\n get selected(): boolean {\r\n return this._selected;\r\n }\r\n set selected(value: boolean) {\r\n this._setOption({\r\n name: 'selected',\r\n value,\r\n afterCallback: () => {\r\n this._cdr.markForCheck();\r\n }\r\n });\r\n }\r\n\r\n constructor(...args: any[]) {\r\n super(...args);\r\n }\r\n\r\n _onInternalViewInit() {\r\n super._onInternalViewInit();\r\n if (this.submitBehavior) {\r\n setTimeout(() => {\r\n (this as any).focus();\r\n }, 0);\r\n }\r\n }\r\n\r\n _onInternalDestroy() {\r\n super._onInternalDestroy();\r\n }\r\n\r\n\r\n get _classes() {\r\n const cssClasses = {\r\n 'ax-button-icon': !this.text,\r\n 'ax-state-disabled': this[\"disabled\"],\r\n 'ax-state-selected': this.selected\r\n };\r\n cssClasses[`ax-${this['color'] || 'primary'}${this['look'] ? '-' + this['look'] : '-default'}`] = true;\r\n return cssClasses;\r\n }\r\n };\r\n}\r\n\r\nexport const BUTTON_INPUTS = [\r\n 'text',\r\n 'submitBehavior',\r\n 'cancelBehavior',\r\n 'toggleable',\r\n 'selected',\r\n];\r\nexport const BUTTON_OUTPUT = ['onBlur', 'onFocus', 'onClick', 'selectedChange', 'toggleableChange'];\r\n","import { EventEmitter } from \"@angular/core\";\r\nimport { AXBaseComponent } from \"./base-components.class\";\r\nimport { Constructor } from \"./constratctor\";\r\nimport { AXClickEvent } from \"../events.class\";\r\n\r\n\r\nexport function _ClickableComponenetMixin<TBase extends Constructor<AXBaseComponent>>(Base: TBase){\r\n return class extends Base {\r\n\r\n /**\r\n * Fires each time the user clicks the button.\r\n * @event\r\n */\r\n onClick: EventEmitter<AXClickEvent> = new EventEmitter<AXClickEvent>();\r\n\r\n _emitOnClickEvent(e: MouseEvent): void {\r\n this.onClick.emit({\r\n component: this,\r\n htmlElement: this._getHostElement(),\r\n nativeEvent: e\r\n });\r\n }\r\n\r\n /**\r\n * @ignore\r\n */\r\n constructor(...args: any[]) {\r\n super(...args);\r\n }\r\n }\r\n}\r\n\r\n","import { EventEmitter } from \"@angular/core\";\r\nimport { AXStyleColorType, AXStyleButtonLook } from \"../styles.class\";\r\nimport { AXBaseComponent } from \"./base-components.class\";\r\nimport { Constructor } from \"./constratctor\";\r\n\r\nexport function _ColorLookComponentMixin<TBase extends Constructor<AXBaseComponent>>(Base: TBase) {\r\n return class extends Base {\r\n\r\n constructor(...args: any[]) {\r\n super(...args);\r\n }\r\n\r\n colorChange: EventEmitter<AXStyleColorType> = new EventEmitter();\r\n _color: AXStyleColorType = 'primary';\r\n /**\r\n * Predefined color schemes\r\n */\r\n get color(): AXStyleColorType {\r\n return this._color;\r\n }\r\n set color(value: AXStyleColorType) {\r\n this._setOption({\r\n name: 'color',\r\n value,\r\n afterCallback: () => {\r\n this._cdr.markForCheck();\r\n }\r\n });\r\n }\r\n\r\n lookChange: EventEmitter<AXStyleButtonLook> = new EventEmitter();\r\n _look?: AXStyleButtonLook = null;\r\n /**\r\n * Predefined look schemes\r\n */\r\n get look(): AXStyleButtonLook {\r\n return this._look;\r\n }\r\n set look(value: AXStyleButtonLook) {\r\n this._setOption({\r\n name: 'look',\r\n value,\r\n afterCallback: () => {\r\n this._cdr.markForCheck();\r\n }\r\n });\r\n }\r\n }\r\n}\r\n\r\n\r\nexport const COLOR_LOOK_INPUTS = [\r\n 'color',\r\n 'look',\r\n ];\r\n export const COLOR_LOOK_OUTPUT = [];","import _ from 'lodash';\r\nimport { AXBaseComponent } from './base-components.class';\r\nimport { Constructor } from './constratctor';\r\nimport { AXDataListFetchDataCallback, AXDataListItems } from './datalist.class';\r\n\r\n\r\nexport function _DatalistComponenetMixin<TBase extends Constructor<AXBaseComponent>>(Base: TBase) {\r\n return class extends Base {\r\n\r\n valueField: string = 'id';\r\n textField: string = 'text';\r\n childrenField: string;\r\n pageSize: number = 10;\r\n\r\n #currentPage: number = 0;\r\n #isLoading: boolean = false;\r\n #loadedItems: any[] = [];\r\n #flatItems: any[] = [];\r\n #totalItems: number = 0;\r\n\r\n #isLazy: boolean = false;\r\n\r\n get totalCount(): number {\r\n return this.#totalItems;\r\n }\r\n\r\n get loadedCount(): number {\r\n return this.#loadedItems?.length || 0;\r\n }\r\n\r\n constructor(...args: any[]) {\r\n super(...args);\r\n\r\n }\r\n\r\n #items: AXDataListItems = [];\r\n get items(): AXDataListItems {\r\n return this.#items;\r\n }\r\n set items(v: AXDataListItems) {\r\n if (Array.isArray(v)) {\r\n this.#items = this._formatData(v);\r\n this._onDataLoaded();\r\n this.#generateFlatItems();\r\n }\r\n else if (typeof v === 'function') {\r\n this.#isLazy = true;\r\n this.#items = v;\r\n }\r\n else {\r\n this.#items = [];\r\n this._onDataLoaded();\r\n this.#generateFlatItems();\r\n }\r\n }\r\n\r\n get displayItems(): any[] {\r\n if (Array.isArray(this.items)) {\r\n return (this.#items || []) as any[];\r\n }\r\n else if (typeof this.#items == 'function') {\r\n return this.#loadedItems || [];\r\n }\r\n return [];\r\n }\r\n\r\n get flatItems(): any[] {\r\n\r\n return this.#flatItems || [];\r\n }\r\n\r\n get isLoading(): boolean {\r\n return this.#isLoading;\r\n }\r\n\r\n _formatData(v: any[]) {\r\n return _.unionBy(v.map((o, i) => {\r\n if (typeof o == 'object')\r\n return o\r\n else {\r\n const no: any = {};\r\n no[this.valueField] = o;\r\n no[Array.isArray(this.textField) ? this.textField[0] : this.textField] = o;\r\n return no;\r\n }\r\n }), this.valueField);\r\n }\r\n\r\n _fetchData(opts?: { searchQuery?: string }) {\r\n if ((this.loadedCount >= this.totalCount && this.totalCount != 0) || this.#isLoading || !this.#isLazy) {\r\n return;\r\n }\r\n if (this.#items) {\r\n this.#isLoading = true;\r\n const fetchFn = this.#items as AXDataListFetchDataCallback;\r\n fetchFn({ skip: this.#currentPage * this.pageSize, take: this.pageSize, searchQuery: opts?.searchQuery }).then(c => {\r\n if (Array.isArray(c)) {\r\n this.#loadedItems = this._formatData(c);\r\n this.#totalItems = c.length;\r\n }\r\n else {\r\n this.#totalItems = c.total || c.items?.length || 0;\r\n this.#loadedItems = this.#loadedItems.concat(this._formatData(c.items));\r\n this.#currentPage++;\r\n }\r\n this._cdr.markForCheck();\r\n }).finally(() => {\r\n this.#isLoading = false;\r\n this._onDataLoaded();\r\n this.#generateFlatItems();\r\n });\r\n }\r\n }\r\n\r\n _onDataLoaded() {\r\n\r\n }\r\n\r\n\r\n #generateFlatItems(): void {\r\n const flattenFn = (item) => {\r\n return [item, _.flatMapDeep(item.children, flattenFn)];\r\n }\r\n this.#flatItems = _.flatMapDeep(this.displayItems, flattenFn);\r\n }\r\n\r\n _getItemDisplayTextTemplte(item) {\r\n if (item)\r\n return Array.isArray(this.textField) ? this.textField.map(c => item[c]).join(',') : item[this.textField];\r\n else\r\n return 'Loading...';\r\n }\r\n\r\n _trackByFunction(item) {\r\n if (!item) return null;\r\n return item[this.valueField];\r\n }\r\n\r\n refresh() {\r\n this.empty();\r\n this._fetchData();\r\n }\r\n\r\n empty() {\r\n this.#isLoading = false;\r\n if (this.#loadedItems) {\r\n this.#loadedItems.length = 0;\r\n }\r\n }\r\n\r\n }\r\n}\r\n\r\nexport const DATALIST_INPUTS = [\r\n 'pageSize',\r\n 'valueField',\r\n 'textField',\r\n 'items'\r\n];\r\nexport const DATALIST_OUTPUT = [];\r\n","import { EventEmitter } from \"@angular/core\";\r\nimport { AXBaseComponent } from \"./base-components.class\";\r\nimport { Constructor } from \"./constratctor\";\r\nimport { AXEvent } from \"../events.class\";\r\nimport { AXPopoverComponent } from \"../../popover/popover.component\";\r\nimport { AXConnectedPosition } from \"../drawing.class\";\r\n\r\n\r\n\r\nexport interface DropdownComponentInterface {\r\n open(): void;\r\n close(): void;\r\n toggle(): void;\r\n isOpen: boolean;\r\n}\r\n\r\n\r\nexport function _DropdownComponenetMixin<TBase extends Constructor<AXBaseComponent>>(Base: TBase) {\r\n\r\n abstract class Mixin extends Base {\r\n\r\n readonly: boolean = false;\r\n\r\n\r\n onOpened: EventEmitter<AXEvent> = new EventEmitter<AXEvent>();\r\n onClosed: EventEmitter<AXEvent> = new EventEmitter<AXEvent>();\r\n\r\n abstract popover: AXPopoverComponent;\r\n\r\n position: AXConnectedPosition[] = [];\r\n\r\n _emitOnOpenedEvent() {\r\n //** call from interactive mixin **//\r\n //(this as any).focus();\r\n //\r\n this.onOpened.emit({\r\n component: this,\r\n htmlElement: this._getHostElement()\r\n });\r\n }\r\n\r\n _emitOnClosedEvent() {\r\n this.onClosed.emit({\r\n component: this,\r\n htmlElement: this._getHostElement()\r\n });\r\n }\r\n\r\n\r\n onInit(): void {\r\n super.onInit();\r\n this.popover.onOpened.subscribe(this.onOpened);\r\n this.popover.onClosed.subscribe(this.onClosed);\r\n }\r\n\r\n onViewInit() {\r\n\r\n // wait for documentElement\r\n setTimeout(() => {\r\n if (this.position.length == 0) {\r\n const offset = Number(getComputedStyle(document.documentElement).getPropertyValue('--ax-base-size').replace('px', ''));\r\n const list: AXConnectedPosition[] = [\r\n {\r\n originX: 'start',\r\n originY: 'bottom',\r\n overlayX: 'start',\r\n overlayY: 'top',\r\n offsetY: offset\r\n },\r\n {\r\n originX: 'start',\r\n originY: 'top',\r\n overlayX: 'start',\r\n overlayY: 'bottom',\r\n offsetY: -offset\r\n },\r\n {\r\n originX: 'end',\r\n originY: 'bottom',\r\n overlayX: 'end',\r\n overlayY: 'top',\r\n offsetY: offset\r\n },\r\n {\r\n originX: 'end',\r\n originY: 'top',\r\n overlayX: 'end',\r\n overlayY: 'bottom',\r\n offsetY: -offset\r\n },\r\n ];\r\n this.position.push(...list);\r\n }\r\n }, 500);\r\n }\r\n\r\n toggle() {\r\n if (this['disabled'] !== true) {\r\n this.popover.toggle();\r\n }\r\n }\r\n\r\n close() {\r\n if (!this.isOpen || this['disabled']) {\r\n return;\r\n }\r\n this.popover.close();\r\n (this as any)?.focus();\r\n }\r\n\r\n open() {\r\n if (this.isOpen || this['disabled']) {\r\n return;\r\n }\r\n this.popover.open();\r\n this.popover.focus();\r\n }\r\n\r\n get isOpen(): boolean {\r\n return this.popover?.isOpen;\r\n }\r\n\r\n constructor(...args: any[]) {\r\n super(...args);\r\n }\r\n\r\n }\r\n\r\n return Mixin;\r\n}\r\n\r\n\r\nexport const DROPDOWN_INPUTS = [\r\n 'isOpen',\r\n 'fitParent',\r\n 'dropdownWidth',\r\n 'position'\r\n];\r\nexport const DROPDOWN_OUTPUT = ['onOpened', 'onClosed'];","import { coerceBooleanProperty, coerceNumberProperty } from \"@angular/cdk/coercion\";\r\nimport { EventEmitter } from \"@angular/core\";\r\nimport { AXBaseComponent } from \"./base-components.class\";\r\nimport { Constructor } from \"./constratctor\";\r\nimport { AXFocusEvent } from \"../events.class\";\r\n\r\n\r\nexport function _InteractiveComponenetMixin<TBase extends Constructor<AXBaseComponent>>(Base: TBase) {\r\n abstract class Mixin extends Base {\r\n\r\n #disabled: boolean = false;\r\n /**\r\n * If set to true, it disables the component.\r\n */\r\n get disabled(): boolean { return this.#disabled; }\r\n set disabled(value: boolean) {\r\n value = this._onOptionChanging({ name: 'disabled', value: value });\r\n if (value != this.disabled) {\r\n const oldValue = this.disabled;\r\n this.#disabled = coerceBooleanProperty(value);\r\n this._onOptionChanged({ name: 'disabled', oldValue, newValue: value });\r\n this._cdr.markForCheck();\r\n }\r\n }\r\n\r\n\r\n\r\n #tabIndex: number = null;\r\n /**\r\n * Specifies the tabindex of the component.\r\n */\r\n get tabIndex(): number { return this.disabled ? -1 : this.#tabIndex; }\r\n set tabIndex(value: number) {\r\n this.#tabIndex = value != null ? coerceNumberProperty(value) : 0;\r\n }\r\n\r\n /**\r\n * Fires each time the component gets focused.\r\n * @event\r\n */\r\n onFocus: EventEmitter<AXFocusEvent> = new EventEmitter<AXFocusEvent>();\r\n\r\n _emitOnFocusEvent(e: FocusEvent): void {\r\n this.onFocus.emit({\r\n component: this,\r\n htmlElement: this._getHostElement(),\r\n nativeEvent: e\r\n });\r\n }\r\n\r\n /**\r\n * Fires each time the component gets blurred.\r\n * @event\r\n */\r\n onBlur: EventEmitter<AXFocusEvent> = new EventEmitter<AXFocusEvent>();\r\n\r\n _emitOnBlurEvent(e: FocusEvent): void {\r\n this.onBlur.emit({\r\n component: this,\r\n htmlElement: this._getHostElement(),\r\n nativeEvent: e\r\n });\r\n }\r\n\r\n /**\r\n * Focuses the component.\r\n */\r\n focus(): void {\r\n const focusable = this._getHostElement().querySelector<HTMLElement>('button, [href], input, select, textarea, [tabindex]:not([tabindex=\"-1\"])');\r\n if (focusable) {\r\n focusable.focus();\r\n }\r\n }\r\n\r\n /**\r\n * Check component is focused or has any focused element.\r\n */\r\n hasFocus(): boolean {\r\n return this._getHostElement().matches(':focus-within') || this._getHostElement().matches(':focus');\r\n }\r\n\r\n /**\r\n * @ignore\r\n */\r\n constructor(...args: any[]) {\r\n super(...args);\r\n }\r\n }\r\n return Mixin;\r\n}\r\n\r\nexport const INTERACTIVE_INPUTS = [\r\n 'disabled',\r\n 'tabIndex',\r\n];\r\nexport const INTERACTIVE_OUTPUT = ['onBlur', 'onFocus'];","import { AXObjectUtil } from '@acorex/core';\r\nimport { coerceBooleanProperty } from '@angular/cdk/coercion';\r\nimport { EventEmitter } from '@angular/core';\r\nimport _ from 'lodash';\r\nimport { AXSelectionValueChangedEvent } from '../events.class';\r\nimport { AXBaseComponent } from './base-components.class';\r\nimport { Constructor } from './constratctor';\r\n\r\nexport function _SelectionComponenetMixin<TBase extends Constructor<AXBaseComponent>>(Base: TBase) {\r\n return class extends Base {\r\n\r\n valueField: string = 'id';\r\n textField: string = 'text';\r\n disabledField: string = 'disabled';\r\n disabledCallback: (e: { item: any, index: number }) => boolean;\r\n multiple: boolean = false;\r\n selectionMode: 'value' | 'item' = 'value';\r\n\r\n // for data-list\r\n get items(): any[] {\r\n return [];\r\n }\r\n\r\n get displayItems(): any[] {\r\n return [];\r\n }\r\n\r\n get flatItems(): any[] {\r\n return [];\r\n }\r\n\r\n\r\n public valueChange: EventEmitter<any> = new EventEmitter<any>();\r\n public onValueChanged: EventEmitter<AXSelectionValueChangedEvent> = new EventEmitter<AXSelectionValueChangedEvent>();\r\n\r\n\r\n constructor(...args: any[]) {\r\n super(...args)\r\n }\r\n\r\n _onInternalInit() {\r\n super._onInternalInit();\r\n }\r\n\r\n\r\n _value: any | any[];\r\n get value(): any | any[] {\r\n return this._value;\r\n }\r\n set value(v: any | any[]) {\r\n v = (this as any)._onInternalValueChanging(v);\r\n if (v !== this._value) {\r\n const oldValue = AXObjectUtil.deepJSONClone(this._value);\r\n if (this.multiple) {\r\n this._value = Array.isArray(v) ? v : (v ? [v] : []);\r\n } else {\r\n this._value = Array.isArray(v) ? v[0] : v;\r\n }\r\n this.valueChange.emit(this._value);\r\n this.onValueChanged.emit({\r\n component: this,\r\n htmlElement: this._getHostElement(),\r\n isUserInteraction: false,\r\n oldValue,\r\n value: this._value,\r\n selectedKeys: this.selectedItems.map(c => c[this.valueField]),\r\n selectedItems: this.selectedItems.slice()\r\n });\r\n if (v == null || v == undefined || v == \"\") {\r\n (this as any)._setState('clear');\r\n }\r\n else {\r\n if (this._isInited) {\r\n (this as any).validate();\r\n }\r\n }\r\n this._renderSelection();\r\n }\r\n }\r\n\r\n _selectedItems: any[];\r\n get selectedItems(): any[] {\r\n return this._selectedItems || [];\r\n }\r\n\r\n _renderSelection() {\r\n const func = () => {\r\n if (this.value == null || this.value == undefined) {\r\n return [];\r\n }\r\n const items = this.flatItems;\r\n if (items.length > 0) {\r\n return items.filter(i => {\r\n if (Array.isArray(this.value)) {\r\n return this.value.some(ii => {\r\n if (typeof ii === 'object') {\r\n return i[this.valueField] === ii[this.valueField];\r\n }\r\n else {\r\n return i[this.valueField] === ii;\r\n }\r\n });\r\n }\r\n else {\r\n if (typeof this.value === 'object') {\r\n return i[this.valueField] === this.value[this.valueField];\r\n }\r\n else {\r\n return i[this.valueField] === this.value;\r\n }\r\n }\r\n });\r\n }\r\n if (Array.isArray(this.value)) {\r\n return this.value.map(ii => () => {\r\n //&& ii[this.textField]\r\n if (typeof ii === 'object') {\r\n return ii;\r\n }\r\n else {\r\n const fake: any = {};\r\n fake[this.valueField] = this.value;\r\n fake[this.textField] = this.value;\r\n return fake;\r\n }\r\n });\r\n }\r\n else {\r\n //&& this.value[this.textField]\r\n if (typeof this.value === 'object') {\r\n return [this.value];\r\n }\r\n else {\r\n const fake: any = {};\r\n fake[this.valueField] = this.value;\r\n fake[this.textField] = this.value;\r\n return [fake];\r\n }\r\n }\r\n };\r\n this._selectedItems = func();\r\n }\r\n\r\n _getItemByDataMode(item: any) {\r\n return this.selectionMode === 'item' ? item : item[this.valueField];\r\n }\r\n\r\n _getItemValue(item: any) {\r\n return typeof item === 'object' ? item[this.valueField] : item;\r\n }\r\n\r\n unselectItems(...items: any[]) {\r\n if (!items || items.length === 0) {\r\n this.value = null;\r\n }\r\n else if (Array.isArray(this.value)) {\r\n this.value = this.value.filter(c => !items.some(d =>\r\n this._getItemValue(c) === this._getItemValue(d))\r\n );\r\n }\r\n else {\r\n this.value = null;\r\n }\r\n }\r\n\r\n selectItems(...items: any[]) {\r\n if (items && items.length) {\r\n if (this.multiple) {\r\n this.value = (this.value || []).concat(items.map(c => this._getItemByDataMode(c)));\r\n }\r\n else {\r\n this.value = this._getItemByDataMode(items[0]);\r\n }\r\n }\r\n }\r\n\r\n toggleSelect(...items: any[]) {\r\n if (items && items.length) {\r\n items.forEach(item => {\r\n if (this.multiple) {\r\n this.isItemSelected(item) ? this.unselectItems(item) : this.selectItems(item);\r\n }\r\n else {\r\n this.selectItems(item)\r\n }\r\n });\r\n }\r\n }\r\n\r\n isItemSelected(item: any): boolean {\r\n return this.selectedItems.some(c => c[this.valueField] === item[this.valueField]);\r\n }\r\n\r\n isItemDisabled(item: any): boolean {\r\n return coerceBooleanProperty(item[this.disabledField]) === true || (this.disabledCallback ? this.disabledCallback({ item, index: -1 }) : false);\r\n }\r\n }\r\n}\r\n\r\n\r\nexport const SELECTION_INPUTS = [\r\n 'valueField',\r\n 'textField',\r\n 'disabledField',\r\n 'disabledCallback',\r\n 'multiple',\r\n 'selectionMode'\r\n];\r\nexport const SELECTION_OUTPUT = ['onValueChanged', 'valueChanged'];","import { AXConfig } from '@acorex/core';\r\nimport { AXBaseComponent, AXElementSize } from './base-components.class';\r\nimport { Constructor } from './constratctor';\r\n\r\nexport function _SizableComponenetMixin<TBase extends Constructor<AXBaseComponent>>(Base: TBase) {\r\n return class extends Base {\r\n\r\n /**\r\n * A token that specifies the size of component.\r\n */\r\n size: AXElementSize;\r\n\r\n /**\r\n * @ignore\r\n */\r\n constructor(...args: any[]) {\r\n super(...args.slice(0, 2))\r\n }\r\n\r\n _onInternalInit() {\r\n super._onInternalInit();\r\n }\r\n }\r\n}\r\n\r\n\r\nexport const SIZABLE_INPUTS = [\r\n 'size',\r\n];\r\nexport const SIZABLE_OUTPUT = [];","import {\r\n coerceBooleanProperty,\r\n coerceNumberProperty,\r\n} from '@angular/cdk/coercion';\r\nimport { EventEmitter } from '@angular/core';\r\nimport { AXBaseComponent } from './base-components.class';\r\nimport { Constructor } from './constratctor';\r\nimport { AXValueChangedEvent } from '../events.class';\r\nimport { AXValidationRuleResult } from '../../validation/validation.class';\r\nimport { Subject, Subscription } from 'rxjs';\r\nimport { debounceTime, distinctUntilChanged } from 'rxjs/operators';\r\n\r\nexport function _ValueComponenetMixin<TBase extends Constructor<AXBaseComponent>>(Base: TBase) {\r\n\r\n return class extends Base {\r\n\r\n /**\r\n * Fires each time the user press a key.\r\n * @event\r\n */\r\n onValueChanged: EventEmitter<AXValueChangedEvent<any>> = new EventEmitter<AXValueChangedEvent<any>>();\r\n\r\n valueChange: EventEmitter<any> = new EventEmitter<any>();\r\n\r\n\r\n #readonly: boolean = false;\r\n\r\n /**\r\n * If set to true, user cannot change the value of component.\r\n */\r\n get readonly() {\r\n return this.#readonly;\r\n }\r\n set readonly(value: boolean) {\r\n this.#readonly = coerceBooleanProperty(value);\r\n }\r\n\r\n #allowNull: boolean = true;\r\n get allowNull() {\r\n return this.#allowNull;\r\n }\r\n set allowNull(value: boolean) {\r\n this.#allowNull = coerceBooleanProperty(value);\r\n }\r\n\r\n\r\n #name: string;\r\n get name() {\r\n return this.#name;\r\n }\r\n set name(value: string) {\r\n this.#name = value;\r\n }\r\n\r\n #debounceTime: number = 0;\r\n get debounceTime() {\r\n return this.#debounceTime;\r\n }\r\n set debounceTime(value: number) {\r\n this.#debounceTime = coerceNumberProperty(value);\r\n }\r\n\r\n #valueSubscription = new Subscription();\r\n #valueSubject = new Subject();\r\n\r\n #value: any;\r\n get value(): any {\r\n return this.#value;\r\n }\r\n set value(v: any) {\r\n v = this._onInternalValueChanging(v);\r\n if (!this._isInited || this.debounceTime == 0) {\r\n this._setValue(v);\r\n } else {\r\n this.#valueSubject.next(v);\r\n }\r\n }\r\n\r\n #state: 'clear' | 'success' | 'error' = 'clear';\r\n\r\n get state() {\r\n return this.#state;\r\n }\r\n\r\n _emitOnValueChangedEvent(oldValue?: any, newValue?: any) {\r\n this.valueChange.emit(newValue);\r\n this.onValueChanged.emit({\r\n component: this,\r\n value: newValue,\r\n oldValue: oldValue,\r\n name: this.name\r\n });\r\n this._onValueChanged(oldValue, this.#value);\r\n }\r\n\r\n _onInternalValueChanging(value: any) {\r\n // if (this.readonly)\r\n // return this.value;\r\n return this._onValueChanging(value);\r\n }\r\n\r\n _onValueChanging(value: any) {\r\n return value;\r\n }\r\n \r\n _onValueChanged(oldValue: any, newValue: any): void { }\r\n\r\n _onInternalInit() {\r\n this._getHostElement().setAttribute('ax-form-input', 'true');\r\n this.#valueSubscription = this.#valueSubject\r\n .pipe(debounceTime(this.#debounceTime))\r\n .pipe(distinctUntilChanged())\r\n .subscribe((v) => {\r\n this._setValue(v);\r\n });\r\n super._onInternalInit();\r\n }\r\n\r\n _onInternalDestroy() {\r\n this.#valueSubscription.unsubscribe();\r\n super.onDestroy();\r\n }\r\n\r\n _setValue(v: any) {\r\n const old = this.#value;\r\n // TODO: check real equality\r\n if (v != old) {\r\n this.#value = v;\r\n this._emitOnValueChangedEvent(old, this.#value);\r\n this._cdr.markForCheck();\r\n if (v == null || v == undefined || v == '') {\r\n this._setState('clear');\r\n } else {\r\n if (this._isInited) {\r\n this.validate();\r\n }\r\n }\r\n }\r\n }\r\n\r\n clear() {\r\n this.value = null;\r\n }\r\n\r\n validate(): Promise<AXValidationRuleResult> {\r\n const rules = Array.from(\r\n this._getHostElement().querySelectorAll('ax-validation-rule')\r\n ).filter((c) => (c as any).__axContext__.enabled);\r\n //\r\n if (!rules || rules.length === 0) {\r\n this._setState('clear');\r\n return Promise.resolve({ result: true, value: this.value });\r\n }\r\n\r\n return new Promise<AXValidationRuleResult>((resolve) => {\r\n Promise.all(\r\n rules\r\n .filter((c) => typeof (c as any)?.validate === 'function')\r\n .map((c) => {\r\n return (c as any).validate(this.value);\r\n })\r\n ).then((d) => {\r\n const error = d.find((c) => c.result === false);\r\n if (error) {\r\n this._setState('error', error.message);\r\n resolve({ result: false, value: this.value });\r\n } else {\r\n this._setState('success');\r\n resolve({ result: true, value: this.value });\r\n }\r\n });\r\n });\r\n }\r\n\r\n\r\n /**\r\n * @ignore\r\n */\r\n constructor(...args: any[]) {\r\n super(...args);\r\n }\r\n\r\n _setState(state: 'clear' | 'success' | 'error', ...args) {\r\n const container = this._getHostElement().classList.contains('ax-editor-container') ?\r\n this._getHostElement() :\r\n this._getHostElement().querySelector('.ax-editor-container');\r\n const formField = container?.closest('.ax-form-field');\r\n const label = formField?.querySelector('ax-label') || formField?.querySelector('label');\r\n let target = container || this._getInnerElement();\r\n if (target.querySelector('.ax-error-container')) {\r\n target = target.querySelector('.ax-error-container');\r\n }\r\n const parent = target.parentElement;\r\n\r\n switch (state) {\r\n\r\n case 'clear':\r\n this.#state = 'clear';\r\n if (parent.querySelector('span.ax-error-msg')) {\r\n parent.removeChild(parent.querySelector('span.ax-error-msg'));\r\n }\r\n label?.classList.remove('ax-state-error');\r\n target.classList.remove('ax-state-error', 'ax-state-success');\r\n break;\r\n case 'success':\r\n this._setState('clear');\r\n target.classList.add('ax-state-success');\r\n this.#state = 'success';\r\n break;\r\n case 'error':\r\n this._setState('clear');\r\n if (args[0]) {\r\n const span = document.createElement('span');\r\n span.innerText = args[0];\r\n span.classList.add('ax-error-msg');\r\n parent.appendChild(span);\r\n }\r\n label?.classList.add('ax-state-error');\r\n target.classList.add('ax-state-error');\r\n \r\n this.#state = 'error';\r\n break;\r\n }\r\n this._cdr.markForCheck();\r\n }\r\n }\r\n}\r\n\r\n\r\nexport const VALUE_INPUTS = [\r\n 'readonly',\r\n 'allowNull',\r\n 'value',\r\n 'debounceTime',\r\n 'name',\r\n 'checked'\r\n];\r\nexport const VALUE_OUTPUT = ['valueChange', 'onValueChanged'];","import { EventEmitter } from '@angular/core';\r\nimport { AXHtmlEvent } from '../events.class';\r\nimport { AXBaseComponent } from './base-components.class';\r\nimport { Constructor } from './constratctor';\r\nimport { VALUE_INPUTS, VALUE_OUTPUT } from './value-mixin.class';\r\n\r\nexport function _TextboxComponenetMixin<TBase extends Constructor<AXBaseComponent>>(Base: TBase) {\r\n return class extends Base {\r\n\r\n /**\r\n * A string value that specifies the type of text box.\r\n */\r\n type = 'text'\r\n\r\n /**\r\n * A string value that specifies the placeholder of text box.\r\n */\r\n placeholder: string = null;\r\n\r\n /**\r\n * A number value that specifies the maximum characters of text box.\r\n */\r\n maxLength: number;\r\n\r\n /**\r\n * Specifies that autocomplete is on or off.\r\n */\r\n autoComplete: string;\r\n\r\n\r\n /**\r\n * Fires each time the user press a key.\r\n * @event\r\n */\r\n onKeyDown: EventEmitter<AXHtmlEvent<KeyboardEvent>> = new EventEmitter<AXHtmlEvent<KeyboardEvent>>();\r\n\r\n\r\n _emitOnKeydownEvent(e: KeyboardEvent) {\r\n this.onKeyDown.emit({\r\n component: this,\r\n nativeEvent: e\r\n });\r\n }\r\n\r\n\r\n /**\r\n * @ignore\r\n */\r\n constructor(...args: any[]) {\r\n super(...args.slice(0, 2))\r\n }\r\n }\r\n}\r\n\r\nexport const TEXTBOX_INPUTS = ['placeholder', 'maxLength', 'allowNull', 'debounceTime','type', ...VALUE_INPUTS]\r\nexport const TEXTBOX_OUTPUT = [...VALUE_OUTPUT]","export * from './datalist.class';\r\nimport { AXBaseComponent, _BaseComponenetMixin } from './base-components.class';\r\nimport { _ButtonComponentMixin } from './button-mixin.class';\r\nimport { _ClickableComponenetMixin } from './clickable-mixin.class';\r\nimport { _ColorLookComponentMixin } from './color-look-mixing.class';\r\nimport { _DatalistComponenetMixin } from './datalist-component.class';\r\nimport { _DropdownComponenetMixin } from './dropdown-mixin.class';\r\nimport { _InteractiveComponenetMixin } from './interactive-mixin.class';\r\nimport { _LoadingComponenetMixin } from './loading-mixin.class';\r\nimport { _SelectionComponenetMixin } from './selection-component.class';\r\nimport { _SizableComponenetMixin } from './sizable-mixin.class';\r\nimport { _TextboxComponenetMixin } from './textbox-mixin.class';\r\nimport { _ValueComponenetMixin } from './value-mixin.class';\r\n\r\nexport const AXBaseComponentMixin = _BaseComponenetMixin(AXBaseComponent);\r\n\r\nexport const AXSizableComponentMixin = _SizableComponenetMixin(\r\n _BaseComponenetMixin(AXBaseComponent)\r\n);\r\n\r\nexport const AXInteractiveComponenetMixin = _SizableComponenetMixin(\r\n _InteractiveComponenetMixin(AXBaseComponent)\r\n);\r\n\r\nexport const AXBaseClickableMixin = _InteractiveComponenetMixin(_ClickableComponenetMixin(AXBaseComponent))\r\n\r\nexport const AXBaseButtonMixin = _SizableComponenetMixin(\r\n _InteractiveComponenetMixin(\r\n _ClickableComponenetMixin(_ColorLookComponentMixin(_ButtonComponentMixin(AXBaseComponent)))\r\n )\r\n);\r\n\r\nexport const AXBaseValueComponentMixin = _SizableComponenetMixin(\r\n _InteractiveComponenetMixin(_ValueComponenetMixin<any>(AXBaseComponent))\r\n);\r\n\r\nexport const AXBaseTextBoxMixin = _SizableComponenetMixin(\r\n _InteractiveComponenetMixin(\r\n _ValueComponenetMixin(_TextboxComponenetMixin(AXBaseComponent))\r\n )\r\n);\r\n\r\n\r\nexport const AXBaseSelectionValueMixin = _SizableComponenetMixin(\r\n _InteractiveComponenetMixin(\r\n _DatalistComponenetMixin(\r\n _SelectionComponenetMixin(_ValueComponenetMixin<any>(AXBaseComponent))\r\n )\r\n )\r\n);\r\n\r\nexport const AXBaseValueDropdownMixin =\r\n _InteractiveComponenetMixin(\r\n _DropdownComponenetMixin(\r\n _DatalistComponenetMixin(_ValueComponenetMixin<any>(AXBaseComponent))\r\n )\r\n );\r\n\r\nexport const AXBaseSelectionDropdownMixin = _DropdownComponenetMixin(AXBaseSelectionValueMixin);\r\n\r\nexport const AXBaseDropdownMixin = _SizableComponenetMixin(\r\n _InteractiveComponenetMixin(_DropdownComponenetMixin(AXBaseComponent))\r\n);\r\n\r\n","/**\r\n* Contains native event\r\n* @category Events\r\n*/\r\nexport class AXEvent {\r\n /**\r\n * The sender component\r\n */\r\n component: any;\r\n /**\r\n * The root native element\r\n */\r\n htmlElement?: HTMLElement;\r\n\r\n isUserInteraction?: boolean = false;\r\n}\r\n\r\n/**\r\n* Contains native event\r\n* @category Events\r\n*/\r\nexport class AXHtmlEvent<E extends Event> extends AXEvent {\r\n nativeEvent?: E;\r\n}\r\n\r\n/**\r\n* Contains native event\r\n* @category Events\r\n*/\r\nexport class AXValueChangedEvent<T> extends AXEvent {\r\n name?: T;\r\n value?: T;\r\n oldValue?: T;\r\n \r\n}\r\n\r\n\r\n/**\r\n* Fires each time the user click the element.\r\n* @category Events\r\n*/\r\nexport class AXClickEvent extends AXHtmlEvent<MouseEvent> {\r\n /**\r\n * uses for extra data\r\n */\r\n data?: any\r\n}\r\n\r\n/**\r\n* Fires each time the user click the element.\r\n* @category Events\r\n*/\r\nexport class AXButtonClickEvent extends AXClickEvent {\r\n name: string;\r\n}\r\n\r\n/**\r\n* Fires each time the user click the element.\r\n* @category Events\r\n*/\r\nexport class AXItemClickEvent<T> extends AXHtmlEvent<MouseEvent> {\r\n item: T;\r\n}\r\n\r\n/**\r\n* Fires each time the component gets focused.\r\n* @category Events\r\n*/\r\nexport class AXFocusEvent extends AXHtmlEvent<FocusEvent> {\r\n}\r\n\r\n\r\n/**\r\n* Fires each time an item or multiple items selected by the user or value.\r\n* @category Events\r\n*/\r\nexport class AXSelectionValueChangedEvent extends AXValueChangedEvent<any | any[]> {\r\n value?: any;\r\n oldValue?: any;\r\n selectedKeys?: any[];\r\n selectedItems?: any[];\r\n}","// export type AXPlacement =\r\n// | 'top-start'\r\n// | 'top-middle'\r\n// | 'top-end'\r\n// | 'center-start'\r\n// | 'center-end'\r\n// | 'bottom-start'\r\n// | 'bottom-middle'\r\n// | 'bottom-end';\r\n\r\n\r\nexport interface AXConnectedPosition {\r\n originX: 'start' | 'center' | 'end';\r\n originY: 'top' | 'center' | 'bottom';\r\n overlayX: 'start' | 'center' | 'end';\r\n overlayY: 'top' | 'center' | 'bottom';\r\n weight?: number;\r\n offsetX?: number;\r\n offsetY?: number;\r\n}","\r\nexport const AX_STYLE_TYPES = ['info', 'danger', 'success', 'warning'];\r\n\r\n/**\r\n* A token that specifies the color style of component.\r\n*/\r\nexport type AXStyleColorType = 'primary' | 'secondary' | 'info' | 'danger' | 'success' | 'warning' | 'light' | 'dark';\r\nexport type AXStyleButtonLook = 'blank' | 'outline' | 'twotone' | 'link';\r\n\r\nexport const AX_LOCATIONS = ['bottom-start', 'bottom-center', 'bottom-end', 'top-start', 'top-center', 'top-end'];\r\nexport type AXLocation = 'bottom-start' | 'bottom-center' | 'bottom-end' | 'top-start' | 'top-center' | 'top-end';\r\n\r\n\r\nexport const AX_DIRECTIONS = ['vertical', 'horizontal'];\r\n/**\r\n* A token that specifies the direction of component.\r\n*/\r\nexport type AXDirection = 'vertical' | 'horizontal';\r\n\r\n\r\n/**\r\n* A token that specifies the selection mode of component.\r\n*/\r\nexport type AXSelectionMode = 'single' | 'multiple';","import { Directive, ElementRef, OnDestroy } from '@angular/core';\r\n\r\n@Directive({ selector: '[ax-responsive]' })\r\nexport class AXResponsiveDirective implements OnDestroy {\r\n\r\n private _observer: ResizeObserver = new ResizeObserver(entries => {\r\n for (let entry of entries) {\r\n\r\n if (entry.target) {\r\n const e = entry.target;\r\n const elements = [e, ...Array.from(e.querySelectorAll(`[class*='sm:']`))];\r\n elements.map(c => ({\r\n element: c,\r\n classList: Array.from(c.classList).filter(c => c.includes('sm')).map(c => c.slice(3))\r\n })).forEach(c => {\r\n e.clientWidth < 320 ? c.element.classList.add(...c.classList) : c.element.classList.remove(...c.classList);\r\n });\r\n }\r\n }\r\n });;\r\n\r\n constructor(private _elementRef: ElementRef<HTMLDivElement>) {\r\n this._observer.observe(_elementRef.nativeElement);\r\n }\r\n\r\n ngOnDestroy() {\r\n this._observer.disconnect();\r\n this._observer.unobserve(this._elementRef.nativeElement);\r\n }\r\n\r\n}","import { Directive, AfterViewInit, ElementRef, Input } from '@angular/core';\r\nimport { fromEvent, Observable } from 'rxjs';\r\nimport { exhaustMap, filter, map, pairwise, startWith } from 'rxjs/operators';\r\n\r\n\r\nexport interface AXScrollPosition {\r\n scrollHeight: number;\r\n scrollTop: number;\r\n clientHeight: number;\r\n};\r\n\r\nconst AX_DEFAULT_SCROLL_POSITION: AXScrollPosition = {\r\n scrollHeight: 0,\r\n scrollTop: 0,\r\n clientHeight: 0\r\n};\r\n\r\n@Directive({\r\n selector: '[axInfiniteScroller]'\r\n})\r\nexport class AXInfiniteScrollerDirective implements AfterViewInit {\r\n\r\n private scrollEvent$: Observable<any>;\r\n\r\n private userScrolledDown$: Observable<any>;\r\n\r\n\r\n private requestOnScroll$: Observable<any>;\r\n\r\n @Input()\r\n scrollCallback: Function;\r\n\r\n @Input()\r\n immediateCallback;\r\n\r\n @Input()\r\n scrollPercent = 70;\r\n\r\n constructor(private elm: ElementRef) { }\r\n\r\n ngAfterViewInit() {\r\n\r\n this.registerScrollEvent();\r\n\r\n this.streamScrollEvents();\r\n\r\n this.requestCallbackOnScroll();\r\n\r\n }\r\n\r\n private registerScrollEvent() {\r\n\r\n this.scrollEvent$ = fromEvent(this.elm.nativeElement, 'scroll');\r\n\r\n }\r\n\r\n private streamScrollEvents() {\r\n this.userScrolledDown$ = this.scrollEvent$\r\n .pipe(\r\n map((e: any): AXScrollPosition => ({\r\n scrollHeight: e.target.scrollHeight,\r\n scrollTop: e.target.scrollTop,\r\n clientHeight: e.target.clientHeight\r\n })),\r\n pairwise(),\r\n filter(positions => this.isUserScrollingDown(positions) && this.isScrollExpectedPercent(positions[1]))\r\n );\r\n }\r\n\r\n private requestCallbackOnScroll() {\r\n this.requestOnScroll$ = this.userScrolledDown$;\r\n\r\n if (this.immediateCallback) {\r\n this.requestOnScroll$ = this.requestOnScroll$.pipe(\r\n startWith([AX_DEFAULT_SCROLL_POSITION, AX_DEFAULT_SCROLL_POSITION])\r\n );\r\n }\r\n\r\n this.requestOnScroll$.pipe(\r\n exhaustMap(() => {\r\n return this.scrollCallback();\r\n }))\r\n //.subscribe((data) => { console.log(data) }, (err) => console.log(err));\r\n\r\n }\r\n\r\n private isUserScrollingDown = (positions) => {\r\n return positions[0].sT < positions[1].sT;\r\n }\r\n\r\n private isScrollExpectedPercent = (position) => {\r\n return ((position.sT + position.cH) / position.sH) > (this.scrollPercent / 100);\r\n }\r\n\r\n}","import { NgModule } from '@angular/core';\r\nimport { AXInfiniteScrollerDirective } from './infinite-scroll.directive';\r\nimport { AXResponsiveDirective } from './responsive.directive';\r\n\r\n\r\n\r\n\r\n@NgModule({\r\n imports: [],\r\n exports: [AXResponsiveDirective, AXInfiniteScrollerDirective],\r\n declarations: [AXResponsiveDirective, AXInfiniteScrollerDirective],\r\n providers: [],\r\n})\r\nexport class AXCommonModule { }\r\n","import { Component, ViewEncapsulation, ChangeDetectionStrategy, ElementRef, ChangeDetectorRef, Input, ViewChildren, QueryList, EventEmitter, Output, HostBinding } from '@angular/core';\r\nimport { AXBaseComponent, AXBaseComponentMixin, AXComponentOptionChanged, AXStyleColorType } from '../base';\r\nimport { _ButtonComponentMixin } from '../base/mixin/button-mixin.class';\r\nimport { _ClickableComponenetMixin } from '../base/mixin/clickable-mixin.class';\r\nimport { COLOR_LOOK_INPUTS, _ColorLookComponentMixin } from '../base/mixin/color-look-mixing.class';\r\nimport { _InteractiveComponenetMixin } from '../base/mixin/interactive-mixin.class';\r\n\r\n\r\nexport const AXBaseAlertMixin = _ColorLookComponentMixin(AXBaseComponent);\r\n\r\n/**\r\n * Regular description\r\n *\r\n * @category Components\r\n */\r\n@Component({\r\n selector: 'ax-alert',\r\n templateUrl: './alert.component.html',\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n inputs: [...COLOR_LOOK_INPUTS],\r\n encapsulation: ViewEncapsulation.None,\r\n})\r\nexport class AXAlertComponent extends AXBaseAlertMixin {\r\n\r\n\r\n @Input()\r\n icon: string;\r\n\r\n _onOptionChanged(option: AXComponentOptionChanged) {\r\n if (option.name == 'color') {\r\n switch (this.color) {\r\n case 'success':\r\n this.icon = 'ax-ic ax-ic-check-filled';\r\n break;\r\n case 'warning':\r\n this.icon = 'ax-ic-warning-filled';\r\n break;\r\n case 'danger':\r\n this.icon = 'ax-ic-error-filled';\r\n break;\r\n default:\r\n this.icon = 'ax-ic ax-ic-info-filled';\r\n break;\r\n }\r\n }\r\n }\r\n\r\n\r\n /**\r\n * @ignore\r\n */\r\n @HostBinding('class')\r\n get __hostClass(): string {\r\n // return ` ax-alert ax-none ax-${this.color}-default ax-${this.look}-default`;\r\n const _class = this.look ? `ax-${this.color}-${this.look}` : `ax-${this.color}-default`;\r\n return `ax-alert ax-none ${_class}`;\r\n }\r\n\r\n\r\n @Input()\r\n timeOut: number;\r\n\r\n #visible: boolean;\r\n\r\n /**\r\n * set the visibility of the Alert\r\n */\r\n @Input()\r\n public get visible(): boolean {\r\n return this.#visible;\r\n }\r\n public set visible(v: boolean) {\r\n if (this.#visible != v) {\r\n this.#visible = v;\r\n const host = this._getHostElement();\r\n if (v) {\r\n host.classList.remove('ax-state-hidden');\r\n host.classList.add('ax-state-visible');\r\n }\r\n else {\r\n host.classList.add('ax-state-hidden');\r\n host.classList.toggle('ax-state-visible');\r\n }\r\n }\r\n }\r\n\r\n\r\n /**\r\n * @ignore\r\n */\r\n constructor(\r\n elementRef: ElementRef,\r\n cdr: ChangeDetectorRef\r\n ) {\r\n super(elementRef, cdr);\r\n }\r\n\r\n onInit() {\r\n if (this.timeOut) {\r\n setTimeout(() => {\r\n this.dismiss()\r\n }, this.timeOut);\r\n }\r\n }\r\n\r\n onViewInit() {\r\n if (this.visible == undefined) {\r\n this.visible = true;\r\n }\r\n }\r\n\r\n /**\r\n * Remove the alert from the container\r\n */\r\n dismiss(): void {\r\n const host = this._getHostElement();\r\n this.visible = false;\r\n const func = () => {\r\n host.parentElement.removeChild(host);\r\n }\r\n host.addEventListener('transitionend', func);\r\n }\r\n\r\n\r\n /**\r\n * Hide the alert\r\n */\r\n hide(): void {\r\n this.visible = false;\r\n }\r\n\r\n /**\r\n * Show the alert\r\n */\r\n show() {\r\n this.visible = true;\r\n }\r\n}\r\n","<div class=\"ax-alert-icon\" *ngIf=\"icon\">\r\n <i class=\"{{icon}} fa-lg\"></i>\r\n</div>\r\n<div class=\"ax-alert-body\">\r\n <ng-content select=\"ax-alert-title\">\r\n </ng-content>\r\n <ng-content select=\"ax-alert-content\">\r\n </ng-content>\r\n <ng-content select=\"ax-alert-footer\">\r\n </ng-content>\r\n</div>\r\n<ng-content select=\"ax-alert-suffix\">\r\n</ng-content>","import { Component, ViewEncapsulation, ChangeDetectionStrategy, ElementRef, ChangeDetectorRef, Input, Attribute } from '@angular/core';\r\n\r\n@Component({\r\n selector: 'ax-alert-title',\r\n template: `\r\n <ng-content>\r\n </ng-content>\r\n `,\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n encapsulation: ViewEncapsulation.None,\r\n host: { class: 'ax-alert-title' }\r\n})\r\nexport class AXAlertTitleComponent {\r\n}\r\n","import { Component, ViewEncapsulation, ChangeDetectionStrategy, ElementRef, ChangeDetectorRef, Input, Attribute, HostListener } from '@angular/core';\r\nimport { AXBaseClickableMixin } from '../base';\r\nimport { BUTTON_OUTPUT } from '../base/mixin/button-mixin.class';\r\n\r\n@Component({\r\n selector: 'ax-alert-button',\r\n template: `\r\n {{text}}\r\n <ng-content select=\"ax-icon\"></ng-content>\r\n `,\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n encapsulation: ViewEncapsulation.None,\r\n outputs: [...BUTTON_OUTPUT],\r\n host: { class: 'ax-alert-button' }\r\n})\r\nexport class AXAlertButtonComponent extends AXBaseClickableMixin {\r\n\r\n @Input()\r\n text: string;\r\n\r\n @Input()\r\n icon: string;\r\n\r\n\r\n constructor(elementRef: ElementRef, cdr: ChangeDetectorRef) {\r\n super(elementRef, cdr)\r\n }\r\n\r\n @HostListener('click', ['$event'])\r\n _handleOnClick(e) {\r\n this._emitOnClickEvent(e);\r\n }\r\n\r\n @HostListener('focus', ['$event'])\r\n _handleOnFocus(e) {\r\n this._emitOnFocusEvent(e);\r\n }\r\n\r\n @HostListener('blur', ['$event'])\r\n _handleOnBlur(e) {\r\n this._emitOnBlurEvent(e);\r\n }\r\n\r\n\r\n}\r\n","import { Component, ViewEncapsulation, ChangeDetectionStrategy, ElementRef, ChangeDetectorRef, Input, Attribute } from '@angular/core';\r\n\r\n@Component({\r\n selector: 'ax-alert-content',\r\n template:\r\n `<ng-content>\r\n </ng-content>\r\n `,\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n encapsulation: ViewEncapsulation.None,\r\n host: { class: 'ax-alert-content' }\r\n})\r\nexport class AXAlertContentComponent {\r\n}\r\n","import { Component, ViewEncapsulation, ChangeDetectionStrategy } from '@angular/core';\r\n\r\n@Component({\r\n selector: 'ax-alert-suffix',\r\n template: `\r\n <div class=\"ax-alert-buttons\">\r\n <ng-content select=\"ax-alert-button\">\r\n </ng-content>\r\n </div>\r\n `,\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n encapsulation: ViewEncapsulation.None,\r\n host: { class: 'ax-alert-suffix' }\r\n})\r\nexport class AXAlertSuffixComponent {\r\n}\r\n","import { Component, ViewEncapsulation, ChangeDetectionStrategy } from '@angular/core';\r\n\r\n@Component({\r\n selector: 'ax-alert-footer',\r\n template: `\r\n <div class=\"ax-alert-buttons\">\r\n <ng-content select=\"ax-alert-button\">\r\n </ng-content>\r\n </div>\r\n `,\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n encapsulation: ViewEncapsulation.None,\r\n host: { class: 'ax-alert-footer' }\r\n})\r\nexport class AXAlertFooterComponent {\r\n}\r\n","import { Component, ViewEncapsulation, ChangeDetectionStrategy, ElementRef, ChangeDetectorRef, Input, HostBinding } from '@angular/core';\r\nimport { AXSizableComponentMixin } from '../base';\r\n\r\n@Component({\r\n selector: 'ax-icon',\r\n template: '<ng-content select=\"i,svg,img\"></ng-content>',\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n encapsulation: ViewEncapsulation.None,\r\n})\r\nexport class AXIconComponent extends AXSizableComponentMixin {\r\n\r\n @Input()\r\n icon: string;\r\n\r\n @HostBinding('class')\r\n private get __iconClass(): string {\r\n return `ax-ic ${this.icon}`;\r\n }\r\n\r\n constructor(\r\n elementRef: ElementRef,\r\n cdr: ChangeDetectorRef\r\n ) {\r\n super(elementRef, cdr);\r\n }\r\n\r\n}\r\n","import { NgModule } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\nimport { AXIconComponent } from './icon.component';\r\n\r\nconst COMPONENT = [AXIconComponent];\r\nconst MODULES = [CommonModule];\r\n\r\n@NgModule({\r\n declarations: [...COMPONENT],\r\n imports: [...MODULES],\r\n exports: [...COMPONENT],\r\n providers: [],\r\n})\r\nexport class AXIconModule { }\r\n","import { NgModule } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\nimport { AXAlertComponent } from './alert.component';\r\nimport { AXAlertContentComponent } from './alert-content.component';\r\nimport { AXAlertTitleComponent } from './alert-title.component';\r\nimport { AXAlertButtonComponent } from './alert-button.component';\r\nimport { AXAlertFooterComponent } from './alert-footer.component';\r\nimport { AXAlertSuffixComponent } from './alert-suffix.component';\r\nimport { AXIconModule } from '../icon';\r\n\r\nconst COMPONENT = [\r\n AXAlertComponent,\r\n AXAlertContentComponent,\r\n AXAlertTitleComponent,\r\n AXAlertButtonComponent,\r\n AXAlertFooterComponent,\r\n AXAlertSuffixComponent\r\n];\r\nconst MODULES = [CommonModule,AXIconModule];\r\n\r\n@NgModule({\r\n declarations: [...COMPONENT],\r\n imports: [...MODULES],\r\n exports: [...COMPONENT],\r\n providers: [],\r\n})\r\nexport class AXAlertModule { }\r\n","import { Component, ViewEncapsulation, ChangeDetectionStrategy, ElementRef, ChangeDetectorRef, Input } from '@angular/core';\r\nimport { AXSizableComponentMixin, BASE_INPUTS } from '../base';\r\nimport { SIZABLE_INPUTS } from '../base/mixin/sizable-mixin.class';\r\n\r\n@Component({\r\n selector: 'ax-avatar',\r\n templateUrl: './avatar.component.html',\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n encapsulation: ViewEncapsulation.None,\r\n inputs: [...BASE_INPUTS, ...SIZABLE_INPUTS],\r\n host: { class: 'ax-avatar' }\r\n})\r\nexport class AXAvatarComponent extends AXSizableComponentMixin {\r\n\r\n constructor(\r\n elementRef: ElementRef,\r\n cdr: ChangeDetectorRef\r\n ) {\r\n super(elementRef, cdr);\r\n }\r\n\r\n\r\n\r\n private _image: string;\r\n @Input()\r\n public get image(): string {\r\n return this._image;\r\n }\r\n public set image(v: string) {\r\n this._image = v;\r\n }\r\n\r\n\r\n private _title: string;\r\n @Input()\r\n public get title(): string {\r\n return this._title;\r\n }\r\n public set title(v: string) {\r\n this._title = v;\r\n }\r\n\r\n\r\n private _icon: string;\r\n @Input()\r\n public get icon(): string {\r\n return this._icon;\r\n }\r\n public set icon(v: string) {\r\n this._icon = v;\r\n }\r\n\r\n\r\n private _abbr: string;\r\n @Input()\r\n public get abbr(): string {\r\n return this._abbr;\r\n }\r\n public set abbr(v: string) {\r\n this._abbr = v;\r\n }\r\n\r\n\r\n}\r\n","\r\n<div>Hi ax-avatar</div>\r\n","import { NgModule } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\nimport { AXAvatarComponent } from './avatar.component';\r\n\r\nconst COMPONENT = [AXAvatarComponent];\r\nconst MODULES = [CommonModule];\r\n\r\n@NgModule({\r\n declarations: [...COMPONENT],\r\n imports: [...MODULES],\r\n exports: [...COMPONENT],\r\n providers: [],\r\n})\r\nexport class AXAvatarModule { }\r\n","import { Component, ViewEncapsulation, ChangeDetectionStrategy, ElementRef, ChangeDetectorRef, Input, HostBinding } from '@angular/core';\r\nimport { AXBaseComponent, AXBaseComponentMixin, AXStyleColorType } from '../base';\r\nimport { COLOR_LOOK_INPUTS, _ColorLookComponentMixin } from '../base/mixin/color-look-mixing.class';\r\n\r\nexport const AXBaseBadgeMixin = _ColorLookComponentMixin(AXBaseComponent);\r\n\r\n@Component({\r\n selector: 'ax-badge',\r\n templateUrl: './badge.component.html',\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n inputs: [...COLOR_LOOK_INPUTS],\r\n encapsulation: ViewEncapsulation.None,\r\n})\r\nexport class AXBadgeComponent extends AXBaseBadgeMixin {\r\n\r\n @Input() text: string = '';\r\n\r\n constructor(\r\n elementRef: ElementRef,\r\n cdr: ChangeDetectorRef\r\n ) {\r\n super(elementRef, cdr);\r\n //TODO: ax-badge\r\n }\r\n\r\n\r\n @HostBinding('class')\r\n private get __hostClass(): string {\r\n const _class = this.look ? `ax-${this.color}-${this.look}` : `ax-${this.color}-default`;\r\n\r\n return ['ax-badge', _class, !this.text ? 'ax-badge-icon' : ''].join(' ');\r\n }\r\n\r\n\r\n}\r\n","<ng-content select=\"ax-prefix\"></ng-content>\r\n<span class=\"ax-font-medium ax-truncate\">{{text}}</span>\r\n<ng-content select=\"ax-suffix\"></ng-content>","import { NgModule } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\nimport { AXBadgeComponent } from './badge.component';\r\n\r\nconst COMPONENT = [AXBadgeComponent];\r\nconst MODULES = [CommonModule];\r\n\r\n@NgModule({\r\n declarations: [...COMPONENT],\r\n imports: [...MODULES],\r\n exports: [...COMPONENT],\r\n providers: [],\r\n})\r\nexport class AXBadgeModule { }\r\n","import { ChangeDetectionStrategy, ChangeDetectorRef, Component, ElementRef, HostBinding, HostListener, Input, ViewEncapsulation } from '@angular/core';\r\nimport { BUTTON_INPUTS, BUTTON_OUTPUT } from '../base/mixin/button-mixin.class';\r\nimport { COLOR_LOOK_INPUTS } from '../base/mixin/color-look-mixing.class';\r\nimport { AXBaseButtonMixin } from '../base/mixin/mixin.class';\r\n\r\n/**\r\n * The Button is a component which detects user interaction and triggers a corresponding event\r\n *\r\n * @category Components\r\n */\r\n@Component({\r\n selector: 'ax-button',\r\n templateUrl: './button.component.html',\r\n inputs: ['disabled', 'tabIndex', 'size', ...COLOR_LOOK_INPUTS, ...BUTTON_INPUTS],\r\n outputs: [...BUTTON_OUTPUT],\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n encapsulation: ViewEncapsulation.None,\r\n host: { role: 'button' }\r\n})\r\nexport class AXButtonComponent extends AXBaseButtonMixin {\r\n\r\n /**\r\n * @ignore\r\n */\r\n constructor(elementRef: ElementRef, cdr: ChangeDetectorRef) {\r\n super(elementRef, cdr);\r\n }\r\n\r\n @HostListener('keyup', ['$event'])\r\n onKeydownHandler(e: KeyboardEvent) {\r\n if (e.code === 'Enter') {\r\n this._getHostElement().click();\r\n }\r\n }\r\n\r\n @HostListener('click', ['$event'])\r\n _emitOnClickEvent(e: MouseEvent) {\r\n if (this.disabled)\r\n return;\r\n if (this.toggleable) {\r\n this.selected = !this.selected;\r\n }\r\n super._emitOnClickEvent(e);\r\n }\r\n\r\n @HostListener('focus', ['$event'])\r\n _emitOnFocusEvent(e: MouseEvent) {\r\n super._emitOnFocusEvent(e);\r\n }\r\n\r\n\r\n @HostListener('blur', ['$event'])\r\n _emitOnBlurEvent(e: MouseEvent) {\r\n super._emitOnBlurEvent(e);\r\n }\r\n\r\n @HostBinding('class')\r\n private get __hostClass(): string {\r\n return Object.entries(this._classes).filter(c => c[1]).map(c => c[0]).join(' ');\r\n }\r\n}\r\n","<!-- <button [ngClass]=\"_classes\" class=\"{{cssClass}} ax-{{size}}\" [disabled]=\"disabled\" [tabindex]=\"tabIndex\" [attr.style]=\"cssStyle\" (click)=\"_emitOnClickEvent($event)\" (focus)=\"_emitOnFocusEvent($event)\" (blur)=\"_emitOnBlurEvent($event)\">\r\n <ng-content select=\"ax-prefix,ax-loading,ax-icon\">\r\n </ng-content>\r\n <span *ngIf=\"text\">{{text}}</span>\r\n <ng-content select=\"ax-suffix\">\r\n </ng-content>\r\n <ng-content select=\"ax-dropdown-panel\">\r\n </ng-content>\r\n</button> -->\r\n<!-- <button [ngClass]=\"_classes\" class=\"{{cssClass}} ax-{{size}}\" [disabled]=\"disabled\" [tabindex]=\"tabIndex\" [attr.style]=\"cssStyle\" (click)=\"_emitOnClickEvent($event)\" (focus)=\"_emitOnFocusEvent($event)\" (blur)=\"_emitOnBlurEvent($event)\"> -->\r\n<ng-content select=\"ax-prefix,ax-loading,ax-icon\">\r\n</ng-content>\r\n<span *ngIf=\"text\">{{text}}</span>\r\n<ng-content select=\"ax-suffix\">\r\n</ng-content>\r\n<ng-content select=\"ax-dropdown-panel\">\r\n</ng-content>\r\n<!-- </button> -->","import { ChangeDetectionStrategy, ChangeDetectorRef, Component, ContentChildren, ElementRef, EventEmitter, Input, NgZone, Output, QueryList, ViewChildren, ViewEncapsulation } from \"@angular/core\";\r\nimport { AXButtonComponent } from \"./button.component\";\r\nimport { AXClickEvent, AXInteractiveComponenetMixin, AXItemClickEvent, AXSelectionMode, AXSelectionValueChangedEvent, AXStyleButtonLook, AXStyleColorType } from \"../base\";\r\n\r\n@Component({\r\n selector: 'ax-button-group',\r\n templateUrl: 'button-group.component.html',\r\n inputs: ['cssClass', 'size', 'cssStyle', 'rtl', 'disabled'],\r\n encapsulation: ViewEncapsulation.None,\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n host: { class: 'ax-button-group', role: 'group' }\r\n})\r\nexport class AXButtonGroupComponent extends AXInteractiveComponenetMixin {\r\n\r\n \r\n @Output()\r\n selectionChange: EventEmitter<AXSelectionMode> = new EventEmitter();\r\n\r\n private _selection : AXSelectionMode;\r\n @Input()\r\n public get selection() : AXSelectionMode {\r\n return this._selection;\r\n }\r\n public set selection(value : AXSelectionMode) {\r\n value = this._onOptionChanging({ name: 'selection', value: value });\r\n const oldValue = this.selection;\r\n if (value != oldValue) {\r\n this._selection = value;\r\n this.selectionChange.emit(value);\r\n this.onOptionChanged({ name: 'selection', oldValue, newValue: value });\r\n }\r\n }\r\n \r\n\r\n @Output()\r\n colorChange: EventEmitter<AXStyleColorType> = new EventEmitter();\r\n private _color: AXStyleColorType = 'primary';\r\n /**\r\n * Predefined color schemes\r\n */\r\n @Input()\r\n get color(): AXStyleColorType {\r\n return this._color;\r\n }\r\n set color(value: AXStyleColorType) {\r\n value = this._onOptionChanging({ name: 'color', value: value });\r\n const oldValue = this.color;\r\n if (value != oldValue) {\r\n this._color = value;\r\n this.colorChange.emit(value);\r\n this.onOptionChanged({ name: 'value', oldValue, newValue: value });\r\n }\r\n }\r\n\r\n @Output()\r\n lookChange: EventEmitter<AXStyleButtonLook> = new EventEmitter();\r\n private _look?: AXStyleButtonLook = null;\r\n /**\r\n * Predefined look schemes\r\n */\r\n @Input()\r\n get look(): AXStyleButtonLook {\r\n return this._look;\r\n }\r\n set look(value: AXStyleButtonLook) {\r\n value = this._onOptionChanging({ name: 'look', value: value });\r\n const oldValue = this.look;\r\n if (value != oldValue) {\r\n this._look = value;\r\n this.lookChange.emit(value);\r\n this.onOptionChanged({ name: 'look', oldValue, newValue: value });\r\n }\r\n }\r\n\r\n @Output()\r\n onItemClick: EventEmitter<AXItemClickEvent<AXButtonComponent>> = new EventEmitter<AXItemClickEvent<AXButtonComponent>>();\r\n\r\n public onValueChanged: EventEmitter<AXSelectionValueChangedEvent> = new EventEmitter<AXSelectionValueChangedEvent>();\r\n\r\n\r\n @ContentChildren(AXButtonComponent, { descendants: true })\r\n _contentButtons: QueryList<AXButtonComponent>;\r\n\r\n\r\n constructor(\r\n elementRef: ElementRef,\r\n private zone: NgZone,\r\n cdr: ChangeDetectorRef) {\r\n super(elementRef, cdr)\r\n }\r\n\r\n\r\n ngAfterContentInit() {\r\n this._bindEvents();\r\n this._bindProps();\r\n }\r\n\r\n\r\n private _bindEvents() {\r\n (this._contentButtons || []).forEach(b => {\r\n b.onClick.subscribe(c => {\r\n this._handleClickEvent(c, b);\r\n });\r\n });\r\n }\r\n\r\n private _bindProps() {\r\n (this._contentButtons || []).forEach(b => {\r\n b.look = this.look;\r\n b.color = this.color;\r\n b.disabled = this.disabled;\r\n b.toggleable = false;\r\n });\r\n }\r\n\r\n onOptionChanged(options) {\r\n this._bindProps();\r\n }\r\n\r\n\r\n _handleClickEvent(e: AXClickEvent, button: AXButtonComponent) {\r\n if (this.selection == 'multiple') {\r\n button.selected = !button.selected;\r\n }\r\n else if (this.selection == 'single') {\r\n this._contentButtons.forEach(c => {\r\n c.selected = false;\r\n })\r\n button.selected = true;\r\n }\r\n else {\r\n button.selected = false;\r\n }\r\n \r\n this.onItemClick.emit({\r\n component: this,\r\n htmlElement: e.htmlElement,\r\n item : button\r\n });\r\n\r\n }\r\n}","<ng-content select=\"ax-button\">\r\n</ng-content>","import { ChangeDetectionStrategy, ChangeDetectorRef, Component, ElementRef, HostBinding, HostListener, Input, OnInit, ViewEncapsulation } from '@angular/core';\r\nimport { AXBaseComponent, AXStyleColorType } from '../base';\r\nimport { _ClickableComponenetMixin } from '../base/mixin/clickable-mixin.class';\r\nimport { _InteractiveComponenetMixin } from '../base/mixin/interactive-mixin.class';\r\n\r\n\r\nexport const AXBaseItemButtonMixin =\r\n _InteractiveComponenetMixin(\r\n _ClickableComponenetMixin(AXBaseComponent)\r\n );\r\n\r\n\r\n@Component({\r\n selector: 'ax-button-item',\r\n template: `\r\n <ng-content select=\"ax-prefix\">\r\n </ng-content>\r\n <ng-content select=\"ax-icon\">\r\n </ng-content>\r\n <span *ngIf=\"text\">{{text}}</span>\r\n <ng-content select=\"ax-suffix\">\r\n </ng-content>\r\n `,\r\n encapsulation: ViewEncapsulation.None,\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n})\r\n\r\nexport class AXButtonItemComponent extends AXBaseItemButtonMixin {\r\n\r\n\r\n /**\r\n * @ignore\r\n */\r\n constructor(elementRef: ElementRef, cdr: ChangeDetectorRef) {\r\n super(elementRef, cdr);\r\n }\r\n\r\n @Input()\r\n text: string = null;\r\n\r\n @Input()\r\n tooltip: string = null;\r\n\r\n\r\n @Input()\r\n selected: boolean = false;\r\n\r\n @Input()\r\n seperated: boolean = false;\r\n\r\n @Input()\r\n name: string;\r\n\r\n @Input()\r\n data: any;\r\n\r\n\r\n @Input()\r\n color: AXStyleColorType = 'light';\r\n\r\n\r\n @HostListener('click', ['$event'])\r\n private __hostClick(e: MouseEvent) {\r\n this._emitOnClickEvent(e);\r\n }\r\n\r\n @HostBinding('class')\r\n private get __hostClass(): string {\r\n const cssClasses = {\r\n 'ax-button-icon': !this.text,\r\n 'ax-state-disabled': this.disabled,\r\n 'ax-state-selected': this.selected,\r\n };\r\n cssClasses[`ax-${this.color || 'primary'}-default`] = true;\r\n return Object.entries(cssClasses).filter(c => c[1]).map(c => c[0]).join(' ');\r\n }\r\n}\r\n\r\n","import { Component, ViewEncapsulation, ChangeDetectionStrategy, ElementRef, ChangeDetectorRef, TemplateRef, EmbeddedViewRef } from '@angular/core';\r\nimport { AXBaseComponentMixin } from '../base';\r\n\r\n@Component({\r\n selector: 'ax-content',\r\n template: `\r\n <ng-content>\r\n </ng-content>\r\n `,\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n encapsulation: ViewEncapsulation.None,\r\n})\r\nexport class AXDecoratorContentComponent extends AXBaseComponentMixin {\r\n\r\n constructor(\r\n elementRef: ElementRef,\r\n cdr: ChangeDetectorRef\r\n ) {\r\n super(elementRef, cdr);\r\n }\r\n\r\n}\r\n","import { Component, ViewEncapsulation, ChangeDetectionStrategy, ElementRef, ChangeDetectorRef, Input } from '@angular/core';\r\nimport { AXBaseComponentMixin } from '../base';\r\n\r\n@Component({\r\n selector: 'ax-addon',\r\n template: `<ng-content></ng-content>`,\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n encapsulation: ViewEncapsulation.None\r\n})\r\nexport class AXDecoratorAddOnComponent extends AXBaseComponentMixin {\r\n constructor(\r\n _elementRef: ElementRef,\r\n _cdr: ChangeDetectorRef\r\n ) {\r\n super(_elementRef, _cdr);\r\n }\r\n\r\n}\r\n","import { Component, ViewEncapsulation, ChangeDetectionStrategy, ElementRef, ChangeDetectorRef } from '@angular/core';\r\nimport { AXBaseComponentMixin } from '../base';\r\n\r\n@Component({\r\n selector: 'ax-header',\r\n template: `\r\n <ng-content>\r\n </ng-content>\r\n `,\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n encapsulation: ViewEncapsulation.None,\r\n})\r\nexport class AXDecoratorHeaderComponent extends AXBaseComponentMixin {\r\n\r\n constructor(\r\n elementRef: ElementRef,\r\n cdr: ChangeDetectorRef\r\n ) {\r\n super(elementRef, cdr);\r\n }\r\n\r\n}\r\n","import { Component, ViewEncapsulation, ChangeDetectionStrategy, ElementRef, ChangeDetectorRef } from '@angular/core';\r\nimport { AXBaseComponentMixin } from '../base';\r\n\r\n@Component({\r\n selector: 'ax-prefix',\r\n template: `\r\n <ng-content select=\"ax-button,ax-loading,ax-icon,ax-content,ax-badge,ax-addon\">\r\n </ng-content>\r\n `,\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n encapsulation: ViewEncapsulation.None\r\n})\r\nexport class AXDecoratorPrefixComponent extends AXBaseComponentMixin {\r\n\r\n constructor(\r\n elementRef: ElementRef,\r\n cdr: ChangeDetectorRef\r\n ) {\r\n super(elementRef, cdr);\r\n }\r\n\r\n}\r\n","import { Component, ViewEncapsulation, ChangeDetectionStrategy, ElementRef, ChangeDetectorRef } from '@angular/core';\r\nimport { AXBaseComponentMixin } from '../base';\r\n\r\n@Component({\r\n selector: 'ax-suffix',\r\n template: `\r\n <ng-content select=\"ax-button,ax-loading,ax-icon,ax-content,ax-badge,ax-addon\">\r\n </ng-content>\r\n `,\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n encapsulation: ViewEncapsulation.None\r\n})\r\nexport class AXDecoratorSuffixComponent extends AXBaseComponentMixin {\r\n\r\n constructor(\r\n elementRef: ElementRef,\r\n cdr: ChangeDetectorRef\r\n ) {\r\n super(elementRef, cdr);\r\n }\r\n\r\n}\r\n","import { NgModule } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\nimport { AXDecoratorPrefixComponent } from './prefix.component';\r\nimport { AXDecoratorSuffixComponent } from './suffix.component';\r\nimport { AXDecoratorContentComponent } from './content.component';\r\nimport { AXDecoratorHeaderComponent } from './header.component';\r\nimport { AXDecoratorAddOnComponent } from './addon.component';\r\n\r\nconst COMPONENT = [AXDecoratorPrefixComponent, AXDecoratorSuffixComponent, AXDecoratorContentComponent, AXDecoratorHeaderComponent, AXDecoratorAddOnComponent];\r\nconst MODULES = [CommonModule];\r\n\r\n@NgModule({\r\n declarations: [...COMPONENT],\r\n imports: [...MODULES],\r\n exports: [...COMPONENT],\r\n providers: [],\r\n})\r\nexport class AXEditorDecoratorModule { }\r\n","import { CommonModule } from '@angular/common';\r\nimport { NgModule } from '@angular/core';\r\nimport { AXEditorDecoratorModule } from '../decorators';\r\nimport { AXIconModule } from '../icon';\r\nimport { AXButtonGroupComponent } from './button-group.component';\r\nimport { AXButtonItemComponent } from './button-item.component';\r\nimport { AXButtonComponent } from './button.component';\r\n\r\n\r\nconst COMPONENT = [\r\n AXButtonComponent,\r\n AXButtonItemComponent,\r\n AXButtonGroupComponent,\r\n];\r\nconst MODULES = [CommonModule,AXIconModule,AXEditorDecoratorModule];\r\n\r\n@NgModule({\r\n imports: [MODULES],\r\n exports: [COMPONENT],\r\n declarations: [COMPONENT],\r\n providers: [],\r\n})\r\nexport class AXButtonModule { }\r\n","import { AXConfig } from \"@acorex/core\";\r\nimport { ChangeDetectorRef, ElementRef, EventEmitter, Injectable, Input, Output } from \"@angular/core\";\r\nimport { AXBaseComponent } from \"../base\";\r\n\r\nexport type AXCalendarViewType = 'years' | 'months' | 'days';\r\nexport type AXCalendarViewDepth = AXCalendarViewType;\r\nexport type AXCalendarDisabledDates = Date[] | ((date: Date) => boolean);\r\nexport type AXCalendarHolidayDates = Date[] | ((date: Date) => boolean);\r\n\r\n@Injectable()\r\nexport class AXCalendarBaseComponent extends AXBaseComponent {\r\n\r\n\r\n constructor(elementRef: ElementRef, cdr: ChangeDetectorRef) {\r\n super(elementRef, cdr);\r\n }\r\n\r\n @Output()\r\n activeViewChange: EventEmitter<AXCalendarViewType> = new EventEmitter<AXCalendarViewType>();\r\n\r\n private _activeView: AXCalendarViewType = 'days';\r\n @Input()\r\n public get activeView(): AXCalendarViewType {\r\n return this._activeView;\r\n }\r\n public set activeView(v: AXCalendarViewType) {\r\n this._setOption({ name: 'activeView', value: v });\r\n }\r\n\r\n\r\n @Output()\r\n public typeChange: EventEmitter<string> = new EventEmitter<string>();\r\n \r\n private _type: string = AXConfig.get(`dateTime.calendar`);\r\n \r\n @Input()\r\n public get type(): string {\r\n return this._type || AXConfig.get(`dateTime.calendar`);\r\n }\r\n public set type(v: string) {\r\n this._setOption({\r\n name: 'type',\r\n value: v\r\n })\r\n }\r\n\r\n\r\n @Output()\r\n depthChange: EventEmitter<AXCalendarViewDepth> = new EventEmitter<AXCalendarViewDepth>();\r\n\r\n private _depth: AXCalendarViewDepth = 'days';\r\n @Input()\r\n public get depth(): AXCalendarViewDepth {\r\n return this._depth;\r\n }\r\n public set depth(v: AXCalendarViewDepth) {\r\n this._setOption({\r\n name: 'depth', \r\n value: v, \r\n beforeCallback: () => {\r\n this._activeView = v;\r\n }\r\n });\r\n }\r\n\r\n @Output()\r\n minChange: EventEmitter<Date> = new EventEmitter<Date>();\r\n\r\n private _min: Date;\r\n @Input()\r\n public get min(): Date {\r\n return this._min;\r\n }\r\n public set min(v: Date) {\r\n this._setOption({ name: 'min', value: v });\r\n }\r\n\r\n\r\n @Output()\r\n maxChange: EventEmitter<Date> = new EventEmitter<Date>();\r\n\r\n private _max: Date;\r\n @Input()\r\n public get max(): Date {\r\n return this._max;\r\n }\r\n public set max(v: Date) {\r\n this._setOption({ name: 'max', value: v });\r\n }\r\n\r\n @Output()\r\n disabledDatesChange: EventEmitter<AXCalendarDisabledDates> = new EventEmitter<AXCalendarDisabledDates>();\r\n\r\n private _disabledDates: AXCalendarDisabledDates;\r\n @Input()\r\n public get disabledDates(): AXCalendarDisabledDates {\r\n return this._disabledDates;\r\n }\r\n public set disabledDates(v: AXCalendarDisabledDates) {\r\n this._setOption({ name: 'disabledDates', value: v });\r\n }\r\n\r\n @Output()\r\n holidayDatesChange: EventEmitter<AXCalendarHolidayDates> = new EventEmitter<AXCalendarHolidayDates>();\r\n\r\n private _holidayDates: AXCalendarHolidayDates;\r\n @Input()\r\n public get holidayDates(): AXCalendarHolidayDates {\r\n return this._holidayDates;\r\n }\r\n public set holidayDates(v: AXCalendarHolidayDates) {\r\n this._setOption({ name: 'holidayDates', value: v });\r\n }\r\n}\r\n\r\n\r\n\r\nexport const CALENDAR_INPUTS = [\r\n 'depth',\r\n 'activeView',\r\n 'min',\r\n 'max',\r\n 'disabledDates',\r\n 'type',\r\n 'holidayDates',\r\n];\r\nexport const CALENDAR_OUTPUTS = ['depthChange','typeChange'];\r\n","import { AXConfig, AXDateTime, AXDateTimeRange } from '@acorex/core';\r\nimport {\r\n Component,\r\n ViewEncapsulation,\r\n ChangeDetectionStrategy,\r\n ElementRef,\r\n ChangeDetectorRef,\r\n HostBinding,\r\n Input,\r\n Output,\r\n EventEmitter,\r\n} from '@angular/core';\r\nimport { AXClickEvent, AXComponentOptionChanged, AXItemClickEvent } from '../base';\r\nimport { _ClickableComponenetMixin } from '../base/mixin/clickable-mixin.class';\r\nimport { INTERACTIVE_INPUTS, INTERACTIVE_OUTPUT, _InteractiveComponenetMixin } from '../base/mixin/interactive-mixin.class';\r\nimport { VALUE_INPUTS, VALUE_OUTPUT, _ValueComponenetMixin } from '../base/mixin/value-mixin.class';\r\nimport { AXCalendarBaseComponent, CALENDAR_INPUTS, CALENDAR_OUTPUTS } from './calendar.class';\r\n\r\n\r\nexport const AXCalendarComponentMixin = _ClickableComponenetMixin(\r\n _InteractiveComponenetMixin(_ValueComponenetMixin<any>(AXCalendarBaseComponent))\r\n);\r\n\r\n\r\n@Component({\r\n selector: 'ax-calendar',\r\n templateUrl: './calendar.component.html',\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n inputs: [...VALUE_INPUTS, ...INTERACTIVE_INPUTS, ...CALENDAR_INPUTS],\r\n outputs: [...VALUE_OUTPUT, ...INTERACTIVE_OUTPUT, ...CALENDAR_OUTPUTS],\r\n encapsulation: ViewEncapsulation.None,\r\n})\r\nexport class AXCalendarComponent extends AXCalendarComponentMixin {\r\n\r\n private get _viewRange(): AXDateTimeRange {\r\n const current = this._viewStartDate || this._today;\r\n switch (this.activeView) {\r\n case 'years':\r\n let y = current.startOf('year').year;\r\n let min = y - (y % 10) - 1;\r\n let max = min + 11;\r\n return new AXDateTimeRange(\r\n AXDateTime.from({ year: min, month: 1, date: 1, calendar: this._viewStartDate.calendar.name() }),\r\n AXDateTime.from({ year: max, month: 12, date: 28, calendar: this._viewStartDate.calendar.name() }),\r\n );\r\n case 'months':\r\n return new AXDateTimeRange(current.startOf('year'), current.endOf('year').add('day', -1));\r\n default:\r\n //return new AXDateTimeRange(current.startOf('month').startOf('week'), current.endOf('month').endOf('week'));\r\n return new AXDateTimeRange(current.startOf('month'), current.endOf('month'));\r\n }\r\n }\r\n\r\n\r\n _today = new AXDateTime(new Date(), this.type);\r\n private _viewStartDate: AXDateTime;\r\n\r\n _navText: string = '';\r\n _todayText: string = '';\r\n\r\n _slots: any[] = [];\r\n _dayNames: string[] = [];\r\n\r\n\r\n\r\n @Output()\r\n onSlotClick: EventEmitter<AXItemClickEvent<Date>> = new EventEmitter<AXItemClickEvent<Date>>();\r\n\r\n constructor(elementRef: ElementRef, private cdr: ChangeDetectorRef) {\r\n super(elementRef, cdr);\r\n }\r\n\r\n\r\n private _initValues() {\r\n this._today = new AXDateTime(new Date(), this.type);\r\n this._dayNames = this._today.calendar.dayShortNames;\r\n }\r\n\r\n private _refresh() {\r\n this._initValues();\r\n this.navTo(this.value || this._today);\r\n }\r\n\r\n onInit() {\r\n this._initValues();\r\n this.goToday();\r\n }\r\n\r\n private _genearteSlots() {\r\n if (!this._viewStartDate)\r\n return;\r\n const vr = this._viewRange;\r\n // just for tailwind\r\n //'ax-col-start-1','ax-col-start-2','ax-col-start-3','ax-col-start-4','ax-col-start-5','ax-col-start-6','ax-col-start-7'\r\n // year view\r\n if (this.activeView == 'years') {\r\n const a = vr.enumurate('year');\r\n this._slots = a.map((d, i) => {\r\n const r: any = {};\r\n r.date = d.date;\r\n r.text = d.format('YYYY');\r\n r.disabled = (this.min && d.compare(this.min, 'year') == -1) || (this.max && d.compare(this.max, 'year') == 1);\r\n if (r.disabled) {\r\n r.cssClass = {\r\n 'ax-state-disabled': r.disabled,\r\n }\r\n }\r\n else {\r\n r.cssClass = {\r\n 'ax-state-today': d.equal(this._today, 'year'),\r\n 'ax-state-selected': this.value && this.depth == 'years' && d.equal(this.value, 'year'),\r\n }\r\n }\r\n // r.cssClass[`ax-col-start-2`] = i == 0;\r\n return r;\r\n });\r\n\r\n this._navText = `${vr.startTime.year} - ${vr.endTime.year}`;\r\n this._todayText = this._today.format('YYYY');\r\n }\r\n // month view\r\n else if (this.activeView == 'months') {\r\n const a = vr.enumurate('month');\r\n this._slots = a.map((d, i) => {\r\n const r: any = {};\r\n r.date = d.date;\r\n r.text = d.format('MMM');\r\n r.tooltip = d.format('MMMM YYYY');\r\n r.disabled = (this.min && d.compare(this.min, 'month') == -1) || (this.max && d.compare(this.max, 'month') == 1);\r\n if (r.disabled) {\r\n r.cssClass = {\r\n 'ax-state-disabled': r.disabled,\r\n }\r\n }\r\n else {\r\n r.cssClass = {\r\n 'ax-state-today': d.equal(this._today, 'month'),\r\n 'ax-state-selected': this.value && this.depth == 'months' && d.equal(this.value, 'month'),\r\n 'ax-state-other': d.year != this._viewStartDate.year\r\n }\r\n }\r\n return r;\r\n });\r\n this._navText = this._viewStartDate.format('YYYY');\r\n this._todayText = this._today.format('MMMM YYYY');\r\n }\r\n // day view\r\n else {\r\n const a = vr.enumurate('day');\r\n this._slots = a.map((d, i) => {\r\n const r: any = {};\r\n r.date = d.date;\r\n r.text = d.dayOfMonth;\r\n r.tooltip = d.format();\r\n r.disabled = (this.min && d.compare(this.min, 'day') == -1) || (this.max && d.compare(this.max, 'day') == 1);\r\n if (r.disabled || this.isDisabled(d)) {\r\n r.cssClass = {\r\n 'ax-state-disabled': true,\r\n }\r\n }\r\n else {\r\n r.cssClass = {\r\n 'ax-state-today': d.equal(this._today, 'day'),\r\n 'ax-state-selected': this.value && d.equal(this.value, 'day'),\r\n 'ax-state-holiday': this.isHoliday(d) || this.isWeekend(d),\r\n // 'ax-state-event-info': d.dayOfMonth == 12,\r\n // 'ax-state-event': d.dayOfMonth == 12,\r\n }\r\n }\r\n\r\n r.cssClass[`ax-col-start-${vr.startTime.dayOfWeek}`] = i == 0\r\n return r;\r\n });\r\n this._navText = this._viewStartDate.format('MMMM YYYY');\r\n this._todayText = this._today.format();\r\n }\r\n }\r\n\r\n\r\n _handlePrevClick(e: AXClickEvent) {\r\n this.prev();\r\n }\r\n\r\n _handleNextClick(e: AXClickEvent) {\r\n this.next();\r\n }\r\n\r\n _handleSlotClick(e: MouseEvent, slot) {\r\n if (slot.disabled || this.disabled)\r\n return;\r\n if (this.activeView == 'days') {\r\n this._setDate(slot.date)\r\n }\r\n else if (this.activeView == 'months' && this.depth == 'days') {\r\n this.activeView = 'days';\r\n this.navTo(slot.date);\r\n }\r\n else if (this.activeView == 'months' && this.depth == 'months') {\r\n this._setDate(slot.date)\r\n }\r\n else if (this.activeView == 'years' && (this.depth == 'days' || this.depth == 'months')) {\r\n this.activeView = 'months';\r\n this.navTo(slot.date);\r\n }\r\n else if (this.activeView == 'years' && this.depth == 'years') {\r\n this._setDate(slot.date)\r\n }\r\n this.onSlotClick.emit({\r\n component: this,\r\n item: slot.date,\r\n nativeEvent: e\r\n })\r\n }\r\n\r\n _handleNavClick(e: AXClickEvent) {\r\n if (this.activeView == 'days')\r\n this.activeView = 'months';\r\n else if (this.activeView == 'months')\r\n this.activeView = 'years';\r\n }\r\n\r\n _onOptionChanged(option: AXComponentOptionChanged) {\r\n if (option.name == 'depth' || option.name == 'activeView') {\r\n this._genearteSlots();\r\n }\r\n if (option.name == 'type') {\r\n this._refresh();\r\n }\r\n }\r\n\r\n _onValueChanged(oldValue, newValue) {\r\n this._viewStartDate = new AXDateTime(newValue, this.type);\r\n this._genearteSlots();\r\n }\r\n\r\n _handleGoToday() {\r\n this._setDate(this._today.date)\r\n this.goToday();\r\n }\r\n\r\n next() {\r\n this._navNextPrev(false)\r\n }\r\n\r\n prev() {\r\n this._navNextPrev(true)\r\n }\r\n\r\n focus() {\r\n (this._getHostElement() as HTMLDivElement).querySelector<HTMLDivElement>('.ax-calendar-slots>div')?.focus();\r\n }\r\n\r\n private _navNextPrev(prev: boolean) {\r\n const sign = (prev ? -1 : 1);\r\n if (this.activeView == 'days')\r\n this.navTo(this._viewStartDate.add('month', sign * 1));\r\n else if (this.activeView == 'months')\r\n this.navTo(this._viewStartDate.add('year', sign * 1));\r\n else\r\n this.navTo(this._viewStartDate.add('year', sign * 10));\r\n }\r\n\r\n goToday() {\r\n this.navTo(this._today);\r\n }\r\n\r\n\r\n navTo(date: Date | AXDateTime) {\r\n this._viewStartDate = AXDateTime.convert(date, this._today.calendar.name()).startOf();\r\n this._genearteSlots();\r\n }\r\n\r\n\r\n @HostBinding('class')\r\n private get __hostClass(): string {\r\n const _classes = {\r\n 'ax-state-disabled': this.disabled\r\n }\r\n return Object.entries(_classes).filter(c => c[1]).map(c => c[0]).join(' ');\r\n }\r\n\r\n\r\n private _setDate(value: Date) {\r\n this.value = AXDateTime.convert(value, this._today.calendar.name()).startOf().date;\r\n }\r\n\r\n private isDisabled(date: AXDateTime): boolean {\r\n if (Array.isArray(this.disabledDates) && this.disabledDates.length != 0) {\r\n ;\r\n return this.disabledDates.some(d => date.equal(d, 'day'));\r\n }\r\n else if (typeof this.disabledDates == 'function') {\r\n return this.disabledDates(date.date);\r\n }\r\n return false;\r\n }\r\n\r\n private isHoliday(date: AXDateTime): boolean {\r\n if (Array.isArray(this.holidayDates) && this.holidayDates.length != 0) {\r\n return this.holidayDates.some(d => date.equal(d, 'day'));\r\n }\r\n else if (typeof this.holidayDates == 'function') {\r\n return this.holidayDates(date.date);\r\n }\r\n return false;\r\n }\r\n\r\n private isWeekend(date: AXDateTime): boolean {\r\n return date.dayOfWeek == 7 || date.dayOfWeek == 1;\r\n }\r\n\r\n}\r\n","<div class=\"ax-calendar-header\">\r\n <ax-button class=\"ax-nav-button\" [text]=\"_navText\" color=\"light\" look=\"blank\" (onClick)=\"_handleNavClick($event)\" [disabled]=\"disabled\">\r\n </ax-button>\r\n <ax-button class=\"ax-prev-button\" color=\"light\" look=\"blank\" (onClick)=\"_handlePrevClick($event)\" [disabled]=\"disabled\">\r\n <ax-prefix>\r\n <ax-icon icon=\"ax-ic ax-ic-chevron ax-transform ax-rotate-90\"></ax-icon>\r\n </ax-prefix>\r\n </ax-button>\r\n <ax-button class=\"ax-next-button\" color=\"light\" look=\"blank\" (onClick)=\"_handleNextClick($event)\" [disabled]=\"disabled\">\r\n <ax-prefix>\r\n <ax-icon icon=\"ax-ic ax-ic-chevron ax-transform ax--rotate-90\"></ax-icon>\r\n </ax-prefix>\r\n </ax-button>\r\n</div>\r\n<div class=\"ax-calendar-body\">\r\n <div [ngSwitch]=\"activeView\">\r\n <ng-container *ngSwitchCase=\"'years'\">\r\n <div class=\"ax-calendar-slots ax-calendar-slots-year\">\r\n <div tabindex=\"0\" *ngFor=\"let slot of _slots\" [ngClass]=\"slot.cssClass\" \r\n (click)=\"_handleSlotClick($event,slot)\">{{slot.text}}</div>\r\n </div>\r\n </ng-container>\r\n <ng-container *ngSwitchCase=\"'months'\">\r\n <div class=\"ax-calendar-slots ax-calendar-slots-month\">\r\n <div tabindex=\"0\" *ngFor=\"let slot of _slots\" [title]=\"slot.tooltip\" [ngClass]=\"slot.cssClass\" \r\n (click)=\"_handleSlotClick($event,slot)\">{{slot.text}}</div>\r\n </div>\r\n </ng-container>\r\n <ng-container *ngSwitchDefault>\r\n <div class=\"ax-calendar-week\">\r\n <div *ngFor=\"let d of _dayNames\">{{d}}</div>\r\n </div>\r\n <div class=\"ax-calendar-slots ax-calendar-slots-day\">\r\n <div tabindex=\"0\" *ngFor=\"let slot of _slots\" [title]=\"slot.tooltip\" [ngClass]=\"slot.cssClass\"\r\n (click)=\"_handleSlotClick($event,slot)\">{{slot.text}}</div>\r\n </div>\r\n </ng-container>\r\n </div>\r\n\r\n</div>\r\n<div class=\"ax-calendar-footer\">\r\n <ax-button class=\"dark:ax-text-danger\" [text]=\"_todayText\" color=\"dark\" look=\"blank\" size=\"sm\" (onClick)=\"_handleGoToday()\" [disabled]=\"disabled\"></ax-button>\r\n</div>","import { NgModule } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\nimport { AXCalendarComponent } from './calendar.component';\r\nimport { AXButtonModule } from '../button';\r\nimport { AXEditorDecoratorModule } from '../decorators';\r\nimport { AXIconModule } from '../icon';\r\nimport { BrowserModule } from '@angular/platform-browser';\r\nimport { AXDateTimeModule } from '@acorex/core';\r\n\r\nconst COMPONENT = [AXCalendarComponent];\r\nconst MODULES = [CommonModule, AXButtonModule, AXIconModule, AXEditorDecoratorModule, AXDateTimeModule];\r\n\r\n@NgModule({\r\n declarations: [...COMPONENT],\r\n imports: [...MODULES],\r\n exports: [...COMPONENT],\r\n providers: [],\r\n})\r\nexport class AXCalendarModule { }\r\n","import { EventEmitter, Injectable } from \"@angular/core\";\r\nimport { AXValueChangedEvent } from \"../base\";\r\n\r\n\r\n@Injectable()\r\nexport abstract class AXCarouselCore {\r\n abstract next(): void;\r\n abstract last(): void;\r\n abstract prev(): void;\r\n abstract first(): void;\r\n abstract destroy(): void;\r\n abstract goToSlide(index: number): void;\r\n abstract goToPage(index: number): void;\r\n abstract mount(instance: AXCarousel): void;\r\n abstract rebuild(): void;\r\n}\r\n\r\n\r\n\r\nexport interface AXCarousel {\r\n\r\n onSlideChanged: EventEmitter<AXValueChangedEvent<number>>;\r\n onOptionsChanged: EventEmitter<void>;\r\n //\r\n pageSizeChange: EventEmitter<number>\r\n pageSize: number;\r\n //\r\n gap: number;\r\n //\r\n autoplayChange: EventEmitter<boolean>;\r\n autoplay: boolean;\r\n //\r\n intervalChange: EventEmitter<number>\r\n interval: number;\r\n //\r\n centeredChange: EventEmitter<boolean>\r\n centered: boolean;\r\n //\r\n verticalChange: EventEmitter<boolean>\r\n vertical: boolean;\r\n //\r\n paddingChange: EventEmitter<string | number>\r\n padding: string | number;\r\n //\r\n loopChange: EventEmitter<boolean>\r\n loop: boolean;\r\n //\r\n rewindChange: EventEmitter<boolean>\r\n rewind: boolean;\r\n //\r\n visibleIndex: number;\r\n //\r\n onItemsChanged: EventEmitter<AXValueChangedEvent<HTMLDivElement[]>>\r\n items: HTMLDivElement[];\r\n\r\n rtl: boolean;\r\n\r\n next(): void;\r\n last(): void;\r\n prev(): void;\r\n first(): void;\r\n goToSlide(index: number): void;\r\n goToPage(index: number): void;\r\n\r\n host: HTMLDivElement;\r\n}\r\n\r\n","import { AXCarousel, AXCarouselCore } from \"./carousel.class\";\r\nimport { Splide as SS, SplideOptions } from '@splidejs/splide'\r\n\r\ndeclare var Splide: any;\r\n\r\nexport class AXCarouselSplideJS implements AXCarouselCore {\r\n constructor() {\r\n\r\n }\r\n\r\n _ref: SS;\r\n _instance: AXCarousel;\r\n\r\n mount(instance: AXCarousel): void {\r\n this._instance = instance;\r\n this._instance.host.classList.add('splide');\r\n this._instance.host.querySelector('.ax-carousel-list-container').classList.add('splide__track');\r\n const listElement = this._instance.host.querySelector('.ax-carousel-list');\r\n listElement.classList.add('splide__list');\r\n //\r\n this.rebuild();\r\n this._instance.onItemsChanged.subscribe(items => {\r\n items.value.forEach(i => i.classList.add('splide__slide'));\r\n this._ref.refresh();\r\n });\r\n this._instance.items = Array.from(listElement.querySelectorAll<HTMLDivElement>('ax-carousel-item'));\r\n this._instance.onOptionsChanged.subscribe(() => {\r\n this.rebuild();\r\n });\r\n }\r\n\r\n private _emitOnSlideChanged(i: number) {\r\n const oldValue = this._instance.visibleIndex;\r\n this._instance.visibleIndex = i;\r\n this._instance.onSlideChanged.emit({\r\n component: this,\r\n htmlElement: this._instance.host,\r\n value: this._instance.visibleIndex,\r\n oldValue\r\n });\r\n }\r\n\r\n\r\n private _getConfig(): SplideOptions {\r\n return {\r\n autoplay: this._instance.autoplay,\r\n type: this._instance.loop && !this._instance.rewind ? 'loop' : 'slide',\r\n rewind: this._instance.rewind,\r\n gap: this._instance.gap,\r\n perPage: this._instance.pageSize,\r\n perMove: 1,\r\n start: this._instance.visibleIndex,\r\n interval: this._instance.interval,\r\n direction: this._instance.vertical ? 'ttb' : (this._instance.rtl ? 'rtl' : 'ltr'),\r\n arrows: false,\r\n pagination: false,\r\n padding: this._instance.padding,\r\n autoWidth: true,\r\n focus: this._instance.centered ? 'center' : false,\r\n }\r\n }\r\n\r\n\r\n\r\n next(): void {\r\n this._ref.go('+');\r\n }\r\n\r\n last(): void {\r\n this._ref.go(this._ref.length - 1);\r\n }\r\n\r\n prev(): void {\r\n this._ref.go('-');\r\n }\r\n\r\n first(): void {\r\n this._ref.go(0);\r\n }\r\n\r\n goToSlide(index: number): void {\r\n this._ref.go(index);\r\n }\r\n\r\n goToPage(index: number): void {\r\n this._ref.go(`>${index}`);\r\n }\r\n\r\n destroy() {\r\n this._ref.destroy();\r\n }\r\n\r\n rebuild() {\r\n if (this._ref) {\r\n this._ref.off('move');\r\n this._ref.destroy();\r\n }\r\n //\r\n this._ref = new Splide(this._instance.host, this._getConfig());\r\n this._ref.mount();\r\n this._ref.on('move', this._emitOnSlideChanged.bind(this));\r\n this._emitOnSlideChanged(this._instance.visibleIndex);\r\n }\r\n}","import { Component, ViewEncapsulation, ChangeDetectionStrategy, ElementRef, ChangeDetectorRef, ContentChildren, QueryList, Input, NgZone, Output, EventEmitter, ViewChild, ContentChild } from '@angular/core';\r\nimport { AXBaseComponentMixin, AXValueChangedEvent } from '../base';\r\nimport { coerceBooleanProperty, coerceCssPixelValue, coerceNumberProperty } from '@angular/cdk/coercion';\r\nimport { AXCarousel, AXCarouselCore } from './carousel.class';\r\nimport { AXCarouselSplideJS } from './carousel-splidejs.class';\r\n\r\n@Component({\r\n selector: 'ax-carousel',\r\n templateUrl: './carousel.component.html',\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n encapsulation: ViewEncapsulation.None,\r\n host: { class: 'ax-carousel' },\r\n providers:[{\r\n provide: AXCarouselCore,\r\n useClass: AXCarouselSplideJS\r\n }]\r\n})\r\nexport class AXCarouselComponent extends AXBaseComponentMixin implements AXCarousel {\r\n\r\n\r\n constructor(\r\n elementRef: ElementRef,\r\n private zone: NgZone,\r\n cdr: ChangeDetectorRef,\r\n private core: AXCarouselCore,\r\n ) {\r\n super(elementRef, cdr);\r\n }\r\n\r\n\r\n @Output()\r\n onOptionsChanged: EventEmitter<void> = new EventEmitter<void>();\r\n\r\n @Output()\r\n public onSlideChanged: EventEmitter<AXValueChangedEvent<number>> = new EventEmitter<AXValueChangedEvent<number>>();\r\n\r\n @Output()\r\n public pageSizeChange: EventEmitter<number> = new EventEmitter<number>();\r\n\r\n private _pageSize: number = 1\r\n @Input()\r\n public get pageSize(): number {\r\n return this._pageSize;\r\n }\r\n public set pageSize(v: number) {\r\n const val = Math.max(1, coerceNumberProperty(v));\r\n if (val != this._pageSize) {\r\n this._pageSize = val;\r\n if (this._pageSize > 1) {\r\n this._vertical = false;\r\n }\r\n this.pageSizeChange.emit(this.pageSize);\r\n this.onOptionsChanged.emit();\r\n }\r\n }\r\n\r\n\r\n\r\n @Input()\r\n gap: number = 10;\r\n\r\n\r\n @Output()\r\n public autoplayChange: EventEmitter<boolean> = new EventEmitter<boolean>();\r\n\r\n private _autoplay: boolean = false;\r\n @Input()\r\n public get autoplay(): boolean {\r\n return this._autoplay;\r\n }\r\n public set autoplay(v: boolean) {\r\n const val = coerceBooleanProperty(v);\r\n if (val != this._autoplay) {\r\n this._autoplay = val;\r\n this.autoplayChange.emit(this.autoplay);\r\n this.onOptionsChanged.emit();\r\n }\r\n }\r\n\r\n @Output()\r\n public intervalChange: EventEmitter<number> = new EventEmitter<number>();\r\n\r\n private _interval: number = 3000\r\n @Input()\r\n public get interval(): number {\r\n return this._interval;\r\n }\r\n public set interval(v: number) {\r\n const val = coerceNumberProperty(v);\r\n if (val != this._interval) {\r\n this.intervalChange.emit(val);\r\n this.onOptionsChanged.emit();\r\n }\r\n }\r\n\r\n\r\n\r\n @Output()\r\n public paddingChange: EventEmitter<number | string> = new EventEmitter<number | string>();\r\n\r\n private _padding: number | string = 0\r\n @Input()\r\n public get padding(): number | string {\r\n return this._padding;\r\n }\r\n public set padding(v: number | string) {\r\n if (v != this._padding) {\r\n this._padding=v;\r\n this.paddingChange.emit(v);\r\n this.onOptionsChanged.emit();\r\n }\r\n }\r\n\r\n\r\n\r\n @Output()\r\n public centeredChange: EventEmitter<boolean> = new EventEmitter<boolean>();\r\n\r\n private _centered: boolean = false;\r\n @Input()\r\n public get centered(): boolean {\r\n return this._centered;\r\n }\r\n public set centered(v: boolean) {\r\n const val = coerceBooleanProperty(v);\r\n if (val != this._centered) {\r\n this._centered = val;\r\n if (this._centered) {\r\n this._rewind = false;\r\n }\r\n this.centeredChange.emit(this.centered);\r\n this.rewindChange.emit(this.rewind);\r\n this.onOptionsChanged.emit();\r\n }\r\n }\r\n\r\n @Output()\r\n public verticalChange: EventEmitter<boolean> = new EventEmitter<boolean>();\r\n\r\n private _vertical: boolean = false;\r\n @Input()\r\n public get vertical(): boolean {\r\n return this._vertical;\r\n }\r\n public set vertical(v: boolean) {\r\n const val = coerceBooleanProperty(v);\r\n if (val != this._vertical) {\r\n this._vertical = val;\r\n this.verticalChange.emit(this.vertical);\r\n this.onOptionsChanged.emit();\r\n }\r\n }\r\n\r\n @Output()\r\n public loopChange: EventEmitter<boolean> = new EventEmitter<boolean>();\r\n\r\n private _loop: boolean = false;\r\n @Input()\r\n public get loop(): boolean {\r\n return this._loop;\r\n }\r\n public set loop(v: boolean) {\r\n const val = coerceBooleanProperty(v);\r\n if (val != this._loop) {\r\n this._loop = val;\r\n if (this._loop) {\r\n this._rewind = false;\r\n }\r\n this.loopChange.emit(this.loop);\r\n this.rewindChange.emit(this.rewind);\r\n this.onOptionsChanged.emit();\r\n }\r\n }\r\n\r\n @Output()\r\n public rewindChange: EventEmitter<boolean> = new EventEmitter<boolean>();\r\n\r\n private _rewind: boolean = false;\r\n @Input()\r\n public get rewind(): boolean {\r\n return this._rewind;\r\n }\r\n public set rewind(v: boolean) {\r\n const val = coerceBooleanProperty(v);\r\n if (val != this._rewind) {\r\n this._rewind = val;\r\n if (this._rewind) {\r\n this._loop = false;\r\n this._centered = false;\r\n }\r\n this.rewindChange.emit(this.rewind);\r\n this.loopChange.emit(this.loop);\r\n this.centeredChange.emit(this.centered);\r\n this.onOptionsChanged.emit();\r\n }\r\n }\r\n\r\n\r\n\r\n \r\n private _visibleIndex : number = 0;\r\n public get visibleIndex() : number {\r\n return this._visibleIndex;\r\n }\r\n public set visibleIndex(v : number) {\r\n this._visibleIndex = v;\r\n }\r\n \r\n\r\n\r\n\r\n @Output()\r\n public onItemsChanged: EventEmitter<AXValueChangedEvent<HTMLDivElement[]>> = new EventEmitter<AXValueChangedEvent<HTMLDivElement[]>>();\r\n\r\n private _items: HTMLDivElement[] = [];\r\n public get items(): HTMLDivElement[] {\r\n return this._items ?? [];\r\n }\r\n public set items(v: HTMLDivElement[]) {\r\n const oldValue = this.items.slice();\r\n this._items = v;\r\n this.onItemsChanged.emit({\r\n component: this,\r\n htmlElement: this._getHostElement(),\r\n oldValue,\r\n value: this.items\r\n })\r\n }\r\n\r\n\r\n onViewInit() {\r\n this.core.mount(this);\r\n }\r\n\r\n \r\n\r\n \r\n next(): void {\r\n this.core.next();\r\n }\r\n\r\n last(): void {\r\n this.core.last();\r\n }\r\n\r\n prev(): void {\r\n this.core.prev();\r\n }\r\n\r\n first(): void {\r\n this.core.first();\r\n }\r\n\r\n goToSlide(index: number): void {\r\n this.core.goToSlide(index);\r\n }\r\n\r\n goToPage(index: number): void {\r\n this.core.goToPage(index);\r\n }\r\n\r\n\r\n get host():HTMLDivElement\r\n {\r\n return this._getHostElement();\r\n }\r\n\r\n\r\n onDestroy()\r\n {\r\n this.core.destroy();\r\n }\r\n}\r\n","<div class=\"ax-carousel-list-container\">\r\n <div class=\"ax-carousel-list\">\r\n <ng-content select=\"ax-carousel-item\">\r\n </ng-content>\r\n </div>\r\n <ng-content select=\"ax-carousel-arrows\">\r\n </ng-content>\r\n</div>\r\n\r\n<ng-content select=\"ax-carousel-pager\">\r\n</ng-content>","import { Component, ViewEncapsulation, ChangeDetectionStrategy, ElementRef, ChangeDetectorRef } from '@angular/core';\r\nimport { AXBaseComponentMixin } from '../base';\r\n\r\n@Component({\r\n selector: 'ax-carousel-item',\r\n template: '<ng-content></ng-content>',\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n encapsulation: ViewEncapsulation.None,\r\n host : { class: 'ax-carousel-item' }\r\n})\r\nexport class AXCarouselItemComponent extends AXBaseComponentMixin {\r\n\r\n constructor(\r\n elementRef: ElementRef, \r\n cdr: ChangeDetectorRef\r\n ) {\r\n super(elementRef, cdr);\r\n }\r\n}\r\n","import { Component, ViewEncapsulation, ChangeDetectionStrategy, ElementRef, ChangeDetectorRef, EventEmitter, Output, Host, Optional } from '@angular/core';\r\nimport { AXBaseComponentMixin, AXClickEvent } from '../base';\r\nimport { AXCarouselComponent } from './carousel.component';\r\n\r\n@Component({\r\n selector: 'ax-carousel-arrows',\r\n template: `\r\n <button class=\"ax-carousel-arrow-prev\" (click)=\"_handlePrevClick($event)\">\r\n <i class=\"ax-ic ax-ic-keyboard-arrow-left\"></i>\r\n </button>\r\n <button class=\"ax-carousel-arrow-next\" (click)=\"_handleNextClick($event)\">\r\n <i class=\"ax-ic ax-ic-keyboard-arrow-right\"></i>\r\n </button>\r\n `,\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n encapsulation: ViewEncapsulation.None,\r\n host: { class: 'ax-carousel-arrows' }\r\n})\r\nexport class AXCarouselArrowsComponent extends AXBaseComponentMixin {\r\n\r\n @Output()\r\n public onNextClick: EventEmitter<AXClickEvent> = new EventEmitter<AXClickEvent>();\r\n\r\n @Output()\r\n public onPrevClick: EventEmitter<AXClickEvent> = new EventEmitter<AXClickEvent>();\r\n\r\n constructor(\r\n elementRef: ElementRef,\r\n cdr: ChangeDetectorRef,\r\n @Optional() \r\n private parent: AXCarouselComponent\r\n ) {\r\n super(elementRef, cdr);\r\n }\r\n\r\n\r\n _handlePrevClick(e: MouseEvent) {\r\n e.stopPropagation();\r\n this.parent.prev();\r\n }\r\n\r\n _handleNextClick(e: MouseEvent) {\r\n e.stopPropagation();\r\n this.parent.next();\r\n }\r\n}\r\n","import { Component, ViewEncapsulation, ChangeDetectionStrategy, ElementRef, ChangeDetectorRef, EventEmitter, Output, Host, Optional } from '@angular/core';\r\nimport { Subscription } from 'rxjs';\r\nimport { AXBaseComponentMixin } from '../base';\r\nimport { AXCarouselComponent } from './carousel.component';\r\n\r\n@Component({\r\n selector: 'ax-carousel-pager',\r\n template: `\r\n <button *ngFor=\"let d of _dots;let i=index\" [class.ax-state-active]=\"i==_pageIndex\" (click)=\"_handleClick($event,i)\">\r\n </button>\r\n `,\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n encapsulation: ViewEncapsulation.None,\r\n host: { class: 'ax-carousel-pager' }\r\n})\r\nexport class AXCarouselPagerComponent extends AXBaseComponentMixin {\r\n\r\n\r\n _visibleIndex: number = 0;\r\n _pageIndex: number = 0;\r\n private _size: number = 1;\r\n\r\n _dots: any[] = [];\r\n\r\n\r\n private _subs: Subscription[] = [];\r\n\r\n constructor(\r\n elementRef: ElementRef,\r\n private cdr: ChangeDetectorRef,\r\n private _parent: AXCarouselComponent\r\n ) {\r\n super(elementRef, cdr);\r\n _parent.pageSizeChange.subscribe(c => {\r\n this._size = c;\r\n this._generateDots();\r\n });\r\n _parent.onSlideChanged.subscribe(c => {\r\n this._visibleIndex = c.value;\r\n this._generateDots();\r\n });\r\n _parent.onItemsChanged.subscribe(c => {\r\n this._generateDots();\r\n });\r\n }\r\n\r\n\r\n onViewInit() {\r\n this._size = this._parent.pageSize;\r\n this._visibleIndex = this._parent.visibleIndex;\r\n this._generateDots();\r\n }\r\n\r\n\r\n private _generateDots(): void {\r\n this._dots = [...Array(Math.ceil(this._parent.items.length / this._size)).keys()];\r\n this._setPageIndex(this._findPageIndex(this._visibleIndex));\r\n this.cdr.detectChanges();\r\n }\r\n\r\n\r\n _handleClick(e: MouseEvent, index: number) {\r\n e.stopPropagation();\r\n this._setPageIndex(index);\r\n this._parent.goToPage(index);\r\n }\r\n\r\n private _setPageIndex(index: number) {\r\n this._pageIndex = index;\r\n this.cdr.detectChanges();\r\n }\r\n\r\n private _findPageIndex(slideIndex: number): number {\r\n return Math.min(Math.ceil(slideIndex / this._size), this._dots.length - 1);\r\n }\r\n\r\n onDestroy() {\r\n this._subs.forEach(s => {\r\n s.unsubscribe();\r\n });\r\n }\r\n\r\n}\r\n","import { NgModule } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\nimport { AXCarouselComponent } from './carousel.component';\r\nimport { AXCarouselItemComponent } from './carousel-item.component';\r\nimport { AXCarouselArrowsComponent } from './carousel-arrows.component';\r\nimport { AXCarouselPagerComponent } from './carousel-pager.component';\r\nimport { AXCarouselSplideJS } from './carousel-splidejs.class';\r\nimport { AXCarousel, AXCarouselCore } from './carousel.class';\r\n\r\nconst COMPONENT = [AXCarouselComponent, AXCarouselItemComponent, AXCarouselArrowsComponent, AXCarouselPagerComponent];\r\nconst MODULES = [CommonModule];\r\n\r\n@NgModule({\r\n declarations: [...COMPONENT],\r\n imports: [...MODULES],\r\n exports: [...COMPONENT],\r\n providers: [],\r\n})\r\nexport class AXCarouselModule { }\r\n","import { Component, ChangeDetectorRef, ChangeDetectionStrategy, ViewEncapsulation, ElementRef } from '@angular/core';\r\nimport { AXBaseValueComponentMixin } from '../base';\r\nimport { INTERACTIVE_INPUTS, INTERACTIVE_OUTPUT } from '../base/mixin/interactive-mixin.class';\r\nimport { VALUE_INPUTS, VALUE_OUTPUT } from '../base/mixin/value-mixin.class';\r\n\r\n@Component({\r\n selector: 'ax-check-box',\r\n templateUrl: './checkbox.component.html',\r\n inputs: [...INTERACTIVE_INPUTS, ...VALUE_INPUTS],\r\n outputs: [...INTERACTIVE_OUTPUT, ...VALUE_OUTPUT],\r\n encapsulation: ViewEncapsulation.None,\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n})\r\nexport class AXCheckBoxComponent extends AXBaseValueComponentMixin {\r\n\r\n constructor(elementRef: ElementRef, cdr: ChangeDetectorRef) {\r\n super(elementRef, cdr);\r\n }\r\n\r\n onInit() {\r\n super.onInit();\r\n if (!this.allowNull && this.value == null) {\r\n this.value = false;\r\n }\r\n }\r\n\r\n _onValueChanging(value) {\r\n if (this.allowNull && value == null) {\r\n this._stateIndeterminate = true;\r\n }\r\n else {\r\n this._stateIndeterminate = false;\r\n value = value == true ? true : false;\r\n }\r\n return value;\r\n }\r\n\r\n _handleOnClickEvent(e: MouseEvent) {\r\n if (this.readonly || this.disabled) {\r\n e.preventDefault();\r\n e.stopPropagation();\r\n return false;\r\n }\r\n }\r\n}\r\n","<label class=\"ax-flex ax-items-start\">\r\n <div class=\"ax-flex ax-items-center ax-h-5\">\r\n <input [id]=\"id\" class=\"ax-h-4 ax-w-4\" type=\"checkbox\" [class.ax-state-readonly]=\"readonly\"\r\n [class.ax-state-disabled]=\"disabled\" [indeterminate]=\"_stateIndeterminate\" [(ngModel)]=\"value\"\r\n [checked]=\"value\" [disabled]=\"disabled\" [readonly]=\"readonly\" [tabindex]=\"tabIndex\"\r\n (click)=\"_handleOnClickEvent($event)\" (focus)=\"_emitOnFocusEvent($event)\" (blur)=\"_emitOnBlurEvent($event)\">\r\n </div>\r\n <div class=\"ax-ms-3 ax-text-sm\">\r\n <ng-content></ng-content>\r\n <ng-content select=\"ax-form-hint\"></ng-content>\r\n <span class=\"ax-error-container\"></span>\r\n </div>\r\n</label>\r\n<ng-content select=\"ax-validation-rule\"></ng-content>","import { NgModule } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\nimport { FormsModule } from '@angular/forms';\r\nimport { AXCheckBoxComponent } from './checkbox.component';\r\nimport { AXEditorDecoratorModule } from '../decorators';\r\n@NgModule({\r\n declarations: [AXCheckBoxComponent],\r\n imports: [CommonModule, FormsModule,AXEditorDecoratorModule],\r\n exports: [AXCheckBoxComponent],\r\n providers: [],\r\n})\r\nexport class AXCheckBoxModule {}\r\n","import { AXConfig } from '@acorex/core';\r\nimport { CdkPortalOutletAttachedRef, ComponentPortal, Portal } from '@angular/cdk/portal';\r\nimport { Component, ViewEncapsulation, ChangeDetectionStrategy, Input, Output, EventEmitter, ElementRef, ChangeDetectorRef, HostBinding, ComponentRef } from '@angular/core';\r\nimport { AXBaseComponentMixin } from '../base';\r\n\r\n@Component({\r\n selector: 'ax-loading',\r\n template: `\r\n <ng-template [cdkPortalOutlet]=\"_selectedPortal\" (attached)=\"_handleAttched($event)\"></ng-template>\r\n `,\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n encapsulation: ViewEncapsulation.None,\r\n host: { class: 'ax-loading' }\r\n})\r\nexport class AXLoadingComponent extends AXBaseComponentMixin {\r\n\r\n _selectedPortal: Portal<any>;\r\n\r\n /**\r\n * @ignore\r\n */\r\n constructor(\r\n elementRef: ElementRef,\r\n cdr: ChangeDetectorRef\r\n ) {\r\n super(elementRef, cdr);\r\n }\r\n\r\n\r\n @Output()\r\n visibleChange: EventEmitter<boolean> = new EventEmitter();\r\n\r\n private _visible: boolean;\r\n\r\n @Input()\r\n public get visible(): boolean {\r\n return this._visible;\r\n }\r\n public set visible(v: boolean) {\r\n if (v != this._visible) {\r\n this._visible = v;\r\n v ? this._getHostElement().classList.remove('ax-hide') : this._getHostElement().classList.add('ax-hide');\r\n this.visibleChange.emit(v);\r\n }\r\n }\r\n\r\n @Input()\r\n type: string = 'spinner';\r\n\r\n @Input()\r\n text: string;\r\n\r\n onInit() {\r\n const loading = AXConfig.get(`layout.loading.${this.type}`);\r\n this._selectedPortal = new ComponentPortal(loading);\r\n this._cdr.markForCheck();\r\n }\r\n\r\n _handleAttched(ref: CdkPortalOutletAttachedRef) {\r\n ref = ref as ComponentRef<any>;\r\n if (ref.instance) {\r\n ref.instance.text = this.text;\r\n }\r\n }\r\n}\r\n","import { Component, ViewEncapsulation, ChangeDetectionStrategy, ElementRef, ChangeDetectorRef, Input, ContentChild, TemplateRef, HostListener, ViewChild } from '@angular/core';\r\nimport { AXBaseSelectionValueMixin } from '../base';\r\n\r\n@Component({\r\n selector: 'ax-datalist',\r\n templateUrl: './datalist.component.html',\r\n inputs: ['disabled', 'readonly', 'tabIndex', 'size', 'value', 'items', 'pageSize'],\r\n outputs: ['valueChange', 'onValueChanged', 'onBlur', 'onFocus'],\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n encapsulation: ViewEncapsulation.None,\r\n host: { class: 'ax-list ax-list-container' }\r\n})\r\nexport class AXDataListComponent extends AXBaseSelectionValueMixin {\r\n\r\n constructor(elementRef: ElementRef, cdr: ChangeDetectorRef) {\r\n super(elementRef, cdr);\r\n }\r\n\r\n @ViewChild('container')\r\n _container: ElementRef<HTMLDivElement>\r\n\r\n @ContentChild('itemTemplate', { static: true })\r\n _contentItemTemplate: TemplateRef<any>;\r\n\r\n private _itemTemplate: TemplateRef<any>;\r\n @Input()\r\n public get itemTemplate(): TemplateRef<any> {\r\n return this._itemTemplate ? this._itemTemplate : this._contentItemTemplate;\r\n }\r\n public set itemTemplate(v: TemplateRef<any>) {\r\n this._itemTemplate = v;\r\n }\r\n\r\n @ContentChild('emptyTemplate', { static: true })\r\n _contentEmptyTemplate: TemplateRef<any>;\r\n\r\n private _emptyTemplate: TemplateRef<any>;\r\n @Input()\r\n public get emptyTemplate(): TemplateRef<any> {\r\n return this._emptyTemplate ? this._emptyTemplate : this._contentEmptyTemplate;\r\n }\r\n public set emptyTemplate(v: TemplateRef<any>) {\r\n this._emptyTemplate = v;\r\n }\r\n\r\n @ContentChild('loadingTemplate', { static: true })\r\n _contentloadingTemplate: TemplateRef<any>;\r\n\r\n private _loadingTemplate: TemplateRef<any>;\r\n @Input()\r\n public get loadingTemplate(): TemplateRef<any> {\r\n return this._loadingTemplate ? this._loadingTemplate : this._contentloadingTemplate;\r\n }\r\n public set loadingTemplate(v: TemplateRef<any>) {\r\n this._loadingTemplate = v;\r\n }\r\n\r\n\r\n _handleOnItemClick(e: MouseEvent, item: any) {\r\n this.selectItems(item);\r\n }\r\n\r\n _handleListScroll(e: Event) {\r\n const list = e.target as HTMLDivElement;\r\n if ((list.scrollTop < list.scrollHeight - list.clientHeight)) {\r\n return;\r\n }\r\n this._fetchData();\r\n }\r\n\r\n\r\n private _checkForLoadData() {\r\n const list = this._container.nativeElement;\r\n if (this.loadedCount < this.totalCount && list.clientHeight < list.parentElement.clientHeight) {\r\n this._fetchData();\r\n }\r\n }\r\n\r\n _onDataLoaded() {\r\n setTimeout(() => {\r\n this._checkForLoadData();\r\n }, 100);\r\n\r\n }\r\n\r\n}\r\n","<div class=\"ax-list-items-container ax-default ax-vertical\" (scroll)=\"_handleListScroll($event)\" #container>\r\n <ng-container *ngFor=\"let item of displayItems;trackBy : _trackByFunction\">\r\n <ng-container *ngIf=\"itemTemplate; else elseTemplate\">\r\n <div class=\"ax-list-item\" (click)=\"_handleOnItemClick($event,item)\">\r\n <ng-container *ngTemplateOutlet=\"itemTemplate; context: { $implicit: item,direction:direction}\">\r\n </ng-container>\r\n </div>\r\n </ng-container>\r\n <ng-template #elseTemplate>\r\n <div class=\"ax-list-item\" (click)=\"_handleOnItemClick($event,item)\">\r\n {{ item ? _getItemDisplayTextTemplte(item) : 'Loading...'}}\r\n </div>\r\n </ng-template>\r\n </ng-container>\r\n <ng-container *ngIf=\"(displayItems==null || displayItems.length==0) && !isLoading\">\r\n <ng-container *ngIf=\"emptyTemplate; else elseEmptyTemplate\">\r\n <ng-container *ngTemplateOutlet=\"elseEmptyTemplate\">\r\n </ng-container>\r\n </ng-container>\r\n <ng-template #elseTemplate>\r\n Empty!\r\n </ng-template>\r\n </ng-container>\r\n <ng-container *ngIf=\"isLoading\">\r\n <ng-container *ngIf=\"loadingTemplate; else elseLoadingTemplate\">\r\n <ng-container *ngTemplateOutlet=\"loadingTemplate\">\r\n </ng-container>\r\n </ng-container>\r\n <ng-template #elseLoadingTemplate>\r\n <div class=\"ax-list-loading-container\">\r\n <div class=\"ax-flex ax-items-center ax-justify-center ax-p-4\">\r\n <ax-loading text=\"{{ 'layout.loading.text' | trans }}\"></ax-loading>\r\n </div>\r\n </div>\r\n </ng-template>\r\n </ng-container>\r\n</div>","import { Component, Input } from '@angular/core';\r\n\r\n@Component({\r\n selector: 'ax-loading-spinner',\r\n template: `\r\n <svg version=\"1.1\" width=\"24\" height=\"24\" class=\"ax-fill-current\" xmlns=\"http://www.w3.org/2000/svg\" xmlns:xlink=\"http://www.w3.org/1999/xlink\"\r\n x=\"0px\" y=\"0px\" viewBox=\"0 0 50 50\" xml:space=\"preserve\">\r\n <path fill=\"current\"\r\n d=\"M25.251,6.461c-10.318,0-18.683,8.365-18.683,18.683h4.068c0-8.071,6.543-14.615,14.615-14.615V6.461z\">\r\n <animateTransform attributeType=\"xml\" attributeName=\"transform\" type=\"rotate\" from=\"0 25 25\" to=\"360 25 25\"\r\n dur=\"0.6s\" repeatCount=\"indefinite\" />\r\n </path>\r\n </svg>\r\n <span class=\"ax-ms-3\" *ngIf=\"text\"> {{text}} </span>\r\n `\r\n})\r\nexport class AXLoadingSpinnerComponent {\r\n\r\n text: string;\r\n}","import {\r\n ChangeDetectorRef,\r\n ComponentFactoryResolver,\r\n Directive,\r\n ElementRef,\r\n Input,\r\n OnChanges,\r\n Renderer2,\r\n SimpleChanges, ViewContainerRef\r\n } from '@angular/core';\r\nimport { AXLoadingComponent } from './loading.component';\r\n \r\n \r\n const OVERLAY_CLASS = 'loading-overlay';\r\n \r\n // This directive places an overlay with a loading spinner over its host element\r\n // if isLoading equals to true and hides the overlay when isLoading becomes false.\r\n @Directive({\r\n selector: '[axIsLoading]'\r\n })\r\n export class AXLoadingDirective implements OnChanges {\r\n @Input('axIsLoading')\r\n isLoading = false;\r\n \r\n protected overlayElement!: HTMLDivElement;\r\n protected spinnerElement!: HTMLDivElement;\r\n protected hostElement!: HTMLDivElement;\r\n \r\n constructor(\r\n protected readonly elementRef: ElementRef,\r\n protected readonly renderer: Renderer2,\r\n protected readonly changeDetectorRef: ChangeDetectorRef,\r\n protected readonly viewContainerRef: ViewContainerRef,\r\n protected readonly componentFactoryResolver: ComponentFactoryResolver,\r\n ) {\r\n this.hostElement = this.elementRef.nativeElement;\r\n this.hostElement.style.position = 'relative';\r\n }\r\n \r\n ngOnChanges(changes: SimpleChanges): void {\r\n if (!this.overlayElement || !this.spinnerElement) {\r\n this.init();\r\n }\r\n \r\n if (changes.isLoading) {\r\n const isLoadingValue = changes.isLoading.currentValue;\r\n \r\n if (isLoadingValue) {\r\n this.addLoadingIndicator();\r\n }\r\n else {\r\n this.removeLoadingIndicator();\r\n }\r\n \r\n this.changeDetectorRef.markForCheck();\r\n }\r\n }\r\n \r\n protected addLoadingIndicator(): void {\r\n this.renderer.appendChild(this.hostElement, this.overlayElement);\r\n this.renderer.appendChild(this.overlayElement, this.spinnerElement);\r\n }\r\n \r\n protected removeLoadingIndicator(): void {\r\n this.renderer.removeChild(this.overlayElement, this.spinnerElement);\r\n this.renderer.removeChild(this.hostElement, this.overlayElement);\r\n this.viewContainerRef.clear();\r\n }\r\n \r\n protected init(): void {\r\n this.initOverlayElement();\r\n this.initSpinnerComponent();\r\n }\r\n \r\n protected initSpinnerComponent(): void {\r\n const spinnerComponentFactory = this.componentFactoryResolver.resolveComponentFactory(AXLoadingComponent);\r\n const spinnerComponent = this.viewContainerRef.createComponent(spinnerComponentFactory);\r\n this.spinnerElement = spinnerComponent.location.nativeElement;\r\n }\r\n \r\n protected initOverlayElement(): void {\r\n this.overlayElement = this.renderer.createElement('div');\r\n this.renderer.addClass(this.overlayElement, OVERLAY_CLASS);\r\n }\r\n }\r\n ","import { NgModule } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\nimport { AXLoadingComponent } from './loading.component';\r\nimport { AXLoadingDirective } from './loading.directive';\r\nimport { OverlayModule } from '@angular/cdk/overlay';\r\nimport { PortalModule } from '@angular/cdk/portal';\r\nimport { AXLoadingSpinnerComponent } from './loading-spinner.component';\r\nimport { AXConfig } from '@acorex/core';\r\n\r\nconst COMPONENT = [AXLoadingComponent, AXLoadingDirective, AXLoadingSpinnerComponent];\r\nconst MODULES = [CommonModule, OverlayModule, PortalModule];\r\n\r\n@NgModule({\r\n declarations: [...COMPONENT],\r\n imports: [...MODULES],\r\n exports: [...COMPONENT],\r\n providers: [],\r\n})\r\nexport class AXLoadingModule {\r\n\r\n\r\n constructor() {\r\n AXConfig.set({\r\n layout: {\r\n loading: {\r\n spinner: AXLoadingSpinnerComponent,\r\n }\r\n }\r\n })\r\n\r\n }\r\n}\r\n","import {\r\n Overlay,\r\n OverlayKeyboardDispatcher,\r\n OverlayPositionBuilder,\r\n ScrollStrategyOptions,\r\n OverlayContainer,\r\n OverlayRef,\r\n OverlayConfig,\r\n OverlayOutsideClickDispatcher\r\n} from '@angular/cdk/overlay';\r\nimport {\r\n ComponentFactoryResolver,\r\n Inject,\r\n Injector,\r\n NgZone,\r\n Renderer2,\r\n RendererFactory2,\r\n Injectable,\r\n} from '@angular/core';\r\n\r\nimport { Directionality } from '@angular/cdk/bidi';\r\nimport { DOCUMENT, Location } from '@angular/common';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class DynamicOverlayContainer extends OverlayContainer {\r\n public setContainerElement(containerElement: HTMLElement): void {\r\n this._containerElement = containerElement;\r\n }\r\n}\r\n\r\n\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class DynamicOverlay extends Overlay {\r\n private readonly _dynamicOverlayContainer: DynamicOverlayContainer;\r\n private renderer: Renderer2;\r\n\r\n constructor(\r\n scrollStrategies: ScrollStrategyOptions,\r\n _overlayContainer: DynamicOverlayContainer,\r\n _componentFactoryResolver: ComponentFactoryResolver,\r\n _positionBuilder: OverlayPositionBuilder,\r\n _keyboardDispatcher: OverlayKeyboardDispatcher,\r\n _injector: Injector,\r\n _ngZone: NgZone,\r\n @Inject(DOCUMENT) _document: any,\r\n _directionality: Directionality,\r\n rendererFactory: RendererFactory2,\r\n _location: Location,\r\n _outsideClickDispatcher: OverlayOutsideClickDispatcher,\r\n ) {\r\n super(\r\n scrollStrategies,\r\n _overlayContainer,\r\n _componentFactoryResolver,\r\n _positionBuilder,\r\n _keyboardDispatcher,\r\n _injector,\r\n _ngZone,\r\n _document,\r\n _directionality,\r\n _location,\r\n _outsideClickDispatcher,\r\n );\r\n this.renderer = rendererFactory.createRenderer(null, null);\r\n\r\n this._dynamicOverlayContainer = _overlayContainer;\r\n }\r\n\r\n private setContainerElement(containerElement: HTMLElement): void {\r\n this.renderer.setStyle(containerElement, 'transform', 'translateZ(0)');\r\n this._dynamicOverlayContainer.setContainerElement(containerElement);\r\n }\r\n\r\n public createOn(containerElement: HTMLElement, config?: OverlayConfig): OverlayRef {\r\n this.setContainerElement(containerElement);\r\n return super.create(config);\r\n }\r\n}","import { Injectable, ApplicationRef, ViewContainerRef, TemplateRef, EventEmitter } from '@angular/core';\r\nimport { Overlay, PositionStrategy, ScrollStrategy } from '@angular/cdk/overlay';\r\nimport { TemplatePortal, Portal, ComponentPortal } from '@angular/cdk/portal';\r\nimport { AXConnectedPosition } from '.';\r\nimport { merge } from 'rxjs';\r\nimport { DynamicOverlay } from './custom-cdk-overlay.service';\r\n\r\nexport interface AXOverlayViewRef {\r\n instance: any;\r\n dispose: () => void;\r\n isOpen: () => boolean;\r\n}\r\n\r\nexport interface AXOverlayConfigs {\r\n position?: AXConnectedPosition | AXConnectedPosition[];\r\n hasBackdrop?: boolean;\r\n transparentBackdrop?: boolean;\r\n closeOnClickOutside?: boolean;\r\n targetElement?: HTMLElement;\r\n containerElement?: HTMLElement;\r\n onBackdropClick?: () => void;\r\n panelClass?: string[] | string;\r\n backdropClass?: string[] | string;\r\n scroll?: 'auto' | 'block' | 'close';\r\n}\r\n\r\n@Injectable({ providedIn: 'root' })\r\nexport class AXOverlayService {\r\n constructor(\r\n private overlayService: DynamicOverlay,\r\n private overlayService2: Overlay,\r\n private appRef: ApplicationRef) {\r\n\r\n }\r\n\r\n show(content: any, context?: any, configs?: AXOverlayConfigs): AXOverlayViewRef {\r\n configs = Object.assign({\r\n hasBackdrop: true,\r\n transparentBackdrop: true,\r\n closeOnClickOutside: true\r\n }, configs || {});\r\n // get root viewref\r\n const viewRef: ViewContainerRef = this.appRef.components[0].instance.viewRef;\r\n\r\n let portal: Portal<any>;\r\n // get component by route\r\n if (typeof content === 'string') {\r\n // TODO\r\n }\r\n // create portal from component\r\n else if (content instanceof TemplateRef) {\r\n portal = new TemplatePortal(content, viewRef, context);\r\n }\r\n else if (typeof content === 'function') {\r\n portal = new ComponentPortal(content, viewRef);\r\n }\r\n let positionStrategy: PositionStrategy;\r\n if (configs.position && configs.targetElement) {\r\n positionStrategy = this.overlayService.position()\r\n .flexibleConnectedTo(configs.targetElement)\r\n .withPositions(\r\n Array.isArray(configs.position) ? configs.position : [configs.position]\r\n )\r\n .withPush(true);\r\n }\r\n else {\r\n positionStrategy = this.overlayService.position().global().centerHorizontally().centerVertically();\r\n }\r\n let scrollStrategy: ScrollStrategy = this.overlayService.scrollStrategies.reposition({ autoClose: true });\r\n if (configs.scroll === 'block') {\r\n scrollStrategy = this.overlayService.scrollStrategies.block();\r\n }\r\n if (configs.scroll === 'close') {\r\n scrollStrategy = this.overlayService.scrollStrategies.close();\r\n }\r\n\r\n const config = {\r\n positionStrategy,\r\n scrollStrategy,\r\n hasBackdrop: configs.hasBackdrop,\r\n disposeOnNavigation: true,\r\n backdropClass: configs.backdropClass ? configs.backdropClass : (configs.transparentBackdrop ? 'cdk-overlay-transparent-backdrop' : undefined),\r\n panelClass: configs.panelClass ? configs.panelClass : ['ax-animate-animated', 'ax-animate-fadeIn','ax-animate-faster']\r\n };\r\n // joon nanat dorost sho\r\n let overlayRef = configs.containerElement ? this.overlayService.createOn(configs.containerElement, config) : this.overlayService2.create(config);\r\n\r\n const host = overlayRef.attach(portal);\r\n if (host.instance) {\r\n Object.assign(host.instance, context);\r\n setTimeout(() => {\r\n host.changeDetectorRef.detectChanges();\r\n }, 0);\r\n }\r\n if (configs.closeOnClickOutside) {\r\n merge(\r\n overlayRef.backdropClick(),\r\n overlayRef.detachments(),\r\n ).subscribe(() => {\r\n overlayRef.dispose();\r\n overlayRef = undefined;\r\n if (configs.onBackdropClick) {\r\n configs.onBackdropClick();\r\n }\r\n });\r\n\r\n }\r\n return {\r\n instance: host.instance,\r\n dispose: overlayRef.dispose.bind(overlayRef),\r\n isOpen: () => {\r\n return overlayRef.hasAttached();\r\n }\r\n };\r\n }\r\n\r\n}","import { Injectable, NgZone } from '@angular/core';\r\nimport { asyncScheduler, BehaviorSubject, Observable } from 'rxjs';\r\nimport { finalize, observeOn } from 'rxjs/operators';\r\nimport { AXOverlayService, AXOverlayViewRef } from '../base/overlay.service';\r\nimport { AXLoadingComponent } from './loading.component';\r\n\r\ntype LoadingContext = object;\r\ntype LoaderId = string | number; // expected enum values\r\nconst DEFAULT_LOADER_ID: LoaderId = '_DEFAULT';\r\n\r\n/**\r\n * Used for centrally setting/unsetting loading flags for components or services.\r\n * Should be connected to global HTTP interceptor which will unset\r\n * the loading flags in case an error happens using the clearLoadings() method.\r\n *\r\n * FAQ:\r\n * Q: How to change loading flag for a parent component?\r\n * A: Inject the parent component as a dependency to your constructor and\r\n * call loadingService.setLoading(parentComponent, STATE).\r\n * \r\n * Q: How to change loading flag for a child component?\r\n * A: Use a @ViewChild with component selector and pass the\r\n * reference of the child to setLoading method.\r\n *\r\n * Q: I need more loading indicators in my components. How to?\r\n * A: Assign a LoaderId to each indicator and then use them\r\n * with calls to methods of this service.\r\n */\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class AXLoadingService {\r\n // WeakMap will remove components from itself upon\r\n // their garbage collection by JS runtime.\r\n protected loadingStates = new WeakMap<LoadingContext, Map<LoaderId, boolean>>();\r\n // Both loading state maps are kept in-sync such that\r\n // they can be used by both sync and async methods.\r\n protected loadingStates$ = new WeakMap<LoadingContext, Map<LoaderId, BehaviorSubject<boolean>>>();\r\n\r\n constructor(protected zoneRef: NgZone, private overlayService: AXOverlayService) { }\r\n\r\n private _stack: { id: number, component: AXOverlayViewRef }[] = [];\r\n\r\n show(location?: Element): number {\r\n let host: Element;\r\n if (location) {\r\n host = location.closest('.ax-loading-host');\r\n }\r\n const containerElement = (host || location) as HTMLDivElement;\r\n const com = this.overlayService.show(AXLoadingComponent, {},\r\n {\r\n closeOnClickOutside: false,\r\n containerElement,\r\n hasBackdrop: true,\r\n backdropClass: ['ax-loading-overlay'],\r\n scroll: 'block'\r\n });\r\n com.instance.visible = true;\r\n const id = new Date().getTime();\r\n this._stack.push({ id, component: com });\r\n return id;\r\n }\r\n\r\n hide(id): void {\r\n const f = this._stack.find(c => c.id === id);\r\n if (f) {\r\n f.component.dispose();\r\n this._stack = this._stack.filter(c => c.id !== id);\r\n }\r\n }\r\n\r\n\r\n // Observable creation operator.\r\n // LoaderId can be used when there are multiple loading indicators associated to a single context.\r\n // Context can be any object, though in practice, components and services will be the most common contexts.\r\n // loaderId is a non-mandatory parameter - when not specified, a default loaderId is used.\r\n // Such a scenario is used when your context has contains only one loading indicator.\r\n doLoading<V>(source$: Observable<V>, context: LoadingContext, loaderId?: LoaderId): Observable<V> {\r\n this.startLoading(context, loaderId);\r\n\r\n return source$.pipe(\r\n observeOn(asyncScheduler),\r\n finalize(() => this.endLoading(context, loaderId)),\r\n );\r\n }\r\n\r\n // To be used in your html templates.\r\n // Returns a boolean indicating whether a given loader is active in a given context.\r\n // If loaderId is unspecified, the method will return a logical disjunction of all\r\n // loader states in the context.\r\n isLoading(context: LoadingContext, loaderId?: LoaderId): boolean {\r\n const loaderStates = this.loadingStates.get(context);\r\n\r\n if (!loaderStates) {\r\n return false;\r\n }\r\n else {\r\n if (loaderId !== undefined) {\r\n return loaderStates.get(this.getLoaderId(loaderId)) ?? false;\r\n }\r\n else {\r\n return [...loaderStates.values()].filter(state => state).length > 0;\r\n }\r\n }\r\n }\r\n\r\n // To be used in your html templates with async pipes.\r\n // Returns an Observable of booleans indicating whether a given loader is active in a given context.\r\n isLoading$(context: LoadingContext, loaderId?: LoaderId): Observable<boolean> {\r\n const coalescedLoaderId = this.getLoaderId(loaderId);\r\n\r\n if (!this.hasLoadingStates(context, coalescedLoaderId)) {\r\n this.setLoadingState(context, false, loaderId);\r\n }\r\n\r\n return this.loadingStates$.get(context).get(coalescedLoaderId);\r\n }\r\n\r\n // The startLoading and endLoading methods are intended to be used when handling\r\n // complex scenarios where a need for extended usage flexibility is desired.\r\n startLoading(context: LoadingContext, loaderId?: LoaderId): void {\r\n this.setLoadingState(context, true, this.getLoaderId(loaderId));\r\n }\r\n\r\n endLoading(context: LoadingContext, loaderId?: LoaderId): void {\r\n this.setLoadingState(context, false, this.getLoaderId(loaderId));\r\n }\r\n\r\n // To be called by middleware code (HTTP interceptors/routing listeners, etc.).\r\n clearLoadings(): void {\r\n this.loadingStates = new WeakMap<LoadingContext, Map<LoaderId, boolean>>();\r\n this.loadingStates$ = new WeakMap<LoadingContext, Map<LoaderId, BehaviorSubject<boolean>>>();\r\n }\r\n\r\n protected setLoadingState(context: LoadingContext, state: boolean, loaderId: LoaderId): void {\r\n if (!this.hasLoadingStates(context, loaderId)) {\r\n if (this.hasContextLoadingState(context)) {\r\n this.loadingStates.get(context).set(loaderId, state);\r\n this.loadingStates$.get(context).set(loaderId, new BehaviorSubject<boolean>(state));\r\n }\r\n else {\r\n this.loadingStates.set(context, new Map<LoaderId, boolean>([\r\n [loaderId, state]\r\n ]));\r\n this.loadingStates$.set(context, new Map<LoaderId, BehaviorSubject<boolean>>([\r\n [loaderId, new BehaviorSubject<boolean>(state)]\r\n ]));\r\n }\r\n }\r\n else {\r\n // @ts-ignore - loadingStates[context] is surely defined in this branch\r\n this.loadingStates.get(context).set(loaderId, state);\r\n this.loadingStates$.get(context).get(loaderId).next(state);\r\n }\r\n }\r\n\r\n protected hasLoadingStates(context: LoadingContext, loaderId: LoaderId) {\r\n return this.hasContextLoadingState(context) && this.hasLoaderLoadingState(context, loaderId);\r\n }\r\n\r\n protected hasContextLoadingState(context: LoadingContext) {\r\n return this.loadingStates.has(context) && this.loadingStates$.has(context);\r\n }\r\n\r\n protected hasLoaderLoadingState(context: LoadingContext, loaderId: LoaderId) {\r\n return this.loadingStates.get(context).has(loaderId) && this.loadingStates$.get(context).has(loaderId);\r\n }\r\n\r\n protected getLoaderId(loaderId?: LoaderId): LoaderId {\r\n return loaderId ?? DEFAULT_LOADER_ID;\r\n }\r\n}\r\n","import { NgModule } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\nimport { AXDataListComponent } from './datalist.component';\r\nimport { AXButtonModule } from '../button';\r\nimport { AXLoadingModule } from '../loading';\r\nimport { AXTranslationModule } from '@acorex/core';\r\n\r\n\r\n\r\nconst COMPONENT = [AXDataListComponent];\r\nconst MODULES = [CommonModule, AXButtonModule, AXLoadingModule, AXTranslationModule];\r\n\r\n@NgModule({\r\n declarations: [...COMPONENT],\r\n imports: [...MODULES],\r\n exports: [...COMPONENT],\r\n providers: [],\r\n})\r\nexport class AXDataListModule { }\r\n","import { Component, Input, NgZone, ChangeDetectorRef, ChangeDetectionStrategy, ViewEncapsulation, ViewChild, TemplateRef, ElementRef, ViewContainerRef, HostListener, EventEmitter, Output } from '@angular/core';\r\nimport { AXBaseComponent, AXConnectedPosition, AXEvent, AXInteractiveComponenetMixin } from '../base';\r\nimport { Overlay, OverlayRef } from '@angular/cdk/overlay';\r\nimport { AXDrawingUtil, AXPlatform, AXPoint } from '@acorex/core';\r\nimport { TemplatePortal } from '@angular/cdk/portal';\r\nimport { fromEvent, Subscription } from 'rxjs';\r\nimport _ from 'lodash';\r\nimport { throttleTime } from 'rxjs/operators';\r\n\r\n\r\n\r\n\r\n\r\n@Component({\r\n selector: 'ax-popover',\r\n templateUrl: './popover.component.html',\r\n encapsulation: ViewEncapsulation.None,\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n})\r\nexport class AXPopoverComponent extends AXInteractiveComponenetMixin {\r\n\r\n constructor(\r\n private _elementRef: ElementRef,\r\n public _cdr: ChangeDetectorRef,\r\n private _zone: NgZone,\r\n private _overlay: Overlay,\r\n private _platform: AXPlatform,\r\n private _viewContainerRef: ViewContainerRef,\r\n\r\n ) {\r\n super(_elementRef, _cdr);\r\n }\r\n //\r\n private _target: HTMLElement;\r\n @Input()\r\n public get target(): HTMLElement | ElementRef | AXBaseComponent {\r\n return this._target;\r\n }\r\n public set target(v: HTMLElement | ElementRef | AXBaseComponent) {\r\n if (v instanceof HTMLElement)\r\n this._target = v;\r\n else if (v instanceof ElementRef)\r\n this._target = v.nativeElement;\r\n else if (v instanceof AXBaseComponent)\r\n this._target = v._getInnerElement();\r\n }\r\n\r\n\r\n @Input()\r\n position: AXConnectedPosition | AXConnectedPosition[] = [\r\n {\r\n originX: 'start',\r\n originY: 'bottom',\r\n overlayX: 'start',\r\n overlayY: 'top',\r\n },\r\n {\r\n originX: 'start',\r\n originY: 'top',\r\n overlayX: 'start',\r\n overlayY: 'bottom'\r\n }\r\n ];\r\n //\r\n @ViewChild('baseTemplate')\r\n _baseTemplate: TemplateRef<any>;\r\n _overlayRef: OverlayRef;\r\n _templatePortal: TemplatePortal;\r\n\r\n _subs: Subscription[] = [];\r\n //\r\n @Input()\r\n openTrigger: 'manual' | 'click' | 'mouseover' | 'toggle' = 'toggle';\r\n //\r\n @Input()\r\n closeTrigger: 'manual' | 'clickout' | 'mouseout' = 'clickout';\r\n //\r\n @Input()\r\n hasBackdrop: boolean = false;\r\n\r\n @Input()\r\n backdropClass: string;\r\n //\r\n private _mousePos: AXPoint = { x: 0, y: 0 };\r\n private _isScrollAttached: boolean = false;\r\n //\r\n @Output()\r\n onOpened: EventEmitter<AXEvent> = new EventEmitter<AXEvent>();\r\n @Output()\r\n onClosed: EventEmitter<AXEvent> = new EventEmitter<AXEvent>();\r\n\r\n _emitOnOpenedEvent() {\r\n this.onOpened.emit({\r\n component: this,\r\n htmlElement: this._getHostElement()\r\n });\r\n }\r\n\r\n _emitOnClosedEvent() {\r\n this.onClosed.emit({\r\n component: this,\r\n htmlElement: this._getHostElement()\r\n });\r\n }\r\n //\r\n onViewInit() {\r\n if (this._target) {\r\n if (this.openTrigger === 'mouseover') {\r\n const mouseEnter$ = fromEvent<MouseEvent>(this._target, 'mouseover');\r\n this._addSub(mouseEnter$.subscribe(e => {\r\n const point = { x: e.clientX, y: e.clientY };\r\n if (AXDrawingUtil.isInElementBound(point, this._target))\r\n this.open();\r\n }));\r\n }\r\n if (this.closeTrigger === 'mouseout') {\r\n const mouseMove$ = fromEvent<MouseEvent>(document, 'mousemove');\r\n this._addSub(mouseMove$.pipe(throttleTime(50)).subscribe(e => {\r\n this._mousePos.x = e.clientX;\r\n this._mousePos.y = e.clientY;\r\n if (this.isOpen) {\r\n setTimeout(() => {\r\n if (!_.some([this._target, this._overlayRef.overlayElement], el => _.includes(document.elementsFromPoint(this._mousePos.x, this._mousePos.y), el)))\r\n this.close();\r\n }, 100)\r\n }\r\n }));\r\n\r\n }\r\n //\r\n if (this.openTrigger === 'click' || this.openTrigger === 'toggle') {\r\n const click$ = fromEvent<MouseEvent>(this._target, 'click');\r\n this._addSub(click$.subscribe(e => {\r\n this.openTrigger == 'toggle' ? this.toggle() : this.open();\r\n }));\r\n }\r\n }\r\n }\r\n //\r\n onDestroy(): void {\r\n this._overlayRef?.detach();\r\n this._overlayRef?.dispose();\r\n this._subs.forEach(s => {\r\n s?.unsubscribe();\r\n });\r\n }\r\n\r\n @HostListener('keydown', ['$event'])\r\n _handleKeydownHandler(e: KeyboardEvent) {\r\n // if (e.key === 'Enter' && e.type === 'keydown') {\r\n // this.toggle();\r\n // }\r\n if (e.key === 'Escape') {\r\n if (this.isOpen) {\r\n this.close();\r\n e.stopPropagation();\r\n }\r\n }\r\n }\r\n \r\n toggle() {\r\n this.isOpen ? this.close() : this.open();\r\n }\r\n //\r\n close() {\r\n if (!this.isOpen) {\r\n return;\r\n }\r\n this._overlayRef?.detach();\r\n this._emitOnClosedEvent();\r\n }\r\n //\r\n open() {\r\n if (this.isOpen) {\r\n return;\r\n }\r\n this._ensureOverlayCreated();\r\n this._overlayRef.attach(this._templatePortal);\r\n this._emitOnOpenedEvent();\r\n }\r\n\r\n private _ensureOverlayCreated() {\r\n const targetRef = this._target;\r\n if (!targetRef)\r\n return;\r\n\r\n if (!this._overlayRef) {\r\n if (this._platform.is('Mobile')) {\r\n this._overlayRef = this._overlay.create({\r\n positionStrategy: this._overlay.position().global().centerHorizontally().centerVertically(),\r\n disposeOnNavigation: true,\r\n panelClass: ['ax-overflow-hidden','ax-animate-fadeIn', 'ax-animate-faster'],\r\n hasBackdrop: true\r\n });\r\n }\r\n else {\r\n this._overlayRef = this._overlay.create({\r\n positionStrategy: this._overlay.position()\r\n .flexibleConnectedTo(targetRef)\r\n .withPositions(Array.isArray(this.position) ? this.position : [this.position])\r\n .withPush(false),\r\n disposeOnNavigation: true,\r\n panelClass: ['ax-overflow-hidden','ax-animate-fadeIn', 'ax-animate-faster'],\r\n maxHeight: 'unset',\r\n hasBackdrop: this.hasBackdrop,\r\n backdropClass: [this.backdropClass || 'cdk-overlay-transparent-backdrop']\r\n });\r\n }\r\n\r\n if (this.closeTrigger == 'clickout') {\r\n this._addSub(this._overlayRef._outsidePointerEvents.subscribe(c => {\r\n const target = c.target as HTMLElement;\r\n const comElem = targetRef;\r\n if (!(comElem.contains(target))) {\r\n this.close();\r\n }\r\n }));\r\n }\r\n this._addSub(this._overlayRef.attachments().subscribe(() => {\r\n if (!this._isScrollAttached) {\r\n this._addSub(this._platform.scroll.subscribe(c => {\r\n if (!(c.nativeEvent.target as HTMLElement).closest('.ax-overlay-pane'))\r\n this.updatePosition();\r\n }));\r\n this._isScrollAttached = true;\r\n }\r\n }));\r\n }\r\n if (!this._templatePortal) {\r\n this._templatePortal = new TemplatePortal(this._baseTemplate, this._viewContainerRef);\r\n }\r\n }\r\n\r\n get isOpen(): boolean {\r\n return this._overlayRef ? this._overlayRef.hasAttached() : false;\r\n }\r\n\r\n private _addSub(sub: Subscription) {\r\n this._subs.push(sub);\r\n }\r\n\r\n\r\n updatePosition(): void {\r\n this._overlayRef?.updatePosition();\r\n this.focus();\r\n }\r\n\r\n}\r\n","<ng-template #baseTemplate>\r\n <ng-content></ng-content>\r\n</ng-template>","import { AXDateTime, AXPlatform, AXStringUtil, AXTranslator } from '@acorex/core';\r\nimport {\r\n Component,\r\n ViewEncapsulation,\r\n ChangeDetectionStrategy,\r\n ElementRef,\r\n ChangeDetectorRef,\r\n ViewChild,\r\n Input,\r\n EventEmitter,\r\n Output,\r\n} from '@angular/core';\r\nimport { AXBaseComponent, AXClickEvent } from '../base';\r\nimport { DROPDOWN_INPUTS, DROPDOWN_OUTPUT, _DropdownComponenetMixin } from '../base/mixin/dropdown-mixin.class';\r\nimport { INTERACTIVE_INPUTS, INTERACTIVE_OUTPUT, _InteractiveComponenetMixin } from '../base/mixin/interactive-mixin.class';\r\nimport { _SizableComponenetMixin } from '../base/mixin/sizable-mixin.class';\r\nimport { TEXTBOX_INPUTS, TEXTBOX_OUTPUT, _TextboxComponenetMixin } from '../base/mixin/textbox-mixin.class';\r\nimport { VALUE_INPUTS, VALUE_OUTPUT, _ValueComponenetMixin } from '../base/mixin/value-mixin.class';\r\nimport { AXCalendarComponent } from '../calendar';\r\nimport { AXCalendarBaseComponent, CALENDAR_INPUTS, CALENDAR_OUTPUTS } from '../calendar/calendar.class';\r\nimport { AXPopoverComponent } from '../popover/popover.component';\r\n\r\n\r\nexport const AXBaseDatePickerMixin =\r\n _InteractiveComponenetMixin(\r\n _DropdownComponenetMixin(\r\n _ValueComponenetMixin(\r\n AXCalendarBaseComponent\r\n )\r\n )\r\n );\r\n\r\n\r\n@Component({\r\n selector: 'ax-date-picker',\r\n templateUrl: './datepicker.component.html',\r\n inputs: [...DROPDOWN_INPUTS, ...INTERACTIVE_INPUTS, ...VALUE_INPUTS, ...TEXTBOX_INPUTS, ...CALENDAR_INPUTS],\r\n outputs: [...DROPDOWN_OUTPUT, ...INTERACTIVE_OUTPUT, ...VALUE_OUTPUT, ...TEXTBOX_OUTPUT, ...CALENDAR_OUTPUTS],\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n encapsulation: ViewEncapsulation.None,\r\n host: { class: 'ax-editor-container ax-drop-down' }\r\n})\r\nexport class AXDatePickerComponent extends AXBaseDatePickerMixin {\r\n\r\n @ViewChild(AXPopoverComponent, { static: true })\r\n popover: AXPopoverComponent;\r\n\r\n @ViewChild(AXCalendarComponent, { static: true })\r\n _calendar: AXCalendarComponent;\r\n\r\n _target: HTMLDivElement;\r\n displayText: string;\r\n _calendarValue: Date;\r\n _cursorPos: number = 0;\r\n _isMobile: boolean = false;\r\n _popoverTitle: string;\r\n _popoverWidth: number;\r\n\r\n\r\n @Output()\r\n formatChange = new EventEmitter<string>();\r\n \r\n\r\n private _format: string = 'YYYY-MM-dd';\r\n @Input()\r\n public get format(): string {\r\n return this._format;\r\n }\r\n public set format(v: string) {\r\n this._setOption({\r\n name: 'format',\r\n value: v\r\n });\r\n }\r\n\r\n\r\n @Input()\r\n placeholder:string;\r\n\r\n constructor(\r\n _elementRef: ElementRef,\r\n _cdr: ChangeDetectorRef,\r\n private _platform: AXPlatform,\r\n ) {\r\n super(_elementRef, _cdr);\r\n this._target = this._getHostElement();\r\n this._isMobile = this._platform.is('Mobile');\r\n }\r\n\r\n\r\n onViewInit(): void {\r\n super.onViewInit();\r\n this._popoverTitle = this.placeholder || AXTranslator.get('datepicker.popover.title')\r\n this.popover.onOpened.subscribe(() => {\r\n this._calendar.focus();\r\n });\r\n }\r\n\r\n\r\n\r\n\r\n _handleArrowClickEvent(e: AXClickEvent) {\r\n this.toggle();\r\n }\r\n\r\n _onValueChanged(oldValue?: any, newValue?: any) {\r\n this.displayText = newValue ? AXDateTime.convert(newValue,this.type).format(this._format) : null;\r\n this.close();\r\n }\r\n\r\n\r\n _handleOnKeydownEvent(e: KeyboardEvent) {\r\n const ignore = () => {\r\n e.preventDefault();\r\n e.stopPropagation();\r\n };\r\n\r\n const nums: string[] = Array(10).fill(0).map((v, i) => i.toString());\r\n const chars: string[] = ['Backspace', 'ArrowDown', 'ArrowUp', 'ArrowRight', 'ArrowLeft', 'Tab', 'Enter'];\r\n const input = (e.target as HTMLInputElement);\r\n const key = (e.key);\r\n const valStr = input.value;\r\n const sStart = input.selectionStart;\r\n const sEnd = input.selectionEnd;\r\n const dateVal = new AXDateTime(this.value);\r\n //\r\n const re = /[a-zA-Z0-9]+/ig;\r\n const parts = Array.from(this.format.matchAll(re));\r\n const word = valStr.substring(sStart, sEnd);\r\n const part = parts.find(c => c.index >= sStart);\r\n //\r\n //\r\n if ([...nums].includes(key)) {\r\n if (part) {\r\n switch (part[0]) {\r\n case 'dd':\r\n case 'DD':\r\n const newVal = Math.max(1, Math.min(31, Number(word + e.key)));\r\n this.value = dateVal.set('day', newVal).date;\r\n break;\r\n case 'mm':\r\n break;\r\n case 'yy':\r\n case 'YYYY':\r\n break;\r\n }\r\n setTimeout(() => {\r\n this._highlightPart(input, sStart);\r\n }, Math.max(10, this.debounceTime));\r\n ignore();\r\n }\r\n }\r\n else if (e.key === 'ArrowRight' || e.key === 'ArrowLeft') {\r\n const next = Array.from(valStr.substr(sEnd).matchAll(re));\r\n const prev = Array.from(valStr.substring(0, sStart).matchAll(re));\r\n ignore();\r\n this._highlightPart(input, (e.key === 'ArrowRight' ? (sEnd + (next[0]?.index || 0)) : (prev[prev.length - 1]?.index)));\r\n }\r\n else if (e.key === 'ArrowUp' || e.key === 'ArrowDown') {\r\n if (e.ctrlKey && e.key === 'ArrowDown') {\r\n this.open();\r\n }\r\n else {\r\n const sign = e.key === 'ArrowUp' ? +1 : -1;\r\n if (part) {\r\n switch (part[0]) {\r\n case 'dd':\r\n case 'DD':\r\n this.value = dateVal.add('day', sign).date;\r\n break;\r\n case 'mm':\r\n case 'MMM':\r\n case 'MMMM':\r\n this.value = dateVal.add('month', sign).date;\r\n break;\r\n case 'yy':\r\n case 'YYYY':\r\n this.value = dateVal.add('year', sign).date;\r\n break;\r\n }\r\n setTimeout(() => {\r\n this._highlightPart(input, sStart);\r\n }, Math.max(10, this.debounceTime));\r\n }\r\n }\r\n ignore();\r\n }\r\n else if (e.key == 'Backspace') {\r\n if (this.allowNull) {\r\n this.value = null;\r\n }\r\n ignore();\r\n }\r\n // else if (nums.includes(key)) {\r\n\r\n // }\r\n // super._emitOnKeydownEvent(e);\r\n }\r\n\r\n\r\n\r\n _handleOnInputClickEvent(e: MouseEvent): void {\r\n const input = (e.target as HTMLInputElement);\r\n this._highlightPart(input);\r\n e.preventDefault();\r\n e.stopPropagation();\r\n }\r\n\r\n\r\n private _highlightPart(input: HTMLInputElement, pos?: number) {\r\n const { start, end } = AXStringUtil.getWordBoundsAtPosition(input.value, pos != null ? pos : input.selectionStart);\r\n input.setSelectionRange(start, end);\r\n }\r\n}\r\n","<ng-content select=\"ax-prefix\">\r\n</ng-content>\r\n<div class=\"ax-dropdown-content\">\r\n <input class=\"ax-input\" type=\"text\" [attr.placeholder]=\"placeholder\" [class.ax-state-disabled]=\"disabled\"\r\n [class.ax-state-readonly]=\"readonly\" [disabled]=\"disabled\" [readonly]=\"readonly\" [tabindex]=\"tabIndex\"\r\n [ngModel]=\"displayText\" (focus)=\"_emitOnFocusEvent($event)\" (mouseup)=\"_handleOnInputClickEvent($event)\"\r\n (blur)=\"_emitOnBlurEvent($event)\" (keydown)=\"_handleOnKeydownEvent($event)\">\r\n</div>\r\n<ax-button [disabled]=\"disabled\" [tabIndex]=\"-1\" color=\"light\" look=\"blank\" (onClick)=\"_handleArrowClickEvent($event)\">\r\n <ax-icon icon=\"ax-ic ax-ic-chevron ax-transform ax--rotate-90\"></ax-icon>\r\n</ax-button>\r\n<ng-content select=\"ax-suffix\">\r\n</ng-content>\r\n<ng-content select=\"ax-validation-rule\">\r\n</ng-content>\r\n<ax-popover [target]=\"_target\" [position]=\"position\" [openTrigger]=\"'manual'\" [closeTrigger]=\"'clickout'\">\r\n <div class=\"ax-overlay-pane\" >\r\n <div *ngIf=\"_isMobile\" class=\"ax-overlay-pane-header\">\r\n <span >{{placeholder || 'Choose a date'}}</span>\r\n <i class=\"ax-ic ax-ic-close \"\r\n (click)=\"close()\" tabindex=\"1\"></i>\r\n </div>\r\n <ax-calendar #calendar [disabled]=\"disabled\" [readonly]=\"readonly\" [(value)]=\"value\" [min]=\"min\" [min]=\"max\"\r\n [disabledDates]=\"disabledDates\" [holidayDates]=\"holidayDates\" [depth]=\"depth\" [type]=\"type\">\r\n </ax-calendar>\r\n </div>\r\n</ax-popover>","import { NgModule } from \"@angular/core\";\r\nimport { CommonModule } from \"@angular/common\";\r\nimport { AXPopoverComponent } from \"./popover.component\";\r\n\r\n@NgModule({\r\n declarations: [AXPopoverComponent],\r\n imports: [CommonModule],\r\n exports: [AXPopoverComponent],\r\n providers: []\r\n})\r\nexport class AXPopoverModule {}\r\n","import {\r\n ChangeDetectionStrategy,\r\n ChangeDetectorRef,\r\n Component,\r\n ContentChild,\r\n ElementRef,\r\n HostBinding,\r\n Input,\r\n OnInit,\r\n ViewChild,\r\n ViewEncapsulation,\r\n} from '@angular/core';\r\nimport { INTERACTIVE_INPUTS, INTERACTIVE_OUTPUT } from '../base/mixin/interactive-mixin.class';\r\nimport { AXBaseTextBoxMixin } from '../base/mixin/mixin.class';\r\nimport {\r\n TEXTBOX_INPUTS,\r\n TEXTBOX_OUTPUT,\r\n} from '../base/mixin/textbox-mixin.class';\r\nimport { VALUE_INPUTS, VALUE_OUTPUT } from '../base/mixin/value-mixin.class';\r\nimport { AXInputMaskComponent } from '../input-mask';\r\n\r\n/**\r\n * The Textbox is a component which detects user interaction and triggers a corresponding event\r\n *\r\n * @category Components\r\n */\r\n@Component({\r\n selector: 'ax-text-box',\r\n templateUrl: 'textbox.component.html',\r\n inputs: [ ...INTERACTIVE_INPUTS, ...VALUE_INPUTS, ...TEXTBOX_INPUTS],\r\n outputs: [ ...INTERACTIVE_OUTPUT, ...VALUE_OUTPUT, ...TEXTBOX_OUTPUT],\r\n encapsulation: ViewEncapsulation.None,\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n host: { class: 'ax-editor-container' }\r\n})\r\nexport class AXTextBoxComponent extends AXBaseTextBoxMixin {\r\n\r\n /**\r\n * @ignore\r\n */\r\n constructor(elementRef: ElementRef, cdr: ChangeDetectorRef) {\r\n super(elementRef, cdr);\r\n }\r\n}\r\n","<ng-content select=\"ax-prefix\">\r\n</ng-content>\r\n<input class=\"ax-input\" [attr.name]=\"name\" [attr.type]=\"type\" [attr.placeholder]=\"placeholder\" [attr.maxlength]=\"maxLength\"\r\n [class.ax-state-disabled]=\"disabled\" [class.ax-state-readonly]=\"readonly\" [disabled]=\"disabled\"\r\n [readonly]=\"readonly\" [tabindex]=\"tabIndex\" [(ngModel)]=\"value\" (focus)=\"_emitOnFocusEvent($event)\"\r\n (blur)=\"_emitOnBlurEvent($event)\" [attr.autocomplete]=\"autoComplete\">\r\n<ng-content select=\"ax-suffix\">\r\n</ng-content>\r\n<ng-content select=\"ax-validation-rule\">\r\n</ng-content>\r\n<ng-content select=\"ax-input-mask\">\r\n</ng-content>","import { CommonModule } from '@angular/common';\r\nimport { NgModule } from '@angular/core';\r\nimport { FormsModule } from '@angular/forms';\r\nimport { NgxMaskModule } from 'ngx-mask';\r\nimport { AXButtonModule } from '../button';\r\nimport { AXEditorDecoratorModule } from '../decorators';\r\nimport { AXIconModule } from '../icon';\r\nimport { AXTextBoxComponent } from './textbox.component';\r\n\r\n\r\n@NgModule({\r\n imports: [\r\n CommonModule,\r\n FormsModule,\r\n AXButtonModule,\r\n AXEditorDecoratorModule,\r\n AXIconModule,\r\n NgxMaskModule.forChild()\r\n ],\r\n exports: [AXTextBoxComponent],\r\n declarations: [AXTextBoxComponent],\r\n providers: [],\r\n})\r\nexport class AXTextBoxModule { }\r\n","import { NgModule } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\nimport { AXDatePickerComponent } from './datepicker.component';\r\nimport { AXCalendarModule } from '../calendar';\r\nimport { AXButtonModule } from '../button';\r\nimport { AXPopoverModule } from '../popover';\r\nimport { AXEditorDecoratorModule } from '../decorators';\r\nimport { AXIconModule } from '../icon';\r\nimport { AXDateTimeModule } from '@acorex/core';\r\nimport { AXTextBoxModule } from '../textbox';\r\nimport { FormsModule } from '@angular/forms';\r\n\r\nconst COMPONENT = [AXDatePickerComponent];\r\nconst MODULES = [\r\n CommonModule,\r\n AXCalendarModule,\r\n AXTextBoxModule,\r\n AXButtonModule,\r\n AXPopoverModule,\r\n AXEditorDecoratorModule,\r\n AXIconModule,\r\n AXDateTimeModule,\r\n FormsModule\r\n];\r\n\r\n@NgModule({\r\n declarations: [...COMPONENT],\r\n imports: [...MODULES],\r\n exports: [...COMPONENT],\r\n providers: [],\r\n})\r\nexport class AXDatepickerModule { }\r\n","import { Component, ViewEncapsulation, ChangeDetectionStrategy, ElementRef, ChangeDetectorRef } from '@angular/core';\r\nimport { AXBaseComponentMixin } from '../base';\r\nimport { AXButtonItem } from '../button';\r\nimport { AXDialogOptions } from './dialog.class';\r\n\r\n@Component({\r\n selector: 'ax-dialog',\r\n templateUrl: './dialog.component.html',\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n encapsulation: ViewEncapsulation.None\r\n})\r\nexport class AXDialogComponent extends AXBaseComponentMixin {\r\n\r\n constructor(\r\n elementRef: ElementRef,\r\n cdr: ChangeDetectorRef\r\n ) {\r\n super(elementRef, cdr);\r\n }\r\n\r\n options: AXDialogOptions;\r\n _icon: string;\r\n close: () => void;\r\n\r\n onInit() {\r\n switch (this.options.type) {\r\n case 'success':\r\n this._icon = 'ax-ic ax-ic-check';\r\n break;\r\n case 'danger':\r\n this._icon = 'ax-ic ax-ic-error-filled';\r\n break;\r\n case 'warning':\r\n this._icon = 'ax-ic ax-ic-warning-filled';\r\n break;\r\n default:\r\n this._icon = 'ax-ic ax-ic-info-filled';\r\n break;\r\n }\r\n }\r\n\r\n _handleButtonClick(button: AXButtonItem) {\r\n if (button.onClick) {\r\n button.onClick();\r\n }\r\n }\r\n\r\n}\r\n","<div class=\"ax-popup-wrapper\" aria-modal=\"true\" cdkTrapFocus>\r\n <div class=\"ax-dialog ax-{{options.type}}-default\" tabindex=\"0\" cdkDrag role=\"alert\" cdkDragHandle>\r\n <div class=\"ax-dialog-icon-side\">\r\n <i class=\"ax-dialog-icon {{_icon}}\"></i>\r\n </div>\r\n <div class=\"ax-dialog-content-side\">\r\n <div class=\"ax-dialog-title\">{{options.title}}</div>\r\n <div class=\"ax-dialog-content\">{{options.content}}</div>\r\n </div>\r\n <div class=\"ax-dialog-dismiss-icon\">\r\n <i class=\"ax-ic ax-ic-close\" *ngIf=\"options.dismissible\" (click)=\"close()\"></i>\r\n </div>\r\n <footer class=\"ax-dialog-footer\">\r\n <ng-container *ngFor=\"let button of options.buttons\">\r\n <ax-button [text]=\"button.text\" [submitBehavior]=\"button.submitBehavior\" [cancelBehavior]=\"button.cancelBehavior\" (onClick)=\"_handleButtonClick(button)\" [class]=\"button.cssClass\" [look]=\"button.look\" [color]=\"button.color\"></ax-button>\r\n <div class=\"ax-ml-2\"></div>\r\n </ng-container>\r\n </footer>\r\n </div>\r\n\r\n</div>","import { AXTranslator } from '@acorex/core';\r\nimport { Overlay, ScrollStrategyOptions } from '@angular/cdk/overlay';\r\nimport { ComponentPortal } from '@angular/cdk/portal';\r\nimport { Injectable, Injector } from '@angular/core';\r\nimport { AXStyleColorType } from '../base/styles.class';\r\nimport {\r\n AXDialogOptions,\r\n AXDialogRef,\r\n} from './dialog.class';\r\nimport { AXDialogComponent } from './dialog.component';\r\n\r\n/**\r\n * The Button is a component which detects user interaction and triggers a corresponding event\r\n *\r\n * @category Components\r\n */\r\n@Injectable({ providedIn: 'root' })\r\nexport class AXDialogService {\r\n\r\n /**\r\n * @ignore\r\n */\r\n constructor(\r\n private overlayService: Overlay,\r\n private parentInjector: Injector,\r\n private sso: ScrollStrategyOptions\r\n ) { }\r\n\r\n /**\r\n * Show an alert box with 'Okay' button.\r\n */\r\n alert(title: string, content: string, type: AXStyleColorType = 'primary'): Promise<void> {\r\n return new Promise((resolve) => {\r\n const popup = this.open({\r\n title,\r\n type: type,\r\n content,\r\n buttons: [\r\n {\r\n name: 'confirm',\r\n text: AXTranslator.get('common.okay'),\r\n color: type,\r\n onClick: () => {\r\n popup.close();\r\n if (resolve) {\r\n resolve();\r\n }\r\n },\r\n },\r\n ],\r\n });\r\n });\r\n }\r\n\r\n /**\r\n * Show a confirm box with 'Okay' & 'Cancel' buttons.\r\n */\r\n confirm(title: string, content: string, type: AXStyleColorType = 'primary'): Promise<void> {\r\n return new Promise((resolve, reject) => {\r\n const popup = this.open({\r\n title,\r\n content,\r\n type,\r\n buttons: [\r\n {\r\n name: 'confirm',\r\n text: AXTranslator.get('common.okay'),\r\n color: type,\r\n onClick: () => {\r\n popup.close();\r\n if (resolve) {\r\n resolve();\r\n }\r\n },\r\n submitBehavior: true,\r\n cancelBehavior: false,\r\n },\r\n {\r\n name: 'cancel',\r\n text: AXTranslator.get('common.cancel'),\r\n color: `light`,\r\n onClick: () => {\r\n popup.close();\r\n if (reject) {\r\n reject();\r\n }\r\n },\r\n submitBehavior: false,\r\n cancelBehavior: true,\r\n },\r\n ],\r\n });\r\n });\r\n }\r\n\r\n /**\r\n * Show a custom dialog box.\r\n */\r\n show(options: AXDialogOptions): Promise<{ name: string }> {\r\n return new Promise((resolve) => {\r\n const popup = this.open(options);\r\n options.buttons?.forEach((b) => {\r\n const orginalClick = b.onClick;\r\n b.onClick = () => {\r\n popup.close();\r\n if (orginalClick) {\r\n orginalClick();\r\n }\r\n if (resolve) {\r\n resolve({ name: b.name });\r\n }\r\n };\r\n });\r\n });\r\n }\r\n\r\n private open(options: AXDialogOptions): AXDialogRef {\r\n let positionStrategy = this.overlayService\r\n .position()\r\n .global()\r\n .centerHorizontally()\r\n .centerVertically();\r\n const overlayRef = this.overlayService.create({\r\n positionStrategy,\r\n hasBackdrop: true,\r\n scrollStrategy: this.sso.block(),\r\n panelClass: ['ax-animate-fadeIn', 'ax-animate-faster'],\r\n });\r\n const dialogPortal = new ComponentPortal(\r\n AXDialogComponent,\r\n null,\r\n this.parentInjector\r\n );\r\n const host = overlayRef.attach(dialogPortal);\r\n if (host.instance) {\r\n Object.assign(host.instance, {\r\n options: options,\r\n close: () => {\r\n overlayRef.dispose();\r\n },\r\n });\r\n setTimeout(() => {\r\n host.changeDetectorRef.detectChanges();\r\n }, 0);\r\n }\r\n\r\n return {\r\n close: () => {\r\n host.instance.close();\r\n },\r\n };\r\n }\r\n}\r\n","import { ChangeDetectorRef, ElementRef, Inject, Injectable } from \"@angular/core\";\r\nimport { AXBaseComponentMixin } from \"../base\";\r\nimport { AXLoadingService } from \"../loading\";\r\n\r\n@Injectable()\r\nexport abstract class AXPageComponent extends AXBaseComponentMixin {\r\n\r\n constructor(\r\n elementRef: ElementRef,\r\n cdr: ChangeDetectorRef,\r\n @Inject(AXLoadingService) private _loadingService\r\n ) {\r\n super(elementRef, cdr);\r\n }\r\n\r\n private _loadingId: number;\r\n\r\n private _isLoading: boolean = false;\r\n public get isLoading(): boolean {\r\n return this._isLoading;\r\n }\r\n public set isLoading(v: boolean) {\r\n this._isLoading = v;\r\n if (this._loadingId && !v) {\r\n this._loadingService.hide(this._loadingId);\r\n this._loadingId = null;\r\n }\r\n if (v) {\r\n this._loadingId = this._loadingService.show(this._getHostElement());\r\n }\r\n }\r\n}","import { ChangeDetectionStrategy, Component, OnInit, TemplateRef, ViewChild } from '@angular/core';\r\n\r\n@Component({\r\n selector: 'ax-page-footer',\r\n template: `\r\n <ng-content select=\"ax-prefix\">\r\n </ng-content>\r\n <ng-content select=\"ax-suffix\">\r\n </ng-content>\r\n `,\r\n changeDetection: ChangeDetectionStrategy.OnPush\r\n})\r\nexport class AXPageFooterComponent {\r\n\r\n @ViewChild(TemplateRef, { static: true })\r\n template: TemplateRef<any>;\r\n}","import { EventEmitter, Injectable, ViewChild } from '@angular/core';\r\nimport { AXEvent } from '../base/events.class';\r\n\r\n\r\nimport { AXPageComponent } from './page.component';\r\nimport { AXPageFooterComponent } from './page-footer.component';\r\n\r\nexport const TAB_META_KEY = '__meta__';\r\n\r\nexport class AXPageCloseEvent extends AXEvent {\r\n data?: any\r\n}\r\nexport class AXPageClosing {\r\n cancel: boolean = false;\r\n data?: any;\r\n}\r\n\r\nexport class AXPageResult {\r\n sender: AXBasePageComponent;\r\n data?: any;\r\n}\r\n\r\n/**\r\n* Defines a CSS class—or multiple classes separated by spaces— which are applied to a span element inside the Button. Allows the usage of custom icons after the primary text.\r\n*/\r\nexport class AXPageClosedPromise extends Promise<AXPageResult> {\r\n\r\n private closeMethod: () => void;\r\n constructor(\r\n executor: (resolve: (value?: AXPageResult | PromiseLike<AXPageResult>) => void,\r\n reject: (reason?: any) => void) => void\r\n ) {\r\n super(executor);\r\n }\r\n\r\n public close() {\r\n if (this.closeMethod) {\r\n this.closeMethod();\r\n }\r\n }\r\n}\r\n\r\n\r\n@Injectable()\r\nexport class AXBasePageComponent {\r\n\r\n @ViewChild(AXPageComponent, { static: true })\r\n private pageContainer: AXPageComponent;\r\n\r\n @ViewChild(AXPageFooterComponent, { static: true })\r\n footer: AXPageFooterComponent;\r\n\r\n private _isLoading: boolean = false;\r\n public get isLoading(): boolean {\r\n return this._isLoading;\r\n }\r\n public set isLoading(v: boolean) {\r\n ;\r\n this._isLoading = v;\r\n if (this.pageContainer) {\r\n this.pageContainer.isLoading = this.isLoading;\r\n }\r\n }\r\n\r\n\r\n private _isPopup: boolean = false;\r\n public get isPopup(): boolean {\r\n return this._isPopup;\r\n }\r\n\r\n\r\n\r\n onClosed: EventEmitter<AXPageCloseEvent> = new EventEmitter<AXPageCloseEvent>();\r\n\r\n close(data?: any) {\r\n this.onClosed.emit({\r\n component: this,\r\n data: data\r\n });\r\n }\r\n\r\n onClosing(e: AXPageClosing): void | Promise<void> {\r\n }\r\n\r\n ngOnDestroy() {\r\n this.onClosed.unsubscribe();\r\n }\r\n}","import { ChangeDetectionStrategy, Component, OnInit, TemplateRef, ViewChild } from '@angular/core';\r\n\r\n@Component({\r\n selector: 'ax-page-header',\r\n template: `\r\n <ng-content select=\"ax-prefix\">\r\n </ng-content>\r\n <ng-content select=\"ax-suffix\">\r\n </ng-content>\r\n `,\r\n changeDetection: ChangeDetectionStrategy.OnPush\r\n})\r\nexport class AXPageHeaderComponent {\r\n\r\n @ViewChild(TemplateRef, { static: true })\r\n template: TemplateRef<any>;\r\n}","import { NgModule } from '@angular/core';\r\nimport { AXPageFooterComponent } from './page-footer.component';\r\nimport { AXPageHeaderComponent } from './page-header.component';\r\n\r\n\r\n@NgModule({\r\n imports: [],\r\n exports: [AXPageFooterComponent, AXPageHeaderComponent],\r\n declarations: [AXPageFooterComponent, AXPageHeaderComponent],\r\n providers: [],\r\n})\r\nexport class AXPageModule { }\r\n","import { NgModule } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\nimport { AXDialogComponent } from './dialog.component';\r\nimport { AXButtonModule } from '../button';\r\nimport { A11yModule } from '@angular/cdk/a11y';\r\nimport { DragDropModule } from '@angular/cdk/drag-drop';\r\nimport { AXPageModule } from '../page';\r\nimport { AXEditorDecoratorModule } from '../decorators';\r\n\r\nconst COMPONENT = [AXDialogComponent];\r\nconst MODULES = [CommonModule, DragDropModule, A11yModule, AXButtonModule, AXPageModule, AXEditorDecoratorModule];\r\n\r\n@NgModule({\r\n declarations: [...COMPONENT],\r\n imports: [...MODULES],\r\n exports: [...COMPONENT],\r\n providers: [],\r\n})\r\nexport class AXDialogModule { }\r\n","import { Component, ViewEncapsulation, ChangeDetectionStrategy, ElementRef, ChangeDetectorRef, NgZone, Input, HostBinding, Output, EventEmitter, HostListener } from '@angular/core';\r\nimport { AXBaseComponentMixin, AXEvent } from '../base';\r\n\r\n@Component({\r\n selector: 'ax-drawer',\r\n template: `\r\n <ng-content>\r\n </ng-content>\r\n `,\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n encapsulation: ViewEncapsulation.None,\r\n host: { class: 'ax-drawer' }\r\n})\r\nexport class AXDrawerComponent extends AXBaseComponentMixin {\r\n\r\n constructor(\r\n private elementRef: ElementRef,\r\n cdr: ChangeDetectorRef,\r\n private zone: NgZone\r\n ) {\r\n super(elementRef, cdr);\r\n }\r\n\r\n @Output()\r\n onChanged: EventEmitter<AXEvent> = new EventEmitter<AXEvent>();\r\n\r\n @Input()\r\n mode: 'push' | 'overlay' = 'push';\r\n\r\n _currentMode: 'push' | 'overlay'\r\n\r\n @Input()\r\n location: 'start' | 'end' = 'start';\r\n\r\n private _backdrop: HTMLDivElement;\r\n\r\n private _collapsed: boolean = false;\r\n @Input()\r\n public get collapsed(): boolean {\r\n return this._collapsed;\r\n }\r\n public set collapsed(v: boolean) {\r\n if (v != this._collapsed) {\r\n this._collapsed = v;\r\n this._updateClass();\r\n this._emitChange();\r\n }\r\n }\r\n\r\n onInit() {\r\n this._getHostElement().classList.add(this.location == 'start' ? 'ax-drawer-start' : 'ax-drawer-end');\r\n this._currentMode = this.mode;\r\n }\r\n\r\n private _updateClass() {\r\n this.zone.runOutsideAngular(() => {\r\n const elm = this._getHostElement();\r\n // \r\n this._currentMode == 'overlay' ? this._setOverlayMode() : this._setPushMode();\r\n //\r\n if (this.collapsed) {\r\n elm.classList.remove('ax-expanded');\r\n elm.classList.add('ax-collapsed');\r\n if (this._currentMode == 'overlay') {\r\n this._removeBackdrop();\r\n }\r\n }\r\n else {\r\n elm.classList.add('ax-expanded');\r\n elm.classList.remove('ax-collapsed');\r\n if (this._currentMode == 'overlay') {\r\n this._addBackdrop();\r\n }\r\n }\r\n });\r\n }\r\n\r\n onViewInit() {\r\n this._detectSize();\r\n }\r\n\r\n toggle() {\r\n this.collapsed = !this.collapsed;\r\n }\r\n\r\n close() {\r\n this.collapsed = true;\r\n }\r\n\r\n open() {\r\n this.collapsed = false;\r\n }\r\n\r\n @HostListener('window:resize', ['$event'])\r\n _handleWindowsResize(e: UIEvent) {\r\n this._detectSize();\r\n }\r\n\r\n\r\n _detectSize() {\r\n //TODO detect break size\r\n const bound = this._getHostElement().parentElement.getBoundingClientRect();\r\n if (bound.width == 0) {\r\n console.log('Drawe invalid size', bound);\r\n setTimeout(() => {\r\n this._detectSize();\r\n }, 1);\r\n return;\r\n }\r\n if (bound.width < 400) {\r\n this._currentMode = 'overlay';\r\n this.collapsed = true;\r\n }\r\n else {\r\n this._currentMode = this.mode;\r\n }\r\n this._updateClass();\r\n this._emitChange();\r\n }\r\n\r\n private _emitChange() {\r\n this.onChanged.emit({\r\n component: this,\r\n htmlElement: this.elementRef.nativeElement\r\n })\r\n }\r\n\r\n private _setOverlayMode() {\r\n this._currentMode = 'overlay';\r\n this._getHostElement().classList.remove('ax-drawer-push');\r\n this._getHostElement().classList.add('ax-drawer-overlay');\r\n\r\n }\r\n\r\n private _setPushMode() {\r\n this._currentMode = 'push';\r\n this._getHostElement().classList.remove('ax-drawer-overlay');\r\n this._getHostElement().classList.add('ax-drawer-push');\r\n this._removeBackdrop();\r\n }\r\n\r\n private _addBackdrop() {\r\n if (!this._backdrop) {\r\n this._backdrop = document.createElement('div');\r\n this._backdrop.classList.add('ax-drawer-backdrop')\r\n this._getHostElement().parentElement.prepend(this._backdrop);\r\n this._backdrop.addEventListener('click', this._handleBackfropClick.bind(this));\r\n }\r\n }\r\n\r\n private _removeBackdrop() {\r\n if (this._backdrop) {\r\n this._backdrop.removeEventListener('click', this._handleBackfropClick.bind(this));\r\n this._getHostElement().parentElement.removeChild(this._backdrop);\r\n this._backdrop = null;\r\n }\r\n }\r\n\r\n private _handleBackfropClick(e: MouseEvent) {\r\n this._removeBackdrop();\r\n this.collapsed = true;\r\n }\r\n\r\n}\r\n","import { Component, ViewEncapsulation, ChangeDetectionStrategy, ElementRef, ChangeDetectorRef, NgZone, ContentChildren, QueryList } from '@angular/core';\r\nimport { AXBaseComponentMixin } from '../base';\r\nimport { AXDrawerComponent } from './drawer.component';\r\n\r\n@Component({\r\n selector: 'ax-drawer-container',\r\n template: `\r\n <ng-content select=\"ax-drawer[location='start']\">\r\n </ng-content>\r\n <ng-content select=\"ax-drawer-content\">\r\n </ng-content>\r\n <ng-content select=\"ax-drawer[location='end']\">\r\n </ng-content>\r\n `,\r\n inputs: ['rtl'],\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n encapsulation: ViewEncapsulation.None,\r\n host: { class: 'ax-drawer-container' }\r\n})\r\nexport class AXDrawerContainerComponent extends AXBaseComponentMixin {\r\n\r\n constructor(\r\n elementRef: ElementRef,\r\n cdr: ChangeDetectorRef,\r\n private zone: NgZone\r\n ) {\r\n super(elementRef, cdr);\r\n }\r\n\r\n\r\n @ContentChildren(AXDrawerComponent)\r\n drawers: QueryList<AXDrawerComponent>;\r\n\r\n\r\n onViewInit() {\r\n this._updateWidth();\r\n // add animation\r\n setTimeout(() => {\r\n this._getHostElement().querySelectorAll('ax-drawer').forEach(c => {\r\n c.classList.add('ax-animated');\r\n });\r\n }, 100);\r\n\r\n this.drawers.forEach(c => {\r\n c.onChanged.subscribe(c => {\r\n this._updateWidth();\r\n });\r\n });\r\n }\r\n\r\n private _updateWidth() {\r\n this.zone.runOutsideAngular(() => {\r\n const container = this._getHostElement().closest('ax-drawer-container') as HTMLDivElement;\r\n const parentWidth = this._getHostElement().getBoundingClientRect().width;\r\n let w = 0;\r\n this._getHostElement().querySelectorAll('ax-drawer').forEach(c => {\r\n const elm = c as HTMLDivElement;\r\n const width = elm.getBoundingClientRect().width;\r\n const overflow = parentWidth < width;\r\n const diff = width - parentWidth;\r\n w += ['ax-expanded', 'ax-drawer-push'].every(c => elm.classList.contains(c)) ? width : 0;\r\n elm.style.setProperty('--attr-width', `${width}px`);\r\n //TODO check overflow\r\n elm.style.setProperty('--attr-diff', `${overflow ? diff : 0}px`);\r\n });\r\n container.style.setProperty('--attr-content-width', `${parentWidth - w}px`);\r\n });\r\n }\r\n}\r\n","import { Component, ViewEncapsulation, ChangeDetectionStrategy, ElementRef, ChangeDetectorRef } from '@angular/core';\r\nimport { AXBaseComponentMixin } from '../base';\r\n\r\n@Component({\r\n selector: 'ax-drawer-content',\r\n template: `\r\n <ng-content>\r\n </ng-content>\r\n `,\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n encapsulation: ViewEncapsulation.None,\r\n host: { class: 'ax-drawer-content' }\r\n})\r\nexport class AXDrawerContentComponent extends AXBaseComponentMixin {\r\n\r\n constructor(\r\n elementRef: ElementRef,\r\n cdr: ChangeDetectorRef\r\n ) {\r\n super(elementRef, cdr);\r\n }\r\n\r\n\r\n}\r\n","import { NgModule } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\nimport { AXDrawerComponent } from './drawer.component';\r\nimport { AXDrawerContainerComponent } from './drawer-container.component';\r\nimport { AXDrawerContentComponent } from './drawer-content.component';\r\n\r\nconst COMPONENT = [AXDrawerComponent, AXDrawerContainerComponent, AXDrawerContentComponent];\r\nconst MODULES = [CommonModule];\r\n\r\n@NgModule({\r\n declarations: [...COMPONENT],\r\n imports: [...MODULES],\r\n exports: [...COMPONENT],\r\n providers: [],\r\n})\r\nexport class AXDrawerModule { }\r\n","import {\r\n Component,\r\n ViewEncapsulation,\r\n ChangeDetectionStrategy,\r\n ElementRef,\r\n ChangeDetectorRef,\r\n ContentChildren,\r\n ViewChildren,\r\n QueryList,\r\n EventEmitter,\r\n Output,\r\n Input,\r\n ViewChild,\r\n Optional\r\n} from '@angular/core';\r\nimport { Subscription } from 'rxjs';\r\nimport { AXBaseDropdownMixin, AXButtonClickEvent, AXClickEvent } from '../base';\r\nimport { DROPDOWN_INPUTS, DROPDOWN_OUTPUT, _DropdownComponenetMixin } from '../base/mixin/dropdown-mixin.class';\r\nimport { _InteractiveComponenetMixin } from '../base/mixin/interactive-mixin.class';\r\nimport { AXButtonComponent, AXButtonItem, AXButtonItemComponent } from '../button';\r\nimport { AXPopoverComponent } from '../popover';\r\n\r\n\r\n@Component({\r\n selector: 'ax-dropdown-panel',\r\n templateUrl: './dropdown-panel.component.html',\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n encapsulation: ViewEncapsulation.None,\r\n inputs: [...DROPDOWN_INPUTS],\r\n outputs: [...DROPDOWN_OUTPUT],\r\n})\r\nexport class AXDropdownPanelComponent extends AXBaseDropdownMixin {\r\n\r\n constructor(\r\n elementRef: ElementRef,\r\n cdr: ChangeDetectorRef,\r\n @Optional()\r\n public _parent: AXButtonComponent,\r\n ) {\r\n super(elementRef, cdr);\r\n this._target = this._parent._getHostElement();\r\n }\r\n\r\n @ContentChildren(AXButtonItemComponent) _contentButtons: QueryList<AXButtonItemComponent>;\r\n @ViewChildren(AXButtonItemComponent) _viewButtons: QueryList<AXButtonItemComponent>;\r\n\r\n @Output()\r\n onItemClick: EventEmitter<AXButtonClickEvent> = new EventEmitter<AXButtonClickEvent>();\r\n\r\n @ViewChild(AXPopoverComponent, { static: true })\r\n popover: AXPopoverComponent;\r\n\r\n private _items: AXButtonItem[];\r\n @Input()\r\n public get items(): AXButtonItem[] {\r\n return this._items || [];\r\n }\r\n public set items(v: AXButtonItem[]) {\r\n this._items = v;\r\n this._cdr.markForCheck();\r\n }\r\n\r\n _needBorder: boolean = false;\r\n _subs: Subscription[] = [];\r\n _target: HTMLElement;\r\n\r\n private _getAllButtons(): AXButtonItemComponent[] {\r\n return [...Array.from(this._viewButtons), ...Array.from(this._contentButtons)];\r\n }\r\n\r\n onViewInit() {\r\n super.onViewInit();\r\n\r\n this._getAllButtons().forEach(c => {\r\n this._needBorder = true;\r\n this._subs.push(c.onClick.subscribe(this._handleOnItemClick.bind(this)));\r\n this._cdr.markForCheck();\r\n });\r\n }\r\n\r\n onDestroy(): void {\r\n this._subs.forEach(s => {\r\n s?.unsubscribe();\r\n });\r\n }\r\n\r\n _emitOnItemClickEvent(e: AXClickEvent, item: AXButtonItemComponent): void {\r\n this.onItemClick.emit({\r\n component: this,\r\n htmlElement: this._getHostElement(),\r\n nativeEvent: e.nativeEvent,\r\n name: item.name,\r\n data: item.data,\r\n });\r\n }\r\n\r\n private _handleOnItemClick(e: AXClickEvent) {\r\n this.close();\r\n this._emitOnItemClickEvent(e, e.component);\r\n\r\n }\r\n}\r\n","<ax-popover [target]=\"_target\" [position]=\"position\" [openTrigger]=\"'toggle'\" [closeTrigger]=\"'clickout'\">\r\n <div class=\"ax-overlay-pane\" [class.ax-dropdown-list]=\"_needBorder\" >\r\n <ng-container *ngIf=\"items && items.length;else panelTpl\">\r\n <ax-button-item [text]=\"item.text\" [color]=\"item.color\" *ngFor=\"let item of items\">\r\n <ax-prefix *ngIf=\"item.iconClass\">\r\n <ax-icon [icon]=\"item.iconClass\"></ax-icon>\r\n </ax-prefix>\r\n </ax-button-item>\r\n </ng-container>\r\n <ng-template #panelTpl>\r\n <ng-content select=\"[panel],ax-button-item\">\r\n </ng-content>\r\n </ng-template>\r\n </div>\r\n</ax-popover>","import { OverlayModule } from '@angular/cdk/overlay';\r\nimport { CommonModule } from '@angular/common';\r\nimport { NgModule } from '@angular/core';\r\nimport { AXButtonModule } from '../button';\r\nimport { AXEditorDecoratorModule } from '../decorators';\r\nimport { AXIconModule } from '../icon';\r\nimport { AXPopoverModule } from '../popover';\r\nimport { AXDropdownPanelComponent } from './dropdown-panel.component';\r\n\r\n@NgModule({\r\n imports: [CommonModule, AXButtonModule, OverlayModule, AXIconModule, AXEditorDecoratorModule, AXPopoverModule],\r\n exports: [ AXDropdownPanelComponent],\r\n declarations: [ AXDropdownPanelComponent],\r\n providers: [],\r\n})\r\nexport class AXDropdownModule { }\r\n","import { ChangeDetectionStrategy, ChangeDetectorRef, Component, ElementRef, OnInit, ViewEncapsulation } from '@angular/core';\r\nimport { AXBaseComponentMixin } from '../base/mixin/mixin.class';\r\n\r\n@Component({\r\n selector: 'ax-form-field',\r\n template: '<ng-content></ng-content>',\r\n encapsulation: ViewEncapsulation.None,\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n})\r\nexport class AXFormFieldComponent extends AXBaseComponentMixin {\r\n\r\n constructor(\r\n elementRef: ElementRef,\r\n cdr: ChangeDetectorRef\r\n ) {\r\n super(elementRef, cdr);\r\n }\r\n}","import { ChangeDetectionStrategy, ChangeDetectorRef, Component, ElementRef, OnInit, ViewEncapsulation } from '@angular/core';\r\nimport { AXBaseComponentMixin } from '../base/mixin/mixin.class';\r\n\r\n@Component({\r\n selector: 'ax-form-hint',\r\n template: ' <p class=\"ax-text-light-400 ax-text-xs ax-py-1 dark:ax-text-light-300\"><ng-content></ng-content></p>',\r\n encapsulation: ViewEncapsulation.None,\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n})\r\nexport class AXFormHintComponent extends AXBaseComponentMixin {\r\n\r\n constructor(\r\n elementRef: ElementRef,\r\n cdr: ChangeDetectorRef\r\n ) {\r\n super(elementRef, cdr);\r\n }\r\n}","import { ChangeDetectionStrategy, ChangeDetectorRef, Component, ElementRef, OnInit, ViewEncapsulation } from '@angular/core';\r\nimport { AXBaseComponentMixin } from '../base/mixin/mixin.class';\r\nimport { AXValidationResult } from '../validation/validation.class';\r\n\r\n@Component({\r\n selector: 'ax-form',\r\n template: '<div class=\"ax-form\"><ng-content></ng-content></div>',\r\n encapsulation: ViewEncapsulation.None,\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n})\r\nexport class AXFormComponent extends AXBaseComponentMixin {\r\n\r\n constructor(\r\n elementRef: ElementRef,\r\n private cdr: ChangeDetectorRef\r\n ) {\r\n super(elementRef, cdr);\r\n }\r\n\r\n\r\n _getComponenets() {\r\n return Array.from(this._getHostElement().querySelectorAll('[ax-form-input=\"true\"]'));\r\n }\r\n\r\n validate(): Promise<AXValidationResult> {\r\n const widgets = this._getComponenets();\r\n //\r\n return new Promise<AXValidationResult>((resolve, reject) => {\r\n if (widgets.length === 0) {\r\n return Promise.resolve({ result: true });\r\n }\r\n Promise.all(widgets.map((c) => (c as any).__axContext__.validate())).then((rules: any) => {\r\n const failed = rules.filter((c: any) => !c.result);\r\n if (failed.length) {\r\n reject({\r\n result: false,\r\n items: failed\r\n });\r\n }\r\n else {\r\n resolve({ result: true });\r\n }\r\n });\r\n });\r\n }\r\n\r\n clear() {\r\n const widgets = this._getComponenets();\r\n widgets.forEach(w => {\r\n (w as any).__axContext__.clear();\r\n });\r\n\r\n }\r\n}","import { CommonModule } from '@angular/common';\r\nimport { NgModule } from '@angular/core';\r\n\r\nimport { AXFormFieldComponent } from './form-field.component';\r\nimport { AXFormHintComponent } from './form-hint.component';\r\nimport { AXFormComponent } from './form.component';\r\n\r\n@NgModule({\r\n imports: [CommonModule],\r\n exports: [AXFormFieldComponent, AXFormComponent,AXFormHintComponent],\r\n declarations: [AXFormFieldComponent, AXFormComponent,AXFormHintComponent],\r\n providers: [],\r\n})\r\nexport class AXFormModule { }\r\n","import { Component, ViewEncapsulation, ChangeDetectionStrategy, Input, ChangeDetectorRef, ElementRef } from '@angular/core';\r\nimport IMask from 'imask';\r\nimport { AXBaseComponent } from '../base';\r\nimport { AnyMaskedOptions } from 'imask';\r\nimport { AXTextBoxComponent } from '../textbox';\r\n\r\n@Component({\r\n selector: 'ax-input-mask',\r\n template: '',\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n encapsulation: ViewEncapsulation.None,\r\n})\r\nexport class AXInputMaskComponent extends AXBaseComponent {\r\n\r\n\r\n private _maskObj: IMask.InputMask<AnyMaskedOptions>\r\n\r\n /**\r\n * @ignore\r\n */\r\n constructor(\r\n private _elementRef: ElementRef,\r\n _cdr: ChangeDetectorRef,\r\n private _textbox: AXTextBoxComponent\r\n ) {\r\n super(_elementRef, _cdr);\r\n }\r\n\r\n onViewInit(): void {\r\n this._maskObj = IMask(this._textbox._getHostElement().querySelector('input'), {\r\n mask: this.mask \r\n })\r\n }\r\n\r\n\r\n\r\n private _prefix: string;\r\n @Input()\r\n public get prefix(): string {\r\n return this._prefix || '';\r\n }\r\n public set prefix(v: string) {\r\n this._prefix = v;\r\n }\r\n\r\n\r\n\r\n private _suffix: string;\r\n @Input()\r\n public get suffix(): string {\r\n return this._suffix || '';\r\n }\r\n public set suffix(v: string) {\r\n this._suffix = v;\r\n }\r\n\r\n\r\n\r\n @Input()\r\n showMaskTyped: boolean = false;\r\n\r\n @Input()\r\n clearIfNotMatch: boolean = false;\r\n\r\n @Input()\r\n mask: any;\r\n\r\n}\r\n","import { NgModule } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\nimport { AXInputMaskComponent } from './input-mask.component';\r\nimport { NgxMaskModule } from 'ngx-mask';\r\nimport {IMaskModule} from 'angular-imask';\r\n\r\nconst COMPONENT = [AXInputMaskComponent];\r\nconst MODULES = [CommonModule, NgxMaskModule.forRoot(),IMaskModule];\r\n\r\n@NgModule({\r\n declarations: [...COMPONENT],\r\n imports: [...MODULES],\r\n exports: [...COMPONENT],\r\n providers: [],\r\n})\r\nexport class AXInputMaskModule { }\r\n","import { Component, ViewEncapsulation, ChangeDetectionStrategy, ElementRef, ChangeDetectorRef, HostBinding, Input } from '@angular/core';\r\nimport { AXBaseComponentMixin } from '../base';\r\n\r\n@Component({\r\n selector: 'ax-label',\r\n templateUrl: './label.component.html',\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n encapsulation: ViewEncapsulation.None\r\n})\r\nexport class AXLabelComponent extends AXBaseComponentMixin {\r\n\r\n @Input() class;\r\n\r\n constructor(elementRef: ElementRef, cdr: ChangeDetectorRef) {\r\n super(elementRef, cdr);\r\n }\r\n\r\n \r\n private _target : string;\r\n public get target() : string {\r\n return this._target;\r\n }\r\n public set target(v : string) {\r\n this._target = v;\r\n this._cdr.markForCheck();\r\n }\r\n \r\n\r\n}\r\n","<label [attr.for]=\"target\" [ngClass]=\"class\">\r\n <ng-content></ng-content>\r\n</label>","import { NgModule } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\nimport { AXLabelComponent } from './label.component';\r\n\r\nconst COMPONENT = [AXLabelComponent];\r\nconst MODULES = [CommonModule];\r\n\r\n@NgModule({\r\n declarations: [...COMPONENT],\r\n imports: [...MODULES],\r\n exports: [...COMPONENT],\r\n providers: [],\r\n})\r\nexport class AXLabelModule { }","import {\r\n Component,\r\n ViewEncapsulation,\r\n ChangeDetectionStrategy,\r\n ElementRef,\r\n ChangeDetectorRef,\r\n Input,\r\n Output,\r\n EventEmitter,\r\n} from '@angular/core'\r\nimport { AXBaseComponentMixin, AXEvent, AXItemClickEvent } from '../base'\r\n\r\nexport interface AXMenuItems {\r\n id?: string\r\n name?: string\r\n text?: string\r\n tooltip?: string\r\n parentId?: string\r\n icon?: string\r\n visible?: boolean\r\n disable?: boolean\r\n selected?: boolean\r\n data?: any\r\n style?: string\r\n children?: AXMenuItems[]\r\n isOpen?: boolean\r\n isActive?: boolean\r\n onClick?: (e?: any) => void\r\n}\r\n\r\n@Component({\r\n selector: 'ax-menu',\r\n templateUrl: './menu.component.html',\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n encapsulation: ViewEncapsulation.None,\r\n host: { class: \"ax-menu\" }\r\n})\r\nexport class AXMenuComponent extends AXBaseComponentMixin {\r\n constructor(private elementRef: ElementRef, private cdr: ChangeDetectorRef) {\r\n super(elementRef, cdr)\r\n //TODO: ax-menu\r\n }\r\n\r\n @Input() items: AXMenuItems[]\r\n\r\n @Output()\r\n onMenuItemClick: EventEmitter<\r\n AXItemClickEvent<AXMenuItems>\r\n > = new EventEmitter<AXItemClickEvent<AXMenuItems>>()\r\n\r\n onMenuClick(e: MouseEvent, item: AXMenuItems) {\r\n this.notActive(this.items);\r\n if (item.children?.length > 0) {\r\n this.closeChild(item.children)\r\n }\r\n\r\n item.isActive = !item.isActive\r\n item.isOpen = !item.isOpen\r\n this.onMenuItemClick.emit({\r\n component: this,\r\n item: item,\r\n nativeEvent: e,\r\n })\r\n e.stopPropagation();\r\n e.preventDefault()\r\n }\r\n\r\n notActive(items: AXMenuItems[]) {\r\n items.forEach((element: AXMenuItems) => {\r\n element.isActive = false\r\n if (element.children?.length > 0) {\r\n this.notActive(element.children);\r\n }\r\n });\r\n }\r\n\r\n closeChild(items: AXMenuItems[]) {\r\n items.forEach((element: AXMenuItems) => {\r\n element.isOpen = false\r\n if (element.children?.length > 0) {\r\n this.closeChild(element.children);\r\n }\r\n });\r\n\r\n }\r\n\r\n}\r\n\r\n","<ul>\r\n <ng-container *ngTemplateOutlet=\"recursiveListTmpl; context:{ list: items }\"></ng-container>\r\n</ul>\r\n\r\n<ng-template #recursiveListTmpl let-list=\"list\">\r\n <ng-container *ngFor=\"let item of list\">\r\n <li *ngIf=\"item.visible !=false\" (click)=\"onMenuClick($event,item)\">\r\n <a [ngClass]=\"{'active': item.isActive}\">\r\n <span>{{item.text}}</span>\r\n <ax-icon [ngClass]=\"{'active-icon': item.isOpen}\" *ngIf=\"item?.children?.length > 0\" class=\"ax-ic-chevron\">\r\n </ax-icon>\r\n <ax-icon *ngIf=\"item.icon\" class=\"{{item.icon}}\">\r\n </ax-icon>\r\n </a>\r\n <ul *ngIf=\"item?.children?.length > 0 && item.isOpen\">\r\n <ng-container *ngTemplateOutlet=\"recursiveListTmpl; context:{ list: item.children }\"></ng-container>\r\n </ul>\r\n </li>\r\n </ng-container>\r\n</ng-template>","import { NgModule } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\nimport { AXMenuComponent } from './menu.component';\r\nimport { AXIconModule } from '../icon';\r\n\r\nconst COMPONENT = [AXMenuComponent];\r\nconst MODULES = [CommonModule];\r\n\r\n@NgModule({\r\n declarations: [...COMPONENT],\r\n imports: [...MODULES, AXIconModule],\r\n exports: [...COMPONENT],\r\n providers: [],\r\n})\r\nexport class AXMenuModule { }\r\n","import {\r\n Component,\r\n ViewEncapsulation,\r\n ChangeDetectionStrategy,\r\n ElementRef,\r\n ChangeDetectorRef,\r\n Input,\r\n Output,\r\n EventEmitter,\r\n ViewChild,\r\n} from '@angular/core';\r\nimport IMask from 'imask';\r\nimport { IMaskDirective } from 'angular-imask';\r\nimport { AXBaseTextBoxMixin, AXClickEvent, AXComponentOptionChanged } from '../base';\r\nimport {\r\n TEXTBOX_INPUTS,\r\n TEXTBOX_OUTPUT,\r\n} from '../base/mixin/textbox-mixin.class';\r\nimport _ from 'lodash';\r\n\r\n/**\r\n * The NumberBox is a component which detects user interaction and triggers a corresponding event\r\n *\r\n * @category Components\r\n */\r\n@Component({\r\n selector: 'ax-number-box',\r\n templateUrl: './number-box.component.html',\r\n inputs: [\r\n 'disabled',\r\n 'readonly',\r\n 'tabIndex',\r\n 'size',\r\n 'value',\r\n ...TEXTBOX_INPUTS,\r\n ],\r\n outputs: [\r\n 'valueChange',\r\n 'onValueChanged',\r\n 'onBlur',\r\n 'onFocus',\r\n ...TEXTBOX_OUTPUT,\r\n ],\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n encapsulation: ViewEncapsulation.None,\r\n host: { class: 'ax-editor-container' },\r\n})\r\nexport class AXNumberBoxComponent extends AXBaseTextBoxMixin {\r\n\r\n\r\n\r\n\r\n private _thousandsSeparator: string;\r\n /**\r\n * A character value that specifies the separator character.\r\n */\r\n @Input()\r\n public get thousandsSeparator(): string {\r\n return this._thousandsSeparator;\r\n }\r\n public set thousandsSeparator(v: string) {\r\n this._setOption({\r\n name: \"thousandsSeparator\",\r\n value: v ?? '',\r\n })\r\n }\r\n\r\n private _padDecimalZeros: boolean = false;\r\n /**\r\n * A character value that specifies the separator character.\r\n */\r\n @Input()\r\n public get padDecimalZeros(): boolean {\r\n return this._padDecimalZeros;\r\n }\r\n public set padDecimalZeros(v: boolean) {\r\n this._setOption({\r\n name: \"padDecimalZeros\",\r\n value: v,\r\n })\r\n }\r\n\r\n\r\n\r\n\r\n /**\r\n * Specifies the value that is used to increment or decrement the **Integer** part of number\r\n */\r\n @Input()\r\n step: number = 1;\r\n\r\n\r\n\r\n private _decimals: number = 0;\r\n /**\r\n * Specifies the number of decimals that the user can enter\r\n */\r\n @Input()\r\n public get decimals(): number {\r\n return this._decimals;\r\n }\r\n public set decimals(v: number) {\r\n this._setOption({\r\n name: \"decimals\",\r\n value: v ?? 0,\r\n })\r\n }\r\n\r\n\r\n /**\r\n * Specifies the value that is used to increment or decrement the **Deciaml** part of number\r\n */\r\n @Input()\r\n decimalStep: number | 'auto' = 'auto';\r\n\r\n /**\r\n * Specifies whether the Up and Down spin buttons will be rendered or not\r\n */\r\n @Input()\r\n showSpinButtons: boolean = true;\r\n\r\n private _minValue: number = Number.MIN_SAFE_INTEGER;\r\n /**\r\n * Specifies the smallest value that is valid\r\n */\r\n @Input()\r\n public get minValue(): number {\r\n return this._minValue;\r\n }\r\n public set minValue(v: number) {\r\n this._setOption({\r\n name: \"minValue\",\r\n value: v != null ? Number(v) : Number.MIN_SAFE_INTEGER,\r\n })\r\n }\r\n\r\n private _maxValue: number = Number.MAX_SAFE_INTEGER;\r\n /**\r\n * Specifies the greatest value that is valid\r\n */\r\n @Input()\r\n public get maxValue(): number {\r\n return this._maxValue;\r\n }\r\n public set maxValue(v: number) {\r\n this._setOption({\r\n name: \"maxValue\",\r\n value: v != null ? Number(v) : Number.MAX_SAFE_INTEGER,\r\n })\r\n }\r\n\r\n\r\n /**\r\n * @ignore\r\n */\r\n _maskObj: IMask.MaskedNumber;\r\n\r\n @ViewChild(IMaskDirective)\r\n private _maskDirective: IMaskDirective<IMask.MaskedNumber>;\r\n\r\n /**\r\n * @ignore\r\n */\r\n constructor(\r\n elementRef: ElementRef,\r\n private cdr: ChangeDetectorRef\r\n ) {\r\n super(elementRef, cdr);\r\n }\r\n\r\n\r\n onViewInit(): void {\r\n super.onViewInit();\r\n this._updateMask();\r\n }\r\n\r\n\r\n _onOptionChanged(option: AXComponentOptionChanged): void {\r\n super._onOptionChanged(option);\r\n this._updateMask();\r\n }\r\n\r\n private _updateMask() {\r\n if (!this._maskObj) {\r\n this._maskObj = IMask.createMask({\r\n mask: Number,\r\n min: this.minValue,\r\n max: this.maxValue,\r\n thousandsSeparator: this.thousandsSeparator || '',\r\n scale: this.decimals,\r\n radix: '.',\r\n padFractionalZeros: this.decimals > 0 && this.padDecimalZeros\r\n });\r\n }\r\n else {\r\n this._maskObj.updateOptions({\r\n min: this.minValue,\r\n max: this.maxValue,\r\n thousandsSeparator: this.thousandsSeparator || '',\r\n scale: this.decimals,\r\n radix: '.',\r\n padFractionalZeros: this.decimals > 0 && this.padDecimalZeros\r\n })\r\n }\r\n this._maskDirective?.maskRef?.updateValue();\r\n this._maskDirective?.maskRef?.updateControl();\r\n }\r\n\r\n _handleOnKeydownEvent(e: KeyboardEvent) {\r\n const ignore = () => {\r\n e.preventDefault();\r\n e.stopPropagation();\r\n };\r\n const input = e.target as HTMLInputElement;\r\n const valStr = input.value;\r\n const decimalPointIndex = valStr.indexOf('.');\r\n const _cursorPos=input.selectionStart;\r\n\r\n if (e.key === 'ArrowUp' || e.key === 'ArrowDown') {\r\n if (decimalPointIndex > 0 && _cursorPos > decimalPointIndex && this.decimals > 0) {\r\n e.key === 'ArrowDown' ? this.decimalStepDown() : this.decimalStepUp();\r\n }\r\n else {\r\n e.key === 'ArrowDown' ? this.stepDown() : this.stepUp();\r\n }\r\n ignore();\r\n setTimeout(() => {\r\n input.setSelectionRange(_cursorPos, _cursorPos);\r\n },5);\r\n }\r\n super._emitOnKeydownEvent(e);\r\n }\r\n\r\n\r\n\r\n _handleUpDownClick(e: AXClickEvent, v: -1 | 1) {\r\n v == 1 ? this.stepUp() : this.stepDown();\r\n }\r\n\r\n\r\n _onValueChanging(value: any) {\r\n const v = _.toNumber(value);\r\n if (v < this.minValue)\r\n return this.minValue;\r\n if (v > this.maxValue)\r\n return this.maxValue;\r\n return v;\r\n }\r\n\r\n\r\n stepUp() {\r\n this.value += _.toNumber(this.step);\r\n }\r\n\r\n stepDown() {\r\n this.value -= _.toNumber(this.step);\r\n }\r\n\r\n decimalStepUp() {\r\n this.value += _.toNumber(this.decimalStep == 'auto' ? (1 / Math.pow(10, this.decimals)) : this.decimalStep);\r\n }\r\n\r\n decimalStepDown() {\r\n this.value -= _.toNumber(this.decimalStep == 'auto' ? (1 / Math.pow(10, this.decimals)) : this.decimalStep);\r\n }\r\n\r\n}\r\n","<ng-content select=\"ax-prefix\">\r\n</ng-content>\r\n<input class=\"ax-input\" type=\"text\" \r\n [attr.placeholder]=\"placeholder\" \r\n [imask]=\"_maskObj\" \r\n [unmask]=\"'typed'\"\r\n [attr.min]=\"minValue\"\r\n [attr.max]=\"maxValue\" \r\n [class.ax-state-disabled]=\"disabled\" \r\n [class.ax-state-readonly]=\"readonly\"\r\n [disabled]=\"disabled\" \r\n [readonly]=\"readonly\" \r\n [tabindex]=\"tabIndex\" \r\n [(ngModel)]=\"value\"\r\n (focus)=\"_emitOnFocusEvent($event)\" \r\n (blur)=\"_emitOnFocusEvent($event)\" \r\n (keydown)=\"_handleOnKeydownEvent($event)\"\r\n [attr.autocomplete]=\"autoComplete\">\r\n\r\n<div class=\"ax-number-box-arrows\" *ngIf=\"showSpinButtons && !(disabled || readonly)\">\r\n <ax-button color=\"light\" look=\"blank\" (onClick)=\"_handleUpDownClick($event,1)\">\r\n <ax-prefix>\r\n <ax-icon class=\"ax-ic-arrow-fill ax-rotate-90\">\r\n </ax-icon>\r\n </ax-prefix>\r\n </ax-button>\r\n <ax-button color=\"light\" look=\"blank\" (onClick)=\"_handleUpDownClick($event,-1)\">\r\n <ax-prefix>\r\n <ax-icon class=\"ax-ic-arrow-fill ax--rotate-90\">\r\n </ax-icon>\r\n </ax-prefix>\r\n </ax-button>\r\n</div>\r\n<ng-content select=\"ax-suffix\">\r\n</ng-content>\r\n<ng-content select=\"ax-validation-rule\">\r\n</ng-content>","import { NgModule } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\nimport { AXNumberBoxComponent } from './number-box.component';\r\nimport { FormsModule } from '@angular/forms';\r\nimport { AXButtonModule } from '../button';\r\nimport {IMaskModule} from 'angular-imask';\r\nimport { AXEditorDecoratorModule } from '../decorators';\r\nimport { AXIconModule } from '../icon';\r\n\r\nconst COMPONENT = [AXNumberBoxComponent];\r\nconst MODULES = [\r\n CommonModule,\r\n FormsModule,\r\n AXButtonModule,\r\n AXEditorDecoratorModule,\r\n AXIconModule,\r\n IMaskModule\r\n];\r\n\r\n@NgModule({\r\n declarations: [...COMPONENT],\r\n imports: [...MODULES],\r\n exports: [...COMPONENT],\r\n providers: [],\r\n})\r\nexport class AXNumberBoxModule { }\r\n","import {\r\n ChangeDetectionStrategy,\r\n ChangeDetectorRef,\r\n Component,\r\n ContentChild,\r\n ElementRef,\r\n HostBinding,\r\n Input,\r\n ViewEncapsulation,\r\n} from '@angular/core';\r\nimport { AXBaseTextBoxMixin } from '../base/mixin/mixin.class';\r\nimport {\r\n TEXTBOX_INPUTS,\r\n TEXTBOX_OUTPUT,\r\n} from '../base/mixin/textbox-mixin.class';\r\n\r\n/**\r\n * The Textbox is a component which detects user interaction and triggers a corresponding event\r\n *\r\n * @category Components\r\n */\r\n@Component({\r\n selector: 'ax-password-box',\r\n templateUrl: 'password-box.component.html',\r\n inputs: [\r\n 'disabled',\r\n 'readonly',\r\n 'tabIndex',\r\n 'cssClass',\r\n 'size',\r\n ...TEXTBOX_INPUTS,\r\n ],\r\n outputs: [\r\n 'valueChange',\r\n 'onValueChanged',\r\n 'onBlur',\r\n 'onFocus',\r\n ...TEXTBOX_OUTPUT,\r\n ],\r\n encapsulation: ViewEncapsulation.None,\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n host: { class: 'ax-password-box ax-editor-container' },\r\n})\r\nexport class AXPasswordBoxComponent extends AXBaseTextBoxMixin {\r\n\r\n @HostBinding('class')\r\n get hostClass(): string {\r\n return `${this.cssClass} ax-${this.size}`;\r\n }\r\n\r\n _type: 'password' | 'text' = 'password';\r\n _icon: 'ax-ic-eye' | 'ax-ic-eye-off' = 'ax-ic-eye';\r\n\r\n /**\r\n * A flag for showing or hiding password button.\r\n */\r\n @Input() showToggleButton: boolean = true;\r\n\r\n /**\r\n * @ignore\r\n */\r\n constructor(elementRef: ElementRef, cdr: ChangeDetectorRef) {\r\n super(elementRef, cdr);\r\n }\r\n\r\n toggleType() {\r\n if (this._type === 'password') {\r\n this._type = 'text';\r\n this._icon = 'ax-ic-eye-off';\r\n } else {\r\n this._type = 'password';\r\n this._icon = 'ax-ic-eye';\r\n }\r\n }\r\n}\r\n","<ng-content select=\"ax-prefix\">\r\n</ng-content>\r\n<input class=\"ax-input\" [attr.name]=\"name\" [type]=\"_type\" [attr.placeholder]=\"placeholder\" [attr.maxlength]=\"maxLength\" [class.ax-state-disabled]=\"disabled\" [class.ax-state-readonly]=\"readonly\" [disabled]=\"disabled\" [readonly]=\"readonly\" [tabindex]=\"tabIndex\"\r\n [(ngModel)]=\"value\" (focus)=\"_emitOnFocusEvent($event)\" (blur)=\"_emitOnBlurEvent($event)\" [attr.autocomplete]=\"autoComplete\">\r\n\r\n<ng-content select=\"ax-suffix\">\r\n\r\n</ng-content>\r\n<ng-content select=\"ax-validation-rule\">\r\n</ng-content>\r\n<ng-content select=\"ax-input-mask\">\r\n</ng-content>\r\n<ax-button color=\"light\" look=\"blank\" [size]=\"size\" (onClick)=\"toggleType()\" [tabIndex]=\"-1\" *ngIf=\"showToggleButton\">\r\n <ax-icon [icon]=\"_icon\"></ax-icon>\r\n</ax-button>","import { NgModule } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\nimport { AXPasswordBoxComponent } from './password-box.component';\r\nimport { FormsModule } from '@angular/forms';\r\nimport { AXButtonModule } from '../button';\r\nimport { AXEditorDecoratorModule } from '../decorators';\r\nimport { AXIconModule } from '../icon';\r\n\r\nconst COMPONENT = [AXPasswordBoxComponent];\r\nconst MODULES = [\r\n CommonModule,\r\n FormsModule,\r\n AXButtonModule,\r\n AXEditorDecoratorModule,\r\n AXIconModule\r\n];\r\n\r\n@NgModule({\r\n declarations: [...COMPONENT],\r\n imports: [...MODULES],\r\n exports: [...COMPONENT],\r\n providers: [],\r\n})\r\nexport class AXPasswordBoxModule { }\r\n","import { Component, ViewEncapsulation, ChangeDetectionStrategy, ElementRef, ChangeDetectorRef, ViewContainerRef, HostListener, ComponentRef, EventEmitter, TemplateRef, NgZone } from '@angular/core';\r\nimport { AXBaseComponentMixin } from '../base';\r\nimport { AXPageCloseEvent, TAB_META_KEY } from '../page/base-page.class';\r\nimport { AXLoadingService } from '../loading';\r\nimport { CdkPortalOutletAttachedRef, ComponentPortal, Portal, TemplatePortal } from '@angular/cdk/portal';\r\nimport { AXPlatform } from '@acorex/core';\r\n\r\n@Component({\r\n selector: 'ax-popup',\r\n templateUrl: './popup.component.html',\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n encapsulation: ViewEncapsulation.None,\r\n})\r\nexport class AXPopupComponent extends AXBaseComponentMixin {\r\n\r\n isLoading: boolean = true;\r\n private _loadingId: number;\r\n\r\n title: string;\r\n\r\n onClosed: EventEmitter<AXPageCloseEvent> = new EventEmitter<AXPageCloseEvent>();\r\n\r\n size: 'sm' | 'md' | 'lg' | 'full' = 'sm';\r\n draggable: boolean = true;\r\n\r\n\r\n data: any = {};\r\n\r\n\r\n showCloseButton: boolean = true;\r\n showHeader: boolean = true;\r\n\r\n content: any;\r\n\r\n\r\n _selectedPortal: Portal<any>;\r\n _footerPortal: Portal<any>;\r\n _headerPortal: Portal<any>;\r\n\r\n constructor(\r\n elementRef: ElementRef,\r\n cdr: ChangeDetectorRef,\r\n private _zone: NgZone,\r\n private _viewContainerRef: ViewContainerRef,\r\n private loadingService: AXLoadingService,\r\n private _platform: AXPlatform\r\n ) {\r\n super(elementRef, cdr);\r\n }\r\n\r\n onInit() {\r\n super.onInit();\r\n if (this._platform.is('Mobile')) {\r\n this.draggable = false;\r\n }\r\n this._loadingId = this.loadingService.show(this._getHostElement().querySelector('.ax-popup-body-container'));\r\n //\r\n if (typeof this.content === 'string') {\r\n // this.rendererService.findLoadedComponentByRoute(this.content, 20).then(route => {\r\n // setTimeout(() => {\r\n // this.loadComponent(route?.component);\r\n // }, 300);\r\n // });\r\n }\r\n else if (this.content instanceof TemplateRef) {\r\n this._selectedPortal = new TemplatePortal(this.content, this._viewContainerRef, { $implicit: this.data, ref: this });\r\n this._cdr.markForCheck();\r\n\r\n }\r\n else if (typeof this.content === 'function') {\r\n this._selectedPortal = new ComponentPortal(this.content);\r\n this._cdr.markForCheck();\r\n }\r\n }\r\n\r\n _handleAttched(ref: CdkPortalOutletAttachedRef) {\r\n ref = ref as ComponentRef<any>;\r\n if (ref.instance) {\r\n this[TAB_META_KEY].component = ref.instance;\r\n Object.assign(this[TAB_META_KEY].component, this.data);\r\n Object.assign(this[TAB_META_KEY].component, { _isPopup: true });\r\n if (ref.instance.onClosed) {\r\n ref.instance.onClosed.subscribe((e: AXPageCloseEvent) => {\r\n this.onClosed.emit(e);\r\n });\r\n }\r\n }\r\n this._zone.runOutsideAngular(() => {\r\n setTimeout(() => {\r\n const main = this._getHostElement().querySelector<HTMLDivElement>('.ax-popup-main-container');\r\n const popHeader = this._getHostElement().querySelector<HTMLDivElement>('.ax-popup-header-container');\r\n const popFooter = this._getHostElement().querySelector<HTMLDivElement>('.ax-popup-footer-container');\r\n const footer = main.querySelector<HTMLDivElement>('ax-page-footer');\r\n const header = main.querySelector<HTMLDivElement>('ax-page-header');\r\n if (footer) {\r\n popFooter.append(footer)\r\n }\r\n if (header) {\r\n popHeader.innerHTML = \"\";\r\n popHeader.append(header)\r\n }\r\n });\r\n });\r\n this.loadingService.hide(this._loadingId);\r\n this.focus();\r\n this._cdr.markForCheck();\r\n }\r\n\r\n\r\n @HostListener('keydown.escape', ['$event'])\r\n onKeydownHandler(event: KeyboardEvent) {\r\n if (this.showCloseButton) {\r\n this.close();\r\n }\r\n }\r\n\r\n _handleCloseClick() {\r\n this.close();\r\n }\r\n\r\n ngOnDestroy() {\r\n this.loadingService.hide(this._loadingId);\r\n }\r\n\r\n focus() {\r\n setTimeout(() => this._getHostElement().focus());\r\n }\r\n\r\n close() {\r\n this.onClosed.emit({\r\n component: this[TAB_META_KEY].component,\r\n htmlElement: this._getHostElement(),\r\n });\r\n this._cdr.detectChanges();\r\n }\r\n\r\n onFullScreen() { }\r\n}\r\n","<div class=\"ax-popup-wrapper\" aria-modal=\"true\" [cdkTrapFocus]=\"true\">\r\n <div class=\"ax-popup ax-popup-{{size}}\" tabindex=\"0\" cdkDrag [cdkDragDisabled]=\"!draggable\">\r\n <div cdkDragHandle class=\"ax-popup-header-container\">\r\n <ng-container *ngIf=\"showHeader\">\r\n <div class=\"ax-popup-header\">\r\n <span>{{title}}</span>\r\n <i class=\"ax-ic ax-ic-close\" *ngIf=\"showCloseButton\" (click)=\"_handleCloseClick()\" tabindex=\"1\"></i>\r\n </div>\r\n </ng-container>\r\n </div>\r\n <div class=\"ax-popup-main-container\">\r\n <ng-template [cdkPortalOutlet]=\"_selectedPortal\" (attached)=\"_handleAttched($event)\"></ng-template>\r\n </div>\r\n <div class=\"ax-popup-footer-container\"></div>\r\n\r\n </div>\r\n</div>","import { Injectable, TemplateRef } from '@angular/core';\r\nimport { AXOverlayService, AXOverlayViewRef } from '../base/overlay.service';\r\nimport { AXPageClosedPromise, AXPageCloseEvent, TAB_META_KEY } from '../page';\r\nimport { AXPopupComponent } from './popup.component';\r\n\r\nexport type AXPopupContentType = string | TemplateRef<any> | Function;\r\n\r\n/**\r\n * This is a service which you can create popup with it\r\n *\r\n * @category Components\r\n */\r\n@Injectable({ providedIn: 'root' })\r\nexport class AXPopupService {\r\n\r\n\r\n private stack: Array<AXPopupComponent> = [];\r\n\r\n\r\n /**\r\n * @ignore\r\n */\r\n constructor(private overlayService: AXOverlayService) { }\r\n\r\n\r\n /**\r\n * Open popup 1\r\n */\r\n open(content: AXPopupContentType, title: string): AXPageClosedPromise;\r\n /**\r\n * Open popup 2\r\n * @ignore\r\n */\r\n open(\r\n content: AXPopupContentType,\r\n options?: {\r\n title: string;\r\n showCloseButton?: boolean;\r\n showHeader?: boolean;\r\n maximizable?: boolean;\r\n size?: 'sm' | 'md' | 'lg' | 'full' | 'fit';\r\n data?: any;\r\n draggable?: boolean\r\n }\r\n ): AXPageClosedPromise;\r\n\r\n /**\r\n * @ignore\r\n */\r\n open(arg1, arg2): AXPageClosedPromise {\r\n const options: any = {\r\n showCloseButton: true,\r\n showHeader: true,\r\n size: 'md',\r\n maximizable: false,\r\n draggable: true\r\n };\r\n if (typeof arg2 === 'string') {\r\n options.title = arg2;\r\n } else {\r\n Object.assign(options, arg2);\r\n }\r\n const com = this.overlayService.show(AXPopupComponent, options, { transparentBackdrop: false, closeOnClickOutside: false, scroll: 'block' });\r\n const popup = com.instance as AXPopupComponent;\r\n popup.content = arg1;\r\n popup[TAB_META_KEY] = {};\r\n if (options.size) {\r\n popup.size = options.size;\r\n }\r\n this.stack.push(popup);\r\n popup.onClosed.subscribe(c => {\r\n this.closePopup(popup, com, c);\r\n });\r\n const promise = new AXPageClosedPromise((resolve) => {\r\n popup[TAB_META_KEY].close = (e) => {\r\n if (resolve) {\r\n resolve(e);\r\n }\r\n };\r\n });\r\n promise['closeMethod'] = () => { popup.close(); };\r\n return promise;\r\n }\r\n\r\n\r\n private closePopup(popup: AXPopupComponent, com: AXOverlayViewRef, result: AXPageCloseEvent) {\r\n const closeFunc = (e) => {\r\n com.dispose();\r\n this.stack.pop();\r\n delete e.cancel;\r\n popup[TAB_META_KEY].close(e);\r\n if (this.stack.length) { this.stack.reverse()[0].focus(); }\r\n };\r\n const e = { cancel: false };\r\n const closingFunc = popup[TAB_META_KEY]?.component?.onClosing;\r\n if (closingFunc) {\r\n const res = closingFunc(e);\r\n if (res instanceof Promise) {\r\n res.then(() => {\r\n if (e == null || e.cancel !== true) {\r\n closeFunc(result);\r\n }\r\n });\r\n }\r\n else {\r\n if (e == null || e.cancel !== true) {\r\n closeFunc(result);\r\n }\r\n }\r\n } else {\r\n closeFunc(result);\r\n }\r\n }\r\n}\r\n","import { NgModule } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\nimport { AXPopupComponent } from './popup.component';\r\nimport { AXButtonModule } from '../button';\r\nimport { A11yModule } from '@angular/cdk/a11y';\r\nimport { DragDropModule } from '@angular/cdk/drag-drop';\r\nimport { PortalModule } from '@angular/cdk/portal';\r\n\r\nconst COMPONENT = [AXPopupComponent];\r\nconst MODULES = [CommonModule, DragDropModule, A11yModule, AXButtonModule, PortalModule];\r\n\r\n@NgModule({\r\n declarations: [...COMPONENT],\r\n imports: [...MODULES],\r\n exports: [...COMPONENT],\r\n providers: [],\r\n})\r\nexport class AXPopupModule { }\r\n","import { Component, Input } from '@angular/core';\r\nimport { AXBaseComponentMixin } from '../base';\r\n\r\n@Component({\r\n selector: 'ax-progress-bar',\r\n templateUrl: './progress-bar.component.html'\r\n})\r\nexport class AXProgressBarComponent extends AXBaseComponentMixin {\r\n\r\n\r\n @Input()\r\n value: number = 0\r\n\r\n private _max: number;\r\n\r\n public get max(): number {\r\n return this._max;\r\n }\r\n @Input()\r\n public set max(v: number) {\r\n this._max = v;\r\n }\r\n\r\n constructor() {\r\n super();\r\n }\r\n\r\n ngOnInit(): void { }\r\n}\r\n","<progress [attr.value]=\"value\" [max]=\"max\"></progress>","import { NgModule } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\nimport { AXProgressBarComponent } from './progress-bar.component';\r\n\r\n@NgModule({\r\n declarations: [AXProgressBarComponent],\r\n imports: [CommonModule],\r\n exports: [AXProgressBarComponent],\r\n providers: [],\r\n})\r\nexport class AXProgressBarModule { }","import { Component, ViewEncapsulation, ChangeDetectionStrategy, ElementRef, ChangeDetectorRef } from '@angular/core';\nimport { AXBaseValueComponentMixin } from '../base';\nimport { INTERACTIVE_INPUTS, INTERACTIVE_OUTPUT } from '../base/mixin/interactive-mixin.class';\nimport { VALUE_INPUTS, VALUE_OUTPUT } from '../base/mixin/value-mixin.class';\n\n@Component({\n selector: 'ax-radio',\n templateUrl: './radio.component.html',\n inputs: [...INTERACTIVE_INPUTS, ...VALUE_INPUTS],\n outputs: [...INTERACTIVE_OUTPUT, ...VALUE_OUTPUT],\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n host : { class: 'ax-radio' }\n})\nexport class AXRadioComponent extends AXBaseValueComponentMixin {\n\n constructor(\n elementRef: ElementRef, \n cdr: ChangeDetectorRef\n ) {\n super(elementRef, cdr);\n //TODO: ax-radio\n }\n\n _handleOnClickEvent(e: MouseEvent) {\n if (this.readonly || this.disabled) {\n e.preventDefault();\n e.stopPropagation();\n return false;\n }\n }\n\n}\n","<div class=\"ax-flex ax-items-start\">\n <div class=\"ax-flex ax-items-center ax-h-5\">\n <input [id]=\"id\" class=\"ax-radio\" type=\"radio\" [(ngModel)]=\"value\" [checked]=\"value\" [disabled]=\"disabled\" [readonly]=\"readonly\" [tabindex]=\"tabIndex\" (click)=\"_handleOnClickEvent($event)\" (focus)=\"_emitOnFocusEvent($event)\"\n (blur)=\"_emitOnBlurEvent($event)\">\n </div>\n <div class=\"ax-ms-3 ax-text-sm\">\n <ng-content select=\"ax-label\"></ng-content>\n <ng-content select=\"ax-form-hint\"></ng-content>\n </div>\n</div>\n<ng-content select=\"ax-validation-rule\"></ng-content>","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { AXRadioComponent } from './radio.component';\nimport { FormsModule } from '@angular/forms';\n\nconst COMPONENT = [AXRadioComponent];\nconst MODULES = [CommonModule,FormsModule];\n\n@NgModule({\n declarations: [...COMPONENT],\n imports: [...MODULES],\n exports: [...COMPONENT],\n providers: [],\n})\nexport class AXRadioModule { }\n","import { Component, ViewEncapsulation, ChangeDetectionStrategy, ElementRef, ChangeDetectorRef } from '@angular/core';\r\nimport { AXBaseComponentMixin } from '../base';\r\n\r\n@Component({\r\n selector: 'ax-range-slider',\r\n templateUrl: './range-slider.component.html',\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n encapsulation: ViewEncapsulation.None,\r\n host: { class: 'ax-range-slider' }\r\n})\r\nexport class AXRangeSliderComponent extends AXBaseComponentMixin {\r\n\r\n constructor(\r\n elementRef: ElementRef,\r\n cdr: ChangeDetectorRef\r\n ) {\r\n super(elementRef, cdr);\r\n //TODO: ax-range-slider\r\n }\r\n\r\n}\r\n","<input type=\"range\" min=\"1\" max=\"100\" value=\"50\" class=\"ax-range-slider-input\">","import { NgModule } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\nimport { AXRangeSliderComponent } from './range-slider.component';\r\n\r\nconst COMPONENT = [AXRangeSliderComponent];\r\nconst MODULES = [CommonModule];\r\n\r\n@NgModule({\r\n declarations: [...COMPONENT],\r\n imports: [...MODULES],\r\n exports: [...COMPONENT],\r\n providers: [],\r\n})\r\nexport class AXRangeSliderModule { }\r\n","import { AXPlatform, AXTranslator } from '@acorex/core';\r\nimport { ChangeDetectionStrategy, ChangeDetectorRef, Component, ContentChild, ElementRef, HostListener, Input, NgZone, TemplateRef, ViewChild, ViewEncapsulation } from '@angular/core';\r\nimport _ from 'lodash';\r\nimport { AXBaseSelectionDropdownMixin, AXClickEvent, AXValueChangedEvent } from '../base';\r\nimport { DATALIST_INPUTS } from '../base/mixin/datalist-component.class';\r\nimport { DROPDOWN_INPUTS, DROPDOWN_OUTPUT } from '../base/mixin/dropdown-mixin.class';\r\nimport { INTERACTIVE_INPUTS, INTERACTIVE_OUTPUT } from '../base/mixin/interactive-mixin.class';\r\nimport { SELECTION_INPUTS, SELECTION_OUTPUT } from '../base/mixin/selection-component.class';\r\nimport { TEXTBOX_INPUTS, TEXTBOX_OUTPUT } from '../base/mixin/textbox-mixin.class';\r\nimport { VALUE_INPUTS, VALUE_OUTPUT } from '../base/mixin/value-mixin.class';\r\nimport { AXPopoverComponent } from '../popover';\r\nimport { AXTextBoxComponent } from '../textbox';\r\n\r\n@Component({\r\n selector: 'ax-select-box',\r\n templateUrl: 'selectbox.component.html',\r\n inputs: [...DROPDOWN_INPUTS, ...INTERACTIVE_INPUTS, ...VALUE_INPUTS, ...TEXTBOX_INPUTS, ...DATALIST_INPUTS, ...SELECTION_INPUTS],\r\n outputs: [...DROPDOWN_OUTPUT, ...INTERACTIVE_OUTPUT, ...VALUE_OUTPUT, ...TEXTBOX_OUTPUT, ...SELECTION_OUTPUT],\r\n encapsulation: ViewEncapsulation.None,\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n host: { class: 'ax-editor-container ax-drop-down' }\r\n})\r\nexport class AXSelectBoxComponent extends AXBaseSelectionDropdownMixin {\r\n\r\n\r\n @ViewChild(AXPopoverComponent, { static: true })\r\n popover: AXPopoverComponent;\r\n\r\n _target: HTMLDivElement;\r\n _popoverTitle: string;\r\n _popoverWidth: number;\r\n\r\n\r\n @Input()\r\n clearButton: boolean = false;\r\n\r\n private _searchSettings: { enabled?: boolean, expr?: string } = { enabled: false, expr: null };\r\n\r\n @Input()\r\n public get searchSettings(): { enabled?: boolean, expr?: string } {\r\n return this._searchSettings;\r\n }\r\n public set searchSettings(v: { enabled?: boolean, expr?: string }) {\r\n this._searchSettings = v || { enabled: false, expr: null };\r\n }\r\n\r\n\r\n @Input()\r\n checkbox: boolean = false;\r\n\r\n @ViewChild('listContainer', { static: true })\r\n private listContainer: ElementRef<HTMLDivElement>;\r\n\r\n @ViewChild('searchBox')\r\n private _searchBox: AXTextBoxComponent;\r\n\r\n @ContentChild('emptyTemplate')\r\n private _contentEmptyTemplate: TemplateRef<any>;\r\n\r\n\r\n get emptyTemplate(): TemplateRef<any> {\r\n return this._contentEmptyTemplate;\r\n }\r\n\r\n _isMobile: boolean = false;\r\n _forceFocus: boolean = false;\r\n\r\n constructor(\r\n private _elementRef: ElementRef<HTMLDivElement>,\r\n private _cdr: ChangeDetectorRef,\r\n private _zone: NgZone,\r\n private _platform: AXPlatform,\r\n ) {\r\n super(_elementRef, _cdr);\r\n }\r\n\r\n _handleArrowClickEvent(e: AXClickEvent) {\r\n e.nativeEvent.stopPropagation();\r\n this.toggle();\r\n }\r\n\r\n _handleInputClickEvent(e: MouseEvent) {\r\n e.stopPropagation();\r\n this.toggle();\r\n }\r\n\r\n\r\n onInit() {\r\n super.onInit();\r\n this._target = this._elementRef.nativeElement;\r\n this._isMobile = this._platform.is('Mobile');\r\n this._popoverTitle = this.placeholder || AXTranslator.get('selectbox.popover.title')\r\n }\r\n\r\n onViewInit() {\r\n super.onViewInit();\r\n this._popoverWidth = this._isMobile ? null : this._target.offsetWidth;\r\n }\r\n\r\n\r\n refresh() {\r\n this.value = null;\r\n super.refresh();\r\n }\r\n\r\n _handleOnItemClick(e: MouseEvent, item: any) {\r\n if (this.isItemDisabled(item)) {\r\n return;\r\n }\r\n if (!this.multiple)\r\n this.close();\r\n this.toggleSelect(item);\r\n this._cdr.detectChanges();\r\n }\r\n\r\n _handleListScroll(e: Event) {\r\n const list = e.target as HTMLDivElement;\r\n if ((list.scrollTop < list.scrollHeight - list.clientHeight)) {\r\n return;\r\n }\r\n this._fetchData();\r\n }\r\n\r\n private _checkForLoadData() {\r\n const list = this.listContainer.nativeElement;\r\n const headerSize = list.parentElement.querySelector<HTMLDivElement>('.ax-overlay-pane-header')?.offsetHeight || 0;\r\n if (this.loadedCount < this.totalCount && list.scrollHeight < ((list.parentElement.clientHeight - headerSize) * 1.5)) {\r\n this._fetchData();\r\n }\r\n }\r\n\r\n _onDataLoaded() {\r\n if (this.popover.isOpen) {\r\n setTimeout(() => {\r\n this._checkForLoadData();\r\n this.popover.updatePosition();\r\n if (this._forceFocus) {\r\n this._focusSelectedItem();\r\n this._forceFocus = false;\r\n }\r\n }, 100);\r\n }\r\n }\r\n\r\n _onValueChanged(oldValue: any, newValue: any) {\r\n super._onValueChanged(oldValue, newValue);\r\n }\r\n\r\n _handleOnRemoveItemClick(e: MouseEvent, item: any) {\r\n this.unselectItems(item)\r\n e.stopPropagation();\r\n }\r\n\r\n _handleBadgeRemove(e: MouseEvent, item) {\r\n this.unselectItems(item)\r\n e.stopPropagation()\r\n this.close();\r\n }\r\n\r\n @HostListener('keydown', ['$event'])\r\n _handleKeydown(e: KeyboardEvent) {\r\n const isLetter = new RegExp(/[a-zA-Z0-9\\-]/).test(String.fromCharCode(e.keyCode));\r\n if (e.code === 'Backspace' && e.type === 'keydown' &&\r\n ((this.allowNull === true && this.selectedItems.length > 0) ||\r\n (this.allowNull !== true && this.selectedItems.length > 1))) {\r\n this.isUserInput = true;\r\n this.unselectItems(this.selectedItems.pop());\r\n e.preventDefault();\r\n return;\r\n }\r\n else if ((e.code === 'ArrowDown' || e.code === 'ArrowUp' || e.code === 'Space') && !this.popover.isOpen && e.type === 'keydown') {\r\n if (this.multiple) {\r\n this.open();\r\n }\r\n else {\r\n this.isUserInput = true;\r\n if (e.ctrlKey || e.code === 'Space') {\r\n this.open();\r\n }\r\n else {\r\n this._selectedItemByNav((e.key === 'ArrowDown' ? 1 : -1));\r\n }\r\n }\r\n e.preventDefault();\r\n return;\r\n }\r\n else if (isLetter) {\r\n this.text = e.key;\r\n this.open();\r\n e.preventDefault();\r\n return;\r\n }\r\n }\r\n\r\n\r\n _handlePopoverKeydown(e: KeyboardEvent) {\r\n if ((e.key === 'ArrowDown' || e.key === 'ArrowUp') && this.displayItems.length > 0) {\r\n this.isUserInput = true;\r\n this._focusItemByNav((e.key === 'ArrowDown' ? 1 : -1));\r\n e.preventDefault();\r\n }\r\n else if (e.code === 'Backspace' &&\r\n ((this.allowNull === true && this.selectedItems.length > 0) ||\r\n (this.allowNull !== true && this.selectedItems.length > 1))) {\r\n this.isUserInput = true;\r\n this.unselectItems(this.selectedItems.pop());\r\n e.preventDefault();\r\n }\r\n else if ((e.code === 'Space' || e.code === 'Enter')) {\r\n e.preventDefault();\r\n debugger;\r\n const focusedItemId = this.listContainer.nativeElement.querySelector<HTMLElement>('.ax-state-focus').dataset.id;\r\n const focusedItem = _.findLast(this.flatItems, [this.valueField, focusedItemId]);\r\n if (focusedItem) {\r\n if (this.isItemDisabled(focusedItem)) {\r\n return;\r\n }\r\n if (this.multiple) {\r\n this.isUserInput = true;\r\n this.toggleSelect(focusedItem);\r\n }\r\n else {\r\n this.isUserInput = true;\r\n this.selectItems(focusedItem);\r\n this.close();\r\n }\r\n }\r\n }\r\n else if (e.code === \"Tab\") {\r\n this.close();\r\n e.preventDefault();\r\n e.stopPropagation();\r\n }\r\n else if (e.key === 'Escape') {\r\n this.close();\r\n e.preventDefault();\r\n e.stopPropagation();\r\n }\r\n }\r\n\r\n _handlePopupOnOpened(e) {\r\n this.popover.focus();\r\n if (this.displayItems.length == 0) {\r\n this._forceFocus = true;\r\n this._fetchData();\r\n }\r\n else {\r\n this._focusSelectedItem();\r\n }\r\n if (this._searchBox) {\r\n this._searchBox.focus();\r\n }\r\n }\r\n\r\n _handlePopupOnClosed(e) {\r\n this.focus();\r\n }\r\n\r\n\r\n private _focusItemByNav(sign: -1 | 1): void {\r\n \r\n const list = this.listContainer.nativeElement;\r\n const fn = (s) => list.querySelector<HTMLElement>(s);\r\n const itemDiv = fn(`.ax-list-item.ax-state-focus`) || fn(`.ax-list-item.ax-state-selected`) || fn(`.ax-list-item`);\r\n let next = (sign == 1 ? itemDiv.nextElementSibling : itemDiv.previousElementSibling) as HTMLElement;\r\n if (next) {\r\n this._focusItemElement(next);\r\n }\r\n else {\r\n const parent = itemDiv.closest('.ax-list-item-group');\r\n if (parent) {\r\n const lis = (sign == 1 ? parent.nextElementSibling : parent.previousElementSibling)?.querySelectorAll('li');\r\n const a = sign == 1 ? _.first(lis) : _.last(lis);\r\n if (a) {\r\n this._focusItemElement(a);\r\n }\r\n }\r\n }\r\n }\r\n\r\n\r\n private _focusSelectedItem() {\r\n this._zone.runOutsideAngular(() => {\r\n const list = this.listContainer.nativeElement;\r\n const fn = (s) => list.querySelector<HTMLElement>(s);\r\n const itemDiv = fn(`.ax-list-item.ax-state-selected`) || fn(`.ax-list-item`);\r\n if (itemDiv) {\r\n this._focusItemElement(itemDiv);\r\n }\r\n });\r\n }\r\n\r\n private _focusItemElement(el: HTMLElement) {\r\n this._zone.runOutsideAngular(() => {\r\n const list = this.listContainer.nativeElement;\r\n list.querySelectorAll('.ax-list-item').forEach(c => {\r\n if (c == el) {\r\n c.classList.add('ax-state-focus');\r\n el.scrollIntoView({ behavior: 'auto' });\r\n }\r\n else {\r\n c.classList.remove('ax-state-focus');\r\n }\r\n });\r\n this._searchBox ? this._searchBox.focus() : el.focus();\r\n });\r\n }\r\n\r\n\r\n private _selectedItemByNav(sign: -1 | 1): void {\r\n const last = _.last(this.selectedItems);\r\n let i = 0;\r\n if (last) {\r\n i = _.findLastIndex(this.flatItems, [this.valueField, last[this.valueField]]);\r\n }\r\n i += sign;\r\n let next = _.nth<any>(this.flatItems, i);\r\n while (next?.children && next?.children.length) {\r\n i += sign;\r\n next = _.nth<any>(this.flatItems, i);\r\n }\r\n if (next) {\r\n this.selectItems(next);\r\n }\r\n else if (next == null && sign == 1) {\r\n this._fetchData();\r\n }\r\n }\r\n\r\n\r\n _onSearchExprChanged(e: AXValueChangedEvent<string>) {\r\n this.empty();\r\n this._fetchData();\r\n }\r\n\r\n _fetchData()\r\n {\r\n super._fetchData({ searchQuery: this._searchBox?.value });\r\n }\r\n}","<ng-content select=\"ax-prefix\">\r\n</ng-content>\r\n<div class=\"ax-dropdown-content\" [class.ax-state-disabled]=\"disabled\" (click)=\"_handleInputClickEvent($event)\">\r\n <div class=\"ax-select-box-selection\" [tabindex]=\"tabIndex\" (focus)=\"_emitOnFocusEvent($event)\"\r\n (blur)=\"_emitOnBlurEvent($event)\">\r\n <ng-container *ngIf=\"selectedItems && selectedItems.length; else showPlaceholder\">\r\n <ng-container *ngIf=\"!multiple; then singleSelectedTemplate; else multipleSelectedTemplate\"></ng-container>\r\n <ng-template #singleSelectedTemplate>\r\n <ng-container *ngFor=\"let item of selectedItems\">\r\n <span class=\"ax-mx-2\"> {{ _getItemDisplayTextTemplte(item) }}</span>\r\n </ng-container>\r\n </ng-template>\r\n <ng-template #multipleSelectedTemplate>\r\n <div class=\"ax-flex ax-mx-2\">\r\n <ng-container *ngFor=\"let item of selectedItems\">\r\n <ax-badge [text]=\"_getItemDisplayTextTemplte(item)\" color=\"light\" class=\"ax-me-2\">\r\n <ax-suffix>\r\n <ax-icon icon=\"ax-ic ax-ic-close ax-cursor-pointer\"\r\n (click)=\"_handleBadgeRemove($event,item)\"></ax-icon>\r\n </ax-suffix>\r\n </ax-badge>\r\n </ng-container>\r\n </div>\r\n </ng-template>\r\n </ng-container>\r\n <ng-template #showPlaceholder>\r\n <div class=\"ax-placeholder\" role=\"textbox\" area-readonly=\"true\"> {{placeholder}}</div>\r\n </ng-template>\r\n </div>\r\n</div>\r\n<ax-button color=\"light\" look=\"blank\" (onClick)=\"clear()\" [tabIndex]=\"-1\"\r\n *ngIf=\"value && clearButton && !(disabled || readonly)\">\r\n <ax-icon icon=\"ax-ic ax-ic-close\"></ax-icon>\r\n</ax-button>\r\n<ax-button [disabled]=\"disabled\" [tabIndex]=\"-1\" color=\"light\" look=\"blank\" (onClick)=\"_handleArrowClickEvent($event)\">\r\n <ax-prefix *ngIf=\"(isLoading && !this.popover.isOpen);else icon\">\r\n <ax-loading type=\"spinner\"></ax-loading>\r\n </ax-prefix>\r\n <ng-template #icon>\r\n <ax-icon #icon icon=\"ax-ic ax-ic-chevron ax-transform ax--rotate-90\"></ax-icon>\r\n </ng-template>\r\n</ax-button>\r\n<ng-content select=\"ax-validation-rule\">\r\n</ng-content>\r\n<ng-content select=\"ax-suffix\">\r\n</ng-content>\r\n<ax-popover [target]=\"_target\" [position]=\"position\" [openTrigger]=\"'manual'\" [closeTrigger]=\"'clickout'\"\r\n (onOpened)=\"_handlePopupOnOpened($event)\" (onClosed)=\"_handlePopupOnClosed($event)\">\r\n <div class=\"ax-overlay-pane\" (keydown)=\"_handlePopoverKeydown($event)\" tabindex=\"0\" aria-modal=\"true\" cdkTrapFocus\r\n [class.ax-overlay-center]=\"_isMobile\" [style.min-width.px]=\"_popoverWidth\">\r\n <div class=\"ax-list ax-list-container\" panel>\r\n <div *ngIf=\"_isMobile\" class=\"ax-overlay-pane-header\">\r\n <span>{{_popoverTitle}}</span>\r\n <i class=\"ax-ic {{multiple?'ax-ic-check !ax-text-primary-500':'ax-ic-close'}}\" (click)=\"close()\"\r\n tabindex=\"1\"></i>\r\n </div>\r\n <div *ngIf=\"searchSettings.enabled\" class=\"ax-p-2\" [cdkTrapFocus]=\"true\">\r\n <ax-text-box #searchBox placeholder=\"{{ 'common.search' | trans }}\" [debounceTime]=\"500\"\r\n [(value)]=\"searchSettings.expr\" (onValueChanged)=\"_onSearchExprChanged($event)\">\r\n </ax-text-box>\r\n </div>\r\n <div class=\"ax-list-items-container ax-vertical ax-default\" [class.ax-full]=\"_isMobile\" (scroll)=\"_handleListScroll($event)\" #listContainer>\r\n <!--------------- Check empty state ---------------->\r\n <ng-container *ngIf=\"displayItems.length; else tmpEmpty\">\r\n <!--------------- recursive template ---------------->\r\n <ul>\r\n <ng-container *ngTemplateOutlet=\"tmpTree; context:{ list: displayItems }\">\r\n </ng-container>\r\n <ng-template #tmpTree let-list=\"list\">\r\n <!--------------- items iteration ---------------->\r\n <ng-container *ngFor=\"let item of list;let i = index;trackBy : _trackByFunction\">\r\n <ng-container *ngIf=\"itemTemplate; else defualtTemplate\">\r\n <li class=\"ax-list-item\" (click)=\"_handleOnItemClick($event,item)\" \r\n [attr.data-id]=\"item[this.valueField]\">\r\n <ng-container\r\n *ngTemplateOutlet=\"itemTemplate; context: { $implicit: item,direction:direction}\">\r\n </ng-container>\r\n </li>\r\n </ng-container>\r\n <ng-template #defualtTemplate>\r\n <ng-container *ngIf=\"item.children?.length > 0;else tmpItem\">\r\n <li class=\"ax-list-item-group\" [attr.data-id]=\"item[this.valueField]\" >\r\n <span> {{ _getItemDisplayTextTemplte(item) }}</span>\r\n <!--------------- children iteration ---------------->\r\n <ul *ngIf=\"item.children?.length > 0\">\r\n <ng-container\r\n *ngTemplateOutlet=\"tmpTree; context:{ list: item.children }\">\r\n </ng-container>\r\n </ul>\r\n </li>\r\n </ng-container>\r\n <ng-template #tmpItem>\r\n <ng-container *ngIf=\"!multiple; else multipleTemplate\">\r\n <li class=\"ax-list-item\" [class.ax-state-selected]=\"isItemSelected(item)\"\r\n [class.ax-state-disabled]=\"isItemDisabled(item)\" [attr.tabindex]=\"i\"\r\n (click)=\"_handleOnItemClick($event,item)\"\r\n [attr.data-id]=\"item[this.valueField]\"\r\n >\r\n <span> {{ _getItemDisplayTextTemplte(item) }}</span>\r\n </li>\r\n </ng-container>\r\n <ng-template #multipleTemplate>\r\n <li class=\"ax-list-item\" [class.ax-state-selected]=\"isItemSelected(item)\"\r\n [class.ax-state-disabled]=\"isItemDisabled(item)\"\r\n [class.ax-check-box]=\"checkbox\" [attr.tabindex]=\"i\"\r\n (click)=\"_handleOnItemClick($event,item)\"\r\n [attr.data-id]=\"item[this.valueField]\"\r\n >\r\n <input type=\"checkbox\" [class.ax-state-disabled]=\"isItemDisabled(item)\"\r\n *ngIf=\"checkbox\" [checked]=\"isItemSelected(item)\"\r\n [disabled]=\"isItemDisabled(item)\">\r\n &nbsp;\r\n &nbsp;\r\n <span> {{ _getItemDisplayTextTemplte(item) }}</span>\r\n </li>\r\n </ng-template>\r\n </ng-template>\r\n </ng-template>\r\n </ng-container>\r\n </ng-template>\r\n </ul>\r\n </ng-container>\r\n <!--------------- loading template --------------->\r\n <ng-container *ngIf=\"isLoading\">\r\n <!--------------- check for custom template --------------->\r\n <ng-container *ngIf=\"loadingTemplate; else elseLoadingTemplate\">\r\n <ng-container *ngTemplateOutlet=\"loadingTemplate\">\r\n </ng-container>\r\n </ng-container>\r\n <ng-template #elseLoadingTemplate>\r\n <div class=\"ax-flex ax-items-center ax-justify-center ax-p-4\">\r\n <ax-loading text=\"{{ 'layout.loading.text' | trans }}\"></ax-loading>\r\n </div>\r\n </ng-template>\r\n </ng-container>\r\n <!--------------- empty template --------------->\r\n <ng-template #tmpEmpty>\r\n <ng-container *ngIf=\"!isLoading\">\r\n <!--------------- check for custom template --------------->\r\n <ng-container *ngIf=\"emptyTemplate; else elseEmptyTemplate\">\r\n <ng-container *ngTemplateOutlet=\"emptyTemplate\">\r\n </ng-container>\r\n </ng-container>\r\n <ng-template #elseEmptyTemplate>\r\n <div class=\"ax-list-item\">\r\n {{ 'common.no-result-found' | trans }}\r\n </div>\r\n </ng-template>\r\n </ng-container>\r\n </ng-template>\r\n </div>\r\n </div>\r\n </div>\r\n</ax-popover>","import { AXTranslationModule } from '@acorex/core';\r\nimport { CommonModule } from '@angular/common';\r\nimport { NgModule } from '@angular/core';\r\nimport { FormsModule } from '@angular/forms';\r\nimport { AXBadgeModule } from '../badge';\r\nimport { AXButtonModule } from '../button';\r\nimport { AXCheckBoxModule } from '../checkbox';\r\nimport { AXEditorDecoratorModule } from '../decorators';\r\nimport { AXIconModule } from '../icon';\r\nimport { AXLoadingModule } from '../loading';\r\nimport { AXPopoverModule } from '../popover';\r\nimport { A11yModule } from '@angular/cdk/a11y';\r\n\r\nimport { AXSelectBoxComponent } from './selectbox.component';\r\nimport { AXCommonModule } from '../base/common.module';\r\nimport { AXTextBoxModule } from '../textbox';\r\n\r\n@NgModule({\r\n imports: [CommonModule,\r\n AXCommonModule,\r\n FormsModule,\r\n AXCheckBoxModule,\r\n AXBadgeModule,\r\n AXEditorDecoratorModule,\r\n AXTranslationModule,\r\n AXIconModule,\r\n AXPopoverModule,\r\n AXButtonModule,\r\n AXLoadingModule,\r\n A11yModule,\r\n AXTextBoxModule\r\n ],\r\n exports: [AXSelectBoxComponent],\r\n declarations: [AXSelectBoxComponent],\r\n providers: [],\r\n})\r\nexport class AXSelectBoxModule { }\r\n","import {\r\n Component,\r\n ChangeDetectionStrategy,\r\n ViewEncapsulation,\r\n ElementRef,\r\n ChangeDetectorRef,\r\n Input,\r\n} from '@angular/core';\r\nimport { AXBaseSelectionValueMixin, AXDirection } from '../base';\r\n\r\n@Component({\r\n selector: 'ax-selection-list',\r\n templateUrl: './selection-list.component.html',\r\n inputs: [\r\n 'disabled',\r\n 'readonly',\r\n 'tabIndex',\r\n 'size',\r\n 'value',\r\n 'valueField',\r\n 'textField',\r\n 'multiple',\r\n 'items',\r\n 'selectionMode',\r\n 'cssClass'\r\n ],\r\n outputs: ['valueChange', 'onValueChanged', 'onBlur', 'onFocus'],\r\n encapsulation: ViewEncapsulation.None,\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n})\r\nexport class AXSelectionListComponent extends AXBaseSelectionValueMixin {\r\n constructor(elementRef: ElementRef, cdr: ChangeDetectorRef) {\r\n super(elementRef, cdr);\r\n }\r\n\r\n @Input()\r\n direction: AXDirection = 'horizontal';\r\n\r\n _handleOnItemValueChange(item: any, e: Event) {\r\n if (this.readonly || this.disabled) {\r\n e.preventDefault();\r\n e.stopPropagation();\r\n } else {\r\n (e.target as any).checked ? this.selectItems(item) : this.unselectItems(item);\r\n }\r\n }\r\n\r\n // _handleOnClickEvent(e: MouseEvent) {\r\n //\r\n // if (this.readonly || this.disabled) {\r\n // e.preventDefault();\r\n // e.stopPropagation();\r\n // }\r\n // }\r\n}\r\n","<div class=\"ax-selection-list ax-{{direction}}\">\r\n <ng-container *ngIf=\"multiple; then checkboxList; else radioButtonList\"></ng-container>\r\n <ng-template #checkboxList>\r\n <ng-container *ngFor=\"let item of displayItems;let i = index\">\r\n <div class=\"ax-flex ax-items-start ax-checkbox-container\" [class.ax-state-selected]=\"isItemSelected(item)\">\r\n <div class=\"ax-flex ax-items-center ax-h-5 ax-check-box\">\r\n <input [id]=\"id+'-'+i\" class=\"ax-checkbox\" type=\"checkbox\" (change)=\"_handleOnItemValueChange(item, $event)\" [checked]=\"isItemSelected(item)\" [disabled]=\"disabled || item.disabled\" [readonly]=\"readonly || item.readonly\">\r\n </div>\r\n <div class=\"ax-ms-3 ax-text-sm\">\r\n <label [for]=\"id+'-'+i\" class=\"ax-font-medium ax-text-light-700 dark:ax-text-light-100\"> {{item[textField]}}</label>\r\n <p class=\"ax-text-light-500\"> {{item.hint ? item.hint : item[hintField]}}</p>\r\n </div>\r\n </div>\r\n </ng-container>\r\n </ng-template>\r\n <ng-template #radioButtonList>\r\n <ng-container *ngFor=\"let item of displayItems;let i = index\">\r\n <div class=\"ax-flex ax-items-start ax-radio-container\">\r\n <div class=\"ax-flex ax-items-center ax-h-5 ax-radio\" [class.ax-state-selected]=\"isItemSelected(item)\">\r\n <input [id]=\"id+'-'+i\" class=\"ax-radio\" type=\"radio\" [attr.name]=\"id\" (change)=\"_handleOnItemValueChange(item, $event)\" [checked]=\"isItemSelected(item)\" [disabled]=\"disabled || item.disabled\" [readonly]=\"readonly || item.readonly\">\r\n </div>\r\n <div class=\"ax-ms-3 ax-text-sm\">\r\n <label [for]=\"id+'-'+i\" class=\"ax-font-medium ax-text-light-700 dark:ax-text-light-100\"> {{item[textField]}}</label>\r\n <p class=\"ax-text-light-500\"> {{item.hint ? item.hint : item[hintField]}}</p>\r\n </div>\r\n </div>\r\n </ng-container>\r\n </ng-template>\r\n <ng-content select=\"ax-validation-rule\">\r\n </ng-content>\r\n</div>\r\n\r\n<!-- <div class=\"ax-selection-list ax-{{direction}}\">\r\n <ng-container *ngIf=\"multiple; then checkboxList; else radioButtonList\"></ng-container>\r\n <ng-template #checkboxList>\r\n <ng-container *ngFor=\"let item of displayItems;let i = index\">\r\n <div class=\"ax-flex ax-items-start ax-checkbox-container ax-mb-2\">\r\n <div class=\"ax-flex ax-items-center ax-h-5\">\r\n <ax-check-box [checked]=\"isItemSelected(item)\" [disabled]=\"disabled || item.disabled\" [readonly]=\"readonly || item.readonly\">\r\n \r\n <ax-label> {{item[textField]}} | {{isItemSelected(item)}}</ax-label>\r\n <ax-form-hint *ngIf=\"item[hintField]\"> {{item[hintField]}} </ax-form-hint>\r\n </ax-check-box>\r\n </div>\r\n </div>\r\n </ng-container>\r\n </ng-template>\r\n <ng-template #radioButtonList>\r\n <ng-container *ngFor=\"let item of displayItems;let i = index\">\r\n <div class=\"ax-flex ax-items-start ax-radio-container ax-mb-2\">\r\n <div class=\"ax-flex ax-items-center ax-h-5\">\r\n <ax-radio [id]=\"id+'-'+i\" [checked]=\"isItemSelected(item)\" [disabled]=\"disabled || item.disabled\" [readonly]=\"readonly || item.readonly\">\r\n <ax-label>{{item[textField]}} | {{isItemSelected(item)}}</ax-label>\r\n <ax-form-hint *ngIf=\"item[hintField]\"> {{item[hintField]}} </ax-form-hint>\r\n </ax-radio>\r\n </div>\r\n </div>\r\n </ng-container>\r\n </ng-template>\r\n <ng-content select=\"ax-validation-rule\">\r\n </ng-content>\r\n</div> -->","import { NgModule } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\nimport { AXSelectionListComponent } from './selection-list.component';\r\nimport { FormsModule } from '@angular/forms';\r\n\r\nimport { AXCheckBoxModule } from '../checkbox';\r\nimport { AXRadioModule } from '../radio';\r\nimport { AXLabelModule } from '../label';\r\nimport { AXFormModule } from '../form';\r\n\r\n@NgModule({\r\n declarations: [AXSelectionListComponent],\r\n imports: [CommonModule, FormsModule, AXCheckBoxModule,AXRadioModule,AXLabelModule,AXFormModule],\r\n exports: [AXSelectionListComponent],\r\n providers: []\r\n})\r\nexport class AXSelectionListModule { }\r\n","import { Component, ChangeDetectorRef, ChangeDetectionStrategy, ViewEncapsulation, ElementRef, HostBinding, Input } from '@angular/core';\r\nimport { AXBaseValueComponentMixin } from '../base';\r\nimport { VALUE_INPUTS, VALUE_OUTPUT } from '../base/mixin/value-mixin.class';\r\n\r\n@Component({\r\n selector: 'ax-switch',\r\n templateUrl: './switch.component.html',\r\n inputs: ['disabled', 'readonly', 'tabIndex', 'size', 'cssClass', 'cssStyle', ...VALUE_INPUTS],\r\n outputs: ['onBlur', 'onFocus', ...VALUE_OUTPUT],\r\n host: { class: 'ax-switch' },\r\n encapsulation: ViewEncapsulation.None,\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n})\r\nexport class AXSwitchComponent extends AXBaseValueComponentMixin {\r\n\r\n @Input()\r\n uncheckedText: string;\r\n\r\n @Input()\r\n checkedText: string;\r\n\r\n\r\n @Input()\r\n loading: boolean;\r\n\r\n constructor(elementRef: ElementRef, cdr: ChangeDetectorRef) {\r\n super(elementRef, cdr);\r\n }\r\n\r\n _handleOnClickEvent(e: MouseEvent) {\r\n if (this.readonly || this.disabled) {\r\n e.preventDefault();\r\n e.stopPropagation();\r\n } else{\r\n this.value = !this.value;\r\n }\r\n }\r\n\r\n}\r\n","<button type=\"button\" role=\"switch\" [class.ax-state-disabled]=\"disabled\" [class.ax-state-readonly]=\"readonly\"\r\n [class.ax-switch-checked]=\"value\" (click)=\"_handleOnClickEvent($event)\">\r\n <div class=\"ax-switch-handle\">\r\n <ax-loading *ngIf=\"loading\"></ax-loading>\r\n </div>\r\n <span class=\"ax-switch-inner\" *ngIf=\"!value\">\r\n <ng-content select=\"ax-prefix\"></ng-content>\r\n\r\n </span>\r\n <span class=\"ax-switch-inner\" *ngIf=\"value\">\r\n <ng-content select=\"ax-suffix\"></ng-content>\r\n </span>\r\n\r\n</button>","import { NgModule } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\nimport { FormsModule } from '@angular/forms';\r\nimport { AXSwitchComponent } from './switch.component';\r\nimport { AXLoadingModule } from '../loading';\r\n\r\n@NgModule({\r\n declarations: [AXSwitchComponent],\r\n imports: [CommonModule, FormsModule, AXLoadingModule],\r\n exports: [AXSwitchComponent],\r\n providers: []\r\n})\r\nexport class AXSwitchModule {\r\n\r\n \r\n\r\n}","import {\r\n Component,\r\n ViewEncapsulation,\r\n ChangeDetectionStrategy,\r\n ElementRef,\r\n ChangeDetectorRef,\r\n Input,\r\n ViewChild,\r\n TemplateRef,\r\n Output,\r\n EventEmitter,\r\n HostListener,\r\n ContentChild,\r\n} from '@angular/core';\r\nimport { AXBaseComponent, AXComponentOptionChanged } from '../base';\r\nimport { _ClickableComponenetMixin } from '../base/mixin/clickable-mixin.class';\r\n\r\n\r\nexport const AXBaseTabItemMixin = _ClickableComponenetMixin(AXBaseComponent)\r\n\r\n@Component({\r\n selector: 'ax-tab-item',\r\n template: `\r\n <ng-container *ngIf=\"headerTemplate;else header\">\r\n <ng-container [ngTemplateOutlet]=\"headerTemplate\" [ngTemplateOutletContext]=\"{ $implicit: {text,key,active,disabled} }\"></ng-container>\r\n </ng-container>\r\n <!-- <ng-container *ngIf=\"headerTemplate;else header\">\r\n <ng-content select=\"ax-header\">\r\n </ng-content>\r\n </ng-container> -->\r\n <ng-template #header>\r\n <ng-content select=\"ax-prefix\"></ng-content>\r\n <span>{{text}}</span>\r\n <ng-content select=\"ax-suffix\"></ng-content>\r\n </ng-template>\r\n <ng-template #content>\r\n <ng-content select=\"ax-content\">\r\n </ng-content>\r\n </ng-template>\r\n `,\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n encapsulation: ViewEncapsulation.None,\r\n})\r\nexport class AXTabItemComponent extends AXBaseTabItemMixin {\r\n\r\n constructor(elementRef: ElementRef, cdr: ChangeDetectorRef) {\r\n super(elementRef, cdr);\r\n }\r\n\r\n @Input()\r\n text: string;\r\n\r\n\r\n @Input()\r\n key: string;\r\n\r\n @ViewChild('content')\r\n template: TemplateRef<any>;\r\n\r\n\r\n @ContentChild('header', { static: true })\r\n headerTemplate: TemplateRef<any>;\r\n\r\n\r\n @Output()\r\n activeChange: EventEmitter<boolean> = new EventEmitter<boolean>();\r\n\r\n private _active: boolean = false;\r\n @Input()\r\n public get active(): boolean {\r\n return this._active;\r\n }\r\n public set active(value: boolean) {\r\n this._setOption({\r\n name: 'active',\r\n value\r\n });\r\n }\r\n\r\n\r\n @Output()\r\n disabledChange: EventEmitter<boolean> = new EventEmitter<boolean>();\r\n private _disabled: boolean = false;\r\n @Input()\r\n public get disabled(): boolean {\r\n return this._disabled;\r\n }\r\n public set disabled(value: boolean) {\r\n this._setOption({\r\n name: 'disabled',\r\n value\r\n });\r\n }\r\n\r\n\r\n @HostListener('click', ['$event'])\r\n private __hostClick(e: MouseEvent) {\r\n if (!this.disabled) {\r\n this.onClick.emit({\r\n component: this,\r\n htmlElement: this._getHostElement(),\r\n nativeEvent: e\r\n })\r\n }\r\n }\r\n\r\n\r\n _onOptionChanged(option: AXComponentOptionChanged): void {\r\n const classListRef = this._getHostElement().classList;\r\n if (option.name == 'disabled') {\r\n option.newValue ? classListRef.add('ax-state-disabled') : classListRef.remove('ax-state-disabled')\r\n }\r\n if (option.name == 'active') {\r\n option.newValue ? classListRef.add('ax-state-active') : classListRef.remove('ax-state-active')\r\n }\r\n }\r\n}\r\n","import { Component, ViewEncapsulation, ChangeDetectionStrategy, ElementRef, ChangeDetectorRef, ContentChildren, QueryList, Input, HostBinding, ViewChild, TemplateRef, ViewContainerRef, Renderer2, ComponentFactory, Inject, Injector, Output, EventEmitter } from '@angular/core';\r\nimport { AXTabStripChangedEvent } from './tabs.class';\r\nimport { AXBaseComponent } from '../base';\r\nimport { AXTabItemComponent } from './tab-item.component';\r\nimport { AXTabContentDirective } from './tab-content.directive';\r\n\r\n@Component({\r\n selector: 'ax-tabs',\r\n template: `\r\n <div class=\"ax-items-wrapper\">\r\n <ng-content select=\"ax-tab-item\">\r\n </ng-content>\r\n </div>\r\n `,\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n encapsulation: ViewEncapsulation.None,\r\n})\r\nexport class AXTabsComponent extends AXBaseComponent {\r\n\r\n @ContentChildren(AXTabItemComponent)\r\n private _contentTabs: QueryList<AXTabItemComponent>;\r\n\r\n @Input()\r\n fitParent: boolean = false;\r\n\r\n @Input()\r\n minWidth: boolean = false;\r\n\r\n\r\n @Input()\r\n content: AXTabContentDirective;\r\n\r\n constructor(\r\n elementRef: ElementRef,\r\n cdr: ChangeDetectorRef\r\n ) {\r\n super(elementRef, cdr);\r\n }\r\n\r\n\r\n private _isUserInteraction: boolean = false;\r\n\r\n\r\n get items(): AXTabItemComponent[] {\r\n return this._contentTabs.toArray();\r\n }\r\n\r\n get selectedIndex(): number {\r\n return this.items.findIndex(c => c.active);\r\n }\r\n\r\n\r\n get selectedItem(): AXTabItemComponent {\r\n return this.items.find(c => c.active);\r\n }\r\n\r\n\r\n @Output()\r\n onActiveTabChanged: EventEmitter<AXTabStripChangedEvent> = new EventEmitter<AXTabStripChangedEvent>();\r\n\r\n onRenderCssClass() {\r\n const classList = Array.from(this._getHostElement().classList);\r\n if (!classList.some(c => ['ax-vertical', 'ax-horizontal'].includes(c))) {\r\n this._getHostElement().classList.add('ax-horizontal');\r\n }\r\n if (!classList.some(c => c.startsWith('ax-look-'))) {\r\n this._getHostElement().classList.add('ax-look-default');\r\n }\r\n }\r\n\r\n onViewInit() {\r\n const selected = this.items.find(c => c.active) || this.items[0];\r\n this.select(selected);\r\n this.items.forEach(c => {\r\n c.onClick.subscribe(t => {\r\n this._isUserInteraction = t.nativeEvent?.isTrusted;\r\n this.select(c);\r\n })\r\n });\r\n }\r\n\r\n select(tab: number | AXTabItemComponent) {\r\n let tabItem: AXTabItemComponent = typeof tab == 'number' ? this.items[tab] : tab;\r\n //\r\n if (!tab || this.selectedItem == tabItem) return;\r\n //\r\n this.items.forEach(c => c.active = false);\r\n tabItem.active = true;\r\n if (this.content) {\r\n this.content.portal = tabItem.template;\r\n }\r\n this._cdr.markForCheck();\r\n this.onActiveTabChanged.emit({\r\n component: this,\r\n isUserInteraction: this._isUserInteraction,\r\n tab: tabItem,\r\n index: this.selectedIndex\r\n })\r\n this._isUserInteraction = false;\r\n }\r\n}\r\n","import { AXEvent } from \"../base\";\r\nimport { AXTabItemComponent } from \"./tab-item.component\";\r\n\r\n\r\n\r\nexport class AXTabStripChangedEvent extends AXEvent {\r\n tab: AXTabItemComponent;\r\n index: number;\r\n}","import { Directive, TemplateRef, ViewContainerRef } from \"@angular/core\";\r\n\r\n@Directive({\r\n selector: '[axTabContent]',\r\n exportAs: 'axTabContent',\r\n inputs: ['portal: axTabContent'],\r\n})\r\nexport class AXTabContentDirective {\r\n\r\n constructor(\r\n private _viewContainerRef: ViewContainerRef,\r\n ) {\r\n }\r\n\r\n\r\n\r\n private _portal: TemplateRef<any>;\r\n public get portal(): TemplateRef<any> {\r\n return this._portal;\r\n }\r\n public set portal(v: TemplateRef<any>) {\r\n //;\r\n if (v) {\r\n this._portal = v;\r\n this._viewContainerRef.clear();\r\n const viewRef = this._viewContainerRef.createEmbeddedView(v, null, 0);\r\n }\r\n }\r\n\r\n}","import { NgModule } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\nimport { AXTabsComponent } from './tabs.component';\r\nimport { AXTabItemComponent } from './tab-item.component';\r\nimport { AXEditorDecoratorModule } from '../decorators';\r\nimport { PortalModule } from '@angular/cdk/portal';\r\nimport { AXTabContentDirective } from './tab-content.directive';\r\n\r\nconst COMPONENT = [AXTabsComponent, AXTabItemComponent, AXTabContentDirective];\r\nconst MODULES = [CommonModule, PortalModule, AXEditorDecoratorModule];\r\n\r\n@NgModule({\r\n declarations: [...COMPONENT],\r\n imports: [...MODULES],\r\n exports: [...COMPONENT],\r\n providers: [],\r\n})\r\nexport class AXTabsModule { }\r\n","import { ChangeDetectionStrategy, ChangeDetectorRef, Component, ElementRef, Input, ViewEncapsulation } from '@angular/core';\r\nimport { AXBaseTextBoxMixin } from '../base';\r\nimport { INTERACTIVE_INPUTS, INTERACTIVE_OUTPUT } from '../base/mixin/interactive-mixin.class';\r\nimport { TEXTBOX_INPUTS, TEXTBOX_OUTPUT } from '../base/mixin/textbox-mixin.class';\r\nimport { VALUE_INPUTS, VALUE_OUTPUT } from '../base/mixin/value-mixin.class';\r\n\r\n@Component({\r\n selector: 'ax-textarea',\r\n templateUrl: './textarea.component.html',\r\n inputs: [...INTERACTIVE_INPUTS, ...VALUE_INPUTS, ...TEXTBOX_INPUTS],\r\n outputs: [...INTERACTIVE_OUTPUT, ...VALUE_OUTPUT, ...TEXTBOX_OUTPUT],\r\n encapsulation: ViewEncapsulation.None,\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n host: { class: 'ax-textarea-container' }\r\n})\r\nexport class AXTextareaComponent extends AXBaseTextBoxMixin {\r\n\r\n @Input()\r\n rows: number = 0;\r\n\r\n /**\r\n * @ignore\r\n */\r\n constructor(elementRef: ElementRef, cdr: ChangeDetectorRef) {\r\n super(elementRef, cdr);\r\n }\r\n}\r\n","<ng-content select=\"ax-prefix\"></ng-content>\r\n<textarea [attr.name]=\"name\" type=\"text\" [rows]=\"rows\" [attr.placeholder]=\"placeholder\" [attr.maxlength]=\"maxLength\"\r\n [class.ax-state-disabled]=\"disabled\" [class.ax-state-readonly]=\"readonly\" [disabled]=\"disabled\"\r\n [readonly]=\"readonly\" [tabindex]=\"tabIndex\" [(ngModel)]=\"value\" (focus)=\"_emitOnFocusEvent($event)\"\r\n (blur)=\"_emitOnBlurEvent($event)\" [attr.autocomplete]=\"autoComplete\"></textarea>\r\n<!-- <ng-content select=\"ax-suffix\"></ng-content> -->\r\n","import { NgModule } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\nimport { FormsModule } from '@angular/forms';\r\nimport { AXTextareaComponent } from './textarea.component';\r\n\r\n@NgModule({\r\n declarations: [AXTextareaComponent],\r\n imports: [\r\n CommonModule,\r\n FormsModule,\r\n ],\r\n exports: [AXTextareaComponent],\r\n})\r\nexport class AXTextareaModule { }","import { AXDateTime, AXStringUtil } from '@acorex/core';\r\nimport { Component, ViewEncapsulation, ChangeDetectionStrategy, ElementRef, ChangeDetectorRef, EventEmitter, Output, Input, HostBinding, ViewChild } from '@angular/core';\r\nimport IMask from 'imask';\r\nimport { IMaskDirective } from 'angular-imask';\r\nimport { AXBaseTextBoxMixin, AXComponentOptionChanged } from '../base';\r\nimport { TEXTBOX_INPUTS, TEXTBOX_OUTPUT } from '../base/mixin/textbox-mixin.class';\r\nimport _ from 'lodash';\r\n\r\nexport type AX_TIME_FORMAT = 'HH:mm' | 'HH:mm:ss';\r\n\r\n@Component({\r\n selector: 'ax-time-box',\r\n templateUrl: './time-box.component.html',\r\n inputs: ['disabled', 'readonly', 'tabIndex', 'size', 'value', ...TEXTBOX_INPUTS],\r\n outputs: ['valueChange', 'onValueChanged', 'onBlur', 'onFocus', ...TEXTBOX_OUTPUT],\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n encapsulation: ViewEncapsulation.None,\r\n host: { class: 'ax-editor-container ax-drop-down' },\r\n})\r\nexport class AXTimeBoxComponent extends AXBaseTextBoxMixin {\r\n\r\n\r\n private _minValue: Date;\r\n @Input()\r\n public get minValue(): Date {\r\n return this._minValue;\r\n }\r\n public set minValue(v: Date) {\r\n this._minValue = v;\r\n }\r\n\r\n private _maxValue: Date;\r\n @Input()\r\n public get maxValue(): Date {\r\n return this._maxValue;\r\n }\r\n public set maxValue(v: Date) {\r\n this._maxValue = v;\r\n }\r\n\r\n\r\n\r\n @Output()\r\n formatChange = new EventEmitter<string>();\r\n\r\n private _format: AX_TIME_FORMAT = 'HH:mm';\r\n @Input()\r\n public get format(): AX_TIME_FORMAT {\r\n return this._format;\r\n }\r\n public set format(v: AX_TIME_FORMAT) {\r\n this._setOption({\r\n name: 'format',\r\n value: v\r\n });\r\n }\r\n\r\n\r\n\r\n @Output()\r\n public displayTextChange: EventEmitter<string> = new EventEmitter<string>();\r\n private _displayText: string = \"\";\r\n\r\n @Input()\r\n public get displayText(): string {\r\n return this._displayText;\r\n }\r\n\r\n public set displayText(v: string) {\r\n this._displayText = v;\r\n this.displayTextChange.emit(v);\r\n }\r\n\r\n /**\r\n * @ignore\r\n */\r\n _maskObj: IMask.MaskedPattern\r\n\r\n\r\n @ViewChild(IMaskDirective)\r\n private _maskDirective: IMaskDirective<IMask.MaskedNumber>;\r\n\r\n\r\n constructor(\r\n elementRef: ElementRef,\r\n private cdr: ChangeDetectorRef\r\n ) {\r\n super(elementRef, cdr);\r\n }\r\n\r\n\r\n onViewInit(): void {\r\n super.onViewInit();\r\n this._updateMask();\r\n }\r\n\r\n _onValueChanged(oldValue?: any, newValue?: any) {\r\n this._updateText();\r\n this._maskDirective?.maskRef?.updateValue();\r\n this._maskDirective?.maskRef?.updateControl();\r\n }\r\n\r\n\r\n _updateText() {\r\n this.displayText = this.value ? AXDateTime.convert(this.value).format(this.format) : null;\r\n }\r\n\r\n _onOptionChanged(option: AXComponentOptionChanged): void {\r\n super._onOptionChanged(option);\r\n this._updateMask();\r\n }\r\n\r\n private _updateMask() {\r\n if (!this._maskObj) {\r\n this._maskObj = IMask.createMask({\r\n mask: this.format,\r\n lazy: false,\r\n blocks: {\r\n HH: {\r\n mask: IMask.MaskedRange,\r\n from: 0,\r\n to: 23,\r\n maxLength: 2,\r\n placeholderChar: '0',\r\n autofix: 'pad'\r\n },\r\n mm: {\r\n mask: IMask.MaskedRange,\r\n from: 0,\r\n to: 59,\r\n maxLength: 2,\r\n placeholderChar: '0',\r\n autofix: 'pad'\r\n },\r\n ss: {\r\n mask: IMask.MaskedRange,\r\n from: 0,\r\n to: 59,\r\n maxLength: 2,\r\n placeholderChar: '0',\r\n autofix: 'pad'\r\n }\r\n }\r\n });\r\n }\r\n else {\r\n this._maskObj.updateOptions({\r\n mask: this.format,\r\n });\r\n }\r\n this._maskDirective?.maskRef?.updateValue();\r\n this._maskDirective?.maskRef?.updateControl();\r\n }\r\n\r\n _handleOnKeydownEvent(e: KeyboardEvent) {\r\n\r\n const ignore = () => {\r\n e.preventDefault();\r\n e.stopPropagation();\r\n };\r\n\r\n const nums: string[] = Array(10).fill(0).map((v, i) => i.toString());\r\n const chars: string[] = ['Backspace', 'ArrowDown', 'ArrowUp', 'ArrowRight', 'ArrowLeft', 'Tab', 'Enter'];\r\n const input = (e.target as HTMLInputElement);\r\n const key = (e.key);\r\n const valStr = input.value;\r\n const sStart = input.selectionStart;\r\n const sEnd = input.selectionEnd;\r\n const dateVal = new AXDateTime(this.value);\r\n //\r\n const re = /[a-zA-Z0-9]+/ig;\r\n const parts = Array.from(this.format.matchAll(re));\r\n const word = valStr.substring(sStart, sEnd);\r\n const part = parts.find(c => c.index >= sStart);\r\n const next = Array.from(valStr.substr(sEnd).matchAll(re));\r\n const prev = Array.from(valStr.substring(0, sStart).matchAll(re));\r\n //const part = parts[Array.from(valStr.matchAll(re)).findIndex(c => c[0] == word)];\r\n //\r\n\r\n const goNext = () => {\r\n this._highlightPart(input, (sEnd + (next[0]?.index || 0)));\r\n }\r\n const goPrev = () => {\r\n this._highlightPart(input, (prev[prev.length - 1]?.index));\r\n }\r\n\r\n //\r\n if (e.key === 'ArrowRight' || e.key === 'ArrowLeft') {\r\n ignore();\r\n e.key === 'ArrowRight' ? goNext() : goPrev();\r\n }\r\n else if (e.key === 'ArrowUp' || e.key === 'ArrowDown') {\r\n if (e.ctrlKey && e.key === 'ArrowDown') {\r\n //this.open();\r\n }\r\n else {\r\n const sign = e.key === 'ArrowUp' ? +1 : -1;\r\n if (part) {\r\n switch (part[0]) {\r\n case 'hh':\r\n case 'h':\r\n case 'HH':\r\n case 'H':\r\n this.value = dateVal.add('hour', sign).date;\r\n break;\r\n case 'mm':\r\n this.value = dateVal.add('minute', sign).date;\r\n break;\r\n case 'ss':\r\n case 'SS':\r\n this.value = dateVal.add('second', sign).date;\r\n break;\r\n }\r\n setTimeout(() => {\r\n this._highlightPart(input, sStart);\r\n }, Math.max(10, this.debounceTime));\r\n }\r\n }\r\n ignore();\r\n }\r\n else if (e.key == 'Backspace') {\r\n // if (this.allowNull) {\r\n // this.value = null;\r\n // }\r\n // ignore();\r\n }\r\n else if (e.key == 'Tab') {\r\n if (sEnd < valStr.length && !e.shiftKey) {\r\n goNext();\r\n ignore();\r\n }\r\n else if (sStart != 0 && e.shiftKey) {\r\n goPrev();\r\n ignore();\r\n }\r\n }\r\n else {\r\n // const keys = {\r\n // h: {\r\n // v: /^[0-9]$|^[1][0-2]$/,\r\n // p: '0'\r\n // },\r\n // H: {\r\n // v: /^[0-9]$|^1[0-9]$|2[0-3]$/,\r\n // p: '0'\r\n // },\r\n // m: {\r\n // v: /^[0-9]$|^[1-5][0-9]$/,\r\n // p: '0'\r\n // }\r\n // }\r\n\r\n // // const re = new RegExp(_.orderBy(Object.keys(keys), c => c.length, ['desc']).join(\"|\"), \"gi\");\r\n // // return format.replace(re, function (matched) {\r\n // // return keys[matched]();\r\n // // });\r\n // const t = keys[part[0]];\r\n // if (!t.v.test(key)) {\r\n // ignore();\r\n\r\n // }\r\n // else {\r\n // this._updateText()\r\n // }\r\n\r\n }\r\n // super._emitOnKeydownEvent(e);\r\n }\r\n\r\n\r\n _handleKeyUpEvent(e: KeyboardEvent) {\r\n // const input = (e.target as HTMLInputElement);\r\n // setTimeout(() => {\r\n // this._highlightPart(input);\r\n // }, 700);\r\n }\r\n\r\n _emitOnFocusEvent(e: FocusEvent): void {\r\n const input = (e.target as HTMLInputElement);\r\n this._highlightPart(input);\r\n super._emitOnFocusEvent(e);\r\n }\r\n\r\n\r\n _handleOnInputClickEvent(e: MouseEvent): void {\r\n const input = (e.target as HTMLInputElement);\r\n this._highlightPart(input);\r\n e.preventDefault();\r\n e.stopPropagation();\r\n }\r\n\r\n\r\n private _highlightPart(input: HTMLInputElement, pos?: number) {\r\n const { start, end } = AXStringUtil.getWordBoundsAtPosition(input.value, pos != null ? pos : input.selectionStart);\r\n input.setSelectionRange(start, end);\r\n }\r\n}\r\n","<ng-content select=\"ax-prefix\">\r\n</ng-content>\r\n<input class=\"ax-input\" [imask]=\"_maskObj\" [unmask]=\"false\" type=\"text\" [attr.placeholder]=\"placeholder\"\r\n [class.ax-state-disabled]=\"disabled\" [class.ax-state-readonly]=\"readonly\" [disabled]=\"disabled\"\r\n [readonly]=\"readonly\" [tabindex]=\"tabIndex\" [ngModel]=\"displayText\" \r\n (mouseup)=\"_handleOnInputClickEvent($event)\"\r\n (focus)=\"_emitOnFocusEvent($event)\"\r\n (blur)=\"_emitOnBlurEvent($event)\"\r\n (keyup)=\"_handleKeyUpEvent($event)\" \r\n (keydown)=\"_handleOnKeydownEvent($event)\" \r\n autocomplete=\"off\">\r\n\r\n<ng-content select=\"ax-suffix\">\r\n</ng-content>\r\n<ng-content select=\"ax-validation-rule\">\r\n</ng-content>","import { NgModule } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\nimport { AXTimeBoxComponent } from './time-box.component';\r\nimport { FormsModule } from '@angular/forms';\r\nimport { AXButtonModule } from '../button';\r\nimport { IMaskModule } from 'angular-imask';\r\n\r\nconst COMPONENT = [AXTimeBoxComponent];\r\nconst MODULES = [\r\n CommonModule,\r\n FormsModule,\r\n AXButtonModule,\r\n IMaskModule\r\n];\r\n\r\n@NgModule({\r\n declarations: [...COMPONENT],\r\n imports: [...MODULES],\r\n exports: [...COMPONENT],\r\n providers: [],\r\n})\r\nexport class AXTimeBoxModule { }\r\n","import { Component, ViewEncapsulation, ChangeDetectionStrategy, ElementRef, ChangeDetectorRef } from '@angular/core';\r\nimport { AXBaseComponentMixin } from '../base';\r\nimport { AXButtonComponent, AXButtonItem } from '../button';\r\nimport { AXToastOptions } from './toast.class';\r\n\r\n@Component({\r\n selector: 'ax-toast',\r\n templateUrl: './toast.component.html',\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n encapsulation: ViewEncapsulation.None,\r\n host: { class: 'ax-toast' }\r\n})\r\nexport class AXToastComponent extends AXBaseComponentMixin {\r\n\r\n options: AXToastOptions;\r\n _toastWidth: number = 100;\r\n _icon: string;\r\n close: () => void;\r\n\r\n constructor(elementRef: ElementRef, cdr: ChangeDetectorRef) {\r\n super(elementRef, cdr);\r\n }\r\n\r\n onInit() {\r\n this._getHostElement().classList.add(`ax-${this.options.type}`);\r\n if (this.options.timeOut) {\r\n setTimeout(() => {\r\n this.close();\r\n }, this.options.timeOut);\r\n }\r\n switch (this.options.type) {\r\n case 'success':\r\n this._icon = 'ax-ic ax-ic-check-filled';\r\n break;\r\n case 'warning':\r\n this._icon = 'ax-ic ax-ic-warning-filled';\r\n break;\r\n case 'danger':\r\n this._icon = 'ax-ic ax-ic-error-filled';\r\n break;\r\n default:\r\n this._icon = 'ax-ic ax-ic-info-filled';\r\n break;\r\n }\r\n }\r\n\r\n _handleButtonClick(button: AXButtonItem) {\r\n if (button.onClick) {\r\n button.onClick(this);\r\n }\r\n }\r\n\r\n\r\n\r\n\r\n\r\n}\r\n","<div class=\"ax-toast-icon-side\">\r\n <i class=\"ax-toast-icon {{_icon}}\"></i>\r\n</div>\r\n<div class=\"ax-toast-content-side\">\r\n <div class=\"ax-toast-title\">{{options.title}}</div>\r\n <div class=\"ax-toast-content\" *ngIf=\"options.content\">{{options.content}}</div>\r\n</div>\r\n<div class=\"ax-toast-dismiss-icon\">\r\n <i class=\"ax-ic ax-ic-close\" *ngIf=\"options.closeable\" (click)=\"close()\"></i>\r\n</div>\r\n<div class=\"ax-toast-progress ax-{{options.type}}\" [style.animation-duration.ms]=\"options.timeOut\" *ngIf=\"options.timeOut\">\r\n</div>","import { NgModule } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\nimport { AXToastComponent } from './toast.component';\r\nimport { AXButtonModule } from '../button';\r\n\r\nconst COMPONENT = [AXToastComponent];\r\nconst MODULES = [CommonModule, AXButtonModule];\r\n\r\n@NgModule({\r\n declarations: [...COMPONENT],\r\n imports: [...MODULES],\r\n exports: [...COMPONENT],\r\n providers: [],\r\n})\r\nexport class AXToastModule { }\r\n","import { Overlay } from '@angular/cdk/overlay';\r\nimport { ComponentPortal } from '@angular/cdk/portal';\r\nimport { Injectable, Injector } from '@angular/core';\r\nimport { AXToastOptions, AXToastRef } from './toast.class';\r\nimport { AXToastComponent } from './toast.component';\r\n\r\n\r\n\r\n@Injectable({ providedIn: 'root' })\r\nexport class AXToastService {\r\n\r\n constructor(private overlayService: Overlay, private parentInjector: Injector) { }\r\n\r\n private _activeList: AXToastComponent[] = [];\r\n\r\n info(content: string) {\r\n this.show({\r\n timeOut: 2500,\r\n type: 'info',\r\n title: content\r\n });\r\n }\r\n\r\n success(content: string) {\r\n this.show({\r\n timeOut: 2500,\r\n type: 'success',\r\n title: content\r\n });\r\n }\r\n\r\n warning(content: string) {\r\n this.show({\r\n timeOut: 2500,\r\n type: 'warning',\r\n title: content\r\n });\r\n }\r\n\r\n danger(content: string) {\r\n this.show({\r\n timeOut: 2500,\r\n type: 'danger',\r\n title: content\r\n });\r\n }\r\n\r\n show(options: AXToastOptions): AXToastRef {\r\n const opt = Object.assign(\r\n {\r\n closeable: true,\r\n location: 'bottom-center'\r\n },\r\n options\r\n );\r\n const marging = 5;\r\n\r\n let positionStrategy = this.overlayService.position().global();\r\n const pos = this.getPosition(opt.location) + marging + 'px';\r\n switch (opt.location) {\r\n case 'bottom-center':\r\n positionStrategy = positionStrategy.bottom(pos).centerHorizontally()\r\n break;\r\n case 'bottom-end':\r\n positionStrategy = positionStrategy.bottom(pos).right(marging + 'px');\r\n break;\r\n case 'bottom-start':\r\n positionStrategy = positionStrategy.bottom(pos).left(marging + 'px');\r\n break;\r\n case 'top-center':\r\n positionStrategy = positionStrategy.top(pos).centerHorizontally()\r\n break;\r\n case 'top-end':\r\n positionStrategy = positionStrategy.top(pos).right(marging + 'px');\r\n break;\r\n case 'top-start':\r\n positionStrategy = positionStrategy.top(pos).left(marging + 'px');\r\n break;\r\n default:\r\n break;\r\n }\r\n const overlayRef = this.overlayService.create(\r\n {\r\n positionStrategy,\r\n panelClass: ['ax-animate-animated', 'ax-animate-fadeIn', 'ax-animate-faster'],\r\n });\r\n const toastPortal = new ComponentPortal(AXToastComponent, null, this.parentInjector);\r\n\r\n const host = overlayRef.attach(toastPortal);\r\n (host.instance as any).visibleIndex = this._activeList.length;\r\n this._activeList.push(host.instance);\r\n if (host.instance) {\r\n Object.assign(host.instance, {\r\n options: opt,\r\n close: () => {\r\n this._activeList = this._activeList.filter(c => c != host.instance);\r\n overlayRef.dispose()\r\n }\r\n });\r\n setTimeout(() => {\r\n host.changeDetectorRef.detectChanges();\r\n }, 0);\r\n }\r\n\r\n return {\r\n close: () => {\r\n host.instance.close();\r\n }\r\n }\r\n }\r\n\r\n private getPosition(location: string) {\r\n const list = this._activeList.filter(c => c.options.location == location);\r\n if (list.length == 0) return 0;\r\n if (location.split('-')[0] == 'bottom') {\r\n return window.innerHeight - list[list.length - 1]._getHostElement().offsetTop;\r\n }\r\n else {\r\n return list[list.length - 1]._getHostElement().offsetTop + list[list.length - 1]._getHostElement().offsetHeight;\r\n }\r\n }\r\n}\r\n","import { animate, style, transition, trigger } from '@angular/animations';\r\nimport {\r\n Component,\r\n ViewEncapsulation,\r\n ChangeDetectionStrategy,\r\n ElementRef,\r\n ChangeDetectorRef,\r\n Input,\r\n} from '@angular/core';\r\nimport { AXBaseComponentMixin } from '../base';\r\n\r\n@Component({\r\n selector: 'ax-tooltip',\r\n templateUrl: './tooltip.component.html',\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n encapsulation: ViewEncapsulation.None,\r\n host: { class: 'ax-tooltip' },\r\n animations: [\r\n trigger('tooltip', [\r\n transition(':enter', [\r\n style({ opacity: 0 }),\r\n animate(50, style({ opacity: 1 })),\r\n ]),\r\n transition(':leave', [animate(50, style({ opacity: 0 }))]),\r\n ]),\r\n ],\r\n})\r\nexport class AXTooltipComponent extends AXBaseComponentMixin {\r\n constructor(elementRef: ElementRef, cdr: ChangeDetectorRef) {\r\n super(elementRef, cdr);\r\n }\r\n @Input()\r\n text: string = 'Text';\r\n\r\n @Input() position = 'top';\r\n}\r\n","<div class=\"ax-tooltip-container\">\r\n <div class=\"ax-tooltip\" @tooltip>\r\n {{ text }}\r\n </div>\r\n <div class=\"ax-tooltip-tringle ax-tooltip-tringle-{{position}}\"></div>\r\n</div>","import {\r\n ComponentRef,\r\n Directive,\r\n ElementRef,\r\n HostListener,\r\n Input,\r\n OnInit,\r\n} from '@angular/core';\r\nimport {\r\n Overlay,\r\n OverlayPositionBuilder,\r\n OverlayRef,\r\n} from '@angular/cdk/overlay';\r\nimport { ComponentPortal } from '@angular/cdk/portal';\r\nimport { AXTooltipComponent } from './tooltip.component';\r\n\r\n@Directive({ selector: '[axTooltip]' })\r\nexport class AXTooltipDirective implements OnInit {\r\n @Input('axTooltip') text = '';\r\n @Input('axTooltipPositon') position = 'top';\r\n\r\n private overlayRef: OverlayRef;\r\n\r\n positions: any;\r\n\r\n constructor(\r\n private overlay: Overlay,\r\n private overlayPositionBuilder: OverlayPositionBuilder,\r\n private elementRef: ElementRef\r\n ) {}\r\n\r\n ngOnInit(): void {\r\n switch (this.position) {\r\n default:\r\n case 'top':\r\n this.positions = {\r\n originX: 'center',\r\n originY: 'top',\r\n overlayX: 'center',\r\n overlayY: 'bottom',\r\n offsetY: -8,\r\n };\r\n break;\r\n case 'right':\r\n this.positions = {\r\n originX: 'end',\r\n originY: 'center',\r\n overlayX: 'start',\r\n overlayY: 'center',\r\n offsetX: 8,\r\n };\r\n break;\r\n case 'bottom':\r\n this.positions = {\r\n originX: 'center',\r\n originY: 'bottom',\r\n overlayX: 'center',\r\n overlayY: 'top',\r\n offsetY: 8,\r\n };\r\n break;\r\n case 'left':\r\n this.positions = {\r\n originX: 'start',\r\n originY: 'center',\r\n overlayX: 'end',\r\n overlayY: 'center',\r\n offsetX: -8,\r\n };\r\n break;\r\n }\r\n const positionStrategy = this.overlayPositionBuilder\r\n .flexibleConnectedTo(this.elementRef)\r\n .withPositions([this.positions]);\r\n\r\n this.overlayRef = this.overlay.create({ positionStrategy });\r\n }\r\n\r\n @HostListener('mouseenter')\r\n show() {\r\n const tooltipRef: ComponentRef<AXTooltipComponent> = this.overlayRef.attach(\r\n new ComponentPortal(AXTooltipComponent)\r\n );\r\n\r\n tooltipRef.instance.text = this.text;\r\n tooltipRef.instance.position = this.position;\r\n }\r\n\r\n @HostListener('mouseout')\r\n hide() {\r\n this.overlayRef.detach();\r\n }\r\n}\r\n","import { NgModule } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\nimport { AXTooltipComponent } from './tooltip.component';\r\nimport { AXTooltipDirective } from './tooltip.directive';\r\nimport { OverlayModule } from '@angular/cdk/overlay';\r\n\r\nconst COMPONENT = [AXTooltipComponent, AXTooltipDirective];\r\nconst MODULES = [CommonModule, OverlayModule];\r\n\r\n@NgModule({\r\n declarations: [...COMPONENT],\r\n imports: [...MODULES],\r\n exports: [...COMPONENT],\r\n providers: [],\r\n})\r\nexport class AXTooltipModule {}\r\n","import { Component, Input, OnInit, ViewEncapsulation } from '@angular/core';\r\n\r\n@Component({\r\n selector: 'ax-tree-view',\r\n templateUrl: './tree-view.component.html',\r\n encapsulation: ViewEncapsulation.None,\r\n host: { class: \"ax-tree-view\" }\r\n})\r\nexport class AXTreeViewComponent implements OnInit {\r\n constructor() { }\r\n\r\n ngOnInit(): void { }\r\n\r\n @Input()\r\n showLines: \"all\" | \"node\" | \"none\" = \"all\";\r\n\r\n public list = [\r\n {\r\n title: 'childless',\r\n children: []\r\n },\r\n {\r\n title: 'great grandparent',\r\n children: [\r\n {\r\n title: 'childless grandsibiling',\r\n children: []\r\n },\r\n {\r\n title: 'grandparent',\r\n children: [\r\n {\r\n title: 'childless sibiling',\r\n children: []\r\n },\r\n {\r\n title: 'another childless sibiling',\r\n children: []\r\n },\r\n {\r\n title: 'parent',\r\n children: [\r\n {\r\n title: 'child',\r\n children: []\r\n },\r\n {\r\n title: 'another child',\r\n children: []\r\n },\r\n ]\r\n },\r\n {\r\n title: 'another parent',\r\n children: [\r\n {\r\n title: 'child',\r\n children: []\r\n },\r\n ]\r\n },\r\n ]\r\n },\r\n {\r\n title: 'another grandparent',\r\n children: [\r\n {\r\n title: 'parent',\r\n children: [\r\n {\r\n title: 'child',\r\n children: []\r\n },\r\n {\r\n title: 'another child',\r\n children: []\r\n },\r\n {\r\n title: 'a third child',\r\n children: []\r\n },\r\n {\r\n title: 'teen mother',\r\n children: [\r\n {\r\n title: 'accident',\r\n children: []\r\n },\r\n ]\r\n },\r\n ]\r\n },\r\n ]\r\n },\r\n ]\r\n },\r\n ];\r\n\r\n}\r\n","<ul class=\"ax-list-{{showLines}}\">\r\n <ng-template #recursiveList let-list>\r\n <li *ngFor=\"let item of list\">\r\n <span>\r\n <ax-check-box></ax-check-box>\r\n \r\n <span>{{item.title}}</span>\r\n </span>\r\n <ul *ngIf=\"item.children.length > 0\">\r\n <ng-container *ngTemplateOutlet=\"recursiveList; context:{ $implicit: item.children }\"></ng-container>\r\n </ul>\r\n </li>\r\n </ng-template>\r\n <ng-container *ngTemplateOutlet=\"recursiveList; context:{ $implicit: list }\"></ng-container>\r\n </ul>","import { NgModule } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\nimport { AXCheckBoxModule } from '../checkbox';\r\nimport { AXTreeViewComponent } from './tree-view.component';\r\n\r\n@NgModule({\r\n declarations: [AXTreeViewComponent],\r\n imports: [CommonModule, AXCheckBoxModule],\r\n exports: [AXTreeViewComponent],\r\n providers: [],\r\n})\r\nexport class AXTreeViewModule { }","import { ChangeDetectionStrategy, ChangeDetectorRef, Component, ElementRef, HostBinding, Input, ViewEncapsulation } from '@angular/core';\r\nimport { AXValidationRuleResult, AXValidationRule, AXValidationRuleTypes } from './validation.class';\r\nimport { AXTranslator } from '@acorex/core';\r\nimport { AXBaseComponentMixin } from '../base';\r\n\r\n\r\n// @dynamic\r\nexport class AXValidationRules {\r\n private static registredRules: { name: string, rule: AXValidationRule }[] = [];\r\n\r\n public static addRule(name: string, rule: AXValidationRule) {\r\n const exists = AXValidationRules.get(name);\r\n if (exists) {\r\n exists.rule = rule;\r\n }\r\n else {\r\n AXValidationRules.registredRules.push({\r\n name,\r\n rule\r\n });\r\n }\r\n }\r\n\r\n public static get(name: string) {\r\n return this.registredRules.find(c => c.name === name);\r\n }\r\n}\r\n\r\n\r\n@Component({\r\n selector: 'ax-validation-rule',\r\n template: '',\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n encapsulation: ViewEncapsulation.None\r\n})\r\nexport class AXValidationRuleComponent extends AXBaseComponentMixin implements AXValidationRule {\r\n\r\n @Input()\r\n rule: AXValidationRuleTypes = 'required';\r\n\r\n @Input()\r\n message: string;\r\n\r\n @Input()\r\n showMessage: boolean = true;\r\n\r\n @Input()\r\n value: any;\r\n\r\n @Input()\r\n enabled: boolean = true;\r\n\r\n constructor(elementRef: ElementRef, cdr: ChangeDetectorRef) {\r\n super(elementRef, cdr);\r\n }\r\n\r\n onInit() {\r\n (this._getHostElement() as any).validate = this.validate.bind(this);\r\n }\r\n\r\n validate(value: any): Promise<AXValidationRuleResult> {\r\n if (this.enabled === false) {\r\n return Promise.resolve({ result: true });\r\n }\r\n const regRule = AXValidationRules.get(this.rule);\r\n if (regRule) {\r\n return this._internalValidate(regRule.rule.rule, value, this.message || regRule.rule.message, regRule.rule.value);\r\n }\r\n else {\r\n return this._internalValidate(this.rule, value, this.message, this.value);\r\n }\r\n }\r\n\r\n\r\n private _internalValidate(type: string, value?: any, message?: string, ruleValue?: any): Promise<AXValidationRuleResult> {\r\n return new Promise<AXValidationRuleResult>(resolve => {\r\n switch (type) {\r\n case 'required':\r\n resolve({\r\n message: this.showMessage ? (message || AXTranslator.get('validation.messages.required')) : null,\r\n result: value != null && value != '' && (!Array.isArray(value) || (Array.isArray(value) && value.length > 0))\r\n });\r\n break;\r\n case 'regex':\r\n const ex = new RegExp(ruleValue);\r\n resolve({\r\n message: this.showMessage ? (message || AXTranslator.get('validation.messages.regex')) : null,\r\n result: ex.test(value)\r\n });\r\n break;\r\n case 'custom':\r\n case 'callback':\r\n if (typeof ruleValue === 'function') {\r\n const res: any = {};\r\n res.message = this.showMessage ? message : null;\r\n const val = ruleValue({ value, message });\r\n if (val instanceof Promise) {\r\n val.then(c => {\r\n res.result = c;\r\n }).catch(c => {\r\n res.result = false;\r\n }).finally(() => {\r\n resolve(res);\r\n });\r\n }\r\n else {\r\n res.result = val;\r\n resolve(res);\r\n }\r\n }\r\n else {\r\n resolve({ result: true });\r\n }\r\n break;\r\n default:\r\n resolve({ result: true });\r\n }\r\n });\r\n }\r\n}\r\n","import { NgModule } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\nimport { AXValidationRuleComponent, AXValidationRules } from './validation-rule.widget';\r\nimport { AXTranslator } from '@acorex/core';\r\n\r\n\r\n@NgModule({\r\n declarations: [AXValidationRuleComponent],\r\n imports: [CommonModule],\r\n exports: [AXValidationRuleComponent],\r\n providers: []\r\n})\r\nexport class AXValidationModule {\r\n constructor() {\r\n AXValidationRules.addRule('email', {\r\n message: AXTranslator.get('validation.messages.email'),\r\n rule: 'regex',\r\n value: /^(([^<>()[\\]\\\\.,;:\\s@\"]+(\\.[^<>()[\\]\\\\.,;:\\s@\"]+)*)|(\".+\"))@((\\[[0-9]{1,3}\\.[0-9]{1,3}\\.[0-9]{1,3}\\.[0-9]{1,3}\\])|(([a-zA-Z\\-0-9]+\\.)+[a-zA-Z]{2,}))$/\r\n })\r\n AXValidationRules.addRule('phone', {\r\n message: AXTranslator.get('validation.messages.phone'),\r\n rule: 'regex',\r\n value: /^[+]*[(]{0,1}[0-9]{1,4}[)]{0,1}[-\\s\\./0-9]*$/\r\n })\r\n }\r\n}\r\n","/**\r\n * Public API refrences of components\r\n * @module @acorex/components\r\n */\r\nexport * from \"./lib/alert\";\r\nexport * from \"./lib/avatar\";\r\nexport * from \"./lib/badge\";\r\nexport * from \"./lib/base\";\r\nexport * from \"./lib/button\";\r\nexport * from \"./lib/calendar\";\r\nexport * from \"./lib/carousel\";\r\nexport * from \"./lib/checkbox\";\r\nexport * from \"./lib/datalist\";\r\n// export * from \"./lib/datapager\";\r\nexport * from \"./lib/datepicker\";\r\nexport * from \"./lib/decorators\";\r\nexport * from \"./lib/dialog\";\r\nexport * from \"./lib/drawer\";\r\nexport * from \"./lib/dropdown\";\r\nexport * from \"./lib/form\";\r\nexport * from \"./lib/icon\";\r\nexport * from \"./lib/input-mask\";\r\nexport * from \"./lib/label\";\r\nexport * from \"./lib/loading\";\r\nexport * from \"./lib/menu\";\r\nexport * from \"./lib/number-box\";\r\nexport * from \"./lib/page\";\r\nexport * from \"./lib/password-box\";\r\nexport * from \"./lib/popover\";\r\nexport * from \"./lib/popup\";\r\nexport * from \"./lib/progress-bar\";\r\nexport * from \"./lib/radio\";\r\nexport * from \"./lib/range-slider\";\r\nexport * from \"./lib/selectbox\";\r\nexport * from \"./lib/selection-list\";\r\nexport * from \"./lib/switch\";\r\nexport * from \"./lib/tabs\";\r\nexport * from \"./lib/textarea\";\r\nexport * from \"./lib/textbox\";\r\nexport * from \"./lib/time-box\";\r\nexport * from \"./lib/toast\";\r\nexport * from \"./lib/tooltip\";\r\nexport * from \"./lib/treeview\";\r\nexport * from \"./lib/validation\";","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["COMPONENT","MODULES"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;MAgBa,eAAe;;;;IAqBxB,YAA2B,GAAG,IAAW;QApBzC,OAAE,GAAW,KAAK,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,MAAM,EAAE,GAAG,IAAI,CAAC,GAAG,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC,EAAE,CAAC;QAWjE,8CAAwB;QAUpB,uBAAA,IAAI,+BAAe,IAAI,CAAC,CAAC,CAAC,MAAA,CAAC;QAC3B,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC;KACvB;IAED,QAAQ;QACJ,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC;QACtB,IAAI,CAAC,eAAe,EAAE,CAAC;KAC1B;IAED,eAAe;QACX,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC;QACxB,IAAI,CAAC,mBAAmB,EAAE,CAAC;KAC9B;IAED,WAAW;QACP,IAAI,CAAC,kBAAkB,EAAE,CAAC;KAC7B;IAED,eAAe;QACX,OAAO,uBAAA,IAAI,mCAAY,CAAC,aAAkB,CAAC;KAC9C;IAED,gBAAgB;QACZ,OAAO,IAAI,CAAC,eAAe,EAAE,CAAC,iBAAiC,CAAC;KACnE;IAGD,eAAe;QACV,IAAI,CAAC,eAAe,EAAU,CAAC,aAAa,GAAG,IAAI,CAAC;QAErD,IAAI,IAAI,CAAC,GAAG,IAAI,IAAI,EAAE;YAClB,IAAI,CAAC,GAAG,GAAG,MAAM,CAAC,gBAAgB,CAAC,IAAI,CAAC,eAAe,EAAE,EAAE,IAAI,CAAC,CAAC,gBAAgB,CAAC,WAAW,CAAC,KAAK,KAAK,CAAC;SAC5G;;;;;QAKD,IAAI,CAAC,MAAM,EAAE,CAAC;QACd,IAAI,CAAC,gBAAgB,EAAE,CAAC;KAC3B;IAED,mBAAmB;QACf,IAAI,CAAC,UAAU,EAAE,CAAC;KACrB;IAED,kBAAkB;QACd,IAAI,CAAC,SAAS,EAAE,CAAC;KACpB;IAED,MAAM;KACL;IAED,gBAAgB;KACf;IAED,UAAU;KACT;IAED,SAAS;KACR;IAED,iBAAiB,CAAC,MAAiC;QAC/C,OAAO,MAAM,EAAE,KAAK,CAAC;KACxB;IACD,gBAAgB,CAAC,MAAgC;KAEhD;IAED,UAAU,CAAC,MAA4B;QACnC,MAAM,QAAQ,GAAG,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;QACnC,MAAM,QAAQ,GAAG,IAAI,CAAC,iBAAiB,CAAC,EAAE,IAAI,EAAE,MAAM,CAAC,IAAI,EAAE,KAAK,EAAE,MAAM,CAAC,KAAK,EAAE,CAAC,CAAC;;QAEpF,IAAI,QAAQ,IAAI,QAAQ,EAAE;YACtB,IAAI,MAAM,CAAC,cAAc;gBACrB,MAAM,CAAC,cAAc,EAAE,CAAC;YAC5B,IAAI,CAAC,IAAI,MAAM,CAAC,IAAI,EAAE,CAAC,GAAG,MAAM,CAAC,KAAK,CAAC;YACvC,IAAI,CAAC,gBAAgB,CAAC,EAAE,IAAI,EAAE,MAAM,CAAC,IAAI,EAAE,QAAQ,EAAE,QAAQ,EAAE,CAAC,CAAC;YACjE,MAAM,OAAO,GAAG,IAAI,CAAC,GAAG,MAAM,CAAC,IAAI,QAAQ,CAAsB,CAAC;YAClE,IAAI,OAAO;gBACP,OAAO,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;YAC3B,IAAI,MAAM,CAAC,aAAa;gBACpB,MAAM,CAAC,aAAa,EAAE,CAAC;SAC9B;KACJ;;;4GAzGQ,eAAe,kBAqBJ,KAAK;gHArBhB,eAAe;2FAAf,eAAe;kBAD3B,UAAU;;0BAsBM,MAAM;2BAAC,KAAK;;SAwFb,oBAAoB,CAA6C,IAAW;IACxF,OAAO,cAAc,IAAI;QACrB,YAAY,GAAG,IAAW;YACtB,KAAK,CAAC,GAAG,IAAI,CAAC,CAAC;SAClB;KACJ,CAAA;AACL,CAAC;MAGY,WAAW,GAAG;IACvB,KAAK;IACL,UAAU;IACV,UAAU;EACZ;MACW,WAAW,GAAG;;AClI1B;;SCLe,qBAAqB,CAA6C,IAAW;IAC3F,OAAO,cAAc,IAAI;QAoEvB,YAAY,GAAG,IAAW;YACxB,KAAK,CAAC,GAAG,IAAI,CAAC,CAAC;;;;YA7CjB,mBAAc,GAAY,KAAK,CAAC;;;;YAKhC,mBAAc,GAAY,KAAK,CAAC;YAKhC,qBAAgB,GAA0B,IAAI,YAAY,EAAE,CAAC;YAC7D,gBAAW,GAAa,KAAK,CAAC;YAe9B,mBAAc,GAA0B,IAAI,YAAY,EAAE,CAAC;YAC3D,cAAS,GAAa,KAAK,CAAC;SAmB3B;;;;QA/DD,IAAI,IAAI;YACN,OAAO,IAAI,CAAC,KAAK,CAAC;SACnB;QACD,IAAI,IAAI,CAAC,CAAS;YAChB,IAAI,CAAC,UAAU,CAAC;gBACd,IAAI,EAAE,MAAM;gBACZ,KAAK,EAAE,CAAC;gBACR,aAAa,EAAE;oBACb,IAAI,CAAC,IAAI,CAAC,YAAY,EAAE,CAAC;iBAC1B;aACF,CAAC,CAAA;SACH;;;;QAqBD,IAAI,UAAU;YACZ,OAAO,IAAI,CAAC,WAAW,CAAC;SACzB;QACD,IAAI,UAAU,CAAC,KAAc;YAC3B,IAAI,CAAC,UAAU,CAAC;gBACd,IAAI,EAAE,YAAY;gBAClB,KAAK;aACN,CAAC,CAAC;SACJ;;;;QAQD,IAAI,QAAQ;YACV,OAAO,IAAI,CAAC,SAAS,CAAC;SACvB;QACD,IAAI,QAAQ,CAAC,KAAc;YACzB,IAAI,CAAC,UAAU,CAAC;gBACd,IAAI,EAAE,UAAU;gBAChB,KAAK;gBACL,aAAa,EAAE;oBACb,IAAI,CAAC,IAAI,CAAC,YAAY,EAAE,CAAC;iBAC1B;aACF,CAAC,CAAC;SACJ;QAMD,mBAAmB;YACjB,KAAK,CAAC,mBAAmB,EAAE,CAAC;YAC5B,IAAI,IAAI,CAAC,cAAc,EAAE;gBACvB,UAAU,CAAC;oBACR,IAAY,CAAC,KAAK,EAAE,CAAC;iBACvB,EAAE,CAAC,CAAC,CAAC;aACP;SACF;QAED,kBAAkB;YAChB,KAAK,CAAC,kBAAkB,EAAE,CAAC;SAC5B;QAGD,IAAI,QAAQ;YACV,MAAM,UAAU,GAAG;gBACjB,gBAAgB,EAAE,CAAC,IAAI,CAAC,IAAI;gBAC5B,mBAAmB,EAAE,IAAI,CAAC,UAAU,CAAC;gBACrC,mBAAmB,EAAE,IAAI,CAAC,QAAQ;aACnC,CAAC;YACF,UAAU,CAAC,MAAM,IAAI,CAAC,OAAO,CAAC,IAAI,SAAS,GAAG,IAAI,CAAC,MAAM,CAAC,GAAG,GAAG,GAAG,IAAI,CAAC,MAAM,CAAC,GAAG,UAAU,EAAE,CAAC,GAAG,IAAI,CAAC;YACvG,OAAO,UAAU,CAAC;SACnB;KACF,CAAC;AACJ,CAAC;AAEM,MAAM,aAAa,GAAG;IAC3B,MAAM;IACN,gBAAgB;IAChB,gBAAgB;IAChB,YAAY;IACZ,UAAU;CACX,CAAC;AACK,MAAM,aAAa,GAAG,CAAC,QAAQ,EAAE,SAAS,EAAE,SAAS,EAAE,gBAAgB,EAAE,kBAAkB,CAAC;;SCxGnF,yBAAyB,CAA6C,IAAW;IAC7F,OAAO,cAAc,IAAI;;;;QAmBrB,YAAY,GAAG,IAAW;YACtB,KAAK,CAAC,GAAG,IAAI,CAAC,CAAC;;;;;YAdnB,YAAO,GAA+B,IAAI,YAAY,EAAgB,CAAC;SAetE;QAbD,iBAAiB,CAAC,CAAa;YAC3B,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC;gBACd,SAAS,EAAE,IAAI;gBACf,WAAW,EAAE,IAAI,CAAC,eAAe,EAAE;gBACnC,WAAW,EAAE,CAAC;aACjB,CAAC,CAAC;SACN;KAQJ,CAAA;AACL;;SCzBgB,wBAAwB,CAA6C,IAAW;IAC5F,OAAO,cAAc,IAAI;QAErB,YAAY,GAAG,IAAW;YACtB,KAAK,CAAC,GAAG,IAAI,CAAC,CAAC;YAGnB,gBAAW,GAAmC,IAAI,YAAY,EAAE,CAAC;YACjE,WAAM,GAAqB,SAAS,CAAC;YAiBrC,eAAU,GAAoC,IAAI,YAAY,EAAE,CAAC;YACjE,UAAK,GAAuB,IAAI,CAAC;SArB9B;;;;QAOH,IAAI,KAAK;YACL,OAAO,IAAI,CAAC,MAAM,CAAC;SACtB;QACD,IAAI,KAAK,CAAC,KAAuB;YAC7B,IAAI,CAAC,UAAU,CAAC;gBACZ,IAAI,EAAE,OAAO;gBACb,KAAK;gBACL,aAAa,EAAE;oBACX,IAAI,CAAC,IAAI,CAAC,YAAY,EAAE,CAAC;iBAC5B;aACJ,CAAC,CAAC;SACN;;;;QAOD,IAAI,IAAI;YACJ,OAAO,IAAI,CAAC,KAAK,CAAC;SACrB;QACD,IAAI,IAAI,CAAC,KAAwB;YAC7B,IAAI,CAAC,UAAU,CAAC;gBACZ,IAAI,EAAE,MAAM;gBACZ,KAAK;gBACL,aAAa,EAAE;oBACX,IAAI,CAAC,IAAI,CAAC,YAAY,EAAE,CAAC;iBAC5B;aACJ,CAAC,CAAC;SACN;KACJ,CAAA;AACL,CAAC;AAGM,MAAM,iBAAiB,GAAG;IAC7B,OAAO;IACP,MAAM;CACP,CAAC;AACK,MAAM,iBAAiB,GAAG,EAAE;;SCjDrB,wBAAwB,CAA6C,IAAW;;IAC5F,YAAO,cAAc,IAAI;YAuBrB,YAAY,GAAG,IAAW;gBACtB,KAAK,CAAC,GAAG,IAAI,CAAC,CAAC;;gBAtBnB,eAAU,GAAW,IAAI,CAAC;gBAC1B,cAAS,GAAW,MAAM,CAAC;gBAE3B,aAAQ,GAAW,EAAE,CAAC;gBAEtB,uBAAuB,CAAC,EAAC;gBACzB,qBAAsB,KAAK,EAAC;gBAC5B,uBAAsB,EAAE,EAAC;gBACzB,qBAAoB,EAAE,EAAC;gBACvB,sBAAsB,CAAC,EAAC;gBAExB,kBAAmB,KAAK,EAAC;gBAezB,iBAA0B,EAAE,EAAC;aAF5B;YAXD,IAAI,UAAU;gBACV,OAAO,uBAAA,IAAI,mBAAY,CAAC;aAC3B;YAED,IAAI,WAAW;gBACX,OAAO,uBAAA,IAAI,oBAAa,EAAE,MAAM,IAAI,CAAC,CAAC;aACzC;YAQD,IAAI,KAAK;gBACL,OAAO,uBAAA,IAAI,cAAO,CAAC;aACtB;YACD,IAAI,KAAK,CAAC,CAAkB;gBACxB,IAAI,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE;oBAClB,uBAAA,IAAI,UAAU,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC,MAAA,CAAC;oBAClC,IAAI,CAAC,aAAa,EAAE,CAAC;oBACrB,uBAAA,IAAI,sCAAmB,MAAvB,IAAI,CAAqB,CAAC;iBAC7B;qBACI,IAAI,OAAO,CAAC,KAAK,UAAU,EAAE;oBAC9B,uBAAA,IAAI,WAAW,IAAI,MAAA,CAAC;oBACpB,uBAAA,IAAI,UAAU,CAAC,MAAA,CAAC;iBACnB;qBACI;oBACD,uBAAA,IAAI,UAAU,EAAE,MAAA,CAAC;oBACjB,IAAI,CAAC,aAAa,EAAE,CAAC;oBACrB,uBAAA,IAAI,sCAAmB,MAAvB,IAAI,CAAqB,CAAC;iBAC7B;aACJ;YAED,IAAI,YAAY;gBACZ,IAAI,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE;oBAC3B,QAAQ,uBAAA,IAAI,cAAO,IAAI,EAAE,EAAW;iBACvC;qBACI,IAAI,OAAO,uBAAA,IAAI,cAAO,IAAI,UAAU,EAAE;oBACvC,OAAO,uBAAA,IAAI,oBAAa,IAAI,EAAE,CAAC;iBAClC;gBACD,OAAO,EAAE,CAAC;aACb;YAED,IAAI,SAAS;gBAET,OAAO,uBAAA,IAAI,kBAAW,IAAI,EAAE,CAAC;aAChC;YAED,IAAI,SAAS;gBACT,OAAO,uBAAA,IAAI,kBAAW,CAAC;aAC1B;YAED,WAAW,CAAC,CAAQ;gBAChB,OAAO,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC;oBACxB,IAAI,OAAO,CAAC,IAAI,QAAQ;wBACpB,OAAO,CAAC,CAAA;yBACP;wBACD,MAAM,EAAE,GAAQ,EAAE,CAAC;wBACnB,EAAE,CAAC,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC;wBACxB,EAAE,CAAC,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,SAAS,CAAC,GAAG,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC;wBAC3E,OAAO,EAAE,CAAC;qBACb;iBACJ,CAAC,EAAE,IAAI,CAAC,UAAU,CAAC,CAAC;aACxB;YAED,UAAU,CAAC,IAA+B;gBACtC,IAAI,CAAC,IAAI,CAAC,WAAW,IAAI,IAAI,CAAC,UAAU,IAAI,IAAI,CAAC,UAAU,IAAI,CAAC,KAAK,uBAAA,IAAI,kBAAW,IAAI,CAAC,uBAAA,IAAI,eAAQ,EAAE;oBACnG,OAAO;iBACV;gBACD,IAAI,uBAAA,IAAI,cAAO,EAAE;oBACb,uBAAA,IAAI,cAAc,IAAI,MAAA,CAAC;oBACvB,MAAM,OAAO,GAAG,uBAAA,IAAI,cAAsC,CAAC;oBAC3D,OAAO,CAAC,EAAE,IAAI,EAAE,uBAAA,IAAI,oBAAa,GAAG,IAAI,CAAC,QAAQ,EAAE,IAAI,EAAE,IAAI,CAAC,QAAQ,EAAE,WAAW,EAAE,IAAI,EAAE,WAAW,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC;;wBAC5G,IAAI,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE;4BAClB,uBAAA,IAAI,gBAAgB,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC,MAAA,CAAC;4BACxC,uBAAA,IAAI,eAAe,CAAC,CAAC,MAAM,MAAA,CAAC;yBAC/B;6BACI;4BACD,uBAAA,IAAI,eAAe,CAAC,CAAC,KAAK,IAAI,CAAC,CAAC,KAAK,EAAE,MAAM,IAAI,CAAC,MAAA,CAAC;4BACnD,uBAAA,IAAI,gBAAgB,uBAAA,IAAI,oBAAa,CAAC,MAAM,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,MAAA,CAAC;4BACxE,4CAAA,oDAAiB,EAAjB,IAAmB,IAAA,OAAA,CAAC;yBACvB;wBACD,IAAI,CAAC,IAAI,CAAC,YAAY,EAAE,CAAC;qBAC5B,CAAC,CAAC,OAAO,CAAC;wBACP,uBAAA,IAAI,cAAc,KAAK,MAAA,CAAC;wBACxB,IAAI,CAAC,aAAa,EAAE,CAAC;wBACrB,uBAAA,IAAI,sCAAmB,MAAvB,IAAI,CAAqB,CAAC;qBAC7B,CAAC,CAAC;iBACN;aACJ;YAED,aAAa;aAEZ;YAUD,0BAA0B,CAAC,IAAI;gBAC3B,IAAI,IAAI;oBACJ,OAAO,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,SAAS,CAAC,GAAG,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC,IAAI,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;;oBAEzG,OAAO,YAAY,CAAC;aAC3B;YAED,gBAAgB,CAAC,IAAI;gBACjB,IAAI,CAAC,IAAI;oBAAE,OAAO,IAAI,CAAC;gBACvB,OAAO,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;aAChC;YAED,OAAO;gBACH,IAAI,CAAC,KAAK,EAAE,CAAC;gBACb,IAAI,CAAC,UAAU,EAAE,CAAC;aACrB;YAED,KAAK;gBACD,uBAAA,IAAI,cAAc,KAAK,MAAA,CAAC;gBACxB,IAAI,uBAAA,IAAI,oBAAa,EAAE;oBACnB,uBAAA,IAAI,oBAAa,CAAC,MAAM,GAAG,CAAC,CAAC;iBAChC;aACJ;SAEJ;;;;;;;;;;YA9BO,MAAM,SAAS,GAAG,CAAC,IAAI;gBACnB,OAAO,CAAC,IAAI,EAAE,CAAC,CAAC,WAAW,CAAC,IAAI,CAAC,QAAQ,EAAE,SAAS,CAAC,CAAC,CAAC;aAC1D,CAAA;YACD,uBAAA,IAAI,cAAc,CAAC,CAAC,WAAW,CAAC,IAAI,CAAC,YAAY,EAAE,SAAS,CAAC,MAAA,CAAC;SACjE;WA0BJ;AACL,CAAC;AAEM,MAAM,eAAe,GAAG;IAC3B,UAAU;IACV,YAAY;IACZ,WAAW;IACX,OAAO;CACV,CAAC;AACK,MAAM,eAAe,GAAG,EAAE;;SC9IjB,wBAAwB,CAA6C,IAAW;IAE5F,MAAe,KAAM,SAAQ,IAAI;QAuG7B,YAAY,GAAG,IAAW;YACtB,KAAK,CAAC,GAAG,IAAI,CAAC,CAAC;YAtGnB,aAAQ,GAAY,KAAK,CAAC;YAG1B,aAAQ,GAA0B,IAAI,YAAY,EAAW,CAAC;YAC9D,aAAQ,GAA0B,IAAI,YAAY,EAAW,CAAC;YAI9D,aAAQ,GAA0B,EAAE,CAAC;SA+FpC;QA7FD,kBAAkB;;;;YAId,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC;gBACf,SAAS,EAAE,IAAI;gBACf,WAAW,EAAE,IAAI,CAAC,eAAe,EAAE;aACtC,CAAC,CAAC;SACN;QAED,kBAAkB;YACd,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC;gBACf,SAAS,EAAE,IAAI;gBACf,WAAW,EAAE,IAAI,CAAC,eAAe,EAAE;aACtC,CAAC,CAAC;SACN;QAGD,MAAM;YACF,KAAK,CAAC,MAAM,EAAE,CAAC;YACf,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;YAC/C,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;SAClD;QAED,UAAU;;YAGN,UAAU,CAAC;gBACP,IAAI,IAAI,CAAC,QAAQ,CAAC,MAAM,IAAI,CAAC,EAAE;oBAC3B,MAAM,MAAM,GAAG,MAAM,CAAC,gBAAgB,CAAC,QAAQ,CAAC,eAAe,CAAC,CAAC,gBAAgB,CAAC,gBAAgB,CAAC,CAAC,OAAO,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,CAAC;oBACvH,MAAM,IAAI,GAA0B;wBAChC;4BACI,OAAO,EAAE,OAAO;4BAChB,OAAO,EAAE,QAAQ;4BACjB,QAAQ,EAAE,OAAO;4BACjB,QAAQ,EAAE,KAAK;4BACf,OAAO,EAAE,MAAM;yBAClB;wBACD;4BACI,OAAO,EAAE,OAAO;4BAChB,OAAO,EAAE,KAAK;4BACd,QAAQ,EAAE,OAAO;4BACjB,QAAQ,EAAE,QAAQ;4BAClB,OAAO,EAAE,CAAC,MAAM;yBACnB;wBACD;4BACI,OAAO,EAAE,KAAK;4BACd,OAAO,EAAE,QAAQ;4BACjB,QAAQ,EAAE,KAAK;4BACf,QAAQ,EAAE,KAAK;4BACf,OAAO,EAAE,MAAM;yBAClB;wBACD;4BACI,OAAO,EAAE,KAAK;4BACd,OAAO,EAAE,KAAK;4BACd,QAAQ,EAAE,KAAK;4BACf,QAAQ,EAAE,QAAQ;4BAClB,OAAO,EAAE,CAAC,MAAM;yBACnB;qBACJ,CAAC;oBACF,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC,CAAC;iBAC/B;aACJ,EAAE,GAAG,CAAC,CAAC;SACX;QAED,MAAM;YACF,IAAI,IAAI,CAAC,UAAU,CAAC,KAAK,IAAI,EAAE;gBAC3B,IAAI,CAAC,OAAO,CAAC,MAAM,EAAE,CAAC;aACzB;SACJ;QAED,KAAK;YACD,IAAI,CAAC,IAAI,CAAC,MAAM,IAAI,IAAI,CAAC,UAAU,CAAC,EAAE;gBAClC,OAAO;aACV;YACD,IAAI,CAAC,OAAO,CAAC,KAAK,EAAE,CAAC;YACpB,IAAY,EAAE,KAAK,EAAE,CAAC;SAC1B;QAED,IAAI;YACA,IAAI,IAAI,CAAC,MAAM,IAAI,IAAI,CAAC,UAAU,CAAC,EAAE;gBACjC,OAAO;aACV;YACD,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC;YACpB,IAAI,CAAC,OAAO,CAAC,KAAK,EAAE,CAAC;SACxB;QAED,IAAI,MAAM;YACN,OAAO,IAAI,CAAC,OAAO,EAAE,MAAM,CAAC;SAC/B;KAMJ;IAED,OAAO,KAAK,CAAC;AACjB,CAAC;AAGM,MAAM,eAAe,GAAG;IAC3B,QAAQ;IACR,WAAW;IACX,eAAe;IACf,UAAU;CACb,CAAC;AACK,MAAM,eAAe,GAAG,CAAC,UAAU,EAAE,UAAU,CAAC;;SCnIvC,2BAA2B,CAA6C,IAAW;;IAC/F,MAAe,KAAM,SAAQ,IAAI;;;;QA4E7B,YAAY,GAAG,IAAW;YACtB,KAAK,CAAC,GAAG,IAAI,CAAC,CAAC;YA3EnB,0BAAqB,KAAK,EAAC;YAiB3B,0BAAoB,IAAI,EAAC;;;;;YAazB,YAAO,GAA+B,IAAI,YAAY,EAAgB,CAAC;;;;;YAcvE,WAAM,GAA+B,IAAI,YAAY,EAAgB,CAAC;SAgCrE;;;;QAxED,IAAI,QAAQ,KAAc,OAAO,uBAAA,IAAI,uBAAU,CAAC,EAAE;QAClD,IAAI,QAAQ,CAAC,KAAc;YACvB,KAAK,GAAG,IAAI,CAAC,iBAAiB,CAAC,EAAE,IAAI,EAAE,UAAU,EAAE,KAAK,EAAE,KAAK,EAAE,CAAC,CAAC;YACnE,IAAI,KAAK,IAAI,IAAI,CAAC,QAAQ,EAAE;gBACxB,MAAM,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC;gBAC/B,uBAAA,IAAI,mBAAa,qBAAqB,CAAC,KAAK,CAAC,MAAA,CAAC;gBAC9C,IAAI,CAAC,gBAAgB,CAAC,EAAE,IAAI,EAAE,UAAU,EAAE,QAAQ,EAAE,QAAQ,EAAE,KAAK,EAAE,CAAC,CAAC;gBACvE,IAAI,CAAC,IAAI,CAAC,YAAY,EAAE,CAAC;aAC5B;SACJ;;;;QAQD,IAAI,QAAQ,KAAa,OAAO,IAAI,CAAC,QAAQ,GAAG,CAAC,CAAC,GAAG,uBAAA,IAAI,uBAAU,CAAC,EAAE;QACtE,IAAI,QAAQ,CAAC,KAAa;YACtB,uBAAA,IAAI,mBAAa,KAAK,IAAI,IAAI,GAAG,oBAAoB,CAAC,KAAK,CAAC,GAAG,CAAC,MAAA,CAAC;SACpE;QAQD,iBAAiB,CAAC,CAAa;YAC3B,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC;gBACd,SAAS,EAAE,IAAI;gBACf,WAAW,EAAE,IAAI,CAAC,eAAe,EAAE;gBACnC,WAAW,EAAE,CAAC;aACjB,CAAC,CAAC;SACN;QAQD,gBAAgB,CAAC,CAAa;YAC1B,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC;gBACb,SAAS,EAAE,IAAI;gBACf,WAAW,EAAE,IAAI,CAAC,eAAe,EAAE;gBACnC,WAAW,EAAE,CAAC;aACjB,CAAC,CAAC;SACN;;;;QAKD,KAAK;YACD,MAAM,SAAS,GAAG,IAAI,CAAC,eAAe,EAAE,CAAC,aAAa,CAAc,0EAA0E,CAAC,CAAC;YAChJ,IAAI,SAAS,EAAE;gBACX,SAAS,CAAC,KAAK,EAAE,CAAC;aACrB;SACJ;;;;QAKD,QAAQ;YACJ,OAAO,IAAI,CAAC,eAAe,EAAE,CAAC,OAAO,CAAC,eAAe,CAAC,IAAI,IAAI,CAAC,eAAe,EAAE,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC;SACtG;KAQJ;;IACD,OAAO,KAAK,CAAC;AACjB,CAAC;AAEM,MAAM,kBAAkB,GAAG;IAC9B,UAAU;IACV,UAAU;CACb,CAAC;AACK,MAAM,kBAAkB,GAAG,CAAC,QAAQ,EAAE,SAAS,CAAC;;SCvFvC,yBAAyB,CAA6C,IAAW;IAC7F,OAAO,cAAc,IAAI;QA2BrB,YAAY,GAAG,IAAW;YACtB,KAAK,CAAC,GAAG,IAAI,CAAC,CAAA;YA1BlB,eAAU,GAAW,IAAI,CAAC;YAC1B,cAAS,GAAW,MAAM,CAAC;YAC3B,kBAAa,GAAW,UAAU,CAAC;YAEnC,aAAQ,GAAY,KAAK,CAAC;YAC1B,kBAAa,GAAqB,OAAO,CAAC;YAgBnC,gBAAW,GAAsB,IAAI,YAAY,EAAO,CAAC;YACzD,mBAAc,GAA+C,IAAI,YAAY,EAAgC,CAAC;SAKpH;;QAnBD,IAAI,KAAK;YACL,OAAO,EAAE,CAAC;SACb;QAED,IAAI,YAAY;YACZ,OAAO,EAAE,CAAC;SACb;QAED,IAAI,SAAS;YACT,OAAO,EAAE,CAAC;SACb;QAWD,eAAe;YACX,KAAK,CAAC,eAAe,EAAE,CAAC;SAC3B;QAID,IAAI,KAAK;YACL,OAAO,IAAI,CAAC,MAAM,CAAC;SACtB;QACD,IAAI,KAAK,CAAC,CAAc;YACpB,CAAC,GAAI,IAAY,CAAC,wBAAwB,CAAC,CAAC,CAAC,CAAC;YAC9C,IAAI,CAAC,KAAK,IAAI,CAAC,MAAM,EAAE;gBACnB,MAAM,QAAQ,GAAG,YAAY,CAAC,aAAa,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;gBACzD,IAAI,IAAI,CAAC,QAAQ,EAAE;oBACf,IAAI,CAAC,MAAM,GAAG,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,EAAE,CAAC,CAAC;iBACvD;qBAAM;oBACH,IAAI,CAAC,MAAM,GAAG,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;iBAC7C;gBACD,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;gBACnC,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC;oBACrB,SAAS,EAAE,IAAI;oBACf,WAAW,EAAE,IAAI,CAAC,eAAe,EAAE;oBACnC,iBAAiB,EAAE,KAAK;oBACxB,QAAQ;oBACR,KAAK,EAAE,IAAI,CAAC,MAAM;oBAClB,YAAY,EAAE,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;oBAC7D,aAAa,EAAE,IAAI,CAAC,aAAa,CAAC,KAAK,EAAE;iBAC5C,CAAC,CAAC;gBACH,IAAI,CAAC,IAAI,IAAI,IAAI,CAAC,IAAI,SAAS,IAAI,CAAC,IAAI,EAAE,EAAE;oBACvC,IAAY,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC;iBACpC;qBACI;oBACD,IAAI,IAAI,CAAC,SAAS,EAAE;wBACf,IAAY,CAAC,QAAQ,EAAE,CAAC;qBAC5B;iBACJ;gBACD,IAAI,CAAC,gBAAgB,EAAE,CAAC;aAC3B;SACJ;QAGD,IAAI,aAAa;YACb,OAAO,IAAI,CAAC,cAAc,IAAI,EAAE,CAAC;SACpC;QAED,gBAAgB;YACZ,MAAM,IAAI,GAAG;gBACT,IAAI,IAAI,CAAC,KAAK,IAAI,IAAI,IAAI,IAAI,CAAC,KAAK,IAAI,SAAS,EAAE;oBAC/C,OAAO,EAAE,CAAC;iBACb;gBACD,MAAM,KAAK,GAAG,IAAI,CAAC,SAAS,CAAC;gBAC7B,IAAI,KAAK,CAAC,MAAM,GAAG,CAAC,EAAE;oBAClB,OAAO,KAAK,CAAC,MAAM,CAAC,CAAC;wBACjB,IAAI,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE;4BAC3B,OAAO,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,EAAE;gCACrB,IAAI,OAAO,EAAE,KAAK,QAAQ,EAAE;oCACxB,OAAO,CAAC,CAAC,IAAI,CAAC,UAAU,CAAC,KAAK,EAAE,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;iCACrD;qCACI;oCACD,OAAO,CAAC,CAAC,IAAI,CAAC,UAAU,CAAC,KAAK,EAAE,CAAC;iCACpC;6BACJ,CAAC,CAAC;yBACN;6BACI;4BACD,IAAI,OAAO,IAAI,CAAC,KAAK,KAAK,QAAQ,EAAE;gCAChC,OAAO,CAAC,CAAC,IAAI,CAAC,UAAU,CAAC,KAAK,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;6BAC7D;iCACI;gCACD,OAAO,CAAC,CAAC,IAAI,CAAC,UAAU,CAAC,KAAK,IAAI,CAAC,KAAK,CAAC;6BAC5C;yBACJ;qBACJ,CAAC,CAAC;iBACN;gBACD,IAAI,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE;oBAC3B,OAAO,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,EAAE,IAAI;;wBAExB,IAAI,OAAO,EAAE,KAAK,QAAQ,EAAE;4BACxB,OAAO,EAAE,CAAC;yBACb;6BACI;4BACD,MAAM,IAAI,GAAQ,EAAE,CAAC;4BACrB,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC;4BACnC,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC;4BAClC,OAAO,IAAI,CAAC;yBACf;qBACJ,CAAC,CAAC;iBACN;qBACI;;oBAED,IAAI,OAAO,IAAI,CAAC,KAAK,KAAK,QAAQ,EAAE;wBAChC,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;qBACvB;yBACI;wBACD,MAAM,IAAI,GAAQ,EAAE,CAAC;wBACrB,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC;wBACnC,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC;wBAClC,OAAO,CAAC,IAAI,CAAC,CAAC;qBACjB;iBACJ;aACJ,CAAC;YACF,IAAI,CAAC,cAAc,GAAG,IAAI,EAAE,CAAC;SAChC;QAED,kBAAkB,CAAC,IAAS;YACxB,OAAO,IAAI,CAAC,aAAa,KAAK,MAAM,GAAG,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;SACvE;QAED,aAAa,CAAC,IAAS;YACnB,OAAO,OAAO,IAAI,KAAK,QAAQ,GAAG,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,GAAG,IAAI,CAAC;SAClE;QAED,aAAa,CAAC,GAAG,KAAY;YACzB,IAAI,CAAC,KAAK,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC,EAAE;gBAC9B,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC;aACrB;iBACI,IAAI,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE;gBAChC,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,IAC7C,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC,KAAK,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,CACnD,CAAC;aACL;iBACI;gBACD,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC;aACrB;SACJ;QAED,WAAW,CAAC,GAAG,KAAY;YACvB,IAAI,KAAK,IAAI,KAAK,CAAC,MAAM,EAAE;gBACvB,IAAI,IAAI,CAAC,QAAQ,EAAE;oBACf,IAAI,CAAC,KAAK,GAAG,CAAC,IAAI,CAAC,KAAK,IAAI,EAAE,EAAE,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,IAAI,CAAC,kBAAkB,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;iBACtF;qBACI;oBACD,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,kBAAkB,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;iBAClD;aACJ;SACJ;QAED,YAAY,CAAC,GAAG,KAAY;YACxB,IAAI,KAAK,IAAI,KAAK,CAAC,MAAM,EAAE;gBACvB,KAAK,CAAC,OAAO,CAAC,IAAI;oBACd,IAAI,IAAI,CAAC,QAAQ,EAAE;wBACf,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC;qBACjF;yBACI;wBACD,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,CAAA;qBACzB;iBACJ,CAAC,CAAC;aACN;SACJ;QAED,cAAc,CAAC,IAAS;YACpB,OAAO,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,UAAU,CAAC,KAAK,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC;SACrF;QAED,cAAc,CAAC,IAAS;YACpB,OAAO,qBAAqB,CAAC,IAAI,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC,KAAK,IAAI,KAAK,IAAI,CAAC,gBAAgB,GAAG,IAAI,CAAC,gBAAgB,CAAC,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC,CAAC,EAAE,CAAC,GAAG,KAAK,CAAC,CAAC;SACnJ;KACJ,CAAA;AACL,CAAC;AAGM,MAAM,gBAAgB,GAAG;IAC5B,YAAY;IACZ,WAAW;IACX,eAAe;IACf,kBAAkB;IAClB,UAAU;IACV,eAAe;CAClB,CAAC;AACK,MAAM,gBAAgB,GAAG,CAAC,gBAAgB,EAAE,cAAc,CAAC;;SC5MlD,uBAAuB,CAA6C,IAAW;IAC3F,OAAO,cAAc,IAAI;;;;QAUrB,YAAY,GAAG,IAAW;YACtB,KAAK,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAA;SAC7B;QAED,eAAe;YACX,KAAK,CAAC,eAAe,EAAE,CAAC;SAC3B;KACJ,CAAA;AACL,CAAC;AAGM,MAAM,cAAc,GAAG;IAC1B,MAAM;CACT,CAAC;AACK,MAAM,cAAc,GAAG,EAAE;;SCjBhB,qBAAqB,CAA6C,IAAW;;IAE3F,YAAO,cAAc,IAAI;;;;YAoKvB,YAAY,GAAG,IAAW;gBACxB,KAAK,CAAC,GAAG,IAAI,CAAC,CAAC;;;;;gBA/JjB,mBAAc,GAA2C,IAAI,YAAY,EAA4B,CAAC;gBAEtG,gBAAW,GAAsB,IAAI,YAAY,EAAO,CAAC;gBAGzD,oBAAqB,KAAK,EAAC;gBAY3B,qBAAsB,IAAI,EAAC;gBAS3B,wBAAc;gBAQd,wBAAwB,CAAC,EAAC;gBAQ1B,6BAAqB,IAAI,YAAY,EAAE,EAAC;gBACxC,wBAAgB,IAAI,OAAO,EAAE,EAAC;gBAE9B,yBAAY;gBAaZ,iBAAwC,OAAO,EAAC;aAsG/C;;;;YAtJD,IAAI,QAAQ;gBACV,OAAO,uBAAA,IAAI,iBAAU,CAAC;aACvB;YACD,IAAI,QAAQ,CAAC,KAAc;gBACzB,uBAAA,IAAI,aAAa,qBAAqB,CAAC,KAAK,CAAC,MAAA,CAAC;aAC/C;YAGD,IAAI,SAAS;gBACX,OAAO,uBAAA,IAAI,kBAAW,CAAC;aACxB;YACD,IAAI,SAAS,CAAC,KAAc;gBAC1B,uBAAA,IAAI,cAAc,qBAAqB,CAAC,KAAK,CAAC,MAAA,CAAC;aAChD;YAID,IAAI,IAAI;gBACN,OAAO,uBAAA,IAAI,aAAM,CAAC;aACnB;YACD,IAAI,IAAI,CAAC,KAAa;gBACpB,uBAAA,IAAI,SAAS,KAAK,MAAA,CAAC;aACpB;YAGD,IAAI,YAAY;gBACd,OAAO,uBAAA,IAAI,qBAAc,CAAC;aAC3B;YACD,IAAI,YAAY,CAAC,KAAa;gBAC5B,uBAAA,IAAI,iBAAiB,oBAAoB,CAAC,KAAK,CAAC,MAAA,CAAC;aAClD;YAMD,IAAI,KAAK;gBACP,OAAO,uBAAA,IAAI,cAAO,CAAC;aACpB;YACD,IAAI,KAAK,CAAC,CAAM;gBACd,CAAC,GAAG,IAAI,CAAC,wBAAwB,CAAC,CAAC,CAAC,CAAC;gBACrC,IAAI,CAAC,IAAI,CAAC,SAAS,IAAI,IAAI,CAAC,YAAY,IAAI,CAAC,EAAE;oBAC7C,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC;iBACnB;qBAAM;oBACL,uBAAA,IAAI,qBAAc,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;iBAC5B;aACF;YAID,IAAI,KAAK;gBACP,OAAO,uBAAA,IAAI,cAAO,CAAC;aACpB;YAED,wBAAwB,CAAC,QAAc,EAAE,QAAc;gBACrD,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;gBAChC,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC;oBACvB,SAAS,EAAE,IAAI;oBACf,KAAK,EAAE,QAAQ;oBACf,QAAQ,EAAE,QAAQ;oBAClB,IAAI,EAAE,IAAI,CAAC,IAAI;iBAChB,CAAC,CAAC;gBACH,IAAI,CAAC,eAAe,CAAC,QAAQ,EAAE,uBAAA,IAAI,cAAO,CAAC,CAAC;aAC7C;YAED,wBAAwB,CAAC,KAAU;;;gBAGjC,OAAO,IAAI,CAAC,gBAAgB,CAAC,KAAK,CAAC,CAAC;aACrC;YAED,gBAAgB,CAAC,KAAU;gBACzB,OAAO,KAAK,CAAC;aACd;YAED,eAAe,CAAC,QAAa,EAAE,QAAa,KAAW;YAEvD,eAAe;gBACb,IAAI,CAAC,eAAe,EAAE,CAAC,YAAY,CAAC,eAAe,EAAE,MAAM,CAAC,CAAC;gBAC7D,uBAAA,IAAI,sBAAsB,uBAAA,IAAI,qBAAc;qBACzC,IAAI,CAAC,YAAY,CAAC,uBAAA,IAAI,qBAAc,CAAC,CAAC;qBACtC,IAAI,CAAC,oBAAoB,EAAE,CAAC;qBAC5B,SAAS,CAAC,CAAC,CAAC;oBACX,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC;iBACnB,CAAC,MAAA,CAAC;gBACL,KAAK,CAAC,eAAe,EAAE,CAAC;aACzB;YAED,kBAAkB;gBAChB,uBAAA,IAAI,0BAAmB,CAAC,WAAW,EAAE,CAAC;gBACtC,KAAK,CAAC,SAAS,EAAE,CAAC;aACnB;YAED,SAAS,CAAC,CAAM;gBACd,MAAM,GAAG,GAAG,uBAAA,IAAI,cAAO,CAAC;;gBAExB,IAAI,CAAC,IAAI,GAAG,EAAE;oBACZ,uBAAA,IAAI,UAAU,CAAC,MAAA,CAAC;oBAChB,IAAI,CAAC,wBAAwB,CAAC,GAAG,EAAE,uBAAA,IAAI,cAAO,CAAC,CAAC;oBAChD,IAAI,CAAC,IAAI,CAAC,YAAY,EAAE,CAAC;oBACzB,IAAI,CAAC,IAAI,IAAI,IAAI,CAAC,IAAI,SAAS,IAAI,CAAC,IAAI,EAAE,EAAE;wBAC1C,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC;qBACzB;yBAAM;wBACL,IAAI,IAAI,CAAC,SAAS,EAAE;4BAClB,IAAI,CAAC,QAAQ,EAAE,CAAC;yBACjB;qBACF;iBACF;aACF;YAED,KAAK;gBACH,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC;aACnB;YAED,QAAQ;gBACN,MAAM,KAAK,GAAG,KAAK,CAAC,IAAI,CACtB,IAAI,CAAC,eAAe,EAAE,CAAC,gBAAgB,CAAC,oBAAoB,CAAC,CAC9D,CAAC,MAAM,CAAC,CAAC,CAAC,KAAM,CAAS,CAAC,aAAa,CAAC,OAAO,CAAC,CAAC;;gBAElD,IAAI,CAAC,KAAK,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC,EAAE;oBAChC,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC;oBACxB,OAAO,OAAO,CAAC,OAAO,CAAC,EAAE,MAAM,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,CAAC,KAAK,EAAE,CAAC,CAAC;iBAC7D;gBAED,OAAO,IAAI,OAAO,CAAyB,CAAC,OAAO;oBACjD,OAAO,CAAC,GAAG,CACT,KAAK;yBACF,MAAM,CAAC,CAAC,CAAC,KAAK,OAAQ,CAAS,EAAE,QAAQ,KAAK,UAAU,CAAC;yBACzD,GAAG,CAAC,CAAC,CAAC;wBACL,OAAQ,CAAS,CAAC,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;qBACxC,CAAC,CACL,CAAC,IAAI,CAAC,CAAC,CAAC;wBACP,MAAM,KAAK,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,MAAM,KAAK,KAAK,CAAC,CAAC;wBAChD,IAAI,KAAK,EAAE;4BACT,IAAI,CAAC,SAAS,CAAC,OAAO,EAAE,KAAK,CAAC,OAAO,CAAC,CAAC;4BACvC,OAAO,CAAC,EAAE,MAAM,EAAE,KAAK,EAAE,KAAK,EAAE,IAAI,CAAC,KAAK,EAAE,CAAC,CAAC;yBAC/C;6BAAM;4BACL,IAAI,CAAC,SAAS,CAAC,SAAS,CAAC,CAAC;4BAC1B,OAAO,CAAC,EAAE,MAAM,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,CAAC,KAAK,EAAE,CAAC,CAAC;yBAC9C;qBACF,CAAC,CAAC;iBACJ,CAAC,CAAC;aACJ;YAUD,SAAS,CAAC,KAAoC,EAAE,GAAG,IAAI;gBACrD,MAAM,SAAS,GAAG,IAAI,CAAC,eAAe,EAAE,CAAC,SAAS,CAAC,QAAQ,CAAC,qBAAqB,CAAC;oBAChF,IAAI,CAAC,eAAe,EAAE;oBACtB,IAAI,CAAC,eAAe,EAAE,CAAC,aAAa,CAAC,sBAAsB,CAAC,CAAC;gBAC/D,MAAM,SAAS,GAAG,SAAS,EAAE,OAAO,CAAC,gBAAgB,CAAC,CAAC;gBACvD,MAAM,KAAK,GAAG,SAAS,EAAE,aAAa,CAAC,UAAU,CAAC,IAAI,SAAS,EAAE,aAAa,CAAC,OAAO,CAAC,CAAC;gBACxF,IAAI,MAAM,GAAG,SAAS,IAAI,IAAI,CAAC,gBAAgB,EAAE,CAAC;gBAClD,IAAI,MAAM,CAAC,aAAa,CAAC,qBAAqB,CAAC,EAAE;oBAC/C,MAAM,GAAG,MAAM,CAAC,aAAa,CAAC,qBAAqB,CAAC,CAAC;iBACtD;gBACD,MAAM,MAAM,GAAG,MAAM,CAAC,aAAa,CAAC;gBAEpC,QAAQ,KAAK;oBAEX,KAAK,OAAO;wBACV,uBAAA,IAAI,UAAU,OAAO,MAAA,CAAC;wBACtB,IAAI,MAAM,CAAC,aAAa,CAAC,mBAAmB,CAAC,EAAE;4BAC7C,MAAM,CAAC,WAAW,CAAC,MAAM,CAAC,aAAa,CAAC,mBAAmB,CAAC,CAAC,CAAC;yBAC/D;wBACD,KAAK,EAAE,SAAS,CAAC,MAAM,CAAC,gBAAgB,CAAC,CAAC;wBAC1C,MAAM,CAAC,SAAS,CAAC,MAAM,CAAC,gBAAgB,EAAE,kBAAkB,CAAC,CAAC;wBAC9D,MAAM;oBACR,KAAK,SAAS;wBACZ,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC;wBACxB,MAAM,CAAC,SAAS,CAAC,GAAG,CAAC,kBAAkB,CAAC,CAAC;wBACzC,uBAAA,IAAI,UAAU,SAAS,MAAA,CAAC;wBACxB,MAAM;oBACR,KAAK,OAAO;wBACV,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC;wBACxB,IAAI,IAAI,CAAC,CAAC,CAAC,EAAE;4BACX,MAAM,IAAI,GAAG,QAAQ,CAAC,aAAa,CAAC,MAAM,CAAC,CAAC;4BAC5C,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC;4BACzB,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,cAAc,CAAC,CAAC;4BACnC,MAAM,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC;yBAC1B;wBACD,KAAK,EAAE,SAAS,CAAC,GAAG,CAAC,gBAAgB,CAAC,CAAC;wBACvC,MAAM,CAAC,SAAS,CAAC,GAAG,CAAC,gBAAgB,CAAC,CAAC;wBAEvC,uBAAA,IAAI,UAAU,OAAO,MAAA,CAAC;wBACtB,MAAM;iBACT;gBACD,IAAI,CAAC,IAAI,CAAC,YAAY,EAAE,CAAC;aAC1B;SACF;;;;;;;;;WAAA;AACH,CAAC;AAGM,MAAM,YAAY,GAAG;IAC1B,UAAU;IACV,WAAW;IACX,OAAO;IACP,cAAc;IACd,MAAM;IACN,SAAS;CACV,CAAC;AACK,MAAM,YAAY,GAAG,CAAC,aAAa,EAAE,gBAAgB,CAAC;;SCvO7C,uBAAuB,CAA6C,IAAW;IAC3F,OAAO,cAAc,IAAI;;;;QAyCrB,YAAY,GAAG,IAAW;YACtB,KAAK,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAA;;;;YArC9B,SAAI,GAAG,MAAM,CAAA;;;;YAKb,gBAAW,GAAW,IAAI,CAAC;;;;;YAiB3B,cAAS,GAA6C,IAAI,YAAY,EAA8B,CAAC;SAgBpG;QAbD,mBAAmB,CAAC,CAAgB;YAChC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC;gBAChB,SAAS,EAAE,IAAI;gBACf,WAAW,EAAE,CAAC;aACjB,CAAC,CAAC;SACN;KASJ,CAAA;AACL,CAAC;AAEM,MAAM,cAAc,GAAG,CAAC,aAAa,EAAE,WAAW,EAAE,WAAW,EAAE,cAAc,EAAC,MAAM,EAAE,GAAG,YAAY,CAAC,CAAA;AACxG,MAAM,cAAc,GAAG,CAAC,GAAG,YAAY,CAAC;;MCzClC,oBAAoB,GAAG,oBAAoB,CAAC,eAAe,EAAE;MAE7D,uBAAuB,GAAG,uBAAuB,CAC5D,oBAAoB,CAAC,eAAe,CAAC,EACrC;MAEW,4BAA4B,GAAG,uBAAuB,CACjE,2BAA2B,CAAC,eAAe,CAAC,EAC5C;MAEW,oBAAoB,GAAG,2BAA2B,CAAC,yBAAyB,CAAC,eAAe,CAAC,EAAC;MAE9F,iBAAiB,GAAG,uBAAuB,CACtD,2BAA2B,CACzB,yBAAyB,CAAC,wBAAwB,CAAC,qBAAqB,CAAC,eAAe,CAAC,CAAC,CAAC,CAC5F,EACD;MAEW,yBAAyB,GAAG,uBAAuB,CAC9D,2BAA2B,CAAC,qBAAqB,CAAM,eAAe,CAAC,CAAC,EACxE;MAEW,kBAAkB,GAAG,uBAAuB,CACvD,2BAA2B,CACzB,qBAAqB,CAAC,uBAAuB,CAAC,eAAe,CAAC,CAAC,CAChE,EACD;MAGW,yBAAyB,GAAG,uBAAuB,CAC9D,2BAA2B,CACzB,wBAAwB,CACtB,yBAAyB,CAAC,qBAAqB,CAAM,eAAe,CAAC,CAAC,CACvE,CACF,EACD;MAEW,wBAAwB,GACnC,2BAA2B,CACzB,wBAAwB,CACtB,wBAAwB,CAAC,qBAAqB,CAAM,eAAe,CAAC,CAAC,CACtE,EACD;MAES,4BAA4B,GAAG,wBAAwB,CAAC,yBAAyB,EAAE;MAEnF,mBAAmB,GAAG,uBAAuB,CACxD,2BAA2B,CAAC,wBAAwB,CAAC,eAAe,CAAC,CAAC;;AC7DxE;;;;MAIa,OAAO;IAApB;QAUI,sBAAiB,GAAa,KAAK,CAAC;KACvC;CAAA;AAED;;;;MAIa,WAA6B,SAAQ,OAAO;CAExD;AAED;;;;MAIa,mBAAuB,SAAQ,OAAO;CAKlD;AAGD;;;;MAIa,YAAa,SAAQ,WAAuB;CAKxD;AAED;;;;MAIa,kBAAmB,SAAQ,YAAY;CAEnD;AAED;;;;MAIa,gBAAoB,SAAQ,WAAuB;CAE/D;AAED;;;;MAIa,YAAa,SAAQ,WAAuB;CACxD;AAGD;;;;MAIa,4BAA6B,SAAQ,mBAAgC;;;AC5ElF;;MCCa,cAAc,GAAG,CAAC,MAAM,EAAE,QAAQ,EAAE,SAAS,EAAE,SAAS,EAAE;MAQ1D,YAAY,GAAG,CAAC,cAAc,EAAE,eAAe,EAAE,YAAY,EAAE,WAAW,EAAE,YAAY,EAAE,SAAS,EAAE;MAIrG,aAAa,GAAG,CAAC,UAAU,EAAE,YAAY;;MCVzC,qBAAqB;IAkB9B,YAAoB,WAAuC;QAAvC,gBAAW,GAAX,WAAW,CAA4B;QAhBnD,cAAS,GAAmB,IAAI,cAAc,CAAC,OAAO;YAC1D,KAAK,IAAI,KAAK,IAAI,OAAO,EAAE;gBAEvB,IAAI,KAAK,CAAC,MAAM,EAAE;oBACd,MAAM,CAAC,GAAG,KAAK,CAAC,MAAM,CAAC;oBACvB,MAAM,QAAQ,GAAG,CAAC,CAAC,EAAE,GAAG,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,gBAAgB,CAAC,gBAAgB,CAAC,CAAC,CAAC,CAAC;oBAC1E,QAAQ,CAAC,GAAG,CAAC,CAAC,KAAK;wBACf,OAAO,EAAE,CAAC;wBACV,SAAS,EAAE,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;qBACxF,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC;wBACT,CAAC,CAAC,WAAW,GAAG,GAAG,GAAG,CAAC,CAAC,OAAO,CAAC,SAAS,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC,OAAO,CAAC,SAAS,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,SAAS,CAAC,CAAC;qBAC9G,CAAC,CAAC;iBACN;aACJ;SACJ,CAAC,CAAC;QAGC,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,WAAW,CAAC,aAAa,CAAC,CAAC;KACrD;;IAED,WAAW;QACP,IAAI,CAAC,SAAS,CAAC,UAAU,EAAE,CAAC;QAC5B,IAAI,CAAC,SAAS,CAAC,SAAS,CAAC,IAAI,CAAC,WAAW,CAAC,aAAa,CAAC,CAAC;KAC5D;;kHAzBQ,qBAAqB;sGAArB,qBAAqB;2FAArB,qBAAqB;kBADjC,SAAS;mBAAC,EAAE,QAAQ,EAAE,iBAAiB,EAAE;;;ACOzC,CAAC;AAEF,MAAM,0BAA0B,GAAqB;IACjD,YAAY,EAAE,CAAC;IACf,SAAS,EAAE,CAAC;IACZ,YAAY,EAAE,CAAC;CAClB,CAAC;MAKW,2BAA2B;IAkBpC,YAAoB,GAAe;QAAf,QAAG,GAAH,GAAG,CAAY;QAFnC,kBAAa,GAAG,EAAE,CAAC;QAkDX,wBAAmB,GAAG,CAAC,SAAS;YACpC,OAAO,SAAS,CAAC,CAAC,CAAC,CAAC,EAAE,GAAG,SAAS,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;SAC5C,CAAA;QAEO,4BAAuB,GAAG,CAAC,QAAQ;YACvC,OAAO,CAAC,CAAC,QAAQ,CAAC,EAAE,GAAG,QAAQ,CAAC,EAAE,IAAI,QAAQ,CAAC,EAAE,KAAK,IAAI,CAAC,aAAa,GAAG,GAAG,CAAC,CAAC;SACnF,CAAA;KAtDuC;IAExC,eAAe;QAEX,IAAI,CAAC,mBAAmB,EAAE,CAAC;QAE3B,IAAI,CAAC,kBAAkB,EAAE,CAAC;QAE1B,IAAI,CAAC,uBAAuB,EAAE,CAAC;KAElC;IAEO,mBAAmB;QAEvB,IAAI,CAAC,YAAY,GAAG,SAAS,CAAC,IAAI,CAAC,GAAG,CAAC,aAAa,EAAE,QAAQ,CAAC,CAAC;KAEnE;IAEO,kBAAkB;QACtB,IAAI,CAAC,iBAAiB,GAAG,IAAI,CAAC,YAAY;aACrC,IAAI,CACD,GAAG,CAAC,CAAC,CAAM,MAAwB;YAC/B,YAAY,EAAE,CAAC,CAAC,MAAM,CAAC,YAAY;YACnC,SAAS,EAAE,CAAC,CAAC,MAAM,CAAC,SAAS;YAC7B,YAAY,EAAE,CAAC,CAAC,MAAM,CAAC,YAAY;SACtC,CAAC,CAAC,EACH,QAAQ,EAAE,EACV,MAAM,CAAC,SAAS,IAAI,IAAI,CAAC,mBAAmB,CAAC,SAAS,CAAC,IAAI,IAAI,CAAC,uBAAuB,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,CACzG,CAAC;KACT;IAEO,uBAAuB;QAC3B,IAAI,CAAC,gBAAgB,GAAG,IAAI,CAAC,iBAAiB,CAAC;QAE/C,IAAI,IAAI,CAAC,iBAAiB,EAAE;YACxB,IAAI,CAAC,gBAAgB,GAAG,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAC9C,SAAS,CAAC,CAAC,0BAA0B,EAAE,0BAA0B,CAAC,CAAC,CACtE,CAAC;SACL;QAED,IAAI,CAAC,gBAAgB,CAAC,IAAI,CACtB,UAAU,CAAC;YACP,OAAO,IAAI,CAAC,cAAc,EAAE,CAAC;SAChC,CAAC,CAAC,CAAA;;KAGV;;wHAhEQ,2BAA2B;4GAA3B,2BAA2B;2FAA3B,2BAA2B;kBAHvC,SAAS;mBAAC;oBACP,QAAQ,EAAE,sBAAsB;iBACnC;iGAWG,cAAc;sBADb,KAAK;gBAIN,iBAAiB;sBADhB,KAAK;gBAIN,aAAa;sBADZ,KAAK;;;MCtBG,cAAc;;2GAAd,cAAc;4GAAd,cAAc,iBAHR,qBAAqB,EAAE,2BAA2B,aADvD,qBAAqB,EAAE,2BAA2B;4GAInD,cAAc,aAFZ,EAAE,YAHJ,EAAE;2FAKF,cAAc;kBAN1B,QAAQ;mBAAC;oBACN,OAAO,EAAE,EAAE;oBACX,OAAO,EAAE,CAAC,qBAAqB,EAAE,2BAA2B,CAAC;oBAC7D,YAAY,EAAE,CAAC,qBAAqB,EAAE,2BAA2B,CAAC;oBAClE,SAAS,EAAE,EAAE;iBAChB;;;;MCJY,gBAAgB,GAAG,wBAAwB,CAAC,eAAe,EAAE;AAE1E;;;;;MAYa,gBAAiB,SAAQ,gBAAgB;;;;IAoElD,YACI,UAAsB,EACtB,GAAsB;QAEtB,KAAK,CAAC,UAAU,EAAE,GAAG,CAAC,CAAC;QAhC3B,4CAAkB;KAiCjB;IAnED,gBAAgB,CAAC,MAAgC;QAC7C,IAAI,MAAM,CAAC,IAAI,IAAI,OAAO,EAAE;YACxB,QAAQ,IAAI,CAAC,KAAK;gBACd,KAAK,SAAS;oBACV,IAAI,CAAC,IAAI,GAAG,0BAA0B,CAAC;oBACvC,MAAM;gBACV,KAAK,SAAS;oBACV,IAAI,CAAC,IAAI,GAAG,sBAAsB,CAAC;oBACnC,MAAM;gBACV,KAAK,QAAQ;oBACT,IAAI,CAAC,IAAI,GAAG,oBAAoB,CAAC;oBACjC,MAAM;gBACV;oBACI,IAAI,CAAC,IAAI,GAAG,yBAAyB,CAAC;oBACtC,MAAM;aACb;SACJ;KACJ;;;;IAMD,IACI,WAAW;;QAEX,MAAM,MAAM,GAAG,IAAI,CAAC,IAAI,GAAG,MAAM,IAAI,CAAC,KAAK,IAAI,IAAI,CAAC,IAAI,EAAE,GAAG,MAAM,IAAI,CAAC,KAAK,UAAU,CAAC;QACxF,OAAO,oBAAoB,MAAM,EAAE,CAAC;KACvC;;;;IAWD,IACW,OAAO;QACd,OAAO,uBAAA,IAAI,iCAAS,CAAC;KACxB;IACD,IAAW,OAAO,CAAC,CAAU;QACzB,IAAI,uBAAA,IAAI,iCAAS,IAAI,CAAC,EAAE;YACpB,uBAAA,IAAI,6BAAY,CAAC,MAAA,CAAC;YAClB,MAAM,IAAI,GAAG,IAAI,CAAC,eAAe,EAAE,CAAC;YACpC,IAAI,CAAC,EAAE;gBACH,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,iBAAiB,CAAC,CAAC;gBACzC,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,kBAAkB,CAAC,CAAC;aAC1C;iBACI;gBACD,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,iBAAiB,CAAC,CAAC;gBACtC,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,kBAAkB,CAAC,CAAC;aAC7C;SACJ;KACJ;IAaD,MAAM;QACF,IAAI,IAAI,CAAC,OAAO,EAAE;YACd,UAAU,CAAC;gBACP,IAAI,CAAC,OAAO,EAAE,CAAA;aACjB,EAAE,IAAI,CAAC,OAAO,CAAC,CAAC;SACpB;KACJ;IAED,UAAU;QACN,IAAI,IAAI,CAAC,OAAO,IAAI,SAAS,EAAE;YAC3B,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC;SACvB;KACJ;;;;IAKD,OAAO;QACH,MAAM,IAAI,GAAG,IAAI,CAAC,eAAe,EAAE,CAAC;QACpC,IAAI,CAAC,OAAO,GAAG,KAAK,CAAC;QACrB,MAAM,IAAI,GAAG;YACT,IAAI,CAAC,aAAa,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC;SACxC,CAAA;QACD,IAAI,CAAC,gBAAgB,CAAC,eAAe,EAAE,IAAI,CAAC,CAAC;KAChD;;;;IAMD,IAAI;QACA,IAAI,CAAC,OAAO,GAAG,KAAK,CAAC;KACxB;;;;IAKD,IAAI;QACA,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC;KACvB;;;6GAlHQ,gBAAgB;iGAAhB,gBAAgB,8NCtB7B,mZAYa;2FDUA,gBAAgB;kBAP5B,SAAS;+BACI,UAAU,mBAEH,uBAAuB,CAAC,MAAM,UACvC,CAAC,GAAG,iBAAiB,CAAC,iBACf,iBAAiB,CAAC,IAAI;iIAMrC,IAAI;sBADH,KAAK;gBA2BF,WAAW;sBADd,WAAW;uBAAC,OAAO;gBASpB,OAAO;sBADN,KAAK;gBASK,OAAO;sBADjB,KAAK;;;MEvDG,qBAAqB;;kHAArB,qBAAqB;sGAArB,qBAAqB,kGARpB;;;KAGT;2FAKQ,qBAAqB;kBAVjC,SAAS;mBAAC;oBACP,QAAQ,EAAE,gBAAgB;oBAC1B,QAAQ,EAAE;;;KAGT;oBACD,eAAe,EAAE,uBAAuB,CAAC,MAAM;oBAC/C,aAAa,EAAE,iBAAiB,CAAC,IAAI;oBACrC,IAAI,EAAE,EAAE,KAAK,EAAE,gBAAgB,EAAE;iBACpC;;;MCIY,sBAAuB,SAAQ,oBAAoB;IAS5D,YAAY,UAAsB,EAAE,GAAsB;QACtD,KAAK,CAAC,UAAU,EAAE,GAAG,CAAC,CAAA;KACzB;IAGD,cAAc,CAAC,CAAC;QACZ,IAAI,CAAC,iBAAiB,CAAC,CAAC,CAAC,CAAC;KAC7B;IAGD,cAAc,CAAC,CAAC;QACZ,IAAI,CAAC,iBAAiB,CAAC,CAAC,CAAC,CAAC;KAC7B;IAGD,aAAa,CAAC,CAAC;QACX,IAAI,CAAC,gBAAgB,CAAC,CAAC,CAAC,CAAC;KAC5B;;mHA1BQ,sBAAsB;uGAAtB,sBAAsB,waATrB;;;KAGT;2FAMQ,sBAAsB;kBAXlC,SAAS;mBAAC;oBACP,QAAQ,EAAE,iBAAiB;oBAC3B,QAAQ,EAAE;;;KAGT;oBACD,eAAe,EAAE,uBAAuB,CAAC,MAAM;oBAC/C,aAAa,EAAE,iBAAiB,CAAC,IAAI;oBACrC,OAAO,EAAE,CAAC,GAAG,aAAa,CAAC;oBAC3B,IAAI,EAAE,EAAE,KAAK,EAAE,iBAAiB,EAAE;iBACrC;iIAIG,IAAI;sBADH,KAAK;gBAIN,IAAI;sBADH,KAAK;gBASN,cAAc;sBADb,YAAY;uBAAC,OAAO,EAAE,CAAC,QAAQ,CAAC;gBAMjC,cAAc;sBADb,YAAY;uBAAC,OAAO,EAAE,CAAC,QAAQ,CAAC;gBAMjC,aAAa;sBADZ,YAAY;uBAAC,MAAM,EAAE,CAAC,QAAQ,CAAC;;;MC1BvB,uBAAuB;;oHAAvB,uBAAuB;wGAAvB,uBAAuB,sGAP5B;;KAEH;2FAKQ,uBAAuB;kBAVnC,SAAS;mBAAC;oBACP,QAAQ,EAAE,kBAAkB;oBAC5B,QAAQ,EACJ;;KAEH;oBACD,eAAe,EAAE,uBAAuB,CAAC,MAAM;oBAC/C,aAAa,EAAE,iBAAiB,CAAC,IAAI;oBACrC,IAAI,EAAE,EAAE,KAAK,EAAE,kBAAkB,EAAE;iBACtC;;;MCGY,sBAAsB;;mHAAtB,sBAAsB;uGAAtB,sBAAsB,oGAVrB;;;;;KAKT;2FAKQ,sBAAsB;kBAZlC,SAAS;mBAAC;oBACP,QAAQ,EAAE,iBAAiB;oBAC3B,QAAQ,EAAE;;;;;KAKT;oBACD,eAAe,EAAE,uBAAuB,CAAC,MAAM;oBAC/C,aAAa,EAAE,iBAAiB,CAAC,IAAI;oBACrC,IAAI,EAAE,EAAE,KAAK,EAAE,iBAAiB,EAAE;iBACrC;;;MCCY,sBAAsB;;mHAAtB,sBAAsB;uGAAtB,sBAAsB,oGAVrB;;;;;KAKT;2FAKQ,sBAAsB;kBAZlC,SAAS;mBAAC;oBACP,QAAQ,EAAE,iBAAiB;oBAC3B,QAAQ,EAAE;;;;;KAKT;oBACD,eAAe,EAAE,uBAAuB,CAAC,MAAM;oBAC/C,aAAa,EAAE,iBAAiB,CAAC,IAAI;oBACrC,IAAI,EAAE,EAAE,KAAK,EAAE,iBAAiB,EAAE;iBACrC;;;MCJY,eAAgB,SAAQ,uBAAuB;IAUxD,YACI,UAAsB,EACtB,GAAsB;QAEtB,KAAK,CAAC,UAAU,EAAE,GAAG,CAAC,CAAC;KAC1B;IAVD,IACY,WAAW;QACnB,OAAO,SAAS,IAAI,CAAC,IAAI,EAAE,CAAC;KAC/B;;4GARQ,eAAe;gGAAf,eAAe,uJAJd,8CAA8C;2FAI/C,eAAe;kBAN3B,SAAS;mBAAC;oBACP,QAAQ,EAAE,SAAS;oBACnB,QAAQ,EAAE,8CAA8C;oBACxD,eAAe,EAAE,uBAAuB,CAAC,MAAM;oBAC/C,aAAa,EAAE,iBAAiB,CAAC,IAAI;iBACxC;iIAIG,IAAI;sBADH,KAAK;gBAIM,WAAW;sBADtB,WAAW;uBAAC,OAAO;;;ACVxB,MAAMA,WAAS,GAAG,CAAC,eAAe,CAAC,CAAC;AACpC,MAAMC,SAAO,GAAG,CAAC,YAAY,CAAC,CAAC;MAQlB,YAAY;;yGAAZ,YAAY;0GAAZ,YAAY,iBATN,eAAe,aACjB,YAAY,aADV,eAAe;0GASrB,YAAY,aAFV,EAAE,YAFJ,CAAC,GAAGA,SAAO,CAAC;2FAIZ,YAAY;kBANxB,QAAQ;mBAAC;oBACN,YAAY,EAAE,CAAC,GAAGD,WAAS,CAAC;oBAC5B,OAAO,EAAE,CAAC,GAAGC,SAAO,CAAC;oBACrB,OAAO,EAAE,CAAC,GAAGD,WAAS,CAAC;oBACvB,SAAS,EAAE,EAAE;iBAChB;;;ACFD,MAAMA,WAAS,GAAG;IACd,gBAAgB;IAChB,uBAAuB;IACvB,qBAAqB;IACrB,sBAAsB;IACtB,sBAAsB;IACtB,sBAAsB;CACzB,CAAC;AACF,MAAMC,SAAO,GAAG,CAAC,YAAY,EAAC,YAAY,CAAC,CAAC;MAQ/B,aAAa;;0GAAb,aAAa;2GAAb,aAAa,iBAftB,gBAAgB;QAChB,uBAAuB;QACvB,qBAAqB;QACrB,sBAAsB;QACtB,sBAAsB;QACtB,sBAAsB,aAET,YAAY,EAAC,YAAY,aAPtC,gBAAgB;QAChB,uBAAuB;QACvB,qBAAqB;QACrB,sBAAsB;QACtB,sBAAsB;QACtB,sBAAsB;2GAUb,aAAa,aAFX,EAAE,YAFJ,CAAC,GAAGA,SAAO,CAAC;2FAIZ,aAAa;kBANzB,QAAQ;mBAAC;oBACN,YAAY,EAAE,CAAC,GAAGD,WAAS,CAAC;oBAC5B,OAAO,EAAE,CAAC,GAAGC,SAAO,CAAC;oBACrB,OAAO,EAAE,CAAC,GAAGD,WAAS,CAAC;oBACvB,SAAS,EAAE,EAAE;iBAChB;;;MCbY,iBAAkB,SAAQ,uBAAuB;IAE1D,YACI,UAAsB,EACtB,GAAsB;QAEtB,KAAK,CAAC,UAAU,EAAE,GAAG,CAAC,CAAC;KAC1B;IAKD,IACW,KAAK;QACZ,OAAO,IAAI,CAAC,MAAM,CAAC;KACtB;IACD,IAAW,KAAK,CAAC,CAAS;QACtB,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC;KACnB;IAID,IACW,KAAK;QACZ,OAAO,IAAI,CAAC,MAAM,CAAC;KACtB;IACD,IAAW,KAAK,CAAC,CAAS;QACtB,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC;KACnB;IAID,IACW,IAAI;QACX,OAAO,IAAI,CAAC,KAAK,CAAC;KACrB;IACD,IAAW,IAAI,CAAC,CAAS;QACrB,IAAI,CAAC,KAAK,GAAG,CAAC,CAAC;KAClB;IAID,IACW,IAAI;QACX,OAAO,IAAI,CAAC,KAAK,CAAC;KACrB;IACD,IAAW,IAAI,CAAC,CAAS;QACrB,IAAI,CAAC,KAAK,GAAG,CAAC,CAAC;KAClB;;8GAhDQ,iBAAiB;kGAAjB,iBAAiB,6PCZ9B,iCAEA;2FDUa,iBAAiB;kBAR7B,SAAS;+BACI,WAAW,mBAEJ,uBAAuB,CAAC,MAAM,iBAChC,iBAAiB,CAAC,IAAI,UAC7B,CAAC,GAAG,WAAW,EAAE,GAAG,cAAc,CAAC,QACrC,EAAE,KAAK,EAAE,WAAW,EAAE;iIAejB,KAAK;sBADf,KAAK;gBAWK,KAAK;sBADf,KAAK;gBAWK,IAAI;sBADd,KAAK;gBAWK,IAAI;sBADd,KAAK;;;AElDV,MAAMA,WAAS,GAAG,CAAC,iBAAiB,CAAC,CAAC;AACtC,MAAMC,SAAO,GAAG,CAAC,YAAY,CAAC,CAAC;MAQlB,cAAc;;2GAAd,cAAc;4GAAd,cAAc,iBATR,iBAAiB,aACnB,YAAY,aADV,iBAAiB;4GASvB,cAAc,aAFZ,EAAE,YAFJ,CAAC,GAAGA,SAAO,CAAC;2FAIZ,cAAc;kBAN1B,QAAQ;mBAAC;oBACN,YAAY,EAAE,CAAC,GAAGD,WAAS,CAAC;oBAC5B,OAAO,EAAE,CAAC,GAAGC,SAAO,CAAC;oBACrB,OAAO,EAAE,CAAC,GAAGD,WAAS,CAAC;oBACvB,SAAS,EAAE,EAAE;iBAChB;;;MCRY,gBAAgB,GAAG,wBAAwB,CAAC,eAAe,EAAE;MAS7D,gBAAiB,SAAQ,gBAAgB;IAIlD,YACI,UAAsB,EACtB,GAAsB;QAEtB,KAAK,CAAC,UAAU,EAAE,GAAG,CAAC,CAAC;QANlB,SAAI,GAAW,EAAE,CAAC;;KAQ1B;IAGD,IACY,WAAW;QACnB,MAAM,MAAM,GAAG,IAAI,CAAC,IAAI,GAAG,MAAM,IAAI,CAAC,KAAK,IAAI,IAAI,CAAC,IAAI,EAAE,GAAG,MAAM,IAAI,CAAC,KAAK,UAAU,CAAC;QAExF,OAAO,CAAC,UAAU,EAAE,MAAM,EAAE,CAAC,IAAI,CAAC,IAAI,GAAG,eAAe,GAAG,EAAE,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;KAC5E;;6GAlBQ,gBAAgB;iGAAhB,gBAAgB,sLCb7B,gKAE4C;2FDW/B,gBAAgB;kBAP5B,SAAS;+BACI,UAAU,mBAEH,uBAAuB,CAAC,MAAM,UACvC,CAAC,GAAG,iBAAiB,CAAC,iBACf,iBAAiB,CAAC,IAAI;iIAI5B,IAAI;sBAAZ,KAAK;gBAYM,WAAW;sBADtB,WAAW;uBAAC,OAAO;;;AEtBxB,MAAMA,WAAS,GAAG,CAAC,gBAAgB,CAAC,CAAC;AACrC,MAAMC,SAAO,GAAG,CAAC,YAAY,CAAC,CAAC;MAQlB,aAAa;;0GAAb,aAAa;2GAAb,aAAa,iBATP,gBAAgB,aAClB,YAAY,aADV,gBAAgB;2GAStB,aAAa,aAFX,EAAE,YAFJ,CAAC,GAAGA,SAAO,CAAC;2FAIZ,aAAa;kBANzB,QAAQ;mBAAC;oBACN,YAAY,EAAE,CAAC,GAAGD,WAAS,CAAC;oBAC5B,OAAO,EAAE,CAAC,GAAGC,SAAO,CAAC;oBACrB,OAAO,EAAE,CAAC,GAAGD,WAAS,CAAC;oBACvB,SAAS,EAAE,EAAE;iBAChB;;;ACPD;;;;;MAca,iBAAkB,SAAQ,iBAAiB;;;;IAKpD,YAAY,UAAsB,EAAE,GAAsB;QACtD,KAAK,CAAC,UAAU,EAAE,GAAG,CAAC,CAAC;KAC1B;IAGD,gBAAgB,CAAC,CAAgB;QAC7B,IAAI,CAAC,CAAC,IAAI,KAAK,OAAO,EAAE;YACpB,IAAI,CAAC,eAAe,EAAE,CAAC,KAAK,EAAE,CAAC;SAClC;KACJ;IAGD,iBAAiB,CAAC,CAAa;QAC3B,IAAI,IAAI,CAAC,QAAQ;YACb,OAAO;QACX,IAAI,IAAI,CAAC,UAAU,EAAE;YACjB,IAAI,CAAC,QAAQ,GAAG,CAAC,IAAI,CAAC,QAAQ,CAAC;SAClC;QACD,KAAK,CAAC,iBAAiB,CAAC,CAAC,CAAC,CAAC;KAC9B;IAGD,iBAAiB,CAAC,CAAa;QAC3B,KAAK,CAAC,iBAAiB,CAAC,CAAC,CAAC,CAAC;KAC9B;IAID,gBAAgB,CAAC,CAAa;QAC1B,KAAK,CAAC,gBAAgB,CAAC,CAAC,CAAC,CAAC;KAC7B;IAED,IACY,WAAW;QACnB,OAAO,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;KACnF;;8GAxCQ,iBAAiB;kGAAjB,iBAAiB,0rBCnB9B,2gCAiBkB;2FDEL,iBAAiB;kBAT7B,SAAS;+BACI,WAAW,UAEb,CAAC,UAAU,EAAE,UAAU,EAAE,MAAM,EAAE,GAAG,iBAAiB,EAAE,GAAG,aAAa,CAAC,WACvE,CAAC,GAAG,aAAa,CAAC,mBACV,uBAAuB,CAAC,MAAM,iBAChC,iBAAiB,CAAC,IAAI,QAC/B,EAAE,IAAI,EAAE,QAAQ,EAAE;iIAYxB,gBAAgB;sBADf,YAAY;uBAAC,OAAO,EAAE,CAAC,QAAQ,CAAC;gBAQjC,iBAAiB;sBADhB,YAAY;uBAAC,OAAO,EAAE,CAAC,QAAQ,CAAC;gBAWjC,iBAAiB;sBADhB,YAAY;uBAAC,OAAO,EAAE,CAAC,QAAQ,CAAC;gBAOjC,gBAAgB;sBADf,YAAY;uBAAC,MAAM,EAAE,CAAC,QAAQ,CAAC;gBAMpB,WAAW;sBADtB,WAAW;uBAAC,OAAO;;;ME5CX,sBAAuB,SAAQ,4BAA4B;IAwEpE,YACI,UAAsB,EACd,IAAY,EACpB,GAAsB;QACtB,KAAK,CAAC,UAAU,EAAE,GAAG,CAAC,CAAA;QAFd,SAAI,GAAJ,IAAI,CAAQ;QAtExB,oBAAe,GAAkC,IAAI,YAAY,EAAE,CAAC;QAmBpE,gBAAW,GAAmC,IAAI,YAAY,EAAE,CAAC;QACzD,WAAM,GAAqB,SAAS,CAAC;QAmB7C,eAAU,GAAoC,IAAI,YAAY,EAAE,CAAC;QACzD,UAAK,GAAuB,IAAI,CAAC;QAmBzC,gBAAW,GAAsD,IAAI,YAAY,EAAuC,CAAC;QAElH,mBAAc,GAA+C,IAAI,YAAY,EAAgC,CAAC;KAYpH;IAtED,IACW,SAAS;QAChB,OAAO,IAAI,CAAC,UAAU,CAAC;KAC1B;IACD,IAAW,SAAS,CAAC,KAAuB;QACxC,KAAK,GAAG,IAAI,CAAC,iBAAiB,CAAC,EAAE,IAAI,EAAE,WAAW,EAAE,KAAK,EAAE,KAAK,EAAE,CAAC,CAAC;QACpE,MAAM,QAAQ,GAAG,IAAI,CAAC,SAAS,CAAC;QAChC,IAAI,KAAK,IAAI,QAAQ,EAAE;YACnB,IAAI,CAAC,UAAU,GAAG,KAAK,CAAC;YACxB,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;YACjC,IAAI,CAAC,eAAe,CAAC,EAAE,IAAI,EAAE,WAAW,EAAE,QAAQ,EAAE,QAAQ,EAAE,KAAK,EAAE,CAAC,CAAC;SAC1E;KACJ;;;;IASD,IACI,KAAK;QACL,OAAO,IAAI,CAAC,MAAM,CAAC;KACtB;IACD,IAAI,KAAK,CAAC,KAAuB;QAC7B,KAAK,GAAG,IAAI,CAAC,iBAAiB,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,CAAC,CAAC;QAChE,MAAM,QAAQ,GAAG,IAAI,CAAC,KAAK,CAAC;QAC5B,IAAI,KAAK,IAAI,QAAQ,EAAE;YACnB,IAAI,CAAC,MAAM,GAAG,KAAK,CAAC;YACpB,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;YAC7B,IAAI,CAAC,eAAe,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,KAAK,EAAE,CAAC,CAAC;SACtE;KACJ;;;;IAQD,IACI,IAAI;QACJ,OAAO,IAAI,CAAC,KAAK,CAAC;KACrB;IACD,IAAI,IAAI,CAAC,KAAwB;QAC7B,KAAK,GAAG,IAAI,CAAC,iBAAiB,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,KAAK,EAAE,CAAC,CAAC;QAC/D,MAAM,QAAQ,GAAG,IAAI,CAAC,IAAI,CAAC;QAC3B,IAAI,KAAK,IAAI,QAAQ,EAAE;YACnB,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;YACnB,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;YAC5B,IAAI,CAAC,eAAe,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,QAAQ,EAAE,KAAK,EAAE,CAAC,CAAC;SACrE;KACJ;IAoBD,kBAAkB;QACd,IAAI,CAAC,WAAW,EAAE,CAAC;QACnB,IAAI,CAAC,UAAU,EAAE,CAAC;KACrB;IAGO,WAAW;QACf,CAAC,IAAI,CAAC,eAAe,IAAI,EAAE,EAAE,OAAO,CAAC,CAAC;YAClC,CAAC,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC;gBACjB,IAAI,CAAC,iBAAiB,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;aAChC,CAAC,CAAC;SACN,CAAC,CAAC;KACN;IAEO,UAAU;QACd,CAAC,IAAI,CAAC,eAAe,IAAI,EAAE,EAAE,OAAO,CAAC,CAAC;YAClC,CAAC,CAAC,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC;YACnB,CAAC,CAAC,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC;YACrB,CAAC,CAAC,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC;YAC3B,CAAC,CAAC,UAAU,GAAG,KAAK,CAAC;SACxB,CAAC,CAAC;KACN;IAED,eAAe,CAAC,OAAO;QACnB,IAAI,CAAC,UAAU,EAAE,CAAC;KACrB;IAGD,iBAAiB,CAAC,CAAe,EAAE,MAAyB;QACxD,IAAI,IAAI,CAAC,SAAS,IAAI,UAAU,EAAE;YAC9B,MAAM,CAAC,QAAQ,GAAG,CAAC,MAAM,CAAC,QAAQ,CAAC;SACtC;aACI,IAAI,IAAI,CAAC,SAAS,IAAI,QAAQ,EAAE;YACjC,IAAI,CAAC,eAAe,CAAC,OAAO,CAAC,CAAC;gBAC1B,CAAC,CAAC,QAAQ,GAAG,KAAK,CAAC;aACtB,CAAC,CAAA;YACF,MAAM,CAAC,QAAQ,GAAG,IAAI,CAAC;SAC1B;aACI;YACD,MAAM,CAAC,QAAQ,GAAG,KAAK,CAAC;SAC3B;QAED,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC;YAClB,SAAS,EAAE,IAAI;YACf,WAAW,EAAE,CAAC,CAAC,WAAW;YAC1B,IAAI,EAAG,MAAM;SAChB,CAAC,CAAC;KAEN;;mHAhIQ,sBAAsB;uGAAtB,sBAAsB,scAoEd,iBAAiB,uEChFtC,oDACa;2FDWA,sBAAsB;kBARlC,SAAS;+BACI,iBAAiB,UAEnB,CAAC,UAAU,EAAE,MAAM,EAAE,UAAU,EAAE,KAAK,EAAE,UAAU,CAAC,iBAC5C,iBAAiB,CAAC,IAAI,mBACpB,uBAAuB,CAAC,MAAM,QACzC,EAAE,KAAK,EAAE,iBAAiB,EAAE,IAAI,EAAE,OAAO,EAAE;sJAMjD,eAAe;sBADd,MAAM;gBAKI,SAAS;sBADnB,KAAK;gBAgBN,WAAW;sBADV,MAAM;gBAOH,KAAK;sBADR,KAAK;gBAeN,UAAU;sBADT,MAAM;gBAOH,IAAI;sBADP,KAAK;gBAeN,WAAW;sBADV,MAAM;gBAOP,eAAe;sBADd,eAAe;uBAAC,iBAAiB,EAAE,EAAE,WAAW,EAAE,IAAI,EAAE;;;ME1EhD,qBAAqB,GAC9B,2BAA2B,CACvB,yBAAyB,CAAC,eAAe,CAAC,EAC5C;MAkBO,qBAAsB,SAAQ,qBAAqB;;;;IAM5D,YAAY,UAAsB,EAAE,GAAsB;QACtD,KAAK,CAAC,UAAU,EAAE,GAAG,CAAC,CAAC;QAI3B,SAAI,GAAW,IAAI,CAAC;QAGpB,YAAO,GAAW,IAAI,CAAC;QAIvB,aAAQ,GAAY,KAAK,CAAC;QAG1B,cAAS,GAAY,KAAK,CAAC;QAU3B,UAAK,GAAqB,OAAO,CAAC;KAvBjC;IA2BO,WAAW,CAAC,CAAa;QAC7B,IAAI,CAAC,iBAAiB,CAAC,CAAC,CAAC,CAAC;KAC7B;IAED,IACY,WAAW;QACnB,MAAM,UAAU,GAAG;YACf,gBAAgB,EAAE,CAAC,IAAI,CAAC,IAAI;YAC5B,mBAAmB,EAAE,IAAI,CAAC,QAAQ;YAClC,mBAAmB,EAAE,IAAI,CAAC,QAAQ;SACrC,CAAC;QACF,UAAU,CAAC,MAAM,IAAI,CAAC,KAAK,IAAI,SAAS,UAAU,CAAC,GAAG,IAAI,CAAC;QAC3D,OAAO,MAAM,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;KAChF;;kHAhDQ,qBAAqB;sGAArB,qBAAqB,2TAbpB;;;;;;;;KAQT;2FAKQ,qBAAqB;kBAfjC,SAAS;mBAAC;oBACP,QAAQ,EAAE,gBAAgB;oBAC1B,QAAQ,EAAE;;;;;;;;KAQT;oBACD,aAAa,EAAE,iBAAiB,CAAC,IAAI;oBACrC,eAAe,EAAE,uBAAuB,CAAC,MAAM;iBAClD;iIAaG,IAAI;sBADH,KAAK;gBAIN,OAAO;sBADN,KAAK;gBAKN,QAAQ;sBADP,KAAK;gBAIN,SAAS;sBADR,KAAK;gBAIN,IAAI;sBADH,KAAK;gBAIN,IAAI;sBADH,KAAK;gBAKN,KAAK;sBADJ,KAAK;gBAKE,WAAW;sBADlB,YAAY;uBAAC,OAAO,EAAE,CAAC,QAAQ,CAAC;gBAMrB,WAAW;sBADtB,WAAW;uBAAC,OAAO;;;MCtDX,2BAA4B,SAAQ,oBAAoB;IAEjE,YACI,UAAsB,EACtB,GAAsB;QAEtB,KAAK,CAAC,UAAU,EAAE,GAAG,CAAC,CAAC;KAC1B;;wHAPQ,2BAA2B;4GAA3B,2BAA2B,yEAP1B;;;KAGT;2FAIQ,2BAA2B;kBATvC,SAAS;mBAAC;oBACP,QAAQ,EAAE,YAAY;oBACtB,QAAQ,EAAE;;;KAGT;oBACD,eAAe,EAAE,uBAAuB,CAAC,MAAM;oBAC/C,aAAa,EAAE,iBAAiB,CAAC,IAAI;iBACxC;;;MCFY,yBAA0B,SAAQ,oBAAoB;IAC/D,YACI,WAAuB,EACvB,IAAuB;QAEvB,KAAK,CAAC,WAAW,EAAE,IAAI,CAAC,CAAC;KAC5B;;sHANQ,yBAAyB;0GAAzB,yBAAyB,uEAJxB,2BAA2B;2FAI5B,yBAAyB;kBANrC,SAAS;mBAAC;oBACP,QAAQ,EAAE,UAAU;oBACpB,QAAQ,EAAE,2BAA2B;oBACrC,eAAe,EAAE,uBAAuB,CAAC,MAAM;oBAC/C,aAAa,EAAE,iBAAiB,CAAC,IAAI;iBACxC;;;MCIY,0BAA2B,SAAQ,oBAAoB;IAEhE,YACI,UAAsB,EACtB,GAAsB;QAEtB,KAAK,CAAC,UAAU,EAAE,GAAG,CAAC,CAAC;KAC1B;;uHAPQ,0BAA0B;2GAA1B,0BAA0B,wEAPzB;;;KAGT;2FAIQ,0BAA0B;kBATtC,SAAS;mBAAC;oBACP,QAAQ,EAAE,WAAW;oBACrB,QAAQ,EAAE;;;KAGT;oBACD,eAAe,EAAE,uBAAuB,CAAC,MAAM;oBAC/C,aAAa,EAAE,iBAAiB,CAAC,IAAI;iBACxC;;;MCCY,0BAA2B,SAAQ,oBAAoB;IAEhE,YACI,UAAsB,EACtB,GAAsB;QAEtB,KAAK,CAAC,UAAU,EAAE,GAAG,CAAC,CAAC;KAC1B;;uHAPQ,0BAA0B;2GAA1B,0BAA0B,wEAPzB;;;KAGT;2FAIQ,0BAA0B;kBATtC,SAAS;mBAAC;oBACP,QAAQ,EAAE,WAAW;oBACrB,QAAQ,EAAE;;;KAGT;oBACD,eAAe,EAAE,uBAAuB,CAAC,MAAM;oBAC/C,aAAa,EAAE,iBAAiB,CAAC,IAAI;iBACxC;;;MCCY,0BAA2B,SAAQ,oBAAoB;IAEhE,YACI,UAAsB,EACtB,GAAsB;QAEtB,KAAK,CAAC,UAAU,EAAE,GAAG,CAAC,CAAC;KAC1B;;uHAPQ,0BAA0B;2GAA1B,0BAA0B,wEAPzB;;;KAGT;2FAIQ,0BAA0B;kBATtC,SAAS;mBAAC;oBACP,QAAQ,EAAE,WAAW;oBACrB,QAAQ,EAAE;;;KAGT;oBACD,eAAe,EAAE,uBAAuB,CAAC,MAAM;oBAC/C,aAAa,EAAE,iBAAiB,CAAC,IAAI;iBACxC;;;ACHD,MAAMA,WAAS,GAAG,CAAC,0BAA0B,EAAE,0BAA0B,EAAE,2BAA2B,EAAE,0BAA0B,EAAE,yBAAyB,CAAC,CAAC;AAC/J,MAAMC,SAAO,GAAG,CAAC,YAAY,CAAC,CAAC;MAQlB,uBAAuB;;oHAAvB,uBAAuB;qHAAvB,uBAAuB,iBATjB,0BAA0B,EAAE,0BAA0B,EAAE,2BAA2B,EAAE,0BAA0B,EAAE,yBAAyB,aAC5I,YAAY,aADV,0BAA0B,EAAE,0BAA0B,EAAE,2BAA2B,EAAE,0BAA0B,EAAE,yBAAyB;qHAShJ,uBAAuB,aAFrB,EAAE,YAFJ,CAAC,GAAGA,SAAO,CAAC;2FAIZ,uBAAuB;kBANnC,QAAQ;mBAAC;oBACN,YAAY,EAAE,CAAC,GAAGD,WAAS,CAAC;oBAC5B,OAAO,EAAE,CAAC,GAAGC,SAAO,CAAC;oBACrB,OAAO,EAAE,CAAC,GAAGD,WAAS,CAAC;oBACvB,SAAS,EAAE,EAAE;iBAChB;;;ACPD,MAAMA,WAAS,GAAG;IACd,iBAAiB;IACjB,qBAAqB;IACrB,sBAAsB;CACzB,CAAC;AACF,MAAMC,SAAO,GAAG,CAAC,YAAY,EAAC,YAAY,EAAC,uBAAuB,CAAC,CAAC;MAQvD,cAAc;;2GAAd,cAAc;4GAAd,cAAc,iBAZvB,iBAAiB;QACjB,qBAAqB;QACrB,sBAAsB,aAET,YAAY,EAAC,YAAY,EAAC,uBAAuB,aAJ9D,iBAAiB;QACjB,qBAAqB;QACrB,sBAAsB;4GAUb,cAAc,aAFZ,EAAE,YAHJ,CAACA,SAAO,CAAC;2FAKT,cAAc;kBAN1B,QAAQ;mBAAC;oBACN,OAAO,EAAE,CAACA,SAAO,CAAC;oBAClB,OAAO,EAAE,CAACD,WAAS,CAAC;oBACpB,YAAY,EAAE,CAACA,WAAS,CAAC;oBACzB,SAAS,EAAE,EAAE;iBAChB;;;MCXY,uBAAwB,SAAQ,eAAe;IAGxD,YAAY,UAAsB,EAAE,GAAsB;QACtD,KAAK,CAAC,UAAU,EAAE,GAAG,CAAC,CAAC;QAI3B,qBAAgB,GAAqC,IAAI,YAAY,EAAsB,CAAC;QAEpF,gBAAW,GAAuB,MAAM,CAAC;QAW1C,eAAU,GAAyB,IAAI,YAAY,EAAU,CAAC;QAE7D,UAAK,GAAW,QAAQ,CAAC,GAAG,CAAC,mBAAmB,CAAC,CAAC;QAe1D,gBAAW,GAAsC,IAAI,YAAY,EAAuB,CAAC;QAEjF,WAAM,GAAwB,MAAM,CAAC;QAgB7C,cAAS,GAAuB,IAAI,YAAY,EAAQ,CAAC;QAazD,cAAS,GAAuB,IAAI,YAAY,EAAQ,CAAC;QAYzD,wBAAmB,GAA0C,IAAI,YAAY,EAA2B,CAAC;QAYzG,uBAAkB,GAAyC,IAAI,YAAY,EAA0B,CAAC;KAxFrG;IAMD,IACW,UAAU;QACjB,OAAO,IAAI,CAAC,WAAW,CAAC;KAC3B;IACD,IAAW,UAAU,CAAC,CAAqB;QACvC,IAAI,CAAC,UAAU,CAAC,EAAE,IAAI,EAAE,YAAY,EAAE,KAAK,EAAE,CAAC,EAAE,CAAC,CAAC;KACrD;IAQD,IACW,IAAI;QACb,OAAO,IAAI,CAAC,KAAK,IAAI,QAAQ,CAAC,GAAG,CAAC,mBAAmB,CAAC,CAAC;KACxD;IACD,IAAW,IAAI,CAAC,CAAS;QACvB,IAAI,CAAC,UAAU,CAAC;YACd,IAAI,EAAE,MAAM;YACZ,KAAK,EAAE,CAAC;SACT,CAAC,CAAA;KACH;IAOD,IACW,KAAK;QACZ,OAAO,IAAI,CAAC,MAAM,CAAC;KACtB;IACD,IAAW,KAAK,CAAC,CAAsB;QACnC,IAAI,CAAC,UAAU,CAAC;YACZ,IAAI,EAAE,OAAO;YACb,KAAK,EAAE,CAAC;YACR,cAAc,EAAE;gBACZ,IAAI,CAAC,WAAW,GAAG,CAAC,CAAC;aACxB;SACJ,CAAC,CAAC;KACN;IAMD,IACW,GAAG;QACV,OAAO,IAAI,CAAC,IAAI,CAAC;KACpB;IACD,IAAW,GAAG,CAAC,CAAO;QAClB,IAAI,CAAC,UAAU,CAAC,EAAE,IAAI,EAAE,KAAK,EAAE,KAAK,EAAE,CAAC,EAAE,CAAC,CAAC;KAC9C;IAOD,IACW,GAAG;QACV,OAAO,IAAI,CAAC,IAAI,CAAC;KACpB;IACD,IAAW,GAAG,CAAC,CAAO;QAClB,IAAI,CAAC,UAAU,CAAC,EAAE,IAAI,EAAE,KAAK,EAAE,KAAK,EAAE,CAAC,EAAE,CAAC,CAAC;KAC9C;IAMD,IACW,aAAa;QACpB,OAAO,IAAI,CAAC,cAAc,CAAC;KAC9B;IACD,IAAW,aAAa,CAAC,CAA0B;QAC/C,IAAI,CAAC,UAAU,CAAC,EAAE,IAAI,EAAE,eAAe,EAAE,KAAK,EAAE,CAAC,EAAE,CAAC,CAAC;KACxD;IAMD,IACW,YAAY;QACnB,OAAO,IAAI,CAAC,aAAa,CAAC;KAC7B;IACD,IAAW,YAAY,CAAC,CAAyB;QAC7C,IAAI,CAAC,UAAU,CAAC,EAAE,IAAI,EAAE,cAAc,EAAE,KAAK,EAAE,CAAC,EAAE,CAAC,CAAC;KACvD;;oHAtGQ,uBAAuB;wHAAvB,uBAAuB;2FAAvB,uBAAuB;kBADnC,UAAU;iIASP,gBAAgB;sBADf,MAAM;gBAKI,UAAU;sBADpB,KAAK;gBAUC,UAAU;sBADhB,MAAM;gBAMI,IAAI;sBADd,KAAK;gBAaN,WAAW;sBADV,MAAM;gBAKI,KAAK;sBADf,KAAK;gBAeN,SAAS;sBADR,MAAM;gBAKI,GAAG;sBADb,KAAK;gBAUN,SAAS;sBADR,MAAM;gBAKI,GAAG;sBADb,KAAK;gBASN,mBAAmB;sBADlB,MAAM;gBAKI,aAAa;sBADvB,KAAK;gBASN,kBAAkB;sBADjB,MAAM;gBAKI,YAAY;sBADtB,KAAK;;AAWH,MAAM,eAAe,GAAG;IAC3B,OAAO;IACP,YAAY;IACZ,KAAK;IACL,KAAK;IACL,eAAe;IACf,MAAM;IACN,cAAc;CACjB,CAAC;AACK,MAAM,gBAAgB,GAAG,CAAC,aAAa,EAAC,YAAY,CAAC;;MC3G/C,wBAAwB,GAAG,yBAAyB,CAC/D,2BAA2B,CAAC,qBAAqB,CAAM,uBAAuB,CAAC,CAAC,EAChF;MAWW,mBAAoB,SAAQ,wBAAwB;IAoC/D,YAAY,UAAsB,EAAU,GAAsB;QAChE,KAAK,CAAC,UAAU,EAAE,GAAG,CAAC,CAAC;QADmB,QAAG,GAAH,GAAG,CAAmB;QAdlE,WAAM,GAAG,IAAI,UAAU,CAAC,IAAI,IAAI,EAAE,EAAE,IAAI,CAAC,IAAI,CAAC,CAAC;QAG/C,aAAQ,GAAW,EAAE,CAAC;QACtB,eAAU,GAAW,EAAE,CAAC;QAExB,WAAM,GAAU,EAAE,CAAC;QACnB,cAAS,GAAa,EAAE,CAAC;QAKzB,gBAAW,GAAyC,IAAI,YAAY,EAA0B,CAAC;KAI9F;IApCD,IAAY,UAAU;QACpB,MAAM,OAAO,GAAG,IAAI,CAAC,cAAc,IAAI,IAAI,CAAC,MAAM,CAAC;QACnD,QAAQ,IAAI,CAAC,UAAU;YACrB,KAAK,OAAO;gBACV,IAAI,CAAC,GAAG,OAAO,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC;gBACrC,IAAI,GAAG,GAAG,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC,GAAG,CAAC,CAAC;gBAC3B,IAAI,GAAG,GAAG,GAAG,GAAG,EAAE,CAAC;gBACnB,OAAO,IAAI,eAAe,CACxB,UAAU,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,GAAG,EAAE,KAAK,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,QAAQ,EAAE,IAAI,CAAC,cAAc,CAAC,QAAQ,CAAC,IAAI,EAAE,EAAE,CAAC,EAChG,UAAU,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,GAAG,EAAE,KAAK,EAAE,EAAE,EAAE,IAAI,EAAE,EAAE,EAAE,QAAQ,EAAE,IAAI,CAAC,cAAc,CAAC,QAAQ,CAAC,IAAI,EAAE,EAAE,CAAC,CACnG,CAAC;YACJ,KAAK,QAAQ;gBACX,OAAO,IAAI,eAAe,CAAC,OAAO,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE,OAAO,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,GAAG,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC;YAC5F;;gBAEE,OAAO,IAAI,eAAe,CAAC,OAAO,CAAC,OAAO,CAAC,OAAO,CAAC,EAAE,OAAO,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC;SAChF;KACF;IAsBO,WAAW;QACjB,IAAI,CAAC,MAAM,GAAG,IAAI,UAAU,CAAC,IAAI,IAAI,EAAE,EAAE,IAAI,CAAC,IAAI,CAAC,CAAC;QACpD,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,aAAa,CAAC;KACrD;IAEO,QAAQ;QACd,IAAI,CAAC,WAAW,EAAE,CAAC;QACnB,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,KAAK,IAAI,IAAI,CAAC,MAAM,CAAC,CAAC;KACvC;IAED,MAAM;QACJ,IAAI,CAAC,WAAW,EAAE,CAAC;QACnB,IAAI,CAAC,OAAO,EAAE,CAAC;KAChB;IAEO,cAAc;QACpB,IAAI,CAAC,IAAI,CAAC,cAAc;YACtB,OAAO;QACT,MAAM,EAAE,GAAG,IAAI,CAAC,UAAU,CAAC;;;;QAI3B,IAAI,IAAI,CAAC,UAAU,IAAI,OAAO,EAAE;YAC9B,MAAM,CAAC,GAAG,EAAE,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC;YAC/B,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC;gBACvB,MAAM,CAAC,GAAQ,EAAE,CAAC;gBAClB,CAAC,CAAC,IAAI,GAAG,CAAC,CAAC,IAAI,CAAC;gBAChB,CAAC,CAAC,IAAI,GAAG,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;gBAC1B,CAAC,CAAC,QAAQ,GAAG,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC,GAAG,EAAE,MAAM,CAAC,IAAI,CAAC,CAAC,MAAM,IAAI,CAAC,GAAG,IAAI,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC,GAAG,EAAE,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC;gBAC/G,IAAI,CAAC,CAAC,QAAQ,EAAE;oBACd,CAAC,CAAC,QAAQ,GAAG;wBACX,mBAAmB,EAAE,CAAC,CAAC,QAAQ;qBAChC,CAAA;iBACF;qBACI;oBACH,CAAC,CAAC,QAAQ,GAAG;wBACX,gBAAgB,EAAE,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,MAAM,EAAE,MAAM,CAAC;wBAC9C,mBAAmB,EAAE,IAAI,CAAC,KAAK,IAAI,IAAI,CAAC,KAAK,IAAI,OAAO,IAAI,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,KAAK,EAAE,MAAM,CAAC;qBACxF,CAAA;iBACF;;gBAED,OAAO,CAAC,CAAC;aACV,CAAC,CAAC;YAEH,IAAI,CAAC,QAAQ,GAAG,GAAG,EAAE,CAAC,SAAS,CAAC,IAAI,MAAM,EAAE,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC;YAC5D,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;SAC9C;;aAEI,IAAI,IAAI,CAAC,UAAU,IAAI,QAAQ,EAAE;YACpC,MAAM,CAAC,GAAG,EAAE,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC;YAChC,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC;gBACvB,MAAM,CAAC,GAAQ,EAAE,CAAC;gBAClB,CAAC,CAAC,IAAI,GAAG,CAAC,CAAC,IAAI,CAAC;gBAChB,CAAC,CAAC,IAAI,GAAG,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;gBACzB,CAAC,CAAC,OAAO,GAAG,CAAC,CAAC,MAAM,CAAC,WAAW,CAAC,CAAC;gBAClC,CAAC,CAAC,QAAQ,GAAG,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC,GAAG,EAAE,OAAO,CAAC,IAAI,CAAC,CAAC,MAAM,IAAI,CAAC,GAAG,IAAI,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC,GAAG,EAAE,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC;gBACjH,IAAI,CAAC,CAAC,QAAQ,EAAE;oBACd,CAAC,CAAC,QAAQ,GAAG;wBACX,mBAAmB,EAAE,CAAC,CAAC,QAAQ;qBAChC,CAAA;iBACF;qBACI;oBACH,CAAC,CAAC,QAAQ,GAAG;wBACX,gBAAgB,EAAE,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,MAAM,EAAE,OAAO,CAAC;wBAC/C,mBAAmB,EAAE,IAAI,CAAC,KAAK,IAAI,IAAI,CAAC,KAAK,IAAI,QAAQ,IAAI,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,KAAK,EAAE,OAAO,CAAC;wBACzF,gBAAgB,EAAE,CAAC,CAAC,IAAI,IAAI,IAAI,CAAC,cAAc,CAAC,IAAI;qBACrD,CAAA;iBACF;gBACD,OAAO,CAAC,CAAC;aACV,CAAC,CAAC;YACH,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,cAAc,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;YACnD,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,WAAW,CAAC,CAAC;SACnD;;aAEI;YACH,MAAM,CAAC,GAAG,EAAE,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC;YAC9B,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC;gBACvB,MAAM,CAAC,GAAQ,EAAE,CAAC;gBAClB,CAAC,CAAC,IAAI,GAAG,CAAC,CAAC,IAAI,CAAC;gBAChB,CAAC,CAAC,IAAI,GAAG,CAAC,CAAC,UAAU,CAAC;gBACtB,CAAC,CAAC,OAAO,GAAG,CAAC,CAAC,MAAM,EAAE,CAAC;gBACvB,CAAC,CAAC,QAAQ,GAAG,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC,GAAG,EAAE,KAAK,CAAC,IAAI,CAAC,CAAC,MAAM,IAAI,CAAC,GAAG,IAAI,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC,GAAG,EAAE,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC;gBAC7G,IAAI,CAAC,CAAC,QAAQ,IAAI,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,EAAE;oBACpC,CAAC,CAAC,QAAQ,GAAG;wBACX,mBAAmB,EAAE,IAAI;qBAC1B,CAAA;iBACF;qBACI;oBACH,CAAC,CAAC,QAAQ,GAAG;wBACX,gBAAgB,EAAE,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,MAAM,EAAE,KAAK,CAAC;wBAC7C,mBAAmB,EAAE,IAAI,CAAC,KAAK,IAAI,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,KAAK,EAAE,KAAK,CAAC;wBAC7D,kBAAkB,EAAE,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,IAAI,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC;;;qBAG3D,CAAA;iBACF;gBAED,CAAC,CAAC,QAAQ,CAAC,gBAAgB,EAAE,CAAC,SAAS,CAAC,SAAS,EAAE,CAAC,GAAG,CAAC,IAAI,CAAC,CAAA;gBAC7D,OAAO,CAAC,CAAC;aACV,CAAC,CAAC;YACH,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,cAAc,CAAC,MAAM,CAAC,WAAW,CAAC,CAAC;YACxD,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,MAAM,CAAC,MAAM,EAAE,CAAC;SACxC;KACF;IAGD,gBAAgB,CAAC,CAAe;QAC9B,IAAI,CAAC,IAAI,EAAE,CAAC;KACb;IAED,gBAAgB,CAAC,CAAe;QAC9B,IAAI,CAAC,IAAI,EAAE,CAAC;KACb;IAED,gBAAgB,CAAC,CAAa,EAAE,IAAI;QAClC,IAAI,IAAI,CAAC,QAAQ,IAAI,IAAI,CAAC,QAAQ;YAChC,OAAO;QACT,IAAI,IAAI,CAAC,UAAU,IAAI,MAAM,EAAE;YAC7B,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;SACzB;aACI,IAAI,IAAI,CAAC,UAAU,IAAI,QAAQ,IAAI,IAAI,CAAC,KAAK,IAAI,MAAM,EAAE;YAC5D,IAAI,CAAC,UAAU,GAAG,MAAM,CAAC;YACzB,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;SACvB;aACI,IAAI,IAAI,CAAC,UAAU,IAAI,QAAQ,IAAI,IAAI,CAAC,KAAK,IAAI,QAAQ,EAAE;YAC9D,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;SACzB;aACI,IAAI,IAAI,CAAC,UAAU,IAAI,OAAO,KAAK,IAAI,CAAC,KAAK,IAAI,MAAM,IAAI,IAAI,CAAC,KAAK,IAAI,QAAQ,CAAC,EAAE;YACvF,IAAI,CAAC,UAAU,GAAG,QAAQ,CAAC;YAC3B,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;SACvB;aACI,IAAI,IAAI,CAAC,UAAU,IAAI,OAAO,IAAI,IAAI,CAAC,KAAK,IAAI,OAAO,EAAE;YAC5D,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;SACzB;QACD,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC;YACpB,SAAS,EAAE,IAAI;YACf,IAAI,EAAE,IAAI,CAAC,IAAI;YACf,WAAW,EAAE,CAAC;SACf,CAAC,CAAA;KACH;IAED,eAAe,CAAC,CAAe;QAC7B,IAAI,IAAI,CAAC,UAAU,IAAI,MAAM;YAC3B,IAAI,CAAC,UAAU,GAAG,QAAQ,CAAC;aACxB,IAAI,IAAI,CAAC,UAAU,IAAI,QAAQ;YAClC,IAAI,CAAC,UAAU,GAAG,OAAO,CAAC;KAC7B;IAED,gBAAgB,CAAC,MAAgC;QAC/C,IAAI,MAAM,CAAC,IAAI,IAAI,OAAO,IAAI,MAAM,CAAC,IAAI,IAAI,YAAY,EAAE;YACzD,IAAI,CAAC,cAAc,EAAE,CAAC;SACvB;QACD,IAAI,MAAM,CAAC,IAAI,IAAI,MAAM,EAAE;YACzB,IAAI,CAAC,QAAQ,EAAE,CAAC;SACjB;KACF;IAED,eAAe,CAAC,QAAQ,EAAE,QAAQ;QAChC,IAAI,CAAC,cAAc,GAAG,IAAI,UAAU,CAAC,QAAQ,EAAE,IAAI,CAAC,IAAI,CAAC,CAAC;QAC1D,IAAI,CAAC,cAAc,EAAE,CAAC;KACvB;IAED,cAAc;QACZ,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,CAAA;QAC/B,IAAI,CAAC,OAAO,EAAE,CAAC;KAChB;IAED,IAAI;QACF,IAAI,CAAC,YAAY,CAAC,KAAK,CAAC,CAAA;KACzB;IAED,IAAI;QACF,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,CAAA;KACxB;IAED,KAAK;QACF,IAAI,CAAC,eAAe,EAAqB,CAAC,aAAa,CAAiB,wBAAwB,CAAC,EAAE,KAAK,EAAE,CAAC;KAC7G;IAEO,YAAY,CAAC,IAAa;QAChC,MAAM,IAAI,IAAI,IAAI,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;QAC7B,IAAI,IAAI,CAAC,UAAU,IAAI,MAAM;YAC3B,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,OAAO,EAAE,IAAI,GAAG,CAAC,CAAC,CAAC,CAAC;aACpD,IAAI,IAAI,CAAC,UAAU,IAAI,QAAQ;YAClC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,MAAM,EAAE,IAAI,GAAG,CAAC,CAAC,CAAC,CAAC;;YAEtD,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,MAAM,EAAE,IAAI,GAAG,EAAE,CAAC,CAAC,CAAC;KAC1D;IAED,OAAO;QACL,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;KACzB;IAGD,KAAK,CAAC,IAAuB;QAC3B,IAAI,CAAC,cAAc,GAAG,UAAU,CAAC,OAAO,CAAC,IAAI,EAAE,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,IAAI,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC;QACtF,IAAI,CAAC,cAAc,EAAE,CAAC;KACvB;IAGD,IACY,WAAW;QACrB,MAAM,QAAQ,GAAG;YACf,mBAAmB,EAAE,IAAI,CAAC,QAAQ;SACnC,CAAA;QACD,OAAO,MAAM,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;KAC5E;IAGO,QAAQ,CAAC,KAAW;QAC1B,IAAI,CAAC,KAAK,GAAG,UAAU,CAAC,OAAO,CAAC,KAAK,EAAE,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,IAAI,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,IAAI,CAAC;KACpF;IAEO,UAAU,CAAC,IAAgB;QACjC,IAAI,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,aAAa,CAAC,IAAI,IAAI,CAAC,aAAa,CAAC,MAAM,IAAI,CAAC,EAAE;YACvE,CAAC;YACD,OAAO,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,CAAC,IAAI,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC,CAAC;SAC3D;aACI,IAAI,OAAO,IAAI,CAAC,aAAa,IAAI,UAAU,EAAE;YAChD,OAAO,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;SACtC;QACD,OAAO,KAAK,CAAC;KACd;IAEO,SAAS,CAAC,IAAgB;QAChC,IAAI,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,YAAY,CAAC,IAAI,IAAI,CAAC,YAAY,CAAC,MAAM,IAAI,CAAC,EAAE;YACrE,OAAO,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,CAAC,IAAI,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC,CAAC;SAC1D;aACI,IAAI,OAAO,IAAI,CAAC,YAAY,IAAI,UAAU,EAAE;YAC/C,OAAO,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;SACrC;QACD,OAAO,KAAK,CAAC;KACd;IAEO,SAAS,CAAC,IAAgB;QAChC,OAAO,IAAI,CAAC,SAAS,IAAI,CAAC,IAAI,IAAI,CAAC,SAAS,IAAI,CAAC,CAAC;KACnD;;gHArRU,mBAAmB;oGAAnB,mBAAmB,woBChChC,s1EA0CM;2FDVO,mBAAmB;kBAR/B,SAAS;+BACE,aAAa,mBAEN,uBAAuB,CAAC,MAAM,UACvC,CAAC,GAAG,YAAY,EAAE,GAAG,kBAAkB,EAAE,GAAG,eAAe,CAAC,WAC3D,CAAC,GAAG,YAAY,EAAE,GAAG,kBAAkB,EAAE,GAAG,gBAAgB,CAAC,iBACvD,iBAAiB,CAAC,IAAI;iIAoCrC,WAAW;sBADV,MAAM;gBAiNK,WAAW;sBADtB,WAAW;uBAAC,OAAO;;;AExQtB,MAAMA,WAAS,GAAG,CAAC,mBAAmB,CAAC,CAAC;AACxC,MAAMC,SAAO,GAAG,CAAC,YAAY,EAAE,cAAc,EAAE,YAAY,EAAE,uBAAuB,EAAE,gBAAgB,CAAC,CAAC;MAQ3F,gBAAgB;;6GAAhB,gBAAgB;8GAAhB,gBAAgB,iBATV,mBAAmB,aACrB,YAAY,EAAE,cAAc,EAAE,YAAY,EAAE,uBAAuB,EAAE,gBAAgB,aADnF,mBAAmB;8GASzB,gBAAgB,aAFd,EAAE,YAFJ,CAAC,GAAGA,SAAO,CAAC;2FAIZ,gBAAgB;kBAN5B,QAAQ;mBAAC;oBACN,YAAY,EAAE,CAAC,GAAGD,WAAS,CAAC;oBAC5B,OAAO,EAAE,CAAC,GAAGC,SAAO,CAAC;oBACrB,OAAO,EAAE,CAAC,GAAGD,WAAS,CAAC;oBACvB,SAAS,EAAE,EAAE;iBAChB;;;MCZqB,cAAc;;2GAAd,cAAc;+GAAd,cAAc;2FAAd,cAAc;kBADnC,UAAU;;;MCCE,kBAAkB;IAC3B;KAEC;IAKD,KAAK,CAAC,QAAoB;QACtB,IAAI,CAAC,SAAS,GAAG,QAAQ,CAAC;QAC1B,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;QAC5C,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,aAAa,CAAC,6BAA6B,CAAC,CAAC,SAAS,CAAC,GAAG,CAAC,eAAe,CAAC,CAAC;QAChG,MAAM,WAAW,GAAG,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,aAAa,CAAC,mBAAmB,CAAC,CAAC;QAC3E,WAAW,CAAC,SAAS,CAAC,GAAG,CAAC,cAAc,CAAC,CAAC;;QAE1C,IAAI,CAAC,OAAO,EAAE,CAAC;QACf,IAAI,CAAC,SAAS,CAAC,cAAc,CAAC,SAAS,CAAC,KAAK;YACzC,KAAK,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,CAAC,SAAS,CAAC,GAAG,CAAC,eAAe,CAAC,CAAC,CAAC;YAC3D,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC;SACvB,CAAC,CAAC;QACH,IAAI,CAAC,SAAS,CAAC,KAAK,GAAG,KAAK,CAAC,IAAI,CAAC,WAAW,CAAC,gBAAgB,CAAiB,kBAAkB,CAAC,CAAC,CAAC;QACpG,IAAI,CAAC,SAAS,CAAC,gBAAgB,CAAC,SAAS,CAAC;YACtC,IAAI,CAAC,OAAO,EAAE,CAAC;SAClB,CAAC,CAAC;KACN;IAEO,mBAAmB,CAAC,CAAS;QACjC,MAAM,QAAQ,GAAG,IAAI,CAAC,SAAS,CAAC,YAAY,CAAC;QAC7C,IAAI,CAAC,SAAS,CAAC,YAAY,GAAG,CAAC,CAAC;QAChC,IAAI,CAAC,SAAS,CAAC,cAAc,CAAC,IAAI,CAAC;YAC/B,SAAS,EAAE,IAAI;YACf,WAAW,EAAE,IAAI,CAAC,SAAS,CAAC,IAAI;YAChC,KAAK,EAAE,IAAI,CAAC,SAAS,CAAC,YAAY;YAClC,QAAQ;SACX,CAAC,CAAC;KACN;IAGO,UAAU;QACd,OAAO;YACH,QAAQ,EAAE,IAAI,CAAC,SAAS,CAAC,QAAQ;YACjC,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,IAAI,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,MAAM,GAAG,MAAM,GAAG,OAAO;YACtE,MAAM,EAAE,IAAI,CAAC,SAAS,CAAC,MAAM;YAC7B,GAAG,EAAE,IAAI,CAAC,SAAS,CAAC,GAAG;YACvB,OAAO,EAAE,IAAI,CAAC,SAAS,CAAC,QAAQ;YAChC,OAAO,EAAE,CAAC;YACV,KAAK,EAAE,IAAI,CAAC,SAAS,CAAC,YAAY;YAClC,QAAQ,EAAE,IAAI,CAAC,SAAS,CAAC,QAAQ;YACjC,SAAS,EAAE,IAAI,CAAC,SAAS,CAAC,QAAQ,GAAG,KAAK,IAAI,IAAI,CAAC,SAAS,CAAC,GAAG,GAAG,KAAK,GAAG,KAAK,CAAC;YACjF,MAAM,EAAE,KAAK;YACb,UAAU,EAAE,KAAK;YACjB,OAAO,EAAE,IAAI,CAAC,SAAS,CAAC,OAAO;YAC/B,SAAS,EAAE,IAAI;YACf,KAAK,EAAE,IAAI,CAAC,SAAS,CAAC,QAAQ,GAAG,QAAQ,GAAG,KAAK;SACpD,CAAA;KACJ;IAID,IAAI;QACA,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC;KACrB;IAED,IAAI;QACA,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;KACtC;IAED,IAAI;QACA,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC;KACrB;IAED,KAAK;QACD,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;KACnB;IAED,SAAS,CAAC,KAAa;QACnB,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC;KACvB;IAED,QAAQ,CAAC,KAAa;QAClB,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,KAAK,EAAE,CAAC,CAAC;KAC7B;IAED,OAAO;QACH,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC;KACvB;IAED,OAAO;QACH,IAAI,IAAI,CAAC,IAAI,EAAE;YACX,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;YACtB,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC;SACvB;;QAED,IAAI,CAAC,IAAI,GAAG,IAAI,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,EAAE,IAAI,CAAC,UAAU,EAAE,CAAC,CAAC;QAC/D,IAAI,CAAC,IAAI,CAAC,KAAK,EAAE,CAAC;QAClB,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,MAAM,EAAE,IAAI,CAAC,mBAAmB,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;QAC1D,IAAI,CAAC,mBAAmB,CAAC,IAAI,CAAC,SAAS,CAAC,YAAY,CAAC,CAAC;KACzD;;;MCrFQ,mBAAoB,SAAQ,oBAAoB;IAGzD,YACI,UAAsB,EACd,IAAY,EACpB,GAAsB,EACd,IAAoB;QAE5B,KAAK,CAAC,UAAU,EAAE,GAAG,CAAC,CAAC;QAJf,SAAI,GAAJ,IAAI,CAAQ;QAEZ,SAAI,GAAJ,IAAI,CAAgB;QAOhC,qBAAgB,GAAuB,IAAI,YAAY,EAAQ,CAAC;QAGzD,mBAAc,GAA8C,IAAI,YAAY,EAA+B,CAAC;QAG5G,mBAAc,GAAyB,IAAI,YAAY,EAAU,CAAC;QAEjE,cAAS,GAAW,CAAC,CAAA;QAoB7B,QAAG,GAAW,EAAE,CAAC;QAIV,mBAAc,GAA0B,IAAI,YAAY,EAAW,CAAC;QAEnE,cAAS,GAAY,KAAK,CAAC;QAe5B,mBAAc,GAAyB,IAAI,YAAY,EAAU,CAAC;QAEjE,cAAS,GAAW,IAAI,CAAA;QAgBzB,kBAAa,GAAkC,IAAI,YAAY,EAAmB,CAAC;QAElF,aAAQ,GAAoB,CAAC,CAAA;QAgB9B,mBAAc,GAA0B,IAAI,YAAY,EAAW,CAAC;QAEnE,cAAS,GAAY,KAAK,CAAC;QAmB5B,mBAAc,GAA0B,IAAI,YAAY,EAAW,CAAC;QAEnE,cAAS,GAAY,KAAK,CAAC;QAe5B,eAAU,GAA0B,IAAI,YAAY,EAAW,CAAC;QAE/D,UAAK,GAAY,KAAK,CAAC;QAmBxB,iBAAY,GAA0B,IAAI,YAAY,EAAW,CAAC;QAEjE,YAAO,GAAY,KAAK,CAAC;QAuBzB,kBAAa,GAAY,CAAC,CAAC;QAY5B,mBAAc,GAAwD,IAAI,YAAY,EAAyC,CAAC;QAE/H,WAAM,GAAqB,EAAE,CAAC;KA3LrC;IAaD,IACW,QAAQ;QACf,OAAO,IAAI,CAAC,SAAS,CAAC;KACzB;IACD,IAAW,QAAQ,CAAC,CAAS;QACzB,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,oBAAoB,CAAC,CAAC,CAAC,CAAC,CAAC;QACjD,IAAI,GAAG,IAAI,IAAI,CAAC,SAAS,EAAE;YACvB,IAAI,CAAC,SAAS,GAAG,GAAG,CAAC;YACrB,IAAI,IAAI,CAAC,SAAS,GAAG,CAAC,EAAE;gBACpB,IAAI,CAAC,SAAS,GAAG,KAAK,CAAC;aAC1B;YACD,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;YACxC,IAAI,CAAC,gBAAgB,CAAC,IAAI,EAAE,CAAC;SAChC;KACJ;IAYD,IACW,QAAQ;QACf,OAAO,IAAI,CAAC,SAAS,CAAC;KACzB;IACD,IAAW,QAAQ,CAAC,CAAU;QAC1B,MAAM,GAAG,GAAG,qBAAqB,CAAC,CAAC,CAAC,CAAC;QACrC,IAAI,GAAG,IAAI,IAAI,CAAC,SAAS,EAAE;YACvB,IAAI,CAAC,SAAS,GAAG,GAAG,CAAC;YACrB,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;YACxC,IAAI,CAAC,gBAAgB,CAAC,IAAI,EAAE,CAAC;SAChC;KACJ;IAMD,IACW,QAAQ;QACf,OAAO,IAAI,CAAC,SAAS,CAAC;KACzB;IACD,IAAW,QAAQ,CAAC,CAAS;QACzB,MAAM,GAAG,GAAG,oBAAoB,CAAC,CAAC,CAAC,CAAC;QACpC,IAAI,GAAG,IAAI,IAAI,CAAC,SAAS,EAAE;YACvB,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;YAC9B,IAAI,CAAC,gBAAgB,CAAC,IAAI,EAAE,CAAC;SAChC;KACJ;IAQD,IACW,OAAO;QACd,OAAO,IAAI,CAAC,QAAQ,CAAC;KACxB;IACD,IAAW,OAAO,CAAC,CAAkB;QACjC,IAAI,CAAC,IAAI,IAAI,CAAC,QAAQ,EAAE;YACpB,IAAI,CAAC,QAAQ,GAAC,CAAC,CAAC;YAChB,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;YAC3B,IAAI,CAAC,gBAAgB,CAAC,IAAI,EAAE,CAAC;SAChC;KACJ;IAQD,IACW,QAAQ;QACf,OAAO,IAAI,CAAC,SAAS,CAAC;KACzB;IACD,IAAW,QAAQ,CAAC,CAAU;QAC1B,MAAM,GAAG,GAAG,qBAAqB,CAAC,CAAC,CAAC,CAAC;QACrC,IAAI,GAAG,IAAI,IAAI,CAAC,SAAS,EAAE;YACvB,IAAI,CAAC,SAAS,GAAG,GAAG,CAAC;YACrB,IAAI,IAAI,CAAC,SAAS,EAAE;gBAChB,IAAI,CAAC,OAAO,GAAG,KAAK,CAAC;aACxB;YACD,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;YACxC,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;YACpC,IAAI,CAAC,gBAAgB,CAAC,IAAI,EAAE,CAAC;SAChC;KACJ;IAMD,IACW,QAAQ;QACf,OAAO,IAAI,CAAC,SAAS,CAAC;KACzB;IACD,IAAW,QAAQ,CAAC,CAAU;QAC1B,MAAM,GAAG,GAAG,qBAAqB,CAAC,CAAC,CAAC,CAAC;QACrC,IAAI,GAAG,IAAI,IAAI,CAAC,SAAS,EAAE;YACvB,IAAI,CAAC,SAAS,GAAG,GAAG,CAAC;YACrB,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;YACxC,IAAI,CAAC,gBAAgB,CAAC,IAAI,EAAE,CAAC;SAChC;KACJ;IAMD,IACW,IAAI;QACX,OAAO,IAAI,CAAC,KAAK,CAAC;KACrB;IACD,IAAW,IAAI,CAAC,CAAU;QACtB,MAAM,GAAG,GAAG,qBAAqB,CAAC,CAAC,CAAC,CAAC;QACrC,IAAI,GAAG,IAAI,IAAI,CAAC,KAAK,EAAE;YACnB,IAAI,CAAC,KAAK,GAAG,GAAG,CAAC;YACjB,IAAI,IAAI,CAAC,KAAK,EAAE;gBACZ,IAAI,CAAC,OAAO,GAAG,KAAK,CAAC;aACxB;YACD,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YAChC,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;YACpC,IAAI,CAAC,gBAAgB,CAAC,IAAI,EAAE,CAAC;SAChC;KACJ;IAMD,IACW,MAAM;QACb,OAAO,IAAI,CAAC,OAAO,CAAC;KACvB;IACD,IAAW,MAAM,CAAC,CAAU;QACxB,MAAM,GAAG,GAAG,qBAAqB,CAAC,CAAC,CAAC,CAAC;QACrC,IAAI,GAAG,IAAI,IAAI,CAAC,OAAO,EAAE;YACrB,IAAI,CAAC,OAAO,GAAG,GAAG,CAAC;YACnB,IAAI,IAAI,CAAC,OAAO,EAAE;gBACd,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;gBACnB,IAAI,CAAC,SAAS,GAAG,KAAK,CAAC;aAC1B;YACD,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;YACpC,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YAChC,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;YACxC,IAAI,CAAC,gBAAgB,CAAC,IAAI,EAAE,CAAC;SAChC;KACJ;IAMD,IAAW,YAAY;QACnB,OAAO,IAAI,CAAC,aAAa,CAAC;KAC7B;IACD,IAAW,YAAY,CAAC,CAAU;QAC9B,IAAI,CAAC,aAAa,GAAG,CAAC,CAAC;KAC1B;IASD,IAAW,KAAK;QACZ,OAAO,IAAI,CAAC,MAAM,IAAI,EAAE,CAAC;KAC5B;IACD,IAAW,KAAK,CAAC,CAAmB;QAChC,MAAM,QAAQ,GAAG,IAAI,CAAC,KAAK,CAAC,KAAK,EAAE,CAAC;QACpC,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC;QAChB,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC;YACrB,SAAS,EAAE,IAAI;YACf,WAAW,EAAE,IAAI,CAAC,eAAe,EAAE;YACnC,QAAQ;YACR,KAAK,EAAE,IAAI,CAAC,KAAK;SACpB,CAAC,CAAA;KACL;IAGD,UAAU;QACN,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;KACzB;IAKD,IAAI;QACA,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC;KACpB;IAED,IAAI;QACA,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC;KACpB;IAED,IAAI;QACA,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC;KACpB;IAED,KAAK;QACD,IAAI,CAAC,IAAI,CAAC,KAAK,EAAE,CAAC;KACrB;IAED,SAAS,CAAC,KAAa;QACnB,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC;KAC9B;IAED,QAAQ,CAAC,KAAa;QAClB,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;KAC7B;IAGD,IAAI,IAAI;QAEJ,OAAO,IAAI,CAAC,eAAe,EAAE,CAAC;KACjC;IAGD,SAAS;QAEL,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC;KACvB;;gHA9PQ,mBAAmB;oGAAnB,mBAAmB,koBALlB,CAAC;YACP,OAAO,EAAE,cAAc;YACvB,QAAQ,EAAE,kBAAkB;SAC/B,CAAC,iDCfN,kUAUa;2FDOA,mBAAmB;kBAX/B,SAAS;+BACI,aAAa,mBAEN,uBAAuB,CAAC,MAAM,iBAChC,iBAAiB,CAAC,IAAI,QAC/B,EAAE,KAAK,EAAE,aAAa,EAAE,aACpB,CAAC;4BACP,OAAO,EAAE,cAAc;4BACvB,QAAQ,EAAE,kBAAkB;yBAC/B,CAAC;gLAgBF,gBAAgB;sBADf,MAAM;gBAIA,cAAc;sBADpB,MAAM;gBAIA,cAAc;sBADpB,MAAM;gBAKI,QAAQ;sBADlB,KAAK;gBAmBN,GAAG;sBADF,KAAK;gBAKC,cAAc;sBADpB,MAAM;gBAKI,QAAQ;sBADlB,KAAK;gBAcC,cAAc;sBADpB,MAAM;gBAKI,QAAQ;sBADlB,KAAK;gBAeC,aAAa;sBADnB,MAAM;gBAKI,OAAO;sBADjB,KAAK;gBAeC,cAAc;sBADpB,MAAM;gBAKI,QAAQ;sBADlB,KAAK;gBAkBC,cAAc;sBADpB,MAAM;gBAKI,QAAQ;sBADlB,KAAK;gBAcC,UAAU;sBADhB,MAAM;gBAKI,IAAI;sBADd,KAAK;gBAkBC,YAAY;sBADlB,MAAM;gBAKI,MAAM;sBADhB,KAAK;gBAkCC,cAAc;sBADpB,MAAM;;;MEzME,uBAAwB,SAAQ,oBAAoB;IAE7D,YACI,UAAsB,EACtB,GAAsB;QAEtB,KAAK,CAAC,UAAU,EAAE,GAAG,CAAC,CAAC;KAC1B;;oHAPQ,uBAAuB;wGAAvB,uBAAuB,6HALtB,2BAA2B;2FAK5B,uBAAuB;kBAPnC,SAAS;mBAAC;oBACP,QAAQ,EAAE,kBAAkB;oBAC5B,QAAQ,EAAE,2BAA2B;oBACrC,eAAe,EAAE,uBAAuB,CAAC,MAAM;oBAC/C,aAAa,EAAE,iBAAiB,CAAC,IAAI;oBACrC,IAAI,EAAG,EAAE,KAAK,EAAE,kBAAkB,EAAE;iBACvC;;;MCSY,yBAA0B,SAAQ,oBAAoB;IAQ/D,YACI,UAAsB,EACtB,GAAsB,EAEd,MAA2B;QAEnC,KAAK,CAAC,UAAU,EAAE,GAAG,CAAC,CAAC;QAFf,WAAM,GAAN,MAAM,CAAqB;QAThC,gBAAW,GAA+B,IAAI,YAAY,EAAgB,CAAC;QAG3E,gBAAW,GAA+B,IAAI,YAAY,EAAgB,CAAC;KASjF;IAGD,gBAAgB,CAAC,CAAa;QAC1B,CAAC,CAAC,eAAe,EAAE,CAAC;QACpB,IAAI,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC;KACtB;IAED,gBAAgB,CAAC,CAAa;QAC1B,CAAC,CAAC,eAAe,EAAE,CAAC;QACpB,IAAI,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC;KACtB;;sHA1BQ,yBAAyB;0GAAzB,yBAAyB,sMAZxB;;;;;;;KAOT;2FAKQ,yBAAyB;kBAdrC,SAAS;mBAAC;oBACP,QAAQ,EAAE,oBAAoB;oBAC9B,QAAQ,EAAE;;;;;;;KAOT;oBACD,eAAe,EAAE,uBAAuB,CAAC,MAAM;oBAC/C,aAAa,EAAE,iBAAiB,CAAC,IAAI;oBACrC,IAAI,EAAE,EAAE,KAAK,EAAE,oBAAoB,EAAE;iBACxC;;0BAYQ,QAAQ;4CARN,WAAW;sBADjB,MAAM;gBAIA,WAAW;sBADjB,MAAM;;;MCRE,wBAAyB,SAAQ,oBAAoB;IAY9D,YACI,UAAsB,EACd,GAAsB,EACtB,OAA4B;QAEpC,KAAK,CAAC,UAAU,EAAE,GAAG,CAAC,CAAC;QAHf,QAAG,GAAH,GAAG,CAAmB;QACtB,YAAO,GAAP,OAAO,CAAqB;QAZxC,kBAAa,GAAW,CAAC,CAAC;QAC1B,eAAU,GAAW,CAAC,CAAC;QACf,UAAK,GAAW,CAAC,CAAC;QAE1B,UAAK,GAAU,EAAE,CAAC;QAGV,UAAK,GAAmB,EAAE,CAAC;QAQ9B,OAAO,CAAC,cAAc,CAAC,SAAS,CAAC,CAAC;YAC/B,IAAI,CAAC,KAAK,GAAG,CAAC,CAAC;YACf,IAAI,CAAC,aAAa,EAAE,CAAC;SACxB,CAAC,CAAC;QACF,OAAO,CAAC,cAAc,CAAC,SAAS,CAAC,CAAC;YAC/B,IAAI,CAAC,aAAa,GAAG,CAAC,CAAC,KAAK,CAAC;YAC7B,IAAI,CAAC,aAAa,EAAE,CAAC;SACxB,CAAC,CAAC;QACF,OAAO,CAAC,cAAc,CAAC,SAAS,CAAC,CAAC;YAC/B,IAAI,CAAC,aAAa,EAAE,CAAC;SACxB,CAAC,CAAC;KACN;IAGD,UAAU;QACN,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC;QACnC,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC,OAAO,CAAC,YAAY,CAAC;QAC/C,IAAI,CAAC,aAAa,EAAE,CAAC;KACxB;IAGO,aAAa;QACjB,IAAI,CAAC,KAAK,GAAG,CAAC,GAAG,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC;QAClF,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC;QAC5D,IAAI,CAAC,GAAG,CAAC,aAAa,EAAE,CAAC;KAC5B;IAGD,YAAY,CAAC,CAAa,EAAE,KAAa;QACrC,CAAC,CAAC,eAAe,EAAE,CAAC;QACpB,IAAI,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC;QAC1B,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;KAChC;IAEO,aAAa,CAAC,KAAa;QAC/B,IAAI,CAAC,UAAU,GAAG,KAAK,CAAC;QACxB,IAAI,CAAC,GAAG,CAAC,aAAa,EAAE,CAAC;KAC5B;IAEO,cAAc,CAAC,UAAkB;QACrC,OAAO,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,KAAK,CAAC,EAAE,IAAI,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;KAC9E;IAED,SAAS;QACL,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;YAChB,CAAC,CAAC,WAAW,EAAE,CAAC;SACnB,CAAC,CAAC;KACN;;qHAjEQ,wBAAwB;yGAAxB,wBAAwB,+HARvB;;;KAGT;2FAKQ,wBAAwB;kBAVpC,SAAS;mBAAC;oBACP,QAAQ,EAAE,mBAAmB;oBAC7B,QAAQ,EAAE;;;KAGT;oBACD,eAAe,EAAE,uBAAuB,CAAC,MAAM;oBAC/C,aAAa,EAAE,iBAAiB,CAAC,IAAI;oBACrC,IAAI,EAAE,EAAE,KAAK,EAAE,mBAAmB,EAAE;iBACvC;;;ACLD,MAAMA,WAAS,GAAG,CAAC,mBAAmB,EAAE,uBAAuB,EAAE,yBAAyB,EAAE,wBAAwB,CAAC,CAAC;AACtH,MAAMC,SAAO,GAAG,CAAC,YAAY,CAAC,CAAC;MAQlB,gBAAgB;;6GAAhB,gBAAgB;8GAAhB,gBAAgB,iBATV,mBAAmB,EAAE,uBAAuB,EAAE,yBAAyB,EAAE,wBAAwB,aACnG,YAAY,aADV,mBAAmB,EAAE,uBAAuB,EAAE,yBAAyB,EAAE,wBAAwB;8GASvG,gBAAgB,aAFd,EAAE,YAFJ,CAAC,GAAGA,SAAO,CAAC;2FAIZ,gBAAgB;kBAN5B,QAAQ;mBAAC;oBACN,YAAY,EAAE,CAAC,GAAGD,WAAS,CAAC;oBAC5B,OAAO,EAAE,CAAC,GAAGC,SAAO,CAAC;oBACrB,OAAO,EAAE,CAAC,GAAGD,WAAS,CAAC;oBACvB,SAAS,EAAE,EAAE;iBAChB;;;MCJY,mBAAoB,SAAQ,yBAAyB;IAEhE,YAAY,UAAsB,EAAE,GAAsB;QACxD,KAAK,CAAC,UAAU,EAAE,GAAG,CAAC,CAAC;KACxB;IAED,MAAM;QACJ,KAAK,CAAC,MAAM,EAAE,CAAC;QACf,IAAI,CAAC,IAAI,CAAC,SAAS,IAAI,IAAI,CAAC,KAAK,IAAI,IAAI,EAAE;YACzC,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;SACpB;KACF;IAED,gBAAgB,CAAC,KAAK;QACpB,IAAI,IAAI,CAAC,SAAS,IAAI,KAAK,IAAI,IAAI,EAAE;YACnC,IAAI,CAAC,mBAAmB,GAAG,IAAI,CAAC;SACjC;aACI;YACH,IAAI,CAAC,mBAAmB,GAAG,KAAK,CAAC;YACjC,KAAK,GAAG,KAAK,IAAI,IAAI,GAAG,IAAI,GAAG,KAAK,CAAC;SACtC;QACD,OAAO,KAAK,CAAC;KACd;IAED,mBAAmB,CAAC,CAAa;QAC/B,IAAI,IAAI,CAAC,QAAQ,IAAI,IAAI,CAAC,QAAQ,EAAE;YAClC,CAAC,CAAC,cAAc,EAAE,CAAC;YACnB,CAAC,CAAC,eAAe,EAAE,CAAC;YACpB,OAAO,KAAK,CAAC;SACd;KACF;;gHA9BU,mBAAmB;oGAAnB,mBAAmB,kXCbhC,q1BAaqD;2FDAxC,mBAAmB;kBAR/B,SAAS;+BACE,cAAc,UAEhB,CAAC,GAAG,kBAAkB,EAAE,GAAG,YAAY,CAAC,WACvC,CAAC,GAAG,kBAAkB,EAAE,GAAG,YAAY,CAAC,iBAClC,iBAAiB,CAAC,IAAI,mBACpB,uBAAuB,CAAC,MAAM;;;MEApC,gBAAgB;;6GAAhB,gBAAgB;8GAAhB,gBAAgB,iBALZ,mBAAmB,aACxB,YAAY,EAAE,WAAW,EAAC,uBAAuB,aACjD,mBAAmB;8GAGlB,gBAAgB,aAFhB,EAAE,YAFJ,CAAC,YAAY,EAAE,WAAW,EAAC,uBAAuB,CAAC;2FAIjD,gBAAgB;kBAN5B,QAAQ;mBAAC;oBACR,YAAY,EAAE,CAAC,mBAAmB,CAAC;oBACnC,OAAO,EAAE,CAAC,YAAY,EAAE,WAAW,EAAC,uBAAuB,CAAC;oBAC5D,OAAO,EAAE,CAAC,mBAAmB,CAAC;oBAC9B,SAAS,EAAE,EAAE;iBACd;;;MCIY,kBAAmB,SAAQ,oBAAoB;;;;IAOxD,YACI,UAAsB,EACtB,GAAsB;QAEtB,KAAK,CAAC,UAAU,EAAE,GAAG,CAAC,CAAC;QAK3B,kBAAa,GAA0B,IAAI,YAAY,EAAE,CAAC;QAiB1D,SAAI,GAAW,SAAS,CAAC;KArBxB;IAQD,IACW,OAAO;QACd,OAAO,IAAI,CAAC,QAAQ,CAAC;KACxB;IACD,IAAW,OAAO,CAAC,CAAU;QACzB,IAAI,CAAC,IAAI,IAAI,CAAC,QAAQ,EAAE;YACpB,IAAI,CAAC,QAAQ,GAAG,CAAC,CAAC;YAClB,CAAC,GAAG,IAAI,CAAC,eAAe,EAAE,CAAC,SAAS,CAAC,MAAM,CAAC,SAAS,CAAC,GAAG,IAAI,CAAC,eAAe,EAAE,CAAC,SAAS,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;YACzG,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;SAC9B;KACJ;IAQD,MAAM;QACF,MAAM,OAAO,GAAG,QAAQ,CAAC,GAAG,CAAC,kBAAkB,IAAI,CAAC,IAAI,EAAE,CAAC,CAAC;QAC5D,IAAI,CAAC,eAAe,GAAG,IAAI,eAAe,CAAC,OAAO,CAAC,CAAC;QACpD,IAAI,CAAC,IAAI,CAAC,YAAY,EAAE,CAAC;KAC5B;IAED,cAAc,CAAC,GAA+B;QAC1C,GAAG,GAAG,GAAwB,CAAC;QAC/B,IAAI,GAAG,CAAC,QAAQ,EAAE;YACf,GAAG,CAAC,QAAQ,CAAC,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC;SAChC;KACJ;;+GAjDQ,kBAAkB;mGAAlB,kBAAkB,0NAPjB;;KAET;2FAKQ,kBAAkB;kBAT9B,SAAS;mBAAC;oBACP,QAAQ,EAAE,YAAY;oBACtB,QAAQ,EAAE;;KAET;oBACD,eAAe,EAAE,uBAAuB,CAAC,MAAM;oBAC/C,aAAa,EAAE,iBAAiB,CAAC,IAAI;oBACrC,IAAI,EAAE,EAAE,KAAK,EAAE,YAAY,EAAE;iBAChC;iIAiBG,aAAa;sBADZ,MAAM;gBAMI,OAAO;sBADjB,KAAK;gBAaN,IAAI;sBADH,KAAK;gBAIN,IAAI;sBADH,KAAK;;;MCrCG,mBAAoB,SAAQ,yBAAyB;IAE9D,YAAY,UAAsB,EAAE,GAAsB;QACtD,KAAK,CAAC,UAAU,EAAE,GAAG,CAAC,CAAC;KAC1B;IASD,IACW,YAAY;QACnB,OAAO,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC,oBAAoB,CAAC;KAC9E;IACD,IAAW,YAAY,CAAC,CAAmB;QACvC,IAAI,CAAC,aAAa,GAAG,CAAC,CAAC;KAC1B;IAMD,IACW,aAAa;QACpB,OAAO,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC,qBAAqB,CAAC;KACjF;IACD,IAAW,aAAa,CAAC,CAAmB;QACxC,IAAI,CAAC,cAAc,GAAG,CAAC,CAAC;KAC3B;IAMD,IACW,eAAe;QACtB,OAAO,IAAI,CAAC,gBAAgB,GAAG,IAAI,CAAC,gBAAgB,GAAG,IAAI,CAAC,uBAAuB,CAAC;KACvF;IACD,IAAW,eAAe,CAAC,CAAmB;QAC1C,IAAI,CAAC,gBAAgB,GAAG,CAAC,CAAC;KAC7B;IAGD,kBAAkB,CAAC,CAAa,EAAE,IAAS;QACvC,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC;KAC1B;IAED,iBAAiB,CAAC,CAAQ;QACtB,MAAM,IAAI,GAAG,CAAC,CAAC,MAAwB,CAAC;QACxC,KAAK,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC,YAAY,GAAG;YAC1D,OAAO;SACV;QACD,IAAI,CAAC,UAAU,EAAE,CAAC;KACrB;IAGO,iBAAiB;QACrB,MAAM,IAAI,GAAG,IAAI,CAAC,UAAU,CAAC,aAAa,CAAC;QAC3C,IAAI,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,UAAU,IAAI,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC,aAAa,CAAC,YAAY,EAAE;YAC3F,IAAI,CAAC,UAAU,EAAE,CAAC;SACrB;KACJ;IAED,aAAa;QACT,UAAU,CAAC;YACP,IAAI,CAAC,iBAAiB,EAAE,CAAC;SAC5B,EAAE,GAAG,CAAC,CAAC;KAEX;;gHAvEQ,mBAAmB;oGAAnB,mBAAmB,i8BCZhC,i1DAoCM;2FDxBO,mBAAmB;kBAT/B,SAAS;+BACI,aAAa,UAEf,CAAC,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,MAAM,EAAE,OAAO,EAAE,OAAO,EAAE,UAAU,CAAC,WACzE,CAAC,aAAa,EAAE,gBAAgB,EAAE,QAAQ,EAAE,SAAS,CAAC,mBAC9C,uBAAuB,CAAC,MAAM,iBAChC,iBAAiB,CAAC,IAAI,QAC/B,EAAE,KAAK,EAAE,2BAA2B,EAAE;iIAS5C,UAAU;sBADT,SAAS;uBAAC,WAAW;gBAItB,oBAAoB;sBADnB,YAAY;uBAAC,cAAc,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE;gBAKnC,YAAY;sBADtB,KAAK;gBASN,qBAAqB;sBADpB,YAAY;uBAAC,eAAe,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE;gBAKpC,aAAa;sBADvB,KAAK;gBASN,uBAAuB;sBADtB,YAAY;uBAAC,iBAAiB,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE;gBAKtC,eAAe;sBADzB,KAAK;;;MEjCG,yBAAyB;;sHAAzB,yBAAyB;0GAAzB,yBAAyB,0DAZxB;;;;;;;;;;KAUT;2FAEQ,yBAAyB;kBAdrC,SAAS;mBAAC;oBACP,QAAQ,EAAE,oBAAoB;oBAC9B,QAAQ,EAAE;;;;;;;;;;KAUT;iBACJ;;;ACFC,MAAM,aAAa,GAAG,iBAAiB,CAAC;AAExC;AACA;MAIa,kBAAkB;IAQ7B,YACqB,UAAsB,EACtB,QAAmB,EACnB,iBAAoC,EACpC,gBAAkC,EAClC,wBAAkD;QAJlD,eAAU,GAAV,UAAU,CAAY;QACtB,aAAQ,GAAR,QAAQ,CAAW;QACnB,sBAAiB,GAAjB,iBAAiB,CAAmB;QACpC,qBAAgB,GAAhB,gBAAgB,CAAkB;QAClC,6BAAwB,GAAxB,wBAAwB,CAA0B;QAXvE,cAAS,GAAG,KAAK,CAAC;QAahB,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,UAAU,CAAC,aAAa,CAAC;QACjD,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC,QAAQ,GAAG,UAAU,CAAC;KAC9C;IAED,WAAW,CAAC,OAAsB;QAChC,IAAI,CAAC,IAAI,CAAC,cAAc,IAAI,CAAC,IAAI,CAAC,cAAc,EAAE;YAChD,IAAI,CAAC,IAAI,EAAE,CAAC;SACb;QAED,IAAI,OAAO,CAAC,SAAS,EAAE;YACrB,MAAM,cAAc,GAAG,OAAO,CAAC,SAAS,CAAC,YAAY,CAAC;YAEtD,IAAI,cAAc,EAAE;gBAClB,IAAI,CAAC,mBAAmB,EAAE,CAAC;aAC5B;iBACI;gBACH,IAAI,CAAC,sBAAsB,EAAE,CAAC;aAC/B;YAED,IAAI,CAAC,iBAAiB,CAAC,YAAY,EAAE,CAAC;SACvC;KACF;IAES,mBAAmB;QAC3B,IAAI,CAAC,QAAQ,CAAC,WAAW,CAAC,IAAI,CAAC,WAAW,EAAE,IAAI,CAAC,cAAc,CAAC,CAAC;QACjE,IAAI,CAAC,QAAQ,CAAC,WAAW,CAAC,IAAI,CAAC,cAAc,EAAE,IAAI,CAAC,cAAc,CAAC,CAAC;KACrE;IAES,sBAAsB;QAC9B,IAAI,CAAC,QAAQ,CAAC,WAAW,CAAC,IAAI,CAAC,cAAc,EAAE,IAAI,CAAC,cAAc,CAAC,CAAC;QACpE,IAAI,CAAC,QAAQ,CAAC,WAAW,CAAC,IAAI,CAAC,WAAW,EAAE,IAAI,CAAC,cAAc,CAAC,CAAC;QACjE,IAAI,CAAC,gBAAgB,CAAC,KAAK,EAAE,CAAC;KAC/B;IAES,IAAI;QACZ,IAAI,CAAC,kBAAkB,EAAE,CAAC;QAC1B,IAAI,CAAC,oBAAoB,EAAE,CAAC;KAC7B;IAES,oBAAoB;QAC5B,MAAM,uBAAuB,GAAG,IAAI,CAAC,wBAAwB,CAAC,uBAAuB,CAAC,kBAAkB,CAAC,CAAC;QAC1G,MAAM,gBAAgB,GAAG,IAAI,CAAC,gBAAgB,CAAC,eAAe,CAAC,uBAAuB,CAAC,CAAC;QACxF,IAAI,CAAC,cAAc,GAAG,gBAAgB,CAAC,QAAQ,CAAC,aAAa,CAAC;KAC/D;IAES,kBAAkB;QAC1B,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC,QAAQ,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC;QACzD,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,IAAI,CAAC,cAAc,EAAE,aAAa,CAAC,CAAC;KAC5D;;+GA/DU,kBAAkB;mGAAlB,kBAAkB;2FAAlB,kBAAkB;kBAH9B,SAAS;mBAAC;oBACT,QAAQ,EAAE,eAAe;iBAC1B;+NAGC,SAAS;sBADR,KAAK;uBAAC,aAAa;;;ACZxB,MAAMA,WAAS,GAAG,CAAC,kBAAkB,EAAE,kBAAkB,EAAE,yBAAyB,CAAC,CAAC;AACtF,MAAMC,SAAO,GAAG,CAAC,YAAY,EAAE,aAAa,EAAE,YAAY,CAAC,CAAC;MAQ/C,eAAe;IAGxB;QACI,QAAQ,CAAC,GAAG,CAAC;YACT,MAAM,EAAE;gBACJ,OAAO,EAAE;oBACL,OAAO,EAAE,yBAAyB;iBACrC;aACJ;SACJ,CAAC,CAAA;KAEL;;4GAZQ,eAAe;6GAAf,eAAe,iBATT,kBAAkB,EAAE,kBAAkB,EAAE,yBAAyB,aACnE,YAAY,EAAE,aAAa,EAAE,YAAY,aADvC,kBAAkB,EAAE,kBAAkB,EAAE,yBAAyB;6GASvE,eAAe,aAFb,EAAE,YAFJ,CAAC,GAAGA,SAAO,CAAC;2FAIZ,eAAe;kBAN3B,QAAQ;mBAAC;oBACN,YAAY,EAAE,CAAC,GAAGD,WAAS,CAAC;oBAC5B,OAAO,EAAE,CAAC,GAAGC,SAAO,CAAC;oBACrB,OAAO,EAAE,CAAC,GAAGD,WAAS,CAAC;oBACvB,SAAS,EAAE,EAAE;iBAChB;;;MCSY,uBAAwB,SAAQ,gBAAgB;IAClD,mBAAmB,CAAC,gBAA6B;QACpD,IAAI,CAAC,iBAAiB,GAAG,gBAAgB,CAAC;KAC7C;;oHAHQ,uBAAuB;wHAAvB,uBAAuB,cAFpB,MAAM;2FAET,uBAAuB;kBAHnC,UAAU;mBAAC;oBACR,UAAU,EAAE,MAAM;iBACrB;;MAYY,cAAe,SAAQ,OAAO;IAIvC,YACI,gBAAuC,EACvC,iBAA0C,EAC1C,yBAAmD,EACnD,gBAAwC,EACxC,mBAA8C,EAC9C,SAAmB,EACnB,OAAe,EACG,SAAc,EAChC,eAA+B,EAC/B,eAAiC,EACjC,SAAmB,EACnB,uBAAsD;QAEtD,KAAK,CACD,gBAAgB,EAChB,iBAAiB,EACjB,yBAAyB,EACzB,gBAAgB,EAChB,mBAAmB,EACnB,SAAS,EACT,OAAO,EACP,SAAS,EACT,eAAe,EACf,SAAS,EACT,uBAAuB,CAC1B,CAAC;QACF,IAAI,CAAC,QAAQ,GAAG,eAAe,CAAC,cAAc,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;QAE3D,IAAI,CAAC,wBAAwB,GAAG,iBAAiB,CAAC;KACrD;IAEO,mBAAmB,CAAC,gBAA6B;QACrD,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,gBAAgB,EAAE,WAAW,EAAE,eAAe,CAAC,CAAC;QACvE,IAAI,CAAC,wBAAwB,CAAC,mBAAmB,CAAC,gBAAgB,CAAC,CAAC;KACvE;IAEM,QAAQ,CAAC,gBAA6B,EAAE,MAAsB;QACjE,IAAI,CAAC,mBAAmB,CAAC,gBAAgB,CAAC,CAAC;QAC3C,OAAO,KAAK,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;KAC/B;;2GA5CQ,cAAc,yDAMA,uBAAuB,sLAMlC,QAAQ;+GAZX,cAAc,cAFX,MAAM;2FAET,cAAc;kBAH1B,UAAU;mBAAC;oBACR,UAAU,EAAE,MAAM;iBACrB;gGAO0B,uBAAuB;0BAMzC,MAAM;2BAAC,QAAQ;;;MCtBX,gBAAgB;IACzB,YACY,cAA8B,EAC9B,eAAwB,EACxB,MAAsB;QAFtB,mBAAc,GAAd,cAAc,CAAgB;QAC9B,oBAAe,GAAf,eAAe,CAAS;QACxB,WAAM,GAAN,MAAM,CAAgB;KAEjC;IAED,IAAI,CAAC,OAAY,EAAE,OAAa,EAAE,OAA0B;QACxD,OAAO,GAAG,MAAM,CAAC,MAAM,CAAC;YACpB,WAAW,EAAE,IAAI;YACjB,mBAAmB,EAAE,IAAI;YACzB,mBAAmB,EAAE,IAAI;SAC5B,EAAE,OAAO,IAAI,EAAE,CAAC,CAAC;;QAElB,MAAM,OAAO,GAAqB,IAAI,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,OAAO,CAAC;QAE7E,IAAI,MAAmB,CAAC;;QAExB,IAAI,OAAO,OAAO,KAAK,QAAQ,EAAE;;SAEhC;;aAEI,IAAI,OAAO,YAAY,WAAW,EAAE;YACrC,MAAM,GAAG,IAAI,cAAc,CAAC,OAAO,EAAE,OAAO,EAAE,OAAO,CAAC,CAAC;SAC1D;aACI,IAAI,OAAO,OAAO,KAAK,UAAU,EAAE;YACpC,MAAM,GAAG,IAAI,eAAe,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;SAClD;QACD,IAAI,gBAAkC,CAAC;QACvC,IAAI,OAAO,CAAC,QAAQ,IAAI,OAAO,CAAC,aAAa,EAAE;YAC3C,gBAAgB,GAAG,IAAI,CAAC,cAAc,CAAC,QAAQ,EAAE;iBAC5C,mBAAmB,CAAC,OAAO,CAAC,aAAa,CAAC;iBAC1C,aAAa,CACV,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,QAAQ,CAAC,GAAG,OAAO,CAAC,QAAQ,GAAG,CAAC,OAAO,CAAC,QAAQ,CAAC,CAC1E;iBACA,QAAQ,CAAC,IAAI,CAAC,CAAC;SACvB;aACI;YACD,gBAAgB,GAAG,IAAI,CAAC,cAAc,CAAC,QAAQ,EAAE,CAAC,MAAM,EAAE,CAAC,kBAAkB,EAAE,CAAC,gBAAgB,EAAE,CAAC;SACtG;QACD,IAAI,cAAc,GAAmB,IAAI,CAAC,cAAc,CAAC,gBAAgB,CAAC,UAAU,CAAC,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;QAC1G,IAAI,OAAO,CAAC,MAAM,KAAK,OAAO,EAAE;YAC5B,cAAc,GAAG,IAAI,CAAC,cAAc,CAAC,gBAAgB,CAAC,KAAK,EAAE,CAAC;SACjE;QACD,IAAI,OAAO,CAAC,MAAM,KAAK,OAAO,EAAE;YAC5B,cAAc,GAAG,IAAI,CAAC,cAAc,CAAC,gBAAgB,CAAC,KAAK,EAAE,CAAC;SACjE;QAED,MAAM,MAAM,GAAG;YACX,gBAAgB;YAChB,cAAc;YACd,WAAW,EAAE,OAAO,CAAC,WAAW;YAChC,mBAAmB,EAAE,IAAI;YACzB,aAAa,EAAE,OAAO,CAAC,aAAa,GAAG,OAAO,CAAC,aAAa,IAAI,OAAO,CAAC,mBAAmB,GAAG,kCAAkC,GAAG,SAAS,CAAC;YAC7I,UAAU,EAAE,OAAO,CAAC,UAAU,GAAG,OAAO,CAAC,UAAU,GAAG,CAAC,qBAAqB,EAAE,mBAAmB,EAAC,mBAAmB,CAAC;SACzH,CAAC;;QAEF,IAAI,UAAU,GAAG,OAAO,CAAC,gBAAgB,GAAG,IAAI,CAAC,cAAc,CAAC,QAAQ,CAAC,OAAO,CAAC,gBAAgB,EAAE,MAAM,CAAC,GAAG,IAAI,CAAC,eAAe,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;QAEjJ,MAAM,IAAI,GAAG,UAAU,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;QACvC,IAAI,IAAI,CAAC,QAAQ,EAAE;YACf,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC;YACtC,UAAU,CAAC;gBACP,IAAI,CAAC,iBAAiB,CAAC,aAAa,EAAE,CAAC;aAC1C,EAAE,CAAC,CAAC,CAAC;SACT;QACD,IAAI,OAAO,CAAC,mBAAmB,EAAE;YAC7B,KAAK,CACD,UAAU,CAAC,aAAa,EAAE,EAC1B,UAAU,CAAC,WAAW,EAAE,CAC3B,CAAC,SAAS,CAAC;gBACR,UAAU,CAAC,OAAO,EAAE,CAAC;gBACrB,UAAU,GAAG,SAAS,CAAC;gBACvB,IAAI,OAAO,CAAC,eAAe,EAAE;oBACzB,OAAO,CAAC,eAAe,EAAE,CAAC;iBAC7B;aACJ,CAAC,CAAC;SAEN;QACD,OAAO;YACH,QAAQ,EAAE,IAAI,CAAC,QAAQ;YACvB,OAAO,EAAE,UAAU,CAAC,OAAO,CAAC,IAAI,CAAC,UAAU,CAAC;YAC5C,MAAM,EAAE;gBACJ,OAAO,UAAU,CAAC,WAAW,EAAE,CAAC;aACnC;SACJ,CAAC;KACL;;6GAvFQ,gBAAgB;iHAAhB,gBAAgB,cADH,MAAM;2FACnB,gBAAgB;kBAD5B,UAAU;mBAAC,EAAE,UAAU,EAAE,MAAM,EAAE;;;AClBlC,MAAM,iBAAiB,GAAa,UAAU,CAAC;AAE/C;;;;;;;;;;;;;;;;;;MAqBa,gBAAgB;IAQzB,YAAsB,OAAe,EAAU,cAAgC;QAAzD,YAAO,GAAP,OAAO,CAAQ;QAAU,mBAAc,GAAd,cAAc,CAAkB;;;QALrE,kBAAa,GAAG,IAAI,OAAO,EAA0C,CAAC;;;QAGtE,mBAAc,GAAG,IAAI,OAAO,EAA2D,CAAC;QAI1F,WAAM,GAAkD,EAAE,CAAC;KAFiB;IAIpF,IAAI,CAAC,QAAkB;QACnB,IAAI,IAAa,CAAC;QAClB,IAAI,QAAQ,EAAE;YACV,IAAI,GAAG,QAAQ,CAAC,OAAO,CAAC,kBAAkB,CAAC,CAAC;SAC/C;QACD,MAAM,gBAAgB,IAAI,IAAI,IAAI,QAAQ,CAAmB,CAAC;QAC9D,MAAM,GAAG,GAAG,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,kBAAkB,EAAE,EAAE,EACvD;YACI,mBAAmB,EAAE,KAAK;YAC1B,gBAAgB;YAChB,WAAW,EAAE,IAAI;YACjB,aAAa,EAAE,CAAC,oBAAoB,CAAC;YACrC,MAAM,EAAE,OAAO;SAClB,CAAC,CAAC;QACP,GAAG,CAAC,QAAQ,CAAC,OAAO,GAAG,IAAI,CAAC;QAC5B,MAAM,EAAE,GAAG,IAAI,IAAI,EAAE,CAAC,OAAO,EAAE,CAAC;QAChC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE,EAAE,EAAE,SAAS,EAAE,GAAG,EAAE,CAAC,CAAC;QACzC,OAAO,EAAE,CAAC;KACb;IAED,IAAI,CAAC,EAAE;QACH,MAAM,CAAC,GAAG,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC;QAC7C,IAAI,CAAC,EAAE;YACH,CAAC,CAAC,SAAS,CAAC,OAAO,EAAE,CAAC;YACtB,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC;SACtD;KACJ;;;;;;IAQD,SAAS,CAAI,OAAsB,EAAE,OAAuB,EAAE,QAAmB;QAC7E,IAAI,CAAC,YAAY,CAAC,OAAO,EAAE,QAAQ,CAAC,CAAC;QAErC,OAAO,OAAO,CAAC,IAAI,CACf,SAAS,CAAC,cAAc,CAAC,EACzB,QAAQ,CAAC,MAAM,IAAI,CAAC,UAAU,CAAC,OAAO,EAAE,QAAQ,CAAC,CAAC,CACrD,CAAC;KACL;;;;;IAMD,SAAS,CAAC,OAAuB,EAAE,QAAmB;QAClD,MAAM,YAAY,GAAG,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;QAErD,IAAI,CAAC,YAAY,EAAE;YACf,OAAO,KAAK,CAAC;SAChB;aACI;YACD,IAAI,QAAQ,KAAK,SAAS,EAAE;gBACxB,OAAO,YAAY,CAAC,GAAG,CAAC,IAAI,CAAC,WAAW,CAAC,QAAQ,CAAC,CAAC,IAAI,KAAK,CAAC;aAChE;iBACI;gBACD,OAAO,CAAC,GAAG,YAAY,CAAC,MAAM,EAAE,CAAC,CAAC,MAAM,CAAC,KAAK,IAAI,KAAK,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC;aACvE;SACJ;KACJ;;;IAID,UAAU,CAAC,OAAuB,EAAE,QAAmB;QACnD,MAAM,iBAAiB,GAAG,IAAI,CAAC,WAAW,CAAC,QAAQ,CAAC,CAAC;QAErD,IAAI,CAAC,IAAI,CAAC,gBAAgB,CAAC,OAAO,EAAE,iBAAiB,CAAC,EAAE;YACpD,IAAI,CAAC,eAAe,CAAC,OAAO,EAAE,KAAK,EAAE,QAAQ,CAAC,CAAC;SAClD;QAED,OAAO,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,GAAG,CAAC,iBAAiB,CAAC,CAAC;KAClE;;;IAID,YAAY,CAAC,OAAuB,EAAE,QAAmB;QACrD,IAAI,CAAC,eAAe,CAAC,OAAO,EAAE,IAAI,EAAE,IAAI,CAAC,WAAW,CAAC,QAAQ,CAAC,CAAC,CAAC;KACnE;IAED,UAAU,CAAC,OAAuB,EAAE,QAAmB;QACnD,IAAI,CAAC,eAAe,CAAC,OAAO,EAAE,KAAK,EAAE,IAAI,CAAC,WAAW,CAAC,QAAQ,CAAC,CAAC,CAAC;KACpE;;IAGD,aAAa;QACT,IAAI,CAAC,aAAa,GAAG,IAAI,OAAO,EAA0C,CAAC;QAC3E,IAAI,CAAC,cAAc,GAAG,IAAI,OAAO,EAA2D,CAAC;KAChG;IAES,eAAe,CAAC,OAAuB,EAAE,KAAc,EAAE,QAAkB;QACjF,IAAI,CAAC,IAAI,CAAC,gBAAgB,CAAC,OAAO,EAAE,QAAQ,CAAC,EAAE;YAC3C,IAAI,IAAI,CAAC,sBAAsB,CAAC,OAAO,CAAC,EAAE;gBACtC,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,GAAG,CAAC,QAAQ,EAAE,KAAK,CAAC,CAAC;gBACrD,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,GAAG,CAAC,QAAQ,EAAE,IAAI,eAAe,CAAU,KAAK,CAAC,CAAC,CAAC;aACvF;iBACI;gBACD,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,OAAO,EAAE,IAAI,GAAG,CAAoB;oBACvD,CAAC,QAAQ,EAAE,KAAK,CAAC;iBACpB,CAAC,CAAC,CAAC;gBACJ,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,OAAO,EAAE,IAAI,GAAG,CAAqC;oBACzE,CAAC,QAAQ,EAAE,IAAI,eAAe,CAAU,KAAK,CAAC,CAAC;iBAClD,CAAC,CAAC,CAAC;aACP;SACJ;aACI;;YAED,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,GAAG,CAAC,QAAQ,EAAE,KAAK,CAAC,CAAC;YACrD,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;SAC9D;KACJ;IAES,gBAAgB,CAAC,OAAuB,EAAE,QAAkB;QAClE,OAAO,IAAI,CAAC,sBAAsB,CAAC,OAAO,CAAC,IAAI,IAAI,CAAC,qBAAqB,CAAC,OAAO,EAAE,QAAQ,CAAC,CAAC;KAChG;IAES,sBAAsB,CAAC,OAAuB;QACpD,OAAO,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,OAAO,CAAC,IAAI,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;KAC9E;IAES,qBAAqB,CAAC,OAAuB,EAAE,QAAkB;QACvE,OAAO,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,GAAG,CAAC,QAAQ,CAAC,IAAI,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;KAC1G;IAES,WAAW,CAAC,QAAmB;QACrC,OAAO,QAAQ,IAAI,iBAAiB,CAAC;KACxC;;6GA3IQ,gBAAgB;iHAAhB,gBAAgB,cAFb,MAAM;2FAET,gBAAgB;kBAH5B,UAAU;mBAAC;oBACR,UAAU,EAAE,MAAM;iBACrB;;;ACrBD,MAAMA,WAAS,GAAG,CAAC,mBAAmB,CAAC,CAAC;AACxC,MAAMC,SAAO,GAAG,CAAC,YAAY,EAAE,cAAc,EAAE,eAAe,EAAE,mBAAmB,CAAC,CAAC;MAQxE,gBAAgB;;6GAAhB,gBAAgB;8GAAhB,gBAAgB,iBATV,mBAAmB,aACrB,YAAY,EAAE,cAAc,EAAE,eAAe,EAAE,mBAAmB,aADhE,mBAAmB;8GASzB,gBAAgB,aAFd,EAAE,YAFJ,CAAC,GAAGA,SAAO,CAAC;2FAIZ,gBAAgB;kBAN5B,QAAQ;mBAAC;oBACN,YAAY,EAAE,CAAC,GAAGD,WAAS,CAAC;oBAC5B,OAAO,EAAE,CAAC,GAAGC,SAAO,CAAC;oBACrB,OAAO,EAAE,CAAC,GAAGD,WAAS,CAAC;oBACvB,SAAS,EAAE,EAAE;iBAChB;;;MCEY,kBAAmB,SAAQ,4BAA4B;IAElE,YACU,WAAuB,EACxB,IAAuB,EACtB,KAAa,EACb,QAAiB,EACjB,SAAqB,EACrB,iBAAmC;QAG3C,KAAK,CAAC,WAAW,EAAE,IAAI,CAAC,CAAC;QARjB,gBAAW,GAAX,WAAW,CAAY;QACxB,SAAI,GAAJ,IAAI,CAAmB;QACtB,UAAK,GAAL,KAAK,CAAQ;QACb,aAAQ,GAAR,QAAQ,CAAS;QACjB,cAAS,GAAT,SAAS,CAAY;QACrB,sBAAiB,GAAjB,iBAAiB,CAAkB;QAsB7C,aAAQ,GAAgD;YACtD;gBACE,OAAO,EAAE,OAAO;gBAChB,OAAO,EAAE,QAAQ;gBACjB,QAAQ,EAAE,OAAO;gBACjB,QAAQ,EAAE,KAAK;aAChB;YACD;gBACE,OAAO,EAAE,OAAO;gBAChB,OAAO,EAAE,KAAK;gBACd,QAAQ,EAAE,OAAO;gBACjB,QAAQ,EAAE,QAAQ;aACnB;SACF,CAAC;QAOF,UAAK,GAAmB,EAAE,CAAC;;QAG3B,gBAAW,GAAgD,QAAQ,CAAC;;QAGpE,iBAAY,GAAuC,UAAU,CAAC;;QAG9D,gBAAW,GAAY,KAAK,CAAC;;QAKrB,cAAS,GAAY,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC;QACpC,sBAAiB,GAAY,KAAK,CAAC;;QAG3C,aAAQ,GAA0B,IAAI,YAAY,EAAW,CAAC;QAE9D,aAAQ,GAA0B,IAAI,YAAY,EAAW,CAAC;KA1D7D;IAGD,IACW,MAAM;QACf,OAAO,IAAI,CAAC,OAAO,CAAC;KACrB;IACD,IAAW,MAAM,CAAC,CAA6C;QAC7D,IAAI,CAAC,YAAY,WAAW;YAC1B,IAAI,CAAC,OAAO,GAAG,CAAC,CAAC;aACd,IAAI,CAAC,YAAY,UAAU;YAC9B,IAAI,CAAC,OAAO,GAAG,CAAC,CAAC,aAAa,CAAC;aAC5B,IAAI,CAAC,YAAY,eAAe;YACnC,IAAI,CAAC,OAAO,GAAG,CAAC,CAAC,gBAAgB,EAAE,CAAC;KACvC;IA8CD,kBAAkB;QAChB,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC;YACjB,SAAS,EAAE,IAAI;YACf,WAAW,EAAE,IAAI,CAAC,eAAe,EAAE;SACpC,CAAC,CAAC;KACJ;IAED,kBAAkB;QAChB,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC;YACjB,SAAS,EAAE,IAAI;YACf,WAAW,EAAE,IAAI,CAAC,eAAe,EAAE;SACpC,CAAC,CAAC;KACJ;;IAED,UAAU;QACR,IAAI,IAAI,CAAC,OAAO,EAAE;YAChB,IAAI,IAAI,CAAC,WAAW,KAAK,WAAW,EAAE;gBACpC,MAAM,WAAW,GAAG,SAAS,CAAa,IAAI,CAAC,OAAO,EAAE,WAAW,CAAC,CAAC;gBACrE,IAAI,CAAC,OAAO,CAAC,WAAW,CAAC,SAAS,CAAC,CAAC;oBAClC,MAAM,KAAK,GAAG,EAAE,CAAC,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC;oBAC7C,IAAI,aAAa,CAAC,gBAAgB,CAAC,KAAK,EAAE,IAAI,CAAC,OAAO,CAAC;wBACrD,IAAI,CAAC,IAAI,EAAE,CAAC;iBACf,CAAC,CAAC,CAAC;aACL;YACD,IAAI,IAAI,CAAC,YAAY,KAAK,UAAU,EAAE;gBACpC,MAAM,UAAU,GAAG,SAAS,CAAa,QAAQ,EAAE,WAAW,CAAC,CAAC;gBAChE,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,IAAI,CAAC,YAAY,CAAC,EAAE,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC;oBACxD,IAAI,CAAC,SAAS,CAAC,CAAC,GAAG,CAAC,CAAC,OAAO,CAAC;oBAC7B,IAAI,CAAC,SAAS,CAAC,CAAC,GAAG,CAAC,CAAC,OAAO,CAAC;oBAC7B,IAAI,IAAI,CAAC,MAAM,EAAE;wBACf,UAAU,CAAC;4BACT,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,OAAO,EAAE,IAAI,CAAC,WAAW,CAAC,cAAc,CAAC,EAAE,EAAE,IAAI,CAAC,CAAC,QAAQ,CAAC,QAAQ,CAAC,iBAAiB,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,EAAE,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;gCAChJ,IAAI,CAAC,KAAK,EAAE,CAAC;yBAChB,EAAE,GAAG,CAAC,CAAA;qBACR;iBACF,CAAC,CAAC,CAAC;aAEL;;YAED,IAAI,IAAI,CAAC,WAAW,KAAK,OAAO,IAAI,IAAI,CAAC,WAAW,KAAK,QAAQ,EAAE;gBACjE,MAAM,MAAM,GAAG,SAAS,CAAa,IAAI,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;gBAC5D,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC;oBAC7B,IAAI,CAAC,WAAW,IAAI,QAAQ,GAAG,IAAI,CAAC,MAAM,EAAE,GAAG,IAAI,CAAC,IAAI,EAAE,CAAC;iBAC5D,CAAC,CAAC,CAAC;aACL;SACF;KACF;;IAED,SAAS;QACP,IAAI,CAAC,WAAW,EAAE,MAAM,EAAE,CAAC;QAC3B,IAAI,CAAC,WAAW,EAAE,OAAO,EAAE,CAAC;QAC5B,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;YAClB,CAAC,EAAE,WAAW,EAAE,CAAC;SAClB,CAAC,CAAC;KACJ;IAGD,qBAAqB,CAAC,CAAgB;;;;QAIpC,IAAI,CAAC,CAAC,GAAG,KAAK,QAAQ,EAAE;YACtB,IAAI,IAAI,CAAC,MAAM,EAAE;gBACf,IAAI,CAAC,KAAK,EAAE,CAAC;gBACb,CAAC,CAAC,eAAe,EAAE,CAAC;aACrB;SACF;KACF;IAED,MAAM;QACJ,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,KAAK,EAAE,GAAG,IAAI,CAAC,IAAI,EAAE,CAAC;KAC1C;;IAED,KAAK;QACH,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE;YAChB,OAAO;SACR;QACD,IAAI,CAAC,WAAW,EAAE,MAAM,EAAE,CAAC;QAC3B,IAAI,CAAC,kBAAkB,EAAE,CAAC;KAC3B;;IAED,IAAI;QACF,IAAI,IAAI,CAAC,MAAM,EAAE;YACf,OAAO;SACR;QACD,IAAI,CAAC,qBAAqB,EAAE,CAAC;QAC7B,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC;QAC9C,IAAI,CAAC,kBAAkB,EAAE,CAAC;KAC3B;IAEO,qBAAqB;QAC3B,MAAM,SAAS,GAAG,IAAI,CAAC,OAAO,CAAC;QAC/B,IAAI,CAAC,SAAS;YACZ,OAAO;QAET,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE;YACrB,IAAI,IAAI,CAAC,SAAS,CAAC,EAAE,CAAC,QAAQ,CAAC,EAAE;gBAC/B,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC;oBACtC,gBAAgB,EAAE,IAAI,CAAC,QAAQ,CAAC,QAAQ,EAAE,CAAC,MAAM,EAAE,CAAC,kBAAkB,EAAE,CAAC,gBAAgB,EAAE;oBAC3F,mBAAmB,EAAE,IAAI;oBACzB,UAAU,EAAE,CAAC,oBAAoB,EAAC,mBAAmB,EAAE,mBAAmB,CAAC;oBAC3E,WAAW,EAAE,IAAI;iBAClB,CAAC,CAAC;aACJ;iBACI;gBACH,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC;oBACtC,gBAAgB,EAAE,IAAI,CAAC,QAAQ,CAAC,QAAQ,EAAE;yBACvC,mBAAmB,CAAC,SAAS,CAAC;yBAC9B,aAAa,CAAC,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,QAAQ,CAAC,GAAG,IAAI,CAAC,QAAQ,GAAG,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;yBAC7E,QAAQ,CAAC,KAAK,CAAC;oBAClB,mBAAmB,EAAE,IAAI;oBACzB,UAAU,EAAE,CAAC,oBAAoB,EAAC,mBAAmB,EAAE,mBAAmB,CAAC;oBAC3E,SAAS,EAAE,OAAO;oBAClB,WAAW,EAAE,IAAI,CAAC,WAAW;oBAC7B,aAAa,EAAE,CAAC,IAAI,CAAC,aAAa,IAAI,kCAAkC,CAAC;iBAC1E,CAAC,CAAC;aACJ;YAED,IAAI,IAAI,CAAC,YAAY,IAAI,UAAU,EAAE;gBACnC,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,WAAW,CAAC,qBAAqB,CAAC,SAAS,CAAC,CAAC;oBAC7D,MAAM,MAAM,GAAG,CAAC,CAAC,MAAqB,CAAC;oBACvC,MAAM,OAAO,GAAG,SAAS,CAAC;oBAC1B,IAAI,EAAE,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,EAAE;wBAC/B,IAAI,CAAC,KAAK,EAAE,CAAC;qBACd;iBACF,CAAC,CAAC,CAAC;aACL;YACD,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,WAAW,CAAC,WAAW,EAAE,CAAC,SAAS,CAAC;gBACpD,IAAI,CAAC,IAAI,CAAC,iBAAiB,EAAE;oBAC3B,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC;wBAC5C,IAAI,CAAE,CAAC,CAAC,WAAW,CAAC,MAAsB,CAAC,OAAO,CAAC,kBAAkB,CAAC;4BACpE,IAAI,CAAC,cAAc,EAAE,CAAC;qBACzB,CAAC,CAAC,CAAC;oBACJ,IAAI,CAAC,iBAAiB,GAAG,IAAI,CAAC;iBAC/B;aACF,CAAC,CAAC,CAAC;SACL;QACD,IAAI,CAAC,IAAI,CAAC,eAAe,EAAE;YACzB,IAAI,CAAC,eAAe,GAAG,IAAI,cAAc,CAAC,IAAI,CAAC,aAAa,EAAE,IAAI,CAAC,iBAAiB,CAAC,CAAC;SACvF;KACF;IAED,IAAI,MAAM;QACR,OAAO,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,WAAW,CAAC,WAAW,EAAE,GAAG,KAAK,CAAC;KAClE;IAEO,OAAO,CAAC,GAAiB;QAC/B,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;KACtB;IAGD,cAAc;QACZ,IAAI,CAAC,WAAW,EAAE,cAAc,EAAE,CAAC;QACnC,IAAI,CAAC,KAAK,EAAE,CAAC;KACd;;+GAlOU,kBAAkB;mGAAlB,kBAAkB,geCnB/B,8EAEc;2FDiBD,kBAAkB;kBAN9B,SAAS;+BACE,YAAY,iBAEP,iBAAiB,CAAC,IAAI,mBACpB,uBAAuB,CAAC,MAAM;wOAkBpC,MAAM;sBADhB,KAAK;gBAeN,QAAQ;sBADP,KAAK;gBAiBN,aAAa;sBADZ,SAAS;uBAAC,cAAc;gBAQzB,WAAW;sBADV,KAAK;gBAIN,YAAY;sBADX,KAAK;gBAIN,WAAW;sBADV,KAAK;gBAIN,aAAa;sBADZ,KAAK;gBAON,QAAQ;sBADP,MAAM;gBAGP,QAAQ;sBADP,MAAM;gBA4DP,qBAAqB;sBADpB,YAAY;uBAAC,SAAS,EAAE,CAAC,QAAQ,CAAC;;;ME5HxB,qBAAqB,GAChC,2BAA2B,CACzB,wBAAwB,CACtB,qBAAqB,CACnB,uBAAuB,CACxB,CACF,EACD;MAYS,qBAAsB,SAAQ,qBAAqB;IAqC9D,YACE,WAAuB,EACvB,IAAuB,EACf,SAAqB;QAE7B,KAAK,CAAC,WAAW,EAAE,IAAI,CAAC,CAAC;QAFjB,cAAS,GAAT,SAAS,CAAY;QA7B/B,eAAU,GAAW,CAAC,CAAC;QACvB,cAAS,GAAY,KAAK,CAAC;QAM3B,iBAAY,GAAG,IAAI,YAAY,EAAU,CAAC;QAGlC,YAAO,GAAW,YAAY,CAAC;QAsBrC,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC,eAAe,EAAE,CAAC;QACtC,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,SAAS,CAAC,EAAE,CAAC,QAAQ,CAAC,CAAC;KAC9C;IAvBD,IACW,MAAM;QACf,OAAO,IAAI,CAAC,OAAO,CAAC;KACrB;IACD,IAAW,MAAM,CAAC,CAAS;QACzB,IAAI,CAAC,UAAU,CAAC;YACd,IAAI,EAAE,QAAQ;YACd,KAAK,EAAE,CAAC;SACT,CAAC,CAAC;KACJ;IAiBD,UAAU;QACR,KAAK,CAAC,UAAU,EAAE,CAAC;QACnB,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC,WAAW,IAAI,YAAY,CAAC,GAAG,CAAC,0BAA0B,CAAC,CAAA;QACrF,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAC;YAC9B,IAAI,CAAC,SAAS,CAAC,KAAK,EAAE,CAAC;SACxB,CAAC,CAAC;KACJ;IAKD,sBAAsB,CAAC,CAAe;QACpC,IAAI,CAAC,MAAM,EAAE,CAAC;KACf;IAED,eAAe,CAAC,QAAc,EAAE,QAAc;QAC5C,IAAI,CAAC,WAAW,GAAG,QAAQ,GAAG,UAAU,CAAC,OAAO,CAAC,QAAQ,EAAC,IAAI,CAAC,IAAI,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,IAAI,CAAC;QACjG,IAAI,CAAC,KAAK,EAAE,CAAC;KACd;IAGD,qBAAqB,CAAC,CAAgB;QACpC,MAAM,MAAM,GAAG;YACb,CAAC,CAAC,cAAc,EAAE,CAAC;YACnB,CAAC,CAAC,eAAe,EAAE,CAAC;SACrB,CAAC;QAEF,MAAM,IAAI,GAAa,KAAK,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC,QAAQ,EAAE,CAAC,CAAC;QACrE,MAAM,KAAK,GAAa,CAAC,WAAW,EAAE,WAAW,EAAE,SAAS,EAAE,YAAY,EAAE,WAAW,EAAE,KAAK,EAAE,OAAO,CAAC,CAAC;QACzG,MAAM,KAAK,GAAI,CAAC,CAAC,MAA2B,CAAC;QAC7C,MAAM,GAAG,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC;QACpB,MAAM,MAAM,GAAG,KAAK,CAAC,KAAK,CAAC;QAC3B,MAAM,MAAM,GAAG,KAAK,CAAC,cAAc,CAAC;QACpC,MAAM,IAAI,GAAG,KAAK,CAAC,YAAY,CAAC;QAChC,MAAM,OAAO,GAAG,IAAI,UAAU,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;;QAE3C,MAAM,EAAE,GAAG,gBAAgB,CAAC;QAC5B,MAAM,KAAK,GAAG,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,CAAC;QACnD,MAAM,IAAI,GAAG,MAAM,CAAC,SAAS,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC;QAC5C,MAAM,IAAI,GAAG,KAAK,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC,KAAK,IAAI,MAAM,CAAC,CAAC;;;QAGhD,IAAI,CAAC,GAAG,IAAI,CAAC,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE;YAC3B,IAAI,IAAI,EAAE;gBACR,QAAQ,IAAI,CAAC,CAAC,CAAC;oBACb,KAAK,IAAI,CAAC;oBACV,KAAK,IAAI;wBACP,MAAM,MAAM,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,GAAG,CAAC,EAAE,EAAE,MAAM,CAAC,IAAI,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;wBAC/D,IAAI,CAAC,KAAK,GAAG,OAAO,CAAC,GAAG,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC,IAAI,CAAC;wBAC7C,MAAM;oBACR,KAAK,IAAI;wBACP,MAAM;oBACR,KAAK,IAAI,CAAC;oBACV,KAAK,MAAM;wBACT,MAAM;iBACT;gBACD,UAAU,CAAC;oBACT,IAAI,CAAC,cAAc,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC;iBACpC,EAAE,IAAI,CAAC,GAAG,CAAC,EAAE,EAAE,IAAI,CAAC,YAAY,CAAC,CAAC,CAAC;gBACpC,MAAM,EAAE,CAAC;aACV;SACF;aACI,IAAI,CAAC,CAAC,GAAG,KAAK,YAAY,IAAI,CAAC,CAAC,GAAG,KAAK,WAAW,EAAE;YACxD,MAAM,IAAI,GAAG,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,CAAC;YAC1D,MAAM,IAAI,GAAG,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC,EAAE,MAAM,CAAC,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,CAAC;YAClE,MAAM,EAAE,CAAC;YACT,IAAI,CAAC,cAAc,CAAC,KAAK,GAAG,CAAC,CAAC,GAAG,KAAK,YAAY,IAAI,IAAI,IAAI,IAAI,CAAC,CAAC,CAAC,EAAE,KAAK,IAAI,CAAC,CAAC,KAAK,IAAI,CAAC,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC,EAAE,KAAK,CAAC,EAAE,CAAC;SACxH;aACI,IAAI,CAAC,CAAC,GAAG,KAAK,SAAS,IAAI,CAAC,CAAC,GAAG,KAAK,WAAW,EAAE;YACrD,IAAI,CAAC,CAAC,OAAO,IAAI,CAAC,CAAC,GAAG,KAAK,WAAW,EAAE;gBACtC,IAAI,CAAC,IAAI,EAAE,CAAC;aACb;iBACI;gBACH,MAAM,IAAI,GAAG,CAAC,CAAC,GAAG,KAAK,SAAS,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;gBAC3C,IAAI,IAAI,EAAE;oBACR,QAAQ,IAAI,CAAC,CAAC,CAAC;wBACb,KAAK,IAAI,CAAC;wBACV,KAAK,IAAI;4BACP,IAAI,CAAC,KAAK,GAAG,OAAO,CAAC,GAAG,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC,IAAI,CAAC;4BAC3C,MAAM;wBACR,KAAK,IAAI,CAAC;wBACV,KAAK,KAAK,CAAC;wBACX,KAAK,MAAM;4BACT,IAAI,CAAC,KAAK,GAAG,OAAO,CAAC,GAAG,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC,IAAI,CAAC;4BAC7C,MAAM;wBACR,KAAK,IAAI,CAAC;wBACV,KAAK,MAAM;4BACT,IAAI,CAAC,KAAK,GAAG,OAAO,CAAC,GAAG,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC,IAAI,CAAC;4BAC5C,MAAM;qBACT;oBACD,UAAU,CAAC;wBACT,IAAI,CAAC,cAAc,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC;qBACpC,EAAE,IAAI,CAAC,GAAG,CAAC,EAAE,EAAE,IAAI,CAAC,YAAY,CAAC,CAAC,CAAC;iBACrC;aACF;YACD,MAAM,EAAE,CAAC;SACV;aACI,IAAI,CAAC,CAAC,GAAG,IAAI,WAAW,EAAE;YAC7B,IAAI,IAAI,CAAC,SAAS,EAAE;gBAClB,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC;aACnB;YACD,MAAM,EAAE,CAAC;SACV;;;;KAKF;IAID,wBAAwB,CAAC,CAAa;QACpC,MAAM,KAAK,GAAI,CAAC,CAAC,MAA2B,CAAC;QAC7C,IAAI,CAAC,cAAc,CAAC,KAAK,CAAC,CAAC;QAC3B,CAAC,CAAC,cAAc,EAAE,CAAC;QACnB,CAAC,CAAC,eAAe,EAAE,CAAC;KACrB;IAGO,cAAc,CAAC,KAAuB,EAAE,GAAY;QAC1D,MAAM,EAAE,KAAK,EAAE,GAAG,EAAE,GAAG,YAAY,CAAC,uBAAuB,CAAC,KAAK,CAAC,KAAK,EAAE,GAAG,IAAI,IAAI,GAAG,GAAG,GAAG,KAAK,CAAC,cAAc,CAAC,CAAC;QACnH,KAAK,CAAC,iBAAiB,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC;KACrC;;kHA1KU,qBAAqB;sGAArB,qBAAqB,w3BAErB,kBAAkB,0FAGlB,mBAAmB,qFC/ChC,0lDA0Ba;2FDgBA,qBAAqB;kBATjC,SAAS;+BACE,gBAAgB,UAElB,CAAC,GAAG,eAAe,EAAE,GAAG,kBAAkB,EAAE,GAAG,YAAY,EAAE,GAAG,cAAc,EAAE,GAAG,eAAe,CAAC,WAClG,CAAC,GAAG,eAAe,EAAE,GAAG,kBAAkB,EAAE,GAAG,YAAY,EAAE,GAAG,cAAc,EAAE,GAAG,gBAAgB,CAAC,mBAC5F,uBAAuB,CAAC,MAAM,iBAChC,iBAAiB,CAAC,IAAI,QAC/B,EAAE,KAAK,EAAE,kCAAkC,EAAE;4JAKnD,OAAO;sBADN,SAAS;uBAAC,kBAAkB,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE;gBAI/C,SAAS;sBADR,SAAS;uBAAC,mBAAmB,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE;gBAahD,YAAY;sBADX,MAAM;gBAMI,MAAM;sBADhB,KAAK;gBAaN,WAAW;sBADV,KAAK;;;MElEK,eAAe;;4GAAf,eAAe;6GAAf,eAAe,iBALX,kBAAkB,aACvB,YAAY,aACZ,kBAAkB;6GAGjB,eAAe,aAFf,EAAE,YAFJ,CAAC,YAAY,CAAC;2FAIZ,eAAe;kBAN3B,QAAQ;mBAAC;oBACR,YAAY,EAAE,CAAC,kBAAkB,CAAC;oBAClC,OAAO,EAAE,CAAC,YAAY,CAAC;oBACvB,OAAO,EAAE,CAAC,kBAAkB,CAAC;oBAC7B,SAAS,EAAE,EAAE;iBACd;;;ACYD;;;;;MAca,kBAAmB,SAAQ,kBAAkB;;;;IAKxD,YAAY,UAAsB,EAAE,GAAsB;QACxD,KAAK,CAAC,UAAU,EAAE,GAAG,CAAC,CAAC;KACxB;;+GAPU,kBAAkB;mGAAlB,kBAAkB,oeCnC/B,6pBAWa;2FDwBA,kBAAkB;kBAT9B,SAAS;+BACE,aAAa,UAEf,CAAE,GAAG,kBAAkB,EAAE,GAAG,YAAY,EAAE,GAAG,cAAc,CAAC,WAC3D,CAAE,GAAG,kBAAkB,EAAE,GAAG,YAAY,EAAE,GAAG,cAAc,CAAC,iBACtD,iBAAiB,CAAC,IAAI,mBACpB,uBAAuB,CAAC,MAAM,QACzC,EAAE,KAAK,EAAE,qBAAqB,EAAE;;;MEV3B,eAAe;;4GAAf,eAAe;6GAAf,eAAe,iBAHT,kBAAkB,aAR7B,YAAY;QACZ,WAAW;QACX,cAAc;QACd,uBAAuB;QACvB,YAAY,iCAGN,kBAAkB;6GAInB,eAAe,aAFb,EAAE,YAVJ;YACL,YAAY;YACZ,WAAW;YACX,cAAc;YACd,uBAAuB;YACvB,YAAY;YACZ,aAAa,CAAC,QAAQ,EAAE;SAC3B;2FAKQ,eAAe;kBAb3B,QAAQ;mBAAC;oBACN,OAAO,EAAE;wBACL,YAAY;wBACZ,WAAW;wBACX,cAAc;wBACd,uBAAuB;wBACvB,YAAY;wBACZ,aAAa,CAAC,QAAQ,EAAE;qBAC3B;oBACD,OAAO,EAAE,CAAC,kBAAkB,CAAC;oBAC7B,YAAY,EAAE,CAAC,kBAAkB,CAAC;oBAClC,SAAS,EAAE,EAAE;iBAChB;;;ACVD,MAAMA,WAAS,GAAG,CAAC,qBAAqB,CAAC,CAAC;AAC1C,MAAMC,SAAO,GAAG;IACZ,YAAY;IACZ,gBAAgB;IAChB,eAAe;IACf,cAAc;IACd,eAAe;IACf,uBAAuB;IACvB,YAAY;IACZ,gBAAgB;IAChB,WAAW;CACd,CAAC;MAQW,kBAAkB;;+GAAlB,kBAAkB;gHAAlB,kBAAkB,iBAnBZ,qBAAqB,aAEpC,YAAY;QACZ,gBAAgB;QAChB,eAAe;QACf,cAAc;QACd,eAAe;QACf,uBAAuB;QACvB,YAAY;QACZ,gBAAgB;QAChB,WAAW,aAVI,qBAAqB;gHAmB3B,kBAAkB,aAFhB,EAAE,YAFJ,CAAC,GAAGA,SAAO,CAAC;2FAIZ,kBAAkB;kBAN9B,QAAQ;mBAAC;oBACN,YAAY,EAAE,CAAC,GAAGD,WAAS,CAAC;oBAC5B,OAAO,EAAE,CAAC,GAAGC,SAAO,CAAC;oBACrB,OAAO,EAAE,CAAC,GAAGD,WAAS,CAAC;oBACvB,SAAS,EAAE,EAAE;iBAChB;;;MCnBY,iBAAkB,SAAQ,oBAAoB;IAEvD,YACI,UAAsB,EACtB,GAAsB;QAEtB,KAAK,CAAC,UAAU,EAAE,GAAG,CAAC,CAAC;KAC1B;IAMD,MAAM;QACF,QAAQ,IAAI,CAAC,OAAO,CAAC,IAAI;YACrB,KAAK,SAAS;gBACV,IAAI,CAAC,KAAK,GAAG,mBAAmB,CAAC;gBACjC,MAAM;YACV,KAAK,QAAQ;gBACT,IAAI,CAAC,KAAK,GAAG,0BAA0B,CAAC;gBACxC,MAAM;YACV,KAAK,SAAS;gBACV,IAAI,CAAC,KAAK,GAAG,4BAA4B,CAAC;gBAC1C,MAAM;YACV;gBACI,IAAI,CAAC,KAAK,GAAG,yBAAyB,CAAC;gBACvC,MAAM;SACb;KACJ;IAED,kBAAkB,CAAC,MAAoB;QACnC,IAAI,MAAM,CAAC,OAAO,EAAE;YAChB,MAAM,CAAC,OAAO,EAAE,CAAC;SACpB;KACJ;;8GAlCQ,iBAAiB;kGAAjB,iBAAiB,wECX9B,irCAoBM;2FDTO,iBAAiB;kBAN7B,SAAS;+BACI,WAAW,mBAEJ,uBAAuB,CAAC,MAAM,iBAChC,iBAAiB,CAAC,IAAI;;;AEEzC;;;;;MAMa,eAAe;;;;IAK1B,YACU,cAAuB,EACvB,cAAwB,EACxB,GAA0B;QAF1B,mBAAc,GAAd,cAAc,CAAS;QACvB,mBAAc,GAAd,cAAc,CAAU;QACxB,QAAG,GAAH,GAAG,CAAuB;KAC/B;;;;IAKL,KAAK,CAAC,KAAa,EAAE,OAAe,EAAE,OAAyB,SAAS;QACtE,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO;YACzB,MAAM,KAAK,GAAG,IAAI,CAAC,IAAI,CAAC;gBACtB,KAAK;gBACL,IAAI,EAAE,IAAI;gBACV,OAAO;gBACP,OAAO,EAAE;oBACP;wBACE,IAAI,EAAE,SAAS;wBACf,IAAI,EAAE,YAAY,CAAC,GAAG,CAAC,aAAa,CAAC;wBACrC,KAAK,EAAE,IAAI;wBACX,OAAO,EAAE;4BACP,KAAK,CAAC,KAAK,EAAE,CAAC;4BACd,IAAI,OAAO,EAAE;gCACX,OAAO,EAAE,CAAC;6BACX;yBACF;qBACF;iBACF;aACF,CAAC,CAAC;SACJ,CAAC,CAAC;KACJ;;;;IAKD,OAAO,CAAC,KAAa,EAAE,OAAe,EAAE,OAAyB,SAAS;QACxE,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,MAAM;YACjC,MAAM,KAAK,GAAG,IAAI,CAAC,IAAI,CAAC;gBACtB,KAAK;gBACL,OAAO;gBACP,IAAI;gBACJ,OAAO,EAAE;oBACP;wBACE,IAAI,EAAE,SAAS;wBACf,IAAI,EAAE,YAAY,CAAC,GAAG,CAAC,aAAa,CAAC;wBACrC,KAAK,EAAE,IAAI;wBACX,OAAO,EAAE;4BACP,KAAK,CAAC,KAAK,EAAE,CAAC;4BACd,IAAI,OAAO,EAAE;gCACX,OAAO,EAAE,CAAC;6BACX;yBACF;wBACD,cAAc,EAAE,IAAI;wBACpB,cAAc,EAAE,KAAK;qBACtB;oBACD;wBACE,IAAI,EAAE,QAAQ;wBACd,IAAI,EAAE,YAAY,CAAC,GAAG,CAAC,eAAe,CAAC;wBACvC,KAAK,EAAE,OAAO;wBACd,OAAO,EAAE;4BACP,KAAK,CAAC,KAAK,EAAE,CAAC;4BACd,IAAI,MAAM,EAAE;gCACV,MAAM,EAAE,CAAC;6BACV;yBACF;wBACD,cAAc,EAAE,KAAK;wBACrB,cAAc,EAAE,IAAI;qBACrB;iBACF;aACF,CAAC,CAAC;SACJ,CAAC,CAAC;KACJ;;;;IAKD,IAAI,CAAC,OAAwB;QAC3B,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO;YACzB,MAAM,KAAK,GAAG,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;YACjC,OAAO,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC,CAAC;gBACzB,MAAM,YAAY,GAAG,CAAC,CAAC,OAAO,CAAC;gBAC/B,CAAC,CAAC,OAAO,GAAG;oBACV,KAAK,CAAC,KAAK,EAAE,CAAC;oBACd,IAAI,YAAY,EAAE;wBAChB,YAAY,EAAE,CAAC;qBAChB;oBACD,IAAI,OAAO,EAAE;wBACX,OAAO,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC;qBAC3B;iBACF,CAAC;aACH,CAAC,CAAC;SACJ,CAAC,CAAC;KACJ;IAEO,IAAI,CAAC,OAAwB;QACnC,IAAI,gBAAgB,GAAG,IAAI,CAAC,cAAc;aACvC,QAAQ,EAAE;aACV,MAAM,EAAE;aACR,kBAAkB,EAAE;aACpB,gBAAgB,EAAE,CAAC;QACtB,MAAM,UAAU,GAAG,IAAI,CAAC,cAAc,CAAC,MAAM,CAAC;YAC5C,gBAAgB;YAChB,WAAW,EAAE,IAAI;YACjB,cAAc,EAAE,IAAI,CAAC,GAAG,CAAC,KAAK,EAAE;YAChC,UAAU,EAAE,CAAC,mBAAmB,EAAE,mBAAmB,CAAC;SACvD,CAAC,CAAC;QACH,MAAM,YAAY,GAAG,IAAI,eAAe,CACtC,iBAAiB,EACjB,IAAI,EACJ,IAAI,CAAC,cAAc,CACpB,CAAC;QACF,MAAM,IAAI,GAAG,UAAU,CAAC,MAAM,CAAC,YAAY,CAAC,CAAC;QAC7C,IAAI,IAAI,CAAC,QAAQ,EAAE;YACjB,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,QAAQ,EAAE;gBAC3B,OAAO,EAAE,OAAO;gBAChB,KAAK,EAAE;oBACL,UAAU,CAAC,OAAO,EAAE,CAAC;iBACtB;aACF,CAAC,CAAC;YACH,UAAU,CAAC;gBACT,IAAI,CAAC,iBAAiB,CAAC,aAAa,EAAE,CAAC;aACxC,EAAE,CAAC,CAAC,CAAC;SACP;QAED,OAAO;YACL,KAAK,EAAE;gBACL,IAAI,CAAC,QAAQ,CAAC,KAAK,EAAE,CAAC;aACvB;SACF,CAAC;KACH;;4GAtIU,eAAe;gHAAf,eAAe,cADF,MAAM;2FACnB,eAAe;kBAD3B,UAAU;mBAAC,EAAE,UAAU,EAAE,MAAM,EAAE;;;MCXZ,eAAgB,SAAQ,oBAAoB;IAE9D,YACI,UAAsB,EACtB,GAAsB,EACY,eAAe;QAEjD,KAAK,CAAC,UAAU,EAAE,GAAG,CAAC,CAAC;QAFW,oBAAe,GAAf,eAAe,CAAA;QAO7C,eAAU,GAAY,KAAK,CAAC;KAJnC;IAKD,IAAW,SAAS;QAChB,OAAO,IAAI,CAAC,UAAU,CAAC;KAC1B;IACD,IAAW,SAAS,CAAC,CAAU;QAC3B,IAAI,CAAC,UAAU,GAAG,CAAC,CAAC;QACpB,IAAI,IAAI,CAAC,UAAU,IAAI,CAAC,CAAC,EAAE;YACvB,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;YAC3C,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC;SAC1B;QACD,IAAI,CAAC,EAAE;YACH,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,IAAI,CAAC,eAAe,EAAE,CAAC,CAAC;SACvE;KACJ;;4GAzBiB,eAAe,6EAKrB,gBAAgB;gHALV,eAAe;2FAAf,eAAe;kBADpC,UAAU;;0BAMF,MAAM;2BAAC,gBAAgB;;;MCEnB,qBAAqB;;kHAArB,qBAAqB;sGAArB,qBAAqB,gGAEnB,WAAW,8DAVZ;;;;;KAKT;2FAGQ,qBAAqB;kBAVjC,SAAS;mBAAC;oBACP,QAAQ,EAAE,gBAAgB;oBAC1B,QAAQ,EAAE;;;;;KAKT;oBACD,eAAe,EAAE,uBAAuB,CAAC,MAAM;iBAClD;8BAIG,QAAQ;sBADP,SAAS;uBAAC,WAAW,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE;;;MCP/B,YAAY,GAAG,WAAW;MAE1B,gBAAiB,SAAQ,OAAO;CAE5C;MACY,aAAa;IAA1B;QACI,WAAM,GAAY,KAAK,CAAC;KAE3B;CAAA;MAEY,YAAY;CAGxB;AAED;;;MAGa,mBAAoB,SAAQ,OAAqB;IAG1D,YACI,QAC2C;QAE3C,KAAK,CAAC,QAAQ,CAAC,CAAC;KACnB;IAEM,KAAK;QACR,IAAI,IAAI,CAAC,WAAW,EAAE;YAClB,IAAI,CAAC,WAAW,EAAE,CAAC;SACtB;KACJ;CACJ;MAIY,mBAAmB;IADhC;QASY,eAAU,GAAY,KAAK,CAAC;QAa5B,aAAQ,GAAY,KAAK,CAAC;QAOlC,aAAQ,GAAmC,IAAI,YAAY,EAAoB,CAAC;KAenF;IAlCG,IAAW,SAAS;QAChB,OAAO,IAAI,CAAC,UAAU,CAAC;KAC1B;IACD,IAAW,SAAS,CAAC,CAAU;QAC3B,CAAC;QACD,IAAI,CAAC,UAAU,GAAG,CAAC,CAAC;QACpB,IAAI,IAAI,CAAC,aAAa,EAAE;YACpB,IAAI,CAAC,aAAa,CAAC,SAAS,GAAG,IAAI,CAAC,SAAS,CAAC;SACjD;KACJ;IAID,IAAW,OAAO;QACd,OAAO,IAAI,CAAC,QAAQ,CAAC;KACxB;IAMD,KAAK,CAAC,IAAU;QACZ,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC;YACf,SAAS,EAAE,IAAI;YACf,IAAI,EAAE,IAAI;SACb,CAAC,CAAC;KACN;IAED,SAAS,CAAC,CAAgB;KACzB;IAED,WAAW;QACP,IAAI,CAAC,QAAQ,CAAC,WAAW,EAAE,CAAC;KAC/B;;gHA1CQ,mBAAmB;oHAAnB,mBAAmB;2FAAnB,mBAAmB;kBAD/B,UAAU;8BAIC,aAAa;sBADpB,SAAS;uBAAC,eAAe,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE;gBAI5C,MAAM;sBADL,SAAS;uBAAC,qBAAqB,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE;;;MCrCzC,qBAAqB;;kHAArB,qBAAqB;sGAArB,qBAAqB,gGAEnB,WAAW,8DAVZ;;;;;KAKT;2FAGQ,qBAAqB;kBAVjC,SAAS;mBAAC;oBACP,QAAQ,EAAE,gBAAgB;oBAC1B,QAAQ,EAAE;;;;;KAKT;oBACD,eAAe,EAAE,uBAAuB,CAAC,MAAM;iBAClD;8BAIG,QAAQ;sBADP,SAAS;uBAAC,WAAW,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE;;;MCH/B,YAAY;;yGAAZ,YAAY;0GAAZ,YAAY,iBAHN,qBAAqB,EAAE,qBAAqB,aADjD,qBAAqB,EAAE,qBAAqB;0GAI7C,YAAY,aAFV,EAAE,YAHJ,EAAE;2FAKF,YAAY;kBANxB,QAAQ;mBAAC;oBACN,OAAO,EAAE,EAAE;oBACX,OAAO,EAAE,CAAC,qBAAqB,EAAE,qBAAqB,CAAC;oBACvD,YAAY,EAAE,CAAC,qBAAqB,EAAE,qBAAqB,CAAC;oBAC5D,SAAS,EAAE,EAAE;iBAChB;;;ACDD,MAAMA,WAAS,GAAG,CAAC,iBAAiB,CAAC,CAAC;AACtC,MAAMC,SAAO,GAAG,CAAC,YAAY,EAAE,cAAc,EAAE,UAAU,EAAE,cAAc,EAAE,YAAY,EAAE,uBAAuB,CAAC,CAAC;MAQrG,cAAc;;2GAAd,cAAc;4GAAd,cAAc,iBATR,iBAAiB,aACnB,YAAY,EAAE,cAAc,EAAE,UAAU,EAAE,cAAc,EAAE,YAAY,EAAE,uBAAuB,aAD7F,iBAAiB;4GASvB,cAAc,aAFZ,EAAE,YAFJ,CAAC,GAAGA,SAAO,CAAC;2FAIZ,cAAc;kBAN1B,QAAQ;mBAAC;oBACN,YAAY,EAAE,CAAC,GAAGD,WAAS,CAAC;oBAC5B,OAAO,EAAE,CAAC,GAAGC,SAAO,CAAC;oBACrB,OAAO,EAAE,CAAC,GAAGD,WAAS,CAAC;oBACvB,SAAS,EAAE,EAAE;iBAChB;;;MCJY,iBAAkB,SAAQ,oBAAoB;IAEvD,YACY,UAAsB,EAC9B,GAAsB,EACd,IAAY;QAEpB,KAAK,CAAC,UAAU,EAAE,GAAG,CAAC,CAAC;QAJf,eAAU,GAAV,UAAU,CAAY;QAEtB,SAAI,GAAJ,IAAI,CAAQ;QAMxB,cAAS,GAA0B,IAAI,YAAY,EAAW,CAAC;QAG/D,SAAI,GAAuB,MAAM,CAAC;QAKlC,aAAQ,GAAoB,OAAO,CAAC;QAI5B,eAAU,GAAY,KAAK,CAAC;KAfnC;IAgBD,IACW,SAAS;QAChB,OAAO,IAAI,CAAC,UAAU,CAAC;KAC1B;IACD,IAAW,SAAS,CAAC,CAAU;QAC3B,IAAI,CAAC,IAAI,IAAI,CAAC,UAAU,EAAE;YACtB,IAAI,CAAC,UAAU,GAAG,CAAC,CAAC;YACpB,IAAI,CAAC,YAAY,EAAE,CAAC;YACpB,IAAI,CAAC,WAAW,EAAE,CAAC;SACtB;KACJ;IAED,MAAM;QACF,IAAI,CAAC,eAAe,EAAE,CAAC,SAAS,CAAC,GAAG,CAAC,IAAI,CAAC,QAAQ,IAAI,OAAO,GAAG,iBAAiB,GAAG,eAAe,CAAC,CAAC;QACrG,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC,IAAI,CAAC;KACjC;IAEO,YAAY;QAChB,IAAI,CAAC,IAAI,CAAC,iBAAiB,CAAC;YACxB,MAAM,GAAG,GAAG,IAAI,CAAC,eAAe,EAAE,CAAC;;YAEnC,IAAI,CAAC,YAAY,IAAI,SAAS,GAAG,IAAI,CAAC,eAAe,EAAE,GAAG,IAAI,CAAC,YAAY,EAAE,CAAC;;YAE9E,IAAI,IAAI,CAAC,SAAS,EAAE;gBAChB,GAAG,CAAC,SAAS,CAAC,MAAM,CAAC,aAAa,CAAC,CAAC;gBACpC,GAAG,CAAC,SAAS,CAAC,GAAG,CAAC,cAAc,CAAC,CAAC;gBAClC,IAAI,IAAI,CAAC,YAAY,IAAI,SAAS,EAAE;oBAChC,IAAI,CAAC,eAAe,EAAE,CAAC;iBAC1B;aACJ;iBACI;gBACD,GAAG,CAAC,SAAS,CAAC,GAAG,CAAC,aAAa,CAAC,CAAC;gBACjC,GAAG,CAAC,SAAS,CAAC,MAAM,CAAC,cAAc,CAAC,CAAC;gBACrC,IAAI,IAAI,CAAC,YAAY,IAAI,SAAS,EAAE;oBAChC,IAAI,CAAC,YAAY,EAAE,CAAC;iBACvB;aACJ;SACJ,CAAC,CAAC;KACN;IAED,UAAU;QACN,IAAI,CAAC,WAAW,EAAE,CAAC;KACtB;IAED,MAAM;QACF,IAAI,CAAC,SAAS,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC;KACpC;IAED,KAAK;QACD,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC;KACzB;IAED,IAAI;QACA,IAAI,CAAC,SAAS,GAAG,KAAK,CAAC;KAC1B;IAGD,oBAAoB,CAAC,CAAU;QAC3B,IAAI,CAAC,WAAW,EAAE,CAAC;KACtB;IAGD,WAAW;;QAEP,MAAM,KAAK,GAAG,IAAI,CAAC,eAAe,EAAE,CAAC,aAAa,CAAC,qBAAqB,EAAE,CAAC;QAC3E,IAAI,KAAK,CAAC,KAAK,IAAI,CAAC,EAAE;YAClB,OAAO,CAAC,GAAG,CAAC,oBAAoB,EAAE,KAAK,CAAC,CAAC;YACzC,UAAU,CAAC;gBACP,IAAI,CAAC,WAAW,EAAE,CAAC;aACtB,EAAE,CAAC,CAAC,CAAC;YACN,OAAO;SACV;QACD,IAAI,KAAK,CAAC,KAAK,GAAG,GAAG,EAAE;YACnB,IAAI,CAAC,YAAY,GAAG,SAAS,CAAC;YAC9B,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC;SACzB;aACI;YACD,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC,IAAI,CAAC;SACjC;QACD,IAAI,CAAC,YAAY,EAAE,CAAC;QACpB,IAAI,CAAC,WAAW,EAAE,CAAC;KACtB;IAEO,WAAW;QACf,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC;YAChB,SAAS,EAAE,IAAI;YACf,WAAW,EAAE,IAAI,CAAC,UAAU,CAAC,aAAa;SAC7C,CAAC,CAAA;KACL;IAEO,eAAe;QACnB,IAAI,CAAC,YAAY,GAAG,SAAS,CAAC;QAC9B,IAAI,CAAC,eAAe,EAAE,CAAC,SAAS,CAAC,MAAM,CAAC,gBAAgB,CAAC,CAAC;QAC1D,IAAI,CAAC,eAAe,EAAE,CAAC,SAAS,CAAC,GAAG,CAAC,mBAAmB,CAAC,CAAC;KAE7D;IAEO,YAAY;QAChB,IAAI,CAAC,YAAY,GAAG,MAAM,CAAC;QAC3B,IAAI,CAAC,eAAe,EAAE,CAAC,SAAS,CAAC,MAAM,CAAC,mBAAmB,CAAC,CAAC;QAC7D,IAAI,CAAC,eAAe,EAAE,CAAC,SAAS,CAAC,GAAG,CAAC,gBAAgB,CAAC,CAAC;QACvD,IAAI,CAAC,eAAe,EAAE,CAAC;KAC1B;IAEO,YAAY;QAChB,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE;YACjB,IAAI,CAAC,SAAS,GAAG,QAAQ,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC;YAC/C,IAAI,CAAC,SAAS,CAAC,SAAS,CAAC,GAAG,CAAC,oBAAoB,CAAC,CAAA;YAClD,IAAI,CAAC,eAAe,EAAE,CAAC,aAAa,CAAC,OAAO,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;YAC7D,IAAI,CAAC,SAAS,CAAC,gBAAgB,CAAC,OAAO,EAAE,IAAI,CAAC,oBAAoB,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;SAClF;KACJ;IAEO,eAAe;QACnB,IAAI,IAAI,CAAC,SAAS,EAAE;YAChB,IAAI,CAAC,SAAS,CAAC,mBAAmB,CAAC,OAAO,EAAE,IAAI,CAAC,oBAAoB,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;YAClF,IAAI,CAAC,eAAe,EAAE,CAAC,aAAa,CAAC,WAAW,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;YACjE,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC;SACzB;KACJ;IAEO,oBAAoB,CAAC,CAAa;QACtC,IAAI,CAAC,eAAe,EAAE,CAAC;QACvB,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC;KACzB;;8GApJQ,iBAAiB;kGAAjB,iBAAiB,4RARhB;;;KAGT;2FAKQ,iBAAiB;kBAV7B,SAAS;mBAAC;oBACP,QAAQ,EAAE,WAAW;oBACrB,QAAQ,EAAE;;;KAGT;oBACD,eAAe,EAAE,uBAAuB,CAAC,MAAM;oBAC/C,aAAa,EAAE,iBAAiB,CAAC,IAAI;oBACrC,IAAI,EAAE,EAAE,KAAK,EAAE,WAAW,EAAE;iBAC/B;sJAYG,SAAS;sBADR,MAAM;gBAIP,IAAI;sBADH,KAAK;gBAMN,QAAQ;sBADP,KAAK;gBAOK,SAAS;sBADnB,KAAK;gBAyDN,oBAAoB;sBADnB,YAAY;uBAAC,eAAe,EAAE,CAAC,QAAQ,CAAC;;;MC1EhC,0BAA2B,SAAQ,oBAAoB;IAEhE,YACI,UAAsB,EACtB,GAAsB,EACd,IAAY;QAEpB,KAAK,CAAC,UAAU,EAAE,GAAG,CAAC,CAAC;QAFf,SAAI,GAAJ,IAAI,CAAQ;KAGvB;IAOD,UAAU;QACN,IAAI,CAAC,YAAY,EAAE,CAAC;;QAEpB,UAAU,CAAC;YACP,IAAI,CAAC,eAAe,EAAE,CAAC,gBAAgB,CAAC,WAAW,CAAC,CAAC,OAAO,CAAC,CAAC;gBAC1D,CAAC,CAAC,SAAS,CAAC,GAAG,CAAC,aAAa,CAAC,CAAC;aAClC,CAAC,CAAC;SACN,EAAE,GAAG,CAAC,CAAC;QAER,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;YAClB,CAAC,CAAC,SAAS,CAAC,SAAS,CAAC,CAAC;gBACnB,IAAI,CAAC,YAAY,EAAE,CAAC;aACvB,CAAC,CAAC;SACN,CAAC,CAAC;KACN;IAEO,YAAY;QAChB,IAAI,CAAC,IAAI,CAAC,iBAAiB,CAAC;YACxB,MAAM,SAAS,GAAG,IAAI,CAAC,eAAe,EAAE,CAAC,OAAO,CAAC,qBAAqB,CAAmB,CAAC;YAC1F,MAAM,WAAW,GAAG,IAAI,CAAC,eAAe,EAAE,CAAC,qBAAqB,EAAE,CAAC,KAAK,CAAC;YACzE,IAAI,CAAC,GAAG,CAAC,CAAC;YACV,IAAI,CAAC,eAAe,EAAE,CAAC,gBAAgB,CAAC,WAAW,CAAC,CAAC,OAAO,CAAC,CAAC;gBAC1D,MAAM,GAAG,GAAG,CAAmB,CAAC;gBAChC,MAAM,KAAK,GAAG,GAAG,CAAC,qBAAqB,EAAE,CAAC,KAAK,CAAC;gBAChD,MAAM,QAAQ,GAAG,WAAW,GAAG,KAAK,CAAC;gBACrC,MAAM,IAAI,GAAG,KAAK,GAAG,WAAW,CAAC;gBACjC,CAAC,IAAI,CAAC,aAAa,EAAE,gBAAgB,CAAC,CAAC,KAAK,CAAC,CAAC,IAAI,GAAG,CAAC,SAAS,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,GAAG,KAAK,GAAG,CAAC,CAAC;gBACzF,GAAG,CAAC,KAAK,CAAC,WAAW,CAAC,cAAc,EAAE,GAAG,KAAK,IAAI,CAAC,CAAC;;gBAEpD,GAAG,CAAC,KAAK,CAAC,WAAW,CAAC,aAAa,EAAE,GAAG,QAAQ,GAAG,IAAI,GAAG,CAAC,IAAI,CAAC,CAAC;aACpE,CAAC,CAAC;YACH,SAAS,CAAC,KAAK,CAAC,WAAW,CAAC,sBAAsB,EAAE,GAAG,WAAW,GAAG,CAAC,IAAI,CAAC,CAAC;SAC/E,CAAC,CAAC;KACN;;uHAhDQ,0BAA0B;2GAA1B,0BAA0B,4JAWlB,iBAAiB,oDAxBxB;;;;;;;KAOT;2FAMQ,0BAA0B;kBAftC,SAAS;mBAAC;oBACP,QAAQ,EAAE,qBAAqB;oBAC/B,QAAQ,EAAE;;;;;;;KAOT;oBACD,MAAM,EAAE,CAAC,KAAK,CAAC;oBACf,eAAe,EAAE,uBAAuB,CAAC,MAAM;oBAC/C,aAAa,EAAE,iBAAiB,CAAC,IAAI;oBACrC,IAAI,EAAE,EAAE,KAAK,EAAE,qBAAqB,EAAE;iBACzC;sJAaG,OAAO;sBADN,eAAe;uBAAC,iBAAiB;;;MCjBzB,wBAAyB,SAAQ,oBAAoB;IAE9D,YACI,UAAsB,EACtB,GAAsB;QAEtB,KAAK,CAAC,UAAU,EAAE,GAAG,CAAC,CAAC;KAC1B;;qHAPQ,wBAAwB;yGAAxB,wBAAwB,+HARvB;;;KAGT;2FAKQ,wBAAwB;kBAVpC,SAAS;mBAAC;oBACP,QAAQ,EAAE,mBAAmB;oBAC7B,QAAQ,EAAE;;;KAGT;oBACD,eAAe,EAAE,uBAAuB,CAAC,MAAM;oBAC/C,aAAa,EAAE,iBAAiB,CAAC,IAAI;oBACrC,IAAI,EAAE,EAAE,KAAK,EAAE,mBAAmB,EAAE;iBACvC;;;ACND,MAAMA,WAAS,GAAG,CAAC,iBAAiB,EAAE,0BAA0B,EAAE,wBAAwB,CAAC,CAAC;AAC5F,MAAMC,SAAO,GAAG,CAAC,YAAY,CAAC,CAAC;MAQlB,cAAc;;2GAAd,cAAc;4GAAd,cAAc,iBATR,iBAAiB,EAAE,0BAA0B,EAAE,wBAAwB,aACzE,YAAY,aADV,iBAAiB,EAAE,0BAA0B,EAAE,wBAAwB;4GAS7E,cAAc,aAFZ,EAAE,YAFJ,CAAC,GAAGA,SAAO,CAAC;2FAIZ,cAAc;kBAN1B,QAAQ;mBAAC;oBACN,YAAY,EAAE,CAAC,GAAGD,WAAS,CAAC;oBAC5B,OAAO,EAAE,CAAC,GAAGC,SAAO,CAAC;oBACrB,OAAO,EAAE,CAAC,GAAGD,WAAS,CAAC;oBACvB,SAAS,EAAE,EAAE;iBAChB;;;MCiBY,wBAAyB,SAAQ,mBAAmB;IAE7D,YACI,UAAsB,EACtB,GAAsB,EAEf,OAA0B;QAEjC,KAAK,CAAC,UAAU,EAAE,GAAG,CAAC,CAAC;QAFhB,YAAO,GAAP,OAAO,CAAmB;QAUrC,gBAAW,GAAqC,IAAI,YAAY,EAAsB,CAAC;QAevF,gBAAW,GAAY,KAAK,CAAC;QAC7B,UAAK,GAAmB,EAAE,CAAC;QAvBvB,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC,eAAe,EAAE,CAAC;KACjD;IAYD,IACW,KAAK;QACZ,OAAO,IAAI,CAAC,MAAM,IAAI,EAAE,CAAC;KAC5B;IACD,IAAW,KAAK,CAAC,CAAiB;QAC9B,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC;QAChB,IAAI,CAAC,IAAI,CAAC,YAAY,EAAE,CAAC;KAC5B;IAMO,cAAc;QAClB,OAAO,CAAC,GAAG,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,YAAY,CAAC,EAAE,GAAG,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC,CAAC;KAClF;IAED,UAAU;QACN,KAAK,CAAC,UAAU,EAAE,CAAC;QAEnB,IAAI,CAAC,cAAc,EAAE,CAAC,OAAO,CAAC,CAAC;YAC3B,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC;YACxB,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,OAAO,CAAC,SAAS,CAAC,IAAI,CAAC,kBAAkB,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;YACzE,IAAI,CAAC,IAAI,CAAC,YAAY,EAAE,CAAC;SAC5B,CAAC,CAAC;KACN;IAED,SAAS;QACL,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;YAChB,CAAC,EAAE,WAAW,EAAE,CAAC;SACpB,CAAC,CAAC;KACN;IAED,qBAAqB,CAAC,CAAe,EAAE,IAA2B;QAC9D,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC;YAClB,SAAS,EAAE,IAAI;YACf,WAAW,EAAE,IAAI,CAAC,eAAe,EAAE;YACnC,WAAW,EAAE,CAAC,CAAC,WAAW;YAC1B,IAAI,EAAE,IAAI,CAAC,IAAI;YACf,IAAI,EAAE,IAAI,CAAC,IAAI;SAClB,CAAC,CAAC;KACN;IAEO,kBAAkB,CAAC,CAAe;QACtC,IAAI,CAAC,KAAK,EAAE,CAAC;QACb,IAAI,CAAC,qBAAqB,CAAC,CAAC,EAAE,CAAC,CAAC,SAAS,CAAC,CAAC;KAE9C;;qHArEQ,wBAAwB;yGAAxB,wBAAwB,0SAYhB,qBAAqB,sEAM3B,kBAAkB,gFALf,qBAAqB,uEC5CvC,swBAca;2FDiBA,wBAAwB;kBARpC,SAAS;+BACI,mBAAmB,mBAEZ,uBAAuB,CAAC,MAAM,iBAChC,iBAAiB,CAAC,IAAI,UAC7B,CAAC,GAAG,eAAe,CAAC,WACnB,CAAC,GAAG,eAAe,CAAC;;0BAOxB,QAAQ;4CAO2B,eAAe;sBAAtD,eAAe;uBAAC,qBAAqB;gBACD,YAAY;sBAAhD,YAAY;uBAAC,qBAAqB;gBAGnC,WAAW;sBADV,MAAM;gBAIP,OAAO;sBADN,SAAS;uBAAC,kBAAkB,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE;gBAKpC,KAAK;sBADf,KAAK;;;MEtCG,gBAAgB;;6GAAhB,gBAAgB;8GAAhB,gBAAgB,iBAHT,wBAAwB,aAF9B,YAAY,EAAE,cAAc,EAAE,aAAa,EAAE,YAAY,EAAE,uBAAuB,EAAE,eAAe,aAClG,wBAAwB;8GAI1B,gBAAgB,aAFd,EAAE,YAHJ,CAAC,YAAY,EAAE,cAAc,EAAE,aAAa,EAAE,YAAY,EAAE,uBAAuB,EAAE,eAAe,CAAC;2FAKrG,gBAAgB;kBAN5B,QAAQ;mBAAC;oBACN,OAAO,EAAE,CAAC,YAAY,EAAE,cAAc,EAAE,aAAa,EAAE,YAAY,EAAE,uBAAuB,EAAE,eAAe,CAAC;oBAC9G,OAAO,EAAE,CAAE,wBAAwB,CAAC;oBACpC,YAAY,EAAE,CAAE,wBAAwB,CAAC;oBACzC,SAAS,EAAE,EAAE;iBAChB;;;MCLY,oBAAqB,SAAQ,oBAAoB;IAE1D,YACI,UAAsB,EACtB,GAAsB;QAEtB,KAAK,CAAC,UAAU,EAAE,GAAG,CAAC,CAAC;KAC1B;;iHAPQ,oBAAoB;qGAApB,oBAAoB,4EAJnB,2BAA2B;2FAI5B,oBAAoB;kBANhC,SAAS;mBAAC;oBACP,QAAQ,EAAE,eAAe;oBACzB,QAAQ,EAAE,2BAA2B;oBACrC,aAAa,EAAE,iBAAiB,CAAC,IAAI;oBACrC,eAAe,EAAE,uBAAuB,CAAC,MAAM;iBAClD;;;MCCY,mBAAoB,SAAQ,oBAAoB;IAEzD,YACI,UAAsB,EACtB,GAAsB;QAEtB,KAAK,CAAC,UAAU,EAAE,GAAG,CAAC,CAAC;KAC1B;;gHAPQ,mBAAmB;oGAAnB,mBAAmB,2EAJlB,uGAAuG;2FAIxG,mBAAmB;kBAN/B,SAAS;mBAAC;oBACP,QAAQ,EAAE,cAAc;oBACxB,QAAQ,EAAE,uGAAuG;oBACjH,aAAa,EAAE,iBAAiB,CAAC,IAAI;oBACrC,eAAe,EAAE,uBAAuB,CAAC,MAAM;iBAClD;;;MCEY,eAAgB,SAAQ,oBAAoB;IAErD,YACI,UAAsB,EACd,GAAsB;QAE9B,KAAK,CAAC,UAAU,EAAE,GAAG,CAAC,CAAC;QAFf,QAAG,GAAH,GAAG,CAAmB;KAGjC;IAGD,eAAe;QACX,OAAO,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,eAAe,EAAE,CAAC,gBAAgB,CAAC,wBAAwB,CAAC,CAAC,CAAC;KACxF;IAED,QAAQ;QACJ,MAAM,OAAO,GAAG,IAAI,CAAC,eAAe,EAAE,CAAC;;QAEvC,OAAO,IAAI,OAAO,CAAqB,CAAC,OAAO,EAAE,MAAM;YACnD,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC,EAAE;gBACtB,OAAO,OAAO,CAAC,OAAO,CAAC,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC;aAC5C;YACD,OAAO,CAAC,GAAG,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,KAAM,CAAS,CAAC,aAAa,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,KAAU;gBACjF,MAAM,MAAM,GAAG,KAAK,CAAC,MAAM,CAAC,CAAC,CAAM,KAAK,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC;gBACnD,IAAI,MAAM,CAAC,MAAM,EAAE;oBACf,MAAM,CAAC;wBACH,MAAM,EAAE,KAAK;wBACb,KAAK,EAAE,MAAM;qBAChB,CAAC,CAAC;iBACN;qBACI;oBACD,OAAO,CAAC,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC;iBAC7B;aACJ,CAAC,CAAC;SACN,CAAC,CAAC;KACN;IAED,KAAK;QACD,MAAM,OAAO,GAAG,IAAI,CAAC,eAAe,EAAE,CAAC;QACvC,OAAO,CAAC,OAAO,CAAC,CAAC;YACZ,CAAS,CAAC,aAAa,CAAC,KAAK,EAAE,CAAC;SACpC,CAAC,CAAC;KAEN;;4GA1CQ,eAAe;gGAAf,eAAe,sEAJd,sDAAsD;2FAIvD,eAAe;kBAN3B,SAAS;mBAAC;oBACP,QAAQ,EAAE,SAAS;oBACnB,QAAQ,EAAE,sDAAsD;oBAChE,aAAa,EAAE,iBAAiB,CAAC,IAAI;oBACrC,eAAe,EAAE,uBAAuB,CAAC,MAAM;iBAClD;;;MCIY,YAAY;;yGAAZ,YAAY;0GAAZ,YAAY,iBAHN,oBAAoB,EAAE,eAAe,EAAC,mBAAmB,aAF9D,YAAY,aACZ,oBAAoB,EAAE,eAAe,EAAC,mBAAmB;0GAI1D,YAAY,aAFV,EAAE,YAHJ,CAAC,YAAY,CAAC;2FAKd,YAAY;kBANxB,QAAQ;mBAAC;oBACN,OAAO,EAAE,CAAC,YAAY,CAAC;oBACvB,OAAO,EAAE,CAAC,oBAAoB,EAAE,eAAe,EAAC,mBAAmB,CAAC;oBACpE,YAAY,EAAE,CAAC,oBAAoB,EAAE,eAAe,EAAC,mBAAmB,CAAC;oBACzE,SAAS,EAAE,EAAE;iBAChB;;;MCAY,oBAAqB,SAAQ,eAAe;;;;IAQrD,YACY,WAAuB,EAC/B,IAAuB,EACf,QAA4B;QAEpC,KAAK,CAAC,WAAW,EAAE,IAAI,CAAC,CAAC;QAJjB,gBAAW,GAAX,WAAW,CAAY;QAEvB,aAAQ,GAAR,QAAQ,CAAoB;QAoCxC,kBAAa,GAAY,KAAK,CAAC;QAG/B,oBAAe,GAAY,KAAK,CAAC;KApChC;IAED,UAAU;QACN,IAAI,CAAC,QAAQ,GAAG,KAAK,CAAC,IAAI,CAAC,QAAQ,CAAC,eAAe,EAAE,CAAC,aAAa,CAAC,OAAO,CAAC,EAAE;YAC1E,IAAI,EAAE,IAAI,CAAC,IAAI;SAClB,CAAC,CAAA;KACL;IAKD,IACW,MAAM;QACb,OAAO,IAAI,CAAC,OAAO,IAAI,EAAE,CAAC;KAC7B;IACD,IAAW,MAAM,CAAC,CAAS;QACvB,IAAI,CAAC,OAAO,GAAG,CAAC,CAAC;KACpB;IAKD,IACW,MAAM;QACb,OAAO,IAAI,CAAC,OAAO,IAAI,EAAE,CAAC;KAC7B;IACD,IAAW,MAAM,CAAC,CAAS;QACvB,IAAI,CAAC,OAAO,GAAG,CAAC,CAAC;KACpB;;iHA1CQ,oBAAoB;qGAApB,oBAAoB,8MAJnB,EAAE;2FAIH,oBAAoB;kBANhC,SAAS;mBAAC;oBACP,QAAQ,EAAE,eAAe;oBACzB,QAAQ,EAAE,EAAE;oBACZ,eAAe,EAAE,uBAAuB,CAAC,MAAM;oBAC/C,aAAa,EAAE,iBAAiB,CAAC,IAAI;iBACxC;+JA2Bc,MAAM;sBADhB,KAAK;gBAYK,MAAM;sBADhB,KAAK;gBAWN,aAAa;sBADZ,KAAK;gBAIN,eAAe;sBADd,KAAK;gBAIN,IAAI;sBADH,KAAK;;;AC1DV,MAAMA,WAAS,GAAG,CAAC,oBAAoB,CAAC,CAAC;AACzC,MAAMC,SAAO,GAAG,CAAC,YAAY,EAAE,aAAa,CAAC,OAAO,EAAE,EAAC,WAAW,CAAC,CAAC;MAQvD,iBAAiB;;8GAAjB,iBAAiB;+GAAjB,iBAAiB,iBATX,oBAAoB,aACtB,YAAY,sBAA0B,WAAW,aAD/C,oBAAoB;+GAS1B,iBAAiB,aAFf,EAAE,YAFJ,CAAC,GAAGA,SAAO,CAAC;2FAIZ,iBAAiB;kBAN7B,QAAQ;mBAAC;oBACN,YAAY,EAAE,CAAC,GAAGD,WAAS,CAAC;oBAC5B,OAAO,EAAE,CAAC,GAAGC,SAAO,CAAC;oBACrB,OAAO,EAAE,CAAC,GAAGD,WAAS,CAAC;oBACvB,SAAS,EAAE,EAAE;iBAChB;;;MCLY,gBAAiB,SAAQ,oBAAoB;IAIxD,YAAY,UAAsB,EAAE,GAAsB;QACxD,KAAK,CAAC,UAAU,EAAE,GAAG,CAAC,CAAC;KACxB;IAID,IAAW,MAAM;QACf,OAAO,IAAI,CAAC,OAAO,CAAC;KACrB;IACD,IAAW,MAAM,CAAC,CAAU;QAC1B,IAAI,CAAC,OAAO,GAAG,CAAC,CAAC;QACjB,IAAI,CAAC,IAAI,CAAC,YAAY,EAAE,CAAC;KAC1B;;6GAhBU,gBAAgB;iGAAhB,gBAAgB,mGCT7B,gGAEQ;2FDOK,gBAAgB;kBAN5B,SAAS;+BACE,UAAU,mBAEH,uBAAuB,CAAC,MAAM,iBAChC,iBAAiB,CAAC,IAAI;iIAI5B,KAAK;sBAAb,KAAK;;;AEPR,MAAMA,WAAS,GAAG,CAAC,gBAAgB,CAAC,CAAC;AACrC,MAAMC,SAAO,GAAG,CAAC,YAAY,CAAC,CAAC;MAQlB,aAAa;;0GAAb,aAAa;2GAAb,aAAa,iBATP,gBAAgB,aAClB,YAAY,aADV,gBAAgB;2GAStB,aAAa,aAFX,EAAE,YAFJ,CAAC,GAAGA,SAAO,CAAC;2FAIZ,aAAa;kBANzB,QAAQ;mBAAC;oBACN,YAAY,EAAE,CAAC,GAAGD,WAAS,CAAC;oBAC5B,OAAO,EAAE,CAAC,GAAGC,SAAO,CAAC;oBACrB,OAAO,EAAE,CAAC,GAAGD,WAAS,CAAC;oBACvB,SAAS,EAAE,EAAE;iBAChB;;;MCyBY,eAAgB,SAAQ,oBAAoB;IACvD,YAAoB,UAAsB,EAAU,GAAsB;QACxE,KAAK,CAAC,UAAU,EAAE,GAAG,CAAC,CAAA;QADJ,eAAU,GAAV,UAAU,CAAY;QAAU,QAAG,GAAH,GAAG,CAAmB;QAQ1E,oBAAe,GAEX,IAAI,YAAY,EAAiC,CAAA;;KAPpD;IASD,WAAW,CAAC,CAAa,EAAE,IAAiB;QAC1C,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QAC3B,IAAI,IAAI,CAAC,QAAQ,EAAE,MAAM,GAAG,CAAC,EAAE;YAC7B,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAA;SAC/B;QAED,IAAI,CAAC,QAAQ,GAAG,CAAC,IAAI,CAAC,QAAQ,CAAA;QAC9B,IAAI,CAAC,MAAM,GAAG,CAAC,IAAI,CAAC,MAAM,CAAA;QAC1B,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC;YACxB,SAAS,EAAE,IAAI;YACf,IAAI,EAAE,IAAI;YACV,WAAW,EAAE,CAAC;SACf,CAAC,CAAA;QACF,CAAC,CAAC,eAAe,EAAE,CAAC;QACpB,CAAC,CAAC,cAAc,EAAE,CAAA;KACnB;IAED,SAAS,CAAC,KAAoB;QAC5B,KAAK,CAAC,OAAO,CAAC,CAAC,OAAoB;YACjC,OAAO,CAAC,QAAQ,GAAG,KAAK,CAAA;YACxB,IAAI,OAAO,CAAC,QAAQ,EAAE,MAAM,GAAG,CAAC,EAAE;gBAChC,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC;aAClC;SACF,CAAC,CAAC;KACJ;IAED,UAAU,CAAC,KAAoB;QAC7B,KAAK,CAAC,OAAO,CAAC,CAAC,OAAoB;YACjC,OAAO,CAAC,MAAM,GAAG,KAAK,CAAA;YACtB,IAAI,OAAO,CAAC,QAAQ,EAAE,MAAM,GAAG,CAAC,EAAE;gBAChC,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC;aACnC;SACF,CAAC,CAAC;KAEJ;;4GA/CU,eAAe;gGAAf,eAAe,wLCrC5B,u3BAmBc;2FDkBD,eAAe;kBAP3B,SAAS;+BACE,SAAS,mBAEF,uBAAuB,CAAC,MAAM,iBAChC,iBAAiB,CAAC,IAAI,QAC/B,EAAE,KAAK,EAAE,SAAS,EAAE;iIAQjB,KAAK;sBAAb,KAAK;gBAGN,eAAe;sBADd,MAAM;;;AExCT,MAAMA,WAAS,GAAG,CAAC,eAAe,CAAC,CAAC;AACpC,MAAMC,SAAO,GAAG,CAAC,YAAY,CAAC,CAAC;MAQlB,YAAY;;yGAAZ,YAAY;0GAAZ,YAAY,iBATN,eAAe,aACjB,YAAY,EAIH,YAAY,aALnB,eAAe;0GASrB,YAAY,aAFV,EAAE,YAFJ,CAAC,GAAGA,SAAO,EAAE,YAAY,CAAC;2FAI1B,YAAY;kBANxB,QAAQ;mBAAC;oBACN,YAAY,EAAE,CAAC,GAAGD,WAAS,CAAC;oBAC5B,OAAO,EAAE,CAAC,GAAGC,SAAO,EAAE,YAAY,CAAC;oBACnC,OAAO,EAAE,CAAC,GAAGD,WAAS,CAAC;oBACvB,SAAS,EAAE,EAAE;iBAChB;;;ACOD;;;;;MA2Ba,oBAAqB,SAAQ,kBAAkB;;;;IAoH1D,YACE,UAAsB,EACd,GAAsB;QAE9B,KAAK,CAAC,UAAU,EAAE,GAAG,CAAC,CAAC;QAFf,QAAG,GAAH,GAAG,CAAmB;QAlGxB,qBAAgB,GAAY,KAAK,CAAC;;;;QAsB1C,SAAI,GAAW,CAAC,CAAC;QAIT,cAAS,GAAW,CAAC,CAAC;;;;QAoB9B,gBAAW,GAAoB,MAAM,CAAC;;;;QAMtC,oBAAe,GAAY,IAAI,CAAC;QAExB,cAAS,GAAW,MAAM,CAAC,gBAAgB,CAAC;QAe5C,cAAS,GAAW,MAAM,CAAC,gBAAgB,CAAC;KAgCnD;;;;IAhHD,IACW,kBAAkB;QAC3B,OAAO,IAAI,CAAC,mBAAmB,CAAC;KACjC;IACD,IAAW,kBAAkB,CAAC,CAAS;QACrC,IAAI,CAAC,UAAU,CAAC;YACd,IAAI,EAAE,oBAAoB;YAC1B,KAAK,EAAE,CAAC,IAAI,EAAE;SACf,CAAC,CAAA;KACH;;;;IAMD,IACW,eAAe;QACxB,OAAO,IAAI,CAAC,gBAAgB,CAAC;KAC9B;IACD,IAAW,eAAe,CAAC,CAAU;QACnC,IAAI,CAAC,UAAU,CAAC;YACd,IAAI,EAAE,iBAAiB;YACvB,KAAK,EAAE,CAAC;SACT,CAAC,CAAA;KACH;;;;IAiBD,IACW,QAAQ;QACjB,OAAO,IAAI,CAAC,SAAS,CAAC;KACvB;IACD,IAAW,QAAQ,CAAC,CAAS;QAC3B,IAAI,CAAC,UAAU,CAAC;YACd,IAAI,EAAE,UAAU;YAChB,KAAK,EAAE,CAAC,IAAI,CAAC;SACd,CAAC,CAAA;KACH;;;;IAmBD,IACW,QAAQ;QACjB,OAAO,IAAI,CAAC,SAAS,CAAC;KACvB;IACD,IAAW,QAAQ,CAAC,CAAS;QAC3B,IAAI,CAAC,UAAU,CAAC;YACd,IAAI,EAAE,UAAU;YAChB,KAAK,EAAE,CAAC,IAAI,IAAI,GAAG,MAAM,CAAC,CAAC,CAAC,GAAG,MAAM,CAAC,gBAAgB;SACvD,CAAC,CAAA;KACH;;;;IAMD,IACW,QAAQ;QACjB,OAAO,IAAI,CAAC,SAAS,CAAC;KACvB;IACD,IAAW,QAAQ,CAAC,CAAS;QAC3B,IAAI,CAAC,UAAU,CAAC;YACd,IAAI,EAAE,UAAU;YAChB,KAAK,EAAE,CAAC,IAAI,IAAI,GAAG,MAAM,CAAC,CAAC,CAAC,GAAG,MAAM,CAAC,gBAAgB;SACvD,CAAC,CAAA;KACH;IAsBD,UAAU;QACR,KAAK,CAAC,UAAU,EAAE,CAAC;QACnB,IAAI,CAAC,WAAW,EAAE,CAAC;KACpB;IAGD,gBAAgB,CAAC,MAAgC;QAC/C,KAAK,CAAC,gBAAgB,CAAC,MAAM,CAAC,CAAC;QAC/B,IAAI,CAAC,WAAW,EAAE,CAAC;KACpB;IAEO,WAAW;QACjB,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE;YAClB,IAAI,CAAC,QAAQ,GAAG,KAAK,CAAC,UAAU,CAAC;gBAC/B,IAAI,EAAE,MAAM;gBACZ,GAAG,EAAE,IAAI,CAAC,QAAQ;gBAClB,GAAG,EAAE,IAAI,CAAC,QAAQ;gBAClB,kBAAkB,EAAE,IAAI,CAAC,kBAAkB,IAAI,EAAE;gBACjD,KAAK,EAAE,IAAI,CAAC,QAAQ;gBACpB,KAAK,EAAE,GAAG;gBACV,kBAAkB,EAAE,IAAI,CAAC,QAAQ,GAAG,CAAC,IAAI,IAAI,CAAC,eAAe;aAC9D,CAAC,CAAC;SACJ;aACI;YACH,IAAI,CAAC,QAAQ,CAAC,aAAa,CAAC;gBAC1B,GAAG,EAAE,IAAI,CAAC,QAAQ;gBAClB,GAAG,EAAE,IAAI,CAAC,QAAQ;gBAClB,kBAAkB,EAAE,IAAI,CAAC,kBAAkB,IAAI,EAAE;gBACjD,KAAK,EAAE,IAAI,CAAC,QAAQ;gBACpB,KAAK,EAAE,GAAG;gBACV,kBAAkB,EAAE,IAAI,CAAC,QAAQ,GAAG,CAAC,IAAI,IAAI,CAAC,eAAe;aAC9D,CAAC,CAAA;SACH;QACD,IAAI,CAAC,cAAc,EAAE,OAAO,EAAE,WAAW,EAAE,CAAC;QAC5C,IAAI,CAAC,cAAc,EAAE,OAAO,EAAE,aAAa,EAAE,CAAC;KAC/C;IAED,qBAAqB,CAAC,CAAgB;QACpC,MAAM,MAAM,GAAG;YACb,CAAC,CAAC,cAAc,EAAE,CAAC;YACnB,CAAC,CAAC,eAAe,EAAE,CAAC;SACrB,CAAC;QACF,MAAM,KAAK,GAAG,CAAC,CAAC,MAA0B,CAAC;QAC3C,MAAM,MAAM,GAAG,KAAK,CAAC,KAAK,CAAC;QAC3B,MAAM,iBAAiB,GAAG,MAAM,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;QAC9C,MAAM,UAAU,GAAC,KAAK,CAAC,cAAc,CAAC;QAEtC,IAAI,CAAC,CAAC,GAAG,KAAK,SAAS,IAAI,CAAC,CAAC,GAAG,KAAK,WAAW,EAAE;YAChD,IAAI,iBAAiB,GAAG,CAAC,IAAI,UAAU,GAAG,iBAAiB,IAAI,IAAI,CAAC,QAAQ,GAAG,CAAC,EAAE;gBAChF,CAAC,CAAC,GAAG,KAAK,WAAW,GAAG,IAAI,CAAC,eAAe,EAAE,GAAG,IAAI,CAAC,aAAa,EAAE,CAAC;aACvE;iBACI;gBACH,CAAC,CAAC,GAAG,KAAK,WAAW,GAAG,IAAI,CAAC,QAAQ,EAAE,GAAG,IAAI,CAAC,MAAM,EAAE,CAAC;aACzD;YACD,MAAM,EAAE,CAAC;YACT,UAAU,CAAC;gBACT,KAAK,CAAC,iBAAiB,CAAC,UAAU,EAAE,UAAU,CAAC,CAAC;aACjD,EAAC,CAAC,CAAC,CAAC;SACN;QACD,KAAK,CAAC,mBAAmB,CAAC,CAAC,CAAC,CAAC;KAC9B;IAID,kBAAkB,CAAC,CAAe,EAAE,CAAS;QAC3C,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC,MAAM,EAAE,GAAG,IAAI,CAAC,QAAQ,EAAE,CAAC;KAC1C;IAGD,gBAAgB,CAAC,KAAU;QACzB,MAAM,CAAC,GAAG,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;QAC5B,IAAI,CAAC,GAAG,IAAI,CAAC,QAAQ;YACnB,OAAO,IAAI,CAAC,QAAQ,CAAC;QACvB,IAAI,CAAC,GAAG,IAAI,CAAC,QAAQ;YACnB,OAAO,IAAI,CAAC,QAAQ,CAAC;QACvB,OAAO,CAAC,CAAC;KACV;IAGD,MAAM;QACJ,IAAI,CAAC,KAAK,IAAI,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;KACrC;IAED,QAAQ;QACN,IAAI,CAAC,KAAK,IAAI,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;KACrC;IAED,aAAa;QACX,IAAI,CAAC,KAAK,IAAI,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,WAAW,IAAI,MAAM,IAAI,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,EAAE,EAAE,IAAI,CAAC,QAAQ,CAAC,IAAI,IAAI,CAAC,WAAW,CAAC,CAAC;KAC7G;IAED,eAAe;QACb,IAAI,CAAC,KAAK,IAAI,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,WAAW,IAAI,MAAM,IAAI,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,EAAE,EAAE,IAAI,CAAC,QAAQ,CAAC,IAAI,IAAI,CAAC,WAAW,CAAC,CAAC;KAC7G;;iHAzNU,oBAAoB;qGAApB,oBAAoB,2uBA8GpB,cAAc,uEC7J3B,i3CAoCa;2FDWA,oBAAoB;kBAtBhC,SAAS;+BACE,eAAe,UAEjB;wBACN,UAAU;wBACV,UAAU;wBACV,UAAU;wBACV,MAAM;wBACN,OAAO;wBACP,GAAG,cAAc;qBAClB,WACQ;wBACP,aAAa;wBACb,gBAAgB;wBAChB,QAAQ;wBACR,SAAS;wBACT,GAAG,cAAc;qBAClB,mBACgB,uBAAuB,CAAC,MAAM,iBAChC,iBAAiB,CAAC,IAAI,QAC/B,EAAE,KAAK,EAAE,qBAAqB,EAAE;iIAY3B,kBAAkB;sBAD5B,KAAK;gBAgBK,eAAe;sBADzB,KAAK;gBAkBN,IAAI;sBADH,KAAK;gBAUK,QAAQ;sBADlB,KAAK;gBAgBN,WAAW;sBADV,KAAK;gBAON,eAAe;sBADd,KAAK;gBAQK,QAAQ;sBADlB,KAAK;gBAgBK,QAAQ;sBADlB,KAAK;gBAkBE,cAAc;sBADrB,SAAS;uBAAC,cAAc;;;AEpJ3B,MAAMA,WAAS,GAAG,CAAC,oBAAoB,CAAC,CAAC;AACzC,MAAMC,SAAO,GAAG;IACZ,YAAY;IACZ,WAAW;IACX,cAAc;IACd,uBAAuB;IACvB,YAAY;IACZ,WAAW;CACd,CAAC;MAQW,iBAAiB;;8GAAjB,iBAAiB;+GAAjB,iBAAiB,iBAhBX,oBAAoB,aAEnC,YAAY;QACZ,WAAW;QACX,cAAc;QACd,uBAAuB;QACvB,YAAY;QACZ,WAAW,aAPI,oBAAoB;+GAgB1B,iBAAiB,aAFf,EAAE,YAFJ,CAAC,GAAGA,SAAO,CAAC;2FAIZ,iBAAiB;kBAN7B,QAAQ;mBAAC;oBACN,YAAY,EAAE,CAAC,GAAGD,WAAS,CAAC;oBAC5B,OAAO,EAAE,CAAC,GAAGC,SAAO,CAAC;oBACrB,OAAO,EAAE,CAAC,GAAGD,WAAS,CAAC;oBACvB,SAAS,EAAE,EAAE;iBAChB;;;ACRD;;;;;MA2Ba,sBAAuB,SAAQ,kBAAkB;;;;IAkB1D,YAAY,UAAsB,EAAE,GAAsB;QACtD,KAAK,CAAC,UAAU,EAAE,GAAG,CAAC,CAAC;QAZ3B,UAAK,GAAwB,UAAU,CAAC;QACxC,UAAK,GAAkC,WAAW,CAAC;;;;QAK1C,qBAAgB,GAAY,IAAI,CAAC;KAOzC;IAlBD,IACI,SAAS;QACT,OAAO,GAAG,IAAI,CAAC,QAAQ,OAAO,IAAI,CAAC,IAAI,EAAE,CAAC;KAC7C;IAiBD,UAAU;QACN,IAAI,IAAI,CAAC,KAAK,KAAK,UAAU,EAAE;YAC3B,IAAI,CAAC,KAAK,GAAG,MAAM,CAAC;YACpB,IAAI,CAAC,KAAK,GAAG,eAAe,CAAC;SAChC;aAAM;YACH,IAAI,CAAC,KAAK,GAAG,UAAU,CAAC;YACxB,IAAI,CAAC,KAAK,GAAG,WAAW,CAAC;SAC5B;KACJ;;mHA9BQ,sBAAsB;uGAAtB,sBAAsB,6mBC3CnC,q1BAcY;2FD6BC,sBAAsB;kBAtBlC,SAAS;+BACI,iBAAiB,UAEnB;wBACJ,UAAU;wBACV,UAAU;wBACV,UAAU;wBACV,UAAU;wBACV,MAAM;wBACN,GAAG,cAAc;qBACpB,WACQ;wBACL,aAAa;wBACb,gBAAgB;wBAChB,QAAQ;wBACR,SAAS;wBACT,GAAG,cAAc;qBACpB,iBACc,iBAAiB,CAAC,IAAI,mBACpB,uBAAuB,CAAC,MAAM,QACzC,EAAE,KAAK,EAAE,qCAAqC,EAAE;iIAKlD,SAAS;sBADZ,WAAW;uBAAC,OAAO;gBAWX,gBAAgB;sBAAxB,KAAK;;;AEhDV,MAAMA,WAAS,GAAG,CAAC,sBAAsB,CAAC,CAAC;AAC3C,MAAMC,SAAO,GAAG;IACZ,YAAY;IACZ,WAAW;IACX,cAAc;IACd,uBAAuB;IACvB,YAAY;CACf,CAAC;MAQW,mBAAmB;;gHAAnB,mBAAmB;iHAAnB,mBAAmB,iBAfb,sBAAsB,aAErC,YAAY;QACZ,WAAW;QACX,cAAc;QACd,uBAAuB;QACvB,YAAY,aANG,sBAAsB;iHAe5B,mBAAmB,aAFjB,EAAE,YAFJ,CAAC,GAAGA,SAAO,CAAC;2FAIZ,mBAAmB;kBAN/B,QAAQ;mBAAC;oBACN,YAAY,EAAE,CAAC,GAAGD,WAAS,CAAC;oBAC5B,OAAO,EAAE,CAAC,GAAGC,SAAO,CAAC;oBACrB,OAAO,EAAE,CAAC,GAAGD,WAAS,CAAC;oBACvB,SAAS,EAAE,EAAE;iBAChB;;;MCTY,gBAAiB,SAAQ,oBAAoB;IA0BtD,YACI,UAAsB,EACtB,GAAsB,EACd,KAAa,EACb,iBAAmC,EACnC,cAAgC,EAChC,SAAqB;QAE7B,KAAK,CAAC,UAAU,EAAE,GAAG,CAAC,CAAC;QALf,UAAK,GAAL,KAAK,CAAQ;QACb,sBAAiB,GAAjB,iBAAiB,CAAkB;QACnC,mBAAc,GAAd,cAAc,CAAkB;QAChC,cAAS,GAAT,SAAS,CAAY;QA9BjC,cAAS,GAAY,IAAI,CAAC;QAK1B,aAAQ,GAAmC,IAAI,YAAY,EAAoB,CAAC;QAEhF,SAAI,GAAgC,IAAI,CAAC;QACzC,cAAS,GAAY,IAAI,CAAC;QAG1B,SAAI,GAAQ,EAAE,CAAC;QAGf,oBAAe,GAAY,IAAI,CAAC;QAChC,eAAU,GAAY,IAAI,CAAC;KAkB1B;IAED,MAAM;QACF,KAAK,CAAC,MAAM,EAAE,CAAC;QACf,IAAI,IAAI,CAAC,SAAS,CAAC,EAAE,CAAC,QAAQ,CAAC,EAAE;YAC7B,IAAI,CAAC,SAAS,GAAG,KAAK,CAAC;SAC1B;QACD,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,IAAI,CAAC,eAAe,EAAE,CAAC,aAAa,CAAC,0BAA0B,CAAC,CAAC,CAAC;;QAE7G,IAAI,OAAO,IAAI,CAAC,OAAO,KAAK,QAAQ,EAAE;;;;;;SAMrC;aACI,IAAI,IAAI,CAAC,OAAO,YAAY,WAAW,EAAE;YAC1C,IAAI,CAAC,eAAe,GAAG,IAAI,cAAc,CAAC,IAAI,CAAC,OAAO,EAAE,IAAI,CAAC,iBAAiB,EAAE,EAAE,SAAS,EAAE,IAAI,CAAC,IAAI,EAAE,GAAG,EAAE,IAAI,EAAE,CAAC,CAAC;YACrH,IAAI,CAAC,IAAI,CAAC,YAAY,EAAE,CAAC;SAE5B;aACI,IAAI,OAAO,IAAI,CAAC,OAAO,KAAK,UAAU,EAAE;YACzC,IAAI,CAAC,eAAe,GAAG,IAAI,eAAe,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;YACzD,IAAI,CAAC,IAAI,CAAC,YAAY,EAAE,CAAC;SAC5B;KACJ;IAED,cAAc,CAAC,GAA+B;QAC1C,GAAG,GAAG,GAAwB,CAAC;QAC/B,IAAI,GAAG,CAAC,QAAQ,EAAE;YACd,IAAI,CAAC,YAAY,CAAC,CAAC,SAAS,GAAG,GAAG,CAAC,QAAQ,CAAC;YAC5C,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC,SAAS,EAAE,IAAI,CAAC,IAAI,CAAC,CAAC;YACvD,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC,SAAS,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC,CAAC;YAChE,IAAI,GAAG,CAAC,QAAQ,CAAC,QAAQ,EAAE;gBACvB,GAAG,CAAC,QAAQ,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC,CAAmB;oBAChD,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;iBACzB,CAAC,CAAC;aACN;SACJ;QACD,IAAI,CAAC,KAAK,CAAC,iBAAiB,CAAC;YACzB,UAAU,CAAC;gBACP,MAAM,IAAI,GAAG,IAAI,CAAC,eAAe,EAAE,CAAC,aAAa,CAAiB,0BAA0B,CAAC,CAAC;gBAC9F,MAAM,SAAS,GAAG,IAAI,CAAC,eAAe,EAAE,CAAC,aAAa,CAAiB,4BAA4B,CAAC,CAAC;gBACrG,MAAM,SAAS,GAAG,IAAI,CAAC,eAAe,EAAE,CAAC,aAAa,CAAiB,4BAA4B,CAAC,CAAC;gBACrG,MAAM,MAAM,GAAG,IAAI,CAAC,aAAa,CAAiB,gBAAgB,CAAC,CAAC;gBACpE,MAAM,MAAM,GAAG,IAAI,CAAC,aAAa,CAAiB,gBAAgB,CAAC,CAAC;gBACpE,IAAI,MAAM,EAAE;oBACR,SAAS,CAAC,MAAM,CAAC,MAAM,CAAC,CAAA;iBAC3B;gBACD,IAAI,MAAM,EAAE;oBACR,SAAS,CAAC,SAAS,GAAG,EAAE,CAAC;oBACzB,SAAS,CAAC,MAAM,CAAC,MAAM,CAAC,CAAA;iBAC3B;aACJ,CAAC,CAAC;SACN,CAAC,CAAC;QACH,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;QAC1C,IAAI,CAAC,KAAK,EAAE,CAAC;QACb,IAAI,CAAC,IAAI,CAAC,YAAY,EAAE,CAAC;KAC5B;IAID,gBAAgB,CAAC,KAAoB;QACjC,IAAI,IAAI,CAAC,eAAe,EAAE;YACtB,IAAI,CAAC,KAAK,EAAE,CAAC;SAChB;KACJ;IAED,iBAAiB;QACb,IAAI,CAAC,KAAK,EAAE,CAAC;KAChB;IAED,WAAW;QACP,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;KAC7C;IAED,KAAK;QACD,UAAU,CAAC,MAAM,IAAI,CAAC,eAAe,EAAE,CAAC,KAAK,EAAE,CAAC,CAAC;KACpD;IAED,KAAK;QACD,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC;YACf,SAAS,EAAE,IAAI,CAAC,YAAY,CAAC,CAAC,SAAS;YACvC,WAAW,EAAE,IAAI,CAAC,eAAe,EAAE;SACtC,CAAC,CAAC;QACH,IAAI,CAAC,IAAI,CAAC,aAAa,EAAE,CAAC;KAC7B;IAED,YAAY,MAAM;;6GA3HT,gBAAgB;iGAAhB,gBAAgB,8ICb7B,k3BAgBM;2FDHO,gBAAgB;kBAN5B,SAAS;+BACI,UAAU,mBAEH,uBAAuB,CAAC,MAAM,iBAChC,iBAAiB,CAAC,IAAI;4OAmGrC,gBAAgB;sBADf,YAAY;uBAAC,gBAAgB,EAAE,CAAC,QAAQ,CAAC;;;AEtG9C;;;;;MAMa,cAAc;;;;IASzB,YAAoB,cAAgC;QAAhC,mBAAc,GAAd,cAAc,CAAkB;QAN5C,UAAK,GAA4B,EAAE,CAAC;KAMa;;;;IA2BzD,IAAI,CAAC,IAAI,EAAE,IAAI;QACb,MAAM,OAAO,GAAQ;YACnB,eAAe,EAAE,IAAI;YACrB,UAAU,EAAE,IAAI;YAChB,IAAI,EAAE,IAAI;YACV,WAAW,EAAE,KAAK;YAClB,SAAS,EAAE,IAAI;SAChB,CAAC;QACF,IAAI,OAAO,IAAI,KAAK,QAAQ,EAAE;YAC5B,OAAO,CAAC,KAAK,GAAG,IAAI,CAAC;SACtB;aAAM;YACL,MAAM,CAAC,MAAM,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC;SAC9B;QACD,MAAM,GAAG,GAAG,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,gBAAgB,EAAE,OAAO,EAAE,EAAE,mBAAmB,EAAE,KAAK,EAAE,mBAAmB,EAAE,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE,CAAC,CAAC;QAC7I,MAAM,KAAK,GAAG,GAAG,CAAC,QAA4B,CAAC;QAC/C,KAAK,CAAC,OAAO,GAAG,IAAI,CAAC;QACrB,KAAK,CAAC,YAAY,CAAC,GAAG,EAAE,CAAC;QACzB,IAAI,OAAO,CAAC,IAAI,EAAE;YAChB,KAAK,CAAC,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC;SAC3B;QACD,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QACvB,KAAK,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC;YACxB,IAAI,CAAC,UAAU,CAAC,KAAK,EAAE,GAAG,EAAE,CAAC,CAAC,CAAC;SAChC,CAAC,CAAC;QACH,MAAM,OAAO,GAAG,IAAI,mBAAmB,CAAC,CAAC,OAAO;YAC9C,KAAK,CAAC,YAAY,CAAC,CAAC,KAAK,GAAG,CAAC,CAAC;gBAC5B,IAAI,OAAO,EAAE;oBACX,OAAO,CAAC,CAAC,CAAC,CAAC;iBACZ;aACF,CAAC;SACH,CAAC,CAAC;QACH,OAAO,CAAC,aAAa,CAAC,GAAG,QAAQ,KAAK,CAAC,KAAK,EAAE,CAAC,EAAE,CAAC;QAClD,OAAO,OAAO,CAAC;KAChB;IAGO,UAAU,CAAC,KAAuB,EAAE,GAAqB,EAAE,MAAwB;QACzF,MAAM,SAAS,GAAG,CAAC,CAAC;YAClB,GAAG,CAAC,OAAO,EAAE,CAAC;YACd,IAAI,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC;YACjB,OAAO,CAAC,CAAC,MAAM,CAAC;YAChB,KAAK,CAAC,YAAY,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;YAC7B,IAAI,IAAI,CAAC,KAAK,CAAC,MAAM,EAAE;gBAAE,IAAI,CAAC,KAAK,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC,CAAC,KAAK,EAAE,CAAC;aAAE;SAC5D,CAAC;QACF,MAAM,CAAC,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,CAAC;QAC5B,MAAM,WAAW,GAAG,KAAK,CAAC,YAAY,CAAC,EAAE,SAAS,EAAE,SAAS,CAAC;QAC9D,IAAI,WAAW,EAAE;YACf,MAAM,GAAG,GAAG,WAAW,CAAC,CAAC,CAAC,CAAC;YAC3B,IAAI,GAAG,YAAY,OAAO,EAAE;gBAC1B,GAAG,CAAC,IAAI,CAAC;oBACP,IAAI,CAAC,IAAI,IAAI,IAAI,CAAC,CAAC,MAAM,KAAK,IAAI,EAAE;wBAClC,SAAS,CAAC,MAAM,CAAC,CAAC;qBACnB;iBACF,CAAC,CAAC;aACJ;iBACI;gBACH,IAAI,CAAC,IAAI,IAAI,IAAI,CAAC,CAAC,MAAM,KAAK,IAAI,EAAE;oBAClC,SAAS,CAAC,MAAM,CAAC,CAAC;iBACnB;aACF;SACF;aAAM;YACL,SAAS,CAAC,MAAM,CAAC,CAAC;SACnB;KACF;;2GAnGU,cAAc;+GAAd,cAAc,cADD,MAAM;2FACnB,cAAc;kBAD1B,UAAU;mBAAC,EAAE,UAAU,EAAE,MAAM,EAAE;;;ACJlC,MAAMA,WAAS,GAAG,CAAC,gBAAgB,CAAC,CAAC;AACrC,MAAMC,SAAO,GAAG,CAAC,YAAY,EAAE,cAAc,EAAE,UAAU,EAAE,cAAc,EAAE,YAAY,CAAC,CAAC;MAQ5E,aAAa;;0GAAb,aAAa;2GAAb,aAAa,iBATP,gBAAgB,aAClB,YAAY,EAAE,cAAc,EAAE,UAAU,EAAE,cAAc,EAAE,YAAY,aADpE,gBAAgB;2GAStB,aAAa,aAFX,EAAE,YAFJ,CAAC,GAAGA,SAAO,CAAC;2FAIZ,aAAa;kBANzB,QAAQ;mBAAC;oBACN,YAAY,EAAE,CAAC,GAAGD,WAAS,CAAC;oBAC5B,OAAO,EAAE,CAAC,GAAGC,SAAO,CAAC;oBACrB,OAAO,EAAE,CAAC,GAAGD,WAAS,CAAC;oBACvB,SAAS,EAAE,EAAE;iBAChB;;;MCTY,sBAAuB,SAAQ,oBAAoB;IAgB5D;QACI,KAAK,EAAE,CAAC;QAbZ,UAAK,GAAW,CAAC,CAAA;KAchB;IAVD,IAAW,GAAG;QACV,OAAO,IAAI,CAAC,IAAI,CAAC;KACpB;IACD,IACW,GAAG,CAAC,CAAS;QACpB,IAAI,CAAC,IAAI,GAAG,CAAC,CAAC;KACjB;IAMD,QAAQ,MAAY;;mHApBX,sBAAsB;uGAAtB,sBAAsB,sHCPnC,4DAAsD;2FDOzC,sBAAsB;kBAJlC,SAAS;+BACI,iBAAiB;0EAO3B,KAAK;sBADJ,KAAK;gBASK,GAAG;sBADb,KAAK;;;MERG,mBAAmB;;gHAAnB,mBAAmB;iHAAnB,mBAAmB,iBALb,sBAAsB,aAC3B,YAAY,aACZ,sBAAsB;iHAGvB,mBAAmB,aAFjB,EAAE,YAFJ,CAAC,YAAY,CAAC;2FAId,mBAAmB;kBAN/B,QAAQ;mBAAC;oBACN,YAAY,EAAE,CAAC,sBAAsB,CAAC;oBACtC,OAAO,EAAE,CAAC,YAAY,CAAC;oBACvB,OAAO,EAAE,CAAC,sBAAsB,CAAC;oBACjC,SAAS,EAAE,EAAE;iBAChB;;;MCKY,gBAAiB,SAAQ,yBAAyB;IAE3D,YACI,UAAsB,EACtB,GAAsB;QAEtB,KAAK,CAAC,UAAU,EAAE,GAAG,CAAC,CAAC;;KAE1B;IAED,mBAAmB,CAAC,CAAa;QAC7B,IAAI,IAAI,CAAC,QAAQ,IAAI,IAAI,CAAC,QAAQ,EAAE;YAClC,CAAC,CAAC,cAAc,EAAE,CAAC;YACnB,CAAC,CAAC,eAAe,EAAE,CAAC;YACpB,OAAO,KAAK,CAAC;SACd;KACF;;6GAhBM,gBAAgB;iGAAhB,gBAAgB,oZCd7B,2nBAUqD;2FDIxC,gBAAgB;kBAT5B,SAAS;+BACI,UAAU,UAEZ,CAAC,GAAG,kBAAkB,EAAE,GAAG,YAAY,CAAC,WACvC,CAAC,GAAG,kBAAkB,EAAE,GAAG,YAAY,CAAC,mBAChC,uBAAuB,CAAC,MAAM,iBAChC,iBAAiB,CAAC,IAAI,QAC9B,EAAE,KAAK,EAAE,UAAU,EAAE;;;AEPhC,MAAMA,WAAS,GAAG,CAAC,gBAAgB,CAAC,CAAC;AACrC,MAAMC,SAAO,GAAG,CAAC,YAAY,EAAC,WAAW,CAAC,CAAC;MAQ9B,aAAa;;0GAAb,aAAa;2GAAb,aAAa,iBATP,gBAAgB,aAClB,YAAY,EAAC,WAAW,aADtB,gBAAgB;2GAStB,aAAa,aAFX,EAAE,YAFJ,CAAC,GAAGA,SAAO,CAAC;2FAIZ,aAAa;kBANzB,QAAQ;mBAAC;oBACN,YAAY,EAAE,CAAC,GAAGD,WAAS,CAAC;oBAC5B,OAAO,EAAE,CAAC,GAAGC,SAAO,CAAC;oBACrB,OAAO,EAAE,CAAC,GAAGD,WAAS,CAAC;oBACvB,SAAS,EAAE,EAAE;iBAChB;;;MCHY,sBAAuB,SAAQ,oBAAoB;IAE5D,YACI,UAAsB,EACtB,GAAsB;QAEtB,KAAK,CAAC,UAAU,EAAE,GAAG,CAAC,CAAC;;KAE1B;;mHARQ,sBAAsB;uGAAtB,sBAAsB,2HCVnC,2FAA+E;2FDUlE,sBAAsB;kBAPlC,SAAS;+BACI,iBAAiB,mBAEV,uBAAuB,CAAC,MAAM,iBAChC,iBAAiB,CAAC,IAAI,QAC/B,EAAE,KAAK,EAAE,iBAAiB,EAAE;;;AEJtC,MAAMA,WAAS,GAAG,CAAC,sBAAsB,CAAC,CAAC;AAC3C,MAAMC,SAAO,GAAG,CAAC,YAAY,CAAC,CAAC;MAQlB,mBAAmB;;gHAAnB,mBAAmB;iHAAnB,mBAAmB,iBATb,sBAAsB,aACxB,YAAY,aADV,sBAAsB;iHAS5B,mBAAmB,aAFjB,EAAE,YAFJ,CAAC,GAAGA,SAAO,CAAC;2FAIZ,mBAAmB;kBAN/B,QAAQ;mBAAC;oBACN,YAAY,EAAE,CAAC,GAAGD,WAAS,CAAC;oBAC5B,OAAO,EAAE,CAAC,GAAGC,SAAO,CAAC;oBACrB,OAAO,EAAE,CAAC,GAAGD,WAAS,CAAC;oBACvB,SAAS,EAAE,EAAE;iBAChB;;;MCUY,oBAAqB,SAAQ,4BAA4B;IA6ClE,YACY,WAAuC,EACvC,IAAuB,EACvB,KAAa,EACb,SAAqB;QAE7B,KAAK,CAAC,WAAW,EAAE,IAAI,CAAC,CAAC;QALjB,gBAAW,GAAX,WAAW,CAA4B;QACvC,SAAI,GAAJ,IAAI,CAAmB;QACvB,UAAK,GAAL,KAAK,CAAQ;QACb,cAAS,GAAT,SAAS,CAAY;QArCjC,gBAAW,GAAY,KAAK,CAAC;QAErB,oBAAe,GAAyC,EAAE,OAAO,EAAE,KAAK,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC;QAY/F,aAAQ,GAAY,KAAK,CAAC;QAgB1B,cAAS,GAAY,KAAK,CAAC;QAC3B,gBAAW,GAAY,KAAK,CAAC;KAS5B;IApCD,IACW,cAAc;QACrB,OAAO,IAAI,CAAC,eAAe,CAAC;KAC/B;IACD,IAAW,cAAc,CAAC,CAAuC;QAC7D,IAAI,CAAC,eAAe,GAAG,CAAC,IAAI,EAAE,OAAO,EAAE,KAAK,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC;KAC9D;IAgBD,IAAI,aAAa;QACb,OAAO,IAAI,CAAC,qBAAqB,CAAC;KACrC;IAcD,sBAAsB,CAAC,CAAe;QAClC,CAAC,CAAC,WAAW,CAAC,eAAe,EAAE,CAAC;QAChC,IAAI,CAAC,MAAM,EAAE,CAAC;KACjB;IAED,sBAAsB,CAAC,CAAa;QAChC,CAAC,CAAC,eAAe,EAAE,CAAC;QACpB,IAAI,CAAC,MAAM,EAAE,CAAC;KACjB;IAGD,MAAM;QACF,KAAK,CAAC,MAAM,EAAE,CAAC;QACf,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC,WAAW,CAAC,aAAa,CAAC;QAC9C,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,SAAS,CAAC,EAAE,CAAC,QAAQ,CAAC,CAAC;QAC7C,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC,WAAW,IAAI,YAAY,CAAC,GAAG,CAAC,yBAAyB,CAAC,CAAA;KACvF;IAED,UAAU;QACN,KAAK,CAAC,UAAU,EAAE,CAAC;QACnB,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC,SAAS,GAAG,IAAI,GAAG,IAAI,CAAC,OAAO,CAAC,WAAW,CAAC;KACzE;IAGD,OAAO;QACH,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC;QAClB,KAAK,CAAC,OAAO,EAAE,CAAC;KACnB;IAED,kBAAkB,CAAC,CAAa,EAAE,IAAS;QACvC,IAAI,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,EAAE;YAC3B,OAAO;SACV;QACD,IAAI,CAAC,IAAI,CAAC,QAAQ;YACd,IAAI,CAAC,KAAK,EAAE,CAAC;QACjB,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,CAAC;QACxB,IAAI,CAAC,IAAI,CAAC,aAAa,EAAE,CAAC;KAC7B;IAED,iBAAiB,CAAC,CAAQ;QACtB,MAAM,IAAI,GAAG,CAAC,CAAC,MAAwB,CAAC;QACxC,KAAK,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC,YAAY,GAAG;YAC1D,OAAO;SACV;QACD,IAAI,CAAC,UAAU,EAAE,CAAC;KACrB;IAEO,iBAAiB;QACrB,MAAM,IAAI,GAAG,IAAI,CAAC,aAAa,CAAC,aAAa,CAAC;QAC9C,MAAM,UAAU,GAAG,IAAI,CAAC,aAAa,CAAC,aAAa,CAAiB,yBAAyB,CAAC,EAAE,YAAY,IAAI,CAAC,CAAC;QAClH,IAAI,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,UAAU,IAAI,IAAI,CAAC,YAAY,IAAI,CAAC,IAAI,CAAC,aAAa,CAAC,YAAY,GAAG,UAAU,IAAI,GAAG,CAAC,EAAE;YAClH,IAAI,CAAC,UAAU,EAAE,CAAC;SACrB;KACJ;IAED,aAAa;QACT,IAAI,IAAI,CAAC,OAAO,CAAC,MAAM,EAAE;YACrB,UAAU,CAAC;gBACP,IAAI,CAAC,iBAAiB,EAAE,CAAC;gBACzB,IAAI,CAAC,OAAO,CAAC,cAAc,EAAE,CAAC;gBAC9B,IAAI,IAAI,CAAC,WAAW,EAAE;oBAClB,IAAI,CAAC,kBAAkB,EAAE,CAAC;oBAC1B,IAAI,CAAC,WAAW,GAAG,KAAK,CAAC;iBAC5B;aACJ,EAAE,GAAG,CAAC,CAAC;SACX;KACJ;IAED,eAAe,CAAC,QAAa,EAAE,QAAa;QACxC,KAAK,CAAC,eAAe,CAAC,QAAQ,EAAE,QAAQ,CAAC,CAAC;KAC7C;IAED,wBAAwB,CAAC,CAAa,EAAE,IAAS;QAC7C,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,CAAA;QACxB,CAAC,CAAC,eAAe,EAAE,CAAC;KACvB;IAED,kBAAkB,CAAC,CAAa,EAAE,IAAI;QAClC,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,CAAA;QACxB,CAAC,CAAC,eAAe,EAAE,CAAA;QACnB,IAAI,CAAC,KAAK,EAAE,CAAC;KAChB;IAGD,cAAc,CAAC,CAAgB;QAC3B,MAAM,QAAQ,GAAG,IAAI,MAAM,CAAC,eAAe,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,YAAY,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC;QAClF,IAAI,CAAC,CAAC,IAAI,KAAK,WAAW,IAAI,CAAC,CAAC,IAAI,KAAK,SAAS;aAC7C,CAAC,IAAI,CAAC,SAAS,KAAK,IAAI,IAAI,IAAI,CAAC,aAAa,CAAC,MAAM,GAAG,CAAC;iBACrD,IAAI,CAAC,SAAS,KAAK,IAAI,IAAI,IAAI,CAAC,aAAa,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,EAAE;YACjE,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC;YACxB,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,aAAa,CAAC,GAAG,EAAE,CAAC,CAAC;YAC7C,CAAC,CAAC,cAAc,EAAE,CAAC;YACnB,OAAO;SACV;aACI,IAAI,CAAC,CAAC,CAAC,IAAI,KAAK,WAAW,IAAI,CAAC,CAAC,IAAI,KAAK,SAAS,IAAI,CAAC,CAAC,IAAI,KAAK,OAAO,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,MAAM,IAAI,CAAC,CAAC,IAAI,KAAK,SAAS,EAAE;YAC7H,IAAI,IAAI,CAAC,QAAQ,EAAE;gBACf,IAAI,CAAC,IAAI,EAAE,CAAC;aACf;iBACI;gBACD,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC;gBACxB,IAAI,CAAC,CAAC,OAAO,IAAI,CAAC,CAAC,IAAI,KAAK,OAAO,EAAE;oBACjC,IAAI,CAAC,IAAI,EAAE,CAAC;iBACf;qBACI;oBACD,IAAI,CAAC,kBAAkB,EAAE,CAAC,CAAC,GAAG,KAAK,WAAW,GAAG,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC;iBAC7D;aACJ;YACD,CAAC,CAAC,cAAc,EAAE,CAAC;YACnB,OAAO;SACV;aACI,IAAI,QAAQ,EAAE;YACf,IAAI,CAAC,IAAI,GAAG,CAAC,CAAC,GAAG,CAAC;YAClB,IAAI,CAAC,IAAI,EAAE,CAAC;YACZ,CAAC,CAAC,cAAc,EAAE,CAAC;YACnB,OAAO;SACV;KACJ;IAGD,qBAAqB,CAAC,CAAgB;QAClC,IAAI,CAAC,CAAC,CAAC,GAAG,KAAK,WAAW,IAAI,CAAC,CAAC,GAAG,KAAK,SAAS,KAAK,IAAI,CAAC,YAAY,CAAC,MAAM,GAAG,CAAC,EAAE;YAChF,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC;YACxB,IAAI,CAAC,eAAe,EAAE,CAAC,CAAC,GAAG,KAAK,WAAW,GAAG,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC;YACvD,CAAC,CAAC,cAAc,EAAE,CAAC;SACtB;aACI,IAAI,CAAC,CAAC,IAAI,KAAK,WAAW;aAC1B,CAAC,IAAI,CAAC,SAAS,KAAK,IAAI,IAAI,IAAI,CAAC,aAAa,CAAC,MAAM,GAAG,CAAC;iBACrD,IAAI,CAAC,SAAS,KAAK,IAAI,IAAI,IAAI,CAAC,aAAa,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,EAAE;YACjE,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC;YACxB,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,aAAa,CAAC,GAAG,EAAE,CAAC,CAAC;YAC7C,CAAC,CAAC,cAAc,EAAE,CAAC;SACtB;aACI,KAAK,CAAC,CAAC,IAAI,KAAK,OAAO,IAAI,CAAC,CAAC,IAAI,KAAK,OAAO,GAAG;YACjD,CAAC,CAAC,cAAc,EAAE,CAAC;YACnB,SAAS;YACT,MAAM,aAAa,GAAG,IAAI,CAAC,aAAa,CAAC,aAAa,CAAC,aAAa,CAAc,iBAAiB,CAAC,CAAC,OAAO,CAAC,EAAE,CAAC;YAChH,MAAM,WAAW,GAAG,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,SAAS,EAAE,CAAC,IAAI,CAAC,UAAU,EAAE,aAAa,CAAC,CAAC,CAAC;YACjF,IAAI,WAAW,EAAE;gBACb,IAAI,IAAI,CAAC,cAAc,CAAC,WAAW,CAAC,EAAE;oBAClC,OAAO;iBACV;gBACD,IAAI,IAAI,CAAC,QAAQ,EAAE;oBACf,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC;oBACxB,IAAI,CAAC,YAAY,CAAC,WAAW,CAAC,CAAC;iBAClC;qBACI;oBACD,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC;oBACxB,IAAI,CAAC,WAAW,CAAC,WAAW,CAAC,CAAC;oBAC9B,IAAI,CAAC,KAAK,EAAE,CAAC;iBAChB;aACJ;SACJ;aACI,IAAI,CAAC,CAAC,IAAI,KAAK,KAAK,EAAE;YACvB,IAAI,CAAC,KAAK,EAAE,CAAC;YACb,CAAC,CAAC,cAAc,EAAE,CAAC;YACnB,CAAC,CAAC,eAAe,EAAE,CAAC;SACvB;aACI,IAAI,CAAC,CAAC,GAAG,KAAK,QAAQ,EAAE;YACzB,IAAI,CAAC,KAAK,EAAE,CAAC;YACb,CAAC,CAAC,cAAc,EAAE,CAAC;YACnB,CAAC,CAAC,eAAe,EAAE,CAAC;SACvB;KACJ;IAED,oBAAoB,CAAC,CAAC;QAClB,IAAI,CAAC,OAAO,CAAC,KAAK,EAAE,CAAC;QACrB,IAAI,IAAI,CAAC,YAAY,CAAC,MAAM,IAAI,CAAC,EAAE;YAC/B,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC;YACxB,IAAI,CAAC,UAAU,EAAE,CAAC;SACrB;aACI;YACD,IAAI,CAAC,kBAAkB,EAAE,CAAC;SAC7B;QACD,IAAI,IAAI,CAAC,UAAU,EAAE;YACjB,IAAI,CAAC,UAAU,CAAC,KAAK,EAAE,CAAC;SAC3B;KACJ;IAED,oBAAoB,CAAC,CAAC;QAClB,IAAI,CAAC,KAAK,EAAE,CAAC;KAChB;IAGO,eAAe,CAAC,IAAY;QAEhC,MAAM,IAAI,GAAG,IAAI,CAAC,aAAa,CAAC,aAAa,CAAC;QAC9C,MAAM,EAAE,GAAG,CAAC,CAAC,KAAK,IAAI,CAAC,aAAa,CAAc,CAAC,CAAC,CAAC;QACrD,MAAM,OAAO,GAAG,EAAE,CAAC,8BAA8B,CAAC,IAAI,EAAE,CAAC,iCAAiC,CAAC,IAAI,EAAE,CAAC,eAAe,CAAC,CAAC;QACnH,IAAI,IAAI,IAAI,IAAI,IAAI,CAAC,GAAG,OAAO,CAAC,kBAAkB,GAAG,OAAO,CAAC,sBAAsB,CAAgB,CAAC;QACpG,IAAI,IAAI,EAAE;YACN,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC,CAAC;SAChC;aACI;YACD,MAAM,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,qBAAqB,CAAC,CAAC;YACtD,IAAI,MAAM,EAAE;gBACR,MAAM,GAAG,GAAG,CAAC,IAAI,IAAI,CAAC,GAAG,MAAM,CAAC,kBAAkB,GAAG,MAAM,CAAC,sBAAsB,GAAG,gBAAgB,CAAC,IAAI,CAAC,CAAC;gBAC5G,MAAM,CAAC,GAAG,IAAI,IAAI,CAAC,GAAG,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;gBACjD,IAAI,CAAC,EAAE;oBACH,IAAI,CAAC,iBAAiB,CAAC,CAAC,CAAC,CAAC;iBAC7B;aACJ;SACJ;KACJ;IAGO,kBAAkB;QACtB,IAAI,CAAC,KAAK,CAAC,iBAAiB,CAAC;YACzB,MAAM,IAAI,GAAG,IAAI,CAAC,aAAa,CAAC,aAAa,CAAC;YAC9C,MAAM,EAAE,GAAG,CAAC,CAAC,KAAK,IAAI,CAAC,aAAa,CAAc,CAAC,CAAC,CAAC;YACrD,MAAM,OAAO,GAAG,EAAE,CAAC,iCAAiC,CAAC,IAAI,EAAE,CAAC,eAAe,CAAC,CAAC;YAC7E,IAAI,OAAO,EAAE;gBACT,IAAI,CAAC,iBAAiB,CAAC,OAAO,CAAC,CAAC;aACnC;SACJ,CAAC,CAAC;KACN;IAEO,iBAAiB,CAAC,EAAe;QACrC,IAAI,CAAC,KAAK,CAAC,iBAAiB,CAAC;YACzB,MAAM,IAAI,GAAG,IAAI,CAAC,aAAa,CAAC,aAAa,CAAC;YAC9C,IAAI,CAAC,gBAAgB,CAAC,eAAe,CAAC,CAAC,OAAO,CAAC,CAAC;gBAC5C,IAAI,CAAC,IAAI,EAAE,EAAE;oBACT,CAAC,CAAC,SAAS,CAAC,GAAG,CAAC,gBAAgB,CAAC,CAAC;oBAClC,EAAE,CAAC,cAAc,CAAC,EAAE,QAAQ,EAAE,MAAM,EAAE,CAAC,CAAC;iBAC3C;qBACI;oBACD,CAAC,CAAC,SAAS,CAAC,MAAM,CAAC,gBAAgB,CAAC,CAAC;iBACxC;aACJ,CAAC,CAAC;YACH,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,UAAU,CAAC,KAAK,EAAE,GAAG,EAAE,CAAC,KAAK,EAAE,CAAC;SAC1D,CAAC,CAAC;KACN;IAGO,kBAAkB,CAAC,IAAY;QACnC,MAAM,IAAI,GAAG,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;QACxC,IAAI,CAAC,GAAG,CAAC,CAAC;QACV,IAAI,IAAI,EAAE;YACN,CAAC,GAAG,CAAC,CAAC,aAAa,CAAC,IAAI,CAAC,SAAS,EAAE,CAAC,IAAI,CAAC,UAAU,EAAE,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC;SACjF;QACD,CAAC,IAAI,IAAI,CAAC;QACV,IAAI,IAAI,GAAG,CAAC,CAAC,GAAG,CAAM,IAAI,CAAC,SAAS,EAAE,CAAC,CAAC,CAAC;QACzC,OAAO,IAAI,EAAE,QAAQ,IAAI,IAAI,EAAE,QAAQ,CAAC,MAAM,EAAE;YAC5C,CAAC,IAAI,IAAI,CAAC;YACV,IAAI,GAAG,CAAC,CAAC,GAAG,CAAM,IAAI,CAAC,SAAS,EAAE,CAAC,CAAC,CAAC;SACxC;QACD,IAAI,IAAI,EAAE;YACN,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC;SAC1B;aACI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,CAAC,EAAE;YAChC,IAAI,CAAC,UAAU,EAAE,CAAC;SACrB;KACJ;IAGD,oBAAoB,CAAC,CAA8B;QAC/C,IAAI,CAAC,KAAK,EAAE,CAAC;QACb,IAAI,CAAC,UAAU,EAAE,CAAC;KACrB;IAED,UAAU;QAEN,KAAK,CAAC,UAAU,CAAC,EAAE,WAAW,EAAE,IAAI,CAAC,UAAU,EAAE,KAAK,EAAE,CAAC,CAAC;KAC7D;;iHA5TQ,oBAAoB;qGAApB,oBAAoB,+nCAGlB,kBAAkB,8RCzBjC,koUAyJa;2FDnIA,oBAAoB;kBAThC,SAAS;+BACI,eAAe,UAEjB,CAAC,GAAG,eAAe,EAAE,GAAG,kBAAkB,EAAE,GAAG,YAAY,EAAE,GAAG,cAAc,EAAE,GAAG,eAAe,EAAE,GAAG,gBAAgB,CAAC,WACvH,CAAC,GAAG,eAAe,EAAE,GAAG,kBAAkB,EAAE,GAAG,YAAY,EAAE,GAAG,cAAc,EAAE,GAAG,gBAAgB,CAAC,iBAC9F,iBAAiB,CAAC,IAAI,mBACpB,uBAAuB,CAAC,MAAM,QACzC,EAAE,KAAK,EAAE,kCAAkC,EAAE;iLAMnD,OAAO;sBADN,SAAS;uBAAC,kBAAkB,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE;gBAS/C,WAAW;sBADV,KAAK;gBAMK,cAAc;sBADxB,KAAK;gBAUN,QAAQ;sBADP,KAAK;gBAIE,aAAa;sBADpB,SAAS;uBAAC,eAAe,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE;gBAIpC,UAAU;sBADjB,SAAS;uBAAC,WAAW;gBAId,qBAAqB;sBAD5B,YAAY;uBAAC,eAAe;gBAwG7B,cAAc;sBADb,YAAY;uBAAC,SAAS,EAAE,CAAC,QAAQ,CAAC;;;ME3H1B,iBAAiB;;8GAAjB,iBAAiB;+GAAjB,iBAAiB,iBAHX,oBAAoB,aAfzB,YAAY;QAClB,cAAc;QACd,WAAW;QACX,gBAAgB;QAChB,aAAa;QACb,uBAAuB;QACvB,mBAAmB;QACnB,YAAY;QACZ,eAAe;QACf,cAAc;QACd,eAAe;QACf,UAAU;QACV,eAAe,aAET,oBAAoB;+GAIrB,iBAAiB,aAFf,EAAE,YAhBJ,CAAC,YAAY;YAClB,cAAc;YACd,WAAW;YACX,gBAAgB;YAChB,aAAa;YACb,uBAAuB;YACvB,mBAAmB;YACnB,YAAY;YACZ,eAAe;YACf,cAAc;YACd,eAAe;YACf,UAAU;YACV,eAAe;SAClB;2FAKQ,iBAAiB;kBAnB7B,QAAQ;mBAAC;oBACN,OAAO,EAAE,CAAC,YAAY;wBAClB,cAAc;wBACd,WAAW;wBACX,gBAAgB;wBAChB,aAAa;wBACb,uBAAuB;wBACvB,mBAAmB;wBACnB,YAAY;wBACZ,eAAe;wBACf,cAAc;wBACd,eAAe;wBACf,UAAU;wBACV,eAAe;qBAClB;oBACD,OAAO,EAAE,CAAC,oBAAoB,CAAC;oBAC/B,YAAY,EAAE,CAAC,oBAAoB,CAAC;oBACpC,SAAS,EAAE,EAAE;iBAChB;;;MCLY,wBAAyB,SAAQ,yBAAyB;IACrE,YAAY,UAAsB,EAAE,GAAsB;QACxD,KAAK,CAAC,UAAU,EAAE,GAAG,CAAC,CAAC;QAIzB,cAAS,GAAgB,YAAY,CAAC;KAHrC;IAKD,wBAAwB,CAAC,IAAS,EAAE,CAAQ;QAC1C,IAAI,IAAI,CAAC,QAAQ,IAAI,IAAI,CAAC,QAAQ,EAAE;YAClC,CAAC,CAAC,cAAc,EAAE,CAAC;YACnB,CAAC,CAAC,eAAe,EAAE,CAAC;SACrB;aAAM;YACJ,CAAC,CAAC,MAAc,CAAC,OAAO,GAAG,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,CAAC;SAC/E;KACF;;qHAfU,wBAAwB;yGAAxB,wBAAwB,mdC9BrC,y7HA6DW;2FD/BE,wBAAwB;kBApBpC,SAAS;+BACE,mBAAmB,UAErB;wBACN,UAAU;wBACV,UAAU;wBACV,UAAU;wBACV,MAAM;wBACN,OAAO;wBACP,YAAY;wBACZ,WAAW;wBACX,UAAU;wBACV,OAAO;wBACP,eAAe;wBACf,UAAU;qBACX,WACQ,CAAC,aAAa,EAAE,gBAAgB,EAAE,QAAQ,EAAE,SAAS,CAAC,iBAChD,iBAAiB,CAAC,IAAI,mBACpB,uBAAuB,CAAC,MAAM;iIAQ/C,SAAS;sBADR,KAAK;;;MEnBK,qBAAqB;;kHAArB,qBAAqB;mHAArB,qBAAqB,iBALjB,wBAAwB,aAC7B,YAAY,EAAE,WAAW,EAAE,gBAAgB,EAAC,aAAa,EAAC,aAAa,EAAC,YAAY,aACpF,wBAAwB;mHAGvB,qBAAqB,aAFrB,EAAE,YAFJ,CAAC,YAAY,EAAE,WAAW,EAAE,gBAAgB,EAAC,aAAa,EAAC,aAAa,EAAC,YAAY,CAAC;2FAIpF,qBAAqB;kBANjC,QAAQ;mBAAC;oBACR,YAAY,EAAE,CAAC,wBAAwB,CAAC;oBACxC,OAAO,EAAE,CAAC,YAAY,EAAE,WAAW,EAAE,gBAAgB,EAAC,aAAa,EAAC,aAAa,EAAC,YAAY,CAAC;oBAC/F,OAAO,EAAE,CAAC,wBAAwB,CAAC;oBACnC,SAAS,EAAE,EAAE;iBACd;;;MCFY,iBAAkB,SAAQ,yBAAyB;IAY9D,YAAY,UAAsB,EAAE,GAAsB;QACxD,KAAK,CAAC,UAAU,EAAE,GAAG,CAAC,CAAC;KACxB;IAED,mBAAmB,CAAC,CAAa;QAC/B,IAAI,IAAI,CAAC,QAAQ,IAAI,IAAI,CAAC,QAAQ,EAAE;YAClC,CAAC,CAAC,cAAc,EAAE,CAAC;YACnB,CAAC,CAAC,eAAe,EAAE,CAAC;SACrB;aAAK;YACJ,IAAI,CAAC,KAAK,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC;SAC1B;KACF;;8GAvBU,iBAAiB;kGAAjB,iBAAiB,giBCb9B,glBAaS;2FDAI,iBAAiB;kBAT7B,SAAS;+BACE,WAAW,UAEb,CAAC,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,MAAM,EAAE,UAAU,EAAE,UAAU,EAAE,GAAG,YAAY,CAAC,WACpF,CAAC,QAAQ,EAAE,SAAS,EAAE,GAAG,YAAY,CAAC,QACzC,EAAE,KAAK,EAAE,WAAW,EAAE,iBACb,iBAAiB,CAAC,IAAI,mBACpB,uBAAuB,CAAC,MAAM;iIAK/C,aAAa;sBADZ,KAAK;gBAIN,WAAW;sBADV,KAAK;gBAKN,OAAO;sBADN,KAAK;;;MEVK,cAAc;;2GAAd,cAAc;4GAAd,cAAc,iBALR,iBAAiB,aACtB,YAAY,EAAE,WAAW,EAAE,eAAe,aAC1C,iBAAiB;4GAGlB,cAAc,aAFZ,EAAE,YAFJ,CAAC,YAAY,EAAE,WAAW,EAAE,eAAe,CAAC;2FAI5C,cAAc;kBAN1B,QAAQ;mBAAC;oBACN,YAAY,EAAE,CAAC,iBAAiB,CAAC;oBACjC,OAAO,EAAE,CAAC,YAAY,EAAE,WAAW,EAAE,eAAe,CAAC;oBACrD,OAAO,EAAE,CAAC,iBAAiB,CAAC;oBAC5B,SAAS,EAAE,EAAE;iBAChB;;;MCOY,kBAAkB,GAAG,yBAAyB,CAAC,eAAe,EAAC;MAyB/D,kBAAmB,SAAQ,kBAAkB;IAEtD,YAAY,UAAsB,EAAE,GAAsB;QACtD,KAAK,CAAC,UAAU,EAAE,GAAG,CAAC,CAAC;QAmB3B,iBAAY,GAA0B,IAAI,YAAY,EAAW,CAAC;QAE1D,YAAO,GAAY,KAAK,CAAC;QAcjC,mBAAc,GAA0B,IAAI,YAAY,EAAW,CAAC;QAC5D,cAAS,GAAY,KAAK,CAAC;KAnClC;IAqBD,IACW,MAAM;QACb,OAAO,IAAI,CAAC,OAAO,CAAC;KACvB;IACD,IAAW,MAAM,CAAC,KAAc;QAC5B,IAAI,CAAC,UAAU,CAAC;YACZ,IAAI,EAAE,QAAQ;YACd,KAAK;SACR,CAAC,CAAC;KACN;IAMD,IACW,QAAQ;QACf,OAAO,IAAI,CAAC,SAAS,CAAC;KACzB;IACD,IAAW,QAAQ,CAAC,KAAc;QAC9B,IAAI,CAAC,UAAU,CAAC;YACZ,IAAI,EAAE,UAAU;YAChB,KAAK;SACR,CAAC,CAAC;KACN;IAIO,WAAW,CAAC,CAAa;QAC7B,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE;YAChB,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC;gBACd,SAAS,EAAE,IAAI;gBACf,WAAW,EAAE,IAAI,CAAC,eAAe,EAAE;gBACnC,WAAW,EAAE,CAAC;aACjB,CAAC,CAAA;SACL;KACJ;IAGD,gBAAgB,CAAC,MAAgC;QAC7C,MAAM,YAAY,GAAG,IAAI,CAAC,eAAe,EAAE,CAAC,SAAS,CAAC;QACtD,IAAI,MAAM,CAAC,IAAI,IAAI,UAAU,EAAE;YAC3B,MAAM,CAAC,QAAQ,GAAG,YAAY,CAAC,GAAG,CAAC,mBAAmB,CAAC,GAAG,YAAY,CAAC,MAAM,CAAC,mBAAmB,CAAC,CAAA;SACrG;QACD,IAAI,MAAM,CAAC,IAAI,IAAI,QAAQ,EAAE;YACzB,MAAM,CAAC,QAAQ,GAAG,YAAY,CAAC,GAAG,CAAC,iBAAiB,CAAC,GAAG,YAAY,CAAC,MAAM,CAAC,iBAAiB,CAAC,CAAA;SACjG;KACJ;;+GAxEQ,kBAAkB;mGAAlB,kBAAkB,ufArBjB;;;;;;;;;;;;;;;;;KAiBT;2FAIQ,kBAAkB;kBAvB9B,SAAS;mBAAC;oBACP,QAAQ,EAAE,aAAa;oBACvB,QAAQ,EAAE;;;;;;;;;;;;;;;;;KAiBT;oBACD,eAAe,EAAE,uBAAuB,CAAC,MAAM;oBAC/C,aAAa,EAAE,iBAAiB,CAAC,IAAI;iBACxC;iIAQG,IAAI;sBADH,KAAK;gBAKN,GAAG;sBADF,KAAK;gBAIN,QAAQ;sBADP,SAAS;uBAAC,SAAS;gBAKpB,cAAc;sBADb,YAAY;uBAAC,QAAQ,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE;gBAKxC,YAAY;sBADX,MAAM;gBAKI,MAAM;sBADhB,KAAK;gBAaN,cAAc;sBADb,MAAM;gBAII,QAAQ;sBADlB,KAAK;gBAaE,WAAW;sBADlB,YAAY;uBAAC,OAAO,EAAE,CAAC,QAAQ,CAAC;;;MC9ExB,eAAgB,SAAQ,eAAe;IAehD,YACI,UAAsB,EACtB,GAAsB;QAEtB,KAAK,CAAC,UAAU,EAAE,GAAG,CAAC,CAAC;QAb3B,cAAS,GAAY,KAAK,CAAC;QAG3B,aAAQ,GAAY,KAAK,CAAC;QAclB,uBAAkB,GAAY,KAAK,CAAC;QAkB5C,uBAAkB,GAAyC,IAAI,YAAY,EAA0B,CAAC;KArBrG;IAMD,IAAI,KAAK;QACL,OAAO,IAAI,CAAC,YAAY,CAAC,OAAO,EAAE,CAAC;KACtC;IAED,IAAI,aAAa;QACb,OAAO,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC,IAAI,CAAC,CAAC,MAAM,CAAC,CAAC;KAC9C;IAGD,IAAI,YAAY;QACZ,OAAO,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC,MAAM,CAAC,CAAC;KACzC;IAMD,gBAAgB;QACZ,MAAM,SAAS,GAAG,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,eAAe,EAAE,CAAC,SAAS,CAAC,CAAC;QAC/D,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,aAAa,EAAE,eAAe,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,EAAE;YACpE,IAAI,CAAC,eAAe,EAAE,CAAC,SAAS,CAAC,GAAG,CAAC,eAAe,CAAC,CAAC;SACzD;QACD,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC,UAAU,CAAC,UAAU,CAAC,CAAC,EAAE;YAChD,IAAI,CAAC,eAAe,EAAE,CAAC,SAAS,CAAC,GAAG,CAAC,iBAAiB,CAAC,CAAC;SAC3D;KACJ;IAED,UAAU;QACN,MAAM,QAAQ,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC,MAAM,CAAC,IAAI,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;QACjE,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;QACtB,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;YAChB,CAAC,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC;gBACjB,IAAI,CAAC,kBAAkB,GAAG,CAAC,CAAC,WAAW,EAAE,SAAS,CAAC;gBACnD,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;aAClB,CAAC,CAAA;SACL,CAAC,CAAC;KACN;IAED,MAAM,CAAC,GAAgC;QACnC,IAAI,OAAO,GAAuB,OAAO,GAAG,IAAI,QAAQ,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,GAAG,CAAC;;QAEjF,IAAI,CAAC,GAAG,IAAI,IAAI,CAAC,YAAY,IAAI,OAAO;YAAE,OAAO;;QAEjD,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,CAAC,MAAM,GAAG,KAAK,CAAC,CAAC;QAC1C,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC;QACtB,IAAI,IAAI,CAAC,OAAO,EAAE;YACd,IAAI,CAAC,OAAO,CAAC,MAAM,GAAG,OAAO,CAAC,QAAQ,CAAC;SAC1C;QACD,IAAI,CAAC,IAAI,CAAC,YAAY,EAAE,CAAC;QACzB,IAAI,CAAC,kBAAkB,CAAC,IAAI,CAAC;YACzB,SAAS,EAAE,IAAI;YACf,iBAAiB,EAAE,IAAI,CAAC,kBAAkB;YAC1C,GAAG,EAAE,OAAO;YACZ,KAAK,EAAE,IAAI,CAAC,aAAa;SAC5B,CAAC,CAAA;QACF,IAAI,CAAC,kBAAkB,GAAG,KAAK,CAAC;KACnC;;4GAlFQ,eAAe;gGAAf,eAAe,iNAEP,kBAAkB,oDAXzB;;;;;KAKT;2FAIQ,eAAe;kBAX3B,SAAS;mBAAC;oBACP,QAAQ,EAAE,SAAS;oBACnB,QAAQ,EAAE;;;;;KAKT;oBACD,eAAe,EAAE,uBAAuB,CAAC,MAAM;oBAC/C,aAAa,EAAE,iBAAiB,CAAC,IAAI;iBACxC;iIAIW,YAAY;sBADnB,eAAe;uBAAC,kBAAkB;gBAInC,SAAS;sBADR,KAAK;gBAIN,QAAQ;sBADP,KAAK;gBAKN,OAAO;sBADN,KAAK;gBA6BN,kBAAkB;sBADjB,MAAM;;;MCpDE,sBAAuB,SAAQ,OAAO;;;MCEtC,qBAAqB;IAEhC,YACU,iBAAmC;QAAnC,sBAAiB,GAAjB,iBAAiB,CAAkB;KAE5C;IAKD,IAAW,MAAM;QACf,OAAO,IAAI,CAAC,OAAO,CAAC;KACrB;IACD,IAAW,MAAM,CAAC,CAAmB;;QAEnC,IAAI,CAAC,EAAE;YACL,IAAI,CAAC,OAAO,GAAG,CAAC,CAAC;YACjB,IAAI,CAAC,iBAAiB,CAAC,KAAK,EAAE,CAAC;YAC/B,MAAM,OAAO,GAAG,IAAI,CAAC,iBAAiB,CAAC,kBAAkB,CAAC,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC;SACvE;KACF;;kHApBU,qBAAqB;sGAArB,qBAAqB;2FAArB,qBAAqB;kBALjC,SAAS;mBAAC;oBACT,QAAQ,EAAE,gBAAgB;oBAC1B,QAAQ,EAAE,cAAc;oBACxB,MAAM,EAAE,CAAC,sBAAsB,CAAC;iBACjC;;;ACED,MAAMA,WAAS,GAAG,CAAC,eAAe,EAAE,kBAAkB,EAAE,qBAAqB,CAAC,CAAC;AAC/E,MAAMC,SAAO,GAAG,CAAC,YAAY,EAAE,YAAY,EAAE,uBAAuB,CAAC,CAAC;MAQzD,YAAY;;yGAAZ,YAAY;0GAAZ,YAAY,iBATN,eAAe,EAAE,kBAAkB,EAAE,qBAAqB,aAC5D,YAAY,EAAE,YAAY,EAAE,uBAAuB,aADjD,eAAe,EAAE,kBAAkB,EAAE,qBAAqB;0GAShE,YAAY,aAFV,EAAE,YAFJ,CAAC,GAAGA,SAAO,CAAC;2FAIZ,YAAY;kBANxB,QAAQ;mBAAC;oBACN,YAAY,EAAE,CAAC,GAAGD,WAAS,CAAC;oBAC5B,OAAO,EAAE,CAAC,GAAGC,SAAO,CAAC;oBACrB,OAAO,EAAE,CAAC,GAAGD,WAAS,CAAC;oBACvB,SAAS,EAAE,EAAE;iBAChB;;;MCDY,mBAAoB,SAAQ,kBAAkB;;;;IAQvD,YAAY,UAAsB,EAAE,GAAsB;QACtD,KAAK,CAAC,UAAU,EAAE,GAAG,CAAC,CAAC;QAN3B,SAAI,GAAW,CAAC,CAAC;KAOhB;;gHAVQ,mBAAmB;oGAAnB,mBAAmB,ofCfhC,6iBAMA;2FDSa,mBAAmB;kBAT/B,SAAS;+BACI,aAAa,UAEf,CAAC,GAAG,kBAAkB,EAAE,GAAG,YAAY,EAAE,GAAG,cAAc,CAAC,WAC1D,CAAC,GAAG,kBAAkB,EAAE,GAAG,YAAY,EAAE,GAAG,cAAc,CAAC,iBACrD,iBAAiB,CAAC,IAAI,mBACpB,uBAAuB,CAAC,MAAM,QACzC,EAAE,KAAK,EAAE,uBAAuB,EAAE;iIAKxC,IAAI;sBADH,KAAK;;;MEJG,gBAAgB;;6GAAhB,gBAAgB;8GAAhB,gBAAgB,iBAPV,mBAAmB,aAE9B,YAAY;QACZ,WAAW,aAEL,mBAAmB;8GAEpB,gBAAgB,YANhB;YACL,YAAY;YACZ,WAAW;SACd;2FAGQ,gBAAgB;kBAR5B,QAAQ;mBAAC;oBACN,YAAY,EAAE,CAAC,mBAAmB,CAAC;oBACnC,OAAO,EAAE;wBACL,YAAY;wBACZ,WAAW;qBACd;oBACD,OAAO,EAAE,CAAC,mBAAmB,CAAC;iBACjC;;;MCOY,kBAAmB,SAAQ,kBAAkB;IAgEtD,YACI,UAAsB,EACd,GAAsB;QAE9B,KAAK,CAAC,UAAU,EAAE,GAAG,CAAC,CAAC;QAFf,QAAG,GAAH,GAAG,CAAmB;QA1ClC,iBAAY,GAAG,IAAI,YAAY,EAAU,CAAC;QAElC,YAAO,GAAmB,OAAO,CAAC;QAenC,sBAAiB,GAAyB,IAAI,YAAY,EAAU,CAAC;QACpE,iBAAY,GAAW,EAAE,CAAC;KA2BjC;IAjED,IACW,QAAQ;QACf,OAAO,IAAI,CAAC,SAAS,CAAC;KACzB;IACD,IAAW,QAAQ,CAAC,CAAO;QACvB,IAAI,CAAC,SAAS,GAAG,CAAC,CAAC;KACtB;IAGD,IACW,QAAQ;QACf,OAAO,IAAI,CAAC,SAAS,CAAC;KACzB;IACD,IAAW,QAAQ,CAAC,CAAO;QACvB,IAAI,CAAC,SAAS,GAAG,CAAC,CAAC;KACtB;IAQD,IACW,MAAM;QACb,OAAO,IAAI,CAAC,OAAO,CAAC;KACvB;IACD,IAAW,MAAM,CAAC,CAAiB;QAC/B,IAAI,CAAC,UAAU,CAAC;YACZ,IAAI,EAAE,QAAQ;YACd,KAAK,EAAE,CAAC;SACX,CAAC,CAAC;KACN;IAQD,IACW,WAAW;QAClB,OAAO,IAAI,CAAC,YAAY,CAAC;KAC5B;IAED,IAAW,WAAW,CAAC,CAAS;QAC5B,IAAI,CAAC,YAAY,GAAG,CAAC,CAAC;QACtB,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;KAClC;IAoBD,UAAU;QACN,KAAK,CAAC,UAAU,EAAE,CAAC;QACnB,IAAI,CAAC,WAAW,EAAE,CAAC;KACtB;IAED,eAAe,CAAC,QAAc,EAAE,QAAc;QAC1C,IAAI,CAAC,WAAW,EAAE,CAAC;QACnB,IAAI,CAAC,cAAc,EAAE,OAAO,EAAE,WAAW,EAAE,CAAC;QAC5C,IAAI,CAAC,cAAc,EAAE,OAAO,EAAE,aAAa,EAAE,CAAC;KACjD;IAGD,WAAW;QACP,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,KAAK,GAAG,UAAU,CAAC,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,GAAG,IAAI,CAAC;KAC7F;IAED,gBAAgB,CAAC,MAAgC;QAC7C,KAAK,CAAC,gBAAgB,CAAC,MAAM,CAAC,CAAC;QAC/B,IAAI,CAAC,WAAW,EAAE,CAAC;KACtB;IAEO,WAAW;QACf,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE;YAChB,IAAI,CAAC,QAAQ,GAAG,KAAK,CAAC,UAAU,CAAC;gBAC7B,IAAI,EAAE,IAAI,CAAC,MAAM;gBACjB,IAAI,EAAE,KAAK;gBACX,MAAM,EAAE;oBACJ,EAAE,EAAE;wBACA,IAAI,EAAE,KAAK,CAAC,WAAW;wBACvB,IAAI,EAAE,CAAC;wBACP,EAAE,EAAE,EAAE;wBACN,SAAS,EAAE,CAAC;wBACZ,eAAe,EAAE,GAAG;wBACpB,OAAO,EAAE,KAAK;qBACjB;oBACD,EAAE,EAAE;wBACA,IAAI,EAAE,KAAK,CAAC,WAAW;wBACvB,IAAI,EAAE,CAAC;wBACP,EAAE,EAAE,EAAE;wBACN,SAAS,EAAE,CAAC;wBACZ,eAAe,EAAE,GAAG;wBACpB,OAAO,EAAE,KAAK;qBACjB;oBACD,EAAE,EAAE;wBACA,IAAI,EAAE,KAAK,CAAC,WAAW;wBACvB,IAAI,EAAE,CAAC;wBACP,EAAE,EAAE,EAAE;wBACN,SAAS,EAAE,CAAC;wBACZ,eAAe,EAAE,GAAG;wBACpB,OAAO,EAAE,KAAK;qBACjB;iBACJ;aACJ,CAAC,CAAC;SACN;aACI;YACD,IAAI,CAAC,QAAQ,CAAC,aAAa,CAAC;gBACxB,IAAI,EAAE,IAAI,CAAC,MAAM;aACpB,CAAC,CAAC;SACN;QACD,IAAI,CAAC,cAAc,EAAE,OAAO,EAAE,WAAW,EAAE,CAAC;QAC5C,IAAI,CAAC,cAAc,EAAE,OAAO,EAAE,aAAa,EAAE,CAAC;KACjD;IAED,qBAAqB,CAAC,CAAgB;QAElC,MAAM,MAAM,GAAG;YACX,CAAC,CAAC,cAAc,EAAE,CAAC;YACnB,CAAC,CAAC,eAAe,EAAE,CAAC;SACvB,CAAC;QAEF,MAAM,IAAI,GAAa,KAAK,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC,QAAQ,EAAE,CAAC,CAAC;QACrE,MAAM,KAAK,GAAa,CAAC,WAAW,EAAE,WAAW,EAAE,SAAS,EAAE,YAAY,EAAE,WAAW,EAAE,KAAK,EAAE,OAAO,CAAC,CAAC;QACzG,MAAM,KAAK,GAAI,CAAC,CAAC,MAA2B,CAAC;QAC7C,MAAM,GAAG,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC;QACpB,MAAM,MAAM,GAAG,KAAK,CAAC,KAAK,CAAC;QAC3B,MAAM,MAAM,GAAG,KAAK,CAAC,cAAc,CAAC;QACpC,MAAM,IAAI,GAAG,KAAK,CAAC,YAAY,CAAC;QAChC,MAAM,OAAO,GAAG,IAAI,UAAU,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;;QAE3C,MAAM,EAAE,GAAG,gBAAgB,CAAC;QAC5B,MAAM,KAAK,GAAG,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,CAAC;QACnD,MAAM,IAAI,GAAG,MAAM,CAAC,SAAS,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC;QAC5C,MAAM,IAAI,GAAG,KAAK,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC,KAAK,IAAI,MAAM,CAAC,CAAC;QAChD,MAAM,IAAI,GAAG,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,CAAC;QAC1D,MAAM,IAAI,GAAG,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC,EAAE,MAAM,CAAC,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,CAAC;;;QAIlE,MAAM,MAAM,GAAG;YACX,IAAI,CAAC,cAAc,CAAC,KAAK,GAAG,IAAI,IAAI,IAAI,CAAC,CAAC,CAAC,EAAE,KAAK,IAAI,CAAC,CAAC,EAAE,CAAC;SAC9D,CAAA;QACD,MAAM,MAAM,GAAG;YACX,IAAI,CAAC,cAAc,CAAC,KAAK,GAAG,IAAI,CAAC,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC;SAC9D,CAAA;;QAGD,IAAI,CAAC,CAAC,GAAG,KAAK,YAAY,IAAI,CAAC,CAAC,GAAG,KAAK,WAAW,EAAE;YACjD,MAAM,EAAE,CAAC;YACT,CAAC,CAAC,GAAG,KAAK,YAAY,GAAG,MAAM,EAAE,GAAG,MAAM,EAAE,CAAC;SAChD;aACI,IAAI,CAAC,CAAC,GAAG,KAAK,SAAS,IAAI,CAAC,CAAC,GAAG,KAAK,WAAW,EAAE;YACnD,IAAI,CAAC,CAAC,OAAO,IAAI,CAAC,CAAC,GAAG,KAAK,WAAW,EAAE;;aAEvC;iBACI;gBACD,MAAM,IAAI,GAAG,CAAC,CAAC,GAAG,KAAK,SAAS,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;gBAC3C,IAAI,IAAI,EAAE;oBACN,QAAQ,IAAI,CAAC,CAAC,CAAC;wBACX,KAAK,IAAI,CAAC;wBACV,KAAK,GAAG,CAAC;wBACT,KAAK,IAAI,CAAC;wBACV,KAAK,GAAG;4BACJ,IAAI,CAAC,KAAK,GAAG,OAAO,CAAC,GAAG,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC,IAAI,CAAC;4BAC5C,MAAM;wBACV,KAAK,IAAI;4BACL,IAAI,CAAC,KAAK,GAAG,OAAO,CAAC,GAAG,CAAC,QAAQ,EAAE,IAAI,CAAC,CAAC,IAAI,CAAC;4BAC9C,MAAM;wBACV,KAAK,IAAI,CAAC;wBACV,KAAK,IAAI;4BACL,IAAI,CAAC,KAAK,GAAG,OAAO,CAAC,GAAG,CAAC,QAAQ,EAAE,IAAI,CAAC,CAAC,IAAI,CAAC;4BAC9C,MAAM;qBACb;oBACD,UAAU,CAAC;wBACP,IAAI,CAAC,cAAc,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC;qBACtC,EAAE,IAAI,CAAC,GAAG,CAAC,EAAE,EAAE,IAAI,CAAC,YAAY,CAAC,CAAC,CAAC;iBACvC;aACJ;YACD,MAAM,EAAE,CAAC;SACZ;aACI,IAAI,CAAC,CAAC,GAAG,IAAI,WAAW,EAAE;;;;;SAK9B;aACI,IAAI,CAAC,CAAC,GAAG,IAAI,KAAK,EAAE;YACrB,IAAI,IAAI,GAAG,MAAM,CAAC,MAAM,IAAI,CAAC,CAAC,CAAC,QAAQ,EAAE;gBACrC,MAAM,EAAE,CAAC;gBACT,MAAM,EAAE,CAAC;aACZ;iBACI,IAAI,MAAM,IAAI,CAAC,IAAI,CAAC,CAAC,QAAQ,EAAE;gBAChC,MAAM,EAAE,CAAC;gBACT,MAAM,EAAE,CAAC;aACZ;SACJ;aACI;;;;;;;;;;;;;;;;;;;;;;;;;;SA6BJ;;KAEJ;IAGD,iBAAiB,CAAC,CAAgB;;;;;KAKjC;IAED,iBAAiB,CAAC,CAAa;QAC3B,MAAM,KAAK,GAAI,CAAC,CAAC,MAA2B,CAAC;QAC7C,IAAI,CAAC,cAAc,CAAC,KAAK,CAAC,CAAC;QAC3B,KAAK,CAAC,iBAAiB,CAAC,CAAC,CAAC,CAAC;KAC9B;IAGD,wBAAwB,CAAC,CAAa;QAClC,MAAM,KAAK,GAAI,CAAC,CAAC,MAA2B,CAAC;QAC7C,IAAI,CAAC,cAAc,CAAC,KAAK,CAAC,CAAC;QAC3B,CAAC,CAAC,cAAc,EAAE,CAAC;QACnB,CAAC,CAAC,eAAe,EAAE,CAAC;KACvB;IAGO,cAAc,CAAC,KAAuB,EAAE,GAAY;QACxD,MAAM,EAAE,KAAK,EAAE,GAAG,EAAE,GAAG,YAAY,CAAC,uBAAuB,CAAC,KAAK,CAAC,KAAK,EAAE,GAAG,IAAI,IAAI,GAAG,GAAG,GAAG,KAAK,CAAC,cAAc,CAAC,CAAC;QACnH,KAAK,CAAC,iBAAiB,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC;KACvC;;+GApRQ,kBAAkB;mGAAlB,kBAAkB,wrBA4DhB,cAAc,uEC/E7B,gvBAea;2FDIA,kBAAkB;kBAT9B,SAAS;+BACI,aAAa,UAEf,CAAC,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,MAAM,EAAE,OAAO,EAAE,GAAG,cAAc,CAAC,WACvE,CAAC,aAAa,EAAE,gBAAgB,EAAE,QAAQ,EAAE,SAAS,EAAE,GAAG,cAAc,CAAC,mBACjE,uBAAuB,CAAC,MAAM,iBAChC,iBAAiB,CAAC,IAAI,QAC/B,EAAE,KAAK,EAAE,kCAAkC,EAAE;iIAOxC,QAAQ;sBADlB,KAAK;gBAUK,QAAQ;sBADlB,KAAK;gBAWN,YAAY;sBADX,MAAM;gBAKI,MAAM;sBADhB,KAAK;gBAcC,iBAAiB;sBADvB,MAAM;gBAKI,WAAW;sBADrB,KAAK;gBAiBE,cAAc;sBADrB,SAAS;uBAAC,cAAc;;;AExE7B,MAAMA,WAAS,GAAG,CAAC,kBAAkB,CAAC,CAAC;AACvC,MAAMC,SAAO,GAAG;IACZ,YAAY;IACZ,WAAW;IACX,cAAc;IACd,WAAW;CACd,CAAC;MAQW,eAAe;;4GAAf,eAAe;6GAAf,eAAe,iBAdT,kBAAkB,aAEjC,YAAY;QACZ,WAAW;QACX,cAAc;QACd,WAAW,aALI,kBAAkB;6GAcxB,eAAe,aAFb,EAAE,YAFJ,CAAC,GAAGA,SAAO,CAAC;2FAIZ,eAAe;kBAN3B,QAAQ;mBAAC;oBACN,YAAY,EAAE,CAAC,GAAGD,WAAS,CAAC;oBAC5B,OAAO,EAAE,CAAC,GAAGC,SAAO,CAAC;oBACrB,OAAO,EAAE,CAAC,GAAGD,WAAS,CAAC;oBACvB,SAAS,EAAE,EAAE;iBAChB;;;MCRY,gBAAiB,SAAQ,oBAAoB;IAOtD,YAAY,UAAsB,EAAE,GAAsB;QACtD,KAAK,CAAC,UAAU,EAAE,GAAG,CAAC,CAAC;QAL3B,gBAAW,GAAW,GAAG,CAAC;KAMzB;IAED,MAAM;QACF,IAAI,CAAC,eAAe,EAAE,CAAC,SAAS,CAAC,GAAG,CAAC,MAAM,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC,CAAC;QAChE,IAAI,IAAI,CAAC,OAAO,CAAC,OAAO,EAAE;YACtB,UAAU,CAAC;gBACP,IAAI,CAAC,KAAK,EAAE,CAAC;aAChB,EAAE,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;SAC5B;QACD,QAAQ,IAAI,CAAC,OAAO,CAAC,IAAI;YACrB,KAAK,SAAS;gBACV,IAAI,CAAC,KAAK,GAAG,0BAA0B,CAAC;gBACxC,MAAM;YACV,KAAK,SAAS;gBACV,IAAI,CAAC,KAAK,GAAG,4BAA4B,CAAC;gBAC1C,MAAM;YACV,KAAK,QAAQ;gBACT,IAAI,CAAC,KAAK,GAAG,0BAA0B,CAAC;gBACxC,MAAM;YACV;gBACI,IAAI,CAAC,KAAK,GAAG,yBAAyB,CAAC;gBACvC,MAAM;SACb;KACJ;IAED,kBAAkB,CAAC,MAAoB;QACnC,IAAI,MAAM,CAAC,OAAO,EAAE;YAChB,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;SACxB;KACJ;;6GAtCQ,gBAAgB;iGAAhB,gBAAgB,6GCZ7B,ukBAWM;2FDCO,gBAAgB;kBAP5B,SAAS;+BACI,UAAU,mBAEH,uBAAuB,CAAC,MAAM,iBAChC,iBAAiB,CAAC,IAAI,QAC/B,EAAE,KAAK,EAAE,UAAU,EAAE;;;AEL/B,MAAMA,WAAS,GAAG,CAAC,gBAAgB,CAAC,CAAC;AACrC,MAAMC,SAAO,GAAG,CAAC,YAAY,EAAE,cAAc,CAAC,CAAC;MAQlC,aAAa;;0GAAb,aAAa;2GAAb,aAAa,iBATP,gBAAgB,aAClB,YAAY,EAAE,cAAc,aAD1B,gBAAgB;2GAStB,aAAa,aAFX,EAAE,YAFJ,CAAC,GAAGA,SAAO,CAAC;2FAIZ,aAAa;kBANzB,QAAQ;mBAAC;oBACN,YAAY,EAAE,CAAC,GAAGD,WAAS,CAAC;oBAC5B,OAAO,EAAE,CAAC,GAAGC,SAAO,CAAC;oBACrB,OAAO,EAAE,CAAC,GAAGD,WAAS,CAAC;oBACvB,SAAS,EAAE,EAAE;iBAChB;;;MCJY,cAAc;IAEvB,YAAoB,cAAuB,EAAU,cAAwB;QAAzD,mBAAc,GAAd,cAAc,CAAS;QAAU,mBAAc,GAAd,cAAc,CAAU;QAErE,gBAAW,GAAuB,EAAE,CAAC;KAFqC;IAIlF,IAAI,CAAC,OAAe;QAChB,IAAI,CAAC,IAAI,CAAC;YACN,OAAO,EAAE,IAAI;YACb,IAAI,EAAE,MAAM;YACZ,KAAK,EAAE,OAAO;SACjB,CAAC,CAAC;KACN;IAED,OAAO,CAAC,OAAe;QACnB,IAAI,CAAC,IAAI,CAAC;YACN,OAAO,EAAE,IAAI;YACb,IAAI,EAAE,SAAS;YACf,KAAK,EAAE,OAAO;SACjB,CAAC,CAAC;KACN;IAED,OAAO,CAAC,OAAe;QACnB,IAAI,CAAC,IAAI,CAAC;YACN,OAAO,EAAE,IAAI;YACb,IAAI,EAAE,SAAS;YACf,KAAK,EAAE,OAAO;SACjB,CAAC,CAAC;KACN;IAED,MAAM,CAAC,OAAe;QAClB,IAAI,CAAC,IAAI,CAAC;YACN,OAAO,EAAE,IAAI;YACb,IAAI,EAAE,QAAQ;YACd,KAAK,EAAE,OAAO;SACjB,CAAC,CAAC;KACN;IAED,IAAI,CAAC,OAAuB;QACxB,MAAM,GAAG,GAAG,MAAM,CAAC,MAAM,CACrB;YACI,SAAS,EAAE,IAAI;YACf,QAAQ,EAAE,eAAe;SAC5B,EACD,OAAO,CACV,CAAC;QACF,MAAM,OAAO,GAAG,CAAC,CAAC;QAElB,IAAI,gBAAgB,GAAG,IAAI,CAAC,cAAc,CAAC,QAAQ,EAAE,CAAC,MAAM,EAAE,CAAC;QAC/D,MAAM,GAAG,GAAG,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,QAAQ,CAAC,GAAG,OAAO,GAAG,IAAI,CAAC;QAC5D,QAAQ,GAAG,CAAC,QAAQ;YAChB,KAAK,eAAe;gBAChB,gBAAgB,GAAG,gBAAgB,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,kBAAkB,EAAE,CAAA;gBACpE,MAAM;YACV,KAAK,YAAY;gBACb,gBAAgB,GAAG,gBAAgB,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,GAAG,IAAI,CAAC,CAAC;gBACtE,MAAM;YACV,KAAK,cAAc;gBACf,gBAAgB,GAAG,gBAAgB,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC,CAAC;gBACrE,MAAM;YACV,KAAK,YAAY;gBACb,gBAAgB,GAAG,gBAAgB,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,kBAAkB,EAAE,CAAA;gBACjE,MAAM;YACV,KAAK,SAAS;gBACV,gBAAgB,GAAG,gBAAgB,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,GAAG,IAAI,CAAC,CAAC;gBACnE,MAAM;YACV,KAAK,WAAW;gBACZ,gBAAgB,GAAG,gBAAgB,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC,CAAC;gBAClE,MAAM;YACV;gBACI,MAAM;SACb;QACD,MAAM,UAAU,GAAG,IAAI,CAAC,cAAc,CAAC,MAAM,CACzC;YACI,gBAAgB;YAChB,UAAU,EAAE,CAAC,qBAAqB,EAAE,mBAAmB,EAAE,mBAAmB,CAAC;SAChF,CAAC,CAAC;QACP,MAAM,WAAW,GAAG,IAAI,eAAe,CAAC,gBAAgB,EAAE,IAAI,EAAE,IAAI,CAAC,cAAc,CAAC,CAAC;QAErF,MAAM,IAAI,GAAG,UAAU,CAAC,MAAM,CAAC,WAAW,CAAC,CAAC;QAC3C,IAAI,CAAC,QAAgB,CAAC,YAAY,GAAG,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC;QAC9D,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;QACrC,IAAI,IAAI,CAAC,QAAQ,EAAE;YACf,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,QAAQ,EAAE;gBACzB,OAAO,EAAE,GAAG;gBACZ,KAAK,EAAE;oBACH,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,IAAI,IAAI,CAAC,QAAQ,CAAC,CAAC;oBACpE,UAAU,CAAC,OAAO,EAAE,CAAA;iBACvB;aACJ,CAAC,CAAC;YACH,UAAU,CAAC;gBACP,IAAI,CAAC,iBAAiB,CAAC,aAAa,EAAE,CAAC;aAC1C,EAAE,CAAC,CAAC,CAAC;SACT;QAED,OAAO;YACH,KAAK,EAAE;gBACH,IAAI,CAAC,QAAQ,CAAC,KAAK,EAAE,CAAC;aACzB;SACJ,CAAA;KACJ;IAEO,WAAW,CAAC,QAAgB;QAChC,MAAM,IAAI,GAAG,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,CAAC,OAAO,CAAC,QAAQ,IAAI,QAAQ,CAAC,CAAC;QAC1E,IAAI,IAAI,CAAC,MAAM,IAAI,CAAC;YAAE,OAAO,CAAC,CAAC;QAC/B,IAAI,QAAQ,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,QAAQ,EAAE;YACpC,OAAO,MAAM,CAAC,WAAW,GAAG,IAAI,CAAC,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,eAAe,EAAE,CAAC,SAAS,CAAC;SACjF;aACI;YACD,OAAO,IAAI,CAAC,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,eAAe,EAAE,CAAC,SAAS,GAAG,IAAI,CAAC,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,eAAe,EAAE,CAAC,YAAY,CAAC;SACnH;KACJ;;2GA/GQ,cAAc;+GAAd,cAAc,cADD,MAAM;2FACnB,cAAc;kBAD1B,UAAU;mBAAC,EAAE,UAAU,EAAE,MAAM,EAAE;;;MCmBrB,kBAAmB,SAAQ,oBAAoB;IAC1D,YAAY,UAAsB,EAAE,GAAsB;QACxD,KAAK,CAAC,UAAU,EAAE,GAAG,CAAC,CAAC;QAGzB,SAAI,GAAW,MAAM,CAAC;QAEb,aAAQ,GAAG,KAAK,CAAC;KAJzB;;+GAHU,kBAAkB;mGAAlB,kBAAkB,iKC3B/B,+MAKM,cDYQ;QACV,OAAO,CAAC,SAAS,EAAE;YACjB,UAAU,CAAC,QAAQ,EAAE;gBACnB,KAAK,CAAC,EAAE,OAAO,EAAE,CAAC,EAAE,CAAC;gBACrB,OAAO,CAAC,EAAE,EAAE,KAAK,CAAC,EAAE,OAAO,EAAE,CAAC,EAAE,CAAC,CAAC;aACnC,CAAC;YACF,UAAU,CAAC,QAAQ,EAAE,CAAC,OAAO,CAAC,EAAE,EAAE,KAAK,CAAC,EAAE,OAAO,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;SAC3D,CAAC;KACH;2FAEU,kBAAkB;kBAhB9B,SAAS;+BACE,YAAY,mBAEL,uBAAuB,CAAC,MAAM,iBAChC,iBAAiB,CAAC,IAAI,QAC/B,EAAE,KAAK,EAAE,YAAY,EAAE,cACjB;wBACV,OAAO,CAAC,SAAS,EAAE;4BACjB,UAAU,CAAC,QAAQ,EAAE;gCACnB,KAAK,CAAC,EAAE,OAAO,EAAE,CAAC,EAAE,CAAC;gCACrB,OAAO,CAAC,EAAE,EAAE,KAAK,CAAC,EAAE,OAAO,EAAE,CAAC,EAAE,CAAC,CAAC;6BACnC,CAAC;4BACF,UAAU,CAAC,QAAQ,EAAE,CAAC,OAAO,CAAC,EAAE,EAAE,KAAK,CAAC,EAAE,OAAO,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;yBAC3D,CAAC;qBACH;iIAOD,IAAI;sBADH,KAAK;gBAGG,QAAQ;sBAAhB,KAAK;;;MEjBK,kBAAkB;IAQ7B,YACU,OAAgB,EAChB,sBAA8C,EAC9C,UAAsB;QAFtB,YAAO,GAAP,OAAO,CAAS;QAChB,2BAAsB,GAAtB,sBAAsB,CAAwB;QAC9C,eAAU,GAAV,UAAU,CAAY;QAVZ,SAAI,GAAG,EAAE,CAAC;QACH,aAAQ,GAAG,KAAK,CAAC;KAUxC;IAEJ,QAAQ;QACN,QAAQ,IAAI,CAAC,QAAQ;YACnB,QAAQ;YACR,KAAK,KAAK;gBACR,IAAI,CAAC,SAAS,GAAG;oBACf,OAAO,EAAE,QAAQ;oBACjB,OAAO,EAAE,KAAK;oBACd,QAAQ,EAAE,QAAQ;oBAClB,QAAQ,EAAE,QAAQ;oBAClB,OAAO,EAAE,CAAC,CAAC;iBACZ,CAAC;gBACF,MAAM;YACR,KAAK,OAAO;gBACV,IAAI,CAAC,SAAS,GAAG;oBACf,OAAO,EAAE,KAAK;oBACd,OAAO,EAAE,QAAQ;oBACjB,QAAQ,EAAE,OAAO;oBACjB,QAAQ,EAAE,QAAQ;oBAClB,OAAO,EAAE,CAAC;iBACX,CAAC;gBACF,MAAM;YACR,KAAK,QAAQ;gBACX,IAAI,CAAC,SAAS,GAAG;oBACf,OAAO,EAAE,QAAQ;oBACjB,OAAO,EAAE,QAAQ;oBACjB,QAAQ,EAAE,QAAQ;oBAClB,QAAQ,EAAE,KAAK;oBACf,OAAO,EAAE,CAAC;iBACX,CAAC;gBACF,MAAM;YACR,KAAK,MAAM;gBACT,IAAI,CAAC,SAAS,GAAG;oBACf,OAAO,EAAE,OAAO;oBAChB,OAAO,EAAE,QAAQ;oBACjB,QAAQ,EAAE,KAAK;oBACf,QAAQ,EAAE,QAAQ;oBAClB,OAAO,EAAE,CAAC,CAAC;iBACZ,CAAC;gBACF,MAAM;SACT;QACD,MAAM,gBAAgB,GAAG,IAAI,CAAC,sBAAsB;aACjD,mBAAmB,CAAC,IAAI,CAAC,UAAU,CAAC;aACpC,aAAa,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC;QAEnC,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE,gBAAgB,EAAE,CAAC,CAAC;KAC7D;IAGD,IAAI;QACF,MAAM,UAAU,GAAqC,IAAI,CAAC,UAAU,CAAC,MAAM,CACzE,IAAI,eAAe,CAAC,kBAAkB,CAAC,CACxC,CAAC;QAEF,UAAU,CAAC,QAAQ,CAAC,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC;QACrC,UAAU,CAAC,QAAQ,CAAC,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC;KAC9C;IAGD,IAAI;QACF,IAAI,CAAC,UAAU,CAAC,MAAM,EAAE,CAAC;KAC1B;;+GA1EU,kBAAkB;mGAAlB,kBAAkB;2FAAlB,kBAAkB;kBAD9B,SAAS;mBAAC,EAAE,QAAQ,EAAE,aAAa,EAAE;gKAEhB,IAAI;sBAAvB,KAAK;uBAAC,WAAW;gBACS,QAAQ;sBAAlC,KAAK;uBAAC,kBAAkB;gBA4DzB,IAAI;sBADH,YAAY;uBAAC,YAAY;gBAW1B,IAAI;sBADH,YAAY;uBAAC,UAAU;;;AClF1B,MAAM,SAAS,GAAG,CAAC,kBAAkB,EAAE,kBAAkB,CAAC,CAAC;AAC3D,MAAM,OAAO,GAAG,CAAC,YAAY,EAAE,aAAa,CAAC,CAAC;MAQjC,eAAe;;4GAAf,eAAe;6GAAf,eAAe,iBATT,kBAAkB,EAAE,kBAAkB,aACxC,YAAY,EAAE,aAAa,aADzB,kBAAkB,EAAE,kBAAkB;6GAS5C,eAAe,aAFf,EAAE,YAFJ,CAAC,GAAG,OAAO,CAAC;2FAIV,eAAe;kBAN3B,QAAQ;mBAAC;oBACR,YAAY,EAAE,CAAC,GAAG,SAAS,CAAC;oBAC5B,OAAO,EAAE,CAAC,GAAG,OAAO,CAAC;oBACrB,OAAO,EAAE,CAAC,GAAG,SAAS,CAAC;oBACvB,SAAS,EAAE,EAAE;iBACd;;;MCNY,mBAAmB;IAC5B;QAKA,cAAS,GAA4B,KAAK,CAAC;QAEpC,SAAI,GAAG;YACV;gBACI,KAAK,EAAE,WAAW;gBAClB,QAAQ,EAAE,EAAE;aACf;YACD;gBACI,KAAK,EAAE,mBAAmB;gBAC1B,QAAQ,EAAE;oBACN;wBACI,KAAK,EAAE,yBAAyB;wBAChC,QAAQ,EAAE,EAAE;qBACf;oBACD;wBACI,KAAK,EAAE,aAAa;wBACpB,QAAQ,EAAE;4BACN;gCACI,KAAK,EAAE,oBAAoB;gCAC3B,QAAQ,EAAE,EAAE;6BACf;4BACD;gCACI,KAAK,EAAE,4BAA4B;gCACnC,QAAQ,EAAE,EAAE;6BACf;4BACD;gCACI,KAAK,EAAE,QAAQ;gCACf,QAAQ,EAAE;oCACN;wCACI,KAAK,EAAE,OAAO;wCACd,QAAQ,EAAE,EAAE;qCACf;oCACD;wCACI,KAAK,EAAE,eAAe;wCACtB,QAAQ,EAAE,EAAE;qCACf;iCACJ;6BACJ;4BACD;gCACI,KAAK,EAAE,gBAAgB;gCACvB,QAAQ,EAAE;oCACN;wCACI,KAAK,EAAE,OAAO;wCACd,QAAQ,EAAE,EAAE;qCACf;iCACJ;6BACJ;yBACJ;qBACJ;oBACD;wBACI,KAAK,EAAE,qBAAqB;wBAC5B,QAAQ,EAAE;4BACN;gCACI,KAAK,EAAE,QAAQ;gCACf,QAAQ,EAAE;oCACN;wCACI,KAAK,EAAE,OAAO;wCACd,QAAQ,EAAE,EAAE;qCACf;oCACD;wCACI,KAAK,EAAE,eAAe;wCACtB,QAAQ,EAAE,EAAE;qCACf;oCACD;wCACI,KAAK,EAAE,eAAe;wCACtB,QAAQ,EAAE,EAAE;qCACf;oCACD;wCACI,KAAK,EAAE,aAAa;wCACpB,QAAQ,EAAE;4CACN;gDACI,KAAK,EAAE,UAAU;gDACjB,QAAQ,EAAE,EAAE;6CACf;yCACJ;qCACJ;iCACJ;6BACJ;yBACJ;qBACJ;iBACJ;aACJ;SACJ,CAAC;KAvFe;IAEjB,QAAQ,MAAY;;gHAHX,mBAAmB;oGAAnB,mBAAmB,kICRhC,mlBAcO;2FDNM,mBAAmB;kBAN/B,SAAS;+BACI,cAAc,iBAET,iBAAiB,CAAC,IAAI,QAC/B,EAAE,KAAK,EAAE,cAAc,EAAE;0EAQ/B,SAAS;sBADR,KAAK;;;MEFG,gBAAgB;;6GAAhB,gBAAgB;8GAAhB,gBAAgB,iBALV,mBAAmB,aACxB,YAAY,EAAE,gBAAgB,aAC9B,mBAAmB;8GAGpB,gBAAgB,aAFd,EAAE,YAFJ,CAAC,YAAY,EAAE,gBAAgB,CAAC;2FAIhC,gBAAgB;kBAN5B,QAAQ;mBAAC;oBACN,YAAY,EAAE,CAAC,mBAAmB,CAAC;oBACnC,OAAO,EAAE,CAAC,YAAY,EAAE,gBAAgB,CAAC;oBACzC,OAAO,EAAE,CAAC,mBAAmB,CAAC;oBAC9B,SAAS,EAAE,EAAE;iBAChB;;;ACJD;MACa,iBAAiB;IAGrB,OAAO,OAAO,CAAC,IAAY,EAAE,IAAsB;QACxD,MAAM,MAAM,GAAG,iBAAiB,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;QAC3C,IAAI,MAAM,EAAE;YACV,MAAM,CAAC,IAAI,GAAG,IAAI,CAAC;SACpB;aACI;YACH,iBAAiB,CAAC,cAAc,CAAC,IAAI,CAAC;gBACpC,IAAI;gBACJ,IAAI;aACL,CAAC,CAAC;SACJ;KACF;IAEM,OAAO,GAAG,CAAC,IAAY;QAC5B,OAAO,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,KAAK,IAAI,CAAC,CAAC;KACvD;;AAjBc,gCAAc,GAA+C,EAAE,CAAC;MA2BpE,yBAA0B,SAAQ,oBAAoB;IAiBjE,YAAY,UAAsB,EAAE,GAAsB;QACxD,KAAK,CAAC,UAAU,EAAE,GAAG,CAAC,CAAC;QAfzB,SAAI,GAA0B,UAAU,CAAC;QAMzC,gBAAW,GAAY,IAAI,CAAC;QAM5B,YAAO,GAAY,IAAI,CAAC;KAIvB;IAED,MAAM;QACH,IAAI,CAAC,eAAe,EAAU,CAAC,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;KACrE;IAED,QAAQ,CAAC,KAAU;QACjB,IAAI,IAAI,CAAC,OAAO,KAAK,KAAK,EAAE;YAC1B,OAAO,OAAO,CAAC,OAAO,CAAC,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC;SAC1C;QACD,MAAM,OAAO,GAAG,iBAAiB,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACjD,IAAI,OAAO,EAAE;YACX,OAAO,IAAI,CAAC,iBAAiB,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,EAAE,KAAK,EAAE,IAAI,CAAC,OAAO,IAAI,OAAO,CAAC,IAAI,CAAC,OAAO,EAAE,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;SACnH;aACI;YACH,OAAO,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC,IAAI,EAAE,KAAK,EAAE,IAAI,CAAC,OAAO,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC;SAC3E;KACF;IAGO,iBAAiB,CAAC,IAAY,EAAE,KAAW,EAAE,OAAgB,EAAE,SAAe;QACpF,OAAO,IAAI,OAAO,CAAyB,OAAO;YAChD,QAAQ,IAAI;gBACV,KAAK,UAAU;oBACb,OAAO,CAAC;wBACN,OAAO,EAAE,IAAI,CAAC,WAAW,IAAI,OAAO,IAAI,YAAY,CAAC,GAAG,CAAC,8BAA8B,CAAC,IAAI,IAAI;wBAChG,MAAM,EAAE,KAAK,IAAI,IAAI,IAAI,KAAK,IAAI,EAAE,KAAK,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,KAAK,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,IAAI,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;qBAC9G,CAAC,CAAC;oBACH,MAAM;gBACR,KAAK,OAAO;oBACV,MAAM,EAAE,GAAG,IAAI,MAAM,CAAC,SAAS,CAAC,CAAC;oBACjC,OAAO,CAAC;wBACN,OAAO,EAAE,IAAI,CAAC,WAAW,IAAI,OAAO,IAAI,YAAY,CAAC,GAAG,CAAC,2BAA2B,CAAC,IAAI,IAAI;wBAC7F,MAAM,EAAE,EAAE,CAAC,IAAI,CAAC,KAAK,CAAC;qBACvB,CAAC,CAAC;oBACH,MAAM;gBACR,KAAK,QAAQ,CAAC;gBACd,KAAK,UAAU;oBACb,IAAI,OAAO,SAAS,KAAK,UAAU,EAAE;wBACnC,MAAM,GAAG,GAAQ,EAAE,CAAC;wBACpB,GAAG,CAAC,OAAO,GAAG,IAAI,CAAC,WAAW,GAAG,OAAO,GAAG,IAAI,CAAC;wBAChD,MAAM,GAAG,GAAG,SAAS,CAAC,EAAE,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC;wBAC1C,IAAI,GAAG,YAAY,OAAO,EAAE;4BAC1B,GAAG,CAAC,IAAI,CAAC,CAAC;gCACR,GAAG,CAAC,MAAM,GAAG,CAAC,CAAC;6BAChB,CAAC,CAAC,KAAK,CAAC,CAAC;gCACR,GAAG,CAAC,MAAM,GAAG,KAAK,CAAC;6BACpB,CAAC,CAAC,OAAO,CAAC;gCACT,OAAO,CAAC,GAAG,CAAC,CAAC;6BACd,CAAC,CAAC;yBACJ;6BACI;4BACH,GAAG,CAAC,MAAM,GAAG,GAAG,CAAC;4BACjB,OAAO,CAAC,GAAG,CAAC,CAAC;yBACd;qBACF;yBACI;wBACH,OAAO,CAAC,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC;qBAC3B;oBACD,MAAM;gBACR;oBACE,OAAO,CAAC,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC;aAC7B;SACF,CAAC,CAAC;KACJ;;sHAnFU,yBAAyB;0GAAzB,yBAAyB,+LAJ1B,EAAE;2FAID,yBAAyB;kBANrC,SAAS;mBAAC;oBACT,QAAQ,EAAE,oBAAoB;oBAC9B,QAAQ,EAAE,EAAE;oBACZ,eAAe,EAAE,uBAAuB,CAAC,MAAM;oBAC/C,aAAa,EAAE,iBAAiB,CAAC,IAAI;iBACtC;iIAIC,IAAI;sBADH,KAAK;gBAIN,OAAO;sBADN,KAAK;gBAIN,WAAW;sBADV,KAAK;gBAIN,KAAK;sBADJ,KAAK;gBAIN,OAAO;sBADN,KAAK;;;MCrCK,kBAAkB;IAC7B;QACE,iBAAiB,CAAC,OAAO,CAAC,OAAO,EAAE;YACjC,OAAO,EAAE,YAAY,CAAC,GAAG,CAAC,2BAA2B,CAAC;YACtD,IAAI,EAAE,OAAO;YACb,KAAK,EAAE,uJAAuJ;SAC/J,CAAC,CAAA;QACF,iBAAiB,CAAC,OAAO,CAAC,OAAO,EAAE;YACjC,OAAO,EAAE,YAAY,CAAC,GAAG,CAAC,2BAA2B,CAAC;YACtD,IAAI,EAAE,OAAO;YACb,KAAK,EAAE,8CAA8C;SACtD,CAAC,CAAA;KACH;;+GAZU,kBAAkB;gHAAlB,kBAAkB,iBALd,yBAAyB,aAC9B,YAAY,aACZ,yBAAyB;gHAGxB,kBAAkB,aAFlB,EAAE,YAFJ,CAAC,YAAY,CAAC;2FAIZ,kBAAkB;kBAN9B,QAAQ;mBAAC;oBACR,YAAY,EAAE,CAAC,yBAAyB,CAAC;oBACzC,OAAO,EAAE,CAAC,YAAY,CAAC;oBACvB,OAAO,EAAE,CAAC,yBAAyB,CAAC;oBACpC,SAAS,EAAE,EAAE;iBACd;;;ACXD;;;;;ACAA;;;;;;"}