@acorex/layout 16.19.58 → 16.20.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/fesm2022/acorex-layout.mjs +26 -26
- package/fesm2022/acorex-layout.mjs.map +1 -1
- package/index.d.ts +243 -6
- package/package.json +1 -1
- package/lib/widget-board/editors/widget-size-editor/widget-size.editor.d.ts +0 -19
- package/lib/widget-board/editors/widget-size-editor/widget-size.module.d.ts +0 -10
- package/lib/widget-board/widget-board.component.d.ts +0 -63
- package/lib/widget-board/widget-board.module.d.ts +0 -18
- package/lib/widget-board/widget-config.component.d.ts +0 -23
- package/lib/widget-board/widget-host.component.d.ts +0 -52
- package/lib/widget-board/widget-save.component.d.ts +0 -19
- package/lib/widget-board/widget.class.d.ts +0 -58
@@ -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 \"@angular/common\";\nimport * as i2 from \"@acorex/components\";\nimport * as i3 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: \"14.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 <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>\", dependencies: [{ kind: \"directive\", type: i1.NgForOf, selector: \"[ngFor][ngForOf]\", inputs: [\"ngForOf\", \"ngForTrackBy\", \"ngForTemplate\"] }, { kind: \"directive\", type: i2.AXPropertyEditorRendererDirective, selector: \"[ax-property-editor-renderer]\", inputs: [\"property\", \"validationForm\", \"context\", \"host\", \"groupId\"], outputs: [\"onValueChange\"] }, { kind: \"component\", type: i2.AXPageContentComponent, selector: \"ax-page-content\" }, { kind: \"component\", type: i2.AXPageComponent, selector: \"ax-page\" }, { kind: \"component\", type: i2.AXLabelComponent, selector: \"ax-label\", inputs: [\"size\"], outputs: [\"clickLabel\"] }, { kind: \"component\", type: i2.AXValidationFormComponent, selector: \"ax-validation-form\", inputs: [\"validateOn\"], outputs: [\"onInit\"] }, { kind: \"pipe\", type: i3.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 <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>\" }]\n }], ctorParameters: () => [{ type: i0.ChangeDetectorRef }], propDecorators: { form: [{\n type: ViewChild,\n args: [AXValidationFormComponent]\n }] } });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoid2lkZ2V0LWNvbmZpZy5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9saWJzL2xheW91dC9zcmMvbGliL3dpZGdldC1ib2FyZC93aWRnZXQtY29uZmlnLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvbGF5b3V0L3NyYy9saWIvd2lkZ2V0LWJvYXJkL3dpZGdldC1jb25maWcuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxpQkFBaUIsRUFBRSx1QkFBdUIsRUFBRSxpQkFBaUIsRUFBRSxTQUFTLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDcEgsT0FBTyxFQUFvQix3QkFBd0IsRUFBeUQseUJBQXlCLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQztBQUNsSyxPQUFPLEVBQWdCLFlBQVksRUFBRSxNQUFNLGNBQWMsQ0FBQzs7Ozs7QUFXMUQsTUFBTSxPQUFPLHVCQUF3QixTQUFRLHdCQUF3QjtJQUk3QztJQUZrQixJQUFJLENBQTRCO0lBRXRFLFlBQW9CLEdBQXNCO1FBQ3RDLEtBQUssRUFBRSxDQUFDO1FBRFEsUUFBRyxHQUFILEdBQUcsQ0FBbUI7SUFFMUMsQ0FBQztJQUdELE1BQU0sQ0FBb0I7SUFDMUIsS0FBSyxHQUF1QixFQUFFLENBQUM7SUFDL0IsWUFBWSxHQUF1QixFQUFFLENBQUM7SUFHdEMsT0FBTyxHQUF1QixFQUFFLENBQUM7SUFFakMsT0FBTyxHQUFRLEVBQUUsQ0FBQztJQUdsQixnQkFBZ0I7UUFDWixPQUFPO1lBQ0g7Z0JBQ0ksSUFBSSxFQUFFLE1BQU07Z0JBQ1osY0FBYyxFQUFFLElBQUk7Z0JBQ3BCLElBQUksRUFBRSxZQUFZLENBQUMsR0FBRyxDQUFDLGdCQUFnQixDQUFDO2dCQUN4QyxLQUFLLEVBQUUsU0FBUzthQUNuQjtZQUNEO2dCQUNJLElBQUksRUFBRSxRQUFRO2dCQUNkLGNBQWMsRUFBRSxJ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ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgVmlld0VuY2Fwc3VsYXRpb24sIENoYW5nZURldGVjdGlvblN0cmF0ZWd5LCBDaGFuZ2VEZXRlY3RvclJlZiwgVmlld0NoaWxkIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBBWFByb3BlcnR5Q29uZmlnLCBBWEJhc2VQb3B1cFBhZ2VDb21wb25lbnQsIEFYTWVudUl0ZW1DbGlja0V2ZW50LCBBWFByb3BlcnlFZGl0b3JWYWx1ZUNoYW5nZUV2ZW50LCBBWFZhbGlkYXRpb25Gb3JtQ29tcG9uZW50IH0gZnJvbSAnQGFjb3JleC9jb21wb25lbnRzJztcbmltcG9ydCB7IEFYQnV0dG9uSXRlbSwgQVhUcmFuc2xhdG9yIH0gZnJvbSAnQGFjb3JleC9jb3JlJztcbmltcG9ydCB7IEFYV2lkZ2V0Q29tcG9uZW50IH0gZnJvbSAnLi93aWRnZXQuY2xhc3MnO1xuXG5cbkBDb21wb25lbnQoe1xuICAgIHRlbXBsYXRlVXJsOiAnLi93aWRnZXQtY29uZmlnLmNvbXBvbmVudC5odG1sJyxcbiAgICBlbmNhcHN1bGF0aW9uOiBWaWV3RW5jYXBzdWxhdGlvbi5Ob25lLFxuICAgIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICAgIHN0YW5kYWxvbmU6IGZhbHNlXG59KVxuXG5leHBvcnQgY2xhc3MgQVhXaWRnZXRDb25maWdDb21wb25lbnQgZXh0ZW5kcyBBWEJhc2VQb3B1cFBhZ2VDb21wb25lbnQge1xuXG4gICAgQFZpZXdDaGlsZChBWFZhbGlkYXRpb25Gb3JtQ29tcG9uZW50KSBmb3JtOiBBWFZhbGlkYXRpb25Gb3JtQ29tcG9uZW50O1xuXG4gICAgY29uc3RydWN0b3IocHJpdmF0ZSBjZHI6IENoYW5nZURldGVjdG9yUmVmKSB7XG4gICAgICAgIHN1cGVyKCk7XG4gICAgfVxuXG5cbiAgICB3aWRnZXQ6IEFYV2lkZ2V0Q29tcG9uZW50O1xuICAgIHByb3BzOiBBWFByb3BlcnR5Q29uZmlnW10gPSBbXTtcbiAgICBkaXNwbGF5UHJvcHM6IEFYUHJvcGVydHlDb25maWdbXSA9IFtdO1xuXG5cbiAgICBjaGFuZ2VzOiBBWFByb3BlcnR5Q29uZmlnW10gPSBbXTtcblxuICAgIGNvbnRleHQ6IGFueSA9IHt9O1xuXG5cbiAgICBnZXRGb290ZXJCdXR0b25zKCk6IEFYQnV0dG9uSXRlbVtdIHtcbiAgICAgICAgcmV0dXJuIFtcbiAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICBuYW1lOiAnb2theScsXG4gICAgICAgICAgICAgICAgc3VibWl0QmVoYXZpb3I6IHRydWUsXG4gICAgICAgICAgICAgICAgdGV4dDogQVhUcmFuc2xhdG9yLmdldCgnY29tbW9uLmNvbmZpcm0nKSxcbiAgICAgICAgICAgICAgICBzdHlsZTogJ3N1Y2Nlc3MnXG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgIG5hbWU6ICdjYW5jZWwnLFxuICAgICAgICAgICAgICAgIGNhbmNlbEJlaGF2aW9yOiB0cnVlLFxuICAgICAgICAgICAgICAgIHRleHQ6IEFYVHJhbnNsYXRvci5nZXQoJ2NvbW1vbi5jYW5jZWwnKSxcbiAgICAgICAgICAgICAgICBzdHlsZTogJ2RhbmdlciBibGFuaydcbiAgICAgICAgICAgIH1cbiAgICAgICAgXTtcbiAgICB9XG5cblxuXG5cblxuICAgIG9uRm9vdGVyQnV0dG9uQ2xpY2soZTogQVhNZW51SXRlbUNsaWNrRXZlbnQpIHtcbiAgICAgICAgaWYgKGUubmFtZSA9PT0gJ2NhbmNlbCcpIHtcbiAgICAgICAgICAgIHRoaXMuY2xvc2UoKTtcbiAgICAgICAgfVxuICAgICAgICBpZiAoZS5uYW1lID09PSAnb2theScpIHtcbiAgICAgICAgICAgIHRoaXMuZm9ybS52YWxpZGF0ZSgpLnRoZW4oYyA9PiB7XG4gICAgICAgICAgICAgICAgaWYgKGMucmVzdWx0KSB7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuY2xvc2UodGhpcy5jaGFuZ2VzKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIGhhbmRsZVZhbHVlQ2hhbmdlKGU6IEFYUHJvcGVyeUVkaXRvclZhbHVlQ2hhbmdlRXZlbnQpIHtcbiAgICAgICAgY29uc3QgcHJvcCA9IHRoaXMuY2hhbmdlcy5maW5kKGMgPT4gYy5wcm9wZXJ0eS5uYW1lID09PSBlLnByb3BlcnR5Lm5hbWUpO1xuICAgICAgICBpZiAocHJvcCkge1xuICAgICAgICAgICAgcHJvcC52YWx1ZSA9IGUudmFsdWU7XG4gICAgICAgIH1cbiAgICAgICAgZWxzZSB7XG4gICAgICAgICAgICB0aGlzLmNoYW5nZXMucHVzaCh7IHByb3BlcnR5OiBlLnByb3BlcnR5LCB2YWx1ZTogZS52YWx1ZSB9KTtcbiAgICAgICAgfVxuICAgICAgICB0aGlzLnVwZGF0ZUNvbnRleHQoKTtcbiAgICB9XG5cbiAgICBuZ09uSW5pdCgpIHtcbiAgICAgICAgdGhpcy5kaXNwbGF5UHJvcHMgPSB0aGlzLnByb3BzLmZpbHRlcihjID0+IGMucHJvcGVydHkudmlzaWJsZSAhPT0gZmFsc2UpLnNvcnQoKGEsIGIpID0+IGEucHJvcGVydHkub3JkZXIgLSBiLnByb3BlcnR5Lm9yZGVyKTtcbiAgICAgICAgdGhpcy51cGRhdGVDb250ZXh0KCk7XG4gICAgfVxuXG5cbiAgICBwcml2YXRlIHVwZGF0ZUNvbnRleHQoKSB7XG4gICAgICAgIGNvbnN0IGN0eCA9IHt9O1xuICAgICAgICB0aGlzLnByb3BzLmZvckVhY2gocCA9PiB7XG4gICAgICAgICAgICBjdHhbcC5wcm9wZXJ0eS5uYW1lXSA9IHAudmFsdWU7XG4gICAgICAgIH0pO1xuICAgICAgICB0aGlzLmNoYW5nZXMuZm9yRWFjaChwID0+IHtcbiAgICAgICAgICAgIGN0eFtwLnByb3BlcnR5Lm5hbWVdID0gcC52YWx1ZTtcbiAgICAgICAgfSk7XG4gICAgICAgIHRoaXMuY29udGV4dCA9IGN0eDtcbiAgICB9XG5cblxuICAgIGlkZW50aWZ5KGluZGV4LCBpdGVtOiBBWFByb3BlcnR5Q29uZmlnKSB7XG4gICAgICAgIHJldHVybiBpdGVtLnByb3BlcnR5Lm5hbWU7XG4gICAgfVxuXG59IiwiPGF4LXBhZ2U+XG4gICAgPGF4LXBhZ2UtY29udGVudD5cbiAgICAgICAgPGRpdiBjbGFzcz1cImNvbnRhaW5lclwiPlxuICAgICAgICAgICAgPGF4LXZhbGlkYXRpb24tZm9ybSAjZm9ybT5cbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwicm93XCIgKm5nRm9yPVwibGV0IHAgb2YgZGlzcGxheVByb3BzOyB0cmFja0J5OiBpZGVudGlmeVwiPlxuICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY29sLTEyXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICA8YXgtbGFiZWw+e3twLnByb3BlcnR5LnRpdGxlIHwgdHJhbnN9fTwvYXgtbGFiZWw+XG4gICAgICAgICAgICAgICAgICAgICAgICA8bmctY29udGFpbmVyIGF4LXByb3BlcnR5LWVkaXRvci1yZW5kZXJlciBbcHJvcGVydHldPVwicFwiIFtjb250ZXh0XT1cImNvbnRleHRcIiBbaG9zdF09XCJ3aWRnZXRcIiAgW3ZhbGlkYXRpb25Gb3JtXT1cImZvcm1cIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvblZhbHVlQ2hhbmdlKT1cImhhbmRsZVZhbHVlQ2hhbmdlKCRldmVudClcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxuICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgIDwvYXgtdmFsaWRhdGlvbi1mb3JtPlxuICAgICAgICA8L2Rpdj5cbiAgICA8L2F4LXBhZ2UtY29udGVudD5cbjwvYXgtcGFnZT4iXX0=","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 \"@angular/common\";\nimport * as i2 from \"@acorex/components\";\nimport * as i3 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: \"14.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 <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>\", dependencies: [{ kind: \"directive\", type: i1.NgForOf, selector: \"[ngFor][ngForOf]\", inputs: [\"ngForOf\", \"ngForTrackBy\", \"ngForTemplate\"] }, { kind: \"component\", type: i2.AXPageContentComponent, selector: \"ax-page-content\" }, { kind: \"component\", type: i2.AXPageComponent, selector: \"ax-page\" }, { kind: \"component\", type: i2.AXLabelComponent, selector: \"ax-label\", inputs: [\"size\"], outputs: [\"clickLabel\"] }, { kind: \"component\", type: i2.AXTextAreaComponent, selector: \"ax-text-area\", inputs: [\"rows\", \"cols\", \"maxLength\"], outputs: [\"onBlur\", \"onFocus\"] }, { kind: \"component\", type: i2.AXFieldsetComponent, selector: \"ax-fieldset\", inputs: [\"size\", \"caption\", \"allowCollapse\"] }, { kind: \"component\", type: i2.AXTextBoxComponent, selector: \"ax-text-box\", inputs: [\"mask\", \"showMask\", \"type\", \"maxLength\", \"maskGuid\", \"maskPlaceholder\", \"maskKeepCharPositions\", \"leadZeroDateTime\"] }, { kind: \"component\", type: i2.AXFormGroupComponent, selector: \"ax-form-group\", inputs: [\"size\", \"labelMode\"], outputs: [\"labelModeChange\"] }, { kind: \"component\", type: i2.AXCheckBoxComponent, selector: \"ax-check-box\", inputs: [\"readonly\", \"disabled\", \"size\", \"label\", \"tabIndex\", \"indeterminate\", \"value\"], outputs: [\"onValueChanged\", \"valueChange\", \"onClick\"] }, { kind: \"pipe\", type: i3.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 <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>\" }]\n }] });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoid2lkZ2V0LXNhdmUuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9sYXlvdXQvc3JjL2xpYi93aWRnZXQtYm9hcmQvd2lkZ2V0LXNhdmUuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9sYXlvdXQvc3JjL2xpYi93aWRnZXQtYm9hcmQvd2lkZ2V0LXNhdmUuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUNILFNBQVMsRUFDVCxpQkFBaUIsRUFDakIsdUJBQXVCLEdBRTFCLE1BQU0sZUFBZSxDQUFDO0FBRXZCLE9BQU8sRUFBZ0IsVUFBVSxFQUFFLFlBQVksRUFBRSxZQUFZLEVBQUUsTUFBTSxjQUFjLENBQUM7QUFDcEYsT0FBTyxFQUEwQyx3QkFBd0IsRUFBRSxNQUFNLG9CQUFvQixDQUFDOzs7OztBQVV0RyxNQUFNLE9BQU8scUJBQXNCLFNBQVEsd0JBQXdCO0lBQy9ELE1BQU0sQ0FBaUI7SUFDdkIsS0FBSyxHQUF1QixFQUFFLENBQUM7SUFDL0IsWUFBWSxDQUFvRDtJQUVoRSxJQUFJLENBQXFCO0lBRXpCLGdCQUFnQjtRQUNaLE9BQU87WUFDSDtnQkFDSSxJQUFJLEVBQUUsTUFBTTtnQkFDWixjQUFjLEVBQUUsSUFBSTtnQkFDcEIsSUFBSSxFQUFFLFlBQVksQ0FBQyxHQUFHLENBQUMsZ0JBQWdCLENBQUM7Z0JBQ3hDLEtBQUssRUFBRSxZQUFZO2FBQ3RCO1lBQ0Q7Z0JBQ0ksSUFBSSxFQUFFLFFBQVE7Z0JBQ2QsY0FBYyxFQUFFLElBQUk7Z0JBQ3BCLElBQUksRUFBRSxZQUFZLENBQUMsR0FBRyxDQUFDLGVBQWUsQ0FBQztnQkFDdkMsS0FBSyxFQUFFLFVBQVU7YUFDcEI7U0FDSixDQUFDO0lBQ04sQ0FBQztJQUVELFFBQVE7UUFDSixNQUFNLFNBQVMsR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxDQUFD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LHFCQUFxQjtrQkFOakMsU0FBUztvQ0FFUyxpQkFBaUIsQ0FBQyxJQUFJLG1CQUNwQix1QkFBdUIsQ0FBQyxNQUFNLGNBQ25DLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICAgIENvbXBvbmVudCxcbiAgICBWaWV3RW5jYXBzdWxhdGlvbixcbiAgICBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSxcblxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEFYV2lkZ2V0Q29uZmlnLCBBWFdpZGdldFNhdmVBc0RhdGEgfSBmcm9tICcuL3dpZGdldC5jbGFzcyc7XG5pbXBvcnQgeyBBWEJ1dHRvbkl0ZW0sIEFYSHRtbFV0aWwsIEFYT2JqZWN0VXRpbCwgQVhUcmFuc2xhdG9yIH0gZnJvbSAnQGFjb3JleC9jb3JlJztcbmltcG9ydCB7IEFYUHJvcGVydHlDb25maWcsIEFYTWVudUl0ZW1DbGlja0V2ZW50LCBBWEJhc2VQb3B1cFBhZ2VDb21wb25lbnQgfSBmcm9tICdAYWNvcmV4L2NvbXBvbmVudHMnO1xuXG5cblxuQENvbXBvbmVudCh7XG4gICAgdGVtcGxhdGVVcmw6IFwiLi93aWRnZXQtc2F2ZS5jb21wb25lbnQuaHRtbFwiLFxuICAgIGVuY2Fwc3VsYXRpb246IFZpZXdFbmNhcHN1bGF0aW9uLk5vbmUsXG4gICAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gICAgc3RhbmRhbG9uZTogZmFsc2Vcbn0pXG5leHBvcnQgY2xhc3MgQVhXaWRnZXRTYXZlQ29tcG9uZW50IGV4dGVuZHMgQVhCYXNlUG9wdXBQYWdlQ29tcG9uZW50IHtcbiAgICBjb25maWc6IEFYV2lkZ2V0Q29uZmlnO1xuICAgIHByb3BzOiBBWFByb3BlcnR5Q29uZmlnW10gPSBbXTtcbiAgICBkaXNwbGF5UHJvcHM6IHsgbmFtZTogc3RyaW5nLCB0aXRsZTogc3RyaW5nLCBhbGxvdzogYm9vbGVhbiB9W107XG5cbiAgICBkYXRhOiBBWFdpZGdldFNhdmVBc0RhdGE7XG5cbiAgICBnZXRGb290ZXJCdXR0b25zKCk6IEFYQnV0dG9uSXRlbVtdIHtcbiAgICAgICAgcmV0dXJuIFtcbiAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICBuYW1lOiAnb2theScsXG4gICAgICAgICAgICAgICAgc3VibWl0QmVoYXZpb3I6IHRydWUsXG4gICAgICAgICAgICAgICAgdGV4dDogQVhUcmFuc2xhdG9yLmdldCgnY29tbW9uLmNvbmZpcm0nKSxcbiAgICAgICAgICAgICAgICBzdHlsZTogJ2F4IHN1Y2Nlc3MnXG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgIG5hbWU6ICdjYW5jZWwnLFxuICAgICAgICAgICAgICAgIGNhbmNlbEJlaGF2aW9yOiB0cnVlLFxuICAgICAgICAgICAgICAgIHRleHQ6IEFYVHJhbnNsYXRvci5nZXQoJ2NvbW1vbi5jYW5jZWwnKSxcbiAgICAgICAgICAgICAgICBzdHlsZTogJ2F4IGxpZ2h0J1xuICAgICAgICAgICAgfVxuICAgICAgICBdO1xuICAgIH1cblxuICAgIG5nT25Jbml0KCkge1xuICAgICAgICBjb25zdCB0aXRsZVByb3AgPSB0aGlzLnByb3BzLmZpbmQoYyA9PiBjLnByb3BlcnR5Lm5hbWUgPT09ICd0aXRsZScgfHwgYy5wcm9wZXJ0eS5uYW1lID09PSAnbmFtZScpO1xuICAgICAgICBjb25zdCB0aXRsZSA9IHRpdGxlUHJvcD8udmFsdWUgfHwgdGhpcy5jb25maWcudGl0bGU7XG4gICAgICAgIGNvbnN0IHBwOiBhbnkgPSB7fTtcbiAgICAgICAgdGhpcy5wcm9wcz8uZm9yRWFjaChjID0+IHtcbiAgICAgICAgICAgIHBwW2MucHJvcGVydHkubmFtZV0gPSBjLnByb3BlcnR5O1xuICAgICAgICB9KTtcbiAgICAgICAgdGhpcy5kYXRhID0ge1xuICAgICAgICAgICAgY29tcG9uZW50OiB0aGlzLmNvbmZpZy5jb21wb25lbnQsXG4gICAgICAgICAgICB0aXRsZSxcbiAgICAgICAgICAgIHVuaXF1ZU5hbWU6IGAke3RoaXMuY29uZmlnLnVuaXF1ZU5hbWV9LSR7QVhIdG1sVXRpbC5nZXRVSUQoKX1gLFxuICAgICAgICAgICAgb3B0aW9uczogQVhPYmplY3RVdGlsLmRlZXBKU09OQ2xvbmUodGhpcy5jb25maWcub3B0aW9ucyksXG4gICAgICAgICAgICBwcm9wczogQVhPYmplY3RVdGlsLmRlZXBKU09OQ2xvbmUocHApXG4gICAgICAgIH07XG4gICAgICAgIHRoaXMuZGlzcGxheVByb3BzID0gdGhpcy5wcm9wc1xuICAgICAgICAgICAgLmZpbHRlcihjID0+IGMucHJvcGVydHkudmlzaWJsZSAhPT0gZmFsc2UpXG4gICAgICAgICAgICAuc29ydCgoYSwgYikgPT4gYS5wcm9wZXJ0eS5vcmRlciAtIGIucHJvcGVydHkub3JkZXIpXG4gICAgICAgICAgICAubWFwKGMgPT4gKHtcbiAgICAgICAgICAgICAgICBuYW1lOiBjLnByb3BlcnR5Lm5hbWUsXG4gICAgICAgICAgICAgICAgdGl0bGU6IGMucHJvcGVydHkudGl0bGUsXG4gICAgICAgICAgICAgICAgYWxsb3c6IHRydWVcbiAgICAgICAgICAgIH0pKTtcbiAgICB9XG5cblxuXG4gICAgb25Gb290ZXJCdXR0b25DbGljayhlOiBBWE1lbnVJdGVtQ2xpY2tFdmVudCkge1xuICAgICAgICBpZiAoZS5uYW1lID09PSAnY2FuY2VsJykge1xuICAgICAgICAgICAgdGhpcy5jbG9zZSgpO1xuICAgICAgICB9XG4gICAgICAgIGlmIChlLm5hbWUgPT09ICdva2F5Jykge1xuICAgICAgICAgICAgdGhpcy5wcm9wcy5mb3JFYWNoKHAgPT4ge1xuICAgICAgICAgICAgICAgIGNvbnN0IHBwID0gdGhpcy5kaXNwbGF5UHJvcHMuZmluZChjID0+IGMubmFtZSA9PT0gcC5wcm9wZXJ0eS5uYW1lKTtcbiAgICAgICAgICAgICAgICBpZiAocHAgPT0gbnVsbCB8fCAhcHAuYWxsb3cpIHtcbiAgICAgICAgICAgICAgICAgICAgbGV0IHBwcCA9IHRoaXMuZGF0YS5wcm9wc1twLnByb3BlcnR5Lm5hbWVdO1xuICAgICAgICAgICAgICAgICAgICBpZiAocHBwKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBwcHAudmlzaWJsZSA9IGZhbHNlO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICAgICAgcHBwID0geyB2aXNpYmxlOiBmYWxzZSB9O1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICB0aGlzLmNsb3NlKHRoaXMuZGF0YSk7XG4gICAgICAgIH1cbiAgICB9XG59IiwiPGF4LXBhZ2U+XG4gICAgPGF4LXBhZ2UtY29udGVudD5cbiAgICAgICAgPGRpdiBjbGFzcz1cImNvbnRhaW5lclwiPlxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cInJvd1wiPlxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjb2wtMTJcIj5cbiAgICAgICAgICAgICAgICAgICAgPGF4LWZvcm0tZ3JvdXA+XG4gICAgICAgICAgICAgICAgICAgICAgICA8YXgtbGFiZWw+e3snY29tbW9uLnRpdGxlJyB8IHRyYW5zfX08L2F4LWxhYmVsPlxuICAgICAgICAgICAgICAgICAgICAgICAgPGF4LXRleHQtYm94IFsodmFsdWUpXT1cImRhdGEudGl0bGVcIj48L2F4LXRleHQtYm94PlxuICAgICAgICAgICAgICAgICAgICA8L2F4LWZvcm0tZ3JvdXA+XG4gICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJyb3dcIj5cbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY29sLTEyXCI+XG4gICAgICAgICAgICAgICAgICAgIDxheC1mb3JtLWdyb3VwPlxuICAgICAgICAgICAgICAgICAgICAgICAgPGF4LWxhYmVsPnt7J2NvbW1vbi5kZXNjcmlwdGlvbicgfCB0cmFuc319PC9heC1sYWJlbD5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxheC10ZXh0LWFyZWEgWyh2YWx1ZSldPVwiZGF0YS5kZXNjcmlwdGlvblwiPjwvYXgtdGV4dC1hcmVhPlxuICAgICAgICAgICAgICAgICAgICA8L2F4LWZvcm0tZ3JvdXA+XG4gICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgIDwhLS0gPGRpdiBjbGFzcz1cInJvd1wiPlxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjb2wtMTJcIj5cbiAgICAgICAgICAgICAgICAgICAgPGF4LWZvcm0tZ3JvdXA+XG4gICAgICAgICAgICAgICAgICAgICAgICA8YXgtbGFiZWw+e3snY29tbW9uLnVuaXF1ZW5hbWUnIHwgdHJhbnN9fTwvYXgtbGFiZWw+XG4gICAgICAgICAgICAgICAgICAgICAgICA8YXgtdGV4dC1ib3g+PC9heC10ZXh0LWJveD5cbiAgICAgICAgICAgICAgICAgICAgPC9heC1mb3JtLWdyb3VwPlxuICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgPC9kaXY+IC0tPlxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cInJvd1wiIHN0eWxlPVwibWFyZ2luLWJsb2NrLWVuZDogdmFyKC0tYXgtc2l6ZS1tZCk7bWFyZ2luLWJsb2NrLXN0YXJ0OiB2YXIoLS1heC1zaXplLW1kKTtcIj5cbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY29sLTEyXCI+XG4gICAgICAgICAgICAgICAgICAgIDxheC1maWVsZHNldCBjYXB0aW9uPVwie3snd2lkZ2V0LWJvYXJkLmNvbmZpZ3VyYWJsZS1wcm9wcycgfCB0cmFuc319XCI+XG4gICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwicm93XCIgKm5nRm9yPVwibGV0IHByb3Agb2YgZGlzcGxheVByb3BzXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNvbC0xMlwiIHN0eWxlPVwibWFyZ2luLWJsb2NrLWVuZDogdmFyKC0tYXgtc2l6ZS1zbSlcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGF4LWNoZWNrLWJveCBbKHZhbHVlKV09XCJwcm9wLmFsbG93XCIgbGFiZWw9XCJ7eyBwcm9wLnRpdGxlIHwgdHJhbnMgfX1cIj5cblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2F4LWNoZWNrLWJveD5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgICAgICA8L2F4LWZpZWxkc2V0PlxuICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgIDwvZGl2PlxuICAgIDwvYXgtcGFnZS1jb250ZW50PlxuPC9heC1wYWdlPiJdfQ==","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\";\nimport * as i3 from \"@angular/common\";\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: \"14.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 <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>\", dependencies: [{ kind: \"directive\", type: i3.NgIf, selector: \"[ngIf]\", inputs: [\"ngIf\", \"ngIfThen\", \"ngIfElse\"] }, { 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 <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>\" }]\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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoid2lkZ2V0LWhvc3QuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9sYXlvdXQvc3JjL2xpYi93aWRnZXQtYm9hcmQvd2lkZ2V0LWhvc3QuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9sYXlvdXQvc3JjL2xpYi93aWRnZXQtYm9hcmQvd2lkZ2V0LWhvc3QuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUNILFNBQVMsRUFDVCxpQkFBaUIsRUFBRSxLQUFLLEVBQ3hCLFVBQVUsRUFBRSxXQUFXLEVBQUUsd0JBQXdCLEVBQUUsU0FBUyxFQUM1RCxnQkFBZ0IsRUFBRSxNQUFNLEVBQUUsWUFBWSxFQUFFLHVCQUF1QixFQUMvRCxpQkFBaUIsRUFDcEIsTUFBTSxlQUFlLENBQUM7QUFFdkIsT0FBTyxFQUFFLFlBQVksRUFBRSxlQUFlLEVBQUUsTUFBTSxjQUFjLENBQUM7QUFDN0QsT0FBTyxFQUFFLGNBQWMsRUFBRSxvQkFBb0IsRUFBdUIsZ0JBQWdCLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQztBQUNqSCxPQUFPLEVBQUUsdUJBQXVCLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQztBQUVwRSxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sY0FBYyxDQUFDO0FBQzVDLE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxNQUFNLHlCQUF5QixDQUFDOzs7OztBQWVoRSxNQUFNLE9BQU8scUJBQXFCO0lBcUZsQjtJQUNBO0lBQ0E7SUFDQTtJQUNBO0lBQ0E7SUF4RkosT0FBTyxDQUFvQjtJQUNuQyxJQUFXLE1BQU07UUFDYixPQUFPLElBQUksQ0FBQyxPQUFPLENBQUM7SUFDeEIsQ0FBQztJQUVELFNBQVMsR0FBWSxLQUFLLENBQUM7SUFHM0IsUUFBUSxHQUFZLEtBQUssQ0FBQztJQUcxQixZQUFZLENBQWtCO0lBRzlCLElBQUksT0FBTztRQUNQLE9BQU8sSUFB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UUFFcEIsRUFBRSxLQUFLLEVBQUUsZ0JBQWdCLEVBQUUsUUFBUSxFQUFFLEdBQUcsRUFBRSxpQkFDakMsaUJBQWlCLENBQUMsSUFBSSxtQkFDcEIsdUJBQXVCLENBQUMsTUFBTSxjQUNuQyxLQUFLO2dQQWdCakIsWUFBWTtzQkFEWCxLQUFLO2dCQWtCTixRQUFRO3NCQURQLE1BQU07Z0JBSVAsZUFBZTtzQkFEZCxNQUFNO2dCQUtQLFNBQVM7c0JBRFIsTUFBTTtnQkFJUCxNQUFNO3NCQURMLE1BQU07Z0JBSVAsTUFBTTtzQkFETCxLQUFLO2dCQUlOLEVBQUU7c0JBREQsU0FBUzt1QkFBQyxJQUFJLEVBQUUsRUFBRSxJQUFJLEVBQUUsZ0JBQWdCLEVBQUU7Z0JBTTNDLFFBQVE7c0JBRFAsS0FBSztnQkErSU4sS0FBSztzQkFGSixXQUFXO3VCQUFDLGtCQUFrQjs7c0JBQzlCLEtBQUs7Z0JBS04sS0FBSztzQkFGSixXQUFXO3VCQUFDLGtCQUFrQjs7c0JBQzlCLEtBQUs7Z0JBS04sR0FBRztzQkFGRixXQUFXO3VCQUFDLGVBQWU7O3NCQUMzQixLQUFLO2dCQU1OLEdBQUc7c0JBRkYsV0FBVzt1QkFBQyxlQUFlOztzQkFDM0IsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gICAgQ29tcG9uZW50LFxuICAgIFZpZXdFbmNhcHN1bGF0aW9uLCBJbnB1dCxcbiAgICBFbGVtZW50UmVmLCBIb3N0QmluZGluZywgQ29tcG9uZW50RmFjdG9yeVJlc29sdmVyLCBWaWV3Q2hpbGQsXG4gICAgVmlld0NvbnRhaW5lclJlZiwgT3V0cHV0LCBFdmVudEVtaXR0ZXIsIENoYW5nZURldGVjdGlvblN0cmF0ZWd5LFxuICAgIENoYW5nZURldGVjdG9yUmVmLCBDb21wb25lbnRSZWZcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBBWFdpZGdldENvbmZpZywgQVhXaWRnZXRDb21wb25lbnQsIEFYV2lkZ2V0Q29uZmlnQ2hhbmdlZCwgQVhXaWRnZXRDb25maWdTYXZlZEV2ZW50IH0gZnJvbSAnLi93aWRnZXQuY2xhc3MnO1xuaW1wb3J0IHsgQVhPYmplY3RVdGlsLCBBWFJlbmRlclNlcnZpY2UgfSBmcm9tICdAYWNvcmV4L2NvcmUnO1xuaW1wb3J0IHsgQVhQb3B1cFNlcnZpY2UsIEFYUHJvcGVydHlEZWNvcmF0b3JzLCBBWFByb3BlcnR5RGVjb3JhdG9yLCBBWExvYWRpbmdTZXJ2aWNlIH0gZnJvbSAnQGFjb3JleC9jb21wb25lbnRzJztcbmltcG9ydCB7IEFYV2lkZ2V0Q29uZmlnQ29tcG9uZW50IH0gZnJvbSAnLi93aWRnZXQtY29uZmlnLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBBWE1lbnVJdGVtIH0gZnJvbSAnQGFjb3JleC9jb3JlJztcbmltcG9ydCB7IEFYVHJhbnNsYXRvciB9IGZyb20gJ0BhY29yZXgvY29yZSc7XG5pbXBvcnQgeyBBWFdpZGdldFNhdmVDb21wb25lbnQgfSBmcm9tICcuL3dpZGdldC1zYXZlLmNvbXBvbmVudCc7XG5cblxuXG5cblxuQENvbXBvbmVudCh7XG4gICAgc2VsZWN0b3I6ICdheC13aWRnZXQtaG9zdCcsXG4gICAgdGVtcGxhdGVVcmw6IFwiLi93aWRnZXQtaG9zdC5jb21wb25lbnQuaHRtbFwiLFxuICAgIGhvc3Q6IHsgY2xhc3M6ICdheCB3aWRnZXQtaG9zdCcsIHRhYmluZGV4OiAnMCcgfSxcbiAgICBlbmNhcHN1bGF0aW9uOiBWaWV3RW5jYXBzdWxhdGlvbi5Ob25lLFxuICAgIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICAgIHN0YW5kYWxvbmU6IGZhbHNlXG59KVxuXG5leHBvcnQgY2xhc3MgQVhXaWRnZXRIb3N0Q29tcG9uZW50IHtcblxuICAgIHByaXZhdGUgX3dpZGdldDogQVhXaWRnZXRDb21wb25lbnQ7XG4gICAgcHVibGljIGdldCB3aWRnZXQoKTogQVhXaWRnZXRDb21wb25lbnQge1xuICAgICAgICByZXR1cm4gdGhpcy5fd2lkZ2V0O1xuICAgIH1cblxuICAgIF9oYXNQcm9wczogYm9vbGVhbiA9IGZhbHNlO1xuXG5cbiAgICBfaGFzTWVudTogYm9vbGVhbiA9IGZhbHNlO1xuXG4gICAgQElucHV0KClcbiAgICBwcm92aWRlVmFsdWU6IChlOiBhbnkpID0+IGFueTtcblxuXG4gICAgZ2V0IGVsZW1lbnQoKTogSFRNTERpdkVsZW1lbnQge1xuICAgICAgICByZXR1cm4gdGhpcy5yZWYubmF0aXZlRWxlbWVudDtcbiAgICB9XG5cblxuICAgIGNvbmZpZ01lbnVJdGVtOiBBWE1lbnVJdGVtW10gPSBbXG4gICAgICAgIHtcbiAgICAgICAgICAgIGljb246ICdmYXIgZmEtZWxsaXBzaXMtaCcsXG4gICAgICAgICAgICBpdGVtczogW11cbiAgICAgICAgfVxuICAgIF07XG5cblxuICAgIEBPdXRwdXQoKVxuICAgIG9uUmVtb3ZlOiBFdmVudEVtaXR0ZXI8QVhXaWRnZXRIb3N0Q29tcG9uZW50PiA9IG5ldyBFdmVudEVtaXR0ZXI8QVhXaWRnZXRIb3N0Q29tcG9uZW50PigpO1xuXG4gICAgQE91dHB1dCgpXG4gICAgb25Db25maWdDaGFuZ2VkOiBFdmVudEVtaXR0ZXI8QVhXaWRnZXRDb25maWdDaGFuZ2VkPiA9IG5ldyBFdmVudEVtaXR0ZXI8QVhXaWRnZXRDb25maWdDaGFuZ2VkPigpO1xuXG5cbiAgICBAT3V0cHV0KClcbiAgICBvblJlc2l6ZWQ6IEV2ZW50RW1pdHRlcjxBWFdpZGdldENvbmZpZ0NoYW5nZWQ+ID0gbmV3IEV2ZW50RW1pdHRlcjxBWFdpZGdldENvbmZpZ0NoYW5nZWQ+KCk7XG5cbiAgICBAT3V0cHV0KClcbiAgICBvblNhdmU6IEV2ZW50RW1pdHRlcjxBWFdpZGdldENvbmZpZ1NhdmVkRXZlbnQ+ID0gbmV3IEV2ZW50RW1pdHRlcjxBWFdpZGdldENvbmZpZ1NhdmVkRXZlbnQ+KCk7XG5cbiAgICBASW5wdXQoKVxuICAgIGNvbmZpZzogQVhXaWRnZXRDb25maWc7XG5cbiAgICBAVmlld0NoaWxkKCd2YycsIHsgcmVhZDogVmlld0NvbnRhaW5lclJlZiB9KVxuICAgIHZjOiBWaWV3Q29udGFpbmVyUmVmO1xuXG5cblxuICAgIEBJbnB1dCgpXG4gICAgcmVhZG9ubHk6IGJvb2xlYW4gPSBmYWxzZTtcblxuICAgIHByaXZhdGUgY29tcG9uZW50UmVmOiBDb21wb25lbnRSZWY8YW55PjtcbiAgICAvL3ByaXZhdGUgaXNMb2FkaW5nOiBib29sZWFuID0gdHJ1ZTtcblxuICAgIC8vIGdldCBpc0J1c3koKSB7XG4gICAgLy8gICAgIHJldHVybiB0aGlzLl93aWRnZXQ/LmlzQnVzeSB8fCB0aGlzLmlzTG9hZGluZztcbiAgICAvLyB9XG5cblxuICAgIHByaXZhdGUgX2xvYWRpbmdJZDogbnVtYmVyO1xuXG4gICAgcHJpdmF0ZSBfaXNMb2FkaW5nOiBib29sZWFuID0gZmFsc2U7XG4gICAgcHVibGljIGdldCBpc0xvYWRpbmcoKTogYm9vbGVhbiB7XG4gICAgICAgIHJldHVybiB0aGlzLl9pc0xvYWRpbmc7XG4gICAgfVxuICAgIHB1YmxpYyBzZXQgaXNMb2FkaW5nKHY6IGJvb2xlYW4pIHtcbiAgICAgICAgdGhpcy5faXNMb2FkaW5nID0gdjtcbiAgICAgICAgaWYgKHRoaXMuX2xvYWRpbmdJZCAmJiAhdikge1xuICAgICAgICAgICAgdGhpcy5sb2FkaW5nU2VydmljZS5oaWRlKHRoaXMuX2xvYWRpbmdJZCk7XG4gICAgICAgICAgICB0aGlzLl9sb2FkaW5nSWQgPSBudWxsO1xuICAgICAgICB9XG4gICAgICAgIGlmICh2KSB7XG4gICAgICAgICAgICAvLyB0aGlzLl9sb2FkaW5nSWQgPSB0aGlzLmxvYWRpbmdTZXJ2aWNlLnNob3codGhpcy5yZWYubmF0aXZlRWxlbWVudCk7XG4gICAgICAgIH1cbiAgICB9XG5cblxuICAgIGdldCBpc0NvbmZpZ3VyZWQoKTogYm9vbGVhbiB7XG4gICAgICAgIHJldHVybiB0aGlzLl93aWRnZXQ/LmlzQ29uZmlndXJlZCB8fCBmYWxzZTtcbiAgICB9XG5cblxuICAgIGNvbnN0cnVjdG9yKFxuICAgICAgICBwcml2YXRlIHJlZjogRWxlbWVudFJlZjxIVE1MRGl2RWxlbWVudD4sXG4gICAgICAgIHByaXZhdGUgY29tcG9uZW50RmFjdG9yeVJlc29sdmVyOiBDb21wb25lbnRGYWN0b3J5UmVzb2x2ZXIsXG4gICAgICAgIHByaXZhdGUgcmVuZGVyZXJTZXJ2aWNlOiBBWFJlbmRlclNlcnZpY2UsXG4gICAgICAgIHByaXZhdGUgY2RyOiBDaGFuZ2VEZXRlY3RvclJlZixcbiAgICAgICAgcHJpdmF0ZSBwb3B1cDogQVhQb3B1cFNlcnZpY2UsXG4gICAgICAgIHByaXZhdGUgbG9hZGluZ1NlcnZpY2U6IEFYTG9hZGluZ1NlcnZpY2VcblxuICAgICkge1xuXG4gICAgfVxuXG5cbiAgICBuZ09uSW5pdCgpIHtcbiAgICAgICAgLy8gdGhpcy5pc0xvYWRpbmcgPSB0cnVlO1xuICAgIH1cblxuXG4gICAgYXN5bmMgbmdBZnRlclZpZXdJbml0KCkge1xuICAgICAgICBsZXQgY29tcG9uZW50OiBhbnk7XG4gICAgICAgIGlmICh0eXBlb2YgdGhpcy5jb25maWcuY29tcG9uZW50ID09PSAnc3RyaW5nJykge1xuICAgICAgICAgICAgY29uc3Qgcm91dGUgPSBhd2FpdCB0aGlzLnJlbmRlcmVyU2VydmljZS5maW5kTG9hZGVkQ29tcG9uZW50QnlSb3V0ZSh0aGlzLmNvbmZpZy5jb21wb25lbnQsIDIwKTtcbiAgICAgICAgICAgIGNvbXBvbmVudCA9IHJvdXRlPy5jb21wb25lbnQ7XG4gICAgICAgIH1cbiAgICAgICAgZWxzZSBpZiAodHlwZW9mIHRoaXMuY29uZmlnLmNvbXBvbmVudCA9PT0gJ2Z1bmN0aW9uJykge1xuICAgICAgICAgICAgY29tcG9uZW50ID0gdGhpcy5jb25maWcuY29tcG9uZW50O1xuICAgICAgICB9XG4gICAgICAgIGlmIChjb21wb25lbnQgPT0gbnVsbCkge1xuICAgICAgICAgICAgY29uc29sZS5lcnJvcihgSW52YWxpZCBXaWRnZXQgQ29tcG9uZW50IWAsIHRoaXMuY29uZmlnKTtcbiAgICAgICAgICAgIHRoaXMub25SZW1vdmUuZW1pdCh0aGlzKTtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuXG4gICAgICAgIGNvbnN0IHdpZGdldEZhY3RvcnkgPSB0aGlzLmNvbXBvbmVudEZhY3RvcnlSZXNvbHZlci5yZXNvbHZlQ29tcG9uZW50RmFjdG9yeShjb21wb25lbnQpO1xuICAgICAgICB0aGlzLmNvbXBvbmVudFJlZiA9IHRoaXMudmMuY3JlYXRlQ29tcG9uZW50KHdpZGdldEZhY3RvcnkpO1xuICAgICAgICB0aGlzLl93aWRnZXQgPSB0aGlzLmNvbXBvbmVudFJlZi5pbnN0YW5jZSBhcyBBWFdpZGdldENvbXBvbmVudDtcbiAgICAgICAgdGhpcy5fd2lkZ2V0LnByb3ZpZGVWYWx1ZSA9IHRoaXMucHJvdmlkZVZhbHVlO1xuICAgICAgICBpZiAodGhpcy5fd2lkZ2V0Lm9uQnVzeUNoYW5nZWQpIHtcbiAgICAgICAgICAgIHRoaXMuX3dpZGdldC5vbkJ1c3lDaGFuZ2VkLnN1YnNjcmliZSgoZCkgPT4ge1xuICAgICAgICAgICAgICAgIGlmICghdGhpcy5fd2lkZ2V0LndpZGdldFNpemUpIHtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5fd2lkZ2V0LnNldFZhbHVlKCd3aWRnZXRTaXplJywgW3RoaXMuc2l6ZVgsIHRoaXMuc2l6ZVldKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuc2V0U2l6ZUZyb21PcHRpb25zKCk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIC8vIHRoaXMuaXNMb2FkaW5nID0gZC52YWx1ZTtcbiAgICAgICAgICAgICAgICB0aGlzLmNkci5kZXRlY3RDaGFuZ2VzKCk7XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgfVxuICAgICAgICBpZiAodGhpcy5fd2lkZ2V0Lm9uQ29uZmlndXJlZENoYW5nZWQpIHtcbiAgICAgICAgICAgIHRoaXMuX3dpZGdldC5vbkNvbmZpZ3VyZWRDaGFuZ2VkLnN1YnNjcmliZSgoKSA9PiB7XG4gICAgICAgICAgICAgICAgdGhpcy5zZXRTaXplRnJvbU9wdGlvbnMoKTtcbiAgICAgICAgICAgIH0pO1xuICAgICAgICB9XG4gICAgICAgIC8vXG4gICAgICAgIGlmICh0aGlzLmNvbmZpZy5vcHRpb25zKSB7XG4gICAgICAgICAgICBPYmplY3QuYXNzaWduKHRoaXMuX3dpZGdldCwgdGhpcy5jb25maWcub3B0aW9ucyk7XG4gICAgICAgIH1cbiAgICAgICAgdGhpcy5faGFzUHJvcHMgPSBBWFByb3BlcnR5RGVjb3JhdG9ycy5nZXRQcm9wZXJ0aWVzKHRoaXMuX3dpZGdldCkubGVuZ3RoID4gMDtcblxuICAgICAgICB0aGlzLmlzTG9hZGluZyA9IGZhbHNlO1xuICAgICAgICB0aGlzLmNvbmZpZ1snX19tZXRhX18nXS5pbnN0YW5jZSA9IHRoaXM7XG4gICAgICAgIHRoaXMuX3dpZGdldFsnX19tZXRhX18nXSA9IHt9O1xuICAgICAgICB0aGlzLl93aWRnZXRbJ19fbWV0YV9fJ10uY29uZmlnID0gdGhpcy5jb25maWc7XG4gICAgICAgIC8vXG4gICAgICAgIHRoaXMuY29uZmlnTWVudUl0ZW1bMF0uaXRlbXMucHVzaCh7XG4gICAgICAgICAgICBuYW1lOiAncmVmcmVzaCcsXG4gICAgICAgICAgICBpY29uOiAnZmFyIGZhLXVuZG8nLFxuICAgICAgICAgICAgdGV4dDogQVhUcmFuc2xhdG9yLmdldCgnY29tbW9uLnJlZnJlc2gnKSxcbiAgICAgICAgICAgIG9uQ2xpY2s6ICgpID0+IHtcbiAgICAgICAgICAgICAgICB0aGlzPy53aWRnZXQ/LnJlZnJlc2goKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSk7XG4gICAgICAgIC8vXG4gICAgICAgIGlmICh0aGlzLl9oYXNQcm9wcykge1xuICAgICAgICAgICAgdGhpcy5jb25maWdNZW51SXRlbVswXS5pdGVtcy5wdXNoKHtcbiAgICAgICAgICAgICAgICBuYW1lOiAnY29uZmlncycsXG4gICAgICAgICAgICAgICAgaWNvbjogJ2ZhciBmYS1jb2dzJyxcbiAgICAgICAgICAgICAgICB0ZXh0OiBBWFRyYW5zbGF0b3IuZ2V0KCdjb21tb24uY29uZmlncycpLFxuICAgICAgICAgICAgICAgIG9uQ2xpY2s6ICgpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5vcGVuQ29uZmlnRGlhbG9nKCk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSk7XG4gICAgICAgIH1cbiAgICAgICAgdGhpcy5jb25maWdNZW51SXRlbVswXS5pdGVtcy5wdXNoKHtcbiAgICAgICAgICAgIG5hbWU6ICdzYXZlJyxcbiAgICAgICAgICAgIGljb246ICdmYXIgZmEtc2F2ZScsXG4gICAgICAgICAgICB0ZXh0OiBBWFRyYW5zbGF0b3IuZ2V0KCdjb21tb24uc2F2ZS1hcycpLFxuICAgICAgICAgICAgb25DbGljazogKCkgPT4ge1xuICAgICAgICAgICAgICAgIHRoaXMub3BlblNhdmVEaWFsb2coKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSk7XG4gICAgICAgIGlmICh0cnVlKSB7XG4gICAgICAgICAgICB0aGlzLmNvbmZpZ01lbnVJdGVtWzBdLml0ZW1zLnB1c2goe1xuICAgICAgICAgICAgICAgIG5hbWU6ICdyZW1vdmUnLFxuICAgICAgICAgICAgICAgIGljb246ICdmYXIgZmEtdGltZXMnLFxuICAgICAgICAgICAgICAgIHN0eWxlOiAnYXggZGFuZ2VyIGJsYW5rJyxcbiAgICAgICAgICAgICAgICB0ZXh0OiBBWFRyYW5zbGF0b3IuZ2V0KCdjb21tb24ucmVtb3ZlJyksXG4gICAgICAgICAgICAgICAgb25DbGljazogKCkgPT4ge1xuICAgICAgICAgICAgICAgICAgICB0aGlzLm9uUmVtb3ZlLmVtaXQodGhpcyk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSk7XG4gICAgICAgIH1cbiAgICAgICAgdGhpcy5faGFzTWVudSA9IHRoaXMuY29uZmlnTWVudUl0ZW1bMF0uaXRlbXMubGVuZ3RoID4gMDtcbiAgICAgICAgdGhpcy5jZHIuZGV0ZWN0Q2hhbmdlcygpO1xuICAgIH1cblxuICAgIEBIb3N0QmluZGluZygnYXR0ci5kYXRhLXNpemUteCcpXG4gICAgQElucHV0KClcbiAgICBzaXplWDogbnVtYmVyID0gMTtcblxuICAgIEBIb3N0QmluZGluZygnYXR0ci5kYXRhLXNpemUteScpXG4gICAgQElucHV0KClcbiAgICBzaXplWTogbnVtYmVyID0gMTtcblxuICAgIEBIb3N0QmluZGluZygnYXR0ci5kYXRhLWNvbCcpXG4gICAgQElucHV0KClcbiAgICBjb2w6IG51bWJlciA9IDE7XG5cblxuICAgIEBIb3N0QmluZGluZygnYXR0ci5kYXRhLXJvdycpXG4gICAgQElucHV0KClcbiAgICByb3c6IG51bWJlciA9IDE7XG5cblxuICAgIHByaXZhdGUgc2V0U2l6ZUZyb21PcHRpb25zKCkge1xuICAgICAgICB0aGlzLl93aWRnZXQuZ2V0VmFsdWUoJ3dpZGdldFNpemUnKS50aGVuKGMgPT4ge1xuICAgICAgICAgICAgY29uc3Qgb2xkU2l6ZVggPSB0aGlzLnNpemVYO1xuICAgICAgICAgICAgY29uc3Qgb2xkU2l6ZVkgPSB0aGlzLnNpemVZO1xuICAgICAgICAgICAgaWYgKGMgJiYgQXJyYXkuaXNBcnJheShjKSAmJiAob2xkU2l6ZVggIT09IGNbMF0gfHwgb2xkU2l6ZVkgIT09IGNbMV0pKSB7XG4gICAgICAgICAgICAgICAgdGhpcy5jb25maWcuc2l6ZVggPSB0aGlzLnNpemVYID0gY1swXTtcbiAgICAgICAgICAgICAgICB0aGlzLmNvbmZpZy5zaXplWSA9IHRoaXMuc2l6ZVkgPSBjWzFdO1xuICAgICAgICAgICAgICAgIHRoaXMub25SZXNpemVkLmVtaXQoe1xuICAgICAgICAgICAgICAgICAgICBjb21wb25lbnQ6IHRoaXMuX3dpZGdldCxcbiAgICAgICAgICAgICAgICAgICAgY29uZmlnOiB0aGlzLmNvbmZpZ1xuICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgdGhpcy5jZHIuZGV0ZWN0Q2hhbmdlcygpO1xuICAgICAgICB9KTtcbiAgICB9XG5cbiAgICByZW1vdmUoZTogTW91c2VFdmVudCkge1xuICAgICAgICBlLnByZXZlbnREZWZhdWx0KCk7XG4gICAgICAgIGUuc3RvcFByb3BhZ2F0aW9uKCk7XG4gICAgICAgIGlmICghdGhpcy5yZWFkb25seSlcbiAgICAgICAgICAgIHRoaXMub25SZW1vdmUuZW1pdCh0aGlzKTtcbiAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgIH1cblxuICAgIGhhbmRsZUNvbmZpZyhlOiBNb3VzZUV2ZW50KSB7XG4gICAgICAgIGUucHJldmVudERlZmF1bHQoKTtcbiAgICAgICAgZS5zdG9wUHJvcGFnYXRpb24oKTtcbiAgICAgICAgaWYgKCF0aGlzLnJlYWRvbmx5KVxuICAgICAgICAgICAgdGhpcy5vcGVuQ29uZmlnRGlhbG9nKCk7XG4gICAgICAgIHJldHVybiBmYWxzZTtcbiAgICB9XG5cbiAgICBwcml2YXRlIG9wZW5Db25maWdEaWFsb2coKSB7XG4gICAgICAgIGNvbnN0IHBwcCA9IHRoaXMuZ2V0TWVyZ2VkUHJvcHMoKTtcbiAgICAgICAgdGhpcy5wb3B1cC5vcGVuKEFYV2lkZ2V0Q29uZmlnQ29tcG9uZW50LCB7XG4gICAgICAgICAgICB0aXRsZTogQVhUcmFuc2xhdG9yLmdldCgnY29tbW9uLmNvbmZpZ3MnKSxcbiAgICAgICAgICAgIHNpemU6ICdzbScsXG4gICAgICAgICAgICBkYXRhOiB7XG4gICAgICAgICAgICAgICAgcHJvcHM6IHBwcC5tYXAoYyA9PiAoeyBwcm9wZXJ0eTogYy5vcHRpb25zLCB2YWx1ZTogdGhpcy5fd2lkZ2V0W2Mub3B0aW9ucy5uYW1lXSB9KSksXG4gICAgICAgICAgICAgICAgd2lkZ2V0OiB0aGlzLndpZGdldFxuICAgICAgICAgICAgfVxuICAgICAgICB9KS50aGVuKGMgPT4ge1xuICAgICAgICAgICAgaWYgKGMuZGF0YSkge1xuICAgICAgICAgICAgICAgIGlmICghdGhpcy5jb25maWcub3B0aW9ucykge1xuICAgICAgICAgICAgICAgICAgICB0aGlzLmNvbmZpZy5vcHRpb25zID0ge307XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIGMuZGF0YS5mb3JFYWNoKHAgPT4ge1xuICAgICAgICAgICAgICAgICAgICB0aGlzLl93aWRnZXQuc2V0VmFsdWUocC5wcm9wZXJ0eS5uYW1lLCBwLnZhbHVlKTtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5jb25maWcub3B0aW9uc1twLnByb3BlcnR5Lm5hbWVdID0gcC52YWx1ZTtcbiAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAgICB0aGlzLmVtaXRDb25maWdDaGFuZ2VkKCk7XG4gICAgICAgICAgICAgICAgdGhpcy5fd2lkZ2V0LnJlZHJhdygpO1xuICAgICAgICAgICAgICAgIHRoaXMuY2RyLmRldGVjdENoYW5nZXMoKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBvcGVuU2F2ZURpYWxvZygpIHtcbiAgICAgICAgY29uc3QgcHBwID0gdGhpcy5nZXRNZXJnZWRQcm9wcygpO1xuICAgICAgICB0aGlzLnBvcHVwLm9wZW4oQVhXaWRnZXRTYXZlQ29tcG9uZW50LCB7XG4gICAgICAgICAgICB0aXRsZTogQVhUcmFuc2xhdG9yLmdldCgnY29tbW9uLnNhdmUtYXMnKSxcbiAgICAgICAgICAgIHNpemU6ICdzbScsXG4gICAgICAgICAgICBkYXRhOiB7XG4gICAgICAgICAgICAgICAgY29uZmlnOiB0aGlzLmNvbmZpZyxcbiAgICAgICAgICAgICAgICBwcm9wczogcHBwLm1hcChjID0+ICh7IHByb3BlcnR5OiBjLm9wdGlvbnMsIHZhbHVlOiB0aGlzLl93aWRnZXRbYy5vcHRpb25zLm5hbWVdIH0pKVxuICAgICAgICAgICAgfVxuICAgICAgICB9KS50aGVuKGMgPT4ge1xuICAgICAgICAgICAgaWYgKGMuZGF0YSkge1xuICAgICAgICAgICAgICAgIHRoaXMub25TYXZlLmVtaXQoe1xuICAgICAgICAgICAgICAgICAgICBjb21wb25lbnQ6IHRoaXMuX3dpZGdldCxcbiAgICAgICAgICAgICAgICAgICAgZGF0YTogYy5kYXRhXG4gICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH0pO1xuICAgIH1cblxuXG5cbiAgICBoYW5kbGVPcHRpb25DbGljayhlOiBNb3VzZUV2ZW50KSB7XG4gICAgICAgIGUucHJldmVudERlZmF1bHQoKTtcbiAgICAgICAgZS5zdG9wUHJvcGFnYXRpb24oKTtcbiAgICAgICAgdGhpcy5vcGVuQ29uZmlnRGlhbG9nKCk7XG4gICAgICAgIHJldHVybiBmYWxzZTtcbiAgICB9XG5cbiAgICBuZ09uRGVzdHJveSgpIHtcbiAgICAgICAgdGhpcy52Yy5jbGVhcigpO1xuICAgICAgICBpZiAodGhpcy5jb21wb25lbnRSZWYpIHtcbiAgICAgICAgICAgIHRoaXMuY29tcG9uZW50UmVmLmRlc3Ryb3koKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIHByaXZhdGUgZ2V0TWVyZ2VkUHJvcHMoKTogQVhQcm9wZXJ0eURlY29yYXRvcltdIHtcbiAgICAgICAgY29uc3QgcHBwID0gQVhPYmplY3RVdGlsLmRlZXBDb3B5KEFYUHJvcGVydHlEZWNvcmF0b3JzLmdldFByb3BlcnRpZXModGhpcy5fd2lkZ2V0KSkgYXMgQVhQcm9wZXJ0eURlY29yYXRvcltdO1xuICAgICAgICBmb3IgKGNvbnN0IGtleSBpbiB0aGlzLmNvbmZpZy5wcm9wcykge1xuICAgICAgICAgICAgaWYgKE9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbCh0aGlzLmNvbmZpZy5wcm9wcywga2V5KSkge1xuICAgICAgICAgICAgICAgIGNvbnN0IG5ld1AgPSB0aGlzLmNvbmZpZy5wcm9wc1trZXldO1xuICAgICAgICAgICAgICAgIGNvbnN0IGV4aXN0UHJvcERlYyA9IHBwcC5maW5kKHAgPT4gcC5wcm9wZXJ0eSA9PT0ga2V5KTtcbiAgICAgICAgICAgICAgICBpZiAoZXhpc3RQcm9wRGVjKSB7XG4gICAgICAgICAgICAgICAgICAgIE9iamVjdC5hc3NpZ24oZXhpc3RQcm9wRGVjLm9wdGlvbnMsIG5ld1ApO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gcHBwO1xuICAgIH1cblxuICAgIHByaXZhdGUgZW1pdENvbmZpZ0NoYW5nZWQoKSB7XG4gICAgICAgIHRoaXMub25Db25maWdDaGFuZ2VkLmVtaXQoe1xuICAgICAgICAgICAgY29tcG9uZW50OiB0aGlzLl93aWRnZXQsXG4gICAgICAgICAgICBjb25maWc6IHRoaXMuY29uZmlnXG4gICAgICAgIH0pO1xuICAgIH1cblxufSIsIjxkaXYgY2xhc3M9J3dpZGdldC1jb250YWluZXInPlxuICAgIDxkaXYgY2xhc3M9XCJ3aWRnZXQtY29uZmlnLW92ZXJsYXlcIiAqbmdJZj1cIiFpc0NvbmZpZ3VyZWRcIiAoY2xpY2spPVwiaGFuZGxlQ29uZmlnKCRldmVudClcIj5cbiAgICAgICAgPGRpdiBjbGFzcz1cIndpZGdldC10aXRsZVwiPnt7Y29uZmlnLnRpdGxlfX08L2Rpdj5cbiAgICAgICAgPGRpdiBjbGFzcz1cIndpZGdldC1jb25maWctYm94XCI+XG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY29uZmlnLXRpdGxlXCI+e3sgJ3dpZGdldC1ib2FyZC5jb25maWd1cmUnIHwgdHJhbnN9fTwvZGl2PlxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNvbmZpZy1pY29uXCIgKm5nSWY9XCIhcmVhZG9ubHlcIj48aSBjbGFzcz1cImZhcyBmYS1jb2dzIGZhLTV4XCIgYXJpYS1oaWRkZW49XCJ0cnVlXCI+PC9pPjwvZGl2PlxuICAgICAgICA8L2Rpdj5cbiAgICA8L2Rpdj5cbiAgICA8ZGl2IGNsYXNzPSd3aWRnZXQtZWRpdC1vdmVybGF5JyA+XG4gICAgICAgIDxkaXYgY2xhc3M9J3dpZGdldC1lZGl0LW1lbnUnPlxuICAgICAgICAgICAgPGJ1dHRvbiBjbGFzcz1cIndpZGdldC1lZGl0LW1lbnUtYnV0dG9uXCIgKGNsaWNrKT1cImhhbmRsZUNvbmZpZygkZXZlbnQpXCJcbiAgICAgICAgICAgICAgICAobW91c2Vkb3duKT1cIiRldmVudC5zdG9wUHJvcGFnYXRpb24oKVwiICpuZ0lmPVwiX2hhc1Byb3BzXCIgKG1vdXNldXApPVwiJGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpXCI+XG4gICAgICAgICAgICAgICAgPGkgY2xhc3M9XCJmYXIgZmEtY29nc1wiIGFyaWEtaGlkZGVuPVwidHJ1ZVwiPjwvaT5cbiAgICAgICAgICAgIDwvYnV0dG9uPlxuICAgICAgICAgICAgPGJ1dHRvbiBjbGFzcz1cIndpZGdldC1lZGl0LW1lbnUtYnV0dG9uXCIgKGNsaWNrKT1cInJlbW92ZSgkZXZlbnQpXCIgKG1vdXNlZG93bik9XCIkZXZlbnQuc3RvcFByb3BhZ2F0aW9uKClcIlxuICAgICAgICAgICAgICAgIChtb3VzZXVwKT1cIiRldmVudC5zdG9wUHJvcGFnYXRpb24oKVwiPlxuICAgICAgICAgICAgICAgIDxpIGNsYXNzPVwiZmFyIGZhLXRpbWVzXCIgYXJpYS1oaWRkZW49XCJ0cnVlXCI+PC9pPlxuICAgICAgICAgICAgPC9idXR0b24+XG4gICAgICAgIDwvZGl2PlxuXG4gICAgPC9kaXY+XG4gICAgPGRpdiBjbGFzcz1cIndpZGdldC1vcHRpb25zLW1lbnVcIiAgKm5nSWY9XCJfaGFzTWVudSAmJiAhcmVhZG9ubHlcIj5cbiAgICAgICAgPGF4LW1lbnUgW2l0ZW1zXT0nY29uZmlnTWVudUl0ZW0nIGRpcmVjdGlvbj1cImhvcml6b250YWxcIj48L2F4LW1lbnU+XG4gICAgPC9kaXY+XG4gICAgPCEtLSA8YXgtbG9hZGluZy1wYW5lbCBbdmlzaWJsZV09XCJpc0J1c3lcIj5cbiAgICA8L2F4LWxvYWRpbmctcGFuZWw+IC0tPlxuICAgIDxkaXYgY2xhc3M9XCJ3aWRnZXQtY29udGVudFwiPlxuICAgICAgICA8bmctY29udGFpbmVyICN2Yz48L25nLWNvbnRhaW5lcj5cbiAgICA8L2Rpdj5cbjwvZGl2PiJdfQ==","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 \"@angular/common\";\nimport * as i2 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: \"14.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 <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\", 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: \"directive\", type: i1.NgForOf, selector: \"[ngFor][ngForOf]\", inputs: [\"ngForOf\", \"ngForTrackBy\", \"ngForTemplate\"] }, { kind: \"component\", type: i2.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 <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\", 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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoid2lkZ2V0LWJvYXJkLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvbGF5b3V0L3NyYy9saWIvd2lkZ2V0LWJvYXJkL3dpZGdldC1ib2FyZC5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9saWJzL2xheW91dC9zcmMvbGliL3dpZGdldC1ib2FyZC93aWRnZXQtYm9hcmQuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUNMLFNBQVMsRUFFVCxLQUFLLEVBQ0wsaUJBQWlCLEVBQ2pCLFVBQVUsRUFDVixTQUFTLEVBQ1QsTUFBTSxFQUNOLHVCQUF1QixFQUN2QixpQkFBaUIsRUFDakIsTUFBTSxFQUNOLFlBQVksRUFBRSxZQUFZLEVBQUUsU0FBUyxFQUN0QyxNQUFNLGVBQWUsQ0FBQztBQU92QixPQUFPLEVBQUUscUJBQXFCLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQztBQUNoRSxPQUFPLEVBQUUsVUFBVSxFQUFFLFdBQVcsRUFBRSxNQUFNLGNBQWMsQ0FBQztBQUN2RCxPQUFPLEVBQUUsT0FBTyxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQy9CLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQTs7OztBQVk3QyxNQUFNLE9BQU8sc0JBQXNCO0lBc0R2QjtJQUNBO0lBQ0E7SUFyREYsU0FBUyxDQUE2QjtJQUd0QyxXQUFXLENBQW1DO0lBRXRELE9BQU8sR0FBcUIsRUFBRSxDQUFDO0lBRy9CLFlBQVksR0FBcUIsRUFBRSxDQUFDO0lBR3BDLFFBQVEsR0FBVyxFQUFFLENBQUM7SUFHdEIsT0FBTyxHQUFXLENBQUMsQ0FBQztJQUlwQixRQUFRLEdBQVksS0FBSyxDQUFDO0lBRWxCLFNBQVMsR0FBbUIsSUFBSSxDQUFDO0lBRWxDLEdBQUcsQ0FBVTtJQUVaLFlBQVksR0FBWSxLQUFLLENBQUM7SUFDL0IsV0FBVztRQUNoQixPQUFPLElB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WCxLQUFLO2dCQVlOLGVBQWU7c0JBRGQsTUFBTTtnQkFJUCxZQUFZO3NCQURYLE1BQU0iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICBDb21wb25lbnQsXG4gIE9uSW5pdCxcbiAgSW5wdXQsXG4gIFZpZXdFbmNhcHN1bGF0aW9uLFxuICBFbGVtZW50UmVmLFxuICBWaWV3Q2hpbGQsXG4gIE5nWm9uZSxcbiAgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksXG4gIENoYW5nZURldGVjdG9yUmVmLFxuICBPdXRwdXQsXG4gIEV2ZW50RW1pdHRlciwgVmlld0NoaWxkcmVuLCBRdWVyeUxpc3Rcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQge1xuICBBWFdpZGdldENvbmZpZyxcbiAgQVhXaWRnZXRDb25maWdDaGFuZ2VkLFxuICBBWFdpZGdldEJvYXJkQ29uZmlnQ2hhbmdlZCxcbiAgQVhXaWRnZXRDb25maWdTYXZlZEV2ZW50XG59IGZyb20gJy4vd2lkZ2V0LmNsYXNzJztcbmltcG9ydCB7IEFYV2lkZ2V0SG9zdENvbXBvbmVudCB9IGZyb20gJy4vd2lkZ2V0LWhvc3QuY29tcG9uZW50JztcbmltcG9ydCB7IEFYSHRtbFV0aWwsIEFYQ2xpZW50UmVjIH0gZnJvbSAnQGFjb3JleC9jb3JlJztcbmltcG9ydCB7IFN1YmplY3QgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IGRlYm91bmNlVGltZSB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJ1xuXG5cbkBDb21wb25lbnQoe1xuICAgIHNlbGVjdG9yOiAnYXgtd2lkZ2V0LWJvYXJkJyxcbiAgICB0ZW1wbGF0ZVVybDogJy4vd2lkZ2V0LWJvYXJkLmNvbXBvbmVudC5odG1sJyxcbiAgICBzdHlsZVVybHM6IFsnLi93aWRnZXQtYm9hcmQuY29tcG9uZW50LnNjc3MnXSxcbiAgICBob3N0OiB7IGNsYXNzOiAnYXggd2lkZ2V0LWJvYXJkJyB9LFxuICAgIGVuY2Fwc3VsYXRpb246IFZpZXdFbmNhcHN1bGF0aW9uLk5vbmUsXG4gICAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gICAgc3RhbmRhbG9uZTogZmFsc2Vcbn0pXG5leHBvcnQgY2xhc3MgQVhXaWRnZXRCb2FyZENvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCB7XG5cbiAgQFZpZXdDaGlsZCgnY29udGFpbmVyJylcbiAgcHJpdmF0ZSBjb250YWluZXI6IEVsZW1lbnRSZWY8SFRNTERpdkVsZW1lbnQ+O1xuXG4gIEBWaWV3Q2hpbGRyZW4oQVhXaWRnZXRIb3N0Q29tcG9uZW50KVxuICBwcml2YXRlIHdpZGdldEhvc3RzOiBRdWVyeUxpc3Q8QVhXaWRnZXRIb3N0Q29tcG9uZW50PjtcblxuICB3aWRnZXRzOiBBWFdpZGdldENvbmZpZ1tdID0gW107XG5cbiAgQElucHV0KClcbiAgZ2FsbGVyeUl0ZW1zOiBBWFdpZGdldENvbmZpZ1tdID0gW107XG5cbiAgQElucHV0KClcbiAgdGlsZVNpemU6IG51bWJlciA9IDgwO1xuXG4gIEBJbnB1dCgpXG4gIGdhcFNpemU6IG51bWJlciA9IDU7XG5cblxuICBASW5wdXQoKVxuICByZWFkb25seTogYm9vbGVhbiA9IGZhbHNlO1xuXG4gIHByaXZhdGUgbmV3V2lkZ2V0OiBBWFdpZGdldENvbmZpZyA9IG51bGw7XG5cbiAgcHVibGljIHJ0bDogYm9vbGVhbjtcblxuICBwcml2YXRlIF9pc0luRWRpdGluZzogYm9vbGVhbiA9IGZhbHNlO1xuICBwdWJsaWMgaXNJbkVkaXRpbmcoKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHRoaXMuX2lzSW5FZGl0aW5nO1xuICB9XG4gIHByaXZhdGUgaXNEcmFnZ2luZzogYm9vbGVhbiA9IGZhbHNlO1xuICBwcml2YXRlIGRyYWdJdGVtOiBIVE1MRWxlbWVudDtcblxuICBwcml2YXRlIHNhdmVTdWJqZWN0ID0gbmV3IFN1YmplY3Q8c3RyaW5nPigpO1xuXG4gIEBJbnB1dCgpXG4gIHByb3ZpZGVWYWx1ZTogKGU6IGFueSkgPT4gYW55O1xuXG4gIHByaXZhdGUgcmVhZG9ubHkgREFUQV9DT0wgPSAnZGF0YS1jb2wnO1xuICBwcml2YXRlIHJlYWRvbmx5IERBVEFfUk9XID0gJ2RhdGEtcm93JztcbiAgcHJpdmF0ZSByZWFkb25seSBEQVRBX1NJWkVfWCA9ICdkYXRhLXNpemUteCc7XG4gIHByaXZhdGUgcmVhZG9ubHkgREFUQV9TSVpFX1kgPSAnZGF0YS1zaXplLXknO1xuICBwcml2YXRlIHJlYWRvbmx5IERBVEFfT0xEX0NPTCA9ICdkYXRhLW9sZC1jb2wnO1xuICBwcml2YXRlIHJlYWRvbmx5IERBVEFfT0xEX1JPVyA9ICdkYXRhLW9sZC1yb3cnO1xuXG5cbiAgQE91dHB1dCgpXG4gIG9uQ29uZmlnQ2hhbmdlZDogRXZlbnRFbWl0dGVyPEFYV2lkZ2V0Qm9hcmRDb25maWdDaGFuZ2VkPiA9IG5ldyBFdmVudEVtaXR0ZXI8QVhXaWRnZXRCb2FyZENvbmZpZ0NoYW5nZWQ+KCk7XG5cbiAgQE91dHB1dCgpXG4gIG9uV2lkZ2V0U2F2ZTogRXZlbnRFbWl0dGVyPEFYV2lkZ2V0Q29uZmlnU2F2ZWRFdmVudD4gPSBuZXcgRXZlbnRFbWl0dGVyPEFYV2lkZ2V0Q29uZmlnU2F2ZWRFdmVudD4oKTtcblxuICBjb25zdHJ1Y3RvcihcbiAgICBwcml2YXRlIHJlZjogRWxlbWVudFJlZjxIVE1MRGl2RWxlbWVudD4sXG4gICAgcHJpdmF0ZSB6b25lOiBOZ1pvbmUsXG4gICAgcHJpdmF0ZSBjZHI6IENoYW5nZURldGVjdG9yUmVmXG4gICkgeyB9XG5cblxuICBuZ09uSW5pdCgpIHtcbiAgICBpZiAodGhpcy5ydGwgPT0gbnVsbCkge1xuICAgICAgdGhpcy5ydGwgPSB3aW5kb3cuZ2V0Q29tcHV0ZWRTdHlsZSh0aGlzLnJlZi5uYXRpdmVFbGVtZW50LCBudWxsKS5nZXRQcm9wZXJ0eVZhbHVlKCdkaXJlY3Rpb24nKSA9PT0gJ3J0bCc7XG4gICAgfVxuICAgIHRoaXMuc2F2ZVN1YmplY3QucGlwZShkZWJvdW5jZVRpbWUoNzUwKSkuc3Vic2NyaWJlKCh2YWx1ZTogYW55KSA9PiB7XG4gICAgICB0aGlzLmVtaXRDb25maWdDaGFuZ2VkKHZhbHVlKTtcbiAgICB9KTtcbiAgfVxuXG4gIG5nT25EZXN0cm95KClcbiAge1xuICAgIHRoaXMuc2F2ZVN1YmplY3Q/LnVuc3Vic2NyaWJlKCk7XG4gIH1cblxuICBuZ0FmdGVyVmlld0luaXQoKSB7XG4gICAgdGhpcy56b25lLnJ1bk91dHNpZGVBbmd1bGFyKChjKSA9PiB7XG4gICAgICBjb25zdCBzdHlsZSA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ3N0eWxlJyk7XG4gICAgICBzdHlsZS50eXBlID0gJ3RleHQvY3NzJztcbiAgICAgIHRoaXMucmVmLm5hdGl2ZUVsZW1lbnQuYXBwZW5kQ2hpbGQoc3R5bGUpO1xuICAgICAgLy8gYWRkIGNzcyBkYXRhIGNsYXNzZXNcbiAgICAgIGZvciAobGV0IGkgPSAxOyBpIDw9IDUwOyBpKyspIHtcbiAgICAgICAgc3R5bGUuaW5uZXJIVE1MICs9IGBbJHt0aGlzLkRBVEFfQ09MfT1cIiR7aX1cIl0geyAgJHt0aGlzLnJ0bCA/ICdyaWdodCcgOiAnbGVmdCd9OiAkeyhpIC0gMSkgKiAodGhpcy50aWxlU2l6ZSArIHRoaXMuZ2FwU2l6ZSl9cHg7IH1gO1xuICAgICAgICBzdHlsZS5pbm5lckhUTUwgKz0gYFske3RoaXMuREFUQV9ST1d9PVwiJHtpfVwiXSB7ICB0b3A6ICR7KGkgLSAxKSAqICh0aGlzLnRpbGVTaXplICsgdGhpcy5nYXBTaXplKX1weDsgfWA7XG4gICAgICAgIHN0eWxlLmlubmVySFRNTCArPSBgWyR7dGhpcy5EQVRBX1NJWkVfWH09XCIke2l9XCJdIHsgIHdpZHRoOiAgJHsoaSAqIHRoaXMudGlsZVNpemUpICsgKChpIC0gMSkgKiB0aGlzLmdhcFNpemUpfXB4OyB9YDtcbiAgICAgICAgc3R5bGUuaW5uZXJIVE1MICs9IGBbJHt0aGlzLkRBVEFfU0laRV9ZfT1cIiR7aX1cIl0geyAgaGVpZ2h0OiAkeyhpICogdGhpcy50aWxlU2l6ZSkgKyAoKGkgLSAxKSAqIHRoaXMuZ2FwU2l6ZSl9cHg7IH1gO1xuICAgICAgfVxuICAgIH0pO1xuICB9XG5cbiAgcHJpdmF0ZSBjYWxjR3JpZFNpemUoKSB7XG4gICAgdGhpcy56b25lLnJ1bk91dHNpZGVBbmd1bGFyKCgpID0+IHtcbiAgICAgIGNvbnN0IHdpZHRoID1cbiAgICAgICAgKE1hdGgubWF4KC4uLnRoaXMud2lkZ2V0cy5tYXAoKGMpID0+IGMuY29sICsgYy5zaXplWCAtIDEpKSkgKiAodGhpcy50aWxlU2l6ZSArIHRoaXMuZ2FwU2l6ZSk7XG4gICAgICBjb25zdCBoZWlnaHQgPVxuICAgICAgICAoTWF0aC5tYXgoLi4udGhpcy53aWRnZXRzLm1hcCgoYykgPT4gYy5yb3cgKyBjLnNpemVZIC0gMSkpKSAqICh0aGlzLnRpbGVTaXplICsgdGhpcy5nYXBTaXplKTtcbiAgICAgIHRoaXMuY29udGFpbmVyLm5hdGl2ZUVsZW1lbnQuc3R5bGUud2lkdGggPSB3aWR0aCArICdweCc7XG4gICAgICB0aGlzLmNvbnRhaW5lci5uYXRpdmVFbGVtZW50LnN0eWxlLmhlaWdodCA9IGhlaWdodCArICdweCc7XG4gICAgfSk7XG4gIH1cblxuICB0b2dnbGVFZGl0KCkge1xuICAgIHRoaXMuX2lzSW5FZGl0aW5nID8gdGhpcy5maW5pc2hFZGl0KCkgOiB0aGlzLnN0YXJ0RWRpdCgpO1xuICB9XG5cblxuXG4gIHByaXZhdGUgZHJhZ1N0YXJ0KGU6IE1vdXNlRXZlbnQpIHtcbiAgICBlLnByZXZlbnREZWZhdWx0KCk7XG4gICAgZS5zdG9wUHJvcGFnYXRpb24oKTtcbiAgICB0aGlzLnpvbmUucnVuT3V0c2lkZUFuZ3VsYXIoKCkgPT4ge1xuICAgICAgaWYgKHRoaXMuX2lzSW5FZGl0aW5nICYmIGUud2hpY2ggPT09IDEpIHtcbiAgICAgICAgdGhpcy5kcmFnSXRlbSA9IGUuY3VycmVudFRhcmdldCBhcyBhbnk7XG4gICAgICAgIHRoaXMuZHJhZ0l0ZW0uc2V0QXR0cmlidXRlKCdkYXRhLXgtb2Zmc2V0JywgKHRoaXMuZHJhZ0l0ZW0ub2Zmc2V0TGVmdCAtIGUuY2xpZW50WCkudG9TdHJpbmcoKSk7XG4gICAgICAgIC8vXG4gICAgICAgIHRoaXMuZHJhZ0l0ZW0uc2V0QXR0cmlidXRlKCdkYXRhLXktb2Zmc2V0JywgKHRoaXMuZHJhZ0l0ZW0ub2Zmc2V0VG9wIC0gZS5jbGllbnRZKS50b1N0cmluZygpKTtcbiAgICAgICAgdGhpcy5kcmFnSXRlbS5jbGFzc0xpc3QuYWRkKCd3aWRnZXQtZHJhZ2dpbmcnKTtcbiAgICAgICAgdGhpcy5kcmFnSXRlbS5jbGFzc0xpc3QucmVtb3ZlKCdhbmltYXRlX19hbmltYXRlZCcsICdhbmltYXRlX19wdWxzZScpO1xuICAgICAgfVxuICAgIH0pO1xuICAgIHJldHVybiBmYWxzZTtcbiAgfVxuXG4gIHJlbW92ZVBvc2l0aW9uRGF0YSgpIHtcbiAgICB0aGlzLnpvbmUucnVuT3V0c2lkZUFuZ3VsYXIoKCkgPT4ge1xuICAgICAgaWYgKHRoaXMuZHJhZ0l0ZW0gJiYgdGhpcy5faXNJbkVkaXRpbmcgJiYgdGhpcy5kcmFnSXRlbS5nZXRBdHRyaWJ1dGUodGhpcy5EQVRBX09MRF9DT0wpID09IG51bGwpIHtcbiAgICAgICAgdGhpcy5kcmFnSXRlbS5zZXRBdHRyaWJ1dGUodGhpcy5EQVRBX09MRF9DT0wsIHRoaXMuZHJhZ0l0ZW0uZ2V0QXR0cmlidXRlKHRoaXMuREFUQV9DT0wpKTtcbiAgICAgICAgdGhpcy5kcmFnSXRlbS5zZXRBdHRyaWJ1dGUodGhpcy5EQVRBX09MRF9ST1csIHRoaXMuZHJhZ0l0ZW0uZ2V0QXR0cmlidXRlKHRoaXMuREFUQV9ST1cpKTtcbiAgICAgICAgdGhpcy5kcmFnSXRlbS5yZW1vdmVBdHRyaWJ1dGUodGhpcy5EQVRBX0NPTCk7XG4gICAgICAgIHRoaXMuZHJhZ0l0ZW0ucmVtb3ZlQXR0cmlidXRlKHRoaXMuREFUQV9ST1cpO1xuICAgICAgfVxuICAgIH0pO1xuICB9XG5cbiAgcmVzZXRQb3NpdGlvbkRhdGEoKSB7XG4gICAgdGhpcy56b25lLnJ1bk91dHNpZGVBbmd1bGFyKCgpID0+IHtcbiAgICAgIGlmICh0aGlzLmRyYWdJdGVtICYmIHRoaXMuX2lzSW5FZGl0aW5nKSB7XG4gICAgICAgIHRoaXMuc2V0UG9zaXRpb24odGhpcy5kcmFnSXRlbSwgdGhpcy5kcmFnSXRlbS5nZXRBdHRyaWJ1dGUodGhpcy5EQVRBX09MRF9DT0wpLCB0aGlzLmRyYWdJdGVtLmdldEF0dHJpYnV0ZSh0aGlzLkRBVEFfT0xEX1JPVykpO1xuICAgICAgfVxuICAgIH0pO1xuICB9XG5cbiAgcHJpdmF0ZSBzZXRQb3NpdGlvbihlbGVtZW50OiBIVE1MRWxlbWVudCwgY29sOiBzdHJpbmcsIHJvdzogc3RyaW5nKSB7XG4gICAgdGhpcy56b25lLnJ1bk91dHNpZGVBbmd1bGFyKCgpID0+IHtcbiAgICAgIGVsZW1lbnQuc2V0QXR0cmlidXRlKHRoaXMuREFUQV9DT0wsIGNvbCk7XG4gICAgICBlbGVtZW50LnNldEF0dHJpYnV0ZSh0aGlzLkRBVEFfUk9XLCByb3cpO1xuICAgICAgZWxlbWVudC5yZW1vdmVBdHRyaWJ1dGUodGhpcy5EQVRBX09MRF9DT0wpO1xuICAgICAgZWxlbWVudC5yZW1vdmVBdHRyaWJ1dGUodGhpcy5EQVRBX09MRF9ST1cpO1xuICAgICAgZWxlbWVudC5zdHlsZS5yZW1vdmVQcm9wZXJ0eSgndG9wJyk7XG4gICAgICBlbGVtZW50LnN0eWxlLnJlbW92ZVByb3BlcnR5KCdsZWZ0Jyk7XG4gICAgICBjb25zdCB3aWRnZXQgPSB0aGlzLndpZGdldHMuZmluZChjID0+IGNbJ19fbWV0YV9fJ10uaW5zdGFuY2UuZWxlbWVudCA9PT0gZWxlbWVudCk7XG4gICAgICB3aWRnZXQuY29sID0gTnVtYmVyKGNvbCk7XG4gICAgICB3aWRnZXQucm93ID0gTnVtYmVyKHJvdyk7XG4gICAgfSk7XG4gIH1cblxuICBwcml2YXRlIGRyYWcoZSkge1xuICAgIGUucHJldmVudERlZmF1bHQoKTtcbiAgICBlLnN0b3BQcm9wYWdhdGlvbigpO1xuICAgIHRoaXMuem9uZS5ydW5PdXRzaWRlQW5ndWxhcigoKSA9PiB7XG4gICAgICBpZiAodGhpcy5kcmFnSXRlbSAmJiB0aGlzLl9pc0luRWRpdGluZykge1xuICAgICAgICB0aGlzLmlzRHJhZ2dpbmcgPSB0cnVlO1xuICAgICAgICB0aGlzLmFkZFBsYWNlaG9sZGVyKCk7XG4gICAgICAgIGNvbnN0IHhPZmZzZXQgPSBOdW1iZXIodGhpcy5kcmFnSXRlbS5nZXRBdHRyaWJ1dGUoJ2RhdGEteC1vZmZzZXQnKSk7XG4gICAgICAgIGNvbnN0IHlPZmZzZXQgPSBOdW1iZXIodGhpcy5kcmFnSXRlbS5nZXRBdHRyaWJ1dGUoJ2RhdGEteS1vZmZzZXQnKSk7XG4gICAgICAgIHRoaXMuZHJhZ0l0ZW0uc3R5bGUubGVmdCA9IGUuY2xpZW50WCArIHhPZmZzZXQgKyAncHgnO1xuICAgICAgICB0aGlzLmRyYWdJdGVtLnN0eWxlLnRvcCA9IGUuY2xpZW50WSArIHlPZmZzZXQgKyAncHgnO1xuICAgICAgICAvL1xuICAgICAgICB0aGlzLmRldGVjdEJlc3RQbGFjZW1lbnQoKTtcbiAgICAgICAgdGhpcy5yZW1vdmVQb3NpdGlvbkRhdGEoKTtcbiAgICAgIH1cbiAgICB9KTtcbiAgICByZXR1cm4gZmFsc2U7XG4gIH1cblxuICBwcml2YXRlIGRyYWdFbmQoZSkge1xuICAgIHRoaXMuem9uZS5ydW5PdXRzaWRlQW5ndWxhcigoKSA9PiB7XG4gICAgICBpZiAodGhpcy5kcmFnSXRlbSAmJiB0aGlzLl9pc0luRWRpdGluZyAmJiB0aGlzLmlzRHJhZ2dpbmcpIHtcbiAgICAgICAgdGhpcy5kcmFnSXRlbS5jbGFzc0xpc3QucmVtb3ZlKCd3aWRnZXQtZHJhZ2dpbmcnKTtcbiAgICAgICAgdGhpcy5kcmFnSXRlbS5jbGFzc0xpc3QuYWRkKCdhbmltYXRlX19hbmltYXRlZCcsICdhbmltYXRlX19wdWxzZScpO1xuICAgICAgICAvL1xuICAgICAgICBjb25zdCBwID0gdGhpcy5jb250YWluZXIubmF0aXZlRWxlbWVudC5xdWVyeVNlbGVjdG9yKCcud2lkZ2V0LWJsYW5rLXBsYWNlaG9sZGVyJyk7XG4gICAgICAgIGlmICh0aGlzLm5ld1dpZGdldCkge1xuICAgICAgICAgIGNvbnN0IHcgPSB7XG4gICAgICAgICAgICB1bmlxdWVOYW1lOiB0aGlzLm5ld1dpZGdldC51bmlxdWVOYW1lLFxuICAgICAgICAgICAgY29tcG9uZW50OiB0aGlzLm5ld1dpZGdldC5jb21wb25lbnQsXG4gICAgICAgICAgICB0aXRsZTogdGhpcy5uZXdXaWRnZXQudGl0bGUsXG4gICAgICAgICAgICBvcHRpb25zOiB0aGlzLm5ld1dpZGdldC5vcHRpb25zLFxuICAgICAgICAgICAgc2l6ZVg6IHRoaXMubmV3V2lkZ2V0LnNpemVYLFxuICAgICAgICAgICAgc2l6ZVk6IHRoaXMubmV3V2lkZ2V0LnNpemVZLFxuICAgICAgICAgICAgY29sOiBOdW1iZXIocC5nZXRBdHRyaWJ1dGUodGhpcy5EQVRBX0NPTCkpLFxuICAgICAgICAgICAgcm93OiBOdW1iZXIocC5nZXRBdHRyaWJ1dGUodGhpcy5EQVRBX1JPVykpXG4gICAgICAgICAgfTtcblxuICAgICAgICAgIHRoaXMud2lkZ2V0cy5wdXNoKHcpO1xuICAgICAgICAgIHRoaXMubmV3V2lkZ2V0ID0gbnVsbDtcbiAgICAgICAgICB0aGlzLmNvbnRhaW5lci5uYXRpdmVFbGVtZW50LnJlbW92ZUNoaWxkKHRoaXMuZHJhZ0l0ZW0pO1xuICAgICAgICAgIHRoaXMuem9uZS5ydW4oKCkgPT4ge1xuICAgICAgICAgICAgdGhpcy5jZHIuZGV0ZWN0Q2hhbmdlcygpO1xuICAgICAgICAgICAgdGhpcy5jYWxjR3JpZFNpemUoKTtcbiAgICAgICAgICAgIHNldFRpbWVvdXQoKCkgPT4ge1xuICAgICAgICAgICAgICB3WydfX21ldGFfXyddLmluc3RhbmNlLmVsZW1lbnQuYWRkRXZlbnRMaXN0ZW5lcignbW91c2Vkb3duJywgdGhpcy5kcmFnU3RhcnQuYmluZCh0aGlzKSwgZmFsc2UpO1xuICAgICAgICAgICAgfSwgMTAwMCk7XG4gICAgICAgICAgfSk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgaWYgKHApIHtcbiAgICAgICAgICAgIHRoaXMuc2V0UG9zaXRpb24odGhpcy5kcmFnSXRlbSwgcC5nZXRBdHRyaWJ1dGUodGhpcy5EQVRBX0NPTCksIHAuZ2V0QXR0cmlidXRlKHRoaXMuREFUQV9ST1cpKTtcbiAgICAgICAgICB9XG4gICAgICAgICAgZWxzZSB7XG4gICAgICAgICAgICB0aGlzLnNldFBvc2l0aW9uKHRoaXMuZHJhZ0l0ZW0sIHRoaXMuZHJhZ0l0ZW0uZ2V0QXR0cmlidXRlKHRoaXMuREFUQV9PTERfQ09MKSwgdGhpcy5kcmFnSXRlbS5nZXRBdHRyaWJ1dGUodGhpcy5EQVRBX09MRF9ST1cpKTtcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgLy9cbiAgICAgICAgdGhpcy5yZW1vdmVQbGFjZWhvbGRlcigpO1xuICAgICAgICB0aGlzLmRyYWdJdGVtID0gbnVsbDtcbiAgICAgICAgdGhpcy5jYWxjR3JpZFNpemUoKTtcbiAgICAgICAgdGhpcy5zYXZlU3ViamVjdC5uZXh0KCdjb25maWcnKTtcbiAgICAgIH1cbiAgICAgIHRoaXMuaXNEcmFnZ2luZyA9IGZhbHNlO1xuICAgIH0pO1xuICB9XG5cbiAgcHJpdmF0ZSBkZXRlY3RGaXJzdEVtcHR5U2xvdCh3OiBBWFdpZGdldENvbmZpZykge1xuICAgIGNvbnN0IHhUaWxlID0gTWF0aC5mbG9vcih0aGlzLnJlZi5uYXRpdmVFbGVtZW50LnBhcmVudEVsZW1lbnQub2Zmc2V0V2lkdGggLyB0aGlzLnRpbGVTaXplKTtcbiAgICBmb3IgKGxldCBqID0gMTsgaiA8PSAxMDA7IGorKykge1xuICAgICAgZm9yIChsZXQgaSA9IDE7IGkgPD0geFRpbGUgLSB3LnNpemVYOyBpKyspIHtcbiAgICAgICAgY29uc3QgcmVjID0gbmV3IEFYQ2xpZW50UmVjKHtcbiAgICAgICAgICBsZWZ0OiBpLFxuICAgICAgICAgIHRvcDogaixcbiAgICAgICAgICB3aWR0aDogdy5zaXplWCxcbiAgICAgICAgICBoZWlnaHQ6IHcuc2l6ZVlcbiAgICAgICAgfSk7XG4gICAgICAgIGNvbnN0IGVsID0gdGhpcy53aWRnZXRzLmZpbHRlcihjID0+IGMgIT09IHcpLmZpbmQoKGMpID0+XG4gICAgICAgICAgcmVjLmludGVyc2VjdCh7XG4gICAgICAgICAgICBsZWZ0OiBjLmNvbCxcbiAgICAgICAgICAgIHRvcDogYy5yb3csXG4gICAgICAgICAgICB3aWR0aDogYy5zaXplWCxcbiAgICAgICAgICAgIGhlaWdodDogYy5zaXplWVxuICAgICAgICAgIH0pXG4gICAgICAgICk7XG4gICAgICAgIGlmIChlbCA9PSBudWxsKSB7XG4gICAgICAgICAgdy5jb2wgPSBpO1xuICAgICAgICAgIHcucm93ID0gajtcbiAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICBwcml2YXRlIGRldGVjdEJlc3RQbGFjZW1lbnQoKSB7XG4gICAgdGhpcy56b25lLnJ1bk91dHNpZGVBbmd1bGFyKCgpID0+IHtcbiAgICAgIGNvbnN0IHAgPSB0aGlzLmNvbnRhaW5lci5uYXRpdmVFbGVtZW50LnF1ZXJ5U2VsZWN0b3IoJy53aWRnZXQtYmxhbmstcGxhY2Vob2xkZXInKSBhcyBIVE1MRWxlbWVudDtcbiAgICAgIGxldCBjb2wgPSBNYXRoLmNlaWwodGhpcy5kcmFnSXRlbS5vZmZzZXRMZWZ0IC8gdGhpcy50aWxlU2l6ZSk7XG4gICAgICBpZiAodGhpcy5ydGwpIHtcbiAgICAgICAgY29sID0gTWF0aC5jZWlsKCh0aGlzLmNvbnRhaW5lci5uYXRpdmVFbGVtZW50LmNsaWVudFdpZHRoIC0gKHRoaXMuZHJhZ0l0ZW0ub2Zmc2V0TGVmdCArIHRoaXMuZHJhZ0l0ZW0uY2xpZW50V2lkdGgpKSAvIHRoaXMudGlsZVNpemUpO1xuICAgICAgfVxuXG4gICAgICBsZXQgcm93ID0gTWF0aC5jZWlsKHRoaXMuZHJhZ0l0ZW0ub2Zmc2V0VG9wIC8gdGhpcy50aWxlU2l6ZSk7XG4gICAgICBpZiAoY29sIDwgMSkge1xuICAgICAgICBjb2wgPSAxO1xuICAgICAgfVxuICAgICAgaWYgKHJvdyA8IDEpIHtcbiAgICAgICAgcm93ID0gMTtcbiAgICAgIH1cbiAgICAgIGNvbnN0IHdpZGdldHMgPSBBcnJheS5mcm9tKHRoaXMucmVmLm5hdGl2ZUVsZW1lbnQucXVlcnlTZWxlY3RvckFsbCgnLndpZGdldC1ob3N0JykpLm1hcCgoYykgPT4gYyBhcyBIVE1MRWxlbWVudCk7XG4gICAgICBwLnNldEF0dHJpYnV0ZSh0aGlzLkRBVEFfQ09MLCBjb2wudG9TdHJpbmcoKSk7XG4gICAgICBwLnNldEF0dHJpYnV0ZSh0aGlzLkRBVEFfUk9XLCByb3cudG9TdHJpbmcoKSk7XG4gICAgICBjb25zdCBjb2xsaXNpb24gPSB3aWRnZXRzLmZpbHRlcihjID0+IGMgIT09IHRoaXMuZHJhZ0l0ZW0pLnNvbWUoYyA9PiBBWEh0bWxVdGlsLmNvbGxpc2lvbihjLCB0aGlzLmRyYWdJdGVtKSk7XG4gICAgICBpZiAoY29sbGlzaW9uKSB7XG4gICAgICAgIHRoaXMucmVtb3ZlUGxhY2Vob2xkZXIoKTtcbiAgICAgIH1cbiAgICB9KTtcbiAgfVxuXG5cbiAgcHJpdmF0ZSBhZGRQbGFjZWhvbGRlcigpIHtcbiAgICB0aGlzLnpvbmUucnVuT3V0c2lkZUFuZ3VsYXIoKCkgPT4ge1xuICAgICAgdGhpcy5yZW1vdmVQbGFjZWhvbGRlcigpO1xuICAgICAgaWYgKHRoaXMuZHJhZ0l0ZW0pIHtcbiAgICAgICAgY29uc3QgcCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2RpdicpO1xuICAgICAgICBwLmNsYXNzTGlzdC5hZGQoJ3dpZGdldC1ibGFuay1wbGFjZWhvbGRlcicpO1xuICAgICAgICBwLnNldEF0dHJpYnV0ZSh0aGlzLkRBVEFfQ09MLCB0aGlzLmRyYWdJdGVtLmdldEF0dHJpYnV0ZSh0aGlzLkRBVEFfQ09MKSk7XG4gICAgICAgIHAuc2V0QXR0cmlidXRlKHRoaXMuREFUQV9ST1csIHRoaXMuZHJhZ0l0ZW0uZ2V0QXR0cmlidXRlKHRoaXMuREFUQV9ST1cpKTtcbiAgICAgICAgcC5zZXRBdHRyaWJ1dGUodGhpcy5EQVRBX1NJWkVfWCwgdGhpcy5kcmFnSXRlbS5nZXRBdHRyaWJ1dGUodGhpcy5EQVRBX1NJWkVfWCkpO1xuICAgICAgICBwLnNldEF0dHJpYnV0ZSh0aGlzLkRBVEFfU0laRV9ZLCB0aGlzLmRyYWdJdGVtLmdldEF0dHJpYnV0ZSh0aGlzLkRBVEFfU0laRV9ZKSk7XG4gICAgICAgIHRoaXMuY29udGFpbmVyLm5hdGl2ZUVsZW1lbnQuYXBwZW5kQ2hpbGQocCk7XG4gICAgICB9XG4gICAgfSk7XG4gIH1cblxuICBwcml2YXRlIHJlbW92ZVBsYWNlaG9sZGVyKCkge1xuICAgIGNvbnN0IHAgPSB0aGlzLmNvbnRhaW5lci5uYXRpdmVFbGVtZW50LnF1ZXJ5U2VsZWN0b3IoJy53aWRnZXQtYmxhbmstcGxhY2Vob2xkZXInKTtcbiAgICBwPy5yZW1vdmUoKTtcbiAgfVxuXG4gIHB1YmxpYyBzdGFydEVkaXQoKSB7XG4gICAgdGhpcy5faXNJbkVkaXRpbmcgPSB0cnVlO1xuICAgIHRoaXMuY2FsY0dyaWRTaXplKCk7XG4gICAgdGhpcy5yZWYubmF0aXZlRWxlbWVudC5jbGFzc0xpc3QuYWRkKCdncmlkLWJhY2tncm91bmQnKTtcbiAgICBjb25zdCBiZyA9IHRoaXMucmVmLm5hdGl2ZUVsZW1lbnQgYXMgSFRNTERpdkVsZW1lbnQ7XG4gICAgYmcuc3R5bGUuc2V0UHJvcGVydHkoJ2JhY2tncm91bmQtcG9zaXRpb24nLCBgJHt0aGlzLnJ0bCA/ICdyaWdodCcgOiAnbGVmdCd9IHRvcGApO1xuICAgIC8vIHRzbGludDpkaXNhYmxlLW5leHQtbGluZTogbWF4LWxpbmUtbGVuZ3RoXG4gICAgY29uc3QgcGF0dGVybiA9IGB1cmwoJ2RhdGE6aW1hZ2Uvc3ZnK3htbDt1dGY4LDxzdmcgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiIHhtbG5zOnhsaW5rPVwiaHR0cDovL3d3dy53My5vcmcvMTk5OS94bGlua1wiIHdpZHRoPVwiJHt0aGlzLnRpbGVTaXplICsgdGhpcy5nYXBTaXplfVwiIGhlaWdodD1cIiR7dGhpcy50aWxlU2l6ZSArIHRoaXMuZ2FwU2l6ZX1cIj4gPHJlY3Qgc3R5bGU9XCJmaWxsOiAlMjNkYWRhZGFcIiB4PVwiJHt0aGlzLnJ0bCA/IHRoaXMuZ2FwU2l6ZSA6IDB9XCIgd2lkdGg9XCIke3RoaXMudGlsZVNpemV9XCIgaGVpZ2h0PVwiJHt0aGlzLnRpbGVTaXplfVwiIHk9XCIwXCI+PC9yZWN0Pjwvc3ZnPicpYDtcbiAgICBiZy5zdHlsZS5zZXRQcm9wZXJ0eSgnYmFja2dyb3VuZC1pbWFnZScsIHBhdHRlcm4pO1xuICAgIC8vXG4gICAgY29uc3Qgd2lkZ2V0cyA9IEFycmF5LmZyb20odGhpcy5yZWYubmF0aXZlRWxlbWVudC5xdWVyeVNlbGVjdG9yQWxsKCcud2lkZ2V0LWhvc3QnKSk7XG4gICAgd2lkZ2V0cy5mb3JFYWNoKCh3KSA9PiB7XG4gICAgICB3LmFkZEV2ZW50TGlzdGVuZXIoJ21vdXNlZG93bicsIHRoaXMuZHJhZ1N0YXJ0LmJpbmQodGhpcyksIGZhbHNlKTtcbiAgICB9KTtcbiAgICB0aGlzLnJlZi5uYXRpdmVFbGVtZW50LmFkZEV2ZW50TGlzdGVuZXIoJ21vdXNlbW92ZScsIHRoaXMuZHJhZy5iaW5kKHRoaXMpLCBmYWxzZSk7XG4gICAgdGhpcy5yZWYubmF0aXZlRWxlbWVudC5hZGRFdmVudExpc3RlbmVyKCdtb3VzZXVwJywgdGhpcy5kcmFnRW5kLmJpbmQodGhpcyksIGZhbHNlKTtcbiAgfVxuXG4gIHB1YmxpYyBmaW5pc2hFZGl0KCkge1xuICAgIHRoaXMucmVmLm5hdGl2ZUVsZW1lbnQuY2xhc3NMaXN0LnJlbW92ZSgnZ3JpZC1iYWNrZ3JvdW5kJyk7XG4gICAgY29uc3QgYmcgPSB0aGlzLnJlZi5uYXRpdmVFbGVtZW50IGFzIEhUTUxEaXZFbGVtZW50O1xuICAgIGJnLnN0eWxlLnJlbW92ZVByb3BlcnR5KCdiYWNrZ3JvdW5kLWltYWdlJyk7XG4gICAgLy9cbiAgICB0aGlzLl9pc0luRWRpdGluZyA9IGZhbHNlO1xuICAgIGNvbnN0IHdpZGdldHMgPSBBcnJheS5mcm9tKHRoaXMucmVmLm5hdGl2ZUVsZW1lbnQucXVlcnlTZWxlY3RvckFsbCgnLndpZGdldC1ob3N0JykpO1xuICAgIHdpZGdldHMuZm9yRWFjaCgodykgPT4ge1xuICAgICAgdy5yZW1vdmVFdmVudExpc3RlbmVyKCdtb3VzZWRvd24nLCB0aGlzLmRyYWdTdGFydC5iaW5kKHRoaXMpLCBmYWxzZSk7XG4gICAgfSk7XG4gICAgdGhpcy5yZWYubmF0aXZlRWxlbWVudC5yZW1vdmVFdmVudExpc3RlbmVyKCdtb3VzZW1vdmUnLCB0aGlzLmRyYWcuYmluZCh0aGlzKSwgZmFsc2UpO1xuICAgIHRoaXMucmVmLm5hdGl2ZUVsZW1lbnQucmVtb3ZlRXZlbnRMaXN0ZW5lcignbW91c2V1cCcsIHRoaXMuZHJhZ0VuZC5iaW5kKHRoaXMpLCBmYWxzZSk7XG4gICAgdGhpcy5zYXZlU3ViamVjdC5uZXh0KCdjb25maWcnKTtcbiAgfVxuXG5cbiAgYWRkV2lkZ2V0KHdpZGdldDogQVhXaWRnZXRDb25maWcpIHtcbiAgICB0aGlzLnpvbmUucnVuT3V0c2lkZUFuZ3VsYXIoKCkgPT4ge1xuICAgICAgdGhpcy5uZXdXaWRnZXQgPSB7XG4gICAgICAgIHVuaXF1ZU5hbWU6IHdpZGdldC51bmlxdWVOYW1lLFxuICAgICAgICBjb21wb25lbnQ6IHdpZGdldC5jb21wb25lbnQsXG4gICAgICAgIHRpdGxlOiB3aWRnZXQudGl0bGUsXG4gICAgICAgIGNvbDogMSxcbiAgICAgICAgcm93OiAxLFxuICAgICAgICBzaXplWDogd2lkZ2V0LnNpemVYLFxuICAgICAgICBzaXplWTogd2lkZ2V0LnNpemVZLFxuICAgICAgICBvcHRpb25zOiB3aWRnZXQub3B0aW9ucyxcbiAgICAgICAgcHJvcHM6IHdpZGdldC5wcm9wc1xuICAgICAgfTtcbiAgICAgIHRoaXMuZGV0ZWN0Rmlyc3RFbXB0eVNsb3QodGhpcy5uZXdXaWRnZXQpO1xuICAgICAgY29uc3QgdyA9IHtcbiAgICAgICAgdW5pcXVlTmFtZTogdGhpcy5uZXdXaWRnZXQudW5pcXVlTmFtZSxcbiAgICAgICAgY29tcG9uZW50OiB0aGlzLm5ld1dpZGdldC5jb21wb25lbnQsXG4gICAgICAgIHRpdGxlOiB0aGlzLm5ld1dpZGdldC50aXRsZSxcbiAgICAgICAgb3B0aW9uczogdGhpcy5uZXdXaWRnZXQub3B0aW9ucyxcbiAgICAgICAgcHJvcHM6IHRoaXMubmV3V2lkZ2V0LnByb3BzLFxuICAgICAgICBzaXplWDogdGhpcy5uZXdXaWRnZXQuc2l6ZVgsXG4gICAgICAgIHNpemVZOiB0aGlzLm5ld1dpZGdldC5zaXplWSxcbiAgICAgICAgY29sOiB0aGlzLm5ld1dpZGdldC5jb2wsXG4gICAgICAgIHJvdzogdGhpcy5uZXdXaWRnZXQucm93XG4gICAgICB9O1xuICAgICAgdGhpcy53aWRnZXRzLnB1c2godyk7XG4gICAgICB0aGlzLm5ld1dpZGdldCA9IG51bGw7XG4gICAgICB0aGlzLnpvbmUucnVuKCgpID0+IHtcbiAgICAgICAgdGhpcy5jZHIuZGV0ZWN0Q2hhbmdlcygpO1xuICAgICAgICB0aGlzLmNhbGNHcmlkU2l6ZSgpO1xuICAgICAgICB0aGlzLmVtaXRDb25maWdDaGFuZ2VkKCdhZGQnKTtcbiAgICAgICAgc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICAgICAgd1snX19tZXRhX18nXS5pbnN0YW5jZS5lbGVtZW50LmFkZEV2ZW50TGlzdGVuZXIoJ21vdXNlZG93bicsIHRoaXMuZHJhZ1N0YXJ0LmJpbmQodGhpcyksIGZhbHNlKTtcbiAgICAgICAgfSwgMTAwMCk7XG4gICAgICB9KTtcbiAgICB9KTtcbiAgfVxuXG5cbiAgaGFuZGxlT25SZW1vdmUodzogQVhXaWRnZXRIb3N0Q29tcG9uZW50KSB7XG4gICAgdy5lbGVtZW50LmNsYXNzTGlzdC5hZGQoJ2FuaW1hdGVfX2FuaW1hdGVkJywgJ2FuaW1hdGVfX3pvb21PdXQnKTtcbiAgICB3LmVsZW1lbnQuYWRkRXZlbnRMaXN0ZW5lcignYW5pbWF0aW9uZW5kJywgKCkgPT4ge1xuICAgICAgdGhpcy53aWRnZXRzID0gdGhpcy53aWRnZXRzLmZpbHRlcigoYykgPT4gKGMgYXMgYW55KS5fX21ldGFfXy5pZCAhPT0gKHcuY29uZmlnIGFzIGFueSkuX19tZXRhX18uaWQpO1xuICAgICAgdGhpcy5jZHIuZGV0ZWN0Q2hhbmdlcygpO1xuICAgICAgdGhpcy5jYWxjR3JpZFNpemUoKTtcbiAgICAgIHRoaXMuZW1pdENvbmZpZ0NoYW5nZWQoJ3JlbW92ZScpO1xuICAgIH0pO1xuICB9XG5cbiAgaGFuZGxlT25TYXZlKGU6IEFYV2lkZ2V0Q29uZmlnU2F2ZWRFdmVudCkge1xuICAgIHRoaXMub25XaWRnZXRTYXZlLmVtaXQoZSk7XG4gIH1cblxuICB0cmFja0J5Rm4oaW5kZXgsIGl0ZW0pIHtcbiAgICBpZiAoIWl0ZW1bJ19fbWV0YV9fJ10/LmlkKSB7XG4gICAgICBpdGVtWydfX21ldGFfXyddID0ge307XG4gICAgICBpdGVtWydfX21ldGFfXyddLmlkID0gQVhIdG1sVXRpbC5nZXRVSUQoKTtcbiAgICB9XG4gICAgcmV0dXJuIGl0ZW1bJ19fbWV0YV9fJ10/LmlkO1xuICB9XG5cblxuICBsb2FkKHdpZGdldHM6IHN0cmluZyB8IEFYV2lkZ2V0Q29uZmlnW10pOiBQcm9taXNlPHZvaWQ+IHtcbiAgICB0aGlzLmNsZWFyKCk7XG4gICAgcmV0dXJuIG5ldyBQcm9taXNlPHZvaWQ+KChyZXNvbHZlLCByZWplY3QpID0+IHtcbiAgICAgIGlmICh3aWRnZXRzKSB7XG4gICAgICAgIGNvbnN0IGxvYWRlZFdpZGdldHM6IEFYV2lkZ2V0Q29uZmlnW10gPSBbXTtcbiAgICAgICAgaWYgKHR5cGVvZiB3aWRnZXRzID09PSAnc3RyaW5nJykge1xuICAgICAgICAgIHRyeSB7XG4gICAgICAgICAgICBsb2FkZWRXaWRnZXRzLnB1c2goLi4uSlNPTi5wYXJzZSh3aWRnZXRzKSk7XG4gICAgICAgICAgICB0aGlzLmVtaXRDb25maWdDaGFuZ2VkKCdsb2FkJyk7XG4gICAgICAgICAgfSBjYXRjaCAoZXJyb3IpIHtcbiAgICAgICAgICAgIHJlamVjdCgnSW52YWxpZCB3aWRnZXQganNvbiBkYXRhIScpO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICBlbHNlIHtcbiAgICAgICAgICBsb2FkZWRXaWRnZXRzLnB1c2goLi4ud2lkZ2V0cyk7XG4gICAgICAgICAgdGhpcy5lbWl0Q29uZmlnQ2hhbmdlZCgnbG9hZCcpO1xuICAgICAgICB9XG4gICAgICAgIGxldCBpbnRlcnZhbElkOiBudW1iZXIgPSAtMTtcbiAgICAgICAgY29uc3QgbG9hZEZ1bmMgPSAoKSA9PiB7XG5cbiAgICAgICAgICBpZiAodGhpcy5nYWxsZXJ5SXRlbXMgJiYgdGhpcy5nYWxsZXJ5SXRlbXMubGVuZ3RoID4gMCkge1xuICAgICAgICAgICAgbG9hZGVkV2lkZ2V0cy5mb3JFYWNoKHcgPT4ge1xuICAgICAgICAgICAgICBjb25zdCBnaXRlbSA9IHRoaXMuZ2FsbGVyeUl0ZW1zLmZpbmQoYyA9PiBjLnVuaXF1ZU5hbWUgPT09IHcudW5pcXVlTmFtZSk7XG4gICAgICAgICAgICAgIGlmIChnaXRlbSkge1xuICAgICAgICAgICAgICAgIHcuY29tcG9uZW50ID0gZ2l0ZW0uY29tcG9uZW50O1xuICAgICAgICAgICAgICAgIGlmIChnaXRlbS5wcm9wcykge1xuICAgICAgICAgICAgICAgICAgdy5wcm9wcyA9IEpTT04ucGFyc2UoSlNPTi5zdHJpbmdpZnkoZ2l0ZW0ucHJvcHMpKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgdGhpcy53aWRnZXRzLnB1c2goLi4ubG9hZGVkV2lkZ2V0cyk7XG4gICAgICAgICAgICB0aGlzLmVtaXRDb25maWdDaGFuZ2VkKCdsb2FkJyk7XG4gICAgICAgICAgICB3aW5kb3cuY2xlYXJJbnRlcnZhbChpbnRlcnZhbElkKTtcbiAgICAgICAgICAgIHRoaXMuY2RyLmRldGVjdENoYW5nZXMoKTtcbiAgICAgICAgICAgIHJlc29sdmUoKTtcbiAgICAgICAgICB9XG4gICAgICAgIH07XG4gICAgICAgIGludGVydmFsSWQgPSB3aW5kb3cuc2V0SW50ZXJ2YWwobG9hZEZ1bmMsIDIwMCk7XG4gICAgICB9XG4gICAgICBlbHNlIHtcbiAgICAgICAgcmVzb2x2ZSgpO1xuICAgICAgfVxuICAgIH0pO1xuICB9XG5cbiAgY2xlYXIoKSB7XG4gICAgaWYgKHRoaXMud2lkZ2V0cy5sZW5ndGgpIHtcbiAgICAgIHRoaXMud2lkZ2V0cyA9IFtdO1xuICAgICAgdGhpcy5jZHIuZGV0ZWN0Q2hhbmdlcygpO1xuICAgICAgdGhpcy5zYXZlU3ViamVjdC5uZXh0KCdjbGVhcicpO1xuICAgIH1cbiAgfVxuXG4gIHNhdmUoKTogUHJvbWlzZTxzdHJpbmc+IHtcbiAgICBjb25zdCBvYmogPSB0aGlzLndpZGdldHMubWFwKGMgPT4gKHtcbiAgICAgIHVuaXF1ZU5hbWU6IGMudW5pcXVlTmFtZSxcbiAgICAgIGNvbXBvbmVudDogYy5jb21wb25lbnQsXG4gICAgICB0aXRsZTogYy50aXRsZSxcbiAgICAgIHNpemVYOiBjLnNpemVYLFxuICAgICAgc2l6ZVk6IGMuc2l6ZVksXG4gICAgICBjb2w6IGMuY29sLFxuICAgICAgcm93OiBjLnJvdyxcbiAgICAgIG9wdGlvbnM6IGMub3B0aW9ucyxcbiAgICAgIHByb3BzOiBjLnByb3BzXG4gICAgfSkpO1xuICAgIHJldHVybiBQcm9taXNlLnJlc29sdmUoSlNPTi5zdHJpbmdpZnkob2JqKSk7XG4gIH1cblxuICByZWZyZXNoKCkge1xuICAgIHRoaXMud2lkZ2V0SG9zdHMuZm9yRWFjaChob3N0ID0+IHtcbiAgICAgIGhvc3Qud2lkZ2V0LnJlZnJlc2goKTtcbiAgICB9KTtcbiAgfVxuXG4gIGhhbmRsZU9uQ29uZmlnQ2hhbmdlZChlOiBBWFdpZGdldENvbmZpZ0NoYW5nZWQpIHtcbiAgICB0aGlzLmNkci5kZXRlY3RDaGFuZ2VzKCk7XG4gICAgdGhpcy5zYXZlU3ViamVjdC5uZXh0KCdjb25maWcnKTtcbiAgfVxuXG4gIGhhbmRsZU9uUmVzaXplZENoYW5nZWQoZTogQVhXaWRnZXRDb25maWdDaGFuZ2VkKSB7XG4gICAgdGhpcy5kZXRlY3RGaXJzdEVtcHR5U2xvdChlLmNvbmZpZyk7XG4gICAgdGhpcy5jZHIuZGV0ZWN0Q2hhbmdlcygpO1xuICAgIHRoaXMuc2F2ZVN1YmplY3QubmV4dCgnY29uZmlnJyk7XG4gIH1cblxuICBwcml2YXRlIGVtaXRDb25maWdDaGFuZ2VkKG1vZGU6ICdjbGVhcicgfCAnYWRkJyB8ICdyZW1vdmUnIHwgJ2xvYWQnIHwgJ2NvbmZpZycpIHtcbiAgICB0aGlzLm9uQ29uZmlnQ2hhbmdlZC5lbWl0KHtcbiAgICAgIGNvbXBvbmVudDogdGhpcyxcbiAgICAgIG1vZGU6IG1vZGVcbiAgICB9KTtcbiAgfVxufVxuIiwiPGRpdiBjbGFzcz1cIndpZGdldHMtY29udGFpbmVyXCIgW2NsYXNzLnJ0bF09XCJydGxcIiAjY29udGFpbmVyPlxuICAgIDxheC13aWRnZXQtaG9zdCAqbmdGb3I9XCJsZXQgdyBvZiB3aWRnZXRzO3RyYWNrQnk6IHRyYWNrQnlGblwiICBbY29uZmlnXT0ndycgW3NpemVYXT1cIncuc2l6ZVhcIiBbcmVhZG9ubHldPVwicmVhZG9ubHkgfHwgdy5yZWFkb25seVwiXG4gICAgICAgIFtzaXplWV09XCJ3LnNpemVZXCIgW2NvbF09XCJ3LmNvbFwiIFtyb3ddPVwidy5yb3dcIiAob25SZW1vdmUpPVwiaGFuZGxlT25SZW1vdmUoJGV2ZW50KVwiIChvblNhdmUpPVwiaGFuZGxlT25TYXZlKCRldmVudClcIlxuICAgICAgICAob25Db25maWdDaGFuZ2VkKT1cImhhbmRsZU9uQ29uZmlnQ2hhbmdlZCgkZXZlbnQpXCIgKG9uUmVzaXplZCk9XCJoYW5kbGVPblJlc2l6ZWRDaGFuZ2VkKCRldmVudClcIlxuICAgICAgICBbcHJvdmlkZVZhbHVlXT1cInByb3ZpZGVWYWx1ZVwiPlxuICAgIDwvYXgtd2lkZ2V0LWhvc3Q+XG48L2Rpdj5cbiJdfQ==","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":["i3","i1","i2.AXWidgetHostComponent"],"mappings":"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"}
|