@acorex/layout 16.19.59 → 16.20.1

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-layout.mjs","sources":["../../../../libs/layout/src/lib/widget-board/widget.class.ts","../../../../libs/layout/src/lib/widget-board/widget-config.component.ts","../../../../libs/layout/src/lib/widget-board/widget-config.component.html","../../../../libs/layout/src/lib/widget-board/widget-save.component.ts","../../../../libs/layout/src/lib/widget-board/widget-save.component.html","../../../../libs/layout/src/lib/widget-board/widget-host.component.ts","../../../../libs/layout/src/lib/widget-board/widget-host.component.html","../../../../libs/layout/src/lib/widget-board/widget-board.component.ts","../../../../libs/layout/src/lib/widget-board/widget-board.component.html","../../../../libs/layout/src/lib/widget-board/editors/widget-size-editor/widget-size.editor.ts","../../../../libs/layout/src/lib/widget-board/editors/widget-size-editor/widget-size.editor.html","../../../../libs/layout/src/lib/widget-board/widget-board.module.ts","../../../../libs/layout/src/lib/widget-board/editors/widget-size-editor/widget-size.module.ts","../../../../libs/layout/src/acorex-layout.ts"],"sourcesContent":["import { EventEmitter, Injectable } from '@angular/core';\nimport { AXValueEvent, AXBaseEvent, propertyEditor, AXDataEvent } from '@acorex/components';\nimport { AXHtmlUtil, AXTranslator } from '@acorex/core';\n\nexport interface AXWidgetConfig {\n uniqueName: string;\n component: any;\n title: string;\n sizeX: number;\n sizeY: number;\n col?: number;\n row?: number;\n options?: any;\n props?: any;\n readonly?: boolean;\n}\n\nexport interface AXWidgetConfigChanged extends AXBaseEvent {\n config: AXWidgetConfig;\n}\n\n\n\nexport interface AXWidgetBoardConfigChanged extends AXBaseEvent {\n mode: 'clear' | 'add' | 'remove' | 'load' | 'config';\n}\n\nexport interface AXWidgetConfigSavedEvent extends AXDataEvent<AXWidgetSaveAsData> {\n\n}\n\n\nexport interface AXWidgetSaveAsData {\n title?: string;\n description?: string;\n icon?: string;\n group?: string;\n //\n uniqueName: string;\n component: any;\n options?: any;\n props?: any;\n}\n\n// @dynamic\n// TODO: Add Angular decorator.\n@Injectable()\nexport abstract class AXWidgetComponent {\n\n readonly uid: string = AXHtmlUtil.getUID();\n provideValue: (e: any) => any;\n\n onBusyChanged: EventEmitter<AXValueEvent<boolean>> = new EventEmitter<AXValueEvent<boolean>>();\n\n private _isBusy: boolean = true;\n public get isBusy(): boolean {\n return this._isBusy;\n }\n public set isBusy(v: boolean) {\n if (v !== this._isBusy) {\n const eventData: AXValueEvent<boolean> = {\n component: this,\n oldValue: this._isBusy,\n value: v\n };\n this._isBusy = v;\n this.onBusyChanged.emit(eventData);\n }\n }\n\n @propertyEditor({\n editorClass: 'ax/editors/widget-size',\n title: 'common.size',\n visible: false,\n order: -99,\n })\n widgetSize: number[];\n\n @propertyEditor({\n editorClass: 'ax/editors/select',\n title: 'common.refresh-rate',\n visible: true,\n order: -98,\n editorOptions: {\n items: () => {\n return ['بدون مقدار', 1, 2, 3, 5, 10, 20, 30, 60].map(c => ({\n id: typeof(c) === 'number' ? 60000 * c : 0,\n text: typeof(c) === 'number' ? AXTranslator.get('dateTime.duration.format_minute').replace('{0}', c.toString()) : c\n }));\n },\n allowNull: false,\n allowSearch: false,\n selectionDataMode: 'value',\n selectionMode: 'single',\n valueField: 'id',\n }\n })\n refreshRate: any = [{\n id: 60000 * 5,\n text: AXTranslator.get('dateTime.duration.format_minute').replace('{0}', '5')\n }];\n\n // ???\n getRefreshRate() {\n return Array.isArray(this.refreshRate) && this.refreshRate.length ? this.refreshRate[0].id : this.refreshRate;\n }\n\n private intervalId: number;\n\n constructor() {\n this.onConfiguredChanged.subscribe(() => {\n if (this.isConfigured === true && this.getRefreshRate()) {\n this.restartRefreshTimer();\n }\n else {\n this.stopRefreshTimer();\n }\n });\n }\n\n\n private startRefreshTimer() {\n this.intervalId = window.setInterval(this.refresh.bind(this), this.getRefreshRate());\n }\n\n private stopRefreshTimer() {\n window.clearInterval(this.intervalId);\n }\n\n private restartRefreshTimer() {\n this.stopRefreshTimer();\n this.startRefreshTimer();\n }\n\n ngOnDestroy() {\n this.stopRefreshTimer();\n }\n\n public redraw() {\n\n }\n\n public refresh() {\n this.restartRefreshTimer();\n }\n\n onConfiguredChanged: EventEmitter<void> = new EventEmitter<void>();\n\n get isConfigured(): boolean {\n return true;\n }\n\n public setValue(name: string, value?: any) {\n this[name] = value;\n this.onConfiguredChanged.emit();\n }\n\n public getValue(name: string): Promise<any> {\n const val = this[name];\n const config = this['__meta__'].config;\n const runtime = config.props[name]?.runtime;\n if (runtime && this.provideValue) {\n const res = this.provideValue({\n name,\n value: val,\n uniqueName: config.uniqueName,\n options: config.options,\n });\n if (this.provideValue instanceof Promise) {\n return res;\n }\n else {\n return Promise.resolve(res);\n }\n }\n return Promise.resolve(val);\n }\n\n}","import { Component, ViewEncapsulation, ChangeDetectionStrategy, ChangeDetectorRef, ViewChild } from '@angular/core';\nimport { AXPropertyConfig, AXBasePopupPageComponent, AXMenuItemClickEvent, AXProperyEditorValueChangeEvent, AXValidationFormComponent } from '@acorex/components';\nimport { AXButtonItem, AXTranslator } from '@acorex/core';\nimport { AXWidgetComponent } from './widget.class';\n\n\n@Component({\n templateUrl: './widget-config.component.html',\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n standalone: false\n})\n\nexport class AXWidgetConfigComponent extends AXBasePopupPageComponent {\n\n @ViewChild(AXValidationFormComponent) form: AXValidationFormComponent;\n\n constructor(private cdr: ChangeDetectorRef) {\n super();\n }\n\n\n widget: AXWidgetComponent;\n props: AXPropertyConfig[] = [];\n displayProps: AXPropertyConfig[] = [];\n\n\n changes: AXPropertyConfig[] = [];\n\n context: any = {};\n\n\n getFooterButtons(): AXButtonItem[] {\n return [\n {\n name: 'okay',\n submitBehavior: true,\n text: AXTranslator.get('common.confirm'),\n style: 'success'\n },\n {\n name: 'cancel',\n cancelBehavior: true,\n text: AXTranslator.get('common.cancel'),\n style: 'danger blank'\n }\n ];\n }\n\n\n\n\n\n onFooterButtonClick(e: AXMenuItemClickEvent) {\n if (e.name === 'cancel') {\n this.close();\n }\n if (e.name === 'okay') {\n this.form.validate().then(c => {\n if (c.result) {\n this.close(this.changes);\n }\n });\n }\n }\n\n handleValueChange(e: AXProperyEditorValueChangeEvent) {\n const prop = this.changes.find(c => c.property.name === e.property.name);\n if (prop) {\n prop.value = e.value;\n }\n else {\n this.changes.push({ property: e.property, value: e.value });\n }\n this.updateContext();\n }\n\n ngOnInit() {\n this.displayProps = this.props.filter(c => c.property.visible !== false).sort((a, b) => a.property.order - b.property.order);\n this.updateContext();\n }\n\n\n private updateContext() {\n const ctx = {};\n this.props.forEach(p => {\n ctx[p.property.name] = p.value;\n });\n this.changes.forEach(p => {\n ctx[p.property.name] = p.value;\n });\n this.context = ctx;\n }\n\n\n identify(index, item: AXPropertyConfig) {\n return item.property.name;\n }\n\n}","<ax-page>\n <ax-page-content>\n <div class=\"container\">\n <ax-validation-form #form>\n <div class=\"row\" *ngFor=\"let p of displayProps; trackBy: identify\">\n <div class=\"col-12\">\n <ax-label>{{p.property.title | trans}}</ax-label>\n <ng-container ax-property-editor-renderer [property]=\"p\" [context]=\"context\" [host]=\"widget\" [validationForm]=\"form\"\n (onValueChange)=\"handleValueChange($event)\">\n </ng-container>\n </div>\n </div>\n </ax-validation-form>\n </div>\n </ax-page-content>\n</ax-page>","import {\n Component,\n ViewEncapsulation,\n ChangeDetectionStrategy,\n\n} from '@angular/core';\nimport { AXWidgetConfig, AXWidgetSaveAsData } from './widget.class';\nimport { AXButtonItem, AXHtmlUtil, AXObjectUtil, AXTranslator } from '@acorex/core';\nimport { AXPropertyConfig, AXMenuItemClickEvent, AXBasePopupPageComponent } from '@acorex/components';\n\n\n\n@Component({\n templateUrl: \"./widget-save.component.html\",\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n standalone: false\n})\nexport class AXWidgetSaveComponent extends AXBasePopupPageComponent {\n config: AXWidgetConfig;\n props: AXPropertyConfig[] = [];\n displayProps: { name: string, title: string, allow: boolean }[];\n\n data: AXWidgetSaveAsData;\n\n getFooterButtons(): AXButtonItem[] {\n return [\n {\n name: 'okay',\n submitBehavior: true,\n text: AXTranslator.get('common.confirm'),\n style: 'ax success'\n },\n {\n name: 'cancel',\n cancelBehavior: true,\n text: AXTranslator.get('common.cancel'),\n style: 'ax light'\n }\n ];\n }\n\n ngOnInit() {\n const titleProp = this.props.find(c => c.property.name === 'title' || c.property.name === 'name');\n const title = titleProp?.value || this.config.title;\n const pp: any = {};\n this.props?.forEach(c => {\n pp[c.property.name] = c.property;\n });\n this.data = {\n component: this.config.component,\n title,\n uniqueName: `${this.config.uniqueName}-${AXHtmlUtil.getUID()}`,\n options: AXObjectUtil.deepJSONClone(this.config.options),\n props: AXObjectUtil.deepJSONClone(pp)\n };\n this.displayProps = this.props\n .filter(c => c.property.visible !== false)\n .sort((a, b) => a.property.order - b.property.order)\n .map(c => ({\n name: c.property.name,\n title: c.property.title,\n allow: true\n }));\n }\n\n\n\n onFooterButtonClick(e: AXMenuItemClickEvent) {\n if (e.name === 'cancel') {\n this.close();\n }\n if (e.name === 'okay') {\n this.props.forEach(p => {\n const pp = this.displayProps.find(c => c.name === p.property.name);\n if (pp == null || !pp.allow) {\n let ppp = this.data.props[p.property.name];\n if (ppp) {\n ppp.visible = false;\n }\n else {\n ppp = { visible: false };\n }\n }\n });\n this.close(this.data);\n }\n }\n}","<ax-page>\n <ax-page-content>\n <div class=\"container\">\n <div class=\"row\">\n <div class=\"col-12\">\n <ax-form-group>\n <ax-label>{{'common.title' | trans}}</ax-label>\n <ax-text-box [(value)]=\"data.title\"></ax-text-box>\n </ax-form-group>\n </div>\n </div>\n <div class=\"row\">\n <div class=\"col-12\">\n <ax-form-group>\n <ax-label>{{'common.description' | trans}}</ax-label>\n <ax-text-area [(value)]=\"data.description\"></ax-text-area>\n </ax-form-group>\n </div>\n </div>\n <!-- <div class=\"row\">\n <div class=\"col-12\">\n <ax-form-group>\n <ax-label>{{'common.uniquename' | trans}}</ax-label>\n <ax-text-box></ax-text-box>\n </ax-form-group>\n </div>\n </div> -->\n <div class=\"row\" style=\"margin-block-end: var(--ax-size-md);margin-block-start: var(--ax-size-md);\">\n <div class=\"col-12\">\n <ax-fieldset caption=\"{{'widget-board.configurable-props' | trans}}\">\n <div class=\"row\" *ngFor=\"let prop of displayProps\">\n <div class=\"col-12\" style=\"margin-block-end: var(--ax-size-sm)\">\n <ax-check-box [(value)]=\"prop.allow\" label=\"{{ prop.title | trans }}\">\n\n </ax-check-box>\n </div>\n </div>\n </ax-fieldset>\n </div>\n </div>\n </div>\n </ax-page-content>\n</ax-page>","import {\n Component,\n ViewEncapsulation, Input,\n ElementRef, HostBinding, ComponentFactoryResolver, ViewChild,\n ViewContainerRef, Output, EventEmitter, ChangeDetectionStrategy,\n ChangeDetectorRef, ComponentRef\n} from '@angular/core';\nimport { AXWidgetConfig, AXWidgetComponent, AXWidgetConfigChanged, AXWidgetConfigSavedEvent } from './widget.class';\nimport { AXObjectUtil, AXRenderService } from '@acorex/core';\nimport { AXPopupService, AXPropertyDecorators, AXPropertyDecorator, AXLoadingService } from '@acorex/components';\nimport { AXWidgetConfigComponent } from './widget-config.component';\nimport { AXMenuItem } from '@acorex/core';\nimport { AXTranslator } from '@acorex/core';\nimport { AXWidgetSaveComponent } from './widget-save.component';\n\n\n\n\n\n@Component({\n selector: 'ax-widget-host',\n templateUrl: \"./widget-host.component.html\",\n host: { class: 'ax widget-host', tabindex: '0' },\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n standalone: false\n})\n\nexport class AXWidgetHostComponent {\n\n private _widget: AXWidgetComponent;\n public get widget(): AXWidgetComponent {\n return this._widget;\n }\n\n _hasProps: boolean = false;\n\n\n _hasMenu: boolean = false;\n\n @Input()\n provideValue: (e: any) => any;\n\n\n get element(): HTMLDivElement {\n return this.ref.nativeElement;\n }\n\n\n configMenuItem: AXMenuItem[] = [\n {\n icon: 'far fa-ellipsis-h',\n items: []\n }\n ];\n\n\n @Output()\n onRemove: EventEmitter<AXWidgetHostComponent> = new EventEmitter<AXWidgetHostComponent>();\n\n @Output()\n onConfigChanged: EventEmitter<AXWidgetConfigChanged> = new EventEmitter<AXWidgetConfigChanged>();\n\n\n @Output()\n onResized: EventEmitter<AXWidgetConfigChanged> = new EventEmitter<AXWidgetConfigChanged>();\n\n @Output()\n onSave: EventEmitter<AXWidgetConfigSavedEvent> = new EventEmitter<AXWidgetConfigSavedEvent>();\n\n @Input()\n config: AXWidgetConfig;\n\n @ViewChild('vc', { read: ViewContainerRef })\n vc: ViewContainerRef;\n\n\n\n @Input()\n readonly: boolean = false;\n\n private componentRef: ComponentRef<any>;\n //private isLoading: boolean = true;\n\n // get isBusy() {\n // return this._widget?.isBusy || this.isLoading;\n // }\n\n\n private _loadingId: number;\n\n private _isLoading: boolean = false;\n public get isLoading(): boolean {\n return this._isLoading;\n }\n public set isLoading(v: boolean) {\n this._isLoading = v;\n if (this._loadingId && !v) {\n this.loadingService.hide(this._loadingId);\n this._loadingId = null;\n }\n if (v) {\n // this._loadingId = this.loadingService.show(this.ref.nativeElement);\n }\n }\n\n\n get isConfigured(): boolean {\n return this._widget?.isConfigured || false;\n }\n\n\n constructor(\n private ref: ElementRef<HTMLDivElement>,\n private componentFactoryResolver: ComponentFactoryResolver,\n private rendererService: AXRenderService,\n private cdr: ChangeDetectorRef,\n private popup: AXPopupService,\n private loadingService: AXLoadingService\n\n ) {\n\n }\n\n\n ngOnInit() {\n // this.isLoading = true;\n }\n\n\n async ngAfterViewInit() {\n let component: any;\n if (typeof this.config.component === 'string') {\n const route = await this.rendererService.findLoadedComponentByRoute(this.config.component, 20);\n component = route?.component;\n }\n else if (typeof this.config.component === 'function') {\n component = this.config.component;\n }\n if (component == null) {\n console.error(`Invalid Widget Component!`, this.config);\n this.onRemove.emit(this);\n return;\n }\n\n const widgetFactory = this.componentFactoryResolver.resolveComponentFactory(component);\n this.componentRef = this.vc.createComponent(widgetFactory);\n this._widget = this.componentRef.instance as AXWidgetComponent;\n this._widget.provideValue = this.provideValue;\n if (this._widget.onBusyChanged) {\n this._widget.onBusyChanged.subscribe((d) => {\n if (!this._widget.widgetSize) {\n this._widget.setValue('widgetSize', [this.sizeX, this.sizeY]);\n }\n else {\n this.setSizeFromOptions();\n }\n // this.isLoading = d.value;\n this.cdr.detectChanges();\n });\n }\n if (this._widget.onConfiguredChanged) {\n this._widget.onConfiguredChanged.subscribe(() => {\n this.setSizeFromOptions();\n });\n }\n //\n if (this.config.options) {\n Object.assign(this._widget, this.config.options);\n }\n this._hasProps = AXPropertyDecorators.getProperties(this._widget).length > 0;\n\n this.isLoading = false;\n this.config['__meta__'].instance = this;\n this._widget['__meta__'] = {};\n this._widget['__meta__'].config = this.config;\n //\n this.configMenuItem[0].items.push({\n name: 'refresh',\n icon: 'far fa-undo',\n text: AXTranslator.get('common.refresh'),\n onClick: () => {\n this?.widget?.refresh();\n }\n });\n //\n if (this._hasProps) {\n this.configMenuItem[0].items.push({\n name: 'configs',\n icon: 'far fa-cogs',\n text: AXTranslator.get('common.configs'),\n onClick: () => {\n this.openConfigDialog();\n }\n });\n }\n this.configMenuItem[0].items.push({\n name: 'save',\n icon: 'far fa-save',\n text: AXTranslator.get('common.save-as'),\n onClick: () => {\n this.openSaveDialog();\n }\n });\n if (true) {\n this.configMenuItem[0].items.push({\n name: 'remove',\n icon: 'far fa-times',\n style: 'ax danger blank',\n text: AXTranslator.get('common.remove'),\n onClick: () => {\n this.onRemove.emit(this);\n }\n });\n }\n this._hasMenu = this.configMenuItem[0].items.length > 0;\n this.cdr.detectChanges();\n }\n\n @HostBinding('attr.data-size-x')\n @Input()\n sizeX: number = 1;\n\n @HostBinding('attr.data-size-y')\n @Input()\n sizeY: number = 1;\n\n @HostBinding('attr.data-col')\n @Input()\n col: number = 1;\n\n\n @HostBinding('attr.data-row')\n @Input()\n row: number = 1;\n\n\n private setSizeFromOptions() {\n this._widget.getValue('widgetSize').then(c => {\n const oldSizeX = this.sizeX;\n const oldSizeY = this.sizeY;\n if (c && Array.isArray(c) && (oldSizeX !== c[0] || oldSizeY !== c[1])) {\n this.config.sizeX = this.sizeX = c[0];\n this.config.sizeY = this.sizeY = c[1];\n this.onResized.emit({\n component: this._widget,\n config: this.config\n });\n }\n this.cdr.detectChanges();\n });\n }\n\n remove(e: MouseEvent) {\n e.preventDefault();\n e.stopPropagation();\n if (!this.readonly)\n this.onRemove.emit(this);\n return false;\n }\n\n handleConfig(e: MouseEvent) {\n e.preventDefault();\n e.stopPropagation();\n if (!this.readonly)\n this.openConfigDialog();\n return false;\n }\n\n private openConfigDialog() {\n const ppp = this.getMergedProps();\n this.popup.open(AXWidgetConfigComponent, {\n title: AXTranslator.get('common.configs'),\n size: 'sm',\n data: {\n props: ppp.map(c => ({ property: c.options, value: this._widget[c.options.name] })),\n widget: this.widget\n }\n }).then(c => {\n if (c.data) {\n if (!this.config.options) {\n this.config.options = {};\n }\n c.data.forEach(p => {\n this._widget.setValue(p.property.name, p.value);\n this.config.options[p.property.name] = p.value;\n });\n this.emitConfigChanged();\n this._widget.redraw();\n this.cdr.detectChanges();\n }\n });\n }\n\n private openSaveDialog() {\n const ppp = this.getMergedProps();\n this.popup.open(AXWidgetSaveComponent, {\n title: AXTranslator.get('common.save-as'),\n size: 'sm',\n data: {\n config: this.config,\n props: ppp.map(c => ({ property: c.options, value: this._widget[c.options.name] }))\n }\n }).then(c => {\n if (c.data) {\n this.onSave.emit({\n component: this._widget,\n data: c.data\n });\n }\n });\n }\n\n\n\n handleOptionClick(e: MouseEvent) {\n e.preventDefault();\n e.stopPropagation();\n this.openConfigDialog();\n return false;\n }\n\n ngOnDestroy() {\n this.vc.clear();\n if (this.componentRef) {\n this.componentRef.destroy();\n }\n }\n\n private getMergedProps(): AXPropertyDecorator[] {\n const ppp = AXObjectUtil.deepCopy(AXPropertyDecorators.getProperties(this._widget)) as AXPropertyDecorator[];\n for (const key in this.config.props) {\n if (Object.prototype.hasOwnProperty.call(this.config.props, key)) {\n const newP = this.config.props[key];\n const existPropDec = ppp.find(p => p.property === key);\n if (existPropDec) {\n Object.assign(existPropDec.options, newP);\n }\n }\n }\n return ppp;\n }\n\n private emitConfigChanged() {\n this.onConfigChanged.emit({\n component: this._widget,\n config: this.config\n });\n }\n\n}","<div class='widget-container'>\n <div class=\"widget-config-overlay\" *ngIf=\"!isConfigured\" (click)=\"handleConfig($event)\">\n <div class=\"widget-title\">{{config.title}}</div>\n <div class=\"widget-config-box\">\n <div class=\"config-title\">{{ 'widget-board.configure' | trans}}</div>\n <div class=\"config-icon\" *ngIf=\"!readonly\"><i class=\"fas fa-cogs fa-5x\" aria-hidden=\"true\"></i></div>\n </div>\n </div>\n <div class='widget-edit-overlay' >\n <div class='widget-edit-menu'>\n <button class=\"widget-edit-menu-button\" (click)=\"handleConfig($event)\"\n (mousedown)=\"$event.stopPropagation()\" *ngIf=\"_hasProps\" (mouseup)=\"$event.stopPropagation()\">\n <i class=\"far fa-cogs\" aria-hidden=\"true\"></i>\n </button>\n <button class=\"widget-edit-menu-button\" (click)=\"remove($event)\" (mousedown)=\"$event.stopPropagation()\"\n (mouseup)=\"$event.stopPropagation()\">\n <i class=\"far fa-times\" aria-hidden=\"true\"></i>\n </button>\n </div>\n\n </div>\n <div class=\"widget-options-menu\" *ngIf=\"_hasMenu && !readonly\">\n <ax-menu [items]='configMenuItem' direction=\"horizontal\"></ax-menu>\n </div>\n <!-- <ax-loading-panel [visible]=\"isBusy\">\n </ax-loading-panel> -->\n <div class=\"widget-content\">\n <ng-container #vc></ng-container>\n </div>\n</div>","import {\n Component,\n OnInit,\n Input,\n ViewEncapsulation,\n ElementRef,\n ViewChild,\n NgZone,\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Output,\n EventEmitter, ViewChildren, QueryList\n} from '@angular/core';\nimport {\n AXWidgetConfig,\n AXWidgetConfigChanged,\n AXWidgetBoardConfigChanged,\n AXWidgetConfigSavedEvent\n} from './widget.class';\nimport { AXWidgetHostComponent } from './widget-host.component';\nimport { AXHtmlUtil, AXClientRec } from '@acorex/core';\nimport { Subject } from 'rxjs';\nimport { debounceTime } from 'rxjs/operators'\n\n\n@Component({\n selector: 'ax-widget-board',\n templateUrl: './widget-board.component.html',\n styleUrls: ['./widget-board.component.scss'],\n host: { class: 'ax widget-board' },\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n standalone: false\n})\nexport class AXWidgetBoardComponent implements OnInit {\n\n @ViewChild('container')\n private container: ElementRef<HTMLDivElement>;\n\n @ViewChildren(AXWidgetHostComponent)\n private widgetHosts: QueryList<AXWidgetHostComponent>;\n\n widgets: AXWidgetConfig[] = [];\n\n @Input()\n galleryItems: AXWidgetConfig[] = [];\n\n @Input()\n tileSize: number = 80;\n\n @Input()\n gapSize: number = 5;\n\n\n @Input()\n readonly: boolean = false;\n\n private newWidget: AXWidgetConfig = null;\n\n public rtl: boolean;\n\n private _isInEditing: boolean = false;\n public isInEditing(): boolean {\n return this._isInEditing;\n }\n private isDragging: boolean = false;\n private dragItem: HTMLElement;\n\n private saveSubject = new Subject<string>();\n\n @Input()\n provideValue: (e: any) => any;\n\n private readonly DATA_COL = 'data-col';\n private readonly DATA_ROW = 'data-row';\n private readonly DATA_SIZE_X = 'data-size-x';\n private readonly DATA_SIZE_Y = 'data-size-y';\n private readonly DATA_OLD_COL = 'data-old-col';\n private readonly DATA_OLD_ROW = 'data-old-row';\n\n\n @Output()\n onConfigChanged: EventEmitter<AXWidgetBoardConfigChanged> = new EventEmitter<AXWidgetBoardConfigChanged>();\n\n @Output()\n onWidgetSave: EventEmitter<AXWidgetConfigSavedEvent> = new EventEmitter<AXWidgetConfigSavedEvent>();\n\n constructor(\n private ref: ElementRef<HTMLDivElement>,\n private zone: NgZone,\n private cdr: ChangeDetectorRef\n ) { }\n\n\n ngOnInit() {\n if (this.rtl == null) {\n this.rtl = window.getComputedStyle(this.ref.nativeElement, null).getPropertyValue('direction') === 'rtl';\n }\n this.saveSubject.pipe(debounceTime(750)).subscribe((value: any) => {\n this.emitConfigChanged(value);\n });\n }\n\n ngOnDestroy()\n {\n this.saveSubject?.unsubscribe();\n }\n\n ngAfterViewInit() {\n this.zone.runOutsideAngular((c) => {\n const style = document.createElement('style');\n style.type = 'text/css';\n this.ref.nativeElement.appendChild(style);\n // add css data classes\n for (let i = 1; i <= 50; i++) {\n style.innerHTML += `[${this.DATA_COL}=\"${i}\"] { ${this.rtl ? 'right' : 'left'}: ${(i - 1) * (this.tileSize + this.gapSize)}px; }`;\n style.innerHTML += `[${this.DATA_ROW}=\"${i}\"] { top: ${(i - 1) * (this.tileSize + this.gapSize)}px; }`;\n style.innerHTML += `[${this.DATA_SIZE_X}=\"${i}\"] { width: ${(i * this.tileSize) + ((i - 1) * this.gapSize)}px; }`;\n style.innerHTML += `[${this.DATA_SIZE_Y}=\"${i}\"] { height: ${(i * this.tileSize) + ((i - 1) * this.gapSize)}px; }`;\n }\n });\n }\n\n private calcGridSize() {\n this.zone.runOutsideAngular(() => {\n const width =\n (Math.max(...this.widgets.map((c) => c.col + c.sizeX - 1))) * (this.tileSize + this.gapSize);\n const height =\n (Math.max(...this.widgets.map((c) => c.row + c.sizeY - 1))) * (this.tileSize + this.gapSize);\n this.container.nativeElement.style.width = width + 'px';\n this.container.nativeElement.style.height = height + 'px';\n });\n }\n\n toggleEdit() {\n this._isInEditing ? this.finishEdit() : this.startEdit();\n }\n\n\n\n private dragStart(e: MouseEvent) {\n e.preventDefault();\n e.stopPropagation();\n this.zone.runOutsideAngular(() => {\n if (this._isInEditing && e.which === 1) {\n this.dragItem = e.currentTarget as any;\n this.dragItem.setAttribute('data-x-offset', (this.dragItem.offsetLeft - e.clientX).toString());\n //\n this.dragItem.setAttribute('data-y-offset', (this.dragItem.offsetTop - e.clientY).toString());\n this.dragItem.classList.add('widget-dragging');\n this.dragItem.classList.remove('animate__animated', 'animate__pulse');\n }\n });\n return false;\n }\n\n removePositionData() {\n this.zone.runOutsideAngular(() => {\n if (this.dragItem && this._isInEditing && this.dragItem.getAttribute(this.DATA_OLD_COL) == null) {\n this.dragItem.setAttribute(this.DATA_OLD_COL, this.dragItem.getAttribute(this.DATA_COL));\n this.dragItem.setAttribute(this.DATA_OLD_ROW, this.dragItem.getAttribute(this.DATA_ROW));\n this.dragItem.removeAttribute(this.DATA_COL);\n this.dragItem.removeAttribute(this.DATA_ROW);\n }\n });\n }\n\n resetPositionData() {\n this.zone.runOutsideAngular(() => {\n if (this.dragItem && this._isInEditing) {\n this.setPosition(this.dragItem, this.dragItem.getAttribute(this.DATA_OLD_COL), this.dragItem.getAttribute(this.DATA_OLD_ROW));\n }\n });\n }\n\n private setPosition(element: HTMLElement, col: string, row: string) {\n this.zone.runOutsideAngular(() => {\n element.setAttribute(this.DATA_COL, col);\n element.setAttribute(this.DATA_ROW, row);\n element.removeAttribute(this.DATA_OLD_COL);\n element.removeAttribute(this.DATA_OLD_ROW);\n element.style.removeProperty('top');\n element.style.removeProperty('left');\n const widget = this.widgets.find(c => c['__meta__'].instance.element === element);\n widget.col = Number(col);\n widget.row = Number(row);\n });\n }\n\n private drag(e) {\n e.preventDefault();\n e.stopPropagation();\n this.zone.runOutsideAngular(() => {\n if (this.dragItem && this._isInEditing) {\n this.isDragging = true;\n this.addPlaceholder();\n const xOffset = Number(this.dragItem.getAttribute('data-x-offset'));\n const yOffset = Number(this.dragItem.getAttribute('data-y-offset'));\n this.dragItem.style.left = e.clientX + xOffset + 'px';\n this.dragItem.style.top = e.clientY + yOffset + 'px';\n //\n this.detectBestPlacement();\n this.removePositionData();\n }\n });\n return false;\n }\n\n private dragEnd(e) {\n this.zone.runOutsideAngular(() => {\n if (this.dragItem && this._isInEditing && this.isDragging) {\n this.dragItem.classList.remove('widget-dragging');\n this.dragItem.classList.add('animate__animated', 'animate__pulse');\n //\n const p = this.container.nativeElement.querySelector('.widget-blank-placeholder');\n if (this.newWidget) {\n const w = {\n uniqueName: this.newWidget.uniqueName,\n component: this.newWidget.component,\n title: this.newWidget.title,\n options: this.newWidget.options,\n sizeX: this.newWidget.sizeX,\n sizeY: this.newWidget.sizeY,\n col: Number(p.getAttribute(this.DATA_COL)),\n row: Number(p.getAttribute(this.DATA_ROW))\n };\n\n this.widgets.push(w);\n this.newWidget = null;\n this.container.nativeElement.removeChild(this.dragItem);\n this.zone.run(() => {\n this.cdr.detectChanges();\n this.calcGridSize();\n setTimeout(() => {\n w['__meta__'].instance.element.addEventListener('mousedown', this.dragStart.bind(this), false);\n }, 1000);\n });\n } else {\n if (p) {\n this.setPosition(this.dragItem, p.getAttribute(this.DATA_COL), p.getAttribute(this.DATA_ROW));\n }\n else {\n this.setPosition(this.dragItem, this.dragItem.getAttribute(this.DATA_OLD_COL), this.dragItem.getAttribute(this.DATA_OLD_ROW));\n }\n }\n //\n this.removePlaceholder();\n this.dragItem = null;\n this.calcGridSize();\n this.saveSubject.next('config');\n }\n this.isDragging = false;\n });\n }\n\n private detectFirstEmptySlot(w: AXWidgetConfig) {\n const xTile = Math.floor(this.ref.nativeElement.parentElement.offsetWidth / this.tileSize);\n for (let j = 1; j <= 100; j++) {\n for (let i = 1; i <= xTile - w.sizeX; i++) {\n const rec = new AXClientRec({\n left: i,\n top: j,\n width: w.sizeX,\n height: w.sizeY\n });\n const el = this.widgets.filter(c => c !== w).find((c) =>\n rec.intersect({\n left: c.col,\n top: c.row,\n width: c.sizeX,\n height: c.sizeY\n })\n );\n if (el == null) {\n w.col = i;\n w.row = j;\n return;\n }\n }\n }\n }\n\n private detectBestPlacement() {\n this.zone.runOutsideAngular(() => {\n const p = this.container.nativeElement.querySelector('.widget-blank-placeholder') as HTMLElement;\n let col = Math.ceil(this.dragItem.offsetLeft / this.tileSize);\n if (this.rtl) {\n col = Math.ceil((this.container.nativeElement.clientWidth - (this.dragItem.offsetLeft + this.dragItem.clientWidth)) / this.tileSize);\n }\n\n let row = Math.ceil(this.dragItem.offsetTop / this.tileSize);\n if (col < 1) {\n col = 1;\n }\n if (row < 1) {\n row = 1;\n }\n const widgets = Array.from(this.ref.nativeElement.querySelectorAll('.widget-host')).map((c) => c as HTMLElement);\n p.setAttribute(this.DATA_COL, col.toString());\n p.setAttribute(this.DATA_ROW, row.toString());\n const collision = widgets.filter(c => c !== this.dragItem).some(c => AXHtmlUtil.collision(c, this.dragItem));\n if (collision) {\n this.removePlaceholder();\n }\n });\n }\n\n\n private addPlaceholder() {\n this.zone.runOutsideAngular(() => {\n this.removePlaceholder();\n if (this.dragItem) {\n const p = document.createElement('div');\n p.classList.add('widget-blank-placeholder');\n p.setAttribute(this.DATA_COL, this.dragItem.getAttribute(this.DATA_COL));\n p.setAttribute(this.DATA_ROW, this.dragItem.getAttribute(this.DATA_ROW));\n p.setAttribute(this.DATA_SIZE_X, this.dragItem.getAttribute(this.DATA_SIZE_X));\n p.setAttribute(this.DATA_SIZE_Y, this.dragItem.getAttribute(this.DATA_SIZE_Y));\n this.container.nativeElement.appendChild(p);\n }\n });\n }\n\n private removePlaceholder() {\n const p = this.container.nativeElement.querySelector('.widget-blank-placeholder');\n p?.remove();\n }\n\n public startEdit() {\n this._isInEditing = true;\n this.calcGridSize();\n this.ref.nativeElement.classList.add('grid-background');\n const bg = this.ref.nativeElement as HTMLDivElement;\n bg.style.setProperty('background-position', `${this.rtl ? 'right' : 'left'} top`);\n // tslint:disable-next-line: max-line-length\n const pattern = `url('data:image/svg+xml;utf8,<svg xmlns=\"http://www.w3.org/2000/svg\" xmlns:xlink=\"http://www.w3.org/1999/xlink\" width=\"${this.tileSize + this.gapSize}\" height=\"${this.tileSize + this.gapSize}\"> <rect style=\"fill: %23dadada\" x=\"${this.rtl ? this.gapSize : 0}\" width=\"${this.tileSize}\" height=\"${this.tileSize}\" y=\"0\"></rect></svg>')`;\n bg.style.setProperty('background-image', pattern);\n //\n const widgets = Array.from(this.ref.nativeElement.querySelectorAll('.widget-host'));\n widgets.forEach((w) => {\n w.addEventListener('mousedown', this.dragStart.bind(this), false);\n });\n this.ref.nativeElement.addEventListener('mousemove', this.drag.bind(this), false);\n this.ref.nativeElement.addEventListener('mouseup', this.dragEnd.bind(this), false);\n }\n\n public finishEdit() {\n this.ref.nativeElement.classList.remove('grid-background');\n const bg = this.ref.nativeElement as HTMLDivElement;\n bg.style.removeProperty('background-image');\n //\n this._isInEditing = false;\n const widgets = Array.from(this.ref.nativeElement.querySelectorAll('.widget-host'));\n widgets.forEach((w) => {\n w.removeEventListener('mousedown', this.dragStart.bind(this), false);\n });\n this.ref.nativeElement.removeEventListener('mousemove', this.drag.bind(this), false);\n this.ref.nativeElement.removeEventListener('mouseup', this.dragEnd.bind(this), false);\n this.saveSubject.next('config');\n }\n\n\n addWidget(widget: AXWidgetConfig) {\n this.zone.runOutsideAngular(() => {\n this.newWidget = {\n uniqueName: widget.uniqueName,\n component: widget.component,\n title: widget.title,\n col: 1,\n row: 1,\n sizeX: widget.sizeX,\n sizeY: widget.sizeY,\n options: widget.options,\n props: widget.props\n };\n this.detectFirstEmptySlot(this.newWidget);\n const w = {\n uniqueName: this.newWidget.uniqueName,\n component: this.newWidget.component,\n title: this.newWidget.title,\n options: this.newWidget.options,\n props: this.newWidget.props,\n sizeX: this.newWidget.sizeX,\n sizeY: this.newWidget.sizeY,\n col: this.newWidget.col,\n row: this.newWidget.row\n };\n this.widgets.push(w);\n this.newWidget = null;\n this.zone.run(() => {\n this.cdr.detectChanges();\n this.calcGridSize();\n this.emitConfigChanged('add');\n setTimeout(() => {\n w['__meta__'].instance.element.addEventListener('mousedown', this.dragStart.bind(this), false);\n }, 1000);\n });\n });\n }\n\n\n handleOnRemove(w: AXWidgetHostComponent) {\n w.element.classList.add('animate__animated', 'animate__zoomOut');\n w.element.addEventListener('animationend', () => {\n this.widgets = this.widgets.filter((c) => (c as any).__meta__.id !== (w.config as any).__meta__.id);\n this.cdr.detectChanges();\n this.calcGridSize();\n this.emitConfigChanged('remove');\n });\n }\n\n handleOnSave(e: AXWidgetConfigSavedEvent) {\n this.onWidgetSave.emit(e);\n }\n\n trackByFn(index, item) {\n if (!item['__meta__']?.id) {\n item['__meta__'] = {};\n item['__meta__'].id = AXHtmlUtil.getUID();\n }\n return item['__meta__']?.id;\n }\n\n\n load(widgets: string | AXWidgetConfig[]): Promise<void> {\n this.clear();\n return new Promise<void>((resolve, reject) => {\n if (widgets) {\n const loadedWidgets: AXWidgetConfig[] = [];\n if (typeof widgets === 'string') {\n try {\n loadedWidgets.push(...JSON.parse(widgets));\n this.emitConfigChanged('load');\n } catch (error) {\n reject('Invalid widget json data!');\n }\n }\n else {\n loadedWidgets.push(...widgets);\n this.emitConfigChanged('load');\n }\n let intervalId: number = -1;\n const loadFunc = () => {\n\n if (this.galleryItems && this.galleryItems.length > 0) {\n loadedWidgets.forEach(w => {\n const gitem = this.galleryItems.find(c => c.uniqueName === w.uniqueName);\n if (gitem) {\n w.component = gitem.component;\n if (gitem.props) {\n w.props = JSON.parse(JSON.stringify(gitem.props));\n }\n }\n });\n this.widgets.push(...loadedWidgets);\n this.emitConfigChanged('load');\n window.clearInterval(intervalId);\n this.cdr.detectChanges();\n resolve();\n }\n };\n intervalId = window.setInterval(loadFunc, 200);\n }\n else {\n resolve();\n }\n });\n }\n\n clear() {\n if (this.widgets.length) {\n this.widgets = [];\n this.cdr.detectChanges();\n this.saveSubject.next('clear');\n }\n }\n\n save(): Promise<string> {\n const obj = this.widgets.map(c => ({\n uniqueName: c.uniqueName,\n component: c.component,\n title: c.title,\n sizeX: c.sizeX,\n sizeY: c.sizeY,\n col: c.col,\n row: c.row,\n options: c.options,\n props: c.props\n }));\n return Promise.resolve(JSON.stringify(obj));\n }\n\n refresh() {\n this.widgetHosts.forEach(host => {\n host.widget.refresh();\n });\n }\n\n handleOnConfigChanged(e: AXWidgetConfigChanged) {\n this.cdr.detectChanges();\n this.saveSubject.next('config');\n }\n\n handleOnResizedChanged(e: AXWidgetConfigChanged) {\n this.detectFirstEmptySlot(e.config);\n this.cdr.detectChanges();\n this.saveSubject.next('config');\n }\n\n private emitConfigChanged(mode: 'clear' | 'add' | 'remove' | 'load' | 'config') {\n this.onConfigChanged.emit({\n component: this,\n mode: mode\n });\n }\n}\n","<div class=\"widgets-container\" [class.rtl]=\"rtl\" #container>\n <ax-widget-host *ngFor=\"let w of widgets;trackBy: trackByFn\" [config]='w' [sizeX]=\"w.sizeX\" [readonly]=\"readonly || w.readonly\"\n [sizeY]=\"w.sizeY\" [col]=\"w.col\" [row]=\"w.row\" (onRemove)=\"handleOnRemove($event)\" (onSave)=\"handleOnSave($event)\"\n (onConfigChanged)=\"handleOnConfigChanged($event)\" (onResized)=\"handleOnResizedChanged($event)\"\n [provideValue]=\"provideValue\">\n </ax-widget-host>\n</div>\n","import { Component, OnInit, ChangeDetectorRef } from '@angular/core';\nimport { AXProperyEditorComponent } from '@acorex/components';\n\n@Component({\n templateUrl: './widget-size.editor.html',\n standalone: false\n})\nexport class AXWidgetSizePropertyEditorComponent extends AXProperyEditorComponent<number[]> {\n\n sizeX: number;\n sizeY: number;\n\n minX: number = 1;\n maxX: number = 20;\n\n minY: number = 1;\n maxY: number = 20;\n\n\n constructor(protected cdr: ChangeDetectorRef) {\n super(cdr);\n }\n\n ngOnInit() {\n if (Array.isArray(this.value)) {\n this.sizeX = this.value[0];\n this.sizeY = this.value[1];\n }\n else {\n this.sizeX = 2;\n this.sizeY = 2;\n }\n }\n\n handleMinValueChange(e: any) {\n this.sizeX = e.value;\n\n if (this.sizeY > 0) {\n super.handleValueChange([this.sizeX, this.sizeY]);\n }\n }\n\n handleMaxValueChange(e: any) {\n this.sizeY = e.value;\n if (this.sizeX > 0) {\n super.handleValueChange([this.sizeX, this.sizeY]);\n }\n }\n\n\n\n ngAfterViewInit() {\n this.onRenderCompleted.emit();\n }\n\n}","<div style=\"display: grid;grid-gap: 2%; grid-template-columns: 49% 49%;\">\n <ax-number-box (onValueChanged)=\"handleMinValueChange($event)\" [value]=\"sizeX\" [min]=\"minX\" [max]=\"maxX\">\n </ax-number-box>\n <ax-number-box (onValueChanged)=\"handleMaxValueChange($event)\" [value]=\"sizeY\" [min]=\"minY\" [max]=\"maxY\">\n </ax-number-box>\n</div>","import { NO_ERRORS_SCHEMA, NgModule } from '@angular/core';\nimport { AXWidgetBoardComponent } from './widget-board.component';\nimport { CommonModule } from '@angular/common';\nimport { AXWidgetHostComponent } from './widget-host.component';\nimport {\n AXSearchBoxModule,\n AXLoadingModule,\n AXProppertyEditorModule,\n AXPageModule,\n AXLabelModule,\n AXToolbarModule,\n AXTabStripModule,\n AXMenuModule,\n AXFormGroupModule,\n AXTextAreaModule,\n AXTextBoxModule,\n AXFieldsetModule,\n AXCheckBoxModule,\n AXValidationModule,\n} from '@acorex/components';\nimport { RouterModule } from '@angular/router';\nimport { AXWidgetConfigComponent } from './widget-config.component';\nimport { AXTranslator, AXTranslatorModule } from '@acorex/core';\nimport { AXWidgetSizePropertyEditorComponent } from './editors/widget-size-editor/widget-size.editor';\nimport { AXWidgetSizePropertyEditorModule } from './editors/widget-size-editor/widget-size.module';\nimport { AXWidgetSaveComponent } from './widget-save.component';\n\n@NgModule({\n imports: [\n CommonModule,\n AXSearchBoxModule,\n AXLoadingModule,\n RouterModule,\n AXProppertyEditorModule,\n AXPageModule,\n AXToolbarModule,\n AXTranslatorModule,\n AXLabelModule,\n AXTextAreaModule,\n AXFieldsetModule,\n AXTextBoxModule,\n AXFormGroupModule,\n AXTabStripModule,\n AXCheckBoxModule,\n AXMenuModule,\n AXTranslatorModule,\n AXValidationModule,\n RouterModule.forChild([\n {\n component: AXWidgetSizePropertyEditorComponent,\n path: 'ax/editors/widget-size',\n },\n ]),\n ],\n exports: [AXWidgetBoardComponent, AXProppertyEditorModule],\n declarations: [\n AXWidgetBoardComponent,\n AXWidgetHostComponent,\n AXWidgetConfigComponent,\n AXWidgetSaveComponent,\n ],\n providers: [],\n schemas: [NO_ERRORS_SCHEMA],\n})\nexport class AXWidgetBoardModule {\n /**\n *\n */\n constructor() {\n AXTranslator.load('en', {\n 'widget-board': {\n 'configurable-props': 'Configurable Properties',\n configure: 'Configure Widget',\n },\n });\n AXTranslator.load('fa', {\n 'widget-board': {\n 'configurable-props': 'ویژگی های قابل تنظیم',\n configure: 'پیکر بندی ابزارک',\n },\n });\n }\n}\n","import { NO_ERRORS_SCHEMA, NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { FormsModule } from '@angular/forms';\n\nimport { AXWidgetSizePropertyEditorComponent } from './widget-size.editor';\nimport { AXNumberBoxModule } from '@acorex/components';\n\n@NgModule({\n declarations: [AXWidgetSizePropertyEditorComponent],\n imports: [CommonModule, FormsModule, AXNumberBoxModule],\n exports: [AXWidgetSizePropertyEditorComponent],\n providers: [],\n schemas: [NO_ERRORS_SCHEMA],\n})\nexport class AXWidgetSizePropertyEditorModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":["i3","i1","i2.AXWidgetHostComponent"],"mappings":"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"}
1
+ {"version":3,"file":"acorex-layout.mjs","sources":["../tmp-esm2022/lib/widget-board/widget.class.js","../tmp-esm2022/lib/widget-board/widget-config.component.js","../tmp-esm2022/lib/widget-board/widget-save.component.js","../tmp-esm2022/lib/widget-board/widget-host.component.js","../tmp-esm2022/lib/widget-board/widget-board.component.js","../tmp-esm2022/lib/widget-board/editors/widget-size-editor/widget-size.editor.js","../tmp-esm2022/lib/widget-board/widget-board.module.js","../tmp-esm2022/lib/widget-board/editors/widget-size-editor/widget-size.module.js","../tmp-esm2022/acorex-layout.js"],"sourcesContent":["import { __decorate, __metadata } from \"tslib\";\nimport { EventEmitter, Injectable } from '@angular/core';\nimport { propertyEditor } from '@acorex/components';\nimport { AXHtmlUtil, AXTranslator } from '@acorex/core';\nimport * as i0 from \"@angular/core\";\n// @dynamic\n// TODO: Add Angular decorator.\nexport class AXWidgetComponent {\n uid = AXHtmlUtil.getUID();\n provideValue;\n onBusyChanged = new EventEmitter();\n _isBusy = true;\n get isBusy() {\n return this._isBusy;\n }\n set isBusy(v) {\n if (v !== this._isBusy) {\n const eventData = {\n component: this,\n oldValue: this._isBusy,\n value: v\n };\n this._isBusy = v;\n this.onBusyChanged.emit(eventData);\n }\n }\n widgetSize;\n refreshRate = [{\n id: 60000 * 5,\n text: AXTranslator.get('dateTime.duration.format_minute').replace('{0}', '5')\n }];\n // ???\n getRefreshRate() {\n return Array.isArray(this.refreshRate) && this.refreshRate.length ? this.refreshRate[0].id : this.refreshRate;\n }\n intervalId;\n constructor() {\n this.onConfiguredChanged.subscribe(() => {\n if (this.isConfigured === true && this.getRefreshRate()) {\n this.restartRefreshTimer();\n }\n else {\n this.stopRefreshTimer();\n }\n });\n }\n startRefreshTimer() {\n this.intervalId = window.setInterval(this.refresh.bind(this), this.getRefreshRate());\n }\n stopRefreshTimer() {\n window.clearInterval(this.intervalId);\n }\n restartRefreshTimer() {\n this.stopRefreshTimer();\n this.startRefreshTimer();\n }\n ngOnDestroy() {\n this.stopRefreshTimer();\n }\n redraw() {\n }\n refresh() {\n this.restartRefreshTimer();\n }\n onConfiguredChanged = new EventEmitter();\n get isConfigured() {\n return true;\n }\n setValue(name, value) {\n this[name] = value;\n this.onConfiguredChanged.emit();\n }\n getValue(name) {\n const val = this[name];\n const config = this['__meta__'].config;\n const runtime = config.props[name]?.runtime;\n if (runtime && this.provideValue) {\n const res = this.provideValue({\n name,\n value: val,\n uniqueName: config.uniqueName,\n options: config.options,\n });\n if (this.provideValue instanceof Promise) {\n return res;\n }\n else {\n return Promise.resolve(res);\n }\n }\n return Promise.resolve(val);\n }\n static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.3.3\", ngImport: i0, type: AXWidgetComponent, deps: [], target: i0.ɵɵFactoryTarget.Injectable });\n static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: \"12.0.0\", version: \"20.3.3\", ngImport: i0, type: AXWidgetComponent });\n}\n__decorate([\n propertyEditor({\n editorClass: 'ax/editors/widget-size',\n title: 'common.size',\n visible: false,\n order: -99,\n }),\n __metadata(\"design:type\", Array)\n], AXWidgetComponent.prototype, \"widgetSize\", void 0);\n__decorate([\n propertyEditor({\n editorClass: 'ax/editors/select',\n title: 'common.refresh-rate',\n visible: true,\n order: -98,\n editorOptions: {\n items: () => {\n return ['بدون مقدار', 1, 2, 3, 5, 10, 20, 30, 60].map(c => ({\n id: typeof (c) === 'number' ? 60000 * c : 0,\n text: typeof (c) === 'number' ? AXTranslator.get('dateTime.duration.format_minute').replace('{0}', c.toString()) : c\n }));\n },\n allowNull: false,\n allowSearch: false,\n selectionDataMode: 'value',\n selectionMode: 'single',\n valueField: 'id',\n }\n }),\n __metadata(\"design:type\", Object)\n], AXWidgetComponent.prototype, \"refreshRate\", void 0);\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.3.3\", ngImport: i0, type: AXWidgetComponent, decorators: [{\n type: Injectable\n }], ctorParameters: () => [], propDecorators: { widgetSize: [], refreshRate: [] } });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoid2lkZ2V0LmNsYXNzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9sYXlvdXQvc3JjL2xpYi93aWRnZXQtYm9hcmQvd2lkZ2V0LmNsYXNzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQSxPQUFPLEVBQUUsWUFBWSxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUN6RCxPQUFPLEVBQTZCLGNBQWMsRUFBZSxNQUFNLG9CQUFvQixDQUFDO0FBQzVGLE9BQU8sRUFBRSxVQUFVLEVBQUUsWUFBWSxFQUFFLE1BQU0sY0FBYyxDQUFDOztBQTBDeEQsV0FBVztBQUNYLCtCQUErQjtBQUUvQixNQUFNLE9BQWdCLGlCQUFpQjtJQUUxQixHQUFHLEdBQVcsVUFBVSxDQUFDLE1BQU0sRUFBRSxDQUFDO0lBQzNDLFlBQVksQ0FBa0I7SUFFOUIsYUFBYSxHQUF3QyxJQUFJLFlBQVksRUFBeUIsQ0FBQztJQUV2RixPQUFPLEdBQVksSUFBSSxDQUFDO0lBQ2hDLElBQVcsTUFBTTtRQUNiLE9BQU8sSUFBSSxDQUFDLE9BQU8sQ0FBQztJQUN4QixDQUFDO0lBQ0QsSUFBVyxNQUFNLENBQUMsQ0FBVTtRQUN4QixJQUFJLENBQUMsS0FBSyxJQUFJLENBQUMsT0FBTyxFQUFFLENBQUM7WUFDckIsTUFBTSxTQUFTLEdBQTBCO2dCQUNyQyxTQUFTLEVBQUUsSUFBSTtnQkFDZixRQUFRLEVBQUUsSUFBSSxDQUFDLE9BQU87Z0JBQ3RCLEtBQUssRUFBRSxDQUFDO2FBQ1gsQ0FBQztZQUNGLElBQUksQ0FBQyxPQUFPLEdBQUcsQ0FBQyxDQUFDO1lBQ2pCLElBQUksQ0FBQyxhQUFhLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxDQUFDO1FBQ3ZDLENBQUM7SUFDTCxDQUFDO0lBUUQsVUFBVSxDQUFXO0lBcUJyQixXQUFXLEdBQVEsQ0FBQztZQUNoQixFQUFFLEVBQUUsS0FBSyxHQUFHLENBQUM7WUFDYixJQUFJLEVBQUUs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O3dEQThCUCxVQUFVLE1BcUJWLFdBQVciLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBFdmVudEVtaXR0ZXIsIEluamVjdGFibGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEFYVmFsdWVFdmVudCwgQVhCYXNlRXZlbnQsIHByb3BlcnR5RWRpdG9yLCBBWERhdGFFdmVudCB9IGZyb20gJ0BhY29yZXgvY29tcG9uZW50cyc7XG5pbXBvcnQgeyBBWEh0bWxVdGlsLCBBWFRyYW5zbGF0b3IgfSBmcm9tICdAYWNvcmV4L2NvcmUnO1xuXG5leHBvcnQgaW50ZXJmYWNlIEFYV2lkZ2V0Q29uZmlnIHtcbiAgICB1bmlxdWVOYW1lOiBzdHJpbmc7XG4gICAgY29tcG9uZW50OiBhbnk7XG4gICAgdGl0bGU6IHN0cmluZztcbiAgICBzaXplWDogbnVtYmVyO1xuICAgIHNpemVZOiBudW1iZXI7XG4gICAgY29sPzogbnVtYmVyO1xuICAgIHJvdz86IG51bWJlcjtcbiAgICBvcHRpb25zPzogYW55O1xuICAgIHByb3BzPzogYW55O1xuICAgIHJlYWRvbmx5PzogYm9vbGVhbjtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBBWFdpZGdldENvbmZpZ0NoYW5nZWQgZXh0ZW5kcyBBWEJhc2VFdmVudCB7XG4gICAgY29uZmlnOiBBWFdpZGdldENvbmZpZztcbn1cblxuXG5cbmV4cG9ydCBpbnRlcmZhY2UgQVhXaWRnZXRCb2FyZENvbmZpZ0NoYW5nZWQgZXh0ZW5kcyBBWEJhc2VFdmVudCB7XG4gICAgbW9kZTogJ2NsZWFyJyB8ICdhZGQnIHwgJ3JlbW92ZScgfCAnbG9hZCcgfCAnY29uZmlnJztcbn1cblxuZXhwb3J0IGludGVyZmFjZSBBWFdpZGdldENvbmZpZ1NhdmVkRXZlbnQgZXh0ZW5kcyBBWERhdGFFdmVudDxBWFdpZGdldFNhdmVBc0RhdGE+IHtcblxufVxuXG5cbmV4cG9ydCBpbnRlcmZhY2UgQVhXaWRnZXRTYXZlQXNEYXRhIHtcbiAgICB0aXRsZT86IHN0cmluZztcbiAgICBkZXNjcmlwdGlvbj86IHN0cmluZztcbiAgICBpY29uPzogc3RyaW5nO1xuICAgIGdyb3VwPzogc3RyaW5nO1xuICAgIC8vXG4gICAgdW5pcXVlTmFtZTogc3RyaW5nO1xuICAgIGNvbXBvbmVudDogYW55O1xuICAgIG9wdGlvbnM/OiBhbnk7XG4gICAgcHJvcHM/OiBhbnk7XG59XG5cbi8vIEBkeW5hbWljXG4vLyBUT0RPOiBBZGQgQW5ndWxhciBkZWNvcmF0b3IuXG5ASW5qZWN0YWJsZSgpXG5leHBvcnQgYWJzdHJhY3QgY2xhc3MgQVhXaWRnZXRDb21wb25lbnQge1xuXG4gICAgcmVhZG9ubHkgdWlkOiBzdHJpbmcgPSBBWEh0bWxVdGlsLmdldFVJRCgpO1xuICAgIHByb3ZpZGVWYWx1ZTogKGU6IGFueSkgPT4gYW55O1xuXG4gICAgb25CdXN5Q2hhbmdlZDogRXZlbnRFbWl0dGVyPEFYVmFsdWVFdmVudDxib29sZWFuPj4gPSBuZXcgRXZlbnRFbWl0dGVyPEFYVmFsdWVFdmVudDxib29sZWFuPj4oKTtcblxuICAgIHByaXZhdGUgX2lzQnVzeTogYm9vbGVhbiA9IHRydWU7XG4gICAgcHVibGljIGdldCBpc0J1c3koKTogYm9vbGVhbiB7XG4gICAgICAgIHJldHVybiB0aGlzLl9pc0J1c3k7XG4gICAgfVxuICAgIHB1YmxpYyBzZXQgaXNCdXN5KHY6IGJvb2xlYW4pIHtcbiAgICAgICAgaWYgKHYgIT09IHRoaXMuX2lzQnVzeSkge1xuICAgICAgICAgICAgY29uc3QgZXZlbnREYXRhOiBBWFZhbHVlRXZlbnQ8Ym9vbGVhbj4gPSB7XG4gICAgICAgICAgICAgICAgY29tcG9uZW50OiB0aGlzLFxuICAgICAgICAgICAgICAgIG9sZFZhbHVlOiB0aGlzLl9pc0J1c3ksXG4gICAgICAgICAgICAgICAgdmFsdWU6IHZcbiAgICAgICAgICAgIH07XG4gICAgICAgICAgICB0aGlzLl9pc0J1c3kgPSB2O1xuICAgICAgICAgICAgdGhpcy5vbkJ1c3lDaGFuZ2VkLmVtaXQoZXZlbnREYXRhKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIEBwcm9wZXJ0eUVkaXRvcih7XG4gICAgICAgIGVkaXRvckNsYXNzOiAnYXgvZWRpdG9ycy93aWRnZXQtc2l6ZScsXG4gICAgICAgIHRpdGxlOiAnY29tbW9uLnNpemUnLFxuICAgICAgICB2aXNpYmxlOiBmYWxzZSxcbiAgICAgICAgb3JkZXI6IC05OSxcbiAgICB9KVxuICAgIHdpZGdldFNpemU6IG51bWJlcltdO1xuXG4gICAgQHByb3BlcnR5RWRpdG9yKHtcbiAgICAgICAgZWRpdG9yQ2xhc3M6ICdheC9lZGl0b3JzL3NlbGVjdCcsXG4gICAgICAgIHRpdGxlOiAnY29tbW9uLnJlZnJlc2gtcmF0ZScsXG4gICAgICAgIHZpc2libGU6IHRydWUsXG4gICAgICAgIG9yZGVyOiAtOTgsXG4gICAgICAgIGVkaXRvck9wdGlvbnM6IHtcbiAgICAgICAgICAgIGl0ZW1zOiAoKSA9PiB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIFsn2KjYr9mI2YYg2YXZgtiv2KfYsScsIDEsIDIsIDMsIDUsIDEwLCAyMCwgMzAsIDYwXS5tYXAoYyA9PiAoe1xuICAgICAgICAgICAgICAgICAgICBpZDogdHlwZW9mKGMpID09PSAnbnVtYmVyJyA/IDYwMDAwICogYyA6IDAsXG4gICAgICAgICAgICAgICAgICAgIHRleHQ6IHR5cGVvZihjKSA9PT0gJ251bWJlcicgPyBBWFRyYW5zbGF0b3IuZ2V0KCdkYXRlVGltZS5kdXJhdGlvbi5mb3JtYXRfbWludXRlJykucmVwbGFjZSgnezB9JywgYy50b1N0cmluZygpKSA6IGNcbiAgICAgICAgICAgICAgICB9KSk7XG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgYWxsb3dOdWxsOiBmYWxzZSxcbiAgICAgICAgICAgIGFsbG93U2VhcmNoOiBmYWxzZSxcbiAgICAgICAgICAgIHNlbGVjdGlvbkRhdGFNb2RlOiAndmFsdWUnLFxuICAgICAgICAgICAgc2VsZWN0aW9uTW9kZTogJ3NpbmdsZScsXG4gICAgICAgICAgICB2YWx1ZUZpZWxkOiAnaWQnLFxuICAgICAgICB9XG4gICAgfSlcbiAgICByZWZyZXNoUmF0ZTogYW55ID0gW3tcbiAgICAgICAgaWQ6IDYwMDAwICogNSxcbiAgICAgICAgdGV4dDogQVhUcmFuc2xhdG9yLmdldCgnZGF0ZVRpbWUuZHVyYXRpb24uZm9ybWF0X21pbnV0ZScpLnJlcGxhY2UoJ3swfScsICc1JylcbiAgICB9XTtcblxuICAgIC8vID8/P1xuICAgIGdldFJlZnJlc2hSYXRlKCkge1xuICAgICAgICByZXR1cm4gQXJyYXkuaXNBcnJheSh0aGlzLnJlZnJlc2hSYXRlKSAmJiB0aGlzLnJlZnJlc2hSYXRlLmxlbmd0aCA/IHRoaXMucmVmcmVzaFJhdGVbMF0uaWQgOiB0aGlzLnJlZnJlc2hSYXRlO1xuICAgIH1cblxuICAgIHByaXZhdGUgaW50ZXJ2YWxJZDogbnVtYmVyO1xuXG4gICAgY29uc3RydWN0b3IoKSB7XG4gICAgICAgIHRoaXMub25Db25maWd1cmVkQ2hhbmdlZC5zdWJzY3JpYmUoKCkgPT4ge1xuICAgICAgICAgICAgaWYgKHRoaXMuaXNDb25maWd1cmVkID09PSB0cnVlICYmIHRoaXMuZ2V0UmVmcmVzaFJhdGUoKSkge1xuICAgICAgICAgICAgICAgIHRoaXMucmVzdGFydFJlZnJlc2hUaW1lcigpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgZWxzZSB7XG4gICAgICAgICAgICAgICAgdGhpcy5zdG9wUmVmcmVzaFRpbWVyKCk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH0pO1xuICAgIH1cblxuXG4gICAgcHJpdmF0ZSBzdGFydFJlZnJlc2hUaW1lcigpIHtcbiAgICAgICAgdGhpcy5pbnRlcnZhbElkID0gd2luZG93LnNldEludGVydmFsKHRoaXMucmVmcmVzaC5iaW5kKHRoaXMpLCB0aGlzLmdldFJlZnJlc2hSYXRlKCkpO1xuICAgIH1cblxuICAgIHByaXZhdGUgc3RvcFJlZnJlc2hUaW1lcigpIHtcbiAgICAgICAgd2luZG93LmNsZWFySW50ZXJ2YWwodGhpcy5pbnRlcnZhbElkKTtcbiAgICB9XG5cbiAgICBwcml2YXRlIHJlc3RhcnRSZWZyZXNoVGltZXIoKSB7XG4gICAgICAgIHRoaXMuc3RvcFJlZnJlc2hUaW1lcigpO1xuICAgICAgICB0aGlzLnN0YXJ0UmVmcmVzaFRpbWVyKCk7XG4gICAgfVxuXG4gICAgbmdPbkRlc3Ryb3koKSB7XG4gICAgICAgIHRoaXMuc3RvcFJlZnJlc2hUaW1lcigpO1xuICAgIH1cblxuICAgIHB1YmxpYyByZWRyYXcoKSB7XG5cbiAgICB9XG5cbiAgICBwdWJsaWMgcmVmcmVzaCgpIHtcbiAgICAgICAgdGhpcy5yZXN0YXJ0UmVmcmVzaFRpbWVyKCk7XG4gICAgfVxuXG4gICAgb25Db25maWd1cmVkQ2hhbmdlZDogRXZlbnRFbWl0dGVyPHZvaWQ+ID0gbmV3IEV2ZW50RW1pdHRlcjx2b2lkPigpO1xuXG4gICAgZ2V0IGlzQ29uZmlndXJlZCgpOiBib29sZWFuIHtcbiAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgfVxuXG4gICAgcHVibGljIHNldFZhbHVlKG5hbWU6IHN0cmluZywgdmFsdWU/OiBhbnkpIHtcbiAgICAgICAgdGhpc1tuYW1lXSA9IHZhbHVlO1xuICAgICAgICB0aGlzLm9uQ29uZmlndXJlZENoYW5nZWQuZW1pdCgpO1xuICAgIH1cblxuICAgIHB1YmxpYyBnZXRWYWx1ZShuYW1lOiBzdHJpbmcpOiBQcm9taXNlPGFueT4ge1xuICAgICAgICBjb25zdCB2YWwgPSB0aGlzW25hbWVdO1xuICAgICAgICBjb25zdCBjb25maWcgPSB0aGlzWydfX21ldGFfXyddLmNvbmZpZztcbiAgICAgICAgY29uc3QgcnVudGltZSA9IGNvbmZpZy5wcm9wc1tuYW1lXT8ucnVudGltZTtcbiAgICAgICAgaWYgKHJ1bnRpbWUgJiYgdGhpcy5wcm92aWRlVmFsdWUpIHtcbiAgICAgICAgICAgIGNvbnN0IHJlcyA9IHRoaXMucHJvdmlkZVZhbHVlKHtcbiAgICAgICAgICAgICAgICBuYW1lLFxuICAgICAgICAgICAgICAgIHZhbHVlOiB2YWwsXG4gICAgICAgICAgICAgICAgdW5pcXVlTmFtZTogY29uZmlnLnVuaXF1ZU5hbWUsXG4gICAgICAgICAgICAgICAgb3B0aW9uczogY29uZmlnLm9wdGlvbnMsXG4gICAgICAgICAgICB9KTtcbiAgICAgICAgICAgIGlmICh0aGlzLnByb3ZpZGVWYWx1ZSBpbnN0YW5jZW9mIFByb21pc2UpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gcmVzO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgZWxzZSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIFByb21pc2UucmVzb2x2ZShyZXMpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIHJldHVybiBQcm9taXNlLnJlc29sdmUodmFsKTtcbiAgICB9XG5cbn0iXX0=","import { Component, ViewEncapsulation, ChangeDetectionStrategy, ChangeDetectorRef, ViewChild } from '@angular/core';\nimport { AXBasePopupPageComponent, AXValidationFormComponent } from '@acorex/components';\nimport { AXTranslator } from '@acorex/core';\nimport * as i0 from \"@angular/core\";\nimport * as i1 from \"@acorex/components\";\nimport * as i2 from \"@acorex/core\";\nexport class AXWidgetConfigComponent extends AXBasePopupPageComponent {\n cdr;\n form;\n constructor(cdr) {\n super();\n this.cdr = cdr;\n }\n widget;\n props = [];\n displayProps = [];\n changes = [];\n context = {};\n getFooterButtons() {\n return [\n {\n name: 'okay',\n submitBehavior: true,\n text: AXTranslator.get('common.confirm'),\n style: 'success'\n },\n {\n name: 'cancel',\n cancelBehavior: true,\n text: AXTranslator.get('common.cancel'),\n style: 'danger blank'\n }\n ];\n }\n onFooterButtonClick(e) {\n if (e.name === 'cancel') {\n this.close();\n }\n if (e.name === 'okay') {\n this.form.validate().then(c => {\n if (c.result) {\n this.close(this.changes);\n }\n });\n }\n }\n handleValueChange(e) {\n const prop = this.changes.find(c => c.property.name === e.property.name);\n if (prop) {\n prop.value = e.value;\n }\n else {\n this.changes.push({ property: e.property, value: e.value });\n }\n this.updateContext();\n }\n ngOnInit() {\n this.displayProps = this.props.filter(c => c.property.visible !== false).sort((a, b) => a.property.order - b.property.order);\n this.updateContext();\n }\n updateContext() {\n const ctx = {};\n this.props.forEach(p => {\n ctx[p.property.name] = p.value;\n });\n this.changes.forEach(p => {\n ctx[p.property.name] = p.value;\n });\n this.context = ctx;\n }\n identify(index, item) {\n return item.property.name;\n }\n static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.3.3\", ngImport: i0, type: AXWidgetConfigComponent, deps: [{ token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component });\n static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: \"17.0.0\", version: \"20.3.3\", type: AXWidgetConfigComponent, isStandalone: false, selector: \"ng-component\", viewQueries: [{ propertyName: \"form\", first: true, predicate: AXValidationFormComponent, descendants: true }], usesInheritance: true, ngImport: i0, template: \"<ax-page>\\n <ax-page-content>\\n <div class=\\\"container\\\">\\n <ax-validation-form #form>\\n @for (p of displayProps; track identify($index, p)) {\\n <div class=\\\"row\\\">\\n <div class=\\\"col-12\\\">\\n <ax-label>{{p.property.title | trans}}</ax-label>\\n <ng-container ax-property-editor-renderer [property]=\\\"p\\\" [context]=\\\"context\\\" [host]=\\\"widget\\\" [validationForm]=\\\"form\\\"\\n (onValueChange)=\\\"handleValueChange($event)\\\">\\n </ng-container>\\n </div>\\n </div>\\n }\\n </ax-validation-form>\\n </div>\\n </ax-page-content>\\n</ax-page>\", dependencies: [{ kind: \"directive\", type: i1.AXPropertyEditorRendererDirective, selector: \"[ax-property-editor-renderer]\", inputs: [\"property\", \"validationForm\", \"context\", \"host\", \"groupId\"], outputs: [\"onValueChange\"] }, { kind: \"component\", type: i1.AXPageContentComponent, selector: \"ax-page-content\" }, { kind: \"component\", type: i1.AXPageComponent, selector: \"ax-page\" }, { kind: \"component\", type: i1.AXLabelComponent, selector: \"ax-label\", inputs: [\"size\"], outputs: [\"clickLabel\"] }, { kind: \"component\", type: i1.AXValidationFormComponent, selector: \"ax-validation-form\", inputs: [\"validateOn\"], outputs: [\"onInit\"] }, { kind: \"pipe\", type: i2.AXTranslatorPipe, name: \"trans\" }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.3.3\", ngImport: i0, type: AXWidgetConfigComponent, decorators: [{\n type: Component,\n args: [{ encapsulation: ViewEncapsulation.None, changeDetection: ChangeDetectionStrategy.OnPush, standalone: false, template: \"<ax-page>\\n <ax-page-content>\\n <div class=\\\"container\\\">\\n <ax-validation-form #form>\\n @for (p of displayProps; track identify($index, p)) {\\n <div class=\\\"row\\\">\\n <div class=\\\"col-12\\\">\\n <ax-label>{{p.property.title | trans}}</ax-label>\\n <ng-container ax-property-editor-renderer [property]=\\\"p\\\" [context]=\\\"context\\\" [host]=\\\"widget\\\" [validationForm]=\\\"form\\\"\\n (onValueChange)=\\\"handleValueChange($event)\\\">\\n </ng-container>\\n </div>\\n </div>\\n }\\n </ax-validation-form>\\n </div>\\n </ax-page-content>\\n</ax-page>\" }]\n }], ctorParameters: () => [{ type: i0.ChangeDetectorRef }], propDecorators: { form: [{\n type: ViewChild,\n args: [AXValidationFormComponent]\n }] } });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoid2lkZ2V0LWNvbmZpZy5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9saWJzL2xheW91dC9zcmMvbGliL3dpZGdldC1ib2FyZC93aWRnZXQtY29uZmlnLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvbGF5b3V0L3NyYy9saWIvd2lkZ2V0LWJvYXJkL3dpZGdldC1jb25maWcuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxpQkFBaUIsRUFBRSx1QkFBdUIsRUFBRSxpQkFBaUIsRUFBRSxTQUFTLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDcEgsT0FBTyxFQUFvQix3QkFBd0IsRUFBeUQseUJBQXlCLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQztBQUNsSyxPQUFPLEVBQWdCLFlBQVksRUFBRSxNQUFNLGNBQWMsQ0FBQzs7OztBQVcxRCxNQUFNLE9BQU8sdUJBQXdCLFNBQVEsd0JBQXdCO0lBSTdDO0lBRmtCLElBQUksQ0FBNEI7SUFFdEUsWUFBb0IsR0FBc0I7UUFDdEMsS0FBSyxFQUFFLENBQUM7UUFEUSxRQUFHLEdBQUgsR0FBRyxDQUFtQjtJQUUxQyxDQUFDO0lBR0QsTUFBTSxDQUFvQjtJQUMxQixLQUFLLEdBQXVCLEVBQUUsQ0FBQztJQUMvQixZQUFZLEdBQXVCLEVBQUUsQ0FBQztJQUd0QyxPQUFPLEdBQXVCLEVBQUUsQ0FBQztJQUVqQyxPQUFPLEdBQVEsRUFBRSxDQUFDO0lBR2xCLGdCQUFnQjtRQUNaLE9BQU87WUFDSDtnQkFDSSxJQUFJLEVBQUUsTUFBTTtnQkFDWixjQUFjLEVBQUUsSUFBSTtnQkFDcEIsSUFBSSxFQUFFLFlBQVksQ0FBQyxHQUFHLENBQUMsZ0JBQWdCLENBQUM7Z0JBQ3hDLEtBQUssRUFBRSxTQUFTO2FBQ25CO1lBQ0Q7Z0JBQ0ksSUFBSSxFQUFFLFFBQVE7Z0JBQ2QsY0FBYyxFQUFFLElB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ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgVmlld0VuY2Fwc3VsYXRpb24sIENoYW5nZURldGVjdGlvblN0cmF0ZWd5LCBDaGFuZ2VEZXRlY3RvclJlZiwgVmlld0NoaWxkIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBBWFByb3BlcnR5Q29uZmlnLCBBWEJhc2VQb3B1cFBhZ2VDb21wb25lbnQsIEFYTWVudUl0ZW1DbGlja0V2ZW50LCBBWFByb3BlcnlFZGl0b3JWYWx1ZUNoYW5nZUV2ZW50LCBBWFZhbGlkYXRpb25Gb3JtQ29tcG9uZW50IH0gZnJvbSAnQGFjb3JleC9jb21wb25lbnRzJztcbmltcG9ydCB7IEFYQnV0dG9uSXRlbSwgQVhUcmFuc2xhdG9yIH0gZnJvbSAnQGFjb3JleC9jb3JlJztcbmltcG9ydCB7IEFYV2lkZ2V0Q29tcG9uZW50IH0gZnJvbSAnLi93aWRnZXQuY2xhc3MnO1xuXG5cbkBDb21wb25lbnQoe1xuICAgIHRlbXBsYXRlVXJsOiAnLi93aWRnZXQtY29uZmlnLmNvbXBvbmVudC5odG1sJyxcbiAgICBlbmNhcHN1bGF0aW9uOiBWaWV3RW5jYXBzdWxhdGlvbi5Ob25lLFxuICAgIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICAgIHN0YW5kYWxvbmU6IGZhbHNlXG59KVxuXG5leHBvcnQgY2xhc3MgQVhXaWRnZXRDb25maWdDb21wb25lbnQgZXh0ZW5kcyBBWEJhc2VQb3B1cFBhZ2VDb21wb25lbnQge1xuXG4gICAgQFZpZXdDaGlsZChBWFZhbGlkYXRpb25Gb3JtQ29tcG9uZW50KSBmb3JtOiBBWFZhbGlkYXRpb25Gb3JtQ29tcG9uZW50O1xuXG4gICAgY29uc3RydWN0b3IocHJpdmF0ZSBjZHI6IENoYW5nZURldGVjdG9yUmVmKSB7XG4gICAgICAgIHN1cGVyKCk7XG4gICAgfVxuXG5cbiAgICB3aWRnZXQ6IEFYV2lkZ2V0Q29tcG9uZW50O1xuICAgIHByb3BzOiBBWFByb3BlcnR5Q29uZmlnW10gPSBbXTtcbiAgICBkaXNwbGF5UHJvcHM6IEFYUHJvcGVydHlDb25maWdbXSA9IFtdO1xuXG5cbiAgICBjaGFuZ2VzOiBBWFByb3BlcnR5Q29uZmlnW10gPSBbXTtcblxuICAgIGNvbnRleHQ6IGFueSA9IHt9O1xuXG5cbiAgICBnZXRGb290ZXJCdXR0b25zKCk6IEFYQnV0dG9uSXRlbVtdIHtcbiAgICAgICAgcmV0dXJuIFtcbiAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICBuYW1lOiAnb2theScsXG4gICAgICAgICAgICAgICAgc3VibWl0QmVoYXZpb3I6IHRydWUsXG4gICAgICAgICAgICAgICAgdGV4dDogQVhUcmFuc2xhdG9yLmdldCgnY29tbW9uLmNvbmZpcm0nKSxcbiAgICAgICAgICAgICAgICBzdHlsZTogJ3N1Y2Nlc3MnXG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgIG5hbWU6ICdjYW5jZWwnLFxuICAgICAgICAgICAgICAgIGNhbmNlbEJlaGF2aW9yOiB0cnVlLFxuICAgICAgICAgICAgICAgIHRleHQ6IEFYVHJhbnNsYXRvci5nZXQoJ2NvbW1vbi5jYW5jZWwnKSxcbiAgICAgICAgICAgICAgICBzdHlsZTogJ2RhbmdlciBibGFuaydcbiAgICAgICAgICAgIH1cbiAgICAgICAgXTtcbiAgICB9XG5cblxuXG5cblxuICAgIG9uRm9vdGVyQnV0dG9uQ2xpY2soZTogQVhNZW51SXRlbUNsaWNrRXZlbnQpIHtcbiAgICAgICAgaWYgKGUubmFtZSA9PT0gJ2NhbmNlbCcpIHtcbiAgICAgICAgICAgIHRoaXMuY2xvc2UoKTtcbiAgICAgICAgfVxuICAgICAgICBpZiAoZS5uYW1lID09PSAnb2theScpIHtcbiAgICAgICAgICAgIHRoaXMuZm9ybS52YWxpZGF0ZSgpLnRoZW4oYyA9PiB7XG4gICAgICAgICAgICAgICAgaWYgKGMucmVzdWx0KSB7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuY2xvc2UodGhpcy5jaGFuZ2VzKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIGhhbmRsZVZhbHVlQ2hhbmdlKGU6IEFYUHJvcGVyeUVkaXRvclZhbHVlQ2hhbmdlRXZlbnQpIHtcbiAgICAgICAgY29uc3QgcHJvcCA9IHRoaXMuY2hhbmdlcy5maW5kKGMgPT4gYy5wcm9wZXJ0eS5uYW1lID09PSBlLnByb3BlcnR5Lm5hbWUpO1xuICAgICAgICBpZiAocHJvcCkge1xuICAgICAgICAgICAgcHJvcC52YWx1ZSA9IGUudmFsdWU7XG4gICAgICAgIH1cbiAgICAgICAgZWxzZSB7XG4gICAgICAgICAgICB0aGlzLmNoYW5nZXMucHVzaCh7IHByb3BlcnR5OiBlLnByb3BlcnR5LCB2YWx1ZTogZS52YWx1ZSB9KTtcbiAgICAgICAgfVxuICAgICAgICB0aGlzLnVwZGF0ZUNvbnRleHQoKTtcbiAgICB9XG5cbiAgICBuZ09uSW5pdCgpIHtcbiAgICAgICAgdGhpcy5kaXNwbGF5UHJvcHMgPSB0aGlzLnByb3BzLmZpbHRlcihjID0+IGMucHJvcGVydHkudmlzaWJsZSAhPT0gZmFsc2UpLnNvcnQoKGEsIGIpID0+IGEucHJvcGVydHkub3JkZXIgLSBiLnByb3BlcnR5Lm9yZGVyKTtcbiAgICAgICAgdGhpcy51cGRhdGVDb250ZXh0KCk7XG4gICAgfVxuXG5cbiAgICBwcml2YXRlIHVwZGF0ZUNvbnRleHQoKSB7XG4gICAgICAgIGNvbnN0IGN0eCA9IHt9O1xuICAgICAgICB0aGlzLnByb3BzLmZvckVhY2gocCA9PiB7XG4gICAgICAgICAgICBjdHhbcC5wcm9wZXJ0eS5uYW1lXSA9IHAudmFsdWU7XG4gICAgICAgIH0pO1xuICAgICAgICB0aGlzLmNoYW5nZXMuZm9yRWFjaChwID0+IHtcbiAgICAgICAgICAgIGN0eFtwLnByb3BlcnR5Lm5hbWVdID0gcC52YWx1ZTtcbiAgICAgICAgfSk7XG4gICAgICAgIHRoaXMuY29udGV4dCA9IGN0eDtcbiAgICB9XG5cblxuICAgIGlkZW50aWZ5KGluZGV4LCBpdGVtOiBBWFByb3BlcnR5Q29uZmlnKSB7XG4gICAgICAgIHJldHVybiBpdGVtLnByb3BlcnR5Lm5hbWU7XG4gICAgfVxuXG59IiwiPGF4LXBhZ2U+XG4gIDxheC1wYWdlLWNvbnRlbnQ+XG4gICAgPGRpdiBjbGFzcz1cImNvbnRhaW5lclwiPlxuICAgICAgPGF4LXZhbGlkYXRpb24tZm9ybSAjZm9ybT5cbiAgICAgICAgQGZvciAocCBvZiBkaXNwbGF5UHJvcHM7IHRyYWNrIGlkZW50aWZ5KCRpbmRleCwgcCkpIHtcbiAgICAgICAgICA8ZGl2IGNsYXNzPVwicm93XCI+XG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY29sLTEyXCI+XG4gICAgICAgICAgICAgIDxheC1sYWJlbD57e3AucHJvcGVydHkudGl0bGUgfCB0cmFuc319PC9heC1sYWJlbD5cbiAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lciBheC1wcm9wZXJ0eS1lZGl0b3ItcmVuZGVyZXIgW3Byb3BlcnR5XT1cInBcIiBbY29udGV4dF09XCJjb250ZXh0XCIgW2hvc3RdPVwid2lkZ2V0XCIgIFt2YWxpZGF0aW9uRm9ybV09XCJmb3JtXCJcbiAgICAgICAgICAgICAgICAob25WYWx1ZUNoYW5nZSk9XCJoYW5kbGVWYWx1ZUNoYW5nZSgkZXZlbnQpXCI+XG4gICAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgPC9kaXY+XG4gICAgICAgIH1cbiAgICAgIDwvYXgtdmFsaWRhdGlvbi1mb3JtPlxuICAgIDwvZGl2PlxuICA8L2F4LXBhZ2UtY29udGVudD5cbjwvYXgtcGFnZT4iXX0=","import { Component, ViewEncapsulation, ChangeDetectionStrategy, } from '@angular/core';\nimport { AXHtmlUtil, AXObjectUtil, AXTranslator } from '@acorex/core';\nimport { AXBasePopupPageComponent } from '@acorex/components';\nimport * as i0 from \"@angular/core\";\nimport * as i1 from \"@acorex/components\";\nimport * as i2 from \"@acorex/core\";\nexport class AXWidgetSaveComponent extends AXBasePopupPageComponent {\n config;\n props = [];\n displayProps;\n data;\n getFooterButtons() {\n return [\n {\n name: 'okay',\n submitBehavior: true,\n text: AXTranslator.get('common.confirm'),\n style: 'ax success'\n },\n {\n name: 'cancel',\n cancelBehavior: true,\n text: AXTranslator.get('common.cancel'),\n style: 'ax light'\n }\n ];\n }\n ngOnInit() {\n const titleProp = this.props.find(c => c.property.name === 'title' || c.property.name === 'name');\n const title = titleProp?.value || this.config.title;\n const pp = {};\n this.props?.forEach(c => {\n pp[c.property.name] = c.property;\n });\n this.data = {\n component: this.config.component,\n title,\n uniqueName: `${this.config.uniqueName}-${AXHtmlUtil.getUID()}`,\n options: AXObjectUtil.deepJSONClone(this.config.options),\n props: AXObjectUtil.deepJSONClone(pp)\n };\n this.displayProps = this.props\n .filter(c => c.property.visible !== false)\n .sort((a, b) => a.property.order - b.property.order)\n .map(c => ({\n name: c.property.name,\n title: c.property.title,\n allow: true\n }));\n }\n onFooterButtonClick(e) {\n if (e.name === 'cancel') {\n this.close();\n }\n if (e.name === 'okay') {\n this.props.forEach(p => {\n const pp = this.displayProps.find(c => c.name === p.property.name);\n if (pp == null || !pp.allow) {\n let ppp = this.data.props[p.property.name];\n if (ppp) {\n ppp.visible = false;\n }\n else {\n ppp = { visible: false };\n }\n }\n });\n this.close(this.data);\n }\n }\n static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.3.3\", ngImport: i0, type: AXWidgetSaveComponent, deps: null, target: i0.ɵɵFactoryTarget.Component });\n static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: \"17.0.0\", version: \"20.3.3\", type: AXWidgetSaveComponent, isStandalone: false, selector: \"ng-component\", usesInheritance: true, ngImport: i0, template: \"<ax-page>\\n <ax-page-content>\\n <div class=\\\"container\\\">\\n <div class=\\\"row\\\">\\n <div class=\\\"col-12\\\">\\n <ax-form-group>\\n <ax-label>{{'common.title' | trans}}</ax-label>\\n <ax-text-box [(value)]=\\\"data.title\\\"></ax-text-box>\\n </ax-form-group>\\n </div>\\n </div>\\n <div class=\\\"row\\\">\\n <div class=\\\"col-12\\\">\\n <ax-form-group>\\n <ax-label>{{'common.description' | trans}}</ax-label>\\n <ax-text-area [(value)]=\\\"data.description\\\"></ax-text-area>\\n </ax-form-group>\\n </div>\\n </div>\\n <!-- <div class=\\\"row\\\">\\n <div class=\\\"col-12\\\">\\n <ax-form-group>\\n <ax-label>{{'common.uniquename' | trans}}</ax-label>\\n <ax-text-box></ax-text-box>\\n </ax-form-group>\\n </div>\\n </div> -->\\n <div class=\\\"row\\\" style=\\\"margin-block-end: var(--ax-size-md);margin-block-start: var(--ax-size-md);\\\">\\n <div class=\\\"col-12\\\">\\n <ax-fieldset caption=\\\"{{'widget-board.configurable-props' | trans}}\\\">\\n @for (prop of displayProps; track prop) {\\n <div class=\\\"row\\\">\\n <div class=\\\"col-12\\\" style=\\\"margin-block-end: var(--ax-size-sm)\\\">\\n <ax-check-box [(value)]=\\\"prop.allow\\\" label=\\\"{{ prop.title | trans }}\\\">\\n </ax-check-box>\\n </div>\\n </div>\\n }\\n </ax-fieldset>\\n </div>\\n </div>\\n </div>\\n</ax-page-content>\\n</ax-page>\", dependencies: [{ kind: \"component\", type: i1.AXPageContentComponent, selector: \"ax-page-content\" }, { kind: \"component\", type: i1.AXPageComponent, selector: \"ax-page\" }, { kind: \"component\", type: i1.AXLabelComponent, selector: \"ax-label\", inputs: [\"size\"], outputs: [\"clickLabel\"] }, { kind: \"component\", type: i1.AXTextAreaComponent, selector: \"ax-text-area\", inputs: [\"rows\", \"cols\", \"maxLength\"], outputs: [\"onBlur\", \"onFocus\"] }, { kind: \"component\", type: i1.AXFieldsetComponent, selector: \"ax-fieldset\", inputs: [\"size\", \"caption\", \"allowCollapse\"] }, { kind: \"component\", type: i1.AXTextBoxComponent, selector: \"ax-text-box\", inputs: [\"mask\", \"showMask\", \"type\", \"maxLength\", \"maskGuid\", \"maskPlaceholder\", \"maskKeepCharPositions\", \"leadZeroDateTime\"] }, { kind: \"component\", type: i1.AXFormGroupComponent, selector: \"ax-form-group\", inputs: [\"size\", \"labelMode\"], outputs: [\"labelModeChange\"] }, { kind: \"component\", type: i1.AXCheckBoxComponent, selector: \"ax-check-box\", inputs: [\"readonly\", \"disabled\", \"size\", \"label\", \"tabIndex\", \"indeterminate\", \"value\"], outputs: [\"onValueChanged\", \"valueChange\", \"onClick\"] }, { kind: \"pipe\", type: i2.AXTranslatorPipe, name: \"trans\" }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.3.3\", ngImport: i0, type: AXWidgetSaveComponent, decorators: [{\n type: Component,\n args: [{ encapsulation: ViewEncapsulation.None, changeDetection: ChangeDetectionStrategy.OnPush, standalone: false, template: \"<ax-page>\\n <ax-page-content>\\n <div class=\\\"container\\\">\\n <div class=\\\"row\\\">\\n <div class=\\\"col-12\\\">\\n <ax-form-group>\\n <ax-label>{{'common.title' | trans}}</ax-label>\\n <ax-text-box [(value)]=\\\"data.title\\\"></ax-text-box>\\n </ax-form-group>\\n </div>\\n </div>\\n <div class=\\\"row\\\">\\n <div class=\\\"col-12\\\">\\n <ax-form-group>\\n <ax-label>{{'common.description' | trans}}</ax-label>\\n <ax-text-area [(value)]=\\\"data.description\\\"></ax-text-area>\\n </ax-form-group>\\n </div>\\n </div>\\n <!-- <div class=\\\"row\\\">\\n <div class=\\\"col-12\\\">\\n <ax-form-group>\\n <ax-label>{{'common.uniquename' | trans}}</ax-label>\\n <ax-text-box></ax-text-box>\\n </ax-form-group>\\n </div>\\n </div> -->\\n <div class=\\\"row\\\" style=\\\"margin-block-end: var(--ax-size-md);margin-block-start: var(--ax-size-md);\\\">\\n <div class=\\\"col-12\\\">\\n <ax-fieldset caption=\\\"{{'widget-board.configurable-props' | trans}}\\\">\\n @for (prop of displayProps; track prop) {\\n <div class=\\\"row\\\">\\n <div class=\\\"col-12\\\" style=\\\"margin-block-end: var(--ax-size-sm)\\\">\\n <ax-check-box [(value)]=\\\"prop.allow\\\" label=\\\"{{ prop.title | trans }}\\\">\\n </ax-check-box>\\n </div>\\n </div>\\n }\\n </ax-fieldset>\\n </div>\\n </div>\\n </div>\\n</ax-page-content>\\n</ax-page>\" }]\n }] });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoid2lkZ2V0LXNhdmUuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9sYXlvdXQvc3JjL2xpYi93aWRnZXQtYm9hcmQvd2lkZ2V0LXNhdmUuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9sYXlvdXQvc3JjL2xpYi93aWRnZXQtYm9hcmQvd2lkZ2V0LXNhdmUuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUNILFNBQVMsRUFDVCxpQkFBaUIsRUFDakIsdUJBQXVCLEdBRTFCLE1BQU0sZUFBZSxDQUFDO0FBRXZCLE9BQU8sRUFBZ0IsVUFBVSxFQUFFLFlBQVksRUFBRSxZQUFZLEVBQUUsTUFBTSxjQUFjLENBQUM7QUFDcEYsT0FBTyxFQUEwQyx3QkFBd0IsRUFBRSxNQUFNLG9CQUFvQixDQUFDOzs7O0FBVXRHLE1BQU0sT0FBTyxxQkFBc0IsU0FBUSx3QkFBd0I7SUFDL0QsTUFBTSxDQUFpQjtJQUN2QixLQUFLLEdBQXVCLEVBQUUsQ0FBQztJQUMvQixZQUFZLENBQW9EO0lBRWhFLElBQUksQ0FBcUI7SUFFekIsZ0JBQWdCO1FBQ1osT0FBTztZQUNIO2dCQUNJLElBQUksRUFBRSxNQUFNO2dCQUNaLGNBQWMsRUFBRSxJQUFJO2dCQUNwQixJQUFJLEVBQUUsWUFBWSxDQUFDLEdBQUcsQ0FBQyxnQkFBZ0IsQ0FBQztnQkFDeEMsS0FBSyxFQUFFLFlBQVk7YUFDdEI7WUFDRDtnQkFDSSxJQUFJLEVBQUUsUUFBUTtnQkFDZCxjQUFjLEVBQUUsSUFBSTtnQkFDcEIsSUFBSSxFQUFFLFlBQVksQ0FBQyxHQUFHLENBQUMsZUFBZSxDQUFDO2dCQUN2QyxLQUFLLEVBQUUsVUFBVTthQUNwQjtTQUNKLENBQUM7SUFDTixDQUFDO0lBRUQsUUFBUTtRQUNKLE1BQU0sU0FBUyxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLENBQUMs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cUJBQXFCO2tCQU5qQyxTQUFTO29DQUVTLGlCQUFpQixDQUFDLElBQUksbUJBQ3BCLHVCQUF1QixDQUFDLE1BQU0sY0FDbkMsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gICAgQ29tcG9uZW50LFxuICAgIFZpZXdFbmNhcHN1bGF0aW9uLFxuICAgIENoYW5nZURldGVjdGlvblN0cmF0ZWd5LFxuXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQVhXaWRnZXRDb25maWcsIEFYV2lkZ2V0U2F2ZUFzRGF0YSB9IGZyb20gJy4vd2lkZ2V0LmNsYXNzJztcbmltcG9ydCB7IEFYQnV0dG9uSXRlbSwgQVhIdG1sVXRpbCwgQVhPYmplY3RVdGlsLCBBWFRyYW5zbGF0b3IgfSBmcm9tICdAYWNvcmV4L2NvcmUnO1xuaW1wb3J0IHsgQVhQcm9wZXJ0eUNvbmZpZywgQVhNZW51SXRlbUNsaWNrRXZlbnQsIEFYQmFzZVBvcHVwUGFnZUNvbXBvbmVudCB9IGZyb20gJ0BhY29yZXgvY29tcG9uZW50cyc7XG5cblxuXG5AQ29tcG9uZW50KHtcbiAgICB0ZW1wbGF0ZVVybDogXCIuL3dpZGdldC1zYXZlLmNvbXBvbmVudC5odG1sXCIsXG4gICAgZW5jYXBzdWxhdGlvbjogVmlld0VuY2Fwc3VsYXRpb24uTm9uZSxcbiAgICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgICBzdGFuZGFsb25lOiBmYWxzZVxufSlcbmV4cG9ydCBjbGFzcyBBWFdpZGdldFNhdmVDb21wb25lbnQgZXh0ZW5kcyBBWEJhc2VQb3B1cFBhZ2VDb21wb25lbnQge1xuICAgIGNvbmZpZzogQVhXaWRnZXRDb25maWc7XG4gICAgcHJvcHM6IEFYUHJvcGVydHlDb25maWdbXSA9IFtdO1xuICAgIGRpc3BsYXlQcm9wczogeyBuYW1lOiBzdHJpbmcsIHRpdGxlOiBzdHJpbmcsIGFsbG93OiBib29sZWFuIH1bXTtcblxuICAgIGRhdGE6IEFYV2lkZ2V0U2F2ZUFzRGF0YTtcblxuICAgIGdldEZvb3RlckJ1dHRvbnMoKTogQVhCdXR0b25JdGVtW10ge1xuICAgICAgICByZXR1cm4gW1xuICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgIG5hbWU6ICdva2F5JyxcbiAgICAgICAgICAgICAgICBzdWJtaXRCZWhhdmlvcjogdHJ1ZSxcbiAgICAgICAgICAgICAgICB0ZXh0OiBBWFRyYW5zbGF0b3IuZ2V0KCdjb21tb24uY29uZmlybScpLFxuICAgICAgICAgICAgICAgIHN0eWxlOiAnYXggc3VjY2VzcydcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgbmFtZTogJ2NhbmNlbCcsXG4gICAgICAgICAgICAgICAgY2FuY2VsQmVoYXZpb3I6IHRydWUsXG4gICAgICAgICAgICAgICAgdGV4dDogQVhUcmFuc2xhdG9yLmdldCgnY29tbW9uLmNhbmNlbCcpLFxuICAgICAgICAgICAgICAgIHN0eWxlOiAnYXggbGlnaHQnXG4gICAgICAgICAgICB9XG4gICAgICAgIF07XG4gICAgfVxuXG4gICAgbmdPbkluaXQoKSB7XG4gICAgICAgIGNvbnN0IHRpdGxlUHJvcCA9IHRoaXMucHJvcHMuZmluZChjID0+IGMucHJvcGVydHkubmFtZSA9PT0gJ3RpdGxlJyB8fCBjLnByb3BlcnR5Lm5hbWUgPT09ICduYW1lJyk7XG4gICAgICAgIGNvbnN0IHRpdGxlID0gdGl0bGVQcm9wPy52YWx1ZSB8fCB0aGlzLmNvbmZpZy50aXRsZTtcbiAgICAgICAgY29uc3QgcHA6IGFueSA9IHt9O1xuICAgICAgICB0aGlzLnByb3BzPy5mb3JFYWNoKGMgPT4ge1xuICAgICAgICAgICAgcHBbYy5wcm9wZXJ0eS5uYW1lXSA9IGMucHJvcGVydHk7XG4gICAgICAgIH0pO1xuICAgICAgICB0aGlzLmRhdGEgPSB7XG4gICAgICAgICAgICBjb21wb25lbnQ6IHRoaXMuY29uZmlnLmNvbXBvbmVudCxcbiAgICAgICAgICAgIHRpdGxlLFxuICAgICAgICAgICAgdW5pcXVlTmFtZTogYCR7dGhpcy5jb25maWcudW5pcXVlTmFtZX0tJHtBWEh0bWxVdGlsLmdldFVJRCgpfWAsXG4gICAgICAgICAgICBvcHRpb25zOiBBWE9iamVjdFV0aWwuZGVlcEpTT05DbG9uZSh0aGlzLmNvbmZpZy5vcHRpb25zKSxcbiAgICAgICAgICAgIHByb3BzOiBBWE9iamVjdFV0aWwuZGVlcEpTT05DbG9uZShwcClcbiAgICAgICAgfTtcbiAgICAgICAgdGhpcy5kaXNwbGF5UHJvcHMgPSB0aGlzLnByb3BzXG4gICAgICAgICAgICAuZmlsdGVyKGMgPT4gYy5wcm9wZXJ0eS52aXNpYmxlICE9PSBmYWxzZSlcbiAgICAgICAgICAgIC5zb3J0KChhLCBiKSA9PiBhLnByb3BlcnR5Lm9yZGVyIC0gYi5wcm9wZXJ0eS5vcmRlcilcbiAgICAgICAgICAgIC5tYXAoYyA9PiAoe1xuICAgICAgICAgICAgICAgIG5hbWU6IGMucHJvcGVydHkubmFtZSxcbiAgICAgICAgICAgICAgICB0aXRsZTogYy5wcm9wZXJ0eS50aXRsZSxcbiAgICAgICAgICAgICAgICBhbGxvdzogdHJ1ZVxuICAgICAgICAgICAgfSkpO1xuICAgIH1cblxuXG5cbiAgICBvbkZvb3RlckJ1dHRvbkNsaWNrKGU6IEFYTWVudUl0ZW1DbGlja0V2ZW50KSB7XG4gICAgICAgIGlmIChlLm5hbWUgPT09ICdjYW5jZWwnKSB7XG4gICAgICAgICAgICB0aGlzLmNsb3NlKCk7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKGUubmFtZSA9PT0gJ29rYXknKSB7XG4gICAgICAgICAgICB0aGlzLnByb3BzLmZvckVhY2gocCA9PiB7XG4gICAgICAgICAgICAgICAgY29uc3QgcHAgPSB0aGlzLmRpc3BsYXlQcm9wcy5maW5kKGMgPT4gYy5uYW1lID09PSBwLnByb3BlcnR5Lm5hbWUpO1xuICAgICAgICAgICAgICAgIGlmIChwcCA9PSBudWxsIHx8ICFwcC5hbGxvdykge1xuICAgICAgICAgICAgICAgICAgICBsZXQgcHBwID0gdGhpcy5kYXRhLnByb3BzW3AucHJvcGVydHkubmFtZV07XG4gICAgICAgICAgICAgICAgICAgIGlmIChwcHApIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHBwcC52aXNpYmxlID0gZmFsc2U7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBwcHAgPSB7IHZpc2libGU6IGZhbHNlIH07XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgICAgIHRoaXMuY2xvc2UodGhpcy5kYXRhKTtcbiAgICAgICAgfVxuICAgIH1cbn0iLCI8YXgtcGFnZT5cbiAgPGF4LXBhZ2UtY29udGVudD5cbiAgICA8ZGl2IGNsYXNzPVwiY29udGFpbmVyXCI+XG4gICAgICA8ZGl2IGNsYXNzPVwicm93XCI+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJjb2wtMTJcIj5cbiAgICAgICAgICA8YXgtZm9ybS1ncm91cD5cbiAgICAgICAgICAgIDxheC1sYWJlbD57eydjb21tb24udGl0bGUnIHwgdHJhbnN9fTwvYXgtbGFiZWw+XG4gICAgICAgICAgICA8YXgtdGV4dC1ib3ggWyh2YWx1ZSldPVwiZGF0YS50aXRsZVwiPjwvYXgtdGV4dC1ib3g+XG4gICAgICAgICAgPC9heC1mb3JtLWdyb3VwPlxuICAgICAgICA8L2Rpdj5cbiAgICAgIDwvZGl2PlxuICAgICAgPGRpdiBjbGFzcz1cInJvd1wiPlxuICAgICAgICA8ZGl2IGNsYXNzPVwiY29sLTEyXCI+XG4gICAgICAgICAgPGF4LWZvcm0tZ3JvdXA+XG4gICAgICAgICAgICA8YXgtbGFiZWw+e3snY29tbW9uLmRlc2NyaXB0aW9uJyB8IHRyYW5zfX08L2F4LWxhYmVsPlxuICAgICAgICAgICAgPGF4LXRleHQtYXJlYSBbKHZhbHVlKV09XCJkYXRhLmRlc2NyaXB0aW9uXCI+PC9heC10ZXh0LWFyZWE+XG4gICAgICAgICAgPC9heC1mb3JtLWdyb3VwPlxuICAgICAgICA8L2Rpdj5cbiAgICAgIDwvZGl2PlxuICAgICAgPCEtLSA8ZGl2IGNsYXNzPVwicm93XCI+XG4gICAgICA8ZGl2IGNsYXNzPVwiY29sLTEyXCI+XG4gICAgICAgIDxheC1mb3JtLWdyb3VwPlxuICAgICAgICAgIDxheC1sYWJlbD57eydjb21tb24udW5pcXVlbmFtZScgfCB0cmFuc319PC9heC1sYWJlbD5cbiAgICAgICAgICA8YXgtdGV4dC1ib3g+PC9heC10ZXh0LWJveD5cbiAgICAgICAgPC9heC1mb3JtLWdyb3VwPlxuICAgICAgPC9kaXY+XG4gICAgPC9kaXY+IC0tPlxuICAgIDxkaXYgY2xhc3M9XCJyb3dcIiBzdHlsZT1cIm1hcmdpbi1ibG9jay1lbmQ6IHZhcigtLWF4LXNpemUtbWQpO21hcmdpbi1ibG9jay1zdGFydDogdmFyKC0tYXgtc2l6ZS1tZCk7XCI+XG4gICAgICA8ZGl2IGNsYXNzPVwiY29sLTEyXCI+XG4gICAgICAgIDxheC1maWVsZHNldCBjYXB0aW9uPVwie3snd2lkZ2V0LWJvYXJkLmNvbmZpZ3VyYWJsZS1wcm9wcycgfCB0cmFuc319XCI+XG4gICAgICAgICAgQGZvciAocHJvcCBvZiBkaXNwbGF5UHJvcHM7IHRyYWNrIHByb3ApIHtcbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJyb3dcIj5cbiAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNvbC0xMlwiIHN0eWxlPVwibWFyZ2luLWJsb2NrLWVuZDogdmFyKC0tYXgtc2l6ZS1zbSlcIj5cbiAgICAgICAgICAgICAgICA8YXgtY2hlY2stYm94IFsodmFsdWUpXT1cInByb3AuYWxsb3dcIiBsYWJlbD1cInt7IHByb3AudGl0bGUgfCB0cmFucyB9fVwiPlxuICAgICAgICAgICAgICAgIDwvYXgtY2hlY2stYm94PlxuICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgIH1cbiAgICAgICAgPC9heC1maWVsZHNldD5cbiAgICAgIDwvZGl2PlxuICAgIDwvZGl2PlxuICA8L2Rpdj5cbjwvYXgtcGFnZS1jb250ZW50PlxuPC9heC1wYWdlPiJdfQ==","import { Component, ViewEncapsulation, Input, ElementRef, HostBinding, ComponentFactoryResolver, ViewChild, ViewContainerRef, Output, EventEmitter, ChangeDetectionStrategy, ChangeDetectorRef } from '@angular/core';\nimport { AXObjectUtil, AXRenderService } from '@acorex/core';\nimport { AXPopupService, AXPropertyDecorators, AXLoadingService } from '@acorex/components';\nimport { AXWidgetConfigComponent } from './widget-config.component';\nimport { AXTranslator } from '@acorex/core';\nimport { AXWidgetSaveComponent } from './widget-save.component';\nimport * as i0 from \"@angular/core\";\nimport * as i1 from \"@acorex/core\";\nimport * as i2 from \"@acorex/components\";\nexport class AXWidgetHostComponent {\n ref;\n componentFactoryResolver;\n rendererService;\n cdr;\n popup;\n loadingService;\n _widget;\n get widget() {\n return this._widget;\n }\n _hasProps = false;\n _hasMenu = false;\n provideValue;\n get element() {\n return this.ref.nativeElement;\n }\n configMenuItem = [\n {\n icon: 'far fa-ellipsis-h',\n items: []\n }\n ];\n onRemove = new EventEmitter();\n onConfigChanged = new EventEmitter();\n onResized = new EventEmitter();\n onSave = new EventEmitter();\n config;\n vc;\n readonly = false;\n componentRef;\n //private isLoading: boolean = true;\n // get isBusy() {\n // return this._widget?.isBusy || this.isLoading;\n // }\n _loadingId;\n _isLoading = false;\n get isLoading() {\n return this._isLoading;\n }\n set isLoading(v) {\n this._isLoading = v;\n if (this._loadingId && !v) {\n this.loadingService.hide(this._loadingId);\n this._loadingId = null;\n }\n if (v) {\n // this._loadingId = this.loadingService.show(this.ref.nativeElement);\n }\n }\n get isConfigured() {\n return this._widget?.isConfigured || false;\n }\n constructor(ref, componentFactoryResolver, rendererService, cdr, popup, loadingService) {\n this.ref = ref;\n this.componentFactoryResolver = componentFactoryResolver;\n this.rendererService = rendererService;\n this.cdr = cdr;\n this.popup = popup;\n this.loadingService = loadingService;\n }\n ngOnInit() {\n // this.isLoading = true;\n }\n async ngAfterViewInit() {\n let component;\n if (typeof this.config.component === 'string') {\n const route = await this.rendererService.findLoadedComponentByRoute(this.config.component, 20);\n component = route?.component;\n }\n else if (typeof this.config.component === 'function') {\n component = this.config.component;\n }\n if (component == null) {\n console.error(`Invalid Widget Component!`, this.config);\n this.onRemove.emit(this);\n return;\n }\n const widgetFactory = this.componentFactoryResolver.resolveComponentFactory(component);\n this.componentRef = this.vc.createComponent(widgetFactory);\n this._widget = this.componentRef.instance;\n this._widget.provideValue = this.provideValue;\n if (this._widget.onBusyChanged) {\n this._widget.onBusyChanged.subscribe((d) => {\n if (!this._widget.widgetSize) {\n this._widget.setValue('widgetSize', [this.sizeX, this.sizeY]);\n }\n else {\n this.setSizeFromOptions();\n }\n // this.isLoading = d.value;\n this.cdr.detectChanges();\n });\n }\n if (this._widget.onConfiguredChanged) {\n this._widget.onConfiguredChanged.subscribe(() => {\n this.setSizeFromOptions();\n });\n }\n //\n if (this.config.options) {\n Object.assign(this._widget, this.config.options);\n }\n this._hasProps = AXPropertyDecorators.getProperties(this._widget).length > 0;\n this.isLoading = false;\n this.config['__meta__'].instance = this;\n this._widget['__meta__'] = {};\n this._widget['__meta__'].config = this.config;\n //\n this.configMenuItem[0].items.push({\n name: 'refresh',\n icon: 'far fa-undo',\n text: AXTranslator.get('common.refresh'),\n onClick: () => {\n this?.widget?.refresh();\n }\n });\n //\n if (this._hasProps) {\n this.configMenuItem[0].items.push({\n name: 'configs',\n icon: 'far fa-cogs',\n text: AXTranslator.get('common.configs'),\n onClick: () => {\n this.openConfigDialog();\n }\n });\n }\n this.configMenuItem[0].items.push({\n name: 'save',\n icon: 'far fa-save',\n text: AXTranslator.get('common.save-as'),\n onClick: () => {\n this.openSaveDialog();\n }\n });\n if (true) {\n this.configMenuItem[0].items.push({\n name: 'remove',\n icon: 'far fa-times',\n style: 'ax danger blank',\n text: AXTranslator.get('common.remove'),\n onClick: () => {\n this.onRemove.emit(this);\n }\n });\n }\n this._hasMenu = this.configMenuItem[0].items.length > 0;\n this.cdr.detectChanges();\n }\n sizeX = 1;\n sizeY = 1;\n col = 1;\n row = 1;\n setSizeFromOptions() {\n this._widget.getValue('widgetSize').then(c => {\n const oldSizeX = this.sizeX;\n const oldSizeY = this.sizeY;\n if (c && Array.isArray(c) && (oldSizeX !== c[0] || oldSizeY !== c[1])) {\n this.config.sizeX = this.sizeX = c[0];\n this.config.sizeY = this.sizeY = c[1];\n this.onResized.emit({\n component: this._widget,\n config: this.config\n });\n }\n this.cdr.detectChanges();\n });\n }\n remove(e) {\n e.preventDefault();\n e.stopPropagation();\n if (!this.readonly)\n this.onRemove.emit(this);\n return false;\n }\n handleConfig(e) {\n e.preventDefault();\n e.stopPropagation();\n if (!this.readonly)\n this.openConfigDialog();\n return false;\n }\n openConfigDialog() {\n const ppp = this.getMergedProps();\n this.popup.open(AXWidgetConfigComponent, {\n title: AXTranslator.get('common.configs'),\n size: 'sm',\n data: {\n props: ppp.map(c => ({ property: c.options, value: this._widget[c.options.name] })),\n widget: this.widget\n }\n }).then(c => {\n if (c.data) {\n if (!this.config.options) {\n this.config.options = {};\n }\n c.data.forEach(p => {\n this._widget.setValue(p.property.name, p.value);\n this.config.options[p.property.name] = p.value;\n });\n this.emitConfigChanged();\n this._widget.redraw();\n this.cdr.detectChanges();\n }\n });\n }\n openSaveDialog() {\n const ppp = this.getMergedProps();\n this.popup.open(AXWidgetSaveComponent, {\n title: AXTranslator.get('common.save-as'),\n size: 'sm',\n data: {\n config: this.config,\n props: ppp.map(c => ({ property: c.options, value: this._widget[c.options.name] }))\n }\n }).then(c => {\n if (c.data) {\n this.onSave.emit({\n component: this._widget,\n data: c.data\n });\n }\n });\n }\n handleOptionClick(e) {\n e.preventDefault();\n e.stopPropagation();\n this.openConfigDialog();\n return false;\n }\n ngOnDestroy() {\n this.vc.clear();\n if (this.componentRef) {\n this.componentRef.destroy();\n }\n }\n getMergedProps() {\n const ppp = AXObjectUtil.deepCopy(AXPropertyDecorators.getProperties(this._widget));\n for (const key in this.config.props) {\n if (Object.prototype.hasOwnProperty.call(this.config.props, key)) {\n const newP = this.config.props[key];\n const existPropDec = ppp.find(p => p.property === key);\n if (existPropDec) {\n Object.assign(existPropDec.options, newP);\n }\n }\n }\n return ppp;\n }\n emitConfigChanged() {\n this.onConfigChanged.emit({\n component: this._widget,\n config: this.config\n });\n }\n static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.3.3\", ngImport: i0, type: AXWidgetHostComponent, deps: [{ token: i0.ElementRef }, { token: i0.ComponentFactoryResolver }, { token: i1.AXRenderService }, { token: i0.ChangeDetectorRef }, { token: i2.AXPopupService }, { token: i2.AXLoadingService }], target: i0.ɵɵFactoryTarget.Component });\n static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: \"17.0.0\", version: \"20.3.3\", type: AXWidgetHostComponent, isStandalone: false, selector: \"ax-widget-host\", inputs: { provideValue: \"provideValue\", config: \"config\", readonly: \"readonly\", sizeX: \"sizeX\", sizeY: \"sizeY\", col: \"col\", row: \"row\" }, outputs: { onRemove: \"onRemove\", onConfigChanged: \"onConfigChanged\", onResized: \"onResized\", onSave: \"onSave\" }, host: { attributes: { \"tabindex\": \"0\" }, properties: { \"attr.data-size-x\": \"this.sizeX\", \"attr.data-size-y\": \"this.sizeY\", \"attr.data-col\": \"this.col\", \"attr.data-row\": \"this.row\" }, classAttribute: \"ax widget-host\" }, viewQueries: [{ propertyName: \"vc\", first: true, predicate: [\"vc\"], descendants: true, read: ViewContainerRef }], ngImport: i0, template: \"<div class='widget-container'>\\n @if (!isConfigured) {\\n <div class=\\\"widget-config-overlay\\\" (click)=\\\"handleConfig($event)\\\">\\n <div class=\\\"widget-title\\\">{{config.title}}</div>\\n <div class=\\\"widget-config-box\\\">\\n <div class=\\\"config-title\\\">{{ 'widget-board.configure' | trans}}</div>\\n @if (!readonly) {\\n <div class=\\\"config-icon\\\"><i class=\\\"fas fa-cogs fa-5x\\\" aria-hidden=\\\"true\\\"></i></div>\\n }\\n </div>\\n </div>\\n }\\n <div class='widget-edit-overlay' >\\n <div class='widget-edit-menu'>\\n @if (_hasProps) {\\n <button class=\\\"widget-edit-menu-button\\\" (click)=\\\"handleConfig($event)\\\"\\n (mousedown)=\\\"$event.stopPropagation()\\\" (mouseup)=\\\"$event.stopPropagation()\\\">\\n <i class=\\\"far fa-cogs\\\" aria-hidden=\\\"true\\\"></i>\\n </button>\\n }\\n <button class=\\\"widget-edit-menu-button\\\" (click)=\\\"remove($event)\\\" (mousedown)=\\\"$event.stopPropagation()\\\"\\n (mouseup)=\\\"$event.stopPropagation()\\\">\\n <i class=\\\"far fa-times\\\" aria-hidden=\\\"true\\\"></i>\\n </button>\\n </div>\\n\\n </div>\\n @if (_hasMenu && !readonly) {\\n <div class=\\\"widget-options-menu\\\" >\\n <ax-menu [items]='configMenuItem' direction=\\\"horizontal\\\"></ax-menu>\\n </div>\\n }\\n <!-- <ax-loading-panel [visible]=\\\"isBusy\\\">\\n</ax-loading-panel> -->\\n<div class=\\\"widget-content\\\">\\n <ng-container #vc></ng-container>\\n</div>\\n</div>\", dependencies: [{ kind: \"component\", type: i2.AXMenuComponent, selector: \"ax-menu\", inputs: [\"menuTemplate\", \"rtl\", \"size\", \"selection\", \"mode\", \"target\", \"floatAlignment\", \"floatPlacemnet\", \"direction\", \"items\"], outputs: [\"onItemClick\"] }, { kind: \"pipe\", type: i1.AXTranslatorPipe, name: \"trans\" }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.3.3\", ngImport: i0, type: AXWidgetHostComponent, decorators: [{\n type: Component,\n args: [{ selector: 'ax-widget-host', host: { class: 'ax widget-host', tabindex: '0' }, encapsulation: ViewEncapsulation.None, changeDetection: ChangeDetectionStrategy.OnPush, standalone: false, template: \"<div class='widget-container'>\\n @if (!isConfigured) {\\n <div class=\\\"widget-config-overlay\\\" (click)=\\\"handleConfig($event)\\\">\\n <div class=\\\"widget-title\\\">{{config.title}}</div>\\n <div class=\\\"widget-config-box\\\">\\n <div class=\\\"config-title\\\">{{ 'widget-board.configure' | trans}}</div>\\n @if (!readonly) {\\n <div class=\\\"config-icon\\\"><i class=\\\"fas fa-cogs fa-5x\\\" aria-hidden=\\\"true\\\"></i></div>\\n }\\n </div>\\n </div>\\n }\\n <div class='widget-edit-overlay' >\\n <div class='widget-edit-menu'>\\n @if (_hasProps) {\\n <button class=\\\"widget-edit-menu-button\\\" (click)=\\\"handleConfig($event)\\\"\\n (mousedown)=\\\"$event.stopPropagation()\\\" (mouseup)=\\\"$event.stopPropagation()\\\">\\n <i class=\\\"far fa-cogs\\\" aria-hidden=\\\"true\\\"></i>\\n </button>\\n }\\n <button class=\\\"widget-edit-menu-button\\\" (click)=\\\"remove($event)\\\" (mousedown)=\\\"$event.stopPropagation()\\\"\\n (mouseup)=\\\"$event.stopPropagation()\\\">\\n <i class=\\\"far fa-times\\\" aria-hidden=\\\"true\\\"></i>\\n </button>\\n </div>\\n\\n </div>\\n @if (_hasMenu && !readonly) {\\n <div class=\\\"widget-options-menu\\\" >\\n <ax-menu [items]='configMenuItem' direction=\\\"horizontal\\\"></ax-menu>\\n </div>\\n }\\n <!-- <ax-loading-panel [visible]=\\\"isBusy\\\">\\n</ax-loading-panel> -->\\n<div class=\\\"widget-content\\\">\\n <ng-container #vc></ng-container>\\n</div>\\n</div>\" }]\n }], ctorParameters: () => [{ type: i0.ElementRef }, { type: i0.ComponentFactoryResolver }, { type: i1.AXRenderService }, { type: i0.ChangeDetectorRef }, { type: i2.AXPopupService }, { type: i2.AXLoadingService }], propDecorators: { provideValue: [{\n type: Input\n }], onRemove: [{\n type: Output\n }], onConfigChanged: [{\n type: Output\n }], onResized: [{\n type: Output\n }], onSave: [{\n type: Output\n }], config: [{\n type: Input\n }], vc: [{\n type: ViewChild,\n args: ['vc', { read: ViewContainerRef }]\n }], readonly: [{\n type: Input\n }], sizeX: [{\n type: HostBinding,\n args: ['attr.data-size-x']\n }, {\n type: Input\n }], sizeY: [{\n type: HostBinding,\n args: ['attr.data-size-y']\n }, {\n type: Input\n }], col: [{\n type: HostBinding,\n args: ['attr.data-col']\n }, {\n type: Input\n }], row: [{\n type: HostBinding,\n args: ['attr.data-row']\n }, {\n type: Input\n }] } });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoid2lkZ2V0LWhvc3QuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9sYXlvdXQvc3JjL2xpYi93aWRnZXQtYm9hcmQvd2lkZ2V0LWhvc3QuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9sYXlvdXQvc3JjL2xpYi93aWRnZXQtYm9hcmQvd2lkZ2V0LWhvc3QuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUNILFNBQVMsRUFDVCxpQkFBaUIsRUFBRSxLQUFLLEVBQ3hCLFVBQVUsRUFBRSxXQUFXLEVBQUUsd0JBQXdCLEVBQUUsU0FBUyxFQUM1RCxnQkFBZ0IsRUFBRSxNQUFNLEVBQUUsWUFBWSxFQUFFLHVCQUF1QixFQUMvRCxpQkFBaUIsRUFDcEIsTUFBTSxlQUFlLENBQUM7QUFFdkIsT0FBTyxFQUFFLFlBQVksRUFBRSxlQUFlLEVBQUUsTUFBTSxjQUFjLENBQUM7QUFDN0QsT0FBTyxFQUFFLGNBQWMsRUFBRSxvQkFBb0IsRUFBdUIsZ0JBQWdCLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQztBQUNqSCxPQUFPLEVBQUUsdUJBQXVCLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQztBQUVwRSxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sY0FBYyxDQUFDO0FBQzVDLE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxNQUFNLHlCQUF5QixDQUFDOzs7O0FBZWhFLE1BQU0sT0FBTyxxQkFBcUI7SUFxRmxCO0lBQ0E7SUFDQTtJQUNBO0lBQ0E7SUFDQTtJQXhGSixPQUFPLENBQW9CO0lBQ25DLElBQVcsTUFBTTtRQUNiLE9BQU8sSUFBSSxDQUFDLE9BQU8sQ0FBQztJQUN4QixDQUFDO0lBRUQsU0FBUyxHQUFZLEtBQUssQ0FBQztJQUczQixRQUFRLEdBQVksS0FBSyxDQUFDO0lBRzFCLFlBQVksQ0FBa0I7SUFHOUIsSUFBSSxPQUFPO1FBQ1AsT0FBTyxJQUFJ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QUVwQixFQUFFLEtBQUssRUFBRSxnQkFBZ0IsRUFBRSxRQUFRLEVBQUUsR0FBRyxFQUFFLGlCQUNqQyxpQkFBaUIsQ0FBQyxJQUFJLG1CQUNwQix1QkFBdUIsQ0FBQyxNQUFNLGNBQ25DLEtBQUs7Z1BBZ0JqQixZQUFZO3NCQURYLEtBQUs7Z0JBa0JOLFFBQVE7c0JBRFAsTUFBTTtnQkFJUCxlQUFlO3NCQURkLE1BQU07Z0JBS1AsU0FBUztzQkFEUixNQUFNO2dCQUlQLE1BQU07c0JBREwsTUFBTTtnQkFJUCxNQUFNO3NCQURMLEtBQUs7Z0JBSU4sRUFBRTtzQkFERCxTQUFTO3VCQUFDLElBQUksRUFBRSxFQUFFLElBQUksRUFBRSxnQkFBZ0IsRUFBRTtnQkFNM0MsUUFBUTtzQkFEUCxLQUFLO2dCQStJTixLQUFLO3NCQUZKLFdBQVc7dUJBQUMsa0JBQWtCOztzQkFDOUIsS0FBSztnQkFLTixLQUFLO3NCQUZKLFdBQVc7dUJBQUMsa0JBQWtCOztzQkFDOUIsS0FBSztnQkFLTixHQUFHO3NCQUZGLFdBQVc7dUJBQUMsZUFBZTs7c0JBQzNCLEtBQUs7Z0JBTU4sR0FBRztzQkFGRixXQUFXO3VCQUFDLGVBQWU7O3NCQUMzQixLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgICBDb21wb25lbnQsXG4gICAgVmlld0VuY2Fwc3VsYXRpb24sIElucHV0LFxuICAgIEVsZW1lbnRSZWYsIEhvc3RCaW5kaW5nLCBDb21wb25lbnRGYWN0b3J5UmVzb2x2ZXIsIFZpZXdDaGlsZCxcbiAgICBWaWV3Q29udGFpbmVyUmVmLCBPdXRwdXQsIEV2ZW50RW1pdHRlciwgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksXG4gICAgQ2hhbmdlRGV0ZWN0b3JSZWYsIENvbXBvbmVudFJlZlxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEFYV2lkZ2V0Q29uZmlnLCBBWFdpZGdldENvbXBvbmVudCwgQVhXaWRnZXRDb25maWdDaGFuZ2VkLCBBWFdpZGdldENvbmZpZ1NhdmVkRXZlbnQgfSBmcm9tICcuL3dpZGdldC5jbGFzcyc7XG5pbXBvcnQgeyBBWE9iamVjdFV0aWwsIEFYUmVuZGVyU2VydmljZSB9IGZyb20gJ0BhY29yZXgvY29yZSc7XG5pbXBvcnQgeyBBWFBvcHVwU2VydmljZSwgQVhQcm9wZXJ0eURlY29yYXRvcnMsIEFYUHJvcGVydHlEZWNvcmF0b3IsIEFYTG9hZGluZ1NlcnZpY2UgfSBmcm9tICdAYWNvcmV4L2NvbXBvbmVudHMnO1xuaW1wb3J0IHsgQVhXaWRnZXRDb25maWdDb21wb25lbnQgfSBmcm9tICcuL3dpZGdldC1jb25maWcuY29tcG9uZW50JztcbmltcG9ydCB7IEFYTWVudUl0ZW0gfSBmcm9tICdAYWNvcmV4L2NvcmUnO1xuaW1wb3J0IHsgQVhUcmFuc2xhdG9yIH0gZnJvbSAnQGFjb3JleC9jb3JlJztcbmltcG9ydCB7IEFYV2lkZ2V0U2F2ZUNvbXBvbmVudCB9IGZyb20gJy4vd2lkZ2V0LXNhdmUuY29tcG9uZW50JztcblxuXG5cblxuXG5AQ29tcG9uZW50KHtcbiAgICBzZWxlY3RvcjogJ2F4LXdpZGdldC1ob3N0JyxcbiAgICB0ZW1wbGF0ZVVybDogXCIuL3dpZGdldC1ob3N0LmNvbXBvbmVudC5odG1sXCIsXG4gICAgaG9zdDogeyBjbGFzczogJ2F4IHdpZGdldC1ob3N0JywgdGFiaW5kZXg6ICcwJyB9LFxuICAgIGVuY2Fwc3VsYXRpb246IFZpZXdFbmNhcHN1bGF0aW9uLk5vbmUsXG4gICAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gICAgc3RhbmRhbG9uZTogZmFsc2Vcbn0pXG5cbmV4cG9ydCBjbGFzcyBBWFdpZGdldEhvc3RDb21wb25lbnQge1xuXG4gICAgcHJpdmF0ZSBfd2lkZ2V0OiBBWFdpZGdldENvbXBvbmVudDtcbiAgICBwdWJsaWMgZ2V0IHdpZGdldCgpOiBBWFdpZGdldENvbXBvbmVudCB7XG4gICAgICAgIHJldHVybiB0aGlzLl93aWRnZXQ7XG4gICAgfVxuXG4gICAgX2hhc1Byb3BzOiBib29sZWFuID0gZmFsc2U7XG5cblxuICAgIF9oYXNNZW51OiBib29sZWFuID0gZmFsc2U7XG5cbiAgICBASW5wdXQoKVxuICAgIHByb3ZpZGVWYWx1ZTogKGU6IGFueSkgPT4gYW55O1xuXG5cbiAgICBnZXQgZWxlbWVudCgpOiBIVE1MRGl2RWxlbWVudCB7XG4gICAgICAgIHJldHVybiB0aGlzLnJlZi5uYXRpdmVFbGVtZW50O1xuICAgIH1cblxuXG4gICAgY29uZmlnTWVudUl0ZW06IEFYTWVudUl0ZW1bXSA9IFtcbiAgICAgICAge1xuICAgICAgICAgICAgaWNvbjogJ2ZhciBmYS1lbGxpcHNpcy1oJyxcbiAgICAgICAgICAgIGl0ZW1zOiBbXVxuICAgICAgICB9XG4gICAgXTtcblxuXG4gICAgQE91dHB1dCgpXG4gICAgb25SZW1vdmU6IEV2ZW50RW1pdHRlcjxBWFdpZGdldEhvc3RDb21wb25lbnQ+ID0gbmV3IEV2ZW50RW1pdHRlcjxBWFdpZGdldEhvc3RDb21wb25lbnQ+KCk7XG5cbiAgICBAT3V0cHV0KClcbiAgICBvbkNvbmZpZ0NoYW5nZWQ6IEV2ZW50RW1pdHRlcjxBWFdpZGdldENvbmZpZ0NoYW5nZWQ+ID0gbmV3IEV2ZW50RW1pdHRlcjxBWFdpZGdldENvbmZpZ0NoYW5nZWQ+KCk7XG5cblxuICAgIEBPdXRwdXQoKVxuICAgIG9uUmVzaXplZDogRXZlbnRFbWl0dGVyPEFYV2lkZ2V0Q29uZmlnQ2hhbmdlZD4gPSBuZXcgRXZlbnRFbWl0dGVyPEFYV2lkZ2V0Q29uZmlnQ2hhbmdlZD4oKTtcblxuICAgIEBPdXRwdXQoKVxuICAgIG9uU2F2ZTogRXZlbnRFbWl0dGVyPEFYV2lkZ2V0Q29uZmlnU2F2ZWRFdmVudD4gPSBuZXcgRXZlbnRFbWl0dGVyPEFYV2lkZ2V0Q29uZmlnU2F2ZWRFdmVudD4oKTtcblxuICAgIEBJbnB1dCgpXG4gICAgY29uZmlnOiBBWFdpZGdldENvbmZpZztcblxuICAgIEBWaWV3Q2hpbGQoJ3ZjJywgeyByZWFkOiBWaWV3Q29udGFpbmVyUmVmIH0pXG4gICAgdmM6IFZpZXdDb250YWluZXJSZWY7XG5cblxuXG4gICAgQElucHV0KClcbiAgICByZWFkb25seTogYm9vbGVhbiA9IGZhbHNlO1xuXG4gICAgcHJpdmF0ZSBjb21wb25lbnRSZWY6IENvbXBvbmVudFJlZjxhbnk+O1xuICAgIC8vcHJpdmF0ZSBpc0xvYWRpbmc6IGJvb2xlYW4gPSB0cnVlO1xuXG4gICAgLy8gZ2V0IGlzQnVzeSgpIHtcbiAgICAvLyAgICAgcmV0dXJuIHRoaXMuX3dpZGdldD8uaXNCdXN5IHx8IHRoaXMuaXNMb2FkaW5nO1xuICAgIC8vIH1cblxuXG4gICAgcHJpdmF0ZSBfbG9hZGluZ0lkOiBudW1iZXI7XG5cbiAgICBwcml2YXRlIF9pc0xvYWRpbmc6IGJvb2xlYW4gPSBmYWxzZTtcbiAgICBwdWJsaWMgZ2V0IGlzTG9hZGluZygpOiBib29sZWFuIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX2lzTG9hZGluZztcbiAgICB9XG4gICAgcHVibGljIHNldCBpc0xvYWRpbmcodjogYm9vbGVhbikge1xuICAgICAgICB0aGlzLl9pc0xvYWRpbmcgPSB2O1xuICAgICAgICBpZiAodGhpcy5fbG9hZGluZ0lkICYmICF2KSB7XG4gICAgICAgICAgICB0aGlzLmxvYWRpbmdTZXJ2aWNlLmhpZGUodGhpcy5fbG9hZGluZ0lkKTtcbiAgICAgICAgICAgIHRoaXMuX2xvYWRpbmdJZCA9IG51bGw7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKHYpIHtcbiAgICAgICAgICAgIC8vIHRoaXMuX2xvYWRpbmdJZCA9IHRoaXMubG9hZGluZ1NlcnZpY2Uuc2hvdyh0aGlzLnJlZi5uYXRpdmVFbGVtZW50KTtcbiAgICAgICAgfVxuICAgIH1cblxuXG4gICAgZ2V0IGlzQ29uZmlndXJlZCgpOiBib29sZWFuIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX3dpZGdldD8uaXNDb25maWd1cmVkIHx8IGZhbHNlO1xuICAgIH1cblxuXG4gICAgY29uc3RydWN0b3IoXG4gICAgICAgIHByaXZhdGUgcmVmOiBFbGVtZW50UmVmPEhUTUxEaXZFbGVtZW50PixcbiAgICAgICAgcHJpdmF0ZSBjb21wb25lbnRGYWN0b3J5UmVzb2x2ZXI6IENvbXBvbmVudEZhY3RvcnlSZXNvbHZlcixcbiAgICAgICAgcHJpdmF0ZSByZW5kZXJlclNlcnZpY2U6IEFYUmVuZGVyU2VydmljZSxcbiAgICAgICAgcHJpdmF0ZSBjZHI6IENoYW5nZURldGVjdG9yUmVmLFxuICAgICAgICBwcml2YXRlIHBvcHVwOiBBWFBvcHVwU2VydmljZSxcbiAgICAgICAgcHJpdmF0ZSBsb2FkaW5nU2VydmljZTogQVhMb2FkaW5nU2VydmljZVxuXG4gICAgKSB7XG5cbiAgICB9XG5cblxuICAgIG5nT25Jbml0KCkge1xuICAgICAgICAvLyB0aGlzLmlzTG9hZGluZyA9IHRydWU7XG4gICAgfVxuXG5cbiAgICBhc3luYyBuZ0FmdGVyVmlld0luaXQoKSB7XG4gICAgICAgIGxldCBjb21wb25lbnQ6IGFueTtcbiAgICAgICAgaWYgKHR5cGVvZiB0aGlzLmNvbmZpZy5jb21wb25lbnQgPT09ICdzdHJpbmcnKSB7XG4gICAgICAgICAgICBjb25zdCByb3V0ZSA9IGF3YWl0IHRoaXMucmVuZGVyZXJTZXJ2aWNlLmZpbmRMb2FkZWRDb21wb25lbnRCeVJvdXRlKHRoaXMuY29uZmlnLmNvbXBvbmVudCwgMjApO1xuICAgICAgICAgICAgY29tcG9uZW50ID0gcm91dGU/LmNvbXBvbmVudDtcbiAgICAgICAgfVxuICAgICAgICBlbHNlIGlmICh0eXBlb2YgdGhpcy5jb25maWcuY29tcG9uZW50ID09PSAnZnVuY3Rpb24nKSB7XG4gICAgICAgICAgICBjb21wb25lbnQgPSB0aGlzLmNvbmZpZy5jb21wb25lbnQ7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKGNvbXBvbmVudCA9PSBudWxsKSB7XG4gICAgICAgICAgICBjb25zb2xlLmVycm9yKGBJbnZhbGlkIFdpZGdldCBDb21wb25lbnQhYCwgdGhpcy5jb25maWcpO1xuICAgICAgICAgICAgdGhpcy5vblJlbW92ZS5lbWl0KHRoaXMpO1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG5cbiAgICAgICAgY29uc3Qgd2lkZ2V0RmFjdG9yeSA9IHRoaXMuY29tcG9uZW50RmFjdG9yeVJlc29sdmVyLnJlc29sdmVDb21wb25lbnRGYWN0b3J5KGNvbXBvbmVudCk7XG4gICAgICAgIHRoaXMuY29tcG9uZW50UmVmID0gdGhpcy52Yy5jcmVhdGVDb21wb25lbnQod2lkZ2V0RmFjdG9yeSk7XG4gICAgICAgIHRoaXMuX3dpZGdldCA9IHRoaXMuY29tcG9uZW50UmVmLmluc3RhbmNlIGFzIEFYV2lkZ2V0Q29tcG9uZW50O1xuICAgICAgICB0aGlzLl93aWRnZXQucHJvdmlkZVZhbHVlID0gdGhpcy5wcm92aWRlVmFsdWU7XG4gICAgICAgIGlmICh0aGlzLl93aWRnZXQub25CdXN5Q2hhbmdlZCkge1xuICAgICAgICAgICAgdGhpcy5fd2lkZ2V0Lm9uQnVzeUNoYW5nZWQuc3Vic2NyaWJlKChkKSA9PiB7XG4gICAgICAgICAgICAgICAgaWYgKCF0aGlzLl93aWRnZXQud2lkZ2V0U2l6ZSkge1xuICAgICAgICAgICAgICAgICAgICB0aGlzLl93aWRnZXQuc2V0VmFsdWUoJ3dpZGdldFNpemUnLCBbdGhpcy5zaXplWCwgdGhpcy5zaXplWV0pO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5zZXRTaXplRnJvbU9wdGlvbnMoKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgLy8gdGhpcy5pc0xvYWRpbmcgPSBkLnZhbHVlO1xuICAgICAgICAgICAgICAgIHRoaXMuY2RyLmRldGVjdENoYW5nZXMoKTtcbiAgICAgICAgICAgIH0pO1xuICAgICAgICB9XG4gICAgICAgIGlmICh0aGlzLl93aWRnZXQub25Db25maWd1cmVkQ2hhbmdlZCkge1xuICAgICAgICAgICAgdGhpcy5fd2lkZ2V0Lm9uQ29uZmlndXJlZENoYW5nZWQuc3Vic2NyaWJlKCgpID0+IHtcbiAgICAgICAgICAgICAgICB0aGlzLnNldFNpemVGcm9tT3B0aW9ucygpO1xuICAgICAgICAgICAgfSk7XG4gICAgICAgIH1cbiAgICAgICAgLy9cbiAgICAgICAgaWYgKHRoaXMuY29uZmlnLm9wdGlvbnMpIHtcbiAgICAgICAgICAgIE9iamVjdC5hc3NpZ24odGhpcy5fd2lkZ2V0LCB0aGlzLmNvbmZpZy5vcHRpb25zKTtcbiAgICAgICAgfVxuICAgICAgICB0aGlzLl9oYXNQcm9wcyA9IEFYUHJvcGVydHlEZWNvcmF0b3JzLmdldFByb3BlcnRpZXModGhpcy5fd2lkZ2V0KS5sZW5ndGggPiAwO1xuXG4gICAgICAgIHRoaXMuaXNMb2FkaW5nID0gZmFsc2U7XG4gICAgICAgIHRoaXMuY29uZmlnWydfX21ldGFfXyddLmluc3RhbmNlID0gdGhpcztcbiAgICAgICAgdGhpcy5fd2lkZ2V0WydfX21ldGFfXyddID0ge307XG4gICAgICAgIHRoaXMuX3dpZGdldFsnX19tZXRhX18nXS5jb25maWcgPSB0aGlzLmNvbmZpZztcbiAgICAgICAgLy9cbiAgICAgICAgdGhpcy5jb25maWdNZW51SXRlbVswXS5pdGVtcy5wdXNoKHtcbiAgICAgICAgICAgIG5hbWU6ICdyZWZyZXNoJyxcbiAgICAgICAgICAgIGljb246ICdmYXIgZmEtdW5kbycsXG4gICAgICAgICAgICB0ZXh0OiBBWFRyYW5zbGF0b3IuZ2V0KCdjb21tb24ucmVmcmVzaCcpLFxuICAgICAgICAgICAgb25DbGljazogKCkgPT4ge1xuICAgICAgICAgICAgICAgIHRoaXM/LndpZGdldD8ucmVmcmVzaCgpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9KTtcbiAgICAgICAgLy9cbiAgICAgICAgaWYgKHRoaXMuX2hhc1Byb3BzKSB7XG4gICAgICAgICAgICB0aGlzLmNvbmZpZ01lbnVJdGVtWzBdLml0ZW1zLnB1c2goe1xuICAgICAgICAgICAgICAgIG5hbWU6ICdjb25maWdzJyxcbiAgICAgICAgICAgICAgICBpY29uOiAnZmFyIGZhLWNvZ3MnLFxuICAgICAgICAgICAgICAgIHRleHQ6IEFYVHJhbnNsYXRvci5nZXQoJ2NvbW1vbi5jb25maWdzJyksXG4gICAgICAgICAgICAgICAgb25DbGljazogKCkgPT4ge1xuICAgICAgICAgICAgICAgICAgICB0aGlzLm9wZW5Db25maWdEaWFsb2coKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgfVxuICAgICAgICB0aGlzLmNvbmZpZ01lbnVJdGVtWzBdLml0ZW1zLnB1c2goe1xuICAgICAgICAgICAgbmFtZTogJ3NhdmUnLFxuICAgICAgICAgICAgaWNvbjogJ2ZhciBmYS1zYXZlJyxcbiAgICAgICAgICAgIHRleHQ6IEFYVHJhbnNsYXRvci5nZXQoJ2NvbW1vbi5zYXZlLWFzJyksXG4gICAgICAgICAgICBvbkNsaWNrOiAoKSA9PiB7XG4gICAgICAgICAgICAgICAgdGhpcy5vcGVuU2F2ZURpYWxvZygpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9KTtcbiAgICAgICAgaWYgKHRydWUpIHtcbiAgICAgICAgICAgIHRoaXMuY29uZmlnTWVudUl0ZW1bMF0uaXRlbXMucHVzaCh7XG4gICAgICAgICAgICAgICAgbmFtZTogJ3JlbW92ZScsXG4gICAgICAgICAgICAgICAgaWNvbjogJ2ZhciBmYS10aW1lcycsXG4gICAgICAgICAgICAgICAgc3R5bGU6ICdheCBkYW5nZXIgYmxhbmsnLFxuICAgICAgICAgICAgICAgIHRleHQ6IEFYVHJhbnNsYXRvci5nZXQoJ2NvbW1vbi5yZW1vdmUnKSxcbiAgICAgICAgICAgICAgICBvbkNsaWNrOiAoKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMub25SZW1vdmUuZW1pdCh0aGlzKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgfVxuICAgICAgICB0aGlzLl9oYXNNZW51ID0gdGhpcy5jb25maWdNZW51SXRlbVswXS5pdGVtcy5sZW5ndGggPiAwO1xuICAgICAgICB0aGlzLmNkci5kZXRlY3RDaGFuZ2VzKCk7XG4gICAgfVxuXG4gICAgQEhvc3RCaW5kaW5nKCdhdHRyLmRhdGEtc2l6ZS14JylcbiAgICBASW5wdXQoKVxuICAgIHNpemVYOiBudW1iZXIgPSAxO1xuXG4gICAgQEhvc3RCaW5kaW5nKCdhdHRyLmRhdGEtc2l6ZS15JylcbiAgICBASW5wdXQoKVxuICAgIHNpemVZOiBudW1iZXIgPSAxO1xuXG4gICAgQEhvc3RCaW5kaW5nKCdhdHRyLmRhdGEtY29sJylcbiAgICBASW5wdXQoKVxuICAgIGNvbDogbnVtYmVyID0gMTtcblxuXG4gICAgQEhvc3RCaW5kaW5nKCdhdHRyLmRhdGEtcm93JylcbiAgICBASW5wdXQoKVxuICAgIHJvdzogbnVtYmVyID0gMTtcblxuXG4gICAgcHJpdmF0ZSBzZXRTaXplRnJvbU9wdGlvbnMoKSB7XG4gICAgICAgIHRoaXMuX3dpZGdldC5nZXRWYWx1ZSgnd2lkZ2V0U2l6ZScpLnRoZW4oYyA9PiB7XG4gICAgICAgICAgICBjb25zdCBvbGRTaXplWCA9IHRoaXMuc2l6ZVg7XG4gICAgICAgICAgICBjb25zdCBvbGRTaXplWSA9IHRoaXMuc2l6ZVk7XG4gICAgICAgICAgICBpZiAoYyAmJiBBcnJheS5pc0FycmF5KGMpICYmIChvbGRTaXplWCAhPT0gY1swXSB8fCBvbGRTaXplWSAhPT0gY1sxXSkpIHtcbiAgICAgICAgICAgICAgICB0aGlzLmNvbmZpZy5zaXplWCA9IHRoaXMuc2l6ZVggPSBjWzBdO1xuICAgICAgICAgICAgICAgIHRoaXMuY29uZmlnLnNpemVZID0gdGhpcy5zaXplWSA9IGNbMV07XG4gICAgICAgICAgICAgICAgdGhpcy5vblJlc2l6ZWQuZW1pdCh7XG4gICAgICAgICAgICAgICAgICAgIGNvbXBvbmVudDogdGhpcy5fd2lkZ2V0LFxuICAgICAgICAgICAgICAgICAgICBjb25maWc6IHRoaXMuY29uZmlnXG4gICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICB0aGlzLmNkci5kZXRlY3RDaGFuZ2VzKCk7XG4gICAgICAgIH0pO1xuICAgIH1cblxuICAgIHJlbW92ZShlOiBNb3VzZUV2ZW50KSB7XG4gICAgICAgIGUucHJldmVudERlZmF1bHQoKTtcbiAgICAgICAgZS5zdG9wUHJvcGFnYXRpb24oKTtcbiAgICAgICAgaWYgKCF0aGlzLnJlYWRvbmx5KVxuICAgICAgICAgICAgdGhpcy5vblJlbW92ZS5lbWl0KHRoaXMpO1xuICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgfVxuXG4gICAgaGFuZGxlQ29uZmlnKGU6IE1vdXNlRXZlbnQpIHtcbiAgICAgICAgZS5wcmV2ZW50RGVmYXVsdCgpO1xuICAgICAgICBlLnN0b3BQcm9wYWdhdGlvbigpO1xuICAgICAgICBpZiAoIXRoaXMucmVhZG9ubHkpXG4gICAgICAgICAgICB0aGlzLm9wZW5Db25maWdEaWFsb2coKTtcbiAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgIH1cblxuICAgIHByaXZhdGUgb3BlbkNvbmZpZ0RpYWxvZygpIHtcbiAgICAgICAgY29uc3QgcHBwID0gdGhpcy5nZXRNZXJnZWRQcm9wcygpO1xuICAgICAgICB0aGlzLnBvcHVwLm9wZW4oQVhXaWRnZXRDb25maWdDb21wb25lbnQsIHtcbiAgICAgICAgICAgIHRpdGxlOiBBWFRyYW5zbGF0b3IuZ2V0KCdjb21tb24uY29uZmlncycpLFxuICAgICAgICAgICAgc2l6ZTogJ3NtJyxcbiAgICAgICAgICAgIGRhdGE6IHtcbiAgICAgICAgICAgICAgICBwcm9wczogcHBwLm1hcChjID0+ICh7IHByb3BlcnR5OiBjLm9wdGlvbnMsIHZhbHVlOiB0aGlzLl93aWRnZXRbYy5vcHRpb25zLm5hbWVdIH0pKSxcbiAgICAgICAgICAgICAgICB3aWRnZXQ6IHRoaXMud2lkZ2V0XG4gICAgICAgICAgICB9XG4gICAgICAgIH0pLnRoZW4oYyA9PiB7XG4gICAgICAgICAgICBpZiAoYy5kYXRhKSB7XG4gICAgICAgICAgICAgICAgaWYgKCF0aGlzLmNvbmZpZy5vcHRpb25zKSB7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuY29uZmlnLm9wdGlvbnMgPSB7fTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgYy5kYXRhLmZvckVhY2gocCA9PiB7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuX3dpZGdldC5zZXRWYWx1ZShwLnByb3BlcnR5Lm5hbWUsIHAudmFsdWUpO1xuICAgICAgICAgICAgICAgICAgICB0aGlzLmNvbmZpZy5vcHRpb25zW3AucHJvcGVydHkubmFtZV0gPSBwLnZhbHVlO1xuICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICAgIHRoaXMuZW1pdENvbmZpZ0NoYW5nZWQoKTtcbiAgICAgICAgICAgICAgICB0aGlzLl93aWRnZXQucmVkcmF3KCk7XG4gICAgICAgICAgICAgICAgdGhpcy5jZHIuZGV0ZWN0Q2hhbmdlcygpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9KTtcbiAgICB9XG5cbiAgICBwcml2YXRlIG9wZW5TYXZlRGlhbG9nKCkge1xuICAgICAgICBjb25zdCBwcHAgPSB0aGlzLmdldE1lcmdlZFByb3BzKCk7XG4gICAgICAgIHRoaXMucG9wdXAub3BlbihBWFdpZGdldFNhdmVDb21wb25lbnQsIHtcbiAgICAgICAgICAgIHRpdGxlOiBBWFRyYW5zbGF0b3IuZ2V0KCdjb21tb24uc2F2ZS1hcycpLFxuICAgICAgICAgICAgc2l6ZTogJ3NtJyxcbiAgICAgICAgICAgIGRhdGE6IHtcbiAgICAgICAgICAgICAgICBjb25maWc6IHRoaXMuY29uZmlnLFxuICAgICAgICAgICAgICAgIHByb3BzOiBwcHAubWFwKGMgPT4gKHsgcHJvcGVydHk6IGMub3B0aW9ucywgdmFsdWU6IHRoaXMuX3dpZGdldFtjLm9wdGlvbnMubmFtZV0gfSkpXG4gICAgICAgICAgICB9XG4gICAgICAgIH0pLnRoZW4oYyA9PiB7XG4gICAgICAgICAgICBpZiAoYy5kYXRhKSB7XG4gICAgICAgICAgICAgICAgdGhpcy5vblNhdmUuZW1pdCh7XG4gICAgICAgICAgICAgICAgICAgIGNvbXBvbmVudDogdGhpcy5fd2lkZ2V0LFxuICAgICAgICAgICAgICAgICAgICBkYXRhOiBjLmRhdGFcbiAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSk7XG4gICAgfVxuXG5cblxuICAgIGhhbmRsZU9wdGlvbkNsaWNrKGU6IE1vdXNlRXZlbnQpIHtcbiAgICAgICAgZS5wcmV2ZW50RGVmYXVsdCgpO1xuICAgICAgICBlLnN0b3BQcm9wYWdhdGlvbigpO1xuICAgICAgICB0aGlzLm9wZW5Db25maWdEaWFsb2coKTtcbiAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgIH1cblxuICAgIG5nT25EZXN0cm95KCkge1xuICAgICAgICB0aGlzLnZjLmNsZWFyKCk7XG4gICAgICAgIGlmICh0aGlzLmNvbXBvbmVudFJlZikge1xuICAgICAgICAgICAgdGhpcy5jb21wb25lbnRSZWYuZGVzdHJveSgpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBnZXRNZXJnZWRQcm9wcygpOiBBWFByb3BlcnR5RGVjb3JhdG9yW10ge1xuICAgICAgICBjb25zdCBwcHAgPSBBWE9iamVjdFV0aWwuZGVlcENvcHkoQVhQcm9wZXJ0eURlY29yYXRvcnMuZ2V0UHJvcGVydGllcyh0aGlzLl93aWRnZXQpKSBhcyBBWFByb3BlcnR5RGVjb3JhdG9yW107XG4gICAgICAgIGZvciAoY29uc3Qga2V5IGluIHRoaXMuY29uZmlnLnByb3BzKSB7XG4gICAgICAgICAgICBpZiAoT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKHRoaXMuY29uZmlnLnByb3BzLCBrZXkpKSB7XG4gICAgICAgICAgICAgICAgY29uc3QgbmV3UCA9IHRoaXMuY29uZmlnLnByb3BzW2tleV07XG4gICAgICAgICAgICAgICAgY29uc3QgZXhpc3RQcm9wRGVjID0gcHBwLmZpbmQocCA9PiBwLnByb3BlcnR5ID09PSBrZXkpO1xuICAgICAgICAgICAgICAgIGlmIChleGlzdFByb3BEZWMpIHtcbiAgICAgICAgICAgICAgICAgICAgT2JqZWN0LmFzc2lnbihleGlzdFByb3BEZWMub3B0aW9ucywgbmV3UCk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIHJldHVybiBwcHA7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBlbWl0Q29uZmlnQ2hhbmdlZCgpIHtcbiAgICAgICAgdGhpcy5vbkNvbmZpZ0NoYW5nZWQuZW1pdCh7XG4gICAgICAgICAgICBjb21wb25lbnQ6IHRoaXMuX3dpZGdldCxcbiAgICAgICAgICAgIGNvbmZpZzogdGhpcy5jb25maWdcbiAgICAgICAgfSk7XG4gICAgfVxuXG59IiwiPGRpdiBjbGFzcz0nd2lkZ2V0LWNvbnRhaW5lcic+XG4gIEBpZiAoIWlzQ29uZmlndXJlZCkge1xuICAgIDxkaXYgY2xhc3M9XCJ3aWRnZXQtY29uZmlnLW92ZXJsYXlcIiAoY2xpY2spPVwiaGFuZGxlQ29uZmlnKCRldmVudClcIj5cbiAgICAgIDxkaXYgY2xhc3M9XCJ3aWRnZXQtdGl0bGVcIj57e2NvbmZpZy50aXRsZX19PC9kaXY+XG4gICAgICA8ZGl2IGNsYXNzPVwid2lkZ2V0LWNvbmZpZy1ib3hcIj5cbiAgICAgICAgPGRpdiBjbGFzcz1cImNvbmZpZy10aXRsZVwiPnt7ICd3aWRnZXQtYm9hcmQuY29uZmlndXJlJyB8IHRyYW5zfX08L2Rpdj5cbiAgICAgICAgQGlmICghcmVhZG9ubHkpIHtcbiAgICAgICAgICA8ZGl2IGNsYXNzPVwiY29uZmlnLWljb25cIj48aSBjbGFzcz1cImZhcyBmYS1jb2dzIGZhLTV4XCIgYXJpYS1oaWRkZW49XCJ0cnVlXCI+PC9pPjwvZGl2PlxuICAgICAgICB9XG4gICAgICA8L2Rpdj5cbiAgICA8L2Rpdj5cbiAgfVxuICA8ZGl2IGNsYXNzPSd3aWRnZXQtZWRpdC1vdmVybGF5JyA+XG4gICAgPGRpdiBjbGFzcz0nd2lkZ2V0LWVkaXQtbWVudSc+XG4gICAgICBAaWYgKF9oYXNQcm9wcykge1xuICAgICAgICA8YnV0dG9uIGNsYXNzPVwid2lkZ2V0LWVkaXQtbWVudS1idXR0b25cIiAoY2xpY2spPVwiaGFuZGxlQ29uZmlnKCRldmVudClcIlxuICAgICAgICAgIChtb3VzZWRvd24pPVwiJGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpXCIgKG1vdXNldXApPVwiJGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpXCI+XG4gICAgICAgICAgPGkgY2xhc3M9XCJmYXIgZmEtY29nc1wiIGFyaWEtaGlkZGVuPVwidHJ1ZVwiPjwvaT5cbiAgICAgICAgPC9idXR0b24+XG4gICAgICB9XG4gICAgICA8YnV0dG9uIGNsYXNzPVwid2lkZ2V0LWVkaXQtbWVudS1idXR0b25cIiAoY2xpY2spPVwicmVtb3ZlKCRldmVudClcIiAobW91c2Vkb3duKT1cIiRldmVudC5zdG9wUHJvcGFnYXRpb24oKVwiXG4gICAgICAgIChtb3VzZXVwKT1cIiRldmVudC5zdG9wUHJvcGFnYXRpb24oKVwiPlxuICAgICAgICA8aSBjbGFzcz1cImZhciBmYS10aW1lc1wiIGFyaWEtaGlkZGVuPVwidHJ1ZVwiPjwvaT5cbiAgICAgIDwvYnV0dG9uPlxuICAgIDwvZGl2PlxuXG4gIDwvZGl2PlxuICBAaWYgKF9oYXNNZW51ICYmICFyZWFkb25seSkge1xuICAgIDxkaXYgY2xhc3M9XCJ3aWRnZXQtb3B0aW9ucy1tZW51XCIgPlxuICAgICAgPGF4LW1lbnUgW2l0ZW1zXT0nY29uZmlnTWVudUl0ZW0nIGRpcmVjdGlvbj1cImhvcml6b250YWxcIj48L2F4LW1lbnU+XG4gICAgPC9kaXY+XG4gIH1cbiAgPCEtLSA8YXgtbG9hZGluZy1wYW5lbCBbdmlzaWJsZV09XCJpc0J1c3lcIj5cbjwvYXgtbG9hZGluZy1wYW5lbD4gLS0+XG48ZGl2IGNsYXNzPVwid2lkZ2V0LWNvbnRlbnRcIj5cbiAgPG5nLWNvbnRhaW5lciAjdmM+PC9uZy1jb250YWluZXI+XG48L2Rpdj5cbjwvZGl2PiJdfQ==","import { Component, Input, ViewEncapsulation, ElementRef, ViewChild, NgZone, ChangeDetectionStrategy, ChangeDetectorRef, Output, EventEmitter, ViewChildren, QueryList } from '@angular/core';\nimport { AXWidgetHostComponent } from './widget-host.component';\nimport { AXHtmlUtil, AXClientRec } from '@acorex/core';\nimport { Subject } from 'rxjs';\nimport { debounceTime } from 'rxjs/operators';\nimport * as i0 from \"@angular/core\";\nimport * as i1 from \"./widget-host.component\";\nexport class AXWidgetBoardComponent {\n ref;\n zone;\n cdr;\n container;\n widgetHosts;\n widgets = [];\n galleryItems = [];\n tileSize = 80;\n gapSize = 5;\n readonly = false;\n newWidget = null;\n rtl;\n _isInEditing = false;\n isInEditing() {\n return this._isInEditing;\n }\n isDragging = false;\n dragItem;\n saveSubject = new Subject();\n provideValue;\n DATA_COL = 'data-col';\n DATA_ROW = 'data-row';\n DATA_SIZE_X = 'data-size-x';\n DATA_SIZE_Y = 'data-size-y';\n DATA_OLD_COL = 'data-old-col';\n DATA_OLD_ROW = 'data-old-row';\n onConfigChanged = new EventEmitter();\n onWidgetSave = new EventEmitter();\n constructor(ref, zone, cdr) {\n this.ref = ref;\n this.zone = zone;\n this.cdr = cdr;\n }\n ngOnInit() {\n if (this.rtl == null) {\n this.rtl = window.getComputedStyle(this.ref.nativeElement, null).getPropertyValue('direction') === 'rtl';\n }\n this.saveSubject.pipe(debounceTime(750)).subscribe((value) => {\n this.emitConfigChanged(value);\n });\n }\n ngOnDestroy() {\n this.saveSubject?.unsubscribe();\n }\n ngAfterViewInit() {\n this.zone.runOutsideAngular((c) => {\n const style = document.createElement('style');\n style.type = 'text/css';\n this.ref.nativeElement.appendChild(style);\n // add css data classes\n for (let i = 1; i <= 50; i++) {\n style.innerHTML += `[${this.DATA_COL}=\"${i}\"] { ${this.rtl ? 'right' : 'left'}: ${(i - 1) * (this.tileSize + this.gapSize)}px; }`;\n style.innerHTML += `[${this.DATA_ROW}=\"${i}\"] { top: ${(i - 1) * (this.tileSize + this.gapSize)}px; }`;\n style.innerHTML += `[${this.DATA_SIZE_X}=\"${i}\"] { width: ${(i * this.tileSize) + ((i - 1) * this.gapSize)}px; }`;\n style.innerHTML += `[${this.DATA_SIZE_Y}=\"${i}\"] { height: ${(i * this.tileSize) + ((i - 1) * this.gapSize)}px; }`;\n }\n });\n }\n calcGridSize() {\n this.zone.runOutsideAngular(() => {\n const width = (Math.max(...this.widgets.map((c) => c.col + c.sizeX - 1))) * (this.tileSize + this.gapSize);\n const height = (Math.max(...this.widgets.map((c) => c.row + c.sizeY - 1))) * (this.tileSize + this.gapSize);\n this.container.nativeElement.style.width = width + 'px';\n this.container.nativeElement.style.height = height + 'px';\n });\n }\n toggleEdit() {\n this._isInEditing ? this.finishEdit() : this.startEdit();\n }\n dragStart(e) {\n e.preventDefault();\n e.stopPropagation();\n this.zone.runOutsideAngular(() => {\n if (this._isInEditing && e.which === 1) {\n this.dragItem = e.currentTarget;\n this.dragItem.setAttribute('data-x-offset', (this.dragItem.offsetLeft - e.clientX).toString());\n //\n this.dragItem.setAttribute('data-y-offset', (this.dragItem.offsetTop - e.clientY).toString());\n this.dragItem.classList.add('widget-dragging');\n this.dragItem.classList.remove('animate__animated', 'animate__pulse');\n }\n });\n return false;\n }\n removePositionData() {\n this.zone.runOutsideAngular(() => {\n if (this.dragItem && this._isInEditing && this.dragItem.getAttribute(this.DATA_OLD_COL) == null) {\n this.dragItem.setAttribute(this.DATA_OLD_COL, this.dragItem.getAttribute(this.DATA_COL));\n this.dragItem.setAttribute(this.DATA_OLD_ROW, this.dragItem.getAttribute(this.DATA_ROW));\n this.dragItem.removeAttribute(this.DATA_COL);\n this.dragItem.removeAttribute(this.DATA_ROW);\n }\n });\n }\n resetPositionData() {\n this.zone.runOutsideAngular(() => {\n if (this.dragItem && this._isInEditing) {\n this.setPosition(this.dragItem, this.dragItem.getAttribute(this.DATA_OLD_COL), this.dragItem.getAttribute(this.DATA_OLD_ROW));\n }\n });\n }\n setPosition(element, col, row) {\n this.zone.runOutsideAngular(() => {\n element.setAttribute(this.DATA_COL, col);\n element.setAttribute(this.DATA_ROW, row);\n element.removeAttribute(this.DATA_OLD_COL);\n element.removeAttribute(this.DATA_OLD_ROW);\n element.style.removeProperty('top');\n element.style.removeProperty('left');\n const widget = this.widgets.find(c => c['__meta__'].instance.element === element);\n widget.col = Number(col);\n widget.row = Number(row);\n });\n }\n drag(e) {\n e.preventDefault();\n e.stopPropagation();\n this.zone.runOutsideAngular(() => {\n if (this.dragItem && this._isInEditing) {\n this.isDragging = true;\n this.addPlaceholder();\n const xOffset = Number(this.dragItem.getAttribute('data-x-offset'));\n const yOffset = Number(this.dragItem.getAttribute('data-y-offset'));\n this.dragItem.style.left = e.clientX + xOffset + 'px';\n this.dragItem.style.top = e.clientY + yOffset + 'px';\n //\n this.detectBestPlacement();\n this.removePositionData();\n }\n });\n return false;\n }\n dragEnd(e) {\n this.zone.runOutsideAngular(() => {\n if (this.dragItem && this._isInEditing && this.isDragging) {\n this.dragItem.classList.remove('widget-dragging');\n this.dragItem.classList.add('animate__animated', 'animate__pulse');\n //\n const p = this.container.nativeElement.querySelector('.widget-blank-placeholder');\n if (this.newWidget) {\n const w = {\n uniqueName: this.newWidget.uniqueName,\n component: this.newWidget.component,\n title: this.newWidget.title,\n options: this.newWidget.options,\n sizeX: this.newWidget.sizeX,\n sizeY: this.newWidget.sizeY,\n col: Number(p.getAttribute(this.DATA_COL)),\n row: Number(p.getAttribute(this.DATA_ROW))\n };\n this.widgets.push(w);\n this.newWidget = null;\n this.container.nativeElement.removeChild(this.dragItem);\n this.zone.run(() => {\n this.cdr.detectChanges();\n this.calcGridSize();\n setTimeout(() => {\n w['__meta__'].instance.element.addEventListener('mousedown', this.dragStart.bind(this), false);\n }, 1000);\n });\n }\n else {\n if (p) {\n this.setPosition(this.dragItem, p.getAttribute(this.DATA_COL), p.getAttribute(this.DATA_ROW));\n }\n else {\n this.setPosition(this.dragItem, this.dragItem.getAttribute(this.DATA_OLD_COL), this.dragItem.getAttribute(this.DATA_OLD_ROW));\n }\n }\n //\n this.removePlaceholder();\n this.dragItem = null;\n this.calcGridSize();\n this.saveSubject.next('config');\n }\n this.isDragging = false;\n });\n }\n detectFirstEmptySlot(w) {\n const xTile = Math.floor(this.ref.nativeElement.parentElement.offsetWidth / this.tileSize);\n for (let j = 1; j <= 100; j++) {\n for (let i = 1; i <= xTile - w.sizeX; i++) {\n const rec = new AXClientRec({\n left: i,\n top: j,\n width: w.sizeX,\n height: w.sizeY\n });\n const el = this.widgets.filter(c => c !== w).find((c) => rec.intersect({\n left: c.col,\n top: c.row,\n width: c.sizeX,\n height: c.sizeY\n }));\n if (el == null) {\n w.col = i;\n w.row = j;\n return;\n }\n }\n }\n }\n detectBestPlacement() {\n this.zone.runOutsideAngular(() => {\n const p = this.container.nativeElement.querySelector('.widget-blank-placeholder');\n let col = Math.ceil(this.dragItem.offsetLeft / this.tileSize);\n if (this.rtl) {\n col = Math.ceil((this.container.nativeElement.clientWidth - (this.dragItem.offsetLeft + this.dragItem.clientWidth)) / this.tileSize);\n }\n let row = Math.ceil(this.dragItem.offsetTop / this.tileSize);\n if (col < 1) {\n col = 1;\n }\n if (row < 1) {\n row = 1;\n }\n const widgets = Array.from(this.ref.nativeElement.querySelectorAll('.widget-host')).map((c) => c);\n p.setAttribute(this.DATA_COL, col.toString());\n p.setAttribute(this.DATA_ROW, row.toString());\n const collision = widgets.filter(c => c !== this.dragItem).some(c => AXHtmlUtil.collision(c, this.dragItem));\n if (collision) {\n this.removePlaceholder();\n }\n });\n }\n addPlaceholder() {\n this.zone.runOutsideAngular(() => {\n this.removePlaceholder();\n if (this.dragItem) {\n const p = document.createElement('div');\n p.classList.add('widget-blank-placeholder');\n p.setAttribute(this.DATA_COL, this.dragItem.getAttribute(this.DATA_COL));\n p.setAttribute(this.DATA_ROW, this.dragItem.getAttribute(this.DATA_ROW));\n p.setAttribute(this.DATA_SIZE_X, this.dragItem.getAttribute(this.DATA_SIZE_X));\n p.setAttribute(this.DATA_SIZE_Y, this.dragItem.getAttribute(this.DATA_SIZE_Y));\n this.container.nativeElement.appendChild(p);\n }\n });\n }\n removePlaceholder() {\n const p = this.container.nativeElement.querySelector('.widget-blank-placeholder');\n p?.remove();\n }\n startEdit() {\n this._isInEditing = true;\n this.calcGridSize();\n this.ref.nativeElement.classList.add('grid-background');\n const bg = this.ref.nativeElement;\n bg.style.setProperty('background-position', `${this.rtl ? 'right' : 'left'} top`);\n // tslint:disable-next-line: max-line-length\n const pattern = `url('data:image/svg+xml;utf8,<svg xmlns=\"http://www.w3.org/2000/svg\" xmlns:xlink=\"http://www.w3.org/1999/xlink\" width=\"${this.tileSize + this.gapSize}\" height=\"${this.tileSize + this.gapSize}\"> <rect style=\"fill: %23dadada\" x=\"${this.rtl ? this.gapSize : 0}\" width=\"${this.tileSize}\" height=\"${this.tileSize}\" y=\"0\"></rect></svg>')`;\n bg.style.setProperty('background-image', pattern);\n //\n const widgets = Array.from(this.ref.nativeElement.querySelectorAll('.widget-host'));\n widgets.forEach((w) => {\n w.addEventListener('mousedown', this.dragStart.bind(this), false);\n });\n this.ref.nativeElement.addEventListener('mousemove', this.drag.bind(this), false);\n this.ref.nativeElement.addEventListener('mouseup', this.dragEnd.bind(this), false);\n }\n finishEdit() {\n this.ref.nativeElement.classList.remove('grid-background');\n const bg = this.ref.nativeElement;\n bg.style.removeProperty('background-image');\n //\n this._isInEditing = false;\n const widgets = Array.from(this.ref.nativeElement.querySelectorAll('.widget-host'));\n widgets.forEach((w) => {\n w.removeEventListener('mousedown', this.dragStart.bind(this), false);\n });\n this.ref.nativeElement.removeEventListener('mousemove', this.drag.bind(this), false);\n this.ref.nativeElement.removeEventListener('mouseup', this.dragEnd.bind(this), false);\n this.saveSubject.next('config');\n }\n addWidget(widget) {\n this.zone.runOutsideAngular(() => {\n this.newWidget = {\n uniqueName: widget.uniqueName,\n component: widget.component,\n title: widget.title,\n col: 1,\n row: 1,\n sizeX: widget.sizeX,\n sizeY: widget.sizeY,\n options: widget.options,\n props: widget.props\n };\n this.detectFirstEmptySlot(this.newWidget);\n const w = {\n uniqueName: this.newWidget.uniqueName,\n component: this.newWidget.component,\n title: this.newWidget.title,\n options: this.newWidget.options,\n props: this.newWidget.props,\n sizeX: this.newWidget.sizeX,\n sizeY: this.newWidget.sizeY,\n col: this.newWidget.col,\n row: this.newWidget.row\n };\n this.widgets.push(w);\n this.newWidget = null;\n this.zone.run(() => {\n this.cdr.detectChanges();\n this.calcGridSize();\n this.emitConfigChanged('add');\n setTimeout(() => {\n w['__meta__'].instance.element.addEventListener('mousedown', this.dragStart.bind(this), false);\n }, 1000);\n });\n });\n }\n handleOnRemove(w) {\n w.element.classList.add('animate__animated', 'animate__zoomOut');\n w.element.addEventListener('animationend', () => {\n this.widgets = this.widgets.filter((c) => c.__meta__.id !== w.config.__meta__.id);\n this.cdr.detectChanges();\n this.calcGridSize();\n this.emitConfigChanged('remove');\n });\n }\n handleOnSave(e) {\n this.onWidgetSave.emit(e);\n }\n trackByFn(index, item) {\n if (!item['__meta__']?.id) {\n item['__meta__'] = {};\n item['__meta__'].id = AXHtmlUtil.getUID();\n }\n return item['__meta__']?.id;\n }\n load(widgets) {\n this.clear();\n return new Promise((resolve, reject) => {\n if (widgets) {\n const loadedWidgets = [];\n if (typeof widgets === 'string') {\n try {\n loadedWidgets.push(...JSON.parse(widgets));\n this.emitConfigChanged('load');\n }\n catch (error) {\n reject('Invalid widget json data!');\n }\n }\n else {\n loadedWidgets.push(...widgets);\n this.emitConfigChanged('load');\n }\n let intervalId = -1;\n const loadFunc = () => {\n if (this.galleryItems && this.galleryItems.length > 0) {\n loadedWidgets.forEach(w => {\n const gitem = this.galleryItems.find(c => c.uniqueName === w.uniqueName);\n if (gitem) {\n w.component = gitem.component;\n if (gitem.props) {\n w.props = JSON.parse(JSON.stringify(gitem.props));\n }\n }\n });\n this.widgets.push(...loadedWidgets);\n this.emitConfigChanged('load');\n window.clearInterval(intervalId);\n this.cdr.detectChanges();\n resolve();\n }\n };\n intervalId = window.setInterval(loadFunc, 200);\n }\n else {\n resolve();\n }\n });\n }\n clear() {\n if (this.widgets.length) {\n this.widgets = [];\n this.cdr.detectChanges();\n this.saveSubject.next('clear');\n }\n }\n save() {\n const obj = this.widgets.map(c => ({\n uniqueName: c.uniqueName,\n component: c.component,\n title: c.title,\n sizeX: c.sizeX,\n sizeY: c.sizeY,\n col: c.col,\n row: c.row,\n options: c.options,\n props: c.props\n }));\n return Promise.resolve(JSON.stringify(obj));\n }\n refresh() {\n this.widgetHosts.forEach(host => {\n host.widget.refresh();\n });\n }\n handleOnConfigChanged(e) {\n this.cdr.detectChanges();\n this.saveSubject.next('config');\n }\n handleOnResizedChanged(e) {\n this.detectFirstEmptySlot(e.config);\n this.cdr.detectChanges();\n this.saveSubject.next('config');\n }\n emitConfigChanged(mode) {\n this.onConfigChanged.emit({\n component: this,\n mode: mode\n });\n }\n static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.3.3\", ngImport: i0, type: AXWidgetBoardComponent, deps: [{ token: i0.ElementRef }, { token: i0.NgZone }, { token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component });\n static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: \"17.0.0\", version: \"20.3.3\", type: AXWidgetBoardComponent, isStandalone: false, selector: \"ax-widget-board\", inputs: { galleryItems: \"galleryItems\", tileSize: \"tileSize\", gapSize: \"gapSize\", readonly: \"readonly\", provideValue: \"provideValue\" }, outputs: { onConfigChanged: \"onConfigChanged\", onWidgetSave: \"onWidgetSave\" }, host: { classAttribute: \"ax widget-board\" }, viewQueries: [{ propertyName: \"container\", first: true, predicate: [\"container\"], descendants: true }, { propertyName: \"widgetHosts\", predicate: AXWidgetHostComponent, descendants: true }], ngImport: i0, template: \"<div class=\\\"widgets-container\\\" [class.rtl]=\\\"rtl\\\" #container>\\n @for (w of widgets; track trackByFn($index, w)) {\\n <ax-widget-host [config]='w' [sizeX]=\\\"w.sizeX\\\" [readonly]=\\\"readonly || w.readonly\\\"\\n [sizeY]=\\\"w.sizeY\\\" [col]=\\\"w.col\\\" [row]=\\\"w.row\\\" (onRemove)=\\\"handleOnRemove($event)\\\" (onSave)=\\\"handleOnSave($event)\\\"\\n (onConfigChanged)=\\\"handleOnConfigChanged($event)\\\" (onResized)=\\\"handleOnResizedChanged($event)\\\"\\n [provideValue]=\\\"provideValue\\\">\\n </ax-widget-host>\\n }\\n</div>\\n\", styles: [\".widget-board{overflow:scroll;scrollbar-width:thin;display:inline-block;margin:15px 20px;min-width:calc(100% - 18px);min-height:calc(100% - 18px);--animate-duration: .5s;background-repeat:no-repeat}.widget-board.grid-background{background-repeat:repeat!important}.widget-board.grid-background .widgets-container .widget-host{touch-action:none;-webkit-user-select:none;user-select:none}.widget-board.grid-background .widgets-container .widget-host .widget-edit-overlay{display:block;cursor:move}.widget-board.grid-background .widgets-container .widget-host.widget-dragging{z-index:1000}.widget-board.grid-background .widgets-container .widget-host:focus{outline-width:1px;outline-style:solid;outline-color:var(--ax-primary-color)}.widget-board.grid-background .widget-blank-placeholder{background:var(--ax-primary-trans-light-color);position:absolute}.widget-board .widgets-container{position:relative;touch-action:none}.widget-board .widgets-container.rtl .widget-host .widget-options-menu{right:unset!important;left:0!important}.widget-board .widgets-container .widget-host{position:absolute;background:#fff;box-shadow:2px 2px 3px #dadada}.widget-board .widgets-container .widget-host .widget-content{width:100%;height:100%;display:flex;flex-direction:column}.widget-board .widgets-container .widget-host .widget-content .widget-title{padding:var(--ax-size-md);text-align:start;font-size:1.5em;position:absolute}.widget-board .widgets-container .widget-host .widget-edit-loading{display:none;background:#ffffffd9;position:absolute;width:100%;height:100%;top:0;left:0;z-index:2;display:flex}.widget-board .widgets-container .widget-host .widget-config-overlay{position:absolute;background:#fff;width:100%;height:100%;top:0;left:0;z-index:1;padding:var(--ax-size-md);cursor:pointer}.widget-board .widgets-container .widget-host .widget-config-overlay:hover .widget-title{text-decoration:underline}.widget-board .widgets-container .widget-host .widget-config-overlay .widget-title{text-align:start;font-size:1.5em}.widget-board .widgets-container .widget-host .widget-config-overlay .widget-config-box{align-self:center;text-align:center;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);color:var(--ax-gray-dark-color)}.widget-board .widgets-container .widget-host .widget-config-overlay .widget-config-box .config-title{font-size:1.2em;margin-bottom:var(--ax-size-md)}.widget-board .widgets-container .widget-host .widget-edit-overlay{display:none;background:#ffffff80;position:absolute;width:100%;height:100%;top:0;left:0;z-index:10}.widget-board .widgets-container .widget-host .widget-edit-overlay .widget-edit-menu{margin:6px;text-align:end;float:inline-end;opacity:1;transition:opacity 1s ease}.widget-board .widgets-container .widget-host .widget-edit-overlay .widget-edit-menu .widget-edit-menu-button{display:inline-block;background-color:#f0f0f0;border-radius:1px;border:2px solid #fff;box-sizing:border-box;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;padding:0;height:32px;width:32px;cursor:pointer;color:#666}.widget-board .widgets-container .widget-host .widget-edit-overlay .widget-edit-menu .widget-edit-menu-button:hover{border-color:#a6a6a6;background-color:#c8c8c8}.widget-board .widgets-container .widget-host .widget-options-menu{display:none;position:absolute;top:0;right:0;z-index:2;cursor:pointer;padding:2px 5px}.widget-board .widgets-container .widget-host .widget-options-menu:hover{background-color:#f0f0f0}.widget-board .widgets-container .widget-host .widget-container{padding:1px;height:100%}.widget-board .widgets-container .widget-host .widget-container:hover .widget-options-menu{display:block}\\n\"], dependencies: [{ kind: \"component\", type: i1.AXWidgetHostComponent, selector: \"ax-widget-host\", inputs: [\"provideValue\", \"config\", \"readonly\", \"sizeX\", \"sizeY\", \"col\", \"row\"], outputs: [\"onRemove\", \"onConfigChanged\", \"onResized\", \"onSave\"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.3.3\", ngImport: i0, type: AXWidgetBoardComponent, decorators: [{\n type: Component,\n args: [{ selector: 'ax-widget-board', host: { class: 'ax widget-board' }, encapsulation: ViewEncapsulation.None, changeDetection: ChangeDetectionStrategy.OnPush, standalone: false, template: \"<div class=\\\"widgets-container\\\" [class.rtl]=\\\"rtl\\\" #container>\\n @for (w of widgets; track trackByFn($index, w)) {\\n <ax-widget-host [config]='w' [sizeX]=\\\"w.sizeX\\\" [readonly]=\\\"readonly || w.readonly\\\"\\n [sizeY]=\\\"w.sizeY\\\" [col]=\\\"w.col\\\" [row]=\\\"w.row\\\" (onRemove)=\\\"handleOnRemove($event)\\\" (onSave)=\\\"handleOnSave($event)\\\"\\n (onConfigChanged)=\\\"handleOnConfigChanged($event)\\\" (onResized)=\\\"handleOnResizedChanged($event)\\\"\\n [provideValue]=\\\"provideValue\\\">\\n </ax-widget-host>\\n }\\n</div>\\n\", styles: [\".widget-board{overflow:scroll;scrollbar-width:thin;display:inline-block;margin:15px 20px;min-width:calc(100% - 18px);min-height:calc(100% - 18px);--animate-duration: .5s;background-repeat:no-repeat}.widget-board.grid-background{background-repeat:repeat!important}.widget-board.grid-background .widgets-container .widget-host{touch-action:none;-webkit-user-select:none;user-select:none}.widget-board.grid-background .widgets-container .widget-host .widget-edit-overlay{display:block;cursor:move}.widget-board.grid-background .widgets-container .widget-host.widget-dragging{z-index:1000}.widget-board.grid-background .widgets-container .widget-host:focus{outline-width:1px;outline-style:solid;outline-color:var(--ax-primary-color)}.widget-board.grid-background .widget-blank-placeholder{background:var(--ax-primary-trans-light-color);position:absolute}.widget-board .widgets-container{position:relative;touch-action:none}.widget-board .widgets-container.rtl .widget-host .widget-options-menu{right:unset!important;left:0!important}.widget-board .widgets-container .widget-host{position:absolute;background:#fff;box-shadow:2px 2px 3px #dadada}.widget-board .widgets-container .widget-host .widget-content{width:100%;height:100%;display:flex;flex-direction:column}.widget-board .widgets-container .widget-host .widget-content .widget-title{padding:var(--ax-size-md);text-align:start;font-size:1.5em;position:absolute}.widget-board .widgets-container .widget-host .widget-edit-loading{display:none;background:#ffffffd9;position:absolute;width:100%;height:100%;top:0;left:0;z-index:2;display:flex}.widget-board .widgets-container .widget-host .widget-config-overlay{position:absolute;background:#fff;width:100%;height:100%;top:0;left:0;z-index:1;padding:var(--ax-size-md);cursor:pointer}.widget-board .widgets-container .widget-host .widget-config-overlay:hover .widget-title{text-decoration:underline}.widget-board .widgets-container .widget-host .widget-config-overlay .widget-title{text-align:start;font-size:1.5em}.widget-board .widgets-container .widget-host .widget-config-overlay .widget-config-box{align-self:center;text-align:center;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);color:var(--ax-gray-dark-color)}.widget-board .widgets-container .widget-host .widget-config-overlay .widget-config-box .config-title{font-size:1.2em;margin-bottom:var(--ax-size-md)}.widget-board .widgets-container .widget-host .widget-edit-overlay{display:none;background:#ffffff80;position:absolute;width:100%;height:100%;top:0;left:0;z-index:10}.widget-board .widgets-container .widget-host .widget-edit-overlay .widget-edit-menu{margin:6px;text-align:end;float:inline-end;opacity:1;transition:opacity 1s ease}.widget-board .widgets-container .widget-host .widget-edit-overlay .widget-edit-menu .widget-edit-menu-button{display:inline-block;background-color:#f0f0f0;border-radius:1px;border:2px solid #fff;box-sizing:border-box;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;padding:0;height:32px;width:32px;cursor:pointer;color:#666}.widget-board .widgets-container .widget-host .widget-edit-overlay .widget-edit-menu .widget-edit-menu-button:hover{border-color:#a6a6a6;background-color:#c8c8c8}.widget-board .widgets-container .widget-host .widget-options-menu{display:none;position:absolute;top:0;right:0;z-index:2;cursor:pointer;padding:2px 5px}.widget-board .widgets-container .widget-host .widget-options-menu:hover{background-color:#f0f0f0}.widget-board .widgets-container .widget-host .widget-container{padding:1px;height:100%}.widget-board .widgets-container .widget-host .widget-container:hover .widget-options-menu{display:block}\\n\"] }]\n }], ctorParameters: () => [{ type: i0.ElementRef }, { type: i0.NgZone }, { type: i0.ChangeDetectorRef }], propDecorators: { container: [{\n type: ViewChild,\n args: ['container']\n }], widgetHosts: [{\n type: ViewChildren,\n args: [AXWidgetHostComponent]\n }], galleryItems: [{\n type: Input\n }], tileSize: [{\n type: Input\n }], gapSize: [{\n type: Input\n }], readonly: [{\n type: Input\n }], provideValue: [{\n type: Input\n }], onConfigChanged: [{\n type: Output\n }], onWidgetSave: [{\n type: Output\n }] } });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoid2lkZ2V0LWJvYXJkLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvbGF5b3V0L3NyYy9saWIvd2lkZ2V0LWJvYXJkL3dpZGdldC1ib2FyZC5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9saWJzL2xheW91dC9zcmMvbGliL3dpZGdldC1ib2FyZC93aWRnZXQtYm9hcmQuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUNMLFNBQVMsRUFFVCxLQUFLLEVBQ0wsaUJBQWlCLEVBQ2pCLFVBQVUsRUFDVixTQUFTLEVBQ1QsTUFBTSxFQUNOLHVCQUF1QixFQUN2QixpQkFBaUIsRUFDakIsTUFBTSxFQUNOLFlBQVksRUFBRSxZQUFZLEVBQUUsU0FBUyxFQUN0QyxNQUFNLGVBQWUsQ0FBQztBQU92QixPQUFPLEVBQUUscUJBQXFCLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQztBQUNoRSxPQUFPLEVBQUUsVUFBVSxFQUFFLFdBQVcsRUFBRSxNQUFNLGNBQWMsQ0FBQztBQUN2RCxPQUFPLEVBQUUsT0FBTyxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQy9CLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQTs7O0FBWTdDLE1BQU0sT0FBTyxzQkFBc0I7SUFzRHZCO0lBQ0E7SUFDQTtJQXJERixTQUFTLENBQTZCO0lBR3RDLFdBQVcsQ0FBbUM7SUFFdEQsT0FBTyxHQUFxQixFQUFFLENBQUM7SUFHL0IsWUFBWSxHQUFxQixFQUFFLENBQUM7SUFHcEMsUUFBUSxHQUFXLEVBQUUsQ0FBQztJQUd0QixPQUFPLEdBQVcsQ0FBQyxDQUFDO0lBSXBCLFFBQVEsR0FBWSxLQUFLLENBQUM7SUFFbEIsU0FBUyxHQUFtQixJQUFJLENBQUM7SUFFbEMsR0FBRyxDQUFVO0lBRVosWUFBWSxHQUFZLEtBQUssQ0FBQztJQUMvQixXQUFXO1FBQ2hCLE9BQU8sSUFB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LEtBQUs7Z0JBWU4sZUFBZTtzQkFEZCxNQUFNO2dCQUlQLFlBQVk7c0JBRFgsTUFBTSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gIENvbXBvbmVudCxcbiAgT25Jbml0LFxuICBJbnB1dCxcbiAgVmlld0VuY2Fwc3VsYXRpb24sXG4gIEVsZW1lbnRSZWYsXG4gIFZpZXdDaGlsZCxcbiAgTmdab25lLFxuICBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSxcbiAgQ2hhbmdlRGV0ZWN0b3JSZWYsXG4gIE91dHB1dCxcbiAgRXZlbnRFbWl0dGVyLCBWaWV3Q2hpbGRyZW4sIFF1ZXJ5TGlzdFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7XG4gIEFYV2lkZ2V0Q29uZmlnLFxuICBBWFdpZGdldENvbmZpZ0NoYW5nZWQsXG4gIEFYV2lkZ2V0Qm9hcmRDb25maWdDaGFuZ2VkLFxuICBBWFdpZGdldENvbmZpZ1NhdmVkRXZlbnRcbn0gZnJvbSAnLi93aWRnZXQuY2xhc3MnO1xuaW1wb3J0IHsgQVhXaWRnZXRIb3N0Q29tcG9uZW50IH0gZnJvbSAnLi93aWRnZXQtaG9zdC5jb21wb25lbnQnO1xuaW1wb3J0IHsgQVhIdG1sVXRpbCwgQVhDbGllbnRSZWMgfSBmcm9tICdAYWNvcmV4L2NvcmUnO1xuaW1wb3J0IHsgU3ViamVjdCB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgZGVib3VuY2VUaW1lIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnXG5cblxuQENvbXBvbmVudCh7XG4gICAgc2VsZWN0b3I6ICdheC13aWRnZXQtYm9hcmQnLFxuICAgIHRlbXBsYXRlVXJsOiAnLi93aWRnZXQtYm9hcmQuY29tcG9uZW50Lmh0bWwnLFxuICAgIHN0eWxlVXJsczogWycuL3dpZGdldC1ib2FyZC5jb21wb25lbnQuc2NzcyddLFxuICAgIGhvc3Q6IHsgY2xhc3M6ICdheCB3aWRnZXQtYm9hcmQnIH0sXG4gICAgZW5jYXBzdWxhdGlvbjogVmlld0VuY2Fwc3VsYXRpb24uTm9uZSxcbiAgICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgICBzdGFuZGFsb25lOiBmYWxzZVxufSlcbmV4cG9ydCBjbGFzcyBBWFdpZGdldEJvYXJkQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0IHtcblxuICBAVmlld0NoaWxkKCdjb250YWluZXInKVxuICBwcml2YXRlIGNvbnRhaW5lcjogRWxlbWVudFJlZjxIVE1MRGl2RWxlbWVudD47XG5cbiAgQFZpZXdDaGlsZHJlbihBWFdpZGdldEhvc3RDb21wb25lbnQpXG4gIHByaXZhdGUgd2lkZ2V0SG9zdHM6IFF1ZXJ5TGlzdDxBWFdpZGdldEhvc3RDb21wb25lbnQ+O1xuXG4gIHdpZGdldHM6IEFYV2lkZ2V0Q29uZmlnW10gPSBbXTtcblxuICBASW5wdXQoKVxuICBnYWxsZXJ5SXRlbXM6IEFYV2lkZ2V0Q29uZmlnW10gPSBbXTtcblxuICBASW5wdXQoKVxuICB0aWxlU2l6ZTogbnVtYmVyID0gODA7XG5cbiAgQElucHV0KClcbiAgZ2FwU2l6ZTogbnVtYmVyID0gNTtcblxuXG4gIEBJbnB1dCgpXG4gIHJlYWRvbmx5OiBib29sZWFuID0gZmFsc2U7XG5cbiAgcHJpdmF0ZSBuZXdXaWRnZXQ6IEFYV2lkZ2V0Q29uZmlnID0gbnVsbDtcblxuICBwdWJsaWMgcnRsOiBib29sZWFuO1xuXG4gIHByaXZhdGUgX2lzSW5FZGl0aW5nOiBib29sZWFuID0gZmFsc2U7XG4gIHB1YmxpYyBpc0luRWRpdGluZygpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdGhpcy5faXNJbkVkaXRpbmc7XG4gIH1cbiAgcHJpdmF0ZSBpc0RyYWdnaW5nOiBib29sZWFuID0gZmFsc2U7XG4gIHByaXZhdGUgZHJhZ0l0ZW06IEhUTUxFbGVtZW50O1xuXG4gIHByaXZhdGUgc2F2ZVN1YmplY3QgPSBuZXcgU3ViamVjdDxzdHJpbmc+KCk7XG5cbiAgQElucHV0KClcbiAgcHJvdmlkZVZhbHVlOiAoZTogYW55KSA9PiBhbnk7XG5cbiAgcHJpdmF0ZSByZWFkb25seSBEQVRBX0NPTCA9ICdkYXRhLWNvbCc7XG4gIHByaXZhdGUgcmVhZG9ubHkgREFUQV9ST1cgPSAnZGF0YS1yb3cnO1xuICBwcml2YXRlIHJlYWRvbmx5IERBVEFfU0laRV9YID0gJ2RhdGEtc2l6ZS14JztcbiAgcHJpdmF0ZSByZWFkb25seSBEQVRBX1NJWkVfWSA9ICdkYXRhLXNpemUteSc7XG4gIHByaXZhdGUgcmVhZG9ubHkgREFUQV9PTERfQ09MID0gJ2RhdGEtb2xkLWNvbCc7XG4gIHByaXZhdGUgcmVhZG9ubHkgREFUQV9PTERfUk9XID0gJ2RhdGEtb2xkLXJvdyc7XG5cblxuICBAT3V0cHV0KClcbiAgb25Db25maWdDaGFuZ2VkOiBFdmVudEVtaXR0ZXI8QVhXaWRnZXRCb2FyZENvbmZpZ0NoYW5nZWQ+ID0gbmV3IEV2ZW50RW1pdHRlcjxBWFdpZGdldEJvYXJkQ29uZmlnQ2hhbmdlZD4oKTtcblxuICBAT3V0cHV0KClcbiAgb25XaWRnZXRTYXZlOiBFdmVudEVtaXR0ZXI8QVhXaWRnZXRDb25maWdTYXZlZEV2ZW50PiA9IG5ldyBFdmVudEVtaXR0ZXI8QVhXaWRnZXRDb25maWdTYXZlZEV2ZW50PigpO1xuXG4gIGNvbnN0cnVjdG9yKFxuICAgIHByaXZhdGUgcmVmOiBFbGVtZW50UmVmPEhUTUxEaXZFbGVtZW50PixcbiAgICBwcml2YXRlIHpvbmU6IE5nWm9uZSxcbiAgICBwcml2YXRlIGNkcjogQ2hhbmdlRGV0ZWN0b3JSZWZcbiAgKSB7IH1cblxuXG4gIG5nT25Jbml0KCkge1xuICAgIGlmICh0aGlzLnJ0bCA9PSBudWxsKSB7XG4gICAgICB0aGlzLnJ0bCA9IHdpbmRvdy5nZXRDb21wdXRlZFN0eWxlKHRoaXMucmVmLm5hdGl2ZUVsZW1lbnQsIG51bGwpLmdldFByb3BlcnR5VmFsdWUoJ2RpcmVjdGlvbicpID09PSAncnRsJztcbiAgICB9XG4gICAgdGhpcy5zYXZlU3ViamVjdC5waXBlKGRlYm91bmNlVGltZSg3NTApKS5zdWJzY3JpYmUoKHZhbHVlOiBhbnkpID0+IHtcbiAgICAgIHRoaXMuZW1pdENvbmZpZ0NoYW5nZWQodmFsdWUpO1xuICAgIH0pO1xuICB9XG5cbiAgbmdPbkRlc3Ryb3koKVxuICB7XG4gICAgdGhpcy5zYXZlU3ViamVjdD8udW5zdWJzY3JpYmUoKTtcbiAgfVxuXG4gIG5nQWZ0ZXJWaWV3SW5pdCgpIHtcbiAgICB0aGlzLnpvbmUucnVuT3V0c2lkZUFuZ3VsYXIoKGMpID0+IHtcbiAgICAgIGNvbnN0IHN0eWxlID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnc3R5bGUnKTtcbiAgICAgIHN0eWxlLnR5cGUgPSAndGV4dC9jc3MnO1xuICAgICAgdGhpcy5yZWYubmF0aXZlRWxlbWVudC5hcHBlbmRDaGlsZChzdHlsZSk7XG4gICAgICAvLyBhZGQgY3NzIGRhdGEgY2xhc3Nlc1xuICAgICAgZm9yIChsZXQgaSA9IDE7IGkgPD0gNTA7IGkrKykge1xuICAgICAgICBzdHlsZS5pbm5lckhUTUwgKz0gYFske3RoaXMuREFUQV9DT0x9PVwiJHtpfVwiXSB7ICAke3RoaXMucnRsID8gJ3JpZ2h0JyA6ICdsZWZ0J306ICR7KGkgLSAxKSAqICh0aGlzLnRpbGVTaXplICsgdGhpcy5nYXBTaXplKX1weDsgfWA7XG4gICAgICAgIHN0eWxlLmlubmVySFRNTCArPSBgWyR7dGhpcy5EQVRBX1JPV309XCIke2l9XCJdIHsgIHRvcDogJHsoaSAtIDEpICogKHRoaXMudGlsZVNpemUgKyB0aGlzLmdhcFNpemUpfXB4OyB9YDtcbiAgICAgICAgc3R5bGUuaW5uZXJIVE1MICs9IGBbJHt0aGlzLkRBVEFfU0laRV9YfT1cIiR7aX1cIl0geyAgd2lkdGg6ICAkeyhpICogdGhpcy50aWxlU2l6ZSkgKyAoKGkgLSAxKSAqIHRoaXMuZ2FwU2l6ZSl9cHg7IH1gO1xuICAgICAgICBzdHlsZS5pbm5lckhUTUwgKz0gYFske3RoaXMuREFUQV9TSVpFX1l9PVwiJHtpfVwiXSB7ICBoZWlnaHQ6ICR7KGkgKiB0aGlzLnRpbGVTaXplKSArICgoaSAtIDEpICogdGhpcy5nYXBTaXplKX1weDsgfWA7XG4gICAgICB9XG4gICAgfSk7XG4gIH1cblxuICBwcml2YXRlIGNhbGNHcmlkU2l6ZSgpIHtcbiAgICB0aGlzLnpvbmUucnVuT3V0c2lkZUFuZ3VsYXIoKCkgPT4ge1xuICAgICAgY29uc3Qgd2lkdGggPVxuICAgICAgICAoTWF0aC5tYXgoLi4udGhpcy53aWRnZXRzLm1hcCgoYykgPT4gYy5jb2wgKyBjLnNpemVYIC0gMSkpKSAqICh0aGlzLnRpbGVTaXplICsgdGhpcy5nYXBTaXplKTtcbiAgICAgIGNvbnN0IGhlaWdodCA9XG4gICAgICAgIChNYXRoLm1heCguLi50aGlzLndpZGdldHMubWFwKChjKSA9PiBjLnJvdyArIGMuc2l6ZVkgLSAxKSkpICogKHRoaXMudGlsZVNpemUgKyB0aGlzLmdhcFNpemUpO1xuICAgICAgdGhpcy5jb250YWluZXIubmF0aXZlRWxlbWVudC5zdHlsZS53aWR0aCA9IHdpZHRoICsgJ3B4JztcbiAgICAgIHRoaXMuY29udGFpbmVyLm5hdGl2ZUVsZW1lbnQuc3R5bGUuaGVpZ2h0ID0gaGVpZ2h0ICsgJ3B4JztcbiAgICB9KTtcbiAgfVxuXG4gIHRvZ2dsZUVkaXQoKSB7XG4gICAgdGhpcy5faXNJbkVkaXRpbmcgPyB0aGlzLmZpbmlzaEVkaXQoKSA6IHRoaXMuc3RhcnRFZGl0KCk7XG4gIH1cblxuXG5cbiAgcHJpdmF0ZSBkcmFnU3RhcnQoZTogTW91c2VFdmVudCkge1xuICAgIGUucHJldmVudERlZmF1bHQoKTtcbiAgICBlLnN0b3BQcm9wYWdhdGlvbigpO1xuICAgIHRoaXMuem9uZS5ydW5PdXRzaWRlQW5ndWxhcigoKSA9PiB7XG4gICAgICBpZiAodGhpcy5faXNJbkVkaXRpbmcgJiYgZS53aGljaCA9PT0gMSkge1xuICAgICAgICB0aGlzLmRyYWdJdGVtID0gZS5jdXJyZW50VGFyZ2V0IGFzIGFueTtcbiAgICAgICAgdGhpcy5kcmFnSXRlbS5zZXRBdHRyaWJ1dGUoJ2RhdGEteC1vZmZzZXQnLCAodGhpcy5kcmFnSXRlbS5vZmZzZXRMZWZ0IC0gZS5jbGllbnRYKS50b1N0cmluZygpKTtcbiAgICAgICAgLy9cbiAgICAgICAgdGhpcy5kcmFnSXRlbS5zZXRBdHRyaWJ1dGUoJ2RhdGEteS1vZmZzZXQnLCAodGhpcy5kcmFnSXRlbS5vZmZzZXRUb3AgLSBlLmNsaWVudFkpLnRvU3RyaW5nKCkpO1xuICAgICAgICB0aGlzLmRyYWdJdGVtLmNsYXNzTGlzdC5hZGQoJ3dpZGdldC1kcmFnZ2luZycpO1xuICAgICAgICB0aGlzLmRyYWdJdGVtLmNsYXNzTGlzdC5yZW1vdmUoJ2FuaW1hdGVfX2FuaW1hdGVkJywgJ2FuaW1hdGVfX3B1bHNlJyk7XG4gICAgICB9XG4gICAgfSk7XG4gICAgcmV0dXJuIGZhbHNlO1xuICB9XG5cbiAgcmVtb3ZlUG9zaXRpb25EYXRhKCkge1xuICAgIHRoaXMuem9uZS5ydW5PdXRzaWRlQW5ndWxhcigoKSA9PiB7XG4gICAgICBpZiAodGhpcy5kcmFnSXRlbSAmJiB0aGlzLl9pc0luRWRpdGluZyAmJiB0aGlzLmRyYWdJdGVtLmdldEF0dHJpYnV0ZSh0aGlzLkRBVEFfT0xEX0NPTCkgPT0gbnVsbCkge1xuICAgICAgICB0aGlzLmRyYWdJdGVtLnNldEF0dHJpYnV0ZSh0aGlzLkRBVEFfT0xEX0NPTCwgdGhpcy5kcmFnSXRlbS5nZXRBdHRyaWJ1dGUodGhpcy5EQVRBX0NPTCkpO1xuICAgICAgICB0aGlzLmRyYWdJdGVtLnNldEF0dHJpYnV0ZSh0aGlzLkRBVEFfT0xEX1JPVywgdGhpcy5kcmFnSXRlbS5nZXRBdHRyaWJ1dGUodGhpcy5EQVRBX1JPVykpO1xuICAgICAgICB0aGlzLmRyYWdJdGVtLnJlbW92ZUF0dHJpYnV0ZSh0aGlzLkRBVEFfQ09MKTtcbiAgICAgICAgdGhpcy5kcmFnSXRlbS5yZW1vdmVBdHRyaWJ1dGUodGhpcy5EQVRBX1JPVyk7XG4gICAgICB9XG4gICAgfSk7XG4gIH1cblxuICByZXNldFBvc2l0aW9uRGF0YSgpIHtcbiAgICB0aGlzLnpvbmUucnVuT3V0c2lkZUFuZ3VsYXIoKCkgPT4ge1xuICAgICAgaWYgKHRoaXMuZHJhZ0l0ZW0gJiYgdGhpcy5faXNJbkVkaXRpbmcpIHtcbiAgICAgICAgdGhpcy5zZXRQb3NpdGlvbih0aGlzLmRyYWdJdGVtLCB0aGlzLmRyYWdJdGVtLmdldEF0dHJpYnV0ZSh0aGlzLkRBVEFfT0xEX0NPTCksIHRoaXMuZHJhZ0l0ZW0uZ2V0QXR0cmlidXRlKHRoaXMuREFUQV9PTERfUk9XKSk7XG4gICAgICB9XG4gICAgfSk7XG4gIH1cblxuICBwcml2YXRlIHNldFBvc2l0aW9uKGVsZW1lbnQ6IEhUTUxFbGVtZW50LCBjb2w6IHN0cmluZywgcm93OiBzdHJpbmcpIHtcbiAgICB0aGlzLnpvbmUucnVuT3V0c2lkZUFuZ3VsYXIoKCkgPT4ge1xuICAgICAgZWxlbWVudC5zZXRBdHRyaWJ1dGUodGhpcy5EQVRBX0NPTCwgY29sKTtcbiAgICAgIGVsZW1lbnQuc2V0QXR0cmlidXRlKHRoaXMuREFUQV9ST1csIHJvdyk7XG4gICAgICBlbGVtZW50LnJlbW92ZUF0dHJpYnV0ZSh0aGlzLkRBVEFfT0xEX0NPTCk7XG4gICAgICBlbGVtZW50LnJlbW92ZUF0dHJpYnV0ZSh0aGlzLkRBVEFfT0xEX1JPVyk7XG4gICAgICBlbGVtZW50LnN0eWxlLnJlbW92ZVByb3BlcnR5KCd0b3AnKTtcbiAgICAgIGVsZW1lbnQuc3R5bGUucmVtb3ZlUHJvcGVydHkoJ2xlZnQnKTtcbiAgICAgIGNvbnN0IHdpZGdldCA9IHRoaXMud2lkZ2V0cy5maW5kKGMgPT4gY1snX19tZXRhX18nXS5pbnN0YW5jZS5lbGVtZW50ID09PSBlbGVtZW50KTtcbiAgICAgIHdpZGdldC5jb2wgPSBOdW1iZXIoY29sKTtcbiAgICAgIHdpZGdldC5yb3cgPSBOdW1iZXIocm93KTtcbiAgICB9KTtcbiAgfVxuXG4gIHByaXZhdGUgZHJhZyhlKSB7XG4gICAgZS5wcmV2ZW50RGVmYXVsdCgpO1xuICAgIGUuc3RvcFByb3BhZ2F0aW9uKCk7XG4gICAgdGhpcy56b25lLnJ1bk91dHNpZGVBbmd1bGFyKCgpID0+IHtcbiAgICAgIGlmICh0aGlzLmRyYWdJdGVtICYmIHRoaXMuX2lzSW5FZGl0aW5nKSB7XG4gICAgICAgIHRoaXMuaXNEcmFnZ2luZyA9IHRydWU7XG4gICAgICAgIHRoaXMuYWRkUGxhY2Vob2xkZXIoKTtcbiAgICAgICAgY29uc3QgeE9mZnNldCA9IE51bWJlcih0aGlzLmRyYWdJdGVtLmdldEF0dHJpYnV0ZSgnZGF0YS14LW9mZnNldCcpKTtcbiAgICAgICAgY29uc3QgeU9mZnNldCA9IE51bWJlcih0aGlzLmRyYWdJdGVtLmdldEF0dHJpYnV0ZSgnZGF0YS15LW9mZnNldCcpKTtcbiAgICAgICAgdGhpcy5kcmFnSXRlbS5zdHlsZS5sZWZ0ID0gZS5jbGllbnRYICsgeE9mZnNldCArICdweCc7XG4gICAgICAgIHRoaXMuZHJhZ0l0ZW0uc3R5bGUudG9wID0gZS5jbGllbnRZICsgeU9mZnNldCArICdweCc7XG4gICAgICAgIC8vXG4gICAgICAgIHRoaXMuZGV0ZWN0QmVzdFBsYWNlbWVudCgpO1xuICAgICAgICB0aGlzLnJlbW92ZVBvc2l0aW9uRGF0YSgpO1xuICAgICAgfVxuICAgIH0pO1xuICAgIHJldHVybiBmYWxzZTtcbiAgfVxuXG4gIHByaXZhdGUgZHJhZ0VuZChlKSB7XG4gICAgdGhpcy56b25lLnJ1bk91dHNpZGVBbmd1bGFyKCgpID0+IHtcbiAgICAgIGlmICh0aGlzLmRyYWdJdGVtICYmIHRoaXMuX2lzSW5FZGl0aW5nICYmIHRoaXMuaXNEcmFnZ2luZykge1xuICAgICAgICB0aGlzLmRyYWdJdGVtLmNsYXNzTGlzdC5yZW1vdmUoJ3dpZGdldC1kcmFnZ2luZycpO1xuICAgICAgICB0aGlzLmRyYWdJdGVtLmNsYXNzTGlzdC5hZGQoJ2FuaW1hdGVfX2FuaW1hdGVkJywgJ2FuaW1hdGVfX3B1bHNlJyk7XG4gICAgICAgIC8vXG4gICAgICAgIGNvbnN0IHAgPSB0aGlzLmNvbnRhaW5lci5uYXRpdmVFbGVtZW50LnF1ZXJ5U2VsZWN0b3IoJy53aWRnZXQtYmxhbmstcGxhY2Vob2xkZXInKTtcbiAgICAgICAgaWYgKHRoaXMubmV3V2lkZ2V0KSB7XG4gICAgICAgICAgY29uc3QgdyA9IHtcbiAgICAgICAgICAgIHVuaXF1ZU5hbWU6IHRoaXMubmV3V2lkZ2V0LnVuaXF1ZU5hbWUsXG4gICAgICAgICAgICBjb21wb25lbnQ6IHRoaXMubmV3V2lkZ2V0LmNvbXBvbmVudCxcbiAgICAgICAgICAgIHRpdGxlOiB0aGlzLm5ld1dpZGdldC50aXRsZSxcbiAgICAgICAgICAgIG9wdGlvbnM6IHRoaXMubmV3V2lkZ2V0Lm9wdGlvbnMsXG4gICAgICAgICAgICBzaXplWDogdGhpcy5uZXdXaWRnZXQuc2l6ZVgsXG4gICAgICAgICAgICBzaXplWTogdGhpcy5uZXdXaWRnZXQuc2l6ZVksXG4gICAgICAgICAgICBjb2w6IE51bWJlcihwLmdldEF0dHJpYnV0ZSh0aGlzLkRBVEFfQ09MKSksXG4gICAgICAgICAgICByb3c6IE51bWJlcihwLmdldEF0dHJpYnV0ZSh0aGlzLkRBVEFfUk9XKSlcbiAgICAgICAgICB9O1xuXG4gICAgICAgICAgdGhpcy53aWRnZXRzLnB1c2godyk7XG4gICAgICAgICAgdGhpcy5uZXdXaWRnZXQgPSBudWxsO1xuICAgICAgICAgIHRoaXMuY29udGFpbmVyLm5hdGl2ZUVsZW1lbnQucmVtb3ZlQ2hpbGQodGhpcy5kcmFnSXRlbSk7XG4gICAgICAgICAgdGhpcy56b25lLnJ1bigoKSA9PiB7XG4gICAgICAgICAgICB0aGlzLmNkci5kZXRlY3RDaGFuZ2VzKCk7XG4gICAgICAgICAgICB0aGlzLmNhbGNHcmlkU2l6ZSgpO1xuICAgICAgICAgICAgc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICAgICAgICAgIHdbJ19fbWV0YV9fJ10uaW5zdGFuY2UuZWxlbWVudC5hZGRFdmVudExpc3RlbmVyKCdtb3VzZWRvd24nLCB0aGlzLmRyYWdTdGFydC5iaW5kKHRoaXMpLCBmYWxzZSk7XG4gICAgICAgICAgICB9LCAxMDAwKTtcbiAgICAgICAgICB9KTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICBpZiAocCkge1xuICAgICAgICAgICAgdGhpcy5zZXRQb3NpdGlvbih0aGlzLmRyYWdJdGVtLCBwLmdldEF0dHJpYnV0ZSh0aGlzLkRBVEFfQ09MKSwgcC5nZXRBdHRyaWJ1dGUodGhpcy5EQVRBX1JPVykpO1xuICAgICAgICAgIH1cbiAgICAgICAgICBlbHNlIHtcbiAgICAgICAgICAgIHRoaXMuc2V0UG9zaXRpb24odGhpcy5kcmFnSXRlbSwgdGhpcy5kcmFnSXRlbS5nZXRBdHRyaWJ1dGUodGhpcy5EQVRBX09MRF9DT0wpLCB0aGlzLmRyYWdJdGVtLmdldEF0dHJpYnV0ZSh0aGlzLkRBVEFfT0xEX1JPVykpO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICAvL1xuICAgICAgICB0aGlzLnJlbW92ZVBsYWNlaG9sZGVyKCk7XG4gICAgICAgIHRoaXMuZHJhZ0l0ZW0gPSBudWxsO1xuICAgICAgICB0aGlzLmNhbGNHcmlkU2l6ZSgpO1xuICAgICAgICB0aGlzLnNhdmVTdWJqZWN0Lm5leHQoJ2NvbmZpZycpO1xuICAgICAgfVxuICAgICAgdGhpcy5pc0RyYWdnaW5nID0gZmFsc2U7XG4gICAgfSk7XG4gIH1cblxuICBwcml2YXRlIGRldGVjdEZpcnN0RW1wdHlTbG90KHc6IEFYV2lkZ2V0Q29uZmlnKSB7XG4gICAgY29uc3QgeFRpbGUgPSBNYXRoLmZsb29yKHRoaXMucmVmLm5hdGl2ZUVsZW1lbnQucGFyZW50RWxlbWVudC5vZmZzZXRXaWR0aCAvIHRoaXMudGlsZVNpemUpO1xuICAgIGZvciAobGV0IGogPSAxOyBqIDw9IDEwMDsgaisrKSB7XG4gICAgICBmb3IgKGxldCBpID0gMTsgaSA8PSB4VGlsZSAtIHcuc2l6ZVg7IGkrKykge1xuICAgICAgICBjb25zdCByZWMgPSBuZXcgQVhDbGllbnRSZWMoe1xuICAgICAgICAgIGxlZnQ6IGksXG4gICAgICAgICAgdG9wOiBqLFxuICAgICAgICAgIHdpZHRoOiB3LnNpemVYLFxuICAgICAgICAgIGhlaWdodDogdy5zaXplWVxuICAgICAgICB9KTtcbiAgICAgICAgY29uc3QgZWwgPSB0aGlzLndpZGdldHMuZmlsdGVyKGMgPT4gYyAhPT0gdykuZmluZCgoYykgPT5cbiAgICAgICAgICByZWMuaW50ZXJzZWN0KHtcbiAgICAgICAgICAgIGxlZnQ6IGMuY29sLFxuICAgICAgICAgICAgdG9wOiBjLnJvdyxcbiAgICAgICAgICAgIHdpZHRoOiBjLnNpemVYLFxuICAgICAgICAgICAgaGVpZ2h0OiBjLnNpemVZXG4gICAgICAgICAgfSlcbiAgICAgICAgKTtcbiAgICAgICAgaWYgKGVsID09IG51bGwpIHtcbiAgICAgICAgICB3LmNvbCA9IGk7XG4gICAgICAgICAgdy5yb3cgPSBqO1xuICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgZGV0ZWN0QmVzdFBsYWNlbWVudCgpIHtcbiAgICB0aGlzLnpvbmUucnVuT3V0c2lkZUFuZ3VsYXIoKCkgPT4ge1xuICAgICAgY29uc3QgcCA9IHRoaXMuY29udGFpbmVyLm5hdGl2ZUVsZW1lbnQucXVlcnlTZWxlY3RvcignLndpZGdldC1ibGFuay1wbGFjZWhvbGRlcicpIGFzIEhUTUxFbGVtZW50O1xuICAgICAgbGV0IGNvbCA9IE1hdGguY2VpbCh0aGlzLmRyYWdJdGVtLm9mZnNldExlZnQgLyB0aGlzLnRpbGVTaXplKTtcbiAgICAgIGlmICh0aGlzLnJ0bCkge1xuICAgICAgICBjb2wgPSBNYXRoLmNlaWwoKHRoaXMuY29udGFpbmVyLm5hdGl2ZUVsZW1lbnQuY2xpZW50V2lkdGggLSAodGhpcy5kcmFnSXRlbS5vZmZzZXRMZWZ0ICsgdGhpcy5kcmFnSXRlbS5jbGllbnRXaWR0aCkpIC8gdGhpcy50aWxlU2l6ZSk7XG4gICAgICB9XG5cbiAgICAgIGxldCByb3cgPSBNYXRoLmNlaWwodGhpcy5kcmFnSXRlbS5vZmZzZXRUb3AgLyB0aGlzLnRpbGVTaXplKTtcbiAgICAgIGlmIChjb2wgPCAxKSB7XG4gICAgICAgIGNvbCA9IDE7XG4gICAgICB9XG4gICAgICBpZiAocm93IDwgMSkge1xuICAgICAgICByb3cgPSAxO1xuICAgICAgfVxuICAgICAgY29uc3Qgd2lkZ2V0cyA9IEFycmF5LmZyb20odGhpcy5yZWYubmF0aXZlRWxlbWVudC5xdWVyeVNlbGVjdG9yQWxsKCcud2lkZ2V0LWhvc3QnKSkubWFwKChjKSA9PiBjIGFzIEhUTUxFbGVtZW50KTtcbiAgICAgIHAuc2V0QXR0cmlidXRlKHRoaXMuREFUQV9DT0wsIGNvbC50b1N0cmluZygpKTtcbiAgICAgIHAuc2V0QXR0cmlidXRlKHRoaXMuREFUQV9ST1csIHJvdy50b1N0cmluZygpKTtcbiAgICAgIGNvbnN0IGNvbGxpc2lvbiA9IHdpZGdldHMuZmlsdGVyKGMgPT4gYyAhPT0gdGhpcy5kcmFnSXRlbSkuc29tZShjID0+IEFYSHRtbFV0aWwuY29sbGlzaW9uKGMsIHRoaXMuZHJhZ0l0ZW0pKTtcbiAgICAgIGlmIChjb2xsaXNpb24pIHtcbiAgICAgICAgdGhpcy5yZW1vdmVQbGFjZWhvbGRlcigpO1xuICAgICAgfVxuICAgIH0pO1xuICB9XG5cblxuICBwcml2YXRlIGFkZFBsYWNlaG9sZGVyKCkge1xuICAgIHRoaXMuem9uZS5ydW5PdXRzaWRlQW5ndWxhcigoKSA9PiB7XG4gICAgICB0aGlzLnJlbW92ZVBsYWNlaG9sZGVyKCk7XG4gICAgICBpZiAodGhpcy5kcmFnSXRlbSkge1xuICAgICAgICBjb25zdCBwID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnZGl2Jyk7XG4gICAgICAgIHAuY2xhc3NMaXN0LmFkZCgnd2lkZ2V0LWJsYW5rLXBsYWNlaG9sZGVyJyk7XG4gICAgICAgIHAuc2V0QXR0cmlidXRlKHRoaXMuREFUQV9DT0wsIHRoaXMuZHJhZ0l0ZW0uZ2V0QXR0cmlidXRlKHRoaXMuREFUQV9DT0wpKTtcbiAgICAgICAgcC5zZXRBdHRyaWJ1dGUodGhpcy5EQVRBX1JPVywgdGhpcy5kcmFnSXRlbS5nZXRBdHRyaWJ1dGUodGhpcy5EQVRBX1JPVykpO1xuICAgICAgICBwLnNldEF0dHJpYnV0ZSh0aGlzLkRBVEFfU0laRV9YLCB0aGlzLmRyYWdJdGVtLmdldEF0dHJpYnV0ZSh0aGlzLkRBVEFfU0laRV9YKSk7XG4gICAgICAgIHAuc2V0QXR0cmlidXRlKHRoaXMuREFUQV9TSVpFX1ksIHRoaXMuZHJhZ0l0ZW0uZ2V0QXR0cmlidXRlKHRoaXMuREFUQV9TSVpFX1kpKTtcbiAgICAgICAgdGhpcy5jb250YWluZXIubmF0aXZlRWxlbWVudC5hcHBlbmRDaGlsZChwKTtcbiAgICAgIH1cbiAgICB9KTtcbiAgfVxuXG4gIHByaXZhdGUgcmVtb3ZlUGxhY2Vob2xkZXIoKSB7XG4gICAgY29uc3QgcCA9IHRoaXMuY29udGFpbmVyLm5hdGl2ZUVsZW1lbnQucXVlcnlTZWxlY3RvcignLndpZGdldC1ibGFuay1wbGFjZWhvbGRlcicpO1xuICAgIHA/LnJlbW92ZSgpO1xuICB9XG5cbiAgcHVibGljIHN0YXJ0RWRpdCgpIHtcbiAgICB0aGlzLl9pc0luRWRpdGluZyA9IHRydWU7XG4gICAgdGhpcy5jYWxjR3JpZFNpemUoKTtcbiAgICB0aGlzLnJlZi5uYXRpdmVFbGVtZW50LmNsYXNzTGlzdC5hZGQoJ2dyaWQtYmFja2dyb3VuZCcpO1xuICAgIGNvbnN0IGJnID0gdGhpcy5yZWYubmF0aXZlRWxlbWVudCBhcyBIVE1MRGl2RWxlbWVudDtcbiAgICBiZy5zdHlsZS5zZXRQcm9wZXJ0eSgnYmFja2dyb3VuZC1wb3NpdGlvbicsIGAke3RoaXMucnRsID8gJ3JpZ2h0JyA6ICdsZWZ0J30gdG9wYCk7XG4gICAgLy8gdHNsaW50OmRpc2FibGUtbmV4dC1saW5lOiBtYXgtbGluZS1sZW5ndGhcbiAgICBjb25zdCBwYXR0ZXJuID0gYHVybCgnZGF0YTppbWFnZS9zdmcreG1sO3V0ZjgsPHN2ZyB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCIgeG1sbnM6eGxpbms9XCJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hsaW5rXCIgd2lkdGg9XCIke3RoaXMudGlsZVNpemUgKyB0aGlzLmdhcFNpemV9XCIgaGVpZ2h0PVwiJHt0aGlzLnRpbGVTaXplICsgdGhpcy5nYXBTaXplfVwiPiA8cmVjdCBzdHlsZT1cImZpbGw6ICUyM2RhZGFkYVwiIHg9XCIke3RoaXMucnRsID8gdGhpcy5nYXBTaXplIDogMH1cIiB3aWR0aD1cIiR7dGhpcy50aWxlU2l6ZX1cIiBoZWlnaHQ9XCIke3RoaXMudGlsZVNpemV9XCIgeT1cIjBcIj48L3JlY3Q+PC9zdmc+JylgO1xuICAgIGJnLnN0eWxlLnNldFByb3BlcnR5KCdiYWNrZ3JvdW5kLWltYWdlJywgcGF0dGVybik7XG4gICAgLy9cbiAgICBjb25zdCB3aWRnZXRzID0gQXJyYXkuZnJvbSh0aGlzLnJlZi5uYXRpdmVFbGVtZW50LnF1ZXJ5U2VsZWN0b3JBbGwoJy53aWRnZXQtaG9zdCcpKTtcbiAgICB3aWRnZXRzLmZvckVhY2goKHcpID0+IHtcbiAgICAgIHcuYWRkRXZlbnRMaXN0ZW5lcignbW91c2Vkb3duJywgdGhpcy5kcmFnU3RhcnQuYmluZCh0aGlzKSwgZmFsc2UpO1xuICAgIH0pO1xuICAgIHRoaXMucmVmLm5hdGl2ZUVsZW1lbnQuYWRkRXZlbnRMaXN0ZW5lcignbW91c2Vtb3ZlJywgdGhpcy5kcmFnLmJpbmQodGhpcyksIGZhbHNlKTtcbiAgICB0aGlzLnJlZi5uYXRpdmVFbGVtZW50LmFkZEV2ZW50TGlzdGVuZXIoJ21vdXNldXAnLCB0aGlzLmRyYWdFbmQuYmluZCh0aGlzKSwgZmFsc2UpO1xuICB9XG5cbiAgcHVibGljIGZpbmlzaEVkaXQoKSB7XG4gICAgdGhpcy5yZWYubmF0aXZlRWxlbWVudC5jbGFzc0xpc3QucmVtb3ZlKCdncmlkLWJhY2tncm91bmQnKTtcbiAgICBjb25zdCBiZyA9IHRoaXMucmVmLm5hdGl2ZUVsZW1lbnQgYXMgSFRNTERpdkVsZW1lbnQ7XG4gICAgYmcuc3R5bGUucmVtb3ZlUHJvcGVydHkoJ2JhY2tncm91bmQtaW1hZ2UnKTtcbiAgICAvL1xuICAgIHRoaXMuX2lzSW5FZGl0aW5nID0gZmFsc2U7XG4gICAgY29uc3Qgd2lkZ2V0cyA9IEFycmF5LmZyb20odGhpcy5yZWYubmF0aXZlRWxlbWVudC5xdWVyeVNlbGVjdG9yQWxsKCcud2lkZ2V0LWhvc3QnKSk7XG4gICAgd2lkZ2V0cy5mb3JFYWNoKCh3KSA9PiB7XG4gICAgICB3LnJlbW92ZUV2ZW50TGlzdGVuZXIoJ21vdXNlZG93bicsIHRoaXMuZHJhZ1N0YXJ0LmJpbmQodGhpcyksIGZhbHNlKTtcbiAgICB9KTtcbiAgICB0aGlzLnJlZi5uYXRpdmVFbGVtZW50LnJlbW92ZUV2ZW50TGlzdGVuZXIoJ21vdXNlbW92ZScsIHRoaXMuZHJhZy5iaW5kKHRoaXMpLCBmYWxzZSk7XG4gICAgdGhpcy5yZWYubmF0aXZlRWxlbWVudC5yZW1vdmVFdmVudExpc3RlbmVyKCdtb3VzZXVwJywgdGhpcy5kcmFnRW5kLmJpbmQodGhpcyksIGZhbHNlKTtcbiAgICB0aGlzLnNhdmVTdWJqZWN0Lm5leHQoJ2NvbmZpZycpO1xuICB9XG5cblxuICBhZGRXaWRnZXQod2lkZ2V0OiBBWFdpZGdldENvbmZpZykge1xuICAgIHRoaXMuem9uZS5ydW5PdXRzaWRlQW5ndWxhcigoKSA9PiB7XG4gICAgICB0aGlzLm5ld1dpZGdldCA9IHtcbiAgICAgICAgdW5pcXVlTmFtZTogd2lkZ2V0LnVuaXF1ZU5hbWUsXG4gICAgICAgIGNvbXBvbmVudDogd2lkZ2V0LmNvbXBvbmVudCxcbiAgICAgICAgdGl0bGU6IHdpZGdldC50aXRsZSxcbiAgICAgICAgY29sOiAxLFxuICAgICAgICByb3c6IDEsXG4gICAgICAgIHNpemVYOiB3aWRnZXQuc2l6ZVgsXG4gICAgICAgIHNpemVZOiB3aWRnZXQuc2l6ZVksXG4gICAgICAgIG9wdGlvbnM6IHdpZGdldC5vcHRpb25zLFxuICAgICAgICBwcm9wczogd2lkZ2V0LnByb3BzXG4gICAgICB9O1xuICAgICAgdGhpcy5kZXRlY3RGaXJzdEVtcHR5U2xvdCh0aGlzLm5ld1dpZGdldCk7XG4gICAgICBjb25zdCB3ID0ge1xuICAgICAgICB1bmlxdWVOYW1lOiB0aGlzLm5ld1dpZGdldC51bmlxdWVOYW1lLFxuICAgICAgICBjb21wb25lbnQ6IHRoaXMubmV3V2lkZ2V0LmNvbXBvbmVudCxcbiAgICAgICAgdGl0bGU6IHRoaXMubmV3V2lkZ2V0LnRpdGxlLFxuICAgICAgICBvcHRpb25zOiB0aGlzLm5ld1dpZGdldC5vcHRpb25zLFxuICAgICAgICBwcm9wczogdGhpcy5uZXdXaWRnZXQucHJvcHMsXG4gICAgICAgIHNpemVYOiB0aGlzLm5ld1dpZGdldC5zaXplWCxcbiAgICAgICAgc2l6ZVk6IHRoaXMubmV3V2lkZ2V0LnNpemVZLFxuICAgICAgICBjb2w6IHRoaXMubmV3V2lkZ2V0LmNvbCxcbiAgICAgICAgcm93OiB0aGlzLm5ld1dpZGdldC5yb3dcbiAgICAgIH07XG4gICAgICB0aGlzLndpZGdldHMucHVzaCh3KTtcbiAgICAgIHRoaXMubmV3V2lkZ2V0ID0gbnVsbDtcbiAgICAgIHRoaXMuem9uZS5ydW4oKCkgPT4ge1xuICAgICAgICB0aGlzLmNkci5kZXRlY3RDaGFuZ2VzKCk7XG4gICAgICAgIHRoaXMuY2FsY0dyaWRTaXplKCk7XG4gICAgICAgIHRoaXMuZW1pdENvbmZpZ0NoYW5nZWQoJ2FkZCcpO1xuICAgICAgICBzZXRUaW1lb3V0KCgpID0+IHtcbiAgICAgICAgICB3WydfX21ldGFfXyddLmluc3RhbmNlLmVsZW1lbnQuYWRkRXZlbnRMaXN0ZW5lcignbW91c2Vkb3duJywgdGhpcy5kcmFnU3RhcnQuYmluZCh0aGlzKSwgZmFsc2UpO1xuICAgICAgICB9LCAxMDAwKTtcbiAgICAgIH0pO1xuICAgIH0pO1xuICB9XG5cblxuICBoYW5kbGVPblJlbW92ZSh3OiBBWFdpZGdldEhvc3RDb21wb25lbnQpIHtcbiAgICB3LmVsZW1lbnQuY2xhc3NMaXN0LmFkZCgnYW5pbWF0ZV9fYW5pbWF0ZWQnLCAnYW5pbWF0ZV9fem9vbU91dCcpO1xuICAgIHcuZWxlbWVudC5hZGRFdmVudExpc3RlbmVyKCdhbmltYXRpb25lbmQnLCAoKSA9PiB7XG4gICAgICB0aGlzLndpZGdldHMgPSB0aGlzLndpZGdldHMuZmlsdGVyKChjKSA9PiAoYyBhcyBhbnkpLl9fbWV0YV9fLmlkICE9PSAody5jb25maWcgYXMgYW55KS5fX21ldGFfXy5pZCk7XG4gICAgICB0aGlzLmNkci5kZXRlY3RDaGFuZ2VzKCk7XG4gICAgICB0aGlzLmNhbGNHcmlkU2l6ZSgpO1xuICAgICAgdGhpcy5lbWl0Q29uZmlnQ2hhbmdlZCgncmVtb3ZlJyk7XG4gICAgfSk7XG4gIH1cblxuICBoYW5kbGVPblNhdmUoZTogQVhXaWRnZXRDb25maWdTYXZlZEV2ZW50KSB7XG4gICAgdGhpcy5vbldpZGdldFNhdmUuZW1pdChlKTtcbiAgfVxuXG4gIHRyYWNrQnlGbihpbmRleCwgaXRlbSkge1xuICAgIGlmICghaXRlbVsnX19tZXRhX18nXT8uaWQpIHtcbiAgICAgIGl0ZW1bJ19fbWV0YV9fJ10gPSB7fTtcbiAgICAgIGl0ZW1bJ19fbWV0YV9fJ10uaWQgPSBBWEh0bWxVdGlsLmdldFVJRCgpO1xuICAgIH1cbiAgICByZXR1cm4gaXRlbVsnX19tZXRhX18nXT8uaWQ7XG4gIH1cblxuXG4gIGxvYWQod2lkZ2V0czogc3RyaW5nIHwgQVhXaWRnZXRDb25maWdbXSk6IFByb21pc2U8dm9pZD4ge1xuICAgIHRoaXMuY2xlYXIoKTtcbiAgICByZXR1cm4gbmV3IFByb21pc2U8dm9pZD4oKHJlc29sdmUsIHJlamVjdCkgPT4ge1xuICAgICAgaWYgKHdpZGdldHMpIHtcbiAgICAgICAgY29uc3QgbG9hZGVkV2lkZ2V0czogQVhXaWRnZXRDb25maWdbXSA9IFtdO1xuICAgICAgICBpZiAodHlwZW9mIHdpZGdldHMgPT09ICdzdHJpbmcnKSB7XG4gICAgICAgICAgdHJ5IHtcbiAgICAgICAgICAgIGxvYWRlZFdpZGdldHMucHVzaCguLi5KU09OLnBhcnNlKHdpZGdldHMpKTtcbiAgICAgICAgICAgIHRoaXMuZW1pdENvbmZpZ0NoYW5nZWQoJ2xvYWQnKTtcbiAgICAgICAgICB9IGNhdGNoIChlcnJvcikge1xuICAgICAgICAgICAgcmVqZWN0KCdJbnZhbGlkIHdpZGdldCBqc29uIGRhdGEhJyk7XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIGVsc2Uge1xuICAgICAgICAgIGxvYWRlZFdpZGdldHMucHVzaCguLi53aWRnZXRzKTtcbiAgICAgICAgICB0aGlzLmVtaXRDb25maWdDaGFuZ2VkKCdsb2FkJyk7XG4gICAgICAgIH1cbiAgICAgICAgbGV0IGludGVydmFsSWQ6IG51bWJlciA9IC0xO1xuICAgICAgICBjb25zdCBsb2FkRnVuYyA9ICgpID0+IHtcblxuICAgICAgICAgIGlmICh0aGlzLmdhbGxlcnlJdGVtcyAmJiB0aGlzLmdhbGxlcnlJdGVtcy5sZW5ndGggPiAwKSB7XG4gICAgICAgICAgICBsb2FkZWRXaWRnZXRzLmZvckVhY2godyA9PiB7XG4gICAgICAgICAgICAgIGNvbnN0IGdpdGVtID0gdGhpcy5nYWxsZXJ5SXRlbXMuZmluZChjID0+IGMudW5pcXVlTmFtZSA9PT0gdy51bmlxdWVOYW1lKTtcbiAgICAgICAgICAgICAgaWYgKGdpdGVtKSB7XG4gICAgICAgICAgICAgICAgdy5jb21wb25lbnQgPSBnaXRlbS5jb21wb25lbnQ7XG4gICAgICAgICAgICAgICAgaWYgKGdpdGVtLnByb3BzKSB7XG4gICAgICAgICAgICAgICAgICB3LnByb3BzID0gSlNPTi5wYXJzZShKU09OLnN0cmluZ2lmeShnaXRlbS5wcm9wcykpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICB0aGlzLndpZGdldHMucHVzaCguLi5sb2FkZWRXaWRnZXRzKTtcbiAgICAgICAgICAgIHRoaXMuZW1pdENvbmZpZ0NoYW5nZWQoJ2xvYWQnKTtcbiAgICAgICAgICAgIHdpbmRvdy5jbGVhckludGVydmFsKGludGVydmFsSWQpO1xuICAgICAgICAgICAgdGhpcy5jZHIuZGV0ZWN0Q2hhbmdlcygpO1xuICAgICAgICAgICAgcmVzb2x2ZSgpO1xuICAgICAgICAgIH1cbiAgICAgICAgfTtcbiAgICAgICAgaW50ZXJ2YWxJZCA9IHdpbmRvdy5zZXRJbnRlcnZhbChsb2FkRnVuYywgMjAwKTtcbiAgICAgIH1cbiAgICAgIGVsc2Uge1xuICAgICAgICByZXNvbHZlKCk7XG4gICAgICB9XG4gICAgfSk7XG4gIH1cblxuICBjbGVhcigpIHtcbiAgICBpZiAodGhpcy53aWRnZXRzLmxlbmd0aCkge1xuICAgICAgdGhpcy53aWRnZXRzID0gW107XG4gICAgICB0aGlzLmNkci5kZXRlY3RDaGFuZ2VzKCk7XG4gICAgICB0aGlzLnNhdmVTdWJqZWN0Lm5leHQoJ2NsZWFyJyk7XG4gICAgfVxuICB9XG5cbiAgc2F2ZSgpOiBQcm9taXNlPHN0cmluZz4ge1xuICAgIGNvbnN0IG9iaiA9IHRoaXMud2lkZ2V0cy5tYXAoYyA9PiAoe1xuICAgICAgdW5pcXVlTmFtZTogYy51bmlxdWVOYW1lLFxuICAgICAgY29tcG9uZW50OiBjLmNvbXBvbmVudCxcbiAgICAgIHRpdGxlOiBjLnRpdGxlLFxuICAgICAgc2l6ZVg6IGMuc2l6ZVgsXG4gICAgICBzaXplWTogYy5zaXplWSxcbiAgICAgIGNvbDogYy5jb2wsXG4gICAgICByb3c6IGMucm93LFxuICAgICAgb3B0aW9uczogYy5vcHRpb25zLFxuICAgICAgcHJvcHM6IGMucHJvcHNcbiAgICB9KSk7XG4gICAgcmV0dXJuIFByb21pc2UucmVzb2x2ZShKU09OLnN0cmluZ2lmeShvYmopKTtcbiAgfVxuXG4gIHJlZnJlc2goKSB7XG4gICAgdGhpcy53aWRnZXRIb3N0cy5mb3JFYWNoKGhvc3QgPT4ge1xuICAgICAgaG9zdC53aWRnZXQucmVmcmVzaCgpO1xuICAgIH0pO1xuICB9XG5cbiAgaGFuZGxlT25Db25maWdDaGFuZ2VkKGU6IEFYV2lkZ2V0Q29uZmlnQ2hhbmdlZCkge1xuICAgIHRoaXMuY2RyLmRldGVjdENoYW5nZXMoKTtcbiAgICB0aGlzLnNhdmVTdWJqZWN0Lm5leHQoJ2NvbmZpZycpO1xuICB9XG5cbiAgaGFuZGxlT25SZXNpemVkQ2hhbmdlZChlOiBBWFdpZGdldENvbmZpZ0NoYW5nZWQpIHtcbiAgICB0aGlzLmRldGVjdEZpcnN0RW1wdHlTbG90KGUuY29uZmlnKTtcbiAgICB0aGlzLmNkci5kZXRlY3RDaGFuZ2VzKCk7XG4gICAgdGhpcy5zYXZlU3ViamVjdC5uZXh0KCdjb25maWcnKTtcbiAgfVxuXG4gIHByaXZhdGUgZW1pdENvbmZpZ0NoYW5nZWQobW9kZTogJ2NsZWFyJyB8ICdhZGQnIHwgJ3JlbW92ZScgfCAnbG9hZCcgfCAnY29uZmlnJykge1xuICAgIHRoaXMub25Db25maWdDaGFuZ2VkLmVtaXQoe1xuICAgICAgY29tcG9uZW50OiB0aGlzLFxuICAgICAgbW9kZTogbW9kZVxuICAgIH0pO1xuICB9XG59XG4iLCI8ZGl2IGNsYXNzPVwid2lkZ2V0cy1jb250YWluZXJcIiBbY2xhc3MucnRsXT1cInJ0bFwiICNjb250YWluZXI+XG4gIEBmb3IgKHcgb2Ygd2lkZ2V0czsgdHJhY2sgdHJhY2tCeUZuKCRpbmRleCwgdykpIHtcbiAgICA8YXgtd2lkZ2V0LWhvc3QgIFtjb25maWddPSd3JyBbc2l6ZVhdPVwidy5zaXplWFwiIFtyZWFkb25seV09XCJyZWFkb25seSB8fCB3LnJlYWRvbmx5XCJcbiAgICAgIFtzaXplWV09XCJ3LnNpemVZXCIgW2NvbF09XCJ3LmNvbFwiIFtyb3ddPVwidy5yb3dcIiAob25SZW1vdmUpPVwiaGFuZGxlT25SZW1vdmUoJGV2ZW50KVwiIChvblNhdmUpPVwiaGFuZGxlT25TYXZlKCRldmVudClcIlxuICAgICAgKG9uQ29uZmlnQ2hhbmdlZCk9XCJoYW5kbGVPbkNvbmZpZ0NoYW5nZWQoJGV2ZW50KVwiIChvblJlc2l6ZWQpPVwiaGFuZGxlT25SZXNpemVkQ2hhbmdlZCgkZXZlbnQpXCJcbiAgICAgIFtwcm92aWRlVmFsdWVdPVwicHJvdmlkZVZhbHVlXCI+XG4gICAgPC9heC13aWRnZXQtaG9zdD5cbiAgfVxuPC9kaXY+XG4iXX0=","import { Component, ChangeDetectorRef } from '@angular/core';\nimport { AXProperyEditorComponent } from '@acorex/components';\nimport * as i0 from \"@angular/core\";\nimport * as i1 from \"@acorex/components\";\nexport class AXWidgetSizePropertyEditorComponent extends AXProperyEditorComponent {\n cdr;\n sizeX;\n sizeY;\n minX = 1;\n maxX = 20;\n minY = 1;\n maxY = 20;\n constructor(cdr) {\n super(cdr);\n this.cdr = cdr;\n }\n ngOnInit() {\n if (Array.isArray(this.value)) {\n this.sizeX = this.value[0];\n this.sizeY = this.value[1];\n }\n else {\n this.sizeX = 2;\n this.sizeY = 2;\n }\n }\n handleMinValueChange(e) {\n this.sizeX = e.value;\n if (this.sizeY > 0) {\n super.handleValueChange([this.sizeX, this.sizeY]);\n }\n }\n handleMaxValueChange(e) {\n this.sizeY = e.value;\n if (this.sizeX > 0) {\n super.handleValueChange([this.sizeX, this.sizeY]);\n }\n }\n ngAfterViewInit() {\n this.onRenderCompleted.emit();\n }\n static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.3.3\", ngImport: i0, type: AXWidgetSizePropertyEditorComponent, deps: [{ token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component });\n static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: \"14.0.0\", version: \"20.3.3\", type: AXWidgetSizePropertyEditorComponent, isStandalone: false, selector: \"ng-component\", usesInheritance: true, ngImport: i0, template: \"<div style=\\\"display: grid;grid-gap: 2%; grid-template-columns: 49% 49%;\\\">\\n <ax-number-box (onValueChanged)=\\\"handleMinValueChange($event)\\\" [value]=\\\"sizeX\\\" [min]=\\\"minX\\\" [max]=\\\"maxX\\\">\\n </ax-number-box>\\n <ax-number-box (onValueChanged)=\\\"handleMaxValueChange($event)\\\" [value]=\\\"sizeY\\\" [min]=\\\"minY\\\" [max]=\\\"maxY\\\">\\n </ax-number-box>\\n</div>\", dependencies: [{ kind: \"component\", type: i1.AXNumberBoxComponent, selector: \"ax-number-box\", inputs: [\"min\", \"max\", \"showSeparator\", \"showCurrency\", \"showCounter\", \"scrollWeel\", \"showDoubleCounter\", \"maxLength\", \"intStep\", \"decimalNumber\", \"customStep\"] }] });\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.3.3\", ngImport: i0, type: AXWidgetSizePropertyEditorComponent, decorators: [{\n type: Component,\n args: [{ standalone: false, template: \"<div style=\\\"display: grid;grid-gap: 2%; grid-template-columns: 49% 49%;\\\">\\n <ax-number-box (onValueChanged)=\\\"handleMinValueChange($event)\\\" [value]=\\\"sizeX\\\" [min]=\\\"minX\\\" [max]=\\\"maxX\\\">\\n </ax-number-box>\\n <ax-number-box (onValueChanged)=\\\"handleMaxValueChange($event)\\\" [value]=\\\"sizeY\\\" [min]=\\\"minY\\\" [max]=\\\"maxY\\\">\\n </ax-number-box>\\n</div>\" }]\n }], ctorParameters: () => [{ type: i0.ChangeDetectorRef }] });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoid2lkZ2V0LXNpemUuZWRpdG9yLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9sYXlvdXQvc3JjL2xpYi93aWRnZXQtYm9hcmQvZWRpdG9ycy93aWRnZXQtc2l6ZS1lZGl0b3Ivd2lkZ2V0LXNpemUuZWRpdG9yLnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9sYXlvdXQvc3JjL2xpYi93aWRnZXQtYm9hcmQvZWRpdG9ycy93aWRnZXQtc2l6ZS1lZGl0b3Ivd2lkZ2V0LXNpemUuZWRpdG9yLmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBVSxpQkFBaUIsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUNyRSxPQUFPLEVBQUUsd0JBQXdCLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQzs7O0FBTTlELE1BQU0sT0FBTyxtQ0FBb0MsU0FBUSx3QkFBa0M7SUFZakU7SUFWdEIsS0FBSyxDQUFTO0lBQ2QsS0FBSyxDQUFTO0lBRWQsSUFBSSxHQUFXLENBQUMsQ0FBQztJQUNqQixJQUFJLEdBQVcsRUFBRSxDQUFDO0lBRWxCLElBQUksR0FBVyxDQUFDLENBQUM7SUFDakIsSUFBSSxHQUFXLEVBQUUsQ0FBQztJQUdsQixZQUFzQixHQUFzQjtRQUN4QyxLQUFLLENBQUMsR0FBRyxDQUFDLENBQUM7UUFETyxRQUFHLEdBQUgsR0FBRyxDQUFtQjtJQUU1QyxDQUFDO0lBRUQsUUFBUTtRQUNKLElBQUksS0FBSyxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLEVBQUUsQ0FBQztZQUM1QixJQUFJLENBQUMsS0FBSyxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUM7WUFDM0IsSUFBSSxDQUFDLEtBQUssR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDO1FBQy9CLENBQUM7YUFDSSxDQUFDO1lBQ0YsSUFBSSxDQUFDLEtBQUssR0FBRyxDQUFDLENBQUM7WUFDZixJQUFJLENBQUMsS0FBSyxHQUFHLENBQUMsQ0FBQztRQUNuQixDQUFDO0lBQ0wsQ0FBQztJQUVELG9CQUFvQixDQUFDLENBQU07UUFDdkIsSUFBSSxDQUFDLEtBQUssR0FBRyxDQUFDLENBQUMsS0FBSyxDQUFDO1FBRXJCLElBQUksSUFBSSxDQUFDLEtBQUssR0FBRyxDQUFDLEVBQUUsQ0FBQztZQUNqQixLQUFLLENBQUMsaUJBQWlCLENBQUMsQ0FBQyxJQUFJLENBQUMsS0FBSyxFQUFFLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDO1FBQ3RELENBQUM7SUFDTCxDQUFDO0lBRUQsb0JBQW9CLENBQUMsQ0FBTTtRQUN2QixJQUFJLENBQUMsS0FBSyxHQUFHLENBQUMsQ0FBQyxLQUFLLENBQUM7UUFDckIsSUFBSSxJQUFJLENBQUMsS0FBSyxHQUFHLENBQUMsRUFBRSxDQUFDO1lBQ2pCLEtBQUssQ0FBQyxpQkFBaUIsQ0FBQyxDQUFDLElBQUksQ0FBQyxLQUFLLEVBQUUsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUM7UUFDdEQsQ0FBQztJQUNMLENBQUM7SUFJRCxlQUFlO1FBQ1gsSUFBSSxDQUFDLGlCQUFpQixDQUFDLElBQUksRUFBRSxDQUFDO0lBQ2xDLENBQUM7dUdBOUNRLG1DQUFtQzsyRkFBbkMsbUNBQW1DLGdHQ1BoRCwrV0FLTTs7MkZERU8sbUNBQW1DO2tCQUovQyxTQUFTO2lDQUVNLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIE9uSW5pdCwgQ2hhbmdlRGV0ZWN0b3JSZWYgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEFYUHJvcGVyeUVkaXRvckNvbXBvbmVudCB9IGZyb20gJ0BhY29yZXgvY29tcG9uZW50cyc7XG5cbkBDb21wb25lbnQoe1xuICAgIHRlbXBsYXRlVXJsOiAnLi93aWRnZXQtc2l6ZS5lZGl0b3IuaHRtbCcsXG4gICAgc3RhbmRhbG9uZTogZmFsc2Vcbn0pXG5leHBvcnQgY2xhc3MgQVhXaWRnZXRTaXplUHJvcGVydHlFZGl0b3JDb21wb25lbnQgZXh0ZW5kcyBBWFByb3BlcnlFZGl0b3JDb21wb25lbnQ8bnVtYmVyW10+ICB7XG5cbiAgICBzaXplWDogbnVtYmVyO1xuICAgIHNpemVZOiBudW1iZXI7XG5cbiAgICBtaW5YOiBudW1iZXIgPSAxO1xuICAgIG1heFg6IG51bWJlciA9IDIwO1xuXG4gICAgbWluWTogbnVtYmVyID0gMTtcbiAgICBtYXhZOiBudW1iZXIgPSAyMDtcblxuXG4gICAgY29uc3RydWN0b3IocHJvdGVjdGVkIGNkcjogQ2hhbmdlRGV0ZWN0b3JSZWYpIHtcbiAgICAgICAgc3VwZXIoY2RyKTtcbiAgICB9XG5cbiAgICBuZ09uSW5pdCgpIHtcbiAgICAgICAgaWYgKEFycmF5LmlzQXJyYXkodGhpcy52YWx1ZSkpIHtcbiAgICAgICAgICAgIHRoaXMuc2l6ZVggPSB0aGlzLnZhbHVlWzBdO1xuICAgICAgICAgICAgdGhpcy5zaXplWSA9IHRoaXMudmFsdWVbMV07XG4gICAgICAgIH1cbiAgICAgICAgZWxzZSB7XG4gICAgICAgICAgICB0aGlzLnNpemVYID0gMjtcbiAgICAgICAgICAgIHRoaXMuc2l6ZVkgPSAyO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgaGFuZGxlTWluVmFsdWVDaGFuZ2UoZTogYW55KSB7XG4gICAgICAgIHRoaXMuc2l6ZVggPSBlLnZhbHVlO1xuXG4gICAgICAgIGlmICh0aGlzLnNpemVZID4gMCkge1xuICAgICAgICAgICAgc3VwZXIuaGFuZGxlVmFsdWVDaGFuZ2UoW3RoaXMuc2l6ZVgsIHRoaXMuc2l6ZVldKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIGhhbmRsZU1heFZhbHVlQ2hhbmdlKGU6IGFueSkge1xuICAgICAgICB0aGlzLnNpemVZID0gZS52YWx1ZTtcbiAgICAgICAgaWYgKHRoaXMuc2l6ZVggPiAwKSB7XG4gICAgICAgICAgICBzdXBlci5oYW5kbGVWYWx1ZUNoYW5nZShbdGhpcy5zaXplWCwgdGhpcy5zaXplWV0pO1xuICAgICAgICB9XG4gICAgfVxuXG5cblxuICAgIG5nQWZ0ZXJWaWV3SW5pdCgpIHtcbiAgICAgICAgdGhpcy5vblJlbmRlckNvbXBsZXRlZC5lbWl0KCk7XG4gICAgfVxuXG59IiwiPGRpdiBzdHlsZT1cImRpc3BsYXk6IGdyaWQ7Z3JpZC1nYXA6IDIlOyBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IDQ5JSA0OSU7XCI+XG4gICAgPGF4LW51bWJlci1ib3ggKG9uVmFsdWVDaGFuZ2VkKT1cImhhbmRsZU1pblZhbHVlQ2hhbmdlKCRldmVudClcIiBbdmFsdWVdPVwic2l6ZVhcIiBbbWluXT1cIm1pblhcIiBbbWF4XT1cIm1heFhcIj5cbiAgICA8L2F4LW51bWJlci1ib3g+XG4gICAgPGF4LW51bWJlci1ib3ggKG9uVmFsdWVDaGFuZ2VkKT1cImhhbmRsZU1heFZhbHVlQ2hhbmdlKCRldmVudClcIiBbdmFsdWVdPVwic2l6ZVlcIiBbbWluXT1cIm1pbllcIiBbbWF4XT1cIm1heFlcIj5cbiAgICA8L2F4LW51bWJlci1ib3g+XG48L2Rpdj4iXX0=","import { NO_ERRORS_SCHEMA, NgModule } from '@angular/core';\nimport { AXWidgetBoardComponent } from './widget-board.component';\nimport { CommonModule } from '@angular/common';\nimport { AXWidgetHostComponent } from './widget-host.component';\nimport { AXSearchBoxModule, AXLoadingModule, AXProppertyEditorModule, AXPageModule, AXLabelModule, AXToolbarModule, AXTabStripModule, AXMenuModule, AXFormGroupModule, AXTextAreaModule, AXTextBoxModule, AXFieldsetModule, AXCheckBoxModule, AXValidationModule, } from '@acorex/components';\nimport { RouterModule } from '@angular/router';\nimport { AXWidgetConfigComponent } from './widget-config.component';\nimport { AXTranslator, AXTranslatorModule } from '@acorex/core';\nimport { AXWidgetSizePropertyEditorComponent } from './editors/widget-size-editor/widget-size.editor';\nimport { AXWidgetSaveComponent } from './widget-save.component';\nimport * as i0 from \"@angular/core\";\nimport * as i1 from \"@angular/router\";\nexport class AXWidgetBoardModule {\n /**\n *\n */\n constructor() {\n AXTranslator.load('en', {\n 'widget-board': {\n 'configurable-props': 'Configurable Properties',\n configure: 'Configure Widget',\n },\n });\n AXTranslator.load('fa', {\n 'widget-board': {\n 'configurable-props': 'ویژگی های قابل تنظیم',\n configure: 'پیکر بندی ابزارک',\n },\n });\n }\n static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.3.3\", ngImport: i0, type: AXWidgetBoardModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });\n static ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: \"14.0.0\", version: \"20.3.3\", ngImport: i0, type: AXWidgetBoardModule, declarations: [AXWidgetBoardComponent,\n AXWidgetHostComponent,\n AXWidgetConfigComponent,\n AXWidgetSaveComponent], imports: [CommonModule,\n AXSearchBoxModule,\n AXLoadingModule,\n RouterModule,\n AXProppertyEditorModule,\n AXPageModule,\n AXToolbarModule,\n AXTranslatorModule,\n AXLabelModule,\n AXTextAreaModule,\n AXFieldsetModule,\n AXTextBoxModule,\n AXFormGroupModule,\n AXTabStripModule,\n AXCheckBoxModule,\n AXMenuModule,\n AXTranslatorModule,\n AXValidationModule, i1.RouterModule], exports: [AXWidgetBoardComponent, AXProppertyEditorModule] });\n static ɵinj = i0.ɵɵngDeclareInjector({ minVersion: \"12.0.0\", version: \"20.3.3\", ngImport: i0, type: AXWidgetBoardModule, imports: [CommonModule,\n AXSearchBoxModule,\n AXLoadingModule,\n RouterModule,\n AXProppertyEditorModule,\n AXPageModule,\n AXToolbarModule,\n AXTranslatorModule,\n AXLabelModule,\n AXTextAreaModule,\n AXFieldsetModule,\n AXTextBoxModule,\n AXFormGroupModule,\n AXTabStripModule,\n AXCheckBoxModule,\n AXMenuModule,\n AXTranslatorModule,\n AXValidationModule,\n RouterModule.forChild([\n {\n component: AXWidgetSizePropertyEditorComponent,\n path: 'ax/editors/widget-size',\n },\n ]), AXProppertyEditorModule] });\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.3.3\", ngImport: i0, type: AXWidgetBoardModule, decorators: [{\n type: NgModule,\n args: [{\n imports: [\n CommonModule,\n AXSearchBoxModule,\n AXLoadingModule,\n RouterModule,\n AXProppertyEditorModule,\n AXPageModule,\n AXToolbarModule,\n AXTranslatorModule,\n AXLabelModule,\n AXTextAreaModule,\n AXFieldsetModule,\n AXTextBoxModule,\n AXFormGroupModule,\n AXTabStripModule,\n AXCheckBoxModule,\n AXMenuModule,\n AXTranslatorModule,\n AXValidationModule,\n RouterModule.forChild([\n {\n component: AXWidgetSizePropertyEditorComponent,\n path: 'ax/editors/widget-size',\n },\n ]),\n ],\n exports: [AXWidgetBoardComponent, AXProppertyEditorModule],\n declarations: [\n AXWidgetBoardComponent,\n AXWidgetHostComponent,\n AXWidgetConfigComponent,\n AXWidgetSaveComponent,\n ],\n providers: [],\n schemas: [NO_ERRORS_SCHEMA],\n }]\n }], ctorParameters: () => [] });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoid2lkZ2V0LWJvYXJkLm1vZHVsZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvbGF5b3V0L3NyYy9saWIvd2lkZ2V0LWJvYXJkL3dpZGdldC1ib2FyZC5tb2R1bGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLGdCQUFnQixFQUFFLFFBQVEsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUMzRCxPQUFPLEVBQUUsc0JBQXNCLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUNsRSxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDL0MsT0FBTyxFQUFFLHFCQUFxQixFQUFFLE1BQU0seUJBQXlCLENBQUM7QUFDaEUsT0FBTyxFQUNMLGlCQUFpQixFQUNqQixlQUFlLEVBQ2YsdUJBQXVCLEVBQ3ZCLFlBQVksRUFDWixhQUFhLEVBQ2IsZUFBZSxFQUNmLGdCQUFnQixFQUNoQixZQUFZLEVBQ1osaUJBQWlCLEVBQ2pCLGdCQUFnQixFQUNoQixlQUFlLEVBQ2YsZ0JBQWdCLEVBQ2hCLGdCQUFnQixFQUNoQixrQkFBa0IsR0FDbkIsTUFBTSxvQkFBb0IsQ0FBQztBQUM1QixPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDL0MsT0FBTyxFQUFFLHVCQUF1QixFQUFFLE1BQU0sMkJBQTJCLENBQUM7QUFDcEUsT0FBTyxFQUFFLFlBQVksRUFBRSxrQkFBa0IsRUFBRSxNQUFNLGNBQWMsQ0FBQztBQUNoRSxPQUFPLEVBQUUsbUNBQW1DLEVBQUUsTUFBTSxpREFBaUQsQ0FBQztBQUV0RyxPQUFPLEVBQUUscUJBQXFCLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQzs7O0FBdUNoRSxNQUFNLE9BQU8sbUJBQW1CO0lBQzlCOztPQUVHO0lBQ0g7UUFDRSxZQUFZLENBQUMsSUFBSSxDQUFDLElBQUksRUFBRTtZQUN0QixjQUFjLEVBQUU7Z0JBQ2Qsb0JBQW9CLEVBQUUseUJBQXlCO2dCQUMvQyxTQUFTLEVBQUUsa0JBQWtCO2FBQzlCO1NBQ0YsQ0FBQyxDQUFDO1FBQ0gsWUFBWSxDQUFDLElBQUksQ0FBQyxJQUFJLEVBQUU7WUFDdEIsY0FBYyxFQUFFO2dCQUNkLG9CQUFvQixFQUFFLHNCQUFzQjtnQkFDNUMsU0FBUyxFQUFFLGtCQUFrQjthQUM5QjtTQUNGLENBQUMsQ0FBQztJQUNMLENBQUM7dUdBakJVLG1CQUFtQjt3R0FBbkIsbUJBQW1CLGlCQVI1QixzQkFBc0I7WUFDdEIscUJBQXFCO1lBQ3JCLHVCQUF1QjtZQUN2QixxQkFBcUIsYUE5QnJCLFlBQVk7WUFDWixpQkFBaUI7WUFDakIsZUFBZTtZQUNmLFlBQVk7WUFDWix1QkFBdUI7WUFDdkIsWUFBWTtZQUNaLGVBQWU7WUFDZixrQkFBa0I7WUFDbEIsYUFBYTtZQUNiLGdCQUFnQjtZQUNoQixnQkFBZ0I7WUFDaEIsZUFBZTtZQUNmLGlCQUFpQjtZQUNqQixnQkFBZ0I7WUFDaEIsZ0JBQWdCO1lBQ2hCLFlBQVk7WUFDWixrQkFBa0I7WUFDbEIsa0JBQWtCLDhCQVFWLHNCQUFzQixFQUFFLHVCQUF1Qjt3R0FVOUMsbUJBQW1CLFlBbkM1QixZQUFZO1lBQ1osaUJBQWlCO1lBQ2pCLGVBQWU7WUFDZixZQUFZO1lBQ1osdUJBQXVCO1lBQ3ZCLFlBQVk7WUFDWixlQUFlO1lBQ2Ysa0JBQWtCO1lBQ2xCLGFBQWE7WUFDYixnQkFBZ0I7WUFDaEIsZ0JBQWdCO1lBQ2hCLGVBQWU7WUFDZixpQkFBaUI7WUFDakIsZ0JBQWdCO1lBQ2hCLGdCQUFnQjtZQUNoQixZQUFZO1lBQ1osa0JBQWtCO1lBQ2xCLGtCQUFrQjtZQUNsQixZQUFZLENBQUMsUUFBUSxDQUFDO2dCQUNwQjtvQkFDRSxTQUFTLEVBQUUsbUNBQW1DO29CQUM5QyxJQUFJLEVBQUUsd0JBQXdCO2lCQUMvQjthQUNGLENBQUMsRUFFOEIsdUJBQXVCOzsyRkFVOUMsbUJBQW1CO2tCQXJDL0IsUUFBUTttQkFBQztvQkFDUixPQUFPLEVBQUU7d0JBQ1AsWUFBWTt3QkFDWixpQkFBaUI7d0JBQ2pCLGVBQWU7d0JBQ2YsWUFBWTt3QkFDWix1QkFBdUI7d0JBQ3ZCLFlBQVk7d0JBQ1osZUFBZTt3QkFDZixrQkFBa0I7d0JBQ2xCLGFBQWE7d0JBQ2IsZ0JBQWdCO3dCQUNoQixnQkFBZ0I7d0JBQ2hCLGVBQWU7d0JBQ2YsaUJBQWlCO3dCQUNqQixnQkFBZ0I7d0JBQ2hCLGdCQUFnQjt3QkFDaEIsWUFBWTt3QkFDWixrQkFBa0I7d0JBQ2xCLGtCQUFrQjt3QkFDbEIsWUFBWSxDQUFDLFFBQVEsQ0FBQzs0QkFDcEI7Z0NBQ0UsU0FBUyxFQUFFLG1DQUFtQztnQ0FDOUMsSUFBSSxFQUFFLHdCQUF3Qjs2QkFDL0I7eUJBQ0YsQ0FBQztxQkFDSDtvQkFDRCxPQUFPLEVBQUUsQ0FBQyxzQkFBc0IsRUFBRSx1QkFBdUIsQ0FBQztvQkFDMUQsWUFBWSxFQUFFO3dCQUNaLHNCQUFzQjt3QkFDdEIscUJBQXFCO3dCQUNyQix1QkFBdUI7d0JBQ3ZCLHFCQUFxQjtxQkFDdEI7b0JBQ0QsU0FBUyxFQUFFLEVBQUU7b0JBQ2IsT0FBTyxFQUFFLENBQUMsZ0JBQWdCLENBQUM7aUJBQzVCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgTk9fRVJST1JTX1NDSEVNQSwgTmdNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEFYV2lkZ2V0Qm9hcmRDb21wb25lbnQgfSBmcm9tICcuL3dpZGdldC1ib2FyZC5jb21wb25lbnQnO1xuaW1wb3J0IHsgQ29tbW9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7IEFYV2lkZ2V0SG9zdENvbXBvbmVudCB9IGZyb20gJy4vd2lkZ2V0LWhvc3QuY29tcG9uZW50JztcbmltcG9ydCB7XG4gIEFYU2VhcmNoQm94TW9kdWxlLFxuICBBWExvYWRpbmdNb2R1bGUsXG4gIEFYUHJvcHBlcnR5RWRpdG9yTW9kdWxlLFxuICBBWFBhZ2VNb2R1bGUsXG4gIEFYTGFiZWxNb2R1bGUsXG4gIEFYVG9vbGJhck1vZHVsZSxcbiAgQVhUYWJTdHJpcE1vZHVsZSxcbiAgQVhNZW51TW9kdWxlLFxuICBBWEZvcm1Hcm91cE1vZHVsZSxcbiAgQVhUZXh0QXJlYU1vZHVsZSxcbiAgQVhUZXh0Qm94TW9kdWxlLFxuICBBWEZpZWxkc2V0TW9kdWxlLFxuICBBWENoZWNrQm94TW9kdWxlLFxuICBBWFZhbGlkYXRpb25Nb2R1bGUsXG59IGZyb20gJ0BhY29yZXgvY29tcG9uZW50cyc7XG5pbXBvcnQgeyBSb3V0ZXJNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9yb3V0ZXInO1xuaW1wb3J0IHsgQVhXaWRnZXRDb25maWdDb21wb25lbnQgfSBmcm9tICcuL3dpZGdldC1jb25maWcuY29tcG9uZW50JztcbmltcG9ydCB7IEFYVHJhbnNsYXRvciwgQVhUcmFuc2xhdG9yTW9kdWxlIH0gZnJvbSAnQGFjb3JleC9jb3JlJztcbmltcG9ydCB7IEFYV2lkZ2V0U2l6ZVByb3BlcnR5RWRpdG9yQ29tcG9uZW50IH0gZnJvbSAnLi9lZGl0b3JzL3dpZGdldC1zaXplLWVkaXRvci93aWRnZXQtc2l6ZS5lZGl0b3InO1xuaW1wb3J0IHsgQVhXaWRnZXRTaXplUHJvcGVydHlFZGl0b3JNb2R1bGUgfSBmcm9tICcuL2VkaXRvcnMvd2lkZ2V0LXNpemUtZWRpdG9yL3dpZGdldC1zaXplLm1vZHVsZSc7XG5pbXBvcnQgeyBBWFdpZGdldFNhdmVDb21wb25lbnQgfSBmcm9tICcuL3dpZGdldC1zYXZlLmNvbXBvbmVudCc7XG5cbkBOZ01vZHVsZSh7XG4gIGltcG9ydHM6IFtcbiAgICBDb21tb25Nb2R1bGUsXG4gICAgQVhTZWFyY2hCb3hNb2R1bGUsXG4gICAgQVhMb2FkaW5nTW9kdWxlLFxuICAgIFJvdXRlck1vZHVsZSxcbiAgICBBWFByb3BwZXJ0eUVkaXRvck1vZHVsZSxcbiAgICBBWFBhZ2VNb2R1bGUsXG4gICAgQVhUb29sYmFyTW9kdWxlLFxuICAgIEFYVHJhbnNsYXRvck1vZHVsZSxcbiAgICBBWExhYmVsTW9kdWxlLFxuICAgIEFYVGV4dEFyZWFNb2R1bGUsXG4gICAgQVhGaWVsZHNldE1vZHVsZSxcbiAgICBBWFRleHRCb3hNb2R1bGUsXG4gICAgQVhGb3JtR3JvdXBNb2R1bGUsXG4gICAgQVhUYWJTdHJpcE1vZHVsZSxcbiAgICBBWENoZWNrQm94TW9kdWxlLFxuICAgIEFYTWVudU1vZHVsZSxcbiAgICBBWFRyYW5zbGF0b3JNb2R1bGUsXG4gICAgQVhWYWxpZGF0aW9uTW9kdWxlLFxuICAgIFJvdXRlck1vZHVsZS5mb3JDaGlsZChbXG4gICAgICB7XG4gICAgICAgIGNvbXBvbmVudDogQVhXaWRnZXRTaXplUHJvcGVydHlFZGl0b3JDb21wb25lbnQsXG4gICAgICAgIHBhdGg6ICdheC9lZGl0b3JzL3dpZGdldC1zaXplJyxcbiAgICAgIH0sXG4gICAgXSksXG4gIF0sXG4gIGV4cG9ydHM6IFtBWFdpZGdldEJvYXJkQ29tcG9uZW50LCBBWFByb3BwZXJ0eUVkaXRvck1vZHVsZV0sXG4gIGRlY2xhcmF0aW9uczogW1xuICAgIEFYV2lkZ2V0Qm9hcmRDb21wb25lbnQsXG4gICAgQVhXaWRnZXRIb3N0Q29tcG9uZW50LFxuICAgIEFYV2lkZ2V0Q29uZmlnQ29tcG9uZW50LFxuICAgIEFYV2lkZ2V0U2F2ZUNvbXBvbmVudCxcbiAgXSxcbiAgcHJvdmlkZXJzOiBbXSxcbiAgc2NoZW1hczogW05PX0VSUk9SU19TQ0hFTUFdLFxufSlcbmV4cG9ydCBjbGFzcyBBWFdpZGdldEJvYXJkTW9kdWxlIHtcbiAgLyoqXG4gICAqXG4gICAqL1xuICBjb25zdHJ1Y3RvcigpIHtcbiAgICBBWFRyYW5zbGF0b3IubG9hZCgnZW4nLCB7XG4gICAgICAnd2lkZ2V0LWJvYXJkJzoge1xuICAgICAgICAnY29uZmlndXJhYmxlLXByb3BzJzogJ0NvbmZpZ3VyYWJsZSBQcm9wZXJ0aWVzJyxcbiAgICAgICAgY29uZmlndXJlOiAnQ29uZmlndXJlIFdpZGdldCcsXG4gICAgICB9LFxuICAgIH0pO1xuICAgIEFYVHJhbnNsYXRvci5sb2FkKCdmYScsIHtcbiAgICAgICd3aWRnZXQtYm9hcmQnOiB7XG4gICAgICAgICdjb25maWd1cmFibGUtcHJvcHMnOiAn2YjbjNqY2q/bjCDZh9in24wg2YLYp9io2YQg2KrZhti424zZhScsXG4gICAgICAgIGNvbmZpZ3VyZTogJ9m+24zaqdixINio2YbYr9uMINin2KjYstin2LHaqScsXG4gICAgICB9LFxuICAgIH0pO1xuICB9XG59XG4iXX0=","import { NO_ERRORS_SCHEMA, NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { FormsModule } from '@angular/forms';\nimport { AXWidgetSizePropertyEditorComponent } from './widget-size.editor';\nimport { AXNumberBoxModule } from '@acorex/components';\nimport * as i0 from \"@angular/core\";\nexport class AXWidgetSizePropertyEditorModule {\n static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.3.3\", ngImport: i0, type: AXWidgetSizePropertyEditorModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });\n static ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: \"14.0.0\", version: \"20.3.3\", ngImport: i0, type: AXWidgetSizePropertyEditorModule, declarations: [AXWidgetSizePropertyEditorComponent], imports: [CommonModule, FormsModule, AXNumberBoxModule], exports: [AXWidgetSizePropertyEditorComponent] });\n static ɵinj = i0.ɵɵngDeclareInjector({ minVersion: \"12.0.0\", version: \"20.3.3\", ngImport: i0, type: AXWidgetSizePropertyEditorModule, imports: [CommonModule, FormsModule, AXNumberBoxModule] });\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.3.3\", ngImport: i0, type: AXWidgetSizePropertyEditorModule, decorators: [{\n type: NgModule,\n args: [{\n declarations: [AXWidgetSizePropertyEditorComponent],\n imports: [CommonModule, FormsModule, AXNumberBoxModule],\n exports: [AXWidgetSizePropertyEditorComponent],\n providers: [],\n schemas: [NO_ERRORS_SCHEMA],\n }]\n }] });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoid2lkZ2V0LXNpemUubW9kdWxlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9sYXlvdXQvc3JjL2xpYi93aWRnZXQtYm9hcmQvZWRpdG9ycy93aWRnZXQtc2l6ZS1lZGl0b3Ivd2lkZ2V0LXNpemUubW9kdWxlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxRQUFRLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDM0QsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQy9DLE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUU3QyxPQUFPLEVBQUUsbUNBQW1DLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQUMzRSxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQzs7QUFTdkQsTUFBTSxPQUFPLGdDQUFnQzt1R0FBaEMsZ0NBQWdDO3dHQUFoQyxnQ0FBZ0MsaUJBTjVCLG1DQUFtQyxhQUN4QyxZQUFZLEVBQUUsV0FBVyxFQUFFLGlCQUFpQixhQUM1QyxtQ0FBbUM7d0dBSWxDLGdDQUFnQyxZQUxqQyxZQUFZLEVBQUUsV0FBVyxFQUFFLGlCQUFpQjs7MkZBSzNDLGdDQUFnQztrQkFQNUMsUUFBUTttQkFBQztvQkFDUixZQUFZLEVBQUUsQ0FBQyxtQ0FBbUMsQ0FBQztvQkFDbkQsT0FBTyxFQUFFLENBQUMsWUFBWSxFQUFFLFdBQVcsRUFBRSxpQkFBaUIsQ0FBQztvQkFDdkQsT0FBTyxFQUFFLENBQUMsbUNBQW1DLENBQUM7b0JBQzlDLFNBQVMsRUFBRSxFQUFFO29CQUNiLE9BQU8sRUFBRSxDQUFDLGdCQUFnQixDQUFDO2lCQUM1QiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IE5PX0VSUk9SU19TQ0hFTUEsIE5nTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBDb21tb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHsgRm9ybXNNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5cbmltcG9ydCB7IEFYV2lkZ2V0U2l6ZVByb3BlcnR5RWRpdG9yQ29tcG9uZW50IH0gZnJvbSAnLi93aWRnZXQtc2l6ZS5lZGl0b3InO1xuaW1wb3J0IHsgQVhOdW1iZXJCb3hNb2R1bGUgfSBmcm9tICdAYWNvcmV4L2NvbXBvbmVudHMnO1xuXG5ATmdNb2R1bGUoe1xuICBkZWNsYXJhdGlvbnM6IFtBWFdpZGdldFNpemVQcm9wZXJ0eUVkaXRvckNvbXBvbmVudF0sXG4gIGltcG9ydHM6IFtDb21tb25Nb2R1bGUsIEZvcm1zTW9kdWxlLCBBWE51bWJlckJveE1vZHVsZV0sXG4gIGV4cG9ydHM6IFtBWFdpZGdldFNpemVQcm9wZXJ0eUVkaXRvckNvbXBvbmVudF0sXG4gIHByb3ZpZGVyczogW10sXG4gIHNjaGVtYXM6IFtOT19FUlJPUlNfU0NIRU1BXSxcbn0pXG5leHBvcnQgY2xhc3MgQVhXaWRnZXRTaXplUHJvcGVydHlFZGl0b3JNb2R1bGUge31cbiJdfQ==","/**\n * Generated bundle index. Do not edit.\n */\nexport * from './index';\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWNvcmV4LWxheW91dC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL2xpYnMvbGF5b3V0L3NyYy9hY29yZXgtbGF5b3V0LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOztHQUVHO0FBRUgsY0FBYyxTQUFTLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIEdlbmVyYXRlZCBidW5kbGUgaW5kZXguIERvIG5vdCBlZGl0LlxuICovXG5cbmV4cG9ydCAqIGZyb20gJy4vaW5kZXgnO1xuIl19"],"names":["i2","i1","i1.AXWidgetHostComponent"],"mappings":"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"}