@acorex/layout 16.18.15 → 16.18.17
Sign up to get free protection for your applications and to get access to all the features.
@@ -265,7 +265,7 @@ export class AXWidgetHostComponent {
|
|
265
265
|
});
|
266
266
|
}
|
267
267
|
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.7", 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 });
|
268
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.0.7", type: AXWidgetHostComponent, 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"
|
268
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.0.7", type: AXWidgetHostComponent, 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 });
|
269
269
|
}
|
270
270
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.7", ngImport: i0, type: AXWidgetHostComponent, decorators: [{
|
271
271
|
type: Component,
|
@@ -70,7 +70,7 @@ export class AXWidgetSaveComponent extends AXBasePopupPageComponent {
|
|
70
70
|
}
|
71
71
|
}
|
72
72
|
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.7", ngImport: i0, type: AXWidgetSaveComponent, deps: null, target: i0.ɵɵFactoryTarget.Component });
|
73
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.0.7", type: AXWidgetSaveComponent, 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"] }, { kind: "component", type: i2.AXTextAreaComponent, selector: "ax-text-area", inputs: ["rows", "cols", "maxLength"
|
73
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.0.7", type: AXWidgetSaveComponent, 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"] }, { kind: "component", type: i2.AXTextAreaComponent, selector: "ax-text-area", inputs: ["rows", "cols", "maxLength"] }, { 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"] }, { kind: "component", type: i2.AXFormGroupComponent, selector: "ax-form-group", inputs: ["size"] }, { kind: "component", type: i2.AXCheckBoxComponent, selector: "ax-check-box", inputs: ["readonly", "disabled", "size", "label", "tabIndex", "indeterminate", "useTreeView", "value"], outputs: ["onValueChanged", "valueChange", "onClick"] }, { kind: "pipe", type: i3.AXTranslatorPipe, name: "trans" }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
|
74
74
|
}
|
75
75
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.7", ngImport: i0, type: AXWidgetSaveComponent, decorators: [{
|
76
76
|
type: Component,
|
@@ -281,7 +281,7 @@ class AXWidgetSaveComponent extends AXBasePopupPageComponent {
|
|
281
281
|
}
|
282
282
|
}
|
283
283
|
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.7", ngImport: i0, type: AXWidgetSaveComponent, deps: null, target: i0.ɵɵFactoryTarget.Component });
|
284
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.0.7", type: AXWidgetSaveComponent, 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"] }, { kind: "component", type: i2.AXTextAreaComponent, selector: "ax-text-area", inputs: ["rows", "cols", "maxLength"
|
284
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.0.7", type: AXWidgetSaveComponent, 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"] }, { kind: "component", type: i2.AXTextAreaComponent, selector: "ax-text-area", inputs: ["rows", "cols", "maxLength"] }, { 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"] }, { kind: "component", type: i2.AXFormGroupComponent, selector: "ax-form-group", inputs: ["size"] }, { kind: "component", type: i2.AXCheckBoxComponent, selector: "ax-check-box", inputs: ["readonly", "disabled", "size", "label", "tabIndex", "indeterminate", "useTreeView", "value"], outputs: ["onValueChanged", "valueChange", "onClick"] }, { kind: "pipe", type: i1$1.AXTranslatorPipe, name: "trans" }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
|
285
285
|
}
|
286
286
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.7", ngImport: i0, type: AXWidgetSaveComponent, decorators: [{
|
287
287
|
type: Component,
|
@@ -545,7 +545,7 @@ class AXWidgetHostComponent {
|
|
545
545
|
});
|
546
546
|
}
|
547
547
|
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.7", ngImport: i0, type: AXWidgetHostComponent, deps: [{ token: i0.ElementRef }, { token: i0.ComponentFactoryResolver }, { token: i1$1.AXRenderService }, { token: i0.ChangeDetectorRef }, { token: i2.AXPopupService }, { token: i2.AXLoadingService }], target: i0.ɵɵFactoryTarget.Component });
|
548
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.0.7", type: AXWidgetHostComponent, 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: i1.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"
|
548
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.0.7", type: AXWidgetHostComponent, 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: i1.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$1.AXTranslatorPipe, name: "trans" }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
|
549
549
|
}
|
550
550
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.7", ngImport: i0, type: AXWidgetHostComponent, decorators: [{
|
551
551
|
type: Component,
|
@@ -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})\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})\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})\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})\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})\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":["../../../../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})\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})\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})\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})\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})\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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"}
|