@acorex/layout 3.0.65 → 4.1.0
Sign up to get free protection for your applications and to get access to all the features.
- package/acorex-layout.d.ts +1 -2
- package/esm2020/acorex-layout.mjs +5 -0
- package/esm2020/lib/widget-board/editors/widget-size-editor/widget-size.editor.mjs +46 -0
- package/esm2020/lib/widget-board/editors/widget-size-editor/widget-size.module.mjs +21 -0
- package/esm2020/lib/widget-board/widget-board.component.mjs +441 -0
- package/esm2020/lib/widget-board/widget-board.module.mjs +111 -0
- package/esm2020/lib/widget-board/widget-config.component.mjs +82 -0
- package/esm2020/lib/widget-board/widget-host.component.mjs +290 -0
- package/esm2020/lib/widget-board/widget-save.component.mjs +79 -0
- package/esm2020/lib/widget-board/widget.class.mjs +127 -0
- package/esm2020/public-api.mjs +7 -0
- package/fesm2015/acorex-layout.mjs +1166 -0
- package/fesm2015/acorex-layout.mjs.map +1 -0
- package/fesm2020/acorex-layout.mjs +1159 -0
- package/fesm2020/acorex-layout.mjs.map +1 -0
- package/lib/widget-board/editors/widget-size-editor/widget-size.editor.d.ts +3 -0
- package/lib/widget-board/editors/widget-size-editor/widget-size.module.d.ts +8 -0
- package/lib/widget-board/widget-board.component.d.ts +3 -0
- package/lib/widget-board/widget-board.module.d.ts +12 -0
- package/lib/widget-board/widget-config.component.d.ts +3 -0
- package/lib/widget-board/widget-host.component.d.ts +3 -0
- package/lib/widget-board/widget-save.component.d.ts +3 -0
- package/lib/widget-board/widget.class.d.ts +3 -0
- package/package.json +23 -13
- package/acorex-layout.metadata.json +0 -1
- package/bundles/acorex-layout.umd.js +0 -1487
- package/bundles/acorex-layout.umd.js.map +0 -1
- package/bundles/acorex-layout.umd.min.js +0 -16
- package/bundles/acorex-layout.umd.min.js.map +0 -1
- package/esm2015/acorex-layout.js +0 -7
- package/esm2015/lib/widget-board/editors/widget-size-editor/widget-size.editor.js +0 -49
- package/esm2015/lib/widget-board/editors/widget-size-editor/widget-size.module.js +0 -19
- package/esm2015/lib/widget-board/widget-board.component.js +0 -468
- package/esm2015/lib/widget-board/widget-board.module.js +0 -67
- package/esm2015/lib/widget-board/widget-config.component.js +0 -86
- package/esm2015/lib/widget-board/widget-host.component.js +0 -323
- package/esm2015/lib/widget-board/widget-save.component.js +0 -79
- package/esm2015/lib/widget-board/widget.class.js +0 -123
- package/esm2015/public-api.js +0 -7
- package/esm5/acorex-layout.js +0 -7
- package/esm5/lib/widget-board/editors/widget-size-editor/widget-size.editor.js +0 -52
- package/esm5/lib/widget-board/editors/widget-size-editor/widget-size.module.js +0 -22
- package/esm5/lib/widget-board/widget-board.component.js +0 -494
- package/esm5/lib/widget-board/widget-board.module.js +0 -68
- package/esm5/lib/widget-board/widget-config.component.js +0 -90
- package/esm5/lib/widget-board/widget-host.component.js +0 -359
- package/esm5/lib/widget-board/widget-save.component.js +0 -83
- package/esm5/lib/widget-board/widget.class.js +0 -134
- package/esm5/public-api.js +0 -7
- package/fesm2015/acorex-layout.js +0 -1177
- package/fesm2015/acorex-layout.js.map +0 -1
- package/fesm5/acorex-layout.js +0 -1264
- package/fesm5/acorex-layout.js.map +0 -1
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"acorex-layout.mjs","sources":["../../../../projects/acorex/layout/src/lib/widget-board/widget.class.ts","../../../../projects/acorex/layout/src/lib/widget-board/widget-config.component.ts","../../../../projects/acorex/layout/src/lib/widget-board/widget-config.component.html","../../../../projects/acorex/layout/src/lib/widget-board/widget-save.component.ts","../../../../projects/acorex/layout/src/lib/widget-board/widget-save.component.html","../../../../projects/acorex/layout/src/lib/widget-board/widget-host.component.ts","../../../../projects/acorex/layout/src/lib/widget-board/widget-host.component.html","../../../../projects/acorex/layout/src/lib/widget-board/widget-board.component.ts","../../../../projects/acorex/layout/src/lib/widget-board/widget-board.component.html","../../../../projects/acorex/layout/src/lib/widget-board/editors/widget-size-editor/widget-size.editor.ts","../../../../projects/acorex/layout/src/lib/widget-board/editors/widget-size-editor/widget-size.editor.html","../../../../projects/acorex/layout/src/lib/widget-board/widget-board.module.ts","../../../../projects/acorex/layout/src/lib/widget-board/editors/widget-size-editor/widget-size.module.ts","../../../../projects/acorex/layout/src/acorex-layout.ts"],"sourcesContent":["import { EventEmitter, Injectable } from '@angular/core';\r\nimport { AXValueEvent, AXBaseEvent, propertyEditor, AXDataEvent } from '@acorex/components';\r\nimport { AXHtmlUtil, AXTranslator } from '@acorex/core';\r\n\r\nexport interface AXWidgetConfig {\r\n uniqueName: string;\r\n component: any;\r\n title: string;\r\n sizeX: number;\r\n sizeY: number;\r\n col?: number;\r\n row?: number;\r\n options?: any;\r\n props?: any;\r\n}\r\n\r\nexport interface AXWidgetConfigChanged extends AXBaseEvent {\r\n config: AXWidgetConfig;\r\n}\r\n\r\n\r\n\r\nexport interface AXWidgetBoardConfigChanged extends AXBaseEvent {\r\n\r\n}\r\n\r\nexport interface AXWidgetConfigSavedEvent extends AXDataEvent<AXWidgetSaveAsData> {\r\n\r\n}\r\n\r\n\r\nexport interface AXWidgetSaveAsData {\r\n title?: string;\r\n description?: string;\r\n icon?: string;\r\n group?: string;\r\n //\r\n uniqueName: string;\r\n component: any;\r\n options?: any;\r\n props?: any;\r\n}\r\n\r\n// @dynamic\r\n// TODO: Add Angular decorator.\r\n@Injectable()\r\nexport abstract class AXWidgetComponent {\r\n\r\n readonly uid: string = AXHtmlUtil.getUID();\r\n provideValue: (e: any) => any;\r\n\r\n onBusyChanged: EventEmitter<AXValueEvent<boolean>> = new EventEmitter<AXValueEvent<boolean>>();\r\n\r\n private _isBusy: boolean = true;\r\n public get isBusy(): boolean {\r\n return this._isBusy;\r\n }\r\n public set isBusy(v: boolean) {\r\n if (v !== this._isBusy) {\r\n const eventData: AXValueEvent<boolean> = {\r\n component: this,\r\n oldValue: this._isBusy,\r\n value: v\r\n };\r\n this._isBusy = v;\r\n this.onBusyChanged.emit(eventData);\r\n }\r\n }\r\n\r\n @propertyEditor({\r\n editorClass: 'ax/editors/widget-size',\r\n title: 'common.size',\r\n visible: false,\r\n order: -99,\r\n })\r\n widgetSize: number[];\r\n\r\n @propertyEditor({\r\n editorClass: 'ax/editors/select',\r\n title: 'common.refresh-rate',\r\n visible: true,\r\n order: -98,\r\n editorOptions: {\r\n items: () => {\r\n return [1, 2, 3, 5, 10, 20, 30, 60].map(c => ({\r\n id: 60000 * c,\r\n text: AXTranslator.get('dateTime.duration.format_minute').replace('{0}', c.toString())\r\n }));\r\n },\r\n allowNull: false,\r\n allowSearch: false,\r\n selectionDataMode: 'value',\r\n selectionMode: 'single',\r\n valueField: 'id',\r\n }\r\n })\r\n refreshRate: any = [{\r\n id: 60000 * 5,\r\n text: AXTranslator.get('dateTime.duration.format_minute').replace('{0}', '5')\r\n }];\r\n\r\n // ???\r\n getRefreshRate() {\r\n return Array.isArray(this.refreshRate) && this.refreshRate.length ? this.refreshRate[0].id : this.refreshRate;\r\n }\r\n\r\n private intervalId: number;\r\n\r\n constructor() {\r\n this.onConfiguredChanged.subscribe(() => {\r\n if (this.isConfigured === true && this.getRefreshRate()) {\r\n this.restartRefreshTimer();\r\n }\r\n else {\r\n this.stopRefreshTimer();\r\n }\r\n });\r\n }\r\n\r\n\r\n private startRefreshTimer() {\r\n this.intervalId = window.setInterval(this.refresh.bind(this), this.getRefreshRate());\r\n }\r\n\r\n private stopRefreshTimer() {\r\n window.clearInterval(this.intervalId);\r\n }\r\n\r\n private restartRefreshTimer() {\r\n this.stopRefreshTimer();\r\n this.startRefreshTimer();\r\n }\r\n\r\n ngOnDestroy() {\r\n this.stopRefreshTimer();\r\n }\r\n\r\n public redraw() {\r\n\r\n }\r\n\r\n public refresh() {\r\n this.restartRefreshTimer();\r\n }\r\n\r\n onConfiguredChanged: EventEmitter<void> = new EventEmitter<void>();\r\n\r\n get isConfigured(): boolean {\r\n return true;\r\n }\r\n\r\n public setValue(name: string, value?: any) {\r\n this[name] = value;\r\n this.onConfiguredChanged.emit();\r\n }\r\n\r\n public getValue(name: string): Promise<any> {\r\n const val = this[name];\r\n const config = this['__meta__'].config;\r\n const runtime = config.props[name]?.runtime;\r\n if (runtime && this.provideValue) {\r\n const res = this.provideValue({\r\n name,\r\n value: val,\r\n uniqueName: config.uniqueName,\r\n options: config.options,\r\n });\r\n if (this.provideValue instanceof Promise) {\r\n return res;\r\n }\r\n else {\r\n return Promise.resolve(res);\r\n }\r\n }\r\n return Promise.resolve(val);\r\n }\r\n\r\n}","import { Component, ViewEncapsulation, ChangeDetectionStrategy, ChangeDetectorRef, ViewChild } from '@angular/core';\r\nimport { AXPropertyConfig, AXBasePopupPageComponent, AXMenuItemClickEvent, AXProperyEditorValueChangeEvent, AXValidationFormComponent } from '@acorex/components';\r\nimport { AXButtonItem, AXTranslator } from '@acorex/core';\r\nimport { AXWidgetComponent } from './widget.class';\r\n\r\n\r\n@Component({\r\n templateUrl: './widget-config.component.html',\r\n encapsulation: ViewEncapsulation.None,\r\n changeDetection: ChangeDetectionStrategy.OnPush\r\n})\r\n\r\nexport class AXWidgetConfigComponent extends AXBasePopupPageComponent {\r\n\r\n @ViewChild(AXValidationFormComponent) form: AXValidationFormComponent;\r\n\r\n constructor(private cdr: ChangeDetectorRef) {\r\n super();\r\n }\r\n\r\n\r\n widget: AXWidgetComponent;\r\n props: AXPropertyConfig[] = [];\r\n displayProps: AXPropertyConfig[] = [];\r\n\r\n\r\n changes: AXPropertyConfig[] = [];\r\n\r\n context: any = {};\r\n\r\n\r\n getFooterButtons(): AXButtonItem[] {\r\n return [\r\n {\r\n name: 'okay',\r\n submitBehavior: true,\r\n text: AXTranslator.get('common.confirm'),\r\n style: 'success'\r\n },\r\n {\r\n name: 'cancel',\r\n cancelBehavior: true,\r\n text: AXTranslator.get('common.cancel'),\r\n style: 'danger blank'\r\n }\r\n ];\r\n }\r\n\r\n\r\n\r\n\r\n\r\n onFooterButtonClick(e: AXMenuItemClickEvent) {\r\n if (e.name === 'cancel') {\r\n this.close();\r\n }\r\n if (e.name === 'okay') {\r\n this.form.validate().then(c => {\r\n if (c.result) {\r\n this.close(this.changes);\r\n }\r\n });\r\n }\r\n }\r\n\r\n handleValueChange(e: AXProperyEditorValueChangeEvent) {\r\n const prop = this.changes.find(c => c.property.name === e.property.name);\r\n if (prop) {\r\n prop.value = e.value;\r\n }\r\n else {\r\n this.changes.push({ property: e.property, value: e.value });\r\n }\r\n this.updateContext();\r\n }\r\n\r\n ngOnInit() {\r\n this.displayProps = this.props.filter(c => c.property.visible !== false).sort((a, b) => a.property.order - b.property.order);\r\n this.updateContext();\r\n }\r\n\r\n\r\n private updateContext() {\r\n const ctx = {};\r\n this.props.forEach(p => {\r\n ctx[p.property.name] = p.value;\r\n });\r\n this.changes.forEach(p => {\r\n ctx[p.property.name] = p.value;\r\n });\r\n this.context = ctx;\r\n }\r\n\r\n\r\n identify(index, item: AXPropertyConfig) {\r\n return item.property.name;\r\n }\r\n\r\n}","<ax-page>\r\n <ax-page-content>\r\n <div class=\"container\">\r\n <ax-validation-form #form>\r\n <div class=\"row\" *ngFor=\"let p of displayProps; trackBy: identify\">\r\n <div class=\"col-12\">\r\n <ax-label>{{p.property.title | trans}}</ax-label>\r\n <ng-container ax-property-editor-renderer [property]=\"p\" [context]=\"context\" [host]=\"widget\" [validationForm]=\"form\"\r\n (onValueChange)=\"handleValueChange($event)\">\r\n </ng-container>\r\n </div>\r\n </div>\r\n </ax-validation-form>\r\n </div>\r\n </ax-page-content>\r\n</ax-page>","import {\r\n Component,\r\n ViewEncapsulation,\r\n ChangeDetectionStrategy,\r\n\r\n} from '@angular/core';\r\nimport { AXWidgetConfig, AXWidgetSaveAsData } from './widget.class';\r\nimport { AXButtonItem, AXHtmlUtil, AXObjectUtil, AXTranslator } from '@acorex/core';\r\nimport { AXPropertyConfig, AXMenuItemClickEvent, AXBasePopupPageComponent } from '@acorex/components';\r\n\r\n\r\n\r\n@Component({\r\n templateUrl: \"./widget-save.component.html\",\r\n encapsulation: ViewEncapsulation.None,\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n})\r\nexport class AXWidgetSaveComponent extends AXBasePopupPageComponent {\r\n config: AXWidgetConfig;\r\n props: AXPropertyConfig[] = [];\r\n displayProps: { name: string, title: string, allow: boolean }[];\r\n\r\n data: AXWidgetSaveAsData;\r\n\r\n getFooterButtons(): AXButtonItem[] {\r\n return [\r\n {\r\n name: 'okay',\r\n submitBehavior: true,\r\n text: AXTranslator.get('common.confirm'),\r\n style: 'ax success'\r\n },\r\n {\r\n name: 'cancel',\r\n cancelBehavior: true,\r\n text: AXTranslator.get('common.cancel'),\r\n style: 'ax light'\r\n }\r\n ];\r\n }\r\n\r\n ngOnInit() {\r\n const titleProp = this.props.find(c => c.property.name === 'title' || c.property.name === 'name');\r\n const title = titleProp?.value || this.config.title;\r\n const pp: any = {};\r\n this.props?.forEach(c => {\r\n pp[c.property.name] = c.property;\r\n });\r\n this.data = {\r\n component: this.config.component,\r\n title,\r\n uniqueName: `${this.config.uniqueName}-${AXHtmlUtil.getUID()}`,\r\n options: AXObjectUtil.deepJSONClone(this.config.options),\r\n props: AXObjectUtil.deepJSONClone(pp)\r\n };\r\n this.displayProps = this.props\r\n .filter(c => c.property.visible !== false)\r\n .sort((a, b) => a.property.order - b.property.order)\r\n .map(c => ({\r\n name: c.property.name,\r\n title: c.property.title,\r\n allow: true\r\n }));\r\n }\r\n\r\n\r\n\r\n onFooterButtonClick(e: AXMenuItemClickEvent) {\r\n if (e.name === 'cancel') {\r\n this.close();\r\n }\r\n if (e.name === 'okay') {\r\n this.props.forEach(p => {\r\n const pp = this.displayProps.find(c => c.name === p.property.name);\r\n if (pp == null || !pp.allow) {\r\n let ppp = this.data.props[p.property.name];\r\n if (ppp) {\r\n ppp.visible = false;\r\n }\r\n else {\r\n ppp = { visible: false };\r\n }\r\n }\r\n });\r\n this.close(this.data);\r\n }\r\n }\r\n}","<ax-page>\r\n <ax-page-content>\r\n <div class=\"container\">\r\n <div class=\"row\">\r\n <div class=\"col-12\">\r\n <ax-form-group>\r\n <ax-label>{{'common.title' | trans}}</ax-label>\r\n <ax-text-box [(value)]=\"data.title\"></ax-text-box>\r\n </ax-form-group>\r\n </div>\r\n </div>\r\n <div class=\"row\">\r\n <div class=\"col-12\">\r\n <ax-form-group>\r\n <ax-label>{{'common.description' | trans}}</ax-label>\r\n <ax-text-area [(value)]=\"data.description\"></ax-text-area>\r\n </ax-form-group>\r\n </div>\r\n </div>\r\n <!-- <div class=\"row\">\r\n <div class=\"col-12\">\r\n <ax-form-group>\r\n <ax-label>{{'common.uniquename' | trans}}</ax-label>\r\n <ax-text-box></ax-text-box>\r\n </ax-form-group>\r\n </div>\r\n </div> -->\r\n <div class=\"row\" style=\"margin-block-end: var(--ax-size-md);margin-block-start: var(--ax-size-md);\">\r\n <div class=\"col-12\">\r\n <ax-fieldset caption=\"{{'widget-board.configurable-props' | trans}}\">\r\n <div class=\"row\" *ngFor=\"let prop of displayProps\">\r\n <div class=\"col-12\" style=\"margin-block-end: var(--ax-size-sm)\">\r\n <ax-check-box [(value)]=\"prop.allow\" label=\"{{ prop.title | trans }}\">\r\n\r\n </ax-check-box>\r\n </div>\r\n </div>\r\n </ax-fieldset>\r\n </div>\r\n </div>\r\n </div>\r\n </ax-page-content>\r\n</ax-page>","import {\r\n Component,\r\n ViewEncapsulation, Input,\r\n ElementRef, HostBinding, ComponentFactoryResolver, ViewChild,\r\n ViewContainerRef, Output, EventEmitter, ChangeDetectionStrategy,\r\n ChangeDetectorRef, ComponentRef\r\n} from '@angular/core';\r\nimport { AXWidgetConfig, AXWidgetComponent, AXWidgetConfigChanged, AXWidgetConfigSavedEvent } from './widget.class';\r\nimport { AXObjectUtil, AXRenderService } from '@acorex/core';\r\nimport { AXPopupService, AXPropertyDecorators, AXPropertyDecorator, AXLoadingService } from '@acorex/components';\r\nimport { AXWidgetConfigComponent } from './widget-config.component';\r\nimport { AXMenuItem } from '@acorex/core';\r\nimport { AXTranslator } from '@acorex/core';\r\nimport { AXWidgetSaveComponent } from './widget-save.component';\r\n\r\n\r\n\r\n\r\n\r\n@Component({\r\n selector: 'ax-widget-host',\r\n templateUrl: \"./widget-host.component.html\",\r\n host: { class: 'ax widget-host', tabindex: '0' },\r\n encapsulation: ViewEncapsulation.None,\r\n changeDetection: ChangeDetectionStrategy.OnPush\r\n})\r\n\r\nexport class AXWidgetHostComponent {\r\n\r\n private _widget: AXWidgetComponent;\r\n public get widget(): AXWidgetComponent {\r\n return this._widget;\r\n }\r\n\r\n _hasProps: boolean = false;\r\n\r\n\r\n _hasMenu: boolean = false;\r\n\r\n @Input()\r\n provideValue: (e: any) => any;\r\n\r\n\r\n get element(): HTMLDivElement {\r\n return this.ref.nativeElement;\r\n }\r\n\r\n\r\n configMenuItem: AXMenuItem[] = [\r\n {\r\n icon: 'far fa-ellipsis-h',\r\n items: []\r\n }\r\n ];\r\n\r\n\r\n @Output()\r\n onRemove: EventEmitter<AXWidgetHostComponent> = new EventEmitter<AXWidgetHostComponent>();\r\n\r\n @Output()\r\n onConfigChanged: EventEmitter<AXWidgetConfigChanged> = new EventEmitter<AXWidgetConfigChanged>();\r\n\r\n\r\n @Output()\r\n onResized: EventEmitter<AXWidgetConfigChanged> = new EventEmitter<AXWidgetConfigChanged>();\r\n\r\n @Output()\r\n onSave: EventEmitter<AXWidgetConfigSavedEvent> = new EventEmitter<AXWidgetConfigSavedEvent>();\r\n\r\n @Input()\r\n config: AXWidgetConfig;\r\n\r\n @ViewChild('vc', { read: ViewContainerRef })\r\n vc: ViewContainerRef;\r\n\r\n private componentRef: ComponentRef<any>;\r\n //private isLoading: boolean = true;\r\n\r\n // get isBusy() {\r\n // return this._widget?.isBusy || this.isLoading;\r\n // }\r\n\r\n\r\n private _loadingId: number;\r\n\r\n private _isLoading: boolean = false;\r\n public get isLoading(): boolean {\r\n return this._isLoading;\r\n }\r\n public set isLoading(v: boolean) {\r\n this._isLoading = v;\r\n if (this._loadingId && !v) {\r\n this.loadingService.hide(this._loadingId);\r\n this._loadingId = null;\r\n }\r\n if (v) {\r\n this._loadingId = this.loadingService.show(this.ref.nativeElement);\r\n }\r\n }\r\n\r\n\r\n get isConfigured(): boolean {\r\n return this._widget?.isConfigured || false;\r\n }\r\n\r\n\r\n constructor(\r\n private ref: ElementRef<HTMLDivElement>,\r\n private componentFactoryResolver: ComponentFactoryResolver,\r\n private rendererService: AXRenderService,\r\n private cdr: ChangeDetectorRef,\r\n private popup: AXPopupService,\r\n private loadingService: AXLoadingService\r\n\r\n ) {\r\n\r\n }\r\n\r\n\r\n ngOnInit() {\r\n this.isLoading = true;\r\n }\r\n\r\n\r\n async ngAfterViewInit() {\r\n let component: any;\r\n if (typeof this.config.component === 'string') {\r\n const route = await this.rendererService.findLoadedComponentByRoute(this.config.component, 20);\r\n component = route?.component;\r\n }\r\n else if (typeof this.config.component === 'function') {\r\n component = this.config.component;\r\n }\r\n if (component == null) {\r\n console.error(`Invalid Widget Component!`, this.config);\r\n this.onRemove.emit(this);\r\n return;\r\n }\r\n\r\n const widgetFactory = this.componentFactoryResolver.resolveComponentFactory(component);\r\n this.componentRef = this.vc.createComponent(widgetFactory);\r\n this._widget = this.componentRef.instance as AXWidgetComponent;\r\n this._widget.provideValue = this.provideValue;\r\n if (this._widget.onBusyChanged) {\r\n this._widget.onBusyChanged.subscribe((d) => {\r\n if (!this._widget.widgetSize) {\r\n this._widget.setValue('widgetSize', [this.sizeX, this.sizeY]);\r\n }\r\n else {\r\n this.setSizeFromOptions();\r\n }\r\n this.isLoading = d.value;\r\n this.cdr.detectChanges();\r\n });\r\n }\r\n if (this._widget.onConfiguredChanged) {\r\n this._widget.onConfiguredChanged.subscribe(() => {\r\n this.setSizeFromOptions();\r\n });\r\n }\r\n //\r\n if (this.config.options) {\r\n Object.assign(this._widget, this.config.options);\r\n }\r\n this._hasProps = AXPropertyDecorators.getProperties(this._widget).length > 0;\r\n\r\n this.isLoading = false;\r\n this.config['__meta__'].instance = this;\r\n this._widget['__meta__'] = {};\r\n this._widget['__meta__'].config = this.config;\r\n //\r\n this.configMenuItem[0].items.push({\r\n name: 'refresh',\r\n icon: 'far fa-undo',\r\n text: AXTranslator.get('common.refresh'),\r\n onClick: () => {\r\n this?.widget?.refresh();\r\n }\r\n });\r\n //\r\n if (this._hasProps) {\r\n this.configMenuItem[0].items.push({\r\n name: 'configs',\r\n icon: 'far fa-cogs',\r\n text: AXTranslator.get('common.configs'),\r\n onClick: () => {\r\n this.openConfigDialog();\r\n }\r\n });\r\n }\r\n this.configMenuItem[0].items.push({\r\n name: 'save',\r\n icon: 'far fa-save',\r\n text: AXTranslator.get('common.save-as'),\r\n onClick: () => {\r\n this.openSaveDialog();\r\n }\r\n });\r\n if (true) {\r\n this.configMenuItem[0].items.push({\r\n name: 'remove',\r\n icon: 'far fa-times',\r\n style: 'ax danger blank',\r\n text: AXTranslator.get('common.remove'),\r\n onClick: () => {\r\n this.onRemove.emit(this);\r\n }\r\n });\r\n }\r\n this._hasMenu = this.configMenuItem[0].items.length > 0;\r\n this.cdr.detectChanges();\r\n }\r\n\r\n @HostBinding('attr.data-size-x')\r\n @Input()\r\n sizeX: number = 1;\r\n\r\n @HostBinding('attr.data-size-y')\r\n @Input()\r\n sizeY: number = 1;\r\n\r\n @HostBinding('attr.data-col')\r\n @Input()\r\n col: number = 1;\r\n\r\n\r\n @HostBinding('attr.data-row')\r\n @Input()\r\n row: number = 1;\r\n\r\n\r\n private setSizeFromOptions() {\r\n this._widget.getValue('widgetSize').then(c => {\r\n const oldSizeX = this.sizeX;\r\n const oldSizeY = this.sizeY;\r\n if (c && Array.isArray(c) && (oldSizeX !== c[0] || oldSizeY !== c[1])) {\r\n this.config.sizeX = this.sizeX = c[0];\r\n this.config.sizeY = this.sizeY = c[1];\r\n this.onResized.emit({\r\n component: this._widget,\r\n config: this.config\r\n });\r\n }\r\n this.cdr.detectChanges();\r\n });\r\n }\r\n\r\n remove(e: MouseEvent) {\r\n e.preventDefault();\r\n e.stopPropagation();\r\n this.onRemove.emit(this);\r\n return false;\r\n }\r\n\r\n handleConfig(e: MouseEvent) {\r\n e.preventDefault();\r\n e.stopPropagation();\r\n this.openConfigDialog();\r\n return false;\r\n }\r\n\r\n private openConfigDialog() {\r\n const ppp = this.getMergedProps();\r\n this.popup.open(AXWidgetConfigComponent, {\r\n title: AXTranslator.get('common.configs'),\r\n size: 'sm',\r\n data: {\r\n props: ppp.map(c => ({ property: c.options, value: this._widget[c.options.name] })),\r\n widget: this.widget\r\n }\r\n }).then(c => {\r\n if (c.data) {\r\n if (!this.config.options) {\r\n this.config.options = {};\r\n }\r\n c.data.forEach(p => {\r\n this._widget.setValue(p.property.name, p.value);\r\n this.config.options[p.property.name] = p.value;\r\n });\r\n this.emitConfigChanged();\r\n this._widget.redraw();\r\n this.cdr.detectChanges();\r\n }\r\n });\r\n }\r\n\r\n private openSaveDialog() {\r\n const ppp = this.getMergedProps();\r\n this.popup.open(AXWidgetSaveComponent, {\r\n title: AXTranslator.get('common.save-as'),\r\n size: 'sm',\r\n data: {\r\n config: this.config,\r\n props: ppp.map(c => ({ property: c.options, value: this._widget[c.options.name] }))\r\n }\r\n }).then(c => {\r\n if (c.data) {\r\n this.onSave.emit({\r\n component: this._widget,\r\n data: c.data\r\n });\r\n }\r\n });\r\n }\r\n\r\n\r\n\r\n handleOptionClick(e: MouseEvent) {\r\n e.preventDefault();\r\n e.stopPropagation();\r\n this.openConfigDialog();\r\n return false;\r\n }\r\n\r\n ngOnDestroy() {\r\n this.vc.clear();\r\n if (this.componentRef) {\r\n this.componentRef.destroy();\r\n }\r\n }\r\n\r\n private getMergedProps(): AXPropertyDecorator[] {\r\n const ppp = AXObjectUtil.deepCopy(AXPropertyDecorators.getProperties(this._widget)) as AXPropertyDecorator[];\r\n for (const key in this.config.props) {\r\n if (Object.prototype.hasOwnProperty.call(this.config.props, key)) {\r\n const newP = this.config.props[key];\r\n const existPropDec = ppp.find(p => p.property === key);\r\n if (existPropDec) {\r\n Object.assign(existPropDec.options, newP);\r\n }\r\n }\r\n }\r\n return ppp;\r\n }\r\n\r\n private emitConfigChanged() {\r\n this.onConfigChanged.emit({\r\n component: this._widget,\r\n config: this.config\r\n });\r\n }\r\n\r\n}","<div class='widget-container'>\r\n <div class=\"widget-config-overlay\" *ngIf=\"!isConfigured\" (click)=\"handleConfig($event)\">\r\n <div class=\"widget-title\">{{config.title}}</div>\r\n <div class=\"widget-config-box\">\r\n <div class=\"config-title\">{{ 'widget-board.configure' | trans}}</div>\r\n <div class=\"config-icon\"><i class=\"fas fa-cogs fa-5x\" aria-hidden=\"true\"></i></div>\r\n </div>\r\n </div>\r\n <div class='widget-edit-overlay'>\r\n <div class='widget-edit-menu'>\r\n <button class=\"widget-edit-menu-button\" (click)=\"handleConfig($event)\"\r\n (mousedown)=\"$event.stopPropagation()\" *ngIf=\"_hasProps\" (mouseup)=\"$event.stopPropagation()\">\r\n <i class=\"far fa-cogs\" aria-hidden=\"true\"></i>\r\n </button>\r\n <button class=\"widget-edit-menu-button\" (click)=\"remove($event)\" (mousedown)=\"$event.stopPropagation()\"\r\n (mouseup)=\"$event.stopPropagation()\">\r\n <i class=\"far fa-times\" aria-hidden=\"true\"></i>\r\n </button>\r\n </div>\r\n\r\n </div>\r\n <div class=\"widget-options-menu\" *ngIf=\"_hasMenu\">\r\n <ax-menu [items]='configMenuItem' direction=\"horizontal\"></ax-menu>\r\n </div>\r\n <!-- <ax-loading-panel [visible]=\"isBusy\">\r\n </ax-loading-panel> -->\r\n <div class=\"widget-content\">\r\n <ng-container #vc></ng-container>\r\n </div>\r\n</div>","import {\r\n Component,\r\n OnInit,\r\n Input,\r\n ViewEncapsulation,\r\n ElementRef,\r\n ViewChild,\r\n NgZone,\r\n ChangeDetectionStrategy,\r\n ChangeDetectorRef,\r\n Output,\r\n EventEmitter, ViewChildren, QueryList\r\n} from '@angular/core';\r\nimport {\r\n AXWidgetConfig,\r\n AXWidgetConfigChanged,\r\n AXWidgetBoardConfigChanged,\r\n AXWidgetConfigSavedEvent\r\n} from './widget.class';\r\nimport { AXWidgetHostComponent } from './widget-host.component';\r\nimport { AXHtmlUtil, AXClientRec } from '@acorex/core';\r\nimport { Observable } from 'rxjs';\r\nimport { debounceTime, distinctUntilChanged } from 'rxjs/operators';\r\n\r\n@Component({\r\n selector: 'ax-widget-board',\r\n templateUrl: './widget-board.component.html',\r\n styleUrls: ['./widget-board.component.scss'],\r\n host: { class: 'ax widget-board' },\r\n encapsulation: ViewEncapsulation.None,\r\n changeDetection: ChangeDetectionStrategy.OnPush\r\n})\r\nexport class AXWidgetBoardComponent implements OnInit {\r\n\r\n @ViewChild('container')\r\n private container: ElementRef<HTMLDivElement>;\r\n\r\n @ViewChildren(AXWidgetHostComponent)\r\n private widgetHosts: QueryList<AXWidgetHostComponent>;\r\n\r\n widgets: AXWidgetConfig[] = [];\r\n\r\n @Input()\r\n galleryItems: AXWidgetConfig[] = [];\r\n\r\n @Input()\r\n tileSize: number = 80;\r\n\r\n @Input()\r\n gapSize: number = 5;\r\n\r\n private newWidget: AXWidgetConfig = null;\r\n\r\n public rtl: boolean;\r\n\r\n private _isInEditing: boolean = false;\r\n public isInEditing(): boolean {\r\n return this._isInEditing;\r\n }\r\n private isDragging: boolean = false;\r\n private dragItem: HTMLElement;\r\n\r\n @Input()\r\n provideValue: (e: any) => any;\r\n\r\n private readonly DATA_COL = 'data-col';\r\n private readonly DATA_ROW = 'data-row';\r\n private readonly DATA_SIZE_X = 'data-size-x';\r\n private readonly DATA_SIZE_Y = 'data-size-y';\r\n private readonly DATA_OLD_COL = 'data-old-col';\r\n private readonly DATA_OLD_ROW = 'data-old-row';\r\n\r\n\r\n @Output()\r\n onConfigChanged: EventEmitter<AXWidgetBoardConfigChanged> = new EventEmitter<AXWidgetBoardConfigChanged>();\r\n\r\n @Output()\r\n onWidgetSave: EventEmitter<AXWidgetConfigSavedEvent> = new EventEmitter<AXWidgetConfigSavedEvent>();\r\n\r\n constructor(\r\n private ref: ElementRef<HTMLDivElement>,\r\n private zone: NgZone,\r\n private cdr: ChangeDetectorRef\r\n ) { }\r\n\r\n\r\n ngOnInit() {\r\n if (this.rtl == null) {\r\n this.rtl = window.getComputedStyle(this.ref.nativeElement, null).getPropertyValue('direction') === 'rtl';\r\n }\r\n }\r\n\r\n ngAfterViewInit() {\r\n this.zone.runOutsideAngular((c) => {\r\n const style = document.createElement('style');\r\n style.type = 'text/css';\r\n this.ref.nativeElement.appendChild(style);\r\n // add css data classes\r\n for (let i = 1; i <= 50; i++) {\r\n style.innerHTML += `[${this.DATA_COL}=\"${i}\"] { ${this.rtl ? 'right' : 'left'}: ${(i - 1) * (this.tileSize + this.gapSize)}px; }`;\r\n style.innerHTML += `[${this.DATA_ROW}=\"${i}\"] { top: ${(i - 1) * (this.tileSize + this.gapSize)}px; }`;\r\n style.innerHTML += `[${this.DATA_SIZE_X}=\"${i}\"] { width: ${(i * this.tileSize) + ((i - 1) * this.gapSize)}px; }`;\r\n style.innerHTML += `[${this.DATA_SIZE_Y}=\"${i}\"] { height: ${(i * this.tileSize) + ((i - 1) * this.gapSize)}px; }`;\r\n }\r\n });\r\n }\r\n\r\n private calcGridSize() {\r\n this.zone.runOutsideAngular(() => {\r\n const width =\r\n (Math.max(...this.widgets.map((c) => c.col + c.sizeX - 1))) * (this.tileSize + this.gapSize);\r\n const height =\r\n (Math.max(...this.widgets.map((c) => c.row + c.sizeY - 1))) * (this.tileSize + this.gapSize);\r\n this.container.nativeElement.style.width = width + 'px';\r\n this.container.nativeElement.style.height = height + 'px';\r\n });\r\n }\r\n\r\n toggleEdit() {\r\n this._isInEditing ? this.finishEdit() : this.startEdit();\r\n }\r\n\r\n\r\n\r\n private dragStart(e: MouseEvent) {\r\n e.preventDefault();\r\n e.stopPropagation();\r\n this.zone.runOutsideAngular(() => {\r\n if (this._isInEditing && e.which === 1) {\r\n this.dragItem = e.currentTarget as any;\r\n this.dragItem.setAttribute('data-x-offset', (this.dragItem.offsetLeft - e.clientX).toString());\r\n //\r\n this.dragItem.setAttribute('data-y-offset', (this.dragItem.offsetTop - e.clientY).toString());\r\n this.dragItem.classList.add('widget-dragging');\r\n this.dragItem.classList.remove('animate__animated', 'animate__pulse');\r\n }\r\n });\r\n return false;\r\n }\r\n\r\n removePositionData() {\r\n this.zone.runOutsideAngular(() => {\r\n if (this.dragItem && this._isInEditing && this.dragItem.getAttribute(this.DATA_OLD_COL) == null) {\r\n this.dragItem.setAttribute(this.DATA_OLD_COL, this.dragItem.getAttribute(this.DATA_COL));\r\n this.dragItem.setAttribute(this.DATA_OLD_ROW, this.dragItem.getAttribute(this.DATA_ROW));\r\n this.dragItem.removeAttribute(this.DATA_COL);\r\n this.dragItem.removeAttribute(this.DATA_ROW);\r\n }\r\n });\r\n }\r\n\r\n resetPositionData() {\r\n this.zone.runOutsideAngular(() => {\r\n if (this.dragItem && this._isInEditing) {\r\n this.setPosition(this.dragItem, this.dragItem.getAttribute(this.DATA_OLD_COL), this.dragItem.getAttribute(this.DATA_OLD_ROW));\r\n }\r\n });\r\n }\r\n\r\n private setPosition(element: HTMLElement, col: string, row: string) {\r\n this.zone.runOutsideAngular(() => {\r\n element.setAttribute(this.DATA_COL, col);\r\n element.setAttribute(this.DATA_ROW, row);\r\n element.removeAttribute(this.DATA_OLD_COL);\r\n element.removeAttribute(this.DATA_OLD_ROW);\r\n element.style.removeProperty('top');\r\n element.style.removeProperty('left');\r\n const widget = this.widgets.find(c => c['__meta__'].instance.element === element);\r\n widget.col = Number(col);\r\n widget.row = Number(row);\r\n });\r\n }\r\n\r\n private drag(e) {\r\n e.preventDefault();\r\n e.stopPropagation();\r\n this.zone.runOutsideAngular(() => {\r\n if (this.dragItem && this._isInEditing) {\r\n this.isDragging = true;\r\n this.addPlaceholder();\r\n const xOffset = Number(this.dragItem.getAttribute('data-x-offset'));\r\n const yOffset = Number(this.dragItem.getAttribute('data-y-offset'));\r\n this.dragItem.style.left = e.clientX + xOffset + 'px';\r\n this.dragItem.style.top = e.clientY + yOffset + 'px';\r\n //\r\n this.detectBestPlacement();\r\n this.removePositionData();\r\n }\r\n });\r\n return false;\r\n }\r\n\r\n private dragEnd(e) {\r\n this.zone.runOutsideAngular(() => {\r\n if (this.dragItem && this._isInEditing && this.isDragging) {\r\n this.dragItem.classList.remove('widget-dragging');\r\n this.dragItem.classList.add('animate__animated', 'animate__pulse');\r\n //\r\n const p = this.container.nativeElement.querySelector('.widget-blank-placeholder');\r\n if (this.newWidget) {\r\n const w = {\r\n uniqueName: this.newWidget.uniqueName,\r\n component: this.newWidget.component,\r\n title: this.newWidget.title,\r\n options: this.newWidget.options,\r\n sizeX: this.newWidget.sizeX,\r\n sizeY: this.newWidget.sizeY,\r\n col: Number(p.getAttribute(this.DATA_COL)),\r\n row: Number(p.getAttribute(this.DATA_ROW))\r\n };\r\n\r\n this.widgets.push(w);\r\n this.newWidget = null;\r\n this.container.nativeElement.removeChild(this.dragItem);\r\n this.zone.run(() => {\r\n this.cdr.detectChanges();\r\n this.calcGridSize();\r\n setTimeout(() => {\r\n w['__meta__'].instance.element.addEventListener('mousedown', this.dragStart.bind(this), false);\r\n }, 1000);\r\n });\r\n } else {\r\n if (p) {\r\n this.setPosition(this.dragItem, p.getAttribute(this.DATA_COL), p.getAttribute(this.DATA_ROW));\r\n }\r\n else {\r\n this.setPosition(this.dragItem, this.dragItem.getAttribute(this.DATA_OLD_COL), this.dragItem.getAttribute(this.DATA_OLD_ROW));\r\n }\r\n }\r\n //\r\n this.removePlaceholder();\r\n this.dragItem = null;\r\n this.calcGridSize();\r\n this.emitConfigChanged();\r\n }\r\n this.isDragging = false;\r\n });\r\n }\r\n\r\n private detectFirstEmptySlot(w: AXWidgetConfig) {\r\n const xTile = Math.floor(this.ref.nativeElement.parentElement.offsetWidth / this.tileSize);\r\n for (let j = 1; j <= 100; j++) {\r\n for (let i = 1; i <= xTile - w.sizeX; i++) {\r\n const rec = new AXClientRec({\r\n left: i,\r\n top: j,\r\n width: w.sizeX,\r\n height: w.sizeY\r\n });\r\n const el = this.widgets.filter(c => c !== w).find((c) =>\r\n rec.intersect({\r\n left: c.col,\r\n top: c.row,\r\n width: c.sizeX,\r\n height: c.sizeY\r\n })\r\n );\r\n if (el == null) {\r\n w.col = i;\r\n w.row = j;\r\n return;\r\n }\r\n }\r\n }\r\n }\r\n\r\n private detectBestPlacement() {\r\n this.zone.runOutsideAngular(() => {\r\n const p = this.container.nativeElement.querySelector('.widget-blank-placeholder') as HTMLElement;\r\n let col = Math.ceil(this.dragItem.offsetLeft / this.tileSize);\r\n if (this.rtl) {\r\n col = Math.ceil((this.container.nativeElement.clientWidth - (this.dragItem.offsetLeft + this.dragItem.clientWidth)) / this.tileSize);\r\n }\r\n\r\n let row = Math.ceil(this.dragItem.offsetTop / this.tileSize);\r\n if (col < 1) {\r\n col = 1;\r\n }\r\n if (row < 1) {\r\n row = 1;\r\n }\r\n const widgets = Array.from(this.ref.nativeElement.querySelectorAll('.widget-host')).map((c) => c as HTMLElement);\r\n p.setAttribute(this.DATA_COL, col.toString());\r\n p.setAttribute(this.DATA_ROW, row.toString());\r\n const collision = widgets.filter(c => c !== this.dragItem).some(c => AXHtmlUtil.collision(c, this.dragItem));\r\n if (collision) {\r\n this.removePlaceholder();\r\n }\r\n });\r\n }\r\n\r\n\r\n\r\n\r\n private addPlaceholder() {\r\n this.zone.runOutsideAngular(() => {\r\n this.removePlaceholder();\r\n if (this.dragItem) {\r\n const p = document.createElement('div');\r\n p.classList.add('widget-blank-placeholder');\r\n p.setAttribute(this.DATA_COL, this.dragItem.getAttribute(this.DATA_COL));\r\n p.setAttribute(this.DATA_ROW, this.dragItem.getAttribute(this.DATA_ROW));\r\n p.setAttribute(this.DATA_SIZE_X, this.dragItem.getAttribute(this.DATA_SIZE_X));\r\n p.setAttribute(this.DATA_SIZE_Y, this.dragItem.getAttribute(this.DATA_SIZE_Y));\r\n this.container.nativeElement.appendChild(p);\r\n }\r\n });\r\n }\r\n\r\n private removePlaceholder() {\r\n const p = this.container.nativeElement.querySelector('.widget-blank-placeholder');\r\n p?.remove();\r\n }\r\n\r\n public startEdit() {\r\n this._isInEditing = true;\r\n this.calcGridSize();\r\n this.ref.nativeElement.classList.add('grid-background');\r\n const bg = this.ref.nativeElement as HTMLDivElement;\r\n bg.style.setProperty('background-position', `${this.rtl ? 'right' : 'left'} top`);\r\n // tslint:disable-next-line: max-line-length\r\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>')`;\r\n bg.style.setProperty('background-image', pattern);\r\n //\r\n const widgets = Array.from(this.ref.nativeElement.querySelectorAll('.widget-host'));\r\n widgets.forEach((w) => {\r\n w.addEventListener('mousedown', this.dragStart.bind(this), false);\r\n });\r\n this.ref.nativeElement.addEventListener('mousemove', this.drag.bind(this), false);\r\n this.ref.nativeElement.addEventListener('mouseup', this.dragEnd.bind(this), false);\r\n }\r\n\r\n public finishEdit() {\r\n this.ref.nativeElement.classList.remove('grid-background');\r\n const bg = this.ref.nativeElement as HTMLDivElement;\r\n bg.style.removeProperty('background-image');\r\n //\r\n this._isInEditing = false;\r\n const widgets = Array.from(this.ref.nativeElement.querySelectorAll('.widget-host'));\r\n widgets.forEach((w) => {\r\n w.removeEventListener('mousedown', this.dragStart.bind(this), false);\r\n });\r\n this.ref.nativeElement.removeEventListener('mousemove', this.drag.bind(this), false);\r\n this.ref.nativeElement.removeEventListener('mouseup', this.dragEnd.bind(this), false);\r\n this.emitConfigChanged();\r\n }\r\n\r\n\r\n addWidget(widget: AXWidgetConfig) {\r\n this.zone.runOutsideAngular(() => {\r\n this.newWidget = {\r\n uniqueName: widget.uniqueName,\r\n component: widget.component,\r\n title: widget.title,\r\n col: 1,\r\n row: 1,\r\n sizeX: widget.sizeX,\r\n sizeY: widget.sizeY,\r\n options: widget.options,\r\n props: widget.props\r\n };\r\n this.detectFirstEmptySlot(this.newWidget);\r\n const w = {\r\n uniqueName: this.newWidget.uniqueName,\r\n component: this.newWidget.component,\r\n title: this.newWidget.title,\r\n options: this.newWidget.options,\r\n props: this.newWidget.props,\r\n sizeX: this.newWidget.sizeX,\r\n sizeY: this.newWidget.sizeY,\r\n col: this.newWidget.col,\r\n row: this.newWidget.row\r\n };\r\n this.widgets.push(w);\r\n this.newWidget = null;\r\n this.zone.run(() => {\r\n this.cdr.detectChanges();\r\n this.calcGridSize();\r\n this.emitConfigChanged();\r\n setTimeout(() => {\r\n w['__meta__'].instance.element.addEventListener('mousedown', this.dragStart.bind(this), false);\r\n }, 1000);\r\n });\r\n });\r\n }\r\n\r\n\r\n handleOnRemove(w: AXWidgetHostComponent) {\r\n w.element.classList.add('animate__animated', 'animate__zoomOut');\r\n w.element.addEventListener('animationend', () => {\r\n this.widgets = this.widgets.filter((c) => (c as any).__meta__.id !== (w.config as any).__meta__.id);\r\n this.cdr.detectChanges();\r\n this.calcGridSize();\r\n this.emitConfigChanged();\r\n });\r\n }\r\n\r\n handleOnSave(e: AXWidgetConfigSavedEvent) {\r\n this.onWidgetSave.emit(e);\r\n }\r\n\r\n trackByFn(index, item) {\r\n if (!item['__meta__']?.id) {\r\n item['__meta__'] = {};\r\n item['__meta__'].id = AXHtmlUtil.getUID();\r\n }\r\n return item['__meta__']?.id;\r\n }\r\n\r\n\r\n load(widgets: string | AXWidgetConfig[]): Promise<void> {\r\n this.clear();\r\n return new Promise<void>((resolve, reject) => {\r\n if (widgets) {\r\n const loadedWidgets: AXWidgetConfig[] = [];\r\n if (typeof widgets === 'string') {\r\n try {\r\n loadedWidgets.push(...JSON.parse(widgets));\r\n } catch (error) {\r\n reject('Invalid widget json data!');\r\n }\r\n }\r\n else {\r\n loadedWidgets.push(...widgets);\r\n }\r\n let intervalId: number = -1;\r\n const loadFunc = () => {\r\n\r\n if (this.galleryItems && this.galleryItems.length > 0) {\r\n loadedWidgets.forEach(w => {\r\n const gitem = this.galleryItems.find(c => c.uniqueName === w.uniqueName);\r\n if (gitem) {\r\n w.component = gitem.component;\r\n if (gitem.props) {\r\n w.props = JSON.parse(JSON.stringify(gitem.props));\r\n }\r\n }\r\n });\r\n this.widgets.push(...loadedWidgets);\r\n window.clearInterval(intervalId);\r\n this.cdr.detectChanges();\r\n resolve();\r\n }\r\n };\r\n intervalId = window.setInterval(loadFunc, 200);\r\n }\r\n else {\r\n resolve();\r\n }\r\n });\r\n }\r\n\r\n clear() {\r\n if (this.widgets.length) {\r\n this.widgets = [];\r\n this.cdr.detectChanges();\r\n this.emitConfigChanged();\r\n }\r\n }\r\n\r\n save(): Promise<string> {\r\n const obj = this.widgets.map(c => ({\r\n uniqueName: c.uniqueName,\r\n component: c.component,\r\n title: c.title,\r\n sizeX: c.sizeX,\r\n sizeY: c.sizeY,\r\n col: c.col,\r\n row: c.row,\r\n options: c.options,\r\n props: c.props\r\n }));\r\n return Promise.resolve(JSON.stringify(obj));\r\n }\r\n\r\n refresh() {\r\n this.widgetHosts.forEach(host => {\r\n host.widget.refresh();\r\n });\r\n }\r\n\r\n handleOnConfigChanged(e: AXWidgetConfigChanged) {\r\n this.cdr.detectChanges();\r\n this.emitConfigChanged();\r\n }\r\n\r\n handleOnResizedChanged(e: AXWidgetConfigChanged) {\r\n this.detectFirstEmptySlot(e.config);\r\n this.cdr.detectChanges();\r\n this.emitConfigChanged();\r\n }\r\n\r\n private resizeChangeObserver: any;\r\n private emitConfigChanged() {\r\n if (!this.resizeChangeObserver) {\r\n this.resizeChangeObserver = new Observable();\r\n Observable.create(observer => {\r\n this.resizeChangeObserver = observer;\r\n })\r\n .pipe(debounceTime(750))\r\n .pipe(distinctUntilChanged())\r\n .subscribe(c => {\r\n this.onConfigChanged.emit({\r\n component: this\r\n });\r\n });\r\n }\r\n this.resizeChangeObserver.next(new Date());\r\n }\r\n}\r\n","<div class=\"widgets-container\" [class.rtl]=\"rtl\" #container>\r\n <ax-widget-host *ngFor=\"let w of widgets;trackBy: trackByFn\" [config]='w' [sizeX]=\"w.sizeX\"\r\n [sizeY]=\"w.sizeY\" [col]=\"w.col\" [row]=\"w.row\" (onRemove)=\"handleOnRemove($event)\" (onSave)=\"handleOnSave($event)\"\r\n (onConfigChanged)=\"handleOnConfigChanged($event)\" (onResized)=\"handleOnResizedChanged($event)\"\r\n [provideValue]=\"provideValue\">\r\n </ax-widget-host>\r\n</div>\r\n","import { Component, OnInit, ChangeDetectorRef } from '@angular/core';\r\nimport { AXProperyEditorComponent } from '@acorex/components';\r\n\r\n@Component({\r\n templateUrl: './widget-size.editor.html'\r\n})\r\nexport class AXWidgetSizePropertyEditorComponent extends AXProperyEditorComponent<number[]> {\r\n\r\n sizeX: number;\r\n sizeY: number;\r\n\r\n minX: number = 1;\r\n maxX: number = 10;\r\n\r\n minY: number = 1;\r\n maxY: number = 10;\r\n\r\n\r\n constructor(protected cdr: ChangeDetectorRef) {\r\n super(cdr);\r\n }\r\n\r\n ngOnInit() {\r\n if (Array.isArray(this.value)) {\r\n this.sizeX = this.value[0];\r\n this.sizeY = this.value[1];\r\n }\r\n else {\r\n this.sizeX = 2;\r\n this.sizeY = 2;\r\n }\r\n }\r\n\r\n handleMinValueChange(e: any) {\r\n this.sizeX = e.value;\r\n\r\n if (this.sizeY > 0) {\r\n super.handleValueChange([this.sizeX, this.sizeY]);\r\n }\r\n }\r\n\r\n handleMaxValueChange(e: any) {\r\n this.sizeY = e.value;\r\n if (this.sizeX > 0) {\r\n super.handleValueChange([this.sizeX, this.sizeY]);\r\n }\r\n }\r\n\r\n\r\n\r\n ngAfterViewInit() {\r\n this.onRenderCompleted.emit();\r\n }\r\n\r\n}","<div style=\"display: flex;\">\r\n <div style=\"margin-inline-end: 0.5em;flex: calc(50% - 0.25em);\">\r\n <ax-number-box (onValueChanged)=\"handleMinValueChange($event)\" [value]=\"sizeX\" [min]=\"minX\" [max]=\"maxX\">\r\n </ax-number-box>\r\n </div>\r\n <div style=\"flex: calc(50% - 0.25em);\">\r\n <ax-number-box (onValueChanged)=\"handleMaxValueChange($event)\" [value]=\"sizeY\" [min]=\"minY\" [max]=\"maxY\">\r\n </ax-number-box>\r\n </div>\r\n</div>","import { NgModule } from '@angular/core';\r\nimport { AXWidgetBoardComponent } from './widget-board.component';\r\nimport { CommonModule } from '@angular/common';\r\nimport { AXWidgetHostComponent } from './widget-host.component';\r\nimport {\r\n AXSearchBoxModule,\r\n AXLoadingModule,\r\n AXProppertyEditorModule,\r\n AXPageModule, AXLabelModule,\r\n AXToolbarModule,\r\n AXTabStripModule,\r\n AXMenuModule,\r\n AXFormGroupModule,\r\n AXTextAreaModule, AXTextBoxModule, AXFieldsetModule, AXCheckBoxModule, AXValidationModule\r\n} from '@acorex/components';\r\nimport { RouterModule } from '@angular/router';\r\nimport { AXWidgetConfigComponent } from './widget-config.component';\r\nimport { AXTranslator, AXTranslatorModule } from '@acorex/core';\r\nimport { AXWidgetSizePropertyEditorComponent } from './editors/widget-size-editor/widget-size.editor';\r\nimport { AXWidgetSizePropertyEditorModule } from './editors/widget-size-editor/widget-size.module';\r\nimport { AXWidgetSaveComponent } from './widget-save.component';\r\n\r\n@NgModule({\r\n imports: [\r\n CommonModule,\r\n AXSearchBoxModule,\r\n AXLoadingModule,\r\n RouterModule,\r\n AXProppertyEditorModule,\r\n AXPageModule,\r\n AXToolbarModule,\r\n AXTranslatorModule,\r\n AXLabelModule,\r\n AXTextAreaModule,\r\n AXFieldsetModule,\r\n AXTextBoxModule,\r\n AXFormGroupModule,\r\n AXTabStripModule,\r\n AXCheckBoxModule,\r\n AXMenuModule,\r\n AXTranslatorModule,\r\n AXValidationModule,\r\n RouterModule.forChild([\r\n {\r\n component: AXWidgetSizePropertyEditorComponent,\r\n path: 'ax/editors/widget-size'\r\n },\r\n ])\r\n ],\r\n exports: [AXWidgetBoardComponent, AXProppertyEditorModule],\r\n declarations: [AXWidgetBoardComponent, AXWidgetHostComponent, AXWidgetConfigComponent, AXWidgetSaveComponent],\r\n providers: []\r\n})\r\nexport class AXWidgetBoardModule {\r\n /**\r\n *\r\n */\r\n constructor() {\r\n AXTranslator.load('en', {\r\n 'widget-board': {\r\n 'configurable-props': 'Configurable Properties',\r\n configure: 'Configure Widget'\r\n }\r\n });\r\n AXTranslator.load('fa', {\r\n 'widget-board': {\r\n 'configurable-props': 'ویژگی های قابل تنظیم',\r\n configure: 'پیکر بندی ابزارک'\r\n }\r\n });\r\n\r\n }\r\n\r\n}\r\n","import { NgModule } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\nimport { FormsModule } from '@angular/forms';\r\n\r\nimport { AXWidgetSizePropertyEditorComponent } from './widget-size.editor';\r\nimport { AXNumberBoxModule } from '@acorex/components';\r\n\r\n\r\n\r\n\r\n@NgModule({\r\n declarations: [AXWidgetSizePropertyEditorComponent],\r\n imports: [CommonModule, FormsModule, AXNumberBoxModule],\r\n exports: [AXWidgetSizePropertyEditorComponent],\r\n providers: []\r\n})\r\nexport class AXWidgetSizePropertyEditorModule {\r\n \r\n}","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["i3","i1","i2","i1.AXWidgetHostComponent"],"mappings":"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"}
|